@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.
- package/dist/components/activity/Activity.svelte +3 -3
- package/dist/components/avatar/Avatar.svelte +1 -1
- package/dist/components/dropdown/Dropdown.stories.svelte +188 -8
- package/dist/components/dropdown/components/dropdown-item.svelte +14 -6
- package/dist/components/dropdown/components/dropdown-sub-content.svelte +20 -0
- package/dist/components/dropdown/components/dropdown-sub-content.svelte.d.ts +4 -0
- package/dist/components/dropdown/components/dropdown-sub-trigger.svelte +32 -0
- package/dist/components/dropdown/components/dropdown-sub-trigger.svelte.d.ts +4 -0
- package/dist/components/dropdown/components/dropdown-trigger.svelte +3 -3
- package/dist/components/dropdown/index.d.ts +5 -3
- package/dist/components/dropdown/index.js +7 -5
- package/dist/components/dropdown/types.d.ts +21 -3
- package/dist/components/status-badge/StatusBadge.svelte +5 -0
- package/dist/echarts-config.js +2 -1
- package/package.json +1 -1
|
@@ -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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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,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>
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
let {
|
|
7
7
|
children,
|
|
8
|
-
|
|
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
|
|
19
|
-
{@render
|
|
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
|
|
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
|
|
19
|
+
// Export raw components for advanced use cases
|
|
20
20
|
export const RawContent = DropdownMenu.Content;
|
|
21
|
-
|
|
22
|
-
export
|
|
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
|
-
|
|
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
|
|
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))
|
package/dist/echarts-config.js
CHANGED
|
@@ -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,
|