@wordpress/components 19.7.0-next.e230fbab09.0 → 19.8.1
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 +57 -1
- package/README.md +38 -0
- package/build/base-control/index.js +41 -32
- package/build/base-control/index.js.map +1 -1
- package/build/base-control/styles/base-control-styles.js +43 -22
- 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/box-control/all-input-control.js +3 -7
- package/build/box-control/all-input-control.js.map +1 -1
- package/build/box-control/axial-input-controls.js +20 -15
- package/build/box-control/axial-input-controls.js.map +1 -1
- package/build/box-control/input-controls.js +21 -16
- package/build/box-control/input-controls.js.map +1 -1
- package/build/box-control/utils.js +25 -11
- package/build/box-control/utils.js.map +1 -1
- package/build/card/styles.js +22 -17
- package/build/card/styles.js.map +1 -1
- package/build/checkbox-control/index.js +21 -1
- package/build/checkbox-control/index.js.map +1 -1
- package/build/color-palette/index.js +53 -4
- package/build/color-palette/index.js.map +1 -1
- package/build/custom-select-control/index.js +12 -4
- package/build/custom-select-control/index.js.map +1 -1
- package/build/divider/styles.js +28 -16
- package/build/divider/styles.js.map +1 -1
- package/build/focal-point-picker/controls.js +2 -3
- package/build/focal-point-picker/controls.js.map +1 -1
- package/build/form-file-upload/index.js +4 -1
- package/build/form-file-upload/index.js.map +1 -1
- package/build/guide/index.js +14 -8
- package/build/guide/index.js.map +1 -1
- package/build/index.js +40 -0
- package/build/index.js.map +1 -1
- package/build/input-control/input-field.js +21 -14
- package/build/input-control/input-field.js.map +1 -1
- package/build/input-control/reducer/actions.js +1 -3
- package/build/input-control/reducer/actions.js.map +1 -1
- package/build/input-control/reducer/reducer.js +1 -43
- package/build/input-control/reducer/reducer.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/number-control/index.js +15 -10
- package/build/number-control/index.js.map +1 -1
- package/build/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js +4 -4
- package/build/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js.map +1 -1
- package/build/surface/styles.js +8 -8
- package/build/surface/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 -90
- 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/tree-grid/index.js +4 -1
- package/build/tree-grid/index.js.map +1 -1
- package/build/unit-control/index.js +56 -29
- package/build/unit-control/index.js.map +1 -1
- package/build/unit-control/unit-select-control.js +2 -4
- package/build/unit-control/unit-select-control.js.map +1 -1
- package/build/utils/colors-values.js +5 -3
- 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/base-control/index.js +39 -35
- package/build-module/base-control/index.js.map +1 -1
- package/build-module/base-control/styles/base-control-styles.js +44 -16
- 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/box-control/all-input-control.js +4 -8
- package/build-module/box-control/all-input-control.js.map +1 -1
- package/build-module/box-control/axial-input-controls.js +18 -14
- package/build-module/box-control/axial-input-controls.js.map +1 -1
- package/build-module/box-control/input-controls.js +18 -14
- package/build-module/box-control/input-controls.js.map +1 -1
- package/build-module/box-control/utils.js +25 -11
- package/build-module/box-control/utils.js.map +1 -1
- package/build-module/card/styles.js +23 -18
- package/build-module/card/styles.js.map +1 -1
- package/build-module/checkbox-control/index.js +24 -3
- package/build-module/checkbox-control/index.js.map +1 -1
- package/build-module/color-palette/index.js +52 -4
- package/build-module/color-palette/index.js.map +1 -1
- package/build-module/custom-select-control/index.js +12 -4
- package/build-module/custom-select-control/index.js.map +1 -1
- package/build-module/divider/styles.js +29 -10
- package/build-module/divider/styles.js.map +1 -1
- package/build-module/focal-point-picker/controls.js +2 -3
- package/build-module/focal-point-picker/controls.js.map +1 -1
- package/build-module/form-file-upload/index.js +4 -1
- package/build-module/form-file-upload/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/index.js +3 -1
- package/build-module/index.js.map +1 -1
- package/build-module/input-control/input-field.js +21 -13
- package/build-module/input-control/input-field.js.map +1 -1
- package/build-module/input-control/reducer/actions.js +0 -1
- package/build-module/input-control/reducer/actions.js.map +1 -1
- package/build-module/input-control/reducer/reducer.js +2 -39
- package/build-module/input-control/reducer/reducer.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/number-control/index.js +15 -9
- package/build-module/number-control/index.js.map +1 -1
- package/build-module/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js +4 -4
- package/build-module/resizable-box/resize-tooltip/styles/resize-tooltip.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/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 -79
- 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/tree-grid/index.js +4 -1
- package/build-module/tree-grid/index.js.map +1 -1
- package/build-module/unit-control/index.js +54 -27
- package/build-module/unit-control/index.js.map +1 -1
- package/build-module/unit-control/unit-select-control.js +2 -3
- package/build-module/unit-control/unit-select-control.js.map +1 -1
- package/build-module/utils/colors-values.js +5 -3
- 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 +33 -185
- package/build-style/style.css +33 -185
- package/build-types/base-control/index.d.ts +35 -71
- 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 +10 -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/card-divider/hook.d.ts +1 -1
- 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-palette/index.d.ts.map +1 -1
- package/build-types/color-picker/styles.d.ts +1 -1
- package/build-types/divider/stories/index.d.ts +1 -0
- package/build-types/divider/stories/index.d.ts.map +1 -1
- package/build-types/divider/styles.d.ts.map +1 -1
- package/build-types/divider/types.d.ts +8 -1
- package/build-types/divider/types.d.ts.map +1 -1
- package/build-types/input-control/input-field.d.ts.map +1 -1
- package/build-types/input-control/reducer/actions.d.ts +1 -3
- package/build-types/input-control/reducer/actions.d.ts.map +1 -1
- package/build-types/input-control/reducer/reducer.d.ts +3 -9
- package/build-types/input-control/reducer/reducer.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/types.d.ts +2 -2
- 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/index.d.ts +3 -3
- package/build-types/number-control/index.d.ts.map +1 -1
- package/build-types/range-control/styles/range-control-styles.d.ts +1 -1
- package/build-types/resizable-box/resize-tooltip/styles/resize-tooltip.styles.d.ts.map +1 -1
- package/build-types/spinner/styles/spinner-styles.d.ts +5 -0
- package/build-types/spinner/styles/spinner-styles.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/styles.d.ts +0 -4
- package/build-types/toggle-group-control/toggle-group-control-option/styles.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-base/styles.d.ts +15 -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 +12 -5
- package/build-types/unit-control/index.d.ts.map +1 -1
- package/build-types/unit-control/stories/index.d.ts +33 -0
- package/build-types/unit-control/stories/index.d.ts.map +1 -0
- package/build-types/unit-control/styles/unit-control-styles.d.ts +1 -1
- package/build-types/unit-control/types.d.ts +28 -7
- package/build-types/unit-control/types.d.ts.map +1 -1
- package/build-types/unit-control/unit-select-control.d.ts.map +1 -1
- package/build-types/utils/colors-values.d.ts +78 -18
- 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/animate/README.md +1 -1
- package/src/base-control/README.md +20 -12
- 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} +23 -1
- 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/box-control/all-input-control.js +2 -10
- package/src/box-control/axial-input-controls.js +32 -21
- package/src/box-control/input-controls.js +30 -19
- package/src/box-control/utils.js +29 -12
- 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/checkbox-control/index.js +34 -3
- package/src/checkbox-control/stories/index.js +44 -0
- package/src/checkbox-control/style.scss +4 -2
- package/src/color-palette/README.md +6 -0
- package/src/color-palette/index.js +73 -8
- package/src/color-palette/stories/index.js +69 -26
- package/src/color-palette/style.scss +11 -3
- package/src/color-palette/test/__snapshots__/index.js.snap +662 -12
- package/src/color-palette/test/index.js +1 -1
- package/src/custom-select-control/index.js +15 -3
- package/src/custom-select-control/stories/index.js +77 -74
- package/src/custom-select-control/style.scss +23 -4
- package/src/disabled/README.md +7 -10
- package/src/divider/stories/index.tsx +26 -23
- package/src/divider/styles.ts +9 -0
- package/src/divider/types.ts +11 -1
- package/src/flyout/test/__snapshots__/index.js.snap +7 -7
- package/src/focal-point-picker/controls.js +2 -3
- package/src/font-size-picker/test/index.js +0 -2
- package/src/form-file-upload/README.md +18 -0
- package/src/form-file-upload/index.js +3 -0
- package/src/form-file-upload/test/index.js +73 -11
- package/src/form-toggle/README.md +1 -1
- package/src/guide/index.js +12 -13
- package/src/guide/style.scss +0 -4
- package/src/index.js +8 -0
- package/src/input-control/input-field.tsx +23 -12
- package/src/input-control/reducer/actions.ts +1 -7
- package/src/input-control/reducer/reducer.ts +0 -29
- package/src/input-control/types.ts +2 -1
- 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/number-control/README.md +14 -0
- package/src/number-control/index.js +13 -12
- package/src/number-control/stories/index.js +14 -7
- package/src/number-control/test/index.js +79 -1
- package/src/range-control/stories/index.js +91 -119
- package/src/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js +1 -0
- package/src/surface/styles.js +1 -1
- package/src/surface/test/__snapshots__/index.js.snap +11 -11
- 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 -32
- 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 -97
- 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 -13
- 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 +0 -73
- package/src/tools-panel/test/__snapshots__/index.js.snap +8 -8
- package/src/tree-grid/README.md +1 -1
- package/src/tree-grid/index.js +4 -0
- package/src/tree-grid/test/index.js +61 -17
- package/src/unit-control/README.md +7 -3
- package/src/unit-control/index.tsx +65 -31
- package/src/unit-control/stories/index.tsx +170 -0
- package/src/unit-control/test/index.js +263 -100
- package/src/unit-control/types.ts +65 -42
- package/src/unit-control/unit-select-control.tsx +2 -3
- package/src/utils/colors-values.js +4 -3
- package/src/utils/config-values.js +9 -4
- package/tsconfig.json +3 -0
- 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 -73
- 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 -61
- package/build-module/toggle-group-control/toggle-group-control-option/styles.js.map +0 -1
- package/src/base-control/index.js +0 -111
- 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/unit-control/stories/index.js +0 -127
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import { render
|
|
4
|
+
import { render as RTLrender, screen, waitFor } from '@testing-library/react';
|
|
5
|
+
import userEvent from '@testing-library/user-event';
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* WordPress dependencies
|
|
8
9
|
*/
|
|
9
|
-
import { UP, DOWN, ENTER, ESCAPE } from '@wordpress/keycodes';
|
|
10
10
|
import { useState } from '@wordpress/element';
|
|
11
11
|
|
|
12
12
|
/**
|
|
@@ -15,6 +15,16 @@ import { useState } from '@wordpress/element';
|
|
|
15
15
|
import UnitControl from '../';
|
|
16
16
|
import { parseQuantityAndUnitFromRawValue } from '../utils';
|
|
17
17
|
|
|
18
|
+
function render( jsx ) {
|
|
19
|
+
return {
|
|
20
|
+
user: userEvent.setup( {
|
|
21
|
+
// Avoids timeout errors (https://github.com/testing-library/user-event/issues/565#issuecomment-1064579531).
|
|
22
|
+
delay: null,
|
|
23
|
+
} ),
|
|
24
|
+
...RTLrender( jsx ),
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
|
|
18
28
|
const getComponent = () =>
|
|
19
29
|
document.body.querySelector( '.components-unit-control' );
|
|
20
30
|
const getInput = () =>
|
|
@@ -24,9 +34,6 @@ const getSelect = () =>
|
|
|
24
34
|
const getUnitLabel = () =>
|
|
25
35
|
document.body.querySelector( '.components-unit-control__unit-label' );
|
|
26
36
|
|
|
27
|
-
const fireKeyDown = ( data ) =>
|
|
28
|
-
fireEvent.keyDown( document.activeElement || document.body, data );
|
|
29
|
-
|
|
30
37
|
const ControlledSyncUnits = () => {
|
|
31
38
|
const [ state, setState ] = useState( { valueA: '', valueB: '' } );
|
|
32
39
|
|
|
@@ -93,7 +100,7 @@ describe( 'UnitControl', () => {
|
|
|
93
100
|
} );
|
|
94
101
|
|
|
95
102
|
it( 'should not render select, if units are disabled', () => {
|
|
96
|
-
render( <UnitControl
|
|
103
|
+
render( <UnitControl value="3em" units={ [] } /> );
|
|
97
104
|
const input = getInput();
|
|
98
105
|
const select = getSelect();
|
|
99
106
|
|
|
@@ -113,73 +120,87 @@ describe( 'UnitControl', () => {
|
|
|
113
120
|
} );
|
|
114
121
|
|
|
115
122
|
describe( 'Value', () => {
|
|
116
|
-
it( 'should update value on change', () => {
|
|
123
|
+
it( 'should update value on change', async () => {
|
|
117
124
|
let state = '50px';
|
|
118
125
|
const setState = jest.fn( ( value ) => ( state = value ) );
|
|
119
126
|
|
|
120
|
-
|
|
127
|
+
const { user } = render(
|
|
128
|
+
<UnitControl value={ state } onChange={ setState } />
|
|
129
|
+
);
|
|
121
130
|
|
|
122
131
|
const input = getInput();
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
132
|
+
await user.clear( input );
|
|
133
|
+
await user.type( input, '62' );
|
|
134
|
+
|
|
135
|
+
// 3 times:
|
|
136
|
+
// - 1: clear
|
|
137
|
+
// - 2: type '6'
|
|
138
|
+
// - 3: type '62'
|
|
139
|
+
expect( setState ).toHaveBeenCalledTimes( 3 );
|
|
127
140
|
expect( state ).toBe( '62px' );
|
|
128
141
|
} );
|
|
129
142
|
|
|
130
|
-
it( 'should increment value on UP press', () => {
|
|
143
|
+
it( 'should increment value on UP press', async () => {
|
|
131
144
|
let state = '50px';
|
|
132
145
|
const setState = ( nextState ) => ( state = nextState );
|
|
133
146
|
|
|
134
|
-
|
|
147
|
+
const { user } = render(
|
|
148
|
+
<UnitControl value={ state } onChange={ setState } />
|
|
149
|
+
);
|
|
135
150
|
|
|
136
|
-
getInput()
|
|
137
|
-
|
|
151
|
+
const input = getInput();
|
|
152
|
+
await user.type( input, '{ArrowUp}' );
|
|
138
153
|
|
|
139
154
|
expect( state ).toBe( '51px' );
|
|
140
155
|
} );
|
|
141
156
|
|
|
142
|
-
it( 'should increment value on UP + SHIFT press, with step', () => {
|
|
157
|
+
it( 'should increment value on UP + SHIFT press, with step', async () => {
|
|
143
158
|
let state = '50px';
|
|
144
159
|
const setState = ( nextState ) => ( state = nextState );
|
|
145
160
|
|
|
146
|
-
|
|
161
|
+
const { user } = render(
|
|
162
|
+
<UnitControl value={ state } onChange={ setState } />
|
|
163
|
+
);
|
|
147
164
|
|
|
148
|
-
getInput()
|
|
149
|
-
|
|
165
|
+
const input = getInput();
|
|
166
|
+
await user.type( input, '{Shift>}{ArrowUp}{/Shift}' );
|
|
150
167
|
|
|
151
168
|
expect( state ).toBe( '60px' );
|
|
152
169
|
} );
|
|
153
170
|
|
|
154
|
-
it( 'should decrement value on DOWN press', () => {
|
|
171
|
+
it( 'should decrement value on DOWN press', async () => {
|
|
155
172
|
let state = 50;
|
|
156
173
|
const setState = ( nextState ) => ( state = nextState );
|
|
157
174
|
|
|
158
|
-
|
|
175
|
+
const { user } = render(
|
|
176
|
+
<UnitControl value={ state } onChange={ setState } />
|
|
177
|
+
);
|
|
159
178
|
|
|
160
|
-
getInput()
|
|
161
|
-
|
|
179
|
+
const input = getInput();
|
|
180
|
+
await user.type( input, '{ArrowDown}' );
|
|
162
181
|
|
|
163
182
|
expect( state ).toBe( '49px' );
|
|
164
183
|
} );
|
|
165
184
|
|
|
166
|
-
it( 'should decrement value on DOWN + SHIFT press, with step', () => {
|
|
185
|
+
it( 'should decrement value on DOWN + SHIFT press, with step', async () => {
|
|
167
186
|
let state = 50;
|
|
168
187
|
const setState = ( nextState ) => ( state = nextState );
|
|
169
188
|
|
|
170
|
-
|
|
189
|
+
const { user } = render(
|
|
190
|
+
<UnitControl value={ state } onChange={ setState } />
|
|
191
|
+
);
|
|
171
192
|
|
|
172
|
-
getInput()
|
|
173
|
-
|
|
193
|
+
const input = getInput();
|
|
194
|
+
await user.type( input, '{Shift>}{ArrowDown}{/Shift}' );
|
|
174
195
|
|
|
175
196
|
expect( state ).toBe( '40px' );
|
|
176
197
|
} );
|
|
177
198
|
|
|
178
|
-
it( 'should cancel change when ESCAPE key is pressed', () => {
|
|
199
|
+
it( 'should cancel change when ESCAPE key is pressed', async () => {
|
|
179
200
|
let state = 50;
|
|
180
201
|
const setState = ( nextState ) => ( state = nextState );
|
|
181
202
|
|
|
182
|
-
render(
|
|
203
|
+
const { user } = render(
|
|
183
204
|
<UnitControl
|
|
184
205
|
value={ state }
|
|
185
206
|
onChange={ setState }
|
|
@@ -188,32 +209,124 @@ describe( 'UnitControl', () => {
|
|
|
188
209
|
);
|
|
189
210
|
|
|
190
211
|
const input = getInput();
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
fireEvent.change( input, { target: { value: '300px' } } );
|
|
212
|
+
await user.clear( input );
|
|
213
|
+
await user.type( input, '300px' );
|
|
194
214
|
|
|
195
215
|
expect( input.value ).toBe( '300px' );
|
|
196
216
|
expect( state ).toBe( 50 );
|
|
197
217
|
|
|
198
|
-
|
|
218
|
+
user.keyboard( '{Escape}' );
|
|
199
219
|
|
|
200
220
|
expect( input.value ).toBe( '50' );
|
|
201
221
|
expect( state ).toBe( 50 );
|
|
202
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
|
+
} );
|
|
203
308
|
} );
|
|
204
309
|
|
|
205
310
|
describe( 'Unit', () => {
|
|
206
|
-
it( 'should update unit value on change', () => {
|
|
207
|
-
let state = '
|
|
311
|
+
it( 'should update unit value on change', async () => {
|
|
312
|
+
let state = '14rem';
|
|
208
313
|
const setState = ( nextState ) => ( state = nextState );
|
|
209
314
|
|
|
210
|
-
|
|
315
|
+
const spy = jest.fn();
|
|
316
|
+
|
|
317
|
+
const { user } = render(
|
|
318
|
+
<UnitControl
|
|
319
|
+
value={ state }
|
|
320
|
+
onChange={ setState }
|
|
321
|
+
onUnitChange={ spy }
|
|
322
|
+
/>
|
|
323
|
+
);
|
|
211
324
|
|
|
212
325
|
const select = getSelect();
|
|
213
|
-
|
|
214
|
-
fireEvent.change( select, { target: { value: 'em' } } );
|
|
326
|
+
await user.selectOptions( select, [ 'px' ] );
|
|
215
327
|
|
|
216
|
-
expect(
|
|
328
|
+
expect( spy ).toHaveBeenCalledWith( 'px', expect.anything() );
|
|
329
|
+
expect( state ).toBe( '14px' );
|
|
217
330
|
} );
|
|
218
331
|
|
|
219
332
|
it( 'should render customized units, if defined', () => {
|
|
@@ -235,7 +348,7 @@ describe( 'UnitControl', () => {
|
|
|
235
348
|
expect( vmax.value ).toBe( 'vmax' );
|
|
236
349
|
} );
|
|
237
350
|
|
|
238
|
-
it( 'should reset value on unit change, if unit has default value', () => {
|
|
351
|
+
it( 'should reset value on unit change, if unit has default value', async () => {
|
|
239
352
|
let state = 50;
|
|
240
353
|
const setState = ( nextState ) => ( state = nextState );
|
|
241
354
|
|
|
@@ -244,7 +357,7 @@ describe( 'UnitControl', () => {
|
|
|
244
357
|
{ value: 'vmax', label: 'vmax', default: 75 },
|
|
245
358
|
];
|
|
246
359
|
|
|
247
|
-
render(
|
|
360
|
+
const { user } = render(
|
|
248
361
|
<UnitControl
|
|
249
362
|
isResetValueOnUnitChange
|
|
250
363
|
units={ units }
|
|
@@ -254,18 +367,16 @@ describe( 'UnitControl', () => {
|
|
|
254
367
|
);
|
|
255
368
|
|
|
256
369
|
const select = getSelect();
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
fireEvent.change( select, { target: { value: 'vmax' } } );
|
|
370
|
+
await user.selectOptions( select, [ 'vmax' ] );
|
|
260
371
|
|
|
261
372
|
expect( state ).toBe( '75vmax' );
|
|
262
373
|
|
|
263
|
-
|
|
374
|
+
await user.selectOptions( select, [ 'pt' ] );
|
|
264
375
|
|
|
265
376
|
expect( state ).toBe( '25pt' );
|
|
266
377
|
} );
|
|
267
378
|
|
|
268
|
-
it( 'should not reset value on unit change, if disabled', () => {
|
|
379
|
+
it( 'should not reset value on unit change, if disabled', async () => {
|
|
269
380
|
let state = 50;
|
|
270
381
|
const setState = ( nextState ) => ( state = nextState );
|
|
271
382
|
|
|
@@ -274,7 +385,7 @@ describe( 'UnitControl', () => {
|
|
|
274
385
|
{ value: 'vmax', label: 'vmax', default: 75 },
|
|
275
386
|
];
|
|
276
387
|
|
|
277
|
-
render(
|
|
388
|
+
const { user } = render(
|
|
278
389
|
<UnitControl
|
|
279
390
|
isResetValueOnUnitChange={ false }
|
|
280
391
|
value={ state }
|
|
@@ -284,69 +395,123 @@ describe( 'UnitControl', () => {
|
|
|
284
395
|
);
|
|
285
396
|
|
|
286
397
|
const select = getSelect();
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
fireEvent.change( select, { target: { value: 'vmax' } } );
|
|
398
|
+
await user.selectOptions( select, [ 'vmax' ] );
|
|
290
399
|
|
|
291
400
|
expect( state ).toBe( '50vmax' );
|
|
292
401
|
|
|
293
|
-
|
|
402
|
+
await user.selectOptions( select, [ 'pt' ] );
|
|
294
403
|
|
|
295
404
|
expect( state ).toBe( '50pt' );
|
|
296
405
|
} );
|
|
297
406
|
|
|
298
|
-
it( 'should set correct unit if single units', () => {
|
|
407
|
+
it( 'should set correct unit if single units', async () => {
|
|
299
408
|
let state = '50%';
|
|
300
409
|
const setState = ( value ) => ( state = value );
|
|
301
410
|
|
|
302
|
-
render(
|
|
411
|
+
const { user } = render(
|
|
303
412
|
<UnitControl
|
|
304
413
|
value={ state }
|
|
305
|
-
unit="%"
|
|
306
414
|
units={ [ { value: '%', label: '%' } ] }
|
|
307
415
|
onChange={ setState }
|
|
308
416
|
/>
|
|
309
417
|
);
|
|
310
418
|
|
|
311
419
|
const input = getInput();
|
|
312
|
-
|
|
313
|
-
|
|
420
|
+
await user.clear( input );
|
|
421
|
+
await user.type( input, '62' );
|
|
314
422
|
|
|
315
|
-
expect( state ).toBe( '62%' );
|
|
423
|
+
await waitFor( () => expect( state ).toBe( '62%' ) );
|
|
316
424
|
} );
|
|
317
425
|
|
|
318
|
-
it( 'should update unit value when a new raw value is passed', () => {
|
|
319
|
-
render( <ControlledSyncUnits /> );
|
|
426
|
+
it( 'should update unit value when a new raw value is passed', async () => {
|
|
427
|
+
const { user } = render( <ControlledSyncUnits /> );
|
|
320
428
|
|
|
321
429
|
const [ inputA, inputB ] = screen.getAllByRole( 'spinbutton' );
|
|
322
430
|
const [ selectA, selectB ] = screen.getAllByRole( 'combobox' );
|
|
323
431
|
|
|
324
|
-
|
|
325
|
-
|
|
432
|
+
const [ remOptionA ] = screen.getAllByRole( 'option', {
|
|
433
|
+
name: 'rem',
|
|
434
|
+
} );
|
|
435
|
+
const [ , vwOptionB ] = screen.getAllByRole( 'option', {
|
|
436
|
+
name: 'vw',
|
|
437
|
+
} );
|
|
438
|
+
|
|
439
|
+
await user.type( inputA, '55' );
|
|
326
440
|
|
|
327
|
-
|
|
328
|
-
fireEvent.change( inputB, { target: { value: '14' } } );
|
|
441
|
+
await user.type( inputB, '14' );
|
|
329
442
|
|
|
330
|
-
|
|
331
|
-
fireEvent.change( selectA, { target: { value: 'rem' } } );
|
|
443
|
+
await user.selectOptions( selectA, remOptionA );
|
|
332
444
|
|
|
445
|
+
await waitFor( () => expect( selectB ).toHaveValue( 'rem' ) );
|
|
333
446
|
expect( selectA ).toHaveValue( 'rem' );
|
|
334
|
-
expect( selectB ).toHaveValue( 'rem' );
|
|
335
447
|
|
|
336
|
-
|
|
337
|
-
fireEvent.change( selectB, { target: { value: 'vw' } } );
|
|
448
|
+
await user.selectOptions( selectB, vwOptionB );
|
|
338
449
|
|
|
339
|
-
expect( selectA ).toHaveValue( 'vw' );
|
|
450
|
+
await waitFor( () => expect( selectA ).toHaveValue( 'vw' ) );
|
|
340
451
|
expect( selectB ).toHaveValue( 'vw' );
|
|
341
452
|
} );
|
|
453
|
+
|
|
454
|
+
it( 'should maintain the chosen non-default unit when value is cleared', async () => {
|
|
455
|
+
const units = [
|
|
456
|
+
{ value: 'pt', label: 'pt' },
|
|
457
|
+
{ value: 'vmax', label: 'vmax' },
|
|
458
|
+
];
|
|
459
|
+
|
|
460
|
+
const { user } = render(
|
|
461
|
+
<UnitControl units={ units } value="5" />
|
|
462
|
+
);
|
|
463
|
+
|
|
464
|
+
const select = getSelect();
|
|
465
|
+
await user.selectOptions( select, [ 'vmax' ] );
|
|
466
|
+
|
|
467
|
+
const input = getInput();
|
|
468
|
+
await user.clear( input );
|
|
469
|
+
|
|
470
|
+
expect( select ).toHaveValue( 'vmax' );
|
|
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
|
+
} );
|
|
342
507
|
} );
|
|
343
508
|
|
|
344
509
|
describe( 'Unit Parser', () => {
|
|
345
510
|
let state = '10px';
|
|
346
511
|
const setState = jest.fn( ( nextState ) => ( state = nextState ) );
|
|
347
512
|
|
|
348
|
-
it( 'should parse unit from input', () => {
|
|
349
|
-
render(
|
|
513
|
+
it( 'should parse unit from input', async () => {
|
|
514
|
+
const { user } = render(
|
|
350
515
|
<UnitControl
|
|
351
516
|
value={ state }
|
|
352
517
|
onChange={ setState }
|
|
@@ -355,15 +520,15 @@ describe( 'UnitControl', () => {
|
|
|
355
520
|
);
|
|
356
521
|
|
|
357
522
|
const input = getInput();
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
523
|
+
await user.clear( input );
|
|
524
|
+
await user.type( input, '55 em' );
|
|
525
|
+
user.keyboard( '{Enter}' );
|
|
361
526
|
|
|
362
527
|
expect( state ).toBe( '55em' );
|
|
363
528
|
} );
|
|
364
529
|
|
|
365
|
-
it( 'should parse PX unit from input', () => {
|
|
366
|
-
render(
|
|
530
|
+
it( 'should parse PX unit from input', async () => {
|
|
531
|
+
const { user } = render(
|
|
367
532
|
<UnitControl
|
|
368
533
|
value={ state }
|
|
369
534
|
onChange={ setState }
|
|
@@ -372,15 +537,15 @@ describe( 'UnitControl', () => {
|
|
|
372
537
|
);
|
|
373
538
|
|
|
374
539
|
const input = getInput();
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
540
|
+
await user.clear( input );
|
|
541
|
+
await user.type( input, '61 PX' );
|
|
542
|
+
user.keyboard( '{Enter}' );
|
|
378
543
|
|
|
379
544
|
expect( state ).toBe( '61px' );
|
|
380
545
|
} );
|
|
381
546
|
|
|
382
|
-
it( 'should parse EM unit from input', () => {
|
|
383
|
-
render(
|
|
547
|
+
it( 'should parse EM unit from input', async () => {
|
|
548
|
+
const { user } = render(
|
|
384
549
|
<UnitControl
|
|
385
550
|
value={ state }
|
|
386
551
|
onChange={ setState }
|
|
@@ -389,15 +554,15 @@ describe( 'UnitControl', () => {
|
|
|
389
554
|
);
|
|
390
555
|
|
|
391
556
|
const input = getInput();
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
557
|
+
await user.clear( input );
|
|
558
|
+
await user.type( input, '55 em' );
|
|
559
|
+
user.keyboard( '{Enter}' );
|
|
395
560
|
|
|
396
561
|
expect( state ).toBe( '55em' );
|
|
397
562
|
} );
|
|
398
563
|
|
|
399
|
-
it( 'should parse % unit from input', () => {
|
|
400
|
-
render(
|
|
564
|
+
it( 'should parse % unit from input', async () => {
|
|
565
|
+
const { user } = render(
|
|
401
566
|
<UnitControl
|
|
402
567
|
value={ state }
|
|
403
568
|
onChange={ setState }
|
|
@@ -406,15 +571,15 @@ describe( 'UnitControl', () => {
|
|
|
406
571
|
);
|
|
407
572
|
|
|
408
573
|
const input = getInput();
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
574
|
+
await user.clear( input );
|
|
575
|
+
await user.type( input, '-10 %' );
|
|
576
|
+
user.keyboard( '{Enter}' );
|
|
412
577
|
|
|
413
578
|
expect( state ).toBe( '-10%' );
|
|
414
579
|
} );
|
|
415
580
|
|
|
416
|
-
it( 'should parse REM unit from input', () => {
|
|
417
|
-
render(
|
|
581
|
+
it( 'should parse REM unit from input', async () => {
|
|
582
|
+
const { user } = render(
|
|
418
583
|
<UnitControl
|
|
419
584
|
value={ state }
|
|
420
585
|
onChange={ setState }
|
|
@@ -423,25 +588,23 @@ describe( 'UnitControl', () => {
|
|
|
423
588
|
);
|
|
424
589
|
|
|
425
590
|
const input = getInput();
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
} );
|
|
430
|
-
fireKeyDown( { keyCode: ENTER } );
|
|
591
|
+
await user.clear( input );
|
|
592
|
+
await user.type( input, '123 rEm ' );
|
|
593
|
+
user.keyboard( '{Enter}' );
|
|
431
594
|
|
|
432
595
|
expect( state ).toBe( '123rem' );
|
|
433
596
|
} );
|
|
434
597
|
|
|
435
|
-
it( 'should update unit after initial render and with new unit prop', () => {
|
|
598
|
+
it( 'should update unit after initial render and with new unit prop', async () => {
|
|
436
599
|
const { rerender } = render( <UnitControl value={ '10%' } /> );
|
|
437
600
|
|
|
438
601
|
const select = getSelect();
|
|
439
602
|
|
|
440
603
|
expect( select.value ).toBe( '%' );
|
|
441
604
|
|
|
442
|
-
rerender( <UnitControl value={ '
|
|
605
|
+
rerender( <UnitControl value={ '20vh' } /> );
|
|
443
606
|
|
|
444
|
-
expect( select.value ).toBe( '
|
|
607
|
+
await waitFor( () => expect( select.value ).toBe( 'vh' ) );
|
|
445
608
|
} );
|
|
446
609
|
|
|
447
610
|
it( 'should fallback to default unit if parsed unit is invalid', () => {
|