@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
|
@@ -14,6 +14,7 @@ import {
|
|
|
14
14
|
useMemo,
|
|
15
15
|
cloneElement,
|
|
16
16
|
isValidElement,
|
|
17
|
+
useCallback,
|
|
17
18
|
} from '@wordpress/element';
|
|
18
19
|
import { isRTL } from '@wordpress/i18n';
|
|
19
20
|
import { check, chevronRightSmall } from '@wordpress/icons';
|
|
@@ -29,7 +30,6 @@ import type {
|
|
|
29
30
|
DropdownMenuContext as DropdownMenuContextType,
|
|
30
31
|
DropdownMenuProps,
|
|
31
32
|
DropdownMenuGroupProps,
|
|
32
|
-
DropdownMenuGroupLabelProps,
|
|
33
33
|
DropdownMenuItemProps,
|
|
34
34
|
DropdownMenuCheckboxItemProps,
|
|
35
35
|
DropdownMenuRadioItemProps,
|
|
@@ -54,16 +54,23 @@ export const DropdownMenuItem = forwardRef<
|
|
|
54
54
|
<Styled.DropdownMenuItem
|
|
55
55
|
ref={ ref }
|
|
56
56
|
{ ...props }
|
|
57
|
+
accessibleWhenDisabled
|
|
57
58
|
hideOnClick={ hideOnClick }
|
|
58
59
|
store={ dropdownMenuContext?.store }
|
|
59
60
|
>
|
|
60
|
-
{ prefix
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
61
|
+
<Styled.ItemPrefixWrapper>{ prefix }</Styled.ItemPrefixWrapper>
|
|
62
|
+
|
|
63
|
+
<Styled.DropdownMenuItemContentWrapper>
|
|
64
|
+
<Styled.DropdownMenuItemChildrenWrapper>
|
|
65
|
+
{ children }
|
|
66
|
+
</Styled.DropdownMenuItemChildrenWrapper>
|
|
67
|
+
|
|
68
|
+
{ suffix && (
|
|
69
|
+
<Styled.ItemSuffixWrapper>
|
|
70
|
+
{ suffix }
|
|
71
|
+
</Styled.ItemSuffixWrapper>
|
|
72
|
+
) }
|
|
73
|
+
</Styled.DropdownMenuItemContentWrapper>
|
|
67
74
|
</Styled.DropdownMenuItem>
|
|
68
75
|
);
|
|
69
76
|
} );
|
|
@@ -81,24 +88,40 @@ export const DropdownMenuCheckboxItem = forwardRef<
|
|
|
81
88
|
<Styled.DropdownMenuCheckboxItem
|
|
82
89
|
ref={ ref }
|
|
83
90
|
{ ...props }
|
|
91
|
+
accessibleWhenDisabled
|
|
84
92
|
hideOnClick={ hideOnClick }
|
|
85
93
|
store={ dropdownMenuContext?.store }
|
|
86
94
|
>
|
|
87
95
|
<Ariakit.MenuItemCheck
|
|
88
96
|
store={ dropdownMenuContext?.store }
|
|
89
97
|
render={ <Styled.ItemPrefixWrapper /> }
|
|
98
|
+
// Override some ariakit inline styles
|
|
99
|
+
style={ { width: 'auto', height: 'auto' } }
|
|
90
100
|
>
|
|
91
101
|
<Icon icon={ check } size={ 24 } />
|
|
92
102
|
</Ariakit.MenuItemCheck>
|
|
93
103
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
104
|
+
<Styled.DropdownMenuItemContentWrapper>
|
|
105
|
+
<Styled.DropdownMenuItemChildrenWrapper>
|
|
106
|
+
{ children }
|
|
107
|
+
</Styled.DropdownMenuItemChildrenWrapper>
|
|
108
|
+
|
|
109
|
+
{ suffix && (
|
|
110
|
+
<Styled.ItemSuffixWrapper>
|
|
111
|
+
{ suffix }
|
|
112
|
+
</Styled.ItemSuffixWrapper>
|
|
113
|
+
) }
|
|
114
|
+
</Styled.DropdownMenuItemContentWrapper>
|
|
98
115
|
</Styled.DropdownMenuCheckboxItem>
|
|
99
116
|
);
|
|
100
117
|
} );
|
|
101
118
|
|
|
119
|
+
const radioCheck = (
|
|
120
|
+
<SVG xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
|
121
|
+
<Circle cx={ 12 } cy={ 12 } r={ 3 }></Circle>
|
|
122
|
+
</SVG>
|
|
123
|
+
);
|
|
124
|
+
|
|
102
125
|
export const DropdownMenuRadioItem = forwardRef<
|
|
103
126
|
HTMLDivElement,
|
|
104
127
|
WordPressComponentProps< DropdownMenuRadioItemProps, 'div', false >
|
|
@@ -112,24 +135,30 @@ export const DropdownMenuRadioItem = forwardRef<
|
|
|
112
135
|
<Styled.DropdownMenuRadioItem
|
|
113
136
|
ref={ ref }
|
|
114
137
|
{ ...props }
|
|
138
|
+
accessibleWhenDisabled
|
|
115
139
|
hideOnClick={ hideOnClick }
|
|
116
140
|
store={ dropdownMenuContext?.store }
|
|
117
141
|
>
|
|
118
142
|
<Ariakit.MenuItemCheck
|
|
119
143
|
store={ dropdownMenuContext?.store }
|
|
120
144
|
render={ <Styled.ItemPrefixWrapper /> }
|
|
145
|
+
// Override some ariakit inline styles
|
|
146
|
+
style={ { width: 'auto', height: 'auto' } }
|
|
121
147
|
>
|
|
122
|
-
<
|
|
123
|
-
<Circle
|
|
124
|
-
cx={ 12 }
|
|
125
|
-
cy={ 12 }
|
|
126
|
-
r={ 3 }
|
|
127
|
-
fill="currentColor"
|
|
128
|
-
></Circle>
|
|
129
|
-
</SVG>
|
|
148
|
+
<Icon icon={ radioCheck } size={ 24 } />
|
|
130
149
|
</Ariakit.MenuItemCheck>
|
|
131
|
-
|
|
132
|
-
|
|
150
|
+
|
|
151
|
+
<Styled.DropdownMenuItemContentWrapper>
|
|
152
|
+
<Styled.DropdownMenuItemChildrenWrapper>
|
|
153
|
+
{ children }
|
|
154
|
+
</Styled.DropdownMenuItemChildrenWrapper>
|
|
155
|
+
|
|
156
|
+
{ suffix && (
|
|
157
|
+
<Styled.ItemSuffixWrapper>
|
|
158
|
+
{ suffix }
|
|
159
|
+
</Styled.ItemSuffixWrapper>
|
|
160
|
+
) }
|
|
161
|
+
</Styled.DropdownMenuItemContentWrapper>
|
|
133
162
|
</Styled.DropdownMenuRadioItem>
|
|
134
163
|
);
|
|
135
164
|
} );
|
|
@@ -148,20 +177,6 @@ export const DropdownMenuGroup = forwardRef<
|
|
|
148
177
|
);
|
|
149
178
|
} );
|
|
150
179
|
|
|
151
|
-
export const DropdownMenuGroupLabel = forwardRef<
|
|
152
|
-
HTMLDivElement,
|
|
153
|
-
WordPressComponentProps< DropdownMenuGroupLabelProps, 'div', false >
|
|
154
|
-
>( function DropdownMenuGroupLabel( props, ref ) {
|
|
155
|
-
const dropdownMenuContext = useContext( DropdownMenuContext );
|
|
156
|
-
return (
|
|
157
|
-
<Styled.DropdownMenuGroupLabel
|
|
158
|
-
ref={ ref }
|
|
159
|
-
{ ...props }
|
|
160
|
-
store={ dropdownMenuContext?.store }
|
|
161
|
-
/>
|
|
162
|
-
);
|
|
163
|
-
} );
|
|
164
|
-
|
|
165
180
|
const UnconnectedDropdownMenu = (
|
|
166
181
|
props: WordPressComponentProps< DropdownMenuProps, 'div', false >,
|
|
167
182
|
ref: React.ForwardedRef< HTMLDivElement >
|
|
@@ -181,7 +196,6 @@ const UnconnectedDropdownMenu = (
|
|
|
181
196
|
children,
|
|
182
197
|
shift,
|
|
183
198
|
modal = true,
|
|
184
|
-
hideOnEscape = true,
|
|
185
199
|
|
|
186
200
|
// From internal components context
|
|
187
201
|
variant,
|
|
@@ -249,6 +263,28 @@ const UnconnectedDropdownMenu = (
|
|
|
249
263
|
);
|
|
250
264
|
}
|
|
251
265
|
|
|
266
|
+
const hideOnEscape = useCallback(
|
|
267
|
+
( event: React.KeyboardEvent< Element > ) => {
|
|
268
|
+
// Pressing Escape can cause unexpected consequences (ie. exiting
|
|
269
|
+
// full screen mode on MacOs, close parent modals...).
|
|
270
|
+
event.preventDefault();
|
|
271
|
+
// Returning `true` causes the menu to hide.
|
|
272
|
+
return true;
|
|
273
|
+
},
|
|
274
|
+
[]
|
|
275
|
+
);
|
|
276
|
+
|
|
277
|
+
const wrapperProps = useMemo(
|
|
278
|
+
() => ( {
|
|
279
|
+
dir: computedDirection,
|
|
280
|
+
style: {
|
|
281
|
+
direction:
|
|
282
|
+
computedDirection as React.CSSProperties[ 'direction' ],
|
|
283
|
+
},
|
|
284
|
+
} ),
|
|
285
|
+
[ computedDirection ]
|
|
286
|
+
);
|
|
287
|
+
|
|
252
288
|
return (
|
|
253
289
|
<>
|
|
254
290
|
{ /* Menu trigger */ }
|
|
@@ -259,12 +295,16 @@ const UnconnectedDropdownMenu = (
|
|
|
259
295
|
dropdownMenuStore.parent
|
|
260
296
|
? cloneElement( trigger, {
|
|
261
297
|
// Add submenu arrow, unless a `suffix` is explicitly specified
|
|
262
|
-
suffix:
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
298
|
+
suffix: (
|
|
299
|
+
<>
|
|
300
|
+
{ trigger.props.suffix }
|
|
301
|
+
<Styled.SubmenuChevronIcon
|
|
302
|
+
aria-hidden="true"
|
|
303
|
+
icon={ chevronRightSmall }
|
|
304
|
+
size={ 24 }
|
|
305
|
+
preserveAspectRatio="xMidYMid slice"
|
|
306
|
+
/>
|
|
307
|
+
</>
|
|
268
308
|
),
|
|
269
309
|
} )
|
|
270
310
|
: trigger
|
|
@@ -276,17 +316,16 @@ const UnconnectedDropdownMenu = (
|
|
|
276
316
|
{ ...otherProps }
|
|
277
317
|
modal={ modal }
|
|
278
318
|
store={ dropdownMenuStore }
|
|
279
|
-
|
|
280
|
-
|
|
319
|
+
// Root menu has an 8px distance from its trigger,
|
|
320
|
+
// otherwise 0 (which causes the submenu to slightly overlap)
|
|
321
|
+
gutter={ gutter ?? ( dropdownMenuStore.parent ? 0 : 8 ) }
|
|
322
|
+
// Align nested menu by the same (but opposite) amount
|
|
323
|
+
// as the menu container's padding.
|
|
324
|
+
shift={ shift ?? ( dropdownMenuStore.parent ? -4 : 0 ) }
|
|
281
325
|
hideOnHoverOutside={ false }
|
|
282
326
|
data-side={ appliedPlacementSide }
|
|
283
327
|
variant={ variant }
|
|
284
|
-
wrapperProps={
|
|
285
|
-
dir: computedDirection,
|
|
286
|
-
style: {
|
|
287
|
-
direction: computedDirection,
|
|
288
|
-
},
|
|
289
|
-
} }
|
|
328
|
+
wrapperProps={ wrapperProps }
|
|
290
329
|
hideOnEscape={ hideOnEscape }
|
|
291
330
|
unmountOnHide
|
|
292
331
|
>
|
|
@@ -316,3 +355,29 @@ export const DropdownMenuSeparator = forwardRef<
|
|
|
316
355
|
/>
|
|
317
356
|
);
|
|
318
357
|
} );
|
|
358
|
+
|
|
359
|
+
export const DropdownMenuItemLabel = forwardRef<
|
|
360
|
+
HTMLSpanElement,
|
|
361
|
+
WordPressComponentProps< { children: React.ReactNode }, 'span', true >
|
|
362
|
+
>( function DropdownMenuItemLabel( props, ref ) {
|
|
363
|
+
return (
|
|
364
|
+
<Styled.DropdownMenuItemLabel
|
|
365
|
+
numberOfLines={ 1 }
|
|
366
|
+
ref={ ref }
|
|
367
|
+
{ ...props }
|
|
368
|
+
/>
|
|
369
|
+
);
|
|
370
|
+
} );
|
|
371
|
+
|
|
372
|
+
export const DropdownMenuItemHelpText = forwardRef<
|
|
373
|
+
HTMLSpanElement,
|
|
374
|
+
WordPressComponentProps< { children: React.ReactNode }, 'span', true >
|
|
375
|
+
>( function DropdownMenuItemHelpText( props, ref ) {
|
|
376
|
+
return (
|
|
377
|
+
<Styled.DropdownMenuItemHelpText
|
|
378
|
+
numberOfLines={ 2 }
|
|
379
|
+
ref={ ref }
|
|
380
|
+
{ ...props }
|
|
381
|
+
/>
|
|
382
|
+
);
|
|
383
|
+
} );
|