@reshape-biotech/design-system 2.6.4 → 2.7.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 (77) hide show
  1. package/dist/components/activity/Activity.stories.svelte +7 -2
  2. package/dist/components/activity/Activity.svelte +6 -48
  3. package/dist/components/activity/Activity.svelte.d.ts +2 -2
  4. package/dist/components/activity/ActivityIcon.svelte +75 -0
  5. package/dist/components/activity/ActivityIcon.svelte.d.ts +10 -0
  6. package/dist/components/banner/Banner.stories.svelte +46 -9
  7. package/dist/components/banner/Banner.svelte +3 -2
  8. package/dist/components/checkbox/Checkbox.svelte +5 -3
  9. package/dist/components/collapsible/components/collapsible-trigger.svelte +3 -2
  10. package/dist/components/combobox/Combobox.stories.svelte +18 -4
  11. package/dist/components/combobox/components/combobox-add.svelte +3 -2
  12. package/dist/components/combobox/components/combobox-content.svelte +5 -3
  13. package/dist/components/combobox/components/combobox-indicator.svelte +3 -2
  14. package/dist/components/datepicker/DatePicker.stories.svelte +12 -3
  15. package/dist/components/datepicker/DatePicker.svelte +5 -3
  16. package/dist/components/drawer/components/drawer-content.svelte +3 -2
  17. package/dist/components/empty-content/EmptyContent.stories.svelte +13 -15
  18. package/dist/components/graphs/bar-chart/BarChart.svelte +1 -1
  19. package/dist/components/graphs/bar-chart/BarChart.svelte.d.ts +1 -1
  20. package/dist/components/graphs/bar-chart/StackedBarChart.svelte +1 -2
  21. package/dist/components/graphs/bar-chart/StackedBarChart.svelte.d.ts +1 -1
  22. package/dist/components/graphs/chart/Chart.svelte +16 -7
  23. package/dist/components/graphs/chart/Chart.svelte.d.ts +1 -1
  24. package/dist/components/graphs/line/LineChart.stories.svelte +1 -1
  25. package/dist/components/graphs/line/LineChart.svelte +1 -2
  26. package/dist/components/graphs/line/types.d.ts +1 -1
  27. package/dist/components/graphs/multiline/MultiLineChart.stories.svelte +1 -1
  28. package/dist/components/graphs/multiline/MultiLineChart.svelte +7 -4
  29. package/dist/components/graphs/multiline/MultiLineChart.svelte.d.ts +1 -1
  30. package/dist/components/graphs/multiline/types.d.ts +1 -1
  31. package/dist/components/graphs/scatterplot/Scatterplot.svelte +52 -21
  32. package/dist/components/graphs/scatterplot/Scatterplot.svelte.d.ts +8 -2
  33. package/dist/components/graphs/utils/tooltipFormatter.d.ts +1 -1
  34. package/dist/components/icon-button/IconButton.stories.svelte +17 -49
  35. package/dist/components/icon-button/IconButton.svelte +9 -0
  36. package/dist/components/icon-button/IconButton.svelte.d.ts +1 -1
  37. package/dist/components/icons/AnalysisIcon.svelte +10 -6
  38. package/dist/components/icons/Icon.stories.svelte +19 -37
  39. package/dist/components/icons/Icon.svelte +46 -13
  40. package/dist/components/icons/Icon.svelte.d.ts +21 -2
  41. package/dist/components/icons/PrincipalIcon.svelte +25 -5
  42. package/dist/components/icons/PrincipalIcon.svelte.d.ts +2 -1
  43. package/dist/components/icons/index.d.ts +3 -10
  44. package/dist/components/icons/index.js +2 -251
  45. package/dist/components/input/Input.svelte +3 -2
  46. package/dist/components/legend/Legend.stories.svelte +13 -3
  47. package/dist/components/list/List.stories.svelte +12 -3
  48. package/dist/components/manual-cfu-counter/ManualCFUCounter.svelte +6 -3
  49. package/dist/components/modal/Modal.stories.svelte +6 -1
  50. package/dist/components/modal/components/modal-content.svelte +3 -2
  51. package/dist/components/multi-cfu-counter/MultiCFUCounter.svelte +8 -4
  52. package/dist/components/notification-popup/NotificationPopup.stories.svelte +7 -2
  53. package/dist/components/notification-popup/NotificationPopup.svelte +3 -2
  54. package/dist/components/notifications/Notifications.stories.svelte +11 -11
  55. package/dist/components/pill/Pill.svelte +3 -2
  56. package/dist/components/required-status-indicator/RequiredStatusIndicator.svelte +4 -3
  57. package/dist/components/segmented-control-buttons/SegmentedControlButtons.stories.svelte +59 -10
  58. package/dist/components/select/components/MultiSelectTrigger.svelte +4 -6
  59. package/dist/components/select/components/MultiSelectTrigger.svelte.d.ts +0 -2
  60. package/dist/components/select/components/SelectContent.svelte +5 -3
  61. package/dist/components/select/components/SelectItem.svelte +3 -2
  62. package/dist/components/select/components/SelectTrigger.svelte +3 -2
  63. package/dist/components/slider/Slider.svelte +3 -2
  64. package/dist/components/stat-card/StatCard.svelte +5 -3
  65. package/dist/components/status-badge/StatusBadge.stories.svelte +132 -26
  66. package/dist/components/stepper/components/stepper-step.svelte +3 -2
  67. package/dist/components/table/Table.stories.svelte +7 -2
  68. package/dist/components/tag/Tag.stories.svelte +7 -2
  69. package/dist/components/toast/Toast.svelte +26 -6
  70. package/dist/components/toggle-icon-button/ToggleIconButton.stories.svelte +112 -23
  71. package/dist/echarts-config.d.ts +5 -0
  72. package/dist/echarts-config.js +33 -0
  73. package/dist/index.d.ts +3 -0
  74. package/dist/index.js +3 -0
  75. package/dist/notifications.d.ts +6 -7
  76. package/dist/notifications.js +2 -1
  77. package/package.json +1 -1
@@ -1,6 +1,7 @@
1
1
  <script module>
2
+ import Sparkle from 'phosphor-svelte/lib/Sparkle';
3
+ import { Icon } from 'design-system';
2
4
  import NotificationPopup from './NotificationPopup.svelte';
3
- import { Icon } from '../icons';
4
5
  import { defineMeta } from '@storybook/addon-svelte-csf';
5
6
 
6
7
  const { Story } = defineMeta({
@@ -19,7 +20,11 @@
19
20
  <Story name="Primary" asChild>
20
21
  <NotificationPopup onClose={handleClick} title="See what's new" {visible}>
21
22
  <a href="_blank" color="transparent" class="flex items-center gap-2">
22
- <Icon iconName="Sparkle" />
23
+ <Icon>
24
+ {#snippet children(props)}
25
+ <Sparkle {...props} />
26
+ {/snippet}
27
+ </Icon>
23
28
  <p>Product updates</p>
24
29
  </a>
25
30
  </NotificationPopup>
@@ -1,8 +1,9 @@
1
1
  <script lang="ts">
2
+ import X from 'phosphor-svelte/lib/X';
3
+ import { Icon } from 'design-system';
2
4
  import { IconButton } from '../icon-button/';
3
5
  import { fade, fly } from 'svelte/transition';
4
6
  import type { Snippet } from 'svelte';
5
- import { Icon } from '../icons';
6
7
 
7
8
  interface Props {
8
9
  onClose: () => void;
@@ -27,7 +28,7 @@
27
28
  {@render children?.()}
28
29
  </div>
29
30
  <IconButton size="xs" variant="transparent" rounded={false} onclick={onClose}>
30
- <Icon iconName="X" />
31
+ <Icon icon={X} />
31
32
  </IconButton>
32
33
  </div>
33
34
  {/if}
@@ -46,30 +46,30 @@
46
46
  </div>
47
47
  <div class="grow"></div>
48
48
  <div class="flex flex-col gap-2">
49
- <h5>Icons</h5>
49
+ <h5>With Icons (Automatic)</h5>
50
50
  <Button
51
51
  onClick={() => {
52
- notifications.default('This is a default icon notification', 'Bell');
52
+ notifications.default('Default notification with bell icon');
53
53
  }}>Show default</Button
54
54
  >
55
55
  <Button
56
56
  onClick={() => {
57
- notifications.danger('This is a danger icon notification', 'SealWarning');
57
+ notifications.danger('Danger notification with X icon');
58
58
  }}>Show danger</Button
59
59
  >
60
60
  <Button
61
61
  onClick={() => {
62
- notifications.warning('This is a warning icon notification', 'Warning');
62
+ notifications.warning('Warning notification with warning icon');
63
63
  }}>Show warning</Button
64
64
  >
65
65
  <Button
66
66
  onClick={() => {
67
- notifications.info('This is an info icon notification', 'Info');
67
+ notifications.info('Info notification with info icon');
68
68
  }}>Show info</Button
69
69
  >
70
70
  <Button
71
71
  onClick={() => {
72
- notifications.success('This is a success icon notification', 'Check');
72
+ notifications.success('Success notification with check icon');
73
73
  }}>Show success</Button
74
74
  >
75
75
  </div>
@@ -78,27 +78,27 @@
78
78
  <h5>Dismissable</h5>
79
79
  <Button
80
80
  onClick={() => {
81
- notifications.default('This is a default icon notification', 'Bell', true);
81
+ notifications.default('Dismissable default notification', undefined, true);
82
82
  }}>Show default</Button
83
83
  >
84
84
  <Button
85
85
  onClick={() => {
86
- notifications.danger('This is a danger icon notification', 'SealWarning', true);
86
+ notifications.danger('Dismissable danger notification', undefined, true);
87
87
  }}>Show danger</Button
88
88
  >
89
89
  <Button
90
90
  onClick={() => {
91
- notifications.warning('This is a warning icon notification', 'Warning', true);
91
+ notifications.warning('Dismissable warning notification', undefined, true);
92
92
  }}>Show warning</Button
93
93
  >
94
94
  <Button
95
95
  onClick={() => {
96
- notifications.info('This is an info icon notification', 'Info', true);
96
+ notifications.info('Dismissable info notification', undefined, true);
97
97
  }}>Show info</Button
98
98
  >
99
99
  <Button
100
100
  onClick={() => {
101
- notifications.success('This is a success icon notification', 'Check', true);
101
+ notifications.success('Dismissable success notification', undefined, true);
102
102
  }}>Show success</Button
103
103
  >
104
104
  </div>
@@ -1,5 +1,6 @@
1
1
  <script lang="ts">
2
- import { Icon } from '../icons';
2
+ import X from 'phosphor-svelte/lib/X';
3
+ import { Icon } from 'design-system';
3
4
 
4
5
  interface Props {
5
6
  class?: string;
@@ -14,7 +15,7 @@
14
15
 
15
16
  <button class="{className} " {onclick} {type} data-testid={testID}>
16
17
  {text}
17
- <Icon iconName="X" class="opacity-50" />
18
+ <Icon class="opacity-50" icon={X} />
18
19
  </button>
19
20
 
20
21
  <style>
@@ -1,5 +1,6 @@
1
1
  <script lang="ts">
2
- import { Icon } from '../icons';
2
+ import CheckCircle from 'phosphor-svelte/lib/CheckCircle';
3
+ import { Icon } from 'design-system';
3
4
 
4
5
  type Props = {
5
6
  currentCount: number;
@@ -15,8 +16,8 @@
15
16
  <span class={`flex items-center gap-1 text-sm text-tertiary ${className}`}>
16
17
  {currentCount} of {requiredCount} required
17
18
  {#if isComplete}
18
- <Icon iconName="CheckCircle" weight="fill" color="accent" size={16} />
19
+ <Icon weight="fill" color="accent" size={16} icon={CheckCircle} />
19
20
  {:else}
20
- <Icon iconName="CheckCircle" size={16} />
21
+ <Icon size={16} icon={CheckCircle} />
21
22
  {/if}
22
23
  </span>
@@ -1,5 +1,6 @@
1
1
  <script module lang="ts">
2
- import { Icon } from '../icons';
2
+ import Star from 'phosphor-svelte/lib/Star';
3
+ import { Icon } from 'design-system';
3
4
  import SegmentedControlButtons from './SegmentedControlButtons.svelte';
4
5
  import { defineMeta } from '@storybook/addon-svelte-csf';
5
6
 
@@ -13,18 +14,54 @@
13
14
  <Story name="Primary" asChild>
14
15
  <SegmentedControlButtons class="w-[350px]">
15
16
  {#snippet children({ ControlButton })}
16
- <ControlButton active><Icon iconName="Star" /> Low</ControlButton>
17
- <ControlButton><Icon iconName="Star" /> Medium</ControlButton>
18
- <ControlButton disabled><Icon iconName="Star" /> High</ControlButton>
17
+ <ControlButton active
18
+ ><Icon>
19
+ {#snippet children(props)}
20
+ <Star {...props} />
21
+ {/snippet}
22
+ </Icon> Low</ControlButton
23
+ >
24
+ <ControlButton
25
+ ><Icon>
26
+ {#snippet children(props)}
27
+ <Star {...props} />
28
+ {/snippet}
29
+ </Icon> Medium</ControlButton
30
+ >
31
+ <ControlButton disabled
32
+ ><Icon>
33
+ {#snippet children(props)}
34
+ <Star {...props} />
35
+ {/snippet}
36
+ </Icon> High</ControlButton
37
+ >
19
38
  {/snippet}
20
39
  </SegmentedControlButtons>
21
40
  </Story>
22
41
  <Story name="Large" asChild>
23
42
  <SegmentedControlButtons size="lg" class="w-[350px]">
24
43
  {#snippet children({ ControlButton })}
25
- <ControlButton active><Icon iconName="Star" /> Low</ControlButton>
26
- <ControlButton><Icon iconName="Star" /> Medium</ControlButton>
27
- <ControlButton disabled><Icon iconName="Star" /> High</ControlButton>
44
+ <ControlButton active
45
+ ><Icon>
46
+ {#snippet children(props)}
47
+ <Star {...props} />
48
+ {/snippet}
49
+ </Icon> Low</ControlButton
50
+ >
51
+ <ControlButton
52
+ ><Icon>
53
+ {#snippet children(props)}
54
+ <Star {...props} />
55
+ {/snippet}
56
+ </Icon> Medium</ControlButton
57
+ >
58
+ <ControlButton disabled
59
+ ><Icon>
60
+ {#snippet children(props)}
61
+ <Star {...props} />
62
+ {/snippet}
63
+ </Icon> High</ControlButton
64
+ >
28
65
  {/snippet}
29
66
  </SegmentedControlButtons>
30
67
  </Story>
@@ -32,13 +69,25 @@
32
69
  <SegmentedControlButtons class="w-[350px]">
33
70
  {#snippet children({ ControlButton })}
34
71
  <ControlButton active color="secondary">
35
- <Icon iconName="Star" /> Low
72
+ <Icon>
73
+ {#snippet children(props)}
74
+ <Star {...props} />
75
+ {/snippet}
76
+ </Icon> Low
36
77
  </ControlButton>
37
78
  <ControlButton color="secondary">
38
- <Icon iconName="Star" /> Medium
79
+ <Icon>
80
+ {#snippet children(props)}
81
+ <Star {...props} />
82
+ {/snippet}
83
+ </Icon> Medium
39
84
  </ControlButton>
40
85
  <ControlButton color="secondary">
41
- <Icon iconName="Star" /> High
86
+ <Icon>
87
+ {#snippet children(props)}
88
+ <Star {...props} />
89
+ {/snippet}
90
+ </Icon> High
42
91
  </ControlButton>
43
92
  {/snippet}
44
93
  </SegmentedControlButtons>
@@ -1,12 +1,12 @@
1
1
  <script lang="ts">
2
+ import X from 'phosphor-svelte/lib/X';
3
+ import Icon from '../../icons/Icon.svelte';
2
4
  import * as Select from '../index';
3
- import { Icon, type IconName } from '../../icons';
4
5
  import IconButton from '../../icon-button/IconButton.svelte';
5
6
 
6
7
  type ItemType = {
7
8
  value: string;
8
9
  label: string;
9
- iconName?: IconName | string;
10
10
  disabled?: boolean;
11
11
  };
12
12
 
@@ -45,9 +45,7 @@
45
45
  class="flex h-7 w-fit items-center gap-1 rounded-md bg-neutral py-0.5 pl-2 pr-0.5 text-sm"
46
46
  aria-label={`Selected item ${item.label}`}
47
47
  >
48
- {#if item.iconName}
49
- <Icon iconName={item.iconName as IconName} color="secondary" />
50
- {/if}
48
+ <!-- Icons not currently supported in multi-select items -->
51
49
  <span class:text-secondary={item.disabled}>{item.label}</span>
52
50
  {#if !item.disabled}
53
51
  <IconButton
@@ -59,7 +57,7 @@
59
57
  rounded={false}
60
58
  class="text-primary focus:outline-none"
61
59
  >
62
- <Icon iconName="X" color="tertiary" />
60
+ <Icon color="tertiary" icon={X} />
63
61
  </IconButton>
64
62
  {/if}
65
63
  </div>
@@ -1,8 +1,6 @@
1
- import { type IconName } from '../../icons';
2
1
  type ItemType = {
3
2
  value: string;
4
3
  label: string;
5
- iconName?: IconName | string;
6
4
  disabled?: boolean;
7
5
  };
8
6
  interface Props {
@@ -1,9 +1,11 @@
1
1
  <script lang="ts">
2
+ import CaretUp from 'phosphor-svelte/lib/CaretUp';
3
+ import CaretDown from 'phosphor-svelte/lib/CaretDown';
4
+ import { Icon } from 'design-system';
2
5
  import { Select as SelectPrimitive } from 'bits-ui';
3
6
  import type { ContentProps } from '../types';
4
7
 
5
8
  import type { Snippet } from 'svelte';
6
- import Icon from '../../icons/Icon.svelte';
7
9
 
8
10
  interface Props extends ContentProps {
9
11
  children: Snippet;
@@ -21,13 +23,13 @@
21
23
  <SelectPrimitive.Portal>
22
24
  <SelectPrimitive.Content {...restProps} {sideOffset} class={baseClasses + ' ' + className}>
23
25
  <SelectPrimitive.ScrollUpButton class="flex justify-center">
24
- <Icon iconName="CaretUp" color="tertiary" />
26
+ <Icon color="tertiary" icon={CaretUp} />
25
27
  </SelectPrimitive.ScrollUpButton>
26
28
  <SelectPrimitive.Viewport class="p-1 ">
27
29
  {@render children()}
28
30
  </SelectPrimitive.Viewport>
29
31
  <SelectPrimitive.ScrollDownButton class="flex justify-center">
30
- <Icon iconName="CaretDown" color="tertiary" />
32
+ <Icon color="tertiary" icon={CaretDown} />
31
33
  </SelectPrimitive.ScrollDownButton>
32
34
  </SelectPrimitive.Content>
33
35
  </SelectPrimitive.Portal>
@@ -1,9 +1,10 @@
1
1
  <script lang="ts">
2
+ import Check from 'phosphor-svelte/lib/Check';
3
+ import { Icon } from 'design-system';
2
4
  import { Select as SelectPrimitive } from 'bits-ui';
3
5
  import type { ItemProps, ItemSlotProps } from '../types';
4
6
 
5
7
  import type { Snippet } from 'svelte';
6
- import Icon from '../../icons/Icon.svelte';
7
8
 
8
9
  interface Props extends ItemProps {
9
10
  children?: Snippet<[ItemSlotProps]>;
@@ -33,7 +34,7 @@
33
34
  >
34
35
  {/if}
35
36
  {#if params.selected}
36
- <Icon iconName="Check" color="accent" />
37
+ <Icon color="accent" icon={Check} />
37
38
  {/if}
38
39
  {/snippet}
39
40
  </SelectPrimitive.Item>
@@ -1,9 +1,10 @@
1
1
  <script lang="ts">
2
+ import CaretDown from 'phosphor-svelte/lib/CaretDown';
3
+ import { Icon } from 'design-system';
2
4
  import { Select as SelectPrimitive } from 'bits-ui';
3
5
  import type { TriggerProps, IconSnippet } from '../types';
4
6
 
5
7
  import type { Snippet } from 'svelte';
6
- import { Icon } from '../../icons';
7
8
 
8
9
  interface Props extends TriggerProps {
9
10
  TriggerIcon?: IconSnippet;
@@ -43,6 +44,6 @@
43
44
  {#if TriggerIcon}
44
45
  {@render TriggerIcon()}
45
46
  {:else}
46
- <Icon iconName="CaretDown" color="secondary" class="mx-1 shrink-0" />
47
+ <Icon color="secondary" class="mx-1 shrink-0" icon={CaretDown} />
47
48
  {/if}
48
49
  </SelectPrimitive.Trigger>
@@ -1,5 +1,6 @@
1
1
  <script lang="ts">
2
- import { Icon } from '../icons';
2
+ import CaretUpDown from 'phosphor-svelte/lib/CaretUpDown';
3
+ import { Icon } from 'design-system';
3
4
 
4
5
  let className = '';
5
6
  export { className as class };
@@ -66,7 +67,7 @@
66
67
  {disabled}
67
68
  />
68
69
  <div class="thumb-overlay" style="left: {calculatePosition(value)} + 0.5rem)">
69
- <Icon iconName="CaretUpDown" class="rotate-90" />
70
+ <Icon class="rotate-90" icon={CaretUpDown} />
70
71
  </div>
71
72
  </div>
72
73
 
@@ -1,6 +1,8 @@
1
1
  <script lang="ts">
2
+ import Info from 'phosphor-svelte/lib/Info';
3
+ import PencilSimple from 'phosphor-svelte/lib/PencilSimple';
4
+ import { Icon } from 'design-system';
2
5
  import IconButton from '../icon-button/IconButton.svelte';
3
- import { Icon } from '../icons';
4
6
  import Spinner from '../spinner/Spinner.svelte';
5
7
  import Tooltip from '../tooltip/Tooltip.svelte';
6
8
  import { Input } from '../input';
@@ -117,7 +119,7 @@
117
119
  {#if titleTooltip && showTitleTooltip}
118
120
  <Tooltip>
119
121
  {#snippet trigger()}
120
- <Icon iconName="Info" color="icon-tertiary" />
122
+ <Icon color="icon-tertiary" icon={Info} />
121
123
  {/snippet}
122
124
  {#snippet content()}
123
125
  <span>
@@ -156,7 +158,7 @@
156
158
  </div>
157
159
  {#if editable}
158
160
  <IconButton onclick={(e) => startEditing(e)} rounded={false}>
159
- <Icon iconName="PencilSimple" />
161
+ <Icon icon={PencilSimple} />
160
162
  </IconButton>
161
163
  {/if}
162
164
  {/if}