@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.
- package/README.md +5 -1
- package/dist/app.css +97 -97
- package/dist/components/activity/Activity.stories.svelte +104 -104
- package/dist/components/activity/Activity.svelte +112 -112
- package/dist/components/avatar/Avatar.stories.svelte +23 -23
- package/dist/components/avatar/Avatar.svelte +54 -54
- package/dist/components/banner/Banner.stories.svelte +105 -105
- package/dist/components/banner/Banner.svelte +42 -42
- package/dist/components/button/Button.stories.svelte +61 -61
- package/dist/components/button/Button.svelte +95 -95
- package/dist/components/card/Card.stories.svelte +112 -112
- package/dist/components/card/Card.svelte +18 -18
- package/dist/components/checkbox/Checkbox.stories.svelte +8 -8
- package/dist/components/checkbox/Checkbox.svelte +17 -17
- package/dist/components/collapsible/Collapsible.stories.svelte +26 -26
- package/dist/components/collapsible/components/collapsible-content.svelte +20 -20
- package/dist/components/collapsible/components/collapsible-trigger.svelte +12 -12
- package/dist/components/collapsible/index.d.ts +1 -1
- package/dist/components/combobox/Combobox.stories.svelte +412 -412
- package/dist/components/combobox/components/combobox-add.svelte +8 -8
- package/dist/components/combobox/components/combobox-content.svelte +39 -39
- package/dist/components/combobox/components/combobox-indicator.svelte +1 -1
- package/dist/components/combobox/index.d.ts +1 -1
- package/dist/components/datepicker/DatePicker.stories.svelte +196 -196
- package/dist/components/datepicker/DatePicker.svelte +173 -173
- package/dist/components/divider/Divider.stories.svelte +7 -7
- package/dist/components/divider/Divider.svelte +9 -9
- package/dist/components/drawer/Drawer.stories.svelte +51 -51
- package/dist/components/drawer/Drawer.svelte +33 -33
- package/dist/components/drawer/DrawerLabel.svelte +10 -10
- package/dist/components/dropdown/Dropdown.stories.svelte +210 -210
- package/dist/components/dropdown/Dropdown.svelte +57 -57
- package/dist/components/dropdown/components/DropdownContent.svelte +16 -16
- package/dist/components/dropdown/components/DropdownMenu.svelte +10 -10
- package/dist/components/dropdown/components/DropdownTrigger.svelte +37 -37
- package/dist/components/dropdown/components/OutlinedButton.svelte +9 -9
- package/dist/components/empty-content/EmptyContent.stories.svelte +38 -38
- package/dist/components/empty-content/EmptyContent.svelte +12 -12
- package/dist/components/graphs/bar-chart/BarChart.stories.svelte +91 -91
- package/dist/components/graphs/bar-chart/BarChart.svelte +147 -147
- package/dist/components/graphs/bar-chart/StackedBarChart.stories.svelte +57 -57
- package/dist/components/graphs/bar-chart/StackedBarChart.svelte +198 -199
- package/dist/components/graphs/chart/Chart.stories.svelte +96 -96
- package/dist/components/graphs/chart/Chart.svelte +207 -207
- package/dist/components/graphs/line/LineChart.stories.svelte +138 -138
- package/dist/components/graphs/line/LineChart.svelte +140 -142
- package/dist/components/graphs/matrix/Matrix.stories.svelte +117 -117
- package/dist/components/graphs/matrix/Matrix.svelte +141 -141
- package/dist/components/graphs/multiline/MultiLineChart.stories.svelte +168 -168
- package/dist/components/graphs/multiline/MultiLineChart.svelte +236 -236
- package/dist/components/graphs/scatterplot/Scatterplot.stories.svelte +84 -84
- package/dist/components/graphs/scatterplot/Scatterplot.svelte +302 -302
- package/dist/components/graphs/utils/duration.d.ts +1 -0
- package/dist/components/graphs/utils/duration.js +33 -0
- package/dist/components/graphs/utils/tooltipFormatter.js +1 -1
- package/dist/components/icon-button/IconButton.stories.svelte +64 -64
- package/dist/components/icon-button/IconButton.svelte +88 -88
- package/dist/components/icons/AnalysisIcon.stories.svelte +18 -18
- package/dist/components/icons/AnalysisIcon.svelte +96 -96
- package/dist/components/icons/Icon.stories.svelte +111 -111
- package/dist/components/icons/Icon.svelte +17 -17
- package/dist/components/icons/PrincipalIcon.svelte +59 -59
- package/dist/components/icons/custom/Halo.svelte +31 -31
- package/dist/components/icons/custom/Well.svelte +27 -27
- package/dist/components/icons/index.js +1 -1
- package/dist/components/image/Image.svelte +42 -42
- package/dist/components/input/Input.stories.svelte +55 -55
- package/dist/components/input/Input.svelte +121 -121
- package/dist/components/label/Label.stories.svelte +18 -18
- package/dist/components/label/Label.svelte +11 -11
- package/dist/components/list/List.stories.svelte +84 -84
- package/dist/components/list/List.svelte +20 -20
- package/dist/components/logo/Logo.stories.svelte +15 -15
- package/dist/components/logo/Logo.svelte +30 -30
- package/dist/components/manual-cfu-counter/ManualCFUCounter.stories.svelte +102 -102
- package/dist/components/manual-cfu-counter/ManualCFUCounter.svelte +557 -557
- package/dist/components/manual-cfu-counter/test/ManualCFUCounterTestWrapper.svelte +11 -11
- package/dist/components/markdown/Markdown.stories.svelte +10 -10
- package/dist/components/markdown/Markdown.svelte +6 -6
- package/dist/components/modal/Modal.stories.svelte +29 -29
- package/dist/components/modal/Modal.svelte +71 -71
- package/dist/components/multi-cfu-counter/MultiCFUCounter.stories.svelte +201 -201
- package/dist/components/multi-cfu-counter/MultiCFUCounter.svelte +606 -606
- package/dist/components/multi-cfu-counter/test/MultiCFUCounterTestWrapper.svelte +17 -17
- package/dist/components/notification-popup/NotificationPopup.stories.svelte +18 -18
- package/dist/components/notification-popup/NotificationPopup.svelte +26 -26
- package/dist/components/notifications/Notifications.stories.svelte +101 -101
- package/dist/components/notifications/Notifications.svelte +9 -9
- package/dist/components/pill/Pill.stories.svelte +8 -8
- package/dist/components/pill/Pill.svelte +27 -27
- package/dist/components/progress-circle/ProgressCircle.stories.svelte +8 -8
- package/dist/components/progress-circle/ProgressCircle.svelte +54 -54
- package/dist/components/required-status-indicator/RequiredStatusIndicator.stories.svelte +18 -18
- package/dist/components/required-status-indicator/RequiredStatusIndicator.svelte +14 -14
- package/dist/components/segmented-control-buttons/ControlButton.svelte +36 -36
- package/dist/components/segmented-control-buttons/SegmentedControlButtons.stories.svelte +35 -35
- package/dist/components/segmented-control-buttons/SegmentedControlButtons.svelte +13 -13
- package/dist/components/select/Select.stories.svelte +200 -94
- package/dist/components/select/Select.stories.svelte.d.ts +1 -1
- package/dist/components/select/components/Group.svelte +24 -0
- package/dist/components/select/components/MultiSelectTrigger.svelte +66 -0
- package/dist/components/select/components/SelectContent.svelte +33 -0
- package/dist/components/select/components/SelectGroupHeading.svelte +19 -0
- package/dist/components/select/components/SelectItem.svelte +39 -0
- package/dist/components/select/components/SelectTrigger.svelte +48 -0
- package/dist/components/select/index.d.ts +10 -7
- package/dist/components/select/index.js +12 -1
- package/dist/components/sjsf-wrappers/SjsfNumberInputWrapper.svelte +102 -87
- package/dist/components/sjsf-wrappers/SjsfNumberInputWrapper.svelte.d.ts +1 -1
- package/dist/components/sjsf-wrappers/SjsfTextInputWrapper.svelte +53 -53
- package/dist/components/sjsf-wrappers/SjsfTextInputWrapper.svelte.d.ts +1 -1
- package/dist/components/sjsf-wrappers/sjsfCustomTheme.js +1 -1
- package/dist/components/skeleton-loader/SkeletonLoader.stories.svelte +32 -32
- package/dist/components/skeleton-loader/SkeletonLoader.svelte +10 -10
- package/dist/components/skeleton-loader/StatcardSkeleton.svelte +9 -9
- package/dist/components/skeleton-loader/components/Skeleton.svelte +7 -7
- package/dist/components/skeleton-loader/components/SkeletonImage.svelte +12 -12
- package/dist/components/slider/Slider.stories.svelte +23 -23
- package/dist/components/slider/Slider.svelte +107 -107
- package/dist/components/spinner/Spinner.stories.svelte +8 -8
- package/dist/components/spinner/Spinner.svelte +18 -18
- package/dist/components/stat-card/StatCard.stories.svelte +26 -26
- package/dist/components/stat-card/StatCard.svelte +128 -128
- package/dist/components/status-badge/StatusBadge.stories.svelte +365 -365
- package/dist/components/status-badge/StatusBadge.svelte +54 -54
- package/dist/components/stepper/Stepper.stories.svelte +219 -219
- package/dist/components/stepper/components/stepper-root.svelte +12 -12
- package/dist/components/stepper/components/stepper-step.svelte +83 -83
- package/dist/components/table/Table.stories.svelte +87 -87
- package/dist/components/table/Table.svelte +32 -32
- package/dist/components/table/components/TBody.svelte +7 -7
- package/dist/components/table/components/THead.svelte +7 -7
- package/dist/components/table/components/Td.svelte +8 -8
- package/dist/components/table/components/Th.svelte +8 -8
- package/dist/components/table/components/Tr.svelte +11 -11
- package/dist/components/tabs/Tabs.stories.svelte +20 -20
- package/dist/components/tabs/Tabs.svelte +8 -8
- package/dist/components/tabs/components/Content.svelte +8 -8
- package/dist/components/tabs/components/Tab.svelte +14 -14
- package/dist/components/tabs/components/Tabs.svelte +7 -7
- package/dist/components/tag/Tag.stories.svelte +57 -57
- package/dist/components/tag/Tag.svelte +95 -95
- package/dist/components/textarea/Textarea.stories.svelte +70 -70
- package/dist/components/textarea/Textarea.svelte +76 -76
- package/dist/components/toast/Toast.stories.svelte +204 -204
- package/dist/components/toast/Toast.svelte +53 -53
- package/dist/components/toggle/Toggle.stories.svelte +9 -9
- package/dist/components/toggle/Toggle.svelte +53 -53
- package/dist/components/toggle-icon-button/ToggleIconButton.stories.svelte +152 -152
- package/dist/components/toggle-icon-button/ToggleIconButton.svelte +99 -99
- package/dist/components/tooltip/Tooltip.stories.svelte +85 -111
- package/dist/components/tooltip/Tooltip.svelte +57 -46
- package/dist/components/tooltip/Tooltip.svelte.d.ts +1 -1
- package/dist/components/tooltip/TooltipTest.svelte +31 -0
- package/dist/components/tooltip/TooltipTest.svelte.d.ts +11 -0
- package/dist/fonts/index.js +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.js +0 -1
- package/dist/notifications.d.ts +1 -4
- package/dist/notifications.js +1 -1
- package/dist/tailwind-safelist.js +406 -406
- package/dist/tailwind.preset.js +10 -10
- package/dist/tokens/colors.js +18 -18
- package/dist/tokens/typography.js +6 -6
- package/dist/tokens.js +19 -19
- package/dist/types/fonts.d.ts +2 -2
- package/package.json +199 -204
- package/dist/components/select/Select.svelte +0 -139
- package/dist/components/select/Select.svelte.d.ts +0 -60
- package/dist/components/select-new/Select.stories.svelte +0 -219
- package/dist/components/select-new/Select.stories.svelte.d.ts +0 -19
- package/dist/components/select-new/components/Group.svelte +0 -24
- package/dist/components/select-new/components/MultiSelectTrigger.svelte +0 -66
- package/dist/components/select-new/components/SelectContent.svelte +0 -33
- package/dist/components/select-new/components/SelectGroupHeading.svelte +0 -19
- package/dist/components/select-new/components/SelectItem.svelte +0 -39
- package/dist/components/select-new/components/SelectTrigger.svelte +0 -48
- package/dist/components/select-new/index.d.ts +0 -10
- package/dist/components/select-new/index.js +0 -12
- /package/dist/components/{select-new → select}/components/Group.svelte.d.ts +0 -0
- /package/dist/components/{select-new → select}/components/MultiSelectTrigger.svelte.d.ts +0 -0
- /package/dist/components/{select-new → select}/components/SelectContent.svelte.d.ts +0 -0
- /package/dist/components/{select-new → select}/components/SelectGroupHeading.svelte.d.ts +0 -0
- /package/dist/components/{select-new → select}/components/SelectItem.svelte.d.ts +0 -0
- /package/dist/components/{select-new → select}/components/SelectTrigger.svelte.d.ts +0 -0
- /package/dist/components/{select-new → select}/types.d.ts +0 -0
- /package/dist/components/{select-new → select}/types.js +0 -0
|
@@ -1,130 +1,130 @@
|
|
|
1
1
|
<script module lang="ts">
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
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
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
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
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
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
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
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
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
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
|
-
|
|
2
|
+
import type { Snippet } from 'svelte';
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
4
|
+
type Props = {
|
|
5
|
+
Header?: Snippet;
|
|
6
|
+
children: Snippet;
|
|
7
|
+
headerBorder?: boolean;
|
|
8
|
+
class?: string;
|
|
9
|
+
};
|
|
10
10
|
|
|
11
|
-
|
|
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
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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
|
-
|
|
3
|
-
|
|
2
|
+
import Checkbox from './Checkbox.svelte';
|
|
3
|
+
import { defineMeta } from '@storybook/addon-svelte-csf';
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
const { Story } = defineMeta({
|
|
6
|
+
component: Checkbox,
|
|
7
|
+
title: 'Design System/Checkbox',
|
|
8
|
+
tags: ['autodocs'],
|
|
9
|
+
});
|
|
10
10
|
|
|
11
|
-
|
|
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
|
-
|
|
3
|
-
|
|
2
|
+
import { Checkbox, type CheckboxRootProps } from 'bits-ui';
|
|
3
|
+
import { Icon } from '../icons';
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
export type CheckboxProps = CheckboxRootProps;
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
let { checked = $bindable(false), onCheckedChange, ...props }: CheckboxProps = $props();
|
|
8
8
|
</script>
|
|
9
9
|
|
|
10
10
|
<Checkbox.Root bind:checked {onCheckedChange} {...props}>
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
const { Story } = defineMeta({
|
|
8
|
+
component: CollapsibleRootForMeta,
|
|
9
|
+
title: 'Design System/Collapsible',
|
|
10
|
+
tags: ['autodocs'],
|
|
11
|
+
});
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
let open = $state(false);
|
|
14
14
|
</script>
|
|
15
15
|
|
|
16
16
|
<Story name="Base" asChild>
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
17
|
+
<Collapsible.Root class="w-[200px]">
|
|
18
|
+
<Collapsible.Trigger class="w-full">
|
|
19
|
+
<h6>Trigger</h6>
|
|
20
|
+
</Collapsible.Trigger>
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
<Collapsible.Content>Content</Collapsible.Content>
|
|
23
|
+
</Collapsible.Root>
|
|
24
24
|
</Story>
|
|
25
25
|
|
|
26
26
|
<Story name="Without Icon" asChild>
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
27
|
+
<Collapsible.Root class="w-[200px]">
|
|
28
|
+
<Collapsible.Trigger class="w-full" withIcon={false}>
|
|
29
|
+
<h6>Trigger</h6>
|
|
30
|
+
</Collapsible.Trigger>
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
<Collapsible.Content>Content</Collapsible.Content>
|
|
33
|
+
</Collapsible.Root>
|
|
34
34
|
</Story>
|
|
35
35
|
|
|
36
36
|
<Story name="Controlled" asChild>
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
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
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
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
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
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
|
-
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
import { Collapsible } from 'bits-ui';
|
|
3
|
+
import { Icon } from '../../icons';
|
|
4
|
+
import type { CollapsibleTriggerProps } from '../types';
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
let { children, withIcon = true, ...props }: CollapsibleTriggerProps = $props();
|
|
7
7
|
</script>
|
|
8
8
|
|
|
9
9
|
<Collapsible.Trigger {...props} class="transition-all {props.class}">
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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, {}, "
|
|
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';
|