@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,401 @@
1
+ <script module lang="ts">
2
+ import StatusBadge from '../status-badge/StatusBadge.svelte';
3
+ import Tooltip from '../tooltip/Tooltip.svelte';
4
+ import ProgressCircle from '../progress-circle/ProgressCircle.svelte';
5
+ import { defineMeta } from '@storybook/addon-svelte-csf';
6
+
7
+ import {
8
+ SpinnerGap,
9
+ CheckCircle,
10
+ Moon,
11
+ StopCircle,
12
+ WifiSlash,
13
+ WarningCircle
14
+ } from 'phosphor-svelte';
15
+
16
+ const { Story } = defineMeta({
17
+ component: StatusBadge,
18
+ title: 'Design System/StatusBadge',
19
+ tags: ['autodocs']
20
+ });
21
+
22
+ let calculated_progress = 32;
23
+ </script>
24
+
25
+ <Story name="Neutral">
26
+ <p class="font-mono text-xs">Medium:</p>
27
+ <div class="flex flex-row gap-4">
28
+ <div class="flex flex-row gap-1">
29
+ <StatusBadge type="neutral">
30
+ {#snippet icon()}
31
+ <SpinnerGap size="100%" weight="bold" />
32
+ {/snippet}
33
+ {#snippet content()}
34
+ <div>Pending</div>
35
+ {/snippet}
36
+ </StatusBadge>
37
+ <StatusBadge type="neutral">
38
+ {#snippet icon()}
39
+ <SpinnerGap size="100%" weight="bold" />
40
+ {/snippet}
41
+ </StatusBadge>
42
+ </div>
43
+ <div class="flex flex-row gap-1">
44
+ <StatusBadge type="neutral">
45
+ {#snippet icon()}
46
+ <Moon size="100%" weight="bold" />
47
+ {/snippet}
48
+ {#snippet content()}
49
+ <div>Idle</div>
50
+ {/snippet}
51
+ </StatusBadge>
52
+ <StatusBadge type="neutral">
53
+ {#snippet icon()}
54
+ <Moon size="100%" weight="bold" />
55
+ {/snippet}
56
+ </StatusBadge>
57
+ </div>
58
+ </div>
59
+ <br />
60
+ <p class="font-mono text-xs">Small:</p>
61
+ <div class="flex flex-row gap-10">
62
+ <div class="flex flex-row gap-1">
63
+ <StatusBadge type="neutral" size="sm">
64
+ {#snippet icon()}
65
+ <SpinnerGap size="100%" weight="bold" />
66
+ {/snippet}
67
+ {#snippet content()}
68
+ <div>Pending</div>
69
+ {/snippet}
70
+ </StatusBadge>
71
+ <StatusBadge type="neutral" size="sm">
72
+ {#snippet icon()}
73
+ <SpinnerGap size="100%" weight="bold" />
74
+ {/snippet}
75
+ </StatusBadge>
76
+ </div>
77
+ <div class="flex flex-row gap-1">
78
+ <StatusBadge type="neutral" size="sm">
79
+ {#snippet icon()}
80
+ <Moon size="100%" weight="bold" />
81
+ {/snippet}
82
+ {#snippet content()}
83
+ <div>Idle</div>
84
+ {/snippet}
85
+ </StatusBadge>
86
+ <StatusBadge type="neutral" size="sm">
87
+ {#snippet icon()}
88
+ <Moon size="100%" weight="bold" />
89
+ {/snippet}
90
+ </StatusBadge>
91
+ </div>
92
+ </div>
93
+ </Story>
94
+
95
+ <Story name="Success">
96
+ <p class="font-mono text-xs">Medium:</p>
97
+ <div class="flex flex-row gap-4">
98
+ <div class="flex flex-row gap-1">
99
+ <Tooltip>
100
+ {#snippet trigger()}
101
+ <div>
102
+ <StatusBadge type="success">
103
+ {#snippet icon()}
104
+ <CheckCircle size="100%" weight="fill" />
105
+ {/snippet}
106
+ {#snippet content()}
107
+ <div>Completed</div>
108
+ {/snippet}
109
+ </StatusBadge>
110
+ </div>
111
+ {/snippet}
112
+ {#snippet content()}
113
+ <div class="flex flex-col text-left">
114
+ <p class="font-bold">Job completed</p>
115
+ <p class="text-xs">8/30/2024, 11:07 AM</p>
116
+ </div>
117
+ {/snippet}
118
+ </Tooltip>
119
+ <StatusBadge type="success">
120
+ {#snippet icon()}
121
+ <CheckCircle size="100%" weight="fill" />
122
+ {/snippet}
123
+ </StatusBadge>
124
+ </div>
125
+ <div class="flex flex-row gap-1">
126
+ <Tooltip>
127
+ {#snippet trigger()}
128
+ <div>
129
+ <StatusBadge type="success">
130
+ {#snippet icon()}
131
+ <StopCircle size="100%" weight="bold" />
132
+ {/snippet}
133
+ {#snippet content()}
134
+ <div>Stopped</div>
135
+ {/snippet}
136
+ </StatusBadge>
137
+ </div>
138
+ {/snippet}
139
+ {#snippet content()}
140
+ <div class="flex flex-col text-left">
141
+ <p class="font-bold">Job stopped</p>
142
+ <p class="text-xs">8/30/2024, 11:07 AM</p>
143
+ </div>
144
+ {/snippet}
145
+ </Tooltip>
146
+ <StatusBadge type="success">
147
+ {#snippet icon()}
148
+ <StopCircle size="100%" weight="bold" />
149
+ {/snippet}
150
+ </StatusBadge>
151
+ </div>
152
+ </div>
153
+ <br />
154
+ <p class="font-mono text-xs">Small:</p>
155
+ <div class="flex flex-row gap-10">
156
+ <div class="flex flex-row gap-1">
157
+ <Tooltip>
158
+ {#snippet trigger()}
159
+ <StatusBadge type="success" size="sm">
160
+ {#snippet icon()}
161
+ <CheckCircle size="100%" weight="fill" />
162
+ {/snippet}
163
+ {#snippet content()}
164
+ <div>Completed</div>
165
+ {/snippet}
166
+ </StatusBadge>
167
+ {/snippet}
168
+ {#snippet content()}
169
+ <div class="flex flex-col text-left">
170
+ <p class="font-bold">Job completed</p>
171
+ <p class="text-xs">8/30/2024, 11:07 AM</p>
172
+ </div>
173
+ {/snippet}
174
+ </Tooltip>
175
+ <StatusBadge type="success" size="sm">
176
+ {#snippet icon()}
177
+ <CheckCircle size="100%" weight="fill" />
178
+ {/snippet}
179
+ </StatusBadge>
180
+ </div>
181
+ <div class="flex flex-row gap-1">
182
+ <Tooltip>
183
+ {#snippet trigger()}
184
+ <StatusBadge type="success" size="sm">
185
+ {#snippet icon()}
186
+ <StopCircle size="100%" weight="bold" />
187
+ {/snippet}
188
+ {#snippet content()}
189
+ <div>Stopped</div>
190
+ {/snippet}
191
+ </StatusBadge>
192
+ {/snippet}
193
+ {#snippet content()}
194
+ <div class="flex flex-col text-left">
195
+ <p class="font-bold">Job stopped</p>
196
+ <p class="text-xs">8/30/2024, 11:07 AM</p>
197
+ </div>
198
+ {/snippet}
199
+ </Tooltip>
200
+ <StatusBadge type="success" size="sm">
201
+ {#snippet icon()}
202
+ <StopCircle size="100%" weight="bold" />
203
+ {/snippet}
204
+ </StatusBadge>
205
+ </div>
206
+ </div>
207
+ </Story>
208
+
209
+ <Story name="Progress">
210
+ <p class="font-mono text-xs">Medium:</p>
211
+ <div class="flex flex-row gap-1">
212
+ <Tooltip>
213
+ {#snippet trigger()}
214
+ <StatusBadge type="progress">
215
+ {#snippet icon()}
216
+ <ProgressCircle progress={calculated_progress} size="md" />
217
+ {/snippet}
218
+ {#snippet content()}
219
+ <div>Running</div>
220
+ {/snippet}
221
+ {#snippet progress()}
222
+ <div>{calculated_progress}%</div>
223
+ {/snippet}
224
+ </StatusBadge>
225
+ {/snippet}
226
+ {#snippet content()}
227
+ <div class="flex flex-col text-left">
228
+ <p class="font-bold">Job running</p>
229
+ <p class="text-xs">1d 3h 2m left</p>
230
+ </div>
231
+ {/snippet}
232
+ </Tooltip>
233
+
234
+ <StatusBadge type="progress">
235
+ {#snippet icon()}
236
+ <ProgressCircle progress={calculated_progress} size="md" />
237
+ {/snippet}
238
+ {#snippet progress()}
239
+ <div>{calculated_progress}%</div>
240
+ {/snippet}
241
+ </StatusBadge>
242
+ </div>
243
+ <br />
244
+ <p class="font-mono text-xs">Small:</p>
245
+ <div class="flex flex-row gap-1">
246
+ <Tooltip>
247
+ {#snippet trigger()}
248
+ <StatusBadge type="progress" size="sm">
249
+ {#snippet icon()}
250
+ <ProgressCircle progress={calculated_progress} size="sm" />
251
+ {/snippet}
252
+ {#snippet content()}
253
+ <div>Running</div>
254
+ {/snippet}
255
+ {#snippet progress()}
256
+ <div>{calculated_progress}%</div>
257
+ {/snippet}
258
+ </StatusBadge>
259
+ {/snippet}
260
+ {#snippet content()}
261
+ <div class="flex flex-col text-left">
262
+ <p class="font-bold">Job running</p>
263
+ <p class="text-xs">1d 3h 2m left</p>
264
+ </div>
265
+ {/snippet}
266
+ </Tooltip>
267
+
268
+ <StatusBadge type="progress" size="sm">
269
+ {#snippet icon()}
270
+ <ProgressCircle progress={calculated_progress} size="sm" />
271
+ {/snippet}
272
+ {#snippet progress()}
273
+ <div>{calculated_progress}%</div>
274
+ {/snippet}
275
+ </StatusBadge>
276
+ </div>
277
+ </Story>
278
+
279
+ <Story name="Warning">
280
+ <p class="font-mono text-xs">Medium:</p>
281
+ <div class="flex flex-row gap-1">
282
+ <Tooltip>
283
+ {#snippet trigger()}
284
+ <StatusBadge type="warning">
285
+ {#snippet icon()}
286
+ <WifiSlash size="100%" weight="bold" />
287
+ {/snippet}
288
+ {#snippet content()}
289
+ <div>Offline</div>
290
+ {/snippet}
291
+ </StatusBadge>
292
+ {/snippet}
293
+ {#snippet content()}
294
+ <div class="flex flex-col text-left">
295
+ <p class="font-bold">Device is offline</p>
296
+ <p class="text-xs">Connect to the internet to start a Job</p>
297
+ </div>
298
+ {/snippet}
299
+ </Tooltip>
300
+
301
+ <StatusBadge type="warning">
302
+ {#snippet icon()}
303
+ <WifiSlash size="100%" weight="bold" />
304
+ {/snippet}
305
+ </StatusBadge>
306
+ </div>
307
+ <br />
308
+ <p class="font-mono text-xs">Small:</p>
309
+ <div class="flex flex-row gap-1">
310
+ <Tooltip>
311
+ {#snippet trigger()}
312
+ <StatusBadge type="warning" size="sm">
313
+ {#snippet icon()}
314
+ <WifiSlash size="100%" weight="bold" />
315
+ {/snippet}
316
+ {#snippet content()}
317
+ <div>Offline</div>
318
+ {/snippet}
319
+ </StatusBadge>
320
+ {/snippet}
321
+ {#snippet content()}
322
+ <div class="flex flex-col text-left">
323
+ <p class="font-bold">Device is offline</p>
324
+ <p class="text-xs">Connect to the internet to start a Job</p>
325
+ </div>
326
+ {/snippet}
327
+ </Tooltip>
328
+
329
+ <StatusBadge type="warning" size="sm">
330
+ {#snippet icon()}
331
+ <WifiSlash size="100%" weight="bold" />
332
+ {/snippet}
333
+ </StatusBadge>
334
+ </div>
335
+ </Story>
336
+
337
+ <Story name="Error">
338
+ <p class="font-mono text-xs">Medium:</p>
339
+ <div class="flex flex-row gap-1">
340
+ <Tooltip>
341
+ {#snippet trigger()}
342
+ <StatusBadge type="error">
343
+ {#snippet icon()}
344
+ <WarningCircle size="100%" weight="fill" />
345
+ {/snippet}
346
+ {#snippet content()}
347
+ <div>Failed</div>
348
+ {/snippet}
349
+ </StatusBadge>
350
+ {/snippet}
351
+ {#snippet content()}
352
+ <div class="flex flex-col text-left">
353
+ <p class="font-bold">Job failed</p>
354
+ <p class="text-xs">8/30/2024, 11:07 AM</p>
355
+ </div>
356
+ {/snippet}</Tooltip
357
+ >
358
+
359
+ <StatusBadge type="error">
360
+ {#snippet icon()}
361
+ <WarningCircle size="100%" weight="fill" />
362
+ {/snippet}
363
+ </StatusBadge>
364
+ </div>
365
+ <br />
366
+ <p class="font-mono text-xs">Small:</p>
367
+ <div class="flex flex-row gap-1">
368
+ <Tooltip>
369
+ {#snippet trigger()}
370
+ <StatusBadge type="error" size="sm">
371
+ {#snippet icon()}
372
+ <WarningCircle size="100%" weight="fill" />
373
+ {/snippet}
374
+ {#snippet content()}
375
+ <div>Failed</div>
376
+ {/snippet}
377
+ </StatusBadge>
378
+ {/snippet}
379
+ {#snippet content()}
380
+ <div class="flex flex-col text-left">
381
+ <p class="font-bold">Job failed</p>
382
+ <p class="text-xs">8/30/2024, 11:07 AM</p>
383
+ </div>
384
+ {/snippet}</Tooltip
385
+ >
386
+
387
+ <StatusBadge type="error" size="sm">
388
+ {#snippet icon()}
389
+ <WarningCircle size="100%" weight="fill" />
390
+ {/snippet}
391
+ </StatusBadge>
392
+ </div>
393
+ </Story>
394
+
395
+ <Story name="Icon only">
396
+ <StatusBadge type="neutral" iconOnly>
397
+ {#snippet icon()}
398
+ <SpinnerGap size="100%" weight="bold" />
399
+ {/snippet}
400
+ </StatusBadge>
401
+ </Story>
@@ -0,0 +1,19 @@
1
+ import StatusBadge from '../status-badge/StatusBadge.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 StatusBadge: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
16
+ [evt: string]: CustomEvent<any>;
17
+ }, {}, {}, string>;
18
+ type StatusBadge = InstanceType<typeof StatusBadge>;
19
+ export default StatusBadge;
@@ -0,0 +1,147 @@
1
+ <script lang="ts">
2
+ import type { Snippet } from 'svelte';
3
+
4
+ interface Props {
5
+ // we can add dynamic classes because they are safelisted in tailwind-safelist.txt
6
+ type?: 'neutral' | 'success' | 'progress' | 'warning' | 'error';
7
+ size?: 'md' | 'sm';
8
+ content?: Snippet;
9
+ progress?: Snippet;
10
+ icon?: Snippet;
11
+ iconOnly?: boolean;
12
+ }
13
+
14
+ let {
15
+ type = 'neutral',
16
+ size = 'md',
17
+ content,
18
+ progress,
19
+ icon,
20
+ iconOnly: propIconOnly = false
21
+ }: Props = $props();
22
+
23
+ let iconOnly = $derived((content === undefined && progress === undefined) || propIconOnly);
24
+ </script>
25
+
26
+ <div
27
+ class={`badge badge-${type} badge-${size}`}
28
+ class:badge-icon-only={iconOnly}
29
+ data-testid="status-badge"
30
+ >
31
+ <div class={`icon`}>
32
+ {@render icon?.()}
33
+ </div>
34
+ <div class="gap-2">
35
+ {@render content?.()}
36
+ {@render progress?.()}
37
+ </div>
38
+ </div>
39
+
40
+ <style>
41
+ .badge {
42
+ gap: 0.5rem;
43
+ border-style: none;
44
+ --tw-text-opacity: 1;
45
+ color: rgb(18 25 42 / var(--tw-text-opacity, 1))
46
+ }
47
+ .badge-md {
48
+ height: 2rem;
49
+ padding-top: 0.5rem;
50
+ padding-bottom: 0.5rem;
51
+ padding-left: 0.5rem;
52
+ padding-right: 0.75rem
53
+ }
54
+ .badge-md .icon {
55
+ width: 1.25rem;
56
+ height: 1.25rem
57
+ }
58
+
59
+ .badge-sm {
60
+ height: 1.5rem;
61
+ gap: 0.25rem;
62
+ padding-left: 0.25rem;
63
+ padding-right: 0.5rem
64
+ }
65
+
66
+ .badge-sm .icon {
67
+ width: 1rem;
68
+ height: 1rem
69
+ }
70
+ .badge-icon-only {
71
+ width: 2rem;
72
+ height: 2rem;
73
+ gap: 0px;
74
+ padding: 0px
75
+ }
76
+
77
+ .badge-sm.badge-icon-only {
78
+ width: 1.5rem;
79
+ height: 1.5rem;
80
+ padding: 0px
81
+ }
82
+
83
+ .badge-neutral {
84
+ background-color: #12192a0d
85
+ }
86
+
87
+ .badge-neutral:hover {
88
+ background-color: #12192A1A
89
+ }
90
+
91
+ .badge-neutral .icon {
92
+ --tw-text-opacity: 1;
93
+ color: rgb(136 140 148 / var(--tw-text-opacity, 1))
94
+ }
95
+
96
+ .badge-success {
97
+ background-color: #0aad6e1A
98
+ }
99
+
100
+ .badge-success:hover {
101
+ background-color: #0aad6e40
102
+ }
103
+
104
+ .badge-success .icon {
105
+ --tw-text-opacity: 1;
106
+ color: rgb(10 173 110 / var(--tw-text-opacity, 1))
107
+ }
108
+ .badge-progress {
109
+ background-color: #5750ee1A
110
+ }
111
+ .badge-progress:hover {
112
+ background-color: #5750ee40
113
+ }
114
+ .badge-progress .icon {
115
+ --tw-text-opacity: 1;
116
+ color: rgb(71 65 193 / var(--tw-text-opacity, 1))
117
+ }
118
+ .badge-warning {
119
+ background-color: #f1b1231A
120
+ }
121
+ .badge-warning:hover {
122
+ background-color: #f1b12340
123
+ }
124
+ .badge-warning .icon {
125
+ --tw-text-opacity: 1;
126
+ color: rgb(241 177 35 / var(--tw-text-opacity, 1))
127
+ }
128
+ .badge-error {
129
+ background-color: #eb46471A
130
+ }
131
+ .badge-error:hover {
132
+ background-color: #eb464740
133
+ }
134
+ .badge-error .icon {
135
+ --tw-text-opacity: 1;
136
+ color: rgb(235 70 71 / var(--tw-text-opacity, 1))
137
+ }
138
+
139
+ :global(.badge > div) {
140
+ display: flex;
141
+ height: 100%;
142
+ flex-direction: row;
143
+ align-items: center;
144
+ justify-content: center;
145
+ white-space: nowrap
146
+ }
147
+ </style>
@@ -0,0 +1,12 @@
1
+ import type { Snippet } from 'svelte';
2
+ interface Props {
3
+ type?: 'neutral' | 'success' | 'progress' | 'warning' | 'error';
4
+ size?: 'md' | 'sm';
5
+ content?: Snippet;
6
+ progress?: Snippet;
7
+ icon?: Snippet;
8
+ iconOnly?: boolean;
9
+ }
10
+ declare const StatusBadge: import("svelte").Component<Props, {}, "">;
11
+ type StatusBadge = ReturnType<typeof StatusBadge>;
12
+ export default StatusBadge;
@@ -0,0 +1 @@
1
+ export { default as StatusBadge } from './StatusBadge.svelte';
@@ -0,0 +1 @@
1
+ export { default as StatusBadge } from './StatusBadge.svelte';
@@ -0,0 +1,90 @@
1
+ <script module lang="ts">
2
+ import Table from './Table.svelte';
3
+
4
+ import { defineMeta } from '@storybook/addon-svelte-csf';
5
+ const { Story } = defineMeta({
6
+ component: Table,
7
+ title: 'Design System/Table',
8
+ tags: ['autodocs']
9
+ });
10
+ import IconButton from '../icon-button/IconButton.svelte';
11
+ import { Phone } from 'phosphor-svelte';
12
+
13
+ export const users = [
14
+ {
15
+ name: 'John Doe',
16
+ age: 25,
17
+ role: 'admin'
18
+ },
19
+ {
20
+ name: 'Jane Smith',
21
+ age: 32,
22
+ role: 'member'
23
+ },
24
+ {
25
+ name: 'Michael Johnson',
26
+ age: 41,
27
+ role: 'deactivated'
28
+ },
29
+ {
30
+ name: 'Emily Brown',
31
+ age: 28,
32
+ role: 'member'
33
+ },
34
+ {
35
+ name: 'David Lee',
36
+ age: 37,
37
+ role: 'admin'
38
+ },
39
+ {
40
+ name: 'Sarah Wilson',
41
+ age: 29,
42
+ role: 'member'
43
+ },
44
+ {
45
+ name: 'Robert Taylor',
46
+ age: 45,
47
+ role: 'deactivated'
48
+ },
49
+ {
50
+ name: 'Lisa Anderson',
51
+ age: 33,
52
+ role: 'member'
53
+ },
54
+ {
55
+ name: 'James Martinez',
56
+ age: 39,
57
+ role: 'admin'
58
+ },
59
+ {
60
+ name: 'Jennifer Garcia',
61
+ age: 31,
62
+ role: 'deactivated'
63
+ }
64
+ ];
65
+ </script>
66
+
67
+ <Story name="Base">
68
+ <Table>
69
+ {#snippet children({ THead, TBody, Tr, Th, Td })}
70
+ <THead>
71
+ <Tr>
72
+ <Th>Name</Th>
73
+ <Th>Age</Th>
74
+ <Th class="w-[100px]">Role</Th>
75
+ <Th class="w-6"></Th>
76
+ </Tr>
77
+ </THead>
78
+ <TBody>
79
+ {#each users as user}
80
+ <Tr disabled={user.role === 'deactivated'}>
81
+ <Td>{user.name}</Td>
82
+ <Td>{user.age}</Td>
83
+ <Td>{user.role}</Td>
84
+ <Td><IconButton disabled={user.role === 'deactivated'}><Phone /></IconButton></Td>
85
+ </Tr>
86
+ {/each}
87
+ </TBody>
88
+ {/snippet}
89
+ </Table>
90
+ </Story>
@@ -0,0 +1,24 @@
1
+ import Table from './Table.svelte';
2
+ export declare const users: {
3
+ name: string;
4
+ age: number;
5
+ role: string;
6
+ }[];
7
+ 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> {
8
+ new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
9
+ $$bindings?: Bindings;
10
+ } & Exports;
11
+ (internal: unknown, props: {
12
+ $$events?: Events;
13
+ $$slots?: Slots;
14
+ }): Exports & {
15
+ $set?: any;
16
+ $on?: any;
17
+ };
18
+ z_$$bindings?: Bindings;
19
+ }
20
+ declare const Table: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
21
+ [evt: string]: CustomEvent<any>;
22
+ }, {}, {}, string>;
23
+ type Table = InstanceType<typeof Table>;
24
+ export default Table;