-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: add placeholder dropdown menu for user icon #6
- Loading branch information
Showing
13 changed files
with
2,996 additions
and
2,182 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
35 changes: 35 additions & 0 deletions
35
src/lib/ui/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
<script lang="ts"> | ||
import { DropdownMenu as DropdownMenuPrimitive } from "bits-ui"; | ||
import Check from "lucide-svelte/icons/check"; | ||
import { cn } from "$lib/ui/utils.js"; | ||
type $$Props = DropdownMenuPrimitive.CheckboxItemProps; | ||
type $$Events = DropdownMenuPrimitive.CheckboxItemEvents; | ||
let className: $$Props["class"] = undefined; | ||
export let checked: $$Props["checked"] = undefined; | ||
export { className as class }; | ||
</script> | ||
|
||
<DropdownMenuPrimitive.CheckboxItem | ||
bind:checked | ||
class={cn( | ||
"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none data-[disabled]:pointer-events-none data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[disabled]:opacity-50", | ||
className | ||
)} | ||
{...$$restProps} | ||
on:click | ||
on:keydown | ||
on:focusin | ||
on:focusout | ||
on:pointerdown | ||
on:pointerleave | ||
on:pointermove | ||
> | ||
<span class="absolute left-2 flex h-3.5 w-3.5 items-center justify-center"> | ||
<DropdownMenuPrimitive.CheckboxIndicator> | ||
<Check class="h-4 w-4" /> | ||
</DropdownMenuPrimitive.CheckboxIndicator> | ||
</span> | ||
<slot /> | ||
</DropdownMenuPrimitive.CheckboxItem> |
27 changes: 27 additions & 0 deletions
27
src/lib/ui/components/ui/dropdown-menu/dropdown-menu-content.svelte
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
<script lang="ts"> | ||
import { DropdownMenu as DropdownMenuPrimitive } from "bits-ui"; | ||
import { cn, flyAndScale } from "$lib/ui/utils.js"; | ||
type $$Props = DropdownMenuPrimitive.ContentProps; | ||
type $$Events = DropdownMenuPrimitive.ContentEvents; | ||
let className: $$Props["class"] = undefined; | ||
export let sideOffset: $$Props["sideOffset"] = 4; | ||
export let transition: $$Props["transition"] = flyAndScale; | ||
export let transitionConfig: $$Props["transitionConfig"] = undefined; | ||
export { className as class }; | ||
</script> | ||
|
||
<DropdownMenuPrimitive.Content | ||
{transition} | ||
{transitionConfig} | ||
{sideOffset} | ||
class={cn( | ||
"z-50 min-w-[8rem] rounded-md border bg-popover p-1 text-popover-foreground shadow-md focus:outline-none", | ||
className | ||
)} | ||
{...$$restProps} | ||
on:keydown | ||
> | ||
<slot /> | ||
</DropdownMenuPrimitive.Content> |
31 changes: 31 additions & 0 deletions
31
src/lib/ui/components/ui/dropdown-menu/dropdown-menu-item.svelte
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
<script lang="ts"> | ||
import { DropdownMenu as DropdownMenuPrimitive } from "bits-ui"; | ||
import { cn } from "$lib/ui/utils.js"; | ||
type $$Props = DropdownMenuPrimitive.ItemProps & { | ||
inset?: boolean; | ||
}; | ||
type $$Events = DropdownMenuPrimitive.ItemEvents; | ||
let className: $$Props["class"] = undefined; | ||
export let inset: $$Props["inset"] = undefined; | ||
export { className as class }; | ||
</script> | ||
|
||
<DropdownMenuPrimitive.Item | ||
class={cn( | ||
"relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled]:pointer-events-none data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[disabled]:opacity-50", | ||
inset && "pl-8", | ||
className | ||
)} | ||
{...$$restProps} | ||
on:click | ||
on:keydown | ||
on:focusin | ||
on:focusout | ||
on:pointerdown | ||
on:pointerleave | ||
on:pointermove | ||
> | ||
<slot /> | ||
</DropdownMenuPrimitive.Item> |
19 changes: 19 additions & 0 deletions
19
src/lib/ui/components/ui/dropdown-menu/dropdown-menu-label.svelte
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
<script lang="ts"> | ||
import { DropdownMenu as DropdownMenuPrimitive } from "bits-ui"; | ||
import { cn } from "$lib/ui/utils.js"; | ||
type $$Props = DropdownMenuPrimitive.LabelProps & { | ||
inset?: boolean; | ||
}; | ||
let className: $$Props["class"] = undefined; | ||
export let inset: $$Props["inset"] = undefined; | ||
export { className as class }; | ||
</script> | ||
|
||
<DropdownMenuPrimitive.Label | ||
class={cn("px-2 py-1.5 text-sm font-semibold", inset && "pl-8", className)} | ||
{...$$restProps} | ||
> | ||
<slot /> | ||
</DropdownMenuPrimitive.Label> |
11 changes: 11 additions & 0 deletions
11
src/lib/ui/components/ui/dropdown-menu/dropdown-menu-radio-group.svelte
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
<script lang="ts"> | ||
import { DropdownMenu as DropdownMenuPrimitive } from "bits-ui"; | ||
type $$Props = DropdownMenuPrimitive.RadioGroupProps; | ||
export let value: $$Props["value"] = undefined; | ||
</script> | ||
|
||
<DropdownMenuPrimitive.RadioGroup {...$$restProps} bind:value> | ||
<slot /> | ||
</DropdownMenuPrimitive.RadioGroup> |
35 changes: 35 additions & 0 deletions
35
src/lib/ui/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
<script lang="ts"> | ||
import { DropdownMenu as DropdownMenuPrimitive } from "bits-ui"; | ||
import Circle from "lucide-svelte/icons/circle"; | ||
import { cn } from "$lib/ui/utils.js"; | ||
type $$Props = DropdownMenuPrimitive.RadioItemProps; | ||
type $$Events = DropdownMenuPrimitive.RadioItemEvents; | ||
let className: $$Props["class"] = undefined; | ||
export let value: $$Props["value"]; | ||
export { className as class }; | ||
</script> | ||
|
||
<DropdownMenuPrimitive.RadioItem | ||
class={cn( | ||
"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none data-[disabled]:pointer-events-none data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[disabled]:opacity-50", | ||
className | ||
)} | ||
{value} | ||
{...$$restProps} | ||
on:click | ||
on:keydown | ||
on:focusin | ||
on:focusout | ||
on:pointerdown | ||
on:pointerleave | ||
on:pointermove | ||
> | ||
<span class="absolute left-2 flex h-3.5 w-3.5 items-center justify-center"> | ||
<DropdownMenuPrimitive.RadioIndicator> | ||
<Circle class="h-2 w-2 fill-current" /> | ||
</DropdownMenuPrimitive.RadioIndicator> | ||
</span> | ||
<slot /> | ||
</DropdownMenuPrimitive.RadioItem> |
14 changes: 14 additions & 0 deletions
14
src/lib/ui/components/ui/dropdown-menu/dropdown-menu-separator.svelte
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
<script lang="ts"> | ||
import { DropdownMenu as DropdownMenuPrimitive } from "bits-ui"; | ||
import { cn } from "$lib/ui/utils.js"; | ||
type $$Props = DropdownMenuPrimitive.SeparatorProps; | ||
let className: $$Props["class"] = undefined; | ||
export { className as class }; | ||
</script> | ||
|
||
<DropdownMenuPrimitive.Separator | ||
class={cn("-mx-1 my-1 h-px bg-muted", className)} | ||
{...$$restProps} | ||
/> |
13 changes: 13 additions & 0 deletions
13
src/lib/ui/components/ui/dropdown-menu/dropdown-menu-shortcut.svelte
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
<script lang="ts"> | ||
import type { HTMLAttributes } from "svelte/elements"; | ||
import { cn } from "$lib/ui/utils.js"; | ||
type $$Props = HTMLAttributes<HTMLSpanElement>; | ||
let className: $$Props["class"] = undefined; | ||
export { className as class }; | ||
</script> | ||
|
||
<span class={cn("ml-auto text-xs tracking-widest opacity-60", className)} {...$$restProps}> | ||
<slot /> | ||
</span> |
30 changes: 30 additions & 0 deletions
30
src/lib/ui/components/ui/dropdown-menu/dropdown-menu-sub-content.svelte
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
<script lang="ts"> | ||
import { DropdownMenu as DropdownMenuPrimitive } from "bits-ui"; | ||
import { cn, flyAndScale } from "$lib/ui/utils.js"; | ||
type $$Props = DropdownMenuPrimitive.SubContentProps; | ||
type $$Events = DropdownMenuPrimitive.SubContentEvents; | ||
let className: $$Props["class"] = undefined; | ||
export let transition: $$Props["transition"] = flyAndScale; | ||
export let transitionConfig: $$Props["transitionConfig"] = { | ||
x: -10, | ||
y: 0, | ||
}; | ||
export { className as class }; | ||
</script> | ||
|
||
<DropdownMenuPrimitive.SubContent | ||
{transition} | ||
{transitionConfig} | ||
class={cn( | ||
"z-50 min-w-[8rem] rounded-md border bg-popover p-1 text-popover-foreground shadow-lg focus:outline-none", | ||
className | ||
)} | ||
{...$$restProps} | ||
on:keydown | ||
on:focusout | ||
on:pointermove | ||
> | ||
<slot /> | ||
</DropdownMenuPrimitive.SubContent> |
32 changes: 32 additions & 0 deletions
32
src/lib/ui/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
<script lang="ts"> | ||
import { DropdownMenu as DropdownMenuPrimitive } from "bits-ui"; | ||
import ChevronRight from "lucide-svelte/icons/chevron-right"; | ||
import { cn } from "$lib/ui/utils.js"; | ||
type $$Props = DropdownMenuPrimitive.SubTriggerProps & { | ||
inset?: boolean; | ||
}; | ||
type $$Events = DropdownMenuPrimitive.SubTriggerEvents; | ||
let className: $$Props["class"] = undefined; | ||
export let inset: $$Props["inset"] = undefined; | ||
export { className as class }; | ||
</script> | ||
|
||
<DropdownMenuPrimitive.SubTrigger | ||
class={cn( | ||
"flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[highlighted]:bg-accent data-[state=open]:bg-accent data-[highlighted]:text-accent-foreground data-[state=open]:text-accent-foreground", | ||
inset && "pl-8", | ||
className | ||
)} | ||
{...$$restProps} | ||
on:click | ||
on:keydown | ||
on:focusin | ||
on:focusout | ||
on:pointerleave | ||
on:pointermove | ||
> | ||
<slot /> | ||
<ChevronRight class="ml-auto h-4 w-4" /> | ||
</DropdownMenuPrimitive.SubTrigger> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
import { DropdownMenu as DropdownMenuPrimitive } from "bits-ui"; | ||
import Item from "./dropdown-menu-item.svelte"; | ||
import Label from "./dropdown-menu-label.svelte"; | ||
import Content from "./dropdown-menu-content.svelte"; | ||
import Shortcut from "./dropdown-menu-shortcut.svelte"; | ||
import RadioItem from "./dropdown-menu-radio-item.svelte"; | ||
import Separator from "./dropdown-menu-separator.svelte"; | ||
import RadioGroup from "./dropdown-menu-radio-group.svelte"; | ||
import SubContent from "./dropdown-menu-sub-content.svelte"; | ||
import SubTrigger from "./dropdown-menu-sub-trigger.svelte"; | ||
import CheckboxItem from "./dropdown-menu-checkbox-item.svelte"; | ||
|
||
const Sub = DropdownMenuPrimitive.Sub; | ||
const Root = DropdownMenuPrimitive.Root; | ||
const Trigger = DropdownMenuPrimitive.Trigger; | ||
const Group = DropdownMenuPrimitive.Group; | ||
|
||
export { | ||
Sub, | ||
Root, | ||
Item, | ||
Label, | ||
Group, | ||
Trigger, | ||
Content, | ||
Shortcut, | ||
Separator, | ||
RadioItem, | ||
SubContent, | ||
SubTrigger, | ||
RadioGroup, | ||
CheckboxItem, | ||
// | ||
Root as DropdownMenu, | ||
Sub as DropdownMenuSub, | ||
Item as DropdownMenuItem, | ||
Label as DropdownMenuLabel, | ||
Group as DropdownMenuGroup, | ||
Content as DropdownMenuContent, | ||
Trigger as DropdownMenuTrigger, | ||
Shortcut as DropdownMenuShortcut, | ||
RadioItem as DropdownMenuRadioItem, | ||
Separator as DropdownMenuSeparator, | ||
RadioGroup as DropdownMenuRadioGroup, | ||
SubContent as DropdownMenuSubContent, | ||
SubTrigger as DropdownMenuSubTrigger, | ||
CheckboxItem as DropdownMenuCheckboxItem, | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters