@reshape-biotech/design-system 0.0.47 → 0.0.48
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/app.css +115 -0
- package/dist/components/activity/Activity.stories.svelte +100 -0
- package/dist/components/activity/Activity.stories.svelte.d.ts +19 -0
- package/dist/components/activity/Activity.svelte +80 -0
- package/dist/components/activity/Activity.svelte.d.ts +18 -0
- package/dist/components/activity/index.d.ts +1 -0
- package/dist/components/activity/index.js +1 -0
- package/dist/components/avatar/Avatar.svelte +63 -0
- package/dist/components/avatar/Avatar.svelte.d.ts +8 -0
- package/dist/components/avatar/index.d.ts +1 -0
- package/dist/components/avatar/index.js +1 -0
- package/dist/components/banner/Banner.stories.svelte +129 -0
- package/dist/components/banner/Banner.stories.svelte.d.ts +19 -0
- package/dist/components/banner/Banner.svelte +59 -0
- package/dist/components/banner/Banner.svelte.d.ts +11 -0
- package/dist/components/banner/index.d.ts +1 -0
- package/dist/components/banner/index.js +1 -0
- package/dist/components/button/Button.stories.svelte +37 -0
- package/dist/components/button/Button.stories.svelte.d.ts +19 -0
- package/dist/components/button/Button.svelte +263 -0
- package/dist/components/button/Button.svelte.d.ts +20 -0
- package/dist/components/button/index.d.ts +1 -0
- package/dist/components/button/index.js +1 -0
- package/dist/components/collapsible/Collapsible.stories.svelte +40 -0
- package/dist/components/collapsible/Collapsible.stories.svelte.d.ts +19 -0
- package/dist/components/collapsible/components/collapsible-content.svelte +26 -0
- package/dist/components/collapsible/components/collapsible-content.svelte.d.ts +10 -0
- package/dist/components/collapsible/components/collapsible-trigger.svelte +36 -0
- package/dist/components/collapsible/components/collapsible-trigger.svelte.d.ts +4 -0
- package/dist/components/collapsible/index.d.ts +5 -0
- package/dist/components/collapsible/index.js +4 -0
- package/dist/components/collapsible/types.d.ts +9 -0
- package/dist/components/collapsible/types.js +1 -0
- package/dist/components/combobox/Combobox.stories.svelte +119 -0
- package/dist/components/combobox/Combobox.stories.svelte.d.ts +19 -0
- package/dist/components/combobox/components/combobox-add.svelte +30 -0
- package/dist/components/combobox/components/combobox-add.svelte.d.ts +8 -0
- package/dist/components/combobox/components/combobox-content.svelte +137 -0
- package/dist/components/combobox/components/combobox-content.svelte.d.ts +4 -0
- package/dist/components/combobox/components/combobox-indicator.svelte +5 -0
- package/dist/components/combobox/components/combobox-indicator.svelte.d.ts +18 -0
- package/dist/components/combobox/index.d.ts +14 -0
- package/dist/components/combobox/index.js +15 -0
- package/dist/components/combobox/types.d.ts +20 -0
- package/dist/components/combobox/types.js +1 -0
- package/dist/components/datepicker/DatePicker.svelte +344 -0
- package/dist/components/datepicker/DatePicker.svelte.d.ts +8 -0
- package/dist/components/datepicker/index.d.ts +1 -0
- package/dist/components/datepicker/index.js +1 -0
- package/dist/components/divider/Divider.stories.svelte +14 -0
- package/dist/components/divider/Divider.stories.svelte.d.ts +27 -0
- package/dist/components/divider/Divider.svelte +9 -0
- package/dist/components/divider/Divider.svelte.d.ts +6 -0
- package/dist/components/divider/index.d.ts +1 -0
- package/dist/components/divider/index.js +1 -0
- package/dist/components/drawer/Drawer.stories.svelte +64 -0
- package/dist/components/drawer/Drawer.stories.svelte.d.ts +27 -0
- package/dist/components/drawer/Drawer.svelte +41 -0
- package/dist/components/drawer/Drawer.svelte.d.ts +12 -0
- package/dist/components/drawer/DrawerLabel.svelte +62 -0
- package/dist/components/drawer/DrawerLabel.svelte.d.ts +9 -0
- package/dist/components/drawer/index.d.ts +1 -0
- package/dist/components/drawer/index.js +1 -0
- package/dist/components/dropdown/Dropdown.stories.svelte +236 -0
- package/dist/components/dropdown/Dropdown.stories.svelte.d.ts +27 -0
- package/dist/components/dropdown/Dropdown.svelte +69 -0
- package/dist/components/dropdown/Dropdown.svelte.d.ts +26 -0
- package/dist/components/dropdown/components/DropdownContent.svelte +29 -0
- package/dist/components/dropdown/components/DropdownContent.svelte.d.ts +10 -0
- package/dist/components/dropdown/components/DropdownMenu.svelte +23 -0
- package/dist/components/dropdown/components/DropdownMenu.svelte.d.ts +8 -0
- package/dist/components/dropdown/components/DropdownTrigger.svelte +46 -0
- package/dist/components/dropdown/components/DropdownTrigger.svelte.d.ts +13 -0
- package/dist/components/dropdown/components/OutlinedButton.svelte +61 -0
- package/dist/components/dropdown/components/OutlinedButton.svelte.d.ts +8 -0
- package/dist/components/dropdown/index.d.ts +1 -0
- package/dist/components/dropdown/index.js +1 -0
- package/dist/components/empty-content/EmptyContent.svelte +19 -0
- package/dist/components/empty-content/EmptyContent.svelte.d.ts +8 -0
- package/dist/components/graphs/chart/Chart.stories.svelte +128 -0
- package/dist/components/graphs/chart/Chart.stories.svelte.d.ts +19 -0
- package/dist/components/graphs/chart/Chart.svelte +145 -0
- package/dist/components/graphs/chart/Chart.svelte.d.ts +17 -0
- package/dist/components/graphs/index.d.ts +4 -0
- package/dist/components/graphs/index.js +4 -0
- package/dist/components/graphs/line/LineChart.stories.svelte +73 -0
- package/dist/components/graphs/line/LineChart.stories.svelte.d.ts +19 -0
- package/dist/components/graphs/line/LineChart.svelte +102 -0
- package/dist/components/graphs/line/LineChart.svelte.d.ts +18 -0
- package/dist/components/graphs/multiline/MultiLineChart.stories.svelte +77 -0
- package/dist/components/graphs/multiline/MultiLineChart.stories.svelte.d.ts +19 -0
- package/dist/components/graphs/multiline/MultiLineChart.svelte +108 -0
- package/dist/components/graphs/multiline/MultiLineChart.svelte.d.ts +22 -0
- package/dist/components/graphs/scatterplot/Scatterplot.stories.svelte +78 -0
- package/dist/components/graphs/scatterplot/Scatterplot.stories.svelte.d.ts +19 -0
- package/dist/components/graphs/scatterplot/Scatterplot.svelte +67 -0
- package/dist/components/graphs/scatterplot/Scatterplot.svelte.d.ts +16 -0
- package/dist/components/icon-button/IconButton.stories.svelte +82 -0
- package/dist/components/icon-button/IconButton.stories.svelte.d.ts +19 -0
- package/dist/components/icon-button/IconButton.svelte +152 -0
- package/dist/components/icon-button/IconButton.svelte.d.ts +16 -0
- package/dist/components/icon-button/index.d.ts +1 -0
- package/dist/components/icon-button/index.js +1 -0
- package/dist/components/icons/AnalysisIcon.stories.svelte +38 -0
- package/dist/components/icons/AnalysisIcon.stories.svelte.d.ts +27 -0
- package/dist/components/icons/AnalysisIcon.svelte +110 -0
- package/dist/components/icons/AnalysisIcon.svelte.d.ts +10 -0
- package/dist/components/icons/Icon.svelte +23 -0
- package/dist/components/icons/Icon.svelte.d.ts +4 -0
- package/dist/components/icons/custom/Halo.svelte +32 -0
- package/dist/components/icons/custom/Halo.svelte.d.ts +26 -0
- package/dist/components/icons/custom/Well.svelte +26 -0
- package/dist/components/icons/custom/Well.svelte.d.ts +26 -0
- package/dist/components/icons/index.d.ts +17 -0
- package/dist/components/icons/index.js +21 -0
- package/dist/components/icons/types.d.ts +0 -0
- package/dist/components/icons/types.js +1 -0
- package/dist/components/image/Image.svelte +55 -0
- package/dist/components/image/Image.svelte.d.ts +7 -0
- package/dist/components/image/index.d.ts +1 -0
- package/dist/components/image/index.js +1 -0
- package/dist/components/input/Input.stories.svelte +87 -0
- package/dist/components/input/Input.stories.svelte.d.ts +27 -0
- package/dist/components/input/Input.svelte +204 -0
- package/dist/components/input/Input.svelte.d.ts +24 -0
- package/dist/components/input/index.d.ts +1 -0
- package/dist/components/input/index.js +1 -0
- package/dist/components/list/List.stories.svelte +97 -0
- package/dist/components/list/List.stories.svelte.d.ts +19 -0
- package/dist/components/list/List.svelte +69 -0
- package/dist/components/list/List.svelte.d.ts +24 -0
- package/dist/components/list/index.d.ts +1 -0
- package/dist/components/list/index.js +1 -0
- package/dist/components/logo/Logo.stories.svelte +21 -0
- package/dist/components/logo/Logo.stories.svelte.d.ts +27 -0
- package/dist/components/logo/Logo.svelte +39 -0
- package/dist/components/logo/Logo.svelte.d.ts +7 -0
- package/dist/components/logo/index.d.ts +1 -0
- package/dist/components/logo/index.js +1 -0
- package/dist/components/markdown/Markdown.stories.svelte +41 -0
- package/dist/components/markdown/Markdown.stories.svelte.d.ts +27 -0
- package/dist/components/markdown/Markdown.svelte +12 -0
- package/dist/components/markdown/Markdown.svelte.d.ts +6 -0
- package/dist/components/markdown/index.d.ts +1 -0
- package/dist/components/markdown/index.js +1 -0
- package/dist/components/modal/Modal.stories.svelte +39 -0
- package/dist/components/modal/Modal.stories.svelte.d.ts +19 -0
- package/dist/components/modal/Modal.svelte +76 -0
- package/dist/components/modal/Modal.svelte.d.ts +17 -0
- package/dist/components/modal/index.d.ts +1 -0
- package/dist/components/modal/index.js +1 -0
- package/dist/components/notification-popup/NotificationPopup.stories.svelte +27 -0
- package/dist/components/notification-popup/NotificationPopup.stories.svelte.d.ts +27 -0
- package/dist/components/notification-popup/NotificationPopup.svelte +33 -0
- package/dist/components/notification-popup/NotificationPopup.svelte.d.ts +11 -0
- package/dist/components/notification-popup/index.d.ts +1 -0
- package/dist/components/notification-popup/index.js +1 -0
- package/dist/components/pill/Pill.svelte +39 -0
- package/dist/components/pill/Pill.svelte.d.ts +10 -0
- package/dist/components/pill/index.d.ts +1 -0
- package/dist/components/pill/index.js +1 -0
- package/dist/components/progress-circle/ProgressCircle.svelte +79 -0
- package/dist/components/progress-circle/ProgressCircle.svelte.d.ts +7 -0
- package/dist/components/progress-circle/index.d.ts +1 -0
- package/dist/components/progress-circle/index.js +1 -0
- package/dist/components/segmented-control-buttons/ControlButton.svelte +57 -0
- package/dist/components/segmented-control-buttons/ControlButton.svelte.d.ts +14 -0
- package/dist/components/segmented-control-buttons/SegmentedControlButtons.stories.svelte +45 -0
- package/dist/components/segmented-control-buttons/SegmentedControlButtons.stories.svelte.d.ts +19 -0
- package/dist/components/segmented-control-buttons/SegmentedControlButtons.svelte +21 -0
- package/dist/components/segmented-control-buttons/SegmentedControlButtons.svelte.d.ts +12 -0
- package/dist/components/segmented-control-buttons/index.d.ts +1 -0
- package/dist/components/segmented-control-buttons/index.js +1 -0
- package/dist/components/select/Select.stories.svelte +113 -0
- package/dist/components/select/Select.stories.svelte.d.ts +19 -0
- package/dist/components/select/Select.svelte +141 -0
- package/dist/components/select/Select.svelte.d.ts +60 -0
- package/dist/components/select/index.d.ts +7 -0
- package/dist/components/select/index.js +1 -0
- package/dist/components/skeleton-loader/SkeletonLoader.stories.svelte +45 -0
- package/dist/components/skeleton-loader/SkeletonLoader.stories.svelte.d.ts +27 -0
- package/dist/components/skeleton-loader/SkeletonLoader.svelte +17 -0
- package/dist/components/skeleton-loader/SkeletonLoader.svelte.d.ts +14 -0
- package/dist/components/skeleton-loader/StatcardSkeleton.svelte +14 -0
- package/dist/components/skeleton-loader/StatcardSkeleton.svelte.d.ts +18 -0
- package/dist/components/skeleton-loader/components/Skeleton.svelte +14 -0
- package/dist/components/skeleton-loader/components/Skeleton.svelte.d.ts +8 -0
- package/dist/components/skeleton-loader/components/SkeletonImage.svelte +14 -0
- package/dist/components/skeleton-loader/components/SkeletonImage.svelte.d.ts +26 -0
- package/dist/components/skeleton-loader/index.d.ts +3 -0
- package/dist/components/skeleton-loader/index.js +3 -0
- package/dist/components/slider/Slider.stories.svelte +37 -0
- package/dist/components/slider/Slider.stories.svelte.d.ts +27 -0
- package/dist/components/slider/Slider.svelte +126 -0
- package/dist/components/slider/Slider.svelte.d.ts +31 -0
- package/dist/components/slider/index.d.ts +1 -0
- package/dist/components/slider/index.js +1 -0
- package/dist/components/spinner/Spinner.svelte +27 -0
- package/dist/components/spinner/Spinner.svelte.d.ts +6 -0
- package/dist/components/spinner/index.d.ts +1 -0
- package/dist/components/spinner/index.js +1 -0
- package/dist/components/stat-card/StatCard.stories.svelte +32 -0
- package/dist/components/stat-card/StatCard.stories.svelte.d.ts +27 -0
- package/dist/components/stat-card/StatCard.svelte +52 -0
- package/dist/components/stat-card/StatCard.svelte.d.ts +10 -0
- package/dist/components/stat-card/index.d.ts +1 -0
- package/dist/components/stat-card/index.js +1 -0
- package/dist/components/status-badge/StatusBadge.stories.svelte +401 -0
- package/dist/components/status-badge/StatusBadge.stories.svelte.d.ts +19 -0
- package/dist/components/status-badge/StatusBadge.svelte +147 -0
- package/dist/components/status-badge/StatusBadge.svelte.d.ts +12 -0
- package/dist/components/status-badge/index.d.ts +1 -0
- package/dist/components/status-badge/index.js +1 -0
- package/dist/components/table/Table.stories.svelte +90 -0
- package/dist/components/table/Table.stories.svelte.d.ts +24 -0
- package/dist/components/table/Table.svelte +47 -0
- package/dist/components/table/Table.svelte.d.ts +21 -0
- package/dist/components/table/components/TBody.svelte +14 -0
- package/dist/components/table/components/TBody.svelte.d.ts +8 -0
- package/dist/components/table/components/THead.svelte +14 -0
- package/dist/components/table/components/THead.svelte.d.ts +8 -0
- package/dist/components/table/components/Td.svelte +14 -0
- package/dist/components/table/components/Td.svelte.d.ts +8 -0
- package/dist/components/table/components/Th.svelte +15 -0
- package/dist/components/table/components/Th.svelte.d.ts +9 -0
- package/dist/components/table/components/Tr.svelte +31 -0
- package/dist/components/table/components/Tr.svelte.d.ts +8 -0
- package/dist/components/table/index.d.ts +1 -0
- package/dist/components/table/index.js +1 -0
- package/dist/components/tabs/Tabs.stories.svelte +28 -0
- package/dist/components/tabs/Tabs.stories.svelte.d.ts +27 -0
- package/dist/components/tabs/Tabs.svelte +13 -0
- package/dist/components/tabs/Tabs.svelte.d.ts +14 -0
- package/dist/components/tabs/components/Content.svelte +15 -0
- package/dist/components/tabs/components/Content.svelte.d.ts +9 -0
- package/dist/components/tabs/components/Tab.svelte +21 -0
- package/dist/components/tabs/components/Tab.svelte.d.ts +10 -0
- package/dist/components/tabs/components/Tabs.svelte +14 -0
- package/dist/components/tabs/components/Tabs.svelte.d.ts +8 -0
- package/dist/components/tabs/index.d.ts +1 -0
- package/dist/components/tabs/index.js +1 -0
- package/dist/components/tag/Tag.stories.svelte +51 -0
- package/dist/components/tag/Tag.stories.svelte.d.ts +19 -0
- package/dist/components/tag/Tag.svelte +102 -0
- package/dist/components/tag/Tag.svelte.d.ts +12 -0
- package/dist/components/tag/index.d.ts +1 -0
- package/dist/components/tag/index.js +1 -0
- package/dist/components/toggle/Toggle.stories.svelte +15 -0
- package/dist/components/toggle/Toggle.stories.svelte.d.ts +27 -0
- package/dist/components/toggle/Toggle.svelte +73 -0
- package/dist/components/toggle/Toggle.svelte.d.ts +8 -0
- package/dist/components/toggle/index.d.ts +1 -0
- package/dist/components/toggle/index.js +1 -0
- package/dist/components/tooltip/Tooltip.stories.svelte +126 -0
- package/dist/components/tooltip/Tooltip.stories.svelte.d.ts +27 -0
- package/dist/components/tooltip/Tooltip.svelte +49 -0
- package/dist/components/tooltip/Tooltip.svelte.d.ts +13 -0
- package/dist/components/tooltip/index.d.ts +1 -0
- package/dist/components/tooltip/index.js +1 -0
- package/dist/fonts/MDSystemMono-Regular.woff +0 -0
- package/dist/fonts/MDSystemMono-Regular.woff2 +0 -0
- package/dist/fonts/afAnotherSans-Medium.woff2 +0 -0
- package/dist/fonts/afAnotherSans-Regular.woff2 +0 -0
- package/dist/fonts/afAnotherSans-SemiBold.woff2 +0 -0
- package/dist/fonts/afAnotherSans.woff2 +0 -0
- package/dist/fonts/index.d.ts +4 -0
- package/dist/fonts/index.js +6 -0
- package/dist/index.d.ts +37 -0
- package/dist/index.js +39 -68464
- package/dist/tailwind-safelist.d.ts +27 -0
- package/dist/tailwind-safelist.js +475 -0
- package/dist/tailwind.d.ts +11 -0
- package/dist/tailwind.js +1 -0
- package/dist/tailwind.preset.d.ts +344 -0
- package/dist/tailwind.preset.js +55 -0
- package/dist/tokens.d.ts +598 -0
- package/dist/tokens.js +285 -0
- package/dist/types/fonts.d.ts +4 -0
- package/package.json +2 -1
- package/dist/index.css +0 -1
- package/dist/index.umd.cjs +0 -148
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
<script module>
|
|
2
|
+
import { defineMeta } from '@storybook/addon-svelte-csf';
|
|
3
|
+
import Drawer from './Drawer.svelte';
|
|
4
|
+
import Button from '../button/Button.svelte';
|
|
5
|
+
|
|
6
|
+
const { Story } = defineMeta({
|
|
7
|
+
component: Drawer,
|
|
8
|
+
title: 'Design System/Drawer',
|
|
9
|
+
tags: ['autodocs']
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
let open = $state(false);
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<Story name="Base">
|
|
16
|
+
<div class="py-12">
|
|
17
|
+
<Drawer id="my-drawer" bind:open controlled>
|
|
18
|
+
{#snippet trigger()}
|
|
19
|
+
<Button onClick={() => (open = true)}>Open Drawer</Button>
|
|
20
|
+
{/snippet}
|
|
21
|
+
{#snippet content()}
|
|
22
|
+
<div>
|
|
23
|
+
<div>
|
|
24
|
+
<p>Drawer content here</p>
|
|
25
|
+
</div>
|
|
26
|
+
</div>
|
|
27
|
+
{/snippet}
|
|
28
|
+
</Drawer>
|
|
29
|
+
</div>
|
|
30
|
+
</Story>
|
|
31
|
+
|
|
32
|
+
<Story name="Open">
|
|
33
|
+
<div class="py-12">
|
|
34
|
+
<Drawer id="my-drawer" open controlled>
|
|
35
|
+
{#snippet trigger()}
|
|
36
|
+
<Button onClick={() => (open = true)}>Open Drawer</Button>
|
|
37
|
+
{/snippet}
|
|
38
|
+
{#snippet content()}
|
|
39
|
+
<div>
|
|
40
|
+
<div>
|
|
41
|
+
<p>Drawer content here</p>
|
|
42
|
+
</div>
|
|
43
|
+
</div>
|
|
44
|
+
{/snippet}
|
|
45
|
+
</Drawer>
|
|
46
|
+
</div>
|
|
47
|
+
</Story>
|
|
48
|
+
|
|
49
|
+
<Story name="Open Left">
|
|
50
|
+
<div class="py-12">
|
|
51
|
+
<Drawer id="my-drawer" side="left" bind:open controlled>
|
|
52
|
+
{#snippet trigger()}
|
|
53
|
+
<Button onClick={() => (open = true)}>Open Drawer</Button>
|
|
54
|
+
{/snippet}
|
|
55
|
+
{#snippet content()}
|
|
56
|
+
<div>
|
|
57
|
+
<div>
|
|
58
|
+
<p>Drawer content here</p>
|
|
59
|
+
</div>
|
|
60
|
+
</div>
|
|
61
|
+
{/snippet}
|
|
62
|
+
</Drawer>
|
|
63
|
+
</div>
|
|
64
|
+
</Story>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export default Drawer;
|
|
2
|
+
type Drawer = SvelteComponent<{
|
|
3
|
+
[x: string]: never;
|
|
4
|
+
}, {
|
|
5
|
+
[evt: string]: CustomEvent<any>;
|
|
6
|
+
}, {}> & {
|
|
7
|
+
$$bindings?: string | undefined;
|
|
8
|
+
};
|
|
9
|
+
declare const Drawer: $$__sveltets_2_IsomorphicComponent<{
|
|
10
|
+
[x: string]: never;
|
|
11
|
+
}, {
|
|
12
|
+
[evt: string]: CustomEvent<any>;
|
|
13
|
+
}, {}, {}, string>;
|
|
14
|
+
import Drawer from './Drawer.svelte';
|
|
15
|
+
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> & {
|
|
17
|
+
$$bindings?: Bindings;
|
|
18
|
+
} & Exports;
|
|
19
|
+
(internal: unknown, props: {
|
|
20
|
+
$$events?: Events;
|
|
21
|
+
$$slots?: Slots;
|
|
22
|
+
}): Exports & {
|
|
23
|
+
$set?: any;
|
|
24
|
+
$on?: any;
|
|
25
|
+
};
|
|
26
|
+
z_$$bindings?: Bindings;
|
|
27
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { Snippet } from 'svelte';
|
|
3
|
+
import DrawerLabel from './DrawerLabel.svelte';
|
|
4
|
+
|
|
5
|
+
interface Props {
|
|
6
|
+
id: string;
|
|
7
|
+
controlled?: boolean;
|
|
8
|
+
// Open only works when controlled is true
|
|
9
|
+
open?: boolean;
|
|
10
|
+
side?: 'left' | 'right';
|
|
11
|
+
trigger?: Snippet;
|
|
12
|
+
content: Snippet;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
let {
|
|
16
|
+
id,
|
|
17
|
+
controlled = false,
|
|
18
|
+
open = $bindable(false),
|
|
19
|
+
side = 'right',
|
|
20
|
+
trigger,
|
|
21
|
+
content
|
|
22
|
+
}: Props = $props();
|
|
23
|
+
</script>
|
|
24
|
+
|
|
25
|
+
<div class={`drawer-auto-gutter drawer`} class:drawer-end={side === 'right'}>
|
|
26
|
+
{#if controlled}
|
|
27
|
+
<input {id} type="checkbox" class="drawer-toggle" bind:checked={open} />
|
|
28
|
+
{:else}
|
|
29
|
+
<input {id} type="checkbox" class="drawer-toggle" />
|
|
30
|
+
{/if}
|
|
31
|
+
|
|
32
|
+
<div class="drawer-content">
|
|
33
|
+
{@render trigger?.()}
|
|
34
|
+
</div>
|
|
35
|
+
<div class="drawer-side" inert={controlled ? !open : false}>
|
|
36
|
+
<label for={id} aria-label="close sidebar" class="drawer-overlay"></label>
|
|
37
|
+
<div class="h-screen bg-surface sm:w-[460px]">
|
|
38
|
+
{@render content()}
|
|
39
|
+
</div>
|
|
40
|
+
</div>
|
|
41
|
+
</div>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Snippet } from 'svelte';
|
|
2
|
+
interface Props {
|
|
3
|
+
id: string;
|
|
4
|
+
controlled?: boolean;
|
|
5
|
+
open?: boolean;
|
|
6
|
+
side?: 'left' | 'right';
|
|
7
|
+
trigger?: Snippet;
|
|
8
|
+
content: Snippet;
|
|
9
|
+
}
|
|
10
|
+
declare const Drawer: import("svelte").Component<Props, {}, "open">;
|
|
11
|
+
type Drawer = ReturnType<typeof Drawer>;
|
|
12
|
+
export default Drawer;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { Snippet } from 'svelte';
|
|
3
|
+
|
|
4
|
+
interface Props {
|
|
5
|
+
id: string;
|
|
6
|
+
classes?: string;
|
|
7
|
+
children: Snippet;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
let { id, classes = '', children }: Props = $props();
|
|
11
|
+
</script>
|
|
12
|
+
|
|
13
|
+
<label for={id} class={`${classes}`}>{@render children()}</label>
|
|
14
|
+
|
|
15
|
+
<style>
|
|
16
|
+
label {
|
|
17
|
+
|
|
18
|
+
display: flex;
|
|
19
|
+
|
|
20
|
+
width: 100%;
|
|
21
|
+
|
|
22
|
+
cursor: pointer;
|
|
23
|
+
|
|
24
|
+
align-items: center;
|
|
25
|
+
|
|
26
|
+
gap: 0.25rem;
|
|
27
|
+
|
|
28
|
+
border-radius: 0.5rem;
|
|
29
|
+
|
|
30
|
+
border-width: 1px;
|
|
31
|
+
|
|
32
|
+
border-color: #12192A1A;
|
|
33
|
+
|
|
34
|
+
--tw-bg-opacity: 1;
|
|
35
|
+
|
|
36
|
+
background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
|
|
37
|
+
|
|
38
|
+
padding: 0.75rem;
|
|
39
|
+
|
|
40
|
+
--tw-text-opacity: 1;
|
|
41
|
+
|
|
42
|
+
color: rgb(18 25 42 / var(--tw-text-opacity, 1));
|
|
43
|
+
|
|
44
|
+
--tw-shadow: 0 1px 4px 0 rgba(18, 25, 42, 0.04);
|
|
45
|
+
|
|
46
|
+
--tw-shadow-colored: 0 1px 4px 0 var(--tw-shadow-color);
|
|
47
|
+
|
|
48
|
+
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
label:not(:focus-within):hover {
|
|
52
|
+
|
|
53
|
+
border-color: #5750ee40
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
label:focus-within {
|
|
57
|
+
|
|
58
|
+
--tw-border-opacity: 1;
|
|
59
|
+
|
|
60
|
+
border-color: rgb(87 80 238 / var(--tw-border-opacity, 1))
|
|
61
|
+
}
|
|
62
|
+
</style>
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Snippet } from 'svelte';
|
|
2
|
+
interface Props {
|
|
3
|
+
id: string;
|
|
4
|
+
classes?: string;
|
|
5
|
+
children: Snippet;
|
|
6
|
+
}
|
|
7
|
+
declare const DrawerLabel: import("svelte").Component<Props, {}, "">;
|
|
8
|
+
type DrawerLabel = ReturnType<typeof DrawerLabel>;
|
|
9
|
+
export default DrawerLabel;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as Drawer } from './Drawer.svelte';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as Drawer } from './Drawer.svelte';
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
<script module>
|
|
2
|
+
import { defineMeta } from '@storybook/addon-svelte-csf';
|
|
3
|
+
import Dropdown from './Dropdown.svelte';
|
|
4
|
+
|
|
5
|
+
const { Story } = defineMeta({
|
|
6
|
+
component: Dropdown,
|
|
7
|
+
title: 'Design System/Dropdown',
|
|
8
|
+
tags: ['autodocs']
|
|
9
|
+
});
|
|
10
|
+
</script>
|
|
11
|
+
|
|
12
|
+
<Story name="Primary">
|
|
13
|
+
<div class="py-12">
|
|
14
|
+
<Dropdown>
|
|
15
|
+
{#snippet trigger({ Trigger })}
|
|
16
|
+
<Trigger>Dropdown</Trigger>
|
|
17
|
+
{/snippet}
|
|
18
|
+
{#snippet content({ DropdownMenu })}
|
|
19
|
+
<div>
|
|
20
|
+
<DropdownMenu class="w-full">
|
|
21
|
+
<li>
|
|
22
|
+
<p>1st item</p>
|
|
23
|
+
</li>
|
|
24
|
+
<li>
|
|
25
|
+
<p>2nd item</p>
|
|
26
|
+
</li>
|
|
27
|
+
</DropdownMenu>
|
|
28
|
+
</div>
|
|
29
|
+
{/snippet}
|
|
30
|
+
</Dropdown>
|
|
31
|
+
</div>
|
|
32
|
+
</Story>
|
|
33
|
+
|
|
34
|
+
<Story name="OutlinedButton">
|
|
35
|
+
<div class="py-12">
|
|
36
|
+
<Dropdown>
|
|
37
|
+
{#snippet trigger({ OutlinedButton })}
|
|
38
|
+
<OutlinedButton>Dropdown</OutlinedButton>
|
|
39
|
+
{/snippet}
|
|
40
|
+
{#snippet content({ DropdownMenu })}
|
|
41
|
+
<div>
|
|
42
|
+
<DropdownMenu class="w-full">
|
|
43
|
+
<li>
|
|
44
|
+
<p>1st item</p>
|
|
45
|
+
</li>
|
|
46
|
+
<li>
|
|
47
|
+
<p>2nd item</p>
|
|
48
|
+
</li>
|
|
49
|
+
</DropdownMenu>
|
|
50
|
+
</div>
|
|
51
|
+
{/snippet}
|
|
52
|
+
</Dropdown>
|
|
53
|
+
</div>
|
|
54
|
+
</Story>
|
|
55
|
+
|
|
56
|
+
<Story name="Secondary">
|
|
57
|
+
<div class="py-12">
|
|
58
|
+
<Dropdown>
|
|
59
|
+
{#snippet trigger({ Trigger })}
|
|
60
|
+
<Trigger variant="secondary">Dropdown</Trigger>
|
|
61
|
+
{/snippet}
|
|
62
|
+
{#snippet content({ DropdownMenu })}
|
|
63
|
+
<div>
|
|
64
|
+
<DropdownMenu class="w-full">
|
|
65
|
+
<li>
|
|
66
|
+
<p>1st item</p>
|
|
67
|
+
</li>
|
|
68
|
+
<li>
|
|
69
|
+
<p>2nd item</p>
|
|
70
|
+
</li>
|
|
71
|
+
</DropdownMenu>
|
|
72
|
+
</div>
|
|
73
|
+
{/snippet}
|
|
74
|
+
</Dropdown>
|
|
75
|
+
</div>
|
|
76
|
+
</Story>
|
|
77
|
+
<Story name="Transparent">
|
|
78
|
+
<div class="py-12">
|
|
79
|
+
<Dropdown>
|
|
80
|
+
{#snippet trigger({ Trigger })}
|
|
81
|
+
<Trigger variant="transparent">Dropdown</Trigger>
|
|
82
|
+
{/snippet}
|
|
83
|
+
{#snippet content({ DropdownMenu })}
|
|
84
|
+
<div>
|
|
85
|
+
<DropdownMenu class="w-full">
|
|
86
|
+
<li>
|
|
87
|
+
<p>1st item</p>
|
|
88
|
+
</li>
|
|
89
|
+
<li>
|
|
90
|
+
<p>2nd item</p>
|
|
91
|
+
</li>
|
|
92
|
+
</DropdownMenu>
|
|
93
|
+
</div>
|
|
94
|
+
{/snippet}
|
|
95
|
+
</Dropdown>
|
|
96
|
+
</div>
|
|
97
|
+
</Story>
|
|
98
|
+
<Story name="Danger">
|
|
99
|
+
<div class="py-12">
|
|
100
|
+
<Dropdown>
|
|
101
|
+
{#snippet trigger({ Trigger })}
|
|
102
|
+
<Trigger variant="danger">Dropdown</Trigger>
|
|
103
|
+
{/snippet}
|
|
104
|
+
{#snippet content({ DropdownMenu })}
|
|
105
|
+
<div>
|
|
106
|
+
<DropdownMenu class="w-full">
|
|
107
|
+
<li>
|
|
108
|
+
<p>1st item</p>
|
|
109
|
+
</li>
|
|
110
|
+
<li>
|
|
111
|
+
<p>2nd item</p>
|
|
112
|
+
</li>
|
|
113
|
+
</DropdownMenu>
|
|
114
|
+
</div>
|
|
115
|
+
{/snippet}
|
|
116
|
+
</Dropdown>
|
|
117
|
+
</div>
|
|
118
|
+
</Story>
|
|
119
|
+
|
|
120
|
+
<Story name="Sides">
|
|
121
|
+
<div class="flex h-screen w-full items-center justify-center">
|
|
122
|
+
<div class="flex flex-1 justify-between">
|
|
123
|
+
<Dropdown open side="dropdown-bottom">
|
|
124
|
+
{#snippet trigger({ Trigger })}
|
|
125
|
+
<Trigger>Bottom</Trigger>
|
|
126
|
+
{/snippet}
|
|
127
|
+
|
|
128
|
+
{#snippet content({ DropdownMenu })}
|
|
129
|
+
<div>
|
|
130
|
+
<DropdownMenu class="w-[120px]">
|
|
131
|
+
<li>
|
|
132
|
+
<p>1st item</p>
|
|
133
|
+
</li>
|
|
134
|
+
<li>
|
|
135
|
+
<p>2nd item</p>
|
|
136
|
+
</li>
|
|
137
|
+
</DropdownMenu>
|
|
138
|
+
</div>
|
|
139
|
+
{/snippet}
|
|
140
|
+
</Dropdown>
|
|
141
|
+
<Dropdown open side="dropdown-top">
|
|
142
|
+
{#snippet trigger({ Trigger })}
|
|
143
|
+
<Trigger>Top</Trigger>
|
|
144
|
+
{/snippet}
|
|
145
|
+
{#snippet content({ DropdownMenu })}
|
|
146
|
+
<div>
|
|
147
|
+
<DropdownMenu class="w-[120px]">
|
|
148
|
+
<li>
|
|
149
|
+
<p>1st item</p>
|
|
150
|
+
</li>
|
|
151
|
+
<li>
|
|
152
|
+
<p>2nd item</p>
|
|
153
|
+
</li>
|
|
154
|
+
</DropdownMenu>
|
|
155
|
+
</div>
|
|
156
|
+
{/snippet}
|
|
157
|
+
</Dropdown>
|
|
158
|
+
<Dropdown open side="dropdown-right">
|
|
159
|
+
{#snippet trigger({ Trigger })}
|
|
160
|
+
<Trigger>Right</Trigger>
|
|
161
|
+
{/snippet}
|
|
162
|
+
{#snippet content({ DropdownMenu })}
|
|
163
|
+
<div>
|
|
164
|
+
<DropdownMenu class="w-[120px]">
|
|
165
|
+
<li>
|
|
166
|
+
<p>1st item</p>
|
|
167
|
+
</li>
|
|
168
|
+
<li>
|
|
169
|
+
<p>2nd item</p>
|
|
170
|
+
</li>
|
|
171
|
+
</DropdownMenu>
|
|
172
|
+
</div>
|
|
173
|
+
{/snippet}
|
|
174
|
+
</Dropdown>
|
|
175
|
+
<Dropdown open side="dropdown-left">
|
|
176
|
+
{#snippet trigger({ Trigger })}
|
|
177
|
+
<Trigger>Left</Trigger>
|
|
178
|
+
{/snippet}
|
|
179
|
+
{#snippet content({ DropdownMenu })}
|
|
180
|
+
<div>
|
|
181
|
+
<DropdownMenu class="w-[120px]">
|
|
182
|
+
<li>
|
|
183
|
+
<p>1st item</p>
|
|
184
|
+
</li>
|
|
185
|
+
<li>
|
|
186
|
+
<p>2nd item</p>
|
|
187
|
+
</li>
|
|
188
|
+
</DropdownMenu>
|
|
189
|
+
</div>
|
|
190
|
+
{/snippet}
|
|
191
|
+
</Dropdown>
|
|
192
|
+
</div>
|
|
193
|
+
</div>
|
|
194
|
+
</Story>
|
|
195
|
+
|
|
196
|
+
<Story name="End align">
|
|
197
|
+
<div class="py-12">
|
|
198
|
+
<Dropdown alignEnd open>
|
|
199
|
+
{#snippet trigger({ Trigger })}
|
|
200
|
+
<Trigger>Dropdown</Trigger>
|
|
201
|
+
{/snippet}
|
|
202
|
+
{#snippet content({ DropdownMenu })}
|
|
203
|
+
<div>
|
|
204
|
+
<DropdownMenu>
|
|
205
|
+
<li>
|
|
206
|
+
<p>1st item</p>
|
|
207
|
+
</li>
|
|
208
|
+
<li>
|
|
209
|
+
<p>2nd item</p>
|
|
210
|
+
</li>
|
|
211
|
+
</DropdownMenu>
|
|
212
|
+
</div>
|
|
213
|
+
{/snippet}
|
|
214
|
+
</Dropdown>
|
|
215
|
+
</div>
|
|
216
|
+
</Story>
|
|
217
|
+
|
|
218
|
+
<Story name="Other content">
|
|
219
|
+
<div class="py-12">
|
|
220
|
+
<Dropdown alignEnd open>
|
|
221
|
+
{#snippet trigger({ Trigger })}
|
|
222
|
+
<Trigger>Dropdown</Trigger>
|
|
223
|
+
{/snippet}
|
|
224
|
+
{#snippet content({ DropdownContent })}
|
|
225
|
+
<div>
|
|
226
|
+
<DropdownContent>
|
|
227
|
+
<div>
|
|
228
|
+
<p>This is a dropdown with other content</p>
|
|
229
|
+
<p>It doesn't have to be list items</p>
|
|
230
|
+
</div>
|
|
231
|
+
</DropdownContent>
|
|
232
|
+
</div>
|
|
233
|
+
{/snippet}
|
|
234
|
+
</Dropdown>
|
|
235
|
+
</div>
|
|
236
|
+
</Story>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export default Dropdown;
|
|
2
|
+
type Dropdown = SvelteComponent<{
|
|
3
|
+
[x: string]: never;
|
|
4
|
+
}, {
|
|
5
|
+
[evt: string]: CustomEvent<any>;
|
|
6
|
+
}, {}> & {
|
|
7
|
+
$$bindings?: string | undefined;
|
|
8
|
+
};
|
|
9
|
+
declare const Dropdown: $$__sveltets_2_IsomorphicComponent<{
|
|
10
|
+
[x: string]: never;
|
|
11
|
+
}, {
|
|
12
|
+
[evt: string]: CustomEvent<any>;
|
|
13
|
+
}, {}, {}, string>;
|
|
14
|
+
import Dropdown from './Dropdown.svelte';
|
|
15
|
+
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> & {
|
|
17
|
+
$$bindings?: Bindings;
|
|
18
|
+
} & Exports;
|
|
19
|
+
(internal: unknown, props: {
|
|
20
|
+
$$events?: Events;
|
|
21
|
+
$$slots?: Slots;
|
|
22
|
+
}): Exports & {
|
|
23
|
+
$set?: any;
|
|
24
|
+
$on?: any;
|
|
25
|
+
};
|
|
26
|
+
z_$$bindings?: Bindings;
|
|
27
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { Snippet } from 'svelte';
|
|
3
|
+
import DropdownContent from './components/DropdownContent.svelte';
|
|
4
|
+
import DropdownMenu from './components/DropdownMenu.svelte';
|
|
5
|
+
import DropdownTrigger from './components/DropdownTrigger.svelte';
|
|
6
|
+
import OutlinedButton from './components/OutlinedButton.svelte';
|
|
7
|
+
|
|
8
|
+
interface Props {
|
|
9
|
+
side?: 'dropdown-top' | 'dropdown-bottom' | 'dropdown-left' | 'dropdown-right';
|
|
10
|
+
open?: boolean;
|
|
11
|
+
alignEnd?: boolean;
|
|
12
|
+
openOnHover?: boolean;
|
|
13
|
+
closeOnItemClick?: boolean;
|
|
14
|
+
class?: string;
|
|
15
|
+
trigger?: Snippet<[{ Trigger: typeof DropdownTrigger; OutlinedButton: typeof OutlinedButton }]>;
|
|
16
|
+
content?: Snippet<
|
|
17
|
+
[{ DropdownContent: typeof DropdownContent; DropdownMenu: typeof DropdownMenu }]
|
|
18
|
+
>;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
let {
|
|
22
|
+
side = 'dropdown-bottom',
|
|
23
|
+
open = $bindable(false),
|
|
24
|
+
alignEnd = false,
|
|
25
|
+
openOnHover = false,
|
|
26
|
+
closeOnItemClick = false,
|
|
27
|
+
class: className = '',
|
|
28
|
+
trigger,
|
|
29
|
+
content
|
|
30
|
+
}: Props = $props();
|
|
31
|
+
|
|
32
|
+
let C = {};
|
|
33
|
+
|
|
34
|
+
const closeDropdown = () => {
|
|
35
|
+
open = false;
|
|
36
|
+
// https://medium.com/@malikhamzav/how-to-close-daisyui-dropdown-on-click-ea65c5749410
|
|
37
|
+
document.activeElement instanceof HTMLElement && document.activeElement.blur();
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
function handleItemClick() {
|
|
41
|
+
if (closeOnItemClick) {
|
|
42
|
+
closeDropdown();
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function handleKeyDown(event: KeyboardEvent) {
|
|
47
|
+
if (event.key === 'Escape') {
|
|
48
|
+
closeDropdown();
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
</script>
|
|
52
|
+
|
|
53
|
+
<div
|
|
54
|
+
class="dropdown {side} {className}"
|
|
55
|
+
class:dropdown-end={alignEnd}
|
|
56
|
+
class:dropdown-open={open}
|
|
57
|
+
class:dropdown-hover={openOnHover}
|
|
58
|
+
>
|
|
59
|
+
{@render trigger?.({ Trigger: DropdownTrigger, OutlinedButton: OutlinedButton })}
|
|
60
|
+
<div
|
|
61
|
+
class="dropdown-content z-10 w-full"
|
|
62
|
+
role="menu"
|
|
63
|
+
tabindex="-1"
|
|
64
|
+
onkeydown={handleKeyDown}
|
|
65
|
+
onclick={handleItemClick}
|
|
66
|
+
>
|
|
67
|
+
{@render content?.({ DropdownMenu, DropdownContent })}
|
|
68
|
+
</div>
|
|
69
|
+
</div>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { Snippet } from 'svelte';
|
|
2
|
+
import DropdownContent from './components/DropdownContent.svelte';
|
|
3
|
+
import DropdownMenu from './components/DropdownMenu.svelte';
|
|
4
|
+
import DropdownTrigger from './components/DropdownTrigger.svelte';
|
|
5
|
+
import OutlinedButton from './components/OutlinedButton.svelte';
|
|
6
|
+
interface Props {
|
|
7
|
+
side?: 'dropdown-top' | 'dropdown-bottom' | 'dropdown-left' | 'dropdown-right';
|
|
8
|
+
open?: boolean;
|
|
9
|
+
alignEnd?: boolean;
|
|
10
|
+
openOnHover?: boolean;
|
|
11
|
+
closeOnItemClick?: boolean;
|
|
12
|
+
class?: string;
|
|
13
|
+
trigger?: Snippet<[{
|
|
14
|
+
Trigger: typeof DropdownTrigger;
|
|
15
|
+
OutlinedButton: typeof OutlinedButton;
|
|
16
|
+
}]>;
|
|
17
|
+
content?: Snippet<[
|
|
18
|
+
{
|
|
19
|
+
DropdownContent: typeof DropdownContent;
|
|
20
|
+
DropdownMenu: typeof DropdownMenu;
|
|
21
|
+
}
|
|
22
|
+
]>;
|
|
23
|
+
}
|
|
24
|
+
declare const Dropdown: import("svelte").Component<Props, {}, "open">;
|
|
25
|
+
type Dropdown = ReturnType<typeof Dropdown>;
|
|
26
|
+
export default Dropdown;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { Snippet } from 'svelte';
|
|
3
|
+
|
|
4
|
+
type Variant = 'primary' | 'secondary';
|
|
5
|
+
|
|
6
|
+
interface Props {
|
|
7
|
+
class?: string;
|
|
8
|
+
variant?: Variant;
|
|
9
|
+
children?: Snippet;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
const Variants: Record<Variant, string> = {
|
|
13
|
+
primary: 'bg-surface text-primary',
|
|
14
|
+
secondary: 'bg-base-inverse text-primary-inverse'
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
let { class: className = '', variant = 'primary', children }: Props = $props();
|
|
18
|
+
|
|
19
|
+
let variantClass = $derived(Variants[variant]);
|
|
20
|
+
</script>
|
|
21
|
+
|
|
22
|
+
<!-- svelte-ignore a11y_no_noninteractive_tabindex -->
|
|
23
|
+
<!-- DaisyUI have a bug wit safari dropdown. Requires tabindex=0-->
|
|
24
|
+
<div
|
|
25
|
+
class={`dropdown-content z-[1] mb-2 rounded-md p-1 shadow-2xl ${variantClass} ${className}`}
|
|
26
|
+
tabindex="0"
|
|
27
|
+
>
|
|
28
|
+
{@render children?.()}
|
|
29
|
+
</div>
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Snippet } from 'svelte';
|
|
2
|
+
type Variant = 'primary' | 'secondary';
|
|
3
|
+
interface Props {
|
|
4
|
+
class?: string;
|
|
5
|
+
variant?: Variant;
|
|
6
|
+
children?: Snippet;
|
|
7
|
+
}
|
|
8
|
+
declare const DropdownContent: import("svelte").Component<Props, {}, "">;
|
|
9
|
+
type DropdownContent = ReturnType<typeof DropdownContent>;
|
|
10
|
+
export default DropdownContent;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { Snippet } from 'svelte';
|
|
3
|
+
|
|
4
|
+
interface Props {
|
|
5
|
+
class?: string;
|
|
6
|
+
children?: Snippet;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
let { class: className = '', children }: Props = $props();
|
|
10
|
+
</script>
|
|
11
|
+
|
|
12
|
+
<ul
|
|
13
|
+
tabIndex="0"
|
|
14
|
+
class={`menu dropdown-content menu-md z-[1] rounded-lg bg-surface p-1 shadow-menu ${className}`}
|
|
15
|
+
>
|
|
16
|
+
{@render children?.()}
|
|
17
|
+
</ul>
|
|
18
|
+
|
|
19
|
+
<style>
|
|
20
|
+
:global(.menu li > *:not(ul):not(.menu-title):not(details):active) {
|
|
21
|
+
background-color: #12192A1A
|
|
22
|
+
}
|
|
23
|
+
</style>
|