@reshape-biotech/design-system 2.7.25 → 2.7.27

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.
@@ -56,15 +56,15 @@
56
56
 
57
57
  <div class={`group flex items-stretch gap-3 ${className}`}>
58
58
  <div class="flex min-h-12 flex-col items-center gap-1.5">
59
- <div class="w-0.5 grow bg-neutral group-first:invisible"></div>
59
+ <div class="bg-neutral w-0.5 grow group-first:invisible"></div>
60
60
  <div
61
- class="flex h-5 w-5 shrink-0 items-center justify-center rounded p-0.5 text-secondary {ACTIVITY_BACKGROUND[
61
+ class="text-secondary flex h-5 w-5 shrink-0 items-center justify-center rounded p-0.5 {ACTIVITY_BACKGROUND[
62
62
  activity.icon
63
63
  ]}"
64
64
  >
65
65
  <ActivityIcon icon={activity.icon} />
66
66
  </div>
67
- <div class="w-0.5 grow bg-neutral group-last:invisible"></div>
67
+ <div class="bg-neutral w-0.5 grow group-last:invisible"></div>
68
68
  </div>
69
69
  <div class="flex items-center py-4">
70
70
  <div class="text-secondary">
@@ -43,7 +43,7 @@
43
43
 
44
44
  {#snippet avatar()}
45
45
  <div
46
- class="{sizeClassName} flex items-center justify-center rounded-full border border-static bg-accent text-accent"
46
+ class="{sizeClassName} border-static bg-accent text-accent flex items-center justify-center rounded-full border"
47
47
  >
48
48
  {initials}
49
49
  </div>
@@ -19,10 +19,10 @@
19
19
  <Dropdown.Trigger>Dropdown</Dropdown.Trigger>
20
20
  <Dropdown.Portal>
21
21
  <Dropdown.Content>
22
- <Dropdown.Item>
22
+ <Dropdown.Item onSelect={() => console.log('Clicked: 1st item')}>
23
23
  <p>1st item</p>
24
24
  </Dropdown.Item>
25
- <Dropdown.Item>
25
+ <Dropdown.Item onSelect={() => console.log('Clicked: 2nd item')}>
26
26
  <p>2nd item</p>
27
27
  </Dropdown.Item>
28
28
  </Dropdown.Content>
@@ -259,7 +259,7 @@
259
259
  <div class="py-12">
260
260
  <Dropdown.Root open>
261
261
  <Dropdown.Trigger>
262
- {#snippet customChild({ props })}
262
+ {#snippet child({ props }: { props: Record<string, any> })}
263
263
  <button
264
264
  {...props}
265
265
  class="flex items-center gap-2 rounded-full bg-gradient-to-r from-purple-500 to-pink-500 px-6 py-3 text-white hover:from-purple-600 hover:to-pink-600"
@@ -271,10 +271,10 @@
271
271
  </Dropdown.Trigger>
272
272
  <Dropdown.Portal>
273
273
  <Dropdown.Content>
274
- <Dropdown.Item>
274
+ <Dropdown.Item onSelect={() => console.log('Clicked: 1st item (custom trigger)')}>
275
275
  <p>1st item</p>
276
276
  </Dropdown.Item>
277
- <Dropdown.Item>
277
+ <Dropdown.Item onSelect={() => console.log('Clicked: 2nd item (custom trigger)')}>
278
278
  <p>2nd item</p>
279
279
  </Dropdown.Item>
280
280
  </Dropdown.Content>
@@ -283,6 +283,186 @@
283
283
  </div>
284
284
  </Story>
285
285
 
286
+ <Story name="Submenu (Right)">
287
+ <div class="py-12">
288
+ <Dropdown.Root open>
289
+ <Dropdown.Trigger>Menu with Submenu</Dropdown.Trigger>
290
+ <Dropdown.Portal>
291
+ <Dropdown.Content matchTriggerWidth>
292
+ <Dropdown.Item onSelect={() => console.log('Clicked: First item')}>
293
+ <p>First item</p>
294
+ </Dropdown.Item>
295
+ <Dropdown.Sub open>
296
+ <Dropdown.SubTrigger side="right">
297
+ <p>More options</p>
298
+ </Dropdown.SubTrigger>
299
+ <Dropdown.SubContent side="right">
300
+ <Dropdown.Item onSelect={() => console.log('Clicked: Sub item 1')}>
301
+ <p>Sub item 1</p>
302
+ </Dropdown.Item>
303
+ <Dropdown.Item onSelect={() => console.log('Clicked: Sub item 2')}>
304
+ <p>Sub item 2</p>
305
+ </Dropdown.Item>
306
+ <Dropdown.Item onSelect={() => console.log('Clicked: Sub item 3')}>
307
+ <p>Sub item 3</p>
308
+ </Dropdown.Item>
309
+ </Dropdown.SubContent>
310
+ </Dropdown.Sub>
311
+ <Dropdown.Item onSelect={() => console.log('Clicked: Last item')}>
312
+ <p>Last item</p>
313
+ </Dropdown.Item>
314
+ </Dropdown.Content>
315
+ </Dropdown.Portal>
316
+ </Dropdown.Root>
317
+ </div>
318
+ </Story>
319
+
320
+ <Story name="Submenu (Left)">
321
+ <div class="flex min-h-[300px] items-center justify-end py-12 pr-12">
322
+ <Dropdown.Root open>
323
+ <Dropdown.Trigger>Menu with Left Submenu</Dropdown.Trigger>
324
+ <Dropdown.Portal>
325
+ <Dropdown.Content>
326
+ <Dropdown.Item onSelect={() => console.log('Clicked: First item (left menu)')}>
327
+ <p>First item</p>
328
+ </Dropdown.Item>
329
+ <Dropdown.Sub open>
330
+ <Dropdown.SubTrigger side="left">
331
+ <p>More options</p>
332
+ </Dropdown.SubTrigger>
333
+ <Dropdown.SubContent side="left">
334
+ <Dropdown.Item onSelect={() => console.log('Clicked: Sub item 1 (left submenu)')}>
335
+ <p>Sub item 1</p>
336
+ </Dropdown.Item>
337
+ <Dropdown.Item onSelect={() => console.log('Clicked: Sub item 2 (left submenu)')}>
338
+ <p>Sub item 2</p>
339
+ </Dropdown.Item>
340
+ <Dropdown.Item onSelect={() => console.log('Clicked: Sub item 3 (left submenu)')}>
341
+ <p>Sub item 3</p>
342
+ </Dropdown.Item>
343
+ </Dropdown.SubContent>
344
+ </Dropdown.Sub>
345
+ <Dropdown.Item onSelect={() => console.log('Clicked: Last item (left menu)')}>
346
+ <p>Last item</p>
347
+ </Dropdown.Item>
348
+ </Dropdown.Content>
349
+ </Dropdown.Portal>
350
+ </Dropdown.Root>
351
+ </div>
352
+ </Story>
353
+
354
+ <Story name="Nested Submenus">
355
+ <div class="py-12">
356
+ <Dropdown.Root open>
357
+ <Dropdown.Trigger>Nested Menu</Dropdown.Trigger>
358
+ <Dropdown.Portal>
359
+ <Dropdown.Content>
360
+ <Dropdown.Item>
361
+ <p>First item</p>
362
+ </Dropdown.Item>
363
+ <Dropdown.Sub>
364
+ <Dropdown.SubTrigger>
365
+ <p>Settings</p>
366
+ </Dropdown.SubTrigger>
367
+ <Dropdown.SubContent>
368
+ <Dropdown.Item>
369
+ <p>Profile</p>
370
+ </Dropdown.Item>
371
+ <Dropdown.Sub>
372
+ <Dropdown.SubTrigger>
373
+ <p>Preferences</p>
374
+ </Dropdown.SubTrigger>
375
+ <Dropdown.SubContent>
376
+ <Dropdown.Item>
377
+ <p>Theme</p>
378
+ </Dropdown.Item>
379
+ <Dropdown.Item>
380
+ <p>Language</p>
381
+ </Dropdown.Item>
382
+ <Dropdown.Item>
383
+ <p>Notifications</p>
384
+ </Dropdown.Item>
385
+ </Dropdown.SubContent>
386
+ </Dropdown.Sub>
387
+ <Dropdown.Item>
388
+ <p>Security</p>
389
+ </Dropdown.Item>
390
+ </Dropdown.SubContent>
391
+ </Dropdown.Sub>
392
+ <Dropdown.Item>
393
+ <p>Help</p>
394
+ </Dropdown.Item>
395
+ </Dropdown.Content>
396
+ </Dropdown.Portal>
397
+ </Dropdown.Root>
398
+ </div>
399
+ </Story>
400
+
401
+ <Story name="Submenu with Secondary Variant">
402
+ <div class="py-12">
403
+ <Dropdown.Root open>
404
+ <Dropdown.Trigger variant="secondary">Styled Submenu</Dropdown.Trigger>
405
+ <Dropdown.Portal>
406
+ <Dropdown.Content variant="secondary">
407
+ <Dropdown.Item>
408
+ <p>First item</p>
409
+ </Dropdown.Item>
410
+ <Dropdown.Sub>
411
+ <Dropdown.SubTrigger>
412
+ <p>More options</p>
413
+ </Dropdown.SubTrigger>
414
+ <Dropdown.SubContent variant="secondary">
415
+ <Dropdown.Item>
416
+ <p>Sub item 1</p>
417
+ </Dropdown.Item>
418
+ <Dropdown.Item>
419
+ <p>Sub item 2</p>
420
+ </Dropdown.Item>
421
+ </Dropdown.SubContent>
422
+ </Dropdown.Sub>
423
+ <Dropdown.Item>
424
+ <p>Last item</p>
425
+ </Dropdown.Item>
426
+ </Dropdown.Content>
427
+ </Dropdown.Portal>
428
+ </Dropdown.Root>
429
+ </div>
430
+ </Story>
431
+
432
+ <Story name="Submenu without Chevron">
433
+ <div class="py-12">
434
+ <Dropdown.Root open>
435
+ <Dropdown.Trigger>Menu without Chevron</Dropdown.Trigger>
436
+ <Dropdown.Portal>
437
+ <Dropdown.Content>
438
+ <Dropdown.Item>
439
+ <p>First item</p>
440
+ </Dropdown.Item>
441
+ <Dropdown.Sub open>
442
+ <Dropdown.SubTrigger hideChevron>
443
+ <p>More options (no chevron)</p>
444
+ </Dropdown.SubTrigger>
445
+ <Dropdown.SubContent>
446
+ <Dropdown.Item>
447
+ <p>Sub item 1</p>
448
+ </Dropdown.Item>
449
+ <Dropdown.Item>
450
+ <p>Sub item 2</p>
451
+ </Dropdown.Item>
452
+ <Dropdown.Item>
453
+ <p>Sub item 3</p>
454
+ </Dropdown.Item>
455
+ </Dropdown.SubContent>
456
+ </Dropdown.Sub>
457
+ <Dropdown.Item>
458
+ <p>Last item</p>
459
+ </Dropdown.Item>
460
+ </Dropdown.Content>
461
+ </Dropdown.Portal>
462
+ </Dropdown.Root>
463
+ </div>
464
+ </Story>
465
+
286
466
  <Story
287
467
  name="Interaction Test"
288
468
  asChild
@@ -316,21 +496,21 @@
316
496
  <Dropdown.Portal>
317
497
  <Dropdown.Content>
318
498
  <Dropdown.Item
319
- onclick={() => {
499
+ onSelect={() => {
320
500
  selectedOption = 'Option 1';
321
501
  }}
322
502
  >
323
503
  <p>Option 1</p>
324
504
  </Dropdown.Item>
325
505
  <Dropdown.Item
326
- onclick={() => {
506
+ onSelect={() => {
327
507
  selectedOption = 'Option 2';
328
508
  }}
329
509
  >
330
510
  <p>Option 2</p>
331
511
  </Dropdown.Item>
332
512
  <Dropdown.Item
333
- onclick={() => {
513
+ onSelect={() => {
334
514
  selectedOption = 'Option 3';
335
515
  }}
336
516
  >
@@ -2,12 +2,20 @@
2
2
  import { DropdownMenu } from 'bits-ui';
3
3
  import type { DropdownItemProps } from '../types';
4
4
 
5
- let { children, class: className = '', ...restProps }: DropdownItemProps = $props();
5
+ let { children, child: userChild, class: className = '', onSelect, ...restProps }: DropdownItemProps = $props();
6
6
  </script>
7
7
 
8
- <DropdownMenu.Item
9
- class="cursor-pointer rounded-lg px-2 py-1.5 text-sm outline-none transition-colors hover:bg-neutral-hover focus:bg-neutral-hover data-[disabled]:pointer-events-none data-[disabled]:opacity-50 {className}"
10
- {...restProps}
11
- >
12
- {@render children()}
8
+ <DropdownMenu.Item onSelect={onSelect} {...restProps}>
9
+ {#snippet child({ props }: { props: Record<string, any> })}
10
+ {#if userChild}
11
+ {@render userChild({ props })}
12
+ {:else}
13
+ <div
14
+ {...props}
15
+ class="h-8 cursor-pointer rounded-lg px-2 py-1.5 text-sm outline-none transition-colors hover:bg-neutral-hover focus:bg-neutral-hover data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_a]:no-underline {className}"
16
+ >
17
+ {@render children?.()}
18
+ </div>
19
+ {/if}
20
+ {/snippet}
13
21
  </DropdownMenu.Item>
@@ -0,0 +1,20 @@
1
+ <script lang="ts">
2
+ import { DropdownMenu } from 'bits-ui';
3
+ import type { DropdownSubContentProps } from '../types';
4
+
5
+ let { children, class: className = '', variant = 'primary', ...restProps }: DropdownSubContentProps = $props();
6
+
7
+ const variantClasses: Record<string, string> = {
8
+ primary: 'bg-surface text-primary',
9
+ secondary: 'bg-base-inverse text-primary-inverse',
10
+ };
11
+
12
+ let variantClass = $derived(variantClasses[variant]);
13
+ </script>
14
+
15
+ <DropdownMenu.SubContent
16
+ class="z-10 rounded-md p-1 shadow-menu {variantClass} {className}"
17
+ {...restProps}
18
+ >
19
+ {@render children()}
20
+ </DropdownMenu.SubContent>
@@ -0,0 +1,4 @@
1
+ import type { DropdownSubContentProps } from '../types';
2
+ declare const DropdownSubContent: import("svelte").Component<DropdownSubContentProps, {}, "">;
3
+ type DropdownSubContent = ReturnType<typeof DropdownSubContent>;
4
+ export default DropdownSubContent;
@@ -0,0 +1,32 @@
1
+ <script lang="ts">
2
+ import { DropdownMenu } from 'bits-ui';
3
+ import CaretRight from 'phosphor-svelte/lib/CaretRight';
4
+ import CaretLeft from 'phosphor-svelte/lib/CaretLeft';
5
+ import { Icon } from '../../icons/index.js';
6
+ import type { DropdownSubTriggerProps } from '../types';
7
+
8
+ let { children, child: userChild, class: className = '', side = 'right', hideChevron = false, ...restProps }: DropdownSubTriggerProps = $props();
9
+
10
+ let chevronIcon = $derived(side === 'left' ? CaretLeft : CaretRight);
11
+ </script>
12
+
13
+ <DropdownMenu.SubTrigger {...restProps}>
14
+ {#snippet child({ props }: { props: Record<string, any> })}
15
+ {#if userChild}
16
+ {@render userChild({ props })}
17
+ {:else}
18
+ <div
19
+ {...props}
20
+ class="flex h-8 cursor-pointer items-center justify-between gap-2 rounded-lg px-2 py-1.5 text-sm outline-none transition-colors hover:bg-neutral-hover focus:bg-neutral-hover data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_a]:no-underline {className}"
21
+ >
22
+ {#if !hideChevron && side === 'left'}
23
+ <Icon color="tertiary" icon={chevronIcon} size={16} />
24
+ {/if}
25
+ {@render children?.()}
26
+ {#if !hideChevron && side === 'right'}
27
+ <Icon color="tertiary" icon={chevronIcon} size={16} />
28
+ {/if}
29
+ </div>
30
+ {/if}
31
+ {/snippet}
32
+ </DropdownMenu.SubTrigger>
@@ -0,0 +1,4 @@
1
+ import type { DropdownSubTriggerProps } from '../types';
2
+ declare const DropdownSubTrigger: import("svelte").Component<DropdownSubTriggerProps, {}, "">;
3
+ type DropdownSubTrigger = ReturnType<typeof DropdownSubTrigger>;
4
+ export default DropdownSubTrigger;
@@ -5,7 +5,7 @@
5
5
 
6
6
  let {
7
7
  children,
8
- customChild,
8
+ child: userChild,
9
9
  class: className = '',
10
10
  variant = 'primary',
11
11
  size = 'md',
@@ -15,8 +15,8 @@
15
15
 
16
16
  <DropdownMenu.Trigger {...restProps}>
17
17
  {#snippet child({ props }: { props: Record<string, any> })}
18
- {#if customChild}
19
- {@render customChild({ props })}
18
+ {#if userChild}
19
+ {@render userChild({ props })}
20
20
  {:else}
21
21
  <Button {...props} {variant} {size} class={className}>
22
22
  {@render children?.()}
@@ -3,6 +3,8 @@ import Content from './components/dropdown-content.svelte';
3
3
  import Item from './components/dropdown-item.svelte';
4
4
  import Trigger from './components/dropdown-trigger.svelte';
5
5
  import FieldTrigger from './components/dropdown-field-trigger.svelte';
6
+ import SubTrigger from './components/dropdown-sub-trigger.svelte';
7
+ import SubContent from './components/dropdown-sub-content.svelte';
6
8
  export declare const Root: import("svelte").Component<{
7
9
  open?: boolean;
8
10
  onOpenChange?: import("bits-ui/dist/internal/types").OnChangeFn<boolean>;
@@ -15,13 +17,13 @@ export declare const Root: import("svelte").Component<{
15
17
  export declare const Portal: import("svelte").Component<import("bits-ui").PortalProps, {}, "">;
16
18
  export declare const Group: import("svelte").Component<DropdownMenu.GroupProps, {}, "ref">;
17
19
  export declare const Sub: import("svelte").Component<import("bits-ui").ContextMenuSubPropsWithoutHTML, {}, "open">;
18
- export declare const SubTrigger: import("svelte").Component<DropdownMenu.SubTriggerProps, {}, "ref">;
19
- export declare const SubContent: import("svelte").Component<DropdownMenu.SubContentProps, {}, "ref">;
20
20
  export declare const RadioGroup: import("svelte").Component<DropdownMenu.RadioGroupProps, {}, "value" | "ref">;
21
21
  export declare const RadioItem: import("svelte").Component<DropdownMenu.RadioItemProps, {}, "ref">;
22
22
  export declare const CheckboxItem: import("svelte").Component<DropdownMenu.CheckboxItemProps, {}, "ref" | "checked" | "indeterminate">;
23
23
  export declare const Separator: import("svelte").Component<DropdownMenu.SeparatorProps, {}, "ref">;
24
24
  export declare const Arrow: import("svelte").Component<import("bits-ui/dist/bits/utilities/arrow").ArrowProps, {}, "ref">;
25
25
  export declare const RawContent: import("svelte").Component<DropdownMenu.ContentProps, {}, "ref">;
26
- export { Content, Item, Trigger, FieldTrigger };
26
+ export declare const RawSubTrigger: import("svelte").Component<DropdownMenu.SubTriggerProps, {}, "ref">;
27
+ export declare const RawSubContent: import("svelte").Component<DropdownMenu.SubContentProps, {}, "ref">;
28
+ export { Content, Item, Trigger, FieldTrigger, SubTrigger, SubContent };
27
29
  export * from './types';
@@ -4,20 +4,22 @@ import Content from './components/dropdown-content.svelte';
4
4
  import Item from './components/dropdown-item.svelte';
5
5
  import Trigger from './components/dropdown-trigger.svelte';
6
6
  import FieldTrigger from './components/dropdown-field-trigger.svelte';
7
+ import SubTrigger from './components/dropdown-sub-trigger.svelte';
8
+ import SubContent from './components/dropdown-sub-content.svelte';
7
9
  // Re-export DropdownMenu primitives
8
10
  export const Root = DropdownMenu.Root;
9
11
  export const Portal = DropdownMenu.Portal;
10
12
  export const Group = DropdownMenu.Group;
11
13
  export const Sub = DropdownMenu.Sub;
12
- export const SubTrigger = DropdownMenu.SubTrigger;
13
- export const SubContent = DropdownMenu.SubContent;
14
14
  export const RadioGroup = DropdownMenu.RadioGroup;
15
15
  export const RadioItem = DropdownMenu.RadioItem;
16
16
  export const CheckboxItem = DropdownMenu.CheckboxItem;
17
17
  export const Separator = DropdownMenu.Separator;
18
18
  export const Arrow = DropdownMenu.Arrow;
19
- // Export raw Content for components that already have their own styling (e.g., DatePicker)
19
+ // Export raw components for advanced use cases
20
20
  export const RawContent = DropdownMenu.Content;
21
- // Export custom components
22
- export { Content, Item, Trigger, FieldTrigger };
21
+ export const RawSubTrigger = DropdownMenu.SubTrigger;
22
+ export const RawSubContent = DropdownMenu.SubContent;
23
+ // Export custom styled components
24
+ export { Content, Item, Trigger, FieldTrigger, SubTrigger, SubContent };
23
25
  export * from './types';
@@ -1,10 +1,11 @@
1
- import { type DropdownMenuContentProps as BitsDropdownMenuContentProps, type DropdownMenuItemProps as BitsDropdownMenuItemProps, type DropdownMenuTriggerProps as BitsDropdownMenuTriggerProps } from 'bits-ui';
1
+ import { type DropdownMenuContentProps as BitsDropdownMenuContentProps, type DropdownMenuItemProps as BitsDropdownMenuItemProps, type DropdownMenuTriggerProps as BitsDropdownMenuTriggerProps, type DropdownMenuSubTriggerProps as BitsDropdownMenuSubTriggerProps, type DropdownMenuSubContentProps as BitsDropdownMenuSubContentProps } from 'bits-ui';
2
2
  import type { Snippet } from 'svelte';
3
3
  import type { ButtonVariant, ButtonSize } from '../button/Button.svelte';
4
4
  export type DropdownContentVariant = 'primary' | 'secondary';
5
+ export type DropdownSubMenuSide = 'left' | 'right';
5
6
  export type DropdownTriggerProps = {
6
7
  children?: Snippet;
7
- customChild?: Snippet<[{
8
+ child?: Snippet<[{
8
9
  props: Record<string, any>;
9
10
  }]>;
10
11
  class?: string;
@@ -22,6 +23,23 @@ export type DropdownContentProps = {
22
23
  matchTriggerWidth?: boolean;
23
24
  } & BitsDropdownMenuContentProps;
24
25
  export type DropdownItemProps = {
25
- children: Snippet;
26
+ children?: Snippet;
27
+ child?: Snippet<[{
28
+ props: Record<string, any>;
29
+ }]>;
26
30
  class?: string;
27
31
  } & BitsDropdownMenuItemProps;
32
+ export type DropdownSubTriggerProps = {
33
+ children?: Snippet;
34
+ child?: Snippet<[{
35
+ props: Record<string, any>;
36
+ }]>;
37
+ class?: string;
38
+ side?: DropdownSubMenuSide;
39
+ hideChevron?: boolean;
40
+ } & BitsDropdownMenuSubTriggerProps;
41
+ export type DropdownSubContentProps = {
42
+ children: Snippet;
43
+ class?: string;
44
+ variant?: DropdownContentVariant;
45
+ } & BitsDropdownMenuSubContentProps;
@@ -41,7 +41,12 @@
41
41
 
42
42
  <style>
43
43
  .badge {
44
+ display: inline-flex;
45
+ flex-direction: row;
46
+ align-items: center;
47
+ justify-content: center;
44
48
  gap: 0.5rem;
49
+ border-radius: 9999px;
45
50
  border-style: none;
46
51
  --tw-text-opacity: 1;
47
52
  color: rgb(18 25 42 / var(--tw-text-opacity, 1))
@@ -3,7 +3,7 @@
3
3
  // Core components (required)
4
4
  import * as echarts from 'echarts/core';
5
5
  // Charts we use
6
- import { CandlestickChart, LineChart } from 'echarts/charts';
6
+ import { BoxplotChart, CandlestickChart, LineChart } from 'echarts/charts';
7
7
  import { BarChart } from 'echarts/charts';
8
8
  import { ScatterChart } from 'echarts/charts';
9
9
  import { CustomChart } from 'echarts/charts';
@@ -19,6 +19,7 @@ echarts.use([
19
19
  ScatterChart,
20
20
  CustomChart,
21
21
  CandlestickChart,
22
+ BoxplotChart,
22
23
  // Components
23
24
  TooltipComponent,
24
25
  GridComponent,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reshape-biotech/design-system",
3
- "version": "2.7.25",
3
+ "version": "2.7.27",
4
4
  "scripts": {
5
5
  "dev": "vite dev",
6
6
  "build": "vite build",