@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
package/README.md
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# Google's Material Design System in Svelte
|
package/dist/actions/index.d.ts
CHANGED
package/dist/actions/index.js
CHANGED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export type RovingFocusGroupParams = {
|
|
2
|
+
/** CSS selector (relative to the node) matching the focusable candidates. */
|
|
3
|
+
candidateSelector: string;
|
|
4
|
+
/** Loop from the last candidate back to the first (and vice versa). */
|
|
5
|
+
loop?: boolean;
|
|
6
|
+
/** Disable the group without unmounting it (leaves existing tabindex/focus alone). */
|
|
7
|
+
enabled?: boolean;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Roving-tabindex keyboard navigation for a group of sibling elements (e.g. table rows,
|
|
11
|
+
* list items): only one candidate is ever a Tab stop, and ArrowDown/ArrowUp (plus the
|
|
12
|
+
* j/k vim aliases) move focus — and the roving tab stop — between candidates. Tab and
|
|
13
|
+
* Shift+Tab keep working natively since they only ever see the single active tabindex=0
|
|
14
|
+
* candidate. Modeled on bits-ui's RovingFocusGroup (packages/bits-ui/src/lib/internal/
|
|
15
|
+
* roving-focus-group.ts), adapted to a plain Svelte action instead of a headless class.
|
|
16
|
+
*/
|
|
17
|
+
export declare function rovingFocusGroup(node: HTMLElement, params: RovingFocusGroupParams): {
|
|
18
|
+
update(newParams: RovingFocusGroupParams): void;
|
|
19
|
+
destroy(): void;
|
|
20
|
+
};
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
const NEXT_KEYS = new Set(['ArrowDown', 'j']);
|
|
2
|
+
const PREV_KEYS = new Set(['ArrowUp', 'k']);
|
|
3
|
+
/**
|
|
4
|
+
* Roving-tabindex keyboard navigation for a group of sibling elements (e.g. table rows,
|
|
5
|
+
* list items): only one candidate is ever a Tab stop, and ArrowDown/ArrowUp (plus the
|
|
6
|
+
* j/k vim aliases) move focus — and the roving tab stop — between candidates. Tab and
|
|
7
|
+
* Shift+Tab keep working natively since they only ever see the single active tabindex=0
|
|
8
|
+
* candidate. Modeled on bits-ui's RovingFocusGroup (packages/bits-ui/src/lib/internal/
|
|
9
|
+
* roving-focus-group.ts), adapted to a plain Svelte action instead of a headless class.
|
|
10
|
+
*/
|
|
11
|
+
export function rovingFocusGroup(node, params) {
|
|
12
|
+
let p = params;
|
|
13
|
+
function candidates() {
|
|
14
|
+
return Array.from(node.querySelectorAll(p.candidateSelector));
|
|
15
|
+
}
|
|
16
|
+
function setup() {
|
|
17
|
+
if (!p.enabled)
|
|
18
|
+
return;
|
|
19
|
+
const items = candidates();
|
|
20
|
+
if (!items.length)
|
|
21
|
+
return;
|
|
22
|
+
const active = items.includes(document.activeElement)
|
|
23
|
+
? document.activeElement
|
|
24
|
+
: items[0];
|
|
25
|
+
for (const item of items) {
|
|
26
|
+
item.tabIndex = item === active ? 0 : -1;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
function handleFocusIn(event) {
|
|
30
|
+
if (!p.enabled)
|
|
31
|
+
return;
|
|
32
|
+
const items = candidates();
|
|
33
|
+
const target = event.target;
|
|
34
|
+
if (!items.includes(target))
|
|
35
|
+
return;
|
|
36
|
+
for (const item of items) {
|
|
37
|
+
item.tabIndex = item === target ? 0 : -1;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
function handleKeydown(event) {
|
|
41
|
+
if (!p.enabled)
|
|
42
|
+
return;
|
|
43
|
+
const target = event.target;
|
|
44
|
+
const items = candidates();
|
|
45
|
+
const index = items.indexOf(target);
|
|
46
|
+
if (index === -1)
|
|
47
|
+
return;
|
|
48
|
+
let nextIndex;
|
|
49
|
+
if (NEXT_KEYS.has(event.key))
|
|
50
|
+
nextIndex = index + 1;
|
|
51
|
+
else if (PREV_KEYS.has(event.key))
|
|
52
|
+
nextIndex = index - 1;
|
|
53
|
+
else if (event.key === 'Home')
|
|
54
|
+
nextIndex = 0;
|
|
55
|
+
else if (event.key === 'End')
|
|
56
|
+
nextIndex = items.length - 1;
|
|
57
|
+
if (nextIndex === undefined)
|
|
58
|
+
return;
|
|
59
|
+
if (nextIndex < 0)
|
|
60
|
+
nextIndex = p.loop ? items.length - 1 : 0;
|
|
61
|
+
else if (nextIndex >= items.length)
|
|
62
|
+
nextIndex = p.loop ? 0 : items.length - 1;
|
|
63
|
+
const nextItem = items[nextIndex];
|
|
64
|
+
if (!nextItem || nextItem === target)
|
|
65
|
+
return;
|
|
66
|
+
event.preventDefault();
|
|
67
|
+
nextItem.focus();
|
|
68
|
+
}
|
|
69
|
+
setup();
|
|
70
|
+
node.addEventListener('keydown', handleKeydown);
|
|
71
|
+
node.addEventListener('focusin', handleFocusIn);
|
|
72
|
+
return {
|
|
73
|
+
update(newParams) {
|
|
74
|
+
p = newParams;
|
|
75
|
+
setup();
|
|
76
|
+
},
|
|
77
|
+
destroy() {
|
|
78
|
+
node.removeEventListener('keydown', handleKeydown);
|
|
79
|
+
node.removeEventListener('focusin', handleFocusIn);
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
export declare const badge: import("tailwind-variants").TVReturnType<{
|
|
2
2
|
size: {
|
|
3
|
-
sm:
|
|
4
|
-
lg:
|
|
3
|
+
sm: "size-1.5 top-0 right-3";
|
|
4
|
+
lg: "h-3 min-w-3 p-1 -top-1 right-1";
|
|
5
5
|
};
|
|
6
6
|
}, undefined, "bg-md-sys-color-error text-md-sys-color-on-error absolute rounded-full md-sys-typescale-label-small inline-flex items-center justify-center", {
|
|
7
7
|
size: {
|
|
8
|
-
sm:
|
|
9
|
-
lg:
|
|
8
|
+
sm: "size-1.5 top-0 right-3";
|
|
9
|
+
lg: "h-3 min-w-3 p-1 -top-1 right-1";
|
|
10
10
|
};
|
|
11
|
-
}, undefined, import("tailwind-variants").
|
|
11
|
+
}, undefined, import("tailwind-variants").TVReturnTypeLike<{
|
|
12
12
|
size: {
|
|
13
|
-
sm:
|
|
14
|
-
lg:
|
|
13
|
+
sm: "size-1.5 top-0 right-3";
|
|
14
|
+
lg: "h-3 min-w-3 p-1 -top-1 right-1";
|
|
15
15
|
};
|
|
16
|
-
}, undefined
|
|
16
|
+
}, undefined>>;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
<script module lang="ts">
|
|
2
|
+
import { defineMeta } from '@storybook/addon-svelte-csf';
|
|
3
|
+
import Button from '../Button.svelte';
|
|
4
|
+
import ButtonIcon from '../ButtonIcon.svelte';
|
|
5
|
+
import ButtonGroup from './ButtonGroup.svelte';
|
|
6
|
+
|
|
7
|
+
const { Story } = defineMeta({
|
|
8
|
+
title: 'Buttons/Button Group',
|
|
9
|
+
component: ButtonGroup,
|
|
10
|
+
argTypes: {
|
|
11
|
+
orientation: {
|
|
12
|
+
control: 'select',
|
|
13
|
+
options: ['horizontal', 'vertical']
|
|
14
|
+
},
|
|
15
|
+
size: {
|
|
16
|
+
control: 'select',
|
|
17
|
+
options: ['xs', 'sm', 'md', 'lg', 'xl']
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
args: {
|
|
21
|
+
orientation: 'horizontal',
|
|
22
|
+
size: 'sm'
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
</script>
|
|
26
|
+
|
|
27
|
+
<Story name="Playground">
|
|
28
|
+
{#snippet template(args)}
|
|
29
|
+
<ButtonGroup orientation={args.orientation} size={args.size}>
|
|
30
|
+
<Button variant="tonal">Left</Button>
|
|
31
|
+
<Button variant="tonal">Center</Button>
|
|
32
|
+
<Button variant="tonal">Right</Button>
|
|
33
|
+
</ButtonGroup>
|
|
34
|
+
{/snippet}
|
|
35
|
+
</Story>
|
|
36
|
+
|
|
37
|
+
<Story name="Mixed Variants and Colors" asChild>
|
|
38
|
+
<div class="p-6">
|
|
39
|
+
<ButtonGroup size="sm">
|
|
40
|
+
<Button variant="outlined">Cancel</Button>
|
|
41
|
+
<Button variant="tonal" color="secondary">Save draft</Button>
|
|
42
|
+
<Button variant="filled" color="primary">Publish</Button>
|
|
43
|
+
</ButtonGroup>
|
|
44
|
+
</div>
|
|
45
|
+
</Story>
|
|
46
|
+
|
|
47
|
+
<Story name="Icon Toolbar" asChild>
|
|
48
|
+
<div class="flex flex-wrap gap-8 p-6">
|
|
49
|
+
<ButtonGroup size="sm">
|
|
50
|
+
<ButtonIcon variant="tonal" variation="toggle" iconProps={{ name: 'mic' }} />
|
|
51
|
+
<ButtonIcon variant="tonal" variation="toggle" iconProps={{ name: 'videocam' }} />
|
|
52
|
+
<ButtonIcon variant="tonal" iconProps={{ name: 'more_vert' }} />
|
|
53
|
+
<ButtonIcon variant="filled" color="error" iconProps={{ name: 'call_end' }} />
|
|
54
|
+
</ButtonGroup>
|
|
55
|
+
</div>
|
|
56
|
+
</Story>
|
|
57
|
+
|
|
58
|
+
<Story name="Sizes" asChild>
|
|
59
|
+
<div class="flex flex-wrap items-center gap-8 p-6">
|
|
60
|
+
<ButtonGroup size="xs">
|
|
61
|
+
<Button size="xs" variant="tonal">XS</Button>
|
|
62
|
+
<Button size="xs" variant="tonal">XS</Button>
|
|
63
|
+
</ButtonGroup>
|
|
64
|
+
<ButtonGroup size="md">
|
|
65
|
+
<Button size="md" variant="tonal">M</Button>
|
|
66
|
+
<Button size="md" variant="tonal">M</Button>
|
|
67
|
+
</ButtonGroup>
|
|
68
|
+
<ButtonGroup size="xl">
|
|
69
|
+
<Button size="xl" variant="tonal">XL</Button>
|
|
70
|
+
<Button size="xl" variant="tonal">XL</Button>
|
|
71
|
+
</ButtonGroup>
|
|
72
|
+
</div>
|
|
73
|
+
</Story>
|
|
74
|
+
|
|
75
|
+
<Story name="Vertical" asChild>
|
|
76
|
+
<div class="p-6">
|
|
77
|
+
<ButtonGroup orientation="vertical" size="sm">
|
|
78
|
+
<Button variant="tonal">Top</Button>
|
|
79
|
+
<Button variant="tonal">Middle</Button>
|
|
80
|
+
<Button variant="tonal">Bottom</Button>
|
|
81
|
+
</ButtonGroup>
|
|
82
|
+
</div>
|
|
83
|
+
</Story>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import ButtonGroup from './ButtonGroup.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 ButtonGroup: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
|
|
16
|
+
[evt: string]: CustomEvent<any>;
|
|
17
|
+
}, {}, {}, string>;
|
|
18
|
+
type ButtonGroup = InstanceType<typeof ButtonGroup>;
|
|
19
|
+
export default ButtonGroup;
|
|
@@ -1,49 +1,30 @@
|
|
|
1
1
|
<!--
|
|
2
2
|
@component
|
|
3
|
-
A group
|
|
3
|
+
A standard button group — an invisible container that adds spacing between
|
|
4
|
+
buttons and lets them mix variants, colors, and widths freely. Pressing a
|
|
5
|
+
button also nudges the width of its immediate neighbors, per the M3 spec.
|
|
4
6
|
|
|
5
|
-
|
|
7
|
+
Buttons keep their own identity here; this is a plain layout wrapper around
|
|
8
|
+
`Button` / `ButtonIcon` / `Toggle` children, not a selection primitive. For a
|
|
9
|
+
single/multi-select segmented control, use `ConnectedButtonGroup` instead.
|
|
6
10
|
|
|
7
11
|
@see https://m3.material.io/components/button-groups/overview
|
|
8
12
|
-->
|
|
9
13
|
<script lang="ts">
|
|
10
|
-
import { ToggleGroup } from 'bits-ui';
|
|
11
14
|
import clsx from 'clsx';
|
|
12
|
-
import { setContext } from 'svelte';
|
|
13
15
|
import { buttonGroup } from './theme.js';
|
|
14
16
|
import type { ButtonGroupProps } from './types.js';
|
|
15
17
|
|
|
16
18
|
let {
|
|
17
|
-
type,
|
|
18
|
-
value = $bindable(undefined),
|
|
19
|
-
onValueChange,
|
|
20
|
-
disabled = false,
|
|
21
|
-
loop = true,
|
|
22
19
|
orientation = 'horizontal',
|
|
23
|
-
shape = 'round',
|
|
24
20
|
size = 'sm',
|
|
25
21
|
children,
|
|
26
22
|
class: className
|
|
27
23
|
}: ButtonGroupProps = $props();
|
|
28
24
|
|
|
29
|
-
const cls = $derived(buttonGroup({ orientation,
|
|
30
|
-
|
|
31
|
-
const buttonGroupCtx = {
|
|
32
|
-
get orientation() {
|
|
33
|
-
return orientation;
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
setContext('buttonGroup', buttonGroupCtx);
|
|
25
|
+
const cls = $derived(buttonGroup({ orientation, size }));
|
|
37
26
|
</script>
|
|
38
27
|
|
|
39
|
-
<
|
|
40
|
-
{
|
|
41
|
-
|
|
42
|
-
{onValueChange}
|
|
43
|
-
{disabled}
|
|
44
|
-
{loop}
|
|
45
|
-
{orientation}
|
|
46
|
-
class={cls.root({ class: clsx(className) })}
|
|
47
|
-
>
|
|
48
|
-
{@render children?.()}
|
|
49
|
-
</ToggleGroup.Root>
|
|
28
|
+
<div class={cls.root({ class: clsx(className) })} data-size={size} data-orientation={orientation}>
|
|
29
|
+
{@render children()}
|
|
30
|
+
</div>
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import type { ButtonGroupProps } from './types.js';
|
|
2
2
|
/**
|
|
3
|
-
* A group
|
|
3
|
+
* A standard button group — an invisible container that adds spacing between
|
|
4
|
+
* buttons and lets them mix variants, colors, and widths freely. Pressing a
|
|
5
|
+
* button also nudges the width of its immediate neighbors, per the M3 spec.
|
|
4
6
|
*
|
|
5
|
-
*
|
|
7
|
+
* Buttons keep their own identity here; this is a plain layout wrapper around
|
|
8
|
+
* `Button` / `ButtonIcon` / `Toggle` children, not a selection primitive. For a
|
|
9
|
+
* single/multi-select segmented control, use `ConnectedButtonGroup` instead.
|
|
6
10
|
*
|
|
7
11
|
* @see https://m3.material.io/components/button-groups/overview
|
|
8
12
|
*/
|
|
9
|
-
declare const ButtonGroup: import("svelte").Component<ButtonGroupProps, {}, "
|
|
13
|
+
declare const ButtonGroup: import("svelte").Component<ButtonGroupProps, {}, "">;
|
|
10
14
|
type ButtonGroup = ReturnType<typeof ButtonGroup>;
|
|
11
15
|
export default ButtonGroup;
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
// THIS FILE IS AUTO-GENERATED BY scripts/generate-components-index.ts - DO NOT EDIT MANUALLY
|
|
2
|
+
// re-export TS/JS modules from this folder
|
|
1
3
|
export * from './theme.js';
|
|
2
4
|
export * from './types.js';
|
|
5
|
+
// default exports for components in this folder
|
|
3
6
|
export { default as ButtonGroup } from './ButtonGroup.svelte';
|
|
4
|
-
export { default as ButtonGroupItem } from './ButtonGroupItem.svelte';
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { type VariantProps } from 'tailwind-variants';
|
|
2
2
|
export type ButtonGroupVariants = VariantProps<typeof buttonGroup>;
|
|
3
|
-
export type ButtonGroupItemVariants = VariantProps<typeof buttonGroupItem>;
|
|
4
3
|
export declare const buttonGroup: import("tailwind-variants").TVReturnType<{
|
|
5
4
|
orientation: {
|
|
6
5
|
horizontal: {
|
|
@@ -10,27 +9,12 @@ export declare const buttonGroup: import("tailwind-variants").TVReturnType<{
|
|
|
10
9
|
root: string;
|
|
11
10
|
};
|
|
12
11
|
};
|
|
13
|
-
shape: {
|
|
14
|
-
round: {
|
|
15
|
-
root: string;
|
|
16
|
-
};
|
|
17
|
-
square: {
|
|
18
|
-
root: string;
|
|
19
|
-
};
|
|
20
|
-
};
|
|
21
12
|
size: {
|
|
22
|
-
xs: {
|
|
23
|
-
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
};
|
|
28
|
-
md: {
|
|
29
|
-
root: string;
|
|
30
|
-
};
|
|
31
|
-
lg: {
|
|
32
|
-
root: string;
|
|
33
|
-
};
|
|
13
|
+
xs: {};
|
|
14
|
+
sm: {};
|
|
15
|
+
md: {};
|
|
16
|
+
lg: {};
|
|
17
|
+
xl: {};
|
|
34
18
|
};
|
|
35
19
|
}, {
|
|
36
20
|
root: string;
|
|
@@ -43,31 +27,16 @@ export declare const buttonGroup: import("tailwind-variants").TVReturnType<{
|
|
|
43
27
|
root: string;
|
|
44
28
|
};
|
|
45
29
|
};
|
|
46
|
-
shape: {
|
|
47
|
-
round: {
|
|
48
|
-
root: string;
|
|
49
|
-
};
|
|
50
|
-
square: {
|
|
51
|
-
root: string;
|
|
52
|
-
};
|
|
53
|
-
};
|
|
54
30
|
size: {
|
|
55
|
-
xs: {
|
|
56
|
-
|
|
57
|
-
};
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
};
|
|
61
|
-
md: {
|
|
62
|
-
root: string;
|
|
63
|
-
};
|
|
64
|
-
lg: {
|
|
65
|
-
root: string;
|
|
66
|
-
};
|
|
31
|
+
xs: {};
|
|
32
|
+
sm: {};
|
|
33
|
+
md: {};
|
|
34
|
+
lg: {};
|
|
35
|
+
xl: {};
|
|
67
36
|
};
|
|
68
37
|
}, {
|
|
69
38
|
root: string;
|
|
70
|
-
}, import("tailwind-variants").
|
|
39
|
+
}, import("tailwind-variants").TVReturnTypeLike<{
|
|
71
40
|
orientation: {
|
|
72
41
|
horizontal: {
|
|
73
42
|
root: string;
|
|
@@ -76,68 +45,13 @@ export declare const buttonGroup: import("tailwind-variants").TVReturnType<{
|
|
|
76
45
|
root: string;
|
|
77
46
|
};
|
|
78
47
|
};
|
|
79
|
-
shape: {
|
|
80
|
-
round: {
|
|
81
|
-
root: string;
|
|
82
|
-
};
|
|
83
|
-
square: {
|
|
84
|
-
root: string;
|
|
85
|
-
};
|
|
86
|
-
};
|
|
87
48
|
size: {
|
|
88
|
-
xs: {
|
|
89
|
-
|
|
90
|
-
};
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
};
|
|
94
|
-
md: {
|
|
95
|
-
root: string;
|
|
96
|
-
};
|
|
97
|
-
lg: {
|
|
98
|
-
root: string;
|
|
99
|
-
};
|
|
49
|
+
xs: {};
|
|
50
|
+
sm: {};
|
|
51
|
+
md: {};
|
|
52
|
+
lg: {};
|
|
53
|
+
xl: {};
|
|
100
54
|
};
|
|
101
55
|
}, {
|
|
102
56
|
root: string;
|
|
103
|
-
}
|
|
104
|
-
export declare const buttonGroupItem: import("tailwind-variants").TVReturnType<{
|
|
105
|
-
orientation: {
|
|
106
|
-
horizontal: {
|
|
107
|
-
base: string;
|
|
108
|
-
};
|
|
109
|
-
vertical: {
|
|
110
|
-
base: string;
|
|
111
|
-
};
|
|
112
|
-
};
|
|
113
|
-
}, {
|
|
114
|
-
base: string;
|
|
115
|
-
checkIcon: string;
|
|
116
|
-
icon: string;
|
|
117
|
-
}, undefined, {
|
|
118
|
-
orientation: {
|
|
119
|
-
horizontal: {
|
|
120
|
-
base: string;
|
|
121
|
-
};
|
|
122
|
-
vertical: {
|
|
123
|
-
base: string;
|
|
124
|
-
};
|
|
125
|
-
};
|
|
126
|
-
}, {
|
|
127
|
-
base: string;
|
|
128
|
-
checkIcon: string;
|
|
129
|
-
icon: string;
|
|
130
|
-
}, import("tailwind-variants").TVReturnType<{
|
|
131
|
-
orientation: {
|
|
132
|
-
horizontal: {
|
|
133
|
-
base: string;
|
|
134
|
-
};
|
|
135
|
-
vertical: {
|
|
136
|
-
base: string;
|
|
137
|
-
};
|
|
138
|
-
};
|
|
139
|
-
}, {
|
|
140
|
-
base: string;
|
|
141
|
-
checkIcon: string;
|
|
142
|
-
icon: string;
|
|
143
|
-
}, undefined, unknown, unknown, undefined>>;
|
|
57
|
+
}>>;
|
|
@@ -1,51 +1,23 @@
|
|
|
1
1
|
import { tv } from 'tailwind-variants';
|
|
2
2
|
export const buttonGroup = tv({
|
|
3
3
|
slots: {
|
|
4
|
-
root: '
|
|
4
|
+
root: 'md-btn-group-standard'
|
|
5
5
|
},
|
|
6
6
|
variants: {
|
|
7
7
|
orientation: {
|
|
8
8
|
horizontal: { root: 'flex-row' },
|
|
9
|
-
vertical: { root: 'flex-col
|
|
10
|
-
},
|
|
11
|
-
shape: {
|
|
12
|
-
round: { root: 'rounded-full' },
|
|
13
|
-
square: { root: 'rounded-lg' }
|
|
9
|
+
vertical: { root: 'flex-col' }
|
|
14
10
|
},
|
|
15
11
|
size: {
|
|
16
|
-
xs: {
|
|
17
|
-
sm: {
|
|
18
|
-
md: {
|
|
19
|
-
lg: {
|
|
12
|
+
xs: {},
|
|
13
|
+
sm: {},
|
|
14
|
+
md: {},
|
|
15
|
+
lg: {},
|
|
16
|
+
xl: {}
|
|
20
17
|
}
|
|
21
18
|
},
|
|
22
|
-
compoundVariants: [
|
|
23
|
-
{
|
|
24
|
-
orientation: 'vertical',
|
|
25
|
-
class: { root: 'h-auto w-auto rounded-2xl' }
|
|
26
|
-
}
|
|
27
|
-
],
|
|
28
19
|
defaultVariants: {
|
|
29
20
|
orientation: 'horizontal',
|
|
30
|
-
shape: 'round',
|
|
31
21
|
size: 'sm'
|
|
32
22
|
}
|
|
33
23
|
});
|
|
34
|
-
export const buttonGroupItem = tv({
|
|
35
|
-
slots: {
|
|
36
|
-
base: 'layer-container state-layer relative inline-flex min-w-12 flex-1 items-center justify-center gap-2 px-4 md-sys-typescale-label-large text-md-sys-color-on-surface outline-none transition-colors disabled:cursor-not-allowed disabled:opacity-38 data-[state=on]:bg-md-sys-color-secondary-container data-[state=on]:text-md-sys-color-on-secondary-container',
|
|
37
|
-
checkIcon: 'size-[18px] text-[18px]',
|
|
38
|
-
icon: 'size-[18px] text-[18px]'
|
|
39
|
-
},
|
|
40
|
-
variants: {
|
|
41
|
-
orientation: {
|
|
42
|
-
horizontal: {
|
|
43
|
-
base: '[&:not(:last-child)]:border-r [&:not(:last-child)]:border-md-sys-color-outline'
|
|
44
|
-
},
|
|
45
|
-
vertical: {
|
|
46
|
-
base: '[&:not(:last-child)]:border-b [&:not(:last-child)]:border-md-sys-color-outline'
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
},
|
|
50
|
-
defaultVariants: { orientation: 'horizontal' }
|
|
51
|
-
});
|
|
@@ -1,25 +1,14 @@
|
|
|
1
|
-
import type { IconProps } from '../../../utils/index.js';
|
|
2
1
|
import type { Snippet } from 'svelte';
|
|
3
|
-
import type {
|
|
2
|
+
import type { ButtonGroupVariants } from './theme.js';
|
|
4
3
|
export type ButtonGroupProps = ButtonGroupVariants & {
|
|
5
|
-
/**
|
|
6
|
-
type: 'single' | 'multiple';
|
|
7
|
-
/** Currently selected value(s). @bindable */
|
|
8
|
-
value?: any;
|
|
9
|
-
onValueChange?: (value: any) => void;
|
|
10
|
-
disabled?: boolean;
|
|
11
|
-
loop?: boolean;
|
|
4
|
+
/** Layout direction of the buttons. */
|
|
12
5
|
orientation?: 'horizontal' | 'vertical';
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
label?: string;
|
|
21
|
-
/** Optional leading icon. Replaced by a check mark when selected. */
|
|
22
|
-
iconProps?: IconProps;
|
|
23
|
-
disabled?: boolean;
|
|
6
|
+
/**
|
|
7
|
+
* Drives the gap between buttons and the press-squeeze amount applied to a
|
|
8
|
+
* pressed button's immediate neighbors. Match the size of the buttons inside.
|
|
9
|
+
*/
|
|
10
|
+
size?: ButtonGroupVariants['size'];
|
|
11
|
+
/** The buttons in the group — `Button`, `ButtonIcon`, or `Toggle` components, mixed freely. */
|
|
12
|
+
children: Snippet;
|
|
24
13
|
class?: string;
|
|
25
14
|
};
|