@reshape-biotech/design-system 2.7.52 → 2.7.53
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/dist/components/activity/Activity.figma.d.ts +7 -0
- package/dist/components/activity/Activity.figma.js +24 -0
- package/dist/components/activity/Activity.stories.svelte +0 -6
- package/dist/components/avatar/Avatar.figma.d.ts +7 -0
- package/dist/components/avatar/Avatar.figma.js +17 -0
- package/dist/components/avatar/Avatar.stories.svelte +0 -6
- package/dist/components/banner/Banner.figma.d.ts +7 -0
- package/dist/components/banner/Banner.figma.js +26 -0
- package/dist/components/button/Button.figma.d.ts +7 -0
- package/dist/components/button/Button.figma.js +51 -0
- package/dist/components/button/Button.stories.svelte +0 -6
- package/dist/components/checkbox/Checkbox.figma.d.ts +7 -0
- package/dist/components/checkbox/Checkbox.figma.js +24 -0
- package/dist/components/checkbox/Checkbox.stories.svelte +69 -10
- package/dist/components/checkbox/Checkbox.svelte +32 -8
- package/dist/components/checkbox/Checkbox.svelte.d.ts +4 -2
- package/dist/components/collapsible/Collapsible.figma.d.ts +7 -0
- package/dist/components/collapsible/Collapsible.figma.js +21 -0
- package/dist/components/combobox/Combobox.stories.svelte +0 -6
- package/dist/components/datepicker/DatePicker.figma.d.ts +7 -0
- package/dist/components/datepicker/DatePicker.figma.js +14 -0
- package/dist/components/datepicker/DatePicker.stories.svelte +0 -6
- package/dist/components/divider/Divider.figma.d.ts +7 -0
- package/dist/components/divider/Divider.figma.js +12 -0
- package/dist/components/drawer/Drawer.figma.d.ts +7 -0
- package/dist/components/drawer/Drawer.figma.js +26 -0
- package/dist/components/dropdown/Dropdown.figma.d.ts +7 -0
- package/dist/components/dropdown/Dropdown.figma.js +22 -0
- package/dist/components/empty-content/EmptyContent.figma.d.ts +7 -0
- package/dist/components/empty-content/EmptyContent.figma.js +20 -0
- package/dist/components/empty-content/EmptyContent.stories.svelte +43 -0
- package/dist/components/empty-content/EmptyContent.svelte +11 -2
- package/dist/components/empty-content/EmptyContent.svelte.d.ts +1 -0
- package/dist/components/icon-button/IconButton.figma.d.ts +7 -0
- package/dist/components/icon-button/IconButton.figma.js +42 -0
- package/dist/components/icons/Icon.stories.svelte +0 -6
- package/dist/components/input/Input.figma.d.ts +7 -0
- package/dist/components/input/Input.figma.js +23 -0
- package/dist/components/input/Input.stories.svelte +0 -6
- package/dist/components/label/Label.figma.d.ts +7 -0
- package/dist/components/label/Label.figma.js +12 -0
- package/dist/components/legend/Legend.figma.d.ts +7 -0
- package/dist/components/legend/Legend.figma.js +14 -0
- package/dist/components/list/List.figma.d.ts +7 -0
- package/dist/components/list/List.figma.js +23 -0
- package/dist/components/logo/Logo.figma.d.ts +7 -0
- package/dist/components/logo/Logo.figma.js +21 -0
- package/dist/components/logo/Logo.stories.svelte +17 -0
- package/dist/components/logo/Logo.svelte +44 -18
- package/dist/components/logo/Logo.svelte.d.ts +1 -0
- package/dist/components/markdown/Markdown.figma.d.ts +7 -0
- package/dist/components/markdown/Markdown.figma.js +14 -0
- package/dist/components/modal/Modal.figma.d.ts +7 -0
- package/dist/components/modal/Modal.figma.js +31 -0
- package/dist/components/nav/Nav.figma.d.ts +7 -0
- package/dist/components/nav/Nav.figma.js +21 -0
- package/dist/components/notification-popup/NotificationPopup.figma.d.ts +7 -0
- package/dist/components/notification-popup/NotificationPopup.figma.js +19 -0
- package/dist/components/notifications/Notifications.figma.d.ts +7 -0
- package/dist/components/notifications/Notifications.figma.js +26 -0
- package/dist/components/pill/Pill.figma.d.ts +7 -0
- package/dist/components/pill/Pill.figma.js +11 -0
- package/dist/components/progress-circle/ProgressCircle.figma.d.ts +7 -0
- package/dist/components/progress-circle/ProgressCircle.figma.js +15 -0
- package/dist/components/progress-circle/ProgressCircle.stories.svelte +12 -0
- package/dist/components/progress-circle/ProgressCircle.svelte +19 -11
- package/dist/components/progress-circle/ProgressCircle.svelte.d.ts +1 -1
- package/dist/components/required-status-indicator/RequiredStatusIndicator.figma.d.ts +7 -0
- package/dist/components/required-status-indicator/RequiredStatusIndicator.figma.js +18 -0
- package/dist/components/segmented-control-buttons/SegmentedControlButtons.figma.d.ts +7 -0
- package/dist/components/segmented-control-buttons/SegmentedControlButtons.figma.js +27 -0
- package/dist/components/segmented-control-buttons/SegmentedControlButtons.stories.svelte +29 -0
- package/dist/components/segmented-control-buttons/SegmentedControlButtons.svelte +8 -6
- package/dist/components/segmented-control-buttons/SegmentedControlButtons.svelte.d.ts +3 -1
- package/dist/components/select/Select.figma.d.ts +7 -0
- package/dist/components/select/Select.figma.js +17 -0
- package/dist/components/skeleton-loader/SkeletonLoader.figma.d.ts +7 -0
- package/dist/components/skeleton-loader/SkeletonLoader.figma.js +16 -0
- package/dist/components/slider/Slider.figma.d.ts +7 -0
- package/dist/components/slider/Slider.figma.js +12 -0
- package/dist/components/spinner/Spinner.figma.d.ts +7 -0
- package/dist/components/spinner/Spinner.figma.js +11 -0
- package/dist/components/stat-card/StatCard.figma.d.ts +7 -0
- package/dist/components/stat-card/StatCard.figma.js +18 -0
- package/dist/components/status-badge/StatusBadge.figma.d.ts +7 -0
- package/dist/components/status-badge/StatusBadge.figma.js +29 -0
- package/dist/components/stepper/Stepper.figma.d.ts +7 -0
- package/dist/components/stepper/Stepper.figma.js +15 -0
- package/dist/components/table/Table.figma.d.ts +7 -0
- package/dist/components/table/Table.figma.js +26 -0
- package/dist/components/tabs/Tabs.figma.d.ts +7 -0
- package/dist/components/tabs/Tabs.figma.js +24 -0
- package/dist/components/tabs/Tabs.stories.svelte +23 -0
- package/dist/components/tabs/components/Tabs.svelte +6 -1
- package/dist/components/tabs/components/Tabs.svelte.d.ts +2 -0
- package/dist/components/tag/Tag.figma.d.ts +7 -0
- package/dist/components/tag/Tag.figma.js +33 -0
- package/dist/components/tag/Tag.svelte +0 -1
- package/dist/components/textarea/Textarea.figma.d.ts +7 -0
- package/dist/components/textarea/Textarea.figma.js +17 -0
- package/dist/components/toast/Toast.figma.d.ts +7 -0
- package/dist/components/toast/Toast.figma.js +17 -0
- package/dist/components/toggle/Toggle.figma.d.ts +7 -0
- package/dist/components/toggle/Toggle.figma.js +23 -0
- package/dist/components/toggle/Toggle.stories.svelte +56 -4
- package/dist/components/toggle/Toggle.stories.svelte.d.ts +6 -14
- package/dist/components/toggle/Toggle.svelte +56 -58
- package/dist/components/toggle/Toggle.svelte.d.ts +2 -0
- package/dist/components/toggle-icon-button/ToggleIconButton.figma.d.ts +7 -0
- package/dist/components/toggle-icon-button/ToggleIconButton.figma.js +31 -0
- package/dist/components/tooltip/Tooltip.figma.d.ts +7 -0
- package/dist/components/tooltip/Tooltip.figma.js +22 -0
- package/package.json +3 -1
|
@@ -1,15 +1,67 @@
|
|
|
1
|
-
<script module>
|
|
1
|
+
<script module lang="ts">
|
|
2
2
|
import { defineMeta } from '@storybook/addon-svelte-csf';
|
|
3
3
|
import Toggle from './Toggle.svelte';
|
|
4
4
|
|
|
5
|
-
// More on how to set up stories at: https://storybook.js.org/docs/writing-stories
|
|
6
5
|
const { Story } = defineMeta({
|
|
7
6
|
title: 'Components/Toggle',
|
|
8
7
|
component: Toggle,
|
|
9
8
|
tags: ['autodocs'],
|
|
9
|
+
parameters: {
|
|
10
|
+
layout: 'fullscreen',
|
|
11
|
+
},
|
|
10
12
|
});
|
|
13
|
+
|
|
14
|
+
const sizes = ['sm', 'md', 'lg'] as const;
|
|
11
15
|
</script>
|
|
12
16
|
|
|
13
|
-
<Story name="
|
|
14
|
-
<
|
|
17
|
+
<Story name="Overview" asChild>
|
|
18
|
+
<div class="flex flex-col gap-8 text-sm">
|
|
19
|
+
<div class="overflow-x-auto">
|
|
20
|
+
<table class="w-full min-w-[480px] table-fixed border-collapse text-center">
|
|
21
|
+
<colgroup>
|
|
22
|
+
<col class="w-24" />
|
|
23
|
+
<col />
|
|
24
|
+
<col />
|
|
25
|
+
<col />
|
|
26
|
+
<col />
|
|
27
|
+
</colgroup>
|
|
28
|
+
<thead>
|
|
29
|
+
<tr class="border-b border-static text-left text-label font-medium text-secondary">
|
|
30
|
+
<th class="bg-base p-4 text-left">Size</th>
|
|
31
|
+
<th class="p-4 text-center">Off</th>
|
|
32
|
+
<th class="p-4 text-center">On</th>
|
|
33
|
+
<th class="p-4 text-center">Disabled off</th>
|
|
34
|
+
<th class="p-4 text-center">Disabled on</th>
|
|
35
|
+
</tr>
|
|
36
|
+
</thead>
|
|
37
|
+
<tbody>
|
|
38
|
+
{#each sizes as size}
|
|
39
|
+
<tr class="border-b border-static last:border-none">
|
|
40
|
+
<td class="bg-base p-4 text-left font-mono text-label text-secondary">{size}</td>
|
|
41
|
+
<td class="p-4">
|
|
42
|
+
<div class="flex w-full justify-center">
|
|
43
|
+
<Toggle id={`toggle-${size}-off`} {size} value={false} />
|
|
44
|
+
</div>
|
|
45
|
+
</td>
|
|
46
|
+
<td class="p-4">
|
|
47
|
+
<div class="flex w-full justify-center">
|
|
48
|
+
<Toggle id={`toggle-${size}-on`} {size} value={true} />
|
|
49
|
+
</div>
|
|
50
|
+
</td>
|
|
51
|
+
<td class="p-4">
|
|
52
|
+
<div class="flex w-full justify-center">
|
|
53
|
+
<Toggle id={`toggle-${size}-disabled-off`} {size} value={false} disabled />
|
|
54
|
+
</div>
|
|
55
|
+
</td>
|
|
56
|
+
<td class="p-4">
|
|
57
|
+
<div class="flex w-full justify-center">
|
|
58
|
+
<Toggle id={`toggle-${size}-disabled-on`} {size} value={true} disabled />
|
|
59
|
+
</div>
|
|
60
|
+
</td>
|
|
61
|
+
</tr>
|
|
62
|
+
{/each}
|
|
63
|
+
</tbody>
|
|
64
|
+
</table>
|
|
65
|
+
</div>
|
|
66
|
+
</div>
|
|
15
67
|
</Story>
|
|
@@ -1,19 +1,6 @@
|
|
|
1
|
-
export default Toggle;
|
|
2
|
-
type Toggle = SvelteComponent<{
|
|
3
|
-
[x: string]: never;
|
|
4
|
-
}, {
|
|
5
|
-
[evt: string]: CustomEvent<any>;
|
|
6
|
-
}, {}> & {
|
|
7
|
-
$$bindings?: string | undefined;
|
|
8
|
-
};
|
|
9
|
-
declare const Toggle: $$__sveltets_2_IsomorphicComponent<{
|
|
10
|
-
[x: string]: never;
|
|
11
|
-
}, {
|
|
12
|
-
[evt: string]: CustomEvent<any>;
|
|
13
|
-
}, {}, {}, string>;
|
|
14
1
|
import Toggle from './Toggle.svelte';
|
|
15
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> {
|
|
16
|
-
new (options: import(
|
|
3
|
+
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
|
17
4
|
$$bindings?: Bindings;
|
|
18
5
|
} & Exports;
|
|
19
6
|
(internal: unknown, props: {
|
|
@@ -25,3 +12,8 @@ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> =
|
|
|
25
12
|
};
|
|
26
13
|
z_$$bindings?: Bindings;
|
|
27
14
|
}
|
|
15
|
+
declare const Toggle: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
|
|
16
|
+
[evt: string]: CustomEvent<any>;
|
|
17
|
+
}, {}, {}, string>;
|
|
18
|
+
type Toggle = InstanceType<typeof Toggle>;
|
|
19
|
+
export default Toggle;
|
|
@@ -1,69 +1,67 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
+
import { twMerge } from 'tailwind-merge';
|
|
3
|
+
|
|
2
4
|
interface Props {
|
|
3
5
|
value?: boolean;
|
|
4
6
|
onclick?: (event?: MouseEvent) => void;
|
|
5
7
|
id: string;
|
|
6
8
|
'data-testid'?: string;
|
|
9
|
+
size?: 'sm' | 'md' | 'lg';
|
|
10
|
+
disabled?: boolean;
|
|
7
11
|
}
|
|
8
12
|
|
|
9
|
-
let { value = $bindable(false), onclick, id, 'data-testid': testId }: Props = $props();
|
|
10
|
-
</script>
|
|
11
|
-
|
|
12
|
-
<label class="switch">
|
|
13
|
-
<input type="checkbox" bind:checked={value} {onclick} {id} data-testid={testId} />
|
|
14
|
-
<span class="slider round"></span>
|
|
15
|
-
</label>
|
|
16
|
-
|
|
17
|
-
<style>
|
|
18
|
-
@reference "../../app.css";
|
|
19
|
-
/* The switch - the box around the slider */
|
|
20
|
-
.switch {
|
|
21
|
-
@apply relative inline-block h-5 w-9;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
/* Hide default HTML checkbox */
|
|
25
|
-
.switch input {
|
|
26
|
-
@apply h-0 w-0 opacity-0;
|
|
27
|
-
}
|
|
13
|
+
let { value = $bindable(false), onclick, id, 'data-testid': testId, size = 'md', disabled = false }: Props = $props();
|
|
28
14
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
15
|
+
const sizeStyles = {
|
|
16
|
+
sm: {
|
|
17
|
+
track: 'h-4 w-7',
|
|
18
|
+
thumb: 'h-3 w-3',
|
|
19
|
+
thumbChecked: 'peer-checked:translate-x-[12px]',
|
|
20
|
+
},
|
|
21
|
+
md: {
|
|
22
|
+
track: 'h-5 w-8.5',
|
|
23
|
+
thumb: 'h-4 w-4',
|
|
24
|
+
thumbChecked: 'peer-checked:translate-x-[14px]',
|
|
25
|
+
},
|
|
26
|
+
lg: {
|
|
27
|
+
track: 'h-6 w-10',
|
|
28
|
+
thumb: 'h-5 w-5',
|
|
29
|
+
thumbChecked: 'peer-checked:translate-x-[16px]',
|
|
30
|
+
},
|
|
31
|
+
} as const;
|
|
41
32
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
left: 2px;
|
|
45
|
-
bottom: 2px;
|
|
46
|
-
-webkit-transition: 0.1s;
|
|
47
|
-
transition: 0.1s;
|
|
48
|
-
@apply absolute h-4 w-4 bg-surface;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
input:checked + .slider {
|
|
52
|
-
@apply bg-accent-inverse;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
input:checked + .slider:before {
|
|
56
|
-
-webkit-transform: translateX(16px);
|
|
57
|
-
-ms-transform: translateX(16px);
|
|
58
|
-
transform: translateX(16px);
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
/* Rounded sliders */
|
|
62
|
-
.slider.round {
|
|
63
|
-
@apply rounded-full;
|
|
64
|
-
}
|
|
33
|
+
const sz = $derived(sizeStyles[size]);
|
|
34
|
+
</script>
|
|
65
35
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
36
|
+
<label
|
|
37
|
+
class={twMerge(
|
|
38
|
+
'relative inline-block',
|
|
39
|
+
sz.track,
|
|
40
|
+
disabled ? 'cursor-not-allowed' : 'cursor-pointer',
|
|
41
|
+
)}
|
|
42
|
+
>
|
|
43
|
+
<input type="checkbox" class="peer sr-only" bind:checked={value} {onclick} {id} data-testid={testId} {disabled} />
|
|
44
|
+
<span
|
|
45
|
+
aria-hidden="true"
|
|
46
|
+
class={twMerge(
|
|
47
|
+
'pointer-events-none absolute inset-0 rounded-full border transition-colors duration-100 ease-linear',
|
|
48
|
+
disabled &&
|
|
49
|
+
!value &&
|
|
50
|
+
'border-interactive bg-transparent',
|
|
51
|
+
disabled &&
|
|
52
|
+
value &&
|
|
53
|
+
'border-transparent bg-neutral-darker',
|
|
54
|
+
!disabled &&
|
|
55
|
+
'border-static bg-neutral-darker peer-checked:border-interactive peer-checked:bg-accent-inverse',
|
|
56
|
+
)}
|
|
57
|
+
></span>
|
|
58
|
+
<span
|
|
59
|
+
aria-hidden="true"
|
|
60
|
+
class={twMerge(
|
|
61
|
+
'pointer-events-none absolute bottom-0.5 left-0.5 rounded-full bg-surface transition-transform duration-100 ease-linear',
|
|
62
|
+
disabled ? 'bg-neutral-darker shadow-none' : 'bg-surface shadow-button',
|
|
63
|
+
sz.thumb,
|
|
64
|
+
sz.thumbChecked,
|
|
65
|
+
)}
|
|
66
|
+
></span>
|
|
67
|
+
</label>
|
|
@@ -3,6 +3,8 @@ interface Props {
|
|
|
3
3
|
onclick?: (event?: MouseEvent) => void;
|
|
4
4
|
id: string;
|
|
5
5
|
'data-testid'?: string;
|
|
6
|
+
size?: 'sm' | 'md' | 'lg';
|
|
7
|
+
disabled?: boolean;
|
|
6
8
|
}
|
|
7
9
|
declare const Toggle: import("svelte").Component<Props, {}, "value">;
|
|
8
10
|
type Toggle = ReturnType<typeof Toggle>;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// url=https://www.figma.com/design/WkxhG4H2Ybc7STFi1VJIau/%F0%9F%92%A0-Reshape-Design-System--V1?node-id=6564-9274
|
|
2
|
+
// source=src/lib/components/toggle-icon-button/ToggleIconButton.svelte
|
|
3
|
+
// component=ToggleIconButton
|
|
4
|
+
import figma from 'figma';
|
|
5
|
+
const instance = figma.selectedInstance;
|
|
6
|
+
const variant = instance.getEnum('variant', {
|
|
7
|
+
'primary-inverse': 'primary-inverse',
|
|
8
|
+
'secondary': 'secondary',
|
|
9
|
+
});
|
|
10
|
+
const isActive = instance.getEnum('isActive', {
|
|
11
|
+
'true': true,
|
|
12
|
+
'false': false,
|
|
13
|
+
});
|
|
14
|
+
const disabled = instance.getBoolean('disabled');
|
|
15
|
+
const rounded = instance.getBoolean('rounded');
|
|
16
|
+
const loading = instance.getBoolean('loading');
|
|
17
|
+
export default {
|
|
18
|
+
example: figma.code `
|
|
19
|
+
<ToggleIconButton
|
|
20
|
+
variant="${variant}"
|
|
21
|
+
isActive={${isActive}}
|
|
22
|
+
${disabled ? 'disabled' : ''}
|
|
23
|
+
${rounded ? 'rounded' : ''}
|
|
24
|
+
${loading ? 'loading' : ''}
|
|
25
|
+
>
|
|
26
|
+
<Icon icon={Plus} />
|
|
27
|
+
</ToggleIconButton>
|
|
28
|
+
`,
|
|
29
|
+
imports: ["import ToggleIconButton from './ToggleIconButton.svelte'"],
|
|
30
|
+
id: 'toggle-icon-button',
|
|
31
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// url=https://www.figma.com/design/WkxhG4H2Ybc7STFi1VJIau/%F0%9F%92%A0-Reshape-Design-System--V1?node-id=706-14439
|
|
2
|
+
// source=src/lib/components/tooltip/Tooltip.svelte
|
|
3
|
+
// component=Tooltip
|
|
4
|
+
import figma from 'figma';
|
|
5
|
+
const instance = figma.selectedInstance;
|
|
6
|
+
const placement = instance.getEnum('placement', {
|
|
7
|
+
'top': 'top',
|
|
8
|
+
'bottom': 'bottom',
|
|
9
|
+
'left': 'left',
|
|
10
|
+
'right': 'right',
|
|
11
|
+
});
|
|
12
|
+
const contentText = instance.getString('Content');
|
|
13
|
+
export default {
|
|
14
|
+
example: figma.code `
|
|
15
|
+
<Tooltip placement="${placement}">
|
|
16
|
+
{#snippet trigger()}<button>Hover me</button>{/snippet}
|
|
17
|
+
{#snippet content()}${contentText || 'Tooltip text'}{/snippet}
|
|
18
|
+
</Tooltip>
|
|
19
|
+
`,
|
|
20
|
+
imports: ["import Tooltip from './Tooltip.svelte'"],
|
|
21
|
+
id: 'tooltip',
|
|
22
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reshape-biotech/design-system",
|
|
3
|
-
"version": "2.7.
|
|
3
|
+
"version": "2.7.53",
|
|
4
4
|
"scripts": {
|
|
5
5
|
"dev": "vite dev",
|
|
6
6
|
"build": "vite build",
|
|
@@ -390,9 +390,11 @@
|
|
|
390
390
|
"devDependencies": {
|
|
391
391
|
"@chromatic-com/storybook": "^5.0.1",
|
|
392
392
|
"@eslint/compat": "^1.2.3",
|
|
393
|
+
"@figma/code-connect": "^1.4.3",
|
|
393
394
|
"@storybook/addon-a11y": "^10.2.14",
|
|
394
395
|
"@storybook/addon-docs": "^10.2.0",
|
|
395
396
|
"@storybook/addon-links": "^10.2.0",
|
|
397
|
+
"@storybook/addon-mcp": "^0.6.0",
|
|
396
398
|
"@storybook/addon-svelte-csf": "^5.0.11",
|
|
397
399
|
"@storybook/addon-vitest": "^10.2.13",
|
|
398
400
|
"@storybook/svelte": "^10.2.0",
|