@svadmin/ui 0.29.0 → 0.29.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 (224) hide show
  1. package/package.json +20 -9
  2. package/src/README.md +0 -18
  3. package/src/actions.ts +0 -110
  4. package/src/app.css +0 -519
  5. package/src/component-registry.svelte.ts +0 -60
  6. package/src/components/AICommandBar.svelte +0 -180
  7. package/src/components/AboutSettings.svelte +0 -106
  8. package/src/components/AdminApp.svelte +0 -199
  9. package/src/components/AnimatedCounter.svelte +0 -46
  10. package/src/components/AnomalyBadge.svelte +0 -65
  11. package/src/components/AppearanceSettings.svelte +0 -183
  12. package/src/components/AuditLogDrawer.svelte +0 -93
  13. package/src/components/AuditLogViewer.svelte +0 -226
  14. package/src/components/Authenticated.svelte +0 -51
  15. package/src/components/AutoForm.svelte +0 -242
  16. package/src/components/AutoSaveIndicator.svelte +0 -35
  17. package/src/components/AutoTable.svelte +0 -839
  18. package/src/components/Breadcrumbs.svelte +0 -58
  19. package/src/components/CanAccess.svelte +0 -23
  20. package/src/components/CatchAllNavigate.svelte +0 -21
  21. package/src/components/ChatDialog.svelte +0 -535
  22. package/src/components/ComboboxField.svelte +0 -129
  23. package/src/components/CommandPalette.svelte +0 -135
  24. package/src/components/ConfigErrorScreen.svelte +0 -126
  25. package/src/components/ConfirmDialog.svelte +0 -53
  26. package/src/components/CopilotPanel.svelte +0 -163
  27. package/src/components/CreatePage.svelte +0 -39
  28. package/src/components/DevTools.svelte +0 -149
  29. package/src/components/DraggableGrid.svelte +0 -86
  30. package/src/components/DraggableHeader.svelte +0 -112
  31. package/src/components/DrawerForm.svelte +0 -35
  32. package/src/components/EditPage.svelte +0 -52
  33. package/src/components/EmptyState.svelte +0 -31
  34. package/src/components/ErrorBoundary.svelte +0 -49
  35. package/src/components/ErrorComponent.svelte +0 -36
  36. package/src/components/FieldRenderer.svelte +0 -357
  37. package/src/components/ForgotPasswordPage.svelte +0 -112
  38. package/src/components/Header.svelte +0 -94
  39. package/src/components/InferencerPanel.svelte +0 -192
  40. package/src/components/InfiniteList.svelte +0 -93
  41. package/src/components/InlineEdit.svelte +0 -88
  42. package/src/components/InsightCard.svelte +0 -98
  43. package/src/components/KeyboardShortcuts.svelte +0 -61
  44. package/src/components/Layout.svelte +0 -167
  45. package/src/components/ListPage.svelte +0 -71
  46. package/src/components/LiveIndicator.svelte +0 -58
  47. package/src/components/LoginPage.svelte +0 -163
  48. package/src/components/MarkdownRenderer.svelte +0 -127
  49. package/src/components/ModalForm.svelte +0 -38
  50. package/src/components/NavigateToResource.svelte +0 -20
  51. package/src/components/PageHeader.svelte +0 -39
  52. package/src/components/PageSkeleton.svelte +0 -71
  53. package/src/components/PasswordInput.svelte +0 -96
  54. package/src/components/PermissionMatrix.svelte +0 -185
  55. package/src/components/ProfilePage.svelte +0 -284
  56. package/src/components/RegisterPage.svelte +0 -112
  57. package/src/components/RolesSettings.svelte +0 -146
  58. package/src/components/SettingsPage.svelte +0 -113
  59. package/src/components/ShowPage.svelte +0 -73
  60. package/src/components/Sidebar.svelte +0 -417
  61. package/src/components/SidebarItem.svelte +0 -129
  62. package/src/components/SmartSuggest.svelte +0 -158
  63. package/src/components/StatsCard.svelte +0 -79
  64. package/src/components/StepsForm.svelte +0 -192
  65. package/src/components/TaskQueueDrawer.svelte +0 -158
  66. package/src/components/TenantSwitcher.svelte +0 -84
  67. package/src/components/ThemedTitle.svelte +0 -32
  68. package/src/components/Toast.svelte +0 -46
  69. package/src/components/TooltipButton.svelte +0 -42
  70. package/src/components/UndoableNotification.svelte +0 -69
  71. package/src/components/UpdatePasswordPage.svelte +0 -89
  72. package/src/components/VirtualTable.svelte +0 -76
  73. package/src/components/VoiceInput.svelte +0 -120
  74. package/src/components/buttons/CloneButton.svelte +0 -30
  75. package/src/components/buttons/CreateButton.svelte +0 -29
  76. package/src/components/buttons/DeleteButton.svelte +0 -59
  77. package/src/components/buttons/EditButton.svelte +0 -30
  78. package/src/components/buttons/ExportButton.svelte +0 -30
  79. package/src/components/buttons/ImportButton.svelte +0 -56
  80. package/src/components/buttons/ListButton.svelte +0 -23
  81. package/src/components/buttons/RefreshButton.svelte +0 -36
  82. package/src/components/buttons/SaveButton.svelte +0 -27
  83. package/src/components/buttons/ShowButton.svelte +0 -31
  84. package/src/components/buttons/index.ts +0 -10
  85. package/src/components/charts/BarChart.svelte +0 -69
  86. package/src/components/charts/LineChart.svelte +0 -115
  87. package/src/components/charts/PieChart.svelte +0 -95
  88. package/src/components/charts/index.ts +0 -3
  89. package/src/components/fieldComponentMap.ts +0 -79
  90. package/src/components/fields/ArrayField.svelte +0 -86
  91. package/src/components/fields/BooleanField.svelte +0 -13
  92. package/src/components/fields/DateField.svelte +0 -6
  93. package/src/components/fields/EmailField.svelte +0 -9
  94. package/src/components/fields/FileField.svelte +0 -14
  95. package/src/components/fields/ImageField.svelte +0 -9
  96. package/src/components/fields/JsonField.svelte +0 -72
  97. package/src/components/fields/MarkdownField.svelte +0 -9
  98. package/src/components/fields/MultiSelectField.svelte +0 -21
  99. package/src/components/fields/NumberField.svelte +0 -6
  100. package/src/components/fields/RelationField.svelte +0 -24
  101. package/src/components/fields/RichTextField.svelte +0 -35
  102. package/src/components/fields/SelectField.svelte +0 -14
  103. package/src/components/fields/TagField.svelte +0 -12
  104. package/src/components/fields/TextField.svelte +0 -11
  105. package/src/components/fields/UrlField.svelte +0 -14
  106. package/src/components/ui/alert/alert-description.svelte +0 -17
  107. package/src/components/ui/alert/alert-title.svelte +0 -17
  108. package/src/components/ui/alert/alert.svelte +0 -44
  109. package/src/components/ui/alert/index.ts +0 -15
  110. package/src/components/ui/alert-dialog/alert-dialog-content.svelte +0 -29
  111. package/src/components/ui/alert-dialog/alert-dialog-description.svelte +0 -16
  112. package/src/components/ui/alert-dialog/alert-dialog-footer.svelte +0 -11
  113. package/src/components/ui/alert-dialog/alert-dialog-header.svelte +0 -11
  114. package/src/components/ui/alert-dialog/alert-dialog-overlay.svelte +0 -16
  115. package/src/components/ui/alert-dialog/alert-dialog-portal.svelte +0 -6
  116. package/src/components/ui/alert-dialog/alert-dialog-title.svelte +0 -16
  117. package/src/components/ui/alert-dialog/index.ts +0 -20
  118. package/src/components/ui/avatar/avatar.svelte +0 -63
  119. package/src/components/ui/avatar/index.ts +0 -2
  120. package/src/components/ui/badge/badge.svelte +0 -49
  121. package/src/components/ui/badge/index.ts +0 -3
  122. package/src/components/ui/breadcrumb/breadcrumb-ellipsis.svelte +0 -18
  123. package/src/components/ui/breadcrumb/breadcrumb-item.svelte +0 -15
  124. package/src/components/ui/breadcrumb/breadcrumb-link.svelte +0 -15
  125. package/src/components/ui/breadcrumb/breadcrumb-list.svelte +0 -15
  126. package/src/components/ui/breadcrumb/breadcrumb-page.svelte +0 -18
  127. package/src/components/ui/breadcrumb/breadcrumb-separator.svelte +0 -22
  128. package/src/components/ui/breadcrumb/breadcrumb.svelte +0 -11
  129. package/src/components/ui/breadcrumb/index.ts +0 -7
  130. package/src/components/ui/button/button.svelte +0 -90
  131. package/src/components/ui/button/index.ts +0 -18
  132. package/src/components/ui/card/card-action.svelte +0 -23
  133. package/src/components/ui/card/card-content.svelte +0 -20
  134. package/src/components/ui/card/card-description.svelte +0 -20
  135. package/src/components/ui/card/card-footer.svelte +0 -20
  136. package/src/components/ui/card/card-header.svelte +0 -23
  137. package/src/components/ui/card/card-title.svelte +0 -15
  138. package/src/components/ui/card/card.svelte +0 -22
  139. package/src/components/ui/card/index.ts +0 -25
  140. package/src/components/ui/checkbox/checkbox.svelte +0 -39
  141. package/src/components/ui/checkbox/index.ts +0 -6
  142. package/src/components/ui/collapsible/index.ts +0 -7
  143. package/src/components/ui/command/command-dialog.svelte +0 -31
  144. package/src/components/ui/command/index.ts +0 -2
  145. package/src/components/ui/context-menu/index.ts +0 -11
  146. package/src/components/ui/dialog/dialog-close.svelte +0 -11
  147. package/src/components/ui/dialog/dialog-content.svelte +0 -48
  148. package/src/components/ui/dialog/dialog-description.svelte +0 -17
  149. package/src/components/ui/dialog/dialog-footer.svelte +0 -32
  150. package/src/components/ui/dialog/dialog-header.svelte +0 -20
  151. package/src/components/ui/dialog/dialog-overlay.svelte +0 -17
  152. package/src/components/ui/dialog/dialog-portal.svelte +0 -7
  153. package/src/components/ui/dialog/dialog-title.svelte +0 -17
  154. package/src/components/ui/dialog/dialog-trigger.svelte +0 -11
  155. package/src/components/ui/dialog/dialog.svelte +0 -7
  156. package/src/components/ui/dialog/index.ts +0 -34
  157. package/src/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte +0 -43
  158. package/src/components/ui/dropdown-menu/dropdown-menu-content.svelte +0 -35
  159. package/src/components/ui/dropdown-menu/dropdown-menu-item.svelte +0 -36
  160. package/src/components/ui/dropdown-menu/dropdown-menu-separator.svelte +0 -10
  161. package/src/components/ui/dropdown-menu/dropdown-menu-trigger.svelte +0 -27
  162. package/src/components/ui/dropdown-menu/dropdown-menu.svelte +0 -45
  163. package/src/components/ui/dropdown-menu/index.ts +0 -21
  164. package/src/components/ui/input/index.ts +0 -7
  165. package/src/components/ui/input/input.svelte +0 -48
  166. package/src/components/ui/label/index.ts +0 -1
  167. package/src/components/ui/label/label.svelte +0 -18
  168. package/src/components/ui/pagination/index.ts +0 -7
  169. package/src/components/ui/pagination/pagination-content.svelte +0 -11
  170. package/src/components/ui/pagination/pagination-ellipsis.svelte +0 -12
  171. package/src/components/ui/pagination/pagination-item.svelte +0 -11
  172. package/src/components/ui/pagination/pagination-link.svelte +0 -26
  173. package/src/components/ui/pagination/pagination-next.svelte +0 -22
  174. package/src/components/ui/pagination/pagination-previous.svelte +0 -22
  175. package/src/components/ui/pagination/pagination.svelte +0 -11
  176. package/src/components/ui/popover/index.ts +0 -12
  177. package/src/components/ui/popover/popover-content.svelte +0 -25
  178. package/src/components/ui/progress/index.ts +0 -1
  179. package/src/components/ui/progress/progress.svelte +0 -22
  180. package/src/components/ui/scroll-area/index.ts +0 -1
  181. package/src/components/ui/scroll-area/scroll-area.svelte +0 -20
  182. package/src/components/ui/select/index.ts +0 -2
  183. package/src/components/ui/select/select.svelte +0 -36
  184. package/src/components/ui/separator/index.ts +0 -7
  185. package/src/components/ui/separator/separator.svelte +0 -23
  186. package/src/components/ui/sheet/index.ts +0 -16
  187. package/src/components/ui/sheet/sheet-content.svelte +0 -28
  188. package/src/components/ui/sheet/sheet-description.svelte +0 -22
  189. package/src/components/ui/sheet/sheet-footer.svelte +0 -22
  190. package/src/components/ui/sheet/sheet-header.svelte +0 -22
  191. package/src/components/ui/sheet/sheet-title.svelte +0 -22
  192. package/src/components/ui/sheet/sheet.svelte +0 -78
  193. package/src/components/ui/skeleton/index.ts +0 -2
  194. package/src/components/ui/skeleton/skeleton.svelte +0 -21
  195. package/src/components/ui/switch/index.ts +0 -2
  196. package/src/components/ui/switch/switch.svelte +0 -49
  197. package/src/components/ui/table/index.ts +0 -28
  198. package/src/components/ui/table/table-body.svelte +0 -15
  199. package/src/components/ui/table/table-caption.svelte +0 -20
  200. package/src/components/ui/table/table-cell.svelte +0 -15
  201. package/src/components/ui/table/table-footer.svelte +0 -20
  202. package/src/components/ui/table/table-head.svelte +0 -15
  203. package/src/components/ui/table/table-header.svelte +0 -20
  204. package/src/components/ui/table/table-row.svelte +0 -15
  205. package/src/components/ui/table/table.svelte +0 -17
  206. package/src/components/ui/tabs/index.ts +0 -15
  207. package/src/components/ui/tabs/tabs-content.svelte +0 -30
  208. package/src/components/ui/tabs/tabs-list.svelte +0 -26
  209. package/src/components/ui/tabs/tabs-trigger.svelte +0 -37
  210. package/src/components/ui/tabs/tabs.svelte +0 -27
  211. package/src/components/ui/textarea/index.ts +0 -2
  212. package/src/components/ui/textarea/textarea.svelte +0 -24
  213. package/src/components/ui/tooltip/index.ts +0 -19
  214. package/src/components/ui/tooltip/tooltip-content.svelte +0 -52
  215. package/src/components/ui/tooltip/tooltip-portal.svelte +0 -7
  216. package/src/components/ui/tooltip/tooltip-provider.svelte +0 -7
  217. package/src/components/ui/tooltip/tooltip-trigger.svelte +0 -7
  218. package/src/components/ui/tooltip/tooltip.svelte +0 -10
  219. package/src/editor-config.svelte.ts +0 -23
  220. package/src/index.ts +0 -155
  221. package/src/markdown-deps.d.ts +0 -21
  222. package/src/router-state.svelte.ts +0 -65
  223. package/src/types.ts +0 -33
  224. package/src/utils.ts +0 -28
@@ -1,17 +0,0 @@
1
- <script lang="ts">
2
- import { Dialog as DialogPrimitive } from "bits-ui";
3
- import { cn } from "../../../utils.js";
4
-
5
- let {
6
- ref = $bindable(null),
7
- class: className,
8
- ...restProps
9
- }: DialogPrimitive.TitleProps = $props();
10
- </script>
11
-
12
- <DialogPrimitive.Title
13
- bind:ref
14
- data-slot="dialog-title"
15
- class={cn("text-lg leading-none font-semibold", className)}
16
- {...restProps}
17
- />
@@ -1,11 +0,0 @@
1
- <script lang="ts">
2
- import { Dialog as DialogPrimitive } from "bits-ui";
3
-
4
- let {
5
- ref = $bindable(null),
6
- type = "button",
7
- ...restProps
8
- }: DialogPrimitive.TriggerProps = $props();
9
- </script>
10
-
11
- <DialogPrimitive.Trigger bind:ref data-slot="dialog-trigger" {type} {...restProps} />
@@ -1,7 +0,0 @@
1
- <script lang="ts">
2
- import { Dialog as DialogPrimitive } from "bits-ui";
3
-
4
- let { open = $bindable(false), ...restProps }: DialogPrimitive.RootProps = $props();
5
- </script>
6
-
7
- <DialogPrimitive.Root bind:open {...restProps} />
@@ -1,34 +0,0 @@
1
- import Root from "./dialog.svelte";
2
- import Portal from "./dialog-portal.svelte";
3
- import Title from "./dialog-title.svelte";
4
- import Footer from "./dialog-footer.svelte";
5
- import Header from "./dialog-header.svelte";
6
- import Overlay from "./dialog-overlay.svelte";
7
- import Content from "./dialog-content.svelte";
8
- import Description from "./dialog-description.svelte";
9
- import Trigger from "./dialog-trigger.svelte";
10
- import Close from "./dialog-close.svelte";
11
-
12
- export {
13
- Root,
14
- Title,
15
- Portal,
16
- Footer,
17
- Header,
18
- Trigger,
19
- Overlay,
20
- Content,
21
- Description,
22
- Close,
23
- //
24
- Root as Dialog,
25
- Title as DialogTitle,
26
- Portal as DialogPortal,
27
- Footer as DialogFooter,
28
- Header as DialogHeader,
29
- Trigger as DialogTrigger,
30
- Overlay as DialogOverlay,
31
- Content as DialogContent,
32
- Description as DialogDescription,
33
- Close as DialogClose,
34
- };
@@ -1,43 +0,0 @@
1
- <script lang="ts">
2
- import { cn, type WithElementRef } from "../../../utils.js";
3
- import type { HTMLButtonAttributes } from "svelte/elements";
4
-
5
- type Props = WithElementRef<HTMLButtonAttributes, HTMLButtonElement> & {
6
- checked?: boolean;
7
- onCheckedChange?: (checked: boolean) => void;
8
- };
9
-
10
- let {
11
- ref = $bindable(null),
12
- class: className,
13
- checked = false,
14
- onCheckedChange,
15
- children,
16
- ...restProps
17
- }: Props = $props();
18
-
19
- function handleClick() {
20
- const next = !checked;
21
- onCheckedChange?.(next);
22
- }
23
- </script>
24
-
25
- <button
26
- bind:this={ref}
27
- role="menuitemcheckbox"
28
- aria-checked={checked}
29
- data-slot="dropdown-menu-checkbox-item"
30
- class={cn(
31
- "relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none hover:bg-accent hover:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
32
- className
33
- )}
34
- onclick={handleClick}
35
- {...restProps}
36
- >
37
- <span class="pointer-events-none absolute left-2 flex size-3.5 items-center justify-center">
38
- {#if checked}
39
- <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20 6 9 17l-5-5"/></svg>
40
- {/if}
41
- </span>
42
- {@render children?.()}
43
- </button>
@@ -1,35 +0,0 @@
1
- <script lang="ts">
2
- import { cn, type WithElementRef } from "../../../utils.js";
3
- import type { HTMLAttributes } from "svelte/elements";
4
- import { getContext } from "svelte";
5
-
6
- type Props = WithElementRef<HTMLAttributes<HTMLDivElement>> & {
7
- align?: "start" | "center" | "end";
8
- };
9
-
10
- let {
11
- ref = $bindable(null),
12
- align = "end",
13
- class: className,
14
- children,
15
- ...restProps
16
- }: Props = $props();
17
-
18
- let isOpen = $derived(getContext<() => boolean>("svadmin-dropdown-open")?.() ?? true);
19
- </script>
20
-
21
- {#if isOpen}
22
- <div
23
- bind:this={ref}
24
- data-slot="dropdown-menu-content"
25
- class={cn(
26
- "bg-popover text-popover-foreground z-50 min-w-[8rem] overflow-hidden rounded-lg border p-1 shadow-lg",
27
- "absolute mt-1 animate-in fade-in-0 zoom-in-95",
28
- align === "end" ? "right-0" : align === "start" ? "left-0" : "left-1/2 -translate-x-1/2",
29
- className
30
- )}
31
- {...restProps}
32
- >
33
- {@render children?.()}
34
- </div>
35
- {/if}
@@ -1,36 +0,0 @@
1
- <script lang="ts">
2
- import { cn, type WithElementRef } from "../../../utils.js";
3
- import type { HTMLButtonAttributes } from "svelte/elements";
4
-
5
- type Props = WithElementRef<HTMLButtonAttributes, HTMLButtonElement> & {
6
- inset?: boolean;
7
- destructive?: boolean;
8
- };
9
-
10
- let {
11
- ref = $bindable(null),
12
- inset = false,
13
- destructive = false,
14
- class: className,
15
- children,
16
- ...restProps
17
- }: Props = $props();
18
- </script>
19
-
20
- <button
21
- bind:this={ref}
22
- type="button"
23
- data-slot="dropdown-menu-item"
24
- class={cn(
25
- "relative flex w-full cursor-pointer select-none items-center gap-2 rounded-md px-2 py-1.5 text-sm outline-none transition-colors [&_svg]:size-4 [&_svg]:shrink-0",
26
- destructive
27
- ? "text-destructive hover:bg-destructive/10 focus:bg-destructive/10"
28
- : "hover:bg-accent focus:bg-accent focus:text-accent-foreground",
29
- "disabled:pointer-events-none disabled:opacity-50",
30
- inset && "pl-8",
31
- className
32
- )}
33
- {...restProps}
34
- >
35
- {@render children?.()}
36
- </button>
@@ -1,10 +0,0 @@
1
- <script lang="ts">
2
- import { cn } from "../../../utils.js";
3
-
4
- let { class: className }: { class?: string } = $props();
5
- </script>
6
-
7
- <div
8
- data-slot="dropdown-menu-separator"
9
- class={cn("-mx-1 my-1 h-px bg-border", className)}
10
- ></div>
@@ -1,27 +0,0 @@
1
- <script lang="ts">
2
- import { cn, type WithElementRef } from "../../../utils.js";
3
- import type { HTMLButtonAttributes } from "svelte/elements";
4
-
5
- type Props = WithElementRef<HTMLButtonAttributes, HTMLButtonElement>;
6
-
7
- let {
8
- ref = $bindable(null),
9
- class: className,
10
- children,
11
- child,
12
- ...restProps
13
- }: Props & { child?: import("svelte").Snippet<[{ props: Record<string, unknown> }]> } = $props();
14
- </script>
15
-
16
- {#if child}
17
- {@render child({ props: { ...restProps, class: cn(className), "data-slot": "dropdown-menu-trigger" } })}
18
- {:else}
19
- <button
20
- bind:this={ref}
21
- data-slot="dropdown-menu-trigger"
22
- class={cn(className)}
23
- {...restProps}
24
- >
25
- {@render children?.()}
26
- </button>
27
- {/if}
@@ -1,45 +0,0 @@
1
- <script lang="ts">
2
- import { cn, type WithElementRef } from "../../../utils.js";
3
- import type { HTMLAttributes, HTMLButtonAttributes } from "svelte/elements";
4
-
5
- type Props = WithElementRef<HTMLAttributes<HTMLDivElement>> & {
6
- open?: boolean;
7
- onOpenChange?: (open: boolean) => void;
8
- };
9
-
10
- let {
11
- ref = $bindable(null),
12
- open = $bindable(false),
13
- onOpenChange,
14
- class: className,
15
- children,
16
- ...restProps
17
- }: Props = $props();
18
-
19
- import { setContext } from "svelte";
20
-
21
- function handleClickOutside(e: MouseEvent) {
22
- if (ref && !ref.contains(e.target as Node)) {
23
- open = false;
24
- onOpenChange?.(false);
25
- }
26
- }
27
-
28
- setContext("svadmin-dropdown-open", () => open);
29
-
30
- $effect(() => {
31
- if (open) {
32
- document.addEventListener('click', handleClickOutside, true);
33
- return () => document.removeEventListener('click', handleClickOutside, true);
34
- }
35
- });
36
- </script>
37
-
38
- <div
39
- bind:this={ref}
40
- data-slot="dropdown-menu"
41
- class={cn("relative inline-block", className)}
42
- {...restProps}
43
- >
44
- {@render children?.()}
45
- </div>
@@ -1,21 +0,0 @@
1
- import DropdownMenu from "./dropdown-menu.svelte";
2
- import DropdownMenuContent from "./dropdown-menu-content.svelte";
3
- import DropdownMenuItem from "./dropdown-menu-item.svelte";
4
- import DropdownMenuSeparator from "./dropdown-menu-separator.svelte";
5
- import DropdownMenuTrigger from "./dropdown-menu-trigger.svelte";
6
- import DropdownMenuCheckboxItem from "./dropdown-menu-checkbox-item.svelte";
7
-
8
- export {
9
- DropdownMenu,
10
- DropdownMenuContent,
11
- DropdownMenuItem,
12
- DropdownMenuSeparator,
13
- DropdownMenuTrigger,
14
- DropdownMenuCheckboxItem,
15
- DropdownMenu as Root,
16
- DropdownMenuContent as Content,
17
- DropdownMenuItem as Item,
18
- DropdownMenuSeparator as Separator,
19
- DropdownMenuTrigger as Trigger,
20
- DropdownMenuCheckboxItem as CheckboxItem,
21
- };
@@ -1,7 +0,0 @@
1
- import Root from "./input.svelte";
2
-
3
- export {
4
- Root,
5
- //
6
- Root as Input,
7
- };
@@ -1,48 +0,0 @@
1
- <script lang="ts">
2
- import type { HTMLInputAttributes, HTMLInputTypeAttribute } from "svelte/elements";
3
- import { cn, type WithElementRef } from "../../../utils.js";
4
-
5
- type InputType = Exclude<HTMLInputTypeAttribute, "file">;
6
-
7
- type Props = WithElementRef<
8
- Omit<HTMLInputAttributes, "type"> &
9
- ({ type: "file"; files?: FileList } | { type?: InputType; files?: undefined })
10
- >;
11
-
12
- let {
13
- ref = $bindable(null),
14
- value = $bindable(),
15
- type,
16
- files = $bindable(),
17
- class: className,
18
- "data-slot": dataSlot = "input",
19
- ...restProps
20
- }: Props = $props();
21
- </script>
22
-
23
- {#if type === "file"}
24
- <input
25
- bind:this={ref}
26
- data-slot={dataSlot}
27
- class={cn(
28
- "dark:bg-input/30 border-input focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 disabled:bg-input/50 dark:disabled:bg-input/80 h-9 rounded-lg border bg-transparent px-3 py-1.5 text-base transition-colors file:h-7 file:text-sm file:font-medium focus-visible:ring-3 aria-invalid:ring-3 md:text-sm file:text-foreground placeholder:text-muted-foreground w-full min-w-0 outline-none file:inline-flex file:border-0 file:bg-transparent disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50",
29
- className
30
- )}
31
- type="file"
32
- bind:files
33
- bind:value
34
- {...restProps}
35
- />
36
- {:else}
37
- <input
38
- bind:this={ref}
39
- data-slot={dataSlot}
40
- class={cn(
41
- "dark:bg-input/30 border-input focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 disabled:bg-input/50 dark:disabled:bg-input/80 h-9 rounded-lg border bg-transparent px-3 py-1.5 text-base transition-colors file:h-7 file:text-sm file:font-medium focus-visible:ring-3 aria-invalid:ring-3 md:text-sm file:text-foreground placeholder:text-muted-foreground w-full min-w-0 outline-none file:inline-flex file:border-0 file:bg-transparent disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50",
42
- className
43
- )}
44
- {type}
45
- bind:value
46
- {...restProps}
47
- />
48
- {/if}
@@ -1 +0,0 @@
1
- export { default as Label } from './label.svelte';
@@ -1,18 +0,0 @@
1
- <script lang="ts">
2
- import { cn, type WithElementRef } from '../../../utils.js';
3
- import type { HTMLLabelAttributes } from 'svelte/elements';
4
-
5
- let { ref = $bindable(null), class: className, children, ...restProps }: WithElementRef<HTMLLabelAttributes, HTMLLabelElement> = $props();
6
- </script>
7
-
8
- <label
9
- bind:this={ref}
10
- data-slot="label"
11
- class={cn(
12
- "flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",
13
- className
14
- )}
15
- {...restProps}
16
- >
17
- {@render children?.()}
18
- </label>
@@ -1,7 +0,0 @@
1
- export { default as Root } from './pagination.svelte';
2
- export { default as Content } from './pagination-content.svelte';
3
- export { default as Item } from './pagination-item.svelte';
4
- export { default as Link } from './pagination-link.svelte';
5
- export { default as Ellipsis } from './pagination-ellipsis.svelte';
6
- export { default as Previous } from './pagination-previous.svelte';
7
- export { default as Next } from './pagination-next.svelte';
@@ -1,11 +0,0 @@
1
- <script lang="ts">
2
- import { cn } from '../../../utils.js';
3
- import type { Snippet } from 'svelte';
4
- import type { HTMLAttributes } from 'svelte/elements';
5
-
6
- let { class: className, children, ...restProps }: HTMLAttributes<HTMLUListElement> & { children?: Snippet } = $props();
7
- </script>
8
-
9
- <ul data-slot="pagination-content" class={cn("flex flex-row items-center gap-1", className)} {...restProps}>
10
- {@render children?.()}
11
- </ul>
@@ -1,12 +0,0 @@
1
- <script lang="ts">
2
- import { cn } from '../../../utils.js';
3
- import type { HTMLAttributes } from 'svelte/elements';
4
- import { Ellipsis } from '@lucide/svelte';
5
-
6
- let { class: className, ...restProps }: HTMLAttributes<HTMLSpanElement> = $props();
7
- </script>
8
-
9
- <span aria-hidden="true" data-slot="pagination-ellipsis" class={cn("flex size-9 items-center justify-center", className)} {...restProps}>
10
- <Ellipsis class="size-4" />
11
- <span class="sr-only">More pages</span>
12
- </span>
@@ -1,11 +0,0 @@
1
- <script lang="ts">
2
- import { cn } from '../../../utils.js';
3
- import type { Snippet } from 'svelte';
4
- import type { HTMLLiAttributes } from 'svelte/elements';
5
-
6
- let { class: className, children, ...restProps }: HTMLLiAttributes & { children?: Snippet } = $props();
7
- </script>
8
-
9
- <li data-slot="pagination-item" class={cn("", className)} {...restProps}>
10
- {@render children?.()}
11
- </li>
@@ -1,26 +0,0 @@
1
- <script lang="ts">
2
- import { cn } from '../../../utils.js';
3
- import type { Snippet } from 'svelte';
4
- import type { HTMLButtonAttributes } from 'svelte/elements';
5
- import { buttonVariants } from '../button/index.js';
6
-
7
- let {
8
- class: className,
9
- isActive = false,
10
- children,
11
- ...restProps
12
- }: HTMLButtonAttributes & { isActive?: boolean; children?: Snippet } = $props();
13
- </script>
14
-
15
- <button
16
- aria-current={isActive ? 'page' : undefined}
17
- data-slot="pagination-link"
18
- data-active={isActive}
19
- class={cn(
20
- buttonVariants({ variant: isActive ? 'outline' : 'ghost', size: 'icon-sm' }),
21
- className
22
- )}
23
- {...restProps}
24
- >
25
- {@render children?.()}
26
- </button>
@@ -1,22 +0,0 @@
1
- <script lang="ts">
2
- import { cn } from '../../../utils.js';
3
- import type { Snippet } from 'svelte';
4
- import type { HTMLButtonAttributes } from 'svelte/elements';
5
- import { buttonVariants } from '../button/index.js';
6
- import { ChevronRight } from '@lucide/svelte';
7
-
8
- let { class: className, children, ...restProps }: HTMLButtonAttributes & { children?: Snippet } = $props();
9
- </script>
10
-
11
- <button
12
- aria-label="Go to next page"
13
- data-slot="pagination-next"
14
- class={cn(buttonVariants({ variant: 'ghost', size: 'icon-sm' }), "gap-1", className)}
15
- {...restProps}
16
- >
17
- {#if children}
18
- {@render children()}
19
- {:else}
20
- <ChevronRight class="size-4" />
21
- {/if}
22
- </button>
@@ -1,22 +0,0 @@
1
- <script lang="ts">
2
- import { cn } from '../../../utils.js';
3
- import type { Snippet } from 'svelte';
4
- import type { HTMLButtonAttributes } from 'svelte/elements';
5
- import { buttonVariants } from '../button/index.js';
6
- import { ChevronLeft } from '@lucide/svelte';
7
-
8
- let { class: className, children, ...restProps }: HTMLButtonAttributes & { children?: Snippet } = $props();
9
- </script>
10
-
11
- <button
12
- aria-label="Go to previous page"
13
- data-slot="pagination-previous"
14
- class={cn(buttonVariants({ variant: 'ghost', size: 'icon-sm' }), "gap-1", className)}
15
- {...restProps}
16
- >
17
- {#if children}
18
- {@render children()}
19
- {:else}
20
- <ChevronLeft class="size-4" />
21
- {/if}
22
- </button>
@@ -1,11 +0,0 @@
1
- <script lang="ts">
2
- import { cn } from '../../../utils.js';
3
- import type { Snippet } from 'svelte';
4
- import type { HTMLAttributes } from 'svelte/elements';
5
-
6
- let { class: className, children, ...restProps }: HTMLAttributes<HTMLElement> & { children?: Snippet } = $props();
7
- </script>
8
-
9
- <nav aria-label="pagination" data-slot="pagination" class={cn("mx-auto flex w-full justify-center", className)} {...restProps}>
10
- {@render children?.()}
11
- </nav>
@@ -1,12 +0,0 @@
1
- import { Popover as PopoverPrimitive } from "bits-ui";
2
-
3
- const Root = PopoverPrimitive.Root;
4
- const Trigger = PopoverPrimitive.Trigger;
5
- const Close = PopoverPrimitive.Close;
6
-
7
- export {
8
- Root,
9
- Trigger,
10
- Close,
11
- };
12
- export { default as Content } from "./popover-content.svelte";
@@ -1,25 +0,0 @@
1
- <script lang="ts">
2
- import { Popover as PopoverPrimitive } from "bits-ui";
3
- import { cn } from "../../../utils.js";
4
-
5
- let {
6
- ref = $bindable(null),
7
- class: className,
8
- align = "center",
9
- sideOffset = 4,
10
- ...restProps
11
- }: PopoverPrimitive.ContentProps & { class?: string } = $props();
12
- </script>
13
-
14
- <PopoverPrimitive.Portal>
15
- <PopoverPrimitive.Content
16
- bind:ref
17
- {align}
18
- {sideOffset}
19
- class={cn(
20
- "z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
21
- className,
22
- )}
23
- {...restProps}
24
- />
25
- </PopoverPrimitive.Portal>
@@ -1 +0,0 @@
1
- export { default as Progress } from "./progress.svelte";
@@ -1,22 +0,0 @@
1
- <script lang="ts">
2
- import { cn } from "../../../utils.js";
3
-
4
- let { value = 0, max = 100, class: className, ...restProps }:
5
- { value?: number; max?: number; class?: string } & Record<string, unknown> = $props();
6
-
7
- const percentage = $derived(Math.min(100, Math.max(0, (value / max) * 100)));
8
- </script>
9
-
10
- <div
11
- class={cn("relative h-2 w-full overflow-hidden rounded-full bg-primary/20", className)}
12
- role="progressbar"
13
- aria-valuenow={value}
14
- aria-valuemin={0}
15
- aria-valuemax={max}
16
- {...restProps}
17
- >
18
- <div
19
- class="h-full w-full flex-1 bg-primary transition-all duration-200"
20
- style="transform: translateX(-{100 - percentage}%)"
21
- ></div>
22
- </div>
@@ -1 +0,0 @@
1
- export { default as ScrollArea } from "./scroll-area.svelte";
@@ -1,20 +0,0 @@
1
- <script lang="ts">
2
- import type { Snippet } from "svelte";
3
- import { cn } from "../../../utils.js";
4
-
5
- let { class: className, children, orientation = 'vertical', ...restProps }:
6
- { class?: string; children: Snippet; orientation?: 'vertical' | 'horizontal' } & Record<string, unknown> = $props();
7
- </script>
8
-
9
- <div
10
- class={cn("relative overflow-hidden", className)}
11
- {...restProps}
12
- >
13
- <div class={cn(
14
- "h-full w-full overflow-auto scrollbar-thin scrollbar-track-transparent scrollbar-thumb-border hover:scrollbar-thumb-muted-foreground/50",
15
- orientation === 'horizontal' ? 'overflow-x-auto overflow-y-hidden' : 'overflow-y-auto overflow-x-hidden'
16
- )}>
17
- {@render children()}
18
- </div>
19
- </div>
20
-
@@ -1,2 +0,0 @@
1
- import Root from "./select.svelte";
2
- export { Root, Root as Select };
@@ -1,36 +0,0 @@
1
- <script lang="ts">
2
- import { cn, type WithElementRef } from "../../../utils.js";
3
- import type { HTMLSelectAttributes } from "svelte/elements";
4
-
5
- // Use HTMLElement instead of HTMLSelectElement to avoid TS error:
6
- // HTMLSelectElement.remove() returns void, incompatible with HTMLElement's Element return
7
- type Props = WithElementRef<HTMLSelectAttributes, HTMLElement> & {
8
- placeholder?: string;
9
- };
10
-
11
- let {
12
- ref = $bindable(null),
13
- value = $bindable(""),
14
- class: className,
15
- placeholder,
16
- children,
17
- ...restProps
18
- }: Props = $props();
19
- </script>
20
-
21
- <select
22
- bind:this={ref}
23
- data-slot="select"
24
- class={cn(
25
- "dark:bg-input/30 border-input focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 disabled:bg-input/50 dark:disabled:bg-input/80 h-9 w-full appearance-none rounded-lg border bg-transparent px-3 py-1.5 text-base transition-colors focus-visible:ring-3 aria-invalid:ring-3 md:text-sm placeholder:text-muted-foreground outline-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 bg-[length:16px] bg-[right_8px_center] bg-no-repeat",
26
- "bg-[url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e\")]",
27
- className
28
- )}
29
- bind:value
30
- {...restProps}
31
- >
32
- {#if placeholder}
33
- <option value="" disabled selected>{placeholder}</option>
34
- {/if}
35
- {@render children?.()}
36
- </select>
@@ -1,7 +0,0 @@
1
- import Root from "./separator.svelte";
2
-
3
- export {
4
- Root,
5
- //
6
- Root as Separator,
7
- };