@reshape-biotech/design-system 2.7.51 → 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.
Files changed (132) hide show
  1. package/dist/components/activity/Activity.figma.d.ts +7 -0
  2. package/dist/components/activity/Activity.figma.js +24 -0
  3. package/dist/components/activity/Activity.stories.svelte +0 -6
  4. package/dist/components/avatar/Avatar.figma.d.ts +7 -0
  5. package/dist/components/avatar/Avatar.figma.js +17 -0
  6. package/dist/components/avatar/Avatar.stories.svelte +0 -6
  7. package/dist/components/banner/Banner.figma.d.ts +7 -0
  8. package/dist/components/banner/Banner.figma.js +26 -0
  9. package/dist/components/button/Button.figma.d.ts +7 -0
  10. package/dist/components/button/Button.figma.js +51 -0
  11. package/dist/components/button/Button.stories.svelte +37 -41
  12. package/dist/components/button/Button.svelte +18 -13
  13. package/dist/components/button/Button.svelte.d.ts +1 -1
  14. package/dist/components/checkbox/Checkbox.figma.d.ts +7 -0
  15. package/dist/components/checkbox/Checkbox.figma.js +24 -0
  16. package/dist/components/checkbox/Checkbox.stories.svelte +69 -10
  17. package/dist/components/checkbox/Checkbox.svelte +32 -8
  18. package/dist/components/checkbox/Checkbox.svelte.d.ts +4 -2
  19. package/dist/components/collapsible/Collapsible.figma.d.ts +7 -0
  20. package/dist/components/collapsible/Collapsible.figma.js +21 -0
  21. package/dist/components/combobox/Combobox.stories.svelte +0 -6
  22. package/dist/components/datepicker/DatePicker.figma.d.ts +7 -0
  23. package/dist/components/datepicker/DatePicker.figma.js +14 -0
  24. package/dist/components/datepicker/DatePicker.stories.svelte +0 -6
  25. package/dist/components/divider/Divider.figma.d.ts +7 -0
  26. package/dist/components/divider/Divider.figma.js +12 -0
  27. package/dist/components/drawer/Drawer.figma.d.ts +7 -0
  28. package/dist/components/drawer/Drawer.figma.js +26 -0
  29. package/dist/components/dropdown/Dropdown.figma.d.ts +7 -0
  30. package/dist/components/dropdown/Dropdown.figma.js +22 -0
  31. package/dist/components/empty-content/EmptyContent.figma.d.ts +7 -0
  32. package/dist/components/empty-content/EmptyContent.figma.js +20 -0
  33. package/dist/components/empty-content/EmptyContent.stories.svelte +43 -0
  34. package/dist/components/empty-content/EmptyContent.svelte +11 -2
  35. package/dist/components/empty-content/EmptyContent.svelte.d.ts +1 -0
  36. package/dist/components/icon-button/IconButton.figma.d.ts +7 -0
  37. package/dist/components/icon-button/IconButton.figma.js +42 -0
  38. package/dist/components/icon-button/IconButton.stories.svelte +72 -28
  39. package/dist/components/icon-button/IconButton.stories.svelte.d.ts +1 -1
  40. package/dist/components/icon-button/IconButton.svelte +80 -84
  41. package/dist/components/icon-button/IconButton.svelte.d.ts +10 -4
  42. package/dist/components/icons/Icon.stories.svelte +0 -6
  43. package/dist/components/input/Input.figma.d.ts +7 -0
  44. package/dist/components/input/Input.figma.js +23 -0
  45. package/dist/components/input/Input.stories.svelte +42 -16
  46. package/dist/components/input/Input.stories.svelte.d.ts +2 -17
  47. package/dist/components/input/Input.svelte +18 -18
  48. package/dist/components/input/Input.svelte.d.ts +2 -2
  49. package/dist/components/label/Label.figma.d.ts +7 -0
  50. package/dist/components/label/Label.figma.js +12 -0
  51. package/dist/components/legend/Legend.figma.d.ts +7 -0
  52. package/dist/components/legend/Legend.figma.js +14 -0
  53. package/dist/components/list/List.figma.d.ts +7 -0
  54. package/dist/components/list/List.figma.js +23 -0
  55. package/dist/components/logo/Logo.figma.d.ts +7 -0
  56. package/dist/components/logo/Logo.figma.js +21 -0
  57. package/dist/components/logo/Logo.stories.svelte +17 -0
  58. package/dist/components/logo/Logo.svelte +44 -18
  59. package/dist/components/logo/Logo.svelte.d.ts +1 -0
  60. package/dist/components/markdown/Markdown.figma.d.ts +7 -0
  61. package/dist/components/markdown/Markdown.figma.js +14 -0
  62. package/dist/components/modal/Modal.figma.d.ts +7 -0
  63. package/dist/components/modal/Modal.figma.js +31 -0
  64. package/dist/components/nav/Nav.figma.d.ts +7 -0
  65. package/dist/components/nav/Nav.figma.js +21 -0
  66. package/dist/components/notification-popup/NotificationPopup.figma.d.ts +7 -0
  67. package/dist/components/notification-popup/NotificationPopup.figma.js +19 -0
  68. package/dist/components/notifications/Notifications.figma.d.ts +7 -0
  69. package/dist/components/notifications/Notifications.figma.js +26 -0
  70. package/dist/components/pill/Pill.figma.d.ts +7 -0
  71. package/dist/components/pill/Pill.figma.js +11 -0
  72. package/dist/components/progress-circle/ProgressCircle.figma.d.ts +7 -0
  73. package/dist/components/progress-circle/ProgressCircle.figma.js +15 -0
  74. package/dist/components/progress-circle/ProgressCircle.stories.svelte +12 -0
  75. package/dist/components/progress-circle/ProgressCircle.svelte +19 -11
  76. package/dist/components/progress-circle/ProgressCircle.svelte.d.ts +1 -1
  77. package/dist/components/required-status-indicator/RequiredStatusIndicator.figma.d.ts +7 -0
  78. package/dist/components/required-status-indicator/RequiredStatusIndicator.figma.js +18 -0
  79. package/dist/components/segmented-control-buttons/SegmentedControlButtons.figma.d.ts +7 -0
  80. package/dist/components/segmented-control-buttons/SegmentedControlButtons.figma.js +27 -0
  81. package/dist/components/segmented-control-buttons/SegmentedControlButtons.stories.svelte +29 -0
  82. package/dist/components/segmented-control-buttons/SegmentedControlButtons.svelte +8 -6
  83. package/dist/components/segmented-control-buttons/SegmentedControlButtons.svelte.d.ts +3 -1
  84. package/dist/components/select/Select.figma.d.ts +7 -0
  85. package/dist/components/select/Select.figma.js +17 -0
  86. package/dist/components/skeleton-loader/SkeletonLoader.figma.d.ts +7 -0
  87. package/dist/components/skeleton-loader/SkeletonLoader.figma.js +16 -0
  88. package/dist/components/slider/Slider.figma.d.ts +7 -0
  89. package/dist/components/slider/Slider.figma.js +12 -0
  90. package/dist/components/spinner/Spinner.figma.d.ts +7 -0
  91. package/dist/components/spinner/Spinner.figma.js +11 -0
  92. package/dist/components/stat-card/StatCard.figma.d.ts +7 -0
  93. package/dist/components/stat-card/StatCard.figma.js +18 -0
  94. package/dist/components/status-badge/StatusBadge.figma.d.ts +7 -0
  95. package/dist/components/status-badge/StatusBadge.figma.js +29 -0
  96. package/dist/components/stepper/Stepper.figma.d.ts +7 -0
  97. package/dist/components/stepper/Stepper.figma.js +15 -0
  98. package/dist/components/table/Table.figma.d.ts +7 -0
  99. package/dist/components/table/Table.figma.js +26 -0
  100. package/dist/components/tabs/Tabs.figma.d.ts +7 -0
  101. package/dist/components/tabs/Tabs.figma.js +24 -0
  102. package/dist/components/tabs/Tabs.stories.svelte +23 -0
  103. package/dist/components/tabs/components/Tabs.svelte +6 -1
  104. package/dist/components/tabs/components/Tabs.svelte.d.ts +2 -0
  105. package/dist/components/tag/Tag.figma.d.ts +7 -0
  106. package/dist/components/tag/Tag.figma.js +33 -0
  107. package/dist/components/tag/Tag.svelte +0 -1
  108. package/dist/components/textarea/Textarea.figma.d.ts +7 -0
  109. package/dist/components/textarea/Textarea.figma.js +17 -0
  110. package/dist/components/toast/Toast.figma.d.ts +7 -0
  111. package/dist/components/toast/Toast.figma.js +17 -0
  112. package/dist/components/toast/Toast.stories.svelte +3 -24
  113. package/dist/components/toast/Toast.svelte +22 -40
  114. package/dist/components/toggle/Toggle.figma.d.ts +7 -0
  115. package/dist/components/toggle/Toggle.figma.js +23 -0
  116. package/dist/components/toggle/Toggle.stories.svelte +56 -4
  117. package/dist/components/toggle/Toggle.stories.svelte.d.ts +6 -14
  118. package/dist/components/toggle/Toggle.svelte +56 -58
  119. package/dist/components/toggle/Toggle.svelte.d.ts +2 -0
  120. package/dist/components/toggle-icon-button/ToggleIconButton.figma.d.ts +7 -0
  121. package/dist/components/toggle-icon-button/ToggleIconButton.figma.js +31 -0
  122. package/dist/components/tooltip/Tooltip.figma.d.ts +7 -0
  123. package/dist/components/tooltip/Tooltip.figma.js +22 -0
  124. package/dist/safelist-source.d.ts +1 -1
  125. package/dist/safelist-source.js +2 -2
  126. package/dist/safelist.css +1 -1
  127. package/dist/tailwind.preset.d.ts +2 -0
  128. package/dist/tokens/colors.d.ts +1 -0
  129. package/dist/tokens/colors.js +8 -7
  130. package/dist/tokens.d.ts +13 -0
  131. package/dist/tokens.js +8 -2
  132. package/package.json +3 -1
@@ -1,11 +1,13 @@
1
1
  import type { Snippet } from 'svelte';
2
2
  type Size = 'sm' | 'md' | 'lg';
3
3
  type Variant = 'primary' | 'secondary' | 'transparent';
4
+ type Style = 'rounded' | 'square';
4
5
  interface Props {
5
6
  class?: string;
6
7
  size?: Size;
7
8
  variant?: Variant;
8
9
  fullWidth?: boolean;
10
+ style?: Style;
9
11
  children?: Snippet<[{
10
12
  variant: Variant;
11
13
  }]>;
@@ -0,0 +1,7 @@
1
+ import figma from 'figma';
2
+ declare const _default: {
3
+ example: figma.TemplateStringResult;
4
+ imports: string[];
5
+ id: string;
6
+ };
7
+ export default _default;
@@ -0,0 +1,33 @@
1
+ // url=https://www.figma.com/design/WkxhG4H2Ybc7STFi1VJIau/%F0%9F%92%A0-Reshape-Design-System--V1?node-id=9-3311
2
+ // source=src/lib/components/tag/Tag.svelte
3
+ // component=Tag
4
+ import figma from 'figma';
5
+ const instance = figma.selectedInstance;
6
+ const variant = instance.getEnum('variant', {
7
+ 'default': 'default',
8
+ 'outline': 'outline',
9
+ 'transparent': 'transparent',
10
+ });
11
+ const color = instance.getEnum('color', {
12
+ 'blue': 'blue',
13
+ 'lilac': 'lilac',
14
+ 'lime': 'lime',
15
+ 'orange': 'orange',
16
+ 'pear': 'pear',
17
+ 'pink': 'pink',
18
+ 'sky': 'sky',
19
+ 'default': 'default',
20
+ });
21
+ const size = instance.getEnum('size', {
22
+ 'xs': 'xs',
23
+ 'sm': 'sm',
24
+ 'md': 'md',
25
+ });
26
+ const text = instance.getString('Text');
27
+ // When color is set, use color as variant; otherwise use the style variant
28
+ const resolvedVariant = color !== 'default' ? color : variant;
29
+ export default {
30
+ example: figma.code `<Tag variant="${resolvedVariant}" size="${size}">${text || 'Tag'}</Tag>`,
31
+ imports: ["import Tag from './Tag.svelte'"],
32
+ id: 'tag',
33
+ };
@@ -2,7 +2,6 @@
2
2
  import type { Snippet } from 'svelte';
3
3
  import { twMerge } from 'tailwind-merge';
4
4
  import { Tooltip } from '../tooltip/';
5
-
6
5
  interface Props {
7
6
  children: Snippet;
8
7
  variant?:
@@ -0,0 +1,7 @@
1
+ import figma from 'figma';
2
+ declare const _default: {
3
+ example: figma.TemplateStringResult;
4
+ imports: string[];
5
+ id: string;
6
+ };
7
+ export default _default;
@@ -0,0 +1,17 @@
1
+ // url=https://www.figma.com/design/WkxhG4H2Ybc7STFi1VJIau/%F0%9F%92%A0-Reshape-Design-System--V1?node-id=9-3173
2
+ // source=src/lib/components/textarea/Textarea.svelte
3
+ // component=Textarea
4
+ import figma from 'figma';
5
+ const instance = figma.selectedInstance;
6
+ const size = instance.getEnum('size', {
7
+ 'xs': 'xs',
8
+ 'sm': 'sm',
9
+ 'md': 'md',
10
+ 'lg': 'lg',
11
+ });
12
+ const placeholder = instance.getString('placeholder');
13
+ export default {
14
+ example: figma.code `<Textarea size="${size}" placeholder="${placeholder || 'Enter text...'}" />`,
15
+ imports: ["import Textarea from './Textarea.svelte'"],
16
+ id: 'textarea',
17
+ };
@@ -0,0 +1,7 @@
1
+ import figma from 'figma';
2
+ declare const _default: {
3
+ example: figma.TemplateStringResult;
4
+ imports: string[];
5
+ id: string;
6
+ };
7
+ export default _default;
@@ -0,0 +1,17 @@
1
+ // url=https://www.figma.com/design/WkxhG4H2Ybc7STFi1VJIau/%F0%9F%92%A0-Reshape-Design-System--V1?node-id=2086-4597
2
+ // source=src/lib/components/toast/Toast.svelte
3
+ // component=Toast
4
+ import figma from 'figma';
5
+ const instance = figma.selectedInstance;
6
+ const type = instance.getEnum('type', {
7
+ 'neutral': 'default',
8
+ 'danger': 'danger',
9
+ 'info': 'info',
10
+ 'success': 'success',
11
+ 'warning': 'warning',
12
+ });
13
+ export default {
14
+ example: figma.code `<Toast notification={{ id: '1', type: "${type}", message: 'Notification message', dismissable: true }} />`,
15
+ imports: ["import Toast from './Toast.svelte'"],
16
+ id: 'toast',
17
+ };
@@ -161,10 +161,10 @@
161
161
  </script>
162
162
 
163
163
  <Story name="Notifications" asChild>
164
- <div class="space-y-8">
164
+ <div class="space-y-10">
165
165
  <div class="space-y-4">
166
166
  <h5 class="text-lg font-semibold">Basic Notifications</h5>
167
- <div class="space-y-2">
167
+ <div class="flex flex-col gap-3">
168
168
  <Toast notification={defaultNotification} />
169
169
  <Toast notification={dangerNotification} />
170
170
  <Toast notification={warningNotification} />
@@ -173,20 +173,10 @@
173
173
  </div>
174
174
  </div>
175
175
 
176
- <div class="space-y-4">
177
- <h5 class="text-lg font-semibold">Notifications with Icons</h5>
178
- <div class="space-y-2">
179
- <Toast notification={defaultIconNotification} />
180
- <Toast notification={dangerIconNotification} />
181
- <Toast notification={warningIconNotification} />
182
- <Toast notification={infoIconNotification} />
183
- <Toast notification={successIconNotification} />
184
- </div>
185
- </div>
186
176
 
187
177
  <div class="space-y-4">
188
178
  <h5 class="text-lg font-semibold">Dismissable Notifications</h5>
189
- <div class="space-y-2">
179
+ <div class="flex flex-col gap-3">
190
180
  <Toast notification={defaultDismissableNoIconNotification} />
191
181
  <Toast notification={dangerDismissableNoIconNotification} />
192
182
  <Toast notification={warningDismissableNoIconNotification} />
@@ -194,16 +184,5 @@
194
184
  <Toast notification={successDismissableNoIconNotification} />
195
185
  </div>
196
186
  </div>
197
-
198
- <div class="space-y-4">
199
- <h5 class="text-lg font-semibold">Dismissable Notifications with Icons</h5>
200
- <div class="space-y-2">
201
- <Toast notification={defaultDismissableNotificationWithIcon} />
202
- <Toast notification={dangerDismissableNotificationWithIcon} />
203
- <Toast notification={warningDismissableNotificationWithIcon} />
204
- <Toast notification={infoDismissableNotificationWithIcon} />
205
- <Toast notification={successDismissableNotificationWithIcon} />
206
- </div>
207
- </div>
208
187
  </div>
209
188
  </Story>
@@ -1,35 +1,19 @@
1
1
  <script lang="ts">
2
- import { type Notification, notifications } from '../../notifications';
3
- import { tokens } from '../../tokens';
2
+ import { type Notification, type NotificationType, notifications } from '../../notifications';
4
3
  import IconButton from '../icon-button/IconButton.svelte';
5
4
  import Icon from '../icons/Icon.svelte';
6
- import type { IconColor } from '../icons';
7
- import X from 'phosphor-svelte/lib/X';
8
-
9
- // Default notification icons for each type
10
- import Info from 'phosphor-svelte/lib/Info';
11
- import CheckCircle from 'phosphor-svelte/lib/CheckCircle';
12
- import Warning from 'phosphor-svelte/lib/Warning';
13
- import XCircle from 'phosphor-svelte/lib/XCircle';
14
- import Bell from 'phosphor-svelte/lib/Bell';
5
+ import { Bell, CheckCircle, Info, Warning, X, XCircle } from 'phosphor-svelte';
15
6
 
16
7
  let { notification }: { notification: Notification } = $props();
17
8
 
18
- const color = {
19
- danger: tokens.backgroundColor['danger-inverse'],
20
- success: tokens.backgroundColor['success-inverse-hover'],
21
- warning: tokens.backgroundColor['warning-inverse-hover'],
22
- info: tokens.backgroundColor['blue-inverse'],
23
- default: tokens.backgroundColor.surface,
9
+ const toastBgClass: Record<NotificationType, string> = {
10
+ danger: 'bg-danger-inverse',
11
+ success: 'bg-success-inverse-hover',
12
+ warning: 'bg-warning-inverse-hover',
13
+ info: 'bg-blue-inverse',
14
+ default: 'bg-surface',
24
15
  };
25
16
 
26
- const textColor: Record<string, IconColor | 'inherit'> = {
27
- danger: 'primary-inverse',
28
- success: 'primary-inverse',
29
- warning: 'primary-inverse',
30
- info: 'primary-inverse',
31
- default: 'inherit',
32
- };
33
17
 
34
18
  // Default icons for each notification type
35
19
  const typeIcons: Record<string, any> = {
@@ -45,37 +29,35 @@
45
29
  </script>
46
30
 
47
31
  <div
48
- class="my-1 flex min-h-10 min-w-80 flex-row items-center rounded-lg px-2 shadow-md"
49
- style="background: {color[notification.type]}"
50
- class:border={notification.type === 'default'}
51
- class:border-base-200={notification.type === 'default'}
32
+ class="my-1 flex min-h-11 min-w-80 flex-row items-center rounded-lg pl-3 pr-2 gap-3 shadow-menu {toastBgClass[notification.type]}"
52
33
  >
53
34
  {#if iconComponent}
54
35
  <Icon
55
- color={textColor[notification.type]}
56
- size={14}
36
+ color={notification.type === 'default' ? 'secondary' : 'primary-inverse'}
57
37
  icon={iconComponent}
58
- class="flex h-6 w-6 items-center justify-center rounded-md {notification.type !== 'default'
38
+ class="flex items-center justify-center rounded-md {notification.type !== 'default'
59
39
  ? 'bg-neutral-inverse-hover'
60
- : 'bg-neutral'} p-1 {textColor[notification.type]}"
40
+ : 'bg-neutral'} p-1"
61
41
  />
62
42
  {/if}
63
43
  <div
64
- class="p-2 font-medium"
65
- style="display:block"
44
+ class="font-medium"
66
45
  class:text-primary-inverse={notification.type !== 'default'}
46
+ class:text-primary={notification.type === 'default'}
67
47
  >
68
48
  {notification.message}
69
49
  </div>
70
50
  {#if notification.dismissable}
71
51
  <div class="grow"></div>
72
52
  <div class="py-2">
73
- <IconButton rounded={false} size="xs" onclick={() => notifications.dismiss(notification.id)}>
74
- <Icon
75
- color={textColor[notification.type]}
76
- icon={X}
77
- class="rounded-md {textColor[notification.type]}"
78
- />
53
+ <IconButton
54
+ rounded={false}
55
+ size="xs"
56
+ variant={notification.type === 'default' ? 'transparent' : 'transparent-inverse'}
57
+ accessibilityLabel="Dismiss notification"
58
+ onclick={() => notifications.dismiss(notification.id)}
59
+ >
60
+ <Icon icon={X} size={14} />
79
61
  </IconButton>
80
62
  </div>
81
63
  {/if}
@@ -0,0 +1,7 @@
1
+ import figma from 'figma';
2
+ declare const _default: {
3
+ example: figma.TemplateStringResult;
4
+ imports: string[];
5
+ id: string;
6
+ };
7
+ export default _default;
@@ -0,0 +1,23 @@
1
+ // url=https://www.figma.com/design/WkxhG4H2Ybc7STFi1VJIau/%F0%9F%92%A0-Reshape-Design-System--V1?node-id=389-7679
2
+ // source=src/lib/components/toggle/Toggle.svelte
3
+ // component=Toggle
4
+ import figma from 'figma';
5
+ const instance = figma.selectedInstance;
6
+ const size = instance.getEnum('size', {
7
+ 'sm': 'sm',
8
+ 'md': 'md',
9
+ 'lg': 'lg',
10
+ });
11
+ const disabled = instance.getEnum('Disabled', {
12
+ 'true': true,
13
+ 'false': false,
14
+ });
15
+ const checked = instance.getEnum('Checked', {
16
+ 'true': true,
17
+ 'false': false,
18
+ });
19
+ export default {
20
+ example: figma.code `<Toggle id="toggle-id" size="${size}" value={${checked}} ${disabled ? 'disabled' : ''} />`,
21
+ imports: ["import Toggle from './Toggle.svelte'"],
22
+ id: 'toggle',
23
+ };
@@ -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="Base" asChild>
14
- <Toggle id="toggle-1" />
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("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
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
- /* The slider */
30
- .slider {
31
- position: absolute;
32
- cursor: pointer;
33
- top: 0;
34
- left: 0;
35
- right: 0;
36
- bottom: 0;
37
- -webkit-transition: 0.1s;
38
- transition: 0.1s;
39
- @apply bg-neutral-darker;
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
- .slider:before {
43
- content: '';
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
- .slider.round:before {
67
- @apply rounded-full;
68
- }
69
- </style>
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,7 @@
1
+ import figma from 'figma';
2
+ declare const _default: {
3
+ example: figma.TemplateStringResult;
4
+ imports: string[];
5
+ id: string;
6
+ };
7
+ export default _default;
@@ -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,7 @@
1
+ import figma from 'figma';
2
+ declare const _default: {
3
+ example: figma.TemplateStringResult;
4
+ imports: string[];
5
+ id: string;
6
+ };
7
+ export default _default;
@@ -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
+ };
@@ -1 +1 @@
1
- export const safelist: "-rotate-90 [&>*>.control-button]:flex-col [&>*]:flex-1 [&>*]:flex-none [&>*]:rounded-md! [&>*]:rounded-xl [&>svg]:h-4 [&>svg]:h-5 [&>svg]:w-4 [&>svg]:w-5 badge-error badge-md badge-neutral badge-progress badge-sm badge-success badge-warning bg-accent bg-accent-hover bg-accent-inverse bg-accent-inverse-hover bg-base bg-base-inverse bg-blue bg-blue-hover bg-blue-inverse bg-blue-inverse-hover bg-danger bg-danger-hover bg-danger-inverse bg-danger-inverse-hover bg-dark-accent bg-dark-accent-hover bg-dark-accent-inverse bg-dark-accent-inverse-hover bg-dark-base bg-dark-base-inverse bg-dark-blue bg-dark-blue-hover bg-dark-blue-inverse bg-dark-blue-inverse-hover bg-dark-danger bg-dark-danger-hover bg-dark-danger-inverse bg-dark-danger-inverse-hover bg-dark-lilac bg-dark-lilac-hover bg-dark-lilac-inverse bg-dark-lilac-inverse-hover bg-dark-lime bg-dark-lime-hover bg-dark-lime-inverse bg-dark-lime-inverse-hover bg-dark-neutral bg-dark-neutral-darker bg-dark-neutral-darker-hover bg-dark-neutral-hover bg-dark-neutral-inverse bg-dark-neutral-inverse-hover bg-dark-orange bg-dark-orange-hover bg-dark-orange-inverse bg-dark-orange-inverse-hover bg-dark-overlay bg-dark-pear bg-dark-pear-hover bg-dark-pear-inverse bg-dark-pear-inverse-hover bg-dark-pink bg-dark-pink-hover bg-dark-pink-inverse bg-dark-pink-inverse-hover bg-dark-plum bg-dark-plum-hover bg-dark-plum-inverse bg-dark-plum-inverse-hover bg-dark-primary bg-dark-secondary bg-dark-sky bg-dark-sky-hover bg-dark-sky-inverse bg-dark-sky-inverse-hover bg-dark-success bg-dark-success-hover bg-dark-success-inverse bg-dark-success-inverse-hover bg-dark-warning bg-dark-warning-hover bg-dark-warning-inverse bg-dark-warning-inverse-hover bg-lilac bg-lilac-hover bg-lilac-inverse bg-lilac-inverse-hover bg-lime bg-lime-hover bg-lime-inverse bg-lime-inverse-hover bg-neutral bg-neutral-darker bg-neutral-darker-hover bg-neutral-hover bg-neutral-inverse bg-neutral-inverse-hover bg-orange bg-orange-hover bg-orange-inverse bg-orange-inverse-hover bg-overlay bg-pear bg-pear-hover bg-pear-inverse bg-pear-inverse-hover bg-pink bg-pink-hover bg-pink-inverse bg-pink-inverse-hover bg-plum bg-plum-hover bg-plum-inverse bg-plum-inverse-hover bg-sky bg-sky-hover bg-sky-inverse bg-sky-inverse-hover bg-success bg-success-hover bg-success-inverse bg-success-inverse-hover bg-surface bg-surface-secondary bg-warning bg-warning-hover bg-warning-inverse bg-warning-inverse-hover border-axis border-blue-inverse border-danger border-dark-axis border-dark-blue-inverse border-dark-danger border-dark-focus border-dark-hover border-dark-input border-dark-interactive border-dark-interactive-inverse border-dark-lime-inverse border-dark-orange-inverse border-dark-pink-inverse border-dark-static border-dark-static-inverse border-focus border-hover border-input border-interactive border-interactive-inverse border-lime-inverse border-orange-inverse border-pink-inverse border-static border-static-inverse border-white data-[disabled]:opacity-50 data-[disabled]:pointer-events-none data-[highlighted]:bg-neutral data-[highlighted]:text-accent-foreground group-first:invisible group-last:invisible h-[calc(100%-26px)] hover:bg-accent-hover hover:bg-accent-inverse-hover hover:bg-blue-hover hover:bg-blue-inverse-hover hover:bg-danger-hover hover:bg-danger-inverse-hover hover:bg-dark-accent-hover hover:bg-dark-accent-inverse-hover hover:bg-dark-blue-hover hover:bg-dark-blue-inverse-hover hover:bg-dark-danger-hover hover:bg-dark-danger-inverse-hover hover:bg-dark-lilac-hover hover:bg-dark-lilac-inverse-hover hover:bg-dark-lime-hover hover:bg-dark-lime-inverse-hover hover:bg-dark-neutral-darker-hover hover:bg-dark-neutral-hover hover:bg-dark-neutral-inverse-hover hover:bg-dark-orange-hover hover:bg-dark-orange-inverse-hover hover:bg-dark-pear-hover hover:bg-dark-pear-inverse-hover hover:bg-dark-pink-hover hover:bg-dark-pink-inverse-hover hover:bg-dark-plum-hover hover:bg-dark-plum-inverse-hover hover:bg-dark-sky-hover hover:bg-dark-sky-inverse-hover hover:bg-dark-success-hover hover:bg-dark-success-inverse-hover hover:bg-dark-warning-hover hover:bg-dark-warning-inverse-hover hover:bg-lilac-hover hover:bg-lilac-inverse-hover hover:bg-lime-hover hover:bg-lime-inverse-hover hover:bg-neutral-darker-hover hover:bg-neutral-hover hover:bg-neutral-inverse-hover hover:bg-orange-hover hover:bg-orange-inverse-hover hover:bg-pear-hover hover:bg-pear-inverse-hover hover:bg-pink-hover hover:bg-pink-inverse-hover hover:bg-plum-hover hover:bg-plum-inverse-hover hover:bg-sky-hover hover:bg-sky-inverse-hover hover:bg-success-hover hover:bg-success-inverse-hover hover:bg-warning-hover hover:bg-warning-inverse-hover leading-4 leading-5 leading-6 leading-7 lg:block md:flex outline-dark-focus outline-dark-hover outline-dark-input outline-dark-interactive outline-dark-static outline-focus outline-hover outline-input outline-interactive outline-static ring-1 ring-[#12192a1a] ring-axis ring-blue-inverse ring-danger ring-dark-axis ring-dark-blue-inverse ring-dark-danger ring-dark-focus ring-dark-hover ring-dark-input ring-dark-interactive ring-dark-interactive-inverse ring-dark-lime-inverse ring-dark-orange-inverse ring-dark-pink-inverse ring-dark-static ring-dark-static-inverse ring-focus ring-hover ring-input ring-interactive ring-interactive-inverse ring-lime-inverse ring-orange-inverse ring-pink-inverse ring-static ring-static-inverse ring-white shadow-container shadow-focus shadow-hover shadow-input shadow-menu sm:gap-2 sm:w-[460px] table-auto table-fixed text-accent text-blue text-danger text-dark-accent text-dark-blue text-dark-danger text-dark-icon-accent text-dark-icon-blue text-dark-icon-danger text-dark-icon-lilac text-dark-icon-lime text-dark-icon-orange text-dark-icon-pear text-dark-icon-pink text-dark-icon-plum text-dark-icon-primary text-dark-icon-primary-inverse text-dark-icon-secondary text-dark-icon-secondary-inverse text-dark-icon-sky text-dark-icon-success text-dark-icon-tertiary text-dark-icon-warning text-dark-icon-white text-dark-lilac text-dark-lime text-dark-orange text-dark-pear text-dark-pink text-dark-plum text-dark-primary text-dark-primary-inverse text-dark-secondary text-dark-secondary-inverse text-dark-sky text-dark-success text-dark-tertiary text-dark-tertiary-inverse text-dark-warning text-icon-accent text-icon-blue text-icon-danger text-icon-lilac text-icon-lime text-icon-orange text-icon-pear text-icon-pink text-icon-plum text-icon-primary text-icon-primary-inverse text-icon-secondary text-icon-secondary-inverse text-icon-sky text-icon-success text-icon-tertiary text-icon-warning text-icon-white text-lilac text-lime text-orange text-pear text-pink text-plum text-primary text-primary-inverse text-secondary text-secondary-inverse text-sky text-success text-tertiary text-tertiary-inverse text-warning tooltip-bottom tooltip-left tooltip-right tooltip-top transform translate-y-[2px] w-[calc(100%-72px-72px)]";
1
+ export const safelist: "-rotate-90 [&>*>.control-button]:flex-col [&>*]:flex-1 [&>*]:flex-none [&>*]:rounded-md! [&>*]:rounded-xl [&>svg]:h-4 [&>svg]:h-5 [&>svg]:w-4 [&>svg]:w-5 badge-error badge-md badge-neutral badge-progress badge-sm badge-success badge-warning bg-accent bg-accent-hover bg-accent-inverse bg-accent-inverse-hover bg-base bg-base-inverse bg-blue bg-blue-hover bg-blue-inverse bg-blue-inverse-hover bg-danger bg-danger-hover bg-danger-inverse bg-danger-inverse-hover bg-dark-accent bg-dark-accent-hover bg-dark-accent-inverse bg-dark-accent-inverse-hover bg-dark-base bg-dark-base-inverse bg-dark-blue bg-dark-blue-hover bg-dark-blue-inverse bg-dark-blue-inverse-hover bg-dark-danger bg-dark-danger-hover bg-dark-danger-inverse bg-dark-danger-inverse-hover bg-dark-lilac bg-dark-lilac-hover bg-dark-lilac-inverse bg-dark-lilac-inverse-hover bg-dark-lime bg-dark-lime-hover bg-dark-lime-inverse bg-dark-lime-inverse-hover bg-dark-neutral bg-dark-neutral-darker bg-dark-neutral-darker-hover bg-dark-neutral-hover bg-dark-neutral-inverse bg-dark-neutral-inverse-hover bg-dark-orange bg-dark-orange-hover bg-dark-orange-inverse bg-dark-orange-inverse-hover bg-dark-overlay bg-dark-pear bg-dark-pear-hover bg-dark-pear-inverse bg-dark-pear-inverse-hover bg-dark-pink bg-dark-pink-hover bg-dark-pink-inverse bg-dark-pink-inverse-hover bg-dark-plum bg-dark-plum-hover bg-dark-plum-inverse bg-dark-plum-inverse-hover bg-dark-primary bg-dark-secondary bg-dark-sky bg-dark-sky-hover bg-dark-sky-inverse bg-dark-sky-inverse-hover bg-dark-success bg-dark-success-hover bg-dark-success-inverse bg-dark-success-inverse-hover bg-dark-warning bg-dark-warning-hover bg-dark-warning-inverse bg-dark-warning-inverse-hover bg-lilac bg-lilac-hover bg-lilac-inverse bg-lilac-inverse-hover bg-lime bg-lime-hover bg-lime-inverse bg-lime-inverse-hover bg-neutral bg-neutral-darker bg-neutral-darker-hover bg-neutral-hover bg-neutral-inverse bg-neutral-inverse-hover bg-orange bg-orange-hover bg-orange-inverse bg-orange-inverse-hover bg-overlay bg-pear bg-pear-hover bg-pear-inverse bg-pear-inverse-hover bg-pink bg-pink-hover bg-pink-inverse bg-pink-inverse-hover bg-plum bg-plum-hover bg-plum-inverse bg-plum-inverse-hover bg-sky bg-sky-hover bg-sky-inverse bg-sky-inverse-hover bg-success bg-success-hover bg-success-inverse bg-success-inverse-hover bg-surface bg-surface-inverse bg-surface-secondary bg-warning bg-warning-hover bg-warning-inverse bg-warning-inverse-hover border-axis border-blue-inverse border-danger border-dark-axis border-dark-blue-inverse border-dark-danger border-dark-focus border-dark-hover border-dark-input border-dark-input-inverse border-dark-interactive border-dark-interactive-inverse border-dark-lime-inverse border-dark-orange-inverse border-dark-pink-inverse border-dark-static border-dark-static-inverse border-focus border-hover border-input border-input-inverse border-interactive border-interactive-inverse border-lime-inverse border-orange-inverse border-pink-inverse border-static border-static-inverse border-white data-[disabled]:opacity-50 data-[disabled]:pointer-events-none data-[highlighted]:bg-neutral data-[highlighted]:text-accent-foreground group-first:invisible group-last:invisible h-[calc(100%-26px)] hover:bg-accent-hover hover:bg-accent-inverse-hover hover:bg-blue-hover hover:bg-blue-inverse-hover hover:bg-danger-hover hover:bg-danger-inverse-hover hover:bg-dark-accent-hover hover:bg-dark-accent-inverse-hover hover:bg-dark-blue-hover hover:bg-dark-blue-inverse-hover hover:bg-dark-danger-hover hover:bg-dark-danger-inverse-hover hover:bg-dark-lilac-hover hover:bg-dark-lilac-inverse-hover hover:bg-dark-lime-hover hover:bg-dark-lime-inverse-hover hover:bg-dark-neutral-darker-hover hover:bg-dark-neutral-hover hover:bg-dark-neutral-inverse-hover hover:bg-dark-orange-hover hover:bg-dark-orange-inverse-hover hover:bg-dark-pear-hover hover:bg-dark-pear-inverse-hover hover:bg-dark-pink-hover hover:bg-dark-pink-inverse-hover hover:bg-dark-plum-hover hover:bg-dark-plum-inverse-hover hover:bg-dark-sky-hover hover:bg-dark-sky-inverse-hover hover:bg-dark-success-hover hover:bg-dark-success-inverse-hover hover:bg-dark-warning-hover hover:bg-dark-warning-inverse-hover hover:bg-lilac-hover hover:bg-lilac-inverse-hover hover:bg-lime-hover hover:bg-lime-inverse-hover hover:bg-neutral-darker-hover hover:bg-neutral-hover hover:bg-neutral-inverse-hover hover:bg-orange-hover hover:bg-orange-inverse-hover hover:bg-pear-hover hover:bg-pear-inverse-hover hover:bg-pink-hover hover:bg-pink-inverse-hover hover:bg-plum-hover hover:bg-plum-inverse-hover hover:bg-sky-hover hover:bg-sky-inverse-hover hover:bg-success-hover hover:bg-success-inverse-hover hover:bg-warning-hover hover:bg-warning-inverse-hover leading-4 leading-5 leading-6 leading-7 lg:block md:flex outline-dark-focus outline-dark-hover outline-dark-input outline-dark-interactive outline-dark-static outline-focus outline-hover outline-input outline-interactive outline-static ring-1 ring-[#12192a1a] ring-axis ring-blue-inverse ring-danger ring-dark-axis ring-dark-blue-inverse ring-dark-danger ring-dark-focus ring-dark-hover ring-dark-input ring-dark-input-inverse ring-dark-interactive ring-dark-interactive-inverse ring-dark-lime-inverse ring-dark-orange-inverse ring-dark-pink-inverse ring-dark-static ring-dark-static-inverse ring-focus ring-hover ring-input ring-input-inverse ring-interactive ring-interactive-inverse ring-lime-inverse ring-orange-inverse ring-pink-inverse ring-static ring-static-inverse ring-white shadow-button shadow-container shadow-focus shadow-hover shadow-input shadow-menu sm:gap-2 sm:w-[460px] table-auto table-fixed text-accent text-blue text-danger text-dark-accent text-dark-blue text-dark-danger text-dark-icon-accent text-dark-icon-blue text-dark-icon-danger text-dark-icon-lilac text-dark-icon-lime text-dark-icon-orange text-dark-icon-pear text-dark-icon-pink text-dark-icon-plum text-dark-icon-primary text-dark-icon-primary-inverse text-dark-icon-secondary text-dark-icon-secondary-inverse text-dark-icon-sky text-dark-icon-success text-dark-icon-tertiary text-dark-icon-tertiary-inverse text-dark-icon-warning text-dark-icon-white text-dark-lilac text-dark-lime text-dark-orange text-dark-pear text-dark-pink text-dark-plum text-dark-primary text-dark-primary-inverse text-dark-secondary text-dark-secondary-inverse text-dark-sky text-dark-success text-dark-tertiary text-dark-tertiary-inverse text-dark-warning text-icon-accent text-icon-blue text-icon-danger text-icon-lilac text-icon-lime text-icon-orange text-icon-pear text-icon-pink text-icon-plum text-icon-primary text-icon-primary-inverse text-icon-secondary text-icon-secondary-inverse text-icon-sky text-icon-success text-icon-tertiary text-icon-tertiary-inverse text-icon-warning text-icon-white text-lilac text-lime text-orange text-pear text-pink text-plum text-primary text-primary-inverse text-secondary text-secondary-inverse text-sky text-success text-tertiary text-tertiary-inverse text-warning tooltip-bottom tooltip-left tooltip-right tooltip-top transform translate-y-[2px] w-[calc(100%-72px-72px)]";