@reshape-biotech/design-system 1.2.6 → 1.2.7

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 (159) hide show
  1. package/README.md +3 -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/combobox/Combobox.stories.svelte +412 -412
  19. package/dist/components/combobox/components/combobox-add.svelte +8 -8
  20. package/dist/components/combobox/components/combobox-content.svelte +39 -39
  21. package/dist/components/combobox/components/combobox-indicator.svelte +1 -1
  22. package/dist/components/datepicker/DatePicker.stories.svelte +196 -196
  23. package/dist/components/datepicker/DatePicker.svelte +173 -173
  24. package/dist/components/divider/Divider.stories.svelte +7 -7
  25. package/dist/components/divider/Divider.svelte +9 -9
  26. package/dist/components/drawer/Drawer.stories.svelte +51 -51
  27. package/dist/components/drawer/Drawer.svelte +33 -33
  28. package/dist/components/drawer/DrawerLabel.svelte +10 -10
  29. package/dist/components/dropdown/Dropdown.stories.svelte +210 -210
  30. package/dist/components/dropdown/Dropdown.svelte +57 -57
  31. package/dist/components/dropdown/components/DropdownContent.svelte +16 -16
  32. package/dist/components/dropdown/components/DropdownMenu.svelte +10 -10
  33. package/dist/components/dropdown/components/DropdownTrigger.svelte +37 -37
  34. package/dist/components/dropdown/components/OutlinedButton.svelte +9 -9
  35. package/dist/components/empty-content/EmptyContent.stories.svelte +38 -38
  36. package/dist/components/empty-content/EmptyContent.svelte +12 -12
  37. package/dist/components/graphs/bar-chart/BarChart.stories.svelte +91 -91
  38. package/dist/components/graphs/bar-chart/BarChart.svelte +147 -147
  39. package/dist/components/graphs/bar-chart/StackedBarChart.stories.svelte +57 -57
  40. package/dist/components/graphs/bar-chart/StackedBarChart.svelte +198 -199
  41. package/dist/components/graphs/chart/Chart.stories.svelte +96 -96
  42. package/dist/components/graphs/chart/Chart.svelte +207 -207
  43. package/dist/components/graphs/line/LineChart.stories.svelte +138 -138
  44. package/dist/components/graphs/line/LineChart.svelte +140 -142
  45. package/dist/components/graphs/matrix/Matrix.stories.svelte +117 -117
  46. package/dist/components/graphs/matrix/Matrix.svelte +141 -141
  47. package/dist/components/graphs/multiline/MultiLineChart.stories.svelte +168 -168
  48. package/dist/components/graphs/multiline/MultiLineChart.svelte +236 -236
  49. package/dist/components/graphs/scatterplot/Scatterplot.stories.svelte +84 -84
  50. package/dist/components/graphs/scatterplot/Scatterplot.svelte +302 -302
  51. package/dist/components/graphs/utils/duration.d.ts +1 -0
  52. package/dist/components/graphs/utils/duration.js +33 -0
  53. package/dist/components/graphs/utils/tooltipFormatter.js +1 -1
  54. package/dist/components/icon-button/IconButton.stories.svelte +64 -64
  55. package/dist/components/icon-button/IconButton.svelte +88 -88
  56. package/dist/components/icons/AnalysisIcon.stories.svelte +18 -18
  57. package/dist/components/icons/AnalysisIcon.svelte +96 -96
  58. package/dist/components/icons/Icon.stories.svelte +111 -111
  59. package/dist/components/icons/Icon.svelte +17 -17
  60. package/dist/components/icons/PrincipalIcon.svelte +59 -59
  61. package/dist/components/icons/custom/Halo.svelte +31 -31
  62. package/dist/components/icons/custom/Well.svelte +27 -27
  63. package/dist/components/icons/index.js +1 -1
  64. package/dist/components/image/Image.svelte +42 -42
  65. package/dist/components/input/Input.stories.svelte +55 -55
  66. package/dist/components/input/Input.svelte +121 -121
  67. package/dist/components/label/Label.stories.svelte +18 -18
  68. package/dist/components/label/Label.svelte +11 -11
  69. package/dist/components/list/List.stories.svelte +84 -84
  70. package/dist/components/list/List.svelte +20 -20
  71. package/dist/components/logo/Logo.stories.svelte +15 -15
  72. package/dist/components/logo/Logo.svelte +30 -30
  73. package/dist/components/manual-cfu-counter/ManualCFUCounter.stories.svelte +102 -102
  74. package/dist/components/manual-cfu-counter/ManualCFUCounter.svelte +557 -557
  75. package/dist/components/manual-cfu-counter/test/ManualCFUCounterTestWrapper.svelte +11 -11
  76. package/dist/components/markdown/Markdown.stories.svelte +10 -10
  77. package/dist/components/markdown/Markdown.svelte +6 -6
  78. package/dist/components/modal/Modal.stories.svelte +29 -29
  79. package/dist/components/modal/Modal.svelte +71 -71
  80. package/dist/components/multi-cfu-counter/MultiCFUCounter.stories.svelte +201 -201
  81. package/dist/components/multi-cfu-counter/MultiCFUCounter.svelte +606 -606
  82. package/dist/components/multi-cfu-counter/test/MultiCFUCounterTestWrapper.svelte +17 -17
  83. package/dist/components/notification-popup/NotificationPopup.stories.svelte +18 -18
  84. package/dist/components/notification-popup/NotificationPopup.svelte +26 -26
  85. package/dist/components/notifications/Notifications.stories.svelte +101 -101
  86. package/dist/components/notifications/Notifications.svelte +9 -9
  87. package/dist/components/pill/Pill.stories.svelte +8 -8
  88. package/dist/components/pill/Pill.svelte +27 -27
  89. package/dist/components/progress-circle/ProgressCircle.stories.svelte +8 -8
  90. package/dist/components/progress-circle/ProgressCircle.svelte +54 -54
  91. package/dist/components/required-status-indicator/RequiredStatusIndicator.stories.svelte +18 -18
  92. package/dist/components/required-status-indicator/RequiredStatusIndicator.svelte +14 -14
  93. package/dist/components/segmented-control-buttons/ControlButton.svelte +36 -36
  94. package/dist/components/segmented-control-buttons/SegmentedControlButtons.stories.svelte +35 -35
  95. package/dist/components/segmented-control-buttons/SegmentedControlButtons.svelte +13 -13
  96. package/dist/components/select/Select.stories.svelte +77 -77
  97. package/dist/components/select/Select.svelte +114 -114
  98. package/dist/components/select-new/Select.stories.svelte +188 -188
  99. package/dist/components/select-new/components/Group.svelte +17 -17
  100. package/dist/components/select-new/components/MultiSelectTrigger.svelte +57 -57
  101. package/dist/components/select-new/components/SelectContent.svelte +22 -22
  102. package/dist/components/select-new/components/SelectGroupHeading.svelte +10 -10
  103. package/dist/components/select-new/components/SelectItem.svelte +25 -25
  104. package/dist/components/select-new/components/SelectTrigger.svelte +38 -38
  105. package/dist/components/sjsf-wrappers/SjsfNumberInputWrapper.svelte +76 -76
  106. package/dist/components/sjsf-wrappers/SjsfNumberInputWrapper.svelte.d.ts +1 -1
  107. package/dist/components/sjsf-wrappers/SjsfTextInputWrapper.svelte +53 -53
  108. package/dist/components/sjsf-wrappers/SjsfTextInputWrapper.svelte.d.ts +1 -1
  109. package/dist/components/sjsf-wrappers/sjsfCustomTheme.js +1 -1
  110. package/dist/components/skeleton-loader/SkeletonLoader.stories.svelte +32 -32
  111. package/dist/components/skeleton-loader/SkeletonLoader.svelte +10 -10
  112. package/dist/components/skeleton-loader/StatcardSkeleton.svelte +9 -9
  113. package/dist/components/skeleton-loader/components/Skeleton.svelte +7 -7
  114. package/dist/components/skeleton-loader/components/SkeletonImage.svelte +12 -12
  115. package/dist/components/slider/Slider.stories.svelte +23 -23
  116. package/dist/components/slider/Slider.svelte +107 -107
  117. package/dist/components/spinner/Spinner.stories.svelte +8 -8
  118. package/dist/components/spinner/Spinner.svelte +18 -18
  119. package/dist/components/stat-card/StatCard.stories.svelte +26 -26
  120. package/dist/components/stat-card/StatCard.svelte +128 -128
  121. package/dist/components/status-badge/StatusBadge.stories.svelte +365 -365
  122. package/dist/components/status-badge/StatusBadge.svelte +54 -54
  123. package/dist/components/stepper/Stepper.stories.svelte +219 -219
  124. package/dist/components/stepper/components/stepper-root.svelte +12 -12
  125. package/dist/components/stepper/components/stepper-step.svelte +83 -83
  126. package/dist/components/table/Table.stories.svelte +87 -87
  127. package/dist/components/table/Table.svelte +32 -32
  128. package/dist/components/table/components/TBody.svelte +7 -7
  129. package/dist/components/table/components/THead.svelte +7 -7
  130. package/dist/components/table/components/Td.svelte +8 -8
  131. package/dist/components/table/components/Th.svelte +8 -8
  132. package/dist/components/table/components/Tr.svelte +11 -11
  133. package/dist/components/tabs/Tabs.stories.svelte +20 -20
  134. package/dist/components/tabs/Tabs.svelte +8 -8
  135. package/dist/components/tabs/components/Content.svelte +8 -8
  136. package/dist/components/tabs/components/Tab.svelte +14 -14
  137. package/dist/components/tabs/components/Tabs.svelte +7 -7
  138. package/dist/components/tag/Tag.stories.svelte +57 -57
  139. package/dist/components/tag/Tag.svelte +95 -95
  140. package/dist/components/textarea/Textarea.stories.svelte +70 -70
  141. package/dist/components/textarea/Textarea.svelte +76 -76
  142. package/dist/components/toast/Toast.stories.svelte +204 -204
  143. package/dist/components/toast/Toast.svelte +53 -53
  144. package/dist/components/toggle/Toggle.stories.svelte +9 -9
  145. package/dist/components/toggle/Toggle.svelte +53 -53
  146. package/dist/components/toggle-icon-button/ToggleIconButton.stories.svelte +152 -152
  147. package/dist/components/toggle-icon-button/ToggleIconButton.svelte +99 -99
  148. package/dist/components/tooltip/Tooltip.stories.svelte +105 -105
  149. package/dist/components/tooltip/Tooltip.svelte +26 -26
  150. package/dist/fonts/index.js +1 -1
  151. package/dist/notifications.d.ts +1 -4
  152. package/dist/notifications.js +1 -1
  153. package/dist/tailwind-safelist.js +406 -406
  154. package/dist/tailwind.preset.js +10 -10
  155. package/dist/tokens/colors.js +18 -18
  156. package/dist/tokens/typography.js +6 -6
  157. package/dist/tokens.js +19 -19
  158. package/dist/types/fonts.d.ts +2 -2
  159. package/package.json +199 -198
@@ -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