dr-widget 0.1.3__py3-none-any.whl

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 (127) hide show
  1. dr_widget/__init__.py +5 -0
  2. dr_widget/py.typed +0 -0
  3. dr_widget/widgets/__init__.py +5 -0
  4. dr_widget/widgets/config_file_manager/.gitignore +24 -0
  5. dr_widget/widgets/config_file_manager/.vscode/extensions.json +3 -0
  6. dr_widget/widgets/config_file_manager/README.md +89 -0
  7. dr_widget/widgets/config_file_manager/__init__.py +283 -0
  8. dr_widget/widgets/config_file_manager/components.json +16 -0
  9. dr_widget/widgets/config_file_manager/index.html +12 -0
  10. dr_widget/widgets/config_file_manager/jsrepo.json +18 -0
  11. dr_widget/widgets/config_file_manager/package.json +49 -0
  12. dr_widget/widgets/config_file_manager/postcss.config.js +6 -0
  13. dr_widget/widgets/config_file_manager/public/fonts/Inter-roman.var.woff2 +0 -0
  14. dr_widget/widgets/config_file_manager/public/vite.svg +1 -0
  15. dr_widget/widgets/config_file_manager/src/App.svelte +62 -0
  16. dr_widget/widgets/config_file_manager/src/ConfigFileManager.svelte +605 -0
  17. dr_widget/widgets/config_file_manager/src/app.css +134 -0
  18. dr_widget/widgets/config_file_manager/src/index.js +5 -0
  19. dr_widget/widgets/config_file_manager/src/lib/@test_state.json +20 -0
  20. dr_widget/widgets/config_file_manager/src/lib/Counter.svelte +10 -0
  21. dr_widget/widgets/config_file_manager/src/lib/components/file-drop/BrowseConfigsPanel.svelte +137 -0
  22. dr_widget/widgets/config_file_manager/src/lib/components/file-drop/ComplexJsonViewer.svelte +94 -0
  23. dr_widget/widgets/config_file_manager/src/lib/components/file-drop/ConfigViewerPanel.svelte +282 -0
  24. dr_widget/widgets/config_file_manager/src/lib/components/file-drop/LoadedConfigPreview.svelte +74 -0
  25. dr_widget/widgets/config_file_manager/src/lib/components/file-drop/SaveConfigPanel.svelte +449 -0
  26. dr_widget/widgets/config_file_manager/src/lib/components/file-drop/SelectedFileRow.svelte +38 -0
  27. dr_widget/widgets/config_file_manager/src/lib/components/file-drop/SelectedFilesList.svelte +30 -0
  28. dr_widget/widgets/config_file_manager/src/lib/components/file-drop/SimpleJsonViewer.svelte +405 -0
  29. dr_widget/widgets/config_file_manager/src/lib/components/ui/badge/badge.svelte +50 -0
  30. dr_widget/widgets/config_file_manager/src/lib/components/ui/badge/index.ts +2 -0
  31. dr_widget/widgets/config_file_manager/src/lib/components/ui/button/button.svelte +128 -0
  32. dr_widget/widgets/config_file_manager/src/lib/components/ui/button/index.ts +27 -0
  33. dr_widget/widgets/config_file_manager/src/lib/components/ui/card/card-action.svelte +20 -0
  34. dr_widget/widgets/config_file_manager/src/lib/components/ui/card/card-content.svelte +15 -0
  35. dr_widget/widgets/config_file_manager/src/lib/components/ui/card/card-description.svelte +20 -0
  36. dr_widget/widgets/config_file_manager/src/lib/components/ui/card/card-footer.svelte +20 -0
  37. dr_widget/widgets/config_file_manager/src/lib/components/ui/card/card-header.svelte +23 -0
  38. dr_widget/widgets/config_file_manager/src/lib/components/ui/card/card-title.svelte +20 -0
  39. dr_widget/widgets/config_file_manager/src/lib/components/ui/card/card.svelte +23 -0
  40. dr_widget/widgets/config_file_manager/src/lib/components/ui/card/index.ts +25 -0
  41. dr_widget/widgets/config_file_manager/src/lib/components/ui/dialog/dialog-close.svelte +11 -0
  42. dr_widget/widgets/config_file_manager/src/lib/components/ui/dialog/dialog-content.svelte +47 -0
  43. dr_widget/widgets/config_file_manager/src/lib/components/ui/dialog/dialog-description.svelte +21 -0
  44. dr_widget/widgets/config_file_manager/src/lib/components/ui/dialog/dialog-footer.svelte +24 -0
  45. dr_widget/widgets/config_file_manager/src/lib/components/ui/dialog/dialog-header.svelte +24 -0
  46. dr_widget/widgets/config_file_manager/src/lib/components/ui/dialog/dialog-overlay.svelte +24 -0
  47. dr_widget/widgets/config_file_manager/src/lib/components/ui/dialog/dialog-title.svelte +21 -0
  48. dr_widget/widgets/config_file_manager/src/lib/components/ui/dialog/dialog-trigger.svelte +11 -0
  49. dr_widget/widgets/config_file_manager/src/lib/components/ui/dialog/index.ts +41 -0
  50. dr_widget/widgets/config_file_manager/src/lib/components/ui/drawer/drawer-close.svelte +11 -0
  51. dr_widget/widgets/config_file_manager/src/lib/components/ui/drawer/drawer-content.svelte +41 -0
  52. dr_widget/widgets/config_file_manager/src/lib/components/ui/drawer/drawer-description.svelte +21 -0
  53. dr_widget/widgets/config_file_manager/src/lib/components/ui/drawer/drawer-footer.svelte +24 -0
  54. dr_widget/widgets/config_file_manager/src/lib/components/ui/drawer/drawer-header.svelte +24 -0
  55. dr_widget/widgets/config_file_manager/src/lib/components/ui/drawer/drawer-nested.svelte +16 -0
  56. dr_widget/widgets/config_file_manager/src/lib/components/ui/drawer/drawer-overlay.svelte +24 -0
  57. dr_widget/widgets/config_file_manager/src/lib/components/ui/drawer/drawer-title.svelte +21 -0
  58. dr_widget/widgets/config_file_manager/src/lib/components/ui/drawer/drawer-trigger.svelte +11 -0
  59. dr_widget/widgets/config_file_manager/src/lib/components/ui/drawer/drawer.svelte +16 -0
  60. dr_widget/widgets/config_file_manager/src/lib/components/ui/drawer/index.ts +45 -0
  61. dr_widget/widgets/config_file_manager/src/lib/components/ui/empty/empty-content.svelte +23 -0
  62. dr_widget/widgets/config_file_manager/src/lib/components/ui/empty/empty-description.svelte +23 -0
  63. dr_widget/widgets/config_file_manager/src/lib/components/ui/empty/empty-header.svelte +20 -0
  64. dr_widget/widgets/config_file_manager/src/lib/components/ui/empty/empty-media.svelte +41 -0
  65. dr_widget/widgets/config_file_manager/src/lib/components/ui/empty/empty-title.svelte +20 -0
  66. dr_widget/widgets/config_file_manager/src/lib/components/ui/empty/empty.svelte +23 -0
  67. dr_widget/widgets/config_file_manager/src/lib/components/ui/empty/index.ts +22 -0
  68. dr_widget/widgets/config_file_manager/src/lib/components/ui/field/field-content.svelte +20 -0
  69. dr_widget/widgets/config_file_manager/src/lib/components/ui/field/field-description.svelte +25 -0
  70. dr_widget/widgets/config_file_manager/src/lib/components/ui/field/field-error.svelte +58 -0
  71. dr_widget/widgets/config_file_manager/src/lib/components/ui/field/field-group.svelte +23 -0
  72. dr_widget/widgets/config_file_manager/src/lib/components/ui/field/field-label.svelte +26 -0
  73. dr_widget/widgets/config_file_manager/src/lib/components/ui/field/field-legend.svelte +29 -0
  74. dr_widget/widgets/config_file_manager/src/lib/components/ui/field/field-separator.svelte +38 -0
  75. dr_widget/widgets/config_file_manager/src/lib/components/ui/field/field-set.svelte +24 -0
  76. dr_widget/widgets/config_file_manager/src/lib/components/ui/field/field-title.svelte +23 -0
  77. dr_widget/widgets/config_file_manager/src/lib/components/ui/field/field.svelte +53 -0
  78. dr_widget/widgets/config_file_manager/src/lib/components/ui/field/index.ts +33 -0
  79. dr_widget/widgets/config_file_manager/src/lib/components/ui/file-drop-zone/file-drop-zone.svelte +178 -0
  80. dr_widget/widgets/config_file_manager/src/lib/components/ui/file-drop-zone/index.ts +29 -0
  81. dr_widget/widgets/config_file_manager/src/lib/components/ui/file-drop-zone/types.ts +51 -0
  82. dr_widget/widgets/config_file_manager/src/lib/components/ui/item/index.ts +34 -0
  83. dr_widget/widgets/config_file_manager/src/lib/components/ui/item/item-actions.svelte +20 -0
  84. dr_widget/widgets/config_file_manager/src/lib/components/ui/item/item-content.svelte +20 -0
  85. dr_widget/widgets/config_file_manager/src/lib/components/ui/item/item-description.svelte +24 -0
  86. dr_widget/widgets/config_file_manager/src/lib/components/ui/item/item-footer.svelte +20 -0
  87. dr_widget/widgets/config_file_manager/src/lib/components/ui/item/item-group.svelte +21 -0
  88. dr_widget/widgets/config_file_manager/src/lib/components/ui/item/item-header.svelte +20 -0
  89. dr_widget/widgets/config_file_manager/src/lib/components/ui/item/item-media.svelte +42 -0
  90. dr_widget/widgets/config_file_manager/src/lib/components/ui/item/item-separator.svelte +19 -0
  91. dr_widget/widgets/config_file_manager/src/lib/components/ui/item/item-title.svelte +20 -0
  92. dr_widget/widgets/config_file_manager/src/lib/components/ui/item/item.svelte +60 -0
  93. dr_widget/widgets/config_file_manager/src/lib/components/ui/label/index.ts +7 -0
  94. dr_widget/widgets/config_file_manager/src/lib/components/ui/label/label.svelte +20 -0
  95. dr_widget/widgets/config_file_manager/src/lib/components/ui/modal/index.ts +13 -0
  96. dr_widget/widgets/config_file_manager/src/lib/components/ui/modal/modal-content.svelte +29 -0
  97. dr_widget/widgets/config_file_manager/src/lib/components/ui/modal/modal-description.svelte +20 -0
  98. dr_widget/widgets/config_file_manager/src/lib/components/ui/modal/modal-footer.svelte +29 -0
  99. dr_widget/widgets/config_file_manager/src/lib/components/ui/modal/modal-header.svelte +29 -0
  100. dr_widget/widgets/config_file_manager/src/lib/components/ui/modal/modal-title.svelte +20 -0
  101. dr_widget/widgets/config_file_manager/src/lib/components/ui/modal/modal-trigger.svelte +24 -0
  102. dr_widget/widgets/config_file_manager/src/lib/components/ui/modal/modal.svelte +24 -0
  103. dr_widget/widgets/config_file_manager/src/lib/components/ui/modal/modal.svelte.ts +32 -0
  104. dr_widget/widgets/config_file_manager/src/lib/components/ui/separator/index.ts +7 -0
  105. dr_widget/widgets/config_file_manager/src/lib/components/ui/separator/separator.svelte +21 -0
  106. dr_widget/widgets/config_file_manager/src/lib/components/ui/tabs/index.ts +16 -0
  107. dr_widget/widgets/config_file_manager/src/lib/components/ui/tabs/tabs-content.svelte +17 -0
  108. dr_widget/widgets/config_file_manager/src/lib/components/ui/tabs/tabs-list.svelte +20 -0
  109. dr_widget/widgets/config_file_manager/src/lib/components/ui/tabs/tabs-trigger.svelte +20 -0
  110. dr_widget/widgets/config_file_manager/src/lib/components/ui/tabs/tabs.svelte +19 -0
  111. dr_widget/widgets/config_file_manager/src/lib/hooks/use-file-bindings.ts +189 -0
  112. dr_widget/widgets/config_file_manager/src/lib/react/JsonTreeCanvas.tsx +207 -0
  113. dr_widget/widgets/config_file_manager/src/lib/utils/config-format.ts +113 -0
  114. dr_widget/widgets/config_file_manager/src/lib/utils/utils.ts +21 -0
  115. dr_widget/widgets/config_file_manager/src/lib/utils.ts +17 -0
  116. dr_widget/widgets/config_file_manager/src/main.js +7 -0
  117. dr_widget/widgets/config_file_manager/static/fonts/Inter-roman.var.woff2 +0 -0
  118. dr_widget/widgets/config_file_manager/static/index.js +9719 -0
  119. dr_widget/widgets/config_file_manager/static/style.css +1 -0
  120. dr_widget/widgets/config_file_manager/static/vite.svg +1 -0
  121. dr_widget/widgets/config_file_manager/svelte.config.js +8 -0
  122. dr_widget/widgets/config_file_manager/tailwind.config.js +12 -0
  123. dr_widget/widgets/config_file_manager/tsconfig.json +28 -0
  124. dr_widget/widgets/config_file_manager/vite.config.js +36 -0
  125. dr_widget-0.1.3.dist-info/METADATA +62 -0
  126. dr_widget-0.1.3.dist-info/RECORD +127 -0
  127. dr_widget-0.1.3.dist-info/WHEEL +4 -0
@@ -0,0 +1,23 @@
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<HTMLDivElement>> = $props();
11
+ </script>
12
+
13
+ <div
14
+ bind:this={ref}
15
+ data-slot="card-header"
16
+ class={cn(
17
+ "@container/card-header has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6 grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6",
18
+ className
19
+ )}
20
+ {...restProps}
21
+ >
22
+ {@render children?.()}
23
+ </div>
@@ -0,0 +1,20 @@
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<HTMLDivElement>> = $props();
11
+ </script>
12
+
13
+ <div
14
+ bind:this={ref}
15
+ data-slot="card-title"
16
+ class={cn("font-semibold leading-none", className)}
17
+ {...restProps}
18
+ >
19
+ {@render children?.()}
20
+ </div>
@@ -0,0 +1,23 @@
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<HTMLDivElement>> = $props();
11
+ </script>
12
+
13
+ <div
14
+ bind:this={ref}
15
+ data-slot="card"
16
+ class={cn(
17
+ "bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",
18
+ className
19
+ )}
20
+ {...restProps}
21
+ >
22
+ {@render children?.()}
23
+ </div>
@@ -0,0 +1,25 @@
1
+ import Root from "./card.svelte";
2
+ import Content from "./card-content.svelte";
3
+ import Description from "./card-description.svelte";
4
+ import Footer from "./card-footer.svelte";
5
+ import Header from "./card-header.svelte";
6
+ import Title from "./card-title.svelte";
7
+ import Action from "./card-action.svelte";
8
+
9
+ export {
10
+ Root,
11
+ Content,
12
+ Description,
13
+ Footer,
14
+ Header,
15
+ Title,
16
+ Action,
17
+ //
18
+ Root as Card,
19
+ Content as CardContent,
20
+ Description as CardDescription,
21
+ Footer as CardFooter,
22
+ Header as CardHeader,
23
+ Title as CardTitle,
24
+ Action as CardAction,
25
+ };
@@ -0,0 +1,11 @@
1
+ <!--
2
+ Installed from @ieedan/shadcn-svelte-extras
3
+ -->
4
+
5
+ <script lang="ts">
6
+ import { Dialog as DialogPrimitive } from 'bits-ui';
7
+
8
+ let { ref = $bindable(null), ...restProps }: DialogPrimitive.CloseProps = $props();
9
+ </script>
10
+
11
+ <DialogPrimitive.Close bind:ref data-slot="dialog-close" {...restProps} />
@@ -0,0 +1,47 @@
1
+ <!--
2
+ Installed from @ieedan/shadcn-svelte-extras
3
+ -->
4
+
5
+ <script lang="ts">
6
+ import { Dialog as DialogPrimitive } from 'bits-ui';
7
+ import XIcon from '@lucide/svelte/icons/x';
8
+ import type { Snippet } from 'svelte';
9
+ import * as Dialog from './index.js';
10
+ import { cn, type WithoutChildrenOrChild } from '../../../utils/utils.js';
11
+
12
+ let {
13
+ ref = $bindable(null),
14
+ class: className,
15
+ portalProps,
16
+ hideClose = false,
17
+ children,
18
+ ...restProps
19
+ }: WithoutChildrenOrChild<DialogPrimitive.ContentProps> & {
20
+ portalProps?: DialogPrimitive.PortalProps;
21
+ children: Snippet;
22
+ hideClose?: boolean;
23
+ } = $props();
24
+ </script>
25
+
26
+ <Dialog.Portal {...portalProps}>
27
+ <Dialog.Overlay />
28
+ <DialogPrimitive.Content
29
+ bind:ref
30
+ data-slot="dialog-content"
31
+ class={cn(
32
+ 'bg-background 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 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg',
33
+ className
34
+ )}
35
+ {...restProps}
36
+ >
37
+ {@render children?.()}
38
+ {#if !hideClose}
39
+ <DialogPrimitive.Close
40
+ class="ring-offset-background focus:ring-ring absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4"
41
+ >
42
+ <XIcon />
43
+ <span class="sr-only">Close</span>
44
+ </DialogPrimitive.Close>
45
+ {/if}
46
+ </DialogPrimitive.Content>
47
+ </Dialog.Portal>
@@ -0,0 +1,21 @@
1
+ <!--
2
+ Installed from @ieedan/shadcn-svelte-extras
3
+ -->
4
+
5
+ <script lang="ts">
6
+ import { Dialog as DialogPrimitive } from 'bits-ui';
7
+ import { cn } from '../../../utils/utils.js';
8
+
9
+ let {
10
+ ref = $bindable(null),
11
+ class: className,
12
+ ...restProps
13
+ }: DialogPrimitive.DescriptionProps = $props();
14
+ </script>
15
+
16
+ <DialogPrimitive.Description
17
+ bind:ref
18
+ data-slot="dialog-description"
19
+ class={cn('text-muted-foreground text-sm', className)}
20
+ {...restProps}
21
+ />
@@ -0,0 +1,24 @@
1
+ <!--
2
+ Installed from @ieedan/shadcn-svelte-extras
3
+ -->
4
+
5
+ <script lang="ts">
6
+ import { cn, type WithElementRef } from '../../../utils/utils.js';
7
+ import type { HTMLAttributes } from 'svelte/elements';
8
+
9
+ let {
10
+ ref = $bindable(null),
11
+ class: className,
12
+ children,
13
+ ...restProps
14
+ }: WithElementRef<HTMLAttributes<HTMLDivElement>> = $props();
15
+ </script>
16
+
17
+ <div
18
+ bind:this={ref}
19
+ data-slot="dialog-footer"
20
+ class={cn('flex flex-col-reverse gap-2 sm:flex-row sm:justify-end', className)}
21
+ {...restProps}
22
+ >
23
+ {@render children?.()}
24
+ </div>
@@ -0,0 +1,24 @@
1
+ <!--
2
+ Installed from @ieedan/shadcn-svelte-extras
3
+ -->
4
+
5
+ <script lang="ts">
6
+ import type { HTMLAttributes } from 'svelte/elements';
7
+ import { cn, type WithElementRef } from '../../../utils/utils.js';
8
+
9
+ let {
10
+ ref = $bindable(null),
11
+ class: className,
12
+ children,
13
+ ...restProps
14
+ }: WithElementRef<HTMLAttributes<HTMLDivElement>> = $props();
15
+ </script>
16
+
17
+ <div
18
+ bind:this={ref}
19
+ data-slot="dialog-header"
20
+ class={cn('flex flex-col gap-2 text-center sm:text-left', className)}
21
+ {...restProps}
22
+ >
23
+ {@render children?.()}
24
+ </div>
@@ -0,0 +1,24 @@
1
+ <!--
2
+ Installed from @ieedan/shadcn-svelte-extras
3
+ -->
4
+
5
+ <script lang="ts">
6
+ import { Dialog as DialogPrimitive } from 'bits-ui';
7
+ import { cn } from '../../../utils/utils.js';
8
+
9
+ let {
10
+ ref = $bindable(null),
11
+ class: className,
12
+ ...restProps
13
+ }: DialogPrimitive.OverlayProps = $props();
14
+ </script>
15
+
16
+ <DialogPrimitive.Overlay
17
+ bind:ref
18
+ data-slot="dialog-overlay"
19
+ class={cn(
20
+ 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50',
21
+ className
22
+ )}
23
+ {...restProps}
24
+ />
@@ -0,0 +1,21 @@
1
+ <!--
2
+ Installed from @ieedan/shadcn-svelte-extras
3
+ -->
4
+
5
+ <script lang="ts">
6
+ import { Dialog as DialogPrimitive } from 'bits-ui';
7
+ import { cn } from '../../../utils/utils.js';
8
+
9
+ let {
10
+ ref = $bindable(null),
11
+ class: className,
12
+ ...restProps
13
+ }: DialogPrimitive.TitleProps = $props();
14
+ </script>
15
+
16
+ <DialogPrimitive.Title
17
+ bind:ref
18
+ data-slot="dialog-title"
19
+ class={cn('text-lg leading-none font-semibold', className)}
20
+ {...restProps}
21
+ />
@@ -0,0 +1,11 @@
1
+ <!--
2
+ Installed from @ieedan/shadcn-svelte-extras
3
+ -->
4
+
5
+ <script lang="ts">
6
+ import { Dialog as DialogPrimitive } from 'bits-ui';
7
+
8
+ let { ref = $bindable(null), ...restProps }: DialogPrimitive.TriggerProps = $props();
9
+ </script>
10
+
11
+ <DialogPrimitive.Trigger bind:ref data-slot="dialog-trigger" {...restProps} />
@@ -0,0 +1,41 @@
1
+ /*
2
+ Installed from @ieedan/shadcn-svelte-extras
3
+ */
4
+
5
+ import { Dialog as DialogPrimitive } from "bits-ui";
6
+
7
+ import Title from "./dialog-title.svelte";
8
+ import Footer from "./dialog-footer.svelte";
9
+ import Header from "./dialog-header.svelte";
10
+ import Overlay from "./dialog-overlay.svelte";
11
+ import Content from "./dialog-content.svelte";
12
+ import Description from "./dialog-description.svelte";
13
+ import Trigger from "./dialog-trigger.svelte";
14
+ import Close from "./dialog-close.svelte";
15
+
16
+ const Root = DialogPrimitive.Root;
17
+ const Portal = DialogPrimitive.Portal;
18
+
19
+ export {
20
+ Root,
21
+ Title,
22
+ Portal,
23
+ Footer,
24
+ Header,
25
+ Trigger,
26
+ Overlay,
27
+ Content,
28
+ Description,
29
+ Close,
30
+ //
31
+ Root as Dialog,
32
+ Title as DialogTitle,
33
+ Portal as DialogPortal,
34
+ Footer as DialogFooter,
35
+ Header as DialogHeader,
36
+ Trigger as DialogTrigger,
37
+ Overlay as DialogOverlay,
38
+ Content as DialogContent,
39
+ Description as DialogDescription,
40
+ Close as DialogClose,
41
+ };
@@ -0,0 +1,11 @@
1
+ <!--
2
+ Installed from @ieedan/shadcn-svelte-extras
3
+ -->
4
+
5
+ <script lang="ts">
6
+ import { Drawer as DrawerPrimitive } from 'vaul-svelte';
7
+
8
+ let { ref = $bindable(null), ...restProps }: DrawerPrimitive.CloseProps = $props();
9
+ </script>
10
+
11
+ <DrawerPrimitive.Close bind:ref data-slot="drawer-close" {...restProps} />
@@ -0,0 +1,41 @@
1
+ <!--
2
+ Installed from @ieedan/shadcn-svelte-extras
3
+ -->
4
+
5
+ <script lang="ts">
6
+ import { Drawer as DrawerPrimitive } from 'vaul-svelte';
7
+ import DrawerOverlay from './drawer-overlay.svelte';
8
+ import { cn } from '../../../utils/utils.js';
9
+
10
+ let {
11
+ ref = $bindable(null),
12
+ class: className,
13
+ portalProps,
14
+ children,
15
+ ...restProps
16
+ }: DrawerPrimitive.ContentProps & {
17
+ portalProps?: DrawerPrimitive.PortalProps;
18
+ } = $props();
19
+ </script>
20
+
21
+ <DrawerPrimitive.Portal {...portalProps}>
22
+ <DrawerOverlay />
23
+ <DrawerPrimitive.Content
24
+ bind:ref
25
+ data-slot="drawer-content"
26
+ class={cn(
27
+ 'group/drawer-content bg-background fixed z-50 flex h-auto flex-col gap-4 p-4',
28
+ 'data-[vaul-drawer-direction=top]:inset-x-0 data-[vaul-drawer-direction=top]:top-0 data-[vaul-drawer-direction=top]:mb-24 data-[vaul-drawer-direction=top]:max-h-[80vh] data-[vaul-drawer-direction=top]:rounded-b-lg data-[vaul-drawer-direction=top]:border-b',
29
+ 'data-[vaul-drawer-direction=bottom]:inset-x-0 data-[vaul-drawer-direction=bottom]:bottom-0 data-[vaul-drawer-direction=bottom]:mt-24 data-[vaul-drawer-direction=bottom]:max-h-[80vh] data-[vaul-drawer-direction=bottom]:rounded-t-lg data-[vaul-drawer-direction=bottom]:border-t',
30
+ 'data-[vaul-drawer-direction=right]:inset-y-0 data-[vaul-drawer-direction=right]:right-0 data-[vaul-drawer-direction=right]:w-3/4 data-[vaul-drawer-direction=right]:border-l data-[vaul-drawer-direction=right]:sm:max-w-sm',
31
+ 'data-[vaul-drawer-direction=left]:inset-y-0 data-[vaul-drawer-direction=left]:left-0 data-[vaul-drawer-direction=left]:w-3/4 data-[vaul-drawer-direction=left]:border-r data-[vaul-drawer-direction=left]:sm:max-w-sm',
32
+ className
33
+ )}
34
+ {...restProps}
35
+ >
36
+ <div
37
+ class="bg-muted mx-auto mt-4 hidden h-2 w-[100px] shrink-0 rounded-full group-data-[vaul-drawer-direction=bottom]/drawer-content:block"
38
+ ></div>
39
+ {@render children?.()}
40
+ </DrawerPrimitive.Content>
41
+ </DrawerPrimitive.Portal>
@@ -0,0 +1,21 @@
1
+ <!--
2
+ Installed from @ieedan/shadcn-svelte-extras
3
+ -->
4
+
5
+ <script lang="ts">
6
+ import { Drawer as DrawerPrimitive } from 'vaul-svelte';
7
+ import { cn } from '../../../utils/utils.js';
8
+
9
+ let {
10
+ ref = $bindable(null),
11
+ class: className,
12
+ ...restProps
13
+ }: DrawerPrimitive.DescriptionProps = $props();
14
+ </script>
15
+
16
+ <DrawerPrimitive.Description
17
+ bind:ref
18
+ data-slot="drawer-description"
19
+ class={cn('text-muted-foreground text-sm', className)}
20
+ {...restProps}
21
+ />
@@ -0,0 +1,24 @@
1
+ <!--
2
+ Installed from @ieedan/shadcn-svelte-extras
3
+ -->
4
+
5
+ <script lang="ts">
6
+ import { cn, type WithElementRef } from '../../../utils/utils.js';
7
+ import type { HTMLAttributes } from 'svelte/elements';
8
+
9
+ let {
10
+ ref = $bindable(null),
11
+ class: className,
12
+ children,
13
+ ...restProps
14
+ }: WithElementRef<HTMLAttributes<HTMLDivElement>> = $props();
15
+ </script>
16
+
17
+ <div
18
+ bind:this={ref}
19
+ data-slot="drawer-footer"
20
+ class={cn('mt-auto flex flex-col gap-2', className)}
21
+ {...restProps}
22
+ >
23
+ {@render children?.()}
24
+ </div>
@@ -0,0 +1,24 @@
1
+ <!--
2
+ Installed from @ieedan/shadcn-svelte-extras
3
+ -->
4
+
5
+ <script lang="ts">
6
+ import type { HTMLAttributes } from 'svelte/elements';
7
+ import { cn, type WithElementRef } from '../../../utils/utils.js';
8
+
9
+ let {
10
+ ref = $bindable(null),
11
+ class: className,
12
+ children,
13
+ ...restProps
14
+ }: WithElementRef<HTMLAttributes<HTMLDivElement>> = $props();
15
+ </script>
16
+
17
+ <div
18
+ bind:this={ref}
19
+ data-slot="drawer-header"
20
+ class={cn('flex flex-col gap-1.5', className)}
21
+ {...restProps}
22
+ >
23
+ {@render children?.()}
24
+ </div>
@@ -0,0 +1,16 @@
1
+ <!--
2
+ Installed from @ieedan/shadcn-svelte-extras
3
+ -->
4
+
5
+ <script lang="ts">
6
+ import { Drawer as DrawerPrimitive } from 'vaul-svelte';
7
+
8
+ let {
9
+ shouldScaleBackground = true,
10
+ open = $bindable(false),
11
+ activeSnapPoint = $bindable(null),
12
+ ...restProps
13
+ }: DrawerPrimitive.RootProps = $props();
14
+ </script>
15
+
16
+ <DrawerPrimitive.NestedRoot {shouldScaleBackground} bind:open bind:activeSnapPoint {...restProps} />
@@ -0,0 +1,24 @@
1
+ <!--
2
+ Installed from @ieedan/shadcn-svelte-extras
3
+ -->
4
+
5
+ <script lang="ts">
6
+ import { Drawer as DrawerPrimitive } from 'vaul-svelte';
7
+ import { cn } from '../../../utils/utils.js';
8
+
9
+ let {
10
+ ref = $bindable(null),
11
+ class: className,
12
+ ...restProps
13
+ }: DrawerPrimitive.OverlayProps = $props();
14
+ </script>
15
+
16
+ <DrawerPrimitive.Overlay
17
+ bind:ref
18
+ data-slot="drawer-overlay"
19
+ class={cn(
20
+ 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50',
21
+ className
22
+ )}
23
+ {...restProps}
24
+ />
@@ -0,0 +1,21 @@
1
+ <!--
2
+ Installed from @ieedan/shadcn-svelte-extras
3
+ -->
4
+
5
+ <script lang="ts">
6
+ import { Drawer as DrawerPrimitive } from 'vaul-svelte';
7
+ import { cn } from '../../../utils/utils.js';
8
+
9
+ let {
10
+ ref = $bindable(null),
11
+ class: className,
12
+ ...restProps
13
+ }: DrawerPrimitive.TitleProps = $props();
14
+ </script>
15
+
16
+ <DrawerPrimitive.Title
17
+ bind:ref
18
+ data-slot="drawer-title"
19
+ class={cn('text-foreground font-semibold', className)}
20
+ {...restProps}
21
+ />
@@ -0,0 +1,11 @@
1
+ <!--
2
+ Installed from @ieedan/shadcn-svelte-extras
3
+ -->
4
+
5
+ <script lang="ts">
6
+ import { Drawer as DrawerPrimitive } from 'vaul-svelte';
7
+
8
+ let { ref = $bindable(null), ...restProps }: DrawerPrimitive.TriggerProps = $props();
9
+ </script>
10
+
11
+ <DrawerPrimitive.Trigger bind:ref data-slot="drawer-trigger" {...restProps} />
@@ -0,0 +1,16 @@
1
+ <!--
2
+ Installed from @ieedan/shadcn-svelte-extras
3
+ -->
4
+
5
+ <script lang="ts">
6
+ import { Drawer as DrawerPrimitive } from 'vaul-svelte';
7
+
8
+ let {
9
+ shouldScaleBackground = true,
10
+ open = $bindable(false),
11
+ activeSnapPoint = $bindable(null),
12
+ ...restProps
13
+ }: DrawerPrimitive.RootProps = $props();
14
+ </script>
15
+
16
+ <DrawerPrimitive.Root {shouldScaleBackground} bind:open bind:activeSnapPoint {...restProps} />
@@ -0,0 +1,45 @@
1
+ /*
2
+ Installed from @ieedan/shadcn-svelte-extras
3
+ */
4
+
5
+ import { Drawer as DrawerPrimitive } from "vaul-svelte";
6
+
7
+ import Root from "./drawer.svelte";
8
+ import Content from "./drawer-content.svelte";
9
+ import Description from "./drawer-description.svelte";
10
+ import Overlay from "./drawer-overlay.svelte";
11
+ import Footer from "./drawer-footer.svelte";
12
+ import Header from "./drawer-header.svelte";
13
+ import Title from "./drawer-title.svelte";
14
+ import NestedRoot from "./drawer-nested.svelte";
15
+ import Close from "./drawer-close.svelte";
16
+ import Trigger from "./drawer-trigger.svelte";
17
+
18
+ const Portal: typeof DrawerPrimitive.Portal = DrawerPrimitive.Portal;
19
+
20
+ export {
21
+ Root,
22
+ NestedRoot,
23
+ Content,
24
+ Description,
25
+ Overlay,
26
+ Footer,
27
+ Header,
28
+ Title,
29
+ Trigger,
30
+ Portal,
31
+ Close,
32
+
33
+ //
34
+ Root as Drawer,
35
+ NestedRoot as DrawerNestedRoot,
36
+ Content as DrawerContent,
37
+ Description as DrawerDescription,
38
+ Overlay as DrawerOverlay,
39
+ Footer as DrawerFooter,
40
+ Header as DrawerHeader,
41
+ Title as DrawerTitle,
42
+ Trigger as DrawerTrigger,
43
+ Portal as DrawerPortal,
44
+ Close as DrawerClose,
45
+ };
@@ -0,0 +1,23 @@
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<HTMLDivElement>> = $props();
11
+ </script>
12
+
13
+ <div
14
+ bind:this={ref}
15
+ data-slot="empty-content"
16
+ class={cn(
17
+ "flex w-full min-w-0 max-w-sm flex-col items-center gap-4 text-balance text-sm",
18
+ className
19
+ )}
20
+ {...restProps}
21
+ >
22
+ {@render children?.()}
23
+ </div>
@@ -0,0 +1,23 @@
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<HTMLDivElement>> = $props();
11
+ </script>
12
+
13
+ <div
14
+ bind:this={ref}
15
+ data-slot="empty-description"
16
+ class={cn(
17
+ "text-muted-foreground [&>a:hover]:text-primary text-sm/relaxed [&>a]:underline [&>a]:underline-offset-4",
18
+ className
19
+ )}
20
+ {...restProps}
21
+ >
22
+ {@render children?.()}
23
+ </div>
@@ -0,0 +1,20 @@
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<HTMLDivElement>> = $props();
11
+ </script>
12
+
13
+ <div
14
+ bind:this={ref}
15
+ data-slot="empty-header"
16
+ class={cn("flex max-w-sm flex-col items-center gap-2 text-center", className)}
17
+ {...restProps}
18
+ >
19
+ {@render children?.()}
20
+ </div>