@wordpress/components 28.5.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 +82 -0
- 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/base-control/index.js +54 -41
- package/build/base-control/index.js.map +1 -1
- package/build/base-control/types.js.map +1 -1
- package/build/border-control/styles.js +13 -13
- 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/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/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/date-time/time/index.js +11 -3
- package/build/date-time/time/index.js.map +1 -1
- 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/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/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 +5 -6
- package/build/query-controls/index.js.map +1 -1
- package/build/query-controls/types.js.map +1 -1
- package/build/radio-control/index.js +20 -19
- package/build/radio-control/index.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 +1 -0
- package/build/select-control/index.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 +1 -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 +9 -1
- 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 +1 -0
- 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-base/styles.js +9 -9
- package/build/toggle-group-control/toggle-group-control-option-base/styles.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 +3 -2
- package/build/tooltip/index.js.map +1 -1
- package/build/tree-select/index.js +19 -6
- 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 +4 -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/base-control/index.js +54 -42
- package/build-module/base-control/index.js.map +1 -1
- package/build-module/base-control/types.js.map +1 -1
- package/build-module/border-control/styles.js +13 -13
- 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/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/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/date-time/time/index.js +11 -3
- package/build-module/date-time/time/index.js.map +1 -1
- 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/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/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 +5 -6
- 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 +20 -19
- package/build-module/radio-control/index.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 +1 -0
- package/build-module/select-control/index.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 +1 -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 +9 -1
- 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 +1 -0
- 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-base/styles.js +9 -9
- package/build-module/toggle-group-control/toggle-group-control-option-base/styles.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 +2 -1
- package/build-module/tooltip/index.js.map +1 -1
- package/build-module/tree-select/index.js +19 -6
- 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 +4 -3
- package/build-module/utils/config-values.js.map +1 -1
- package/build-style/style-rtl.css +19 -9
- package/build-style/style.css +19 -9
- 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/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/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/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.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/types.d.ts +3 -3
- 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/date-time/date-time/index.d.ts +1 -1
- 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/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.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/index.d.ts +1 -1
- package/build-types/index.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 +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/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-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.map +1 -1
- package/build-types/select-control/stories/index.story.d.ts +4 -2
- package/build-types/select-control/stories/index.story.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/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.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.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.map +1 -1
- package/build-types/tooltip/index.d.ts.map +1 -1
- package/build-types/tree-select/index.d.ts.map +1 -1
- package/build-types/utils/config-values.d.ts +4 -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/angle-picker-control/styles/angle-picker-control-styles.tsx +2 -2
- package/src/base-control/README.md +5 -2
- package/src/base-control/index.tsx +61 -41
- 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 -1
- package/src/button/README.md +7 -0
- package/src/button/style.scss +2 -2
- 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/types.ts +2 -3
- package/src/color-indicator/style.scss +1 -1
- 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/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/test/index.tsx +125 -0
- package/src/custom-select-control/types.ts +3 -3
- package/src/custom-select-control-v2/custom-select.tsx +2 -1
- package/src/date-time/time/index.tsx +26 -12
- 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 +17 -15
- 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/form-file-upload/README.md +8 -0
- package/src/form-file-upload/types.ts +6 -0
- package/src/form-token-field/README.md +1 -0
- package/src/guide/style.scss +0 -1
- 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/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 +4 -1
- 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 +5 -6
- package/src/query-controls/types.ts +2 -1
- package/src/radio-control/index.tsx +28 -20
- package/src/radio-control/style.scss +13 -2
- package/src/radio-control/test/index.tsx +43 -40
- 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 +8 -0
- package/src/select-control/index.tsx +1 -0
- package/src/select-control/stories/index.story.tsx +8 -5
- package/src/select-control/test/select-control.tsx +12 -6
- 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/tabs/index.tsx +2 -1
- package/src/tabs/tablist.tsx +6 -4
- package/src/tabs/tabpanel.tsx +6 -2
- package/src/text/styles.ts +1 -1
- package/src/text-control/README.md +8 -0
- package/src/text-control/index.tsx +1 -0
- package/src/text-control/stories/index.story.tsx +3 -1
- 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/index.tsx +9 -0
- package/src/toggle-control/stories/index.story.tsx +1 -0
- package/src/toggle-control/test/index.tsx +7 -1
- package/src/toggle-group-control/test/__snapshots__/index.tsx.snap +8 -24
- package/src/toggle-group-control/test/index.tsx +5 -1
- package/src/toggle-group-control/toggle-group-control/README.md +7 -0
- package/src/toggle-group-control/toggle-group-control/as-radio-group.tsx +2 -1
- package/src/toggle-group-control/toggle-group-control/component.tsx +1 -0
- package/src/toggle-group-control/toggle-group-control/styles.ts +1 -1
- package/src/toggle-group-control/toggle-group-control-option-base/styles.ts +2 -2
- package/src/toolbar/toolbar/style.scss +2 -2
- package/src/tools-panel/styles.ts +1 -1
- package/src/tooltip/index.tsx +2 -1
- package/src/tooltip/style.scss +1 -1
- package/src/tree-select/index.tsx +16 -5
- 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 +4 -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/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/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/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/utils/input/base.js +0 -30
- package/src/utils/input/index.js +0 -1
- package/src/utils/input/input-control.js +0 -63
|
@@ -7,6 +7,7 @@ import type { ForwardedRef } from 'react';
|
|
|
7
7
|
/**
|
|
8
8
|
* WordPress dependencies
|
|
9
9
|
*/
|
|
10
|
+
import deprecated from '@wordpress/deprecated';
|
|
10
11
|
import { forwardRef } from '@wordpress/element';
|
|
11
12
|
|
|
12
13
|
/**
|
|
@@ -26,34 +27,12 @@ import { contextConnectWithoutRef, useContextSystem } from '../context';
|
|
|
26
27
|
|
|
27
28
|
export { useBaseControlProps } from './hooks';
|
|
28
29
|
|
|
29
|
-
/**
|
|
30
|
-
* `BaseControl` is a component used to generate labels and help text for components handling user inputs.
|
|
31
|
-
*
|
|
32
|
-
* ```jsx
|
|
33
|
-
* import { BaseControl, useBaseControlProps } from '@wordpress/components';
|
|
34
|
-
*
|
|
35
|
-
* // Render a `BaseControl` for a textarea input
|
|
36
|
-
* const MyCustomTextareaControl = ({ children, ...baseProps }) => (
|
|
37
|
-
* // `useBaseControlProps` is a convenience hook to get the props for the `BaseControl`
|
|
38
|
-
* // and the inner control itself. Namely, it takes care of generating a unique `id`,
|
|
39
|
-
* // properly associating it with the `label` and `help` elements.
|
|
40
|
-
* const { baseControlProps, controlProps } = useBaseControlProps( baseProps );
|
|
41
|
-
*
|
|
42
|
-
* return (
|
|
43
|
-
* <BaseControl { ...baseControlProps } __nextHasNoMarginBottom={ true }>
|
|
44
|
-
* <textarea { ...controlProps }>
|
|
45
|
-
* { children }
|
|
46
|
-
* </textarea>
|
|
47
|
-
* </BaseControl>
|
|
48
|
-
* );
|
|
49
|
-
* );
|
|
50
|
-
* ```
|
|
51
|
-
*/
|
|
52
30
|
const UnconnectedBaseControl = (
|
|
53
31
|
props: WordPressComponentProps< BaseControlProps, null >
|
|
54
32
|
) => {
|
|
55
33
|
const {
|
|
56
34
|
__nextHasNoMarginBottom = false,
|
|
35
|
+
__associatedWPComponentName = 'BaseControl',
|
|
57
36
|
id,
|
|
58
37
|
label,
|
|
59
38
|
hideLabelFromVision = false,
|
|
@@ -62,6 +41,17 @@ const UnconnectedBaseControl = (
|
|
|
62
41
|
children,
|
|
63
42
|
} = useContextSystem( props, 'BaseControl' );
|
|
64
43
|
|
|
44
|
+
if ( ! __nextHasNoMarginBottom ) {
|
|
45
|
+
deprecated(
|
|
46
|
+
`Bottom margin styles for wp.components.${ __associatedWPComponentName }`,
|
|
47
|
+
{
|
|
48
|
+
since: '6.7',
|
|
49
|
+
version: '7.0',
|
|
50
|
+
hint: 'Set the `__nextHasNoMarginBottom` prop to true to start opting into the new styles, which will become the default in a future version.',
|
|
51
|
+
}
|
|
52
|
+
);
|
|
53
|
+
}
|
|
54
|
+
|
|
65
55
|
return (
|
|
66
56
|
<Wrapper className={ className }>
|
|
67
57
|
<StyledField
|
|
@@ -105,23 +95,6 @@ const UnconnectedBaseControl = (
|
|
|
105
95
|
);
|
|
106
96
|
};
|
|
107
97
|
|
|
108
|
-
/**
|
|
109
|
-
* `BaseControl.VisualLabel` is used to render a purely visual label inside a `BaseControl` component.
|
|
110
|
-
*
|
|
111
|
-
* It should only be used in cases where the children being rendered inside `BaseControl` are already accessibly labeled,
|
|
112
|
-
* e.g., a button, but we want an additional visual label for that section equivalent to the labels `BaseControl` would
|
|
113
|
-
* otherwise use if the `label` prop was passed.
|
|
114
|
-
*
|
|
115
|
-
* @example
|
|
116
|
-
* import { BaseControl } from '@wordpress/components';
|
|
117
|
-
*
|
|
118
|
-
* const MyBaseControl = () => (
|
|
119
|
-
* <BaseControl help="This button is already accessibly labeled.">
|
|
120
|
-
* <BaseControl.VisualLabel>Author</BaseControl.VisualLabel>
|
|
121
|
-
* <Button>Select an author</Button>
|
|
122
|
-
* </BaseControl>
|
|
123
|
-
* );
|
|
124
|
-
*/
|
|
125
98
|
const UnforwardedVisualLabel = (
|
|
126
99
|
props: WordPressComponentProps< BaseControlVisualLabelProps, 'span' >,
|
|
127
100
|
ref: ForwardedRef< any >
|
|
@@ -141,9 +114,56 @@ const UnforwardedVisualLabel = (
|
|
|
141
114
|
|
|
142
115
|
export const VisualLabel = forwardRef( UnforwardedVisualLabel );
|
|
143
116
|
|
|
117
|
+
/**
|
|
118
|
+
* `BaseControl` is a component used to generate labels and help text for components handling user inputs.
|
|
119
|
+
*
|
|
120
|
+
* ```jsx
|
|
121
|
+
* import { BaseControl, useBaseControlProps } from '@wordpress/components';
|
|
122
|
+
*
|
|
123
|
+
* // Render a `BaseControl` for a textarea input
|
|
124
|
+
* const MyCustomTextareaControl = ({ children, ...baseProps }) => (
|
|
125
|
+
* // `useBaseControlProps` is a convenience hook to get the props for the `BaseControl`
|
|
126
|
+
* // and the inner control itself. Namely, it takes care of generating a unique `id`,
|
|
127
|
+
* // properly associating it with the `label` and `help` elements.
|
|
128
|
+
* const { baseControlProps, controlProps } = useBaseControlProps( baseProps );
|
|
129
|
+
*
|
|
130
|
+
* return (
|
|
131
|
+
* <BaseControl { ...baseControlProps } __nextHasNoMarginBottom>
|
|
132
|
+
* <textarea { ...controlProps }>
|
|
133
|
+
* { children }
|
|
134
|
+
* </textarea>
|
|
135
|
+
* </BaseControl>
|
|
136
|
+
* );
|
|
137
|
+
* );
|
|
138
|
+
* ```
|
|
139
|
+
*/
|
|
144
140
|
export const BaseControl = Object.assign(
|
|
145
141
|
contextConnectWithoutRef( UnconnectedBaseControl, 'BaseControl' ),
|
|
146
|
-
|
|
142
|
+
|
|
143
|
+
{
|
|
144
|
+
/**
|
|
145
|
+
* `BaseControl.VisualLabel` is used to render a purely visual label inside a `BaseControl` component.
|
|
146
|
+
*
|
|
147
|
+
* It should only be used in cases where the children being rendered inside `BaseControl` are already accessibly labeled,
|
|
148
|
+
* e.g., a button, but we want an additional visual label for that section equivalent to the labels `BaseControl` would
|
|
149
|
+
* otherwise use if the `label` prop was passed.
|
|
150
|
+
*
|
|
151
|
+
* ```jsx
|
|
152
|
+
* import { BaseControl } from '@wordpress/components';
|
|
153
|
+
*
|
|
154
|
+
* const MyBaseControl = () => (
|
|
155
|
+
* <BaseControl
|
|
156
|
+
* __nextHasNoMarginBottom
|
|
157
|
+
* help="This button is already accessibly labeled."
|
|
158
|
+
* >
|
|
159
|
+
* <BaseControl.VisualLabel>Author</BaseControl.VisualLabel>
|
|
160
|
+
* <Button>Select an author</Button>
|
|
161
|
+
* </BaseControl>
|
|
162
|
+
* );
|
|
163
|
+
* ```
|
|
164
|
+
*/
|
|
165
|
+
VisualLabel,
|
|
166
|
+
}
|
|
147
167
|
);
|
|
148
168
|
|
|
149
169
|
export default BaseControl;
|
|
@@ -10,6 +10,13 @@ export type BaseControlProps = {
|
|
|
10
10
|
* @default false
|
|
11
11
|
*/
|
|
12
12
|
__nextHasNoMarginBottom?: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Temporary private prop for showing better deprecation messages,
|
|
15
|
+
* e.g. `Some feature from wp.components.${ __associatedWPControl } is deprecated`.
|
|
16
|
+
*
|
|
17
|
+
* @ignore
|
|
18
|
+
*/
|
|
19
|
+
__associatedWPComponentName?: string;
|
|
13
20
|
/**
|
|
14
21
|
* The HTML `id` of the control element (passed in as a child to `BaseControl`) to which labels and help text are being generated.
|
|
15
22
|
* This is necessary to accessibly associate the label with that element.
|
|
@@ -169,3 +169,10 @@ const splitBorders = {
|
|
|
169
169
|
```
|
|
170
170
|
|
|
171
171
|
- Required: No
|
|
172
|
+
|
|
173
|
+
### `__next40pxDefaultSize`: `boolean`
|
|
174
|
+
|
|
175
|
+
Start opting into the larger default height that will become the default size in a future version.
|
|
176
|
+
|
|
177
|
+
- Required: No
|
|
178
|
+
- Default: `false`
|
|
@@ -173,3 +173,10 @@ Flags whether this `BorderControl` should also render a `RangeControl` for
|
|
|
173
173
|
additional control over a border's width.
|
|
174
174
|
|
|
175
175
|
- Required: No
|
|
176
|
+
|
|
177
|
+
### `__next40pxDefaultSize`: `boolean`
|
|
178
|
+
|
|
179
|
+
Start opting into the larger default height that will become the default size in a future version.
|
|
180
|
+
|
|
181
|
+
- Required: No
|
|
182
|
+
- Default: `false`
|
|
@@ -99,7 +99,7 @@ export const colorIndicatorWrapper = (
|
|
|
99
99
|
const { style } = border || {};
|
|
100
100
|
|
|
101
101
|
return css`
|
|
102
|
-
border-radius:
|
|
102
|
+
border-radius: ${ CONFIG.radiusFull };
|
|
103
103
|
border: 2px solid transparent;
|
|
104
104
|
${ style ? colorIndicatorBorder( border ) : undefined }
|
|
105
105
|
width: ${ size === '__unstable-large' ? '24px' : '22px' };
|
package/src/button/README.md
CHANGED
|
@@ -292,6 +292,13 @@ Specifies the button's style. The accepted values are `'primary'` (the primary b
|
|
|
292
292
|
|
|
293
293
|
- Required: No
|
|
294
294
|
|
|
295
|
+
#### `__next40pxDefaultSize`: `boolean`
|
|
296
|
+
|
|
297
|
+
Start opting into the larger default height that will become the default size in a future version.
|
|
298
|
+
|
|
299
|
+
- Required: No
|
|
300
|
+
- Default: `false`
|
|
301
|
+
|
|
295
302
|
## Related components
|
|
296
303
|
|
|
297
304
|
- To group buttons together, use the [ButtonGroup](/packages/components/src/button-group/README.md) component.
|
package/src/button/style.scss
CHANGED
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
align-items: center;
|
|
23
23
|
box-sizing: border-box;
|
|
24
24
|
padding: 6px 12px;
|
|
25
|
-
border-radius: $radius-
|
|
25
|
+
border-radius: $radius-small;
|
|
26
26
|
color: $components-color-foreground;
|
|
27
27
|
|
|
28
28
|
&.is-next-40px-default-size {
|
|
@@ -249,7 +249,7 @@
|
|
|
249
249
|
height: auto;
|
|
250
250
|
|
|
251
251
|
&:focus {
|
|
252
|
-
border-radius: $radius-
|
|
252
|
+
border-radius: $radius-small;
|
|
253
253
|
}
|
|
254
254
|
|
|
255
255
|
&:disabled,
|
|
@@ -12,11 +12,11 @@
|
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
&:first-child {
|
|
15
|
-
border-radius: $radius-
|
|
15
|
+
border-radius: $radius-small 0 0 $radius-small;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
&:last-child {
|
|
19
|
-
border-radius: 0 $radius-
|
|
19
|
+
border-radius: 0 $radius-small $radius-small 0;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
// The focused button should be elevated so the focus ring isn't cropped,
|
|
@@ -20,13 +20,20 @@ const noop = () => {};
|
|
|
20
20
|
const getInput = () => screen.getByRole( 'checkbox' ) as HTMLInputElement;
|
|
21
21
|
|
|
22
22
|
const CheckboxControl = ( props: Omit< CheckboxControlProps, 'onChange' > ) => {
|
|
23
|
-
return
|
|
23
|
+
return (
|
|
24
|
+
<BaseCheckboxControl
|
|
25
|
+
onChange={ noop }
|
|
26
|
+
{ ...props }
|
|
27
|
+
__nextHasNoMarginBottom
|
|
28
|
+
/>
|
|
29
|
+
);
|
|
24
30
|
};
|
|
25
31
|
|
|
26
32
|
const ControlledCheckboxControl = ( { onChange }: CheckboxControlProps ) => {
|
|
27
33
|
const [ isChecked, setChecked ] = useState( false );
|
|
28
34
|
return (
|
|
29
35
|
<BaseCheckboxControl
|
|
36
|
+
__nextHasNoMarginBottom
|
|
30
37
|
checked={ isChecked }
|
|
31
38
|
onChange={ ( value ) => {
|
|
32
39
|
setChecked( value );
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
4
|
import clsx from 'clsx';
|
|
5
|
+
import { useStoreState } from '@ariakit/react';
|
|
5
6
|
import type { ForwardedRef } from 'react';
|
|
6
7
|
|
|
7
8
|
/**
|
|
@@ -16,9 +17,9 @@ import { Icon, check } from '@wordpress/icons';
|
|
|
16
17
|
*/
|
|
17
18
|
import { CircularOptionPickerContext } from './circular-option-picker-context';
|
|
18
19
|
import Button from '../button';
|
|
19
|
-
import {
|
|
20
|
+
import { Composite } from '../composite';
|
|
20
21
|
import Tooltip from '../tooltip';
|
|
21
|
-
import type { OptionProps
|
|
22
|
+
import type { OptionProps } from './types';
|
|
22
23
|
|
|
23
24
|
function UnforwardedOptionAsButton(
|
|
24
25
|
props: {
|
|
@@ -45,19 +46,21 @@ function UnforwardedOptionAsOption(
|
|
|
45
46
|
id: string;
|
|
46
47
|
className?: string;
|
|
47
48
|
isSelected?: boolean;
|
|
48
|
-
compositeStore:
|
|
49
|
+
compositeStore: NonNullable<
|
|
50
|
+
React.ComponentProps< typeof Composite >[ 'store' ]
|
|
51
|
+
>;
|
|
49
52
|
},
|
|
50
53
|
forwardedRef: ForwardedRef< any >
|
|
51
54
|
) {
|
|
52
55
|
const { id, isSelected, compositeStore, ...additionalProps } = props;
|
|
53
|
-
const activeId =
|
|
56
|
+
const activeId = useStoreState( compositeStore, 'activeId' );
|
|
54
57
|
|
|
55
58
|
if ( isSelected && ! activeId ) {
|
|
56
59
|
compositeStore.setActiveId( id );
|
|
57
60
|
}
|
|
58
61
|
|
|
59
62
|
return (
|
|
60
|
-
<
|
|
63
|
+
<Composite.Item
|
|
61
64
|
render={
|
|
62
65
|
<Button
|
|
63
66
|
{ ...additionalProps }
|
|
@@ -66,7 +69,6 @@ function UnforwardedOptionAsOption(
|
|
|
66
69
|
ref={ forwardedRef }
|
|
67
70
|
/>
|
|
68
71
|
}
|
|
69
|
-
store={ compositeStore }
|
|
70
72
|
id={ id }
|
|
71
73
|
/>
|
|
72
74
|
);
|
|
@@ -13,7 +13,7 @@ import { isRTL } from '@wordpress/i18n';
|
|
|
13
13
|
* Internal dependencies
|
|
14
14
|
*/
|
|
15
15
|
import { CircularOptionPickerContext } from './circular-option-picker-context';
|
|
16
|
-
import { Composite, useCompositeStore } from '../composite
|
|
16
|
+
import { Composite, useCompositeStore } from '../composite';
|
|
17
17
|
import type {
|
|
18
18
|
CircularOptionPickerProps,
|
|
19
19
|
ListboxCircularOptionPickerProps,
|
|
@@ -70,7 +70,7 @@ $color-palette-circle-spacing: 12px;
|
|
|
70
70
|
height: 100%;
|
|
71
71
|
width: 100%;
|
|
72
72
|
border: none;
|
|
73
|
-
border-radius:
|
|
73
|
+
border-radius: $radius-round;
|
|
74
74
|
background: transparent;
|
|
75
75
|
box-shadow: inset 0 0 0 ($color-palette-circle-size * 0.5);
|
|
76
76
|
transition: 100ms box-shadow ease;
|
|
@@ -93,7 +93,7 @@ $color-palette-circle-spacing: 12px;
|
|
|
93
93
|
position: absolute;
|
|
94
94
|
left: 2px;
|
|
95
95
|
top: 2px;
|
|
96
|
-
border-radius:
|
|
96
|
+
border-radius: $radius-round;
|
|
97
97
|
z-index: z-index(".components-circular-option-picker__option.is-pressed + svg");
|
|
98
98
|
pointer-events: none;
|
|
99
99
|
}
|
|
@@ -109,7 +109,7 @@ $color-palette-circle-spacing: 12px;
|
|
|
109
109
|
border-radius: $radius-round;
|
|
110
110
|
box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.2);
|
|
111
111
|
// Show a thin circular outline in Windows high contrast mode, otherwise the button is invisible.
|
|
112
|
-
border:
|
|
112
|
+
border: $border-width solid transparent;
|
|
113
113
|
box-sizing: inherit;
|
|
114
114
|
}
|
|
115
115
|
|
|
@@ -14,7 +14,7 @@ import type { Icon } from '@wordpress/icons';
|
|
|
14
14
|
import type { ButtonAsButtonProps } from '../button/types';
|
|
15
15
|
import type { DropdownProps } from '../dropdown/types';
|
|
16
16
|
import type { WordPressComponentProps } from '../context';
|
|
17
|
-
import type {
|
|
17
|
+
import type { Composite } from '../composite';
|
|
18
18
|
|
|
19
19
|
type CommonCircularOptionPickerProps = {
|
|
20
20
|
/**
|
|
@@ -123,8 +123,7 @@ export type OptionProps = Omit<
|
|
|
123
123
|
>;
|
|
124
124
|
};
|
|
125
125
|
|
|
126
|
-
export type CircularOptionPickerCompositeStore = CompositeStore;
|
|
127
126
|
export type CircularOptionPickerContextProps = {
|
|
128
127
|
baseId?: string;
|
|
129
|
-
compositeStore?:
|
|
128
|
+
compositeStore?: React.ComponentProps< typeof Composite >[ 'store' ];
|
|
130
129
|
};
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
width: $grid-unit-50 * 0.5;
|
|
3
3
|
height: $grid-unit-50 * 0.5;
|
|
4
4
|
box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.2);
|
|
5
|
-
border-radius:
|
|
5
|
+
border-radius: $radius-round;
|
|
6
6
|
display: inline-block;
|
|
7
7
|
padding: 0;
|
|
8
8
|
background: $white linear-gradient(-45deg, transparent 48%, $gray-300 48%, $gray-300 52%, transparent 52%);
|
|
@@ -14,7 +14,7 @@ $border-as-box-shadow: inset 0 0 0 $border-width rgba(0, 0, 0, 0.2);
|
|
|
14
14
|
cursor: pointer;
|
|
15
15
|
// Show a thin outline in Windows high contrast mode.
|
|
16
16
|
outline: 1px solid transparent;
|
|
17
|
-
border-radius: $radius-
|
|
17
|
+
border-radius: $radius-medium $radius-medium 0 0;
|
|
18
18
|
box-shadow: $border-as-box-shadow;
|
|
19
19
|
|
|
20
20
|
&:focus {
|
|
@@ -46,7 +46,7 @@ $border-as-box-shadow: inset 0 0 0 $border-width rgba(0, 0, 0, 0.2);
|
|
|
46
46
|
|
|
47
47
|
.components-color-palette__custom-color-text-wrapper {
|
|
48
48
|
padding: $grid-unit-15 $grid-unit-20;
|
|
49
|
-
border-radius: 0 0 $radius-
|
|
49
|
+
border-radius: 0 0 $radius-medium $radius-medium;
|
|
50
50
|
position: relative;
|
|
51
51
|
font-size: $default-font-size;
|
|
52
52
|
|
|
@@ -17,6 +17,18 @@ import type { ColorObject, ColorPaletteProps, PaletteObject } from './types';
|
|
|
17
17
|
|
|
18
18
|
extend( [ namesPlugin, a11yPlugin ] );
|
|
19
19
|
|
|
20
|
+
/**
|
|
21
|
+
* Checks if a color value is a simple CSS color.
|
|
22
|
+
*
|
|
23
|
+
* @param value The color value to check.
|
|
24
|
+
* @return A boolean indicating whether the color value is a simple CSS color.
|
|
25
|
+
*/
|
|
26
|
+
const isSimpleCSSColor = ( value: string ): boolean => {
|
|
27
|
+
const valueIsCssVariable = /var\(/.test( value ?? '' );
|
|
28
|
+
const valueIsColorMix = /color-mix\(/.test( value ?? '' );
|
|
29
|
+
return ! valueIsCssVariable && ! valueIsColorMix;
|
|
30
|
+
};
|
|
31
|
+
|
|
20
32
|
export const extractColorNameFromCurrentValue = (
|
|
21
33
|
currentValue?: ColorPaletteProps[ 'value' ],
|
|
22
34
|
colors: ColorPaletteProps[ 'colors' ] = [],
|
|
@@ -25,11 +37,12 @@ export const extractColorNameFromCurrentValue = (
|
|
|
25
37
|
if ( ! currentValue ) {
|
|
26
38
|
return '';
|
|
27
39
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
40
|
+
const currentValueIsSimpleColor = currentValue
|
|
41
|
+
? isSimpleCSSColor( currentValue )
|
|
42
|
+
: false;
|
|
43
|
+
const normalizedCurrentValue = currentValueIsSimpleColor
|
|
44
|
+
? colord( currentValue ).toHex()
|
|
45
|
+
: currentValue;
|
|
33
46
|
|
|
34
47
|
// Normalize format of `colors` to simplify the following loop
|
|
35
48
|
type normalizedPaletteObject = { colors: ColorObject[] };
|
|
@@ -38,9 +51,9 @@ export const extractColorNameFromCurrentValue = (
|
|
|
38
51
|
: [ { colors: colors as ColorObject[] } ];
|
|
39
52
|
for ( const { colors: paletteColors } of colorPalettes ) {
|
|
40
53
|
for ( const { name: colorName, color: colorValue } of paletteColors ) {
|
|
41
|
-
const normalizedColorValue =
|
|
42
|
-
? colorValue
|
|
43
|
-
:
|
|
54
|
+
const normalizedColorValue = currentValueIsSimpleColor
|
|
55
|
+
? colord( colorValue ).toHex()
|
|
56
|
+
: colorValue;
|
|
44
57
|
|
|
45
58
|
if ( normalizedCurrentValue === normalizedColorValue ) {
|
|
46
59
|
return colorName;
|
|
@@ -79,9 +92,9 @@ export const normalizeColorValue = (
|
|
|
79
92
|
value: string | undefined,
|
|
80
93
|
element: HTMLElement | null
|
|
81
94
|
) => {
|
|
82
|
-
const
|
|
95
|
+
const valueIsSimpleColor = value ? isSimpleCSSColor( value ) : false;
|
|
83
96
|
|
|
84
|
-
if (
|
|
97
|
+
if ( valueIsSimpleColor || element === null ) {
|
|
85
98
|
return value;
|
|
86
99
|
}
|
|
87
100
|
|
|
@@ -118,6 +118,14 @@ Custom renderer invoked for each option in the suggestion list. The render prop
|
|
|
118
118
|
- Type: `( args: { item: object } ) => ReactNode`
|
|
119
119
|
- Required: No
|
|
120
120
|
|
|
121
|
+
#### __next40pxDefaultSize
|
|
122
|
+
|
|
123
|
+
Start opting into the larger default height that will become the default size in a future version.
|
|
124
|
+
|
|
125
|
+
- Type: `Boolean`
|
|
126
|
+
- Required: No
|
|
127
|
+
- Default: `false`
|
|
128
|
+
|
|
121
129
|
#### __nextHasNoMarginBottom
|
|
122
130
|
|
|
123
131
|
Start opting into the new margin-free styles that will become the default in a future version.
|
|
@@ -320,6 +320,7 @@ function ComboboxControl( props: ComboboxControlProps ) {
|
|
|
320
320
|
<DetectOutside onFocusOutside={ onFocusOutside }>
|
|
321
321
|
<BaseControl
|
|
322
322
|
__nextHasNoMarginBottom={ __nextHasNoMarginBottom }
|
|
323
|
+
__associatedWPComponentName="ComboboxControl"
|
|
323
324
|
className={ clsx( className, 'components-combobox-control' ) }
|
|
324
325
|
label={ label }
|
|
325
326
|
id={ `components-form-token-input-${ instanceId }` }
|
|
@@ -76,6 +76,7 @@ const Template: StoryFn< typeof ComboboxControl > = ( {
|
|
|
76
76
|
};
|
|
77
77
|
export const Default = Template.bind( {} );
|
|
78
78
|
Default.args = {
|
|
79
|
+
__nextHasNoMarginBottom: true,
|
|
79
80
|
allowReset: false,
|
|
80
81
|
label: 'Select a country',
|
|
81
82
|
options: countryOptions,
|
|
@@ -135,8 +136,7 @@ const optionsWithDisabledOptions = countryOptions.map( ( option, index ) => ( {
|
|
|
135
136
|
} ) );
|
|
136
137
|
|
|
137
138
|
WithDisabledOptions.args = {
|
|
138
|
-
|
|
139
|
-
label: 'Select a country',
|
|
139
|
+
...Default.args,
|
|
140
140
|
options: optionsWithDisabledOptions,
|
|
141
141
|
};
|
|
142
142
|
|
|
@@ -148,8 +148,7 @@ WithDisabledOptions.args = {
|
|
|
148
148
|
export const NotExpandOnFocus = Template.bind( {} );
|
|
149
149
|
|
|
150
150
|
NotExpandOnFocus.args = {
|
|
151
|
-
|
|
152
|
-
label: 'Select a country',
|
|
151
|
+
...Default.args,
|
|
153
152
|
options: countryOptions,
|
|
154
153
|
expandOnFocus: false,
|
|
155
154
|
};
|
|
@@ -12,7 +12,7 @@ import { useState } from '@wordpress/element';
|
|
|
12
12
|
/**
|
|
13
13
|
* Internal dependencies
|
|
14
14
|
*/
|
|
15
|
-
import
|
|
15
|
+
import _ComboboxControl from '..';
|
|
16
16
|
import type { ComboboxControlOption, ComboboxControlProps } from '../types';
|
|
17
17
|
|
|
18
18
|
const timezones = [
|
|
@@ -57,6 +57,10 @@ const getAllOptions = () => screen.getAllByRole( 'option' );
|
|
|
57
57
|
const getOptionSearchString = ( option: ComboboxControlOption ) =>
|
|
58
58
|
option.label.substring( 0, 11 );
|
|
59
59
|
|
|
60
|
+
const ComboboxControl = ( props: ComboboxControlProps ) => {
|
|
61
|
+
return <_ComboboxControl { ...props } __nextHasNoMarginBottom />;
|
|
62
|
+
};
|
|
63
|
+
|
|
60
64
|
const ControlledComboboxControl = ( {
|
|
61
65
|
value: valueProp,
|
|
62
66
|
onChange,
|