@dxos/react-ui 0.8.4-main.3c1ae3b → 0.8.4-main.3eb6e50203
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/dist/lib/browser/chunk-6DTBPJE4.mjs +774 -0
- package/dist/lib/browser/chunk-6DTBPJE4.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +3198 -66
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/testing/index.mjs +34 -45
- package/dist/lib/browser/testing/index.mjs.map +3 -3
- package/dist/lib/node-esm/chunk-JKHQSGNU.mjs +776 -0
- package/dist/lib/node-esm/chunk-JKHQSGNU.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +3198 -66
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/testing/index.mjs +34 -45
- package/dist/lib/node-esm/testing/index.mjs.map +3 -3
- package/dist/types/src/components/AnchoredOverflow/AnchoredOverflow.d.ts +7 -0
- package/dist/types/src/components/AnchoredOverflow/AnchoredOverflow.d.ts.map +1 -1
- package/dist/types/src/components/Avatars/Avatar.d.ts.map +1 -1
- package/dist/types/src/components/Breadcrumb/Breadcrumb.d.ts.map +1 -1
- package/dist/types/src/components/Button/Button.d.ts +1 -1
- package/dist/types/src/components/Button/Button.d.ts.map +1 -1
- package/dist/types/src/components/Button/IconButton.d.ts.map +1 -1
- package/dist/types/src/components/Button/ToggleGroup.d.ts +4 -4
- package/dist/types/src/components/Button/ToggleGroup.stories.d.ts +4 -4
- package/dist/types/src/components/DensityProvider/DensityProvider.d.ts +1 -1
- package/dist/types/src/components/DensityProvider/DensityProvider.d.ts.map +1 -1
- package/dist/types/src/components/Dialog/AlertDialog.d.ts.map +1 -1
- package/dist/types/src/components/Dialog/Dialog.d.ts +23 -8
- package/dist/types/src/components/Dialog/Dialog.d.ts.map +1 -1
- package/dist/types/src/components/Dialog/Dialog.stories.d.ts +7 -5
- package/dist/types/src/components/Dialog/Dialog.stories.d.ts.map +1 -1
- package/dist/types/src/components/ElevationProvider/ElevationProvider.d.ts +1 -1
- package/dist/types/src/components/ElevationProvider/ElevationProvider.d.ts.map +1 -1
- package/dist/types/src/components/Icon/Icon.d.ts +1 -1
- package/dist/types/src/components/Icon/Icon.d.ts.map +1 -1
- package/dist/types/src/components/Input/Input.d.ts +1 -1
- package/dist/types/src/components/Input/Input.d.ts.map +1 -1
- package/dist/types/src/components/Input/Input.stories.d.ts +2 -2
- package/dist/types/src/components/Input/Input.stories.d.ts.map +1 -1
- package/dist/types/src/components/List/List.d.ts +1 -1
- package/dist/types/src/components/List/List.d.ts.map +1 -1
- package/dist/types/src/components/List/List.stories.d.ts.map +1 -1
- package/dist/types/src/components/List/Treegrid.d.ts.map +1 -1
- package/dist/types/src/components/Main/Main.d.ts +8 -9
- package/dist/types/src/components/Main/Main.d.ts.map +1 -1
- package/dist/types/src/components/Main/Main.stories.d.ts.map +1 -1
- package/dist/types/src/components/{Menus → Menu}/ContextMenu.d.ts +6 -6
- package/dist/types/src/components/Menu/ContextMenu.d.ts.map +1 -0
- package/dist/types/src/components/Menu/ContextMenu.stories.d.ts.map +1 -0
- package/dist/types/src/components/{Menus → Menu}/DropdownMenu.d.ts +1 -1
- package/dist/types/src/components/Menu/DropdownMenu.d.ts.map +1 -0
- package/dist/types/src/components/Menu/DropdownMenu.stories.d.ts.map +1 -0
- package/dist/types/src/components/Menu/index.d.ts.map +1 -0
- package/dist/types/src/components/Message/Message.d.ts +1 -1
- package/dist/types/src/components/Message/Message.d.ts.map +1 -1
- package/dist/types/src/components/Message/Message.stories.d.ts +1 -1
- package/dist/types/src/components/Message/Message.stories.d.ts.map +1 -1
- package/dist/types/src/components/Popover/Popover.d.ts +1 -1
- package/dist/types/src/components/Popover/Popover.d.ts.map +1 -1
- package/dist/types/src/components/ScrollArea/ScrollArea.d.ts +25 -26
- package/dist/types/src/components/ScrollArea/ScrollArea.d.ts.map +1 -1
- package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts +46 -8
- package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts.map +1 -1
- package/dist/types/src/components/ScrollContainer/ScrollContainer.d.ts +2 -2
- package/dist/types/src/components/ScrollContainer/ScrollContainer.d.ts.map +1 -1
- package/dist/types/src/components/ScrollContainer/ScrollContainer.stories.d.ts +1 -1
- package/dist/types/src/components/Select/Select.d.ts +9 -9
- package/dist/types/src/components/Select/Select.d.ts.map +1 -1
- package/dist/types/src/components/Separator/Separator.d.ts +1 -1
- package/dist/types/src/components/Skeleton/Skeleton.d.ts +12 -0
- package/dist/types/src/components/Skeleton/Skeleton.d.ts.map +1 -0
- package/dist/types/src/components/Skeleton/Skeleton.stories.d.ts +17 -0
- package/dist/types/src/components/Skeleton/Skeleton.stories.d.ts.map +1 -0
- package/dist/types/src/components/Skeleton/index.d.ts +2 -0
- package/dist/types/src/components/Skeleton/index.d.ts.map +1 -0
- package/dist/types/src/components/Splitter/Splitter.d.ts +26 -0
- package/dist/types/src/components/Splitter/Splitter.d.ts.map +1 -0
- package/dist/types/src/components/Splitter/Splitter.stories.d.ts +7 -0
- package/dist/types/src/components/Splitter/Splitter.stories.d.ts.map +1 -0
- package/dist/types/src/components/Splitter/index.d.ts +2 -0
- package/dist/types/src/components/Splitter/index.d.ts.map +1 -0
- package/dist/types/src/components/Tag/Tag.d.ts +1 -1
- package/dist/types/src/components/Tag/Tag.d.ts.map +1 -1
- package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts +2 -2
- package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts.map +1 -1
- package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts +1 -8
- package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts.map +1 -1
- package/dist/types/src/components/ThemeProvider/index.d.ts +2 -1
- package/dist/types/src/components/ThemeProvider/index.d.ts.map +1 -1
- package/dist/types/src/components/Toast/Toast.d.ts +4 -4
- package/dist/types/src/components/Toast/Toast.d.ts.map +1 -1
- package/dist/types/src/components/Toolbar/Toolbar.d.ts +13 -12
- package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +1 -1
- package/dist/types/src/components/Tooltip/Tooltip.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +3 -1
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/exemplars/generics.stories.d.ts +17 -0
- package/dist/types/src/exemplars/generics.stories.d.ts.map +1 -0
- package/dist/types/src/exemplars/slot.stories.d.ts +14 -0
- package/dist/types/src/exemplars/slot.stories.d.ts.map +1 -0
- package/dist/types/src/exemplars/tabster.stories.d.ts +8 -0
- package/dist/types/src/exemplars/tabster.stories.d.ts.map +1 -0
- package/dist/types/src/hooks/useDensityContext.d.ts +1 -1
- package/dist/types/src/hooks/useDensityContext.d.ts.map +1 -1
- package/dist/types/src/hooks/useElevationContext.d.ts +1 -1
- package/dist/types/src/hooks/useElevationContext.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +2 -1
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/playground/Controls.stories.d.ts.map +1 -1
- package/dist/types/src/primitives/Container/Container.d.ts +23 -0
- package/dist/types/src/primitives/Container/Container.d.ts.map +1 -0
- package/dist/types/src/primitives/Container/Container.stories.d.ts +11 -0
- package/dist/types/src/primitives/Container/Container.stories.d.ts.map +1 -0
- package/dist/types/src/primitives/Container/Layout.d.ts +18 -0
- package/dist/types/src/primitives/Container/Layout.d.ts.map +1 -0
- package/dist/types/src/primitives/Container/Layout.stories.d.ts +10 -0
- package/dist/types/src/primitives/Container/Layout.stories.d.ts.map +1 -0
- package/dist/types/src/primitives/Container/index.d.ts +3 -0
- package/dist/types/src/primitives/Container/index.d.ts.map +1 -0
- package/dist/types/src/primitives/Flex/Flex.d.ts +8 -0
- package/dist/types/src/primitives/Flex/Flex.d.ts.map +1 -0
- package/dist/types/src/primitives/Flex/index.d.ts +2 -0
- package/dist/types/src/primitives/Flex/index.d.ts.map +1 -0
- package/dist/types/src/primitives/index.d.ts +3 -0
- package/dist/types/src/primitives/index.d.ts.map +1 -0
- package/dist/types/src/testing/decorators/withLayout.d.ts +3 -3
- package/dist/types/src/testing/decorators/withLayout.d.ts.map +1 -1
- package/dist/types/src/testing/decorators/withLayoutVariants.d.ts +1 -1
- package/dist/types/src/testing/decorators/withLayoutVariants.d.ts.map +1 -1
- package/dist/types/src/testing/decorators/withTheme.d.ts +3 -2
- package/dist/types/src/testing/decorators/withTheme.d.ts.map +1 -1
- package/dist/types/src/util/index.d.ts +1 -2
- package/dist/types/src/util/index.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +37 -32
- package/src/components/AnchoredOverflow/AnchoredOverflow.tsx +10 -12
- package/src/components/Avatars/Avatar.stories.tsx +4 -4
- package/src/components/Avatars/Avatar.tsx +3 -10
- package/src/components/Avatars/AvatarGroup.stories.tsx +2 -2
- package/src/components/Breadcrumb/Breadcrumb.stories.tsx +2 -2
- package/src/components/Breadcrumb/Breadcrumb.tsx +5 -31
- package/src/components/Button/Button.stories.tsx +2 -2
- package/src/components/Button/Button.tsx +2 -8
- package/src/components/Button/IconButton.stories.tsx +2 -2
- package/src/components/Button/IconButton.tsx +5 -2
- package/src/components/Button/Toggle.stories.tsx +2 -2
- package/src/components/Button/ToggleGroup.stories.tsx +2 -2
- package/src/components/Clipboard/CopyButton.tsx +3 -3
- package/src/components/DensityProvider/DensityProvider.tsx +1 -1
- package/src/components/Dialog/AlertDialog.stories.tsx +2 -2
- package/src/components/Dialog/AlertDialog.tsx +3 -8
- package/src/components/Dialog/Dialog.stories.tsx +57 -23
- package/src/components/Dialog/Dialog.tsx +162 -43
- package/src/components/ElevationProvider/ElevationProvider.tsx +1 -1
- package/src/components/Icon/Icon.stories.tsx +3 -3
- package/src/components/Icon/Icon.tsx +2 -2
- package/src/components/Input/Input.stories.tsx +12 -11
- package/src/components/Input/Input.tsx +12 -27
- package/src/components/Link/Link.stories.tsx +2 -2
- package/src/components/Link/Link.tsx +1 -1
- package/src/components/List/List.stories.tsx +18 -14
- package/src/components/List/List.tsx +8 -14
- package/src/components/List/Tree.stories.tsx +2 -2
- package/src/components/List/Treegrid.stories.tsx +2 -2
- package/src/components/List/Treegrid.tsx +4 -9
- package/src/components/Main/Main.stories.tsx +41 -20
- package/src/components/Main/Main.tsx +128 -71
- package/src/components/{Menus → Menu}/ContextMenu.stories.tsx +2 -2
- package/src/components/{Menus → Menu}/ContextMenu.tsx +7 -31
- package/src/components/{Menus → Menu}/DropdownMenu.stories.tsx +2 -2
- package/src/components/{Menus → Menu}/DropdownMenu.tsx +65 -63
- package/src/components/Message/Message.stories.tsx +3 -3
- package/src/components/Message/Message.tsx +32 -23
- package/src/components/Popover/Popover.stories.tsx +2 -2
- package/src/components/Popover/Popover.tsx +38 -36
- package/src/components/ScrollArea/ScrollArea.stories.tsx +166 -40
- package/src/components/ScrollArea/ScrollArea.tsx +80 -82
- package/src/components/ScrollArea/index.ts +1 -1
- package/src/components/ScrollContainer/ScrollContainer.stories.tsx +2 -2
- package/src/components/ScrollContainer/ScrollContainer.tsx +14 -9
- package/src/components/Select/Select.stories.tsx +2 -2
- package/src/components/Select/Select.tsx +9 -25
- package/src/components/Separator/Separator.tsx +1 -1
- package/src/components/Skeleton/Skeleton.stories.tsx +52 -0
- package/src/components/Skeleton/Skeleton.tsx +26 -0
- package/src/components/Skeleton/index.ts +5 -0
- package/src/components/Splitter/Splitter.stories.tsx +73 -0
- package/src/components/Splitter/Splitter.tsx +123 -0
- package/src/components/Splitter/index.ts +5 -0
- package/src/components/Status/Status.stories.tsx +2 -2
- package/src/components/Status/Status.tsx +2 -2
- package/src/components/Tag/Tag.stories.tsx +4 -4
- package/src/components/Tag/Tag.tsx +2 -7
- package/src/components/ThemeProvider/ThemeProvider.tsx +3 -4
- package/src/components/ThemeProvider/TranslationsProvider.tsx +1 -16
- package/src/components/ThemeProvider/index.ts +3 -3
- package/src/components/Toast/Toast.stories.tsx +2 -2
- package/src/components/Toast/Toast.tsx +6 -10
- package/src/components/Toolbar/Toolbar.stories.tsx +2 -2
- package/src/components/Toolbar/Toolbar.tsx +31 -12
- package/src/components/Tooltip/Tooltip.stories.tsx +2 -2
- package/src/components/Tooltip/Tooltip.tsx +24 -22
- package/src/components/index.ts +3 -1
- package/src/exemplars/generics.stories.tsx +44 -0
- package/src/exemplars/slot.stories.tsx +108 -0
- package/src/exemplars/tabster.stories.tsx +127 -0
- package/src/hooks/useDensityContext.ts +1 -1
- package/src/hooks/useElevationContext.ts +1 -1
- package/src/index.ts +2 -1
- package/src/playground/Controls.stories.tsx +3 -4
- package/src/playground/Custom.stories.tsx +2 -2
- package/src/playground/Typography.stories.tsx +2 -2
- package/src/primitives/Container/Container.stories.tsx +67 -0
- package/src/primitives/Container/Container.tsx +79 -0
- package/src/primitives/Container/Layout.stories.tsx +57 -0
- package/src/primitives/Container/Layout.tsx +61 -0
- package/src/primitives/Container/index.ts +6 -0
- package/src/primitives/Flex/Flex.tsx +26 -0
- package/src/primitives/Flex/index.ts +5 -0
- package/src/primitives/index.ts +6 -0
- package/src/testing/decorators/withLayout.tsx +22 -15
- package/src/testing/decorators/withLayoutVariants.tsx +2 -2
- package/src/testing/decorators/withTheme.tsx +21 -18
- package/src/util/index.ts +2 -2
- package/dist/lib/browser/chunk-BFCXP6YC.mjs +0 -4710
- package/dist/lib/browser/chunk-BFCXP6YC.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-F4Z46DD6.mjs +0 -4712
- package/dist/lib/node-esm/chunk-F4Z46DD6.mjs.map +0 -7
- package/dist/types/src/components/Menus/ContextMenu.d.ts.map +0 -1
- package/dist/types/src/components/Menus/ContextMenu.stories.d.ts.map +0 -1
- package/dist/types/src/components/Menus/DropdownMenu.d.ts.map +0 -1
- package/dist/types/src/components/Menus/DropdownMenu.stories.d.ts.map +0 -1
- package/dist/types/src/components/Menus/index.d.ts.map +0 -1
- package/dist/types/src/util/ThemedClassName.d.ts +0 -5
- package/dist/types/src/util/ThemedClassName.d.ts.map +0 -1
- package/dist/types/src/util/domino.d.ts +0 -18
- package/dist/types/src/util/domino.d.ts.map +0 -1
- package/src/util/ThemedClassName.ts +0 -7
- package/src/util/domino.ts +0 -53
- /package/dist/types/src/components/{Menus → Menu}/ContextMenu.stories.d.ts +0 -0
- /package/dist/types/src/components/{Menus → Menu}/DropdownMenu.stories.d.ts +0 -0
- /package/dist/types/src/components/{Menus → Menu}/index.d.ts +0 -0
- /package/src/components/{Menus → Menu}/index.ts +0 -0
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
useListContext,
|
|
24
24
|
useListItemContext,
|
|
25
25
|
} from '@dxos/react-list';
|
|
26
|
-
import { type Density } from '@dxos/
|
|
26
|
+
import { type Density } from '@dxos/ui-types';
|
|
27
27
|
|
|
28
28
|
import { useDensityContext, useThemeContext } from '../../hooks';
|
|
29
29
|
import { type ThemedClassName } from '../../util';
|
|
@@ -40,7 +40,7 @@ const List = forwardRef<HTMLOListElement, ListProps>(({ classNames, children, ..
|
|
|
40
40
|
|
|
41
41
|
return (
|
|
42
42
|
<DensityProvider density={density}>
|
|
43
|
-
<ListPrimitive {...props} className={tx('list.root',
|
|
43
|
+
<ListPrimitive {...props} className={tx('list.root', {}, classNames)} ref={forwardedRef}>
|
|
44
44
|
{children}
|
|
45
45
|
</ListPrimitive>
|
|
46
46
|
</DensityProvider>
|
|
@@ -58,7 +58,7 @@ const ListItemEndcap = forwardRef<HTMLDivElement, ListItemEndcapProps>(
|
|
|
58
58
|
<Root
|
|
59
59
|
{...(!asChild && { role: 'none' })}
|
|
60
60
|
{...props}
|
|
61
|
-
className={tx('list.item.endcap',
|
|
61
|
+
className={tx('list.item.endcap', { density }, classNames)}
|
|
62
62
|
ref={forwardedRef}
|
|
63
63
|
>
|
|
64
64
|
{children}
|
|
@@ -73,13 +73,7 @@ const MockListItemOpenTrigger = ({
|
|
|
73
73
|
}: ThemedClassName<Omit<ComponentPropsWithoutRef<'div'>, 'children'>>) => {
|
|
74
74
|
const density = useDensityContext();
|
|
75
75
|
const { tx } = useThemeContext();
|
|
76
|
-
return (
|
|
77
|
-
<div
|
|
78
|
-
role='none'
|
|
79
|
-
{...props}
|
|
80
|
-
className={tx('list.item.openTrigger', 'list__listItem__openTrigger--mock', { density }, classNames)}
|
|
81
|
-
/>
|
|
82
|
-
);
|
|
76
|
+
return <div role='none' {...props} className={tx('list.item.openTrigger', { density }, classNames)} />;
|
|
83
77
|
};
|
|
84
78
|
|
|
85
79
|
type ListItemHeadingProps = ThemedClassName<ListPrimitiveItemHeadingProps>;
|
|
@@ -91,7 +85,7 @@ const ListItemHeading = forwardRef<HTMLParagraphElement, ListItemHeadingProps>(
|
|
|
91
85
|
return (
|
|
92
86
|
<ListPrimitiveItemHeading
|
|
93
87
|
{...props}
|
|
94
|
-
className={tx('list.item.heading',
|
|
88
|
+
className={tx('list.item.heading', { density }, classNames)}
|
|
95
89
|
ref={forwardedRef}
|
|
96
90
|
>
|
|
97
91
|
{children}
|
|
@@ -110,14 +104,14 @@ const ListItemOpenTrigger = forwardRef<HTMLButtonElement, ListItemOpenTriggerPro
|
|
|
110
104
|
return (
|
|
111
105
|
<ListPrimitiveItemOpenTrigger
|
|
112
106
|
{...props}
|
|
113
|
-
className={tx('list.item.openTrigger',
|
|
107
|
+
className={tx('list.item.openTrigger', { density }, classNames)}
|
|
114
108
|
ref={forwardedRef}
|
|
115
109
|
>
|
|
116
110
|
{children || (
|
|
117
111
|
<Icon
|
|
118
112
|
size={3}
|
|
119
113
|
icon={open ? 'ph--caret-down--bold' : 'ph--caret-right--bold'}
|
|
120
|
-
classNames={tx('list.item.openTriggerIcon',
|
|
114
|
+
classNames={tx('list.item.openTriggerIcon', {})}
|
|
121
115
|
/>
|
|
122
116
|
)}
|
|
123
117
|
</ListPrimitiveItemOpenTrigger>
|
|
@@ -134,7 +128,7 @@ const ListItemRoot = forwardRef<HTMLLIElement, ListItemRootProps>(
|
|
|
134
128
|
return (
|
|
135
129
|
<ListPrimitiveItem
|
|
136
130
|
{...props}
|
|
137
|
-
className={tx('list.item.root',
|
|
131
|
+
className={tx('list.item.root', { density, collapsible: props.collapsible }, classNames)}
|
|
138
132
|
ref={forwardedRef}
|
|
139
133
|
>
|
|
140
134
|
{children}
|
|
@@ -56,10 +56,10 @@ const DefaultStory = ({ data }: StorybookTreeProps) => {
|
|
|
56
56
|
};
|
|
57
57
|
|
|
58
58
|
const meta = {
|
|
59
|
-
title: 'ui/react-ui-core/Tree',
|
|
59
|
+
title: 'ui/react-ui-core/components/Tree',
|
|
60
60
|
component: Tree as any,
|
|
61
61
|
render: DefaultStory,
|
|
62
|
-
decorators: [withTheme],
|
|
62
|
+
decorators: [withTheme()],
|
|
63
63
|
} satisfies Meta<typeof DefaultStory>;
|
|
64
64
|
|
|
65
65
|
export default meta;
|
|
@@ -144,10 +144,10 @@ const DefaultStory = () => {
|
|
|
144
144
|
};
|
|
145
145
|
|
|
146
146
|
const meta = {
|
|
147
|
-
title: 'ui/react-ui-core/Treegrid',
|
|
147
|
+
title: 'ui/react-ui-core/components/Treegrid',
|
|
148
148
|
component: Treegrid.Root as any,
|
|
149
149
|
render: DefaultStory,
|
|
150
|
-
decorators: [withTheme],
|
|
150
|
+
decorators: [withTheme()],
|
|
151
151
|
} satisfies Meta<typeof DefaultStory>;
|
|
152
152
|
|
|
153
153
|
export default meta;
|
|
@@ -97,10 +97,10 @@ const TreegridRoot = forwardRef<HTMLDivElement, TreegridRootProps>(
|
|
|
97
97
|
return (
|
|
98
98
|
<Root
|
|
99
99
|
role='treegrid'
|
|
100
|
-
onKeyDown={handleKeyDown}
|
|
101
100
|
{...props}
|
|
102
|
-
className={tx('treegrid.root',
|
|
101
|
+
className={tx('treegrid.root', {}, classNames)}
|
|
103
102
|
style={{ ...style, gridTemplateColumns }}
|
|
103
|
+
onKeyDown={handleKeyDown}
|
|
104
104
|
ref={forwardedRef}
|
|
105
105
|
>
|
|
106
106
|
{children}
|
|
@@ -149,7 +149,7 @@ const TreegridRow = forwardRef<HTMLDivElement, TreegridRowScopedProps<TreegridRo
|
|
|
149
149
|
<Root
|
|
150
150
|
role='row'
|
|
151
151
|
aria-level={level}
|
|
152
|
-
className={tx('treegrid.row',
|
|
152
|
+
className={tx('treegrid.row', { level }, classNames)}
|
|
153
153
|
{...(parentOf && { 'aria-expanded': open, 'aria-owns': parentOf })}
|
|
154
154
|
{...props}
|
|
155
155
|
id={id}
|
|
@@ -168,12 +168,7 @@ const TreegridCell = forwardRef<HTMLDivElement, TreegridCellProps>(
|
|
|
168
168
|
({ classNames, children, indent, ...props }, forwardedRef) => {
|
|
169
169
|
const { tx } = useThemeContext();
|
|
170
170
|
return (
|
|
171
|
-
<div
|
|
172
|
-
role='gridcell'
|
|
173
|
-
className={tx('treegrid.cell', 'treegrid__cell', { indent }, classNames)}
|
|
174
|
-
{...props}
|
|
175
|
-
ref={forwardedRef}
|
|
176
|
-
>
|
|
171
|
+
<div role='gridcell' className={tx('treegrid.cell', { indent }, classNames)} {...props} ref={forwardedRef}>
|
|
177
172
|
{children}
|
|
178
173
|
</div>
|
|
179
174
|
);
|
|
@@ -5,51 +5,72 @@
|
|
|
5
5
|
import { type Meta, type StoryObj } from '@storybook/react-vite';
|
|
6
6
|
import React from 'react';
|
|
7
7
|
|
|
8
|
-
import { withTheme } from '../../testing';
|
|
9
|
-
import {
|
|
8
|
+
import { withLayout, withTheme } from '../../testing';
|
|
9
|
+
import { IconButton } from '../Button';
|
|
10
|
+
import { Toolbar } from '../Toolbar';
|
|
10
11
|
|
|
11
12
|
import { Main, useSidebars } from './Main';
|
|
12
13
|
|
|
13
14
|
type StoryMainArgs = {};
|
|
14
15
|
|
|
15
|
-
const NavigationSidebarToggle = () => {
|
|
16
|
+
const NavigationSidebarToggle = ({ close }: { close?: boolean }) => {
|
|
16
17
|
const { toggleNavigationSidebar } = useSidebars('StoryMain__SidebarToggle');
|
|
17
|
-
return
|
|
18
|
+
return (
|
|
19
|
+
<IconButton
|
|
20
|
+
icon={close ? 'ph--caret-left--regular' : 'ph--caret-right--regular'}
|
|
21
|
+
iconOnly
|
|
22
|
+
label='Toggle navigation sidebar'
|
|
23
|
+
onClick={toggleNavigationSidebar}
|
|
24
|
+
/>
|
|
25
|
+
);
|
|
18
26
|
};
|
|
19
27
|
|
|
20
|
-
const ComplementarySidebarToggle = () => {
|
|
28
|
+
const ComplementarySidebarToggle = ({ close }: { close?: boolean }) => {
|
|
21
29
|
const { toggleComplementarySidebar } = useSidebars('StoryMain__SidebarToggle');
|
|
22
|
-
return
|
|
30
|
+
return (
|
|
31
|
+
<IconButton
|
|
32
|
+
icon={close ? 'ph--caret-right--regular' : 'ph--caret-left--regular'}
|
|
33
|
+
iconOnly
|
|
34
|
+
label='Toggle complementary sidebar'
|
|
35
|
+
onClick={toggleComplementarySidebar}
|
|
36
|
+
/>
|
|
37
|
+
);
|
|
23
38
|
};
|
|
24
39
|
|
|
25
40
|
const DefaultStory = (_args: StoryMainArgs) => {
|
|
26
41
|
return (
|
|
27
|
-
<Main.Root>
|
|
42
|
+
<Main.Root defaultComplementarySidebarState='closed' defaultNavigationSidebarState='closed'>
|
|
28
43
|
<Main.Overlay />
|
|
29
|
-
<Main.NavigationSidebar label='Navigation'
|
|
30
|
-
<
|
|
31
|
-
|
|
44
|
+
<Main.NavigationSidebar label='Navigation'>
|
|
45
|
+
<Toolbar.Root>
|
|
46
|
+
<h1>Navigation</h1>
|
|
47
|
+
<Toolbar.Separator variant='gap' classNames='grow' />
|
|
48
|
+
<NavigationSidebarToggle close />
|
|
49
|
+
</Toolbar.Root>
|
|
32
50
|
</Main.NavigationSidebar>
|
|
33
|
-
<Main.Content>
|
|
34
|
-
<
|
|
35
|
-
<ComplementarySidebarToggle />
|
|
36
|
-
<p>Main content, hello!</p>
|
|
51
|
+
<Main.Content classNames='is-full'>
|
|
52
|
+
<Toolbar.Root>
|
|
37
53
|
<NavigationSidebarToggle />
|
|
38
|
-
|
|
54
|
+
<div className='flex items-center grow justify-center'>Main</div>
|
|
55
|
+
<ComplementarySidebarToggle />
|
|
56
|
+
</Toolbar.Root>
|
|
39
57
|
</Main.Content>
|
|
40
|
-
<Main.ComplementarySidebar label='Complementary
|
|
41
|
-
<
|
|
42
|
-
|
|
58
|
+
<Main.ComplementarySidebar label='Complementary'>
|
|
59
|
+
<Toolbar.Root>
|
|
60
|
+
<ComplementarySidebarToggle close />
|
|
61
|
+
<Toolbar.Separator variant='gap' classNames='grow' />
|
|
62
|
+
<h1>Complementary</h1>
|
|
63
|
+
</Toolbar.Root>
|
|
43
64
|
</Main.ComplementarySidebar>
|
|
44
65
|
</Main.Root>
|
|
45
66
|
);
|
|
46
67
|
};
|
|
47
68
|
|
|
48
69
|
const meta = {
|
|
49
|
-
title: 'ui/react-ui-core/Main',
|
|
70
|
+
title: 'ui/react-ui-core/components/Main',
|
|
50
71
|
component: Main.Root,
|
|
51
72
|
render: DefaultStory,
|
|
52
|
-
decorators: [withTheme],
|
|
73
|
+
decorators: [withTheme(), withLayout({ layout: 'fullscreen' })],
|
|
53
74
|
parameters: {
|
|
54
75
|
layout: 'fullscreen',
|
|
55
76
|
chromatic: {
|
|
@@ -22,8 +22,10 @@ import React, {
|
|
|
22
22
|
useState,
|
|
23
23
|
} from 'react';
|
|
24
24
|
|
|
25
|
+
import { addEventListener } from '@dxos/async';
|
|
25
26
|
import { log } from '@dxos/log';
|
|
26
27
|
import { useForwardedRef, useMediaQuery } from '@dxos/react-hooks';
|
|
28
|
+
import { type MainStyleProps } from '@dxos/ui-theme';
|
|
27
29
|
|
|
28
30
|
import { useThemeContext } from '../../hooks';
|
|
29
31
|
import { type ThemedClassName } from '../../util';
|
|
@@ -33,9 +35,17 @@ import { useSwipeToDismiss } from './useSwipeToDismiss';
|
|
|
33
35
|
|
|
34
36
|
const MAIN_NAME = 'Main';
|
|
35
37
|
const MAIN_ROOT_NAME = 'MainRoot';
|
|
38
|
+
const MAIN_OVERLAY_NAME = 'MainOverlay';
|
|
36
39
|
const NAVIGATION_SIDEBAR_NAME = 'NavigationSidebar';
|
|
37
40
|
const COMPLEMENTARY_SIDEBAR_NAME = 'ComplementarySidebar';
|
|
38
|
-
|
|
41
|
+
|
|
42
|
+
const handleOpenAutoFocus = (event: Event) => {
|
|
43
|
+
!document.body.hasAttribute('data-is-keyboard') && event.preventDefault();
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
//
|
|
47
|
+
// Landmark
|
|
48
|
+
//
|
|
39
49
|
|
|
40
50
|
const landmarkAttr = 'data-main-landmark';
|
|
41
51
|
|
|
@@ -67,40 +77,54 @@ const useLandmarkMover = (propsOnKeyDown: ComponentPropsWithoutRef<'div'>['onKey
|
|
|
67
77
|
const focusableGroupAttrs = useFocusableGroup({ tabBehavior: 'limited', ignoreDefaultKeydown: { Tab: true } });
|
|
68
78
|
|
|
69
79
|
return {
|
|
70
|
-
onKeyDown: handleKeyDown,
|
|
71
80
|
[landmarkAttr]: landmark,
|
|
72
81
|
tabIndex: 0,
|
|
82
|
+
onKeyDown: handleKeyDown,
|
|
73
83
|
...focusableGroupAttrs,
|
|
74
84
|
};
|
|
75
85
|
};
|
|
76
86
|
|
|
87
|
+
//
|
|
88
|
+
// Context
|
|
89
|
+
//
|
|
90
|
+
|
|
91
|
+
// TODO(burdon): Define collapsed state.
|
|
77
92
|
type SidebarState = 'expanded' | 'collapsed' | 'closed';
|
|
78
93
|
|
|
79
94
|
type MainContextValue = {
|
|
80
95
|
resizing: boolean;
|
|
96
|
+
|
|
97
|
+
// Navigation
|
|
81
98
|
navigationSidebarState: SidebarState;
|
|
82
99
|
setNavigationSidebarState: Dispatch<SetStateAction<SidebarState | undefined>>;
|
|
100
|
+
|
|
101
|
+
// Complementary
|
|
83
102
|
complementarySidebarState: SidebarState;
|
|
84
103
|
setComplementarySidebarState: Dispatch<SetStateAction<SidebarState | undefined>>;
|
|
85
104
|
};
|
|
86
105
|
|
|
87
106
|
const [MainProvider, useMainContext] = createContext<MainContextValue>(MAIN_NAME, {
|
|
88
107
|
resizing: false,
|
|
108
|
+
|
|
89
109
|
navigationSidebarState: 'closed',
|
|
90
110
|
setNavigationSidebarState: (_nextState) => {
|
|
91
|
-
|
|
92
|
-
log.warn('Attempt to set sidebar state without initializing `MainRoot`');
|
|
111
|
+
log.warn('Not initialized');
|
|
93
112
|
},
|
|
113
|
+
|
|
94
114
|
complementarySidebarState: 'closed',
|
|
95
115
|
setComplementarySidebarState: (_nextState) => {
|
|
96
|
-
|
|
97
|
-
log.warn('Attempt to set sidebar state without initializing `MainRoot`');
|
|
116
|
+
log.warn('Not initialized');
|
|
98
117
|
},
|
|
99
118
|
});
|
|
100
119
|
|
|
101
|
-
const useSidebars = (consumerName
|
|
102
|
-
const {
|
|
103
|
-
|
|
120
|
+
const useSidebars = (consumerName: string) => {
|
|
121
|
+
const {
|
|
122
|
+
navigationSidebarState,
|
|
123
|
+
setNavigationSidebarState,
|
|
124
|
+
|
|
125
|
+
complementarySidebarState,
|
|
126
|
+
setComplementarySidebarState,
|
|
127
|
+
} = useMainContext(consumerName);
|
|
104
128
|
|
|
105
129
|
return {
|
|
106
130
|
navigationSidebarState,
|
|
@@ -112,6 +136,7 @@ const useSidebars = (consumerName = GENERIC_CONSUMER_NAME) => {
|
|
|
112
136
|
openNavigationSidebar: useCallback(() => setNavigationSidebarState('expanded'), []),
|
|
113
137
|
collapseNavigationSidebar: useCallback(() => setNavigationSidebarState('collapsed'), []),
|
|
114
138
|
closeNavigationSidebar: useCallback(() => setNavigationSidebarState('closed'), []),
|
|
139
|
+
|
|
115
140
|
complementarySidebarState,
|
|
116
141
|
setComplementarySidebarState,
|
|
117
142
|
toggleComplementarySidebar: useCallback(
|
|
@@ -124,24 +149,29 @@ const useSidebars = (consumerName = GENERIC_CONSUMER_NAME) => {
|
|
|
124
149
|
};
|
|
125
150
|
};
|
|
126
151
|
|
|
152
|
+
//
|
|
153
|
+
// Root
|
|
154
|
+
//
|
|
155
|
+
|
|
127
156
|
type MainRootProps = PropsWithChildren<{
|
|
128
157
|
navigationSidebarState?: SidebarState;
|
|
129
158
|
defaultNavigationSidebarState?: SidebarState;
|
|
130
159
|
onNavigationSidebarStateChange?: (nextState: SidebarState) => void;
|
|
160
|
+
|
|
131
161
|
complementarySidebarState?: SidebarState;
|
|
132
162
|
defaultComplementarySidebarState?: SidebarState;
|
|
133
163
|
onComplementarySidebarStateChange?: (nextState: SidebarState) => void;
|
|
134
164
|
}>;
|
|
135
165
|
|
|
136
|
-
const resizeDebounce = 3000;
|
|
137
|
-
|
|
138
166
|
const MainRoot = ({
|
|
139
167
|
navigationSidebarState: propsNavigationSidebarState,
|
|
140
|
-
defaultNavigationSidebarState,
|
|
168
|
+
defaultNavigationSidebarState = 'closed',
|
|
141
169
|
onNavigationSidebarStateChange,
|
|
170
|
+
|
|
142
171
|
complementarySidebarState: propsComplementarySidebarState,
|
|
143
|
-
defaultComplementarySidebarState,
|
|
172
|
+
defaultComplementarySidebarState = 'closed',
|
|
144
173
|
onComplementarySidebarStateChange,
|
|
174
|
+
|
|
145
175
|
children,
|
|
146
176
|
...props
|
|
147
177
|
}: MainRootProps) => {
|
|
@@ -161,22 +191,21 @@ const MainRoot = ({
|
|
|
161
191
|
|
|
162
192
|
const [resizing, setResizing] = useState(false);
|
|
163
193
|
const resizeInterval = useRef<ReturnType<typeof setTimeout> | null>(null);
|
|
194
|
+
useEffect(
|
|
195
|
+
() =>
|
|
196
|
+
addEventListener(window, 'resize', () => {
|
|
197
|
+
setResizing(true);
|
|
198
|
+
if (resizeInterval.current) {
|
|
199
|
+
clearTimeout(resizeInterval.current);
|
|
200
|
+
}
|
|
164
201
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
resizeInterval.current = null;
|
|
173
|
-
}, resizeDebounce);
|
|
174
|
-
}, []);
|
|
175
|
-
|
|
176
|
-
useEffect(() => {
|
|
177
|
-
window.addEventListener('resize', handleResize);
|
|
178
|
-
return () => window.removeEventListener('resize', handleResize);
|
|
179
|
-
}, [handleResize]);
|
|
202
|
+
resizeInterval.current = setTimeout(() => {
|
|
203
|
+
setResizing(false);
|
|
204
|
+
resizeInterval.current = null;
|
|
205
|
+
}, 3_000);
|
|
206
|
+
}),
|
|
207
|
+
[],
|
|
208
|
+
);
|
|
180
209
|
|
|
181
210
|
return (
|
|
182
211
|
<MainProvider
|
|
@@ -196,9 +225,45 @@ const MainRoot = ({
|
|
|
196
225
|
|
|
197
226
|
MainRoot.displayName = MAIN_ROOT_NAME;
|
|
198
227
|
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
228
|
+
//
|
|
229
|
+
// Overlay
|
|
230
|
+
//
|
|
231
|
+
|
|
232
|
+
type MainOverlayProps = ThemedClassName<Omit<ComponentPropsWithRef<typeof Primitive.div>, 'children' | 'onClick'>>;
|
|
233
|
+
|
|
234
|
+
const MainOverlay = forwardRef<HTMLDivElement, MainOverlayProps>(({ classNames, ...props }, forwardedRef) => {
|
|
235
|
+
const [isLg] = useMediaQuery('lg');
|
|
236
|
+
const { navigationSidebarState, setNavigationSidebarState, complementarySidebarState, setComplementarySidebarState } =
|
|
237
|
+
useMainContext(MAIN_OVERLAY_NAME);
|
|
238
|
+
const { tx } = useThemeContext();
|
|
239
|
+
return (
|
|
240
|
+
<div
|
|
241
|
+
{...props}
|
|
242
|
+
onClick={() => {
|
|
243
|
+
setNavigationSidebarState('collapsed');
|
|
244
|
+
setComplementarySidebarState('collapsed');
|
|
245
|
+
}}
|
|
246
|
+
className={tx(
|
|
247
|
+
'main.overlay',
|
|
248
|
+
{
|
|
249
|
+
isLg,
|
|
250
|
+
inlineStartSidebarOpen: navigationSidebarState,
|
|
251
|
+
inlineEndSidebarOpen: complementarySidebarState,
|
|
252
|
+
},
|
|
253
|
+
classNames,
|
|
254
|
+
)}
|
|
255
|
+
data-state={navigationSidebarState === 'expanded' || complementarySidebarState === 'expanded' ? 'open' : 'closed'}
|
|
256
|
+
aria-hidden='true'
|
|
257
|
+
ref={forwardedRef}
|
|
258
|
+
/>
|
|
259
|
+
);
|
|
260
|
+
});
|
|
261
|
+
|
|
262
|
+
MainOverlay.displayName = MAIN_OVERLAY_NAME;
|
|
263
|
+
|
|
264
|
+
//
|
|
265
|
+
// Sidebar
|
|
266
|
+
//
|
|
202
267
|
|
|
203
268
|
type MainSidebarProps = ThemedClassName<ComponentPropsWithRef<typeof DialogContent>> & {
|
|
204
269
|
swipeToDismiss?: boolean;
|
|
@@ -219,9 +284,11 @@ const MainSidebar = forwardRef<HTMLDivElement, MainSidebarProps>(
|
|
|
219
284
|
const { t } = useTranslation();
|
|
220
285
|
const ref = useForwardedRef(forwardedRef);
|
|
221
286
|
const noopRef = useRef(null);
|
|
287
|
+
|
|
222
288
|
useSwipeToDismiss(swipeToDismiss ? ref : noopRef, {
|
|
223
289
|
onDismiss: () => onStateChange?.('closed'),
|
|
224
290
|
});
|
|
291
|
+
|
|
225
292
|
// NOTE(thure): This is a workaround for something further down the tree grabbing focus on Escape. Adding this
|
|
226
293
|
// intervention to `Tabs.Root` or `Tabs.Tabpenel` instances is somehow ineffectual.
|
|
227
294
|
const handleKeyDown = useCallback(
|
|
@@ -236,6 +303,7 @@ const MainSidebar = forwardRef<HTMLDivElement, MainSidebarProps>(
|
|
|
236
303
|
},
|
|
237
304
|
[props.onKeyDown],
|
|
238
305
|
);
|
|
306
|
+
|
|
239
307
|
const Root = isLg ? Primitive.div : DialogContent;
|
|
240
308
|
|
|
241
309
|
return (
|
|
@@ -243,13 +311,13 @@ const MainSidebar = forwardRef<HTMLDivElement, MainSidebarProps>(
|
|
|
243
311
|
{!isLg && <DialogTitle className='sr-only'>{toLocalizedString(label, t)}</DialogTitle>}
|
|
244
312
|
<Root
|
|
245
313
|
{...(!isLg && { forceMount: true, tabIndex: -1, onOpenAutoFocus: onOpenAutoFocus ?? handleOpenAutoFocus })}
|
|
314
|
+
{...(state === 'closed' && { inert: true })}
|
|
246
315
|
{...props}
|
|
247
316
|
data-side={side === 'inline-end' ? 'ie' : 'is'}
|
|
248
317
|
data-state={state}
|
|
249
318
|
data-resizing={resizing ? 'true' : 'false'}
|
|
250
|
-
className={tx('main.sidebar',
|
|
319
|
+
className={tx('main.sidebar', {}, classNames)}
|
|
251
320
|
onKeyDownCapture={handleKeyDown}
|
|
252
|
-
{...(state === 'closed' && { inert: true })}
|
|
253
321
|
ref={ref}
|
|
254
322
|
>
|
|
255
323
|
{children}
|
|
@@ -259,6 +327,10 @@ const MainSidebar = forwardRef<HTMLDivElement, MainSidebarProps>(
|
|
|
259
327
|
},
|
|
260
328
|
);
|
|
261
329
|
|
|
330
|
+
//
|
|
331
|
+
// Navigation Sidebar
|
|
332
|
+
//
|
|
333
|
+
|
|
262
334
|
type MainNavigationSidebarProps = Omit<MainSidebarProps, 'expanded' | 'side'>;
|
|
263
335
|
|
|
264
336
|
const MainNavigationSidebar = forwardRef<HTMLDivElement, MainNavigationSidebarProps>((props, forwardedRef) => {
|
|
@@ -280,6 +352,10 @@ const MainNavigationSidebar = forwardRef<HTMLDivElement, MainNavigationSidebarPr
|
|
|
280
352
|
|
|
281
353
|
MainNavigationSidebar.displayName = NAVIGATION_SIDEBAR_NAME;
|
|
282
354
|
|
|
355
|
+
//
|
|
356
|
+
// Complementary Sidebar
|
|
357
|
+
//
|
|
358
|
+
|
|
283
359
|
type MainComplementarySidebarProps = Omit<MainSidebarProps, 'expanded' | 'side'>;
|
|
284
360
|
|
|
285
361
|
const MainComplementarySidebar = forwardRef<HTMLDivElement, MainComplementarySidebarProps>((props, forwardedRef) => {
|
|
@@ -300,20 +376,24 @@ const MainComplementarySidebar = forwardRef<HTMLDivElement, MainComplementarySid
|
|
|
300
376
|
);
|
|
301
377
|
});
|
|
302
378
|
|
|
303
|
-
|
|
379
|
+
MainComplementarySidebar.displayName = COMPLEMENTARY_SIDEBAR_NAME;
|
|
304
380
|
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
381
|
+
//
|
|
382
|
+
// Content
|
|
383
|
+
//
|
|
384
|
+
|
|
385
|
+
type MainContentProps = ThemedClassName<
|
|
386
|
+
ComponentPropsWithRef<typeof Primitive.div> &
|
|
387
|
+
MainStyleProps & {
|
|
388
|
+
asChild?: boolean;
|
|
389
|
+
}
|
|
390
|
+
>;
|
|
310
391
|
|
|
311
|
-
const MainContent = forwardRef<HTMLDivElement,
|
|
312
|
-
({ asChild, classNames, bounce, handlesFocus, children, role, ...props }:
|
|
392
|
+
const MainContent = forwardRef<HTMLDivElement, MainContentProps>(
|
|
393
|
+
({ asChild, classNames, bounce, handlesFocus, children, role, ...props }: MainContentProps, forwardedRef) => {
|
|
313
394
|
const { navigationSidebarState, complementarySidebarState } = useMainContext(MAIN_NAME);
|
|
314
395
|
const { tx } = useThemeContext();
|
|
315
396
|
const Root = asChild ? Slot : role ? 'div' : 'main';
|
|
316
|
-
|
|
317
397
|
const mover = useLandmarkMover(props.onKeyDown, '1');
|
|
318
398
|
|
|
319
399
|
return (
|
|
@@ -324,7 +404,7 @@ const MainContent = forwardRef<HTMLDivElement, MainProps>(
|
|
|
324
404
|
data-sidebar-inline-start-state={navigationSidebarState}
|
|
325
405
|
data-sidebar-inline-end-state={complementarySidebarState}
|
|
326
406
|
data-handles-focus={handlesFocus}
|
|
327
|
-
className={tx('main.content',
|
|
407
|
+
className={tx('main.content', { bounce, handlesFocus }, classNames)}
|
|
328
408
|
ref={forwardedRef}
|
|
329
409
|
>
|
|
330
410
|
{children}
|
|
@@ -335,41 +415,18 @@ const MainContent = forwardRef<HTMLDivElement, MainProps>(
|
|
|
335
415
|
|
|
336
416
|
MainContent.displayName = MAIN_NAME;
|
|
337
417
|
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
const [isLg] = useMediaQuery('lg');
|
|
342
|
-
const { navigationSidebarState, setNavigationSidebarState, complementarySidebarState, setComplementarySidebarState } =
|
|
343
|
-
useMainContext(MAIN_NAME);
|
|
344
|
-
const { tx } = useThemeContext();
|
|
345
|
-
return (
|
|
346
|
-
<div
|
|
347
|
-
onClick={() => {
|
|
348
|
-
setNavigationSidebarState('collapsed');
|
|
349
|
-
setComplementarySidebarState('collapsed');
|
|
350
|
-
}}
|
|
351
|
-
{...props}
|
|
352
|
-
className={tx(
|
|
353
|
-
'main.overlay',
|
|
354
|
-
'main__overlay',
|
|
355
|
-
{ isLg, inlineStartSidebarOpen: navigationSidebarState, inlineEndSidebarOpen: complementarySidebarState },
|
|
356
|
-
classNames,
|
|
357
|
-
)}
|
|
358
|
-
data-state={navigationSidebarState === 'expanded' || complementarySidebarState === 'expanded' ? 'open' : 'closed'}
|
|
359
|
-
aria-hidden='true'
|
|
360
|
-
ref={forwardedRef}
|
|
361
|
-
/>
|
|
362
|
-
);
|
|
363
|
-
});
|
|
418
|
+
//
|
|
419
|
+
// Main
|
|
420
|
+
//
|
|
364
421
|
|
|
365
422
|
export const Main = {
|
|
366
423
|
Root: MainRoot,
|
|
367
|
-
Content: MainContent,
|
|
368
424
|
Overlay: MainOverlay,
|
|
425
|
+
Content: MainContent,
|
|
369
426
|
NavigationSidebar: MainNavigationSidebar,
|
|
370
427
|
ComplementarySidebar: MainComplementarySidebar,
|
|
371
428
|
};
|
|
372
429
|
|
|
373
430
|
export { useMainContext, useSidebars, useLandmarkMover };
|
|
374
431
|
|
|
375
|
-
export type { MainRootProps,
|
|
432
|
+
export type { MainRootProps, MainOverlayProps, MainContentProps, MainNavigationSidebarProps, SidebarState };
|
|
@@ -92,10 +92,10 @@ const DefaultStory = () => {
|
|
|
92
92
|
};
|
|
93
93
|
|
|
94
94
|
const meta = {
|
|
95
|
-
title: 'ui/react-ui-core/ContextMenu',
|
|
95
|
+
title: 'ui/react-ui-core/components/ContextMenu',
|
|
96
96
|
component: ContextMenu.Root as any,
|
|
97
97
|
render: DefaultStory,
|
|
98
|
-
decorators: [withTheme],
|
|
98
|
+
decorators: [withTheme()],
|
|
99
99
|
} satisfies Meta<typeof DefaultStory>;
|
|
100
100
|
|
|
101
101
|
export default meta;
|