@reshape-biotech/design-system 1.2.6 → 2.0.0

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 (187) hide show
  1. package/README.md +5 -1
  2. package/dist/app.css +97 -97
  3. package/dist/components/activity/Activity.stories.svelte +104 -104
  4. package/dist/components/activity/Activity.svelte +112 -112
  5. package/dist/components/avatar/Avatar.stories.svelte +23 -23
  6. package/dist/components/avatar/Avatar.svelte +54 -54
  7. package/dist/components/banner/Banner.stories.svelte +105 -105
  8. package/dist/components/banner/Banner.svelte +42 -42
  9. package/dist/components/button/Button.stories.svelte +61 -61
  10. package/dist/components/button/Button.svelte +95 -95
  11. package/dist/components/card/Card.stories.svelte +112 -112
  12. package/dist/components/card/Card.svelte +18 -18
  13. package/dist/components/checkbox/Checkbox.stories.svelte +8 -8
  14. package/dist/components/checkbox/Checkbox.svelte +17 -17
  15. package/dist/components/collapsible/Collapsible.stories.svelte +26 -26
  16. package/dist/components/collapsible/components/collapsible-content.svelte +20 -20
  17. package/dist/components/collapsible/components/collapsible-trigger.svelte +12 -12
  18. package/dist/components/collapsible/index.d.ts +1 -1
  19. package/dist/components/combobox/Combobox.stories.svelte +412 -412
  20. package/dist/components/combobox/components/combobox-add.svelte +8 -8
  21. package/dist/components/combobox/components/combobox-content.svelte +39 -39
  22. package/dist/components/combobox/components/combobox-indicator.svelte +1 -1
  23. package/dist/components/combobox/index.d.ts +1 -1
  24. package/dist/components/datepicker/DatePicker.stories.svelte +196 -196
  25. package/dist/components/datepicker/DatePicker.svelte +173 -173
  26. package/dist/components/divider/Divider.stories.svelte +7 -7
  27. package/dist/components/divider/Divider.svelte +9 -9
  28. package/dist/components/drawer/Drawer.stories.svelte +51 -51
  29. package/dist/components/drawer/Drawer.svelte +33 -33
  30. package/dist/components/drawer/DrawerLabel.svelte +10 -10
  31. package/dist/components/dropdown/Dropdown.stories.svelte +210 -210
  32. package/dist/components/dropdown/Dropdown.svelte +57 -57
  33. package/dist/components/dropdown/components/DropdownContent.svelte +16 -16
  34. package/dist/components/dropdown/components/DropdownMenu.svelte +10 -10
  35. package/dist/components/dropdown/components/DropdownTrigger.svelte +37 -37
  36. package/dist/components/dropdown/components/OutlinedButton.svelte +9 -9
  37. package/dist/components/empty-content/EmptyContent.stories.svelte +38 -38
  38. package/dist/components/empty-content/EmptyContent.svelte +12 -12
  39. package/dist/components/graphs/bar-chart/BarChart.stories.svelte +91 -91
  40. package/dist/components/graphs/bar-chart/BarChart.svelte +147 -147
  41. package/dist/components/graphs/bar-chart/StackedBarChart.stories.svelte +57 -57
  42. package/dist/components/graphs/bar-chart/StackedBarChart.svelte +198 -199
  43. package/dist/components/graphs/chart/Chart.stories.svelte +96 -96
  44. package/dist/components/graphs/chart/Chart.svelte +207 -207
  45. package/dist/components/graphs/line/LineChart.stories.svelte +138 -138
  46. package/dist/components/graphs/line/LineChart.svelte +140 -142
  47. package/dist/components/graphs/matrix/Matrix.stories.svelte +117 -117
  48. package/dist/components/graphs/matrix/Matrix.svelte +141 -141
  49. package/dist/components/graphs/multiline/MultiLineChart.stories.svelte +168 -168
  50. package/dist/components/graphs/multiline/MultiLineChart.svelte +236 -236
  51. package/dist/components/graphs/scatterplot/Scatterplot.stories.svelte +84 -84
  52. package/dist/components/graphs/scatterplot/Scatterplot.svelte +302 -302
  53. package/dist/components/graphs/utils/duration.d.ts +1 -0
  54. package/dist/components/graphs/utils/duration.js +33 -0
  55. package/dist/components/graphs/utils/tooltipFormatter.js +1 -1
  56. package/dist/components/icon-button/IconButton.stories.svelte +64 -64
  57. package/dist/components/icon-button/IconButton.svelte +88 -88
  58. package/dist/components/icons/AnalysisIcon.stories.svelte +18 -18
  59. package/dist/components/icons/AnalysisIcon.svelte +96 -96
  60. package/dist/components/icons/Icon.stories.svelte +111 -111
  61. package/dist/components/icons/Icon.svelte +17 -17
  62. package/dist/components/icons/PrincipalIcon.svelte +59 -59
  63. package/dist/components/icons/custom/Halo.svelte +31 -31
  64. package/dist/components/icons/custom/Well.svelte +27 -27
  65. package/dist/components/icons/index.js +1 -1
  66. package/dist/components/image/Image.svelte +42 -42
  67. package/dist/components/input/Input.stories.svelte +55 -55
  68. package/dist/components/input/Input.svelte +121 -121
  69. package/dist/components/label/Label.stories.svelte +18 -18
  70. package/dist/components/label/Label.svelte +11 -11
  71. package/dist/components/list/List.stories.svelte +84 -84
  72. package/dist/components/list/List.svelte +20 -20
  73. package/dist/components/logo/Logo.stories.svelte +15 -15
  74. package/dist/components/logo/Logo.svelte +30 -30
  75. package/dist/components/manual-cfu-counter/ManualCFUCounter.stories.svelte +102 -102
  76. package/dist/components/manual-cfu-counter/ManualCFUCounter.svelte +557 -557
  77. package/dist/components/manual-cfu-counter/test/ManualCFUCounterTestWrapper.svelte +11 -11
  78. package/dist/components/markdown/Markdown.stories.svelte +10 -10
  79. package/dist/components/markdown/Markdown.svelte +6 -6
  80. package/dist/components/modal/Modal.stories.svelte +29 -29
  81. package/dist/components/modal/Modal.svelte +71 -71
  82. package/dist/components/multi-cfu-counter/MultiCFUCounter.stories.svelte +201 -201
  83. package/dist/components/multi-cfu-counter/MultiCFUCounter.svelte +606 -606
  84. package/dist/components/multi-cfu-counter/test/MultiCFUCounterTestWrapper.svelte +17 -17
  85. package/dist/components/notification-popup/NotificationPopup.stories.svelte +18 -18
  86. package/dist/components/notification-popup/NotificationPopup.svelte +26 -26
  87. package/dist/components/notifications/Notifications.stories.svelte +101 -101
  88. package/dist/components/notifications/Notifications.svelte +9 -9
  89. package/dist/components/pill/Pill.stories.svelte +8 -8
  90. package/dist/components/pill/Pill.svelte +27 -27
  91. package/dist/components/progress-circle/ProgressCircle.stories.svelte +8 -8
  92. package/dist/components/progress-circle/ProgressCircle.svelte +54 -54
  93. package/dist/components/required-status-indicator/RequiredStatusIndicator.stories.svelte +18 -18
  94. package/dist/components/required-status-indicator/RequiredStatusIndicator.svelte +14 -14
  95. package/dist/components/segmented-control-buttons/ControlButton.svelte +36 -36
  96. package/dist/components/segmented-control-buttons/SegmentedControlButtons.stories.svelte +35 -35
  97. package/dist/components/segmented-control-buttons/SegmentedControlButtons.svelte +13 -13
  98. package/dist/components/select/Select.stories.svelte +200 -94
  99. package/dist/components/select/Select.stories.svelte.d.ts +1 -1
  100. package/dist/components/select/components/Group.svelte +24 -0
  101. package/dist/components/select/components/MultiSelectTrigger.svelte +66 -0
  102. package/dist/components/select/components/SelectContent.svelte +33 -0
  103. package/dist/components/select/components/SelectGroupHeading.svelte +19 -0
  104. package/dist/components/select/components/SelectItem.svelte +39 -0
  105. package/dist/components/select/components/SelectTrigger.svelte +48 -0
  106. package/dist/components/select/index.d.ts +10 -7
  107. package/dist/components/select/index.js +12 -1
  108. package/dist/components/sjsf-wrappers/SjsfNumberInputWrapper.svelte +102 -87
  109. package/dist/components/sjsf-wrappers/SjsfNumberInputWrapper.svelte.d.ts +1 -1
  110. package/dist/components/sjsf-wrappers/SjsfTextInputWrapper.svelte +53 -53
  111. package/dist/components/sjsf-wrappers/SjsfTextInputWrapper.svelte.d.ts +1 -1
  112. package/dist/components/sjsf-wrappers/sjsfCustomTheme.js +1 -1
  113. package/dist/components/skeleton-loader/SkeletonLoader.stories.svelte +32 -32
  114. package/dist/components/skeleton-loader/SkeletonLoader.svelte +10 -10
  115. package/dist/components/skeleton-loader/StatcardSkeleton.svelte +9 -9
  116. package/dist/components/skeleton-loader/components/Skeleton.svelte +7 -7
  117. package/dist/components/skeleton-loader/components/SkeletonImage.svelte +12 -12
  118. package/dist/components/slider/Slider.stories.svelte +23 -23
  119. package/dist/components/slider/Slider.svelte +107 -107
  120. package/dist/components/spinner/Spinner.stories.svelte +8 -8
  121. package/dist/components/spinner/Spinner.svelte +18 -18
  122. package/dist/components/stat-card/StatCard.stories.svelte +26 -26
  123. package/dist/components/stat-card/StatCard.svelte +128 -128
  124. package/dist/components/status-badge/StatusBadge.stories.svelte +365 -365
  125. package/dist/components/status-badge/StatusBadge.svelte +54 -54
  126. package/dist/components/stepper/Stepper.stories.svelte +219 -219
  127. package/dist/components/stepper/components/stepper-root.svelte +12 -12
  128. package/dist/components/stepper/components/stepper-step.svelte +83 -83
  129. package/dist/components/table/Table.stories.svelte +87 -87
  130. package/dist/components/table/Table.svelte +32 -32
  131. package/dist/components/table/components/TBody.svelte +7 -7
  132. package/dist/components/table/components/THead.svelte +7 -7
  133. package/dist/components/table/components/Td.svelte +8 -8
  134. package/dist/components/table/components/Th.svelte +8 -8
  135. package/dist/components/table/components/Tr.svelte +11 -11
  136. package/dist/components/tabs/Tabs.stories.svelte +20 -20
  137. package/dist/components/tabs/Tabs.svelte +8 -8
  138. package/dist/components/tabs/components/Content.svelte +8 -8
  139. package/dist/components/tabs/components/Tab.svelte +14 -14
  140. package/dist/components/tabs/components/Tabs.svelte +7 -7
  141. package/dist/components/tag/Tag.stories.svelte +57 -57
  142. package/dist/components/tag/Tag.svelte +95 -95
  143. package/dist/components/textarea/Textarea.stories.svelte +70 -70
  144. package/dist/components/textarea/Textarea.svelte +76 -76
  145. package/dist/components/toast/Toast.stories.svelte +204 -204
  146. package/dist/components/toast/Toast.svelte +53 -53
  147. package/dist/components/toggle/Toggle.stories.svelte +9 -9
  148. package/dist/components/toggle/Toggle.svelte +53 -53
  149. package/dist/components/toggle-icon-button/ToggleIconButton.stories.svelte +152 -152
  150. package/dist/components/toggle-icon-button/ToggleIconButton.svelte +99 -99
  151. package/dist/components/tooltip/Tooltip.stories.svelte +85 -111
  152. package/dist/components/tooltip/Tooltip.svelte +57 -46
  153. package/dist/components/tooltip/Tooltip.svelte.d.ts +1 -1
  154. package/dist/components/tooltip/TooltipTest.svelte +31 -0
  155. package/dist/components/tooltip/TooltipTest.svelte.d.ts +11 -0
  156. package/dist/fonts/index.js +1 -1
  157. package/dist/index.d.ts +0 -1
  158. package/dist/index.js +0 -1
  159. package/dist/notifications.d.ts +1 -4
  160. package/dist/notifications.js +1 -1
  161. package/dist/tailwind-safelist.js +406 -406
  162. package/dist/tailwind.preset.js +10 -10
  163. package/dist/tokens/colors.js +18 -18
  164. package/dist/tokens/typography.js +6 -6
  165. package/dist/tokens.js +19 -19
  166. package/dist/types/fonts.d.ts +2 -2
  167. package/package.json +199 -204
  168. package/dist/components/select/Select.svelte +0 -139
  169. package/dist/components/select/Select.svelte.d.ts +0 -60
  170. package/dist/components/select-new/Select.stories.svelte +0 -219
  171. package/dist/components/select-new/Select.stories.svelte.d.ts +0 -19
  172. package/dist/components/select-new/components/Group.svelte +0 -24
  173. package/dist/components/select-new/components/MultiSelectTrigger.svelte +0 -66
  174. package/dist/components/select-new/components/SelectContent.svelte +0 -33
  175. package/dist/components/select-new/components/SelectGroupHeading.svelte +0 -19
  176. package/dist/components/select-new/components/SelectItem.svelte +0 -39
  177. package/dist/components/select-new/components/SelectTrigger.svelte +0 -48
  178. package/dist/components/select-new/index.d.ts +0 -10
  179. package/dist/components/select-new/index.js +0 -12
  180. /package/dist/components/{select-new → select}/components/Group.svelte.d.ts +0 -0
  181. /package/dist/components/{select-new → select}/components/MultiSelectTrigger.svelte.d.ts +0 -0
  182. /package/dist/components/{select-new → select}/components/SelectContent.svelte.d.ts +0 -0
  183. /package/dist/components/{select-new → select}/components/SelectGroupHeading.svelte.d.ts +0 -0
  184. /package/dist/components/{select-new → select}/components/SelectItem.svelte.d.ts +0 -0
  185. /package/dist/components/{select-new → select}/components/SelectTrigger.svelte.d.ts +0 -0
  186. /package/dist/components/{select-new → select}/types.d.ts +0 -0
  187. /package/dist/components/{select-new → select}/types.js +0 -0
@@ -1,130 +1,130 @@
1
1
  <script module lang="ts">
2
- import { defineMeta } from '@storybook/addon-svelte-csf';
3
- import Card from './Card.svelte';
4
- import RequiredStatusIndicator from '../required-status-indicator/RequiredStatusIndicator.svelte';
2
+ import { defineMeta } from '@storybook/addon-svelte-csf';
3
+ import Card from './Card.svelte';
4
+ import RequiredStatusIndicator from '../required-status-indicator/RequiredStatusIndicator.svelte';
5
5
 
6
- const { Story } = defineMeta({
7
- title: 'Design System/Card',
8
- component: Card,
9
- tags: ['autodocs'],
10
- argTypes: {
11
- Header: { description: 'Optional header snippet', control: false },
12
- children: { description: 'Content snippet for the main body (required)', control: false },
13
- headerBorder: { control: 'boolean', description: 'Show a border below the header' },
14
- class: { control: 'text', description: 'Additional CSS classes for the card' }
15
- }
16
- });
6
+ const { Story } = defineMeta({
7
+ title: 'Design System/Card',
8
+ component: Card,
9
+ tags: ['autodocs'],
10
+ argTypes: {
11
+ Header: { description: 'Optional header snippet', control: false },
12
+ children: { description: 'Content snippet for the main body (required)', control: false },
13
+ headerBorder: { control: 'boolean', description: 'Show a border below the header' },
14
+ class: { control: 'text', description: 'Additional CSS classes for the card' },
15
+ },
16
+ });
17
17
  </script>
18
18
 
19
19
  <Story name="Content Only" args={{ class: 'w-96' }} asChild>
20
- <Card class="w-96">
21
- {#snippet children()}
22
- <h3 class="mb-2 text-lg font-semibold text-primary">Card with Content Only</h3>
23
- <p class="text-secondary">This card demonstrates providing only the children snippet.</p>
24
- <button
25
- class="mt-4 rounded bg-accent-inverse px-4 py-2 text-primary-inverse hover:bg-accent-inverse-hover"
26
- >
27
- Action Button
28
- </button>
29
- {/snippet}
30
- </Card>
20
+ <Card class="w-96">
21
+ {#snippet children()}
22
+ <h3 class="mb-2 text-lg font-semibold text-primary">Card with Content Only</h3>
23
+ <p class="text-secondary">This card demonstrates providing only the children snippet.</p>
24
+ <button
25
+ class="mt-4 rounded bg-accent-inverse px-4 py-2 text-primary-inverse hover:bg-accent-inverse-hover"
26
+ >
27
+ Action Button
28
+ </button>
29
+ {/snippet}
30
+ </Card>
31
31
  </Story>
32
32
 
33
33
  <Story name="Header Only" args={{ class: 'w-96' }} asChild>
34
- <Card class="w-96">
35
- {#snippet Header()}
36
- <p class="text-primary">Card with Header Only</p>
37
- <p class="text-sm text-tertiary">No main content here, just a header.</p>
38
- {/snippet}
39
- {#snippet children()}{/snippet}
40
- </Card>
34
+ <Card class="w-96">
35
+ {#snippet Header()}
36
+ <p class="text-primary">Card with Header Only</p>
37
+ <p class="text-sm text-tertiary">No main content here, just a header.</p>
38
+ {/snippet}
39
+ {#snippet children()}{/snippet}
40
+ </Card>
41
41
  </Story>
42
42
 
43
43
  <Story name="Header and Content" args={{ class: 'w-96' }} asChild>
44
- <Card class="w-96">
45
- {#snippet Header()}
46
- <div class="flex items-center justify-between">
47
- <p class="text-primary">Insect Health</p>
48
- <span class="text-sm text-success">Target</span>
49
- </div>
50
- {/snippet}
51
- {#snippet children()}
52
- <div class="space-y-2">
53
- <div>
54
- <label for="insect-name" class="block text-sm font-medium text-secondary">Name *</label>
55
- <input
56
- type="text"
57
- id="insect-name"
58
- value="Insect health"
59
- class="border-border-input mt-1 block w-full rounded-md p-2"
60
- />
61
- </div>
62
- <div>
63
- <label for="insect-desc" class="block text-sm font-medium text-secondary"
64
- >Description *</label
65
- >
66
- <input
67
- type="text"
68
- id="insect-desc"
69
- value="Health based on insect activity"
70
- class="border-border-input mt-1 block w-full rounded-md p-2"
71
- />
72
- </div>
73
- </div>
74
- {/snippet}
75
- </Card>
44
+ <Card class="w-96">
45
+ {#snippet Header()}
46
+ <div class="flex items-center justify-between">
47
+ <p class="text-primary">Insect Health</p>
48
+ <span class="text-sm text-success">Target</span>
49
+ </div>
50
+ {/snippet}
51
+ {#snippet children()}
52
+ <div class="space-y-2">
53
+ <div>
54
+ <label for="insect-name" class="block text-sm font-medium text-secondary">Name *</label>
55
+ <input
56
+ type="text"
57
+ id="insect-name"
58
+ value="Insect health"
59
+ class="border-border-input mt-1 block w-full rounded-md p-2"
60
+ />
61
+ </div>
62
+ <div>
63
+ <label for="insect-desc" class="block text-sm font-medium text-secondary"
64
+ >Description *</label
65
+ >
66
+ <input
67
+ type="text"
68
+ id="insect-desc"
69
+ value="Health based on insect activity"
70
+ class="border-border-input mt-1 block w-full rounded-md p-2"
71
+ />
72
+ </div>
73
+ </div>
74
+ {/snippet}
75
+ </Card>
76
76
  </Story>
77
77
 
78
78
  <Story name="Header, Content, and Border" args={{ headerBorder: true, class: 'w-96' }} asChild>
79
- <Card headerBorder={true} class="w-96">
80
- {#snippet Header()}
81
- <div class="flex items-center justify-between">
82
- <p class="text-primary">Insect Count</p>
83
- <RequiredStatusIndicator requiredCount={2} currentCount={2} />
84
- </div>
85
- {/snippet}
86
- {#snippet children()}
87
- <div class="space-y-2">
88
- <div>
89
- <label for="count-name" class="block text-sm font-medium text-secondary">Name *</label>
90
- <input
91
- type="text"
92
- id="count-name"
93
- value="Insect count"
94
- class="border-border-input mt-1 block w-full rounded-md p-2"
95
- />
96
- </div>
97
- <div>
98
- <label for="count-desc" class="block text-sm font-medium text-secondary"
99
- >Description *</label
100
- >
101
- <input
102
- type="text"
103
- id="count-desc"
104
- value="Total count of insects detected"
105
- class="border-border-input mt-1 block w-full rounded-md p-2"
106
- />
107
- </div>
108
- <p class="text-secondary">This card has a border under the header.</p>
109
- </div>
110
- {/snippet}
111
- </Card>
79
+ <Card headerBorder={true} class="w-96">
80
+ {#snippet Header()}
81
+ <div class="flex items-center justify-between">
82
+ <p class="text-primary">Insect Count</p>
83
+ <RequiredStatusIndicator requiredCount={2} currentCount={2} />
84
+ </div>
85
+ {/snippet}
86
+ {#snippet children()}
87
+ <div class="space-y-2">
88
+ <div>
89
+ <label for="count-name" class="block text-sm font-medium text-secondary">Name *</label>
90
+ <input
91
+ type="text"
92
+ id="count-name"
93
+ value="Insect count"
94
+ class="border-border-input mt-1 block w-full rounded-md p-2"
95
+ />
96
+ </div>
97
+ <div>
98
+ <label for="count-desc" class="block text-sm font-medium text-secondary"
99
+ >Description *</label
100
+ >
101
+ <input
102
+ type="text"
103
+ id="count-desc"
104
+ value="Total count of insects detected"
105
+ class="border-border-input mt-1 block w-full rounded-md p-2"
106
+ />
107
+ </div>
108
+ <p class="text-secondary">This card has a border under the header.</p>
109
+ </div>
110
+ {/snippet}
111
+ </Card>
112
112
  </Story>
113
113
 
114
114
  <Story name="With Custom Styling" args={{}} asChild>
115
- <Card class="w-1/2 bg-accent text-primary-inverse shadow-lg">
116
- {#snippet Header()}
117
- <p class="">Custom Styled Card</p>
118
- {/snippet}
119
- {#snippet children()}
120
- <p>
121
- This card uses the <code class="rounded bg-black/20 px-1">class</code> prop to apply a
122
- different background (<code class="rounded bg-black/20 px-1">bg-accent</code>), text color (<code
123
- class="rounded bg-black/20 px-1">text-primary-inverse</code
124
- >), width (<code class="rounded bg-black/20 px-1">w-1/2</code>), and a larger shadow (<code
125
- class="rounded bg-black/20 px-1">shadow-lg</code
126
- >).
127
- </p>
128
- {/snippet}
129
- </Card>
115
+ <Card class="w-1/2 bg-accent text-primary-inverse shadow-lg">
116
+ {#snippet Header()}
117
+ <p class="">Custom Styled Card</p>
118
+ {/snippet}
119
+ {#snippet children()}
120
+ <p>
121
+ This card uses the <code class="rounded bg-black/20 px-1">class</code> prop to apply a
122
+ different background (<code class="rounded bg-black/20 px-1">bg-accent</code>), text color (<code
123
+ class="rounded bg-black/20 px-1">text-primary-inverse</code
124
+ >), width (<code class="rounded bg-black/20 px-1">w-1/2</code>), and a larger shadow (<code
125
+ class="rounded bg-black/20 px-1">shadow-lg</code
126
+ >).
127
+ </p>
128
+ {/snippet}
129
+ </Card>
130
130
  </Story>
@@ -1,25 +1,25 @@
1
1
  <script lang="ts">
2
- import type { Snippet } from 'svelte';
2
+ import type { Snippet } from 'svelte';
3
3
 
4
- type Props = {
5
- Header?: Snippet;
6
- children: Snippet;
7
- headerBorder?: boolean;
8
- class?: string;
9
- };
4
+ type Props = {
5
+ Header?: Snippet;
6
+ children: Snippet;
7
+ headerBorder?: boolean;
8
+ class?: string;
9
+ };
10
10
 
11
- const { Header, children, headerBorder = false, class: additionalClasses = '' }: Props = $props();
11
+ const { Header, children, headerBorder = false, class: additionalClasses = '' }: Props = $props();
12
12
  </script>
13
13
 
14
14
  <div class="rounded-lg border border-static bg-surface shadow-sm {additionalClasses}">
15
- {#if Header}
16
- <header class="px-6 py-4" class:border-b={headerBorder} class:border-static={headerBorder}>
17
- {@render Header()}
18
- </header>
19
- {/if}
20
- {#if children}
21
- <div class="p-6">
22
- {@render children()}
23
- </div>
24
- {/if}
15
+ {#if Header}
16
+ <header class="px-6 py-4" class:border-b={headerBorder} class:border-static={headerBorder}>
17
+ {@render Header()}
18
+ </header>
19
+ {/if}
20
+ {#if children}
21
+ <div class="p-6">
22
+ {@render children()}
23
+ </div>
24
+ {/if}
25
25
  </div>
@@ -1,14 +1,14 @@
1
1
  <script module lang="ts">
2
- import Checkbox from './Checkbox.svelte';
3
- import { defineMeta } from '@storybook/addon-svelte-csf';
2
+ import Checkbox from './Checkbox.svelte';
3
+ import { defineMeta } from '@storybook/addon-svelte-csf';
4
4
 
5
- const { Story } = defineMeta({
6
- component: Checkbox,
7
- title: 'Design System/Checkbox',
8
- tags: ['autodocs']
9
- });
5
+ const { Story } = defineMeta({
6
+ component: Checkbox,
7
+ title: 'Design System/Checkbox',
8
+ tags: ['autodocs'],
9
+ });
10
10
 
11
- let checked = $state<boolean>(false);
11
+ let checked = $state<boolean>(false);
12
12
  </script>
13
13
 
14
14
  <Story name="Default" args={{ checked: false }} />
@@ -1,24 +1,24 @@
1
1
  <script lang="ts">
2
- import { Checkbox, type CheckboxRootProps } from 'bits-ui';
3
- import { Icon } from '../icons';
2
+ import { Checkbox, type CheckboxRootProps } from 'bits-ui';
3
+ import { Icon } from '../icons';
4
4
 
5
- export type CheckboxProps = CheckboxRootProps;
5
+ export type CheckboxProps = CheckboxRootProps;
6
6
 
7
- let { checked = $bindable(false), onCheckedChange, ...props }: CheckboxProps = $props();
7
+ let { checked = $bindable(false), onCheckedChange, ...props }: CheckboxProps = $props();
8
8
  </script>
9
9
 
10
10
  <Checkbox.Root bind:checked {onCheckedChange} {...props}>
11
- {#snippet children({ checked, indeterminate })}
12
- <div
13
- class={`flex items-center justify-center rounded border border-static ${checked ? 'bg-dark-accent-inverse-hover' : ''}`}
14
- >
15
- {#if checked}
16
- <Icon iconName="Check" class="text-primary-inverse" />
17
- {:else if indeterminate}
18
- <Icon iconName="Minus" />
19
- {:else}
20
- <div class="h-4 w-4"></div>
21
- {/if}
22
- </div>
23
- {/snippet}
11
+ {#snippet children({ checked, indeterminate })}
12
+ <div
13
+ class={`flex items-center justify-center rounded border border-static ${checked ? 'bg-dark-accent-inverse-hover' : ''}`}
14
+ >
15
+ {#if checked}
16
+ <Icon iconName="Check" class="text-primary-inverse" />
17
+ {:else if indeterminate}
18
+ <Icon iconName="Minus" />
19
+ {:else}
20
+ <div class="h-4 w-4"></div>
21
+ {/if}
22
+ </div>
23
+ {/snippet}
24
24
  </Checkbox.Root>
@@ -1,41 +1,41 @@
1
1
  <script module lang="ts">
2
- import { defineMeta } from '@storybook/addon-svelte-csf';
3
- import { Root as CollapsibleRootForMeta } from './index';
4
- import * as Collapsible from './index';
5
- import Button from '../button/Button.svelte';
2
+ import { defineMeta } from '@storybook/addon-svelte-csf';
3
+ import { Root as CollapsibleRootForMeta } from './index';
4
+ import * as Collapsible from './index';
5
+ import Button from '../button/Button.svelte';
6
6
 
7
- const { Story } = defineMeta({
8
- component: CollapsibleRootForMeta,
9
- title: 'Design System/Collapsible',
10
- tags: ['autodocs']
11
- });
7
+ const { Story } = defineMeta({
8
+ component: CollapsibleRootForMeta,
9
+ title: 'Design System/Collapsible',
10
+ tags: ['autodocs'],
11
+ });
12
12
 
13
- let open = $state(false);
13
+ let open = $state(false);
14
14
  </script>
15
15
 
16
16
  <Story name="Base" asChild>
17
- <Collapsible.Root class="w-[200px]">
18
- <Collapsible.Trigger class="w-full">
19
- <h6>Trigger</h6>
20
- </Collapsible.Trigger>
17
+ <Collapsible.Root class="w-[200px]">
18
+ <Collapsible.Trigger class="w-full">
19
+ <h6>Trigger</h6>
20
+ </Collapsible.Trigger>
21
21
 
22
- <Collapsible.Content>Content</Collapsible.Content>
23
- </Collapsible.Root>
22
+ <Collapsible.Content>Content</Collapsible.Content>
23
+ </Collapsible.Root>
24
24
  </Story>
25
25
 
26
26
  <Story name="Without Icon" asChild>
27
- <Collapsible.Root class="w-[200px]">
28
- <Collapsible.Trigger class="w-full" withIcon={false}>
29
- <h6>Trigger</h6>
30
- </Collapsible.Trigger>
27
+ <Collapsible.Root class="w-[200px]">
28
+ <Collapsible.Trigger class="w-full" withIcon={false}>
29
+ <h6>Trigger</h6>
30
+ </Collapsible.Trigger>
31
31
 
32
- <Collapsible.Content>Content</Collapsible.Content>
33
- </Collapsible.Root>
32
+ <Collapsible.Content>Content</Collapsible.Content>
33
+ </Collapsible.Root>
34
34
  </Story>
35
35
 
36
36
  <Story name="Controlled" asChild>
37
- <Button onClick={() => (open = !open)}>Outside Trigger</Button>
38
- <Collapsible.Root class="w-[200px]" {open}>
39
- <Collapsible.Content>Content</Collapsible.Content>
40
- </Collapsible.Root>
37
+ <Button onClick={() => (open = !open)}>Outside Trigger</Button>
38
+ <Collapsible.Root class="w-[200px]" {open}>
39
+ <Collapsible.Content>Content</Collapsible.Content>
40
+ </Collapsible.Root>
41
41
  </Story>
@@ -1,26 +1,26 @@
1
1
  <script lang="ts">
2
- import { Collapsible, type WithoutChildrenOrChild } from 'bits-ui';
3
- import { slide } from 'svelte/transition';
4
- import type { Snippet } from 'svelte';
5
- import type { CollapsibleContentProps } from '../types';
2
+ import { Collapsible, type WithoutChildrenOrChild } from 'bits-ui';
3
+ import { slide } from 'svelte/transition';
4
+ import type { Snippet } from 'svelte';
5
+ import type { CollapsibleContentProps } from '../types';
6
6
 
7
- let {
8
- ref = $bindable(null),
9
- duration = 200,
10
- children,
11
- ...restProps
12
- }: WithoutChildrenOrChild<CollapsibleContentProps> & {
13
- duration?: number;
14
- children?: Snippet;
15
- } = $props();
7
+ let {
8
+ ref = $bindable(null),
9
+ duration = 200,
10
+ children,
11
+ ...restProps
12
+ }: WithoutChildrenOrChild<CollapsibleContentProps> & {
13
+ duration?: number;
14
+ children?: Snippet;
15
+ } = $props();
16
16
  </script>
17
17
 
18
18
  <Collapsible.Content forceMount bind:ref {...restProps}>
19
- {#snippet child({ props, open })}
20
- {#if open}
21
- <div {...props} transition:slide={{ duration }}>
22
- {@render children?.()}
23
- </div>
24
- {/if}
25
- {/snippet}
19
+ {#snippet child({ props, open })}
20
+ {#if open}
21
+ <div {...props} transition:slide={{ duration }}>
22
+ {@render children?.()}
23
+ </div>
24
+ {/if}
25
+ {/snippet}
26
26
  </Collapsible.Content>
@@ -1,29 +1,29 @@
1
1
  <script lang="ts">
2
- import { Collapsible } from 'bits-ui';
3
- import { Icon } from '../../icons';
4
- import type { CollapsibleTriggerProps } from '../types';
2
+ import { Collapsible } from 'bits-ui';
3
+ import { Icon } from '../../icons';
4
+ import type { CollapsibleTriggerProps } from '../types';
5
5
 
6
- let { children, withIcon = true, ...props }: CollapsibleTriggerProps = $props();
6
+ let { children, withIcon = true, ...props }: CollapsibleTriggerProps = $props();
7
7
  </script>
8
8
 
9
9
  <Collapsible.Trigger {...props} class="transition-all {props.class}">
10
- <div class="container h-8">
11
- {@render children()}
12
- {#if withIcon}
13
- <Icon iconName="CaretDown" color="secondary" class="icon z-[-1] m-1" />
14
- {/if}
15
- </div>
10
+ <div class="container h-8">
11
+ {@render children()}
12
+ {#if withIcon}
13
+ <Icon iconName="CaretDown" color="secondary" class="icon z-[-1] m-1" />
14
+ {/if}
15
+ </div>
16
16
  </Collapsible.Trigger>
17
17
 
18
18
  <style>
19
- :global([data-state='open']) :global(.icon) {
19
+ :global([data-state='open']) :global(.icon) {
20
20
 
21
21
  --tw-rotate: 180deg;
22
22
 
23
23
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
24
24
  }
25
25
 
26
- .container {
26
+ .container {
27
27
 
28
28
  display: flex;
29
29
 
@@ -1,5 +1,5 @@
1
1
  import { Collapsible } from 'bits-ui';
2
- export declare const Root: import("svelte").Component<Collapsible.RootProps, {}, "open" | "ref">;
2
+ export declare const Root: import("svelte").Component<Collapsible.RootProps, {}, "ref" | "open">;
3
3
  export { default as Trigger } from './components/collapsible-trigger.svelte';
4
4
  export { default as Content } from './components/collapsible-content.svelte';
5
5
  export type { CollapsibleTriggerProps, CollapsibleContentProps } from './types';