@wordpress/components 28.4.0 → 28.6.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 +113 -1
- package/CONTRIBUTING.md +155 -64
- package/build/alignment-matrix-control/cell.js +2 -2
- package/build/alignment-matrix-control/cell.js.map +1 -1
- package/build/alignment-matrix-control/index.js +6 -5
- package/build/alignment-matrix-control/index.js.map +1 -1
- package/build/alignment-matrix-control/styles/alignment-matrix-control-styles.js +8 -17
- package/build/alignment-matrix-control/styles/alignment-matrix-control-styles.js.map +1 -1
- package/build/angle-picker-control/styles/angle-picker-control-styles.js +4 -4
- package/build/angle-picker-control/styles/angle-picker-control-styles.js.map +1 -1
- package/build/autocomplete/autocompleter-ui.js +2 -0
- package/build/autocomplete/autocompleter-ui.js.map +1 -1
- package/build/base-control/index.js +54 -41
- package/build/base-control/index.js.map +1 -1
- package/build/base-control/styles/base-control-styles.js +8 -8
- package/build/base-control/styles/base-control-styles.js.map +1 -1
- package/build/base-control/types.js.map +1 -1
- package/build/border-control/styles.js +18 -24
- package/build/border-control/styles.js.map +1 -1
- package/build/checkbox-control/index.js +1 -0
- package/build/checkbox-control/index.js.map +1 -1
- package/build/circular-option-picker/circular-option-picker-option.js +4 -4
- package/build/circular-option-picker/circular-option-picker-option.js.map +1 -1
- package/build/circular-option-picker/circular-option-picker.js +3 -3
- package/build/circular-option-picker/circular-option-picker.js.map +1 -1
- package/build/circular-option-picker/types.js.map +1 -1
- package/build/color-palette/index.js +1 -1
- package/build/color-palette/index.js.map +1 -1
- package/build/color-palette/utils.js +17 -5
- package/build/color-palette/utils.js.map +1 -1
- package/build/color-picker/input-with-slider.js +1 -0
- package/build/color-picker/input-with-slider.js.map +1 -1
- package/build/combobox-control/index.js +1 -0
- package/build/combobox-control/index.js.map +1 -1
- package/build/composite/context.js +19 -0
- package/build/composite/context.js.map +1 -0
- package/build/composite/index.js +287 -9
- package/build/composite/index.js.map +1 -1
- package/build/composite/legacy/index.js +10 -8
- package/build/composite/legacy/index.js.map +1 -1
- package/build/composite/types.js +6 -0
- package/build/composite/types.js.map +1 -0
- package/build/custom-select-control/index.js +37 -14
- package/build/custom-select-control/index.js.map +1 -1
- package/build/custom-select-control/types.js.map +1 -1
- package/build/custom-select-control-v2/custom-select.js +3 -2
- package/build/custom-select-control-v2/custom-select.js.map +1 -1
- package/build/custom-select-control-v2/styles.js +9 -9
- package/build/custom-select-control-v2/styles.js.map +1 -1
- package/build/date-time/index.js +0 -7
- package/build/date-time/index.js.map +1 -1
- package/build/date-time/time/index.js +77 -41
- package/build/date-time/time/index.js.map +1 -1
- package/build/date-time/time/styles.js +11 -11
- package/build/date-time/time/styles.js.map +1 -1
- package/build/date-time/{time-input → time/time-input}/index.js +7 -7
- package/build/date-time/time/time-input/index.js.map +1 -0
- package/build/date-time/types.js.map +1 -1
- package/build/dimension-control/index.js +25 -8
- package/build/dimension-control/index.js.map +1 -1
- package/build/dimension-control/types.js.map +1 -1
- package/build/dropdown-menu-v2/index.js +3 -2
- package/build/dropdown-menu-v2/index.js.map +1 -1
- package/build/dropdown-menu-v2/styles.js +23 -21
- package/build/dropdown-menu-v2/styles.js.map +1 -1
- package/build/focal-point-picker/controls.js +1 -3
- package/build/focal-point-picker/controls.js.map +1 -1
- package/build/focal-point-picker/index.js +1 -2
- package/build/focal-point-picker/index.js.map +1 -1
- package/build/focal-point-picker/styles/focal-point-picker-style.js +11 -11
- package/build/focal-point-picker/styles/focal-point-picker-style.js.map +1 -1
- package/build/focal-point-picker/types.js.map +1 -1
- package/build/form-file-upload/types.js.map +1 -1
- package/build/form-toggle/index.js +24 -24
- package/build/form-toggle/index.js.map +1 -1
- package/build/guide/index.js +2 -0
- package/build/guide/index.js.map +1 -1
- package/build/heading/types.js.map +1 -1
- package/build/index.js +5 -5
- package/build/index.js.map +1 -1
- package/build/item-group/styles.js +11 -11
- package/build/item-group/styles.js.map +1 -1
- package/build/mobile/utils/alignments.native.js +1 -1
- package/build/mobile/utils/alignments.native.js.map +1 -1
- package/build/modal/index.js +18 -11
- package/build/modal/index.js.map +1 -1
- package/build/navigator/navigator-back-button/component.js +1 -1
- package/build/navigator/navigator-back-button/component.js.map +1 -1
- package/build/navigator/navigator-back-button/hook.js +3 -9
- package/build/navigator/navigator-back-button/hook.js.map +1 -1
- package/build/navigator/navigator-provider/component.js +17 -9
- package/build/navigator/navigator-provider/component.js.map +1 -1
- package/build/navigator/navigator-to-parent-button/component.js +13 -40
- package/build/navigator/navigator-to-parent-button/component.js.map +1 -1
- package/build/navigator/types.js.map +1 -1
- package/build/palette-edit/styles.js +11 -11
- package/build/palette-edit/styles.js.map +1 -1
- package/build/popover/index.js +6 -1
- package/build/popover/index.js.map +1 -1
- package/build/private-apis.js +6 -6
- package/build/private-apis.js.map +1 -1
- package/build/progress-bar/styles.js +5 -5
- package/build/progress-bar/styles.js.map +1 -1
- package/build/query-controls/index.js +6 -7
- package/build/query-controls/index.js.map +1 -1
- package/build/query-controls/types.js.map +1 -1
- package/build/radio-control/index.js +43 -15
- package/build/radio-control/index.js.map +1 -1
- package/build/radio-control/types.js.map +1 -1
- package/build/radio-group/radio.js +3 -2
- package/build/radio-group/radio.js.map +1 -1
- package/build/range-control/index.js +32 -9
- package/build/range-control/index.js.map +1 -1
- package/build/range-control/styles/range-control-styles.js +29 -29
- package/build/range-control/styles/range-control-styles.js.map +1 -1
- package/build/search-control/index.js +5 -4
- package/build/search-control/index.js.map +1 -1
- package/build/select-control/index.js +21 -8
- package/build/select-control/index.js.map +1 -1
- package/build/select-control/types.js.map +1 -1
- package/build/tab-panel/index.js +3 -2
- package/build/tab-panel/index.js.map +1 -1
- package/build/tabs/index.js +3 -2
- package/build/tabs/index.js.map +1 -1
- package/build/tabs/tablist.js +6 -4
- package/build/tabs/tablist.js.map +1 -1
- package/build/tabs/tabpanel.js +6 -1
- package/build/tabs/tabpanel.js.map +1 -1
- package/build/text/styles.js +7 -7
- package/build/text/styles.js.map +1 -1
- package/build/text-control/index.js +2 -0
- package/build/text-control/index.js.map +1 -1
- package/build/textarea-control/index.js +1 -0
- package/build/textarea-control/index.js.map +1 -1
- package/build/textarea-control/styles/textarea-control-styles.js +8 -2
- package/build/textarea-control/styles/textarea-control-styles.js.map +1 -1
- package/build/toggle-control/index.js +35 -25
- package/build/toggle-control/index.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control/as-radio-group.js +3 -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 +7 -1
- package/build/toggle-group-control/toggle-group-control/component.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control/styles.js +7 -7
- package/build/toggle-group-control/toggle-group-control/styles.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control-option/component.js +6 -1
- package/build/toggle-group-control/toggle-group-control-option/component.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control-option-base/styles.js +9 -9
- package/build/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control-option-icon/component.js +14 -14
- package/build/toggle-group-control/toggle-group-control-option-icon/component.js.map +1 -1
- package/build/tools-panel/styles.js +13 -13
- package/build/tools-panel/styles.js.map +1 -1
- package/build/tooltip/index.js +14 -2
- package/build/tooltip/index.js.map +1 -1
- package/build/tree-select/index.js +20 -8
- package/build/tree-select/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/config-values.js +10 -3
- package/build/utils/config-values.js.map +1 -1
- package/build-module/alignment-matrix-control/cell.js +2 -2
- package/build-module/alignment-matrix-control/cell.js.map +1 -1
- package/build-module/alignment-matrix-control/index.js +4 -3
- package/build-module/alignment-matrix-control/index.js.map +1 -1
- package/build-module/alignment-matrix-control/styles/alignment-matrix-control-styles.js +9 -18
- package/build-module/alignment-matrix-control/styles/alignment-matrix-control-styles.js.map +1 -1
- package/build-module/angle-picker-control/styles/angle-picker-control-styles.js +4 -4
- package/build-module/angle-picker-control/styles/angle-picker-control-styles.js.map +1 -1
- package/build-module/autocomplete/autocompleter-ui.js +2 -0
- package/build-module/autocomplete/autocompleter-ui.js.map +1 -1
- package/build-module/base-control/index.js +54 -42
- package/build-module/base-control/index.js.map +1 -1
- package/build-module/base-control/styles/base-control-styles.js +8 -8
- package/build-module/base-control/styles/base-control-styles.js.map +1 -1
- package/build-module/base-control/types.js.map +1 -1
- package/build-module/border-control/styles.js +13 -23
- package/build-module/border-control/styles.js.map +1 -1
- package/build-module/checkbox-control/index.js +1 -0
- package/build-module/checkbox-control/index.js.map +1 -1
- package/build-module/circular-option-picker/circular-option-picker-option.js +4 -4
- package/build-module/circular-option-picker/circular-option-picker-option.js.map +1 -1
- package/build-module/circular-option-picker/circular-option-picker.js +1 -1
- package/build-module/circular-option-picker/circular-option-picker.js.map +1 -1
- package/build-module/circular-option-picker/types.js.map +1 -1
- package/build-module/color-palette/index.js +1 -1
- package/build-module/color-palette/index.js.map +1 -1
- package/build-module/color-palette/utils.js +17 -5
- package/build-module/color-palette/utils.js.map +1 -1
- package/build-module/color-picker/input-with-slider.js +1 -0
- package/build-module/color-picker/input-with-slider.js.map +1 -1
- package/build-module/combobox-control/index.js +1 -0
- package/build-module/combobox-control/index.js.map +1 -1
- package/build-module/composite/context.js +12 -0
- package/build-module/composite/context.js.map +1 -0
- package/build-module/composite/index.js +284 -6
- package/build-module/composite/index.js.map +1 -1
- package/build-module/composite/legacy/index.js +10 -6
- package/build-module/composite/legacy/index.js.map +1 -1
- package/build-module/composite/types.js +2 -0
- package/build-module/composite/types.js.map +1 -0
- package/build-module/custom-select-control/index.js +38 -14
- package/build-module/custom-select-control/index.js.map +1 -1
- package/build-module/custom-select-control/types.js.map +1 -1
- package/build-module/custom-select-control-v2/custom-select.js +2 -1
- package/build-module/custom-select-control-v2/custom-select.js.map +1 -1
- package/build-module/custom-select-control-v2/styles.js +9 -9
- package/build-module/custom-select-control-v2/styles.js.map +1 -1
- package/build-module/date-time/index.js +1 -2
- package/build-module/date-time/index.js.map +1 -1
- package/build-module/date-time/time/index.js +77 -41
- package/build-module/date-time/time/index.js.map +1 -1
- package/build-module/date-time/time/styles.js +11 -11
- package/build-module/date-time/time/styles.js.map +1 -1
- package/build-module/date-time/{time-input → time/time-input}/index.js +7 -7
- package/build-module/date-time/time/time-input/index.js.map +1 -0
- package/build-module/date-time/types.js.map +1 -1
- package/build-module/dimension-control/index.js +25 -8
- package/build-module/dimension-control/index.js.map +1 -1
- package/build-module/dimension-control/types.js.map +1 -1
- package/build-module/dropdown-menu-v2/index.js +2 -1
- package/build-module/dropdown-menu-v2/index.js.map +1 -1
- package/build-module/dropdown-menu-v2/styles.js +23 -21
- package/build-module/dropdown-menu-v2/styles.js.map +1 -1
- package/build-module/focal-point-picker/controls.js +1 -3
- package/build-module/focal-point-picker/controls.js.map +1 -1
- package/build-module/focal-point-picker/index.js +1 -2
- package/build-module/focal-point-picker/index.js.map +1 -1
- package/build-module/focal-point-picker/styles/focal-point-picker-style.js +11 -11
- package/build-module/focal-point-picker/styles/focal-point-picker-style.js.map +1 -1
- package/build-module/focal-point-picker/types.js.map +1 -1
- package/build-module/form-file-upload/types.js.map +1 -1
- package/build-module/form-toggle/index.js +23 -22
- package/build-module/form-toggle/index.js.map +1 -1
- package/build-module/guide/index.js +2 -0
- package/build-module/guide/index.js.map +1 -1
- package/build-module/heading/types.js.map +1 -1
- package/build-module/index.js +1 -1
- package/build-module/index.js.map +1 -1
- package/build-module/item-group/styles.js +11 -11
- package/build-module/item-group/styles.js.map +1 -1
- package/build-module/mobile/utils/alignments.native.js +1 -1
- package/build-module/mobile/utils/alignments.native.js.map +1 -1
- package/build-module/modal/index.js +17 -11
- package/build-module/modal/index.js.map +1 -1
- package/build-module/navigator/navigator-back-button/component.js +1 -1
- package/build-module/navigator/navigator-back-button/component.js.map +1 -1
- package/build-module/navigator/navigator-back-button/hook.js +3 -9
- package/build-module/navigator/navigator-back-button/hook.js.map +1 -1
- package/build-module/navigator/navigator-provider/component.js +17 -9
- package/build-module/navigator/navigator-provider/component.js.map +1 -1
- package/build-module/navigator/navigator-to-parent-button/component.js +12 -41
- package/build-module/navigator/navigator-to-parent-button/component.js.map +1 -1
- package/build-module/navigator/types.js.map +1 -1
- package/build-module/palette-edit/styles.js +11 -11
- package/build-module/palette-edit/styles.js.map +1 -1
- package/build-module/popover/index.js +6 -1
- package/build-module/popover/index.js.map +1 -1
- package/build-module/private-apis.js +6 -6
- package/build-module/private-apis.js.map +1 -1
- package/build-module/progress-bar/styles.js +5 -5
- package/build-module/progress-bar/styles.js.map +1 -1
- package/build-module/query-controls/index.js +6 -7
- package/build-module/query-controls/index.js.map +1 -1
- package/build-module/query-controls/types.js.map +1 -1
- package/build-module/radio-control/index.js +44 -17
- package/build-module/radio-control/index.js.map +1 -1
- package/build-module/radio-control/types.js.map +1 -1
- package/build-module/radio-group/radio.js +2 -1
- package/build-module/radio-group/radio.js.map +1 -1
- package/build-module/range-control/index.js +32 -9
- package/build-module/range-control/index.js.map +1 -1
- package/build-module/range-control/styles/range-control-styles.js +29 -29
- package/build-module/range-control/styles/range-control-styles.js.map +1 -1
- package/build-module/search-control/index.js +5 -4
- package/build-module/search-control/index.js.map +1 -1
- package/build-module/select-control/index.js +21 -8
- package/build-module/select-control/index.js.map +1 -1
- package/build-module/select-control/types.js.map +1 -1
- package/build-module/tab-panel/index.js +2 -1
- package/build-module/tab-panel/index.js.map +1 -1
- package/build-module/tabs/index.js +2 -1
- package/build-module/tabs/index.js.map +1 -1
- package/build-module/tabs/tablist.js +5 -3
- package/build-module/tabs/tablist.js.map +1 -1
- package/build-module/tabs/tabpanel.js +6 -2
- package/build-module/tabs/tabpanel.js.map +1 -1
- package/build-module/text/styles.js +7 -7
- package/build-module/text/styles.js.map +1 -1
- package/build-module/text-control/index.js +2 -0
- package/build-module/text-control/index.js.map +1 -1
- package/build-module/textarea-control/index.js +1 -0
- package/build-module/textarea-control/index.js.map +1 -1
- package/build-module/textarea-control/styles/textarea-control-styles.js +9 -2
- package/build-module/textarea-control/styles/textarea-control-styles.js.map +1 -1
- package/build-module/toggle-control/index.js +34 -24
- package/build-module/toggle-control/index.js.map +1 -1
- package/build-module/toggle-group-control/toggle-group-control/as-radio-group.js +2 -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 +7 -1
- package/build-module/toggle-group-control/toggle-group-control/component.js.map +1 -1
- package/build-module/toggle-group-control/toggle-group-control/styles.js +7 -7
- package/build-module/toggle-group-control/toggle-group-control/styles.js.map +1 -1
- package/build-module/toggle-group-control/toggle-group-control-option/component.js +6 -1
- package/build-module/toggle-group-control/toggle-group-control-option/component.js.map +1 -1
- package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js +9 -9
- package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -1
- package/build-module/toggle-group-control/toggle-group-control-option-icon/component.js +14 -14
- package/build-module/toggle-group-control/toggle-group-control-option-icon/component.js.map +1 -1
- package/build-module/tools-panel/styles.js +13 -13
- package/build-module/tools-panel/styles.js.map +1 -1
- package/build-module/tooltip/index.js +14 -2
- package/build-module/tooltip/index.js.map +1 -1
- package/build-module/tree-select/index.js +20 -8
- package/build-module/tree-select/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/config-values.js +10 -3
- package/build-module/utils/config-values.js.map +1 -1
- package/build-style/style-rtl.css +79 -33
- package/build-style/style.css +79 -33
- package/build-types/alignment-matrix-control/index.d.ts.map +1 -1
- package/build-types/alignment-matrix-control/styles/alignment-matrix-control-styles.d.ts.map +1 -1
- package/build-types/angle-picker-control/styles/angle-picker-control-styles.d.ts.map +1 -1
- package/build-types/autocomplete/autocompleter-ui.d.ts.map +1 -1
- package/build-types/base-control/hooks.d.ts +1 -0
- package/build-types/base-control/hooks.d.ts.map +1 -1
- package/build-types/base-control/index.d.ts +44 -0
- package/build-types/base-control/index.d.ts.map +1 -1
- package/build-types/base-control/types.d.ts +7 -0
- package/build-types/base-control/types.d.ts.map +1 -1
- package/build-types/border-control/styles.d.ts.map +1 -1
- package/build-types/button/stories/e2e/index.story.d.ts.map +1 -1
- package/build-types/checkbox-control/index.d.ts.map +1 -1
- package/build-types/checkbox-control/stories/index.story.d.ts.map +1 -1
- package/build-types/circular-option-picker/circular-option-picker-option.d.ts.map +1 -1
- package/build-types/circular-option-picker/types.d.ts +2 -3
- package/build-types/circular-option-picker/types.d.ts.map +1 -1
- package/build-types/color-palette/index.d.ts.map +1 -1
- package/build-types/color-palette/styles.d.ts +2 -2
- package/build-types/color-palette/utils.d.ts.map +1 -1
- package/build-types/color-picker/input-with-slider.d.ts.map +1 -1
- package/build-types/color-picker/styles.d.ts +3 -1
- package/build-types/color-picker/styles.d.ts.map +1 -1
- package/build-types/combobox-control/index.d.ts.map +1 -1
- package/build-types/combobox-control/stories/index.story.d.ts.map +1 -1
- package/build-types/composite/context.d.ts +7 -0
- package/build-types/composite/context.d.ts.map +1 -0
- package/build-types/composite/index.d.ts +181 -1
- package/build-types/composite/index.d.ts.map +1 -1
- package/build-types/composite/legacy/index.d.ts +7 -2
- package/build-types/composite/legacy/index.d.ts.map +1 -1
- package/build-types/composite/legacy/stories/utils.d.ts +19 -0
- package/build-types/composite/legacy/stories/utils.d.ts.map +1 -1
- package/build-types/composite/stories/index.story.d.ts +13 -0
- package/build-types/composite/stories/index.story.d.ts.map +1 -0
- package/build-types/composite/stories/utils.d.ts +29 -0
- package/build-types/composite/stories/utils.d.ts.map +1 -0
- package/build-types/composite/types.d.ts +288 -0
- package/build-types/composite/types.d.ts.map +1 -0
- package/build-types/custom-select-control/index.d.ts +2 -2
- package/build-types/custom-select-control/index.d.ts.map +1 -1
- package/build-types/custom-select-control/stories/index.story.d.ts +3 -3
- package/build-types/custom-select-control/stories/index.story.d.ts.map +1 -1
- package/build-types/custom-select-control/types.d.ts +7 -7
- package/build-types/custom-select-control/types.d.ts.map +1 -1
- package/build-types/custom-select-control-v2/custom-select.d.ts.map +1 -1
- package/build-types/custom-select-control-v2/styles.d.ts +16 -28
- package/build-types/custom-select-control-v2/styles.d.ts.map +1 -1
- package/build-types/date-time/date/styles.d.ts +2 -2
- package/build-types/date-time/date-time/index.d.ts +1 -1
- package/build-types/date-time/index.d.ts +1 -2
- package/build-types/date-time/index.d.ts.map +1 -1
- package/build-types/date-time/stories/time.story.d.ts +5 -0
- package/build-types/date-time/stories/time.story.d.ts.map +1 -1
- package/build-types/date-time/time/index.d.ts +4 -1
- package/build-types/date-time/time/index.d.ts.map +1 -1
- package/build-types/date-time/time/styles.d.ts.map +1 -1
- package/build-types/date-time/{time-input → time/time-input}/index.d.ts +1 -1
- package/build-types/date-time/time/time-input/index.d.ts.map +1 -0
- package/build-types/date-time/time/time-input/test/index.d.ts.map +1 -0
- package/build-types/date-time/types.d.ts +7 -1
- package/build-types/date-time/types.d.ts.map +1 -1
- package/build-types/dimension-control/index.d.ts +1 -0
- package/build-types/dimension-control/index.d.ts.map +1 -1
- package/build-types/dimension-control/stories/index.story.d.ts +8 -1
- package/build-types/dimension-control/stories/index.story.d.ts.map +1 -1
- package/build-types/dimension-control/types.d.ts +2 -7
- package/build-types/dimension-control/types.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 +24 -42
- package/build-types/dropdown-menu-v2/styles.d.ts.map +1 -1
- package/build-types/focal-point-picker/controls.d.ts +1 -1
- package/build-types/focal-point-picker/controls.d.ts.map +1 -1
- package/build-types/focal-point-picker/index.d.ts +1 -1
- package/build-types/focal-point-picker/index.d.ts.map +1 -1
- package/build-types/focal-point-picker/stories/index.story.d.ts.map +1 -1
- package/build-types/focal-point-picker/types.d.ts +2 -2
- package/build-types/focal-point-picker/types.d.ts.map +1 -1
- package/build-types/form-file-upload/types.d.ts +6 -0
- package/build-types/form-file-upload/types.d.ts.map +1 -1
- package/build-types/form-toggle/index.d.ts +2 -5
- package/build-types/form-toggle/index.d.ts.map +1 -1
- package/build-types/guide/index.d.ts.map +1 -1
- package/build-types/heading/component.d.ts +1 -1
- package/build-types/heading/types.d.ts +1 -1
- package/build-types/heading/types.d.ts.map +1 -1
- package/build-types/index.d.ts +1 -1
- package/build-types/index.d.ts.map +1 -1
- package/build-types/modal/index.d.ts.map +1 -1
- package/build-types/navigation/styles/navigation-styles.d.ts +2 -2
- package/build-types/navigator/navigator-back-button/component.d.ts +1 -1
- package/build-types/navigator/navigator-back-button/hook.d.ts +2 -2
- package/build-types/navigator/navigator-back-button/hook.d.ts.map +1 -1
- package/build-types/navigator/navigator-provider/component.d.ts.map +1 -1
- package/build-types/navigator/navigator-to-parent-button/component.d.ts +6 -0
- package/build-types/navigator/navigator-to-parent-button/component.d.ts.map +1 -1
- package/build-types/navigator/types.d.ts +45 -9
- package/build-types/navigator/types.d.ts.map +1 -1
- package/build-types/palette-edit/styles.d.ts +2 -2
- package/build-types/popover/index.d.ts +1 -1
- package/build-types/popover/index.d.ts.map +1 -1
- package/build-types/popover/stories/e2e/index.story.d.ts +1 -1
- package/build-types/private-apis.d.ts.map +1 -1
- package/build-types/query-controls/index.d.ts +1 -1
- package/build-types/query-controls/index.d.ts.map +1 -1
- package/build-types/query-controls/types.d.ts +2 -1
- package/build-types/query-controls/types.d.ts.map +1 -1
- package/build-types/radio-control/index.d.ts.map +1 -1
- package/build-types/radio-control/stories/index.story.d.ts +1 -0
- package/build-types/radio-control/stories/index.story.d.ts.map +1 -1
- package/build-types/radio-control/test/index.d.ts +2 -0
- package/build-types/radio-control/test/index.d.ts.map +1 -0
- package/build-types/radio-control/types.d.ts +4 -0
- package/build-types/radio-control/types.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/stories/index.story.d.ts.map +1 -1
- package/build-types/search-control/index.d.ts.map +1 -1
- package/build-types/search-control/stories/index.story.d.ts.map +1 -1
- package/build-types/select-control/index.d.ts +4 -1
- package/build-types/select-control/index.d.ts.map +1 -1
- package/build-types/select-control/stories/index.story.d.ts +13 -5
- package/build-types/select-control/stories/index.story.d.ts.map +1 -1
- package/build-types/select-control/types.d.ts +27 -27
- package/build-types/select-control/types.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/styles.d.ts +8 -14
- package/build-types/tabs/styles.d.ts.map +1 -1
- package/build-types/tabs/tablist.d.ts.map +1 -1
- package/build-types/tabs/tabpanel.d.ts +0 -3
- package/build-types/tabs/tabpanel.d.ts.map +1 -1
- package/build-types/text-control/index.d.ts +1 -0
- package/build-types/text-control/index.d.ts.map +1 -1
- package/build-types/text-control/stories/index.story.d.ts.map +1 -1
- package/build-types/textarea-control/index.d.ts.map +1 -1
- package/build-types/textarea-control/styles/textarea-control-styles.d.ts.map +1 -1
- package/build-types/toggle-control/index.d.ts +3 -9
- package/build-types/toggle-control/index.d.ts.map +1 -1
- package/build-types/toggle-control/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 +6 -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/component.d.ts +6 -1
- package/build-types/toggle-group-control/toggle-group-control-option/component.d.ts.map +1 -1
- package/build-types/toggle-group-control/toggle-group-control-option-icon/component.d.ts +14 -14
- package/build-types/tooltip/index.d.ts.map +1 -1
- package/build-types/tooltip/test/utils/index.d.ts +1 -5
- package/build-types/tooltip/test/utils/index.d.ts.map +1 -1
- package/build-types/tree-select/index.d.ts +1 -1
- package/build-types/tree-select/index.d.ts.map +1 -1
- package/build-types/utils/config-values.d.ts +10 -3
- package/package.json +20 -20
- package/src/alignment-matrix-control/cell.tsx +3 -3
- package/src/alignment-matrix-control/index.tsx +5 -4
- package/src/alignment-matrix-control/styles/alignment-matrix-control-styles.ts +2 -2
- package/src/alignment-matrix-control/test/index.tsx +1 -3
- package/src/angle-picker-control/styles/angle-picker-control-styles.tsx +2 -2
- package/src/autocomplete/autocompleter-ui.tsx +2 -0
- package/src/autocomplete/style.scss +0 -6
- package/src/base-control/README.md +5 -2
- package/src/base-control/index.tsx +61 -41
- package/src/base-control/styles/base-control-styles.ts +1 -1
- package/src/base-control/types.ts +7 -0
- package/src/border-box-control/border-box-control/README.md +7 -0
- package/src/border-control/border-control/README.md +7 -0
- package/src/border-control/styles.ts +1 -6
- package/src/button/README.md +7 -0
- package/src/button/stories/e2e/index.story.tsx +103 -21
- package/src/button/style.scss +51 -23
- package/src/button/test/index.tsx +18 -40
- package/src/button-group/style.scss +2 -2
- package/src/checkbox-control/index.tsx +1 -0
- package/src/checkbox-control/stories/index.story.tsx +1 -0
- package/src/checkbox-control/test/index.tsx +8 -1
- package/src/circular-option-picker/circular-option-picker-option.tsx +8 -6
- package/src/circular-option-picker/circular-option-picker.tsx +1 -1
- package/src/circular-option-picker/style.scss +3 -3
- package/src/circular-option-picker/test/index.tsx +1 -4
- package/src/circular-option-picker/types.ts +2 -3
- package/src/color-indicator/style.scss +1 -1
- package/src/color-palette/index.tsx +22 -20
- package/src/color-palette/style.scss +2 -2
- package/src/color-palette/utils.ts +23 -10
- package/src/color-picker/input-with-slider.tsx +1 -0
- package/src/combobox-control/README.md +8 -0
- package/src/combobox-control/index.tsx +1 -0
- package/src/combobox-control/stories/index.story.tsx +3 -4
- package/src/combobox-control/test/index.tsx +5 -1
- package/src/composite/README.md +325 -0
- package/src/composite/context.ts +14 -0
- package/src/composite/index.tsx +341 -0
- package/src/composite/legacy/index.tsx +15 -14
- package/src/composite/legacy/stories/utils.tsx +19 -0
- package/src/composite/legacy/test/index.tsx +2 -18
- package/src/composite/stories/index.story.tsx +466 -0
- package/src/composite/{current/stories → stories}/utils.tsx +22 -7
- package/src/composite/types.ts +298 -0
- package/src/custom-gradient-picker/style.scss +2 -2
- package/src/custom-select-control/README.md +7 -0
- package/src/custom-select-control/index.tsx +55 -25
- package/src/custom-select-control/test/index.tsx +172 -30
- package/src/custom-select-control/types.ts +7 -7
- package/src/custom-select-control-v2/custom-select.tsx +2 -1
- package/src/custom-select-control-v2/styles.ts +7 -6
- package/src/custom-select-control-v2/test/index.tsx +15 -19
- package/src/date-time/index.ts +1 -2
- package/src/date-time/stories/time.story.tsx +17 -0
- package/src/date-time/time/index.tsx +72 -28
- package/src/date-time/time/styles.ts +1 -0
- package/src/date-time/{time-input → time/time-input}/index.tsx +9 -9
- package/src/date-time/types.ts +11 -1
- package/src/dimension-control/README.md +17 -0
- package/src/dimension-control/index.tsx +26 -9
- package/src/dimension-control/stories/index.story.tsx +1 -0
- package/src/dimension-control/test/__snapshots__/index.test.js.snap +0 -16
- package/src/dimension-control/test/index.test.js +5 -1
- package/src/dimension-control/types.ts +5 -7
- package/src/drop-zone/style.scss +1 -1
- package/src/dropdown-menu-v2/index.tsx +5 -3
- package/src/dropdown-menu-v2/styles.ts +35 -32
- package/src/dropdown-menu-v2/test/index.tsx +1 -4
- package/src/focal-point-picker/README.md +9 -1
- package/src/focal-point-picker/controls.tsx +1 -3
- package/src/focal-point-picker/index.tsx +1 -2
- package/src/focal-point-picker/stories/index.story.tsx +3 -0
- package/src/focal-point-picker/styles/focal-point-picker-style.ts +1 -1
- package/src/focal-point-picker/test/index.tsx +5 -1
- package/src/focal-point-picker/types.ts +2 -2
- package/src/font-size-picker/README.md +7 -0
- package/src/font-size-picker/test/index.tsx +50 -43
- package/src/form-file-upload/README.md +8 -0
- package/src/form-file-upload/types.ts +6 -0
- package/src/form-toggle/index.tsx +23 -21
- package/src/form-token-field/README.md +1 -0
- package/src/guide/index.tsx +2 -0
- package/src/guide/style.scss +0 -1
- package/src/heading/types.ts +1 -4
- package/src/index.ts +1 -1
- package/src/input-control/README.md +8 -0
- package/src/item-group/styles.ts +1 -1
- package/src/mobile/utils/alignments.native.js +1 -0
- package/src/modal/index.tsx +21 -20
- package/src/modal/style.scss +3 -3
- package/src/navigator/navigator-back-button/component.tsx +1 -1
- package/src/navigator/navigator-back-button/hook.ts +6 -10
- package/src/navigator/navigator-provider/README.md +38 -36
- package/src/navigator/navigator-provider/component.tsx +13 -7
- package/src/navigator/navigator-screen/README.md +13 -1
- package/src/navigator/navigator-to-parent-button/README.md +2 -0
- package/src/navigator/navigator-to-parent-button/component.tsx +14 -43
- package/src/navigator/test/index.tsx +136 -6
- package/src/navigator/types.ts +45 -10
- package/src/number-control/README.md +8 -0
- package/src/palette-edit/styles.ts +5 -5
- package/src/placeholder/style.scss +15 -3
- package/src/popover/index.tsx +9 -3
- package/src/popover/style.scss +2 -2
- package/src/popover/test/index.tsx +34 -0
- package/src/private-apis.ts +6 -12
- package/src/progress-bar/styles.ts +2 -2
- package/src/query-controls/README.md +7 -0
- package/src/query-controls/index.tsx +10 -7
- package/src/query-controls/types.ts +2 -1
- package/src/radio-control/index.tsx +62 -13
- package/src/radio-control/stories/index.story.tsx +23 -0
- package/src/radio-control/style.scss +38 -3
- package/src/radio-control/test/index.tsx +277 -0
- package/src/radio-control/types.ts +4 -0
- package/src/radio-group/radio.tsx +2 -1
- package/src/range-control/README.md +7 -0
- package/src/range-control/index.tsx +39 -9
- package/src/range-control/stories/index.story.tsx +7 -0
- package/src/range-control/styles/range-control-styles.ts +2 -2
- package/src/range-control/test/index.tsx +54 -14
- package/src/search-control/index.tsx +7 -4
- package/src/search-control/stories/index.story.tsx +1 -0
- package/src/search-control/test/index.tsx +1 -0
- package/src/select-control/README.md +16 -1
- package/src/select-control/index.tsx +34 -22
- package/src/select-control/stories/index.story.tsx +8 -5
- package/src/select-control/test/select-control.tsx +155 -5
- package/src/select-control/types.ts +70 -65
- package/src/snackbar/style.scss +2 -2
- package/src/tab-panel/index.tsx +4 -1
- package/src/tab-panel/style.scss +1 -1
- package/src/tab-panel/test/index.tsx +1 -8
- package/src/tabs/index.tsx +2 -1
- package/src/tabs/tablist.tsx +6 -4
- package/src/tabs/tabpanel.tsx +6 -2
- package/src/tabs/test/index.tsx +68 -84
- package/src/text/styles.ts +1 -1
- package/src/text-control/README.md +9 -0
- package/src/text-control/index.tsx +2 -0
- package/src/text-control/stories/index.story.tsx +3 -1
- package/src/text-control/style.scss +5 -0
- package/src/text-control/test/text-control.tsx +5 -1
- package/src/textarea-control/index.tsx +1 -0
- package/src/textarea-control/stories/index.story.tsx +2 -0
- package/src/textarea-control/styles/textarea-control-styles.ts +75 -2
- package/src/toggle-control/README.md +9 -0
- package/src/toggle-control/index.tsx +34 -22
- package/src/toggle-control/stories/index.story.tsx +1 -0
- package/src/toggle-control/style.scss +2 -1
- package/src/toggle-control/test/index.tsx +7 -1
- package/src/toggle-group-control/test/__snapshots__/index.tsx.snap +14 -30
- package/src/toggle-group-control/test/index.tsx +5 -7
- package/src/toggle-group-control/toggle-group-control/README.md +20 -1
- package/src/toggle-group-control/toggle-group-control/as-radio-group.tsx +2 -1
- package/src/toggle-group-control/toggle-group-control/component.tsx +7 -1
- package/src/toggle-group-control/toggle-group-control/styles.ts +1 -1
- package/src/toggle-group-control/toggle-group-control-option/README.md +6 -1
- package/src/toggle-group-control/toggle-group-control-option/component.tsx +6 -1
- package/src/toggle-group-control/toggle-group-control-option-base/styles.ts +2 -2
- package/src/toggle-group-control/toggle-group-control-option-icon/README.md +1 -1
- package/src/toggle-group-control/toggle-group-control-option-icon/component.tsx +14 -14
- package/src/toolbar/toolbar/style.scss +2 -2
- package/src/tools-panel/styles.ts +1 -1
- package/src/tooltip/index.tsx +16 -2
- package/src/tooltip/style.scss +1 -1
- package/src/tooltip/test/index.tsx +0 -5
- package/src/tooltip/test/utils/index.tsx +5 -5
- package/src/tree-select/index.tsx +17 -7
- package/src/tree-select/stories/index.story.tsx +1 -0
- package/src/unit-control/README.md +7 -0
- package/src/unit-control/styles/unit-control-styles.ts +1 -1
- package/src/utils/config-values.js +10 -3
- package/tsconfig.tsbuildinfo +1 -1
- package/build/composite/current/index.js +0 -43
- package/build/composite/current/index.js.map +0 -1
- package/build/composite/v2.js +0 -17
- package/build/composite/v2.js.map +0 -1
- package/build/date-time/time-input/index.js.map +0 -1
- package/build/utils/input/base.js +0 -20
- package/build/utils/input/base.js.map +0 -1
- package/build/utils/input/index.js +0 -17
- package/build/utils/input/index.js.map +0 -1
- package/build/utils/input/input-control.js +0 -21
- package/build/utils/input/input-control.js.map +0 -1
- package/build-module/composite/current/index.js +0 -12
- package/build-module/composite/current/index.js.map +0 -1
- package/build-module/composite/v2.js +0 -5
- package/build-module/composite/v2.js.map +0 -1
- package/build-module/date-time/time-input/index.js.map +0 -1
- package/build-module/utils/input/base.js +0 -13
- package/build-module/utils/input/base.js.map +0 -1
- package/build-module/utils/input/index.js +0 -2
- package/build-module/utils/input/index.js.map +0 -1
- package/build-module/utils/input/input-control.js +0 -14
- package/build-module/utils/input/input-control.js.map +0 -1
- package/build-types/composite/current/index.d.ts +0 -12
- package/build-types/composite/current/index.d.ts.map +0 -1
- package/build-types/composite/current/stories/index.story.d.ts +0 -13
- package/build-types/composite/current/stories/index.story.d.ts.map +0 -1
- package/build-types/composite/current/stories/utils.d.ts +0 -14
- package/build-types/composite/current/stories/utils.d.ts.map +0 -1
- package/build-types/composite/v2.d.ts +0 -2
- package/build-types/composite/v2.d.ts.map +0 -1
- package/build-types/date-time/stories/time-input.story.d.ts +0 -12
- package/build-types/date-time/stories/time-input.story.d.ts.map +0 -1
- package/build-types/date-time/time-input/index.d.ts.map +0 -1
- package/build-types/date-time/time-input/test/index.d.ts.map +0 -1
- package/build-types/utils/input/base.d.ts +0 -3
- package/build-types/utils/input/base.d.ts.map +0 -1
- package/build-types/utils/input/index.d.ts +0 -2
- package/build-types/utils/input/index.d.ts.map +0 -1
- package/build-types/utils/input/input-control.d.ts +0 -2
- package/build-types/utils/input/input-control.d.ts.map +0 -1
- package/src/composite/current/index.ts +0 -20
- package/src/composite/current/stories/index.story.tsx +0 -86
- package/src/composite/index.ts +0 -7
- package/src/composite/v2.ts +0 -4
- package/src/date-time/stories/time-input.story.tsx +0 -36
- package/src/utils/input/base.js +0 -30
- package/src/utils/input/index.js +0 -1
- package/src/utils/input/input-control.js +0 -63
- /package/build-types/date-time/{time-input → time/time-input}/test/index.d.ts +0 -0
- /package/src/date-time/{time-input → time/time-input}/test/index.tsx +0 -0
|
@@ -26,8 +26,24 @@ function useUniqueId( idProp?: string ) {
|
|
|
26
26
|
return idProp || id;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
function
|
|
30
|
-
|
|
29
|
+
function SelectOptions( {
|
|
30
|
+
options,
|
|
31
|
+
}: {
|
|
32
|
+
options: NonNullable< SelectControlProps[ 'options' ] >;
|
|
33
|
+
} ) {
|
|
34
|
+
return options.map( ( { id, label, value, ...optionProps }, index ) => {
|
|
35
|
+
const key = id || `${ label }-${ value }-${ index }`;
|
|
36
|
+
|
|
37
|
+
return (
|
|
38
|
+
<option key={ key } value={ value } { ...optionProps }>
|
|
39
|
+
{ label }
|
|
40
|
+
</option>
|
|
41
|
+
);
|
|
42
|
+
} );
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
function UnforwardedSelectControl< V extends string >(
|
|
46
|
+
props: WordPressComponentProps< SelectControlProps< V >, 'select', false >,
|
|
31
47
|
ref: React.ForwardedRef< HTMLSelectElement >
|
|
32
48
|
) {
|
|
33
49
|
const {
|
|
@@ -66,12 +82,14 @@ function UnforwardedSelectControl(
|
|
|
66
82
|
const selectedOptions = Array.from( event.target.options ).filter(
|
|
67
83
|
( { selected } ) => selected
|
|
68
84
|
);
|
|
69
|
-
const newValues = selectedOptions.map(
|
|
85
|
+
const newValues = selectedOptions.map(
|
|
86
|
+
( { value } ) => value as V
|
|
87
|
+
);
|
|
70
88
|
props.onChange?.( newValues, { event } );
|
|
71
89
|
return;
|
|
72
90
|
}
|
|
73
91
|
|
|
74
|
-
props.onChange?.( event.target.value, { event } );
|
|
92
|
+
props.onChange?.( event.target.value as V, { event } );
|
|
75
93
|
};
|
|
76
94
|
|
|
77
95
|
const classes = clsx( 'components-select-control', className );
|
|
@@ -81,6 +99,7 @@ function UnforwardedSelectControl(
|
|
|
81
99
|
help={ help }
|
|
82
100
|
id={ id }
|
|
83
101
|
__nextHasNoMarginBottom={ __nextHasNoMarginBottom }
|
|
102
|
+
__associatedWPComponentName="SelectControl"
|
|
84
103
|
>
|
|
85
104
|
<StyledInputBase
|
|
86
105
|
className={ classes }
|
|
@@ -115,23 +134,7 @@ function UnforwardedSelectControl(
|
|
|
115
134
|
value={ valueProp }
|
|
116
135
|
variant={ variant }
|
|
117
136
|
>
|
|
118
|
-
{ children ||
|
|
119
|
-
options.map( ( option, index ) => {
|
|
120
|
-
const key =
|
|
121
|
-
option.id ||
|
|
122
|
-
`${ option.label }-${ option.value }-${ index }`;
|
|
123
|
-
|
|
124
|
-
return (
|
|
125
|
-
<option
|
|
126
|
-
key={ key }
|
|
127
|
-
value={ option.value }
|
|
128
|
-
disabled={ option.disabled }
|
|
129
|
-
hidden={ option.hidden }
|
|
130
|
-
>
|
|
131
|
-
{ option.label }
|
|
132
|
-
</option>
|
|
133
|
-
);
|
|
134
|
-
} ) }
|
|
137
|
+
{ children || <SelectOptions options={ options } /> }
|
|
135
138
|
</Select>
|
|
136
139
|
</StyledInputBase>
|
|
137
140
|
</BaseControl>
|
|
@@ -151,6 +154,7 @@ function UnforwardedSelectControl(
|
|
|
151
154
|
*
|
|
152
155
|
* return (
|
|
153
156
|
* <SelectControl
|
|
157
|
+
* __nextHasNoMarginBottom
|
|
154
158
|
* label="Size"
|
|
155
159
|
* value={ size }
|
|
156
160
|
* options={ [
|
|
@@ -164,6 +168,14 @@ function UnforwardedSelectControl(
|
|
|
164
168
|
* };
|
|
165
169
|
* ```
|
|
166
170
|
*/
|
|
167
|
-
export const SelectControl = forwardRef( UnforwardedSelectControl )
|
|
171
|
+
export const SelectControl = forwardRef( UnforwardedSelectControl ) as <
|
|
172
|
+
V extends string,
|
|
173
|
+
>(
|
|
174
|
+
props: WordPressComponentProps<
|
|
175
|
+
SelectControlProps< V >,
|
|
176
|
+
'select',
|
|
177
|
+
false
|
|
178
|
+
> & { ref?: React.Ref< HTMLSelectElement > }
|
|
179
|
+
) => React.JSX.Element | null;
|
|
168
180
|
|
|
169
181
|
export default SelectControl;
|
|
@@ -63,6 +63,7 @@ const SelectControlWithState: StoryFn< typeof SelectControl > = ( props ) => {
|
|
|
63
63
|
|
|
64
64
|
export const Default = SelectControlWithState.bind( {} );
|
|
65
65
|
Default.args = {
|
|
66
|
+
__nextHasNoMarginBottom: true,
|
|
66
67
|
options: [
|
|
67
68
|
{ value: '', label: 'Select an Option', disabled: true },
|
|
68
69
|
{ value: 'a', label: 'Option A' },
|
|
@@ -82,9 +83,11 @@ WithLabelAndHelpText.args = {
|
|
|
82
83
|
* As an alternative to the `options` prop, `optgroup`s and `options` can be
|
|
83
84
|
* passed in as `children` for more customizeability.
|
|
84
85
|
*/
|
|
85
|
-
export const WithCustomChildren
|
|
86
|
-
|
|
87
|
-
|
|
86
|
+
export const WithCustomChildren = SelectControlWithState.bind( {} );
|
|
87
|
+
WithCustomChildren.args = {
|
|
88
|
+
__nextHasNoMarginBottom: true,
|
|
89
|
+
children: (
|
|
90
|
+
<>
|
|
88
91
|
<option value="option-1">Option 1</option>
|
|
89
92
|
<option value="option-2" disabled>
|
|
90
93
|
Option 2 - Disabled
|
|
@@ -97,8 +100,8 @@ export const WithCustomChildren: StoryFn< typeof SelectControl > = ( args ) => {
|
|
|
97
100
|
Option Group 1 - Option 2 - Disabled
|
|
98
101
|
</option>
|
|
99
102
|
</optgroup>
|
|
100
|
-
|
|
101
|
-
)
|
|
103
|
+
</>
|
|
104
|
+
),
|
|
102
105
|
};
|
|
103
106
|
|
|
104
107
|
export const Minimal = SelectControlWithState.bind( {} );
|
|
@@ -7,7 +7,13 @@ import userEvent from '@testing-library/user-event';
|
|
|
7
7
|
/**
|
|
8
8
|
* Internal dependencies
|
|
9
9
|
*/
|
|
10
|
-
import
|
|
10
|
+
import _SelectControl from '..';
|
|
11
|
+
|
|
12
|
+
const SelectControl = (
|
|
13
|
+
props: React.ComponentProps< typeof _SelectControl >
|
|
14
|
+
) => {
|
|
15
|
+
return <_SelectControl { ...props } __nextHasNoMarginBottom />;
|
|
16
|
+
};
|
|
11
17
|
|
|
12
18
|
describe( 'SelectControl', () => {
|
|
13
19
|
it( 'should not render when no options or children are provided', () => {
|
|
@@ -17,8 +23,8 @@ describe( 'SelectControl', () => {
|
|
|
17
23
|
expect( screen.queryByRole( 'combobox' ) ).not.toBeInTheDocument();
|
|
18
24
|
} );
|
|
19
25
|
|
|
20
|
-
it( 'should
|
|
21
|
-
const user =
|
|
26
|
+
it( 'should render its children', async () => {
|
|
27
|
+
const user = userEvent.setup();
|
|
22
28
|
const handleChangeMock = jest.fn();
|
|
23
29
|
|
|
24
30
|
render(
|
|
@@ -46,8 +52,8 @@ describe( 'SelectControl', () => {
|
|
|
46
52
|
);
|
|
47
53
|
} );
|
|
48
54
|
|
|
49
|
-
it( 'should
|
|
50
|
-
const user =
|
|
55
|
+
it( 'should render its options', async () => {
|
|
56
|
+
const user = userEvent.setup();
|
|
51
57
|
const handleChangeMock = jest.fn();
|
|
52
58
|
|
|
53
59
|
render(
|
|
@@ -81,4 +87,148 @@ describe( 'SelectControl', () => {
|
|
|
81
87
|
expect.anything()
|
|
82
88
|
);
|
|
83
89
|
} );
|
|
90
|
+
|
|
91
|
+
it( 'should pass through options props', () => {
|
|
92
|
+
render(
|
|
93
|
+
<SelectControl
|
|
94
|
+
label="Select"
|
|
95
|
+
options={ [
|
|
96
|
+
{
|
|
97
|
+
value: 'value',
|
|
98
|
+
label: 'label',
|
|
99
|
+
'aria-label': 'Aria label',
|
|
100
|
+
},
|
|
101
|
+
] }
|
|
102
|
+
/>
|
|
103
|
+
);
|
|
104
|
+
|
|
105
|
+
expect(
|
|
106
|
+
screen.getByRole( 'option', { name: 'Aria label' } )
|
|
107
|
+
).toBeInTheDocument();
|
|
108
|
+
} );
|
|
109
|
+
|
|
110
|
+
/* eslint-disable jest/expect-expect */
|
|
111
|
+
describe( 'static typing', () => {
|
|
112
|
+
describe( 'single', () => {
|
|
113
|
+
it( 'should infer the value type from available `options`, but not the `value` or `onChange` prop', () => {
|
|
114
|
+
const onChange: ( value: 'foo' | 'bar' ) => void = () => {};
|
|
115
|
+
|
|
116
|
+
<SelectControl
|
|
117
|
+
value="narrow"
|
|
118
|
+
options={ [
|
|
119
|
+
{
|
|
120
|
+
value: 'narrow',
|
|
121
|
+
label: 'Narrow',
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
value: 'value',
|
|
125
|
+
label: 'Value',
|
|
126
|
+
},
|
|
127
|
+
] }
|
|
128
|
+
// @ts-expect-error onChange type is not compatible with inferred value type
|
|
129
|
+
onChange={ onChange }
|
|
130
|
+
/>;
|
|
131
|
+
|
|
132
|
+
<_SelectControl
|
|
133
|
+
// @ts-expect-error "string" is not "narrow" or "value"
|
|
134
|
+
value="string"
|
|
135
|
+
options={ [
|
|
136
|
+
{
|
|
137
|
+
value: 'narrow',
|
|
138
|
+
label: 'Narrow',
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
value: 'value',
|
|
142
|
+
label: 'Value',
|
|
143
|
+
},
|
|
144
|
+
] }
|
|
145
|
+
// @ts-expect-error "string" is not "narrow" or "value"
|
|
146
|
+
onChange={ ( value ) => value === 'string' }
|
|
147
|
+
/>;
|
|
148
|
+
} );
|
|
149
|
+
|
|
150
|
+
it( 'should accept an explicit type argument', () => {
|
|
151
|
+
<_SelectControl< 'narrow' | 'value' >
|
|
152
|
+
// @ts-expect-error "string" is not "narrow" or "value"
|
|
153
|
+
value="string"
|
|
154
|
+
options={ [
|
|
155
|
+
{
|
|
156
|
+
value: 'narrow',
|
|
157
|
+
label: 'Narrow',
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
// @ts-expect-error "string" is not "narrow" or "value"
|
|
161
|
+
value: 'string',
|
|
162
|
+
label: 'String',
|
|
163
|
+
},
|
|
164
|
+
] }
|
|
165
|
+
/>;
|
|
166
|
+
} );
|
|
167
|
+
} );
|
|
168
|
+
|
|
169
|
+
describe( 'multiple', () => {
|
|
170
|
+
it( 'should infer the value type from available `options`, but not the `value` or `onChange` prop', () => {
|
|
171
|
+
const onChange: (
|
|
172
|
+
value: ( 'foo' | 'bar' )[]
|
|
173
|
+
) => void = () => {};
|
|
174
|
+
|
|
175
|
+
<_SelectControl
|
|
176
|
+
multiple
|
|
177
|
+
value={ [ 'narrow' ] }
|
|
178
|
+
options={ [
|
|
179
|
+
{
|
|
180
|
+
value: 'narrow',
|
|
181
|
+
label: 'Narrow',
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
value: 'value',
|
|
185
|
+
label: 'Value',
|
|
186
|
+
},
|
|
187
|
+
] }
|
|
188
|
+
// @ts-expect-error onChange type is not compatible with inferred value type
|
|
189
|
+
onChange={ onChange }
|
|
190
|
+
/>;
|
|
191
|
+
|
|
192
|
+
<_SelectControl
|
|
193
|
+
multiple
|
|
194
|
+
// @ts-expect-error "string" is not "narrow" or "value"
|
|
195
|
+
value={ [ 'string' ] }
|
|
196
|
+
options={ [
|
|
197
|
+
{
|
|
198
|
+
value: 'narrow',
|
|
199
|
+
label: 'Narrow',
|
|
200
|
+
},
|
|
201
|
+
{
|
|
202
|
+
value: 'value',
|
|
203
|
+
label: 'Value',
|
|
204
|
+
},
|
|
205
|
+
] }
|
|
206
|
+
onChange={ ( value ) =>
|
|
207
|
+
// @ts-expect-error "string" is not "narrow" or "value"
|
|
208
|
+
value.forEach( ( v ) => v === 'string' )
|
|
209
|
+
}
|
|
210
|
+
/>;
|
|
211
|
+
} );
|
|
212
|
+
|
|
213
|
+
it( 'should accept an explicit type argument', () => {
|
|
214
|
+
<_SelectControl< 'narrow' | 'value' >
|
|
215
|
+
multiple
|
|
216
|
+
// @ts-expect-error "string" is not "narrow" or "value"
|
|
217
|
+
value={ [ 'string' ] }
|
|
218
|
+
options={ [
|
|
219
|
+
{
|
|
220
|
+
value: 'narrow',
|
|
221
|
+
label: 'Narrow',
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
// @ts-expect-error "string" is not "narrow" or "value"
|
|
225
|
+
value: 'string',
|
|
226
|
+
label: 'String',
|
|
227
|
+
},
|
|
228
|
+
] }
|
|
229
|
+
/>;
|
|
230
|
+
} );
|
|
231
|
+
} );
|
|
232
|
+
} );
|
|
233
|
+
/* eslint-enable jest/expect-expect */
|
|
84
234
|
} );
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import type { ChangeEvent,
|
|
4
|
+
import type { ChangeEvent, ReactNode } from 'react';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Internal dependencies
|
|
@@ -9,7 +9,7 @@ import type { ChangeEvent, FocusEvent, ReactNode } from 'react';
|
|
|
9
9
|
import type { InputBaseProps } from '../input-control/types';
|
|
10
10
|
import type { BaseControlProps } from '../base-control/types';
|
|
11
11
|
|
|
12
|
-
type SelectControlBaseProps = Pick<
|
|
12
|
+
type SelectControlBaseProps< V extends string > = Pick<
|
|
13
13
|
InputBaseProps,
|
|
14
14
|
| '__next36pxDefaultSize'
|
|
15
15
|
| '__next40pxDefaultSize'
|
|
@@ -22,9 +22,12 @@ type SelectControlBaseProps = Pick<
|
|
|
22
22
|
| 'suffix'
|
|
23
23
|
> &
|
|
24
24
|
Pick< BaseControlProps, 'help' | '__nextHasNoMarginBottom' > & {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
/**
|
|
26
|
+
* An array of option property objects to be rendered,
|
|
27
|
+
* each with a `label` and `value` property, as well as any other
|
|
28
|
+
* `<option>` attributes.
|
|
29
|
+
*/
|
|
30
|
+
options?: readonly ( {
|
|
28
31
|
/**
|
|
29
32
|
* The label to be shown to the user.
|
|
30
33
|
*/
|
|
@@ -33,21 +36,11 @@ type SelectControlBaseProps = Pick<
|
|
|
33
36
|
* The internal value used to choose the selected value.
|
|
34
37
|
* This is also the value passed to `onChange` when the option is selected.
|
|
35
38
|
*/
|
|
36
|
-
value:
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
* @default false
|
|
42
|
-
*/
|
|
43
|
-
disabled?: boolean;
|
|
44
|
-
/**
|
|
45
|
-
* Whether or not the option should be hidden.
|
|
46
|
-
*
|
|
47
|
-
* @default false
|
|
48
|
-
*/
|
|
49
|
-
hidden?: boolean;
|
|
50
|
-
}[];
|
|
39
|
+
value: V;
|
|
40
|
+
} & Omit<
|
|
41
|
+
React.OptionHTMLAttributes< HTMLOptionElement >,
|
|
42
|
+
'label' | 'value'
|
|
43
|
+
> )[];
|
|
51
44
|
/**
|
|
52
45
|
* As an alternative to the `options` prop, `optgroup`s and `options` can be
|
|
53
46
|
* passed in as `children` for more customizability.
|
|
@@ -61,50 +54,62 @@ type SelectControlBaseProps = Pick<
|
|
|
61
54
|
variant?: 'default' | 'minimal';
|
|
62
55
|
};
|
|
63
56
|
|
|
64
|
-
export type SelectControlSingleSelectionProps =
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
57
|
+
export type SelectControlSingleSelectionProps< V extends string = string > =
|
|
58
|
+
SelectControlBaseProps< V > & {
|
|
59
|
+
/**
|
|
60
|
+
* If this property is added, multiple values can be selected. The `value` passed should be an array.
|
|
61
|
+
*
|
|
62
|
+
* In most cases, it is preferable to use the `FormTokenField` or `CheckboxControl` components instead.
|
|
63
|
+
*
|
|
64
|
+
* @default false
|
|
65
|
+
*/
|
|
66
|
+
multiple?: false;
|
|
67
|
+
/**
|
|
68
|
+
* The value of the selected option.
|
|
69
|
+
*
|
|
70
|
+
* If `multiple` is true, the `value` should be an array with the values of the selected options.
|
|
71
|
+
*/
|
|
72
|
+
value?: NoInfer< V >;
|
|
73
|
+
/**
|
|
74
|
+
* A function that receives the value of the new option that is being selected as input.
|
|
75
|
+
*
|
|
76
|
+
* If `multiple` is `true`, the value received is an array of the selected value.
|
|
77
|
+
* Otherwise, the value received is a single value with the new selected value.
|
|
78
|
+
*/
|
|
79
|
+
onChange?: (
|
|
80
|
+
value: NoInfer< V >,
|
|
81
|
+
extra?: { event?: ChangeEvent< HTMLSelectElement > }
|
|
82
|
+
) => void;
|
|
83
|
+
};
|
|
85
84
|
|
|
86
|
-
export type SelectControlMultipleSelectionProps
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
85
|
+
export type SelectControlMultipleSelectionProps< V extends string > =
|
|
86
|
+
SelectControlBaseProps< V > & {
|
|
87
|
+
/**
|
|
88
|
+
* If this property is added, multiple values can be selected. The `value` passed should be an array.
|
|
89
|
+
*
|
|
90
|
+
* In most cases, it is preferable to use the `FormTokenField` or `CheckboxControl` components instead.
|
|
91
|
+
*
|
|
92
|
+
* @default false
|
|
93
|
+
*/
|
|
94
|
+
multiple: true;
|
|
95
|
+
/**
|
|
96
|
+
* The value of the selected option.
|
|
97
|
+
*
|
|
98
|
+
* If `multiple` is true, the `value` should be an array with the values of the selected options.
|
|
99
|
+
*/
|
|
100
|
+
value?: NoInfer< V >[];
|
|
101
|
+
/**
|
|
102
|
+
* A function that receives the value of the new option that is being selected as input.
|
|
103
|
+
*
|
|
104
|
+
* If `multiple` is `true`, the value received is an array of the selected value.
|
|
105
|
+
* Otherwise, the value received is a single value with the new selected value.
|
|
106
|
+
*/
|
|
107
|
+
onChange?: (
|
|
108
|
+
value: NoInfer< V >[],
|
|
109
|
+
extra?: { event?: ChangeEvent< HTMLSelectElement > }
|
|
110
|
+
) => void;
|
|
111
|
+
};
|
|
107
112
|
|
|
108
|
-
export type SelectControlProps =
|
|
109
|
-
| SelectControlSingleSelectionProps
|
|
110
|
-
| SelectControlMultipleSelectionProps
|
|
113
|
+
export type SelectControlProps< V extends string = string > =
|
|
114
|
+
| SelectControlSingleSelectionProps< V >
|
|
115
|
+
| SelectControlMultipleSelectionProps< V >;
|
package/src/snackbar/style.scss
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
font-size: $default-font-size;
|
|
4
4
|
background: rgba($black, 0.85); // Emulates #1e1e1e closely.
|
|
5
5
|
backdrop-filter: blur($grid-unit-20) saturate(180%);
|
|
6
|
-
border-radius: $radius-
|
|
7
|
-
box-shadow: $
|
|
6
|
+
border-radius: $radius-medium;
|
|
7
|
+
box-shadow: $elevation-x-small;
|
|
8
8
|
color: $white;
|
|
9
9
|
padding: $grid-unit-15 ($grid-unit-05 * 5);
|
|
10
10
|
width: 100%;
|
package/src/tab-panel/index.tsx
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
4
|
import * as Ariakit from '@ariakit/react';
|
|
5
|
+
import { useStoreState } from '@ariakit/react';
|
|
5
6
|
import clsx from 'clsx';
|
|
6
7
|
import type { ForwardedRef } from 'react';
|
|
7
8
|
|
|
@@ -121,7 +122,9 @@ const UnforwardedTabPanel = (
|
|
|
121
122
|
defaultSelectedId: prependInstanceId( initialTabName ),
|
|
122
123
|
} );
|
|
123
124
|
|
|
124
|
-
const selectedTabName = extractTabName(
|
|
125
|
+
const selectedTabName = extractTabName(
|
|
126
|
+
useStoreState( tabStore, 'selectedId' )
|
|
127
|
+
);
|
|
125
128
|
|
|
126
129
|
const setTabStoreSelectedId = useCallback(
|
|
127
130
|
( tabName: string ) => {
|
package/src/tab-panel/style.scss
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
4
|
import { render, screen, waitFor } from '@testing-library/react';
|
|
5
|
-
import { press, hover, click
|
|
5
|
+
import { press, hover, click } from '@ariakit/test';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* WordPress dependencies
|
|
@@ -155,7 +155,6 @@ describe.each( [
|
|
|
155
155
|
// Tab to focus the tablist. Make sure alpha is focused, and that the
|
|
156
156
|
// corresponding tooltip is shown.
|
|
157
157
|
expect( screen.queryByText( 'Alpha' ) ).not.toBeInTheDocument();
|
|
158
|
-
await sleep();
|
|
159
158
|
await press.Tab();
|
|
160
159
|
expect( mockOnSelect ).toHaveBeenCalledTimes( 1 );
|
|
161
160
|
expect( screen.getByText( 'Alpha' ) ).toBeInTheDocument();
|
|
@@ -627,7 +626,6 @@ describe.each( [
|
|
|
627
626
|
// Tab to focus the tablist. Make sure alpha is focused.
|
|
628
627
|
expect( await getSelectedTab() ).toHaveTextContent( 'Alpha' );
|
|
629
628
|
expect( await getSelectedTab() ).not.toHaveFocus();
|
|
630
|
-
await sleep();
|
|
631
629
|
await press.Tab();
|
|
632
630
|
expect( await getSelectedTab() ).toHaveFocus();
|
|
633
631
|
|
|
@@ -665,7 +663,6 @@ describe.each( [
|
|
|
665
663
|
// Tab to focus the tablist. Make sure Alpha is focused.
|
|
666
664
|
expect( await getSelectedTab() ).toHaveTextContent( 'Alpha' );
|
|
667
665
|
expect( await getSelectedTab() ).not.toHaveFocus();
|
|
668
|
-
await sleep();
|
|
669
666
|
await press.Tab();
|
|
670
667
|
expect( await getSelectedTab() ).toHaveFocus();
|
|
671
668
|
|
|
@@ -703,7 +700,6 @@ describe.each( [
|
|
|
703
700
|
// Tab to focus the tablist. Make sure alpha is focused.
|
|
704
701
|
expect( await getSelectedTab() ).toHaveTextContent( 'Alpha' );
|
|
705
702
|
expect( await getSelectedTab() ).not.toHaveFocus();
|
|
706
|
-
await sleep();
|
|
707
703
|
await press.Tab();
|
|
708
704
|
expect( await getSelectedTab() ).toHaveFocus();
|
|
709
705
|
|
|
@@ -799,7 +795,6 @@ describe.each( [
|
|
|
799
795
|
// Tab to focus the tablist. Make sure Alpha is focused.
|
|
800
796
|
expect( await getSelectedTab() ).toHaveTextContent( 'Alpha' );
|
|
801
797
|
expect( await getSelectedTab() ).not.toHaveFocus();
|
|
802
|
-
await sleep();
|
|
803
798
|
await press.Tab();
|
|
804
799
|
expect( await getSelectedTab() ).toHaveFocus();
|
|
805
800
|
expect( mockOnSelect ).toHaveBeenCalledTimes( 1 );
|
|
@@ -841,7 +836,6 @@ describe.each( [
|
|
|
841
836
|
|
|
842
837
|
// Tab should initially focus the first tab in the tablist, which
|
|
843
838
|
// is Alpha.
|
|
844
|
-
await sleep();
|
|
845
839
|
await press.Tab();
|
|
846
840
|
expect(
|
|
847
841
|
await screen.findByRole( 'tab', { name: 'Alpha' } )
|
|
@@ -849,7 +843,6 @@ describe.each( [
|
|
|
849
843
|
|
|
850
844
|
// Because all other tabs should have `tabindex=-1`, pressing Tab
|
|
851
845
|
// should NOT move the focus to the next tab, which is Beta.
|
|
852
|
-
await sleep();
|
|
853
846
|
await press.Tab();
|
|
854
847
|
expect(
|
|
855
848
|
await screen.findByRole( 'tab', { name: 'Beta' } )
|
package/src/tabs/index.tsx
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
4
|
import * as Ariakit from '@ariakit/react';
|
|
5
|
+
import { useStoreState } from '@ariakit/react';
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* WordPress dependencies
|
|
@@ -48,7 +49,7 @@ function Tabs( {
|
|
|
48
49
|
|
|
49
50
|
const isControlled = selectedTabId !== undefined;
|
|
50
51
|
|
|
51
|
-
const { items, selectedId, activeId } = store
|
|
52
|
+
const { items, selectedId, activeId } = useStoreState( store );
|
|
52
53
|
const { setSelectedId, setActiveId } = store;
|
|
53
54
|
|
|
54
55
|
// Keep track of whether tabs have been populated. This is used to prevent
|
package/src/tabs/tablist.tsx
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
4
|
import * as Ariakit from '@ariakit/react';
|
|
5
|
+
import { useStoreState } from '@ariakit/react';
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* WordPress dependencies
|
|
@@ -26,7 +27,8 @@ export const TabList = forwardRef<
|
|
|
26
27
|
>( function TabList( { children, ...otherProps }, ref ) {
|
|
27
28
|
const context = useTabsContext();
|
|
28
29
|
|
|
29
|
-
const
|
|
30
|
+
const tabStoreState = useStoreState( context?.store );
|
|
31
|
+
const selectedId = tabStoreState?.selectedId;
|
|
30
32
|
const indicatorPosition = useTrackElementOffsetRect(
|
|
31
33
|
context?.store.item( selectedId )?.element
|
|
32
34
|
);
|
|
@@ -37,13 +39,13 @@ export const TabList = forwardRef<
|
|
|
37
39
|
( { previousValue } ) => previousValue && setAnimationEnabled( true )
|
|
38
40
|
);
|
|
39
41
|
|
|
40
|
-
if ( ! context ) {
|
|
42
|
+
if ( ! context || ! tabStoreState ) {
|
|
41
43
|
warning( '`Tabs.TabList` must be wrapped in a `Tabs` component.' );
|
|
42
44
|
return null;
|
|
43
45
|
}
|
|
44
|
-
const { store } = context;
|
|
45
46
|
|
|
46
|
-
const {
|
|
47
|
+
const { store } = context;
|
|
48
|
+
const { activeId, selectOnMove } = tabStoreState;
|
|
47
49
|
const { setActiveId } = store;
|
|
48
50
|
|
|
49
51
|
const onBlur = () => {
|
package/src/tabs/tabpanel.tsx
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* External dependencies
|
|
3
3
|
*/
|
|
4
|
+
import { useStoreState } from '@ariakit/react';
|
|
4
5
|
|
|
6
|
+
/**
|
|
7
|
+
* WordPress dependencies
|
|
8
|
+
*/
|
|
5
9
|
import { forwardRef } from '@wordpress/element';
|
|
6
10
|
|
|
7
11
|
/**
|
|
@@ -22,13 +26,13 @@ export const TabPanel = forwardRef<
|
|
|
22
26
|
ref
|
|
23
27
|
) {
|
|
24
28
|
const context = useTabsContext();
|
|
29
|
+
const selectedId = useStoreState( context?.store, 'selectedId' );
|
|
25
30
|
if ( ! context ) {
|
|
26
31
|
warning( '`Tabs.TabPanel` must be wrapped in a `Tabs` component.' );
|
|
27
32
|
return null;
|
|
28
33
|
}
|
|
29
34
|
const { store, instanceId } = context;
|
|
30
35
|
const instancedTabId = `${ instanceId }-${ tabId }`;
|
|
31
|
-
const selectedId = store.useState( ( state ) => state.selectedId );
|
|
32
36
|
|
|
33
37
|
return (
|
|
34
38
|
<StyledTabPanel
|