@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
|
@@ -2,29 +2,29 @@ import { type VariantProps } from 'tailwind-variants';
|
|
|
2
2
|
export type LoadingIndicatorVariants = VariantProps<typeof loadingIndicator>;
|
|
3
3
|
export declare const loadingIndicator: import("tailwind-variants").TVReturnType<{
|
|
4
4
|
center: {
|
|
5
|
-
true:
|
|
6
|
-
false:
|
|
5
|
+
true: "mx-auto";
|
|
6
|
+
false: "";
|
|
7
7
|
};
|
|
8
8
|
container: {
|
|
9
|
-
true:
|
|
10
|
-
false:
|
|
9
|
+
true: "text-md-sys-color-on-primary-container bg-md-sys-color-primary-container";
|
|
10
|
+
false: "text-md-sys-color-primary";
|
|
11
11
|
};
|
|
12
12
|
}, undefined, "rounded-full", {
|
|
13
13
|
center: {
|
|
14
|
-
true:
|
|
15
|
-
false:
|
|
14
|
+
true: "mx-auto";
|
|
15
|
+
false: "";
|
|
16
16
|
};
|
|
17
17
|
container: {
|
|
18
|
-
true:
|
|
19
|
-
false:
|
|
18
|
+
true: "text-md-sys-color-on-primary-container bg-md-sys-color-primary-container";
|
|
19
|
+
false: "text-md-sys-color-primary";
|
|
20
20
|
};
|
|
21
|
-
}, undefined, import("tailwind-variants").
|
|
21
|
+
}, undefined, import("tailwind-variants").TVReturnTypeLike<{
|
|
22
22
|
center: {
|
|
23
|
-
true:
|
|
24
|
-
false:
|
|
23
|
+
true: "mx-auto";
|
|
24
|
+
false: "";
|
|
25
25
|
};
|
|
26
26
|
container: {
|
|
27
|
-
true:
|
|
28
|
-
false:
|
|
27
|
+
true: "text-md-sys-color-on-primary-container bg-md-sys-color-primary-container";
|
|
28
|
+
false: "text-md-sys-color-primary";
|
|
29
29
|
};
|
|
30
|
-
}, undefined
|
|
30
|
+
}, undefined>>;
|
package/package.json
CHANGED
|
@@ -1,23 +1,22 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@noxlovette/material",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
7
|
-
"url": "git+https://
|
|
7
|
+
"url": "git+https://codeberg.org/noxlovette/material.git"
|
|
8
8
|
},
|
|
9
9
|
"scripts": {
|
|
10
|
-
"build": "svelte-package
|
|
10
|
+
"build": "svelte-package",
|
|
11
|
+
"watch": "svelte-package --watch",
|
|
11
12
|
"prepublishOnly": "bun run build",
|
|
12
13
|
"check": "svelte-kit sync && svelte-check",
|
|
13
14
|
"test": "vitest run",
|
|
14
15
|
"format": "prettier --write .",
|
|
15
16
|
"dev": "vite dev",
|
|
16
17
|
"storybook": "storybook dev -p 6006",
|
|
17
|
-
"build-storybook": "storybook build"
|
|
18
|
-
|
|
19
|
-
"bin": {
|
|
20
|
-
"material-claude-skill": "./bin/install-skill.js"
|
|
18
|
+
"build-storybook": "storybook build",
|
|
19
|
+
"index": "bun run scripts/generate-components-index.ts"
|
|
21
20
|
},
|
|
22
21
|
"files": [
|
|
23
22
|
"dist",
|
|
@@ -48,51 +47,53 @@
|
|
|
48
47
|
"devDependencies": {
|
|
49
48
|
"@eslint/compat": "^2.1.0",
|
|
50
49
|
"@eslint/js": "^10.0.1",
|
|
51
|
-
"@storybook/addon-a11y": "10.5.
|
|
52
|
-
"@storybook/addon-docs": "10.5.
|
|
50
|
+
"@storybook/addon-a11y": "10.5.10",
|
|
51
|
+
"@storybook/addon-docs": "10.5.10",
|
|
53
52
|
"@storybook/addon-svelte-csf": "5.1.2",
|
|
54
|
-
"@storybook/svelte-vite": "10.5.
|
|
53
|
+
"@storybook/svelte-vite": "10.5.10",
|
|
55
54
|
"@sveltejs/adapter-static": "^3.0.10",
|
|
56
|
-
"@sveltejs/kit": "^2.
|
|
55
|
+
"@sveltejs/kit": "^2.70.3",
|
|
57
56
|
"@sveltejs/package": "^2.5.8",
|
|
58
|
-
"@sveltejs/vite-plugin-svelte": "
|
|
59
|
-
"@tailwindcss/cli": "^4.3.
|
|
57
|
+
"@sveltejs/vite-plugin-svelte": "7.3.0",
|
|
58
|
+
"@tailwindcss/cli": "^4.3.3",
|
|
60
59
|
"@tailwindcss/typography": "^0.5.20",
|
|
61
|
-
"@tailwindcss/vite": "^4.3.
|
|
62
|
-
"@types/node": "^
|
|
63
|
-
"eslint": "^10.
|
|
60
|
+
"@tailwindcss/vite": "^4.3.3",
|
|
61
|
+
"@types/node": "^26.4.0",
|
|
62
|
+
"eslint": "^10.9.1",
|
|
64
63
|
"eslint-config-prettier": "^10.1.8",
|
|
65
|
-
"eslint-plugin-svelte": "^3.
|
|
66
|
-
"globals": "^17.
|
|
67
|
-
"lefthook": "^2.1.
|
|
68
|
-
"prettier": "^3.9.
|
|
64
|
+
"eslint-plugin-svelte": "^3.23.0",
|
|
65
|
+
"globals": "^17.11.0",
|
|
66
|
+
"lefthook": "^2.1.12",
|
|
67
|
+
"prettier": "^3.9.6",
|
|
69
68
|
"prettier-plugin-organize-imports": "^4.3.0",
|
|
70
69
|
"prettier-plugin-svelte": "^4.1.1",
|
|
71
|
-
"prettier-plugin-tailwindcss": "^0.8.
|
|
72
|
-
"publint": "^0.3.
|
|
73
|
-
"shiki": "^4.3
|
|
74
|
-
"storybook": "10.5.
|
|
75
|
-
"svelte": "^5.
|
|
76
|
-
"svelte-check": "^4.7.
|
|
70
|
+
"prettier-plugin-tailwindcss": "^0.8.1",
|
|
71
|
+
"publint": "^0.3.24",
|
|
72
|
+
"shiki": "^4.4.3",
|
|
73
|
+
"storybook": "10.5.10",
|
|
74
|
+
"svelte": "^5.57.0",
|
|
75
|
+
"svelte-check": "^4.7.6",
|
|
77
76
|
"sveltekit-superforms": "^2.30.2",
|
|
78
77
|
"tailwind-scrollbar": "^4.0.2",
|
|
79
|
-
"tailwindcss": "^4.3.
|
|
80
|
-
"typescript": "
|
|
81
|
-
"typescript-eslint": "^8.
|
|
82
|
-
"vite": "
|
|
83
|
-
"vite-plugin-devtools-json": "^1.
|
|
84
|
-
"vitest": "^4.1.
|
|
85
|
-
"zod": "^4.4
|
|
78
|
+
"tailwindcss": "^4.3.3",
|
|
79
|
+
"typescript": "6",
|
|
80
|
+
"typescript-eslint": "^8.69.0",
|
|
81
|
+
"vite": "8.2.2",
|
|
82
|
+
"vite-plugin-devtools-json": "^1.1.0",
|
|
83
|
+
"vitest": "^4.1.11",
|
|
84
|
+
"zod": "^4.5.4"
|
|
86
85
|
},
|
|
87
86
|
"dependencies": {
|
|
87
|
+
"@dicebear/core": "^10.7.0",
|
|
88
|
+
"@dicebear/styles": "^10.6.0",
|
|
88
89
|
"@floating-ui/dom": "^1.8.0",
|
|
89
|
-
"@internationalized/date": "^3.12.
|
|
90
|
+
"@internationalized/date": "^3.12.3",
|
|
90
91
|
"@ktibow/material-color-utilities-nightly": "^0.4.1772748028000",
|
|
91
|
-
"bits-ui": "^2.
|
|
92
|
+
"bits-ui": "^2.19.0",
|
|
92
93
|
"clsx": "^2.1.1",
|
|
93
94
|
"mode-watcher": "^1.1.0",
|
|
94
|
-
"nanoid": "^
|
|
95
|
+
"nanoid": "^6.0.1",
|
|
95
96
|
"tailwind-merge": "^3.6.0",
|
|
96
|
-
"tailwind-variants": "^3.
|
|
97
|
+
"tailwind-variants": "^3.3.1"
|
|
97
98
|
}
|
|
98
99
|
}
|
package/bin/install-skill.js
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { cpSync, existsSync, mkdirSync } from 'node:fs';
|
|
3
|
-
import { dirname, join } from 'node:path';
|
|
4
|
-
import { fileURLToPath } from 'node:url';
|
|
5
|
-
|
|
6
|
-
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
7
|
-
const source = join(__dirname, '..', 'claude-skill', 'material-design');
|
|
8
|
-
const destDir = join(process.cwd(), '.claude', 'skills');
|
|
9
|
-
const dest = join(destDir, 'material-design');
|
|
10
|
-
const force = process.argv.includes('--force');
|
|
11
|
-
|
|
12
|
-
if (!existsSync(source)) {
|
|
13
|
-
console.error(
|
|
14
|
-
'Could not find the bundled material-design skill. Reinstall @noxlovette/material and try again.'
|
|
15
|
-
);
|
|
16
|
-
process.exit(1);
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
if (existsSync(dest) && !force) {
|
|
20
|
-
console.error(
|
|
21
|
-
`.claude/skills/material-design already exists. Re-run with --force to overwrite it.`
|
|
22
|
-
);
|
|
23
|
-
process.exit(1);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
mkdirSync(destDir, { recursive: true });
|
|
27
|
-
cpSync(source, dest, { recursive: true, force: true });
|
|
28
|
-
|
|
29
|
-
console.log(`Installed the material-design Claude Code skill to .claude/skills/material-design`);
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
@component
|
|
3
|
-
A single button within a ButtonGroup.
|
|
4
|
-
Displays a leading check icon when selected, per M3 spec.
|
|
5
|
-
-->
|
|
6
|
-
<script lang="ts">
|
|
7
|
-
import { ToggleGroup } from 'bits-ui';
|
|
8
|
-
import clsx from 'clsx';
|
|
9
|
-
import { getContext } from 'svelte';
|
|
10
|
-
import { Icon, Layer } from '../../../utils/index.js';
|
|
11
|
-
import { buttonGroupItem } from './theme.js';
|
|
12
|
-
import type { ButtonGroupItemProps } from './types.js';
|
|
13
|
-
|
|
14
|
-
let {
|
|
15
|
-
value,
|
|
16
|
-
label,
|
|
17
|
-
iconProps,
|
|
18
|
-
disabled = false,
|
|
19
|
-
class: className
|
|
20
|
-
}: ButtonGroupItemProps = $props();
|
|
21
|
-
|
|
22
|
-
const buttonGroupCtx = getContext<{ orientation: 'horizontal' | 'vertical' } | undefined>(
|
|
23
|
-
'buttonGroup'
|
|
24
|
-
);
|
|
25
|
-
const orientation = $derived(buttonGroupCtx?.orientation ?? 'horizontal');
|
|
26
|
-
const { base, checkIcon, icon } = $derived(buttonGroupItem({ orientation }));
|
|
27
|
-
</script>
|
|
28
|
-
|
|
29
|
-
<ToggleGroup.Item {value} {disabled} class={base({ class: clsx(className) })}>
|
|
30
|
-
{#snippet children({ pressed })}
|
|
31
|
-
{#if pressed}
|
|
32
|
-
<Icon name="check" class={checkIcon()} />
|
|
33
|
-
{:else if iconProps}
|
|
34
|
-
<Icon {...iconProps} class={icon()} />
|
|
35
|
-
{/if}
|
|
36
|
-
{#if label}
|
|
37
|
-
<span>{label}</span>
|
|
38
|
-
{/if}
|
|
39
|
-
<Layer />
|
|
40
|
-
{/snippet}
|
|
41
|
-
</ToggleGroup.Item>
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { ButtonGroupItemProps } from './types.js';
|
|
2
|
-
/**
|
|
3
|
-
* A single button within a ButtonGroup.
|
|
4
|
-
* Displays a leading check icon when selected, per M3 spec.
|
|
5
|
-
*/
|
|
6
|
-
declare const ButtonGroupItem: import("svelte").Component<ButtonGroupItemProps, {}, "">;
|
|
7
|
-
type ButtonGroupItem = ReturnType<typeof ButtonGroupItem>;
|
|
8
|
-
export default ButtonGroupItem;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
@component
|
|
3
|
-
A container for grouping buttons with shared borders and rounding.
|
|
4
|
-
Typically used for segmented controls or closely related actions.
|
|
5
|
-
-->
|
|
6
|
-
<script lang="ts">
|
|
7
|
-
import type { ConnectedButtonsProps } from './types.js';
|
|
8
|
-
|
|
9
|
-
let { children, ...rest }: ConnectedButtonsProps = $props();
|
|
10
|
-
</script>
|
|
11
|
-
|
|
12
|
-
<div class="grid auto-cols-fr grid-flow-col gap-0.5 overflow-hidden rounded-full" {...rest}>
|
|
13
|
-
{@render children()}
|
|
14
|
-
</div>
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { ConnectedButtonsProps } from './types.js';
|
|
2
|
-
/**
|
|
3
|
-
* A container for grouping buttons with shared borders and rounding.
|
|
4
|
-
* Typically used for segmented controls or closely related actions.
|
|
5
|
-
*/
|
|
6
|
-
declare const ConnectedButtons: import("svelte").Component<ConnectedButtonsProps, {}, "">;
|
|
7
|
-
type ConnectedButtons = ReturnType<typeof ConnectedButtons>;
|
|
8
|
-
export default ConnectedButtons;
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
@component
|
|
3
|
-
A single interactive row inside a `Menu`.
|
|
4
|
-
|
|
5
|
-
`MenuItem` is the leaf node of the menu system. It wraps bits-ui's
|
|
6
|
-
`DropdownMenu.Item` so each row automatically gets keyboard navigation,
|
|
7
|
-
focus management, and the ARIA `menuitem` role.
|
|
8
|
-
|
|
9
|
-
Pass `onclick` (or `onSelect`) for the action; use `iconProps` for a
|
|
10
|
-
leading icon and `helper` for a supporting line below the label.
|
|
11
|
-
|
|
12
|
-
Contrast with `Menu`, which is just the shell (open state + floating panel),
|
|
13
|
-
and `ContextMenu`, which owns its own item list and is right-click triggered.
|
|
14
|
-
|
|
15
|
-
@see https://m3.material.io/components/menus/guidelines
|
|
16
|
-
-->
|
|
17
|
-
<script lang="ts">
|
|
18
|
-
import type { MenuItemProps } from './types.js';
|
|
19
|
-
import Icon from '../../../utils/icon/Icon.svelte';
|
|
20
|
-
import Layer from '../../../utils/Layer.svelte';
|
|
21
|
-
import { DropdownMenu } from 'bits-ui';
|
|
22
|
-
import { tv } from 'tailwind-variants';
|
|
23
|
-
|
|
24
|
-
let {
|
|
25
|
-
iconProps,
|
|
26
|
-
disabled = false,
|
|
27
|
-
onclick,
|
|
28
|
-
onSelect,
|
|
29
|
-
selected,
|
|
30
|
-
helper,
|
|
31
|
-
children,
|
|
32
|
-
...restProps
|
|
33
|
-
}: MenuItemProps & Record<string, any> = $props();
|
|
34
|
-
|
|
35
|
-
// bits-ui fires onSelect at the Item level; avoid wiring onclick to the
|
|
36
|
-
// native button as well or it would fire twice on every click.
|
|
37
|
-
const handleSelect = $derived(onSelect ?? (onclick ? () => onclick() : undefined));
|
|
38
|
-
|
|
39
|
-
const itemClass = $derived(
|
|
40
|
-
tv({
|
|
41
|
-
base: 'relative flex w-full cursor-pointer items-start gap-3 border-none bg-transparent px-4 py-3 text-left md-sys-typescale-body-large whitespace-nowrap text-md-sys-color-on-surface hover:bg-md-sys-color-on-surface/8 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-md-sys-color-primary disabled:cursor-not-allowed disabled:opacity-38',
|
|
42
|
-
variants: {
|
|
43
|
-
selected: {
|
|
44
|
-
true: 'bg-md-sys-color-secondary-container text-md-sys-color-on-secondary-container'
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
})({ selected })
|
|
48
|
-
);
|
|
49
|
-
</script>
|
|
50
|
-
|
|
51
|
-
<DropdownMenu.Item {disabled} onSelect={handleSelect}>
|
|
52
|
-
<button {...restProps} type="button" class={itemClass} {disabled}>
|
|
53
|
-
{#if iconProps}
|
|
54
|
-
<Icon class="text-md-sys-color-on-surface-variant size-6 text-[24px]" {...iconProps} />
|
|
55
|
-
{/if}
|
|
56
|
-
|
|
57
|
-
<div class="flex flex-1 flex-col gap-1">
|
|
58
|
-
<span class="md-sys-typescale-body-large text-md-sys-color-on-surface">
|
|
59
|
-
{@render children()}
|
|
60
|
-
</span>
|
|
61
|
-
{#if helper}
|
|
62
|
-
<span class="md-sys-typescale-body-medium text-md-sys-color-on-surface-variant">
|
|
63
|
-
{helper}
|
|
64
|
-
</span>
|
|
65
|
-
{/if}
|
|
66
|
-
</div>
|
|
67
|
-
|
|
68
|
-
{#if selected}
|
|
69
|
-
<Icon aria-hidden="true" name="check" />
|
|
70
|
-
{/if}
|
|
71
|
-
|
|
72
|
-
<Layer />
|
|
73
|
-
</button>
|
|
74
|
-
</DropdownMenu.Item>
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
@component
|
|
3
|
-
InputMerger is a container that groups multiple input components together visually.
|
|
4
|
-
-->
|
|
5
|
-
<script lang="ts">
|
|
6
|
-
import clsx from 'clsx';
|
|
7
|
-
|
|
8
|
-
interface Props {
|
|
9
|
-
/**
|
|
10
|
-
* The input components to be merged.
|
|
11
|
-
*/
|
|
12
|
-
children: import('svelte').Snippet;
|
|
13
|
-
/**
|
|
14
|
-
* Additional CSS classes for the container.
|
|
15
|
-
*/
|
|
16
|
-
class?: string;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
let { children, class: className = '' }: Props = $props();
|
|
20
|
-
</script>
|
|
21
|
-
|
|
22
|
-
<div
|
|
23
|
-
class={clsx(
|
|
24
|
-
className,
|
|
25
|
-
'border-primary padding-default gap-narrow grid max-h-max w-full shrink rounded-none border-x-0 px-0 md:rounded-2xl md:border-x-2 md:px-2.5'
|
|
26
|
-
)}
|
|
27
|
-
>
|
|
28
|
-
{@render children()}
|
|
29
|
-
</div>
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
interface Props {
|
|
2
|
-
/**
|
|
3
|
-
* The input components to be merged.
|
|
4
|
-
*/
|
|
5
|
-
children: import('svelte').Snippet;
|
|
6
|
-
/**
|
|
7
|
-
* Additional CSS classes for the container.
|
|
8
|
-
*/
|
|
9
|
-
class?: string;
|
|
10
|
-
}
|
|
11
|
-
/** InputMerger is a container that groups multiple input components together visually. */
|
|
12
|
-
declare const InputMerger: import("svelte").Component<Props, {}, "">;
|
|
13
|
-
type InputMerger = ReturnType<typeof InputMerger>;
|
|
14
|
-
export default InputMerger;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { default as InputMerger } from './InputMerger.svelte';
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
<script module lang="ts">
|
|
2
|
-
import { defineMeta } from '@storybook/addon-svelte-csf';
|
|
3
|
-
import SinglePane from './SinglePane.svelte';
|
|
4
|
-
|
|
5
|
-
const { Story } = defineMeta({
|
|
6
|
-
title: 'Containers/Single Pane',
|
|
7
|
-
component: SinglePane,
|
|
8
|
-
argTypes: {
|
|
9
|
-
centered: {
|
|
10
|
-
control: 'select',
|
|
11
|
-
options: ['none', 'narrow', 'medium']
|
|
12
|
-
},
|
|
13
|
-
padding: {
|
|
14
|
-
control: 'select',
|
|
15
|
-
options: ['none', 'sm', 'md', 'lg']
|
|
16
|
-
},
|
|
17
|
-
gap: {
|
|
18
|
-
control: 'select',
|
|
19
|
-
options: ['none', 'sm', 'md', 'lg', 'xl']
|
|
20
|
-
},
|
|
21
|
-
background: { control: 'boolean' },
|
|
22
|
-
full: { control: 'boolean' },
|
|
23
|
-
rounded: { control: 'boolean' }
|
|
24
|
-
},
|
|
25
|
-
args: {
|
|
26
|
-
centered: 'medium',
|
|
27
|
-
padding: 'md',
|
|
28
|
-
gap: 'md',
|
|
29
|
-
background: true,
|
|
30
|
-
full: false,
|
|
31
|
-
rounded: true
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
</script>
|
|
35
|
-
|
|
36
|
-
<Story name="Playground">
|
|
37
|
-
{#snippet template(args)}
|
|
38
|
-
<SinglePane
|
|
39
|
-
centered={args.centered}
|
|
40
|
-
padding={args.padding}
|
|
41
|
-
gap={args.gap}
|
|
42
|
-
background={args.background}
|
|
43
|
-
full={args.full}
|
|
44
|
-
rounded={args.rounded}
|
|
45
|
-
>
|
|
46
|
-
<div class="bg-md-sys-color-surface-container-high rounded-lg p-6">Block one</div>
|
|
47
|
-
<div class="bg-md-sys-color-surface-container-high rounded-lg p-6">Block two</div>
|
|
48
|
-
<div class="bg-md-sys-color-surface-container-high rounded-lg p-6">Block three</div>
|
|
49
|
-
</SinglePane>
|
|
50
|
-
{/snippet}
|
|
51
|
-
</Story>
|
|
52
|
-
|
|
53
|
-
<Story name="Centered Widths" asChild>
|
|
54
|
-
<div class="flex flex-col gap-6">
|
|
55
|
-
<SinglePane centered="narrow" background={false}>
|
|
56
|
-
<div class="bg-md-sys-color-secondary-container rounded-lg p-4 text-sm">narrow</div>
|
|
57
|
-
</SinglePane>
|
|
58
|
-
<SinglePane centered="medium" background={false}>
|
|
59
|
-
<div class="bg-md-sys-color-secondary-container rounded-lg p-4 text-sm">medium</div>
|
|
60
|
-
</SinglePane>
|
|
61
|
-
<SinglePane centered="none" background={false}>
|
|
62
|
-
<div class="bg-md-sys-color-secondary-container rounded-lg p-4 text-sm">
|
|
63
|
-
none (full width)
|
|
64
|
-
</div>
|
|
65
|
-
</SinglePane>
|
|
66
|
-
</div>
|
|
67
|
-
</Story>
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
@component
|
|
3
|
-
SinglePane provides a centered or full-width container for content.
|
|
4
|
-
-->
|
|
5
|
-
<script lang="ts">
|
|
6
|
-
import clsx from 'clsx';
|
|
7
|
-
import { singlePane } from './theme.js';
|
|
8
|
-
import type { SinglePaneProps } from './types.js';
|
|
9
|
-
|
|
10
|
-
const {
|
|
11
|
-
children,
|
|
12
|
-
centered = 'none',
|
|
13
|
-
background = true,
|
|
14
|
-
full = true,
|
|
15
|
-
padding = 'md',
|
|
16
|
-
gap = 'md',
|
|
17
|
-
rounded = true,
|
|
18
|
-
class: className,
|
|
19
|
-
contentClass,
|
|
20
|
-
...rest
|
|
21
|
-
}: SinglePaneProps = $props();
|
|
22
|
-
|
|
23
|
-
const { base, content } = $derived(
|
|
24
|
-
singlePane({ padding, gap, centered, full, background, rounded })
|
|
25
|
-
);
|
|
26
|
-
</script>
|
|
27
|
-
|
|
28
|
-
<div class={base({ class: clsx(className) })} {...rest}>
|
|
29
|
-
<div class={content({ class: clsx(contentClass) })}>
|
|
30
|
-
{@render children()}
|
|
31
|
-
</div>
|
|
32
|
-
</div>
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import type { SinglePaneProps } from './types.js';
|
|
2
|
-
/** SinglePane provides a centered or full-width container for content. */
|
|
3
|
-
declare const SinglePane: import("svelte").Component<SinglePaneProps, {}, "">;
|
|
4
|
-
type SinglePane = ReturnType<typeof SinglePane>;
|
|
5
|
-
export default SinglePane;
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
<script module lang="ts">
|
|
2
|
-
import { defineMeta } from '@storybook/addon-svelte-csf';
|
|
3
|
-
import SplitPane from './SplitPane.svelte';
|
|
4
|
-
|
|
5
|
-
const { Story } = defineMeta({
|
|
6
|
-
title: 'Containers/Split Pane',
|
|
7
|
-
component: SplitPane,
|
|
8
|
-
argTypes: {
|
|
9
|
-
anchor: {
|
|
10
|
-
control: 'select',
|
|
11
|
-
options: ['viewport', 'parent', 'sticky']
|
|
12
|
-
},
|
|
13
|
-
resizable: { control: 'boolean' },
|
|
14
|
-
leftWidth: { control: 'number' },
|
|
15
|
-
minLeft: { control: 'number' },
|
|
16
|
-
maxLeft: { control: 'number' },
|
|
17
|
-
full: { control: 'boolean' },
|
|
18
|
-
rounded: { control: 'boolean' },
|
|
19
|
-
mobilePane: {
|
|
20
|
-
control: 'select',
|
|
21
|
-
options: ['left', 'right']
|
|
22
|
-
}
|
|
23
|
-
},
|
|
24
|
-
args: {
|
|
25
|
-
anchor: 'parent',
|
|
26
|
-
resizable: true,
|
|
27
|
-
leftWidth: 320,
|
|
28
|
-
minLeft: 240,
|
|
29
|
-
maxLeft: 560,
|
|
30
|
-
full: false,
|
|
31
|
-
rounded: true,
|
|
32
|
-
mobilePane: 'right'
|
|
33
|
-
}
|
|
34
|
-
});
|
|
35
|
-
</script>
|
|
36
|
-
|
|
37
|
-
<!--
|
|
38
|
-
Playground uses anchor="parent" (bounded/relative container) since it's the
|
|
39
|
-
only mode that demos meaningfully inside Storybook's iframe canvas — "viewport"
|
|
40
|
-
fixes to the true browser edge and "sticky" needs a real scrolling page.
|
|
41
|
-
-->
|
|
42
|
-
<Story name="Playground">
|
|
43
|
-
{#snippet template(args)}
|
|
44
|
-
<div
|
|
45
|
-
class="relative h-[420px] overflow-hidden rounded-lg border border-md-sys-color-outline-variant"
|
|
46
|
-
>
|
|
47
|
-
<SplitPane {...args}>
|
|
48
|
-
{#snippet left()}
|
|
49
|
-
<div class="p-4">
|
|
50
|
-
<p class="md-sys-typescale-title-small mb-2">Left pane</p>
|
|
51
|
-
<p class="text-md-sys-color-on-surface-variant text-sm">
|
|
52
|
-
Drag the handle to resize. Persisted to localStorage when resizable.
|
|
53
|
-
</p>
|
|
54
|
-
</div>
|
|
55
|
-
{/snippet}
|
|
56
|
-
{#snippet right()}
|
|
57
|
-
<div class="p-4">
|
|
58
|
-
<p class="md-sys-typescale-title-small mb-2">Right pane</p>
|
|
59
|
-
<p class="text-md-sys-color-on-surface-variant text-sm">Main content area.</p>
|
|
60
|
-
</div>
|
|
61
|
-
{/snippet}
|
|
62
|
-
</SplitPane>
|
|
63
|
-
</div>
|
|
64
|
-
{/snippet}
|
|
65
|
-
</Story>
|
|
66
|
-
|
|
67
|
-
<!--
|
|
68
|
-
anchor="viewport" — left pane fixes to the true browser edge. Meant for a
|
|
69
|
-
full-page app layout where SplitPane is the outermost positioned element
|
|
70
|
-
(e.g. the root Rail). Shown here at a reduced height so the fixed left pane
|
|
71
|
-
is still visible inside the story canvas.
|
|
72
|
-
-->
|
|
73
|
-
<Story name="Anchor Viewport" asChild>
|
|
74
|
-
<div
|
|
75
|
-
class="relative h-[420px] overflow-hidden rounded-lg border border-md-sys-color-outline-variant"
|
|
76
|
-
>
|
|
77
|
-
<SplitPane anchor="viewport" resizable={false} leftWidth={280}>
|
|
78
|
-
{#snippet left()}
|
|
79
|
-
<div class="p-4">
|
|
80
|
-
<p class="md-sys-typescale-title-small mb-2">Fixed to viewport edge</p>
|
|
81
|
-
<p class="text-md-sys-color-on-surface-variant text-sm">
|
|
82
|
-
In a real page this pane is position: fixed to the true left edge of the browser.
|
|
83
|
-
</p>
|
|
84
|
-
</div>
|
|
85
|
-
{/snippet}
|
|
86
|
-
{#snippet right()}
|
|
87
|
-
<div class="p-4">
|
|
88
|
-
<p class="text-md-sys-color-on-surface-variant text-sm">Right / main content.</p>
|
|
89
|
-
</div>
|
|
90
|
-
{/snippet}
|
|
91
|
-
</SplitPane>
|
|
92
|
-
</div>
|
|
93
|
-
</Story>
|
|
94
|
-
|
|
95
|
-
<!--
|
|
96
|
-
anchor="sticky" — left/right sit in normal flex flow and the left pane
|
|
97
|
-
sticks (position: sticky) as the page scrolls. Used for a sidebar nested
|
|
98
|
-
inside other already-offset content, e.g. the docs secondary nav. Paired
|
|
99
|
-
with resizable={false} for a static, non-draggable sidebar. Needs a tall
|
|
100
|
-
scrollable right pane to demonstrate the sticky behaviour.
|
|
101
|
-
-->
|
|
102
|
-
<Story name="Anchor Sticky" asChild>
|
|
103
|
-
<div class="h-[420px] overflow-y-auto rounded-lg border border-md-sys-color-outline-variant">
|
|
104
|
-
<SplitPane anchor="sticky" resizable={false} leftWidth={240} rounded={false}>
|
|
105
|
-
{#snippet left()}
|
|
106
|
-
<div class="p-4">
|
|
107
|
-
<p class="md-sys-typescale-title-small mb-2">Sticky nav</p>
|
|
108
|
-
<p class="text-md-sys-color-on-surface-variant text-sm">
|
|
109
|
-
Stays pinned to the top of the viewport while the right pane scrolls past it.
|
|
110
|
-
</p>
|
|
111
|
-
</div>
|
|
112
|
-
{/snippet}
|
|
113
|
-
{#snippet right()}
|
|
114
|
-
<div class="flex flex-col gap-4 p-4">
|
|
115
|
-
{#each Array(12) as _, i}
|
|
116
|
-
<div class="bg-md-sys-color-surface-container-high rounded-lg p-6">
|
|
117
|
-
Scrollable content block {i + 1}
|
|
118
|
-
</div>
|
|
119
|
-
{/each}
|
|
120
|
-
</div>
|
|
121
|
-
{/snippet}
|
|
122
|
-
</SplitPane>
|
|
123
|
-
</div>
|
|
124
|
-
</Story>
|