@noxlovette/material 0.3.2 → 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/chips/index.js +6 -0
- 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/ListItem.stories.svelte +100 -0
- package/dist/components/containers/list/ListItem.stories.svelte.d.ts +19 -0
- package/dist/components/containers/list/theme.d.ts +14 -14
- package/dist/components/containers/list/theme.js +3 -3
- 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/Command.stories.svelte +86 -0
- package/dist/components/forms/command/Command.stories.svelte.d.ts +19 -0
- package/dist/components/forms/command/theme.d.ts +35 -35
- package/dist/components/forms/command/theme.js +4 -4
- 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.stories.svelte +90 -0
- package/dist/components/forms/tooltip/Tooltip.stories.svelte.d.ts +19 -0
- package/dist/components/forms/tooltip/Tooltip.svelte +5 -4
- package/dist/components/forms/tooltip/theme.d.ts +5 -2
- package/dist/components/forms/tooltip/theme.js +6 -5
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.js +1 -0
- package/dist/components/misc/Avatar.stories.svelte +63 -0
- package/dist/components/misc/Avatar.stories.svelte.d.ts +19 -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 +9 -3
- 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/time/theme.js +2 -2
- 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 +41 -0
- package/dist/components/typography/kbd/Kbd.stories.svelte.d.ts +19 -0
- package/dist/components/typography/kbd/theme.d.ts +9 -9
- package/dist/components/typography/kbd/theme.js +2 -2
- 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 -29
- package/dist/components/containers/merger/InputMerger.svelte.d.ts +0 -14
- package/dist/components/containers/merger/index.d.ts +0 -1
- package/dist/components/containers/merger/index.js +0 -3
- 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
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
<script module lang="ts">
|
|
2
|
+
import { defineMeta } from '@storybook/addon-svelte-csf';
|
|
3
|
+
import ConnectedButtonGroup from './ConnectedButtonGroup.svelte';
|
|
4
|
+
import ConnectedButtonGroupItem from './ConnectedButtonGroupItem.svelte';
|
|
5
|
+
|
|
6
|
+
const { Story } = defineMeta({
|
|
7
|
+
title: 'Buttons/Connected Button Group',
|
|
8
|
+
component: ConnectedButtonGroup,
|
|
9
|
+
argTypes: {
|
|
10
|
+
type: {
|
|
11
|
+
control: 'select',
|
|
12
|
+
options: ['single', 'multiple']
|
|
13
|
+
},
|
|
14
|
+
orientation: {
|
|
15
|
+
control: 'select',
|
|
16
|
+
options: ['horizontal', 'vertical']
|
|
17
|
+
},
|
|
18
|
+
shape: {
|
|
19
|
+
control: 'select',
|
|
20
|
+
options: ['round', 'square']
|
|
21
|
+
},
|
|
22
|
+
size: {
|
|
23
|
+
control: 'select',
|
|
24
|
+
options: ['xs', 'sm', 'md', 'lg', 'xl']
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
args: {
|
|
28
|
+
type: 'single',
|
|
29
|
+
orientation: 'horizontal',
|
|
30
|
+
shape: 'round',
|
|
31
|
+
size: 'sm'
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
</script>
|
|
35
|
+
|
|
36
|
+
<Story name="Playground">
|
|
37
|
+
{#snippet template(args)}
|
|
38
|
+
<ConnectedButtonGroup
|
|
39
|
+
type={args.type}
|
|
40
|
+
orientation={args.orientation}
|
|
41
|
+
shape={args.shape}
|
|
42
|
+
size={args.size}
|
|
43
|
+
value="left"
|
|
44
|
+
>
|
|
45
|
+
<ConnectedButtonGroupItem
|
|
46
|
+
value="left"
|
|
47
|
+
label="Left"
|
|
48
|
+
iconProps={{ name: 'format_align_left' }}
|
|
49
|
+
/>
|
|
50
|
+
<ConnectedButtonGroupItem
|
|
51
|
+
value="center"
|
|
52
|
+
label="Center"
|
|
53
|
+
iconProps={{ name: 'format_align_center' }}
|
|
54
|
+
/>
|
|
55
|
+
<ConnectedButtonGroupItem
|
|
56
|
+
value="right"
|
|
57
|
+
label="Right"
|
|
58
|
+
iconProps={{ name: 'format_align_right' }}
|
|
59
|
+
/>
|
|
60
|
+
</ConnectedButtonGroup>
|
|
61
|
+
{/snippet}
|
|
62
|
+
</Story>
|
|
63
|
+
|
|
64
|
+
<Story name="Multi-select" asChild>
|
|
65
|
+
<div class="p-6">
|
|
66
|
+
<ConnectedButtonGroup type="multiple" value={['bold']}>
|
|
67
|
+
<ConnectedButtonGroupItem value="bold" label="Bold" iconProps={{ name: 'format_bold' }} />
|
|
68
|
+
<ConnectedButtonGroupItem
|
|
69
|
+
value="italic"
|
|
70
|
+
label="Italic"
|
|
71
|
+
iconProps={{ name: 'format_italic' }}
|
|
72
|
+
/>
|
|
73
|
+
<ConnectedButtonGroupItem
|
|
74
|
+
value="underline"
|
|
75
|
+
label="Underline"
|
|
76
|
+
iconProps={{ name: 'format_underlined' }}
|
|
77
|
+
/>
|
|
78
|
+
</ConnectedButtonGroup>
|
|
79
|
+
</div>
|
|
80
|
+
</Story>
|
|
81
|
+
|
|
82
|
+
<Story name="Icon Only" asChild>
|
|
83
|
+
<div class="p-6">
|
|
84
|
+
<ConnectedButtonGroup type="single" value="list">
|
|
85
|
+
<ConnectedButtonGroupItem value="list" iconProps={{ name: 'view_list' }} />
|
|
86
|
+
<ConnectedButtonGroupItem value="grid" iconProps={{ name: 'grid_view' }} />
|
|
87
|
+
</ConnectedButtonGroup>
|
|
88
|
+
</div>
|
|
89
|
+
</Story>
|
|
90
|
+
|
|
91
|
+
<Story name="Square Shape" asChild>
|
|
92
|
+
<div class="p-6">
|
|
93
|
+
<ConnectedButtonGroup type="single" shape="square" value="list">
|
|
94
|
+
<ConnectedButtonGroupItem value="list" iconProps={{ name: 'view_list' }} />
|
|
95
|
+
<ConnectedButtonGroupItem value="grid" iconProps={{ name: 'grid_view' }} />
|
|
96
|
+
</ConnectedButtonGroup>
|
|
97
|
+
</div>
|
|
98
|
+
</Story>
|
|
99
|
+
|
|
100
|
+
<Story name="Sizes" asChild>
|
|
101
|
+
<div class="flex flex-col gap-6 p-6">
|
|
102
|
+
{#each ['xs', 'sm', 'md', 'lg', 'xl'] as const as size (size)}
|
|
103
|
+
<ConnectedButtonGroup type="single" {size} value="list">
|
|
104
|
+
<ConnectedButtonGroupItem value="list" iconProps={{ name: 'view_list' }} />
|
|
105
|
+
<ConnectedButtonGroupItem value="grid" iconProps={{ name: 'grid_view' }} />
|
|
106
|
+
</ConnectedButtonGroup>
|
|
107
|
+
{/each}
|
|
108
|
+
</div>
|
|
109
|
+
</Story>
|
|
110
|
+
|
|
111
|
+
<Story name="Vertical" asChild>
|
|
112
|
+
<div class="p-6">
|
|
113
|
+
<ConnectedButtonGroup type="single" orientation="vertical" value="list">
|
|
114
|
+
<ConnectedButtonGroupItem value="list" label="List" iconProps={{ name: 'view_list' }} />
|
|
115
|
+
<ConnectedButtonGroupItem value="grid" label="Grid" iconProps={{ name: 'grid_view' }} />
|
|
116
|
+
</ConnectedButtonGroup>
|
|
117
|
+
</div>
|
|
118
|
+
</Story>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import ConnectedButtonGroup from './ConnectedButtonGroup.svelte';
|
|
2
|
+
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> {
|
|
3
|
+
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
|
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 ConnectedButtonGroup: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
|
|
16
|
+
[evt: string]: CustomEvent<any>;
|
|
17
|
+
}, {}, {}, string>;
|
|
18
|
+
type ConnectedButtonGroup = InstanceType<typeof ConnectedButtonGroup>;
|
|
19
|
+
export default ConnectedButtonGroup;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
@component
|
|
3
|
+
A connected button group — the M3 replacement for the deprecated segmented
|
|
4
|
+
button. Items sit in a shared pill (or square) shape with a small gap between
|
|
5
|
+
them; selecting or pressing an item changes only that item's own shape and
|
|
6
|
+
color, never its neighbors'.
|
|
7
|
+
|
|
8
|
+
@see https://m3.material.io/components/button-groups/overview
|
|
9
|
+
-->
|
|
10
|
+
<script lang="ts">
|
|
11
|
+
import { ToggleGroup } from 'bits-ui';
|
|
12
|
+
import clsx from 'clsx';
|
|
13
|
+
import { setContext } from 'svelte';
|
|
14
|
+
import { connectedButtonGroup } from './theme.js';
|
|
15
|
+
import type { ConnectedButtonGroupCtx, ConnectedButtonGroupProps } from './types.js';
|
|
16
|
+
|
|
17
|
+
let {
|
|
18
|
+
type,
|
|
19
|
+
value = $bindable(undefined),
|
|
20
|
+
onValueChange,
|
|
21
|
+
disabled = false,
|
|
22
|
+
loop = true,
|
|
23
|
+
orientation = 'horizontal',
|
|
24
|
+
shape = 'round',
|
|
25
|
+
size = 'sm',
|
|
26
|
+
children,
|
|
27
|
+
class: className
|
|
28
|
+
}: ConnectedButtonGroupProps = $props();
|
|
29
|
+
|
|
30
|
+
const cls = $derived(connectedButtonGroup({ orientation }));
|
|
31
|
+
|
|
32
|
+
setContext<ConnectedButtonGroupCtx>('connectedButtonGroup', {
|
|
33
|
+
get size() {
|
|
34
|
+
return size;
|
|
35
|
+
},
|
|
36
|
+
get shape() {
|
|
37
|
+
return shape;
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
</script>
|
|
41
|
+
|
|
42
|
+
<ToggleGroup.Root
|
|
43
|
+
{type}
|
|
44
|
+
bind:value
|
|
45
|
+
{onValueChange}
|
|
46
|
+
{disabled}
|
|
47
|
+
{loop}
|
|
48
|
+
{orientation}
|
|
49
|
+
class={cls.root({ class: clsx(className) })}
|
|
50
|
+
>
|
|
51
|
+
{@render children?.()}
|
|
52
|
+
</ToggleGroup.Root>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ConnectedButtonGroupProps } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* A connected button group — the M3 replacement for the deprecated segmented
|
|
4
|
+
* button. Items sit in a shared pill (or square) shape with a small gap between
|
|
5
|
+
* them; selecting or pressing an item changes only that item's own shape and
|
|
6
|
+
* color, never its neighbors'.
|
|
7
|
+
*
|
|
8
|
+
* @see https://m3.material.io/components/button-groups/overview
|
|
9
|
+
*/
|
|
10
|
+
declare const ConnectedButtonGroup: import("svelte").Component<ConnectedButtonGroupProps, {}, "value">;
|
|
11
|
+
type ConnectedButtonGroup = ReturnType<typeof ConnectedButtonGroup>;
|
|
12
|
+
export default ConnectedButtonGroup;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
@component
|
|
3
|
+
A single item within a ConnectedButtonGroup. Selection is communicated through
|
|
4
|
+
shape (round collapsing toward square) and color, matching the M3 spec — not
|
|
5
|
+
through an overlaid check icon.
|
|
6
|
+
-->
|
|
7
|
+
<script lang="ts">
|
|
8
|
+
import { ToggleGroup } from 'bits-ui';
|
|
9
|
+
import clsx from 'clsx';
|
|
10
|
+
import { getContext } from 'svelte';
|
|
11
|
+
import { Icon, Layer } from '../../../utils/index.js';
|
|
12
|
+
import { connectedButtonGroupItem } from './theme.js';
|
|
13
|
+
import type { ConnectedButtonGroupCtx, ConnectedButtonGroupItemProps } from './types.js';
|
|
14
|
+
|
|
15
|
+
let {
|
|
16
|
+
value,
|
|
17
|
+
label,
|
|
18
|
+
iconProps,
|
|
19
|
+
disabled = false,
|
|
20
|
+
class: className
|
|
21
|
+
}: ConnectedButtonGroupItemProps = $props();
|
|
22
|
+
|
|
23
|
+
const ctx = getContext<ConnectedButtonGroupCtx | undefined>('connectedButtonGroup');
|
|
24
|
+
const size = $derived(ctx?.size ?? 'sm');
|
|
25
|
+
const shape = $derived(ctx?.shape ?? 'round');
|
|
26
|
+
const { base, icon } = $derived(connectedButtonGroupItem({ size, shape }));
|
|
27
|
+
</script>
|
|
28
|
+
|
|
29
|
+
<ToggleGroup.Item {value} {disabled} class={base({ class: clsx(className) })}>
|
|
30
|
+
{#if iconProps}
|
|
31
|
+
<Icon {...iconProps} class={icon()} />
|
|
32
|
+
{/if}
|
|
33
|
+
{#if label}
|
|
34
|
+
<span>{label}</span>
|
|
35
|
+
{/if}
|
|
36
|
+
<Layer />
|
|
37
|
+
</ToggleGroup.Item>
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ConnectedButtonGroupItemProps } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* A single item within a ConnectedButtonGroup. Selection is communicated through
|
|
4
|
+
* shape (round collapsing toward square) and color, matching the M3 spec — not
|
|
5
|
+
* through an overlaid check icon.
|
|
6
|
+
*/
|
|
7
|
+
declare const ConnectedButtonGroupItem: import("svelte").Component<ConnectedButtonGroupItemProps, {}, "">;
|
|
8
|
+
type ConnectedButtonGroupItem = ReturnType<typeof ConnectedButtonGroupItem>;
|
|
9
|
+
export default ConnectedButtonGroupItem;
|
|
@@ -1,2 +1,4 @@
|
|
|
1
|
+
export * from './theme.js';
|
|
1
2
|
export * from './types.js';
|
|
2
|
-
export { default as
|
|
3
|
+
export { default as ConnectedButtonGroup } from './ConnectedButtonGroup.svelte';
|
|
4
|
+
export { default as ConnectedButtonGroupItem } from './ConnectedButtonGroupItem.svelte';
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
// THIS FILE IS AUTO-GENERATED BY scripts/generate-components-index.ts - DO NOT EDIT MANUALLY
|
|
2
2
|
// re-export TS/JS modules from this folder
|
|
3
|
+
export * from './theme.js';
|
|
3
4
|
export * from './types.js';
|
|
4
5
|
// default exports for components in this folder
|
|
5
|
-
export { default as
|
|
6
|
+
export { default as ConnectedButtonGroup } from './ConnectedButtonGroup.svelte';
|
|
7
|
+
export { default as ConnectedButtonGroupItem } from './ConnectedButtonGroupItem.svelte';
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { type VariantProps } from 'tailwind-variants';
|
|
2
|
+
export type ConnectedButtonGroupVariants = VariantProps<typeof connectedButtonGroup>;
|
|
3
|
+
export type ConnectedButtonGroupItemVariants = VariantProps<typeof connectedButtonGroupItem>;
|
|
4
|
+
export declare const connectedButtonGroup: import("tailwind-variants").TVReturnType<{
|
|
5
|
+
orientation: {
|
|
6
|
+
horizontal: {
|
|
7
|
+
root: string;
|
|
8
|
+
};
|
|
9
|
+
vertical: {
|
|
10
|
+
root: string;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
}, {
|
|
14
|
+
root: string;
|
|
15
|
+
}, undefined, {
|
|
16
|
+
orientation: {
|
|
17
|
+
horizontal: {
|
|
18
|
+
root: string;
|
|
19
|
+
};
|
|
20
|
+
vertical: {
|
|
21
|
+
root: string;
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
}, {
|
|
25
|
+
root: string;
|
|
26
|
+
}, import("tailwind-variants").TVReturnTypeLike<{
|
|
27
|
+
orientation: {
|
|
28
|
+
horizontal: {
|
|
29
|
+
root: string;
|
|
30
|
+
};
|
|
31
|
+
vertical: {
|
|
32
|
+
root: string;
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
}, {
|
|
36
|
+
root: string;
|
|
37
|
+
}>>;
|
|
38
|
+
export declare const connectedButtonGroupItem: import("tailwind-variants").TVReturnType<{
|
|
39
|
+
size: {
|
|
40
|
+
xs: {
|
|
41
|
+
base: string;
|
|
42
|
+
};
|
|
43
|
+
sm: {
|
|
44
|
+
base: string;
|
|
45
|
+
};
|
|
46
|
+
md: {
|
|
47
|
+
base: string;
|
|
48
|
+
};
|
|
49
|
+
lg: {
|
|
50
|
+
base: string;
|
|
51
|
+
};
|
|
52
|
+
xl: {
|
|
53
|
+
base: string;
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
shape: {
|
|
57
|
+
round: {
|
|
58
|
+
base: string;
|
|
59
|
+
};
|
|
60
|
+
square: {
|
|
61
|
+
base: string;
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
}, {
|
|
65
|
+
base: string;
|
|
66
|
+
icon: string;
|
|
67
|
+
}, undefined, {
|
|
68
|
+
size: {
|
|
69
|
+
xs: {
|
|
70
|
+
base: string;
|
|
71
|
+
};
|
|
72
|
+
sm: {
|
|
73
|
+
base: string;
|
|
74
|
+
};
|
|
75
|
+
md: {
|
|
76
|
+
base: string;
|
|
77
|
+
};
|
|
78
|
+
lg: {
|
|
79
|
+
base: string;
|
|
80
|
+
};
|
|
81
|
+
xl: {
|
|
82
|
+
base: string;
|
|
83
|
+
};
|
|
84
|
+
};
|
|
85
|
+
shape: {
|
|
86
|
+
round: {
|
|
87
|
+
base: string;
|
|
88
|
+
};
|
|
89
|
+
square: {
|
|
90
|
+
base: string;
|
|
91
|
+
};
|
|
92
|
+
};
|
|
93
|
+
}, {
|
|
94
|
+
base: string;
|
|
95
|
+
icon: string;
|
|
96
|
+
}, import("tailwind-variants").TVReturnTypeLike<{
|
|
97
|
+
size: {
|
|
98
|
+
xs: {
|
|
99
|
+
base: string;
|
|
100
|
+
};
|
|
101
|
+
sm: {
|
|
102
|
+
base: string;
|
|
103
|
+
};
|
|
104
|
+
md: {
|
|
105
|
+
base: string;
|
|
106
|
+
};
|
|
107
|
+
lg: {
|
|
108
|
+
base: string;
|
|
109
|
+
};
|
|
110
|
+
xl: {
|
|
111
|
+
base: string;
|
|
112
|
+
};
|
|
113
|
+
};
|
|
114
|
+
shape: {
|
|
115
|
+
round: {
|
|
116
|
+
base: string;
|
|
117
|
+
};
|
|
118
|
+
square: {
|
|
119
|
+
base: string;
|
|
120
|
+
};
|
|
121
|
+
};
|
|
122
|
+
}, {
|
|
123
|
+
base: string;
|
|
124
|
+
icon: string;
|
|
125
|
+
}>>;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { tv } from 'tailwind-variants';
|
|
2
|
+
export const connectedButtonGroup = tv({
|
|
3
|
+
slots: {
|
|
4
|
+
root: 'flex w-full items-stretch gap-0.5'
|
|
5
|
+
},
|
|
6
|
+
variants: {
|
|
7
|
+
orientation: {
|
|
8
|
+
horizontal: { root: 'flex-row' },
|
|
9
|
+
vertical: { root: 'h-auto flex-col' }
|
|
10
|
+
}
|
|
11
|
+
},
|
|
12
|
+
defaultVariants: {
|
|
13
|
+
orientation: 'horizontal'
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
export const connectedButtonGroupItem = tv({
|
|
17
|
+
slots: {
|
|
18
|
+
base: 'md-btn-connected layer-container state-layer relative inline-flex min-w-12 flex-1 items-center justify-center gap-2 bg-md-sys-color-surface-container-high px-4 md-sys-typescale-label-large text-md-sys-color-on-surface-variant outline-none disabled:cursor-not-allowed disabled:opacity-38 data-[state=on]:bg-md-sys-color-primary data-[state=on]:text-md-sys-color-on-primary',
|
|
19
|
+
icon: 'size-[18px] text-[18px]'
|
|
20
|
+
},
|
|
21
|
+
variants: {
|
|
22
|
+
size: {
|
|
23
|
+
xs: { base: 'h-8 [--cbg-inner:0.25rem]' },
|
|
24
|
+
sm: { base: 'h-10 [--cbg-inner:0.5rem]' },
|
|
25
|
+
md: { base: 'h-14 [--cbg-inner:0.5rem]' },
|
|
26
|
+
lg: { base: 'h-24 [--cbg-inner:1rem]' },
|
|
27
|
+
xl: { base: 'h-34 [--cbg-inner:1.25rem]' }
|
|
28
|
+
},
|
|
29
|
+
shape: {
|
|
30
|
+
round: { base: '[--cbg-outer:9999px]' },
|
|
31
|
+
square: { base: '[--cbg-outer:var(--cbg-inner)]' }
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
defaultVariants: {
|
|
35
|
+
size: 'sm',
|
|
36
|
+
shape: 'round'
|
|
37
|
+
}
|
|
38
|
+
});
|
|
@@ -1,14 +1,33 @@
|
|
|
1
|
+
import type { IconProps } from '../../../utils/index.js';
|
|
1
2
|
import type { Snippet } from 'svelte';
|
|
2
|
-
import type {
|
|
3
|
-
export
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
3
|
+
import type { ConnectedButtonGroupVariants } from './theme.js';
|
|
4
|
+
export type ConnectedButtonGroupCtx = {
|
|
5
|
+
size: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
6
|
+
shape: 'round' | 'square';
|
|
7
|
+
};
|
|
8
|
+
export type ConnectedButtonGroupProps = ConnectedButtonGroupVariants & {
|
|
9
|
+
/** Whether only one item can be active at a time, or multiple. */
|
|
10
|
+
type: 'single' | 'multiple';
|
|
11
|
+
/** Currently selected value(s). @bindable */
|
|
12
|
+
value?: any;
|
|
13
|
+
onValueChange?: (value: any) => void;
|
|
14
|
+
disabled?: boolean;
|
|
15
|
+
loop?: boolean;
|
|
16
|
+
orientation?: 'horizontal' | 'vertical';
|
|
17
|
+
/** Outer corner shape of the group. A selected/pressed item collapses to its inner corner size regardless. */
|
|
18
|
+
shape?: ConnectedButtonGroupCtx['shape'];
|
|
19
|
+
/** Drives the group's height and inner corner size. Match the size of the buttons this replaces. */
|
|
20
|
+
size?: ConnectedButtonGroupCtx['size'];
|
|
21
|
+
children?: Snippet;
|
|
22
|
+
class?: string;
|
|
23
|
+
};
|
|
24
|
+
export type ConnectedButtonGroupItemProps = {
|
|
25
|
+
/** The value this item represents. */
|
|
26
|
+
value: string;
|
|
27
|
+
/** Text label displayed inside the item. */
|
|
28
|
+
label?: string;
|
|
29
|
+
/** Optional icon. Stays visible when selected — selection is shown via shape and color, not an icon swap. */
|
|
30
|
+
iconProps?: IconProps;
|
|
31
|
+
disabled?: boolean;
|
|
32
|
+
class?: string;
|
|
33
|
+
};
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
// folder re-exports (export everything from these folders)
|
|
3
3
|
export * from './button-group/index.js';
|
|
4
4
|
export * from './connected/index.js';
|
|
5
|
+
export * from './split-button/index.js';
|
|
5
6
|
// re-export TS/JS modules from this folder
|
|
6
7
|
export * from './theme.js';
|
|
7
8
|
export * from './types.js';
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
<script module lang="ts">
|
|
2
|
+
import { defineMeta } from '@storybook/addon-svelte-csf';
|
|
3
|
+
import MenuItem from '../../containers/menu/menu-item/MenuItem.svelte';
|
|
4
|
+
import SplitButton from './SplitButton.svelte';
|
|
5
|
+
|
|
6
|
+
const { Story } = defineMeta({
|
|
7
|
+
title: 'Buttons/Split Button',
|
|
8
|
+
component: SplitButton,
|
|
9
|
+
argTypes: {
|
|
10
|
+
variant: {
|
|
11
|
+
control: 'select',
|
|
12
|
+
options: ['elevated', 'filled', 'tonal', 'outlined', 'text']
|
|
13
|
+
},
|
|
14
|
+
color: {
|
|
15
|
+
control: 'select',
|
|
16
|
+
options: ['default', 'primary', 'secondary', 'tertiary', 'error']
|
|
17
|
+
},
|
|
18
|
+
size: {
|
|
19
|
+
control: 'select',
|
|
20
|
+
options: ['xs', 'sm', 'md', 'lg', 'xl']
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
args: {
|
|
24
|
+
variant: 'filled',
|
|
25
|
+
color: 'default',
|
|
26
|
+
size: 'md'
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
</script>
|
|
30
|
+
|
|
31
|
+
<Story name="Playground">
|
|
32
|
+
{#snippet template(args)}
|
|
33
|
+
<SplitButton variant={args.variant} color={args.color} size={args.size}>
|
|
34
|
+
{#snippet children()}
|
|
35
|
+
Reply
|
|
36
|
+
{/snippet}
|
|
37
|
+
{#snippet menuChildren()}
|
|
38
|
+
<MenuItem iconProps={{ name: 'reply_all' }}>Reply all</MenuItem>
|
|
39
|
+
<MenuItem iconProps={{ name: 'forward' }}>Forward</MenuItem>
|
|
40
|
+
{/snippet}
|
|
41
|
+
</SplitButton>
|
|
42
|
+
{/snippet}
|
|
43
|
+
</Story>
|
|
44
|
+
|
|
45
|
+
<Story name="WithLeadingIcon" asChild>
|
|
46
|
+
<div class="p-6">
|
|
47
|
+
<SplitButton iconProps={{ name: 'send' }}>
|
|
48
|
+
{#snippet children()}
|
|
49
|
+
Send
|
|
50
|
+
{/snippet}
|
|
51
|
+
{#snippet menuChildren()}
|
|
52
|
+
<MenuItem iconProps={{ name: 'schedule_send' }}>Send later</MenuItem>
|
|
53
|
+
<MenuItem iconProps={{ name: 'drafts' }}>Save as draft</MenuItem>
|
|
54
|
+
{/snippet}
|
|
55
|
+
</SplitButton>
|
|
56
|
+
</div>
|
|
57
|
+
</Story>
|
|
58
|
+
|
|
59
|
+
<Story name="Variants" asChild>
|
|
60
|
+
<div class="flex flex-wrap items-center gap-6 p-6">
|
|
61
|
+
{#each ['elevated', 'filled', 'tonal', 'outlined', 'text'] as const as variant (variant)}
|
|
62
|
+
<SplitButton {variant}>
|
|
63
|
+
{#snippet children()}
|
|
64
|
+
Reply
|
|
65
|
+
{/snippet}
|
|
66
|
+
{#snippet menuChildren()}
|
|
67
|
+
<MenuItem iconProps={{ name: 'reply_all' }}>Reply all</MenuItem>
|
|
68
|
+
<MenuItem iconProps={{ name: 'forward' }}>Forward</MenuItem>
|
|
69
|
+
{/snippet}
|
|
70
|
+
</SplitButton>
|
|
71
|
+
{/each}
|
|
72
|
+
</div>
|
|
73
|
+
</Story>
|
|
74
|
+
|
|
75
|
+
<Story name="Sizes" asChild>
|
|
76
|
+
<div class="flex flex-wrap items-center gap-6 p-6">
|
|
77
|
+
{#each ['xs', 'sm', 'md', 'lg', 'xl'] as const as size (size)}
|
|
78
|
+
<SplitButton {size}>
|
|
79
|
+
{#snippet children()}
|
|
80
|
+
Reply
|
|
81
|
+
{/snippet}
|
|
82
|
+
{#snippet menuChildren()}
|
|
83
|
+
<MenuItem iconProps={{ name: 'reply_all' }}>Reply all</MenuItem>
|
|
84
|
+
<MenuItem iconProps={{ name: 'forward' }}>Forward</MenuItem>
|
|
85
|
+
{/snippet}
|
|
86
|
+
</SplitButton>
|
|
87
|
+
{/each}
|
|
88
|
+
</div>
|
|
89
|
+
</Story>
|
|
90
|
+
|
|
91
|
+
<Story name="Disabled" asChild>
|
|
92
|
+
<div class="p-6">
|
|
93
|
+
<SplitButton disabled>
|
|
94
|
+
{#snippet children()}
|
|
95
|
+
Reply
|
|
96
|
+
{/snippet}
|
|
97
|
+
{#snippet menuChildren()}
|
|
98
|
+
<MenuItem iconProps={{ name: 'reply_all' }}>Reply all</MenuItem>
|
|
99
|
+
<MenuItem iconProps={{ name: 'forward' }}>Forward</MenuItem>
|
|
100
|
+
{/snippet}
|
|
101
|
+
</SplitButton>
|
|
102
|
+
</div>
|
|
103
|
+
</Story>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import SplitButton from './SplitButton.svelte';
|
|
2
|
+
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> {
|
|
3
|
+
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
|
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 SplitButton: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
|
|
16
|
+
[evt: string]: CustomEvent<any>;
|
|
17
|
+
}, {}, {}, string>;
|
|
18
|
+
type SplitButton = InstanceType<typeof SplitButton>;
|
|
19
|
+
export default SplitButton;
|