@wordpress/components 25.11.1-next.f8d8eceb.0 → 25.13.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/CHANGELOG.md +58 -1
- package/build/angle-picker-control/index.js +0 -1
- package/build/angle-picker-control/index.js.map +1 -1
- package/build/custom-select-control-v2/index.js +87 -0
- package/build/custom-select-control-v2/index.js.map +1 -0
- package/build/custom-select-control-v2/styles.js +85 -0
- package/build/custom-select-control-v2/styles.js.map +1 -0
- package/build/custom-select-control-v2/types.js +6 -0
- package/build/custom-select-control-v2/types.js.map +1 -0
- package/build/disclosure/index.js +37 -7
- package/build/disclosure/index.js.map +1 -1
- package/build/disclosure/types.js +6 -0
- package/build/disclosure/types.js.map +1 -0
- package/build/divider/component.js +5 -3
- package/build/divider/component.js.map +1 -1
- package/build/divider/types.js.map +1 -1
- package/build/dropdown-menu-v2-ariakit/index.js +74 -35
- package/build/dropdown-menu-v2-ariakit/index.js.map +1 -1
- package/build/dropdown-menu-v2-ariakit/styles.js +82 -59
- package/build/dropdown-menu-v2-ariakit/styles.js.map +1 -1
- package/build/dropdown-menu-v2-ariakit/types.js.map +1 -1
- package/build/form-token-field/index.js +6 -2
- package/build/form-token-field/index.js.map +1 -1
- package/build/form-token-field/token-input.js.map +1 -1
- package/build/form-token-field/types.js.map +1 -1
- package/build/gradient-picker/index.js +1 -1
- package/build/gradient-picker/index.js.map +1 -1
- package/build/heading/hook.js +6 -3
- package/build/heading/hook.js.map +1 -1
- package/build/heading/types.js.map +1 -1
- package/build/index.native.js +8 -1
- package/build/index.native.js.map +1 -1
- package/build/mobile/audio-player/index.native.js +8 -9
- package/build/mobile/audio-player/index.native.js.map +1 -1
- package/build/mobile/global-styles-context/utils.native.js +44 -3
- package/build/mobile/global-styles-context/utils.native.js.map +1 -1
- package/build/mobile/utils/alignments.native.js +1 -1
- package/build/mobile/utils/alignments.native.js.map +1 -1
- package/build/private-apis.js +3 -2
- package/build/private-apis.js.map +1 -1
- package/build/radio-group/context.js +22 -0
- package/build/radio-group/context.js.map +1 -0
- package/build/radio-group/index.js +27 -23
- package/build/radio-group/index.js.map +1 -1
- package/build/radio-group/radio.js +58 -0
- package/build/radio-group/radio.js.map +1 -0
- package/build/radio-group/types.js +6 -0
- package/build/radio-group/types.js.map +1 -0
- package/build/slot-fill/bubbles-virtually/slot-fill-provider.js +1 -1
- package/build/slot-fill/bubbles-virtually/slot-fill-provider.js.map +1 -1
- package/build/slot-fill/types.js.map +1 -1
- package/build/tabs/index.js +6 -4
- package/build/tabs/index.js.map +1 -1
- package/build/tabs/styles.js +14 -7
- package/build/tabs/styles.js.map +1 -1
- package/build/tabs/tab.js +5 -7
- package/build/tabs/tab.js.map +1 -1
- package/build/tabs/tablist.js +3 -5
- package/build/tabs/tablist.js.map +1 -1
- package/build/tabs/tabpanel.js +7 -10
- package/build/tabs/tabpanel.js.map +1 -1
- package/build/tabs/types.js.map +1 -1
- package/build/text/types.js.map +1 -1
- package/build/text-control/index.js +5 -1
- package/build/text-control/index.js.map +1 -1
- package/build/text-control/types.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control/component.js +4 -2
- package/build/toggle-group-control/toggle-group-control/component.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control/styles.js +13 -9
- package/build/toggle-group-control/toggle-group-control/styles.js.map +1 -1
- package/build/toggle-group-control/types.js.map +1 -1
- package/build/tools-panel/tools-panel-item/hook.js +5 -1
- package/build/tools-panel/tools-panel-item/hook.js.map +1 -1
- package/build-module/angle-picker-control/index.js +0 -1
- package/build-module/angle-picker-control/index.js.map +1 -1
- package/build-module/custom-select-control-v2/index.js +74 -0
- package/build-module/custom-select-control-v2/index.js.map +1 -0
- package/build-module/custom-select-control-v2/styles.js +71 -0
- package/build-module/custom-select-control-v2/styles.js.map +1 -0
- package/build-module/custom-select-control-v2/types.js +2 -0
- package/build-module/custom-select-control-v2/types.js.map +1 -0
- package/build-module/disclosure/index.js +33 -8
- package/build-module/disclosure/index.js.map +1 -1
- package/build-module/disclosure/types.js +2 -0
- package/build-module/disclosure/types.js.map +1 -0
- package/build-module/divider/component.js +3 -3
- package/build-module/divider/component.js.map +1 -1
- package/build-module/divider/types.js.map +1 -1
- package/build-module/dropdown-menu-v2-ariakit/index.js +72 -34
- package/build-module/dropdown-menu-v2-ariakit/index.js.map +1 -1
- package/build-module/dropdown-menu-v2-ariakit/styles.js +69 -40
- package/build-module/dropdown-menu-v2-ariakit/styles.js.map +1 -1
- package/build-module/dropdown-menu-v2-ariakit/types.js.map +1 -1
- package/build-module/form-token-field/index.js +6 -2
- package/build-module/form-token-field/index.js.map +1 -1
- package/build-module/form-token-field/token-input.js.map +1 -1
- package/build-module/form-token-field/types.js.map +1 -1
- package/build-module/gradient-picker/index.js +1 -1
- package/build-module/gradient-picker/index.js.map +1 -1
- package/build-module/heading/hook.js +6 -3
- package/build-module/heading/hook.js.map +1 -1
- package/build-module/heading/types.js.map +1 -1
- package/build-module/index.native.js +1 -1
- package/build-module/index.native.js.map +1 -1
- package/build-module/mobile/audio-player/index.native.js +9 -10
- package/build-module/mobile/audio-player/index.native.js.map +1 -1
- package/build-module/mobile/global-styles-context/utils.native.js +43 -4
- package/build-module/mobile/global-styles-context/utils.native.js.map +1 -1
- package/build-module/mobile/utils/alignments.native.js +1 -1
- package/build-module/mobile/utils/alignments.native.js.map +1 -1
- package/build-module/private-apis.js +4 -3
- package/build-module/private-apis.js.map +1 -1
- package/build-module/radio-group/context.js +14 -0
- package/build-module/radio-group/context.js.map +1 -0
- package/build-module/radio-group/index.js +24 -23
- package/build-module/radio-group/index.js.map +1 -1
- package/build-module/radio-group/radio.js +46 -0
- package/build-module/radio-group/radio.js.map +1 -0
- package/build-module/radio-group/types.js +2 -0
- package/build-module/radio-group/types.js.map +1 -0
- package/build-module/slot-fill/bubbles-virtually/slot-fill-provider.js +1 -1
- package/build-module/slot-fill/bubbles-virtually/slot-fill-provider.js.map +1 -1
- package/build-module/slot-fill/types.js.map +1 -1
- package/build-module/tabs/index.js +7 -5
- package/build-module/tabs/index.js.map +1 -1
- package/build-module/tabs/styles.js +11 -5
- package/build-module/tabs/styles.js.map +1 -1
- package/build-module/tabs/tab.js +7 -9
- package/build-module/tabs/tab.js.map +1 -1
- package/build-module/tabs/tablist.js +3 -5
- package/build-module/tabs/tablist.js.map +1 -1
- package/build-module/tabs/tabpanel.js +9 -10
- package/build-module/tabs/tabpanel.js.map +1 -1
- package/build-module/tabs/types.js.map +1 -1
- package/build-module/text/types.js.map +1 -1
- package/build-module/text-control/index.js +6 -1
- package/build-module/text-control/index.js.map +1 -1
- package/build-module/text-control/types.js.map +1 -1
- package/build-module/toggle-group-control/toggle-group-control/component.js +4 -2
- package/build-module/toggle-group-control/toggle-group-control/component.js.map +1 -1
- package/build-module/toggle-group-control/toggle-group-control/styles.js +13 -9
- package/build-module/toggle-group-control/toggle-group-control/styles.js.map +1 -1
- package/build-module/toggle-group-control/types.js.map +1 -1
- package/build-module/tools-panel/tools-panel-item/hook.js +6 -2
- package/build-module/tools-panel/tools-panel-item/hook.js.map +1 -1
- package/build-style/style-rtl.css +52 -8
- package/build-style/style.css +52 -8
- package/build-types/angle-picker-control/index.d.ts.map +1 -1
- package/build-types/box-control/stories/index.story.d.ts +1944 -0
- package/build-types/box-control/stories/index.story.d.ts.map +1 -0
- package/build-types/card/card-divider/component.d.ts +1 -1
- package/build-types/card/card-divider/hook.d.ts +162 -162
- package/build-types/color-palette/styles.d.ts +4 -1
- package/build-types/color-palette/styles.d.ts.map +1 -1
- package/build-types/custom-select-control-v2/index.d.ts +6 -0
- package/build-types/custom-select-control-v2/index.d.ts.map +1 -0
- package/build-types/custom-select-control-v2/stories/index.story.d.ts +19 -0
- package/build-types/custom-select-control-v2/stories/index.story.d.ts.map +1 -0
- package/build-types/custom-select-control-v2/styles.d.ts +47 -0
- package/build-types/custom-select-control-v2/styles.d.ts.map +1 -0
- package/build-types/custom-select-control-v2/types.d.ts +57 -0
- package/build-types/custom-select-control-v2/types.d.ts.map +1 -0
- package/build-types/date-time/date/styles.d.ts +4 -1
- package/build-types/date-time/date/styles.d.ts.map +1 -1
- package/build-types/disclosure/index.d.ts +7 -1
- package/build-types/disclosure/index.d.ts.map +1 -1
- package/build-types/disclosure/types.d.ts +12 -0
- package/build-types/disclosure/types.d.ts.map +1 -0
- package/build-types/divider/component.d.ts +5 -1
- package/build-types/divider/component.d.ts.map +1 -1
- package/build-types/divider/stories/index.story.d.ts.map +1 -1
- package/build-types/divider/styles.d.ts +1 -1
- package/build-types/divider/types.d.ts +2 -2
- package/build-types/divider/types.d.ts.map +1 -1
- package/build-types/dropdown-menu-v2-ariakit/index.d.ts +11 -2
- package/build-types/dropdown-menu-v2-ariakit/index.d.ts.map +1 -1
- package/build-types/dropdown-menu-v2-ariakit/stories/index.story.d.ts.map +1 -1
- package/build-types/dropdown-menu-v2-ariakit/styles.d.ts +26 -18
- package/build-types/dropdown-menu-v2-ariakit/styles.d.ts.map +1 -1
- package/build-types/dropdown-menu-v2-ariakit/types.d.ts +1 -7
- package/build-types/dropdown-menu-v2-ariakit/types.d.ts.map +1 -1
- package/build-types/form-token-field/index.d.ts.map +1 -1
- package/build-types/form-token-field/token-input.d.ts.map +1 -1
- package/build-types/form-token-field/types.d.ts +1 -1
- package/build-types/form-token-field/types.d.ts.map +1 -1
- package/build-types/heading/component.d.ts +4 -1
- package/build-types/heading/component.d.ts.map +1 -1
- package/build-types/heading/hook.d.ts.map +1 -1
- package/build-types/heading/types.d.ts +20 -1
- package/build-types/heading/types.d.ts.map +1 -1
- package/build-types/navigation/styles/navigation-styles.d.ts +4 -1
- package/build-types/navigation/styles/navigation-styles.d.ts.map +1 -1
- package/build-types/palette-edit/styles.d.ts +4 -1
- package/build-types/palette-edit/styles.d.ts.map +1 -1
- package/build-types/private-apis.d.ts.map +1 -1
- package/build-types/radio-group/context.d.ts +10 -0
- package/build-types/radio-group/context.d.ts.map +1 -0
- package/build-types/radio-group/index.d.ts +7 -9
- package/build-types/radio-group/index.d.ts.map +1 -1
- package/build-types/radio-group/radio.d.ts +8 -0
- package/build-types/radio-group/radio.d.ts.map +1 -0
- package/build-types/radio-group/stories/index.story.d.ts +14 -0
- package/build-types/radio-group/stories/index.story.d.ts.map +1 -0
- package/build-types/radio-group/types.d.ts +40 -0
- package/build-types/radio-group/types.d.ts.map +1 -0
- package/build-types/slot-fill/bubbles-virtually/slot.d.ts +1 -1
- package/build-types/slot-fill/types.d.ts +16 -6
- package/build-types/slot-fill/types.d.ts.map +1 -1
- package/build-types/tabs/index.d.ts +4 -3
- package/build-types/tabs/index.d.ts.map +1 -1
- package/build-types/tabs/stories/index.story.d.ts.map +1 -1
- package/build-types/tabs/styles.d.ts +10 -0
- package/build-types/tabs/styles.d.ts.map +1 -1
- package/build-types/tabs/tab.d.ts +1 -1
- package/build-types/tabs/tab.d.ts.map +1 -1
- package/build-types/tabs/tablist.d.ts +1 -1
- package/build-types/tabs/tablist.d.ts.map +1 -1
- package/build-types/tabs/tabpanel.d.ts +4 -1
- package/build-types/tabs/tabpanel.d.ts.map +1 -1
- package/build-types/tabs/types.d.ts +7 -31
- package/build-types/tabs/types.d.ts.map +1 -1
- package/build-types/text/types.d.ts +15 -2
- package/build-types/text/types.d.ts.map +1 -1
- package/build-types/text-control/index.d.ts +2 -1
- package/build-types/text-control/index.d.ts.map +1 -1
- package/build-types/text-control/types.d.ts +6 -0
- package/build-types/text-control/types.d.ts.map +1 -1
- package/build-types/toggle-group-control/toggle-group-control/component.d.ts +1 -0
- package/build-types/toggle-group-control/toggle-group-control/component.d.ts.map +1 -1
- package/build-types/toggle-group-control/toggle-group-control/styles.d.ts +2 -2
- package/build-types/toggle-group-control/toggle-group-control/styles.d.ts.map +1 -1
- package/build-types/toggle-group-control/types.d.ts +6 -0
- package/build-types/toggle-group-control/types.d.ts.map +1 -1
- package/build-types/tools-panel/tools-panel-item/hook.d.ts.map +1 -1
- package/package.json +19 -20
- package/src/angle-picker-control/index.tsx +0 -1
- package/src/box-control/stories/index.story.tsx +82 -0
- package/src/button/style.scss +10 -2
- package/src/combobox-control/README.md +1 -3
- package/src/custom-select-control-v2/README.md +73 -0
- package/src/custom-select-control-v2/index.tsx +99 -0
- package/src/custom-select-control-v2/stories/index.story.tsx +149 -0
- package/src/custom-select-control-v2/styles.ts +76 -0
- package/src/custom-select-control-v2/types.ts +63 -0
- package/src/disclosure/index.tsx +44 -0
- package/src/disclosure/types.tsx +10 -0
- package/src/divider/component.tsx +3 -3
- package/src/divider/stories/index.story.tsx +8 -0
- package/src/divider/types.ts +2 -2
- package/src/dropdown-menu/style.scss +4 -0
- package/src/dropdown-menu-v2-ariakit/README.md +19 -12
- package/src/dropdown-menu-v2-ariakit/index.tsx +116 -51
- package/src/dropdown-menu-v2-ariakit/stories/index.story.tsx +205 -94
- package/src/dropdown-menu-v2-ariakit/styles.ts +153 -117
- package/src/dropdown-menu-v2-ariakit/test/index.tsx +5 -36
- package/src/dropdown-menu-v2-ariakit/types.ts +1 -8
- package/src/form-toggle/style.scss +37 -7
- package/src/form-token-field/index.tsx +11 -3
- package/src/form-token-field/token-input.tsx +1 -3
- package/src/form-token-field/types.ts +1 -0
- package/src/gradient-picker/index.tsx +1 -1
- package/src/heading/README.md +6 -1
- package/src/heading/hook.ts +6 -3
- package/src/heading/types.ts +23 -1
- package/src/index.native.js +1 -0
- package/src/mobile/audio-player/index.native.js +9 -13
- package/src/mobile/global-styles-context/utils.native.js +52 -3
- package/src/mobile/utils/alignments.native.js +1 -0
- package/src/navigable-container/README.md +1 -1
- package/src/private-apis.ts +4 -2
- package/src/radio-group/context.tsx +18 -0
- package/src/radio-group/index.tsx +65 -0
- package/src/radio-group/radio.tsx +55 -0
- package/src/radio-group/stories/index.story.tsx +90 -0
- package/src/radio-group/types.ts +39 -0
- package/src/slot-fill/README.md +1 -1
- package/src/slot-fill/bubbles-virtually/slot-fill-provider.tsx +1 -1
- package/src/slot-fill/types.ts +18 -6
- package/src/tabs/README.md +3 -33
- package/src/tabs/index.tsx +12 -2
- package/src/tabs/stories/index.story.tsx +17 -1
- package/src/tabs/styles.ts +16 -0
- package/src/tabs/tab.tsx +10 -10
- package/src/tabs/tablist.tsx +21 -20
- package/src/tabs/tabpanel.tsx +26 -25
- package/src/tabs/test/index.tsx +90 -16
- package/src/tabs/types.ts +7 -32
- package/src/text/README.md +5 -1
- package/src/text/types.ts +15 -2
- package/src/text-control/index.tsx +5 -1
- package/src/text-control/style.scss +5 -0
- package/src/text-control/types.ts +6 -0
- package/src/toggle-control/README.md +2 -2
- package/src/toggle-group-control/toggle-group-control/component.tsx +8 -2
- package/src/toggle-group-control/toggle-group-control/styles.ts +13 -4
- package/src/toggle-group-control/types.ts +6 -0
- package/src/toolbar/toolbar-button/style.scss +0 -5
- package/src/tools-panel/tools-panel-item/hook.ts +11 -2
- package/tsconfig.tsbuildinfo +1 -1
- package/build/radio-group/radio/index.js +0 -49
- package/build/radio-group/radio/index.js.map +0 -1
- package/build/radio-group/radio-context/index.js +0 -18
- package/build/radio-group/radio-context/index.js.map +0 -1
- package/build-module/radio-group/radio/index.js +0 -40
- package/build-module/radio-group/radio/index.js.map +0 -1
- package/build-module/radio-group/radio-context/index.js +0 -10
- package/build-module/radio-group/radio-context/index.js.map +0 -1
- package/build-types/radio-group/radio/index.d.ts +0 -7
- package/build-types/radio-group/radio/index.d.ts.map +0 -1
- package/build-types/radio-group/radio-context/index.d.ts +0 -6
- package/build-types/radio-group/radio-context/index.d.ts.map +0 -1
- package/src/box-control/stories/index.story.js +0 -75
- package/src/disclosure/index.js +0 -11
- package/src/radio-group/index.js +0 -51
- package/src/radio-group/radio/index.js +0 -40
- package/src/radio-group/radio-context/index.js +0 -11
- package/src/radio-group/stories/index.story.js +0 -83
|
@@ -2,28 +2,28 @@
|
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
4
|
import type { Meta, StoryFn } from '@storybook/react';
|
|
5
|
-
import styled from '@emotion/styled';
|
|
6
5
|
import { css } from '@emotion/react';
|
|
7
6
|
|
|
8
7
|
/**
|
|
9
8
|
* WordPress dependencies
|
|
10
9
|
*/
|
|
11
|
-
import {
|
|
10
|
+
import { customLink, formatCapitalize } from '@wordpress/icons';
|
|
12
11
|
import { useState, useMemo, useContext } from '@wordpress/element';
|
|
13
12
|
|
|
14
13
|
/**
|
|
15
14
|
* Internal dependencies
|
|
16
15
|
*/
|
|
17
|
-
import {
|
|
16
|
+
import { useCx } from '../../utils';
|
|
18
17
|
import {
|
|
19
18
|
DropdownMenu,
|
|
20
19
|
DropdownMenuItem,
|
|
21
20
|
DropdownMenuCheckboxItem,
|
|
22
21
|
DropdownMenuGroup,
|
|
23
|
-
DropdownMenuGroupLabel,
|
|
24
22
|
DropdownMenuSeparator,
|
|
25
23
|
DropdownMenuContext,
|
|
26
24
|
DropdownMenuRadioItem,
|
|
25
|
+
DropdownMenuItemLabel,
|
|
26
|
+
DropdownMenuItemHelpText,
|
|
27
27
|
} from '..';
|
|
28
28
|
import Icon from '../../icon';
|
|
29
29
|
import Button from '../../button';
|
|
@@ -37,9 +37,24 @@ const meta: Meta< typeof DropdownMenu > = {
|
|
|
37
37
|
subcomponents: {
|
|
38
38
|
// @ts-expect-error - See https://github.com/storybookjs/storybook/issues/23170
|
|
39
39
|
DropdownMenuItem,
|
|
40
|
+
// @ts-expect-error - See https://github.com/storybookjs/storybook/issues/23170
|
|
41
|
+
DropdownMenuCheckboxItem,
|
|
42
|
+
// @ts-expect-error - See https://github.com/storybookjs/storybook/issues/23170
|
|
43
|
+
DropdownMenuGroup,
|
|
44
|
+
// @ts-expect-error - See https://github.com/storybookjs/storybook/issues/23170
|
|
45
|
+
DropdownMenuSeparator,
|
|
46
|
+
// @ts-expect-error - See https://github.com/storybookjs/storybook/issues/23170
|
|
47
|
+
DropdownMenuContext,
|
|
48
|
+
// @ts-expect-error - See https://github.com/storybookjs/storybook/issues/23170
|
|
49
|
+
DropdownMenuRadioItem,
|
|
50
|
+
// @ts-expect-error - See https://github.com/storybookjs/storybook/issues/23170
|
|
51
|
+
DropdownMenuItemLabel,
|
|
52
|
+
// @ts-expect-error - See https://github.com/storybookjs/storybook/issues/23170
|
|
53
|
+
DropdownMenuItemHelpText,
|
|
40
54
|
},
|
|
41
55
|
argTypes: {
|
|
42
56
|
children: { control: { type: null } },
|
|
57
|
+
trigger: { control: { type: null } },
|
|
43
58
|
},
|
|
44
59
|
parameters: {
|
|
45
60
|
actions: { argTypesRegex: '^on.*' },
|
|
@@ -64,54 +79,48 @@ const meta: Meta< typeof DropdownMenu > = {
|
|
|
64
79
|
};
|
|
65
80
|
export default meta;
|
|
66
81
|
|
|
67
|
-
const ItemHelpText = styled.span`
|
|
68
|
-
font-size: 12px;
|
|
69
|
-
color: ${ COLORS.gray[ '700' ] };
|
|
70
|
-
|
|
71
|
-
/* when the immediate parent item is hovered / focused */
|
|
72
|
-
[data-active-item] > * > &,
|
|
73
|
-
/* when the parent item is a submenu trigger and the submenu is open */
|
|
74
|
-
[aria-expanded='true'] > &,
|
|
75
|
-
/* when the parent item is disabled */
|
|
76
|
-
[aria-disabled='true'] > & {
|
|
77
|
-
color: inherit;
|
|
78
|
-
}
|
|
79
|
-
`;
|
|
80
|
-
|
|
81
82
|
export const Default: StoryFn< typeof DropdownMenu > = ( props ) => (
|
|
82
83
|
<DropdownMenu { ...props }>
|
|
83
|
-
<DropdownMenuItem>
|
|
84
|
+
<DropdownMenuItem>
|
|
85
|
+
<DropdownMenuItemLabel>Label</DropdownMenuItemLabel>
|
|
86
|
+
</DropdownMenuItem>
|
|
87
|
+
<DropdownMenuItem>
|
|
88
|
+
<DropdownMenuItemLabel>Label</DropdownMenuItemLabel>
|
|
89
|
+
<DropdownMenuItemHelpText>Help text</DropdownMenuItemHelpText>
|
|
90
|
+
</DropdownMenuItem>
|
|
91
|
+
<DropdownMenuItem>
|
|
92
|
+
<DropdownMenuItemLabel>Label</DropdownMenuItemLabel>
|
|
93
|
+
<DropdownMenuItemHelpText>
|
|
94
|
+
The menu item help text is automatically truncated when there
|
|
95
|
+
are more than two lines of text
|
|
96
|
+
</DropdownMenuItemHelpText>
|
|
97
|
+
</DropdownMenuItem>
|
|
84
98
|
<DropdownMenuItem hideOnClick={ false }>
|
|
85
|
-
<
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
} }
|
|
90
|
-
>
|
|
91
|
-
Other item
|
|
92
|
-
<ItemHelpText>
|
|
93
|
-
Won't close the menu when clicked
|
|
94
|
-
</ItemHelpText>
|
|
95
|
-
</div>
|
|
99
|
+
<DropdownMenuItemLabel>Label</DropdownMenuItemLabel>
|
|
100
|
+
<DropdownMenuItemHelpText>
|
|
101
|
+
This item doesn't close the menu on click
|
|
102
|
+
</DropdownMenuItemHelpText>
|
|
96
103
|
</DropdownMenuItem>
|
|
97
104
|
<DropdownMenuItem disabled>Disabled item</DropdownMenuItem>
|
|
98
105
|
<DropdownMenuSeparator />
|
|
99
106
|
<DropdownMenuGroup>
|
|
100
|
-
<DropdownMenuGroupLabel>Prefix and suffix</DropdownMenuGroupLabel>
|
|
101
107
|
<DropdownMenuItem
|
|
102
|
-
prefix={ <Icon icon={
|
|
108
|
+
prefix={ <Icon icon={ customLink } size={ 24 } /> }
|
|
103
109
|
>
|
|
104
|
-
With prefix
|
|
105
|
-
</DropdownMenuItem>
|
|
106
|
-
<DropdownMenuItem suffix={ <span>⌘S</span> }>
|
|
107
|
-
With suffix
|
|
110
|
+
<DropdownMenuItemLabel>With prefix</DropdownMenuItemLabel>
|
|
108
111
|
</DropdownMenuItem>
|
|
112
|
+
<DropdownMenuItem suffix={ '⌘S' }>With suffix</DropdownMenuItem>
|
|
109
113
|
<DropdownMenuItem
|
|
110
114
|
disabled
|
|
111
|
-
prefix={ <Icon icon={
|
|
112
|
-
suffix=
|
|
115
|
+
prefix={ <Icon icon={ formatCapitalize } size={ 24 } /> }
|
|
116
|
+
suffix="⌥⌘T"
|
|
113
117
|
>
|
|
114
|
-
|
|
118
|
+
<DropdownMenuItemLabel>
|
|
119
|
+
Disabled with prefix and suffix
|
|
120
|
+
</DropdownMenuItemLabel>
|
|
121
|
+
<DropdownMenuItemHelpText>
|
|
122
|
+
And help text
|
|
123
|
+
</DropdownMenuItemHelpText>
|
|
115
124
|
</DropdownMenuItem>
|
|
116
125
|
</DropdownMenuGroup>
|
|
117
126
|
</DropdownMenu>
|
|
@@ -128,15 +137,35 @@ export const WithSubmenu: StoryFn< typeof DropdownMenu > = ( props ) => (
|
|
|
128
137
|
<DropdownMenu { ...props }>
|
|
129
138
|
<DropdownMenuItem>Level 1 item</DropdownMenuItem>
|
|
130
139
|
<DropdownMenu
|
|
131
|
-
trigger={
|
|
140
|
+
trigger={
|
|
141
|
+
<DropdownMenuItem suffix="Suffix">
|
|
142
|
+
<DropdownMenuItemLabel>
|
|
143
|
+
Submenu trigger item with a long label
|
|
144
|
+
</DropdownMenuItemLabel>
|
|
145
|
+
</DropdownMenuItem>
|
|
146
|
+
}
|
|
132
147
|
>
|
|
133
|
-
<DropdownMenuItem>
|
|
134
|
-
|
|
148
|
+
<DropdownMenuItem>
|
|
149
|
+
<DropdownMenuItemLabel>Level 2 item</DropdownMenuItemLabel>
|
|
150
|
+
</DropdownMenuItem>
|
|
151
|
+
<DropdownMenuItem>
|
|
152
|
+
<DropdownMenuItemLabel>Level 2 item</DropdownMenuItemLabel>
|
|
153
|
+
</DropdownMenuItem>
|
|
135
154
|
<DropdownMenu
|
|
136
|
-
trigger={
|
|
155
|
+
trigger={
|
|
156
|
+
<DropdownMenuItem>
|
|
157
|
+
<DropdownMenuItemLabel>
|
|
158
|
+
Submenu trigger
|
|
159
|
+
</DropdownMenuItemLabel>
|
|
160
|
+
</DropdownMenuItem>
|
|
161
|
+
}
|
|
137
162
|
>
|
|
138
|
-
<DropdownMenuItem>
|
|
139
|
-
|
|
163
|
+
<DropdownMenuItem>
|
|
164
|
+
<DropdownMenuItemLabel>Level 3 item</DropdownMenuItemLabel>
|
|
165
|
+
</DropdownMenuItem>
|
|
166
|
+
<DropdownMenuItem>
|
|
167
|
+
<DropdownMenuItemLabel>Level 3 item</DropdownMenuItemLabel>
|
|
168
|
+
</DropdownMenuItem>
|
|
140
169
|
</DropdownMenu>
|
|
141
170
|
</DropdownMenu>
|
|
142
171
|
</DropdownMenu>
|
|
@@ -166,35 +195,45 @@ export const WithCheckboxes: StoryFn< typeof DropdownMenu > = ( props ) => {
|
|
|
166
195
|
return (
|
|
167
196
|
<DropdownMenu { ...props }>
|
|
168
197
|
<DropdownMenuGroup>
|
|
169
|
-
<DropdownMenuGroupLabel>
|
|
170
|
-
Individual, uncontrolled checkboxes
|
|
171
|
-
</DropdownMenuGroupLabel>
|
|
172
198
|
<DropdownMenuCheckboxItem
|
|
173
199
|
name="checkbox-individual-uncontrolled-a"
|
|
174
200
|
value="a"
|
|
201
|
+
suffix="⌥⌘T"
|
|
175
202
|
>
|
|
176
|
-
|
|
203
|
+
<DropdownMenuItemLabel>
|
|
204
|
+
Checkbox item A
|
|
205
|
+
</DropdownMenuItemLabel>
|
|
206
|
+
<DropdownMenuItemHelpText>
|
|
207
|
+
Uncontrolled
|
|
208
|
+
</DropdownMenuItemHelpText>
|
|
177
209
|
</DropdownMenuCheckboxItem>
|
|
178
210
|
<DropdownMenuCheckboxItem
|
|
179
211
|
name="checkbox-individual-uncontrolled-b"
|
|
180
212
|
value="b"
|
|
181
213
|
defaultChecked
|
|
182
214
|
>
|
|
183
|
-
|
|
215
|
+
<DropdownMenuItemLabel>
|
|
216
|
+
Checkbox item B
|
|
217
|
+
</DropdownMenuItemLabel>
|
|
218
|
+
<DropdownMenuItemHelpText>
|
|
219
|
+
Uncontrolled, initially checked
|
|
220
|
+
</DropdownMenuItemHelpText>
|
|
184
221
|
</DropdownMenuCheckboxItem>
|
|
185
222
|
</DropdownMenuGroup>
|
|
186
223
|
<DropdownMenuSeparator />
|
|
187
224
|
<DropdownMenuGroup>
|
|
188
|
-
<DropdownMenuGroupLabel>
|
|
189
|
-
Individual, controlled checkboxes
|
|
190
|
-
</DropdownMenuGroupLabel>
|
|
191
225
|
<DropdownMenuCheckboxItem
|
|
192
226
|
name="checkbox-individual-controlled-a"
|
|
193
227
|
value="a"
|
|
194
228
|
checked={ isAChecked }
|
|
195
229
|
onChange={ ( e ) => setAChecked( e.target.checked ) }
|
|
196
230
|
>
|
|
197
|
-
|
|
231
|
+
<DropdownMenuItemLabel>
|
|
232
|
+
Checkbox item A
|
|
233
|
+
</DropdownMenuItemLabel>
|
|
234
|
+
<DropdownMenuItemHelpText>
|
|
235
|
+
Controlled
|
|
236
|
+
</DropdownMenuItemHelpText>
|
|
198
237
|
</DropdownMenuCheckboxItem>
|
|
199
238
|
<DropdownMenuCheckboxItem
|
|
200
239
|
name="checkbox-individual-controlled-b"
|
|
@@ -202,40 +241,54 @@ export const WithCheckboxes: StoryFn< typeof DropdownMenu > = ( props ) => {
|
|
|
202
241
|
checked={ isBChecked }
|
|
203
242
|
onChange={ ( e ) => setBChecked( e.target.checked ) }
|
|
204
243
|
>
|
|
205
|
-
|
|
244
|
+
<DropdownMenuItemLabel>
|
|
245
|
+
Checkbox item B
|
|
246
|
+
</DropdownMenuItemLabel>
|
|
247
|
+
<DropdownMenuItemHelpText>
|
|
248
|
+
Controlled, initially checked
|
|
249
|
+
</DropdownMenuItemHelpText>
|
|
206
250
|
</DropdownMenuCheckboxItem>
|
|
207
251
|
</DropdownMenuGroup>
|
|
208
252
|
<DropdownMenuSeparator />
|
|
209
253
|
<DropdownMenuGroup>
|
|
210
|
-
<DropdownMenuGroupLabel>
|
|
211
|
-
Multiple, uncontrolled checkboxes
|
|
212
|
-
</DropdownMenuGroupLabel>
|
|
213
254
|
<DropdownMenuCheckboxItem
|
|
214
255
|
name="checkbox-multiple-uncontrolled"
|
|
215
256
|
value="a"
|
|
216
257
|
>
|
|
217
|
-
|
|
258
|
+
<DropdownMenuItemLabel>
|
|
259
|
+
Checkbox item A
|
|
260
|
+
</DropdownMenuItemLabel>
|
|
261
|
+
<DropdownMenuItemHelpText>
|
|
262
|
+
Uncontrolled, multiple selection
|
|
263
|
+
</DropdownMenuItemHelpText>
|
|
218
264
|
</DropdownMenuCheckboxItem>
|
|
219
265
|
<DropdownMenuCheckboxItem
|
|
220
266
|
name="checkbox-multiple-uncontrolled"
|
|
221
267
|
value="b"
|
|
222
268
|
defaultChecked
|
|
223
269
|
>
|
|
224
|
-
|
|
270
|
+
<DropdownMenuItemLabel>
|
|
271
|
+
Checkbox item B
|
|
272
|
+
</DropdownMenuItemLabel>
|
|
273
|
+
<DropdownMenuItemHelpText>
|
|
274
|
+
Uncontrolled, multiple selection, initially checked
|
|
275
|
+
</DropdownMenuItemHelpText>
|
|
225
276
|
</DropdownMenuCheckboxItem>
|
|
226
277
|
</DropdownMenuGroup>
|
|
227
278
|
<DropdownMenuSeparator />
|
|
228
279
|
<DropdownMenuGroup>
|
|
229
|
-
<DropdownMenuGroupLabel>
|
|
230
|
-
Multiple, controlled checkboxes
|
|
231
|
-
</DropdownMenuGroupLabel>
|
|
232
280
|
<DropdownMenuCheckboxItem
|
|
233
281
|
name="checkbox-multiple-controlled"
|
|
234
282
|
value="a"
|
|
235
283
|
checked={ multipleCheckboxesValue.includes( 'a' ) }
|
|
236
284
|
onChange={ onMultipleCheckboxesCheckedChange }
|
|
237
285
|
>
|
|
238
|
-
|
|
286
|
+
<DropdownMenuItemLabel>
|
|
287
|
+
Checkbox item A
|
|
288
|
+
</DropdownMenuItemLabel>
|
|
289
|
+
<DropdownMenuItemHelpText>
|
|
290
|
+
Controlled, multiple selection
|
|
291
|
+
</DropdownMenuItemHelpText>
|
|
239
292
|
</DropdownMenuCheckboxItem>
|
|
240
293
|
<DropdownMenuCheckboxItem
|
|
241
294
|
name="checkbox-multiple-controlled"
|
|
@@ -243,7 +296,12 @@ export const WithCheckboxes: StoryFn< typeof DropdownMenu > = ( props ) => {
|
|
|
243
296
|
checked={ multipleCheckboxesValue.includes( 'b' ) }
|
|
244
297
|
onChange={ onMultipleCheckboxesCheckedChange }
|
|
245
298
|
>
|
|
246
|
-
|
|
299
|
+
<DropdownMenuItemLabel>
|
|
300
|
+
Checkbox item B
|
|
301
|
+
</DropdownMenuItemLabel>
|
|
302
|
+
<DropdownMenuItemHelpText>
|
|
303
|
+
Controlled, multiple selection, initially checked
|
|
304
|
+
</DropdownMenuItemHelpText>
|
|
247
305
|
</DropdownMenuCheckboxItem>
|
|
248
306
|
</DropdownMenuGroup>
|
|
249
307
|
</DropdownMenu>
|
|
@@ -262,32 +320,35 @@ export const WithRadios: StoryFn< typeof DropdownMenu > = ( props ) => {
|
|
|
262
320
|
return (
|
|
263
321
|
<DropdownMenu { ...props }>
|
|
264
322
|
<DropdownMenuGroup>
|
|
265
|
-
<DropdownMenuGroupLabel>
|
|
266
|
-
Uncontrolled radios
|
|
267
|
-
</DropdownMenuGroupLabel>
|
|
268
323
|
<DropdownMenuRadioItem name="radio-uncontrolled" value="one">
|
|
269
|
-
Radio item 1
|
|
324
|
+
<DropdownMenuItemLabel>Radio item 1</DropdownMenuItemLabel>
|
|
325
|
+
<DropdownMenuItemHelpText>
|
|
326
|
+
Uncontrolled
|
|
327
|
+
</DropdownMenuItemHelpText>
|
|
270
328
|
</DropdownMenuRadioItem>
|
|
271
329
|
<DropdownMenuRadioItem
|
|
272
330
|
name="radio-uncontrolled"
|
|
273
331
|
value="two"
|
|
274
332
|
defaultChecked
|
|
275
333
|
>
|
|
276
|
-
Radio item 2
|
|
334
|
+
<DropdownMenuItemLabel>Radio item 2</DropdownMenuItemLabel>
|
|
335
|
+
<DropdownMenuItemHelpText>
|
|
336
|
+
Uncontrolled, initially checked
|
|
337
|
+
</DropdownMenuItemHelpText>
|
|
277
338
|
</DropdownMenuRadioItem>
|
|
278
339
|
</DropdownMenuGroup>
|
|
279
340
|
<DropdownMenuSeparator />
|
|
280
341
|
<DropdownMenuGroup>
|
|
281
|
-
<DropdownMenuGroupLabel>
|
|
282
|
-
Controlled radios
|
|
283
|
-
</DropdownMenuGroupLabel>
|
|
284
342
|
<DropdownMenuRadioItem
|
|
285
343
|
name="radio-controlled"
|
|
286
344
|
value="one"
|
|
287
345
|
checked={ radioValue === 'one' }
|
|
288
346
|
onChange={ onRadioChange }
|
|
289
347
|
>
|
|
290
|
-
Radio item 1
|
|
348
|
+
<DropdownMenuItemLabel>Radio item 1</DropdownMenuItemLabel>
|
|
349
|
+
<DropdownMenuItemHelpText>
|
|
350
|
+
Controlled
|
|
351
|
+
</DropdownMenuItemHelpText>
|
|
291
352
|
</DropdownMenuRadioItem>
|
|
292
353
|
<DropdownMenuRadioItem
|
|
293
354
|
name="radio-controlled"
|
|
@@ -295,7 +356,10 @@ export const WithRadios: StoryFn< typeof DropdownMenu > = ( props ) => {
|
|
|
295
356
|
checked={ radioValue === 'two' }
|
|
296
357
|
onChange={ onRadioChange }
|
|
297
358
|
>
|
|
298
|
-
Radio item 2
|
|
359
|
+
<DropdownMenuItemLabel>Radio item 2</DropdownMenuItemLabel>
|
|
360
|
+
<DropdownMenuItemHelpText>
|
|
361
|
+
Controlled, initially checked
|
|
362
|
+
</DropdownMenuItemHelpText>
|
|
299
363
|
</DropdownMenuRadioItem>
|
|
300
364
|
</DropdownMenuGroup>
|
|
301
365
|
</DropdownMenu>
|
|
@@ -326,13 +390,17 @@ export const WithModals: StoryFn< typeof DropdownMenu > = ( props ) => {
|
|
|
326
390
|
onClick={ () => setOuterModalOpen( true ) }
|
|
327
391
|
hideOnClick={ false }
|
|
328
392
|
>
|
|
329
|
-
|
|
393
|
+
<DropdownMenuItemLabel>
|
|
394
|
+
Open outer modal
|
|
395
|
+
</DropdownMenuItemLabel>
|
|
330
396
|
</DropdownMenuItem>
|
|
331
397
|
<DropdownMenuItem
|
|
332
398
|
onClick={ () => setInnerModalOpen( true ) }
|
|
333
399
|
hideOnClick={ false }
|
|
334
400
|
>
|
|
335
|
-
|
|
401
|
+
<DropdownMenuItemLabel>
|
|
402
|
+
Open inner modal
|
|
403
|
+
</DropdownMenuItemLabel>
|
|
336
404
|
</DropdownMenuItem>
|
|
337
405
|
{ isInnerModalOpen && (
|
|
338
406
|
<Modal
|
|
@@ -382,7 +450,13 @@ const Slot = () => {
|
|
|
382
450
|
[ dropdownMenuContext ]
|
|
383
451
|
);
|
|
384
452
|
|
|
385
|
-
return
|
|
453
|
+
return (
|
|
454
|
+
<ExampleSlotFill.Slot
|
|
455
|
+
fillProps={ fillProps }
|
|
456
|
+
bubblesVirtually
|
|
457
|
+
style={ { display: 'contents' } }
|
|
458
|
+
/>
|
|
459
|
+
);
|
|
386
460
|
};
|
|
387
461
|
|
|
388
462
|
type ForwardedContextTuple< P = {} > = [
|
|
@@ -413,18 +487,32 @@ export const WithSlotFill: StoryFn< typeof DropdownMenu > = ( props ) => {
|
|
|
413
487
|
return (
|
|
414
488
|
<SlotFillProvider>
|
|
415
489
|
<DropdownMenu { ...props }>
|
|
416
|
-
<DropdownMenuItem>
|
|
490
|
+
<DropdownMenuItem>
|
|
491
|
+
<DropdownMenuItemLabel>Item</DropdownMenuItemLabel>
|
|
492
|
+
</DropdownMenuItem>
|
|
417
493
|
<Slot />
|
|
418
494
|
</DropdownMenu>
|
|
419
495
|
|
|
420
496
|
<Fill>
|
|
421
|
-
<DropdownMenuItem>
|
|
497
|
+
<DropdownMenuItem>
|
|
498
|
+
<DropdownMenuItemLabel>
|
|
499
|
+
Item from fill
|
|
500
|
+
</DropdownMenuItemLabel>
|
|
501
|
+
</DropdownMenuItem>
|
|
422
502
|
<DropdownMenu
|
|
423
503
|
trigger={
|
|
424
|
-
<DropdownMenuItem>
|
|
504
|
+
<DropdownMenuItem>
|
|
505
|
+
<DropdownMenuItemLabel>
|
|
506
|
+
Submenu from fill
|
|
507
|
+
</DropdownMenuItemLabel>
|
|
508
|
+
</DropdownMenuItem>
|
|
425
509
|
}
|
|
426
510
|
>
|
|
427
|
-
<DropdownMenuItem>
|
|
511
|
+
<DropdownMenuItem>
|
|
512
|
+
<DropdownMenuItemLabel>
|
|
513
|
+
Submenu item from fill
|
|
514
|
+
</DropdownMenuItemLabel>
|
|
515
|
+
</DropdownMenuItem>
|
|
428
516
|
</DropdownMenu>
|
|
429
517
|
</Fill>
|
|
430
518
|
</SlotFillProvider>
|
|
@@ -440,15 +528,28 @@ const toolbarVariantContextValue = {
|
|
|
440
528
|
},
|
|
441
529
|
};
|
|
442
530
|
export const ToolbarVariant: StoryFn< typeof DropdownMenu > = ( props ) => (
|
|
531
|
+
// TODO: add toolbar
|
|
443
532
|
<ContextSystemProvider value={ toolbarVariantContextValue }>
|
|
444
533
|
<DropdownMenu { ...props }>
|
|
445
|
-
<DropdownMenuItem>
|
|
446
|
-
|
|
534
|
+
<DropdownMenuItem>
|
|
535
|
+
<DropdownMenuItemLabel>Level 1 item</DropdownMenuItemLabel>
|
|
536
|
+
</DropdownMenuItem>
|
|
537
|
+
<DropdownMenuItem>
|
|
538
|
+
<DropdownMenuItemLabel>Level 1 item</DropdownMenuItemLabel>
|
|
539
|
+
</DropdownMenuItem>
|
|
447
540
|
<DropdownMenuSeparator />
|
|
448
541
|
<DropdownMenu
|
|
449
|
-
trigger={
|
|
542
|
+
trigger={
|
|
543
|
+
<DropdownMenuItem>
|
|
544
|
+
<DropdownMenuItemLabel>
|
|
545
|
+
Submenu trigger
|
|
546
|
+
</DropdownMenuItemLabel>
|
|
547
|
+
</DropdownMenuItem>
|
|
548
|
+
}
|
|
450
549
|
>
|
|
451
|
-
<DropdownMenuItem>
|
|
550
|
+
<DropdownMenuItem>
|
|
551
|
+
<DropdownMenuItemLabel>Level 2 item</DropdownMenuItemLabel>
|
|
552
|
+
</DropdownMenuItem>
|
|
452
553
|
</DropdownMenu>
|
|
453
554
|
</DropdownMenu>
|
|
454
555
|
</ContextSystemProvider>
|
|
@@ -471,17 +572,31 @@ export const InsideModal: StoryFn< typeof DropdownMenu > = ( props ) => {
|
|
|
471
572
|
{ isModalOpen && (
|
|
472
573
|
<Modal onRequestClose={ () => setModalOpen( false ) }>
|
|
473
574
|
<DropdownMenu { ...props }>
|
|
474
|
-
<DropdownMenuItem>
|
|
475
|
-
|
|
575
|
+
<DropdownMenuItem>
|
|
576
|
+
<DropdownMenuItemLabel>
|
|
577
|
+
Level 1 item
|
|
578
|
+
</DropdownMenuItemLabel>
|
|
579
|
+
</DropdownMenuItem>
|
|
580
|
+
<DropdownMenuItem>
|
|
581
|
+
<DropdownMenuItemLabel>
|
|
582
|
+
Level 1 item
|
|
583
|
+
</DropdownMenuItemLabel>
|
|
584
|
+
</DropdownMenuItem>
|
|
476
585
|
<DropdownMenuSeparator />
|
|
477
586
|
<DropdownMenu
|
|
478
587
|
trigger={
|
|
479
588
|
<DropdownMenuItem>
|
|
480
|
-
|
|
589
|
+
<DropdownMenuItemLabel>
|
|
590
|
+
Submenu trigger
|
|
591
|
+
</DropdownMenuItemLabel>
|
|
481
592
|
</DropdownMenuItem>
|
|
482
593
|
}
|
|
483
594
|
>
|
|
484
|
-
<DropdownMenuItem>
|
|
595
|
+
<DropdownMenuItem>
|
|
596
|
+
<DropdownMenuItemLabel>
|
|
597
|
+
Level 2 item
|
|
598
|
+
</DropdownMenuItemLabel>
|
|
599
|
+
</DropdownMenuItem>
|
|
485
600
|
</DropdownMenu>
|
|
486
601
|
</DropdownMenu>
|
|
487
602
|
<Button onClick={ () => setModalOpen( false ) }>
|
|
@@ -494,10 +609,6 @@ export const InsideModal: StoryFn< typeof DropdownMenu > = ( props ) => {
|
|
|
494
609
|
};
|
|
495
610
|
InsideModal.args = {
|
|
496
611
|
...Default.args,
|
|
497
|
-
hideOnEscape: ( e ) => {
|
|
498
|
-
e.stopPropagation();
|
|
499
|
-
return true;
|
|
500
|
-
},
|
|
501
612
|
};
|
|
502
613
|
InsideModal.parameters = {
|
|
503
614
|
docs: {
|