@wordpress/components 28.1.0 → 28.3.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 +179 -120
- package/build/animation/index.js.map +1 -1
- package/build/autocomplete/autocompleter-ui.js +1 -0
- package/build/autocomplete/autocompleter-ui.js.map +1 -1
- package/build/autocomplete/index.js.map +1 -1
- package/build/base-control/index.js +14 -7
- package/build/base-control/index.js.map +1 -1
- package/build/border-box-control/border-box-control-visualizer/component.js +0 -4
- package/build/border-box-control/border-box-control-visualizer/component.js.map +1 -1
- package/build/button/index.js +5 -3
- package/build/button/index.js.map +1 -1
- package/build/button/types.js.map +1 -1
- package/build/combobox-control/index.js +4 -1
- package/build/combobox-control/index.js.map +1 -1
- package/build/composite/current/index.js.map +1 -1
- package/build/custom-select-control-v2/custom-select.js +58 -36
- package/build/custom-select-control-v2/custom-select.js.map +1 -1
- package/build/custom-select-control-v2/default-component/index.js +0 -1
- package/build/custom-select-control-v2/default-component/index.js.map +1 -1
- package/build/custom-select-control-v2/item.js +2 -0
- package/build/custom-select-control-v2/item.js.map +1 -1
- package/build/custom-select-control-v2/legacy-component/index.js +33 -15
- package/build/custom-select-control-v2/legacy-component/index.js.map +1 -1
- package/build/custom-select-control-v2/styles.js +92 -65
- package/build/custom-select-control-v2/styles.js.map +1 -1
- package/build/custom-select-control-v2/types.js.map +1 -1
- package/build/date-time/date-time/index.js +3 -1
- package/build/date-time/date-time/index.js.map +1 -1
- package/build/date-time/index.js +7 -0
- package/build/date-time/index.js.map +1 -1
- package/build/date-time/time/index.js +62 -145
- package/build/date-time/time/index.js.map +1 -1
- package/build/date-time/time-input/index.js +159 -0
- package/build/date-time/time-input/index.js.map +1 -0
- package/build/date-time/types.js.map +1 -1
- package/build/date-time/utils.js +64 -0
- package/build/date-time/utils.js.map +1 -1
- package/build/disclosure/index.js +0 -1
- package/build/disclosure/index.js.map +1 -1
- package/build/divider/component.js +0 -1
- package/build/divider/component.js.map +1 -1
- package/build/divider/types.js.map +1 -1
- package/build/drop-zone/index.js +16 -79
- package/build/drop-zone/index.js.map +1 -1
- package/build/dropdown-menu/index.js +1 -0
- package/build/dropdown-menu/index.js.map +1 -1
- package/build/dropdown-menu-v2/index.js +0 -1
- package/build/dropdown-menu-v2/index.js.map +1 -1
- package/build/dropdown-menu-v2/styles.js +15 -16
- package/build/dropdown-menu-v2/styles.js.map +1 -1
- package/build/dropdown-menu-v2/types.js.map +1 -1
- package/build/font-size-picker/font-size-picker-select.js +2 -2
- package/build/font-size-picker/font-size-picker-select.js.map +1 -1
- package/build/font-size-picker/index.js +1 -1
- package/build/font-size-picker/index.js.map +1 -1
- package/build/font-size-picker/utils.js +0 -4
- package/build/font-size-picker/utils.js.map +1 -1
- package/build/form-token-field/token.js +4 -1
- package/build/form-token-field/token.js.map +1 -1
- package/build/higher-order/with-spoken-messages/index.js +1 -2
- package/build/higher-order/with-spoken-messages/index.js.map +1 -1
- package/build/lock-unlock.js +1 -1
- package/build/lock-unlock.js.map +1 -1
- package/build/menu-items-choice/types.js.map +1 -1
- package/build/palette-edit/index.js +30 -38
- package/build/palette-edit/index.js.map +1 -1
- package/build/palette-edit/types.js.map +1 -1
- package/build/popover/index.js +0 -4
- package/build/popover/index.js.map +1 -1
- package/build/popover/utils.js +0 -1
- package/build/popover/utils.js.map +1 -1
- package/build/private-apis.js +2 -4
- package/build/private-apis.js.map +1 -1
- package/build/progress-bar/styles.js +19 -13
- package/build/progress-bar/styles.js.map +1 -1
- package/build/radio-group/context.js +0 -1
- package/build/radio-group/context.js.map +1 -1
- package/build/radio-group/index.js +0 -1
- package/build/radio-group/index.js.map +1 -1
- package/build/radio-group/radio.js +0 -1
- package/build/radio-group/radio.js.map +1 -1
- package/build/range-control/index.js +4 -1
- package/build/range-control/index.js.map +1 -1
- package/build/range-control/styles/range-control-styles.js +34 -28
- package/build/range-control/styles/range-control-styles.js.map +1 -1
- package/build/resizable-box/resize-tooltip/utils.js.map +1 -1
- package/build/select-control/index.js +1 -2
- package/build/select-control/index.js.map +1 -1
- package/build/select-control/styles/select-control-styles.js +13 -8
- package/build/select-control/styles/select-control-styles.js.map +1 -1
- package/build/tab-panel/index.js +0 -1
- package/build/tab-panel/index.js.map +1 -1
- package/build/tabs/index.js +0 -1
- package/build/tabs/index.js.map +1 -1
- package/build/tabs/styles.js +3 -5
- package/build/tabs/styles.js.map +1 -1
- package/build/tabs/tablist.js +148 -37
- package/build/tabs/tablist.js.map +1 -1
- package/build/tabs/types.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control/as-radio-group.js +0 -2
- 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 +0 -2
- package/build/toggle-group-control/toggle-group-control/component.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control-option-base/component.js +0 -4
- package/build/toggle-group-control/toggle-group-control-option-base/component.js.map +1 -1
- package/build/toolbar/toolbar/toolbar-container.js +0 -1
- package/build/toolbar/toolbar/toolbar-container.js.map +1 -1
- package/build/toolbar/toolbar/types.js.map +1 -1
- package/build/toolbar/toolbar-button/index.js +27 -19
- package/build/toolbar/toolbar-button/index.js.map +1 -1
- package/build/toolbar/toolbar-button/types.js.map +1 -1
- package/build/toolbar/toolbar-context/index.js +0 -1
- package/build/toolbar/toolbar-context/index.js.map +1 -1
- package/build/toolbar/toolbar-item/index.js +1 -1
- package/build/toolbar/toolbar-item/index.js.map +1 -1
- package/build/tooltip/index.js +3 -2
- package/build/tooltip/index.js.map +1 -1
- package/build/tooltip/types.js.map +1 -1
- package/build/unit-control/index.js +3 -3
- 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/hooks/use-update-effect.js +4 -1
- package/build/utils/hooks/use-update-effect.js.map +1 -1
- package/build-module/animation/index.js +0 -1
- package/build-module/animation/index.js.map +1 -1
- package/build-module/autocomplete/autocompleter-ui.js +1 -0
- package/build-module/autocomplete/autocompleter-ui.js.map +1 -1
- package/build-module/autocomplete/index.js.map +1 -1
- package/build-module/base-control/index.js +13 -6
- package/build-module/base-control/index.js.map +1 -1
- package/build-module/border-box-control/border-box-control-visualizer/component.js +0 -4
- package/build-module/border-box-control/border-box-control-visualizer/component.js.map +1 -1
- package/build-module/button/index.js +5 -3
- package/build-module/button/index.js.map +1 -1
- package/build-module/button/types.js.map +1 -1
- package/build-module/combobox-control/index.js +4 -1
- package/build-module/combobox-control/index.js.map +1 -1
- package/build-module/composite/current/index.js +0 -3
- package/build-module/composite/current/index.js.map +1 -1
- package/build-module/custom-select-control-v2/custom-select.js +59 -38
- package/build-module/custom-select-control-v2/custom-select.js.map +1 -1
- package/build-module/custom-select-control-v2/default-component/index.js +0 -1
- package/build-module/custom-select-control-v2/default-component/index.js.map +1 -1
- package/build-module/custom-select-control-v2/item.js +2 -0
- package/build-module/custom-select-control-v2/item.js.map +1 -1
- package/build-module/custom-select-control-v2/legacy-component/index.js +33 -16
- package/build-module/custom-select-control-v2/legacy-component/index.js.map +1 -1
- package/build-module/custom-select-control-v2/styles.js +90 -63
- package/build-module/custom-select-control-v2/styles.js.map +1 -1
- package/build-module/custom-select-control-v2/types.js.map +1 -1
- package/build-module/date-time/date-time/index.js +4 -1
- package/build-module/date-time/date-time/index.js.map +1 -1
- package/build-module/date-time/index.js +2 -1
- package/build-module/date-time/index.js.map +1 -1
- package/build-module/date-time/time/index.js +65 -149
- package/build-module/date-time/time/index.js.map +1 -1
- package/build-module/date-time/time-input/index.js +151 -0
- package/build-module/date-time/time-input/index.js.map +1 -0
- package/build-module/date-time/types.js.map +1 -1
- package/build-module/date-time/utils.js +61 -0
- package/build-module/date-time/utils.js.map +1 -1
- package/build-module/disclosure/index.js +0 -1
- package/build-module/disclosure/index.js.map +1 -1
- package/build-module/divider/component.js +0 -1
- package/build-module/divider/component.js.map +1 -1
- package/build-module/divider/types.js.map +1 -1
- package/build-module/drop-zone/index.js +17 -80
- package/build-module/drop-zone/index.js.map +1 -1
- package/build-module/dropdown-menu/index.js +1 -0
- package/build-module/dropdown-menu/index.js.map +1 -1
- package/build-module/dropdown-menu-v2/index.js +0 -1
- package/build-module/dropdown-menu-v2/index.js.map +1 -1
- package/build-module/dropdown-menu-v2/styles.js +14 -15
- package/build-module/dropdown-menu-v2/styles.js.map +1 -1
- package/build-module/dropdown-menu-v2/types.js.map +1 -1
- package/build-module/font-size-picker/font-size-picker-select.js +1 -1
- package/build-module/font-size-picker/font-size-picker-select.js.map +1 -1
- package/build-module/font-size-picker/index.js +1 -1
- package/build-module/font-size-picker/index.js.map +1 -1
- package/build-module/font-size-picker/utils.js +0 -4
- package/build-module/font-size-picker/utils.js.map +1 -1
- package/build-module/form-token-field/token.js +4 -1
- package/build-module/form-token-field/token.js.map +1 -1
- package/build-module/higher-order/with-spoken-messages/index.js +1 -2
- package/build-module/higher-order/with-spoken-messages/index.js.map +1 -1
- package/build-module/lock-unlock.js +1 -1
- package/build-module/lock-unlock.js.map +1 -1
- package/build-module/menu-items-choice/types.js.map +1 -1
- package/build-module/palette-edit/index.js +31 -39
- package/build-module/palette-edit/index.js.map +1 -1
- package/build-module/palette-edit/types.js.map +1 -1
- package/build-module/popover/index.js +0 -3
- package/build-module/popover/index.js.map +1 -1
- package/build-module/popover/utils.js +0 -1
- package/build-module/popover/utils.js.map +1 -1
- package/build-module/private-apis.js +2 -4
- package/build-module/private-apis.js.map +1 -1
- package/build-module/progress-bar/styles.js +21 -13
- package/build-module/progress-bar/styles.js.map +1 -1
- package/build-module/radio-group/context.js +0 -1
- package/build-module/radio-group/context.js.map +1 -1
- package/build-module/radio-group/index.js +0 -1
- package/build-module/radio-group/index.js.map +1 -1
- package/build-module/radio-group/radio.js +0 -1
- package/build-module/radio-group/radio.js.map +1 -1
- package/build-module/range-control/index.js +4 -1
- package/build-module/range-control/index.js.map +1 -1
- package/build-module/range-control/styles/range-control-styles.js +34 -28
- package/build-module/range-control/styles/range-control-styles.js.map +1 -1
- package/build-module/resizable-box/resize-tooltip/utils.js.map +1 -1
- package/build-module/select-control/index.js +2 -3
- package/build-module/select-control/index.js.map +1 -1
- package/build-module/select-control/styles/select-control-styles.js +12 -7
- package/build-module/select-control/styles/select-control-styles.js.map +1 -1
- package/build-module/tab-panel/index.js +0 -1
- package/build-module/tab-panel/index.js.map +1 -1
- package/build-module/tabs/index.js +0 -1
- package/build-module/tabs/index.js.map +1 -1
- package/build-module/tabs/styles.js +3 -4
- package/build-module/tabs/styles.js.map +1 -1
- package/build-module/tabs/tablist.js +149 -38
- package/build-module/tabs/tablist.js.map +1 -1
- package/build-module/tabs/types.js.map +1 -1
- package/build-module/toggle-group-control/toggle-group-control/as-radio-group.js +0 -1
- 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 +0 -1
- package/build-module/toggle-group-control/toggle-group-control/component.js.map +1 -1
- package/build-module/toggle-group-control/toggle-group-control-option-base/component.js +0 -2
- package/build-module/toggle-group-control/toggle-group-control-option-base/component.js.map +1 -1
- package/build-module/toolbar/toolbar/toolbar-container.js +0 -1
- package/build-module/toolbar/toolbar/toolbar-container.js.map +1 -1
- package/build-module/toolbar/toolbar/types.js.map +1 -1
- package/build-module/toolbar/toolbar-button/index.js +27 -19
- package/build-module/toolbar/toolbar-button/index.js.map +1 -1
- package/build-module/toolbar/toolbar-button/types.js.map +1 -1
- package/build-module/toolbar/toolbar-context/index.js +0 -1
- package/build-module/toolbar/toolbar-context/index.js.map +1 -1
- 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 +3 -2
- package/build-module/tooltip/index.js.map +1 -1
- package/build-module/tooltip/types.js.map +1 -1
- package/build-module/unit-control/index.js +3 -3
- 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/hooks/use-update-effect.js +4 -1
- package/build-module/utils/hooks/use-update-effect.js.map +1 -1
- package/build-style/style-rtl.css +46 -6
- package/build-style/style.css +46 -6
- package/build-types/animation/index.d.ts.map +1 -1
- package/build-types/autocomplete/autocompleter-ui.d.ts.map +1 -1
- package/build-types/autocomplete/index.d.ts.map +1 -1
- package/build-types/base-control/index.d.ts +6 -20
- package/build-types/base-control/index.d.ts.map +1 -1
- package/build-types/base-control/stories/index.story.d.ts.map +1 -1
- package/build-types/border-box-control/border-box-control-visualizer/component.d.ts.map +1 -1
- package/build-types/button/deprecated.d.ts +4 -4
- package/build-types/button/index.d.ts.map +1 -1
- package/build-types/button/stories/e2e/index.story.d.ts.map +1 -1
- package/build-types/button/types.d.ts +27 -10
- package/build-types/button/types.d.ts.map +1 -1
- package/build-types/combobox-control/index.d.ts.map +1 -1
- package/build-types/composite/current/index.d.ts.map +1 -1
- package/build-types/custom-select-control/stories/index.story.d.ts +15 -0
- package/build-types/custom-select-control/stories/index.story.d.ts.map +1 -1
- package/build-types/custom-select-control-v2/custom-select.d.ts +2 -2
- package/build-types/custom-select-control-v2/custom-select.d.ts.map +1 -1
- package/build-types/custom-select-control-v2/default-component/index.d.ts.map +1 -1
- package/build-types/custom-select-control-v2/item.d.ts.map +1 -1
- package/build-types/custom-select-control-v2/legacy-component/index.d.ts.map +1 -1
- package/build-types/custom-select-control-v2/stories/default.story.d.ts +6 -3
- package/build-types/custom-select-control-v2/stories/default.story.d.ts.map +1 -1
- package/build-types/custom-select-control-v2/styles.d.ts +18 -22
- package/build-types/custom-select-control-v2/styles.d.ts.map +1 -1
- package/build-types/custom-select-control-v2/types.d.ts +13 -2
- package/build-types/custom-select-control-v2/types.d.ts.map +1 -1
- package/build-types/date-time/date-time/index.d.ts.map +1 -1
- package/build-types/date-time/index.d.ts +2 -1
- package/build-types/date-time/index.d.ts.map +1 -1
- package/build-types/date-time/stories/time-input.story.d.ts +12 -0
- package/build-types/date-time/stories/time-input.story.d.ts.map +1 -0
- package/build-types/date-time/time/index.d.ts +1 -1
- package/build-types/date-time/time/index.d.ts.map +1 -1
- package/build-types/date-time/time-input/index.d.ts +5 -0
- package/build-types/date-time/time-input/index.d.ts.map +1 -0
- package/build-types/date-time/time-input/test/index.d.ts +2 -0
- package/build-types/date-time/time-input/test/index.d.ts.map +1 -0
- package/build-types/date-time/types.d.ts +54 -0
- package/build-types/date-time/types.d.ts.map +1 -1
- package/build-types/date-time/utils.d.ts +40 -0
- package/build-types/date-time/utils.d.ts.map +1 -1
- package/build-types/disclosure/index.d.ts.map +1 -1
- package/build-types/divider/component.d.ts.map +1 -1
- package/build-types/divider/types.d.ts.map +1 -1
- package/build-types/drop-zone/index.d.ts +3 -0
- package/build-types/drop-zone/index.d.ts.map +1 -1
- package/build-types/dropdown-menu/index.d.ts.map +1 -1
- package/build-types/dropdown-menu-v2/index.d.ts.map +1 -1
- package/build-types/dropdown-menu-v2/styles.d.ts.map +1 -1
- package/build-types/dropdown-menu-v2/types.d.ts.map +1 -1
- package/build-types/font-size-picker/styles.d.ts +1 -1
- package/build-types/font-size-picker/utils.d.ts.map +1 -1
- package/build-types/form-token-field/token.d.ts.map +1 -1
- package/build-types/higher-order/with-spoken-messages/index.d.ts +1 -2
- package/build-types/higher-order/with-spoken-messages/index.d.ts.map +1 -1
- package/build-types/menu-items-choice/types.d.ts +1 -1
- package/build-types/menu-items-choice/types.d.ts.map +1 -1
- package/build-types/navigator/navigator-back-button/component.d.ts +1 -1
- package/build-types/navigator/navigator-back-button/hook.d.ts +1 -1
- package/build-types/navigator/navigator-button/component.d.ts +1 -1
- package/build-types/navigator/navigator-button/hook.d.ts +1 -1
- package/build-types/navigator/navigator-to-parent-button/component.d.ts +1 -1
- package/build-types/palette-edit/index.d.ts.map +1 -1
- package/build-types/palette-edit/types.d.ts +1 -3
- package/build-types/palette-edit/types.d.ts.map +1 -1
- package/build-types/popover/index.d.ts.map +1 -1
- package/build-types/popover/utils.d.ts.map +1 -1
- package/build-types/private-apis.d.ts.map +1 -1
- package/build-types/progress-bar/styles.d.ts.map +1 -1
- package/build-types/radio-group/context.d.ts.map +1 -1
- package/build-types/radio-group/index.d.ts.map +1 -1
- package/build-types/radio-group/radio.d.ts.map +1 -1
- package/build-types/range-control/index.d.ts.map +1 -1
- package/build-types/range-control/styles/range-control-styles.d.ts.map +1 -1
- package/build-types/resizable-box/resize-tooltip/utils.d.ts +2 -2
- package/build-types/resizable-box/resize-tooltip/utils.d.ts.map +1 -1
- package/build-types/select-control/index.d.ts.map +1 -1
- package/build-types/select-control/styles/select-control-styles.d.ts +5 -0
- package/build-types/select-control/styles/select-control-styles.d.ts.map +1 -1
- package/build-types/tab-panel/index.d.ts.map +1 -1
- 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.map +1 -1
- package/build-types/tabs/tablist.d.ts.map +1 -1
- package/build-types/tabs/types.d.ts.map +1 -1
- package/build-types/theme/stories/index.story.d.ts.map +1 -1
- 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.map +1 -1
- package/build-types/toggle-group-control/toggle-group-control-option-base/component.d.ts.map +1 -1
- package/build-types/toolbar/toolbar/toolbar-container.d.ts.map +1 -1
- package/build-types/toolbar/toolbar/types.d.ts +6 -0
- package/build-types/toolbar/toolbar/types.d.ts.map +1 -1
- package/build-types/toolbar/toolbar-button/index.d.ts +3 -96
- package/build-types/toolbar/toolbar-button/index.d.ts.map +1 -1
- package/build-types/toolbar/toolbar-button/types.d.ts +18 -0
- package/build-types/toolbar/toolbar-button/types.d.ts.map +1 -1
- package/build-types/toolbar/toolbar-context/index.d.ts.map +1 -1
- package/build-types/toolbar/toolbar-item/index.d.ts +1 -3
- package/build-types/toolbar/toolbar-item/index.d.ts.map +1 -1
- package/build-types/tooltip/index.d.ts.map +1 -1
- package/build-types/tooltip/types.d.ts +4 -0
- package/build-types/tooltip/types.d.ts.map +1 -1
- package/build-types/unit-control/index.d.ts.map +1 -1
- package/build-types/unit-control/styles/unit-control-styles.d.ts.map +1 -1
- package/build-types/utils/hooks/use-update-effect.d.ts +1 -1
- package/build-types/utils/hooks/use-update-effect.d.ts.map +1 -1
- package/package.json +19 -19
- package/src/animation/index.tsx +0 -1
- package/src/autocomplete/autocompleter-ui.tsx +1 -0
- package/src/autocomplete/index.tsx +0 -1
- package/src/base-control/index.tsx +16 -6
- package/src/base-control/stories/index.story.tsx +0 -1
- package/src/border-box-control/border-box-control-visualizer/component.tsx +0 -5
- package/src/button/README.md +13 -0
- package/src/button/index.tsx +6 -4
- package/src/button/stories/e2e/index.story.tsx +2 -1
- package/src/button/test/index.tsx +17 -2
- package/src/button/types.ts +27 -10
- package/src/combobox-control/index.tsx +2 -0
- package/src/composite/current/index.ts +0 -2
- package/src/custom-select-control/stories/index.story.tsx +32 -3
- package/src/custom-select-control/test/index.js +247 -28
- package/src/custom-select-control-v2/custom-select.tsx +58 -23
- package/src/custom-select-control-v2/default-component/index.tsx +0 -1
- package/src/custom-select-control-v2/item.tsx +5 -1
- package/src/custom-select-control-v2/legacy-component/index.tsx +45 -16
- package/src/custom-select-control-v2/legacy-component/test/index.tsx +261 -43
- package/src/custom-select-control-v2/styles.ts +156 -74
- package/src/custom-select-control-v2/test/index.tsx +35 -5
- package/src/custom-select-control-v2/types.ts +19 -6
- package/src/date-time/README.md +8 -0
- package/src/date-time/date-time/index.tsx +2 -1
- package/src/date-time/index.ts +2 -1
- package/src/date-time/stories/time-input.story.tsx +36 -0
- package/src/date-time/time/index.tsx +77 -194
- package/src/date-time/time/test/index.tsx +61 -0
- package/src/date-time/time-input/index.tsx +196 -0
- package/src/date-time/time-input/test/index.tsx +171 -0
- package/src/date-time/types.ts +63 -0
- package/src/date-time/utils.ts +69 -0
- package/src/dimension-control/test/__snapshots__/index.test.js.snap +116 -96
- package/src/disclosure/index.tsx +0 -1
- package/src/divider/component.tsx +0 -1
- package/src/divider/types.ts +0 -1
- package/src/drop-zone/index.tsx +17 -76
- package/src/drop-zone/style.scss +51 -16
- package/src/dropdown-menu/index.tsx +1 -0
- package/src/dropdown-menu-v2/index.tsx +0 -1
- package/src/dropdown-menu-v2/styles.ts +0 -1
- package/src/dropdown-menu-v2/types.ts +0 -1
- package/src/font-size-picker/font-size-picker-select.tsx +1 -1
- package/src/font-size-picker/index.tsx +1 -1
- package/src/font-size-picker/test/index.tsx +6 -6
- package/src/font-size-picker/utils.ts +0 -5
- package/src/form-token-field/token.tsx +2 -0
- package/src/higher-order/navigate-regions/style.scss +25 -13
- package/src/higher-order/with-spoken-messages/index.tsx +1 -2
- package/src/lock-unlock.js +1 -1
- package/src/menu-items-choice/types.ts +2 -1
- package/src/palette-edit/index.tsx +33 -45
- package/src/palette-edit/test/index.tsx +3 -4
- package/src/palette-edit/types.ts +1 -3
- package/src/popover/index.tsx +0 -2
- package/src/popover/utils.ts +0 -1
- package/src/private-apis.ts +2 -5
- package/src/progress-bar/styles.ts +18 -9
- package/src/radio-group/context.tsx +0 -1
- package/src/radio-group/index.tsx +0 -1
- package/src/radio-group/radio.tsx +0 -1
- package/src/range-control/index.tsx +2 -0
- package/src/range-control/styles/range-control-styles.ts +6 -2
- package/src/resizable-box/resize-tooltip/utils.ts +1 -1
- package/src/select-control/index.tsx +3 -4
- package/src/select-control/styles/select-control-styles.ts +17 -6
- package/src/tab-panel/index.tsx +0 -1
- package/src/tabs/index.tsx +0 -1
- package/src/tabs/stories/index.story.tsx +25 -18
- package/src/tabs/styles.ts +18 -14
- package/src/tabs/tablist.tsx +187 -43
- package/src/tabs/types.ts +0 -1
- package/src/theme/stories/index.story.tsx +2 -0
- package/src/toggle-group-control/toggle-group-control/as-radio-group.tsx +0 -1
- package/src/toggle-group-control/toggle-group-control/component.tsx +0 -2
- package/src/toggle-group-control/toggle-group-control-option-base/component.tsx +0 -2
- package/src/toolbar/toolbar/README.md +9 -0
- package/src/toolbar/toolbar/style.scss +7 -0
- package/src/toolbar/toolbar/toolbar-container.tsx +0 -1
- package/src/toolbar/toolbar/types.ts +6 -0
- package/src/toolbar/toolbar-button/index.tsx +30 -17
- package/src/toolbar/toolbar-button/types.ts +19 -0
- package/src/toolbar/toolbar-context/index.ts +0 -1
- package/src/toolbar/toolbar-item/index.tsx +1 -1
- package/src/tooltip/index.tsx +3 -2
- package/src/tooltip/test/index.tsx +18 -0
- package/src/tooltip/types.ts +4 -0
- package/src/unit-control/index.tsx +3 -2
- package/src/unit-control/styles/unit-control-styles.ts +10 -4
- package/src/utils/hooks/use-update-effect.js +8 -1
- package/tsconfig.tsbuildinfo +1 -1
package/src/disclosure/index.tsx
CHANGED
package/src/divider/types.ts
CHANGED
package/src/drop-zone/index.tsx
CHANGED
|
@@ -10,86 +10,14 @@ import { __ } from '@wordpress/i18n';
|
|
|
10
10
|
import { useState } from '@wordpress/element';
|
|
11
11
|
import { upload, Icon } from '@wordpress/icons';
|
|
12
12
|
import { getFilesFromDataTransfer } from '@wordpress/dom';
|
|
13
|
-
import {
|
|
14
|
-
__experimentalUseDropZone as useDropZone,
|
|
15
|
-
useReducedMotion,
|
|
16
|
-
} from '@wordpress/compose';
|
|
13
|
+
import { __experimentalUseDropZone as useDropZone } from '@wordpress/compose';
|
|
17
14
|
|
|
18
15
|
/**
|
|
19
16
|
* Internal dependencies
|
|
20
17
|
*/
|
|
21
|
-
import {
|
|
22
|
-
__unstableMotion as motion,
|
|
23
|
-
__unstableAnimatePresence as AnimatePresence,
|
|
24
|
-
} from '../animation';
|
|
25
18
|
import type { DropType, DropZoneProps } from './types';
|
|
26
19
|
import type { WordPressComponentProps } from '../context';
|
|
27
20
|
|
|
28
|
-
const backdrop = {
|
|
29
|
-
hidden: { opacity: 0 },
|
|
30
|
-
show: {
|
|
31
|
-
opacity: 1,
|
|
32
|
-
transition: {
|
|
33
|
-
type: 'tween',
|
|
34
|
-
duration: 0.2,
|
|
35
|
-
delay: 0,
|
|
36
|
-
delayChildren: 0.1,
|
|
37
|
-
},
|
|
38
|
-
},
|
|
39
|
-
exit: {
|
|
40
|
-
opacity: 0,
|
|
41
|
-
transition: {
|
|
42
|
-
duration: 0.2,
|
|
43
|
-
delayChildren: 0,
|
|
44
|
-
},
|
|
45
|
-
},
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
const foreground = {
|
|
49
|
-
hidden: { opacity: 0, scale: 0.9 },
|
|
50
|
-
show: {
|
|
51
|
-
opacity: 1,
|
|
52
|
-
scale: 1,
|
|
53
|
-
transition: {
|
|
54
|
-
duration: 0.1,
|
|
55
|
-
},
|
|
56
|
-
},
|
|
57
|
-
exit: { opacity: 0, scale: 0.9 },
|
|
58
|
-
};
|
|
59
|
-
|
|
60
|
-
function DropIndicator( { label }: { label?: string } ) {
|
|
61
|
-
const disableMotion = useReducedMotion();
|
|
62
|
-
const children = (
|
|
63
|
-
<motion.div
|
|
64
|
-
variants={ backdrop }
|
|
65
|
-
initial={ disableMotion ? 'show' : 'hidden' }
|
|
66
|
-
animate="show"
|
|
67
|
-
exit={ disableMotion ? 'show' : 'exit' }
|
|
68
|
-
className="components-drop-zone__content"
|
|
69
|
-
// Without this, when this div is shown,
|
|
70
|
-
// Safari calls a onDropZoneLeave causing a loop because of this bug
|
|
71
|
-
// https://bugs.webkit.org/show_bug.cgi?id=66547
|
|
72
|
-
style={ { pointerEvents: 'none' } }
|
|
73
|
-
>
|
|
74
|
-
<motion.div variants={ foreground }>
|
|
75
|
-
<Icon
|
|
76
|
-
icon={ upload }
|
|
77
|
-
className="components-drop-zone__content-icon"
|
|
78
|
-
/>
|
|
79
|
-
<span className="components-drop-zone__content-text">
|
|
80
|
-
{ label ? label : __( 'Drop files to upload' ) }
|
|
81
|
-
</span>
|
|
82
|
-
</motion.div>
|
|
83
|
-
</motion.div>
|
|
84
|
-
);
|
|
85
|
-
|
|
86
|
-
if ( disableMotion ) {
|
|
87
|
-
return children;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
return <AnimatePresence>{ children }</AnimatePresence>;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
21
|
/**
|
|
94
22
|
* `DropZone` is a component creating a drop zone area taking the full size of its parent element. It supports dropping files, HTML content or any other HTML drop event.
|
|
95
23
|
*
|
|
@@ -135,7 +63,7 @@ export function DropZoneComponent( {
|
|
|
135
63
|
|
|
136
64
|
/**
|
|
137
65
|
* From Windows Chrome 96, the `event.dataTransfer` returns both file object and HTML.
|
|
138
|
-
* The order of the checks is important to
|
|
66
|
+
* The order of the checks is important to recognize the HTML drop.
|
|
139
67
|
*/
|
|
140
68
|
if ( html && onHTMLDrop ) {
|
|
141
69
|
onHTMLDrop( html );
|
|
@@ -152,7 +80,7 @@ export function DropZoneComponent( {
|
|
|
152
80
|
|
|
153
81
|
/**
|
|
154
82
|
* From Windows Chrome 96, the `event.dataTransfer` returns both file object and HTML.
|
|
155
|
-
* The order of the checks is important to
|
|
83
|
+
* The order of the checks is important to recognize the HTML drop.
|
|
156
84
|
*/
|
|
157
85
|
if ( event.dataTransfer?.types.includes( 'text/html' ) ) {
|
|
158
86
|
_type = 'html';
|
|
@@ -181,12 +109,15 @@ export function DropZoneComponent( {
|
|
|
181
109
|
setIsDraggingOverElement( false );
|
|
182
110
|
},
|
|
183
111
|
} );
|
|
112
|
+
|
|
184
113
|
const classes = clsx( 'components-drop-zone', className, {
|
|
185
114
|
'is-active':
|
|
186
115
|
( isDraggingOverDocument || isDraggingOverElement ) &&
|
|
187
116
|
( ( type === 'file' && onFilesDrop ) ||
|
|
188
117
|
( type === 'html' && onHTMLDrop ) ||
|
|
189
118
|
( type === 'default' && onDrop ) ),
|
|
119
|
+
'has-dragged-out': ! isDraggingOverElement,
|
|
120
|
+
// Keeping the following classnames for legacy purposes
|
|
190
121
|
'is-dragging-over-document': isDraggingOverDocument,
|
|
191
122
|
'is-dragging-over-element': isDraggingOverElement,
|
|
192
123
|
[ `is-dragging-${ type }` ]: !! type,
|
|
@@ -194,7 +125,17 @@ export function DropZoneComponent( {
|
|
|
194
125
|
|
|
195
126
|
return (
|
|
196
127
|
<div { ...restProps } ref={ ref } className={ classes }>
|
|
197
|
-
|
|
128
|
+
<div className="components-drop-zone__content">
|
|
129
|
+
<div className="components-drop-zone__content-inner">
|
|
130
|
+
<Icon
|
|
131
|
+
icon={ upload }
|
|
132
|
+
className="components-drop-zone__content-icon"
|
|
133
|
+
/>
|
|
134
|
+
<span className="components-drop-zone__content-text">
|
|
135
|
+
{ label ? label : __( 'Drop files to upload' ) }
|
|
136
|
+
</span>
|
|
137
|
+
</div>
|
|
138
|
+
</div>
|
|
198
139
|
</div>
|
|
199
140
|
);
|
|
200
141
|
}
|
package/src/drop-zone/style.scss
CHANGED
|
@@ -13,23 +13,58 @@
|
|
|
13
13
|
opacity: 1;
|
|
14
14
|
visibility: visible;
|
|
15
15
|
}
|
|
16
|
-
}
|
|
17
16
|
|
|
18
|
-
.components-drop-zone__content {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
17
|
+
.components-drop-zone__content {
|
|
18
|
+
position: absolute;
|
|
19
|
+
top: 0;
|
|
20
|
+
bottom: 0;
|
|
21
|
+
left: 0;
|
|
22
|
+
right: 0;
|
|
23
|
+
height: 100%;
|
|
24
|
+
width: 100%;
|
|
25
|
+
display: flex;
|
|
26
|
+
background-color: $components-color-accent;
|
|
27
|
+
align-items: center;
|
|
28
|
+
justify-content: center;
|
|
29
|
+
z-index: z-index(".components-drop-zone__content");
|
|
30
|
+
text-align: center;
|
|
31
|
+
color: $white;
|
|
32
|
+
opacity: 0;
|
|
33
|
+
|
|
34
|
+
// Without this, when this div is shown,
|
|
35
|
+
// Safari calls a onDropZoneLeave causing a loop because of this bug
|
|
36
|
+
// https://bugs.webkit.org/show_bug.cgi?id=66547
|
|
37
|
+
pointer-events: none;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.components-drop-zone__content-inner {
|
|
41
|
+
opacity: 0;
|
|
42
|
+
transform: scale(0.9);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
&.is-active:not(.has-dragged-out) {
|
|
46
|
+
.components-drop-zone__content {
|
|
47
|
+
opacity: 1;
|
|
48
|
+
|
|
49
|
+
transition: opacity 0.2s ease-in-out;
|
|
50
|
+
@media (prefers-reduced-motion) {
|
|
51
|
+
transition: none;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.components-drop-zone__content-inner {
|
|
56
|
+
opacity: 1;
|
|
57
|
+
transform: scale(1);
|
|
58
|
+
|
|
59
|
+
transition:
|
|
60
|
+
opacity 0.1s ease-in-out 0.1s,
|
|
61
|
+
transform 0.1s ease-in-out 0.1s;
|
|
62
|
+
|
|
63
|
+
@media (prefers-reduced-motion) {
|
|
64
|
+
transition: none;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
33
68
|
}
|
|
34
69
|
|
|
35
70
|
.components-drop-zone__content-icon,
|
|
@@ -6,7 +6,7 @@ import { __, sprintf } from '@wordpress/i18n';
|
|
|
6
6
|
/**
|
|
7
7
|
* Internal dependencies
|
|
8
8
|
*/
|
|
9
|
-
import CustomSelectControl from '../custom-select-control';
|
|
9
|
+
import CustomSelectControl from '../custom-select-control-v2/legacy-component';
|
|
10
10
|
import { parseQuantityAndUnitFromRawValue } from '../unit-control';
|
|
11
11
|
import type {
|
|
12
12
|
FontSizePickerSelectProps,
|
|
@@ -94,7 +94,7 @@ describe( 'FontSizePicker', () => {
|
|
|
94
94
|
const user = userEvent.setup();
|
|
95
95
|
render( <FontSizePicker fontSizes={ fontSizes } /> );
|
|
96
96
|
await user.click(
|
|
97
|
-
screen.getByRole( '
|
|
97
|
+
screen.getByRole( 'combobox', { name: 'Font size' } )
|
|
98
98
|
);
|
|
99
99
|
const options = screen.getAllByRole( 'option' );
|
|
100
100
|
expect( options ).toHaveLength( 8 );
|
|
@@ -148,7 +148,7 @@ describe( 'FontSizePicker', () => {
|
|
|
148
148
|
/>
|
|
149
149
|
);
|
|
150
150
|
await user.click(
|
|
151
|
-
screen.getByRole( '
|
|
151
|
+
screen.getByRole( 'combobox', { name: 'Font size' } )
|
|
152
152
|
);
|
|
153
153
|
await user.click(
|
|
154
154
|
screen.getByRole( 'option', { name: option } )
|
|
@@ -200,7 +200,7 @@ describe( 'FontSizePicker', () => {
|
|
|
200
200
|
const user = userEvent.setup();
|
|
201
201
|
render( <FontSizePicker fontSizes={ fontSizes } /> );
|
|
202
202
|
await user.click(
|
|
203
|
-
screen.getByRole( '
|
|
203
|
+
screen.getByRole( 'combobox', { name: 'Font size' } )
|
|
204
204
|
);
|
|
205
205
|
const options = screen.getAllByRole( 'option' );
|
|
206
206
|
expect( options ).toHaveLength( 8 );
|
|
@@ -225,7 +225,7 @@ describe( 'FontSizePicker', () => {
|
|
|
225
225
|
<FontSizePicker fontSizes={ fontSizes } value={ value } />
|
|
226
226
|
);
|
|
227
227
|
expect(
|
|
228
|
-
screen.getByRole( '
|
|
228
|
+
screen.getByRole( 'combobox', { name: 'Font size' } )
|
|
229
229
|
).toHaveTextContent( option );
|
|
230
230
|
}
|
|
231
231
|
);
|
|
@@ -291,7 +291,7 @@ describe( 'FontSizePicker', () => {
|
|
|
291
291
|
/>
|
|
292
292
|
);
|
|
293
293
|
await user.click(
|
|
294
|
-
screen.getByRole( '
|
|
294
|
+
screen.getByRole( 'combobox', { name: 'Font size' } )
|
|
295
295
|
);
|
|
296
296
|
await user.click(
|
|
297
297
|
screen.getByRole( 'option', { name: option } )
|
|
@@ -509,7 +509,7 @@ describe( 'FontSizePicker', () => {
|
|
|
509
509
|
<FontSizePicker fontSizes={ fontSizes } onChange={ onChange } />
|
|
510
510
|
);
|
|
511
511
|
await user.click(
|
|
512
|
-
screen.getByRole( '
|
|
512
|
+
screen.getByRole( 'combobox', { name: 'Font size' } )
|
|
513
513
|
);
|
|
514
514
|
await user.click(
|
|
515
515
|
screen.getByRole( 'option', { name: 'Custom' } )
|
|
@@ -74,6 +74,8 @@ export default function Token( {
|
|
|
74
74
|
className="components-form-token-field__remove-token"
|
|
75
75
|
icon={ closeSmall }
|
|
76
76
|
onClick={ ! disabled ? onClick : undefined }
|
|
77
|
+
// Disable reason: Even when FormTokenField itself is accessibly disabled, token reset buttons shouldn't be in the tab sequence.
|
|
78
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
77
79
|
disabled={ disabled }
|
|
78
80
|
label={ messages.remove }
|
|
79
81
|
aria-describedby={ `components-form-token-field__token-text-${ instanceId }` }
|
|
@@ -1,22 +1,35 @@
|
|
|
1
1
|
// Allow the position to be easily overridden to e.g. fixed.
|
|
2
|
+
|
|
3
|
+
@mixin region-selection-outline {
|
|
4
|
+
outline: 4px solid $components-color-accent;
|
|
5
|
+
outline-offset: -4px;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
@mixin region-selection-focus {
|
|
9
|
+
position: absolute;
|
|
10
|
+
top: 0;
|
|
11
|
+
left: 0;
|
|
12
|
+
right: 0;
|
|
13
|
+
bottom: 0;
|
|
14
|
+
content: "";
|
|
15
|
+
pointer-events: none;
|
|
16
|
+
@include region-selection-outline;
|
|
17
|
+
z-index: z-index(".is-focusing-regions {region} :focus::after");
|
|
18
|
+
}
|
|
19
|
+
|
|
2
20
|
[role="region"] {
|
|
3
21
|
position: relative;
|
|
22
|
+
|
|
23
|
+
// Handles the focus when we programatically send focus to this region
|
|
24
|
+
&.interface-interface-skeleton__content:focus-visible::after {
|
|
25
|
+
@include region-selection-focus;
|
|
26
|
+
}
|
|
4
27
|
}
|
|
5
28
|
|
|
6
29
|
.is-focusing-regions {
|
|
7
30
|
[role="region"]:focus::after {
|
|
8
|
-
|
|
9
|
-
top: 0;
|
|
10
|
-
left: 0;
|
|
11
|
-
right: 0;
|
|
12
|
-
bottom: 0;
|
|
13
|
-
content: "";
|
|
14
|
-
pointer-events: none;
|
|
15
|
-
outline: 4px solid $components-color-accent;
|
|
16
|
-
outline-offset: -4px;
|
|
17
|
-
z-index: z-index(".is-focusing-regions {region} :focus::after");
|
|
31
|
+
@include region-selection-focus;
|
|
18
32
|
}
|
|
19
|
-
|
|
20
33
|
// Fixes for edge cases.
|
|
21
34
|
// Some of the regions are currently used for layout purposes as 'interface skeleton'
|
|
22
35
|
// items. When they're absolutely positioned or when they contain absolutely
|
|
@@ -33,7 +46,6 @@
|
|
|
33
46
|
.interface-interface-skeleton__actions .editor-layout__toggle-publish-panel,
|
|
34
47
|
.interface-interface-skeleton__actions .editor-layout__toggle-entities-saved-states-panel,
|
|
35
48
|
.editor-post-publish-panel {
|
|
36
|
-
|
|
37
|
-
outline-offset: -4px;
|
|
49
|
+
@include region-selection-outline;
|
|
38
50
|
}
|
|
39
51
|
}
|
|
@@ -7,8 +7,7 @@ import { speak } from '@wordpress/a11y';
|
|
|
7
7
|
/** @typedef {import('react').ComponentType} ComponentType */
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
|
-
* A Higher Order Component used to
|
|
11
|
-
* functions.
|
|
10
|
+
* A Higher Order Component used to provide speak and debounced speak functions.
|
|
12
11
|
*
|
|
13
12
|
* @see https://developer.wordpress.org/block-editor/packages/packages-a11y/#speak
|
|
14
13
|
*
|
package/src/lock-unlock.js
CHANGED
|
@@ -5,6 +5,6 @@ import { __dangerousOptInToUnstableAPIsOnlyForCoreModules } from '@wordpress/pri
|
|
|
5
5
|
|
|
6
6
|
export const { lock, unlock } =
|
|
7
7
|
__dangerousOptInToUnstableAPIsOnlyForCoreModules(
|
|
8
|
-
'I
|
|
8
|
+
'I acknowledge private features are not for use in themes or plugins and doing so will break in the next version of WordPress.',
|
|
9
9
|
'@wordpress/components'
|
|
10
10
|
);
|
|
@@ -20,7 +20,8 @@ export type MenuItemsChoiceProps = {
|
|
|
20
20
|
* Callback function to be called with the selected choice when user
|
|
21
21
|
* selects a new choice.
|
|
22
22
|
*/
|
|
23
|
-
onSelect( value: string )
|
|
23
|
+
onSelect: ( value: string ) => void;
|
|
24
|
+
|
|
24
25
|
/**
|
|
25
26
|
* Callback function to be called with a choice when user
|
|
26
27
|
* hovers over a new choice (will be empty on mouse leave).
|
|
@@ -15,10 +15,7 @@ import {
|
|
|
15
15
|
} from '@wordpress/element';
|
|
16
16
|
import { __, sprintf } from '@wordpress/i18n';
|
|
17
17
|
import { lineSolid, moreVertical, plus } from '@wordpress/icons';
|
|
18
|
-
import {
|
|
19
|
-
__experimentalUseFocusOutside as useFocusOutside,
|
|
20
|
-
useDebounce,
|
|
21
|
-
} from '@wordpress/compose';
|
|
18
|
+
import { useDebounce } from '@wordpress/compose';
|
|
22
19
|
|
|
23
20
|
/**
|
|
24
21
|
* Internal dependencies
|
|
@@ -174,16 +171,13 @@ function Option< T extends Color | Gradient >( {
|
|
|
174
171
|
canOnlyChangeValues,
|
|
175
172
|
element,
|
|
176
173
|
onChange,
|
|
177
|
-
isEditing,
|
|
178
|
-
onStartEditing,
|
|
179
174
|
onRemove,
|
|
180
|
-
onStopEditing,
|
|
181
175
|
popoverProps: receivedPopoverProps,
|
|
182
176
|
slugPrefix,
|
|
183
177
|
isGradient,
|
|
184
178
|
}: OptionProps< T > ) {
|
|
185
|
-
const focusOutsideProps = useFocusOutside( onStopEditing );
|
|
186
179
|
const value = isGradient ? element.gradient : element.color;
|
|
180
|
+
const [ isEditingColor, setIsEditingColor ] = useState( false );
|
|
187
181
|
|
|
188
182
|
// Use internal state instead of a ref to make sure that the component
|
|
189
183
|
// re-renders when the popover's anchor updates.
|
|
@@ -198,26 +192,23 @@ function Option< T extends Color | Gradient >( {
|
|
|
198
192
|
);
|
|
199
193
|
|
|
200
194
|
return (
|
|
201
|
-
<PaletteItem
|
|
202
|
-
className={ isEditing ? 'is-selected' : undefined }
|
|
203
|
-
as={ isEditing ? 'div' : 'button' }
|
|
204
|
-
onClick={ onStartEditing }
|
|
205
|
-
aria-label={
|
|
206
|
-
isEditing
|
|
207
|
-
? undefined
|
|
208
|
-
: sprintf(
|
|
209
|
-
// translators: %s is a color or gradient name, e.g. "Red".
|
|
210
|
-
__( 'Edit: %s' ),
|
|
211
|
-
element.name.trim().length ? element.name : value
|
|
212
|
-
)
|
|
213
|
-
}
|
|
214
|
-
ref={ setPopoverAnchor }
|
|
215
|
-
{ ...( isEditing ? { ...focusOutsideProps } : {} ) }
|
|
216
|
-
>
|
|
195
|
+
<PaletteItem ref={ setPopoverAnchor } as="div">
|
|
217
196
|
<HStack justify="flex-start">
|
|
218
|
-
<
|
|
197
|
+
<Button
|
|
198
|
+
onClick={ () => {
|
|
199
|
+
setIsEditingColor( true );
|
|
200
|
+
} }
|
|
201
|
+
aria-label={ sprintf(
|
|
202
|
+
// translators: %s is a color or gradient name, e.g. "Red".
|
|
203
|
+
__( 'Edit: %s' ),
|
|
204
|
+
element.name.trim().length ? element.name : value
|
|
205
|
+
) }
|
|
206
|
+
style={ { padding: 0 } }
|
|
207
|
+
>
|
|
208
|
+
<IndicatorStyled colorValue={ value } />
|
|
209
|
+
</Button>
|
|
219
210
|
<FlexItem>
|
|
220
|
-
{
|
|
211
|
+
{ ! canOnlyChangeValues ? (
|
|
221
212
|
<NameInput
|
|
222
213
|
label={
|
|
223
214
|
isGradient
|
|
@@ -244,23 +235,30 @@ function Option< T extends Color | Gradient >( {
|
|
|
244
235
|
</NameContainer>
|
|
245
236
|
) }
|
|
246
237
|
</FlexItem>
|
|
247
|
-
{
|
|
238
|
+
{ ! canOnlyChangeValues && (
|
|
248
239
|
<FlexItem>
|
|
249
240
|
<RemoveButton
|
|
250
241
|
size="small"
|
|
251
242
|
icon={ lineSolid }
|
|
252
|
-
label={
|
|
243
|
+
label={ sprintf(
|
|
244
|
+
// translators: %s is a color or gradient name, e.g. "Red".
|
|
245
|
+
__( 'Remove color: %s' ),
|
|
246
|
+
element.name.trim().length
|
|
247
|
+
? element.name
|
|
248
|
+
: value
|
|
249
|
+
) }
|
|
253
250
|
onClick={ onRemove }
|
|
254
251
|
/>
|
|
255
252
|
</FlexItem>
|
|
256
253
|
) }
|
|
257
254
|
</HStack>
|
|
258
|
-
{
|
|
255
|
+
{ isEditingColor && (
|
|
259
256
|
<ColorPickerPopover
|
|
260
257
|
isGradient={ isGradient }
|
|
261
258
|
onChange={ onChange }
|
|
262
259
|
element={ element }
|
|
263
260
|
popoverProps={ popoverProps }
|
|
261
|
+
onClose={ () => setIsEditingColor( false ) }
|
|
264
262
|
/>
|
|
265
263
|
) }
|
|
266
264
|
</PaletteItem>
|
|
@@ -270,12 +268,11 @@ function Option< T extends Color | Gradient >( {
|
|
|
270
268
|
function PaletteEditListView< T extends Color | Gradient >( {
|
|
271
269
|
elements,
|
|
272
270
|
onChange,
|
|
273
|
-
editingElement,
|
|
274
|
-
setEditingElement,
|
|
275
271
|
canOnlyChangeValues,
|
|
276
272
|
slugPrefix,
|
|
277
273
|
isGradient,
|
|
278
274
|
popoverProps,
|
|
275
|
+
addColorRef,
|
|
279
276
|
}: PaletteEditListViewProps< T > ) {
|
|
280
277
|
// When unmounting the component if there are empty elements (the user did not complete the insertion) clean them.
|
|
281
278
|
const elementsReference = useRef< typeof elements >();
|
|
@@ -294,11 +291,6 @@ function PaletteEditListView< T extends Color | Gradient >( {
|
|
|
294
291
|
canOnlyChangeValues={ canOnlyChangeValues }
|
|
295
292
|
key={ index }
|
|
296
293
|
element={ element }
|
|
297
|
-
onStartEditing={ () => {
|
|
298
|
-
if ( editingElement !== index ) {
|
|
299
|
-
setEditingElement( index );
|
|
300
|
-
}
|
|
301
|
-
} }
|
|
302
294
|
onChange={ ( newElement ) => {
|
|
303
295
|
debounceOnChange(
|
|
304
296
|
elements.map(
|
|
@@ -312,7 +304,6 @@ function PaletteEditListView< T extends Color | Gradient >( {
|
|
|
312
304
|
);
|
|
313
305
|
} }
|
|
314
306
|
onRemove={ () => {
|
|
315
|
-
setEditingElement( null );
|
|
316
307
|
const newElements = elements.filter(
|
|
317
308
|
( _currentElement, currentIndex ) => {
|
|
318
309
|
if ( currentIndex === index ) {
|
|
@@ -324,12 +315,7 @@ function PaletteEditListView< T extends Color | Gradient >( {
|
|
|
324
315
|
onChange(
|
|
325
316
|
newElements.length ? newElements : undefined
|
|
326
317
|
);
|
|
327
|
-
|
|
328
|
-
isEditing={ index === editingElement }
|
|
329
|
-
onStopEditing={ () => {
|
|
330
|
-
if ( index === editingElement ) {
|
|
331
|
-
setEditingElement( null );
|
|
332
|
-
}
|
|
318
|
+
addColorRef.current?.focus();
|
|
333
319
|
} }
|
|
334
320
|
slugPrefix={ slugPrefix }
|
|
335
321
|
popoverProps={ popoverProps }
|
|
@@ -408,6 +394,8 @@ export function PaletteEdit( {
|
|
|
408
394
|
[ isGradient, elements ]
|
|
409
395
|
);
|
|
410
396
|
|
|
397
|
+
const addColorRef = useRef< HTMLButtonElement | null >( null );
|
|
398
|
+
|
|
411
399
|
return (
|
|
412
400
|
<PaletteEditStyles>
|
|
413
401
|
<HStack>
|
|
@@ -428,6 +416,7 @@ export function PaletteEdit( {
|
|
|
428
416
|
) }
|
|
429
417
|
{ ! canOnlyChangeValues && (
|
|
430
418
|
<Button
|
|
419
|
+
ref={ addColorRef }
|
|
431
420
|
size="small"
|
|
432
421
|
isPressed={ isAdding }
|
|
433
422
|
icon={ plus }
|
|
@@ -551,11 +540,10 @@ export function PaletteEdit( {
|
|
|
551
540
|
elements={ elements }
|
|
552
541
|
// @ts-expect-error TODO: Don't know how to resolve
|
|
553
542
|
onChange={ onChange }
|
|
554
|
-
editingElement={ editingElement }
|
|
555
|
-
setEditingElement={ setEditingElement }
|
|
556
543
|
slugPrefix={ slugPrefix }
|
|
557
544
|
isGradient={ isGradient }
|
|
558
545
|
popoverProps={ popoverProps }
|
|
546
|
+
addColorRef={ addColorRef }
|
|
559
547
|
/>
|
|
560
548
|
) }
|
|
561
549
|
{ ! isEditing && editingElement !== null && (
|
|
@@ -16,6 +16,7 @@ async function clearInput( input: HTMLInputElement ) {
|
|
|
16
16
|
await click( input );
|
|
17
17
|
|
|
18
18
|
// Press backspace as many times as the input's current value
|
|
19
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
19
20
|
for ( const _ of Array( input.value.length ) ) {
|
|
20
21
|
await press.Backspace();
|
|
21
22
|
}
|
|
@@ -306,7 +307,7 @@ describe( 'PaletteEdit', () => {
|
|
|
306
307
|
await click( screen.getByRole( 'button', { name: 'Edit: Primary' } ) );
|
|
307
308
|
await click(
|
|
308
309
|
screen.getByRole( 'button', {
|
|
309
|
-
name: 'Remove color',
|
|
310
|
+
name: 'Remove color: Primary',
|
|
310
311
|
} )
|
|
311
312
|
);
|
|
312
313
|
|
|
@@ -337,9 +338,7 @@ describe( 'PaletteEdit', () => {
|
|
|
337
338
|
} )
|
|
338
339
|
);
|
|
339
340
|
await click( screen.getByRole( 'button', { name: 'Edit: Primary' } ) );
|
|
340
|
-
const nameInput = screen.
|
|
341
|
-
name: 'Color name',
|
|
342
|
-
} );
|
|
341
|
+
const nameInput = screen.getByDisplayValue( 'Primary' );
|
|
343
342
|
|
|
344
343
|
await clearInput( nameInput as HTMLInputElement );
|
|
345
344
|
|