@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,39 @@
1
+ <script module lang="ts">
2
+ import Button from '../button/Button.svelte';
3
+ import Modal from '../modal/Modal.svelte';
4
+ import { defineMeta } from '@storybook/addon-svelte-csf';
5
+
6
+ const { Story } = defineMeta({
7
+ component: Modal,
8
+ title: 'Design System/Modal',
9
+ tags: ['autodocs']
10
+ });
11
+
12
+ let defaultOpen = $state(true);
13
+ </script>
14
+
15
+ <Story name="Default">
16
+ <Modal>
17
+ {#snippet Trigger({ openModal })}
18
+ <Button onClick={openModal}>Open Modal</Button>
19
+ {/snippet}
20
+ {#snippet Content()}
21
+ <div>
22
+ <p>Modal Content</p>
23
+ </div>
24
+ {/snippet}
25
+ </Modal>
26
+ </Story>
27
+
28
+ <Story name="Default open">
29
+ <Modal {defaultOpen} onclose={() => (defaultOpen = false)}>
30
+ {#snippet Trigger({ openModal })}
31
+ <Button onClick={openModal}>Open Modal</Button>
32
+ {/snippet}
33
+ {#snippet Content()}
34
+ <div>
35
+ <p>Modal Content</p>
36
+ </div>
37
+ {/snippet}
38
+ </Modal>
39
+ </Story>
@@ -0,0 +1,19 @@
1
+ import Modal from '../modal/Modal.svelte';
2
+ 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> {
3
+ new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
4
+ $$bindings?: Bindings;
5
+ } & Exports;
6
+ (internal: unknown, props: {
7
+ $$events?: Events;
8
+ $$slots?: Slots;
9
+ }): Exports & {
10
+ $set?: any;
11
+ $on?: any;
12
+ };
13
+ z_$$bindings?: Bindings;
14
+ }
15
+ declare const Modal: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
16
+ [evt: string]: CustomEvent<any>;
17
+ }, {}, {}, string>;
18
+ type Modal = InstanceType<typeof Modal>;
19
+ export default Modal;
@@ -0,0 +1,76 @@
1
+ <script lang="ts">
2
+ import type { Snippet } from 'svelte';
3
+ import { v4 as uuidv4 } from 'uuid';
4
+ import IconButton from '../icon-button/IconButton.svelte';
5
+ import { X } from 'phosphor-svelte';
6
+
7
+ type ModalProps = {
8
+ Trigger?: Snippet<[{ openModal: () => void; closeModal: () => void }]>;
9
+ Content: Snippet;
10
+ onclose?: () => void;
11
+ defaultOpen?: boolean;
12
+ id?: string;
13
+ withClose?: boolean;
14
+ closeOnClickOutside?: boolean;
15
+ class?: string;
16
+ };
17
+ let {
18
+ Trigger,
19
+ Content,
20
+ onclose,
21
+ defaultOpen = false,
22
+ id = 'modal-' + uuidv4(),
23
+ withClose = true,
24
+ closeOnClickOutside = true,
25
+ class: modalClass
26
+ }: ModalProps = $props();
27
+
28
+ const modalOpen = $state(defaultOpen);
29
+ const openModal = () => {
30
+ const dialog = document.getElementById(id) as HTMLDialogElement | null;
31
+ dialog?.showModal();
32
+ };
33
+
34
+ const closeModal = () => {
35
+ const dialog = document.getElementById(id) as HTMLDialogElement | null;
36
+ dialog?.close();
37
+ onclose?.();
38
+ };
39
+ </script>
40
+
41
+ {#if Trigger}
42
+ {@render Trigger({ openModal, closeModal })}
43
+ {/if}
44
+ <dialog {id} class="modal w-full max-w-full" class:modal-open={modalOpen}>
45
+ <div class="modal-box {modalClass}">
46
+ {#if withClose}
47
+ <div class="close-button">
48
+ <IconButton onclick={closeModal} size="md" variant="secondary">
49
+ <X />
50
+ </IconButton>
51
+ </div>
52
+ {/if}
53
+ {@render Content()}
54
+ </div>
55
+ {#if closeOnClickOutside}
56
+ <form method="dialog" class="modal-backdrop">
57
+ <button onclick={closeModal}>close</button>
58
+ </form>
59
+ {/if}
60
+ </dialog>
61
+
62
+ <style>
63
+ .modal-box {
64
+ position: relative;
65
+ max-width: 100%;
66
+ border-radius: 0.75rem;
67
+ --tw-bg-opacity: 1;
68
+ background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1))
69
+ }
70
+ .close-button {
71
+ position: absolute;
72
+ right: 0px;
73
+ top: 0px;
74
+ padding: 1.5rem
75
+ }
76
+ </style>
@@ -0,0 +1,17 @@
1
+ import type { Snippet } from 'svelte';
2
+ type ModalProps = {
3
+ Trigger?: Snippet<[{
4
+ openModal: () => void;
5
+ closeModal: () => void;
6
+ }]>;
7
+ Content: Snippet;
8
+ onclose?: () => void;
9
+ defaultOpen?: boolean;
10
+ id?: string;
11
+ withClose?: boolean;
12
+ closeOnClickOutside?: boolean;
13
+ class?: string;
14
+ };
15
+ declare const Modal: import("svelte").Component<ModalProps, {}, "">;
16
+ type Modal = ReturnType<typeof Modal>;
17
+ export default Modal;
@@ -0,0 +1 @@
1
+ export { default as Modal } from './Modal.svelte';
@@ -0,0 +1 @@
1
+ export { default as Modal } from './Modal.svelte';
@@ -0,0 +1,27 @@
1
+ <script module>
2
+ import NotificationPopup from './NotificationPopup.svelte';
3
+ import { Sparkle } from 'phosphor-svelte';
4
+
5
+ import { defineMeta } from '@storybook/addon-svelte-csf';
6
+
7
+ const { Story } = defineMeta({
8
+ component: NotificationPopup,
9
+ title: 'Design System/NotificationPopup',
10
+ tags: ['autodocs']
11
+ });
12
+
13
+ let visible = true;
14
+
15
+ function handleClick() {
16
+ visible = !visible;
17
+ }
18
+ </script>
19
+
20
+ <Story name="Primary">
21
+ <NotificationPopup onClose={handleClick} title="See what's new" {visible}>
22
+ <a href="_blank" color="transparent" class="flex items-center gap-2">
23
+ <Sparkle weight="bold" />
24
+ <p>Product updates</p>
25
+ </a>
26
+ </NotificationPopup>
27
+ </Story>
@@ -0,0 +1,27 @@
1
+ export default NotificationPopup;
2
+ type NotificationPopup = SvelteComponent<{
3
+ [x: string]: never;
4
+ }, {
5
+ [evt: string]: CustomEvent<any>;
6
+ }, {}> & {
7
+ $$bindings?: string | undefined;
8
+ };
9
+ declare const NotificationPopup: $$__sveltets_2_IsomorphicComponent<{
10
+ [x: string]: never;
11
+ }, {
12
+ [evt: string]: CustomEvent<any>;
13
+ }, {}, {}, string>;
14
+ import NotificationPopup from './NotificationPopup.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,33 @@
1
+ <script lang="ts">
2
+ import { X } from 'phosphor-svelte';
3
+ import { IconButton } from '../icon-button/';
4
+ import { fade, fly } from 'svelte/transition';
5
+ import type { Snippet } from 'svelte';
6
+
7
+ interface Props {
8
+ onClose: () => void;
9
+ title: string;
10
+ visible: boolean;
11
+ id?: string | undefined;
12
+ children?: Snippet;
13
+ }
14
+
15
+ let { onClose, title, visible, id = undefined, children }: Props = $props();
16
+ </script>
17
+
18
+ {#if visible}
19
+ <div
20
+ {id}
21
+ class="flex w-[200px] justify-between rounded-lg bg-surface p-3 shadow-menu"
22
+ in:fly={{ y: 100, duration: 1000 }}
23
+ out:fade
24
+ >
25
+ <div class="flex flex-col gap-2">
26
+ <h6 class="flex h-6 items-center">{title}</h6>
27
+ {@render children?.()}
28
+ </div>
29
+ <IconButton size="xs" variant="transparent" rounded={false} onclick={onClose}
30
+ ><X class="text-icon-tertiary" weight="bold" /></IconButton
31
+ >
32
+ </div>
33
+ {/if}
@@ -0,0 +1,11 @@
1
+ import type { Snippet } from 'svelte';
2
+ interface Props {
3
+ onClose: () => void;
4
+ title: string;
5
+ visible: boolean;
6
+ id?: string | undefined;
7
+ children?: Snippet;
8
+ }
9
+ declare const NotificationPopup: import("svelte").Component<Props, {}, "">;
10
+ type NotificationPopup = ReturnType<typeof NotificationPopup>;
11
+ export default NotificationPopup;
@@ -0,0 +1 @@
1
+ export { default as NotificationPopup } from './NotificationPopup.svelte';
@@ -0,0 +1 @@
1
+ export { default as NotificationPopup } from './NotificationPopup.svelte';
@@ -0,0 +1,39 @@
1
+ <script lang="ts">
2
+ import { X } from 'phosphor-svelte';
3
+
4
+ interface Props {
5
+ class?: string;
6
+ text: string;
7
+ type?: 'button' | 'submit';
8
+ testID?: string;
9
+ onclick?: () => void;
10
+ }
11
+
12
+ let { class: className = '', text, type = 'button', testID = '', onclick }: Props = $props();
13
+ </script>
14
+
15
+ <button class="{className} " {onclick} {type} data-testid={testID}>
16
+ {text}
17
+ <X class="opacity-50" weight="bold" />
18
+ </button>
19
+
20
+ <style>
21
+ button {
22
+ gap: 0.5rem;
23
+ border-radius: 9999px;
24
+ background-color: #5750ee1A;
25
+ padding-left: 1rem;
26
+ padding-right: 1rem;
27
+ padding-top: 0px;
28
+ padding-bottom: 0px;
29
+ font-size: 0.875rem;
30
+ line-height: 1.25rem;
31
+ --tw-text-opacity: 1;
32
+ color: rgb(71 65 193 / var(--tw-text-opacity, 1));
33
+ display: flex;
34
+ white-space: nowrap;
35
+ height: 32px;
36
+
37
+ align-items: center
38
+ }
39
+ </style>
@@ -0,0 +1,10 @@
1
+ interface Props {
2
+ class?: string;
3
+ text: string;
4
+ type?: 'button' | 'submit';
5
+ testID?: string;
6
+ onclick?: () => void;
7
+ }
8
+ declare const Pill: import("svelte").Component<Props, {}, "">;
9
+ type Pill = ReturnType<typeof Pill>;
10
+ export default Pill;
@@ -0,0 +1 @@
1
+ export { default as Pill } from './Pill.svelte';
@@ -0,0 +1 @@
1
+ export { default as Pill } from './Pill.svelte';
@@ -0,0 +1,79 @@
1
+ <script lang="ts">
2
+ // Make sure progress is between 0 and 100 and round down to the nearest 10 if over 90
3
+ $effect(() => {
4
+ progress =
5
+ progress > 90
6
+ ? Math.floor(Math.min(100, progress) / 10) * 10
7
+ : Math.min(100, Math.max(0, progress));
8
+ });
9
+
10
+ type Props = {
11
+ progress: number;
12
+ size?: 'md' | 'sm';
13
+ };
14
+
15
+ let { progress = $bindable(), size = 'md' }: Props = $props();
16
+
17
+ const viewBox = size === 'md' ? '0 0 20 20' : '0 0 16 16';
18
+ const center = size === 'md' ? 10 : 8;
19
+ const radius = size === 'md' ? 7 : 6;
20
+
21
+ // Create the circle path
22
+ const path = `M ${center} ${center - radius}
23
+ A ${radius} ${radius} 0 1 1 ${center - 0.01} ${center - radius}`;
24
+ </script>
25
+
26
+ <div class="progress-wrapper" class:sm={size === 'sm'} class:md={size === 'md'}>
27
+ <svg xmlns="http://www.w3.org/2000/svg" {viewBox} fill="none">
28
+ <!-- Background track -->
29
+ <path d={path} stroke="currentColor" stroke-opacity="0.25" stroke-width="2" fill="none" />
30
+ <!-- Progress indicator -->
31
+ <path
32
+ d={path}
33
+ stroke="currentColor"
34
+ stroke-width="2"
35
+ stroke-linecap="round"
36
+ fill="none"
37
+ style="stroke-dasharray: var(--pathLength);
38
+ stroke-dashoffset: calc(var(--pathLength) * (1 - {progress / 100}));"
39
+ pathLength="1"
40
+ />
41
+ </svg>
42
+ </div>
43
+
44
+ <style>
45
+ .progress-wrapper {
46
+
47
+ position: relative;
48
+
49
+ display: inline-block;
50
+
51
+ aspect-ratio: 1;
52
+ }
53
+ .progress-wrapper.md {
54
+
55
+ width: 1.25rem;
56
+
57
+ height: 1.25rem;
58
+ }
59
+ .progress-wrapper.sm {
60
+
61
+ width: 1rem;
62
+
63
+ height: 1rem;
64
+ }
65
+
66
+ svg {
67
+
68
+ position: absolute;
69
+
70
+ inset: 0px;
71
+ width: 100%;
72
+ height: 100%;
73
+ display: block;
74
+ }
75
+
76
+ path {
77
+ --pathLength: 1;
78
+ }
79
+ </style>
@@ -0,0 +1,7 @@
1
+ type Props = {
2
+ progress: number;
3
+ size?: 'md' | 'sm';
4
+ };
5
+ declare const ProgressCircle: import("svelte").Component<Props, {}, "progress">;
6
+ type ProgressCircle = ReturnType<typeof ProgressCircle>;
7
+ export default ProgressCircle;
@@ -0,0 +1 @@
1
+ export { default as ProgressCircle } from './ProgressCircle.svelte';
@@ -0,0 +1 @@
1
+ export { default as ProgressCircle } from './ProgressCircle.svelte';
@@ -0,0 +1,57 @@
1
+ <script lang="ts">
2
+ import type { Snippet } from 'svelte';
3
+
4
+ type Color = 'primary' | 'secondary';
5
+
6
+ interface Props {
7
+ class?: string;
8
+ color?: Color;
9
+ disabled?: boolean;
10
+ active?: boolean;
11
+ dataTestId?: string;
12
+ onclick?: () => void;
13
+ children?: Snippet;
14
+ }
15
+
16
+ let {
17
+ class: className = '',
18
+ color = 'primary',
19
+ disabled = false,
20
+ active = false,
21
+ dataTestId,
22
+ onclick,
23
+ children
24
+ }: Props = $props();
25
+ const colors: Record<Color, string> = {
26
+ primary: 'bg-transparent text-primary hover:bg-neutral disabled:text-tertiary',
27
+ secondary: 'bg-transparent text-primary hover:bg-neutral disabled:text-tertiary'
28
+ };
29
+ </script>
30
+
31
+ <div class="join-item flex h-full flex-1">
32
+ <button
33
+ {onclick}
34
+ class={`control-button flex flex-1 items-center justify-center gap-2 rounded-md text-sm leading-4 ${colors[color]} ${className} ${color}`}
35
+ class:active
36
+ type="button"
37
+ {disabled}
38
+ data-testid={dataTestId}
39
+ >
40
+ {@render children?.()}
41
+ </button>
42
+ </div>
43
+
44
+ <style>
45
+ .primary.active {
46
+ --tw-bg-opacity: 1;
47
+ background-color: rgb(87 80 238 / var(--tw-bg-opacity, 1));
48
+ --tw-text-opacity: 1;
49
+ color: rgb(255 255 255 / var(--tw-text-opacity, 1))
50
+ }
51
+ .secondary.active {
52
+ --tw-bg-opacity: 1;
53
+ background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
54
+ --tw-text-opacity: 1;
55
+ color: rgb(18 25 42 / var(--tw-text-opacity, 1))
56
+ }
57
+ </style>
@@ -0,0 +1,14 @@
1
+ import type { Snippet } from 'svelte';
2
+ type Color = 'primary' | 'secondary';
3
+ interface Props {
4
+ class?: string;
5
+ color?: Color;
6
+ disabled?: boolean;
7
+ active?: boolean;
8
+ dataTestId?: string;
9
+ onclick?: () => void;
10
+ children?: Snippet;
11
+ }
12
+ declare const ControlButton: import("svelte").Component<Props, {}, "">;
13
+ type ControlButton = ReturnType<typeof ControlButton>;
14
+ export default ControlButton;
@@ -0,0 +1,45 @@
1
+ <script module lang="ts">
2
+ import { Star } from 'phosphor-svelte';
3
+ import SegmentedControlButtons from './SegmentedControlButtons.svelte';
4
+ import { defineMeta } from '@storybook/addon-svelte-csf';
5
+
6
+ const { Story } = defineMeta({
7
+ component: SegmentedControlButtons,
8
+ title: 'Design System/SegmentedControlButtons',
9
+ tags: ['autodocs']
10
+ });
11
+ </script>
12
+
13
+ <Story name="Primary">
14
+ <SegmentedControlButtons class="w-[350px]">
15
+ {#snippet children({ ControlButton })}
16
+ <ControlButton active><Star /> Low</ControlButton>
17
+ <ControlButton><Star /> Medium</ControlButton>
18
+ <ControlButton disabled><Star /> High</ControlButton>
19
+ {/snippet}
20
+ </SegmentedControlButtons>
21
+ </Story>
22
+ <Story name="Large">
23
+ <SegmentedControlButtons size="lg" class="w-[350px]">
24
+ {#snippet children({ ControlButton })}
25
+ <ControlButton active><Star /> Low</ControlButton>
26
+ <ControlButton><Star /> Medium</ControlButton>
27
+ <ControlButton disabled><Star /> High</ControlButton>
28
+ {/snippet}
29
+ </SegmentedControlButtons>
30
+ </Story>
31
+ <Story name="Secondary">
32
+ <SegmentedControlButtons class="w-[350px]">
33
+ {#snippet children({ ControlButton })}
34
+ <ControlButton active color="secondary">
35
+ <Star /> Low
36
+ </ControlButton>
37
+ <ControlButton color="secondary">
38
+ <Star /> Medium
39
+ </ControlButton>
40
+ <ControlButton color="secondary">
41
+ <Star /> High
42
+ </ControlButton>
43
+ {/snippet}
44
+ </SegmentedControlButtons>
45
+ </Story>
@@ -0,0 +1,19 @@
1
+ import SegmentedControlButtons from './SegmentedControlButtons.svelte';
2
+ 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> {
3
+ new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
4
+ $$bindings?: Bindings;
5
+ } & Exports;
6
+ (internal: unknown, props: {
7
+ $$events?: Events;
8
+ $$slots?: Slots;
9
+ }): Exports & {
10
+ $set?: any;
11
+ $on?: any;
12
+ };
13
+ z_$$bindings?: Bindings;
14
+ }
15
+ declare const SegmentedControlButtons: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
16
+ [evt: string]: CustomEvent<any>;
17
+ }, {}, {}, string>;
18
+ type SegmentedControlButtons = InstanceType<typeof SegmentedControlButtons>;
19
+ export default SegmentedControlButtons;
@@ -0,0 +1,21 @@
1
+ <script lang="ts">
2
+ import type { Snippet } from 'svelte';
3
+ import ControlButton from './ControlButton.svelte';
4
+
5
+ interface Props {
6
+ class?: string;
7
+ size?: 'md' | 'lg';
8
+ children?: Snippet<[{ ControlButton: typeof ControlButton }]>;
9
+ }
10
+
11
+ let { class: className = '', size = 'md', children }: Props = $props();
12
+
13
+ const sizes = {
14
+ md: 'h-10 ',
15
+ lg: 'h-16 [&>*>.control-button]:flex-col'
16
+ };
17
+ </script>
18
+
19
+ <div class={`join flex gap-1 rounded-lg bg-neutral p-1 ${sizes[size]} ${size} ${className}`}>
20
+ {@render children?.({ ControlButton })}
21
+ </div>
@@ -0,0 +1,12 @@
1
+ import type { Snippet } from 'svelte';
2
+ import ControlButton from './ControlButton.svelte';
3
+ interface Props {
4
+ class?: string;
5
+ size?: 'md' | 'lg';
6
+ children?: Snippet<[{
7
+ ControlButton: typeof ControlButton;
8
+ }]>;
9
+ }
10
+ declare const SegmentedControlButtons: import("svelte").Component<Props, {}, "">;
11
+ type SegmentedControlButtons = ReturnType<typeof SegmentedControlButtons>;
12
+ export default SegmentedControlButtons;
@@ -0,0 +1 @@
1
+ export { default as SegmentedControlButtons } from './SegmentedControlButtons.svelte';
@@ -0,0 +1 @@
1
+ export { default as SegmentedControlButtons } from './SegmentedControlButtons.svelte';