@noxlovette/material 0.3.3 → 0.4.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.
- package/README.md +1 -0
- package/dist/actions/index.d.ts +1 -0
- package/dist/actions/index.js +1 -0
- package/dist/actions/rovingFocusGroup.d.ts +20 -0
- package/dist/actions/rovingFocusGroup.js +82 -0
- package/dist/components/badge/theme.d.ts +8 -8
- package/dist/components/buttons/button-group/ButtonGroup.stories.svelte +83 -0
- package/dist/components/buttons/button-group/ButtonGroup.stories.svelte.d.ts +19 -0
- package/dist/components/buttons/button-group/ButtonGroup.svelte +10 -29
- package/dist/components/buttons/button-group/ButtonGroup.svelte.d.ts +7 -3
- package/dist/components/buttons/button-group/index.d.ts +0 -1
- package/dist/components/buttons/button-group/index.js +3 -1
- package/dist/components/buttons/button-group/theme.d.ts +17 -103
- package/dist/components/buttons/button-group/theme.js +7 -35
- package/dist/components/buttons/button-group/types.d.ts +9 -20
- package/dist/components/buttons/connected/ConnectedButtonGroup.stories.svelte +118 -0
- package/dist/components/buttons/connected/ConnectedButtonGroup.stories.svelte.d.ts +19 -0
- package/dist/components/buttons/connected/ConnectedButtonGroup.svelte +52 -0
- package/dist/components/buttons/connected/ConnectedButtonGroup.svelte.d.ts +12 -0
- package/dist/components/buttons/connected/ConnectedButtonGroupItem.svelte +37 -0
- package/dist/components/buttons/connected/ConnectedButtonGroupItem.svelte.d.ts +9 -0
- package/dist/components/buttons/connected/index.d.ts +3 -1
- package/dist/components/buttons/connected/index.js +3 -1
- package/dist/components/buttons/connected/theme.d.ts +125 -0
- package/dist/components/buttons/connected/theme.js +38 -0
- package/dist/components/buttons/connected/types.d.ts +32 -13
- package/dist/components/buttons/index.d.ts +1 -0
- package/dist/components/buttons/index.js +1 -0
- package/dist/components/buttons/split-button/SplitButton.stories.svelte +103 -0
- package/dist/components/buttons/split-button/SplitButton.stories.svelte.d.ts +19 -0
- package/dist/components/buttons/split-button/SplitButton.svelte +104 -0
- package/dist/components/buttons/split-button/SplitButton.svelte.d.ts +19 -0
- package/dist/components/buttons/split-button/index.d.ts +3 -0
- package/dist/components/{containers/panes → buttons/split-button}/index.js +1 -3
- package/dist/components/buttons/split-button/theme.d.ts +35 -0
- package/dist/components/buttons/split-button/theme.js +26 -0
- package/dist/components/buttons/split-button/types.d.ts +33 -0
- package/dist/components/buttons/theme.d.ts +142 -142
- package/dist/components/buttons/theme.js +2 -2
- package/dist/components/cards/Card.stories.svelte +58 -0
- package/dist/components/cards/Card.stories.svelte.d.ts +2 -17
- package/dist/components/cards/Card.svelte +76 -8
- package/dist/components/cards/theme.d.ts +26 -14
- package/dist/components/cards/theme.js +5 -1
- package/dist/components/cards/types.d.ts +39 -1
- package/dist/components/chips/Chip.stories.svelte +64 -0
- package/dist/components/chips/Chip.stories.svelte.d.ts +19 -0
- package/dist/components/chips/Chip.svelte +115 -0
- package/dist/components/chips/Chip.svelte.d.ts +14 -0
- package/dist/components/chips/index.d.ts +3 -0
- package/dist/components/{containers/merger → chips}/index.js +2 -1
- package/dist/components/chips/theme.d.ts +78 -0
- package/dist/components/chips/theme.js +72 -0
- package/dist/components/chips/types.d.ts +43 -0
- package/dist/components/containers/action-rail/ActionRail.stories.svelte +36 -0
- package/dist/components/containers/{panes/SinglePane.stories.svelte.d.ts → action-rail/ActionRail.stories.svelte.d.ts} +4 -4
- package/dist/components/containers/action-rail/ActionRail.svelte +35 -0
- package/dist/components/containers/action-rail/ActionRail.svelte.d.ts +17 -0
- package/dist/components/containers/action-rail/index.d.ts +3 -0
- package/dist/components/containers/action-rail/index.js +6 -0
- package/dist/components/containers/action-rail/theme.d.ts +45 -0
- package/dist/components/containers/action-rail/theme.js +26 -0
- package/dist/components/containers/action-rail/types.d.ts +20 -0
- package/dist/components/containers/action-rail/types.js +1 -0
- package/dist/components/containers/app/App.svelte +6 -6
- package/dist/components/containers/app/App.svelte.d.ts +4 -2
- package/dist/components/containers/app/theme.d.ts +1 -1
- package/dist/components/containers/app/types.d.ts +9 -4
- package/dist/components/containers/bottom-sheet/BottomSheet.stories.svelte +1 -1
- package/dist/components/containers/bottom-sheet/BottomSheet.svelte +1 -1
- package/dist/components/containers/context-menu/ContextMenu.stories.svelte +44 -0
- package/dist/components/containers/context-menu/ContextMenu.svelte +21 -5
- package/dist/components/containers/context-menu/ContextMenu.svelte.d.ts +11 -0
- package/dist/components/containers/context-menu/theme.d.ts +20 -2
- package/dist/components/containers/context-menu/theme.js +31 -8
- package/dist/components/containers/context-menu/types.d.ts +14 -2
- package/dist/components/containers/dialogue/theme.d.ts +20 -20
- package/dist/components/containers/divider/theme.d.ts +17 -17
- package/dist/components/containers/index.d.ts +2 -3
- package/dist/components/containers/index.js +2 -3
- package/dist/components/containers/link-preview/theme.d.ts +11 -11
- package/dist/components/containers/list/theme.d.ts +14 -14
- package/dist/components/containers/list/theme.js +1 -1
- package/dist/components/containers/menu/Menu.stories.svelte +105 -3
- package/dist/components/containers/menu/Menu.stories.svelte.d.ts +2 -17
- package/dist/components/containers/menu/Menu.svelte +9 -7
- package/dist/components/containers/menu/MenuCheckboxItem.svelte +55 -0
- package/dist/components/containers/menu/MenuCheckboxItem.svelte.d.ts +25 -0
- package/dist/components/containers/menu/MenuGroup.svelte +43 -0
- package/dist/components/containers/menu/MenuGroup.svelte.d.ts +28 -0
- package/dist/components/containers/menu/MenuRadioGroup.svelte +39 -0
- package/dist/components/containers/menu/MenuRadioGroup.svelte.d.ts +27 -0
- package/dist/components/containers/menu/MenuRadioItem.svelte +49 -0
- package/dist/components/containers/menu/MenuRadioItem.svelte.d.ts +17 -0
- package/dist/components/containers/menu/MenuSub.svelte +91 -0
- package/dist/components/containers/menu/MenuSub.svelte.d.ts +29 -0
- package/dist/components/containers/menu/index.d.ts +7 -0
- package/dist/components/containers/menu/index.js +8 -0
- package/dist/components/containers/menu/menu-item/MenuItem.svelte +71 -0
- package/dist/components/containers/{menu-item → menu/menu-item}/MenuItem.svelte.d.ts +2 -1
- package/dist/components/containers/{menu-item → menu/menu-item}/types.d.ts +5 -1
- package/dist/components/containers/menu/menu-item/types.js +1 -0
- package/dist/components/containers/menu/theme.d.ts +68 -0
- package/dist/components/containers/menu/theme.js +36 -0
- package/dist/components/containers/menu/types.d.ts +113 -2
- package/dist/components/containers/pane/DraggablePane.stories.svelte +199 -0
- package/dist/components/containers/pane/DraggablePane.stories.svelte.d.ts +4 -0
- package/dist/components/containers/pane/DraggablePane.svelte +533 -0
- package/dist/components/containers/pane/DraggablePane.svelte.d.ts +29 -0
- package/dist/components/containers/pane/Pane.stories.svelte +104 -0
- package/dist/components/containers/pane/Pane.stories.svelte.d.ts +19 -0
- package/dist/components/containers/pane/Pane.svelte +78 -0
- package/dist/components/containers/pane/Pane.svelte.d.ts +18 -0
- package/dist/components/containers/pane/PaneGrid.stories.svelte +134 -0
- package/dist/components/containers/pane/PaneGrid.stories.svelte.d.ts +19 -0
- package/dist/components/containers/pane/PaneGrid.svelte +43 -0
- package/dist/components/containers/pane/PaneGrid.svelte.d.ts +13 -0
- package/dist/components/containers/pane/PaneHandle.svelte +90 -0
- package/dist/components/containers/pane/PaneHandle.svelte.d.ts +12 -0
- package/dist/components/containers/pane/dragStore.svelte.d.ts +16 -0
- package/dist/components/containers/pane/dragStore.svelte.js +38 -0
- package/dist/components/containers/pane/index.d.ts +8 -0
- package/dist/components/containers/pane/index.js +11 -0
- package/dist/components/containers/pane/resizeStore.svelte.d.ts +10 -0
- package/dist/components/containers/pane/resizeStore.svelte.js +30 -0
- package/dist/components/containers/pane/theme.d.ts +571 -0
- package/dist/components/containers/pane/theme.js +211 -0
- package/dist/components/containers/pane/types.d.ts +249 -0
- package/dist/components/containers/pane/types.js +1 -0
- package/dist/components/containers/popover/Popover.stories.svelte +4 -4
- package/dist/components/containers/popover/Popover.svelte +3 -1
- package/dist/components/containers/popover/theme.d.ts +20 -20
- package/dist/components/containers/popover/types.d.ts +6 -2
- package/dist/components/containers/scroll-area/theme.d.ts +2 -2
- package/dist/components/containers/side-sheet/SideSheet.stories.svelte +16 -24
- package/dist/components/containers/side-sheet/SideSheet.svelte +73 -7
- package/dist/components/containers/side-sheet/SideSheet.svelte.d.ts +5 -0
- package/dist/components/containers/stack/theme.d.ts +44 -44
- package/dist/components/date/DateField.stories.svelte +57 -0
- package/dist/components/{containers/panes/SplitPane.stories.svelte.d.ts → date/DateField.stories.svelte.d.ts} +4 -4
- package/dist/components/date/DateField.svelte +11 -2
- package/dist/components/date/DateRangeField.stories.svelte +53 -0
- package/dist/components/{containers/panes/SupportingPane.stories.svelte.d.ts → date/DateRangeField.stories.svelte.d.ts} +4 -4
- package/dist/components/date/DateRangeField.svelte +2 -1
- package/dist/components/date/theme.d.ts +73 -4
- package/dist/components/date/theme.js +95 -26
- package/dist/components/date/types.d.ts +5 -0
- package/dist/components/forms/checkbox/Checkbox.svelte +7 -9
- package/dist/components/forms/checkbox/theme.d.ts +8 -8
- package/dist/components/forms/checkbox/theme.js +31 -9
- package/dist/components/forms/command/theme.d.ts +35 -35
- package/dist/components/forms/pin/theme.d.ts +2 -2
- package/dist/components/forms/radio-group/theme.d.ts +2 -2
- package/dist/components/forms/search/theme.d.ts +8 -8
- package/dist/components/forms/select/Select.svelte +3 -2
- package/dist/components/forms/select/theme.d.ts +26 -2
- package/dist/components/forms/select/theme.js +56 -22
- package/dist/components/forms/slider/theme.d.ts +20 -20
- package/dist/components/forms/switch/theme.d.ts +2 -2
- package/dist/components/forms/textfield/Textfield.stories.svelte +22 -0
- package/dist/components/forms/textfield/Textfield.svelte +10 -1
- package/dist/components/forms/textfield/theme.d.ts +44 -2
- package/dist/components/forms/textfield/theme.js +56 -16
- package/dist/components/forms/toggle-group/ToggleGroup.svelte +2 -2
- package/dist/components/forms/toggle-group/ToggleGroup.svelte.d.ts +2 -2
- package/dist/components/forms/toggle-group/ToggleGroupItem.svelte +1 -1
- package/dist/components/forms/toggle-group/ToggleGroupItem.svelte.d.ts +1 -1
- package/dist/components/forms/toggle-group/theme.d.ts +16 -16
- package/dist/components/forms/toggle-group/types.d.ts +2 -2
- package/dist/components/forms/tooltip/Tooltip.svelte +1 -1
- package/dist/components/forms/tooltip/theme.d.ts +2 -2
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.js +1 -0
- package/dist/components/misc/Avatar.stories.svelte +8 -0
- package/dist/components/misc/Avatar.svelte +35 -10
- package/dist/components/misc/DicebearAvatarBuilder.d.ts +59 -0
- package/dist/components/misc/DicebearAvatarBuilder.js +115 -0
- package/dist/components/misc/ThemeSettings.svelte +1 -1
- package/dist/components/misc/ThemeSwitcher.svelte +2 -2
- package/dist/components/misc/dicebearStyles.d.ts +21 -0
- package/dist/components/misc/dicebearStyles.js +169 -0
- package/dist/components/misc/index.d.ts +3 -0
- package/dist/components/misc/index.js +3 -0
- package/dist/components/misc/materialAvatarPalette.d.ts +6 -0
- package/dist/components/misc/materialAvatarPalette.js +44 -0
- package/dist/components/misc/theme.d.ts +20 -2
- package/dist/components/misc/theme.js +7 -1
- package/dist/components/misc/types.d.ts +20 -2
- package/dist/components/nav/appbar/AppBar.stories.svelte +1 -1
- package/dist/components/nav/appbar/AppBar.svelte +46 -15
- package/dist/components/nav/appbar/AppBar.svelte.d.ts +5 -0
- package/dist/components/nav/appbar/theme.d.ts +20 -14
- package/dist/components/nav/appbar/theme.js +11 -7
- package/dist/components/nav/appbar/types.d.ts +3 -1
- package/dist/components/nav/breadcrumb/Breadcrumb.stories.svelte +50 -0
- package/dist/components/nav/breadcrumb/Breadcrumb.stories.svelte.d.ts +19 -0
- package/dist/components/nav/breadcrumb/Breadcrumb.svelte +46 -0
- package/dist/components/nav/breadcrumb/Breadcrumb.svelte.d.ts +13 -0
- package/dist/components/nav/breadcrumb/index.d.ts +3 -0
- package/dist/components/nav/breadcrumb/index.js +6 -0
- package/dist/components/nav/breadcrumb/theme.d.ts +84 -0
- package/dist/components/nav/breadcrumb/theme.js +35 -0
- package/dist/components/nav/breadcrumb/types.d.ts +14 -0
- package/dist/components/nav/breadcrumb/types.js +1 -0
- package/dist/components/nav/index.d.ts +1 -0
- package/dist/components/nav/index.js +1 -0
- package/dist/components/nav/navbar/theme.d.ts +19 -19
- package/dist/components/nav/rail/Rail.stories.svelte +1 -5
- package/dist/components/nav/rail/Rail.svelte +3 -25
- package/dist/components/nav/rail/theme.d.ts +4 -4
- package/dist/components/nav/rail/types.d.ts +0 -5
- package/dist/components/nav/tabs/TabHolder.svelte +2 -1
- package/dist/components/nav/tabs/theme.d.ts +21 -21
- package/dist/components/nav/tabs/theme.js +6 -0
- package/dist/components/nav/tabs/types.d.ts +2 -2
- package/dist/components/pill/theme.d.ts +35 -35
- package/dist/components/snackbar/theme.d.ts +8 -8
- package/dist/components/table/Table.stories.svelte +267 -0
- package/dist/components/table/Table.stories.svelte.d.ts +19 -0
- package/dist/components/table/Table.svelte +1 -1
- package/dist/components/table/TableBody.svelte +16 -3
- package/dist/components/table/TableBody.svelte.d.ts +5 -1
- package/dist/components/table/TableRow.svelte +1 -1
- package/dist/components/table/theme.d.ts +2 -2
- package/dist/components/table/theme.js +2 -2
- package/dist/components/table/types.d.ts +7 -0
- package/dist/components/time/theme.d.ts +29 -29
- package/dist/components/toolbar/Toolbar.stories.svelte +71 -0
- package/dist/components/toolbar/Toolbar.stories.svelte.d.ts +19 -0
- package/dist/components/toolbar/Toolbar.svelte +19 -3
- package/dist/components/toolbar/Toolbar.svelte.d.ts +8 -2
- package/dist/components/toolbar/ToolbarButton.svelte +28 -4
- package/dist/components/toolbar/ToolbarDivider.svelte +4 -3
- package/dist/components/toolbar/ToolbarGroup.svelte +7 -2
- package/dist/components/toolbar/ToolbarGroupItem.svelte +29 -4
- package/dist/components/toolbar/ToolbarSection.svelte +35 -0
- package/dist/components/toolbar/ToolbarSection.svelte.d.ts +9 -0
- package/dist/components/toolbar/ToolbarSpacer.svelte +18 -0
- package/dist/components/toolbar/ToolbarSpacer.svelte.d.ts +9 -0
- package/dist/components/toolbar/index.d.ts +2 -0
- package/dist/components/toolbar/index.js +2 -0
- package/dist/components/toolbar/theme.d.ts +36 -21
- package/dist/components/toolbar/theme.js +27 -11
- package/dist/components/toolbar/types.d.ts +37 -4
- package/dist/components/typography/body/theme.d.ts +14 -14
- package/dist/components/typography/display/theme.d.ts +14 -14
- package/dist/components/typography/headline/theme.d.ts +14 -14
- package/dist/components/typography/kbd/Kbd.stories.svelte +1 -1
- package/dist/components/typography/kbd/theme.d.ts +8 -8
- package/dist/components/typography/label/theme.d.ts +14 -14
- package/dist/components/typography/title/theme.d.ts +14 -14
- package/dist/styles/component.css +126 -4
- package/dist/styles/motion.css +6 -3
- package/dist/utils/Layer.svelte +7 -3
- package/dist/utils/Theme.svelte +20 -20
- package/dist/utils/ThemeScript.svelte +1 -1
- package/dist/utils/icon/theme.d.ts +14 -14
- package/package.json +38 -37
- package/bin/install-skill.js +0 -29
- package/dist/components/buttons/button-group/ButtonGroupItem.svelte +0 -41
- package/dist/components/buttons/button-group/ButtonGroupItem.svelte.d.ts +0 -8
- package/dist/components/buttons/connected/ConnectedButtons.svelte +0 -14
- package/dist/components/buttons/connected/ConnectedButtons.svelte.d.ts +0 -8
- package/dist/components/containers/menu-item/MenuItem.svelte +0 -74
- package/dist/components/containers/merger/InputMerger.svelte +0 -24
- package/dist/components/containers/merger/InputMerger.svelte.d.ts +0 -14
- package/dist/components/containers/merger/index.d.ts +0 -2
- package/dist/components/containers/merger/theme.d.ts +0 -1
- package/dist/components/containers/merger/theme.js +0 -4
- package/dist/components/containers/panes/SinglePane.stories.svelte +0 -67
- package/dist/components/containers/panes/SinglePane.svelte +0 -32
- package/dist/components/containers/panes/SinglePane.svelte.d.ts +0 -5
- package/dist/components/containers/panes/SplitPane.stories.svelte +0 -124
- package/dist/components/containers/panes/SplitPane.svelte +0 -144
- package/dist/components/containers/panes/SplitPane.svelte.d.ts +0 -8
- package/dist/components/containers/panes/SupportingPane.stories.svelte +0 -113
- package/dist/components/containers/panes/SupportingPane.svelte +0 -175
- package/dist/components/containers/panes/SupportingPane.svelte.d.ts +0 -9
- package/dist/components/containers/panes/index.d.ts +0 -5
- package/dist/components/containers/panes/theme.d.ts +0 -490
- package/dist/components/containers/panes/theme.js +0 -185
- package/dist/components/containers/panes/types.d.ts +0 -108
- package/dist/components/nav/rail/RailNavContext.svelte +0 -14
- package/dist/components/nav/rail/RailNavContext.svelte.d.ts +0 -8
- /package/dist/components/{containers/menu-item → buttons/split-button}/types.js +0 -0
- /package/dist/components/{containers/panes → chips}/types.js +0 -0
- /package/dist/components/containers/{menu-item → menu/menu-item}/index.d.ts +0 -0
- /package/dist/components/containers/{menu-item → menu/menu-item}/index.js +0 -0
|
@@ -2,16 +2,16 @@ import { type VariantProps } from 'tailwind-variants';
|
|
|
2
2
|
export type LinkPreviewVariants = VariantProps<typeof linkPreview>;
|
|
3
3
|
export declare const linkPreview: import("tailwind-variants").TVReturnType<{
|
|
4
4
|
[key: string]: {
|
|
5
|
-
[key: string]: import("tailwind-
|
|
6
|
-
base?: import("tailwind-
|
|
7
|
-
content?: import("tailwind-
|
|
5
|
+
[key: string]: import("tailwind-variants").ClassValue | {
|
|
6
|
+
base?: import("tailwind-variants").ClassValue;
|
|
7
|
+
content?: import("tailwind-variants").ClassValue;
|
|
8
8
|
};
|
|
9
9
|
};
|
|
10
10
|
} | {
|
|
11
11
|
[x: string]: {
|
|
12
|
-
[x: string]: import("tailwind-
|
|
13
|
-
base?: import("tailwind-
|
|
14
|
-
content?: import("tailwind-
|
|
12
|
+
[x: string]: import("tailwind-variants").ClassValue | {
|
|
13
|
+
base?: import("tailwind-variants").ClassValue;
|
|
14
|
+
content?: import("tailwind-variants").ClassValue;
|
|
15
15
|
};
|
|
16
16
|
};
|
|
17
17
|
} | {}, {
|
|
@@ -19,15 +19,15 @@ export declare const linkPreview: import("tailwind-variants").TVReturnType<{
|
|
|
19
19
|
content: string;
|
|
20
20
|
}, undefined, {
|
|
21
21
|
[key: string]: {
|
|
22
|
-
[key: string]: import("tailwind-
|
|
23
|
-
base?: import("tailwind-
|
|
24
|
-
content?: import("tailwind-
|
|
22
|
+
[key: string]: import("tailwind-variants").ClassValue | {
|
|
23
|
+
base?: import("tailwind-variants").ClassValue;
|
|
24
|
+
content?: import("tailwind-variants").ClassValue;
|
|
25
25
|
};
|
|
26
26
|
};
|
|
27
27
|
} | {}, {
|
|
28
28
|
base: string;
|
|
29
29
|
content: string;
|
|
30
|
-
}, import("tailwind-variants").
|
|
30
|
+
}, import("tailwind-variants").TVReturnTypeLike<unknown, {
|
|
31
31
|
base: string;
|
|
32
32
|
content: string;
|
|
33
|
-
}
|
|
33
|
+
}>>;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export declare const listiem: import("tailwind-variants").TVReturnType<{
|
|
2
2
|
lines: {
|
|
3
|
-
1:
|
|
4
|
-
2:
|
|
5
|
-
3:
|
|
3
|
+
1: "h-14";
|
|
4
|
+
2: "h-18";
|
|
5
|
+
3: "h-22";
|
|
6
6
|
};
|
|
7
7
|
selected: {
|
|
8
8
|
true: {
|
|
@@ -10,7 +10,7 @@ export declare const listiem: import("tailwind-variants").TVReturnType<{
|
|
|
10
10
|
headline: string;
|
|
11
11
|
trailing: string;
|
|
12
12
|
};
|
|
13
|
-
false:
|
|
13
|
+
false: "";
|
|
14
14
|
};
|
|
15
15
|
}, {
|
|
16
16
|
base: string;
|
|
@@ -22,9 +22,9 @@ export declare const listiem: import("tailwind-variants").TVReturnType<{
|
|
|
22
22
|
trailing: string;
|
|
23
23
|
}, undefined, {
|
|
24
24
|
lines: {
|
|
25
|
-
1:
|
|
26
|
-
2:
|
|
27
|
-
3:
|
|
25
|
+
1: "h-14";
|
|
26
|
+
2: "h-18";
|
|
27
|
+
3: "h-22";
|
|
28
28
|
};
|
|
29
29
|
selected: {
|
|
30
30
|
true: {
|
|
@@ -32,7 +32,7 @@ export declare const listiem: import("tailwind-variants").TVReturnType<{
|
|
|
32
32
|
headline: string;
|
|
33
33
|
trailing: string;
|
|
34
34
|
};
|
|
35
|
-
false:
|
|
35
|
+
false: "";
|
|
36
36
|
};
|
|
37
37
|
}, {
|
|
38
38
|
base: string;
|
|
@@ -42,11 +42,11 @@ export declare const listiem: import("tailwind-variants").TVReturnType<{
|
|
|
42
42
|
headline: string;
|
|
43
43
|
supporting: string;
|
|
44
44
|
trailing: string;
|
|
45
|
-
}, import("tailwind-variants").
|
|
45
|
+
}, import("tailwind-variants").TVReturnTypeLike<{
|
|
46
46
|
lines: {
|
|
47
|
-
1:
|
|
48
|
-
2:
|
|
49
|
-
3:
|
|
47
|
+
1: "h-14";
|
|
48
|
+
2: "h-18";
|
|
49
|
+
3: "h-22";
|
|
50
50
|
};
|
|
51
51
|
selected: {
|
|
52
52
|
true: {
|
|
@@ -54,7 +54,7 @@ export declare const listiem: import("tailwind-variants").TVReturnType<{
|
|
|
54
54
|
headline: string;
|
|
55
55
|
trailing: string;
|
|
56
56
|
};
|
|
57
|
-
false:
|
|
57
|
+
false: "";
|
|
58
58
|
};
|
|
59
59
|
}, {
|
|
60
60
|
base: string;
|
|
@@ -64,4 +64,4 @@ export declare const listiem: import("tailwind-variants").TVReturnType<{
|
|
|
64
64
|
headline: string;
|
|
65
65
|
supporting: string;
|
|
66
66
|
trailing: string;
|
|
67
|
-
}
|
|
67
|
+
}>>;
|
|
@@ -7,7 +7,7 @@ export const listiem = tv({
|
|
|
7
7
|
overline: 'md-sys-typescale-label-small line-clamp-1',
|
|
8
8
|
headline: 'text-md-sys-color-on-surface md-sys-typescale-body-large line-clamp-1',
|
|
9
9
|
supporting: 'md-sys-typescale-body-medium line-clamp-2',
|
|
10
|
-
trailing: '
|
|
10
|
+
trailing: 'inline-flex ml-auto'
|
|
11
11
|
},
|
|
12
12
|
variants: {
|
|
13
13
|
lines: {
|
|
@@ -7,7 +7,12 @@
|
|
|
7
7
|
<script module lang="ts">
|
|
8
8
|
import { defineMeta } from '@storybook/addon-svelte-csf';
|
|
9
9
|
import Menu from './Menu.svelte';
|
|
10
|
-
import MenuItem from '
|
|
10
|
+
import MenuItem from './menu-item/MenuItem.svelte';
|
|
11
|
+
import MenuGroup from './MenuGroup.svelte';
|
|
12
|
+
import MenuRadioGroup from './MenuRadioGroup.svelte';
|
|
13
|
+
import MenuRadioItem from './MenuRadioItem.svelte';
|
|
14
|
+
import MenuCheckboxItem from './MenuCheckboxItem.svelte';
|
|
15
|
+
import MenuSub from './MenuSub.svelte';
|
|
11
16
|
import ButtonIcon from '../../buttons/ButtonIcon.svelte';
|
|
12
17
|
import { Divider } from '../../../index.js';
|
|
13
18
|
|
|
@@ -25,6 +30,14 @@
|
|
|
25
30
|
});
|
|
26
31
|
</script>
|
|
27
32
|
|
|
33
|
+
<script lang="ts">
|
|
34
|
+
let sortBy = $state('name');
|
|
35
|
+
let showHidden = $state(true);
|
|
36
|
+
let showExtensions = $state(false);
|
|
37
|
+
let kitchenSinkSort = $state('date');
|
|
38
|
+
let kitchenSinkWordWrap = $state(true);
|
|
39
|
+
</script>
|
|
40
|
+
|
|
28
41
|
<Story name="Playground">
|
|
29
42
|
{#snippet template(args)}
|
|
30
43
|
<div class="p-6">
|
|
@@ -40,8 +53,8 @@
|
|
|
40
53
|
<Story name="With Custom Trigger" asChild>
|
|
41
54
|
<div class="p-6">
|
|
42
55
|
<Menu align="end">
|
|
43
|
-
{#snippet trigger()}
|
|
44
|
-
<ButtonIcon iconProps={{ name: 'more_vert' }} variant="text" />
|
|
56
|
+
{#snippet trigger(triggerProps)}
|
|
57
|
+
<ButtonIcon iconProps={{ name: 'more_vert' }} variant="text" {...triggerProps} />
|
|
45
58
|
{/snippet}
|
|
46
59
|
<MenuItem iconProps={{ name: 'edit' }}>Edit</MenuItem>
|
|
47
60
|
<MenuItem iconProps={{ name: 'archive' }} helper="Move to archive folder">Archive</MenuItem>
|
|
@@ -60,3 +73,92 @@
|
|
|
60
73
|
</Menu>
|
|
61
74
|
</div>
|
|
62
75
|
</Story>
|
|
76
|
+
|
|
77
|
+
<Story name="With Groups" asChild>
|
|
78
|
+
<div class="p-6">
|
|
79
|
+
<Menu label="Sort by">
|
|
80
|
+
<MenuGroup heading="Name">
|
|
81
|
+
<MenuItem>A to Z</MenuItem>
|
|
82
|
+
<MenuItem>Z to A</MenuItem>
|
|
83
|
+
</MenuGroup>
|
|
84
|
+
<Divider class="my-1" />
|
|
85
|
+
<MenuGroup heading="Date">
|
|
86
|
+
<MenuItem>Newest first</MenuItem>
|
|
87
|
+
<MenuItem>Oldest first</MenuItem>
|
|
88
|
+
</MenuGroup>
|
|
89
|
+
</Menu>
|
|
90
|
+
</div>
|
|
91
|
+
</Story>
|
|
92
|
+
|
|
93
|
+
<Story name="With Checkboxes" asChild>
|
|
94
|
+
<div class="p-6">
|
|
95
|
+
<Menu label="View">
|
|
96
|
+
<MenuCheckboxItem bind:checked={showHidden}>Show hidden files</MenuCheckboxItem>
|
|
97
|
+
<MenuCheckboxItem bind:checked={showExtensions}>Show file extensions</MenuCheckboxItem>
|
|
98
|
+
<MenuCheckboxItem disabled>Show system files</MenuCheckboxItem>
|
|
99
|
+
</Menu>
|
|
100
|
+
</div>
|
|
101
|
+
</Story>
|
|
102
|
+
|
|
103
|
+
<Story name="With Radio Group" asChild>
|
|
104
|
+
<div class="p-6">
|
|
105
|
+
<Menu label="Sort by">
|
|
106
|
+
<MenuRadioGroup bind:value={sortBy}>
|
|
107
|
+
<MenuRadioItem value="name">Name</MenuRadioItem>
|
|
108
|
+
<MenuRadioItem value="date">Date modified</MenuRadioItem>
|
|
109
|
+
<MenuRadioItem value="size">Size</MenuRadioItem>
|
|
110
|
+
</MenuRadioGroup>
|
|
111
|
+
</Menu>
|
|
112
|
+
</div>
|
|
113
|
+
</Story>
|
|
114
|
+
|
|
115
|
+
<Story name="With Submenu" asChild>
|
|
116
|
+
<div class="p-6">
|
|
117
|
+
<Menu label="File">
|
|
118
|
+
<MenuItem iconProps={{ name: 'draft' }}>New</MenuItem>
|
|
119
|
+
<MenuItem iconProps={{ name: 'folder' }}>Open</MenuItem>
|
|
120
|
+
<MenuSub iconProps={{ name: 'ios_share' }}>
|
|
121
|
+
Share
|
|
122
|
+
{#snippet submenu()}
|
|
123
|
+
<MenuItem iconProps={{ name: 'mail' }}>Email</MenuItem>
|
|
124
|
+
<MenuItem iconProps={{ name: 'link' }}>Copy link</MenuItem>
|
|
125
|
+
<MenuSub iconProps={{ name: 'chat' }}>
|
|
126
|
+
Message
|
|
127
|
+
{#snippet submenu()}
|
|
128
|
+
<MenuItem>SMS</MenuItem>
|
|
129
|
+
<MenuItem>Direct message</MenuItem>
|
|
130
|
+
{/snippet}
|
|
131
|
+
</MenuSub>
|
|
132
|
+
{/snippet}
|
|
133
|
+
</MenuSub>
|
|
134
|
+
<Divider class="my-1" />
|
|
135
|
+
<MenuItem iconProps={{ name: 'delete' }}>Delete</MenuItem>
|
|
136
|
+
</Menu>
|
|
137
|
+
</div>
|
|
138
|
+
</Story>
|
|
139
|
+
|
|
140
|
+
<Story name="Kitchen Sink" asChild>
|
|
141
|
+
<div class="p-6">
|
|
142
|
+
<Menu label="Document">
|
|
143
|
+
<MenuGroup heading="Sort by">
|
|
144
|
+
<MenuRadioGroup bind:value={kitchenSinkSort}>
|
|
145
|
+
<MenuRadioItem value="name">Name</MenuRadioItem>
|
|
146
|
+
<MenuRadioItem value="date">Date modified</MenuRadioItem>
|
|
147
|
+
</MenuRadioGroup>
|
|
148
|
+
</MenuGroup>
|
|
149
|
+
<Divider class="my-1" />
|
|
150
|
+
<MenuGroup heading="View">
|
|
151
|
+
<MenuCheckboxItem bind:checked={kitchenSinkWordWrap}>Word wrap</MenuCheckboxItem>
|
|
152
|
+
</MenuGroup>
|
|
153
|
+
<Divider class="my-1" />
|
|
154
|
+
<MenuSub iconProps={{ name: 'ios_share' }}>
|
|
155
|
+
Share
|
|
156
|
+
{#snippet submenu()}
|
|
157
|
+
<MenuItem iconProps={{ name: 'mail' }}>Email</MenuItem>
|
|
158
|
+
<MenuItem iconProps={{ name: 'link' }}>Copy link</MenuItem>
|
|
159
|
+
{/snippet}
|
|
160
|
+
</MenuSub>
|
|
161
|
+
<MenuItem iconProps={{ name: 'delete' }} disabled>Delete</MenuItem>
|
|
162
|
+
</Menu>
|
|
163
|
+
</div>
|
|
164
|
+
</Story>
|
|
@@ -1,19 +1,4 @@
|
|
|
1
1
|
import Menu from './Menu.svelte';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
$$bindings?: Bindings;
|
|
5
|
-
} & Exports;
|
|
6
|
-
(internal: unknown, props: {
|
|
7
|
-
$$events?: Events;
|
|
8
|
-
$$slots?: Slots;
|
|
9
|
-
}): Exports & {
|
|
10
|
-
$set?: any;
|
|
11
|
-
$on?: any;
|
|
12
|
-
};
|
|
13
|
-
z_$$bindings?: Bindings;
|
|
14
|
-
}
|
|
15
|
-
declare const Menu: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
|
|
16
|
-
[evt: string]: CustomEvent<any>;
|
|
17
|
-
}, {}, {}, string>;
|
|
18
|
-
type Menu = InstanceType<typeof Menu>;
|
|
2
|
+
declare const Menu: import("svelte").Component<Record<string, never>, {}, "">;
|
|
3
|
+
type Menu = ReturnType<typeof Menu>;
|
|
19
4
|
export default Menu;
|
|
@@ -35,22 +35,24 @@ Contrast with `MenuItem` (a single interactive row inside the panel) and
|
|
|
35
35
|
|
|
36
36
|
<DropdownMenu.Root bind:open>
|
|
37
37
|
<DropdownMenu.Trigger>
|
|
38
|
-
{#
|
|
39
|
-
{
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
38
|
+
{#snippet child({ props })}
|
|
39
|
+
{#if trigger}
|
|
40
|
+
{@render trigger(props)}
|
|
41
|
+
{:else}
|
|
42
|
+
<Button variant="filled" {...props}>{label}</Button>
|
|
43
|
+
{/if}
|
|
44
|
+
{/snippet}
|
|
43
45
|
</DropdownMenu.Trigger>
|
|
44
46
|
|
|
45
47
|
<DropdownMenu.Portal>
|
|
46
|
-
<DropdownMenu.Content forceMount {align} sideOffset={4} class="z-
|
|
48
|
+
<DropdownMenu.Content forceMount {align} sideOffset={4} class="z-100">
|
|
47
49
|
{#snippet child({ wrapperProps, props, open: isOpen })}
|
|
48
50
|
{#if isOpen}
|
|
49
51
|
<div {...wrapperProps} class={wrapperProps.class as any}>
|
|
50
52
|
<div
|
|
51
53
|
{...props}
|
|
52
54
|
class={clsx(
|
|
53
|
-
'bg-md-sys-color-surface-container-high shadow-elevation-3 ring-md-sys-color-outline/10 max-w-sm min-w-48 overflow-
|
|
55
|
+
'bg-md-sys-color-surface-container-high shadow-elevation-3 ring-md-sys-color-outline/10 max-w-sm min-w-48 gap-1 overflow-y-auto rounded-lg px-2 py-1',
|
|
54
56
|
props.class as any,
|
|
55
57
|
contentClass
|
|
56
58
|
)}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
@component
|
|
3
|
+
A toggleable option inside a `Menu`.
|
|
4
|
+
|
|
5
|
+
Wraps bits-ui's `DropdownMenu.CheckboxItem`. Unlike `MenuRadioItem`, its
|
|
6
|
+
checked state is independent of any sibling item, so any number of
|
|
7
|
+
`MenuCheckboxItem`s can be checked at once. Renders a leading checkbox
|
|
8
|
+
indicator that fills in when checked.
|
|
9
|
+
|
|
10
|
+
@example
|
|
11
|
+
```svelte
|
|
12
|
+
<script>
|
|
13
|
+
let showHidden = $state(false);
|
|
14
|
+
</script>
|
|
15
|
+
|
|
16
|
+
<Menu label="View">
|
|
17
|
+
<MenuCheckboxItem bind:checked={showHidden}>Show hidden files</MenuCheckboxItem>
|
|
18
|
+
</Menu>
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
@see https://m3.material.io/components/menus/guidelines
|
|
22
|
+
-->
|
|
23
|
+
<script lang="ts">
|
|
24
|
+
import { DropdownMenu } from 'bits-ui';
|
|
25
|
+
import Icon from '../../../utils/icon/Icon.svelte';
|
|
26
|
+
import Layer from '../../../utils/Layer.svelte';
|
|
27
|
+
import { menu as menuCls } from './theme.js';
|
|
28
|
+
import type { MenuCheckboxItemProps } from './types.js';
|
|
29
|
+
|
|
30
|
+
let {
|
|
31
|
+
checked = $bindable(false),
|
|
32
|
+
onCheckedChange,
|
|
33
|
+
disabled = false,
|
|
34
|
+
closeOnSelect = true,
|
|
35
|
+
helper,
|
|
36
|
+
children,
|
|
37
|
+
class: className
|
|
38
|
+
}: MenuCheckboxItemProps = $props();
|
|
39
|
+
</script>
|
|
40
|
+
|
|
41
|
+
<DropdownMenu.CheckboxItem bind:checked {onCheckedChange} {disabled} {closeOnSelect}>
|
|
42
|
+
{#snippet child({ props, checked })}
|
|
43
|
+
{@const cls = menuCls({ checked })}
|
|
44
|
+
<div {...props} class={cls.item({ class: className })}>
|
|
45
|
+
<Icon name={checked ? 'check_box' : 'check_box_outline_blank'} class={cls.indicator()} />
|
|
46
|
+
<div class={cls.itemContent()}>
|
|
47
|
+
{@render children()}
|
|
48
|
+
{#if helper}
|
|
49
|
+
<span class={cls.helper()}>{helper}</span>
|
|
50
|
+
{/if}
|
|
51
|
+
</div>
|
|
52
|
+
<Layer />
|
|
53
|
+
</div>
|
|
54
|
+
{/snippet}
|
|
55
|
+
</DropdownMenu.CheckboxItem>
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { MenuCheckboxItemProps } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* A toggleable option inside a `Menu`.
|
|
4
|
+
*
|
|
5
|
+
* Wraps bits-ui's `DropdownMenu.CheckboxItem`. Unlike `MenuRadioItem`, its
|
|
6
|
+
* checked state is independent of any sibling item, so any number of
|
|
7
|
+
* `MenuCheckboxItem`s can be checked at once. Renders a leading checkbox
|
|
8
|
+
* indicator that fills in when checked.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```svelte
|
|
12
|
+
* <script>
|
|
13
|
+
* let showHidden = $state(false);
|
|
14
|
+
* </script>
|
|
15
|
+
*
|
|
16
|
+
* <Menu label="View">
|
|
17
|
+
* <MenuCheckboxItem bind:checked={showHidden}>Show hidden files</MenuCheckboxItem>
|
|
18
|
+
* </Menu>
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* @see https://m3.material.io/components/menus/guidelines
|
|
22
|
+
*/
|
|
23
|
+
declare const MenuCheckboxItem: import("svelte").Component<MenuCheckboxItemProps, {}, "checked">;
|
|
24
|
+
type MenuCheckboxItem = ReturnType<typeof MenuCheckboxItem>;
|
|
25
|
+
export default MenuCheckboxItem;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
@component
|
|
3
|
+
Groups related rows inside a `Menu` under an optional heading.
|
|
4
|
+
|
|
5
|
+
Wraps bits-ui's `DropdownMenu.Group` (and `DropdownMenu.GroupHeading` when
|
|
6
|
+
`heading` is supplied) so screen readers announce the rows as a labelled
|
|
7
|
+
set. Purely organizational — it renders no interactive behavior of its own.
|
|
8
|
+
|
|
9
|
+
@example
|
|
10
|
+
```svelte
|
|
11
|
+
<Menu label="Sort by">
|
|
12
|
+
<MenuGroup heading="Name">
|
|
13
|
+
<MenuItem>A to Z</MenuItem>
|
|
14
|
+
<MenuItem>Z to A</MenuItem>
|
|
15
|
+
</MenuGroup>
|
|
16
|
+
<Divider class="my-1" />
|
|
17
|
+
<MenuGroup heading="Date">
|
|
18
|
+
<MenuItem>Newest first</MenuItem>
|
|
19
|
+
<MenuItem>Oldest first</MenuItem>
|
|
20
|
+
</MenuGroup>
|
|
21
|
+
</Menu>
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
@see https://m3.material.io/components/menus/guidelines
|
|
25
|
+
-->
|
|
26
|
+
<script lang="ts">
|
|
27
|
+
import { DropdownMenu } from 'bits-ui';
|
|
28
|
+
import { menu as menuCls } from './theme.js';
|
|
29
|
+
import type { MenuGroupProps } from './types.js';
|
|
30
|
+
|
|
31
|
+
let { heading, children, class: className }: MenuGroupProps = $props();
|
|
32
|
+
|
|
33
|
+
const cls = $derived(menuCls());
|
|
34
|
+
</script>
|
|
35
|
+
|
|
36
|
+
<DropdownMenu.Group class={className}>
|
|
37
|
+
{#if heading}
|
|
38
|
+
<DropdownMenu.GroupHeading class={cls.groupHeading()}>
|
|
39
|
+
{heading}
|
|
40
|
+
</DropdownMenu.GroupHeading>
|
|
41
|
+
{/if}
|
|
42
|
+
{@render children()}
|
|
43
|
+
</DropdownMenu.Group>
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { MenuGroupProps } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Groups related rows inside a `Menu` under an optional heading.
|
|
4
|
+
*
|
|
5
|
+
* Wraps bits-ui's `DropdownMenu.Group` (and `DropdownMenu.GroupHeading` when
|
|
6
|
+
* `heading` is supplied) so screen readers announce the rows as a labelled
|
|
7
|
+
* set. Purely organizational — it renders no interactive behavior of its own.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```svelte
|
|
11
|
+
* <Menu label="Sort by">
|
|
12
|
+
* <MenuGroup heading="Name">
|
|
13
|
+
* <MenuItem>A to Z</MenuItem>
|
|
14
|
+
* <MenuItem>Z to A</MenuItem>
|
|
15
|
+
* </MenuGroup>
|
|
16
|
+
* <Divider class="my-1" />
|
|
17
|
+
* <MenuGroup heading="Date">
|
|
18
|
+
* <MenuItem>Newest first</MenuItem>
|
|
19
|
+
* <MenuItem>Oldest first</MenuItem>
|
|
20
|
+
* </MenuGroup>
|
|
21
|
+
* </Menu>
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
24
|
+
* @see https://m3.material.io/components/menus/guidelines
|
|
25
|
+
*/
|
|
26
|
+
declare const MenuGroup: import("svelte").Component<MenuGroupProps, {}, "">;
|
|
27
|
+
type MenuGroup = ReturnType<typeof MenuGroup>;
|
|
28
|
+
export default MenuGroup;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
@component
|
|
3
|
+
Restricts a set of `MenuRadioItem`s to a single selected value at a time.
|
|
4
|
+
|
|
5
|
+
Wraps bits-ui's `DropdownMenu.RadioGroup`. Bind `value` to drive the
|
|
6
|
+
selection externally, or leave it uncontrolled and read `onValueChange`.
|
|
7
|
+
|
|
8
|
+
@example
|
|
9
|
+
```svelte
|
|
10
|
+
<script>
|
|
11
|
+
let sortBy = $state('name');
|
|
12
|
+
</script>
|
|
13
|
+
|
|
14
|
+
<Menu label="Sort by">
|
|
15
|
+
<MenuRadioGroup bind:value={sortBy}>
|
|
16
|
+
<MenuRadioItem value="name">Name</MenuRadioItem>
|
|
17
|
+
<MenuRadioItem value="date">Date modified</MenuRadioItem>
|
|
18
|
+
<MenuRadioItem value="size">Size</MenuRadioItem>
|
|
19
|
+
</MenuRadioGroup>
|
|
20
|
+
</Menu>
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
@see https://m3.material.io/components/menus/guidelines
|
|
24
|
+
-->
|
|
25
|
+
<script lang="ts">
|
|
26
|
+
import { DropdownMenu } from 'bits-ui';
|
|
27
|
+
import type { MenuRadioGroupProps } from './types.js';
|
|
28
|
+
|
|
29
|
+
let {
|
|
30
|
+
value = $bindable(''),
|
|
31
|
+
onValueChange,
|
|
32
|
+
children,
|
|
33
|
+
class: className
|
|
34
|
+
}: MenuRadioGroupProps = $props();
|
|
35
|
+
</script>
|
|
36
|
+
|
|
37
|
+
<DropdownMenu.RadioGroup bind:value {onValueChange} class={className}>
|
|
38
|
+
{@render children()}
|
|
39
|
+
</DropdownMenu.RadioGroup>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { MenuRadioGroupProps } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Restricts a set of `MenuRadioItem`s to a single selected value at a time.
|
|
4
|
+
*
|
|
5
|
+
* Wraps bits-ui's `DropdownMenu.RadioGroup`. Bind `value` to drive the
|
|
6
|
+
* selection externally, or leave it uncontrolled and read `onValueChange`.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```svelte
|
|
10
|
+
* <script>
|
|
11
|
+
* let sortBy = $state('name');
|
|
12
|
+
* </script>
|
|
13
|
+
*
|
|
14
|
+
* <Menu label="Sort by">
|
|
15
|
+
* <MenuRadioGroup bind:value={sortBy}>
|
|
16
|
+
* <MenuRadioItem value="name">Name</MenuRadioItem>
|
|
17
|
+
* <MenuRadioItem value="date">Date modified</MenuRadioItem>
|
|
18
|
+
* <MenuRadioItem value="size">Size</MenuRadioItem>
|
|
19
|
+
* </MenuRadioGroup>
|
|
20
|
+
* </Menu>
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* @see https://m3.material.io/components/menus/guidelines
|
|
24
|
+
*/
|
|
25
|
+
declare const MenuRadioGroup: import("svelte").Component<MenuRadioGroupProps, {}, "value">;
|
|
26
|
+
type MenuRadioGroup = ReturnType<typeof MenuRadioGroup>;
|
|
27
|
+
export default MenuRadioGroup;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
@component
|
|
3
|
+
A single selectable option inside a `MenuRadioGroup`.
|
|
4
|
+
|
|
5
|
+
Wraps bits-ui's `DropdownMenu.RadioItem`. Only one radio item within the
|
|
6
|
+
same `MenuRadioGroup` can be checked at a time; selecting one unchecks any
|
|
7
|
+
previously-checked sibling. Renders a leading radio indicator that fills
|
|
8
|
+
in when selected.
|
|
9
|
+
|
|
10
|
+
Contrast with `MenuCheckboxItem`, whose checked state is independent of any
|
|
11
|
+
sibling item.
|
|
12
|
+
|
|
13
|
+
@see https://m3.material.io/components/menus/guidelines
|
|
14
|
+
-->
|
|
15
|
+
<script lang="ts">
|
|
16
|
+
import { DropdownMenu } from 'bits-ui';
|
|
17
|
+
import Icon from '../../../utils/icon/Icon.svelte';
|
|
18
|
+
import Layer from '../../../utils/Layer.svelte';
|
|
19
|
+
import { menu as menuCls } from './theme.js';
|
|
20
|
+
import type { MenuRadioItemProps } from './types.js';
|
|
21
|
+
|
|
22
|
+
let {
|
|
23
|
+
value,
|
|
24
|
+
disabled = false,
|
|
25
|
+
closeOnSelect = true,
|
|
26
|
+
helper,
|
|
27
|
+
children,
|
|
28
|
+
class: className
|
|
29
|
+
}: MenuRadioItemProps = $props();
|
|
30
|
+
</script>
|
|
31
|
+
|
|
32
|
+
<DropdownMenu.RadioItem {value} {disabled} {closeOnSelect}>
|
|
33
|
+
{#snippet child({ props, checked })}
|
|
34
|
+
{@const cls = menuCls({ checked })}
|
|
35
|
+
<div {...props} class={cls.item({ class: className })}>
|
|
36
|
+
<Icon
|
|
37
|
+
name={checked ? 'radio_button_checked' : 'radio_button_unchecked'}
|
|
38
|
+
class={cls.indicator()}
|
|
39
|
+
/>
|
|
40
|
+
<div class={cls.itemContent()}>
|
|
41
|
+
{@render children()}
|
|
42
|
+
{#if helper}
|
|
43
|
+
<span class={cls.helper()}>{helper}</span>
|
|
44
|
+
{/if}
|
|
45
|
+
</div>
|
|
46
|
+
<Layer />
|
|
47
|
+
</div>
|
|
48
|
+
{/snippet}
|
|
49
|
+
</DropdownMenu.RadioItem>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { MenuRadioItemProps } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* A single selectable option inside a `MenuRadioGroup`.
|
|
4
|
+
*
|
|
5
|
+
* Wraps bits-ui's `DropdownMenu.RadioItem`. Only one radio item within the
|
|
6
|
+
* same `MenuRadioGroup` can be checked at a time; selecting one unchecks any
|
|
7
|
+
* previously-checked sibling. Renders a leading radio indicator that fills
|
|
8
|
+
* in when selected.
|
|
9
|
+
*
|
|
10
|
+
* Contrast with `MenuCheckboxItem`, whose checked state is independent of any
|
|
11
|
+
* sibling item.
|
|
12
|
+
*
|
|
13
|
+
* @see https://m3.material.io/components/menus/guidelines
|
|
14
|
+
*/
|
|
15
|
+
declare const MenuRadioItem: import("svelte").Component<MenuRadioItemProps, {}, "">;
|
|
16
|
+
type MenuRadioItem = ReturnType<typeof MenuRadioItem>;
|
|
17
|
+
export default MenuRadioItem;
|