@wordpress/components 19.7.0 → 19.9.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 +39 -1
- package/README.md +38 -0
- package/build/alignment-matrix-control/styles/alignment-matrix-control-styles.js +11 -11
- package/build/alignment-matrix-control/styles/alignment-matrix-control-styles.js.map +1 -1
- package/build/base-control/index.js +35 -31
- package/build/base-control/index.js.map +1 -1
- package/build/base-control/styles/base-control-styles.js +18 -18
- package/build/base-control/styles/base-control-styles.js.map +1 -1
- package/build/base-control/types.js +6 -0
- package/build/base-control/types.js.map +1 -0
- package/build/border-box-control/border-box-control/component.js +124 -0
- package/build/border-box-control/border-box-control/component.js.map +1 -0
- package/build/border-box-control/border-box-control/hook.js +113 -0
- package/build/border-box-control/border-box-control/hook.js.map +1 -0
- package/build/border-box-control/border-box-control/index.js +24 -0
- package/build/border-box-control/border-box-control/index.js.map +1 -0
- package/build/border-box-control/border-box-control-linked-button/component.js +59 -0
- package/build/border-box-control/border-box-control-linked-button/component.js.map +1 -0
- package/build/border-box-control/border-box-control-linked-button/hook.js +41 -0
- package/build/border-box-control/border-box-control-linked-button/hook.js.map +1 -0
- package/build/border-box-control/border-box-control-linked-button/index.js +16 -0
- package/build/border-box-control/border-box-control-linked-button/index.js.map +1 -0
- package/build/border-box-control/border-box-control-split-controls/component.js +93 -0
- package/build/border-box-control/border-box-control-split-controls/component.js.map +1 -0
- package/build/border-box-control/border-box-control-split-controls/hook.js +45 -0
- package/build/border-box-control/border-box-control-split-controls/hook.js.map +1 -0
- package/build/border-box-control/border-box-control-split-controls/index.js +16 -0
- package/build/border-box-control/border-box-control-split-controls/index.js.map +1 -0
- package/build/border-box-control/border-box-control-visualizer/component.js +40 -0
- package/build/border-box-control/border-box-control-visualizer/component.js.map +1 -0
- package/build/border-box-control/border-box-control-visualizer/hook.js +43 -0
- package/build/border-box-control/border-box-control-visualizer/hook.js.map +1 -0
- package/build/border-box-control/border-box-control-visualizer/index.js +16 -0
- package/build/border-box-control/border-box-control-visualizer/index.js.map +1 -0
- package/build/border-box-control/index.js +44 -0
- package/build/border-box-control/index.js.map +1 -0
- package/build/border-box-control/styles.js +76 -0
- package/build/border-box-control/styles.js.map +1 -0
- package/build/border-box-control/types.js +6 -0
- package/build/border-box-control/types.js.map +1 -0
- package/build/border-box-control/utils.js +161 -0
- package/build/border-box-control/utils.js.map +1 -0
- package/build/border-control/border-control/component.js +119 -0
- package/build/border-control/border-control/component.js.map +1 -0
- package/build/border-control/border-control/hook.js +130 -0
- package/build/border-control/border-control/hook.js.map +1 -0
- package/build/border-control/border-control/index.js +24 -0
- package/build/border-control/border-control/index.js.map +1 -0
- package/build/border-control/border-control-dropdown/component.js +196 -0
- package/build/border-control/border-control-dropdown/component.js.map +1 -0
- package/build/border-control/border-control-dropdown/hook.js +105 -0
- package/build/border-control/border-control-dropdown/hook.js.map +1 -0
- package/build/border-control/border-control-dropdown/index.js +16 -0
- package/build/border-control/border-control-dropdown/index.js.map +1 -0
- package/build/border-control/border-control-style-picker/component.js +101 -0
- package/build/border-control/border-control-style-picker/component.js.map +1 -0
- package/build/border-control/border-control-style-picker/hook.js +45 -0
- package/build/border-control/border-control-style-picker/hook.js.map +1 -0
- package/build/border-control/border-control-style-picker/index.js +16 -0
- package/build/border-control/border-control-style-picker/index.js.map +1 -0
- package/build/border-control/index.js +24 -0
- package/build/border-control/index.js.map +1 -0
- package/build/border-control/styles.js +125 -0
- package/build/border-control/styles.js.map +1 -0
- package/build/border-control/types.js +6 -0
- package/build/border-control/types.js.map +1 -0
- package/build/card/styles.js +22 -17
- package/build/card/styles.js.map +1 -1
- package/build/custom-select-control/index.js +4 -1
- package/build/custom-select-control/index.js.map +1 -1
- package/build/guide/index.js +14 -8
- package/build/guide/index.js.map +1 -1
- package/build/heading/hook.js +1 -1
- package/build/heading/hook.js.map +1 -1
- package/build/index.js +40 -0
- package/build/index.js.map +1 -1
- package/build/input-control/index.js +26 -4
- package/build/input-control/index.js.map +1 -1
- package/build/input-control/styles/input-control-styles.js +25 -25
- package/build/input-control/styles/input-control-styles.js.map +1 -1
- package/build/item-group/styles.js +14 -14
- package/build/item-group/styles.js.map +1 -1
- package/build/mobile/picker/index.android.js +0 -3
- package/build/mobile/picker/index.android.js.map +1 -1
- package/build/navigation/styles/navigation-styles.js +12 -12
- package/build/navigation/styles/navigation-styles.js.map +1 -1
- package/build/notice/index.native.js +44 -40
- package/build/notice/index.native.js.map +1 -1
- package/build/notice/list.native.js +27 -45
- package/build/notice/list.native.js.map +1 -1
- package/build/palette-edit/index.js +2 -1
- package/build/palette-edit/index.js.map +1 -1
- package/build/sandbox/index.js +2 -2
- package/build/sandbox/index.js.map +1 -1
- package/build/select-control/styles/select-control-styles.js +5 -5
- package/build/select-control/styles/select-control-styles.js.map +1 -1
- package/build/surface/styles.js +8 -8
- package/build/surface/styles.js.map +1 -1
- package/build/text/hook.js +5 -5
- package/build/text/hook.js.map +1 -1
- package/build/text/styles/text-mixins.native.js +1 -1
- package/build/text/styles/text-mixins.native.js.map +1 -1
- package/build/text/styles.js +7 -7
- package/build/text/styles.js.map +1 -1
- package/build/toggle-group-control/index.js +8 -0
- package/build/toggle-group-control/index.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control/component.js +10 -1
- package/build/toggle-group-control/toggle-group-control/component.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control/styles.js +14 -3
- package/build/toggle-group-control/toggle-group-control/styles.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.js +90 -0
- package/build/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.js.map +1 -0
- package/build/toggle-group-control/toggle-group-control-option/component.js +9 -87
- package/build/toggle-group-control/toggle-group-control-option/component.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control-option-base/component.js +127 -0
- package/build/toggle-group-control/toggle-group-control-option-base/component.js.map +1 -0
- package/build/toggle-group-control/toggle-group-control-option-base/index.js +16 -0
- package/build/toggle-group-control/toggle-group-control-option-base/index.js.map +1 -0
- package/build/toggle-group-control/toggle-group-control-option-base/styles.js +66 -0
- package/build/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -0
- package/build/toggle-group-control/toggle-group-control-option-icon/component.js +55 -0
- package/build/toggle-group-control/toggle-group-control-option-icon/component.js.map +1 -0
- package/build/toggle-group-control/toggle-group-control-option-icon/index.js +16 -0
- package/build/toggle-group-control/toggle-group-control-option-icon/index.js.map +1 -0
- package/build/toolbar-dropdown-menu/index.js +1 -1
- package/build/toolbar-dropdown-menu/index.js.map +1 -1
- package/build/ui/spinner/component.js +1 -1
- package/build/ui/spinner/component.js.map +1 -1
- package/build/unit-control/index.js +7 -2
- package/build/unit-control/index.js.map +1 -1
- package/build/utils/colors-values.js +14 -27
- package/build/utils/colors-values.js.map +1 -1
- package/build/utils/config-values.js +9 -4
- package/build/utils/config-values.js.map +1 -1
- package/build-module/alignment-matrix-control/styles/alignment-matrix-control-styles.js +11 -11
- package/build-module/alignment-matrix-control/styles/alignment-matrix-control-styles.js.map +1 -1
- package/build-module/base-control/index.js +33 -34
- package/build-module/base-control/index.js.map +1 -1
- package/build-module/base-control/styles/base-control-styles.js +18 -18
- package/build-module/base-control/styles/base-control-styles.js.map +1 -1
- package/build-module/base-control/types.js +2 -0
- package/build-module/base-control/types.js.map +1 -0
- package/build-module/border-box-control/border-box-control/component.js +104 -0
- package/build-module/border-box-control/border-box-control/component.js.map +1 -0
- package/build-module/border-box-control/border-box-control/hook.js +97 -0
- package/build-module/border-box-control/border-box-control/hook.js.map +1 -0
- package/build-module/border-box-control/border-box-control/index.js +3 -0
- package/build-module/border-box-control/border-box-control/index.js.map +1 -0
- package/build-module/border-box-control/border-box-control-linked-button/component.js +42 -0
- package/build-module/border-box-control/border-box-control-linked-button/component.js.map +1 -0
- package/build-module/border-box-control/border-box-control-linked-button/hook.js +26 -0
- package/build-module/border-box-control/border-box-control-linked-button/hook.js.map +1 -0
- package/build-module/border-box-control/border-box-control-linked-button/index.js +2 -0
- package/build-module/border-box-control/border-box-control-linked-button/index.js.map +1 -0
- package/build-module/border-box-control/border-box-control-split-controls/component.js +77 -0
- package/build-module/border-box-control/border-box-control-split-controls/component.js.map +1 -0
- package/build-module/border-box-control/border-box-control-split-controls/hook.js +30 -0
- package/build-module/border-box-control/border-box-control-split-controls/hook.js.map +1 -0
- package/build-module/border-box-control/border-box-control-split-controls/index.js +2 -0
- package/build-module/border-box-control/border-box-control-split-controls/index.js.map +1 -0
- package/build-module/border-box-control/border-box-control-visualizer/component.js +27 -0
- package/build-module/border-box-control/border-box-control-visualizer/component.js.map +1 -0
- package/build-module/border-box-control/border-box-control-visualizer/hook.js +28 -0
- package/build-module/border-box-control/border-box-control-visualizer/hook.js.map +1 -0
- package/build-module/border-box-control/border-box-control-visualizer/index.js +2 -0
- package/build-module/border-box-control/border-box-control-visualizer/index.js.map +1 -0
- package/build-module/border-box-control/index.js +4 -0
- package/build-module/border-box-control/index.js.map +1 -0
- package/build-module/border-box-control/styles.js +66 -0
- package/build-module/border-box-control/styles.js.map +1 -0
- package/build-module/border-box-control/types.js +2 -0
- package/build-module/border-box-control/types.js.map +1 -0
- package/build-module/border-box-control/utils.js +127 -0
- package/build-module/border-box-control/utils.js.map +1 -0
- package/build-module/border-control/border-control/component.js +100 -0
- package/build-module/border-control/border-control/component.js.map +1 -0
- package/build-module/border-control/border-control/hook.js +115 -0
- package/build-module/border-control/border-control/hook.js.map +1 -0
- package/build-module/border-control/border-control/index.js +3 -0
- package/build-module/border-control/border-control/index.js.map +1 -0
- package/build-module/border-control/border-control-dropdown/component.js +174 -0
- package/build-module/border-control/border-control-dropdown/component.js.map +1 -0
- package/build-module/border-control/border-control-dropdown/hook.js +89 -0
- package/build-module/border-control/border-control-dropdown/hook.js.map +1 -0
- package/build-module/border-control/border-control-dropdown/index.js +2 -0
- package/build-module/border-control/border-control-dropdown/index.js.map +1 -0
- package/build-module/border-control/border-control-style-picker/component.js +81 -0
- package/build-module/border-control/border-control-style-picker/component.js.map +1 -0
- package/build-module/border-control/border-control-style-picker/hook.js +30 -0
- package/build-module/border-control/border-control-style-picker/hook.js.map +1 -0
- package/build-module/border-control/border-control-style-picker/index.js +2 -0
- package/build-module/border-control/border-control-style-picker/index.js.map +1 -0
- package/build-module/border-control/index.js +3 -0
- package/build-module/border-control/index.js.map +1 -0
- package/build-module/border-control/styles.js +90 -0
- package/build-module/border-control/styles.js.map +1 -0
- package/build-module/border-control/types.js +2 -0
- package/build-module/border-control/types.js.map +1 -0
- package/build-module/card/styles.js +23 -18
- package/build-module/card/styles.js.map +1 -1
- package/build-module/custom-select-control/index.js +4 -1
- package/build-module/custom-select-control/index.js.map +1 -1
- package/build-module/guide/index.js +14 -8
- package/build-module/guide/index.js.map +1 -1
- package/build-module/heading/hook.js +1 -1
- package/build-module/heading/hook.js.map +1 -1
- package/build-module/index.js +3 -1
- package/build-module/index.js.map +1 -1
- package/build-module/input-control/index.js +23 -3
- package/build-module/input-control/index.js.map +1 -1
- package/build-module/input-control/styles/input-control-styles.js +25 -25
- package/build-module/input-control/styles/input-control-styles.js.map +1 -1
- package/build-module/item-group/styles.js +14 -14
- package/build-module/item-group/styles.js.map +1 -1
- package/build-module/mobile/picker/index.android.js +0 -3
- package/build-module/mobile/picker/index.android.js.map +1 -1
- package/build-module/navigation/styles/navigation-styles.js +13 -13
- package/build-module/navigation/styles/navigation-styles.js.map +1 -1
- package/build-module/notice/index.native.js +45 -41
- package/build-module/notice/index.native.js.map +1 -1
- package/build-module/notice/list.native.js +28 -46
- package/build-module/notice/list.native.js.map +1 -1
- package/build-module/palette-edit/index.js +3 -2
- package/build-module/palette-edit/index.js.map +1 -1
- package/build-module/sandbox/index.js +2 -2
- package/build-module/sandbox/index.js.map +1 -1
- package/build-module/select-control/styles/select-control-styles.js +5 -5
- package/build-module/select-control/styles/select-control-styles.js.map +1 -1
- package/build-module/surface/styles.js +8 -8
- package/build-module/surface/styles.js.map +1 -1
- package/build-module/text/hook.js +5 -5
- package/build-module/text/hook.js.map +1 -1
- package/build-module/text/styles/text-mixins.native.js +2 -2
- package/build-module/text/styles/text-mixins.native.js.map +1 -1
- package/build-module/text/styles.js +7 -7
- package/build-module/text/styles.js.map +1 -1
- package/build-module/toggle-group-control/index.js +1 -0
- package/build-module/toggle-group-control/index.js.map +1 -1
- package/build-module/toggle-group-control/toggle-group-control/component.js +8 -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 +11 -3
- package/build-module/toggle-group-control/toggle-group-control/styles.js.map +1 -1
- package/build-module/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.js +86 -0
- package/build-module/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.js.map +1 -0
- package/build-module/toggle-group-control/toggle-group-control-option/component.js +9 -76
- 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/component.js +105 -0
- package/build-module/toggle-group-control/toggle-group-control-option-base/component.js.map +1 -0
- package/build-module/toggle-group-control/toggle-group-control-option-base/index.js +2 -0
- package/build-module/toggle-group-control/toggle-group-control-option-base/index.js.map +1 -0
- package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js +55 -0
- package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -0
- package/build-module/toggle-group-control/toggle-group-control-option-icon/component.js +50 -0
- package/build-module/toggle-group-control/toggle-group-control-option-icon/component.js.map +1 -0
- package/build-module/toggle-group-control/toggle-group-control-option-icon/index.js +2 -0
- package/build-module/toggle-group-control/toggle-group-control-option-icon/index.js.map +1 -0
- package/build-module/toolbar-dropdown-menu/index.js +1 -1
- package/build-module/toolbar-dropdown-menu/index.js.map +1 -1
- package/build-module/ui/spinner/component.js +1 -1
- package/build-module/ui/spinner/component.js.map +1 -1
- package/build-module/unit-control/index.js +7 -2
- package/build-module/unit-control/index.js.map +1 -1
- package/build-module/utils/colors-values.js +24 -26
- package/build-module/utils/colors-values.js.map +1 -1
- package/build-module/utils/config-values.js +8 -4
- package/build-module/utils/config-values.js.map +1 -1
- package/build-style/style-rtl.css +21 -4
- package/build-style/style.css +21 -4
- package/build-types/base-control/index.d.ts +35 -76
- package/build-types/base-control/index.d.ts.map +1 -1
- package/build-types/base-control/stories/index.d.ts +25 -0
- package/build-types/base-control/stories/index.d.ts.map +1 -0
- package/build-types/base-control/styles/base-control-styles.d.ts +6 -5
- package/build-types/base-control/styles/base-control-styles.d.ts.map +1 -1
- package/build-types/base-control/types.d.ts +41 -0
- package/build-types/base-control/types.d.ts.map +1 -0
- package/build-types/border-box-control/border-box-control/component.d.ts +4 -0
- package/build-types/border-box-control/border-box-control/component.d.ts.map +1 -0
- package/build-types/border-box-control/border-box-control/hook.d.ts +282 -0
- package/build-types/border-box-control/border-box-control/hook.d.ts.map +1 -0
- package/build-types/border-box-control/border-box-control/index.d.ts +3 -0
- package/build-types/border-box-control/border-box-control/index.d.ts.map +1 -0
- package/build-types/border-box-control/border-box-control-linked-button/component.d.ts +4 -0
- package/build-types/border-box-control/border-box-control-linked-button/component.d.ts.map +1 -0
- package/build-types/border-box-control/border-box-control-linked-button/hook.d.ts +266 -0
- package/build-types/border-box-control/border-box-control-linked-button/hook.d.ts.map +1 -0
- package/build-types/border-box-control/border-box-control-linked-button/index.d.ts +2 -0
- package/build-types/border-box-control/border-box-control-linked-button/index.d.ts.map +1 -0
- package/build-types/border-box-control/border-box-control-split-controls/component.d.ts +4 -0
- package/build-types/border-box-control/border-box-control-split-controls/component.d.ts.map +1 -0
- package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts +274 -0
- package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts.map +1 -0
- package/build-types/border-box-control/border-box-control-split-controls/index.d.ts +2 -0
- package/build-types/border-box-control/border-box-control-split-controls/index.d.ts.map +1 -0
- package/build-types/border-box-control/border-box-control-visualizer/component.d.ts +4 -0
- package/build-types/border-box-control/border-box-control-visualizer/component.d.ts.map +1 -0
- package/build-types/border-box-control/border-box-control-visualizer/hook.d.ts +266 -0
- package/build-types/border-box-control/border-box-control-visualizer/hook.d.ts.map +1 -0
- package/build-types/border-box-control/border-box-control-visualizer/index.d.ts +2 -0
- package/build-types/border-box-control/border-box-control-visualizer/index.d.ts.map +1 -0
- package/build-types/border-box-control/index.d.ts +4 -0
- package/build-types/border-box-control/index.d.ts.map +1 -0
- package/build-types/border-box-control/styles.d.ts +8 -0
- package/build-types/border-box-control/styles.d.ts.map +1 -0
- package/build-types/border-box-control/types.d.ts +91 -0
- package/build-types/border-box-control/types.d.ts.map +1 -0
- package/build-types/border-box-control/utils.d.ts +24 -0
- package/build-types/border-box-control/utils.d.ts.map +1 -0
- package/build-types/border-control/border-control/component.d.ts +4 -0
- package/build-types/border-control/border-control/component.d.ts.map +1 -0
- package/build-types/border-control/border-control/hook.d.ts +285 -0
- package/build-types/border-control/border-control/hook.d.ts.map +1 -0
- package/build-types/border-control/border-control/index.d.ts +3 -0
- package/build-types/border-control/border-control/index.d.ts.map +1 -0
- package/build-types/border-control/border-control-dropdown/component.d.ts +4 -0
- package/build-types/border-control/border-control-dropdown/component.d.ts.map +1 -0
- package/build-types/border-control/border-control-dropdown/hook.d.ts +280 -0
- package/build-types/border-control/border-control-dropdown/hook.d.ts.map +1 -0
- package/build-types/border-control/border-control-dropdown/index.d.ts +2 -0
- package/build-types/border-control/border-control-dropdown/index.d.ts.map +1 -0
- package/build-types/border-control/border-control-style-picker/component.d.ts +4 -0
- package/build-types/border-control/border-control-style-picker/component.d.ts.map +1 -0
- package/build-types/border-control/border-control-style-picker/hook.d.ts +269 -0
- package/build-types/border-control/border-control-style-picker/hook.d.ts.map +1 -0
- package/build-types/border-control/border-control-style-picker/index.d.ts +2 -0
- package/build-types/border-control/border-control-style-picker/index.d.ts.map +1 -0
- package/build-types/border-control/index.d.ts +3 -0
- package/build-types/border-control/index.d.ts.map +1 -0
- package/build-types/border-control/styles.d.ts +18 -0
- package/build-types/border-control/styles.d.ts.map +1 -0
- package/build-types/border-control/types.d.ts +163 -0
- package/build-types/border-control/types.d.ts.map +1 -0
- package/build-types/card/styles.d.ts.map +1 -1
- package/build-types/color-indicator/index.d.ts +7 -0
- package/build-types/color-indicator/index.d.ts.map +1 -0
- package/build-types/color-picker/styles.d.ts +1 -1
- package/build-types/input-control/index.d.ts +22 -3
- package/build-types/input-control/index.d.ts.map +1 -1
- package/build-types/input-control/input-field.d.ts +1 -1
- package/build-types/input-control/input-field.d.ts.map +1 -1
- package/build-types/input-control/stories/index.d.ts +17 -0
- package/build-types/input-control/stories/index.d.ts.map +1 -0
- package/build-types/input-control/styles/input-control-styles.d.ts.map +1 -1
- package/build-types/input-control/types.d.ts +73 -3
- package/build-types/input-control/types.d.ts.map +1 -1
- package/build-types/item-group/styles.d.ts.map +1 -1
- package/build-types/number-control/styles/number-control-styles.d.ts +1 -1
- package/build-types/text/test/index.d.ts +2 -0
- package/build-types/text/test/index.d.ts.map +1 -0
- package/build-types/toggle-group-control/index.d.ts +1 -0
- package/build-types/toggle-group-control/index.d.ts.map +1 -1
- package/build-types/toggle-group-control/toggle-group-control/component.d.ts.map +1 -1
- package/build-types/toggle-group-control/toggle-group-control/styles.d.ts +5 -0
- package/build-types/toggle-group-control/toggle-group-control/styles.d.ts.map +1 -1
- package/build-types/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.d.ts +9 -0
- package/build-types/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.d.ts.map +1 -0
- package/build-types/toggle-group-control/toggle-group-control-option/component.d.ts +6 -2
- 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-base/component.d.ts +25 -0
- package/build-types/toggle-group-control/toggle-group-control-option-base/component.d.ts.map +1 -0
- package/build-types/toggle-group-control/toggle-group-control-option-base/index.d.ts +2 -0
- package/build-types/toggle-group-control/toggle-group-control-option-base/index.d.ts.map +1 -0
- package/build-types/toggle-group-control/{toggle-group-control-option → toggle-group-control-option-base}/styles.d.ts +0 -0
- package/build-types/toggle-group-control/toggle-group-control-option-base/styles.d.ts.map +1 -0
- package/build-types/toggle-group-control/toggle-group-control-option-icon/component.d.ts +37 -0
- package/build-types/toggle-group-control/toggle-group-control-option-icon/component.d.ts.map +1 -0
- package/build-types/toggle-group-control/toggle-group-control-option-icon/index.d.ts +2 -0
- package/build-types/toggle-group-control/toggle-group-control-option-icon/index.d.ts.map +1 -0
- package/build-types/toggle-group-control/types.d.ts +24 -8
- package/build-types/toggle-group-control/types.d.ts.map +1 -1
- package/build-types/ui/form-group/form-group.d.ts +2 -2
- package/build-types/unit-control/index.d.ts +6 -2
- package/build-types/unit-control/index.d.ts.map +1 -1
- package/build-types/unit-control/types.d.ts +5 -1
- package/build-types/unit-control/types.d.ts.map +1 -1
- package/build-types/utils/colors-values.d.ts +68 -148
- package/build-types/utils/colors-values.d.ts.map +1 -1
- package/build-types/utils/config-values.d.ts +71 -71
- package/build-types/utils/config-values.d.ts.map +1 -1
- package/package.json +17 -17
- package/src/alignment-matrix-control/styles/alignment-matrix-control-styles.js +5 -3
- package/src/animate/README.md +1 -1
- package/src/base-control/README.md +11 -11
- package/src/base-control/index.tsx +124 -0
- package/src/base-control/stories/index.tsx +80 -0
- package/src/base-control/styles/{base-control-styles.js → base-control-styles.ts} +0 -0
- package/src/base-control/types.ts +42 -0
- package/src/border-box-control/border-box-control/README.md +178 -0
- package/src/border-box-control/border-box-control/component.tsx +123 -0
- package/src/border-box-control/border-box-control/hook.ts +119 -0
- package/src/border-box-control/border-box-control/index.ts +2 -0
- package/src/border-box-control/border-box-control-linked-button/component.tsx +50 -0
- package/src/border-box-control/border-box-control-linked-button/hook.ts +30 -0
- package/src/border-box-control/border-box-control-linked-button/index.ts +1 -0
- package/src/border-box-control/border-box-control-split-controls/component.tsx +90 -0
- package/src/border-box-control/border-box-control-split-controls/hook.ts +34 -0
- package/src/border-box-control/border-box-control-split-controls/index.ts +1 -0
- package/src/border-box-control/border-box-control-visualizer/component.tsx +28 -0
- package/src/border-box-control/border-box-control-visualizer/hook.ts +30 -0
- package/src/border-box-control/border-box-control-visualizer/index.ts +1 -0
- package/src/border-box-control/index.ts +3 -0
- package/src/border-box-control/stories/index.js +104 -0
- package/src/border-box-control/styles.ts +69 -0
- package/src/border-box-control/test/index.js +354 -0
- package/src/border-box-control/test/utils.js +305 -0
- package/src/border-box-control/types.ts +98 -0
- package/src/border-box-control/utils.ts +151 -0
- package/src/border-control/border-control/README.md +181 -0
- package/src/border-control/border-control/component.tsx +112 -0
- package/src/border-control/border-control/hook.ts +145 -0
- package/src/border-control/border-control/index.ts +2 -0
- package/src/border-control/border-control-dropdown/component.tsx +252 -0
- package/src/border-control/border-control-dropdown/hook.ts +98 -0
- package/src/border-control/border-control-dropdown/index.ts +1 -0
- package/src/border-control/border-control-style-picker/component.tsx +89 -0
- package/src/border-control/border-control-style-picker/hook.ts +34 -0
- package/src/border-control/border-control-style-picker/index.ts +1 -0
- package/src/border-control/index.ts +2 -0
- package/src/border-control/stories/index.js +118 -0
- package/src/border-control/styles.ts +190 -0
- package/src/border-control/test/index.js +436 -0
- package/src/border-control/types.ts +173 -0
- package/src/card/styles.js +11 -5
- package/src/card/test/__snapshots__/index.js.snap +83 -66
- package/src/card/test/index.js +7 -5
- package/src/color-palette/README.md +6 -0
- package/src/color-palette/stories/index.js +8 -1
- package/src/custom-select-control/index.js +7 -1
- package/src/custom-select-control/style.scss +5 -1
- package/src/disabled/README.md +7 -10
- package/src/flyout/test/__snapshots__/index.js.snap +7 -7
- package/src/form-toggle/README.md +1 -1
- package/src/guide/index.js +12 -13
- package/src/guide/style.scss +0 -4
- package/src/heading/hook.ts +1 -1
- package/src/heading/test/__snapshots__/index.js.snap +3 -3
- package/src/index.js +8 -0
- package/src/input-control/README.md +2 -2
- package/src/input-control/index.tsx +22 -3
- package/src/input-control/stories/index.tsx +63 -0
- package/src/input-control/styles/input-control-styles.tsx +1 -2
- package/src/input-control/types.ts +73 -2
- package/src/item-group/styles.ts +1 -0
- package/src/item-group/test/__snapshots__/index.js.snap +11 -10
- package/src/mobile/picker/index.android.js +0 -1
- package/src/navigation/styles/navigation-styles.js +5 -5
- package/src/notice/index.native.js +44 -54
- package/src/notice/list.native.js +27 -51
- package/src/notice/style.native.scss +1 -0
- package/src/palette-edit/index.js +8 -2
- package/src/query-controls/README.md +2 -2
- package/src/sandbox/index.js +2 -2
- package/src/select-control/styles/select-control-styles.ts +1 -1
- package/src/surface/styles.js +1 -1
- package/src/surface/test/__snapshots__/index.js.snap +11 -11
- package/src/text/hook.js +1 -1
- package/src/text/styles/text-mixins.native.js +2 -2
- package/src/text/styles.js +1 -1
- package/src/text/test/__snapshots__/{index.js.snap → index.tsx.snap} +16 -0
- package/src/text/test/{index.js → index.tsx} +12 -6
- package/src/toggle-group-control/index.ts +1 -0
- package/src/toggle-group-control/stories/index.js +37 -7
- package/src/toggle-group-control/test/__snapshots__/index.js.snap +269 -5
- package/src/toggle-group-control/test/index.js +43 -10
- package/src/toggle-group-control/toggle-group-control/component.tsx +10 -0
- package/src/toggle-group-control/toggle-group-control/styles.ts +14 -0
- package/src/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.tsx +86 -0
- package/src/toggle-group-control/toggle-group-control-option/README.md +8 -5
- package/src/toggle-group-control/toggle-group-control-option/component.tsx +18 -94
- package/src/toggle-group-control/toggle-group-control-option-base/README.md +27 -0
- package/src/toggle-group-control/toggle-group-control-option-base/component.tsx +129 -0
- package/src/toggle-group-control/toggle-group-control-option-base/index.ts +1 -0
- package/src/toggle-group-control/{toggle-group-control-option → toggle-group-control-option-base}/styles.ts +4 -1
- package/src/toggle-group-control/toggle-group-control-option-icon/README.md +56 -0
- package/src/toggle-group-control/toggle-group-control-option-icon/component.tsx +56 -0
- package/src/toggle-group-control/toggle-group-control-option-icon/index.ts +1 -0
- package/src/toggle-group-control/types.ts +33 -8
- package/src/toolbar-dropdown-menu/index.js +1 -1
- package/src/toolbar-group/style.scss +20 -0
- package/src/tools-panel/test/__snapshots__/index.js.snap +9 -9
- package/src/ui/spinner/component.js +1 -1
- package/src/ui/spinner/test/__snapshots__/index.js.snap +3 -3
- package/src/unit-control/README.md +6 -0
- package/src/unit-control/index.tsx +6 -1
- package/src/unit-control/test/index.js +120 -0
- package/src/unit-control/types.ts +5 -1
- package/src/utils/colors-values.js +22 -25
- package/src/utils/config-values.js +9 -4
- package/tsconfig.json +11 -2
- package/tsconfig.tsbuildinfo +1 -1
- package/build/guide/finish-button.js +0 -44
- package/build/guide/finish-button.js.map +0 -1
- package/build/toggle-group-control/toggle-group-control-option/styles.js +0 -66
- package/build/toggle-group-control/toggle-group-control-option/styles.js.map +0 -1
- package/build-module/guide/finish-button.js +0 -34
- package/build-module/guide/finish-button.js.map +0 -1
- package/build-module/toggle-group-control/toggle-group-control-option/styles.js +0 -55
- package/build-module/toggle-group-control/toggle-group-control-option/styles.js.map +0 -1
- package/build-types/toggle-group-control/toggle-group-control-option/styles.d.ts.map +0 -1
- package/src/base-control/index.js +0 -118
- package/src/base-control/stories/index.js +0 -81
- package/src/guide/finish-button.js +0 -26
- package/src/guide/test/finish-button.js +0 -49
- package/src/input-control/stories/index.js +0 -71
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# `ToggleGroupControlOptionBase`
|
|
2
|
+
|
|
3
|
+
<div class="callout callout-alert">
|
|
4
|
+
This feature is still experimental. “Experimental” means this is an early implementation subject to drastic and breaking changes.
|
|
5
|
+
</div>
|
|
6
|
+
|
|
7
|
+
`ToggleGroupControlOptionBase` is a form component and is meant to be used as an internal, generic component for any children of [`ToggleGroupControl`](<(/packages/components/src/toggle-group-control/toggle-group-control/README.md)>).
|
|
8
|
+
|
|
9
|
+
## Props
|
|
10
|
+
|
|
11
|
+
### `children`: `ReactNode`
|
|
12
|
+
|
|
13
|
+
The children elements.
|
|
14
|
+
|
|
15
|
+
- Required: Yes
|
|
16
|
+
|
|
17
|
+
### `value`: `string | number`
|
|
18
|
+
|
|
19
|
+
The value of the `ToggleGroupControlOptionBase`.
|
|
20
|
+
|
|
21
|
+
- Required: Yes
|
|
22
|
+
|
|
23
|
+
### `showTooltip`: `boolean`
|
|
24
|
+
|
|
25
|
+
Whether to show a tooltip when hovering over the option. The tooltip will only show if a label for it is provided using the `aria-label` prop.
|
|
26
|
+
|
|
27
|
+
- Required: No
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External dependencies
|
|
3
|
+
*/
|
|
4
|
+
import type { ForwardedRef } from 'react';
|
|
5
|
+
// eslint-disable-next-line no-restricted-imports
|
|
6
|
+
import { Radio } from 'reakit';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* WordPress dependencies
|
|
10
|
+
*/
|
|
11
|
+
import { useInstanceId } from '@wordpress/compose';
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Internal dependencies
|
|
15
|
+
*/
|
|
16
|
+
import {
|
|
17
|
+
contextConnect,
|
|
18
|
+
useContextSystem,
|
|
19
|
+
WordPressComponentProps,
|
|
20
|
+
} from '../../ui/context';
|
|
21
|
+
import type {
|
|
22
|
+
ToggleGroupControlOptionBaseProps,
|
|
23
|
+
WithToolTipProps,
|
|
24
|
+
} from '../types';
|
|
25
|
+
import { useToggleGroupControlContext } from '../context';
|
|
26
|
+
import * as styles from './styles';
|
|
27
|
+
import { useCx } from '../../utils/hooks';
|
|
28
|
+
import Tooltip from '../../tooltip';
|
|
29
|
+
|
|
30
|
+
const { ButtonContentView, LabelView } = styles;
|
|
31
|
+
|
|
32
|
+
const WithToolTip = ( { showTooltip, text, children }: WithToolTipProps ) => {
|
|
33
|
+
if ( showTooltip && text ) {
|
|
34
|
+
return (
|
|
35
|
+
<Tooltip text={ text } position="top center">
|
|
36
|
+
{ children }
|
|
37
|
+
</Tooltip>
|
|
38
|
+
);
|
|
39
|
+
}
|
|
40
|
+
return <>{ children }</>;
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
function ToggleGroupControlOptionBase(
|
|
44
|
+
props: WordPressComponentProps<
|
|
45
|
+
ToggleGroupControlOptionBaseProps,
|
|
46
|
+
'button',
|
|
47
|
+
false
|
|
48
|
+
>,
|
|
49
|
+
forwardedRef: ForwardedRef< any >
|
|
50
|
+
) {
|
|
51
|
+
const toggleGroupControlContext = useToggleGroupControlContext();
|
|
52
|
+
const id = useInstanceId(
|
|
53
|
+
ToggleGroupControlOptionBase,
|
|
54
|
+
toggleGroupControlContext.baseId || 'toggle-group-control-option-base'
|
|
55
|
+
) as string;
|
|
56
|
+
const buttonProps = useContextSystem(
|
|
57
|
+
{ ...props, id },
|
|
58
|
+
'ToggleGroupControlOptionBase'
|
|
59
|
+
);
|
|
60
|
+
const {
|
|
61
|
+
className,
|
|
62
|
+
isBlock = false,
|
|
63
|
+
value,
|
|
64
|
+
children,
|
|
65
|
+
showTooltip = false,
|
|
66
|
+
...radioProps
|
|
67
|
+
} = {
|
|
68
|
+
...toggleGroupControlContext,
|
|
69
|
+
...buttonProps,
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
const isActive = radioProps.state === value;
|
|
73
|
+
const cx = useCx();
|
|
74
|
+
const labelViewClasses = cx( isBlock && styles.labelBlock );
|
|
75
|
+
const classes = cx(
|
|
76
|
+
styles.buttonView,
|
|
77
|
+
className,
|
|
78
|
+
isActive && styles.buttonActive
|
|
79
|
+
);
|
|
80
|
+
|
|
81
|
+
return (
|
|
82
|
+
<LabelView className={ labelViewClasses } data-active={ isActive }>
|
|
83
|
+
<WithToolTip
|
|
84
|
+
showTooltip={ showTooltip }
|
|
85
|
+
text={ radioProps[ 'aria-label' ] }
|
|
86
|
+
>
|
|
87
|
+
<Radio
|
|
88
|
+
{ ...radioProps }
|
|
89
|
+
as="button"
|
|
90
|
+
aria-label={ radioProps[ 'aria-label' ] }
|
|
91
|
+
className={ classes }
|
|
92
|
+
data-value={ value }
|
|
93
|
+
ref={ forwardedRef }
|
|
94
|
+
value={ value }
|
|
95
|
+
>
|
|
96
|
+
<ButtonContentView>{ children }</ButtonContentView>
|
|
97
|
+
</Radio>
|
|
98
|
+
</WithToolTip>
|
|
99
|
+
</LabelView>
|
|
100
|
+
);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* `ToggleGroupControlOptionBase` is a form component and is meant to be used as an internal,
|
|
105
|
+
* generic component for any children of `ToggleGroupControl`.
|
|
106
|
+
*
|
|
107
|
+
* @example
|
|
108
|
+
* ```jsx
|
|
109
|
+
* import {
|
|
110
|
+
* __experimentalToggleGroupControl as ToggleGroupControl,
|
|
111
|
+
* __experimentalToggleGroupControlOptionBase as ToggleGroupControlOptionBase,
|
|
112
|
+
* } from '@wordpress/components';
|
|
113
|
+
*
|
|
114
|
+
* function Example() {
|
|
115
|
+
* return (
|
|
116
|
+
* <ToggleGroupControl label="my label" value="vertical" isBlock>
|
|
117
|
+
* <ToggleGroupControlOption value="horizontal" label="Horizontal" />
|
|
118
|
+
* <ToggleGroupControlOption value="vertical" label="Vertical" />
|
|
119
|
+
* </ToggleGroupControl>
|
|
120
|
+
* );
|
|
121
|
+
* }
|
|
122
|
+
* ```
|
|
123
|
+
*/
|
|
124
|
+
const ConnectedToggleGroupControlOptionBase = contextConnect(
|
|
125
|
+
ToggleGroupControlOptionBase,
|
|
126
|
+
'ToggleGroupControlOptionBase'
|
|
127
|
+
);
|
|
128
|
+
|
|
129
|
+
export default ConnectedToggleGroupControlOptionBase;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as ToggleGroupControlOptionBase } from './component';
|
|
@@ -27,6 +27,7 @@ export const buttonView = css`
|
|
|
27
27
|
border: none;
|
|
28
28
|
border-radius: ${ CONFIG.controlBorderRadius };
|
|
29
29
|
color: ${ COLORS.gray[ 700 ] };
|
|
30
|
+
fill: currentColor;
|
|
30
31
|
cursor: pointer;
|
|
31
32
|
display: flex;
|
|
32
33
|
font-family: inherit;
|
|
@@ -55,7 +56,9 @@ export const buttonView = css`
|
|
|
55
56
|
|
|
56
57
|
export const buttonActive = css`
|
|
57
58
|
color: ${ COLORS.white };
|
|
58
|
-
|
|
59
|
+
&:active {
|
|
60
|
+
background: transparent;
|
|
61
|
+
}
|
|
59
62
|
`;
|
|
60
63
|
|
|
61
64
|
export const ButtonContentView = styled.div`
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# `ToggleGroupControlOptionIcon`
|
|
2
|
+
|
|
3
|
+
<div class="callout callout-alert">
|
|
4
|
+
This feature is still experimental. “Experimental” means this is an early implementation subject to drastic and breaking changes.
|
|
5
|
+
</div>
|
|
6
|
+
|
|
7
|
+
`ToggleGroupControlOptionIcon` is a form component which is meant to be used as a child of [`ToggleGroupControl`] and displays an icon(<(/packages/components/src/toggle-group-control/toggle-group-control/README.md)>).
|
|
8
|
+
|
|
9
|
+
## Usage
|
|
10
|
+
|
|
11
|
+
```js
|
|
12
|
+
import {
|
|
13
|
+
__experimentalToggleGroupControl as ToggleGroupControl,
|
|
14
|
+
__experimentalToggleGroupControlOptionIcon as ToggleGroupControlOptionIcon,
|
|
15
|
+
} from '@wordpress/components';
|
|
16
|
+
import { formatLowercase, formatUppercase } from '@wordpress/icons';
|
|
17
|
+
|
|
18
|
+
function Example() {
|
|
19
|
+
return (
|
|
20
|
+
<ToggleGroupControl label="my label" value="lowercase" isBlock>
|
|
21
|
+
<ToggleGroupControlOptionIcon
|
|
22
|
+
value="uppercase"
|
|
23
|
+
icon={ formatUppercase }
|
|
24
|
+
showTooltip={ true }
|
|
25
|
+
aria-label="Uppercase"
|
|
26
|
+
/>
|
|
27
|
+
<ToggleGroupControlOptionIcon
|
|
28
|
+
value="lowercase"
|
|
29
|
+
icon={ formatLowercase }
|
|
30
|
+
showTooltip={ true }
|
|
31
|
+
aria-label="Lowercase"
|
|
32
|
+
/>
|
|
33
|
+
</ToggleGroupControl>
|
|
34
|
+
);
|
|
35
|
+
}
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Props
|
|
39
|
+
|
|
40
|
+
### `value`: `string | number`
|
|
41
|
+
|
|
42
|
+
The value of the `ToggleGroupControlOption`.
|
|
43
|
+
|
|
44
|
+
- Required: Yes
|
|
45
|
+
|
|
46
|
+
### `icon`: `WPComponent`
|
|
47
|
+
|
|
48
|
+
Icon displayed as the content of the option. Usually one of the icons from the `@wordpress/icons` package, or a custom React `<svg>` icon.
|
|
49
|
+
|
|
50
|
+
- Required: Yes
|
|
51
|
+
|
|
52
|
+
### `showTooltip`: `boolean`
|
|
53
|
+
|
|
54
|
+
Whether to show a tooltip when hovering over the option. The tooltip will only show if a label for it is provided using the `aria-label` prop.
|
|
55
|
+
|
|
56
|
+
- Required: No
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { Icon } from '@wordpress/icons';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Internal dependencies
|
|
8
|
+
*/
|
|
9
|
+
import type { WordPressComponentProps } from '../../ui/context';
|
|
10
|
+
import type { ToggleGroupControlOptionIconProps } from '../types';
|
|
11
|
+
import { ToggleGroupControlOptionBase } from '../toggle-group-control-option-base';
|
|
12
|
+
|
|
13
|
+
export default function ToggleGroupControlOptionIcon(
|
|
14
|
+
props: WordPressComponentProps<
|
|
15
|
+
ToggleGroupControlOptionIconProps,
|
|
16
|
+
'button',
|
|
17
|
+
false
|
|
18
|
+
>
|
|
19
|
+
) {
|
|
20
|
+
const { icon, ...restProps } = props;
|
|
21
|
+
return (
|
|
22
|
+
<ToggleGroupControlOptionBase { ...restProps }>
|
|
23
|
+
<Icon icon={ icon } />
|
|
24
|
+
</ToggleGroupControlOptionBase>
|
|
25
|
+
);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* `ToggleGroupControlOptionIcon` is a form component which is meant to be used as a
|
|
30
|
+
* child of `ToggleGroupControl` and displays an icon.
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```jsx
|
|
34
|
+
*
|
|
35
|
+
* import {
|
|
36
|
+
* __experimentalToggleGroupControl as ToggleGroupControl,
|
|
37
|
+
* __experimentalToggleGroupControlOptionIcon as ToggleGroupControlOptionIcon,
|
|
38
|
+
* from '@wordpress/components';
|
|
39
|
+
* import { formatLowercase, formatUppercase } from '@wordpress/icons';
|
|
40
|
+
*
|
|
41
|
+
* function Example() {
|
|
42
|
+
* return (
|
|
43
|
+
* <ToggleGroupControl label="my label" value="vertical" isBlock>
|
|
44
|
+
* <ToggleGroupControlOptionIcon
|
|
45
|
+
* value="uppercase"
|
|
46
|
+
* icon={ formatUppercase }
|
|
47
|
+
* />
|
|
48
|
+
* <ToggleGroupControlOptionIcon
|
|
49
|
+
* value="lowercase"
|
|
50
|
+
* icon={ formatLowercase }
|
|
51
|
+
* />
|
|
52
|
+
* </ToggleGroupControl>
|
|
53
|
+
* );
|
|
54
|
+
* }
|
|
55
|
+
** ```
|
|
56
|
+
*/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as ToggleGroupControlOptionIcon } from './component';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import type { ReactNode, ReactText } from 'react';
|
|
4
|
+
import type { MutableRefObject, ReactNode, ReactText } from 'react';
|
|
5
5
|
// eslint-disable-next-line no-restricted-imports
|
|
6
6
|
import type { RadioStateReturn } from 'reakit';
|
|
7
7
|
|
|
@@ -10,13 +10,9 @@ import type { RadioStateReturn } from 'reakit';
|
|
|
10
10
|
*/
|
|
11
11
|
import type { FormElementProps } from '../utils/types';
|
|
12
12
|
|
|
13
|
-
export type
|
|
13
|
+
export type ToggleGroupControlOptionBaseProps = {
|
|
14
|
+
children: ReactNode;
|
|
14
15
|
value: ReactText;
|
|
15
|
-
/**
|
|
16
|
-
* Label for the option. If needed, the `aria-label` prop can be used in addition
|
|
17
|
-
* to specify a different label for assistive technologies.
|
|
18
|
-
*/
|
|
19
|
-
label: string;
|
|
20
16
|
/**
|
|
21
17
|
* Whether to display a Tooltip for the control option. If set to `true`, the tooltip will
|
|
22
18
|
* show the aria-label or the label prop text.
|
|
@@ -26,6 +22,28 @@ export type ToggleGroupControlOptionProps = {
|
|
|
26
22
|
showTooltip?: boolean;
|
|
27
23
|
};
|
|
28
24
|
|
|
25
|
+
export type ToggleGroupControlOptionIconProps = Omit<
|
|
26
|
+
ToggleGroupControlOptionBaseProps,
|
|
27
|
+
'children'
|
|
28
|
+
> & {
|
|
29
|
+
/**
|
|
30
|
+
* Icon displayed as the content of the option. Usually one of the icons from
|
|
31
|
+
* the `@wordpress/icons` package, or a custom React `<svg>` icon.
|
|
32
|
+
*/
|
|
33
|
+
icon: JSX.Element;
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
export type ToggleGroupControlOptionProps = Omit<
|
|
37
|
+
ToggleGroupControlOptionBaseProps,
|
|
38
|
+
'children'
|
|
39
|
+
> & {
|
|
40
|
+
/**
|
|
41
|
+
* Label for the option. If needed, the `aria-label` prop can be used in addition
|
|
42
|
+
* to specify a different label for assistive technologies.
|
|
43
|
+
*/
|
|
44
|
+
label: string;
|
|
45
|
+
};
|
|
46
|
+
|
|
29
47
|
export type WithToolTipProps = {
|
|
30
48
|
/**
|
|
31
49
|
* React children
|
|
@@ -34,7 +52,7 @@ export type WithToolTipProps = {
|
|
|
34
52
|
/**
|
|
35
53
|
* Label for the Tooltip component.
|
|
36
54
|
*/
|
|
37
|
-
text
|
|
55
|
+
text?: string;
|
|
38
56
|
/**
|
|
39
57
|
* Whether to wrap the control option in a Tooltip component.
|
|
40
58
|
*
|
|
@@ -96,3 +114,10 @@ export type ToggleGroupControlContextProps = RadioStateReturn & {
|
|
|
96
114
|
*/
|
|
97
115
|
isBlock?: boolean;
|
|
98
116
|
};
|
|
117
|
+
|
|
118
|
+
export type ToggleGroupControlBackdropProps = {
|
|
119
|
+
containerRef: MutableRefObject< HTMLElement | undefined >;
|
|
120
|
+
containerWidth?: number | null;
|
|
121
|
+
isAdaptiveWidth?: boolean;
|
|
122
|
+
state?: any;
|
|
123
|
+
};
|
|
@@ -19,7 +19,7 @@ function ToolbarDropdownMenu( props, ref ) {
|
|
|
19
19
|
|
|
20
20
|
// ToobarItem will pass all props to the render prop child, which will pass
|
|
21
21
|
// all props to the toggle of DropdownMenu. This means that ToolbarDropdownMenu
|
|
22
|
-
// has the same API as
|
|
22
|
+
// has the same API as DropdownMenu.
|
|
23
23
|
return (
|
|
24
24
|
<ToolbarItem ref={ ref } { ...props.toggleProps }>
|
|
25
25
|
{ ( toolbarItemProps ) => (
|
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
display: inline-flex;
|
|
6
6
|
flex-shrink: 0;
|
|
7
7
|
flex-wrap: wrap;
|
|
8
|
+
padding-left: $grid-unit-15 * 0.5; // 6px.
|
|
9
|
+
padding-right: $grid-unit-15 * 0.5;
|
|
8
10
|
|
|
9
11
|
// Unset for nested toolbar groups. Increase specificity.
|
|
10
12
|
& .components-toolbar-group.components-toolbar-group {
|
|
@@ -13,6 +15,24 @@
|
|
|
13
15
|
}
|
|
14
16
|
|
|
15
17
|
line-height: 0;
|
|
18
|
+
|
|
19
|
+
// Size multiple sequential buttons to be optically balanced.
|
|
20
|
+
// Icons are 36px, as set by a 24px icon and 12px padding.
|
|
21
|
+
.components-button.components-button, // This needs specificity to override padding values inherited from the button component.
|
|
22
|
+
.components-button.has-icon.has-icon {
|
|
23
|
+
min-width: $block-toolbar-height - $grid-unit-15;
|
|
24
|
+
padding-left: $grid-unit-15 * 0.5; // 6px.
|
|
25
|
+
padding-right: $grid-unit-15 * 0.5;
|
|
26
|
+
|
|
27
|
+
svg {
|
|
28
|
+
min-width: $button-size-small; // This is the optimal icon size, and we size the whole button after this.
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
&::before {
|
|
32
|
+
left: 2px;
|
|
33
|
+
right: 2px;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
16
36
|
}
|
|
17
37
|
|
|
18
38
|
// Legacy toolbar group
|
|
@@ -64,7 +64,7 @@ exports[`ToolsPanel first and last panel items should apply first/last classes t
|
|
|
64
64
|
color: #1e1e1e;
|
|
65
65
|
line-height: 1.2;
|
|
66
66
|
margin: 0;
|
|
67
|
-
color: #
|
|
67
|
+
color: #1e1e1e;
|
|
68
68
|
font-size: calc(1.95 * 13px);
|
|
69
69
|
font-weight: 600;
|
|
70
70
|
display: block;
|
|
@@ -89,15 +89,15 @@ exports[`ToolsPanel first and last panel items should apply first/last classes t
|
|
|
89
89
|
max-width: 100%;
|
|
90
90
|
}
|
|
91
91
|
|
|
92
|
-
.emotion-6.emotion-6 .
|
|
92
|
+
.emotion-6.emotion-6 .ej5x27r4 {
|
|
93
93
|
margin-bottom: 0;
|
|
94
94
|
}
|
|
95
95
|
|
|
96
|
-
.emotion-6.emotion-6 .
|
|
96
|
+
.emotion-6.emotion-6 .ej5x27r4 .ej5x27r3:last-child {
|
|
97
97
|
margin-bottom: 0;
|
|
98
98
|
}
|
|
99
99
|
|
|
100
|
-
.emotion-6 .
|
|
100
|
+
.emotion-6 .ej5x27r1 {
|
|
101
101
|
margin-bottom: 0;
|
|
102
102
|
}
|
|
103
103
|
|
|
@@ -106,7 +106,7 @@ exports[`ToolsPanel first and last panel items should apply first/last classes t
|
|
|
106
106
|
}
|
|
107
107
|
|
|
108
108
|
.emotion-6 .components-custom-select-control__label,
|
|
109
|
-
.emotion-6 .
|
|
109
|
+
.emotion-6 .ej5x27r2 {
|
|
110
110
|
line-height: 1.4em;
|
|
111
111
|
}
|
|
112
112
|
|
|
@@ -121,15 +121,15 @@ exports[`ToolsPanel first and last panel items should apply first/last classes t
|
|
|
121
121
|
max-width: 100%;
|
|
122
122
|
}
|
|
123
123
|
|
|
124
|
-
.emotion-8.emotion-8 .
|
|
124
|
+
.emotion-8.emotion-8 .ej5x27r4 {
|
|
125
125
|
margin-bottom: 0;
|
|
126
126
|
}
|
|
127
127
|
|
|
128
|
-
.emotion-8.emotion-8 .
|
|
128
|
+
.emotion-8.emotion-8 .ej5x27r4 .ej5x27r3:last-child {
|
|
129
129
|
margin-bottom: 0;
|
|
130
130
|
}
|
|
131
131
|
|
|
132
|
-
.emotion-8 .
|
|
132
|
+
.emotion-8 .ej5x27r1 {
|
|
133
133
|
margin-bottom: 0;
|
|
134
134
|
}
|
|
135
135
|
|
|
@@ -138,7 +138,7 @@ exports[`ToolsPanel first and last panel items should apply first/last classes t
|
|
|
138
138
|
}
|
|
139
139
|
|
|
140
140
|
.emotion-8 .components-custom-select-control__label,
|
|
141
|
-
.emotion-8 .
|
|
141
|
+
.emotion-8 .ej5x27r2 {
|
|
142
142
|
line-height: 1.4em;
|
|
143
143
|
}
|
|
144
144
|
|
|
@@ -12,7 +12,7 @@ Snapshot Diff:
|
|
|
12
12
|
<div
|
|
13
13
|
class="css-tada40-BarsView e1s9yo7h0"
|
|
14
14
|
- style="color: blue;"
|
|
15
|
-
+ style="color: rgb(
|
|
15
|
+
+ style="color: rgb(30, 30, 30);"
|
|
16
16
|
>
|
|
17
17
|
<div
|
|
18
18
|
class="InnerBar1"
|
|
@@ -193,7 +193,7 @@ exports[`props should render correctly 1`] = `
|
|
|
193
193
|
>
|
|
194
194
|
<div
|
|
195
195
|
class="emotion-4 emotion-5"
|
|
196
|
-
style="color: rgb(
|
|
196
|
+
style="color: rgb(30, 30, 30);"
|
|
197
197
|
>
|
|
198
198
|
<div
|
|
199
199
|
class="InnerBar1"
|
|
@@ -258,6 +258,6 @@ Snapshot Diff:
|
|
|
258
258
|
>
|
|
259
259
|
<div
|
|
260
260
|
class="css-tada40-BarsView e1s9yo7h0"
|
|
261
|
-
style="color: rgb(
|
|
261
|
+
style="color: rgb(30, 30, 30);"
|
|
262
262
|
>
|
|
263
263
|
`;
|
|
@@ -61,6 +61,12 @@ The position of the label (`top`, `side`, `bottom`, or `edge`).
|
|
|
61
61
|
|
|
62
62
|
- Required: No
|
|
63
63
|
|
|
64
|
+
### `onBlur`: `FocusEventHandler< HTMLInputElement | HTMLSelectElement >`
|
|
65
|
+
|
|
66
|
+
Callback invoked when either the quantity or unit inputs fire the `blur` event.
|
|
67
|
+
|
|
68
|
+
- Required: No
|
|
69
|
+
|
|
64
70
|
### `onChange`: `UnitControlOnChangeCallback`
|
|
65
71
|
|
|
66
72
|
Callback when the `value` changes.
|
|
@@ -61,6 +61,7 @@ function UnforwardedUnitControl(
|
|
|
61
61
|
unit: unitProp,
|
|
62
62
|
units: unitsProp = CSS_UNITS,
|
|
63
63
|
value: valueProp,
|
|
64
|
+
onBlur: onBlurProp,
|
|
64
65
|
...props
|
|
65
66
|
} = unitControlProps;
|
|
66
67
|
|
|
@@ -187,7 +188,10 @@ function UnforwardedUnitControl(
|
|
|
187
188
|
}
|
|
188
189
|
};
|
|
189
190
|
|
|
190
|
-
const handleOnBlur: FocusEventHandler< HTMLInputElement > =
|
|
191
|
+
const handleOnBlur: FocusEventHandler< HTMLInputElement > = ( event ) => {
|
|
192
|
+
mayUpdateUnit( event );
|
|
193
|
+
onBlurProp?.( event );
|
|
194
|
+
};
|
|
191
195
|
|
|
192
196
|
const handleOnKeyDown = ( event: KeyboardEvent< HTMLInputElement > ) => {
|
|
193
197
|
const { key } = event;
|
|
@@ -242,6 +246,7 @@ function UnforwardedUnitControl(
|
|
|
242
246
|
size={ size }
|
|
243
247
|
unit={ unit }
|
|
244
248
|
units={ units }
|
|
249
|
+
onBlur={ onBlurProp }
|
|
245
250
|
/>
|
|
246
251
|
) : null;
|
|
247
252
|
|
|
@@ -220,6 +220,91 @@ describe( 'UnitControl', () => {
|
|
|
220
220
|
expect( input.value ).toBe( '50' );
|
|
221
221
|
expect( state ).toBe( 50 );
|
|
222
222
|
} );
|
|
223
|
+
|
|
224
|
+
it( 'should run onBlur callback when quantity input is blurred', async () => {
|
|
225
|
+
let state = '33%';
|
|
226
|
+
const onChangeSpy = jest.fn();
|
|
227
|
+
const onBlurSpy = jest.fn();
|
|
228
|
+
const setState = ( nextState ) => {
|
|
229
|
+
onChangeSpy( nextState );
|
|
230
|
+
state = nextState;
|
|
231
|
+
};
|
|
232
|
+
|
|
233
|
+
const { user } = render(
|
|
234
|
+
<>
|
|
235
|
+
<button>Click me</button>
|
|
236
|
+
<UnitControl
|
|
237
|
+
value={ state }
|
|
238
|
+
onChange={ setState }
|
|
239
|
+
onBlur={ onBlurSpy }
|
|
240
|
+
/>
|
|
241
|
+
</>
|
|
242
|
+
);
|
|
243
|
+
|
|
244
|
+
const input = getInput();
|
|
245
|
+
await user.clear( input );
|
|
246
|
+
await user.type( input, '41' );
|
|
247
|
+
|
|
248
|
+
await waitFor( () =>
|
|
249
|
+
expect( onChangeSpy ).toHaveBeenCalledTimes( 3 )
|
|
250
|
+
);
|
|
251
|
+
expect( onChangeSpy ).toHaveBeenLastCalledWith( '41%' );
|
|
252
|
+
|
|
253
|
+
// Clicking on the button should cause the `onBlur` callback to fire.
|
|
254
|
+
const button = screen.getByRole( 'button' );
|
|
255
|
+
await user.click( button );
|
|
256
|
+
|
|
257
|
+
await waitFor( () =>
|
|
258
|
+
expect( onBlurSpy ).toHaveBeenCalledTimes( 1 )
|
|
259
|
+
);
|
|
260
|
+
} );
|
|
261
|
+
|
|
262
|
+
it( 'should invoke onChange and onUnitChange callbacks when isPressEnterToChange is true and the component is blurred with an uncommitted value', async () => {
|
|
263
|
+
let state = '15px';
|
|
264
|
+
|
|
265
|
+
const onUnitChangeSpy = jest.fn();
|
|
266
|
+
const onChangeSpy = jest.fn();
|
|
267
|
+
|
|
268
|
+
const setState = ( nextState ) => {
|
|
269
|
+
onChangeSpy( nextState );
|
|
270
|
+
state = nextState;
|
|
271
|
+
};
|
|
272
|
+
|
|
273
|
+
const { user } = render(
|
|
274
|
+
<>
|
|
275
|
+
<button>Click me</button>
|
|
276
|
+
<UnitControl
|
|
277
|
+
value={ state }
|
|
278
|
+
onChange={ setState }
|
|
279
|
+
onUnitChange={ onUnitChangeSpy }
|
|
280
|
+
isPressEnterToChange
|
|
281
|
+
/>
|
|
282
|
+
</>
|
|
283
|
+
);
|
|
284
|
+
|
|
285
|
+
const input = getInput();
|
|
286
|
+
await user.clear( input );
|
|
287
|
+
await user.type( input, '41vh' );
|
|
288
|
+
|
|
289
|
+
// This is because `isPressEnterToChange` is `true`
|
|
290
|
+
expect( onChangeSpy ).not.toHaveBeenCalled();
|
|
291
|
+
|
|
292
|
+
// Clicking on the button should cause the `onBlur` callback to fire.
|
|
293
|
+
const button = screen.getByRole( 'button' );
|
|
294
|
+
await user.click( button );
|
|
295
|
+
|
|
296
|
+
await waitFor( () =>
|
|
297
|
+
expect( onChangeSpy ).toHaveBeenCalledTimes( 1 )
|
|
298
|
+
);
|
|
299
|
+
|
|
300
|
+
expect( onChangeSpy ).toHaveBeenLastCalledWith( '41vh' );
|
|
301
|
+
|
|
302
|
+
expect( onUnitChangeSpy ).toHaveBeenCalledTimes( 1 );
|
|
303
|
+
expect( onUnitChangeSpy ).toHaveBeenLastCalledWith(
|
|
304
|
+
'vh',
|
|
305
|
+
expect.anything()
|
|
306
|
+
);
|
|
307
|
+
} );
|
|
223
308
|
} );
|
|
224
309
|
|
|
225
310
|
describe( 'Unit', () => {
|
|
@@ -384,6 +469,41 @@ describe( 'UnitControl', () => {
|
|
|
384
469
|
|
|
385
470
|
expect( select ).toHaveValue( 'vmax' );
|
|
386
471
|
} );
|
|
472
|
+
|
|
473
|
+
it( 'should run onBlur callback when the unit select is blurred', async () => {
|
|
474
|
+
const onUnitChangeSpy = jest.fn();
|
|
475
|
+
const onBlurSpy = jest.fn();
|
|
476
|
+
|
|
477
|
+
const { user } = render(
|
|
478
|
+
<>
|
|
479
|
+
<button>Click me</button>
|
|
480
|
+
<UnitControl
|
|
481
|
+
value="15px"
|
|
482
|
+
onUnitChange={ onUnitChangeSpy }
|
|
483
|
+
onBlur={ onBlurSpy }
|
|
484
|
+
/>
|
|
485
|
+
</>
|
|
486
|
+
);
|
|
487
|
+
|
|
488
|
+
const select = getSelect();
|
|
489
|
+
await user.selectOptions( select, [ 'em' ] );
|
|
490
|
+
|
|
491
|
+
await waitFor( () =>
|
|
492
|
+
expect( onUnitChangeSpy ).toHaveBeenCalledTimes( 1 )
|
|
493
|
+
);
|
|
494
|
+
expect( onUnitChangeSpy ).toHaveBeenLastCalledWith(
|
|
495
|
+
'em',
|
|
496
|
+
expect.anything()
|
|
497
|
+
);
|
|
498
|
+
|
|
499
|
+
// Clicking on the button should cause the `onBlur` callback to fire.
|
|
500
|
+
const button = screen.getByRole( 'button' );
|
|
501
|
+
await user.click( button );
|
|
502
|
+
|
|
503
|
+
await waitFor( () =>
|
|
504
|
+
expect( onBlurSpy ).toHaveBeenCalledTimes( 1 )
|
|
505
|
+
);
|
|
506
|
+
} );
|
|
387
507
|
} );
|
|
388
508
|
|
|
389
509
|
describe( 'Unit Parser', () => {
|