@wordpress/components 25.7.0 → 25.8.1
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 +66 -1
- package/build/animation/index.js +6 -0
- package/build/animation/index.js.map +1 -1
- package/build/border-control/border-control-dropdown/component.js +1 -1
- package/build/border-control/border-control-dropdown/component.js.map +1 -1
- package/build/border-control/styles.js +20 -20
- package/build/border-control/styles.js.map +1 -1
- package/build/box-control/unit-control.js +1 -1
- package/build/box-control/unit-control.js.map +1 -1
- package/build/button/index.js +9 -1
- package/build/button/index.js.map +1 -1
- package/build/button/types.js.map +1 -1
- package/build/circular-option-picker/circular-option-picker-actions.js +53 -0
- package/build/circular-option-picker/circular-option-picker-actions.js.map +1 -0
- package/build/circular-option-picker/circular-option-picker-context.js +14 -0
- package/build/circular-option-picker/circular-option-picker-context.js.map +1 -0
- package/build/circular-option-picker/circular-option-picker-option-group.js +26 -0
- package/build/circular-option-picker/circular-option-picker-option-group.js.map +1 -0
- package/build/circular-option-picker/circular-option-picker-option.js +122 -0
- package/build/circular-option-picker/circular-option-picker-option.js.map +1 -0
- package/build/circular-option-picker/circular-option-picker.js +172 -0
- package/build/circular-option-picker/circular-option-picker.js.map +1 -0
- package/build/circular-option-picker/index.js +29 -137
- package/build/circular-option-picker/index.js.map +1 -1
- package/build/circular-option-picker/types.js.map +1 -1
- package/build/color-palette/index.js +58 -19
- package/build/color-palette/index.js.map +1 -1
- package/build/color-palette/types.js.map +1 -1
- package/build/combobox-control/index.js +0 -3
- package/build/combobox-control/index.js.map +1 -1
- package/build/composite/index.js.map +1 -1
- package/build/custom-gradient-picker/gradient-bar/control-points.js.map +1 -1
- package/build/date-time/time/index.js +6 -1
- package/build/date-time/time/index.js.map +1 -1
- package/build/date-time/time/timezone.js +1 -1
- package/build/date-time/time/timezone.js.map +1 -1
- package/build/dropdown/index.js +11 -23
- package/build/dropdown/index.js.map +1 -1
- package/build/dropdown/types.js.map +1 -1
- package/build/dropdown-menu/index.js +7 -1
- package/build/dropdown-menu/index.js.map +1 -1
- package/build/dropdown-menu/types.js.map +1 -1
- package/build/dropdown-menu-v2/styles.js +16 -16
- package/build/dropdown-menu-v2/styles.js.map +1 -1
- package/build/duotone-picker/color-list-picker/index.js +18 -3
- package/build/duotone-picker/color-list-picker/index.js.map +1 -1
- package/build/duotone-picker/duotone-picker.js +33 -1
- package/build/duotone-picker/duotone-picker.js.map +1 -1
- package/build/duotone-picker/types.js.map +1 -1
- package/build/focusable-iframe/index.js +0 -4
- package/build/focusable-iframe/index.js.map +1 -1
- package/build/focusable-iframe/types.js +6 -0
- package/build/focusable-iframe/types.js.map +1 -0
- package/build/form-token-field/index.js +6 -2
- package/build/form-token-field/index.js.map +1 -1
- package/build/form-token-field/types.js.map +1 -1
- package/build/gradient-picker/index.js +57 -15
- package/build/gradient-picker/index.js.map +1 -1
- package/build/gradient-picker/types.js.map +1 -1
- package/build/higher-order/navigate-regions/index.js.map +1 -1
- package/build/higher-order/with-focus-outside/index.js +1 -2
- package/build/higher-order/with-focus-outside/index.js.map +1 -1
- package/build/higher-order/with-spoken-messages/index.js.map +1 -1
- package/build/index.js +6 -0
- package/build/index.js.map +1 -1
- package/build/input-control/styles/input-control-styles.js +22 -22
- package/build/input-control/styles/input-control-styles.js.map +1 -1
- package/build/mobile/bottom-sheet/index.native.js +1 -0
- package/build/mobile/bottom-sheet/index.native.js.map +1 -1
- package/build/mobile/global-styles-context/index.native.js.map +1 -1
- package/build/modal/index.js +12 -3
- package/build/modal/index.js.map +1 -1
- package/build/modal/types.js.map +1 -1
- package/build/navigation/use-navigation-tree-nodes.js.map +1 -1
- package/build/notice/index.js +19 -7
- package/build/notice/index.js.map +1 -1
- package/build/palette-edit/styles.js +10 -10
- package/build/palette-edit/styles.js.map +1 -1
- package/build/placeholder/index.js +10 -4
- package/build/placeholder/index.js.map +1 -1
- package/build/popover/index.js +37 -83
- package/build/popover/index.js.map +1 -1
- package/build/popover/types.js.map +1 -1
- package/build/popover/utils.js +9 -41
- package/build/popover/utils.js.map +1 -1
- package/build/search-control/index.js +12 -3
- package/build/search-control/index.js.map +1 -1
- package/build/search-control/types.js.map +1 -1
- package/build/text/styles.js +7 -7
- package/build/text/styles.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control/as-button-group.js +30 -45
- package/build/toggle-group-control/toggle-group-control/as-button-group.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control/as-radio-group.js +40 -41
- package/build/toggle-group-control/toggle-group-control/as-radio-group.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control/component.js +10 -5
- package/build/toggle-group-control/toggle-group-control/component.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control/styles.js +9 -16
- package/build/toggle-group-control/toggle-group-control/styles.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control/utils.js +44 -0
- package/build/toggle-group-control/toggle-group-control/utils.js.map +1 -0
- package/build/toggle-group-control/toggle-group-control-option-base/component.js +36 -17
- package/build/toggle-group-control/toggle-group-control-option-base/component.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control-option-base/styles.js +10 -8
- package/build/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -1
- package/build/toggle-group-control/types.js.map +1 -1
- package/build/toolbar/toolbar/index.js +7 -1
- package/build/toolbar/toolbar/index.js.map +1 -1
- package/build/toolbar/toolbar-dropdown-menu/index.js +1 -3
- package/build/toolbar/toolbar-dropdown-menu/index.js.map +1 -1
- package/build/toolbar/toolbar-group/index.js +16 -12
- package/build/toolbar/toolbar-group/index.js.map +1 -1
- package/build/toolbar/toolbar-group/toolbar-group-collapsed.js +0 -2
- package/build/toolbar/toolbar-group/toolbar-group-collapsed.js.map +1 -1
- package/build/toolbar/toolbar-group/toolbar-group-container.js +3 -1
- package/build/toolbar/toolbar-group/toolbar-group-container.js.map +1 -1
- package/build/toolbar/toolbar-group/types.js +6 -0
- package/build/toolbar/toolbar-group/types.js.map +1 -0
- package/build/toolbar/toolbar-item/index.js +1 -1
- package/build/toolbar/toolbar-item/index.js.map +1 -1
- package/build/tooltip/index.js +51 -225
- package/build/tooltip/index.js.map +1 -1
- package/build/tooltip/types.js +6 -0
- package/build/tooltip/types.js.map +1 -0
- package/build/ui/context/context-connect.js.map +1 -1
- package/build/ui/context/wordpress-component.js.map +1 -1
- package/build/unit-control/index.js.map +1 -1
- package/build/unit-control/styles/unit-control-styles.js +7 -7
- package/build/unit-control/styles/unit-control-styles.js.map +1 -1
- package/build/utils/colors-values.js +1 -1
- package/build/utils/colors-values.js.map +1 -1
- package/build/utils/use-deprecated-props.js.map +1 -1
- package/build-module/animation/index.js +1 -1
- package/build-module/animation/index.js.map +1 -1
- package/build-module/border-control/border-control-dropdown/component.js +1 -1
- package/build-module/border-control/border-control-dropdown/component.js.map +1 -1
- package/build-module/border-control/styles.js +20 -20
- package/build-module/border-control/styles.js.map +1 -1
- package/build-module/box-control/unit-control.js +1 -1
- package/build-module/box-control/unit-control.js.map +1 -1
- package/build-module/button/index.js +9 -1
- package/build-module/button/index.js.map +1 -1
- package/build-module/button/types.js.map +1 -1
- package/build-module/circular-option-picker/circular-option-picker-actions.js +44 -0
- package/build-module/circular-option-picker/circular-option-picker-actions.js.map +1 -0
- package/build-module/circular-option-picker/circular-option-picker-context.js +11 -0
- package/build-module/circular-option-picker/circular-option-picker-context.js.map +1 -0
- package/build-module/circular-option-picker/circular-option-picker-option-group.js +23 -0
- package/build-module/circular-option-picker/circular-option-picker-option-group.js.map +1 -0
- package/build-module/circular-option-picker/circular-option-picker-option.js +114 -0
- package/build-module/circular-option-picker/circular-option-picker-option.js.map +1 -0
- package/build-module/circular-option-picker/circular-option-picker.js +165 -0
- package/build-module/circular-option-picker/circular-option-picker.js.map +1 -0
- package/build-module/circular-option-picker/index.js +4 -132
- package/build-module/circular-option-picker/index.js.map +1 -1
- package/build-module/circular-option-picker/types.js.map +1 -1
- package/build-module/color-palette/index.js +58 -19
- package/build-module/color-palette/index.js.map +1 -1
- package/build-module/color-palette/types.js.map +1 -1
- package/build-module/combobox-control/index.js +0 -3
- package/build-module/combobox-control/index.js.map +1 -1
- package/build-module/composite/index.js +2 -0
- package/build-module/composite/index.js.map +1 -1
- package/build-module/custom-gradient-picker/gradient-bar/control-points.js.map +1 -1
- package/build-module/date-time/time/index.js +6 -1
- package/build-module/date-time/time/index.js.map +1 -1
- package/build-module/date-time/time/timezone.js +1 -1
- package/build-module/date-time/time/timezone.js.map +1 -1
- package/build-module/dropdown/index.js +12 -24
- package/build-module/dropdown/index.js.map +1 -1
- package/build-module/dropdown/types.js.map +1 -1
- package/build-module/dropdown-menu/index.js +7 -1
- package/build-module/dropdown-menu/index.js.map +1 -1
- package/build-module/dropdown-menu/types.js.map +1 -1
- package/build-module/dropdown-menu-v2/styles.js +16 -16
- package/build-module/dropdown-menu-v2/styles.js.map +1 -1
- package/build-module/duotone-picker/color-list-picker/index.js +18 -3
- package/build-module/duotone-picker/color-list-picker/index.js.map +1 -1
- package/build-module/duotone-picker/duotone-picker.js +33 -1
- package/build-module/duotone-picker/duotone-picker.js.map +1 -1
- package/build-module/duotone-picker/types.js.map +1 -1
- package/build-module/focusable-iframe/index.js +2 -3
- package/build-module/focusable-iframe/index.js.map +1 -1
- package/build-module/focusable-iframe/types.js +2 -0
- package/build-module/focusable-iframe/types.js.map +1 -0
- 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/types.js.map +1 -1
- package/build-module/gradient-picker/index.js +57 -15
- package/build-module/gradient-picker/index.js.map +1 -1
- package/build-module/gradient-picker/types.js.map +1 -1
- package/build-module/higher-order/navigate-regions/index.js.map +1 -1
- package/build-module/higher-order/with-focus-outside/index.js +1 -3
- package/build-module/higher-order/with-focus-outside/index.js.map +1 -1
- package/build-module/higher-order/with-spoken-messages/index.js.map +1 -1
- package/build-module/index.js +1 -1
- package/build-module/index.js.map +1 -1
- package/build-module/input-control/styles/input-control-styles.js +23 -23
- package/build-module/input-control/styles/input-control-styles.js.map +1 -1
- package/build-module/mobile/bottom-sheet/index.native.js +1 -0
- package/build-module/mobile/bottom-sheet/index.native.js.map +1 -1
- package/build-module/mobile/global-styles-context/index.native.js.map +1 -1
- package/build-module/modal/index.js +12 -3
- package/build-module/modal/index.js.map +1 -1
- package/build-module/modal/types.js.map +1 -1
- package/build-module/navigation/use-navigation-tree-nodes.js.map +1 -1
- package/build-module/notice/index.js +19 -7
- package/build-module/notice/index.js.map +1 -1
- package/build-module/palette-edit/styles.js +10 -10
- package/build-module/palette-edit/styles.js.map +1 -1
- package/build-module/placeholder/index.js +11 -4
- package/build-module/placeholder/index.js.map +1 -1
- package/build-module/popover/index.js +38 -84
- package/build-module/popover/index.js.map +1 -1
- package/build-module/popover/types.js.map +1 -1
- package/build-module/popover/utils.js +8 -39
- package/build-module/popover/utils.js.map +1 -1
- package/build-module/search-control/index.js +12 -3
- package/build-module/search-control/index.js.map +1 -1
- package/build-module/search-control/types.js.map +1 -1
- package/build-module/text/styles.js +7 -7
- package/build-module/text/styles.js.map +1 -1
- package/build-module/toggle-group-control/toggle-group-control/as-button-group.js +32 -47
- package/build-module/toggle-group-control/toggle-group-control/as-button-group.js.map +1 -1
- package/build-module/toggle-group-control/toggle-group-control/as-radio-group.js +41 -42
- package/build-module/toggle-group-control/toggle-group-control/as-radio-group.js.map +1 -1
- package/build-module/toggle-group-control/toggle-group-control/component.js +10 -6
- 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 +8 -14
- package/build-module/toggle-group-control/toggle-group-control/styles.js.map +1 -1
- package/build-module/toggle-group-control/toggle-group-control/utils.js +42 -0
- package/build-module/toggle-group-control/toggle-group-control/utils.js.map +1 -0
- package/build-module/toggle-group-control/toggle-group-control-option-base/component.js +35 -16
- package/build-module/toggle-group-control/toggle-group-control-option-base/component.js.map +1 -1
- package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js +8 -7
- package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -1
- package/build-module/toggle-group-control/types.js.map +1 -1
- package/build-module/toolbar/toolbar/index.js +7 -1
- package/build-module/toolbar/toolbar/index.js.map +1 -1
- package/build-module/toolbar/toolbar-dropdown-menu/index.js +5 -3
- package/build-module/toolbar/toolbar-dropdown-menu/index.js.map +1 -1
- package/build-module/toolbar/toolbar-group/index.js +15 -12
- package/build-module/toolbar/toolbar-group/index.js.map +1 -1
- package/build-module/toolbar/toolbar-group/toolbar-group-collapsed.js +0 -2
- package/build-module/toolbar/toolbar-group/toolbar-group-collapsed.js.map +1 -1
- package/build-module/toolbar/toolbar-group/toolbar-group-container.js +3 -1
- package/build-module/toolbar/toolbar-group/toolbar-group-container.js.map +1 -1
- package/build-module/toolbar/toolbar-group/types.js +2 -0
- package/build-module/toolbar/toolbar-group/types.js.map +1 -0
- package/build-module/toolbar/toolbar-item/index.js +1 -1
- package/build-module/toolbar/toolbar-item/index.js.map +1 -1
- package/build-module/tooltip/index.js +53 -224
- package/build-module/tooltip/index.js.map +1 -1
- package/build-module/tooltip/types.js +2 -0
- package/build-module/tooltip/types.js.map +1 -0
- package/build-module/ui/context/context-connect.js.map +1 -1
- package/build-module/ui/context/wordpress-component.js.map +1 -1
- package/build-module/unit-control/index.js.map +1 -1
- package/build-module/unit-control/styles/unit-control-styles.js +7 -7
- package/build-module/unit-control/styles/unit-control-styles.js.map +1 -1
- package/build-module/utils/colors-values.js +1 -1
- package/build-module/utils/colors-values.js.map +1 -1
- package/build-module/utils/use-deprecated-props.js.map +1 -1
- package/build-style/style-rtl.css +35 -73
- package/build-style/style.css +35 -73
- package/build-types/animation/index.d.ts +1 -1
- package/build-types/animation/index.d.ts.map +1 -1
- package/build-types/base-control/hooks.d.ts +1 -1
- package/build-types/border-box-control/border-box-control/component.d.ts +1 -1
- package/build-types/border-box-control/border-box-control/hook.d.ts +46 -46
- package/build-types/border-box-control/border-box-control-linked-button/hook.d.ts +51 -51
- package/build-types/border-box-control/border-box-control-split-controls/component.d.ts +1 -1
- package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts +46 -46
- package/build-types/border-box-control/border-box-control-visualizer/hook.d.ts +46 -46
- package/build-types/border-box-control/stories/index.story.d.ts +2 -2
- package/build-types/border-control/border-control/hook.d.ts +45 -45
- package/build-types/border-control/border-control-dropdown/hook.d.ts +45 -45
- package/build-types/border-control/border-control-style-picker/hook.d.ts +45 -45
- package/build-types/border-control/stories/index.story.d.ts +6 -6
- package/build-types/box-control/styles/box-control-styles.d.ts +1 -1
- package/build-types/button/deprecated.d.ts +16 -22
- package/build-types/button/deprecated.d.ts.map +1 -1
- package/build-types/button/index.d.ts.map +1 -1
- package/build-types/button/types.d.ts +0 -4
- package/build-types/button/types.d.ts.map +1 -1
- package/build-types/card/card/hook.d.ts +46 -46
- package/build-types/card/card-body/hook.d.ts +46 -46
- package/build-types/card/card-divider/hook.d.ts +47 -47
- package/build-types/card/card-footer/hook.d.ts +46 -46
- package/build-types/card/card-header/hook.d.ts +46 -46
- package/build-types/card/card-media/hook.d.ts +46 -46
- package/build-types/card/stories/index.story.d.ts +2 -2
- package/build-types/circular-option-picker/circular-option-picker-actions.d.ts +7 -0
- package/build-types/circular-option-picker/circular-option-picker-actions.d.ts.map +1 -0
- package/build-types/circular-option-picker/circular-option-picker-context.d.ts +7 -0
- package/build-types/circular-option-picker/circular-option-picker-context.d.ts.map +1 -0
- package/build-types/circular-option-picker/circular-option-picker-option-group.d.ts +7 -0
- package/build-types/circular-option-picker/circular-option-picker-option-group.d.ts.map +1 -0
- package/build-types/circular-option-picker/circular-option-picker-option.d.ts +4 -0
- package/build-types/circular-option-picker/circular-option-picker-option.d.ts.map +1 -0
- package/build-types/circular-option-picker/circular-option-picker.d.ts +11 -0
- package/build-types/circular-option-picker/circular-option-picker.d.ts.map +1 -0
- package/build-types/circular-option-picker/index.d.ts +5 -56
- package/build-types/circular-option-picker/index.d.ts.map +1 -1
- package/build-types/circular-option-picker/stories/index.story.d.ts +3 -1
- package/build-types/circular-option-picker/stories/index.story.d.ts.map +1 -1
- package/build-types/circular-option-picker/test/index.d.ts +2 -0
- package/build-types/circular-option-picker/test/index.d.ts.map +1 -0
- package/build-types/circular-option-picker/types.d.ts +53 -1
- package/build-types/circular-option-picker/types.d.ts.map +1 -1
- package/build-types/color-palette/index.d.ts +3 -19
- package/build-types/color-palette/index.d.ts.map +1 -1
- package/build-types/color-palette/stories/index.story.d.ts +3 -36
- package/build-types/color-palette/stories/index.story.d.ts.map +1 -1
- package/build-types/color-palette/styles.d.ts +1 -1
- package/build-types/color-palette/types.d.ts +31 -1
- package/build-types/color-palette/types.d.ts.map +1 -1
- package/build-types/color-picker/component.d.ts +1 -1
- package/build-types/color-picker/stories/index.story.d.ts +1 -1
- package/build-types/color-picker/styles.d.ts +6 -6
- package/build-types/combobox-control/index.d.ts.map +1 -1
- package/build-types/combobox-control/stories/index.story.d.ts +2 -2
- package/build-types/composite/index.d.ts +14 -1
- package/build-types/composite/index.d.ts.map +1 -1
- package/build-types/custom-gradient-picker/styles/custom-gradient-picker-styles.d.ts +2 -2
- package/build-types/date-time/date/styles.d.ts +3 -3
- package/build-types/date-time/date-time/styles.d.ts +2 -2
- package/build-types/date-time/time/index.d.ts.map +1 -1
- package/build-types/date-time/time/styles.d.ts +12 -12
- package/build-types/dropdown/index.d.ts.map +1 -1
- package/build-types/dropdown/stories/index.story.d.ts.map +1 -1
- package/build-types/dropdown/types.d.ts +12 -4
- package/build-types/dropdown/types.d.ts.map +1 -1
- package/build-types/dropdown-menu/index.d.ts.map +1 -1
- package/build-types/dropdown-menu/stories/index.story.d.ts.map +1 -1
- package/build-types/dropdown-menu/types.d.ts +22 -5
- package/build-types/dropdown-menu/types.d.ts.map +1 -1
- package/build-types/duotone-picker/color-list-picker/index.d.ts.map +1 -1
- package/build-types/duotone-picker/duotone-picker.d.ts +1 -1
- package/build-types/duotone-picker/duotone-picker.d.ts.map +1 -1
- package/build-types/duotone-picker/types.d.ts +31 -1
- package/build-types/duotone-picker/types.d.ts.map +1 -1
- package/build-types/elevation/hook.d.ts +46 -46
- package/build-types/external-link/styles/external-link-styles.d.ts +1 -1
- package/build-types/flex/flex/hook.d.ts +46 -46
- package/build-types/flex/flex-block/hook.d.ts +46 -46
- package/build-types/flex/flex-item/hook.d.ts +46 -46
- package/build-types/focal-point-picker/stories/index.story.d.ts +8 -8
- package/build-types/focal-point-picker/styles/focal-point-picker-style.d.ts +1 -1
- package/build-types/focusable-iframe/index.d.ts +4 -5
- package/build-types/focusable-iframe/index.d.ts.map +1 -1
- package/build-types/focusable-iframe/types.d.ts +8 -0
- package/build-types/focusable-iframe/types.d.ts.map +1 -0
- package/build-types/font-size-picker/styles.d.ts +2 -2
- package/build-types/form-token-field/index.d.ts.map +1 -1
- package/build-types/form-token-field/types.d.ts +6 -0
- package/build-types/form-token-field/types.d.ts.map +1 -1
- package/build-types/gradient-picker/index.d.ts +1 -1
- package/build-types/gradient-picker/index.d.ts.map +1 -1
- package/build-types/gradient-picker/stories/index.story.d.ts +3 -36
- package/build-types/gradient-picker/stories/index.story.d.ts.map +1 -1
- package/build-types/gradient-picker/types.d.ts +31 -1
- package/build-types/gradient-picker/types.d.ts.map +1 -1
- package/build-types/grid/hook.d.ts +46 -46
- package/build-types/h-stack/component.d.ts +1 -1
- package/build-types/h-stack/hook.d.ts +46 -46
- package/build-types/heading/hook.d.ts +45 -45
- package/build-types/higher-order/navigate-regions/index.d.ts.map +1 -1
- package/build-types/higher-order/with-focus-outside/index.d.ts +1 -0
- package/build-types/higher-order/with-focus-outside/index.d.ts.map +1 -1
- package/build-types/higher-order/with-focus-outside/test/index.d.ts +2 -0
- package/build-types/higher-order/with-focus-outside/test/index.d.ts.map +1 -0
- package/build-types/higher-order/with-spoken-messages/index.d.ts.map +1 -1
- package/build-types/index.d.ts +1 -1
- package/build-types/index.d.ts.map +1 -1
- package/build-types/isolated-event-container/test/index.d.ts +2 -0
- package/build-types/isolated-event-container/test/index.d.ts.map +1 -0
- package/build-types/item-group/item/hook.d.ts +46 -46
- package/build-types/item-group/item-group/hook.d.ts +46 -46
- package/build-types/menu-item/index.d.ts +1 -1
- package/build-types/menu-item/stories/index.story.d.ts +4 -4
- package/build-types/modal/index.d.ts.map +1 -1
- package/build-types/modal/stories/index.story.d.ts.map +1 -1
- package/build-types/modal/types.d.ts +1 -1
- package/build-types/modal/types.d.ts.map +1 -1
- package/build-types/navigable-container/menu.d.ts +1 -1
- package/build-types/navigation/back-button/index.d.ts +1 -1
- package/build-types/navigation/styles/navigation-styles.d.ts +5 -3
- package/build-types/navigation/styles/navigation-styles.d.ts.map +1 -1
- package/build-types/navigator/navigator-back-button/component.d.ts +2 -3
- package/build-types/navigator/navigator-back-button/component.d.ts.map +1 -1
- package/build-types/navigator/navigator-back-button/hook.d.ts +53 -54
- package/build-types/navigator/navigator-back-button/hook.d.ts.map +1 -1
- package/build-types/navigator/navigator-button/component.d.ts +2 -3
- package/build-types/navigator/navigator-button/component.d.ts.map +1 -1
- package/build-types/navigator/navigator-button/hook.d.ts +53 -54
- package/build-types/navigator/navigator-button/hook.d.ts.map +1 -1
- package/build-types/navigator/navigator-to-parent-button/component.d.ts +2 -3
- package/build-types/navigator/navigator-to-parent-button/component.d.ts.map +1 -1
- package/build-types/notice/index.d.ts.map +1 -1
- package/build-types/number-control/index.d.ts +3 -3
- package/build-types/number-control/stories/index.story.d.ts +3 -3
- package/build-types/palette-edit/styles.d.ts +4 -4
- package/build-types/palette-edit/styles.d.ts.map +1 -1
- package/build-types/placeholder/index.d.ts.map +1 -1
- package/build-types/popover/index.d.ts +1 -1
- package/build-types/popover/index.d.ts.map +1 -1
- package/build-types/popover/overlay-middlewares.d.ts +1 -1
- package/build-types/popover/stories/e2e/index.story.d.ts +1 -1
- package/build-types/popover/types.d.ts +0 -4
- package/build-types/popover/types.d.ts.map +1 -1
- package/build-types/popover/utils.d.ts +2 -6
- package/build-types/popover/utils.d.ts.map +1 -1
- package/build-types/range-control/index.d.ts +1 -1
- package/build-types/range-control/styles/range-control-styles.d.ts +3 -3
- package/build-types/resizable-box/index.d.ts +1 -1
- package/build-types/resizable-box/resize-tooltip/index.d.ts +1 -1
- package/build-types/resizable-box/resize-tooltip/label.d.ts +1 -1
- package/build-types/resizable-box/stories/index.story.d.ts +2 -2
- package/build-types/scrollable/hook.d.ts +46 -46
- package/build-types/search-control/index.d.ts +4 -2
- package/build-types/search-control/index.d.ts.map +1 -1
- package/build-types/search-control/stories/index.story.d.ts +8 -4
- package/build-types/search-control/stories/index.story.d.ts.map +1 -1
- package/build-types/search-control/types.d.ts +12 -0
- package/build-types/search-control/types.d.ts.map +1 -1
- package/build-types/spacer/hook.d.ts +46 -46
- package/build-types/spinner/index.d.ts +1 -1
- package/build-types/surface/hook.d.ts +46 -46
- package/build-types/text/hook.d.ts +46 -46
- package/build-types/text/styles.d.ts.map +1 -1
- package/build-types/text-control/index.d.ts +3 -3
- package/build-types/toggle-control/stories/index.story.d.ts +2 -2
- package/build-types/toggle-group-control/toggle-group-control/as-button-group.d.ts +2 -4
- package/build-types/toggle-group-control/toggle-group-control/as-button-group.d.ts.map +1 -1
- package/build-types/toggle-group-control/toggle-group-control/as-radio-group.d.ts +2 -4
- package/build-types/toggle-group-control/toggle-group-control/as-radio-group.d.ts.map +1 -1
- package/build-types/toggle-group-control/toggle-group-control/component.d.ts +2 -2
- 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 +1 -5
- package/build-types/toggle-group-control/toggle-group-control/styles.d.ts.map +1 -1
- package/build-types/toggle-group-control/toggle-group-control/utils.d.ts +18 -0
- package/build-types/toggle-group-control/toggle-group-control/utils.d.ts.map +1 -0
- package/build-types/toggle-group-control/toggle-group-control-option/component.d.ts +1 -1
- package/build-types/toggle-group-control/toggle-group-control-option-base/component.d.ts +5 -1
- package/build-types/toggle-group-control/toggle-group-control-option-base/component.d.ts.map +1 -1
- package/build-types/toggle-group-control/toggle-group-control-option-base/styles.d.ts +1 -0
- package/build-types/toggle-group-control/toggle-group-control-option-base/styles.d.ts.map +1 -1
- package/build-types/toggle-group-control/toggle-group-control-option-icon/component.d.ts +1 -1
- package/build-types/toggle-group-control/types.d.ts +13 -24
- package/build-types/toggle-group-control/types.d.ts.map +1 -1
- package/build-types/toolbar/stories/index.story.d.ts.map +1 -1
- package/build-types/toolbar/toolbar/index.d.ts.map +1 -1
- package/build-types/toolbar/toolbar-button/index.d.ts +16 -22
- package/build-types/toolbar/toolbar-button/index.d.ts.map +1 -1
- package/build-types/toolbar/toolbar-dropdown-menu/index.d.ts +3 -1
- package/build-types/toolbar/toolbar-dropdown-menu/index.d.ts.map +1 -1
- package/build-types/toolbar/toolbar-group/index.d.ts +10 -14
- package/build-types/toolbar/toolbar-group/index.d.ts.map +1 -1
- package/build-types/toolbar/toolbar-group/toolbar-group-collapsed.d.ts +3 -5
- package/build-types/toolbar/toolbar-group/toolbar-group-collapsed.d.ts.map +1 -1
- package/build-types/toolbar/toolbar-group/toolbar-group-container.d.ts +7 -5
- package/build-types/toolbar/toolbar-group/toolbar-group-container.d.ts.map +1 -1
- package/build-types/toolbar/toolbar-group/types.d.ts +77 -0
- package/build-types/toolbar/toolbar-group/types.d.ts.map +1 -0
- package/build-types/toolbar/toolbar-item/index.d.ts.map +1 -1
- package/build-types/tools-panel/tools-panel/hook.d.ts +46 -46
- package/build-types/tools-panel/tools-panel-header/hook.d.ts +46 -46
- package/build-types/tools-panel/tools-panel-item/hook.d.ts +46 -46
- package/build-types/tooltip/index.d.ts +8 -5
- package/build-types/tooltip/index.d.ts.map +1 -1
- package/build-types/tooltip/stories/index.story.d.ts +13 -0
- package/build-types/tooltip/stories/index.story.d.ts.map +1 -0
- package/build-types/tooltip/test/index.d.ts +2 -0
- package/build-types/tooltip/test/index.d.ts.map +1 -0
- package/build-types/tooltip/test/utils/index.d.ts +11 -0
- package/build-types/tooltip/test/utils/index.d.ts.map +1 -0
- package/build-types/tooltip/types.d.ts +61 -0
- package/build-types/tooltip/types.d.ts.map +1 -0
- package/build-types/truncate/hook.d.ts +46 -46
- package/build-types/ui/tooltip/content.d.ts +1 -1
- package/build-types/unit-control/index.d.ts +1 -1
- package/build-types/unit-control/index.d.ts.map +1 -1
- package/build-types/unit-control/styles/unit-control-styles.d.ts +3 -3
- package/build-types/unit-control/styles/unit-control-styles.d.ts.map +1 -1
- package/build-types/unit-control/unit-select-control.d.ts +1 -1
- package/build-types/utils/use-deprecated-props.d.ts +1 -1
- package/build-types/v-stack/component.d.ts +1 -1
- package/build-types/v-stack/hook.d.ts +46 -46
- package/build-types/v-stack/stories/index.story.d.ts +2 -2
- package/package.json +20 -20
- package/src/animation/index.tsx +1 -0
- package/src/border-control/border-control/README.md +2 -2
- package/src/border-control/border-control-dropdown/component.tsx +1 -1
- package/src/border-control/styles.ts +7 -7
- package/src/border-control/test/index.js +79 -69
- package/src/box-control/unit-control.tsx +1 -1
- package/src/button/README.md +0 -6
- package/src/button/index.tsx +9 -1
- package/src/button/test/index.tsx +19 -0
- package/src/button/types.ts +0 -4
- package/src/circular-option-picker/README.md +14 -0
- package/src/circular-option-picker/circular-option-picker-actions.tsx +60 -0
- package/src/circular-option-picker/circular-option-picker-context.tsx +12 -0
- package/src/circular-option-picker/circular-option-picker-option-group.tsx +34 -0
- package/src/circular-option-picker/circular-option-picker-option.tsx +139 -0
- package/src/circular-option-picker/circular-option-picker.tsx +202 -0
- package/src/circular-option-picker/index.tsx +7 -174
- package/src/circular-option-picker/stories/index.story.tsx +34 -9
- package/src/circular-option-picker/style.scss +11 -7
- package/src/circular-option-picker/test/index.tsx +133 -0
- package/src/circular-option-picker/types.ts +64 -1
- package/src/color-palette/README.md +14 -0
- package/src/color-palette/index.tsx +69 -28
- package/src/color-palette/stories/index.story.tsx +16 -2
- package/src/color-palette/test/index.tsx +32 -30
- package/src/color-palette/types.ts +34 -1
- package/src/combobox-control/index.tsx +7 -5
- package/src/composite/{index.js → index.ts} +3 -0
- package/src/confirm-dialog/stories/index.story.js +13 -14
- package/src/confirm-dialog/test/index.js +10 -18
- package/src/custom-gradient-picker/gradient-bar/control-points.tsx +1 -1
- package/src/custom-gradient-picker/gradient-bar/test/utils.ts +5 -5
- package/src/date-time/time/index.tsx +8 -1
- package/src/date-time/time/timezone.tsx +1 -1
- package/src/dropdown/README.md +13 -3
- package/src/dropdown/index.tsx +16 -34
- package/src/dropdown/stories/index.story.tsx +10 -7
- package/src/dropdown/types.ts +12 -4
- package/src/dropdown-menu/README.md +18 -0
- package/src/dropdown-menu/index.tsx +8 -1
- package/src/dropdown-menu/stories/index.story.tsx +5 -0
- package/src/dropdown-menu/types.ts +23 -6
- package/src/dropdown-menu-v2/styles.ts +1 -1
- package/src/duotone-picker/README.md +14 -0
- package/src/duotone-picker/color-list-picker/index.tsx +28 -12
- package/src/duotone-picker/duotone-picker.tsx +33 -0
- package/src/duotone-picker/types.ts +34 -1
- package/src/focusable-iframe/{index.js → index.tsx} +7 -4
- package/src/focusable-iframe/types.ts +9 -0
- package/src/form-token-field/README.md +1 -0
- package/src/form-token-field/index.tsx +5 -1
- package/src/form-token-field/style.scss +5 -9
- package/src/form-token-field/test/index.tsx +36 -1
- package/src/form-token-field/types.ts +7 -1
- package/src/gradient-picker/README.md +14 -0
- package/src/gradient-picker/index.tsx +60 -11
- package/src/gradient-picker/types.ts +34 -1
- package/src/higher-order/navigate-regions/index.tsx +5 -6
- package/src/higher-order/with-filters/test/index.tsx +36 -43
- package/src/higher-order/with-focus-outside/{index.js → index.tsx} +8 -5
- package/src/higher-order/with-focus-outside/test/{index.js → index.tsx} +13 -11
- package/src/higher-order/with-notices/test/index.tsx +1 -1
- package/src/higher-order/with-spoken-messages/index.tsx +7 -8
- package/src/index.ts +5 -1
- package/src/input-control/styles/input-control-styles.tsx +2 -2
- package/src/isolated-event-container/test/{index.js → index.tsx} +1 -1
- package/src/mobile/bottom-sheet/index.native.js +1 -0
- package/src/mobile/global-styles-context/index.native.js +7 -8
- package/src/modal/README.md +7 -1
- package/src/modal/index.tsx +27 -3
- package/src/modal/stories/index.story.tsx +2 -1
- package/src/modal/test/index.tsx +231 -0
- package/src/modal/types.ts +3 -1
- package/src/navigation/use-navigation-tree-nodes.tsx +1 -1
- package/src/notice/index.tsx +18 -6
- package/src/notice/style.scss +0 -1
- package/src/notice/test/__snapshots__/index.tsx.snap +9 -1
- package/src/palette-edit/styles.js +2 -1
- package/src/placeholder/index.tsx +16 -8
- package/src/placeholder/style.scss +2 -16
- package/src/placeholder/test/index.tsx +34 -15
- package/src/popover/index.tsx +47 -110
- package/src/popover/test/index.tsx +3 -3
- package/src/popover/types.ts +0 -5
- package/src/popover/utils.ts +19 -67
- package/src/search-control/README.md +7 -0
- package/src/search-control/index.tsx +10 -1
- package/src/search-control/style.scss +14 -7
- package/src/search-control/types.ts +12 -0
- package/src/tab-panel/test/index.tsx +5 -0
- package/src/text/styles.js +2 -1
- package/src/theme/README.md +5 -5
- package/src/toggle-group-control/test/__snapshots__/index.tsx.snap +567 -59
- package/src/toggle-group-control/test/index.tsx +110 -56
- package/src/toggle-group-control/toggle-group-control/README.md +0 -1
- package/src/toggle-group-control/toggle-group-control/as-button-group.tsx +39 -57
- package/src/toggle-group-control/toggle-group-control/as-radio-group.tsx +52 -48
- package/src/toggle-group-control/toggle-group-control/component.tsx +12 -6
- package/src/toggle-group-control/toggle-group-control/styles.ts +2 -19
- package/src/toggle-group-control/toggle-group-control/utils.ts +50 -0
- package/src/toggle-group-control/toggle-group-control-option-base/component.tsx +70 -20
- package/src/toggle-group-control/toggle-group-control-option-base/styles.ts +17 -3
- package/src/toggle-group-control/types.ts +14 -32
- package/src/toolbar/stories/index.story.tsx +3 -5
- package/src/toolbar/test/toolbar-group.tsx +13 -7
- package/src/toolbar/toolbar/index.tsx +9 -1
- package/src/toolbar/toolbar-dropdown-menu/{index.js → index.tsx} +11 -4
- package/src/toolbar/toolbar-group/README.md +2 -2
- package/src/toolbar/toolbar-group/{index.js → index.tsx} +19 -14
- package/src/toolbar/toolbar-group/{toolbar-group-collapsed.js → toolbar-group-collapsed.tsx} +10 -4
- package/src/toolbar/toolbar-group/toolbar-group-container.tsx +16 -0
- package/src/toolbar/toolbar-group/types.ts +92 -0
- package/src/toolbar/toolbar-item/index.tsx +3 -1
- package/src/tooltip/README.md +31 -28
- package/src/tooltip/index.tsx +106 -0
- package/src/tooltip/stories/index.story.tsx +59 -0
- package/src/tooltip/style.scss +2 -27
- package/src/tooltip/test/index.tsx +335 -0
- package/src/tooltip/test/utils/index.tsx +20 -0
- package/src/tooltip/types.ts +61 -0
- package/src/ui/context/context-connect.ts +3 -3
- package/src/ui/context/wordpress-component.ts +4 -4
- package/src/unit-control/index.tsx +9 -4
- package/src/unit-control/styles/unit-control-styles.ts +3 -1
- package/src/unit-control/test/utils.ts +1 -1
- package/src/utils/colors-values.js +1 -1
- package/src/utils/use-deprecated-props.ts +1 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/build/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.js +0 -78
- package/build/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.js.map +0 -1
- package/build-module/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.js +0 -76
- package/build-module/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.js.map +0 -1
- package/build-types/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.d.ts +0 -9
- package/build-types/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.d.ts.map +0 -1
- package/src/color-palette/test/__snapshots__/index.tsx.snap +0 -288
- package/src/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.tsx +0 -84
- package/src/toolbar/toolbar-group/toolbar-group-container.js +0 -8
- package/src/tooltip/index.js +0 -293
- package/src/tooltip/stories/index.story.js +0 -85
- package/src/tooltip/test/index.js +0 -323
|
@@ -7,10 +7,10 @@ import styled from '@emotion/styled';
|
|
|
7
7
|
/**
|
|
8
8
|
* Internal dependencies
|
|
9
9
|
*/
|
|
10
|
-
import { CONFIG, COLORS
|
|
10
|
+
import { CONFIG, COLORS } from '../../utils';
|
|
11
11
|
import type { ToggleGroupControlProps } from '../types';
|
|
12
12
|
|
|
13
|
-
export const
|
|
13
|
+
export const toggleGroupControl = ( {
|
|
14
14
|
isBlock,
|
|
15
15
|
isDeselectable,
|
|
16
16
|
size,
|
|
@@ -24,8 +24,6 @@ export const ToggleGroupControl = ( {
|
|
|
24
24
|
min-width: 0;
|
|
25
25
|
padding: 2px;
|
|
26
26
|
position: relative;
|
|
27
|
-
transition: transform ${ CONFIG.transitionDurationFastest } linear;
|
|
28
|
-
${ reduceMotion( 'transition' ) }
|
|
29
27
|
|
|
30
28
|
${ toggleGroupControlSize( size ) }
|
|
31
29
|
${ ! isDeselectable && enclosingBorders( isBlock ) }
|
|
@@ -72,21 +70,6 @@ export const block = css`
|
|
|
72
70
|
width: 100%;
|
|
73
71
|
`;
|
|
74
72
|
|
|
75
|
-
export const BackdropView = styled.div`
|
|
76
|
-
background: ${ COLORS.gray[ 900 ] };
|
|
77
|
-
border-radius: ${ CONFIG.controlBorderRadius };
|
|
78
|
-
left: 0;
|
|
79
|
-
position: absolute;
|
|
80
|
-
top: 2px;
|
|
81
|
-
bottom: 2px;
|
|
82
|
-
transition: transform ${ CONFIG.transitionDurationFast } ease;
|
|
83
|
-
${ reduceMotion( 'transition' ) }
|
|
84
|
-
z-index: 1;
|
|
85
|
-
// Windows High Contrast mode will show this outline, but not the box-shadow.
|
|
86
|
-
outline: 2px solid transparent;
|
|
87
|
-
outline-offset: -3px;
|
|
88
|
-
`;
|
|
89
|
-
|
|
90
73
|
export const VisualLabelWrapper = styled.div`
|
|
91
74
|
// Makes the inline label be the correct height, equivalent to setting line-height: 0
|
|
92
75
|
display: flex;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { usePrevious } from '@wordpress/compose';
|
|
5
|
+
import { useEffect, useRef } from '@wordpress/element';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Internal dependencies
|
|
9
|
+
*/
|
|
10
|
+
import type { ToggleGroupControlProps } from '../types';
|
|
11
|
+
|
|
12
|
+
type ValueProp = ToggleGroupControlProps[ 'value' ];
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Used to determine, via an internal heuristics, whether an `undefined` value
|
|
16
|
+
* received for the `value` prop should be interpreted as the component being
|
|
17
|
+
* used in uncontrolled mode, or as an "empty" value for controlled mode.
|
|
18
|
+
*
|
|
19
|
+
* @param valueProp The received `value`
|
|
20
|
+
*/
|
|
21
|
+
export function useComputeControlledOrUncontrolledValue(
|
|
22
|
+
valueProp: ValueProp
|
|
23
|
+
): { value: ValueProp; defaultValue: ValueProp } {
|
|
24
|
+
const hasEverBeenUsedInControlledMode = useRef( false );
|
|
25
|
+
const previousValueProp = usePrevious( valueProp );
|
|
26
|
+
|
|
27
|
+
useEffect( () => {
|
|
28
|
+
if ( ! hasEverBeenUsedInControlledMode.current ) {
|
|
29
|
+
// Assume the component is being used in controlled mode if:
|
|
30
|
+
// - the `value` prop is not `undefined`
|
|
31
|
+
// - the `value` prop was not previously `undefined` and was given a new value
|
|
32
|
+
hasEverBeenUsedInControlledMode.current =
|
|
33
|
+
valueProp !== undefined &&
|
|
34
|
+
previousValueProp !== undefined &&
|
|
35
|
+
valueProp !== previousValueProp;
|
|
36
|
+
}
|
|
37
|
+
}, [ valueProp, previousValueProp ] );
|
|
38
|
+
|
|
39
|
+
let value, defaultValue;
|
|
40
|
+
|
|
41
|
+
if ( hasEverBeenUsedInControlledMode.current ) {
|
|
42
|
+
// When in controlled mode, use `''` instead of `undefined`
|
|
43
|
+
value = valueProp ?? '';
|
|
44
|
+
} else {
|
|
45
|
+
// When in uncontrolled mode, the `value` should be intended as the initial value
|
|
46
|
+
defaultValue = valueProp;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
return { value, defaultValue };
|
|
50
|
+
}
|
|
@@ -3,12 +3,15 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import type { ForwardedRef } from 'react';
|
|
5
5
|
// eslint-disable-next-line no-restricted-imports
|
|
6
|
-
import { Radio } from '
|
|
6
|
+
import { Radio } from '@ariakit/react/radio';
|
|
7
|
+
// eslint-disable-next-line no-restricted-imports
|
|
8
|
+
import { motion, useReducedMotion } from 'framer-motion';
|
|
7
9
|
|
|
8
10
|
/**
|
|
9
11
|
* WordPress dependencies
|
|
10
12
|
*/
|
|
11
13
|
import { useInstanceId } from '@wordpress/compose';
|
|
14
|
+
import { useMemo } from '@wordpress/element';
|
|
12
15
|
|
|
13
16
|
/**
|
|
14
17
|
* Internal dependencies
|
|
@@ -26,10 +29,16 @@ import Tooltip from '../../tooltip';
|
|
|
26
29
|
|
|
27
30
|
const { ButtonContentView, LabelView } = styles;
|
|
28
31
|
|
|
32
|
+
const REDUCED_MOTION_TRANSITION_CONFIG = {
|
|
33
|
+
duration: 0,
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
const LAYOUT_ID = 'toggle-group-backdrop-shared-layout-id';
|
|
37
|
+
|
|
29
38
|
const WithToolTip = ( { showTooltip, text, children }: WithToolTipProps ) => {
|
|
30
39
|
if ( showTooltip && text ) {
|
|
31
40
|
return (
|
|
32
|
-
<Tooltip text={ text }
|
|
41
|
+
<Tooltip text={ text } placement="top">
|
|
33
42
|
{ children }
|
|
34
43
|
</Tooltip>
|
|
35
44
|
);
|
|
@@ -38,56 +47,78 @@ const WithToolTip = ( { showTooltip, text, children }: WithToolTipProps ) => {
|
|
|
38
47
|
};
|
|
39
48
|
|
|
40
49
|
function ToggleGroupControlOptionBase(
|
|
41
|
-
props:
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
50
|
+
props: Omit<
|
|
51
|
+
WordPressComponentProps<
|
|
52
|
+
ToggleGroupControlOptionBaseProps,
|
|
53
|
+
'button',
|
|
54
|
+
false
|
|
55
|
+
>,
|
|
56
|
+
// the element's id is generated internally
|
|
57
|
+
'id'
|
|
45
58
|
>,
|
|
46
59
|
forwardedRef: ForwardedRef< any >
|
|
47
60
|
) {
|
|
61
|
+
const shouldReduceMotion = useReducedMotion();
|
|
48
62
|
const toggleGroupControlContext = useToggleGroupControlContext();
|
|
63
|
+
|
|
49
64
|
const id = useInstanceId(
|
|
50
65
|
ToggleGroupControlOptionBase,
|
|
51
66
|
toggleGroupControlContext.baseId || 'toggle-group-control-option-base'
|
|
52
|
-
)
|
|
67
|
+
);
|
|
68
|
+
|
|
53
69
|
const buttonProps = useContextSystem(
|
|
54
70
|
{ ...props, id },
|
|
55
71
|
'ToggleGroupControlOptionBase'
|
|
56
72
|
);
|
|
73
|
+
|
|
57
74
|
const {
|
|
58
75
|
isBlock = false,
|
|
59
76
|
isDeselectable = false,
|
|
60
77
|
size = 'default',
|
|
61
|
-
...otherContextProps /* context props for Ariakit Radio */
|
|
62
78
|
} = toggleGroupControlContext;
|
|
79
|
+
|
|
63
80
|
const {
|
|
64
81
|
className,
|
|
65
82
|
isIcon = false,
|
|
66
83
|
value,
|
|
67
84
|
children,
|
|
68
85
|
showTooltip = false,
|
|
86
|
+
onFocus: onFocusProp,
|
|
69
87
|
...otherButtonProps
|
|
70
88
|
} = buttonProps;
|
|
71
89
|
|
|
72
|
-
const isPressed =
|
|
90
|
+
const isPressed = toggleGroupControlContext.value === value;
|
|
73
91
|
const cx = useCx();
|
|
74
|
-
const labelViewClasses =
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
className
|
|
92
|
+
const labelViewClasses = useMemo(
|
|
93
|
+
() => cx( isBlock && styles.labelBlock ),
|
|
94
|
+
[ cx, isBlock ]
|
|
78
95
|
);
|
|
96
|
+
const itemClasses = useMemo(
|
|
97
|
+
() =>
|
|
98
|
+
cx(
|
|
99
|
+
styles.buttonView( {
|
|
100
|
+
isDeselectable,
|
|
101
|
+
isIcon,
|
|
102
|
+
isPressed,
|
|
103
|
+
size,
|
|
104
|
+
} ),
|
|
105
|
+
className
|
|
106
|
+
),
|
|
107
|
+
[ cx, isDeselectable, isIcon, isPressed, size, className ]
|
|
108
|
+
);
|
|
109
|
+
const backdropClasses = useMemo( () => cx( styles.backdropView ), [ cx ] );
|
|
79
110
|
|
|
80
111
|
const buttonOnClick = () => {
|
|
81
112
|
if ( isDeselectable && isPressed ) {
|
|
82
|
-
|
|
113
|
+
toggleGroupControlContext.setValue( undefined );
|
|
83
114
|
} else {
|
|
84
|
-
|
|
115
|
+
toggleGroupControlContext.setValue( value );
|
|
85
116
|
}
|
|
86
117
|
};
|
|
87
118
|
|
|
88
119
|
const commonProps = {
|
|
89
120
|
...otherButtonProps,
|
|
90
|
-
className:
|
|
121
|
+
className: itemClasses,
|
|
91
122
|
'data-value': value,
|
|
92
123
|
ref: forwardedRef,
|
|
93
124
|
};
|
|
@@ -101,6 +132,7 @@ function ToggleGroupControlOptionBase(
|
|
|
101
132
|
{ isDeselectable ? (
|
|
102
133
|
<button
|
|
103
134
|
{ ...commonProps }
|
|
135
|
+
onFocus={ onFocusProp }
|
|
104
136
|
aria-pressed={ isPressed }
|
|
105
137
|
type="button"
|
|
106
138
|
onClick={ buttonOnClick }
|
|
@@ -109,17 +141,35 @@ function ToggleGroupControlOptionBase(
|
|
|
109
141
|
</button>
|
|
110
142
|
) : (
|
|
111
143
|
<Radio
|
|
112
|
-
{
|
|
113
|
-
|
|
114
|
-
|
|
144
|
+
render={
|
|
145
|
+
<button
|
|
146
|
+
{ ...commonProps }
|
|
147
|
+
onFocus={ ( event ) => {
|
|
148
|
+
onFocusProp?.( event );
|
|
149
|
+
if ( event.defaultPrevented ) return;
|
|
150
|
+
toggleGroupControlContext.setValue( value );
|
|
151
|
+
} }
|
|
152
|
+
/>
|
|
115
153
|
}
|
|
116
|
-
as="button"
|
|
117
154
|
value={ value }
|
|
118
155
|
>
|
|
119
156
|
<ButtonContentView>{ children }</ButtonContentView>
|
|
120
157
|
</Radio>
|
|
121
158
|
) }
|
|
122
159
|
</WithToolTip>
|
|
160
|
+
{ /* Animated backdrop using framer motion's shared layout animation */ }
|
|
161
|
+
{ isPressed ? (
|
|
162
|
+
<motion.div
|
|
163
|
+
className={ backdropClasses }
|
|
164
|
+
transition={
|
|
165
|
+
shouldReduceMotion
|
|
166
|
+
? REDUCED_MOTION_TRANSITION_CONFIG
|
|
167
|
+
: undefined
|
|
168
|
+
}
|
|
169
|
+
role="presentation"
|
|
170
|
+
layoutId={ LAYOUT_ID }
|
|
171
|
+
/>
|
|
172
|
+
) : null }
|
|
123
173
|
</LabelView>
|
|
124
174
|
);
|
|
125
175
|
}
|
|
@@ -50,8 +50,10 @@ export const buttonView = ( {
|
|
|
50
50
|
padding: 0 12px;
|
|
51
51
|
position: relative;
|
|
52
52
|
text-align: center;
|
|
53
|
-
transition:
|
|
54
|
-
|
|
53
|
+
transition:
|
|
54
|
+
background ${ CONFIG.transitionDurationFast } linear,
|
|
55
|
+
color ${ CONFIG.transitionDurationFast } linear,
|
|
56
|
+
font-weight 60ms linear;
|
|
55
57
|
${ reduceMotion( 'transition' ) }
|
|
56
58
|
user-select: none;
|
|
57
59
|
width: 100%;
|
|
@@ -82,7 +84,8 @@ const deselectable = css`
|
|
|
82
84
|
color: ${ COLORS.gray[ 900 ] };
|
|
83
85
|
|
|
84
86
|
&:focus {
|
|
85
|
-
box-shadow:
|
|
87
|
+
box-shadow:
|
|
88
|
+
inset 0 0 0 1px ${ COLORS.white },
|
|
86
89
|
0 0 0 ${ CONFIG.borderWidthFocus } ${ COLORS.theme.accent };
|
|
87
90
|
outline: 2px solid transparent;
|
|
88
91
|
}
|
|
@@ -109,3 +112,14 @@ const isIconStyles = ( {
|
|
|
109
112
|
padding-right: 0;
|
|
110
113
|
`;
|
|
111
114
|
};
|
|
115
|
+
|
|
116
|
+
export const backdropView = css`
|
|
117
|
+
background: ${ COLORS.gray[ 900 ] };
|
|
118
|
+
border-radius: ${ CONFIG.controlBorderRadius };
|
|
119
|
+
position: absolute;
|
|
120
|
+
inset: 0;
|
|
121
|
+
z-index: 1;
|
|
122
|
+
// Windows High Contrast mode will show this outline, but not the box-shadow.
|
|
123
|
+
outline: 2px solid transparent;
|
|
124
|
+
outline-offset: -3px;
|
|
125
|
+
`;
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import type {
|
|
5
|
-
// eslint-disable-next-line no-restricted-imports
|
|
6
|
-
import type { RadioStateReturn } from 'reakit';
|
|
4
|
+
import type { ReactNode } from 'react';
|
|
7
5
|
|
|
8
6
|
/**
|
|
9
7
|
* Internal dependencies
|
|
10
8
|
*/
|
|
11
9
|
import type { BaseControlProps } from '../base-control/types';
|
|
10
|
+
import type { TooltipProps } from '../tooltip/types';
|
|
12
11
|
|
|
13
12
|
export type ToggleGroupControlOptionBaseProps = {
|
|
14
13
|
children: ReactNode;
|
|
@@ -18,7 +17,7 @@ export type ToggleGroupControlOptionBaseProps = {
|
|
|
18
17
|
* @default false
|
|
19
18
|
*/
|
|
20
19
|
isIcon?: boolean;
|
|
21
|
-
value:
|
|
20
|
+
value: string | number;
|
|
22
21
|
/**
|
|
23
22
|
* Whether to display a Tooltip for the control option. If set to `true`, the tooltip will
|
|
24
23
|
* show the aria-label or the label prop text.
|
|
@@ -58,7 +57,7 @@ export type WithToolTipProps = {
|
|
|
58
57
|
/**
|
|
59
58
|
* React children
|
|
60
59
|
*/
|
|
61
|
-
children:
|
|
60
|
+
children: TooltipProps[ 'children' ];
|
|
62
61
|
/**
|
|
63
62
|
* Label for the Tooltip component.
|
|
64
63
|
*/
|
|
@@ -107,11 +106,11 @@ export type ToggleGroupControlProps = Pick<
|
|
|
107
106
|
/**
|
|
108
107
|
* Callback when a segment is selected.
|
|
109
108
|
*/
|
|
110
|
-
onChange?: ( value:
|
|
109
|
+
onChange?: ( value: string | number | undefined ) => void;
|
|
111
110
|
/**
|
|
112
111
|
* The selected value.
|
|
113
112
|
*/
|
|
114
|
-
value?:
|
|
113
|
+
value?: string | number;
|
|
115
114
|
/**
|
|
116
115
|
* The options to render in the `ToggleGroupControl`, using either the `ToggleGroupControlOption` or
|
|
117
116
|
* `ToggleGroupControlOptionIcon` components.
|
|
@@ -125,33 +124,16 @@ export type ToggleGroupControlProps = Pick<
|
|
|
125
124
|
size?: 'default' | '__unstable-large';
|
|
126
125
|
};
|
|
127
126
|
|
|
128
|
-
type
|
|
129
|
-
isDeselectable?:
|
|
130
|
-
} & RadioStateReturn;
|
|
131
|
-
|
|
132
|
-
type ToggleGroupControlAsButtonContext = { isDeselectable: true } & Pick<
|
|
133
|
-
RadioStateReturn,
|
|
134
|
-
'state' | 'setState'
|
|
135
|
-
>;
|
|
136
|
-
|
|
137
|
-
export type ToggleGroupControlContextProps = Pick<
|
|
138
|
-
ToggleGroupControlProps,
|
|
139
|
-
'isBlock' | 'size'
|
|
140
|
-
> & {
|
|
127
|
+
export type ToggleGroupControlContextProps = {
|
|
128
|
+
isDeselectable?: boolean;
|
|
141
129
|
baseId: string;
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
containerWidth?: number | null;
|
|
147
|
-
isAdaptiveWidth?: boolean;
|
|
148
|
-
state?: any;
|
|
130
|
+
isBlock: ToggleGroupControlProps[ 'isBlock' ];
|
|
131
|
+
size: ToggleGroupControlProps[ 'size' ];
|
|
132
|
+
value: ToggleGroupControlProps[ 'value' ];
|
|
133
|
+
setValue: ( newValue: string | number | undefined ) => void;
|
|
149
134
|
};
|
|
150
135
|
|
|
151
136
|
export type ToggleGroupControlMainControlProps = Pick<
|
|
152
137
|
ToggleGroupControlProps,
|
|
153
|
-
'children' | 'isAdaptiveWidth' | 'label' | 'size'
|
|
154
|
-
|
|
155
|
-
onChange: ( value: ReactText | undefined ) => void;
|
|
156
|
-
value?: ReactText;
|
|
157
|
-
};
|
|
138
|
+
'children' | 'isAdaptiveWidth' | 'label' | 'size' | 'onChange' | 'value'
|
|
139
|
+
>;
|
|
@@ -117,9 +117,8 @@ Default.args = {
|
|
|
117
117
|
<ToolbarButton icon={ link } label="Link" />
|
|
118
118
|
<ToolbarGroup
|
|
119
119
|
isCollapsed
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
label="More rich text controls"
|
|
120
|
+
icon={ null }
|
|
121
|
+
title="More rich text controls"
|
|
123
122
|
controls={ [
|
|
124
123
|
{ icon: code, title: 'Inline code' },
|
|
125
124
|
{ icon: <InlineImageIcon />, title: 'Inline image' },
|
|
@@ -131,9 +130,8 @@ Default.args = {
|
|
|
131
130
|
/>
|
|
132
131
|
</ToolbarGroup>
|
|
133
132
|
<ToolbarGroup
|
|
134
|
-
// @ts-expect-error TODO: Remove when ToolbarGroup is typed
|
|
135
133
|
icon={ more }
|
|
136
|
-
|
|
134
|
+
title="Align"
|
|
137
135
|
isCollapsed
|
|
138
136
|
controls={ [
|
|
139
137
|
{
|
|
@@ -8,6 +8,11 @@ import { fireEvent, render, screen } from '@testing-library/react';
|
|
|
8
8
|
*/
|
|
9
9
|
import { ToolbarGroup } from '..';
|
|
10
10
|
|
|
11
|
+
/**
|
|
12
|
+
* WordPress dependencies
|
|
13
|
+
*/
|
|
14
|
+
import { wordpress } from '@wordpress/icons';
|
|
15
|
+
|
|
11
16
|
describe( 'ToolbarGroup', () => {
|
|
12
17
|
describe( 'basic rendering', () => {
|
|
13
18
|
it( 'should render an empty node, when controls are not passed', () => {
|
|
@@ -23,10 +28,11 @@ describe( 'ToolbarGroup', () => {
|
|
|
23
28
|
} );
|
|
24
29
|
|
|
25
30
|
it( 'should render a list of controls with buttons', () => {
|
|
26
|
-
const clickHandler = ( event
|
|
31
|
+
const clickHandler = ( event?: React.MouseEvent ) => event;
|
|
32
|
+
|
|
27
33
|
const controls = [
|
|
28
34
|
{
|
|
29
|
-
icon:
|
|
35
|
+
icon: wordpress,
|
|
30
36
|
title: 'WordPress',
|
|
31
37
|
onClick: clickHandler,
|
|
32
38
|
isActive: false,
|
|
@@ -41,10 +47,10 @@ describe( 'ToolbarGroup', () => {
|
|
|
41
47
|
} );
|
|
42
48
|
|
|
43
49
|
it( 'should render a list of controls with buttons and active control', () => {
|
|
44
|
-
const clickHandler = ( event
|
|
50
|
+
const clickHandler = ( event?: React.MouseEvent ) => event;
|
|
45
51
|
const controls = [
|
|
46
52
|
{
|
|
47
|
-
icon:
|
|
53
|
+
icon: wordpress,
|
|
48
54
|
title: 'WordPress',
|
|
49
55
|
onClick: clickHandler,
|
|
50
56
|
isActive: true,
|
|
@@ -63,14 +69,14 @@ describe( 'ToolbarGroup', () => {
|
|
|
63
69
|
[
|
|
64
70
|
// First set.
|
|
65
71
|
{
|
|
66
|
-
icon:
|
|
72
|
+
icon: wordpress,
|
|
67
73
|
title: 'WordPress',
|
|
68
74
|
},
|
|
69
75
|
],
|
|
70
76
|
[
|
|
71
77
|
// Second set.
|
|
72
78
|
{
|
|
73
|
-
icon:
|
|
79
|
+
icon: wordpress,
|
|
74
80
|
title: 'WordPress',
|
|
75
81
|
},
|
|
76
82
|
],
|
|
@@ -95,7 +101,7 @@ describe( 'ToolbarGroup', () => {
|
|
|
95
101
|
const clickHandler = jest.fn();
|
|
96
102
|
const controls = [
|
|
97
103
|
{
|
|
98
|
-
icon:
|
|
104
|
+
icon: wordpress,
|
|
99
105
|
title: 'WordPress',
|
|
100
106
|
onClick: clickHandler,
|
|
101
107
|
isActive: true,
|
|
@@ -42,7 +42,15 @@ function UnforwardedToolbar(
|
|
|
42
42
|
alternative: 'ToolbarGroup component',
|
|
43
43
|
link: 'https://developer.wordpress.org/block-editor/components/toolbar/',
|
|
44
44
|
} );
|
|
45
|
-
|
|
45
|
+
// Extracting title from `props` because `ToolbarGroup` doesn't accept it.
|
|
46
|
+
const { title: _title, ...restProps } = props;
|
|
47
|
+
return (
|
|
48
|
+
<ToolbarGroup
|
|
49
|
+
isCollapsed={ false }
|
|
50
|
+
{ ...restProps }
|
|
51
|
+
className={ className }
|
|
52
|
+
/>
|
|
53
|
+
);
|
|
46
54
|
}
|
|
47
55
|
// `ToolbarGroup` already uses components-toolbar for compatibility reasons.
|
|
48
56
|
const finalClassName = classnames(
|
|
@@ -1,25 +1,32 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
|
-
|
|
3
1
|
/**
|
|
4
2
|
* WordPress dependencies
|
|
5
3
|
*/
|
|
6
4
|
import { forwardRef, useContext } from '@wordpress/element';
|
|
7
5
|
|
|
6
|
+
/**
|
|
7
|
+
* External dependencies
|
|
8
|
+
*/
|
|
9
|
+
import type { ForwardedRef } from 'react';
|
|
10
|
+
|
|
8
11
|
/**
|
|
9
12
|
* Internal dependencies
|
|
10
13
|
*/
|
|
11
14
|
import ToolbarItem from '../toolbar-item';
|
|
12
15
|
import ToolbarContext from '../toolbar-context';
|
|
13
16
|
import DropdownMenu from '../../dropdown-menu';
|
|
17
|
+
import type { DropdownMenuProps } from '../../dropdown-menu/types';
|
|
14
18
|
|
|
15
|
-
function ToolbarDropdownMenu(
|
|
19
|
+
function ToolbarDropdownMenu(
|
|
20
|
+
props: DropdownMenuProps,
|
|
21
|
+
ref: ForwardedRef< any >
|
|
22
|
+
) {
|
|
16
23
|
const accessibleToolbarState = useContext( ToolbarContext );
|
|
17
24
|
|
|
18
25
|
if ( ! accessibleToolbarState ) {
|
|
19
26
|
return <DropdownMenu { ...props } />;
|
|
20
27
|
}
|
|
21
28
|
|
|
22
|
-
//
|
|
29
|
+
// ToolbarItem will pass all props to the render prop child, which will pass
|
|
23
30
|
// all props to the toggle of DropdownMenu. This means that ToolbarDropdownMenu
|
|
24
31
|
// has the same API as DropdownMenu.
|
|
25
32
|
return (
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# ToolbarGroup
|
|
2
2
|
|
|
3
|
-
A ToolbarGroup can be used to create subgroups of controls inside a [Toolbar](/packages/components/src/toolbar/README.md).
|
|
3
|
+
A ToolbarGroup can be used to create subgroups of controls inside a [Toolbar](/packages/components/src/toolbar/toolbar/README.md).
|
|
4
4
|
|
|
5
5
|
## Usage
|
|
6
6
|
|
|
@@ -30,4 +30,4 @@ ToolbarGroup will pass all HTML props to the underlying element.
|
|
|
30
30
|
|
|
31
31
|
## Related components
|
|
32
32
|
|
|
33
|
-
- ToolbarGroup may contain [ToolbarButton](/packages/components/src/toolbar-button/README.md) and [ToolbarItem](/packages/components/src/toolbar-
|
|
33
|
+
- ToolbarGroup may contain [ToolbarButton](/packages/components/src/toolbar/toolbar-button/README.md) and [ToolbarItem](/packages/components/src/toolbar/toolbar-item/README.md) as children.
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
|
-
|
|
3
1
|
/**
|
|
4
2
|
* External dependencies
|
|
5
3
|
*/
|
|
@@ -17,6 +15,11 @@ import ToolbarButton from '../toolbar-button';
|
|
|
17
15
|
import ToolbarGroupContainer from './toolbar-group-container';
|
|
18
16
|
import ToolbarGroupCollapsed from './toolbar-group-collapsed';
|
|
19
17
|
import ToolbarContext from '../toolbar-context';
|
|
18
|
+
import type { ToolbarGroupProps, ToolbarGroupControls } from './types';
|
|
19
|
+
|
|
20
|
+
function isNestedArray< T = any >( arr: T[] | T[][] ): arr is T[][] {
|
|
21
|
+
return Array.isArray( arr ) && Array.isArray( arr[ 0 ] );
|
|
22
|
+
}
|
|
20
23
|
|
|
21
24
|
/**
|
|
22
25
|
* Renders a collapsible group of controls
|
|
@@ -41,12 +44,12 @@ import ToolbarContext from '../toolbar-context';
|
|
|
41
44
|
* Either `controls` or `children` is required, otherwise this components
|
|
42
45
|
* renders nothing.
|
|
43
46
|
*
|
|
44
|
-
* @param
|
|
45
|
-
* @param
|
|
46
|
-
* @param
|
|
47
|
-
* @param
|
|
48
|
-
* @param
|
|
49
|
-
* @param
|
|
47
|
+
* @param props Component props.
|
|
48
|
+
* @param [props.controls] The controls to render in this toolbar.
|
|
49
|
+
* @param [props.children] Any other things to render inside the toolbar besides the controls.
|
|
50
|
+
* @param [props.className] Class to set on the container div.
|
|
51
|
+
* @param [props.isCollapsed] Turns ToolbarGroup into a dropdown menu.
|
|
52
|
+
* @param [props.title] ARIA label for dropdown menu if is collapsed.
|
|
50
53
|
*/
|
|
51
54
|
function ToolbarGroup( {
|
|
52
55
|
controls = [],
|
|
@@ -55,7 +58,7 @@ function ToolbarGroup( {
|
|
|
55
58
|
isCollapsed,
|
|
56
59
|
title,
|
|
57
60
|
...props
|
|
58
|
-
} ) {
|
|
61
|
+
}: ToolbarGroupProps ) {
|
|
59
62
|
// It'll contain state if `ToolbarGroup` is being used within
|
|
60
63
|
// `<Toolbar label="label" />`
|
|
61
64
|
const accessibleToolbarState = useContext( ToolbarContext );
|
|
@@ -74,9 +77,11 @@ function ToolbarGroup( {
|
|
|
74
77
|
);
|
|
75
78
|
|
|
76
79
|
// Normalize controls to nested array of objects (sets of controls)
|
|
77
|
-
let controlSets
|
|
78
|
-
if (
|
|
79
|
-
controlSets =
|
|
80
|
+
let controlSets: ToolbarGroupControls[][];
|
|
81
|
+
if ( isNestedArray( controls ) ) {
|
|
82
|
+
controlSets = controls;
|
|
83
|
+
} else {
|
|
84
|
+
controlSets = [ controls ];
|
|
80
85
|
}
|
|
81
86
|
|
|
82
87
|
if ( isCollapsed ) {
|
|
@@ -94,13 +99,13 @@ function ToolbarGroup( {
|
|
|
94
99
|
return (
|
|
95
100
|
<ToolbarGroupContainer className={ finalClassName } { ...props }>
|
|
96
101
|
{ controlSets?.flatMap( ( controlSet, indexOfSet ) =>
|
|
97
|
-
controlSet.map( ( control, indexOfControl ) => (
|
|
102
|
+
controlSet.map( ( control, indexOfControl: number ) => (
|
|
98
103
|
<ToolbarButton
|
|
99
104
|
key={ [ indexOfSet, indexOfControl ].join() }
|
|
100
105
|
containerClassName={
|
|
101
106
|
indexOfSet > 0 && indexOfControl === 0
|
|
102
107
|
? 'has-left-divider'
|
|
103
|
-
:
|
|
108
|
+
: undefined
|
|
104
109
|
}
|
|
105
110
|
{ ...control }
|
|
106
111
|
/>
|
package/src/toolbar/toolbar-group/{toolbar-group-collapsed.js → toolbar-group-collapsed.tsx}
RENAMED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
|
-
|
|
3
1
|
/**
|
|
4
2
|
* WordPress dependencies
|
|
5
3
|
*/
|
|
@@ -11,13 +9,21 @@ import { useContext } from '@wordpress/element';
|
|
|
11
9
|
import DropdownMenu from '../../dropdown-menu';
|
|
12
10
|
import ToolbarContext from '../toolbar-context';
|
|
13
11
|
import ToolbarItem from '../toolbar-item';
|
|
12
|
+
import type { ToolbarGroupCollapsedProps } from './types';
|
|
13
|
+
import type { DropdownMenuProps } from '../../dropdown-menu/types';
|
|
14
14
|
|
|
15
|
-
function ToolbarGroupCollapsed( {
|
|
15
|
+
function ToolbarGroupCollapsed( {
|
|
16
|
+
controls = [],
|
|
17
|
+
toggleProps,
|
|
18
|
+
...props
|
|
19
|
+
}: ToolbarGroupCollapsedProps ) {
|
|
16
20
|
// It'll contain state if `ToolbarGroup` is being used within
|
|
17
21
|
// `<Toolbar label="label" />`
|
|
18
22
|
const accessibleToolbarState = useContext( ToolbarContext );
|
|
19
23
|
|
|
20
|
-
const renderDropdownMenu = (
|
|
24
|
+
const renderDropdownMenu = (
|
|
25
|
+
internalToggleProps?: DropdownMenuProps[ 'toggleProps' ]
|
|
26
|
+
) => (
|
|
21
27
|
<DropdownMenu
|
|
22
28
|
controls={ controls }
|
|
23
29
|
toggleProps={ {
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Internal dependencies
|
|
3
|
+
*/
|
|
4
|
+
import type { WordPressComponentProps } from '../../ui/context';
|
|
5
|
+
import type { ToolbarGroupContainerProps } from './types';
|
|
6
|
+
|
|
7
|
+
const ToolbarGroupContainer = ( {
|
|
8
|
+
className,
|
|
9
|
+
children,
|
|
10
|
+
...props
|
|
11
|
+
}: WordPressComponentProps< ToolbarGroupContainerProps, 'div', false > ) => (
|
|
12
|
+
<div className={ className } { ...props }>
|
|
13
|
+
{ children }
|
|
14
|
+
</div>
|
|
15
|
+
);
|
|
16
|
+
export default ToolbarGroupContainer;
|