@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
|
@@ -15,6 +15,10 @@ export type TooltipProps = {
|
|
|
15
15
|
* **Note**: Accepts only one child element.
|
|
16
16
|
*/
|
|
17
17
|
children: React.ReactElement;
|
|
18
|
+
/**
|
|
19
|
+
* Custom class name for the tooltip.
|
|
20
|
+
*/
|
|
21
|
+
className?: string;
|
|
18
22
|
/**
|
|
19
23
|
* Option to hide the tooltip when the anchor is clicked.
|
|
20
24
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tooltip/types.ts"],"names":[],"mappings":";AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD;;GAEG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,MAAM,MAAM,YAAY,GAAG;IAC1B;;;;OAIG;IACH,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC;IAC7B;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,EAAE,YAAY,CAAE,UAAU,CAAE,CAAC;IACtC;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,aAAa,CAAE,UAAU,CAAE,CAAC;IACvC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACpC,iBAAiB,EAAE,OAAO,CAAC;CAC3B,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tooltip/types.ts"],"names":[],"mappings":";AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD;;GAEG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,MAAM,MAAM,YAAY,GAAG;IAC1B;;;;OAIG;IACH,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC;IAC7B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,EAAE,YAAY,CAAE,UAAU,CAAE,CAAC;IACtC;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,aAAa,CAAE,UAAU,CAAE,CAAC;IACvC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACpC,iBAAiB,EAAE,OAAO,CAAC;CAC3B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/unit-control/index.tsx"],"names":[],"mappings":";AA2BA,OAAO,KAAK,EAAoB,2BAA2B,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/unit-control/index.tsx"],"names":[],"mappings":";AA2BA,OAAO,KAAK,EAAoB,2BAA2B,EAAE,MAAM,SAAS,CAAC;AAkN7E;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,WAAW;;;;;;;;8kLAAuC,CAAC;AAEhE,OAAO,EAAE,gCAAgC,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC3E,eAAe,WAAW,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unit-control-styles.d.ts","sourceRoot":"","sources":["../../../src/unit-control/styles/unit-control-styles.ts"],"names":[],"mappings":";AAWA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAK3C,KAAK,WAAW,GAAG;IAClB,UAAU,EAAE,UAAU,CAAC;CACvB,CAAC;AAKF,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;UAWtB,CAAC;
|
|
1
|
+
{"version":3,"file":"unit-control-styles.d.ts","sourceRoot":"","sources":["../../../src/unit-control/styles/unit-control-styles.ts"],"names":[],"mappings":";AAWA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAK3C,KAAK,WAAW,GAAG;IAClB,UAAU,EAAE,UAAU,CAAC;CACvB,CAAC;AAKF,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;UAWtB,CAAC;AA0CF,eAAO,MAAM,SAAS;;;uHAQrB,CAAC;AAgDF,eAAO,MAAM,UAAU;;;mIAqBtB,CAAC"}
|
|
@@ -2,7 +2,7 @@ export default useUpdateEffect;
|
|
|
2
2
|
/**
|
|
3
3
|
* A `React.useEffect` that will not run on the first render.
|
|
4
4
|
* Source:
|
|
5
|
-
* https://github.com/ariakit/ariakit/blob/
|
|
5
|
+
* https://github.com/ariakit/ariakit/blob/main/packages/ariakit-react-core/src/utils/hooks.ts
|
|
6
6
|
*
|
|
7
7
|
* @param {import('react').EffectCallback} effect
|
|
8
8
|
* @param {import('react').DependencyList} deps
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-update-effect.d.ts","sourceRoot":"","sources":["../../../src/utils/hooks/use-update-effect.js"],"names":[],"mappings":";AAKA;;;;;;;GAOG;AACH,yCAHW,OAAO,OAAO,EAAE,cAAc,QAC9B,OAAO,OAAO,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"use-update-effect.d.ts","sourceRoot":"","sources":["../../../src/utils/hooks/use-update-effect.js"],"names":[],"mappings":";AAKA;;;;;;;GAOG;AACH,yCAHW,OAAO,OAAO,EAAE,cAAc,QAC9B,OAAO,OAAO,EAAE,cAAc,QAuBxC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wordpress/components",
|
|
3
|
-
"version": "28.
|
|
3
|
+
"version": "28.3.0",
|
|
4
4
|
"description": "UI components for WordPress.",
|
|
5
5
|
"author": "The WordPress Contributors",
|
|
6
6
|
"license": "GPL-2.0-or-later",
|
|
@@ -43,23 +43,23 @@
|
|
|
43
43
|
"@types/gradient-parser": "0.1.3",
|
|
44
44
|
"@types/highlight-words-core": "1.2.1",
|
|
45
45
|
"@use-gesture/react": "^10.3.1",
|
|
46
|
-
"@wordpress/a11y": "^4.
|
|
47
|
-
"@wordpress/compose": "^7.
|
|
48
|
-
"@wordpress/date": "^5.
|
|
49
|
-
"@wordpress/deprecated": "^4.
|
|
50
|
-
"@wordpress/dom": "^4.
|
|
51
|
-
"@wordpress/element": "^6.
|
|
52
|
-
"@wordpress/escape-html": "^3.
|
|
53
|
-
"@wordpress/hooks": "^4.
|
|
54
|
-
"@wordpress/html-entities": "^4.
|
|
55
|
-
"@wordpress/i18n": "^5.
|
|
56
|
-
"@wordpress/icons": "^10.
|
|
57
|
-
"@wordpress/is-shallow-equal": "^5.
|
|
58
|
-
"@wordpress/keycodes": "^4.
|
|
59
|
-
"@wordpress/primitives": "^4.
|
|
60
|
-
"@wordpress/private-apis": "^1.
|
|
61
|
-
"@wordpress/rich-text": "^7.
|
|
62
|
-
"@wordpress/warning": "^3.
|
|
46
|
+
"@wordpress/a11y": "^4.3.0",
|
|
47
|
+
"@wordpress/compose": "^7.3.0",
|
|
48
|
+
"@wordpress/date": "^5.3.0",
|
|
49
|
+
"@wordpress/deprecated": "^4.3.0",
|
|
50
|
+
"@wordpress/dom": "^4.3.0",
|
|
51
|
+
"@wordpress/element": "^6.3.0",
|
|
52
|
+
"@wordpress/escape-html": "^3.3.0",
|
|
53
|
+
"@wordpress/hooks": "^4.3.0",
|
|
54
|
+
"@wordpress/html-entities": "^4.3.0",
|
|
55
|
+
"@wordpress/i18n": "^5.3.0",
|
|
56
|
+
"@wordpress/icons": "^10.3.0",
|
|
57
|
+
"@wordpress/is-shallow-equal": "^5.3.0",
|
|
58
|
+
"@wordpress/keycodes": "^4.3.0",
|
|
59
|
+
"@wordpress/primitives": "^4.3.0",
|
|
60
|
+
"@wordpress/private-apis": "^1.3.0",
|
|
61
|
+
"@wordpress/rich-text": "^7.3.0",
|
|
62
|
+
"@wordpress/warning": "^3.3.0",
|
|
63
63
|
"change-case": "^4.1.2",
|
|
64
64
|
"clsx": "^2.1.1",
|
|
65
65
|
"colord": "^2.7.0",
|
|
@@ -86,5 +86,5 @@
|
|
|
86
86
|
"publishConfig": {
|
|
87
87
|
"access": "public"
|
|
88
88
|
},
|
|
89
|
-
"gitHead": "
|
|
89
|
+
"gitHead": "122867d355ca4edc63d3a3bbd9411d3a2e1458df"
|
|
90
90
|
}
|
package/src/animation/index.tsx
CHANGED
|
@@ -58,6 +58,7 @@ function ListBox( {
|
|
|
58
58
|
id={ `components-autocomplete-item-${ instanceId }-${ option.key }` }
|
|
59
59
|
role="option"
|
|
60
60
|
aria-selected={ index === selectedIndex }
|
|
61
|
+
accessibleWhenDisabled
|
|
61
62
|
disabled={ option.isDisabled }
|
|
62
63
|
className={ clsx(
|
|
63
64
|
'components-autocomplete__result',
|
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
4
|
import clsx from 'clsx';
|
|
5
|
+
import type { ForwardedRef } from 'react';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* WordPress dependencies
|
|
9
|
+
*/
|
|
10
|
+
import { forwardRef } from '@wordpress/element';
|
|
5
11
|
|
|
6
12
|
/**
|
|
7
13
|
* Internal dependencies
|
|
@@ -116,14 +122,16 @@ const UnconnectedBaseControl = (
|
|
|
116
122
|
* </BaseControl>
|
|
117
123
|
* );
|
|
118
124
|
*/
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
125
|
+
const UnforwardedVisualLabel = (
|
|
126
|
+
props: WordPressComponentProps< BaseControlVisualLabelProps, 'span' >,
|
|
127
|
+
ref: ForwardedRef< any >
|
|
128
|
+
) => {
|
|
129
|
+
const { className, children, ...restProps } = props;
|
|
130
|
+
|
|
124
131
|
return (
|
|
125
132
|
<StyledVisualLabel
|
|
126
|
-
{
|
|
133
|
+
ref={ ref }
|
|
134
|
+
{ ...restProps }
|
|
127
135
|
className={ clsx( 'components-base-control__label', className ) }
|
|
128
136
|
>
|
|
129
137
|
{ children }
|
|
@@ -131,6 +139,8 @@ export const VisualLabel = ( {
|
|
|
131
139
|
);
|
|
132
140
|
};
|
|
133
141
|
|
|
142
|
+
export const VisualLabel = forwardRef( UnforwardedVisualLabel );
|
|
143
|
+
|
|
134
144
|
export const BaseControl = Object.assign(
|
|
135
145
|
contextConnectWithoutRef( UnconnectedBaseControl, 'BaseControl' ),
|
|
136
146
|
{ VisualLabel }
|
|
@@ -55,7 +55,6 @@ WithHelpText.args = {
|
|
|
55
55
|
* otherwise use if the `label` prop was passed.
|
|
56
56
|
*/
|
|
57
57
|
export const WithVisualLabel: StoryFn< typeof BaseControl > = ( props ) => {
|
|
58
|
-
// @ts-expect-error - Unclear how to fix, see also https://github.com/WordPress/gutenberg/pull/39468#discussion_r827150516
|
|
59
58
|
BaseControl.VisualLabel.displayName = 'BaseControl.VisualLabel';
|
|
60
59
|
|
|
61
60
|
return (
|
package/src/button/README.md
CHANGED
|
@@ -115,6 +115,17 @@ The presence of a `href` prop determines whether an `anchor` element is rendered
|
|
|
115
115
|
|
|
116
116
|
Props not included in this set will be applied to the `a` or `button` element.
|
|
117
117
|
|
|
118
|
+
#### `accessibleWhenDisabled`: `boolean`
|
|
119
|
+
|
|
120
|
+
Whether to keep the button focusable when disabled.
|
|
121
|
+
|
|
122
|
+
In most cases, it is recommended to set this to `true`. Disabling a control without maintaining focusability can cause accessibility issues, by hiding their presence from screen reader users, or by preventing focus from returning to a trigger element.
|
|
123
|
+
|
|
124
|
+
Learn more about the [focusability of disabled controls](https://www.w3.org/WAI/ARIA/apg/practices/keyboard-interface/#focusabilityofdisabledcontrols) in the WAI-ARIA Authoring Practices Guide.
|
|
125
|
+
|
|
126
|
+
- Required: No
|
|
127
|
+
- Default: `false`
|
|
128
|
+
|
|
118
129
|
#### `children`: `ReactNode`
|
|
119
130
|
|
|
120
131
|
The button's children.
|
|
@@ -137,6 +148,8 @@ An accessible description for the button.
|
|
|
137
148
|
|
|
138
149
|
Whether the button is disabled. If `true`, this will force a `button` element to be rendered, even when an `href` is given.
|
|
139
150
|
|
|
151
|
+
In most cases, it is recommended to also set the `accessibleWhenDisabled` prop to `true`.
|
|
152
|
+
|
|
140
153
|
- Required: No
|
|
141
154
|
|
|
142
155
|
#### `href`: `string`
|
package/src/button/index.tsx
CHANGED
|
@@ -29,6 +29,7 @@ import { positionToPlacement } from '../popover/utils';
|
|
|
29
29
|
const disabledEventsOnDisabledButton = [ 'onMouseDown', 'onClick' ] as const;
|
|
30
30
|
|
|
31
31
|
function useDeprecatedProps( {
|
|
32
|
+
__experimentalIsFocusable,
|
|
32
33
|
isDefault,
|
|
33
34
|
isPrimary,
|
|
34
35
|
isSecondary,
|
|
@@ -43,7 +44,8 @@ function useDeprecatedProps( {
|
|
|
43
44
|
let computedSize = size;
|
|
44
45
|
let computedVariant = variant;
|
|
45
46
|
|
|
46
|
-
const newProps
|
|
47
|
+
const newProps = {
|
|
48
|
+
accessibleWhenDisabled: __experimentalIsFocusable,
|
|
47
49
|
// @todo Mark `isPressed` as deprecated
|
|
48
50
|
'aria-pressed': isPressed,
|
|
49
51
|
};
|
|
@@ -91,6 +93,7 @@ export function UnforwardedButton(
|
|
|
91
93
|
) {
|
|
92
94
|
const {
|
|
93
95
|
__next40pxDefaultSize,
|
|
96
|
+
accessibleWhenDisabled,
|
|
94
97
|
isBusy,
|
|
95
98
|
isDestructive,
|
|
96
99
|
className,
|
|
@@ -106,7 +109,6 @@ export function UnforwardedButton(
|
|
|
106
109
|
size = 'default',
|
|
107
110
|
text,
|
|
108
111
|
variant,
|
|
109
|
-
__experimentalIsFocusable: isFocusable,
|
|
110
112
|
describedBy,
|
|
111
113
|
...buttonOrAnchorProps
|
|
112
114
|
} = useDeprecatedProps( props );
|
|
@@ -159,7 +161,7 @@ export function UnforwardedButton(
|
|
|
159
161
|
'has-icon': !! icon,
|
|
160
162
|
} );
|
|
161
163
|
|
|
162
|
-
const trulyDisabled = disabled && !
|
|
164
|
+
const trulyDisabled = disabled && ! accessibleWhenDisabled;
|
|
163
165
|
const Tag = href !== undefined && ! trulyDisabled ? 'a' : 'button';
|
|
164
166
|
const buttonProps: ComponentPropsWithoutRef< 'button' > =
|
|
165
167
|
Tag === 'button'
|
|
@@ -177,7 +179,7 @@ export function UnforwardedButton(
|
|
|
177
179
|
const disableEventProps: {
|
|
178
180
|
[ key: string ]: ( event: MouseEvent ) => void;
|
|
179
181
|
} = {};
|
|
180
|
-
if ( disabled &&
|
|
182
|
+
if ( disabled && accessibleWhenDisabled ) {
|
|
181
183
|
// In this case, the button will be disabled, but still focusable and
|
|
182
184
|
// perceivable by screen reader users.
|
|
183
185
|
buttonProps[ 'aria-disabled' ] = true;
|
|
@@ -39,12 +39,13 @@ export const VariantStates: StoryFn< typeof Button > = (
|
|
|
39
39
|
key={ variant ?? 'undefined' }
|
|
40
40
|
>
|
|
41
41
|
<Button { ...props } variant={ variant } />
|
|
42
|
+
{ /* eslint-disable-next-line no-restricted-syntax */ }
|
|
42
43
|
<Button { ...props } variant={ variant } disabled />
|
|
43
44
|
<Button
|
|
44
45
|
{ ...props }
|
|
45
46
|
variant={ variant }
|
|
46
47
|
disabled
|
|
47
|
-
|
|
48
|
+
accessibleWhenDisabled
|
|
48
49
|
/>
|
|
49
50
|
<Button { ...props } variant={ variant } isBusy />
|
|
50
51
|
<Button { ...props } variant={ variant } isDestructive />
|
|
@@ -235,13 +235,14 @@ describe( 'Button', () => {
|
|
|
235
235
|
} );
|
|
236
236
|
|
|
237
237
|
it( 'should add a disabled prop to the button', () => {
|
|
238
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
238
239
|
render( <Button disabled /> );
|
|
239
240
|
|
|
240
241
|
expect( screen.getByRole( 'button' ) ).toBeDisabled();
|
|
241
242
|
} );
|
|
242
243
|
|
|
243
244
|
it( 'should add only aria-disabled attribute when disabled and isFocusable are true', () => {
|
|
244
|
-
render( <Button disabled
|
|
245
|
+
render( <Button disabled accessibleWhenDisabled /> );
|
|
245
246
|
const button = screen.getByRole( 'button' );
|
|
246
247
|
|
|
247
248
|
expect( button ).toBeEnabled();
|
|
@@ -536,6 +537,7 @@ describe( 'Button', () => {
|
|
|
536
537
|
|
|
537
538
|
it( 'should become a button again when disabled is supplied', () => {
|
|
538
539
|
// @ts-expect-error - a button should not have `href`
|
|
540
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
539
541
|
render( <Button href="https://wordpress.org/" disabled /> );
|
|
540
542
|
|
|
541
543
|
expect( screen.getByRole( 'button' ) ).toBeVisible();
|
|
@@ -617,6 +619,15 @@ describe( 'Button', () => {
|
|
|
617
619
|
'mixed'
|
|
618
620
|
);
|
|
619
621
|
} );
|
|
622
|
+
|
|
623
|
+
it( 'should not break when the legacy __experimentalIsFocusable prop is passed', () => {
|
|
624
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
625
|
+
render( <Button disabled __experimentalIsFocusable /> );
|
|
626
|
+
const button = screen.getByRole( 'button' );
|
|
627
|
+
|
|
628
|
+
expect( button ).toBeEnabled();
|
|
629
|
+
expect( button ).toHaveAttribute( 'aria-disabled' );
|
|
630
|
+
} );
|
|
620
631
|
} );
|
|
621
632
|
|
|
622
633
|
describe( 'static typing', () => {
|
|
@@ -624,15 +635,19 @@ describe( 'Button', () => {
|
|
|
624
635
|
<Button href="foo" />
|
|
625
636
|
{ /* @ts-expect-error - `target` requires `href` */ }
|
|
626
637
|
<Button target="foo" />
|
|
638
|
+
|
|
639
|
+
{ /* eslint-disable no-restricted-syntax */ }
|
|
627
640
|
{ /* @ts-expect-error - `disabled` is only for buttons */ }
|
|
628
641
|
<Button href="foo" disabled />
|
|
642
|
+
{ /* eslint-enable no-restricted-syntax */ }
|
|
643
|
+
|
|
629
644
|
<Button href="foo" type="image/png" />
|
|
630
645
|
{ /* @ts-expect-error - if button, type must be submit/reset/button */ }
|
|
631
646
|
<Button type="image/png" />
|
|
632
647
|
{ /* @ts-expect-error */ }
|
|
633
648
|
<Button type="invalidtype" />
|
|
634
649
|
{ /* @ts-expect-error - although the runtime behavior will allow this to be an anchor, this is probably a mistake. */ }
|
|
635
|
-
<Button disabled
|
|
650
|
+
<Button disabled accessibleWhenDisabled href="foo" />
|
|
636
651
|
</>;
|
|
637
652
|
} );
|
|
638
653
|
} );
|
package/src/button/types.ts
CHANGED
|
@@ -25,6 +25,19 @@ type BaseButtonProps = {
|
|
|
25
25
|
* @default false
|
|
26
26
|
*/
|
|
27
27
|
__next40pxDefaultSize?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Whether to keep the button focusable when disabled.
|
|
30
|
+
*
|
|
31
|
+
* In most cases, it is recommended to set this to `true`. Disabling a control without maintaining focusability
|
|
32
|
+
* can cause accessibility issues, by hiding their presence from screen reader users,
|
|
33
|
+
* or by preventing focus from returning to a trigger element.
|
|
34
|
+
*
|
|
35
|
+
* Learn more about the [focusability of disabled controls](https://www.w3.org/WAI/ARIA/apg/practices/keyboard-interface/#focusabilityofdisabledcontrols)
|
|
36
|
+
* in the WAI-ARIA Authoring Practices Guide.
|
|
37
|
+
*
|
|
38
|
+
* @default false
|
|
39
|
+
*/
|
|
40
|
+
accessibleWhenDisabled?: boolean;
|
|
28
41
|
/**
|
|
29
42
|
* The button's children.
|
|
30
43
|
*/
|
|
@@ -105,28 +118,24 @@ type BaseButtonProps = {
|
|
|
105
118
|
* 'link' (the link button styles)
|
|
106
119
|
*/
|
|
107
120
|
variant?: 'primary' | 'secondary' | 'tertiary' | 'link';
|
|
108
|
-
/**
|
|
109
|
-
* Whether to keep the button focusable when disabled.
|
|
110
|
-
*
|
|
111
|
-
* @default false
|
|
112
|
-
*/
|
|
113
|
-
__experimentalIsFocusable?: boolean;
|
|
114
121
|
};
|
|
115
122
|
|
|
116
123
|
type _ButtonProps = {
|
|
117
124
|
/**
|
|
118
|
-
* Whether the button is disabled.
|
|
125
|
+
* Whether the button is disabled. If `true`, this will force a `button` element
|
|
126
|
+
* to be rendered, even when an `href` is given.
|
|
119
127
|
*
|
|
120
|
-
*
|
|
128
|
+
* In most cases, it is recommended to also set the `accessibleWhenDisabled` prop to `true`.
|
|
121
129
|
*/
|
|
122
130
|
disabled?: boolean;
|
|
123
131
|
};
|
|
124
132
|
|
|
125
133
|
type AnchorProps = {
|
|
126
134
|
/**
|
|
127
|
-
* Whether the button is disabled.
|
|
135
|
+
* Whether the button is disabled. If `true`, this will force a `button` element
|
|
136
|
+
* to be rendered, even when an `href` is given.
|
|
128
137
|
*
|
|
129
|
-
*
|
|
138
|
+
* In most cases, it is recommended to also set the `accessibleWhenDisabled` prop to `true`.
|
|
130
139
|
*/
|
|
131
140
|
disabled?: false;
|
|
132
141
|
/**
|
|
@@ -140,6 +149,14 @@ type AnchorProps = {
|
|
|
140
149
|
};
|
|
141
150
|
|
|
142
151
|
export type DeprecatedButtonProps = {
|
|
152
|
+
/**
|
|
153
|
+
* Whether to keep the button focusable when disabled.
|
|
154
|
+
*
|
|
155
|
+
* @default false
|
|
156
|
+
* @deprecated Use the `accessibleWhenDisabled` prop instead.
|
|
157
|
+
* @ignore
|
|
158
|
+
*/
|
|
159
|
+
__experimentalIsFocusable?: boolean;
|
|
143
160
|
/**
|
|
144
161
|
* Gives the button a default style.
|
|
145
162
|
*
|
|
@@ -346,6 +346,8 @@ function ComboboxControl( props: ComboboxControlProps ) {
|
|
|
346
346
|
<Button
|
|
347
347
|
className="components-combobox-control__reset"
|
|
348
348
|
icon={ closeSmall }
|
|
349
|
+
// Disable reason: Focus returns to input field when reset is clicked.
|
|
350
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
349
351
|
disabled={ ! value }
|
|
350
352
|
onClick={ handleOnReset }
|
|
351
353
|
label={ __( 'Reset' ) }
|
|
@@ -8,7 +8,6 @@
|
|
|
8
8
|
* @see https://ariakit.org/components/composite
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
/* eslint-disable-next-line no-restricted-imports */
|
|
12
11
|
export {
|
|
13
12
|
Composite,
|
|
14
13
|
CompositeGroup,
|
|
@@ -18,5 +17,4 @@ export {
|
|
|
18
17
|
useCompositeStore,
|
|
19
18
|
} from '@ariakit/react';
|
|
20
19
|
|
|
21
|
-
/* eslint-disable-next-line no-restricted-imports */
|
|
22
20
|
export type { CompositeStore, CompositeStoreProps } from '@ariakit/react';
|
|
@@ -3,6 +3,11 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import type { StoryFn } from '@storybook/react';
|
|
5
5
|
|
|
6
|
+
/**
|
|
7
|
+
* WordPress dependencies
|
|
8
|
+
*/
|
|
9
|
+
import { useState } from '@wordpress/element';
|
|
10
|
+
|
|
6
11
|
/**
|
|
7
12
|
* Internal dependencies
|
|
8
13
|
*/
|
|
@@ -20,10 +25,34 @@ export default {
|
|
|
20
25
|
type: 'radio',
|
|
21
26
|
},
|
|
22
27
|
},
|
|
28
|
+
onChange: { control: { type: null } },
|
|
29
|
+
value: { control: { type: null } },
|
|
30
|
+
},
|
|
31
|
+
parameters: {
|
|
32
|
+
actions: { argTypesRegex: '^on.*' },
|
|
23
33
|
},
|
|
24
34
|
};
|
|
25
35
|
|
|
26
|
-
|
|
36
|
+
const Template: StoryFn< typeof CustomSelectControl > = ( props ) => {
|
|
37
|
+
const [ value, setValue ] = useState( props.options[ 0 ] );
|
|
38
|
+
|
|
39
|
+
const onChange: React.ComponentProps<
|
|
40
|
+
typeof CustomSelectControl
|
|
41
|
+
>[ 'onChange' ] = ( changeObject: { selectedItem: any } ) => {
|
|
42
|
+
setValue( changeObject.selectedItem );
|
|
43
|
+
props.onChange?.( changeObject );
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
return (
|
|
47
|
+
<CustomSelectControl
|
|
48
|
+
{ ...props }
|
|
49
|
+
onChange={ onChange }
|
|
50
|
+
value={ value }
|
|
51
|
+
/>
|
|
52
|
+
);
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
export const Default: StoryFn = Template.bind( {} );
|
|
27
56
|
Default.args = {
|
|
28
57
|
label: 'Label',
|
|
29
58
|
options: [
|
|
@@ -51,7 +80,7 @@ Default.args = {
|
|
|
51
80
|
],
|
|
52
81
|
};
|
|
53
82
|
|
|
54
|
-
export const WithLongLabels: StoryFn =
|
|
83
|
+
export const WithLongLabels: StoryFn = Template.bind( {} );
|
|
55
84
|
WithLongLabels.args = {
|
|
56
85
|
...Default.args,
|
|
57
86
|
options: [
|
|
@@ -70,7 +99,7 @@ WithLongLabels.args = {
|
|
|
70
99
|
],
|
|
71
100
|
};
|
|
72
101
|
|
|
73
|
-
export const WithHints: StoryFn =
|
|
102
|
+
export const WithHints: StoryFn = Template.bind( {} );
|
|
74
103
|
WithHints.args = {
|
|
75
104
|
...Default.args,
|
|
76
105
|
options: [
|