@dxos/react-ui 0.8.4-main.b97322e → 0.8.4-main.dedc0f3
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-2COVUP44.mjs → chunk-Y4PW3CX2.mjs} +56 -27
- package/dist/lib/browser/chunk-Y4PW3CX2.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +3 -1
- package/dist/lib/browser/index.mjs.map +1 -1
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/testing/index.mjs +2 -2
- package/dist/lib/browser/testing/index.mjs.map +3 -3
- package/dist/lib/node-esm/{chunk-GHXHND5V.mjs → chunk-L6LIOSFT.mjs} +56 -27
- package/dist/lib/node-esm/chunk-L6LIOSFT.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +3 -1
- package/dist/lib/node-esm/index.mjs.map +1 -1
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/testing/index.mjs +2 -2
- package/dist/lib/node-esm/testing/index.mjs.map +3 -3
- package/dist/types/src/components/Avatars/Avatar.d.ts +1 -1
- package/dist/types/src/components/Avatars/Avatar.d.ts.map +1 -1
- package/dist/types/src/components/Avatars/Avatar.stories.d.ts +5 -25
- package/dist/types/src/components/Avatars/Avatar.stories.d.ts.map +1 -1
- package/dist/types/src/components/Avatars/AvatarGroup.stories.d.ts +5 -5
- package/dist/types/src/components/Avatars/AvatarGroup.stories.d.ts.map +1 -1
- package/dist/types/src/components/Breadcrumb/Breadcrumb.d.ts +1 -1
- package/dist/types/src/components/Breadcrumb/Breadcrumb.d.ts.map +1 -1
- package/dist/types/src/components/Breadcrumb/Breadcrumb.stories.d.ts +8 -14
- package/dist/types/src/components/Breadcrumb/Breadcrumb.stories.d.ts.map +1 -1
- package/dist/types/src/components/Buttons/Button.stories.d.ts +14 -3
- package/dist/types/src/components/Buttons/Button.stories.d.ts.map +1 -1
- package/dist/types/src/components/Buttons/IconButton.d.ts +2 -2
- package/dist/types/src/components/Buttons/IconButton.d.ts.map +1 -1
- package/dist/types/src/components/Buttons/IconButton.stories.d.ts +6 -9
- package/dist/types/src/components/Buttons/IconButton.stories.d.ts.map +1 -1
- package/dist/types/src/components/Buttons/Toggle.stories.d.ts +5 -5
- package/dist/types/src/components/Buttons/Toggle.stories.d.ts.map +1 -1
- package/dist/types/src/components/Buttons/ToggleGroup.d.ts +5 -2
- package/dist/types/src/components/Buttons/ToggleGroup.d.ts.map +1 -1
- package/dist/types/src/components/Buttons/ToggleGroup.stories.d.ts +5 -7
- package/dist/types/src/components/Buttons/ToggleGroup.stories.d.ts.map +1 -1
- package/dist/types/src/components/Clipboard/ClipboardProvider.d.ts.map +1 -1
- package/dist/types/src/components/Clipboard/CopyButton.d.ts.map +1 -1
- package/dist/types/src/components/DensityProvider/DensityProvider.d.ts.map +1 -1
- package/dist/types/src/components/Dialogs/AlertDialog.d.ts +1 -1
- package/dist/types/src/components/Dialogs/AlertDialog.d.ts.map +1 -1
- package/dist/types/src/components/Dialogs/AlertDialog.stories.d.ts +7 -33
- package/dist/types/src/components/Dialogs/AlertDialog.stories.d.ts.map +1 -1
- package/dist/types/src/components/Dialogs/Dialog.d.ts +1 -1
- package/dist/types/src/components/Dialogs/Dialog.d.ts.map +1 -1
- package/dist/types/src/components/Dialogs/Dialog.stories.d.ts +6 -28
- package/dist/types/src/components/Dialogs/Dialog.stories.d.ts.map +1 -1
- package/dist/types/src/components/ElevationProvider/ElevationProvider.d.ts.map +1 -1
- package/dist/types/src/components/Input/Input.d.ts +2 -2
- package/dist/types/src/components/Input/Input.d.ts.map +1 -1
- package/dist/types/src/components/Input/Input.stories.d.ts +15 -10
- package/dist/types/src/components/Input/Input.stories.d.ts.map +1 -1
- package/dist/types/src/components/Link/Link.stories.d.ts +12 -6
- package/dist/types/src/components/Link/Link.stories.d.ts.map +1 -1
- package/dist/types/src/components/Lists/List.d.ts +2 -2
- package/dist/types/src/components/Lists/List.d.ts.map +1 -1
- package/dist/types/src/components/Lists/List.stories.d.ts +8 -25
- package/dist/types/src/components/Lists/List.stories.d.ts.map +1 -1
- package/dist/types/src/components/Lists/Tree.d.ts +1 -1
- package/dist/types/src/components/Lists/Tree.d.ts.map +1 -1
- package/dist/types/src/components/Lists/Tree.stories.d.ts +6 -26
- package/dist/types/src/components/Lists/Tree.stories.d.ts.map +1 -1
- package/dist/types/src/components/Lists/Treegrid.d.ts +1 -1
- package/dist/types/src/components/Lists/Treegrid.d.ts.map +1 -1
- package/dist/types/src/components/Lists/Treegrid.stories.d.ts +6 -4
- package/dist/types/src/components/Lists/Treegrid.stories.d.ts.map +1 -1
- package/dist/types/src/components/Main/Main.d.ts +1 -1
- package/dist/types/src/components/Main/Main.d.ts.map +1 -1
- package/dist/types/src/components/Main/Main.stories.d.ts +6 -6
- package/dist/types/src/components/Main/Main.stories.d.ts.map +1 -1
- package/dist/types/src/components/Menus/ContextMenu.d.ts.map +1 -1
- package/dist/types/src/components/Menus/ContextMenu.stories.d.ts +6 -38
- package/dist/types/src/components/Menus/ContextMenu.stories.d.ts.map +1 -1
- package/dist/types/src/components/Menus/DropdownMenu.d.ts +5 -4
- package/dist/types/src/components/Menus/DropdownMenu.d.ts.map +1 -1
- package/dist/types/src/components/Menus/DropdownMenu.stories.d.ts +6 -35
- package/dist/types/src/components/Menus/DropdownMenu.stories.d.ts.map +1 -1
- 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 +7 -15
- 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/Popover/Popover.stories.d.ts +6 -28
- package/dist/types/src/components/Popover/Popover.stories.d.ts.map +1 -1
- package/dist/types/src/components/ScrollArea/ScrollArea.d.ts +1 -1
- package/dist/types/src/components/ScrollArea/ScrollArea.d.ts.map +1 -1
- package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts +6 -26
- package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts.map +1 -1
- package/dist/types/src/components/Select/Select.d.ts.map +1 -1
- package/dist/types/src/components/Select/Select.stories.d.ts +4 -3
- package/dist/types/src/components/Select/Select.stories.d.ts.map +1 -1
- package/dist/types/src/components/Status/Status.stories.d.ts +2 -2
- package/dist/types/src/components/Status/Status.stories.d.ts.map +1 -1
- package/dist/types/src/components/Tag/Tag.stories.d.ts +6 -6
- package/dist/types/src/components/Tag/Tag.stories.d.ts.map +1 -1
- package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts +1 -1
- package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts.map +1 -1
- package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts +1 -1
- package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts.map +1 -1
- package/dist/types/src/components/Toast/Toast.d.ts +1 -1
- package/dist/types/src/components/Toast/Toast.d.ts.map +1 -1
- package/dist/types/src/components/Toast/Toast.stories.d.ts +6 -38
- package/dist/types/src/components/Toast/Toast.stories.d.ts.map +1 -1
- package/dist/types/src/components/Toolbar/Toolbar.d.ts +1 -1
- package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +1 -1
- package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts +6 -44
- package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts.map +1 -1
- package/dist/types/src/components/Tooltip/Tooltip.d.ts +1 -1
- package/dist/types/src/components/Tooltip/Tooltip.d.ts.map +1 -1
- package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts +8 -55
- package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts.map +1 -1
- package/dist/types/src/playground/Controls.stories.d.ts +5 -3
- package/dist/types/src/playground/Controls.stories.d.ts.map +1 -1
- package/dist/types/src/playground/Custom.stories.d.ts +12 -3
- package/dist/types/src/playground/Custom.stories.d.ts.map +1 -1
- package/dist/types/src/playground/Typography.stories.d.ts +5 -5
- package/dist/types/src/playground/Typography.stories.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +16 -14
- package/src/components/Avatars/Avatar.stories.tsx +19 -8
- package/src/components/Avatars/Avatar.tsx +3 -3
- package/src/components/Avatars/AvatarGroup.stories.tsx +11 -4
- package/src/components/Breadcrumb/Breadcrumb.stories.tsx +16 -8
- package/src/components/Breadcrumb/Breadcrumb.tsx +1 -1
- package/src/components/Buttons/Button.stories.tsx +5 -4
- package/src/components/Buttons/IconButton.stories.tsx +11 -5
- package/src/components/Buttons/IconButton.tsx +4 -3
- package/src/components/Buttons/Toggle.stories.tsx +10 -4
- package/src/components/Buttons/ToggleGroup.stories.tsx +10 -4
- package/src/components/Buttons/ToggleGroup.tsx +17 -4
- package/src/components/Clipboard/ClipboardProvider.tsx +1 -1
- package/src/components/Clipboard/CopyButton.tsx +2 -1
- package/src/components/DensityProvider/DensityProvider.tsx +1 -1
- package/src/components/Dialogs/AlertDialog.stories.tsx +14 -8
- package/src/components/Dialogs/AlertDialog.tsx +13 -13
- package/src/components/Dialogs/Dialog.stories.tsx +11 -11
- package/src/components/Dialogs/Dialog.tsx +13 -13
- package/src/components/ElevationProvider/ElevationProvider.tsx +1 -1
- package/src/components/Input/Input.stories.tsx +12 -11
- package/src/components/Input/Input.tsx +13 -13
- package/src/components/Link/Link.stories.tsx +11 -4
- package/src/components/Lists/List.stories.tsx +14 -8
- package/src/components/Lists/List.tsx +16 -12
- package/src/components/Lists/Tree.stories.tsx +11 -5
- package/src/components/Lists/Tree.tsx +4 -3
- package/src/components/Lists/TreeDropIndicator.tsx +1 -1
- package/src/components/Lists/Treegrid.stories.tsx +12 -6
- package/src/components/Lists/Treegrid.tsx +2 -2
- package/src/components/Main/Main.stories.tsx +14 -6
- package/src/components/Main/Main.tsx +15 -9
- package/src/components/Menus/ContextMenu.stories.tsx +11 -5
- package/src/components/Menus/ContextMenu.tsx +1 -0
- package/src/components/Menus/DropdownMenu.stories.tsx +11 -5
- package/src/components/Menus/DropdownMenu.tsx +21 -11
- package/src/components/Message/Message.stories.tsx +11 -5
- package/src/components/Message/Message.tsx +1 -1
- package/src/components/Popover/Popover.stories.tsx +11 -5
- package/src/components/Popover/Popover.tsx +7 -7
- package/src/components/ScrollArea/ScrollArea.stories.tsx +11 -5
- package/src/components/ScrollArea/ScrollArea.tsx +4 -4
- package/src/components/Select/Select.stories.tsx +14 -9
- package/src/components/Select/Select.tsx +5 -4
- package/src/components/Status/Status.stories.tsx +9 -3
- package/src/components/Tag/Tag.stories.tsx +13 -5
- package/src/components/ThemeProvider/ThemeProvider.tsx +3 -2
- package/src/components/ThemeProvider/TranslationsProvider.tsx +3 -3
- package/src/components/Toast/Toast.stories.tsx +11 -5
- package/src/components/Toast/Toast.tsx +9 -9
- package/src/components/Toolbar/Toolbar.stories.tsx +12 -5
- package/src/components/Toolbar/Toolbar.tsx +3 -2
- package/src/components/Tooltip/Tooltip.stories.tsx +16 -9
- package/src/components/Tooltip/Tooltip.tsx +3 -3
- package/src/playground/Controls.stories.tsx +10 -4
- package/src/playground/Custom.stories.tsx +4 -4
- package/src/playground/Typography.stories.tsx +8 -3
- package/src/testing/decorators/withTheme.ts +1 -1
- package/dist/lib/browser/chunk-2COVUP44.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-GHXHND5V.mjs.map +0 -7
|
@@ -15,17 +15,17 @@ import { Primitive } from '@radix-ui/react-primitive';
|
|
|
15
15
|
import { Slot } from '@radix-ui/react-slot';
|
|
16
16
|
import { useControllableState } from '@radix-ui/react-use-controllable-state';
|
|
17
17
|
import React, {
|
|
18
|
-
type ReactNode,
|
|
19
|
-
type FC,
|
|
20
|
-
useRef,
|
|
21
|
-
type ElementRef,
|
|
22
|
-
useCallback,
|
|
23
|
-
type ComponentPropsWithoutRef,
|
|
24
|
-
forwardRef,
|
|
25
18
|
type ComponentPropsWithRef,
|
|
26
|
-
|
|
19
|
+
type ComponentPropsWithoutRef,
|
|
20
|
+
type ElementRef,
|
|
21
|
+
type FC,
|
|
27
22
|
type MutableRefObject,
|
|
23
|
+
type ReactNode,
|
|
28
24
|
type RefObject,
|
|
25
|
+
forwardRef,
|
|
26
|
+
useCallback,
|
|
27
|
+
useEffect,
|
|
28
|
+
useRef,
|
|
29
29
|
} from 'react';
|
|
30
30
|
|
|
31
31
|
import { useElevationContext, useThemeContext } from '../../hooks';
|
|
@@ -124,6 +124,7 @@ const DropdownMenuTrigger = forwardRef<DropdownMenuTriggerElement, DropdownMenuT
|
|
|
124
124
|
disabled={disabled}
|
|
125
125
|
{...triggerProps}
|
|
126
126
|
ref={composeRefs(forwardedRef, context.triggerRef)}
|
|
127
|
+
data-arrow-keys='down'
|
|
127
128
|
onPointerDown={composeEventHandlers(props.onPointerDown, (event) => {
|
|
128
129
|
// only call handler if it's the left button (mousedown gets triggered by all mouse buttons)
|
|
129
130
|
// but not when the control key is pressed (avoiding MacOS right click)
|
|
@@ -264,6 +265,7 @@ const DropdownMenuContent = forwardRef<DropdownMenuContentElement, DropdownMenuC
|
|
|
264
265
|
hasInteractedOutsideRef.current = true;
|
|
265
266
|
}
|
|
266
267
|
})}
|
|
268
|
+
data-arrow-keys='up down'
|
|
267
269
|
className={tx('menu.content', 'menu', { elevation }, classNames)}
|
|
268
270
|
style={{
|
|
269
271
|
...props.style,
|
|
@@ -415,13 +417,21 @@ const RADIO_ITEM_NAME = 'DropdownMenuRadioItem';
|
|
|
415
417
|
|
|
416
418
|
type DropdownMenuRadioItemElement = ElementRef<typeof MenuPrimitive.RadioItem>;
|
|
417
419
|
type MenuRadioItemProps = ComponentPropsWithoutRef<typeof MenuPrimitive.RadioItem>;
|
|
418
|
-
|
|
420
|
+
type DropdownMenuRadioItemProps = ThemedClassName<MenuRadioItemProps>;
|
|
419
421
|
|
|
420
422
|
const DropdownMenuRadioItem = forwardRef<DropdownMenuRadioItemElement, DropdownMenuRadioItemProps>(
|
|
421
423
|
(props: ScopedProps<DropdownMenuRadioItemProps>, forwardedRef) => {
|
|
422
|
-
const { __scopeDropdownMenu, ...
|
|
424
|
+
const { __scopeDropdownMenu, classNames, ...itemProps } = props;
|
|
423
425
|
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
424
|
-
|
|
426
|
+
const { tx } = useThemeContext();
|
|
427
|
+
return (
|
|
428
|
+
<MenuPrimitive.Item
|
|
429
|
+
{...menuScope}
|
|
430
|
+
{...itemProps}
|
|
431
|
+
className={tx('menu.item', 'menu__item', {}, classNames)}
|
|
432
|
+
ref={forwardedRef}
|
|
433
|
+
/>
|
|
434
|
+
);
|
|
425
435
|
},
|
|
426
436
|
);
|
|
427
437
|
|
|
@@ -4,13 +4,15 @@
|
|
|
4
4
|
|
|
5
5
|
import '@dxos-theme';
|
|
6
6
|
|
|
7
|
+
import { type Meta, type StoryObj } from '@storybook/react-vite';
|
|
7
8
|
import React from 'react';
|
|
8
9
|
|
|
9
10
|
import { type MessageValence } from '@dxos/react-ui-types';
|
|
10
11
|
|
|
11
|
-
import { Callout } from './Message';
|
|
12
12
|
import { withTheme } from '../../testing';
|
|
13
13
|
|
|
14
|
+
import { Callout } from './Message';
|
|
15
|
+
|
|
14
16
|
type StoryProps = {
|
|
15
17
|
valence: MessageValence;
|
|
16
18
|
title: string;
|
|
@@ -24,9 +26,9 @@ const DefaultStory = ({ valence, title, body }: StoryProps) => (
|
|
|
24
26
|
</Callout.Root>
|
|
25
27
|
);
|
|
26
28
|
|
|
27
|
-
|
|
29
|
+
const meta = {
|
|
28
30
|
title: 'ui/react-ui-core/Callout',
|
|
29
|
-
component: Callout,
|
|
31
|
+
component: Callout.Root as any,
|
|
30
32
|
render: DefaultStory,
|
|
31
33
|
decorators: [withTheme],
|
|
32
34
|
parameters: { chromatic: { disableSnapshot: false } },
|
|
@@ -36,9 +38,13 @@ export default {
|
|
|
36
38
|
options: ['success', 'info', 'warning', 'error', 'neutral'],
|
|
37
39
|
},
|
|
38
40
|
},
|
|
39
|
-
}
|
|
41
|
+
} satisfies Meta<typeof DefaultStory>;
|
|
42
|
+
|
|
43
|
+
export default meta;
|
|
44
|
+
|
|
45
|
+
type Story = StoryObj<typeof meta>;
|
|
40
46
|
|
|
41
|
-
export const Default = {
|
|
47
|
+
export const Default: Story = {
|
|
42
48
|
args: {
|
|
43
49
|
valence: 'neutral',
|
|
44
50
|
title: 'Alert title',
|
|
@@ -8,7 +8,7 @@ import { Slot } from '@radix-ui/react-slot';
|
|
|
8
8
|
import React, { type ComponentPropsWithRef, forwardRef } from 'react';
|
|
9
9
|
|
|
10
10
|
import { useId } from '@dxos/react-hooks';
|
|
11
|
-
import { type
|
|
11
|
+
import { type Elevation, type MessageValence } from '@dxos/react-ui-types';
|
|
12
12
|
|
|
13
13
|
import { useElevationContext, useThemeContext } from '../../hooks';
|
|
14
14
|
import { type ThemedClassName } from '../../util';
|
|
@@ -4,14 +4,16 @@
|
|
|
4
4
|
|
|
5
5
|
import '@dxos-theme';
|
|
6
6
|
|
|
7
|
+
import { type Meta, type StoryObj } from '@storybook/react-vite';
|
|
7
8
|
import React, { type PropsWithChildren, type ReactNode, useRef, useState } from 'react';
|
|
8
9
|
|
|
9
10
|
import { faker } from '@dxos/random';
|
|
10
11
|
|
|
11
|
-
import { Popover } from './Popover';
|
|
12
12
|
import { withTheme } from '../../testing';
|
|
13
13
|
import { Button } from '../Buttons';
|
|
14
14
|
|
|
15
|
+
import { Popover } from './Popover';
|
|
16
|
+
|
|
15
17
|
faker.seed(1234);
|
|
16
18
|
|
|
17
19
|
const DefaultStory = ({ openTrigger, children }: PropsWithChildren<{ openTrigger: ReactNode }>) => {
|
|
@@ -28,15 +30,19 @@ const DefaultStory = ({ openTrigger, children }: PropsWithChildren<{ openTrigger
|
|
|
28
30
|
);
|
|
29
31
|
};
|
|
30
32
|
|
|
31
|
-
|
|
33
|
+
const meta = {
|
|
32
34
|
title: 'ui/react-ui-core/Popover',
|
|
33
|
-
component: Popover,
|
|
35
|
+
component: Popover.Root,
|
|
34
36
|
render: DefaultStory,
|
|
35
37
|
decorators: [withTheme],
|
|
36
38
|
parameters: { chromatic: { disableSnapshot: false } },
|
|
37
|
-
}
|
|
39
|
+
} satisfies Meta<typeof DefaultStory>;
|
|
40
|
+
|
|
41
|
+
export default meta;
|
|
42
|
+
|
|
43
|
+
type Story = StoryObj<typeof meta>;
|
|
38
44
|
|
|
39
|
-
export const Default = {
|
|
45
|
+
export const Default: Story = {
|
|
40
46
|
args: {
|
|
41
47
|
openTrigger: <Button>Open popover</Button>,
|
|
42
48
|
children: faker.lorem.paragraphs(3),
|
|
@@ -22,17 +22,17 @@ import { useControllableState } from '@radix-ui/react-use-controllable-state';
|
|
|
22
22
|
import { hideOthers } from 'aria-hidden';
|
|
23
23
|
import React, {
|
|
24
24
|
type ComponentPropsWithRef,
|
|
25
|
-
|
|
25
|
+
type ComponentPropsWithoutRef,
|
|
26
26
|
type ElementRef,
|
|
27
|
-
type
|
|
27
|
+
type FC,
|
|
28
|
+
type MutableRefObject,
|
|
28
29
|
type ReactNode,
|
|
29
|
-
|
|
30
|
+
type RefObject,
|
|
31
|
+
forwardRef,
|
|
30
32
|
useCallback,
|
|
31
|
-
type ComponentPropsWithoutRef,
|
|
32
|
-
type FC,
|
|
33
|
-
useState,
|
|
34
33
|
useEffect,
|
|
35
|
-
|
|
34
|
+
useRef,
|
|
35
|
+
useState,
|
|
36
36
|
} from 'react';
|
|
37
37
|
import { RemoveScroll } from 'react-remove-scroll';
|
|
38
38
|
|
|
@@ -4,14 +4,16 @@
|
|
|
4
4
|
|
|
5
5
|
import '@dxos-theme';
|
|
6
6
|
|
|
7
|
+
import { type Meta, type StoryObj } from '@storybook/react-vite';
|
|
7
8
|
import React, { type PropsWithChildren } from 'react';
|
|
8
9
|
|
|
9
10
|
import { faker } from '@dxos/random';
|
|
10
11
|
import { activeSurface, surfaceShadow } from '@dxos/react-ui-theme';
|
|
11
12
|
|
|
12
|
-
import { ScrollArea } from './ScrollArea';
|
|
13
13
|
import { withTheme } from '../../testing';
|
|
14
14
|
|
|
15
|
+
import { ScrollArea } from './ScrollArea';
|
|
16
|
+
|
|
15
17
|
faker.seed(1234);
|
|
16
18
|
|
|
17
19
|
const DefaultStory = ({ children }: PropsWithChildren<{}>) => {
|
|
@@ -33,15 +35,19 @@ const DefaultStory = ({ children }: PropsWithChildren<{}>) => {
|
|
|
33
35
|
);
|
|
34
36
|
};
|
|
35
37
|
|
|
36
|
-
|
|
38
|
+
const meta = {
|
|
37
39
|
title: 'ui/react-ui-core/Scroll area',
|
|
38
|
-
component: ScrollArea,
|
|
40
|
+
component: ScrollArea as any,
|
|
39
41
|
render: DefaultStory,
|
|
40
42
|
decorators: [withTheme],
|
|
41
43
|
parameters: { chromatic: { disableSnapshot: false } },
|
|
42
|
-
}
|
|
44
|
+
} satisfies Meta<typeof DefaultStory>;
|
|
45
|
+
|
|
46
|
+
export default meta;
|
|
47
|
+
|
|
48
|
+
type Story = StoryObj<typeof meta>;
|
|
43
49
|
|
|
44
|
-
export const Default = {
|
|
50
|
+
export const Default: Story = {
|
|
45
51
|
args: {
|
|
46
52
|
children: faker.lorem.paragraphs(5),
|
|
47
53
|
},
|
|
@@ -3,16 +3,16 @@
|
|
|
3
3
|
//
|
|
4
4
|
|
|
5
5
|
import {
|
|
6
|
+
Corner as ScrollAreaPrimitiveCorner,
|
|
7
|
+
type ScrollAreaCornerProps as ScrollAreaPrimitiveCornerProps,
|
|
6
8
|
Root as ScrollAreaPrimitiveRoot,
|
|
7
9
|
type ScrollAreaProps as ScrollAreaPrimitiveRootProps,
|
|
8
|
-
Viewport as ScrollAreaPrimitiveViewport,
|
|
9
|
-
type ScrollAreaViewportProps as ScrollAreaPrimitiveViewportProps,
|
|
10
10
|
Scrollbar as ScrollAreaPrimitiveScrollbar,
|
|
11
11
|
type ScrollAreaScrollbarProps as ScrollAreaPrimitiveScrollbarProps,
|
|
12
12
|
Thumb as ScrollAreaPrimitiveThumb,
|
|
13
13
|
type ScrollAreaThumbProps as ScrollAreaPrimitiveThumbProps,
|
|
14
|
-
|
|
15
|
-
type
|
|
14
|
+
Viewport as ScrollAreaPrimitiveViewport,
|
|
15
|
+
type ScrollAreaViewportProps as ScrollAreaPrimitiveViewportProps,
|
|
16
16
|
} from '@radix-ui/react-scroll-area';
|
|
17
17
|
import React, { forwardRef } from 'react';
|
|
18
18
|
|
|
@@ -4,14 +4,15 @@
|
|
|
4
4
|
|
|
5
5
|
import '@dxos-theme';
|
|
6
6
|
|
|
7
|
-
import { type StoryObj } from '@storybook/react-vite';
|
|
7
|
+
import { type Meta, type StoryObj } from '@storybook/react-vite';
|
|
8
8
|
import React, { useState } from 'react';
|
|
9
9
|
|
|
10
10
|
import { faker } from '@dxos/random';
|
|
11
11
|
|
|
12
|
-
import { Select } from './Select';
|
|
13
12
|
import { withSurfaceVariantsLayout, withTheme } from '../../testing';
|
|
14
13
|
|
|
14
|
+
import { Select } from './Select';
|
|
15
|
+
|
|
15
16
|
faker.seed(1234);
|
|
16
17
|
|
|
17
18
|
type ItemProps = { id: string; text: string };
|
|
@@ -41,15 +42,19 @@ const DefaultStory = ({ items = [] }: StoryProps) => {
|
|
|
41
42
|
);
|
|
42
43
|
};
|
|
43
44
|
|
|
44
|
-
|
|
45
|
-
args: {
|
|
46
|
-
items: Array.from({ length: 16 }).map((_, i) => ({ id: `item-${i}`, text: faker.lorem.word() })),
|
|
47
|
-
},
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
export default {
|
|
45
|
+
const meta = {
|
|
51
46
|
title: 'ui/react-ui-core/Select',
|
|
52
47
|
render: DefaultStory,
|
|
53
48
|
decorators: [withSurfaceVariantsLayout(), withTheme],
|
|
54
49
|
parameters: { chromatic: { disableSnapshot: false } },
|
|
50
|
+
} satisfies Meta<typeof DefaultStory>;
|
|
51
|
+
|
|
52
|
+
export default meta;
|
|
53
|
+
|
|
54
|
+
type Story = StoryObj<typeof meta>;
|
|
55
|
+
|
|
56
|
+
export const Default: Story = {
|
|
57
|
+
args: {
|
|
58
|
+
items: Array.from({ length: 16 }).map((_, i) => ({ id: `item-${i}`, text: faker.lorem.word() })),
|
|
59
|
+
},
|
|
55
60
|
};
|
|
@@ -35,14 +35,13 @@ type SelectTriggerButtonProps = Omit<ButtonProps, 'children'> & Pick<SelectValue
|
|
|
35
35
|
|
|
36
36
|
const SelectTriggerButton = forwardRef<HTMLButtonElement, SelectTriggerButtonProps>(
|
|
37
37
|
({ children, placeholder, ...props }, forwardedRef) => {
|
|
38
|
-
const { tx } = useThemeContext();
|
|
39
38
|
return (
|
|
40
39
|
<SelectPrimitive.Trigger asChild ref={forwardedRef}>
|
|
41
40
|
<Button {...props}>
|
|
42
41
|
<SelectPrimitive.Value placeholder={placeholder}>{children}</SelectPrimitive.Value>
|
|
43
42
|
<span className='w-1 flex-1' />
|
|
44
43
|
<SelectPrimitive.Icon asChild>
|
|
45
|
-
<Icon icon='ph--caret-down--bold'
|
|
44
|
+
<Icon size={3} icon='ph--caret-down--bold' />
|
|
46
45
|
</SelectPrimitive.Icon>
|
|
47
46
|
</Button>
|
|
48
47
|
</SelectPrimitive.Trigger>
|
|
@@ -60,6 +59,7 @@ const SelectContent = forwardRef<HTMLDivElement, SelectContentProps>(
|
|
|
60
59
|
return (
|
|
61
60
|
<SelectPrimitive.Content
|
|
62
61
|
{...props}
|
|
62
|
+
data-arrow-keys='up down'
|
|
63
63
|
collisionPadding={safeCollisionPadding}
|
|
64
64
|
className={tx('select.content', 'select__content', { elevation }, classNames)}
|
|
65
65
|
position='popper'
|
|
@@ -82,7 +82,7 @@ const SelectScrollUpButton = forwardRef<HTMLDivElement, SelectScrollUpButtonProp
|
|
|
82
82
|
className={tx('select.scrollButton', 'select__scroll-button--up', {}, classNames)}
|
|
83
83
|
ref={forwardedRef}
|
|
84
84
|
>
|
|
85
|
-
{children ?? <Icon icon='ph--caret-up--bold' />}
|
|
85
|
+
{children ?? <Icon size={3} icon='ph--caret-up--bold' />}
|
|
86
86
|
</SelectPrimitive.SelectScrollUpButton>
|
|
87
87
|
);
|
|
88
88
|
},
|
|
@@ -99,7 +99,7 @@ const SelectScrollDownButton = forwardRef<HTMLDivElement, SelectScrollDownButton
|
|
|
99
99
|
className={tx('select.scrollButton', 'select__scroll-button--down', {}, classNames)}
|
|
100
100
|
ref={forwardedRef}
|
|
101
101
|
>
|
|
102
|
-
{children ?? <Icon icon='ph--caret-down--bold' />}
|
|
102
|
+
{children ?? <Icon size={3} icon='ph--caret-down--bold' />}
|
|
103
103
|
</SelectPrimitive.SelectScrollDownButton>
|
|
104
104
|
);
|
|
105
105
|
},
|
|
@@ -152,6 +152,7 @@ const SelectItemIndicator = forwardRef<HTMLDivElement, SelectItemIndicatorProps>
|
|
|
152
152
|
|
|
153
153
|
type SelectOptionProps = SelectItemProps;
|
|
154
154
|
|
|
155
|
+
// TODO(burdon): Option to show icon on left/right.
|
|
155
156
|
const SelectOption = forwardRef<HTMLDivElement, SelectItemProps>(({ children, classNames, ...props }, forwardedRef) => {
|
|
156
157
|
const { tx } = useThemeContext();
|
|
157
158
|
return (
|
|
@@ -4,17 +4,23 @@
|
|
|
4
4
|
|
|
5
5
|
import '@dxos-theme';
|
|
6
6
|
|
|
7
|
+
import { type Meta, type StoryObj } from '@storybook/react-vite';
|
|
7
8
|
import React from 'react';
|
|
8
9
|
|
|
9
|
-
import { Status } from './Status';
|
|
10
10
|
import { withTheme } from '../../testing';
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
import { Status } from './Status';
|
|
13
|
+
|
|
14
|
+
const meta = {
|
|
13
15
|
title: 'ui/react-ui-core/Status',
|
|
14
16
|
component: Status,
|
|
15
17
|
decorators: [withTheme],
|
|
16
18
|
parameters: { chromatic: { disableSnapshot: false } },
|
|
17
|
-
}
|
|
19
|
+
} satisfies Meta<typeof Status>;
|
|
20
|
+
|
|
21
|
+
export default meta;
|
|
22
|
+
|
|
23
|
+
type Story = StoryObj<typeof meta>;
|
|
18
24
|
|
|
19
25
|
export const Normal = (props: any) => {
|
|
20
26
|
return (
|
|
@@ -1,25 +1,29 @@
|
|
|
1
1
|
//
|
|
2
2
|
// Copyright 2022 DXOS.org
|
|
3
3
|
//
|
|
4
|
+
|
|
5
|
+
import '@dxos-theme';
|
|
6
|
+
|
|
7
|
+
import { type Meta, type StoryObj } from '@storybook/react-vite';
|
|
4
8
|
import React from 'react';
|
|
5
9
|
|
|
6
10
|
import { hues } from '@dxos/react-ui-theme';
|
|
7
|
-
import '@dxos-theme';
|
|
8
11
|
import { type ChromaticPalette, type MessageValence } from '@dxos/react-ui-types';
|
|
9
12
|
|
|
10
|
-
import { Tag } from './Tag';
|
|
11
13
|
import { withTheme } from '../../testing';
|
|
12
14
|
|
|
15
|
+
import { Tag } from './Tag';
|
|
16
|
+
|
|
13
17
|
const palettes = ['neutral', 'success', 'info', 'warning', 'error', ...hues] as (ChromaticPalette | MessageValence)[];
|
|
14
18
|
|
|
15
|
-
|
|
19
|
+
const meta = {
|
|
16
20
|
title: 'ui/react-ui-core/Tag',
|
|
17
21
|
component: Tag,
|
|
18
22
|
decorators: [withTheme],
|
|
19
23
|
parameters: { chromatic: { disableSnapshot: false } },
|
|
20
24
|
} as const;
|
|
21
25
|
|
|
22
|
-
export const Default = {
|
|
26
|
+
export const Default: Story = {
|
|
23
27
|
render: () => (
|
|
24
28
|
<div role='grid' className='grid grid-cols-5 gap-2 max-is-screen-md'>
|
|
25
29
|
{palettes.map((palette) => (
|
|
@@ -29,4 +33,8 @@ export const Default = {
|
|
|
29
33
|
))}
|
|
30
34
|
</div>
|
|
31
35
|
),
|
|
32
|
-
}
|
|
36
|
+
} satisfies Meta<typeof Tag>;
|
|
37
|
+
|
|
38
|
+
export default meta;
|
|
39
|
+
|
|
40
|
+
type Story = StoryObj<typeof meta>;
|
|
@@ -3,16 +3,17 @@
|
|
|
3
3
|
//
|
|
4
4
|
|
|
5
5
|
import { createKeyborg } from 'keyborg';
|
|
6
|
-
import React, {
|
|
6
|
+
import React, { type PropsWithChildren, createContext, useEffect, useMemo } from 'react';
|
|
7
7
|
|
|
8
8
|
import { type Density, type Elevation, type ThemeFunction } from '@dxos/react-ui-types';
|
|
9
9
|
|
|
10
|
-
import { TranslationsProvider, type TranslationsProviderProps } from './TranslationsProvider';
|
|
11
10
|
import { type SafeAreaPadding, useSafeArea } from '../../hooks';
|
|
12
11
|
import { hasIosKeyboard } from '../../util';
|
|
13
12
|
import { DensityProvider } from '../DensityProvider';
|
|
14
13
|
import { ElevationProvider } from '../ElevationProvider';
|
|
15
14
|
|
|
15
|
+
import { TranslationsProvider, type TranslationsProviderProps } from './TranslationsProvider';
|
|
16
|
+
|
|
16
17
|
export type ThemeMode = 'dark' | 'light';
|
|
17
18
|
|
|
18
19
|
export type ThemeContextValue = {
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
// Copyright 2022 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import { enUS as dtLocaleEnUs
|
|
6
|
-
import i18Next, { type
|
|
7
|
-
import React, { type ReactNode,
|
|
5
|
+
import { type Locale, enUS as dtLocaleEnUs } from 'date-fns/locale';
|
|
6
|
+
import i18Next, { type Resource, type TFunction } from 'i18next';
|
|
7
|
+
import React, { type ReactNode, Suspense, createContext, useContext, useEffect, useState } from 'react';
|
|
8
8
|
import { initReactI18next, useTranslation as useI18NextTranslation } from 'react-i18next';
|
|
9
9
|
|
|
10
10
|
const initialLng = 'en-US';
|
|
@@ -4,12 +4,14 @@
|
|
|
4
4
|
|
|
5
5
|
import '@dxos-theme';
|
|
6
6
|
|
|
7
|
+
import { type Meta, type StoryObj } from '@storybook/react-vite';
|
|
7
8
|
import React, { type ReactNode, useState } from 'react';
|
|
8
9
|
|
|
9
|
-
import { Toast } from './Toast';
|
|
10
10
|
import { withTheme } from '../../testing';
|
|
11
11
|
import { Button } from '../Buttons';
|
|
12
12
|
|
|
13
|
+
import { Toast } from './Toast';
|
|
14
|
+
|
|
13
15
|
type ActionTriggerProps = { altText: string; trigger: ReactNode };
|
|
14
16
|
|
|
15
17
|
type StorybookToastProps = Partial<{
|
|
@@ -44,15 +46,19 @@ const DefaultStory = ({ title, description, actionTriggers, openTrigger, closeTr
|
|
|
44
46
|
);
|
|
45
47
|
};
|
|
46
48
|
|
|
47
|
-
|
|
49
|
+
const meta = {
|
|
48
50
|
title: 'ui/react-ui-core/Toast',
|
|
49
|
-
component: Toast,
|
|
51
|
+
component: Toast as any,
|
|
50
52
|
render: DefaultStory,
|
|
51
53
|
decorators: [withTheme],
|
|
52
54
|
parameters: { chromatic: { disableSnapshot: false } },
|
|
53
|
-
}
|
|
55
|
+
} satisfies Meta<typeof DefaultStory>;
|
|
56
|
+
|
|
57
|
+
export default meta;
|
|
58
|
+
|
|
59
|
+
type Story = StoryObj<typeof meta>;
|
|
54
60
|
|
|
55
|
-
export const Default = {
|
|
61
|
+
export const Default: Story = {
|
|
56
62
|
args: {
|
|
57
63
|
openTrigger: 'Open toast',
|
|
58
64
|
title: 'This is a toast',
|
|
@@ -5,22 +5,22 @@
|
|
|
5
5
|
import { Primitive } from '@radix-ui/react-primitive';
|
|
6
6
|
import { Slot } from '@radix-ui/react-slot';
|
|
7
7
|
import {
|
|
8
|
+
ToastAction as ToastActionPrimitive,
|
|
9
|
+
type ToastActionProps as ToastActionPrimitiveProps,
|
|
10
|
+
ToastClose as ToastClosePrimitive,
|
|
11
|
+
type ToastCloseProps as ToastClosePrimitiveProps,
|
|
12
|
+
ToastDescription as ToastDescriptionPrimitive,
|
|
13
|
+
type ToastDescriptionProps as ToastDescriptionPrimitiveProps,
|
|
8
14
|
ToastProvider as ToastProviderPrimitive,
|
|
9
15
|
type ToastProviderProps as ToastProviderPrimitiveProps,
|
|
10
|
-
ToastViewport as ToastViewportPrimitive,
|
|
11
|
-
type ToastViewportProps as ToastViewportPrimitiveProps,
|
|
12
16
|
Root as ToastRootPrimitive,
|
|
13
17
|
type ToastProps as ToastRootPrimitiveProps,
|
|
14
18
|
ToastTitle as ToastTitlePrimitive,
|
|
15
19
|
type ToastTitleProps as ToastTitlePrimitiveProps,
|
|
16
|
-
|
|
17
|
-
type
|
|
18
|
-
ToastAction as ToastActionPrimitive,
|
|
19
|
-
type ToastActionProps as ToastActionPrimitiveProps,
|
|
20
|
-
ToastClose as ToastClosePrimitive,
|
|
21
|
-
type ToastCloseProps as ToastClosePrimitiveProps,
|
|
20
|
+
ToastViewport as ToastViewportPrimitive,
|
|
21
|
+
type ToastViewportProps as ToastViewportPrimitiveProps,
|
|
22
22
|
} from '@radix-ui/react-toast';
|
|
23
|
-
import React, { type ComponentPropsWithRef,
|
|
23
|
+
import React, { type ComponentPropsWithRef, type FunctionComponent, forwardRef } from 'react';
|
|
24
24
|
|
|
25
25
|
import { useThemeContext } from '../../hooks';
|
|
26
26
|
import { type ThemedClassName } from '../../util';
|
|
@@ -4,14 +4,16 @@
|
|
|
4
4
|
|
|
5
5
|
import '@dxos-theme';
|
|
6
6
|
|
|
7
|
+
import { type Meta, type StoryObj } from '@storybook/react-vite';
|
|
7
8
|
import React from 'react';
|
|
8
9
|
|
|
9
|
-
import { Toolbar } from './Toolbar';
|
|
10
10
|
import { withTheme } from '../../testing';
|
|
11
11
|
import { Toggle } from '../Buttons';
|
|
12
12
|
import { Icon } from '../Icon';
|
|
13
13
|
import { Select } from '../Select';
|
|
14
14
|
|
|
15
|
+
import { Toolbar } from './Toolbar';
|
|
16
|
+
|
|
15
17
|
type StorybookToolbarProps = {};
|
|
16
18
|
|
|
17
19
|
const DefaultStory = (props: StorybookToolbarProps) => {
|
|
@@ -29,6 +31,7 @@ const DefaultStory = (props: StorybookToolbarProps) => {
|
|
|
29
31
|
<Select.Option value={'b'}>B</Select.Option>
|
|
30
32
|
<Select.Option value={'c'}>C</Select.Option>
|
|
31
33
|
</Select.Viewport>
|
|
34
|
+
<Select.Arrow />
|
|
32
35
|
</Select.Content>
|
|
33
36
|
</Select.Portal>
|
|
34
37
|
</Select.Root>
|
|
@@ -69,14 +72,18 @@ const DefaultStory = (props: StorybookToolbarProps) => {
|
|
|
69
72
|
);
|
|
70
73
|
};
|
|
71
74
|
|
|
72
|
-
|
|
75
|
+
const meta = {
|
|
73
76
|
title: 'ui/react-ui-core/Toolbar',
|
|
74
|
-
component: Toolbar,
|
|
77
|
+
component: Toolbar as any,
|
|
75
78
|
render: DefaultStory,
|
|
76
79
|
decorators: [withTheme],
|
|
77
80
|
parameters: { chromatic: { disableSnapshot: false } },
|
|
78
|
-
}
|
|
81
|
+
} satisfies Meta<typeof DefaultStory>;
|
|
82
|
+
|
|
83
|
+
export default meta;
|
|
84
|
+
|
|
85
|
+
type Story = StoryObj<typeof meta>;
|
|
79
86
|
|
|
80
|
-
export const Default = {
|
|
87
|
+
export const Default: Story = {
|
|
81
88
|
args: {},
|
|
82
89
|
};
|
|
@@ -13,11 +13,11 @@ import {
|
|
|
13
13
|
ButtonGroup,
|
|
14
14
|
type ButtonGroupProps,
|
|
15
15
|
type ButtonProps,
|
|
16
|
+
IconButton,
|
|
17
|
+
type IconButtonProps,
|
|
16
18
|
Toggle,
|
|
17
19
|
type ToggleGroupItemProps,
|
|
18
20
|
type ToggleProps,
|
|
19
|
-
IconButton,
|
|
20
|
-
type IconButtonProps,
|
|
21
21
|
} from '../Buttons';
|
|
22
22
|
import { Link, type LinkProps } from '../Link';
|
|
23
23
|
import { Separator, type SeparatorProps } from '../Separator';
|
|
@@ -30,6 +30,7 @@ const ToolbarRoot = forwardRef<HTMLDivElement, ToolbarRootProps>(
|
|
|
30
30
|
return (
|
|
31
31
|
<ToolbarPrimitive.Root
|
|
32
32
|
{...props}
|
|
33
|
+
data-arrow-keys={props.orientation === 'vertical' ? 'up down' : 'left right'}
|
|
33
34
|
className={tx('toolbar.root', 'toolbar', { layoutManaged }, classNames)}
|
|
34
35
|
ref={forwardedRef}
|
|
35
36
|
>
|
|
@@ -3,14 +3,17 @@
|
|
|
3
3
|
//
|
|
4
4
|
|
|
5
5
|
import '@dxos-theme';
|
|
6
|
+
|
|
7
|
+
import { type Meta, type StoryObj } from '@storybook/react-vite';
|
|
6
8
|
import React from 'react';
|
|
7
9
|
|
|
8
10
|
import { faker } from '@dxos/random';
|
|
9
11
|
|
|
10
|
-
import { Tooltip } from './Tooltip';
|
|
11
12
|
import { withTheme } from '../../testing';
|
|
12
13
|
import { Button } from '../Buttons';
|
|
13
14
|
|
|
15
|
+
import { Tooltip } from './Tooltip';
|
|
16
|
+
|
|
14
17
|
type StoryProps = {
|
|
15
18
|
tooltips: { label: string; content: string }[];
|
|
16
19
|
defaultOpen?: boolean;
|
|
@@ -28,15 +31,19 @@ const DefaultStory = ({ tooltips, defaultOpen }: StoryProps) => (
|
|
|
28
31
|
</Tooltip.Provider>
|
|
29
32
|
);
|
|
30
33
|
|
|
31
|
-
|
|
34
|
+
const meta = {
|
|
32
35
|
title: 'ui/react-ui-core/Tooltip',
|
|
33
|
-
component: Tooltip,
|
|
36
|
+
component: Tooltip as any,
|
|
34
37
|
render: DefaultStory,
|
|
35
38
|
decorators: [withTheme],
|
|
36
39
|
parameters: { chromatic: { disableSnapshot: false } },
|
|
37
|
-
}
|
|
40
|
+
} satisfies Meta<typeof DefaultStory>;
|
|
41
|
+
|
|
42
|
+
export default meta;
|
|
43
|
+
|
|
44
|
+
type Story = StoryObj<typeof meta>;
|
|
38
45
|
|
|
39
|
-
export const Default = {
|
|
46
|
+
export const Default: Story = {
|
|
40
47
|
args: {
|
|
41
48
|
tooltips: [
|
|
42
49
|
{
|
|
@@ -50,9 +57,9 @@ export const Default = {
|
|
|
50
57
|
},
|
|
51
58
|
};
|
|
52
59
|
|
|
53
|
-
export const DefaultOpen = {
|
|
60
|
+
export const DefaultOpen: Story = {
|
|
54
61
|
args: {
|
|
55
|
-
|
|
62
|
+
defaultOpen: true,
|
|
56
63
|
tooltips: [
|
|
57
64
|
{
|
|
58
65
|
label: 'Tooltip trigger',
|
|
@@ -65,9 +72,9 @@ export const DefaultOpen = {
|
|
|
65
72
|
},
|
|
66
73
|
};
|
|
67
74
|
|
|
68
|
-
export const StressTest = {
|
|
75
|
+
export const StressTest: Story = {
|
|
69
76
|
args: {
|
|
70
|
-
|
|
77
|
+
defaultOpen: true,
|
|
71
78
|
tooltips: faker.helpers.multiple(
|
|
72
79
|
() => ({
|
|
73
80
|
label: faker.lorem.words(2),
|