@reshape-biotech/design-system 1.2.6 → 2.0.0

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