@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,199 @@
|
|
|
1
|
+
<script module lang="ts">
|
|
2
|
+
import { defineMeta } from '@storybook/addon-svelte-csf';
|
|
3
|
+
import DraggablePane from './DraggablePane.svelte';
|
|
4
|
+
|
|
5
|
+
const { Story } = defineMeta({
|
|
6
|
+
title: 'Containers/DraggablePane',
|
|
7
|
+
component: DraggablePane,
|
|
8
|
+
argTypes: {
|
|
9
|
+
title: { control: 'text' },
|
|
10
|
+
disableDrag: { control: 'boolean' }
|
|
11
|
+
},
|
|
12
|
+
args: {
|
|
13
|
+
title: 'Inspector',
|
|
14
|
+
disableDrag: false
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
</script>
|
|
18
|
+
|
|
19
|
+
<script lang="ts">
|
|
20
|
+
let boundedEl: HTMLDivElement | undefined = $state();
|
|
21
|
+
let boundedX: number | undefined = $state();
|
|
22
|
+
let boundedY: number | undefined = $state();
|
|
23
|
+
|
|
24
|
+
// DraggablePane positions with `position: fixed` (viewport coordinates), so
|
|
25
|
+
// seed x/y from the container's own rect rather than an arbitrary offset —
|
|
26
|
+
// `bounds` only clamps the drag, it doesn't reposition the panel into the box.
|
|
27
|
+
$effect(() => {
|
|
28
|
+
if (boundedEl && boundedX === undefined) {
|
|
29
|
+
const rect = boundedEl.getBoundingClientRect();
|
|
30
|
+
boundedX = rect.left + 16;
|
|
31
|
+
boundedY = rect.top + 16;
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
</script>
|
|
35
|
+
|
|
36
|
+
<!--
|
|
37
|
+
Bare `position: fixed` panel — drag the header around the Storybook canvas
|
|
38
|
+
by pointer or, once focused, the arrow keys (shift for a bigger step).
|
|
39
|
+
-->
|
|
40
|
+
<Story name="Playground">
|
|
41
|
+
{#snippet template(args)}
|
|
42
|
+
<DraggablePane title={args.title} disableDrag={args.disableDrag} initialX={32} initialY={32}>
|
|
43
|
+
<p class="md-sys-typescale-body-medium text-md-sys-color-on-surface-variant w-56">
|
|
44
|
+
Drag the header to move this panel. Its position is bindable via <code>x</code>/<code
|
|
45
|
+
>y</code
|
|
46
|
+
>.
|
|
47
|
+
</p>
|
|
48
|
+
</DraggablePane>
|
|
49
|
+
{/snippet}
|
|
50
|
+
</Story>
|
|
51
|
+
|
|
52
|
+
<!-- A closable pane, and a second one demonstrating `persistKey` position persistence. -->
|
|
53
|
+
<Story name="Closable + Persisted" asChild>
|
|
54
|
+
<DraggablePane title="Closable" initialX={32} initialY={32} onClose={() => {}}>
|
|
55
|
+
<p class="md-sys-typescale-body-medium text-md-sys-color-on-surface-variant w-56">
|
|
56
|
+
Has a close button in its header.
|
|
57
|
+
</p>
|
|
58
|
+
</DraggablePane>
|
|
59
|
+
<DraggablePane
|
|
60
|
+
title="Remembers position"
|
|
61
|
+
initialX={340}
|
|
62
|
+
initialY={32}
|
|
63
|
+
persistKey="storybook-draggable-pane-demo"
|
|
64
|
+
>
|
|
65
|
+
<p class="md-sys-typescale-body-medium text-md-sys-color-on-surface-variant w-56">
|
|
66
|
+
Drag me, then reload the story — <code>persistKey</code> saves the position to
|
|
67
|
+
<code>localStorage</code>.
|
|
68
|
+
</p>
|
|
69
|
+
</DraggablePane>
|
|
70
|
+
</Story>
|
|
71
|
+
|
|
72
|
+
<!--
|
|
73
|
+
`onClickOutside` fires on any click landing outside the panel — wired to
|
|
74
|
+
`onClose` here, so clicking the surrounding canvas dismisses it.
|
|
75
|
+
-->
|
|
76
|
+
<Story name="Close On Outside Click" asChild>
|
|
77
|
+
<DraggablePane
|
|
78
|
+
title="Click outside to close"
|
|
79
|
+
initialX={32}
|
|
80
|
+
initialY={32}
|
|
81
|
+
onClose={() => console.log('DraggablePane closed')}
|
|
82
|
+
onClickOutside={() => console.log('DraggablePane: click outside')}
|
|
83
|
+
>
|
|
84
|
+
<p class="md-sys-typescale-body-medium text-md-sys-color-on-surface-variant w-56">
|
|
85
|
+
Click anywhere outside this panel (or the close button) to dismiss it.
|
|
86
|
+
</p>
|
|
87
|
+
</DraggablePane>
|
|
88
|
+
</Story>
|
|
89
|
+
|
|
90
|
+
<!-- Custom header content via the `header` snippet instead of `title`/`onClose`. -->
|
|
91
|
+
<Story name="Custom Header" asChild>
|
|
92
|
+
<DraggablePane initialX={32} initialY={32}>
|
|
93
|
+
{#snippet header()}
|
|
94
|
+
<span
|
|
95
|
+
class="md-sys-typescale-label-large text-md-sys-color-on-surface flex-1 truncate px-1 py-1"
|
|
96
|
+
>
|
|
97
|
+
⠿ Custom drag handle
|
|
98
|
+
</span>
|
|
99
|
+
{/snippet}
|
|
100
|
+
<p class="md-sys-typescale-body-medium text-md-sys-color-on-surface-variant w-56">
|
|
101
|
+
The default grip/title/close row is fully replaceable.
|
|
102
|
+
</p>
|
|
103
|
+
</DraggablePane>
|
|
104
|
+
</Story>
|
|
105
|
+
|
|
106
|
+
<!--
|
|
107
|
+
`bounds` clamps dragging to a given element's current rect instead of the
|
|
108
|
+
viewport — here, the dashed container below.
|
|
109
|
+
-->
|
|
110
|
+
<Story name="Bounded To Container">
|
|
111
|
+
{#snippet template()}
|
|
112
|
+
<div
|
|
113
|
+
bind:this={boundedEl}
|
|
114
|
+
class="border-md-sys-color-outline relative h-[320px] w-full overflow-hidden rounded-lg border border-dashed"
|
|
115
|
+
>
|
|
116
|
+
{#if boundedEl && boundedX !== undefined && boundedY !== undefined}
|
|
117
|
+
<DraggablePane title="Confined" bind:x={boundedX} bind:y={boundedY} bounds={boundedEl}>
|
|
118
|
+
<p class="md-sys-typescale-body-medium text-md-sys-color-on-surface-variant w-48">
|
|
119
|
+
Can't leave this box.
|
|
120
|
+
</p>
|
|
121
|
+
</DraggablePane>
|
|
122
|
+
{/if}
|
|
123
|
+
</div>
|
|
124
|
+
{/snippet}
|
|
125
|
+
</Story>
|
|
126
|
+
|
|
127
|
+
<!--
|
|
128
|
+
`resizable` adds edge/corner handles (pointer drag, or arrow keys once an
|
|
129
|
+
edge handle is focused). `minWidth`/`minHeight` are the safety net that
|
|
130
|
+
keeps a resize from shrinking the panel into uselessness; `maxWidth`/
|
|
131
|
+
`maxHeight` cap the other direction (both are also implicitly capped by
|
|
132
|
+
`bounds`, the viewport here).
|
|
133
|
+
-->
|
|
134
|
+
<Story name="Resizable" asChild>
|
|
135
|
+
<DraggablePane
|
|
136
|
+
title="Resizable"
|
|
137
|
+
initialX={32}
|
|
138
|
+
initialY={32}
|
|
139
|
+
resizable
|
|
140
|
+
minWidth={220}
|
|
141
|
+
minHeight={140}
|
|
142
|
+
maxWidth={520}
|
|
143
|
+
maxHeight={420}
|
|
144
|
+
>
|
|
145
|
+
<p class="md-sys-typescale-body-medium text-md-sys-color-on-surface-variant">
|
|
146
|
+
Drag any edge or corner to resize. Can't go below 220×140, or above 520×420.
|
|
147
|
+
</p>
|
|
148
|
+
</DraggablePane>
|
|
149
|
+
</Story>
|
|
150
|
+
|
|
151
|
+
<!--
|
|
152
|
+
Content-sized (no `height`) is the default — but content taller than the
|
|
153
|
+
viewport still carries a standing `max-height` (`bounds` minus
|
|
154
|
+
`boundsPadding`, see the component doc comment), so it scrolls internally
|
|
155
|
+
instead of rendering off-screen with the bottom of the panel unreachable.
|
|
156
|
+
-->
|
|
157
|
+
<Story name="Content Overflow (Unbounded)" asChild>
|
|
158
|
+
<DraggablePane title="Long Form">
|
|
159
|
+
<div
|
|
160
|
+
class="md-sys-typescale-body-medium text-md-sys-color-on-surface-variant flex w-56 flex-col gap-3"
|
|
161
|
+
>
|
|
162
|
+
{#each Array(30) as _, i (i)}
|
|
163
|
+
<p>
|
|
164
|
+
Field {i + 1} — this panel never sets `height`, yet can't render taller than the viewport.
|
|
165
|
+
</p>
|
|
166
|
+
{/each}
|
|
167
|
+
</div>
|
|
168
|
+
</DraggablePane>
|
|
169
|
+
</Story>
|
|
170
|
+
|
|
171
|
+
<!--
|
|
172
|
+
A fixed `height` turns the content area into an internal scroll region
|
|
173
|
+
instead of letting the panel grow past its bound — the `content` slot needs
|
|
174
|
+
`min-h-0` alongside `flex-1 overflow-auto`, otherwise a flex child's default
|
|
175
|
+
`min-height: auto` lets it grow past its flex-basis and overflow the fixed-
|
|
176
|
+
height panel instead of scrolling internally.
|
|
177
|
+
-->
|
|
178
|
+
<Story name="Scrollable Content" asChild>
|
|
179
|
+
<DraggablePane title="Long List" initialX={32} initialY={32} height={240} width={280}>
|
|
180
|
+
<ul class="md-sys-typescale-body-medium text-md-sys-color-on-surface-variant">
|
|
181
|
+
{#each Array(40) as _, i (i)}
|
|
182
|
+
<li>Item {i + 1}</li>
|
|
183
|
+
{/each}
|
|
184
|
+
</ul>
|
|
185
|
+
</DraggablePane>
|
|
186
|
+
</Story>
|
|
187
|
+
|
|
188
|
+
<!--
|
|
189
|
+
`collapsible` adds a minimize button that docks the pane into a small pill
|
|
190
|
+
at `minimizedCorner` (default bottom-left) showing `minimizedTitle` (falls
|
|
191
|
+
back to `title`); clicking the pill restores it at its previous position.
|
|
192
|
+
-->
|
|
193
|
+
<Story name="Collapsible" asChild>
|
|
194
|
+
<DraggablePane title="Mini Player" initialX={32} initialY={32} collapsible resizable>
|
|
195
|
+
<p class="md-sys-typescale-body-medium text-md-sys-color-on-surface-variant w-56">
|
|
196
|
+
Click the minimize icon in the header to collapse this into a pill in the bottom-left corner.
|
|
197
|
+
</p>
|
|
198
|
+
</DraggablePane>
|
|
199
|
+
</Story>
|