@aphexcms/ui 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/package.json +2 -2
  2. package/src/lib/components/app-sidebar.svelte +0 -171
  3. package/src/lib/components/nav-main.svelte +0 -64
  4. package/src/lib/components/nav-projects.svelte +0 -76
  5. package/src/lib/components/nav-user.svelte +0 -87
  6. package/src/lib/components/sidebar-07/+page.svelte +0 -39
  7. package/src/lib/components/team-switcher.svelte +0 -67
  8. package/src/lib/components/ui/alert/alert-description.svelte +0 -23
  9. package/src/lib/components/ui/alert/alert-title.svelte +0 -20
  10. package/src/lib/components/ui/alert/alert.svelte +0 -44
  11. package/src/lib/components/ui/alert/index.ts +0 -14
  12. package/src/lib/components/ui/alert-dialog/alert-dialog-action.svelte +0 -18
  13. package/src/lib/components/ui/alert-dialog/alert-dialog-cancel.svelte +0 -18
  14. package/src/lib/components/ui/alert-dialog/alert-dialog-content.svelte +0 -27
  15. package/src/lib/components/ui/alert-dialog/alert-dialog-description.svelte +0 -17
  16. package/src/lib/components/ui/alert-dialog/alert-dialog-footer.svelte +0 -20
  17. package/src/lib/components/ui/alert-dialog/alert-dialog-header.svelte +0 -20
  18. package/src/lib/components/ui/alert-dialog/alert-dialog-overlay.svelte +0 -20
  19. package/src/lib/components/ui/alert-dialog/alert-dialog-title.svelte +0 -17
  20. package/src/lib/components/ui/alert-dialog/alert-dialog-trigger.svelte +0 -7
  21. package/src/lib/components/ui/alert-dialog/index.ts +0 -39
  22. package/src/lib/components/ui/avatar/avatar-fallback.svelte +0 -17
  23. package/src/lib/components/ui/avatar/avatar-image.svelte +0 -17
  24. package/src/lib/components/ui/avatar/avatar.svelte +0 -19
  25. package/src/lib/components/ui/avatar/index.ts +0 -13
  26. package/src/lib/components/ui/badge/badge.svelte +0 -49
  27. package/src/lib/components/ui/badge/index.ts +0 -2
  28. package/src/lib/components/ui/breadcrumb/breadcrumb-ellipsis.svelte +0 -23
  29. package/src/lib/components/ui/breadcrumb/breadcrumb-item.svelte +0 -20
  30. package/src/lib/components/ui/breadcrumb/breadcrumb-link.svelte +0 -31
  31. package/src/lib/components/ui/breadcrumb/breadcrumb-list.svelte +0 -23
  32. package/src/lib/components/ui/breadcrumb/breadcrumb-page.svelte +0 -23
  33. package/src/lib/components/ui/breadcrumb/breadcrumb-separator.svelte +0 -27
  34. package/src/lib/components/ui/breadcrumb/breadcrumb.svelte +0 -21
  35. package/src/lib/components/ui/breadcrumb/index.ts +0 -25
  36. package/src/lib/components/ui/button/button.svelte +0 -82
  37. package/src/lib/components/ui/button/index.ts +0 -17
  38. package/src/lib/components/ui/card/card-action.svelte +0 -20
  39. package/src/lib/components/ui/card/card-content.svelte +0 -15
  40. package/src/lib/components/ui/card/card-description.svelte +0 -20
  41. package/src/lib/components/ui/card/card-footer.svelte +0 -20
  42. package/src/lib/components/ui/card/card-header.svelte +0 -23
  43. package/src/lib/components/ui/card/card-title.svelte +0 -20
  44. package/src/lib/components/ui/card/card.svelte +0 -23
  45. package/src/lib/components/ui/card/index.ts +0 -25
  46. package/src/lib/components/ui/collapsible/collapsible-content.svelte +0 -7
  47. package/src/lib/components/ui/collapsible/collapsible-trigger.svelte +0 -7
  48. package/src/lib/components/ui/collapsible/collapsible.svelte +0 -11
  49. package/src/lib/components/ui/collapsible/index.ts +0 -13
  50. package/src/lib/components/ui/command/command-dialog.svelte +0 -40
  51. package/src/lib/components/ui/command/command-empty.svelte +0 -17
  52. package/src/lib/components/ui/command/command-group.svelte +0 -30
  53. package/src/lib/components/ui/command/command-input.svelte +0 -26
  54. package/src/lib/components/ui/command/command-item.svelte +0 -20
  55. package/src/lib/components/ui/command/command-link-item.svelte +0 -20
  56. package/src/lib/components/ui/command/command-list.svelte +0 -17
  57. package/src/lib/components/ui/command/command-separator.svelte +0 -17
  58. package/src/lib/components/ui/command/command-shortcut.svelte +0 -20
  59. package/src/lib/components/ui/command/command.svelte +0 -22
  60. package/src/lib/components/ui/command/index.ts +0 -40
  61. package/src/lib/components/ui/dialog/dialog-close.svelte +0 -7
  62. package/src/lib/components/ui/dialog/dialog-content.svelte +0 -43
  63. package/src/lib/components/ui/dialog/dialog-description.svelte +0 -17
  64. package/src/lib/components/ui/dialog/dialog-footer.svelte +0 -20
  65. package/src/lib/components/ui/dialog/dialog-header.svelte +0 -20
  66. package/src/lib/components/ui/dialog/dialog-overlay.svelte +0 -20
  67. package/src/lib/components/ui/dialog/dialog-title.svelte +0 -17
  68. package/src/lib/components/ui/dialog/dialog-trigger.svelte +0 -7
  69. package/src/lib/components/ui/dialog/index.ts +0 -37
  70. package/src/lib/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte +0 -41
  71. package/src/lib/components/ui/dropdown-menu/dropdown-menu-content.svelte +0 -27
  72. package/src/lib/components/ui/dropdown-menu/dropdown-menu-group-heading.svelte +0 -22
  73. package/src/lib/components/ui/dropdown-menu/dropdown-menu-group.svelte +0 -7
  74. package/src/lib/components/ui/dropdown-menu/dropdown-menu-item.svelte +0 -27
  75. package/src/lib/components/ui/dropdown-menu/dropdown-menu-label.svelte +0 -24
  76. package/src/lib/components/ui/dropdown-menu/dropdown-menu-radio-group.svelte +0 -16
  77. package/src/lib/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte +0 -31
  78. package/src/lib/components/ui/dropdown-menu/dropdown-menu-separator.svelte +0 -17
  79. package/src/lib/components/ui/dropdown-menu/dropdown-menu-shortcut.svelte +0 -20
  80. package/src/lib/components/ui/dropdown-menu/dropdown-menu-sub-content.svelte +0 -20
  81. package/src/lib/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte +0 -29
  82. package/src/lib/components/ui/dropdown-menu/dropdown-menu-trigger.svelte +0 -7
  83. package/src/lib/components/ui/dropdown-menu/index.ts +0 -49
  84. package/src/lib/components/ui/input/index.ts +0 -7
  85. package/src/lib/components/ui/input/input.svelte +0 -52
  86. package/src/lib/components/ui/label/index.ts +0 -7
  87. package/src/lib/components/ui/label/label.svelte +0 -20
  88. package/src/lib/components/ui/popover/index.ts +0 -17
  89. package/src/lib/components/ui/popover/popover-content.svelte +0 -29
  90. package/src/lib/components/ui/popover/popover-trigger.svelte +0 -17
  91. package/src/lib/components/ui/select/index.ts +0 -37
  92. package/src/lib/components/ui/select/select-content.svelte +0 -40
  93. package/src/lib/components/ui/select/select-group-heading.svelte +0 -21
  94. package/src/lib/components/ui/select/select-group.svelte +0 -7
  95. package/src/lib/components/ui/select/select-item.svelte +0 -38
  96. package/src/lib/components/ui/select/select-label.svelte +0 -20
  97. package/src/lib/components/ui/select/select-scroll-down-button.svelte +0 -20
  98. package/src/lib/components/ui/select/select-scroll-up-button.svelte +0 -20
  99. package/src/lib/components/ui/select/select-separator.svelte +0 -18
  100. package/src/lib/components/ui/select/select-trigger.svelte +0 -29
  101. package/src/lib/components/ui/separator/index.ts +0 -7
  102. package/src/lib/components/ui/separator/separator.svelte +0 -21
  103. package/src/lib/components/ui/sheet/index.ts +0 -36
  104. package/src/lib/components/ui/sheet/sheet-close.svelte +0 -7
  105. package/src/lib/components/ui/sheet/sheet-content.svelte +0 -60
  106. package/src/lib/components/ui/sheet/sheet-description.svelte +0 -17
  107. package/src/lib/components/ui/sheet/sheet-footer.svelte +0 -20
  108. package/src/lib/components/ui/sheet/sheet-header.svelte +0 -20
  109. package/src/lib/components/ui/sheet/sheet-overlay.svelte +0 -20
  110. package/src/lib/components/ui/sheet/sheet-title.svelte +0 -17
  111. package/src/lib/components/ui/sheet/sheet-trigger.svelte +0 -7
  112. package/src/lib/components/ui/sidebar/constants.ts +0 -6
  113. package/src/lib/components/ui/sidebar/context.svelte.ts +0 -79
  114. package/src/lib/components/ui/sidebar/index.ts +0 -75
  115. package/src/lib/components/ui/sidebar/sidebar-content.svelte +0 -24
  116. package/src/lib/components/ui/sidebar/sidebar-footer.svelte +0 -21
  117. package/src/lib/components/ui/sidebar/sidebar-group-action.svelte +0 -36
  118. package/src/lib/components/ui/sidebar/sidebar-group-content.svelte +0 -21
  119. package/src/lib/components/ui/sidebar/sidebar-group-label.svelte +0 -34
  120. package/src/lib/components/ui/sidebar/sidebar-group.svelte +0 -21
  121. package/src/lib/components/ui/sidebar/sidebar-header.svelte +0 -21
  122. package/src/lib/components/ui/sidebar/sidebar-input.svelte +0 -21
  123. package/src/lib/components/ui/sidebar/sidebar-inset.svelte +0 -24
  124. package/src/lib/components/ui/sidebar/sidebar-menu-action.svelte +0 -43
  125. package/src/lib/components/ui/sidebar/sidebar-menu-badge.svelte +0 -29
  126. package/src/lib/components/ui/sidebar/sidebar-menu-button.svelte +0 -101
  127. package/src/lib/components/ui/sidebar/sidebar-menu-item.svelte +0 -21
  128. package/src/lib/components/ui/sidebar/sidebar-menu-skeleton.svelte +0 -36
  129. package/src/lib/components/ui/sidebar/sidebar-menu-sub-button.svelte +0 -43
  130. package/src/lib/components/ui/sidebar/sidebar-menu-sub-item.svelte +0 -21
  131. package/src/lib/components/ui/sidebar/sidebar-menu-sub.svelte +0 -25
  132. package/src/lib/components/ui/sidebar/sidebar-menu.svelte +0 -21
  133. package/src/lib/components/ui/sidebar/sidebar-provider.svelte +0 -53
  134. package/src/lib/components/ui/sidebar/sidebar-rail.svelte +0 -36
  135. package/src/lib/components/ui/sidebar/sidebar-separator.svelte +0 -19
  136. package/src/lib/components/ui/sidebar/sidebar-trigger.svelte +0 -35
  137. package/src/lib/components/ui/sidebar/sidebar.svelte +0 -101
  138. package/src/lib/components/ui/skeleton/index.ts +0 -7
  139. package/src/lib/components/ui/skeleton/skeleton.svelte +0 -17
  140. package/src/lib/components/ui/tabs/index.ts +0 -16
  141. package/src/lib/components/ui/tabs/tabs-content.svelte +0 -17
  142. package/src/lib/components/ui/tabs/tabs-list.svelte +0 -16
  143. package/src/lib/components/ui/tabs/tabs-trigger.svelte +0 -20
  144. package/src/lib/components/ui/tabs/tabs.svelte +0 -19
  145. package/src/lib/components/ui/textarea/index.ts +0 -7
  146. package/src/lib/components/ui/textarea/textarea.svelte +0 -22
  147. package/src/lib/components/ui/tooltip/index.ts +0 -21
  148. package/src/lib/components/ui/tooltip/tooltip-content.svelte +0 -47
  149. package/src/lib/components/ui/tooltip/tooltip-trigger.svelte +0 -7
  150. package/src/lib/hooks/is-mobile.svelte.ts +0 -9
  151. package/src/lib/utils.ts +0 -13
@@ -1,21 +0,0 @@
1
- <script lang="ts">
2
- import type { HTMLAttributes } from 'svelte/elements';
3
- import { cn, type WithElementRef } from '@lib/utils.js';
4
-
5
- let {
6
- ref = $bindable(null),
7
- class: className,
8
- children,
9
- ...restProps
10
- }: WithElementRef<HTMLAttributes<HTMLElement>> = $props();
11
- </script>
12
-
13
- <div
14
- bind:this={ref}
15
- data-slot="sidebar-group"
16
- data-sidebar="group"
17
- class={cn('relative flex w-full min-w-0 flex-col p-2', className)}
18
- {...restProps}
19
- >
20
- {@render children?.()}
21
- </div>
@@ -1,21 +0,0 @@
1
- <script lang="ts">
2
- import type { HTMLAttributes } from 'svelte/elements';
3
- import { cn, type WithElementRef } from '@lib/utils.js';
4
-
5
- let {
6
- ref = $bindable(null),
7
- class: className,
8
- children,
9
- ...restProps
10
- }: WithElementRef<HTMLAttributes<HTMLElement>> = $props();
11
- </script>
12
-
13
- <div
14
- bind:this={ref}
15
- data-slot="sidebar-header"
16
- data-sidebar="header"
17
- class={cn('flex flex-col gap-2 p-2', className)}
18
- {...restProps}
19
- >
20
- {@render children?.()}
21
- </div>
@@ -1,21 +0,0 @@
1
- <script lang="ts">
2
- import type { ComponentProps } from 'svelte';
3
- import { Input } from '@lib/components/ui/input/index.js';
4
- import { cn } from '@lib/utils.js';
5
-
6
- let {
7
- ref = $bindable(null),
8
- value = $bindable(''),
9
- class: className,
10
- ...restProps
11
- }: ComponentProps<typeof Input> = $props();
12
- </script>
13
-
14
- <Input
15
- bind:ref
16
- bind:value
17
- data-slot="sidebar-input"
18
- data-sidebar="input"
19
- class={cn('bg-background h-8 w-full shadow-none', className)}
20
- {...restProps}
21
- />
@@ -1,24 +0,0 @@
1
- <script lang="ts">
2
- import { cn, type WithElementRef } from '@lib/utils.js';
3
- import type { HTMLAttributes } from 'svelte/elements';
4
-
5
- let {
6
- ref = $bindable(null),
7
- class: className,
8
- children,
9
- ...restProps
10
- }: WithElementRef<HTMLAttributes<HTMLElement>> = $props();
11
- </script>
12
-
13
- <main
14
- bind:this={ref}
15
- data-slot="sidebar-inset"
16
- class={cn(
17
- 'bg-background relative flex w-full flex-1 flex-col',
18
- 'md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm',
19
- className
20
- )}
21
- {...restProps}
22
- >
23
- {@render children?.()}
24
- </main>
@@ -1,43 +0,0 @@
1
- <script lang="ts">
2
- import { cn, type WithElementRef } from '@lib/utils.js';
3
- import type { Snippet } from 'svelte';
4
- import type { HTMLButtonAttributes } from 'svelte/elements';
5
-
6
- let {
7
- ref = $bindable(null),
8
- class: className,
9
- showOnHover = false,
10
- children,
11
- child,
12
- ...restProps
13
- }: WithElementRef<HTMLButtonAttributes> & {
14
- child?: Snippet<[{ props: Record<string, unknown> }]>;
15
- showOnHover?: boolean;
16
- } = $props();
17
-
18
- const mergedProps = $derived({
19
- class: cn(
20
- 'text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground outline-hidden absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',
21
- // Increases the hit area of the button on mobile.
22
- 'after:absolute after:-inset-2 md:after:hidden',
23
- 'peer-data-[size=sm]/menu-button:top-1',
24
- 'peer-data-[size=default]/menu-button:top-1.5',
25
- 'peer-data-[size=lg]/menu-button:top-2.5',
26
- 'group-data-[collapsible=icon]:hidden',
27
- showOnHover &&
28
- 'peer-data-[active=true]/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 md:opacity-0',
29
- className
30
- ),
31
- 'data-slot': 'sidebar-menu-action',
32
- 'data-sidebar': 'menu-action',
33
- ...restProps
34
- });
35
- </script>
36
-
37
- {#if child}
38
- {@render child({ props: mergedProps })}
39
- {:else}
40
- <button bind:this={ref} {...mergedProps}>
41
- {@render children?.()}
42
- </button>
43
- {/if}
@@ -1,29 +0,0 @@
1
- <script lang="ts">
2
- import { cn, type WithElementRef } from '@lib/utils.js';
3
- import type { HTMLAttributes } from 'svelte/elements';
4
-
5
- let {
6
- ref = $bindable(null),
7
- class: className,
8
- children,
9
- ...restProps
10
- }: WithElementRef<HTMLAttributes<HTMLElement>> = $props();
11
- </script>
12
-
13
- <div
14
- bind:this={ref}
15
- data-slot="sidebar-menu-badge"
16
- data-sidebar="menu-badge"
17
- class={cn(
18
- 'text-sidebar-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums',
19
- 'peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground',
20
- 'peer-data-[size=sm]/menu-button:top-1',
21
- 'peer-data-[size=default]/menu-button:top-1.5',
22
- 'peer-data-[size=lg]/menu-button:top-2.5',
23
- 'group-data-[collapsible=icon]:hidden',
24
- className
25
- )}
26
- {...restProps}
27
- >
28
- {@render children?.()}
29
- </div>
@@ -1,101 +0,0 @@
1
- <script lang="ts" module>
2
- import { tv, type VariantProps } from 'tailwind-variants';
3
-
4
- export const sidebarMenuButtonVariants = tv({
5
- base: 'peer/menu-button outline-hidden ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground group-has-data-[sidebar=menu-action]/menu-item:pr-8 data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm transition-[width,height,padding] focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:font-medium [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0',
6
- variants: {
7
- variant: {
8
- default: 'hover:bg-sidebar-accent hover:text-sidebar-accent-foreground',
9
- outline:
10
- 'bg-background hover:bg-sidebar-accent hover:text-sidebar-accent-foreground shadow-[0_0_0_1px_var(--sidebar-border)] hover:shadow-[0_0_0_1px_var(--sidebar-accent)]'
11
- },
12
- size: {
13
- default: 'h-8 text-sm',
14
- sm: 'h-7 text-xs',
15
- lg: 'group-data-[collapsible=icon]:p-0! h-12 text-sm'
16
- }
17
- },
18
- defaultVariants: {
19
- variant: 'default',
20
- size: 'default'
21
- }
22
- });
23
-
24
- export type SidebarMenuButtonVariant = VariantProps<typeof sidebarMenuButtonVariants>['variant'];
25
- export type SidebarMenuButtonSize = VariantProps<typeof sidebarMenuButtonVariants>['size'];
26
- </script>
27
-
28
- <script lang="ts">
29
- import * as Tooltip from '@lib/components/ui/tooltip/index.js';
30
- import { cn, type WithElementRef, type WithoutChildrenOrChild } from '@lib/utils.js';
31
- import { mergeProps } from 'bits-ui';
32
- import type { ComponentProps, Snippet } from 'svelte';
33
- import type { HTMLAttributes } from 'svelte/elements';
34
- import { useSidebar } from './context.svelte.js';
35
-
36
- let {
37
- ref = $bindable(null),
38
- class: className,
39
- children,
40
- child,
41
- variant = 'default',
42
- size = 'default',
43
- isActive = false,
44
- tooltipContent,
45
- tooltipContentProps,
46
- ...restProps
47
- }: WithElementRef<HTMLAttributes<HTMLButtonElement>, HTMLButtonElement> & {
48
- isActive?: boolean;
49
- variant?: SidebarMenuButtonVariant;
50
- size?: SidebarMenuButtonSize;
51
- tooltipContent?: Snippet | string;
52
- tooltipContentProps?: WithoutChildrenOrChild<ComponentProps<typeof Tooltip.Content>>;
53
- child?: Snippet<[{ props: Record<string, unknown> }]>;
54
- } = $props();
55
-
56
- const sidebar = useSidebar();
57
-
58
- const buttonProps = $derived({
59
- class: cn(sidebarMenuButtonVariants({ variant, size }), className),
60
- 'data-slot': 'sidebar-menu-button',
61
- 'data-sidebar': 'menu-button',
62
- 'data-size': size,
63
- 'data-active': isActive,
64
- ...restProps
65
- });
66
- </script>
67
-
68
- {#snippet Button({ props }: { props?: Record<string, unknown> })}
69
- {@const mergedProps = mergeProps(buttonProps, props)}
70
- {#if child}
71
- {@render child({ props: mergedProps })}
72
- {:else}
73
- <button bind:this={ref} {...mergedProps}>
74
- {@render children?.()}
75
- </button>
76
- {/if}
77
- {/snippet}
78
-
79
- {#if !tooltipContent}
80
- {@render Button({})}
81
- {:else}
82
- <Tooltip.Root>
83
- <Tooltip.Trigger>
84
- {#snippet child({ props })}
85
- {@render Button({ props })}
86
- {/snippet}
87
- </Tooltip.Trigger>
88
- <Tooltip.Content
89
- side="right"
90
- align="center"
91
- hidden={sidebar.state !== 'collapsed' || sidebar.isMobile}
92
- {...tooltipContentProps}
93
- >
94
- {#if typeof tooltipContent === 'string'}
95
- {tooltipContent}
96
- {:else if tooltipContent}
97
- {@render tooltipContent()}
98
- {/if}
99
- </Tooltip.Content>
100
- </Tooltip.Root>
101
- {/if}
@@ -1,21 +0,0 @@
1
- <script lang="ts">
2
- import { cn, type WithElementRef } from '@lib/utils.js';
3
- import type { HTMLAttributes } from 'svelte/elements';
4
-
5
- let {
6
- ref = $bindable(null),
7
- class: className,
8
- children,
9
- ...restProps
10
- }: WithElementRef<HTMLAttributes<HTMLLIElement>, HTMLLIElement> = $props();
11
- </script>
12
-
13
- <li
14
- bind:this={ref}
15
- data-slot="sidebar-menu-item"
16
- data-sidebar="menu-item"
17
- class={cn('group/menu-item relative', className)}
18
- {...restProps}
19
- >
20
- {@render children?.()}
21
- </li>
@@ -1,36 +0,0 @@
1
- <script lang="ts">
2
- import { cn, type WithElementRef } from '@lib/utils.js';
3
- import { Skeleton } from '@lib/components/ui/skeleton/index.js';
4
- import type { HTMLAttributes } from 'svelte/elements';
5
-
6
- let {
7
- ref = $bindable(null),
8
- class: className,
9
- showIcon = false,
10
- children,
11
- ...restProps
12
- }: WithElementRef<HTMLAttributes<HTMLElement>> & {
13
- showIcon?: boolean;
14
- } = $props();
15
-
16
- // Random width between 50% and 90%
17
- const width = `${Math.floor(Math.random() * 40) + 50}%`;
18
- </script>
19
-
20
- <div
21
- bind:this={ref}
22
- data-slot="sidebar-menu-skeleton"
23
- data-sidebar="menu-skeleton"
24
- class={cn('flex h-8 items-center gap-2 rounded-md px-2', className)}
25
- {...restProps}
26
- >
27
- {#if showIcon}
28
- <Skeleton class="size-4 rounded-md" data-sidebar="menu-skeleton-icon" />
29
- {/if}
30
- <Skeleton
31
- class="max-w-(--skeleton-width) h-4 flex-1"
32
- data-sidebar="menu-skeleton-text"
33
- style="--skeleton-width: {width};"
34
- />
35
- {@render children?.()}
36
- </div>
@@ -1,43 +0,0 @@
1
- <script lang="ts">
2
- import { cn, type WithElementRef } from '@lib/utils.js';
3
- import type { Snippet } from 'svelte';
4
- import type { HTMLAnchorAttributes } from 'svelte/elements';
5
-
6
- let {
7
- ref = $bindable(null),
8
- children,
9
- child,
10
- class: className,
11
- size = 'md',
12
- isActive = false,
13
- ...restProps
14
- }: WithElementRef<HTMLAnchorAttributes> & {
15
- child?: Snippet<[{ props: Record<string, unknown> }]>;
16
- size?: 'sm' | 'md';
17
- isActive?: boolean;
18
- } = $props();
19
-
20
- const mergedProps = $derived({
21
- class: cn(
22
- 'text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground outline-hidden flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0',
23
- 'data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground',
24
- size === 'sm' && 'text-xs',
25
- size === 'md' && 'text-sm',
26
- 'group-data-[collapsible=icon]:hidden',
27
- className
28
- ),
29
- 'data-slot': 'sidebar-menu-sub-button',
30
- 'data-sidebar': 'menu-sub-button',
31
- 'data-size': size,
32
- 'data-active': isActive,
33
- ...restProps
34
- });
35
- </script>
36
-
37
- {#if child}
38
- {@render child({ props: mergedProps })}
39
- {:else}
40
- <a bind:this={ref} {...mergedProps}>
41
- {@render children?.()}
42
- </a>
43
- {/if}
@@ -1,21 +0,0 @@
1
- <script lang="ts">
2
- import { cn, type WithElementRef } from '@lib/utils.js';
3
- import type { HTMLAttributes } from 'svelte/elements';
4
-
5
- let {
6
- ref = $bindable(null),
7
- children,
8
- class: className,
9
- ...restProps
10
- }: WithElementRef<HTMLAttributes<HTMLLIElement>> = $props();
11
- </script>
12
-
13
- <li
14
- bind:this={ref}
15
- data-slot="sidebar-menu-sub-item"
16
- data-sidebar="menu-sub-item"
17
- class={cn('group/menu-sub-item relative', className)}
18
- {...restProps}
19
- >
20
- {@render children?.()}
21
- </li>
@@ -1,25 +0,0 @@
1
- <script lang="ts">
2
- import { cn, type WithElementRef } from '@lib/utils.js';
3
- import type { HTMLAttributes } from 'svelte/elements';
4
-
5
- let {
6
- ref = $bindable(null),
7
- class: className,
8
- children,
9
- ...restProps
10
- }: WithElementRef<HTMLAttributes<HTMLUListElement>> = $props();
11
- </script>
12
-
13
- <ul
14
- bind:this={ref}
15
- data-slot="sidebar-menu-sub"
16
- data-sidebar="menu-sub"
17
- class={cn(
18
- 'border-sidebar-border mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l px-2.5 py-0.5',
19
- 'group-data-[collapsible=icon]:hidden',
20
- className
21
- )}
22
- {...restProps}
23
- >
24
- {@render children?.()}
25
- </ul>
@@ -1,21 +0,0 @@
1
- <script lang="ts">
2
- import { cn, type WithElementRef } from '@lib/utils.js';
3
- import type { HTMLAttributes } from 'svelte/elements';
4
-
5
- let {
6
- ref = $bindable(null),
7
- class: className,
8
- children,
9
- ...restProps
10
- }: WithElementRef<HTMLAttributes<HTMLUListElement>, HTMLUListElement> = $props();
11
- </script>
12
-
13
- <ul
14
- bind:this={ref}
15
- data-slot="sidebar-menu"
16
- data-sidebar="menu"
17
- class={cn('flex w-full min-w-0 flex-col gap-1', className)}
18
- {...restProps}
19
- >
20
- {@render children?.()}
21
- </ul>
@@ -1,53 +0,0 @@
1
- <script lang="ts">
2
- import * as Tooltip from '@lib/components/ui/tooltip/index.js';
3
- import { cn, type WithElementRef } from '@lib/utils.js';
4
- import type { HTMLAttributes } from 'svelte/elements';
5
- import {
6
- SIDEBAR_COOKIE_MAX_AGE,
7
- SIDEBAR_COOKIE_NAME,
8
- SIDEBAR_WIDTH,
9
- SIDEBAR_WIDTH_ICON
10
- } from './constants.js';
11
- import { setSidebar } from './context.svelte.js';
12
-
13
- let {
14
- ref = $bindable(null),
15
- open = $bindable(true),
16
- onOpenChange = () => {},
17
- class: className,
18
- style,
19
- children,
20
- ...restProps
21
- }: WithElementRef<HTMLAttributes<HTMLDivElement>> & {
22
- open?: boolean;
23
- onOpenChange?: (open: boolean) => void;
24
- } = $props();
25
-
26
- const sidebar = setSidebar({
27
- open: () => open,
28
- setOpen: (value: boolean) => {
29
- open = value;
30
- onOpenChange(value);
31
-
32
- // This sets the cookie to keep the sidebar state.
33
- document.cookie = `${SIDEBAR_COOKIE_NAME}=${open}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;
34
- }
35
- });
36
- </script>
37
-
38
- <svelte:window onkeydown={sidebar.handleShortcutKeydown} />
39
-
40
- <Tooltip.Provider delayDuration={0}>
41
- <div
42
- data-slot="sidebar-wrapper"
43
- style="--sidebar-width: {SIDEBAR_WIDTH}; --sidebar-width-icon: {SIDEBAR_WIDTH_ICON}; {style}"
44
- class={cn(
45
- 'group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full',
46
- className
47
- )}
48
- bind:this={ref}
49
- {...restProps}
50
- >
51
- {@render children?.()}
52
- </div>
53
- </Tooltip.Provider>
@@ -1,36 +0,0 @@
1
- <script lang="ts">
2
- import { cn, type WithElementRef } from '@lib/utils.js';
3
- import type { HTMLAttributes } from 'svelte/elements';
4
- import { useSidebar } from './context.svelte.js';
5
-
6
- let {
7
- ref = $bindable(null),
8
- class: className,
9
- children,
10
- ...restProps
11
- }: WithElementRef<HTMLAttributes<HTMLButtonElement>, HTMLButtonElement> = $props();
12
-
13
- const sidebar = useSidebar();
14
- </script>
15
-
16
- <button
17
- bind:this={ref}
18
- data-sidebar="rail"
19
- data-slot="sidebar-rail"
20
- aria-label="Toggle Sidebar"
21
- tabIndex={-1}
22
- onclick={sidebar.toggle}
23
- title="Toggle Sidebar"
24
- class={cn(
25
- 'hover:after:bg-sidebar-border absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-[calc(1/2*100%-1px)] after:w-[2px] group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex',
26
- 'in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize',
27
- '[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize',
28
- 'hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full',
29
- '[[data-side=left][data-collapsible=offcanvas]_&]:-right-2',
30
- '[[data-side=right][data-collapsible=offcanvas]_&]:-left-2',
31
- className
32
- )}
33
- {...restProps}
34
- >
35
- {@render children?.()}
36
- </button>
@@ -1,19 +0,0 @@
1
- <script lang="ts">
2
- import { Separator } from '@lib/components/ui/separator/index.js';
3
- import { cn } from '@lib/utils.js';
4
- import type { ComponentProps } from 'svelte';
5
-
6
- let {
7
- ref = $bindable(null),
8
- class: className,
9
- ...restProps
10
- }: ComponentProps<typeof Separator> = $props();
11
- </script>
12
-
13
- <Separator
14
- bind:ref
15
- data-slot="sidebar-separator"
16
- data-sidebar="separator"
17
- class={cn('bg-sidebar-border', className)}
18
- {...restProps}
19
- />
@@ -1,35 +0,0 @@
1
- <script lang="ts">
2
- import { Button } from '@lib/components/ui/button/index.js';
3
- import { cn } from '@lib/utils.js';
4
- import PanelLeftIcon from '@lucide/svelte/icons/panel-left';
5
- import type { ComponentProps } from 'svelte';
6
- import { useSidebar } from './context.svelte.js';
7
-
8
- let {
9
- ref = $bindable(null),
10
- class: className,
11
- onclick,
12
- ...restProps
13
- }: ComponentProps<typeof Button> & {
14
- onclick?: (e: MouseEvent) => void;
15
- } = $props();
16
-
17
- const sidebar = useSidebar();
18
- </script>
19
-
20
- <Button
21
- data-sidebar="trigger"
22
- data-slot="sidebar-trigger"
23
- variant="ghost"
24
- size="icon"
25
- class={cn('size-7', className)}
26
- type="button"
27
- onclick={(e) => {
28
- onclick?.(e);
29
- sidebar.toggle();
30
- }}
31
- {...restProps}
32
- >
33
- <PanelLeftIcon />
34
- <span class="sr-only">Toggle Sidebar</span>
35
- </Button>