@reshape-biotech/design-system 0.0.47 → 0.0.48

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 (281) hide show
  1. package/dist/app.css +115 -0
  2. package/dist/components/activity/Activity.stories.svelte +100 -0
  3. package/dist/components/activity/Activity.stories.svelte.d.ts +19 -0
  4. package/dist/components/activity/Activity.svelte +80 -0
  5. package/dist/components/activity/Activity.svelte.d.ts +18 -0
  6. package/dist/components/activity/index.d.ts +1 -0
  7. package/dist/components/activity/index.js +1 -0
  8. package/dist/components/avatar/Avatar.svelte +63 -0
  9. package/dist/components/avatar/Avatar.svelte.d.ts +8 -0
  10. package/dist/components/avatar/index.d.ts +1 -0
  11. package/dist/components/avatar/index.js +1 -0
  12. package/dist/components/banner/Banner.stories.svelte +129 -0
  13. package/dist/components/banner/Banner.stories.svelte.d.ts +19 -0
  14. package/dist/components/banner/Banner.svelte +59 -0
  15. package/dist/components/banner/Banner.svelte.d.ts +11 -0
  16. package/dist/components/banner/index.d.ts +1 -0
  17. package/dist/components/banner/index.js +1 -0
  18. package/dist/components/button/Button.stories.svelte +37 -0
  19. package/dist/components/button/Button.stories.svelte.d.ts +19 -0
  20. package/dist/components/button/Button.svelte +263 -0
  21. package/dist/components/button/Button.svelte.d.ts +20 -0
  22. package/dist/components/button/index.d.ts +1 -0
  23. package/dist/components/button/index.js +1 -0
  24. package/dist/components/collapsible/Collapsible.stories.svelte +40 -0
  25. package/dist/components/collapsible/Collapsible.stories.svelte.d.ts +19 -0
  26. package/dist/components/collapsible/components/collapsible-content.svelte +26 -0
  27. package/dist/components/collapsible/components/collapsible-content.svelte.d.ts +10 -0
  28. package/dist/components/collapsible/components/collapsible-trigger.svelte +36 -0
  29. package/dist/components/collapsible/components/collapsible-trigger.svelte.d.ts +4 -0
  30. package/dist/components/collapsible/index.d.ts +5 -0
  31. package/dist/components/collapsible/index.js +4 -0
  32. package/dist/components/collapsible/types.d.ts +9 -0
  33. package/dist/components/collapsible/types.js +1 -0
  34. package/dist/components/combobox/Combobox.stories.svelte +119 -0
  35. package/dist/components/combobox/Combobox.stories.svelte.d.ts +19 -0
  36. package/dist/components/combobox/components/combobox-add.svelte +30 -0
  37. package/dist/components/combobox/components/combobox-add.svelte.d.ts +8 -0
  38. package/dist/components/combobox/components/combobox-content.svelte +137 -0
  39. package/dist/components/combobox/components/combobox-content.svelte.d.ts +4 -0
  40. package/dist/components/combobox/components/combobox-indicator.svelte +5 -0
  41. package/dist/components/combobox/components/combobox-indicator.svelte.d.ts +18 -0
  42. package/dist/components/combobox/index.d.ts +14 -0
  43. package/dist/components/combobox/index.js +15 -0
  44. package/dist/components/combobox/types.d.ts +20 -0
  45. package/dist/components/combobox/types.js +1 -0
  46. package/dist/components/datepicker/DatePicker.svelte +344 -0
  47. package/dist/components/datepicker/DatePicker.svelte.d.ts +8 -0
  48. package/dist/components/datepicker/index.d.ts +1 -0
  49. package/dist/components/datepicker/index.js +1 -0
  50. package/dist/components/divider/Divider.stories.svelte +14 -0
  51. package/dist/components/divider/Divider.stories.svelte.d.ts +27 -0
  52. package/dist/components/divider/Divider.svelte +9 -0
  53. package/dist/components/divider/Divider.svelte.d.ts +6 -0
  54. package/dist/components/divider/index.d.ts +1 -0
  55. package/dist/components/divider/index.js +1 -0
  56. package/dist/components/drawer/Drawer.stories.svelte +64 -0
  57. package/dist/components/drawer/Drawer.stories.svelte.d.ts +27 -0
  58. package/dist/components/drawer/Drawer.svelte +41 -0
  59. package/dist/components/drawer/Drawer.svelte.d.ts +12 -0
  60. package/dist/components/drawer/DrawerLabel.svelte +62 -0
  61. package/dist/components/drawer/DrawerLabel.svelte.d.ts +9 -0
  62. package/dist/components/drawer/index.d.ts +1 -0
  63. package/dist/components/drawer/index.js +1 -0
  64. package/dist/components/dropdown/Dropdown.stories.svelte +236 -0
  65. package/dist/components/dropdown/Dropdown.stories.svelte.d.ts +27 -0
  66. package/dist/components/dropdown/Dropdown.svelte +69 -0
  67. package/dist/components/dropdown/Dropdown.svelte.d.ts +26 -0
  68. package/dist/components/dropdown/components/DropdownContent.svelte +29 -0
  69. package/dist/components/dropdown/components/DropdownContent.svelte.d.ts +10 -0
  70. package/dist/components/dropdown/components/DropdownMenu.svelte +23 -0
  71. package/dist/components/dropdown/components/DropdownMenu.svelte.d.ts +8 -0
  72. package/dist/components/dropdown/components/DropdownTrigger.svelte +46 -0
  73. package/dist/components/dropdown/components/DropdownTrigger.svelte.d.ts +13 -0
  74. package/dist/components/dropdown/components/OutlinedButton.svelte +61 -0
  75. package/dist/components/dropdown/components/OutlinedButton.svelte.d.ts +8 -0
  76. package/dist/components/dropdown/index.d.ts +1 -0
  77. package/dist/components/dropdown/index.js +1 -0
  78. package/dist/components/empty-content/EmptyContent.svelte +19 -0
  79. package/dist/components/empty-content/EmptyContent.svelte.d.ts +8 -0
  80. package/dist/components/graphs/chart/Chart.stories.svelte +128 -0
  81. package/dist/components/graphs/chart/Chart.stories.svelte.d.ts +19 -0
  82. package/dist/components/graphs/chart/Chart.svelte +145 -0
  83. package/dist/components/graphs/chart/Chart.svelte.d.ts +17 -0
  84. package/dist/components/graphs/index.d.ts +4 -0
  85. package/dist/components/graphs/index.js +4 -0
  86. package/dist/components/graphs/line/LineChart.stories.svelte +73 -0
  87. package/dist/components/graphs/line/LineChart.stories.svelte.d.ts +19 -0
  88. package/dist/components/graphs/line/LineChart.svelte +102 -0
  89. package/dist/components/graphs/line/LineChart.svelte.d.ts +18 -0
  90. package/dist/components/graphs/multiline/MultiLineChart.stories.svelte +77 -0
  91. package/dist/components/graphs/multiline/MultiLineChart.stories.svelte.d.ts +19 -0
  92. package/dist/components/graphs/multiline/MultiLineChart.svelte +108 -0
  93. package/dist/components/graphs/multiline/MultiLineChart.svelte.d.ts +22 -0
  94. package/dist/components/graphs/scatterplot/Scatterplot.stories.svelte +78 -0
  95. package/dist/components/graphs/scatterplot/Scatterplot.stories.svelte.d.ts +19 -0
  96. package/dist/components/graphs/scatterplot/Scatterplot.svelte +67 -0
  97. package/dist/components/graphs/scatterplot/Scatterplot.svelte.d.ts +16 -0
  98. package/dist/components/icon-button/IconButton.stories.svelte +82 -0
  99. package/dist/components/icon-button/IconButton.stories.svelte.d.ts +19 -0
  100. package/dist/components/icon-button/IconButton.svelte +152 -0
  101. package/dist/components/icon-button/IconButton.svelte.d.ts +16 -0
  102. package/dist/components/icon-button/index.d.ts +1 -0
  103. package/dist/components/icon-button/index.js +1 -0
  104. package/dist/components/icons/AnalysisIcon.stories.svelte +38 -0
  105. package/dist/components/icons/AnalysisIcon.stories.svelte.d.ts +27 -0
  106. package/dist/components/icons/AnalysisIcon.svelte +110 -0
  107. package/dist/components/icons/AnalysisIcon.svelte.d.ts +10 -0
  108. package/dist/components/icons/Icon.svelte +23 -0
  109. package/dist/components/icons/Icon.svelte.d.ts +4 -0
  110. package/dist/components/icons/custom/Halo.svelte +32 -0
  111. package/dist/components/icons/custom/Halo.svelte.d.ts +26 -0
  112. package/dist/components/icons/custom/Well.svelte +26 -0
  113. package/dist/components/icons/custom/Well.svelte.d.ts +26 -0
  114. package/dist/components/icons/index.d.ts +17 -0
  115. package/dist/components/icons/index.js +21 -0
  116. package/dist/components/icons/types.d.ts +0 -0
  117. package/dist/components/icons/types.js +1 -0
  118. package/dist/components/image/Image.svelte +55 -0
  119. package/dist/components/image/Image.svelte.d.ts +7 -0
  120. package/dist/components/image/index.d.ts +1 -0
  121. package/dist/components/image/index.js +1 -0
  122. package/dist/components/input/Input.stories.svelte +87 -0
  123. package/dist/components/input/Input.stories.svelte.d.ts +27 -0
  124. package/dist/components/input/Input.svelte +204 -0
  125. package/dist/components/input/Input.svelte.d.ts +24 -0
  126. package/dist/components/input/index.d.ts +1 -0
  127. package/dist/components/input/index.js +1 -0
  128. package/dist/components/list/List.stories.svelte +97 -0
  129. package/dist/components/list/List.stories.svelte.d.ts +19 -0
  130. package/dist/components/list/List.svelte +69 -0
  131. package/dist/components/list/List.svelte.d.ts +24 -0
  132. package/dist/components/list/index.d.ts +1 -0
  133. package/dist/components/list/index.js +1 -0
  134. package/dist/components/logo/Logo.stories.svelte +21 -0
  135. package/dist/components/logo/Logo.stories.svelte.d.ts +27 -0
  136. package/dist/components/logo/Logo.svelte +39 -0
  137. package/dist/components/logo/Logo.svelte.d.ts +7 -0
  138. package/dist/components/logo/index.d.ts +1 -0
  139. package/dist/components/logo/index.js +1 -0
  140. package/dist/components/markdown/Markdown.stories.svelte +41 -0
  141. package/dist/components/markdown/Markdown.stories.svelte.d.ts +27 -0
  142. package/dist/components/markdown/Markdown.svelte +12 -0
  143. package/dist/components/markdown/Markdown.svelte.d.ts +6 -0
  144. package/dist/components/markdown/index.d.ts +1 -0
  145. package/dist/components/markdown/index.js +1 -0
  146. package/dist/components/modal/Modal.stories.svelte +39 -0
  147. package/dist/components/modal/Modal.stories.svelte.d.ts +19 -0
  148. package/dist/components/modal/Modal.svelte +76 -0
  149. package/dist/components/modal/Modal.svelte.d.ts +17 -0
  150. package/dist/components/modal/index.d.ts +1 -0
  151. package/dist/components/modal/index.js +1 -0
  152. package/dist/components/notification-popup/NotificationPopup.stories.svelte +27 -0
  153. package/dist/components/notification-popup/NotificationPopup.stories.svelte.d.ts +27 -0
  154. package/dist/components/notification-popup/NotificationPopup.svelte +33 -0
  155. package/dist/components/notification-popup/NotificationPopup.svelte.d.ts +11 -0
  156. package/dist/components/notification-popup/index.d.ts +1 -0
  157. package/dist/components/notification-popup/index.js +1 -0
  158. package/dist/components/pill/Pill.svelte +39 -0
  159. package/dist/components/pill/Pill.svelte.d.ts +10 -0
  160. package/dist/components/pill/index.d.ts +1 -0
  161. package/dist/components/pill/index.js +1 -0
  162. package/dist/components/progress-circle/ProgressCircle.svelte +79 -0
  163. package/dist/components/progress-circle/ProgressCircle.svelte.d.ts +7 -0
  164. package/dist/components/progress-circle/index.d.ts +1 -0
  165. package/dist/components/progress-circle/index.js +1 -0
  166. package/dist/components/segmented-control-buttons/ControlButton.svelte +57 -0
  167. package/dist/components/segmented-control-buttons/ControlButton.svelte.d.ts +14 -0
  168. package/dist/components/segmented-control-buttons/SegmentedControlButtons.stories.svelte +45 -0
  169. package/dist/components/segmented-control-buttons/SegmentedControlButtons.stories.svelte.d.ts +19 -0
  170. package/dist/components/segmented-control-buttons/SegmentedControlButtons.svelte +21 -0
  171. package/dist/components/segmented-control-buttons/SegmentedControlButtons.svelte.d.ts +12 -0
  172. package/dist/components/segmented-control-buttons/index.d.ts +1 -0
  173. package/dist/components/segmented-control-buttons/index.js +1 -0
  174. package/dist/components/select/Select.stories.svelte +113 -0
  175. package/dist/components/select/Select.stories.svelte.d.ts +19 -0
  176. package/dist/components/select/Select.svelte +141 -0
  177. package/dist/components/select/Select.svelte.d.ts +60 -0
  178. package/dist/components/select/index.d.ts +7 -0
  179. package/dist/components/select/index.js +1 -0
  180. package/dist/components/skeleton-loader/SkeletonLoader.stories.svelte +45 -0
  181. package/dist/components/skeleton-loader/SkeletonLoader.stories.svelte.d.ts +27 -0
  182. package/dist/components/skeleton-loader/SkeletonLoader.svelte +17 -0
  183. package/dist/components/skeleton-loader/SkeletonLoader.svelte.d.ts +14 -0
  184. package/dist/components/skeleton-loader/StatcardSkeleton.svelte +14 -0
  185. package/dist/components/skeleton-loader/StatcardSkeleton.svelte.d.ts +18 -0
  186. package/dist/components/skeleton-loader/components/Skeleton.svelte +14 -0
  187. package/dist/components/skeleton-loader/components/Skeleton.svelte.d.ts +8 -0
  188. package/dist/components/skeleton-loader/components/SkeletonImage.svelte +14 -0
  189. package/dist/components/skeleton-loader/components/SkeletonImage.svelte.d.ts +26 -0
  190. package/dist/components/skeleton-loader/index.d.ts +3 -0
  191. package/dist/components/skeleton-loader/index.js +3 -0
  192. package/dist/components/slider/Slider.stories.svelte +37 -0
  193. package/dist/components/slider/Slider.stories.svelte.d.ts +27 -0
  194. package/dist/components/slider/Slider.svelte +126 -0
  195. package/dist/components/slider/Slider.svelte.d.ts +31 -0
  196. package/dist/components/slider/index.d.ts +1 -0
  197. package/dist/components/slider/index.js +1 -0
  198. package/dist/components/spinner/Spinner.svelte +27 -0
  199. package/dist/components/spinner/Spinner.svelte.d.ts +6 -0
  200. package/dist/components/spinner/index.d.ts +1 -0
  201. package/dist/components/spinner/index.js +1 -0
  202. package/dist/components/stat-card/StatCard.stories.svelte +32 -0
  203. package/dist/components/stat-card/StatCard.stories.svelte.d.ts +27 -0
  204. package/dist/components/stat-card/StatCard.svelte +52 -0
  205. package/dist/components/stat-card/StatCard.svelte.d.ts +10 -0
  206. package/dist/components/stat-card/index.d.ts +1 -0
  207. package/dist/components/stat-card/index.js +1 -0
  208. package/dist/components/status-badge/StatusBadge.stories.svelte +401 -0
  209. package/dist/components/status-badge/StatusBadge.stories.svelte.d.ts +19 -0
  210. package/dist/components/status-badge/StatusBadge.svelte +147 -0
  211. package/dist/components/status-badge/StatusBadge.svelte.d.ts +12 -0
  212. package/dist/components/status-badge/index.d.ts +1 -0
  213. package/dist/components/status-badge/index.js +1 -0
  214. package/dist/components/table/Table.stories.svelte +90 -0
  215. package/dist/components/table/Table.stories.svelte.d.ts +24 -0
  216. package/dist/components/table/Table.svelte +47 -0
  217. package/dist/components/table/Table.svelte.d.ts +21 -0
  218. package/dist/components/table/components/TBody.svelte +14 -0
  219. package/dist/components/table/components/TBody.svelte.d.ts +8 -0
  220. package/dist/components/table/components/THead.svelte +14 -0
  221. package/dist/components/table/components/THead.svelte.d.ts +8 -0
  222. package/dist/components/table/components/Td.svelte +14 -0
  223. package/dist/components/table/components/Td.svelte.d.ts +8 -0
  224. package/dist/components/table/components/Th.svelte +15 -0
  225. package/dist/components/table/components/Th.svelte.d.ts +9 -0
  226. package/dist/components/table/components/Tr.svelte +31 -0
  227. package/dist/components/table/components/Tr.svelte.d.ts +8 -0
  228. package/dist/components/table/index.d.ts +1 -0
  229. package/dist/components/table/index.js +1 -0
  230. package/dist/components/tabs/Tabs.stories.svelte +28 -0
  231. package/dist/components/tabs/Tabs.stories.svelte.d.ts +27 -0
  232. package/dist/components/tabs/Tabs.svelte +13 -0
  233. package/dist/components/tabs/Tabs.svelte.d.ts +14 -0
  234. package/dist/components/tabs/components/Content.svelte +15 -0
  235. package/dist/components/tabs/components/Content.svelte.d.ts +9 -0
  236. package/dist/components/tabs/components/Tab.svelte +21 -0
  237. package/dist/components/tabs/components/Tab.svelte.d.ts +10 -0
  238. package/dist/components/tabs/components/Tabs.svelte +14 -0
  239. package/dist/components/tabs/components/Tabs.svelte.d.ts +8 -0
  240. package/dist/components/tabs/index.d.ts +1 -0
  241. package/dist/components/tabs/index.js +1 -0
  242. package/dist/components/tag/Tag.stories.svelte +51 -0
  243. package/dist/components/tag/Tag.stories.svelte.d.ts +19 -0
  244. package/dist/components/tag/Tag.svelte +102 -0
  245. package/dist/components/tag/Tag.svelte.d.ts +12 -0
  246. package/dist/components/tag/index.d.ts +1 -0
  247. package/dist/components/tag/index.js +1 -0
  248. package/dist/components/toggle/Toggle.stories.svelte +15 -0
  249. package/dist/components/toggle/Toggle.stories.svelte.d.ts +27 -0
  250. package/dist/components/toggle/Toggle.svelte +73 -0
  251. package/dist/components/toggle/Toggle.svelte.d.ts +8 -0
  252. package/dist/components/toggle/index.d.ts +1 -0
  253. package/dist/components/toggle/index.js +1 -0
  254. package/dist/components/tooltip/Tooltip.stories.svelte +126 -0
  255. package/dist/components/tooltip/Tooltip.stories.svelte.d.ts +27 -0
  256. package/dist/components/tooltip/Tooltip.svelte +49 -0
  257. package/dist/components/tooltip/Tooltip.svelte.d.ts +13 -0
  258. package/dist/components/tooltip/index.d.ts +1 -0
  259. package/dist/components/tooltip/index.js +1 -0
  260. package/dist/fonts/MDSystemMono-Regular.woff +0 -0
  261. package/dist/fonts/MDSystemMono-Regular.woff2 +0 -0
  262. package/dist/fonts/afAnotherSans-Medium.woff2 +0 -0
  263. package/dist/fonts/afAnotherSans-Regular.woff2 +0 -0
  264. package/dist/fonts/afAnotherSans-SemiBold.woff2 +0 -0
  265. package/dist/fonts/afAnotherSans.woff2 +0 -0
  266. package/dist/fonts/index.d.ts +4 -0
  267. package/dist/fonts/index.js +6 -0
  268. package/dist/index.d.ts +37 -0
  269. package/dist/index.js +39 -68464
  270. package/dist/tailwind-safelist.d.ts +27 -0
  271. package/dist/tailwind-safelist.js +475 -0
  272. package/dist/tailwind.d.ts +11 -0
  273. package/dist/tailwind.js +1 -0
  274. package/dist/tailwind.preset.d.ts +344 -0
  275. package/dist/tailwind.preset.js +55 -0
  276. package/dist/tokens.d.ts +598 -0
  277. package/dist/tokens.js +285 -0
  278. package/dist/types/fonts.d.ts +4 -0
  279. package/package.json +2 -1
  280. package/dist/index.css +0 -1
  281. package/dist/index.umd.cjs +0 -148
@@ -0,0 +1,64 @@
1
+ <script module>
2
+ import { defineMeta } from '@storybook/addon-svelte-csf';
3
+ import Drawer from './Drawer.svelte';
4
+ import Button from '../button/Button.svelte';
5
+
6
+ const { Story } = defineMeta({
7
+ component: Drawer,
8
+ title: 'Design System/Drawer',
9
+ tags: ['autodocs']
10
+ });
11
+
12
+ let open = $state(false);
13
+ </script>
14
+
15
+ <Story name="Base">
16
+ <div class="py-12">
17
+ <Drawer id="my-drawer" bind:open controlled>
18
+ {#snippet trigger()}
19
+ <Button onClick={() => (open = true)}>Open Drawer</Button>
20
+ {/snippet}
21
+ {#snippet content()}
22
+ <div>
23
+ <div>
24
+ <p>Drawer content here</p>
25
+ </div>
26
+ </div>
27
+ {/snippet}
28
+ </Drawer>
29
+ </div>
30
+ </Story>
31
+
32
+ <Story name="Open">
33
+ <div class="py-12">
34
+ <Drawer id="my-drawer" open controlled>
35
+ {#snippet trigger()}
36
+ <Button onClick={() => (open = true)}>Open Drawer</Button>
37
+ {/snippet}
38
+ {#snippet content()}
39
+ <div>
40
+ <div>
41
+ <p>Drawer content here</p>
42
+ </div>
43
+ </div>
44
+ {/snippet}
45
+ </Drawer>
46
+ </div>
47
+ </Story>
48
+
49
+ <Story name="Open Left">
50
+ <div class="py-12">
51
+ <Drawer id="my-drawer" side="left" bind:open controlled>
52
+ {#snippet trigger()}
53
+ <Button onClick={() => (open = true)}>Open Drawer</Button>
54
+ {/snippet}
55
+ {#snippet content()}
56
+ <div>
57
+ <div>
58
+ <p>Drawer content here</p>
59
+ </div>
60
+ </div>
61
+ {/snippet}
62
+ </Drawer>
63
+ </div>
64
+ </Story>
@@ -0,0 +1,27 @@
1
+ export default Drawer;
2
+ type Drawer = SvelteComponent<{
3
+ [x: string]: never;
4
+ }, {
5
+ [evt: string]: CustomEvent<any>;
6
+ }, {}> & {
7
+ $$bindings?: string | undefined;
8
+ };
9
+ declare const Drawer: $$__sveltets_2_IsomorphicComponent<{
10
+ [x: string]: never;
11
+ }, {
12
+ [evt: string]: CustomEvent<any>;
13
+ }, {}, {}, string>;
14
+ import Drawer from './Drawer.svelte';
15
+ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
16
+ new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
17
+ $$bindings?: Bindings;
18
+ } & Exports;
19
+ (internal: unknown, props: {
20
+ $$events?: Events;
21
+ $$slots?: Slots;
22
+ }): Exports & {
23
+ $set?: any;
24
+ $on?: any;
25
+ };
26
+ z_$$bindings?: Bindings;
27
+ }
@@ -0,0 +1,41 @@
1
+ <script lang="ts">
2
+ import type { Snippet } from 'svelte';
3
+ import DrawerLabel from './DrawerLabel.svelte';
4
+
5
+ interface Props {
6
+ id: string;
7
+ controlled?: boolean;
8
+ // Open only works when controlled is true
9
+ open?: boolean;
10
+ side?: 'left' | 'right';
11
+ trigger?: Snippet;
12
+ content: Snippet;
13
+ }
14
+
15
+ let {
16
+ id,
17
+ controlled = false,
18
+ open = $bindable(false),
19
+ side = 'right',
20
+ trigger,
21
+ content
22
+ }: Props = $props();
23
+ </script>
24
+
25
+ <div class={`drawer-auto-gutter drawer`} class:drawer-end={side === 'right'}>
26
+ {#if controlled}
27
+ <input {id} type="checkbox" class="drawer-toggle" bind:checked={open} />
28
+ {:else}
29
+ <input {id} type="checkbox" class="drawer-toggle" />
30
+ {/if}
31
+
32
+ <div class="drawer-content">
33
+ {@render trigger?.()}
34
+ </div>
35
+ <div class="drawer-side" inert={controlled ? !open : false}>
36
+ <label for={id} aria-label="close sidebar" class="drawer-overlay"></label>
37
+ <div class="h-screen bg-surface sm:w-[460px]">
38
+ {@render content()}
39
+ </div>
40
+ </div>
41
+ </div>
@@ -0,0 +1,12 @@
1
+ import type { Snippet } from 'svelte';
2
+ interface Props {
3
+ id: string;
4
+ controlled?: boolean;
5
+ open?: boolean;
6
+ side?: 'left' | 'right';
7
+ trigger?: Snippet;
8
+ content: Snippet;
9
+ }
10
+ declare const Drawer: import("svelte").Component<Props, {}, "open">;
11
+ type Drawer = ReturnType<typeof Drawer>;
12
+ export default Drawer;
@@ -0,0 +1,62 @@
1
+ <script lang="ts">
2
+ import type { Snippet } from 'svelte';
3
+
4
+ interface Props {
5
+ id: string;
6
+ classes?: string;
7
+ children: Snippet;
8
+ }
9
+
10
+ let { id, classes = '', children }: Props = $props();
11
+ </script>
12
+
13
+ <label for={id} class={`${classes}`}>{@render children()}</label>
14
+
15
+ <style>
16
+ label {
17
+
18
+ display: flex;
19
+
20
+ width: 100%;
21
+
22
+ cursor: pointer;
23
+
24
+ align-items: center;
25
+
26
+ gap: 0.25rem;
27
+
28
+ border-radius: 0.5rem;
29
+
30
+ border-width: 1px;
31
+
32
+ border-color: #12192A1A;
33
+
34
+ --tw-bg-opacity: 1;
35
+
36
+ background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
37
+
38
+ padding: 0.75rem;
39
+
40
+ --tw-text-opacity: 1;
41
+
42
+ color: rgb(18 25 42 / var(--tw-text-opacity, 1));
43
+
44
+ --tw-shadow: 0 1px 4px 0 rgba(18, 25, 42, 0.04);
45
+
46
+ --tw-shadow-colored: 0 1px 4px 0 var(--tw-shadow-color);
47
+
48
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)
49
+ }
50
+
51
+ label:not(:focus-within):hover {
52
+
53
+ border-color: #5750ee40
54
+ }
55
+
56
+ label:focus-within {
57
+
58
+ --tw-border-opacity: 1;
59
+
60
+ border-color: rgb(87 80 238 / var(--tw-border-opacity, 1))
61
+ }
62
+ </style>
@@ -0,0 +1,9 @@
1
+ import type { Snippet } from 'svelte';
2
+ interface Props {
3
+ id: string;
4
+ classes?: string;
5
+ children: Snippet;
6
+ }
7
+ declare const DrawerLabel: import("svelte").Component<Props, {}, "">;
8
+ type DrawerLabel = ReturnType<typeof DrawerLabel>;
9
+ export default DrawerLabel;
@@ -0,0 +1 @@
1
+ export { default as Drawer } from './Drawer.svelte';
@@ -0,0 +1 @@
1
+ export { default as Drawer } from './Drawer.svelte';
@@ -0,0 +1,236 @@
1
+ <script module>
2
+ import { defineMeta } from '@storybook/addon-svelte-csf';
3
+ import Dropdown from './Dropdown.svelte';
4
+
5
+ const { Story } = defineMeta({
6
+ component: Dropdown,
7
+ title: 'Design System/Dropdown',
8
+ tags: ['autodocs']
9
+ });
10
+ </script>
11
+
12
+ <Story name="Primary">
13
+ <div class="py-12">
14
+ <Dropdown>
15
+ {#snippet trigger({ Trigger })}
16
+ <Trigger>Dropdown</Trigger>
17
+ {/snippet}
18
+ {#snippet content({ DropdownMenu })}
19
+ <div>
20
+ <DropdownMenu class="w-full">
21
+ <li>
22
+ <p>1st item</p>
23
+ </li>
24
+ <li>
25
+ <p>2nd item</p>
26
+ </li>
27
+ </DropdownMenu>
28
+ </div>
29
+ {/snippet}
30
+ </Dropdown>
31
+ </div>
32
+ </Story>
33
+
34
+ <Story name="OutlinedButton">
35
+ <div class="py-12">
36
+ <Dropdown>
37
+ {#snippet trigger({ OutlinedButton })}
38
+ <OutlinedButton>Dropdown</OutlinedButton>
39
+ {/snippet}
40
+ {#snippet content({ DropdownMenu })}
41
+ <div>
42
+ <DropdownMenu class="w-full">
43
+ <li>
44
+ <p>1st item</p>
45
+ </li>
46
+ <li>
47
+ <p>2nd item</p>
48
+ </li>
49
+ </DropdownMenu>
50
+ </div>
51
+ {/snippet}
52
+ </Dropdown>
53
+ </div>
54
+ </Story>
55
+
56
+ <Story name="Secondary">
57
+ <div class="py-12">
58
+ <Dropdown>
59
+ {#snippet trigger({ Trigger })}
60
+ <Trigger variant="secondary">Dropdown</Trigger>
61
+ {/snippet}
62
+ {#snippet content({ DropdownMenu })}
63
+ <div>
64
+ <DropdownMenu class="w-full">
65
+ <li>
66
+ <p>1st item</p>
67
+ </li>
68
+ <li>
69
+ <p>2nd item</p>
70
+ </li>
71
+ </DropdownMenu>
72
+ </div>
73
+ {/snippet}
74
+ </Dropdown>
75
+ </div>
76
+ </Story>
77
+ <Story name="Transparent">
78
+ <div class="py-12">
79
+ <Dropdown>
80
+ {#snippet trigger({ Trigger })}
81
+ <Trigger variant="transparent">Dropdown</Trigger>
82
+ {/snippet}
83
+ {#snippet content({ DropdownMenu })}
84
+ <div>
85
+ <DropdownMenu class="w-full">
86
+ <li>
87
+ <p>1st item</p>
88
+ </li>
89
+ <li>
90
+ <p>2nd item</p>
91
+ </li>
92
+ </DropdownMenu>
93
+ </div>
94
+ {/snippet}
95
+ </Dropdown>
96
+ </div>
97
+ </Story>
98
+ <Story name="Danger">
99
+ <div class="py-12">
100
+ <Dropdown>
101
+ {#snippet trigger({ Trigger })}
102
+ <Trigger variant="danger">Dropdown</Trigger>
103
+ {/snippet}
104
+ {#snippet content({ DropdownMenu })}
105
+ <div>
106
+ <DropdownMenu class="w-full">
107
+ <li>
108
+ <p>1st item</p>
109
+ </li>
110
+ <li>
111
+ <p>2nd item</p>
112
+ </li>
113
+ </DropdownMenu>
114
+ </div>
115
+ {/snippet}
116
+ </Dropdown>
117
+ </div>
118
+ </Story>
119
+
120
+ <Story name="Sides">
121
+ <div class="flex h-screen w-full items-center justify-center">
122
+ <div class="flex flex-1 justify-between">
123
+ <Dropdown open side="dropdown-bottom">
124
+ {#snippet trigger({ Trigger })}
125
+ <Trigger>Bottom</Trigger>
126
+ {/snippet}
127
+
128
+ {#snippet content({ DropdownMenu })}
129
+ <div>
130
+ <DropdownMenu class="w-[120px]">
131
+ <li>
132
+ <p>1st item</p>
133
+ </li>
134
+ <li>
135
+ <p>2nd item</p>
136
+ </li>
137
+ </DropdownMenu>
138
+ </div>
139
+ {/snippet}
140
+ </Dropdown>
141
+ <Dropdown open side="dropdown-top">
142
+ {#snippet trigger({ Trigger })}
143
+ <Trigger>Top</Trigger>
144
+ {/snippet}
145
+ {#snippet content({ DropdownMenu })}
146
+ <div>
147
+ <DropdownMenu class="w-[120px]">
148
+ <li>
149
+ <p>1st item</p>
150
+ </li>
151
+ <li>
152
+ <p>2nd item</p>
153
+ </li>
154
+ </DropdownMenu>
155
+ </div>
156
+ {/snippet}
157
+ </Dropdown>
158
+ <Dropdown open side="dropdown-right">
159
+ {#snippet trigger({ Trigger })}
160
+ <Trigger>Right</Trigger>
161
+ {/snippet}
162
+ {#snippet content({ DropdownMenu })}
163
+ <div>
164
+ <DropdownMenu class="w-[120px]">
165
+ <li>
166
+ <p>1st item</p>
167
+ </li>
168
+ <li>
169
+ <p>2nd item</p>
170
+ </li>
171
+ </DropdownMenu>
172
+ </div>
173
+ {/snippet}
174
+ </Dropdown>
175
+ <Dropdown open side="dropdown-left">
176
+ {#snippet trigger({ Trigger })}
177
+ <Trigger>Left</Trigger>
178
+ {/snippet}
179
+ {#snippet content({ DropdownMenu })}
180
+ <div>
181
+ <DropdownMenu class="w-[120px]">
182
+ <li>
183
+ <p>1st item</p>
184
+ </li>
185
+ <li>
186
+ <p>2nd item</p>
187
+ </li>
188
+ </DropdownMenu>
189
+ </div>
190
+ {/snippet}
191
+ </Dropdown>
192
+ </div>
193
+ </div>
194
+ </Story>
195
+
196
+ <Story name="End align">
197
+ <div class="py-12">
198
+ <Dropdown alignEnd open>
199
+ {#snippet trigger({ Trigger })}
200
+ <Trigger>Dropdown</Trigger>
201
+ {/snippet}
202
+ {#snippet content({ DropdownMenu })}
203
+ <div>
204
+ <DropdownMenu>
205
+ <li>
206
+ <p>1st item</p>
207
+ </li>
208
+ <li>
209
+ <p>2nd item</p>
210
+ </li>
211
+ </DropdownMenu>
212
+ </div>
213
+ {/snippet}
214
+ </Dropdown>
215
+ </div>
216
+ </Story>
217
+
218
+ <Story name="Other content">
219
+ <div class="py-12">
220
+ <Dropdown alignEnd open>
221
+ {#snippet trigger({ Trigger })}
222
+ <Trigger>Dropdown</Trigger>
223
+ {/snippet}
224
+ {#snippet content({ DropdownContent })}
225
+ <div>
226
+ <DropdownContent>
227
+ <div>
228
+ <p>This is a dropdown with other content</p>
229
+ <p>It doesn't have to be list items</p>
230
+ </div>
231
+ </DropdownContent>
232
+ </div>
233
+ {/snippet}
234
+ </Dropdown>
235
+ </div>
236
+ </Story>
@@ -0,0 +1,27 @@
1
+ export default Dropdown;
2
+ type Dropdown = SvelteComponent<{
3
+ [x: string]: never;
4
+ }, {
5
+ [evt: string]: CustomEvent<any>;
6
+ }, {}> & {
7
+ $$bindings?: string | undefined;
8
+ };
9
+ declare const Dropdown: $$__sveltets_2_IsomorphicComponent<{
10
+ [x: string]: never;
11
+ }, {
12
+ [evt: string]: CustomEvent<any>;
13
+ }, {}, {}, string>;
14
+ import Dropdown from './Dropdown.svelte';
15
+ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
16
+ new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
17
+ $$bindings?: Bindings;
18
+ } & Exports;
19
+ (internal: unknown, props: {
20
+ $$events?: Events;
21
+ $$slots?: Slots;
22
+ }): Exports & {
23
+ $set?: any;
24
+ $on?: any;
25
+ };
26
+ z_$$bindings?: Bindings;
27
+ }
@@ -0,0 +1,69 @@
1
+ <script lang="ts">
2
+ import type { Snippet } from 'svelte';
3
+ import DropdownContent from './components/DropdownContent.svelte';
4
+ import DropdownMenu from './components/DropdownMenu.svelte';
5
+ import DropdownTrigger from './components/DropdownTrigger.svelte';
6
+ import OutlinedButton from './components/OutlinedButton.svelte';
7
+
8
+ interface Props {
9
+ side?: 'dropdown-top' | 'dropdown-bottom' | 'dropdown-left' | 'dropdown-right';
10
+ open?: boolean;
11
+ alignEnd?: boolean;
12
+ openOnHover?: boolean;
13
+ closeOnItemClick?: boolean;
14
+ class?: string;
15
+ trigger?: Snippet<[{ Trigger: typeof DropdownTrigger; OutlinedButton: typeof OutlinedButton }]>;
16
+ content?: Snippet<
17
+ [{ DropdownContent: typeof DropdownContent; DropdownMenu: typeof DropdownMenu }]
18
+ >;
19
+ }
20
+
21
+ let {
22
+ side = 'dropdown-bottom',
23
+ open = $bindable(false),
24
+ alignEnd = false,
25
+ openOnHover = false,
26
+ closeOnItemClick = false,
27
+ class: className = '',
28
+ trigger,
29
+ content
30
+ }: Props = $props();
31
+
32
+ let C = {};
33
+
34
+ const closeDropdown = () => {
35
+ open = false;
36
+ // https://medium.com/@malikhamzav/how-to-close-daisyui-dropdown-on-click-ea65c5749410
37
+ document.activeElement instanceof HTMLElement && document.activeElement.blur();
38
+ };
39
+
40
+ function handleItemClick() {
41
+ if (closeOnItemClick) {
42
+ closeDropdown();
43
+ }
44
+ }
45
+
46
+ function handleKeyDown(event: KeyboardEvent) {
47
+ if (event.key === 'Escape') {
48
+ closeDropdown();
49
+ }
50
+ }
51
+ </script>
52
+
53
+ <div
54
+ class="dropdown {side} {className}"
55
+ class:dropdown-end={alignEnd}
56
+ class:dropdown-open={open}
57
+ class:dropdown-hover={openOnHover}
58
+ >
59
+ {@render trigger?.({ Trigger: DropdownTrigger, OutlinedButton: OutlinedButton })}
60
+ <div
61
+ class="dropdown-content z-10 w-full"
62
+ role="menu"
63
+ tabindex="-1"
64
+ onkeydown={handleKeyDown}
65
+ onclick={handleItemClick}
66
+ >
67
+ {@render content?.({ DropdownMenu, DropdownContent })}
68
+ </div>
69
+ </div>
@@ -0,0 +1,26 @@
1
+ import type { Snippet } from 'svelte';
2
+ import DropdownContent from './components/DropdownContent.svelte';
3
+ import DropdownMenu from './components/DropdownMenu.svelte';
4
+ import DropdownTrigger from './components/DropdownTrigger.svelte';
5
+ import OutlinedButton from './components/OutlinedButton.svelte';
6
+ interface Props {
7
+ side?: 'dropdown-top' | 'dropdown-bottom' | 'dropdown-left' | 'dropdown-right';
8
+ open?: boolean;
9
+ alignEnd?: boolean;
10
+ openOnHover?: boolean;
11
+ closeOnItemClick?: boolean;
12
+ class?: string;
13
+ trigger?: Snippet<[{
14
+ Trigger: typeof DropdownTrigger;
15
+ OutlinedButton: typeof OutlinedButton;
16
+ }]>;
17
+ content?: Snippet<[
18
+ {
19
+ DropdownContent: typeof DropdownContent;
20
+ DropdownMenu: typeof DropdownMenu;
21
+ }
22
+ ]>;
23
+ }
24
+ declare const Dropdown: import("svelte").Component<Props, {}, "open">;
25
+ type Dropdown = ReturnType<typeof Dropdown>;
26
+ export default Dropdown;
@@ -0,0 +1,29 @@
1
+ <script lang="ts">
2
+ import type { Snippet } from 'svelte';
3
+
4
+ type Variant = 'primary' | 'secondary';
5
+
6
+ interface Props {
7
+ class?: string;
8
+ variant?: Variant;
9
+ children?: Snippet;
10
+ }
11
+
12
+ const Variants: Record<Variant, string> = {
13
+ primary: 'bg-surface text-primary',
14
+ secondary: 'bg-base-inverse text-primary-inverse'
15
+ };
16
+
17
+ let { class: className = '', variant = 'primary', children }: Props = $props();
18
+
19
+ let variantClass = $derived(Variants[variant]);
20
+ </script>
21
+
22
+ <!-- svelte-ignore a11y_no_noninteractive_tabindex -->
23
+ <!-- DaisyUI have a bug wit safari dropdown. Requires tabindex=0-->
24
+ <div
25
+ class={`dropdown-content z-[1] mb-2 rounded-md p-1 shadow-2xl ${variantClass} ${className}`}
26
+ tabindex="0"
27
+ >
28
+ {@render children?.()}
29
+ </div>
@@ -0,0 +1,10 @@
1
+ import type { Snippet } from 'svelte';
2
+ type Variant = 'primary' | 'secondary';
3
+ interface Props {
4
+ class?: string;
5
+ variant?: Variant;
6
+ children?: Snippet;
7
+ }
8
+ declare const DropdownContent: import("svelte").Component<Props, {}, "">;
9
+ type DropdownContent = ReturnType<typeof DropdownContent>;
10
+ export default DropdownContent;
@@ -0,0 +1,23 @@
1
+ <script lang="ts">
2
+ import type { Snippet } from 'svelte';
3
+
4
+ interface Props {
5
+ class?: string;
6
+ children?: Snippet;
7
+ }
8
+
9
+ let { class: className = '', children }: Props = $props();
10
+ </script>
11
+
12
+ <ul
13
+ tabIndex="0"
14
+ class={`menu dropdown-content menu-md z-[1] rounded-lg bg-surface p-1 shadow-menu ${className}`}
15
+ >
16
+ {@render children?.()}
17
+ </ul>
18
+
19
+ <style>
20
+ :global(.menu li > *:not(ul):not(.menu-title):not(details):active) {
21
+ background-color: #12192A1A
22
+ }
23
+ </style>
@@ -0,0 +1,8 @@
1
+ import type { Snippet } from 'svelte';
2
+ interface Props {
3
+ class?: string;
4
+ children?: Snippet;
5
+ }
6
+ declare const DropdownMenu: import("svelte").Component<Props, {}, "">;
7
+ type DropdownMenu = ReturnType<typeof DropdownMenu>;
8
+ export default DropdownMenu;