@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,15 +1,15 @@
1
1
  <script lang="ts">
2
- import type { Snippet } from 'svelte';
2
+ import type { Snippet } from 'svelte';
3
3
 
4
- interface Props {
5
- class?: string;
6
- show?: boolean;
7
- children?: Snippet;
8
- }
4
+ interface Props {
5
+ class?: string;
6
+ show?: boolean;
7
+ children?: Snippet;
8
+ }
9
9
 
10
- let { class: className = '', show = false, children }: Props = $props();
10
+ let { class: className = '', show = false, children }: Props = $props();
11
11
  </script>
12
12
 
13
13
  <div class:hidden={!show} class={className}>
14
- {@render children?.()}
14
+ {@render children?.()}
15
15
  </div>
@@ -1,21 +1,21 @@
1
1
  <script lang="ts">
2
- import { Button } from '../../button/';
3
- import type { Snippet } from 'svelte';
4
- interface Props {
5
- active?: boolean;
6
- onClick: () => void;
7
- class?: string;
8
- children?: Snippet;
9
- }
2
+ import { Button } from '../../button/';
3
+ import type { Snippet } from 'svelte';
4
+ interface Props {
5
+ active?: boolean;
6
+ onClick: () => void;
7
+ class?: string;
8
+ children?: Snippet;
9
+ }
10
10
 
11
- let { active = false, onClick, class: className = '', children }: Props = $props();
11
+ let { active = false, onClick, class: className = '', children }: Props = $props();
12
12
  </script>
13
13
 
14
14
  <Button
15
- {onClick}
16
- variant="transparent"
17
- size="md"
18
- class={`tab flex !h-10 gap-2 !rounded-md !px-0 !py-0 ${active ? 'tab-active' : ''} ${className}`}
15
+ {onClick}
16
+ variant="transparent"
17
+ size="md"
18
+ class={`tab flex !h-10 gap-2 !rounded-md !px-0 !py-0 ${active ? 'tab-active' : ''} ${className}`}
19
19
  >
20
- {@render children?.()}
20
+ {@render children?.()}
21
21
  </Button>
@@ -1,14 +1,14 @@
1
1
  <script lang="ts">
2
- import type { Snippet } from 'svelte';
2
+ import type { Snippet } from 'svelte';
3
3
 
4
- interface Props {
5
- class?: string;
6
- children?: Snippet;
7
- }
4
+ interface Props {
5
+ class?: string;
6
+ children?: Snippet;
7
+ }
8
8
 
9
- let { class: className = '', children }: Props = $props();
9
+ let { class: className = '', children }: Props = $props();
10
10
  </script>
11
11
 
12
12
  <div role="tablist" class={`tabs-boxed tabs h-[48px] gap-1 rounded-lg ${className}`}>
13
- {@render children?.()}
13
+ {@render children?.()}
14
14
  </div>
@@ -1,83 +1,83 @@
1
1
  <script module lang="ts">
2
- import { Icon } from '../icons';
3
- import Tag from './Tag.svelte';
4
- import { defineMeta } from '@storybook/addon-svelte-csf';
2
+ import { Icon } from '../icons';
3
+ import Tag from './Tag.svelte';
4
+ import { defineMeta } from '@storybook/addon-svelte-csf';
5
5
 
6
- const { Story } = defineMeta({
7
- component: Tag,
8
- title: 'Design System/Tag',
9
- tags: ['autodocs']
10
- });
6
+ const { Story } = defineMeta({
7
+ component: Tag,
8
+ title: 'Design System/Tag',
9
+ tags: ['autodocs'],
10
+ });
11
11
 
12
- const variants = [
13
- 'default',
14
- 'transparent',
15
- 'default-inverse',
16
- 'orange',
17
- 'sky',
18
- 'pink',
19
- 'lime',
20
- 'lilac',
21
- 'pear',
22
- 'blue',
23
- 'accent',
24
- 'success',
25
- 'warning'
26
- ];
12
+ const variants = [
13
+ 'default',
14
+ 'transparent',
15
+ 'default-inverse',
16
+ 'orange',
17
+ 'sky',
18
+ 'pink',
19
+ 'lime',
20
+ 'lilac',
21
+ 'pear',
22
+ 'blue',
23
+ 'accent',
24
+ 'success',
25
+ 'warning',
26
+ ];
27
27
  </script>
28
28
 
29
29
  <Story name="Default" asChild>
30
- <div class="w-fit">
31
- <Tag>Default</Tag>
32
- </div>
30
+ <div class="w-fit">
31
+ <Tag>Default</Tag>
32
+ </div>
33
33
  </Story>
34
34
  <Story name="Default small" asChild>
35
- <div class="w-fit">
36
- <Tag variant="default" size="sm">Default</Tag>
37
- </div>
35
+ <div class="w-fit">
36
+ <Tag variant="default" size="sm">Default</Tag>
37
+ </div>
38
38
  </Story>
39
39
  <Story name="Default onclick" asChild>
40
- <div class="w-fit">
41
- <Tag onclick={() => {}}>Default</Tag>
42
- </div>
40
+ <div class="w-fit">
41
+ <Tag onclick={() => {}}>Default</Tag>
42
+ </div>
43
43
  </Story>
44
44
  <Story name="Default icon onclick" asChild>
45
- <div class="w-fit">
46
- <Tag onclick={() => {}}>
47
- <Icon iconName="Folder" />
48
- Default
49
- </Tag>
50
- </div>
45
+ <div class="w-fit">
46
+ <Tag onclick={() => {}}>
47
+ <Icon iconName="Folder" />
48
+ Default
49
+ </Tag>
50
+ </div>
51
51
  </Story>
52
52
 
53
53
  <Story name="Transparent" asChild>
54
- <div class="w-fit">
55
- <Tag variant="transparent">Transparent</Tag>
56
- </div>
54
+ <div class="w-fit">
55
+ <Tag variant="transparent">Transparent</Tag>
56
+ </div>
57
57
  </Story>
58
58
  <Story name="Transparent small" asChild>
59
- <div class="w-fit">
60
- <Tag variant="transparent" size="sm">Transparent</Tag>
61
- </div>
59
+ <div class="w-fit">
60
+ <Tag variant="transparent" size="sm">Transparent</Tag>
61
+ </div>
62
62
  </Story>
63
63
  <Story name="Transparent onclick" asChild>
64
- <div class="w-fit">
65
- <Tag variant="transparent" onclick={() => {}}>Transparent</Tag>
66
- </div>
64
+ <div class="w-fit">
65
+ <Tag variant="transparent" onclick={() => {}}>Transparent</Tag>
66
+ </div>
67
67
  </Story>
68
68
 
69
69
  <Story name="Variants" asChild>
70
- {#each variants as variant}
71
- <div class="w-fit">
72
- <Tag variant={variant as any}>{variant}</Tag>
73
- </div>
74
- {/each}
70
+ {#each variants as variant}
71
+ <div class="w-fit">
72
+ <Tag variant={variant as any}>{variant}</Tag>
73
+ </div>
74
+ {/each}
75
75
  </Story>
76
76
 
77
77
  <Story name="Button variants" asChild>
78
- {#each variants as variant}
79
- <div class="w-fit">
80
- <Tag variant={variant as any} onclick={() => {}}>Click me</Tag>
81
- </div>
82
- {/each}
78
+ {#each variants as variant}
79
+ <div class="w-fit">
80
+ <Tag variant={variant as any} onclick={() => {}}>Click me</Tag>
81
+ </div>
82
+ {/each}
83
83
  </Story>
@@ -1,115 +1,115 @@
1
1
  <script lang="ts">
2
- import type { Snippet } from 'svelte';
3
- import { Tooltip } from '../tooltip/';
2
+ import type { Snippet } from 'svelte';
3
+ import { Tooltip } from '../tooltip/';
4
4
 
5
- interface Props {
6
- children: Snippet;
7
- variant?:
8
- | 'default'
9
- | 'outline'
10
- | 'transparent'
11
- | 'default-inverse'
12
- | 'orange'
13
- | 'sky'
14
- | 'pink'
15
- | 'lime'
16
- | 'lilac'
17
- | 'pear'
18
- | 'blue'
19
- | 'accent'
20
- | 'success'
21
- | 'warning';
22
- size?: 'xs' | 'sm' | 'md';
23
- tooltip?: string;
24
- onclick?: (event: MouseEvent) => void;
25
- class?: string;
26
- }
5
+ interface Props {
6
+ children: Snippet;
7
+ variant?:
8
+ | 'default'
9
+ | 'outline'
10
+ | 'transparent'
11
+ | 'default-inverse'
12
+ | 'orange'
13
+ | 'sky'
14
+ | 'pink'
15
+ | 'lime'
16
+ | 'lilac'
17
+ | 'pear'
18
+ | 'blue'
19
+ | 'accent'
20
+ | 'success'
21
+ | 'warning';
22
+ size?: 'xs' | 'sm' | 'md';
23
+ tooltip?: string;
24
+ onclick?: (event: MouseEvent) => void;
25
+ class?: string;
26
+ }
27
27
 
28
- let {
29
- children,
30
- variant = 'default',
31
- size = 'md',
32
- tooltip,
33
- onclick,
34
- class: className
35
- }: Props = $props();
28
+ let {
29
+ children,
30
+ variant = 'default',
31
+ size = 'md',
32
+ tooltip,
33
+ onclick,
34
+ class: className,
35
+ }: Props = $props();
36
36
 
37
- const sizes = {
38
- xs: 'h-5 text-xs p-1',
39
- sm: 'h-6 text-xs p-1.5',
40
- md: 'h-7 text-sm p-2'
41
- };
42
- let sizeClassName = $derived(sizes[size]);
37
+ const sizes = {
38
+ xs: 'h-5 text-xs p-1',
39
+ sm: 'h-6 text-xs p-1.5',
40
+ md: 'h-7 text-sm p-2',
41
+ };
42
+ let sizeClassName = $derived(sizes[size]);
43
43
 
44
- const variants = {
45
- default: 'bg-neutral text-primary',
46
- outline: 'bg-transparent text-secondary border',
47
- transparent: 'bg-transparent text-secondary',
48
- 'default-inverse': 'bg-base-inverse text-secondary-inverse',
49
- orange: 'bg-orange text-orange',
50
- sky: 'bg-sky text-sky',
51
- pink: 'bg-pink text-pink',
52
- lime: 'bg-lime text-lime',
53
- lilac: 'bg-lilac text-lilac',
54
- pear: 'bg-pear text-pear',
55
- blue: 'bg-blue text-blue',
56
- accent: 'bg-accent text-accent',
57
- success: 'bg-success text-success',
58
- warning: 'bg-warning text-warning'
59
- };
44
+ const variants = {
45
+ default: 'bg-neutral text-primary',
46
+ outline: 'bg-transparent text-secondary border',
47
+ transparent: 'bg-transparent text-secondary',
48
+ 'default-inverse': 'bg-base-inverse text-secondary-inverse',
49
+ orange: 'bg-orange text-orange',
50
+ sky: 'bg-sky text-sky',
51
+ pink: 'bg-pink text-pink',
52
+ lime: 'bg-lime text-lime',
53
+ lilac: 'bg-lilac text-lilac',
54
+ pear: 'bg-pear text-pear',
55
+ blue: 'bg-blue text-blue',
56
+ accent: 'bg-accent text-accent',
57
+ success: 'bg-success text-success',
58
+ warning: 'bg-warning text-warning',
59
+ };
60
60
 
61
- const buttonClassVariants = {
62
- default: 'hover:bg-neutral-hover',
63
- outline: 'hover:bg-neutral hover:text-primary',
64
- transparent: 'hover:bg-neutral hover:text-primary',
65
- 'default-inverse': 'hover:bg-base-inverse hover:text-secondary-inverse',
66
- orange: 'hover:bg-orange-hover hover:text-orange-hover',
67
- sky: 'hover:bg-sky-hover hover:text-sky-hover',
68
- pink: 'hover:bg-pink-hover hover:text-pink-hover',
69
- lime: 'hover:bg-lime-hover hover:text-lime-hover',
70
- lilac: 'hover:bg-lilac-hover hover:text-lilac-hover',
71
- pear: 'hover:bg-pear-hover hover:text-pear-hover',
72
- blue: 'hover:bg-blue-hover hover:text-blue-hover',
73
- accent: 'hover:bg-accent-hover hover:text-accent-hover',
74
- success: 'hover:bg-success-hover hover:text-success-hover',
75
- warning: 'hover:bg-warning-hover hover:text-warning-hover'
76
- };
61
+ const buttonClassVariants = {
62
+ default: 'hover:bg-neutral-hover',
63
+ outline: 'hover:bg-neutral hover:text-primary',
64
+ transparent: 'hover:bg-neutral hover:text-primary',
65
+ 'default-inverse': 'hover:bg-base-inverse hover:text-secondary-inverse',
66
+ orange: 'hover:bg-orange-hover hover:text-orange-hover',
67
+ sky: 'hover:bg-sky-hover hover:text-sky-hover',
68
+ pink: 'hover:bg-pink-hover hover:text-pink-hover',
69
+ lime: 'hover:bg-lime-hover hover:text-lime-hover',
70
+ lilac: 'hover:bg-lilac-hover hover:text-lilac-hover',
71
+ pear: 'hover:bg-pear-hover hover:text-pear-hover',
72
+ blue: 'hover:bg-blue-hover hover:text-blue-hover',
73
+ accent: 'hover:bg-accent-hover hover:text-accent-hover',
74
+ success: 'hover:bg-success-hover hover:text-success-hover',
75
+ warning: 'hover:bg-warning-hover hover:text-warning-hover',
76
+ };
77
77
 
78
- let variantClassName = $derived(variants[variant]);
79
- let buttonClassVariant = $derived(buttonClassVariants[variant]);
78
+ let variantClassName = $derived(variants[variant]);
79
+ let buttonClassVariant = $derived(buttonClassVariants[variant]);
80
80
  </script>
81
81
 
82
82
  {#snippet renderTag()}
83
- {#if onclick}
84
- <button
85
- class="outer {variantClassName} {sizeClassName} {buttonClassVariant} hover:cursor-pointer {className} "
86
- title={tooltip}
87
- {onclick}
88
- >
89
- {@render children()}
90
- </button>
91
- {:else}
92
- <div class="outer {variantClassName} {sizeClassName} no-underline {className}" title={tooltip}>
93
- {@render children()}
94
- </div>
95
- {/if}
83
+ {#if onclick}
84
+ <button
85
+ class="outer {variantClassName} {sizeClassName} {buttonClassVariant} hover:cursor-pointer {className} "
86
+ title={tooltip}
87
+ {onclick}
88
+ >
89
+ {@render children()}
90
+ </button>
91
+ {:else}
92
+ <div class="outer {variantClassName} {sizeClassName} no-underline {className}" title={tooltip}>
93
+ {@render children()}
94
+ </div>
95
+ {/if}
96
96
  {/snippet}
97
97
 
98
98
  {#if tooltip}
99
- <Tooltip>
100
- {#snippet trigger()}
101
- {@render renderTag()}
102
- {/snippet}
103
- {#snippet content()}
104
- {tooltip}
105
- {/snippet}
106
- </Tooltip>
99
+ <Tooltip>
100
+ {#snippet trigger()}
101
+ {@render renderTag()}
102
+ {/snippet}
103
+ {#snippet content()}
104
+ {tooltip}
105
+ {/snippet}
106
+ </Tooltip>
107
107
  {:else}
108
- {@render renderTag()}
108
+ {@render renderTag()}
109
109
  {/if}
110
110
 
111
111
  <style>
112
- .outer {
112
+ .outer {
113
113
  display: flex;
114
114
  align-items: center;
115
115
  gap: 0.5rem;
@@ -1,97 +1,97 @@
1
1
  <script module lang="ts">
2
- import { defineMeta } from '@storybook/addon-svelte-csf';
3
- import Textarea from './Textarea.svelte';
2
+ import { defineMeta } from '@storybook/addon-svelte-csf';
3
+ import Textarea from './Textarea.svelte';
4
4
 
5
- const { Story } = defineMeta({
6
- title: 'Design System/Textarea',
7
- component: Textarea,
8
- argTypes: {
9
- value: { control: 'text' },
10
- placeholder: { control: 'text' },
11
- size: {
12
- control: { type: 'select' },
13
- options: ['xs', 'sm', 'md', 'lg', 'dynamic']
14
- },
15
- required: { control: 'boolean' },
16
- readonly: { control: 'boolean' },
17
- autofocus: { control: 'boolean' },
18
- error: { control: 'object' },
19
- maxlength: { control: 'number' }
20
- }
21
- });
5
+ const { Story } = defineMeta({
6
+ title: 'Design System/Textarea',
7
+ component: Textarea,
8
+ argTypes: {
9
+ value: { control: 'text' },
10
+ placeholder: { control: 'text' },
11
+ size: {
12
+ control: { type: 'select' },
13
+ options: ['xs', 'sm', 'md', 'lg', 'dynamic'],
14
+ },
15
+ required: { control: 'boolean' },
16
+ readonly: { control: 'boolean' },
17
+ autofocus: { control: 'boolean' },
18
+ error: { control: 'object' },
19
+ maxlength: { control: 'number' },
20
+ },
21
+ });
22
22
  </script>
23
23
 
24
24
  <Story
25
- name="Default"
26
- args={{
27
- value: 'This is some default text.',
28
- placeholder: 'Enter text here...',
29
- size: 'md'
30
- }}
25
+ name="Default"
26
+ args={{
27
+ value: 'This is some default text.',
28
+ placeholder: 'Enter text here...',
29
+ size: 'md',
30
+ }}
31
31
  />
32
32
 
33
33
  <Story
34
- name="Empty and Required"
35
- args={{
36
- value: '',
37
- placeholder: 'This field is required',
38
- required: true,
39
- size: 'sm'
40
- }}
34
+ name="Empty and Required"
35
+ args={{
36
+ value: '',
37
+ placeholder: 'This field is required',
38
+ required: true,
39
+ size: 'sm',
40
+ }}
41
41
  />
42
42
 
43
43
  <Story
44
- name="With Max Length"
45
- args={{
46
- value: 'Short text',
47
- placeholder: 'Max 20 chars',
48
- maxlength: 20,
49
- size: 'dynamic'
50
- }}
44
+ name="With Max Length"
45
+ args={{
46
+ value: 'Short text',
47
+ placeholder: 'Max 20 chars',
48
+ maxlength: 20,
49
+ size: 'dynamic',
50
+ }}
51
51
  />
52
52
  <Story
53
- name="With Label"
54
- args={{
55
- value: 'Short text',
56
- placeholder: 'Max 20 chars',
57
- maxlength: 20,
58
- size: 'dynamic',
59
- label: 'Label'
60
- }}
53
+ name="With Label"
54
+ args={{
55
+ value: 'Short text',
56
+ placeholder: 'Max 20 chars',
57
+ maxlength: 20,
58
+ size: 'dynamic',
59
+ label: 'Label',
60
+ }}
61
61
  />
62
62
 
63
63
  <Story
64
- name="Readonly"
65
- args={{
66
- value: 'This text cannot be edited.',
67
- readonly: true,
68
- size: 'md'
69
- }}
64
+ name="Readonly"
65
+ args={{
66
+ value: 'This text cannot be edited.',
67
+ readonly: true,
68
+ size: 'md',
69
+ }}
70
70
  />
71
71
 
72
72
  <Story name="Invalid State" asChild>
73
- <Textarea size="md" placeholder="Error here" value="This input is invalid.">
74
- {#snippet error()}
75
- <p class="text-danger">This is an error</p>
76
- {/snippet}
77
- </Textarea>
73
+ <Textarea size="md" placeholder="Error here" value="This input is invalid.">
74
+ {#snippet error()}
75
+ <p class="text-danger">This is an error</p>
76
+ {/snippet}
77
+ </Textarea>
78
78
  </Story>
79
79
 
80
80
  <Story name="Autofocus" args={{ placeholder: 'I should be focused', autofocus: true }} />
81
81
 
82
82
  <!-- Story to demonstrate auto-resizing. Requires interaction -->
83
83
  <Story
84
- name="Auto Resizing"
85
- args={{
86
- value: 'Initial line.\nAnother line to start with.',
87
- placeholder: 'Type here...',
88
- size: 'dynamic'
89
- }}
84
+ name="Auto Resizing"
85
+ args={{
86
+ value: 'Initial line.\nAnother line to start with.',
87
+ placeholder: 'Type here...',
88
+ size: 'dynamic',
89
+ }}
90
90
  >
91
- {#snippet template(args)}
92
- <div class="w-96">
93
- <p class="mb-2 text-sm">Type or paste multiple lines to see it resize (max height 200px):</p>
94
- <Textarea {...args} />
95
- </div>
96
- {/snippet}
91
+ {#snippet template(args)}
92
+ <div class="w-96">
93
+ <p class="mb-2 text-sm">Type or paste multiple lines to see it resize (max height 200px):</p>
94
+ <Textarea {...args} />
95
+ </div>
96
+ {/snippet}
97
97
  </Story>