@wordpress/components 19.8.4 → 19.11.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 +60 -0
- package/CONTRIBUTING.md +80 -7
- 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/border-box-control/border-box-control/component.js +22 -7
- package/build/border-box-control/border-box-control/component.js.map +1 -1
- package/build/border-box-control/border-box-control-linked-button/hook.js +3 -2
- package/build/border-box-control/border-box-control-linked-button/hook.js.map +1 -1
- package/build/border-box-control/border-box-control-split-controls/component.js +21 -8
- package/build/border-box-control/border-box-control-split-controls/component.js.map +1 -1
- package/build/border-box-control/border-box-control-visualizer/hook.js +3 -2
- package/build/border-box-control/border-box-control-visualizer/hook.js.map +1 -1
- package/build/border-box-control/styles.js +11 -15
- package/build/border-box-control/styles.js.map +1 -1
- package/build/border-control/border-control/component.js +5 -3
- package/build/border-control/border-control/component.js.map +1 -1
- package/build/border-control/border-control/hook.js +6 -3
- package/build/border-control/border-control/hook.js.map +1 -1
- package/build/border-control/border-control-dropdown/component.js +6 -2
- package/build/border-control/border-control-dropdown/component.js.map +1 -1
- package/build/border-control/border-control-dropdown/hook.js +5 -5
- package/build/border-control/border-control-dropdown/hook.js.map +1 -1
- package/build/border-control/styles.js +58 -29
- package/build/border-control/styles.js.map +1 -1
- package/build/box-control/index.js +0 -21
- package/build/box-control/index.js.map +1 -1
- package/build/box-control/utils.js +1 -8
- package/build/box-control/utils.js.map +1 -1
- package/build/button/index.js +3 -5
- package/build/button/index.js.map +1 -1
- package/build/button/index.native.js +16 -2
- package/build/button/index.native.js.map +1 -1
- package/build/button-group/index.js +24 -7
- package/build/button-group/index.js.map +1 -1
- package/build/{flyout → button-group}/types.js +0 -0
- package/build/button-group/types.js.map +1 -0
- package/build/checkbox-control/index.js +34 -7
- package/build/checkbox-control/index.js.map +1 -1
- package/build/checkbox-control/types.js +6 -0
- package/build/checkbox-control/types.js.map +1 -0
- package/build/circular-option-picker/index.js +1 -2
- package/build/circular-option-picker/index.js.map +1 -1
- package/build/color-palette/index.js +5 -12
- package/build/color-palette/index.js.map +1 -1
- package/build/date-time/date.js +43 -19
- package/build/date-time/date.js.map +1 -1
- package/build/date-time/index.js +28 -3
- package/build/date-time/index.js.map +1 -1
- package/build/date-time/time.js +42 -40
- package/build/date-time/time.js.map +1 -1
- package/build/date-time/timezone.js +4 -3
- package/build/date-time/timezone.js.map +1 -1
- package/build/date-time/types.js +6 -0
- package/build/date-time/types.js.map +1 -0
- package/build/date-time/utils.js +6 -4
- package/build/date-time/utils.js.map +1 -1
- package/build/disabled/index.js +4 -76
- package/build/disabled/index.js.map +1 -1
- package/build/draggable/index.native.js +223 -0
- package/build/draggable/index.native.js.map +1 -0
- package/build/dropdown/index.js +7 -5
- package/build/dropdown/index.js.map +1 -1
- package/build/focal-point-picker/index.native.js +3 -3
- package/build/focal-point-picker/index.native.js.map +1 -1
- package/build/heading/hook.js +1 -1
- package/build/heading/hook.js.map +1 -1
- package/build/index.js +0 -8
- package/build/index.js.map +1 -1
- package/build/index.native.js +16 -0
- package/build/index.native.js.map +1 -1
- package/build/input-control/index.js +27 -4
- package/build/input-control/index.js.map +1 -1
- package/build/input-control/styles/input-control-styles.js +42 -30
- package/build/input-control/styles/input-control-styles.js.map +1 -1
- package/build/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js +1 -1
- package/build/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js.map +1 -1
- package/build/mobile/bottom-sheet/index.native.js +1 -1
- package/build/mobile/bottom-sheet/index.native.js.map +1 -1
- package/build/mobile/bottom-sheet-select-control/index.native.js +4 -2
- package/build/mobile/bottom-sheet-select-control/index.native.js.map +1 -1
- package/build/mobile/html-text-input/index.native.js +19 -8
- package/build/mobile/html-text-input/index.native.js.map +1 -1
- package/build/mobile/keyboard-aware-flat-list/index.android.js +28 -5
- package/build/mobile/keyboard-aware-flat-list/index.android.js.map +1 -1
- package/build/mobile/keyboard-aware-flat-list/index.ios.js +47 -24
- package/build/mobile/keyboard-aware-flat-list/index.ios.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 +38 -7
- package/build/palette-edit/index.js.map +1 -1
- package/build/popover/index.js +223 -323
- package/build/popover/index.js.map +1 -1
- package/build/resizable-box/resize-tooltip/utils.js +5 -8
- package/build/resizable-box/resize-tooltip/utils.js.map +1 -1
- package/build/sandbox/index.js +2 -2
- package/build/sandbox/index.js.map +1 -1
- package/build/sandbox/index.native.js +1 -1
- package/build/sandbox/index.native.js.map +1 -1
- package/build/select-control/index.js +31 -4
- package/build/select-control/index.js.map +1 -1
- package/build/select-control/styles/select-control-styles.js +17 -14
- 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/text-control/index.js +35 -28
- package/build/text-control/index.js.map +1 -1
- package/build/text-control/types.js +6 -0
- package/build/text-control/types.js.map +1 -0
- package/build/toggle-group-control/toggle-group-control/component.js +1 -3
- package/build/toggle-group-control/toggle-group-control/component.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control-option-icon/component.js +6 -4
- package/build/toggle-group-control/toggle-group-control-option-icon/component.js.map +1 -1
- package/build/tools-panel/tools-panel-header/component.js +52 -36
- package/build/tools-panel/tools-panel-header/component.js.map +1 -1
- package/build/tooltip/index.js +2 -2
- package/build/tooltip/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 +3 -3
- package/build/unit-control/index.js.map +1 -1
- package/build/unit-control/styles/unit-control-styles.js +11 -20
- package/build/unit-control/styles/unit-control-styles.js.map +1 -1
- package/build/unit-control/utils.js.map +1 -1
- package/build/utils/colors-values.js +9 -24
- package/build/utils/colors-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/border-box-control/border-box-control/component.js +22 -7
- package/build-module/border-box-control/border-box-control/component.js.map +1 -1
- package/build-module/border-box-control/border-box-control-linked-button/hook.js +3 -2
- package/build-module/border-box-control/border-box-control-linked-button/hook.js.map +1 -1
- package/build-module/border-box-control/border-box-control-split-controls/component.js +21 -8
- package/build-module/border-box-control/border-box-control-split-controls/component.js.map +1 -1
- package/build-module/border-box-control/border-box-control-visualizer/hook.js +3 -2
- package/build-module/border-box-control/border-box-control-visualizer/hook.js.map +1 -1
- package/build-module/border-box-control/styles.js +9 -15
- package/build-module/border-box-control/styles.js.map +1 -1
- package/build-module/border-control/border-control/component.js +5 -3
- package/build-module/border-control/border-control/component.js.map +1 -1
- package/build-module/border-control/border-control/hook.js +6 -3
- package/build-module/border-control/border-control/hook.js.map +1 -1
- package/build-module/border-control/border-control-dropdown/component.js +6 -2
- package/build-module/border-control/border-control-dropdown/component.js.map +1 -1
- package/build-module/border-control/border-control-dropdown/hook.js +5 -5
- package/build-module/border-control/border-control-dropdown/hook.js.map +1 -1
- package/build-module/border-control/styles.js +56 -29
- package/build-module/border-control/styles.js.map +1 -1
- package/build-module/box-control/index.js +1 -20
- package/build-module/box-control/index.js.map +1 -1
- package/build-module/box-control/utils.js +0 -6
- package/build-module/box-control/utils.js.map +1 -1
- package/build-module/button/index.js +3 -4
- package/build-module/button/index.js.map +1 -1
- package/build-module/button/index.native.js +16 -3
- package/build-module/button/index.native.js.map +1 -1
- package/build-module/button-group/index.js +27 -7
- package/build-module/button-group/index.js.map +1 -1
- package/build-module/{flyout → button-group}/types.js +0 -0
- package/build-module/{flyout → button-group}/types.js.map +0 -0
- package/build-module/checkbox-control/index.js +31 -7
- package/build-module/checkbox-control/index.js.map +1 -1
- package/build-module/checkbox-control/types.js +2 -0
- package/{build/flyout → build-module/checkbox-control}/types.js.map +0 -0
- package/build-module/circular-option-picker/index.js +1 -2
- package/build-module/circular-option-picker/index.js.map +1 -1
- package/build-module/color-palette/index.js +5 -11
- package/build-module/color-palette/index.js.map +1 -1
- package/build-module/date-time/date.js +44 -19
- package/build-module/date-time/date.js.map +1 -1
- package/build-module/date-time/index.js +28 -4
- package/build-module/date-time/index.js.map +1 -1
- package/build-module/date-time/time.js +43 -41
- package/build-module/date-time/time.js.map +1 -1
- package/build-module/date-time/timezone.js +4 -3
- package/build-module/date-time/timezone.js.map +1 -1
- package/build-module/date-time/types.js +2 -0
- package/build-module/date-time/types.js.map +1 -0
- package/build-module/date-time/utils.js +6 -4
- package/build-module/date-time/utils.js.map +1 -1
- package/build-module/disabled/index.js +5 -76
- package/build-module/disabled/index.js.map +1 -1
- package/build-module/draggable/index.native.js +206 -0
- package/build-module/draggable/index.native.js.map +1 -0
- package/build-module/dropdown/index.js +7 -5
- package/build-module/dropdown/index.js.map +1 -1
- package/build-module/focal-point-picker/index.native.js +3 -3
- package/build-module/focal-point-picker/index.native.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 +0 -1
- package/build-module/index.js.map +1 -1
- package/build-module/index.native.js +2 -1
- package/build-module/index.native.js.map +1 -1
- package/build-module/input-control/index.js +24 -3
- package/build-module/input-control/index.js.map +1 -1
- package/build-module/input-control/styles/input-control-styles.js +42 -30
- package/build-module/input-control/styles/input-control-styles.js.map +1 -1
- package/build-module/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js +1 -1
- package/build-module/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js.map +1 -1
- package/build-module/mobile/bottom-sheet/index.native.js +1 -1
- package/build-module/mobile/bottom-sheet/index.native.js.map +1 -1
- package/build-module/mobile/bottom-sheet-select-control/index.native.js +4 -2
- package/build-module/mobile/bottom-sheet-select-control/index.native.js.map +1 -1
- package/build-module/mobile/html-text-input/index.native.js +20 -9
- package/build-module/mobile/html-text-input/index.native.js.map +1 -1
- package/build-module/mobile/keyboard-aware-flat-list/index.android.js +21 -5
- package/build-module/mobile/keyboard-aware-flat-list/index.android.js.map +1 -1
- package/build-module/mobile/keyboard-aware-flat-list/index.ios.js +42 -25
- package/build-module/mobile/keyboard-aware-flat-list/index.ios.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 +37 -7
- package/build-module/palette-edit/index.js.map +1 -1
- package/build-module/popover/index.js +225 -325
- package/build-module/popover/index.js.map +1 -1
- package/build-module/resizable-box/resize-tooltip/utils.js +4 -5
- package/build-module/resizable-box/resize-tooltip/utils.js.map +1 -1
- package/build-module/sandbox/index.js +2 -2
- package/build-module/sandbox/index.js.map +1 -1
- package/build-module/sandbox/index.native.js +1 -1
- package/build-module/sandbox/index.native.js.map +1 -1
- package/build-module/select-control/index.js +29 -3
- package/build-module/select-control/index.js.map +1 -1
- package/build-module/select-control/styles/select-control-styles.js +17 -14
- 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/text-control/index.js +35 -27
- package/build-module/text-control/index.js.map +1 -1
- package/build-module/text-control/types.js +2 -0
- package/build-module/text-control/types.js.map +1 -0
- package/build-module/toggle-group-control/toggle-group-control/component.js +2 -3
- package/build-module/toggle-group-control/toggle-group-control/component.js.map +1 -1
- package/build-module/toggle-group-control/toggle-group-control-option-icon/component.js +1 -5
- package/build-module/toggle-group-control/toggle-group-control-option-icon/component.js.map +1 -1
- package/build-module/tools-panel/tools-panel-header/component.js +51 -36
- package/build-module/tools-panel/tools-panel-header/component.js.map +1 -1
- package/build-module/tooltip/index.js +2 -2
- package/build-module/tooltip/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 +3 -3
- package/build-module/unit-control/index.js.map +1 -1
- package/build-module/unit-control/styles/unit-control-styles.js +11 -20
- package/build-module/unit-control/styles/unit-control-styles.js.map +1 -1
- package/build-module/unit-control/utils.js.map +1 -1
- package/build-module/utils/colors-values.js +19 -23
- package/build-module/utils/colors-values.js.map +1 -1
- package/build-style/style-rtl.css +55 -170
- package/build-style/style.css +51 -170
- package/build-types/border-box-control/border-box-control/component.d.ts.map +1 -1
- package/build-types/border-box-control/border-box-control/hook.d.ts +3 -1
- package/build-types/border-box-control/border-box-control/hook.d.ts.map +1 -1
- package/build-types/border-box-control/border-box-control-linked-button/hook.d.ts.map +1 -1
- package/build-types/border-box-control/border-box-control-split-controls/component.d.ts.map +1 -1
- package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts +3 -1
- package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts.map +1 -1
- package/build-types/border-box-control/border-box-control-visualizer/hook.d.ts.map +1 -1
- package/build-types/border-box-control/styles.d.ts +2 -2
- package/build-types/border-box-control/styles.d.ts.map +1 -1
- package/build-types/border-box-control/types.d.ts +40 -13
- package/build-types/border-box-control/types.d.ts.map +1 -1
- package/build-types/border-control/border-control/component.d.ts.map +1 -1
- package/build-types/border-control/border-control/hook.d.ts +2 -1
- package/build-types/border-control/border-control/hook.d.ts.map +1 -1
- package/build-types/border-control/border-control-dropdown/component.d.ts.map +1 -1
- package/build-types/border-control/border-control-dropdown/hook.d.ts +1 -0
- package/build-types/border-control/border-control-dropdown/hook.d.ts.map +1 -1
- package/build-types/border-control/styles.d.ts +2 -1
- package/build-types/border-control/styles.d.ts.map +1 -1
- package/build-types/border-control/types.d.ts +18 -6
- package/build-types/border-control/types.d.ts.map +1 -1
- package/build-types/button/index.d.ts.map +1 -1
- package/build-types/button-group/index.d.ts +25 -0
- package/build-types/button-group/index.d.ts.map +1 -0
- package/build-types/button-group/stories/index.d.ts +12 -0
- package/build-types/button-group/stories/index.d.ts.map +1 -0
- package/build-types/button-group/types.d.ts +11 -0
- package/build-types/button-group/types.d.ts.map +1 -0
- package/build-types/checkbox-control/index.d.ts +26 -0
- package/build-types/checkbox-control/index.d.ts.map +1 -0
- package/build-types/checkbox-control/stories/index.d.ts +13 -0
- package/build-types/checkbox-control/stories/index.d.ts.map +1 -0
- package/build-types/checkbox-control/types.d.ts +35 -0
- package/build-types/checkbox-control/types.d.ts.map +1 -0
- package/build-types/circular-option-picker/index.d.ts.map +1 -1
- package/build-types/color-palette/index.d.ts.map +1 -1
- package/build-types/color-picker/styles.d.ts +3 -3
- package/build-types/date-time/date.d.ts +24 -0
- package/build-types/date-time/date.d.ts.map +1 -0
- package/build-types/date-time/index.d.ts +35 -0
- package/build-types/date-time/index.d.ts.map +1 -0
- package/build-types/date-time/stories/date.d.ts +14 -0
- package/build-types/date-time/stories/date.d.ts.map +1 -0
- package/build-types/date-time/stories/index.d.ts +14 -0
- package/build-types/date-time/stories/index.d.ts.map +1 -0
- package/build-types/date-time/stories/time.d.ts +12 -0
- package/build-types/date-time/stories/time.d.ts.map +1 -0
- package/build-types/date-time/stories/utils.d.ts +3 -0
- package/build-types/date-time/stories/utils.d.ts.map +1 -0
- package/build-types/date-time/test/date.d.ts +2 -0
- package/build-types/date-time/test/date.d.ts.map +1 -0
- package/build-types/date-time/test/time.d.ts +2 -0
- package/build-types/date-time/test/time.d.ts.map +1 -0
- package/build-types/date-time/test/utils.d.ts +2 -0
- package/build-types/date-time/test/utils.d.ts.map +1 -0
- package/build-types/date-time/time.d.ts +25 -0
- package/build-types/date-time/time.d.ts.map +1 -0
- package/build-types/date-time/timezone.d.ts +8 -0
- package/build-types/date-time/timezone.d.ts.map +1 -0
- package/build-types/date-time/types.d.ts +91 -0
- package/build-types/date-time/types.d.ts.map +1 -0
- package/build-types/date-time/utils.d.ts +15 -0
- package/build-types/date-time/utils.d.ts.map +1 -0
- package/build-types/disabled/index.d.ts.map +1 -1
- package/build-types/dropdown/index.d.ts.map +1 -1
- package/build-types/input-control/index.d.ts +23 -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 +5 -5
- package/build-types/input-control/stories/index.d.ts.map +1 -1
- package/build-types/input-control/styles/input-control-styles.d.ts +1 -0
- package/build-types/input-control/styles/input-control-styles.d.ts.map +1 -1
- package/build-types/input-control/types.d.ts +79 -3
- package/build-types/input-control/types.d.ts.map +1 -1
- package/build-types/number-control/styles/number-control-styles.d.ts +1 -1
- package/build-types/popover/index.d.ts +5 -8
- package/build-types/popover/index.d.ts.map +1 -1
- package/build-types/resizable-box/index.d.ts +1 -1
- package/build-types/resizable-box/resize-tooltip/index.d.ts +1 -1
- package/build-types/resizable-box/resize-tooltip/utils.d.ts.map +1 -1
- package/build-types/select-control/index.d.ts +30 -26
- package/build-types/select-control/index.d.ts.map +1 -1
- package/build-types/select-control/stories/index.d.ts +23 -0
- package/build-types/select-control/stories/index.d.ts.map +1 -0
- package/build-types/select-control/styles/select-control-styles.d.ts +3 -4
- package/build-types/select-control/styles/select-control-styles.d.ts.map +1 -1
- package/build-types/select-control/test/select-control.d.ts +2 -0
- package/build-types/select-control/test/select-control.d.ts.map +1 -0
- package/build-types/select-control/types.d.ts +52 -1
- package/build-types/select-control/types.d.ts.map +1 -1
- package/build-types/text-control/index.d.ts +2 -2
- package/build-types/toggle-group-control/toggle-group-control/component.d.ts.map +1 -1
- package/build-types/toggle-group-control/toggle-group-control-option-icon/component.d.ts.map +1 -1
- package/build-types/tools-panel/tools-panel-header/component.d.ts.map +1 -1
- package/build-types/tools-panel/types.d.ts +0 -1
- package/build-types/tools-panel/types.d.ts.map +1 -1
- package/build-types/tooltip/index.d.ts.map +1 -1
- package/build-types/unit-control/index.d.ts +2 -2
- package/build-types/unit-control/index.d.ts.map +1 -1
- package/build-types/unit-control/styles/unit-control-styles.d.ts.map +1 -1
- package/build-types/unit-control/test/index.d.ts +2 -0
- package/build-types/unit-control/test/index.d.ts.map +1 -0
- package/build-types/unit-control/test/utils.d.ts +2 -0
- package/build-types/unit-control/test/utils.d.ts.map +1 -0
- package/build-types/unit-control/types.d.ts +1 -1
- package/build-types/unit-control/types.d.ts.map +1 -1
- package/build-types/unit-control/utils.d.ts +3 -3
- package/build-types/unit-control/utils.d.ts.map +1 -1
- package/build-types/utils/colors-values.d.ts +6 -146
- package/build-types/utils/colors-values.d.ts.map +1 -1
- package/package.json +19 -19
- package/src/alignment-matrix-control/styles/alignment-matrix-control-styles.js +5 -3
- package/src/autocomplete/style.scss +1 -1
- package/src/border-box-control/border-box-control/README.md +10 -14
- package/src/border-box-control/border-box-control/component.tsx +21 -4
- package/src/border-box-control/border-box-control-linked-button/hook.ts +10 -6
- package/src/border-box-control/border-box-control-split-controls/component.tsx +24 -7
- package/src/border-box-control/border-box-control-visualizer/hook.ts +11 -6
- package/src/border-box-control/stories/index.js +1 -0
- package/src/border-box-control/styles.ts +15 -8
- package/src/border-box-control/types.ts +40 -14
- package/src/border-control/border-control/README.md +0 -7
- package/src/border-control/border-control/component.tsx +4 -2
- package/src/border-control/border-control/hook.ts +5 -2
- package/src/border-control/border-control-dropdown/component.tsx +18 -11
- package/src/border-control/border-control-dropdown/hook.ts +7 -5
- package/src/border-control/stories/index.js +1 -0
- package/src/border-control/styles.ts +82 -22
- package/src/border-control/types.ts +18 -6
- package/src/box-control/README.md +0 -74
- package/src/box-control/index.js +0 -15
- package/src/box-control/stories/index.js +0 -29
- package/src/box-control/utils.js +0 -7
- package/src/button/index.js +2 -4
- package/src/button/index.native.js +33 -18
- package/src/button/test/index.js +16 -1
- package/src/button-group/index.tsx +47 -0
- package/src/button-group/stories/index.tsx +41 -0
- package/src/button-group/types.ts +11 -0
- package/src/checkbox-control/README.md +10 -8
- package/src/checkbox-control/{index.js → index.tsx} +49 -14
- package/src/checkbox-control/stories/{index.js → index.tsx} +49 -27
- package/src/checkbox-control/types.ts +36 -0
- package/src/circular-option-picker/index.js +1 -2
- package/src/circular-option-picker/style.scss +1 -0
- package/src/color-palette/README.md +0 -1
- package/src/color-palette/index.js +6 -13
- package/src/color-palette/style.scss +3 -18
- package/src/color-palette/test/__snapshots__/index.js.snap +2 -3
- package/src/confirm-dialog/stories/index.js +87 -99
- package/src/date-time/README.md +13 -10
- package/src/date-time/{date.js → date.tsx} +49 -20
- package/src/date-time/{index.js → index.tsx} +31 -5
- package/src/date-time/stories/date.tsx +73 -0
- package/src/date-time/stories/index.tsx +75 -0
- package/src/date-time/stories/time.tsx +51 -0
- package/src/date-time/stories/utils.ts +9 -0
- package/src/date-time/test/date.tsx +127 -0
- package/src/date-time/test/{time.js → time.tsx} +34 -19
- package/src/date-time/test/{utils.js → utils.ts} +1 -1
- package/src/date-time/{time.js → time.tsx} +57 -46
- package/src/date-time/{timezone.js → timezone.tsx} +4 -3
- package/src/date-time/types.ts +106 -0
- package/src/date-time/utils.ts +20 -0
- package/src/dimension-control/test/__snapshots__/index.test.js.snap +4 -4
- package/src/disabled/index.js +5 -90
- package/src/draggable/index.native.js +215 -0
- package/src/draggable/style.native.scss +3 -0
- package/src/dropdown/index.js +9 -4
- package/src/dropdown/style.scss +1 -1
- package/src/focal-point-picker/index.native.js +3 -3
- package/src/form-file-upload/test/index.js +20 -13
- package/src/heading/hook.ts +1 -1
- package/src/heading/test/__snapshots__/index.js.snap +3 -3
- package/src/index.js +0 -1
- package/src/index.native.js +1 -0
- package/src/input-control/README.md +3 -3
- package/src/input-control/index.tsx +23 -3
- package/src/input-control/stories/index.tsx +63 -0
- package/src/input-control/styles/input-control-styles.tsx +20 -7
- package/src/input-control/types.ts +79 -2
- package/src/item-group/stories/index.js +22 -18
- package/src/menu-item/style.scss +10 -0
- package/src/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js +1 -1
- package/src/mobile/bottom-sheet/bottom-sheet-navigation/test/navigation-container.native.js +9 -2
- package/src/mobile/bottom-sheet/index.native.js +1 -1
- package/src/mobile/bottom-sheet-select-control/index.native.js +8 -2
- package/src/mobile/html-text-input/index.native.js +45 -29
- package/src/mobile/html-text-input/style.android.scss +2 -15
- package/src/mobile/html-text-input/style.ios.scss +2 -15
- package/src/mobile/html-text-input/{style-common.native.scss → style.scss} +16 -0
- package/src/mobile/keyboard-aware-flat-list/index.android.js +15 -5
- package/src/mobile/keyboard-aware-flat-list/index.ios.js +75 -46
- package/src/mobile/link-settings/test/link-settings-navigation.native.js +9 -1
- package/src/navigation/styles/navigation-styles.js +5 -5
- package/src/navigator/stories/index.js +16 -10
- 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 +37 -9
- package/src/palette-edit/style.scss +0 -7
- package/src/palette-edit/test/index.js +63 -0
- package/src/panel/README.md +1 -1
- package/src/placeholder/test/index.js +7 -0
- package/src/popover/README.md +7 -9
- package/src/popover/index.js +242 -417
- package/src/popover/style.scss +20 -190
- package/src/popover/test/__snapshots__/index.js.snap +6 -18
- package/src/query-controls/README.md +2 -2
- package/src/resizable-box/resize-tooltip/utils.ts +4 -5
- package/src/sandbox/index.js +2 -2
- package/src/sandbox/index.native.js +1 -1
- package/src/select-control/README.md +2 -2
- package/src/select-control/index.tsx +30 -29
- package/src/select-control/stories/index.tsx +90 -0
- package/src/select-control/styles/select-control-styles.ts +16 -12
- package/src/select-control/test/{select-control.js → select-control.tsx} +2 -2
- package/src/select-control/types.ts +66 -1
- package/src/surface/styles.js +1 -1
- package/src/tab-panel/style.scss +1 -1
- 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/text-control/index.tsx +84 -0
- package/src/text-control/stories/index.tsx +66 -0
- package/src/text-control/types.ts +29 -0
- package/src/toggle-group-control/test/__snapshots__/index.js.snap +4 -10
- package/src/toggle-group-control/toggle-group-control/component.tsx +7 -3
- package/src/toggle-group-control/toggle-group-control-option-icon/component.tsx +1 -5
- package/src/toolbar-group/style.scss +20 -0
- package/src/tools-panel/test/__snapshots__/index.js.snap +2 -2
- package/src/tools-panel/test/index.js +71 -18
- package/src/tools-panel/tools-panel-header/component.tsx +75 -33
- package/src/tools-panel/types.ts +0 -1
- package/src/tooltip/index.js +8 -2
- package/src/tooltip/style.scss +2 -4
- package/src/tooltip/test/index.js +6 -0
- package/src/tooltip/test/index.native.js +1 -1
- package/src/ui/spinner/component.js +1 -1
- package/src/ui/spinner/test/__snapshots__/index.js.snap +3 -3
- package/src/unit-control/index.tsx +2 -5
- package/src/unit-control/styles/unit-control-styles.ts +3 -13
- package/src/unit-control/test/__snapshots__/index.tsx.snap +33 -0
- package/src/unit-control/test/{index.js → index.tsx} +295 -166
- package/src/unit-control/test/{utils.js → utils.ts} +38 -19
- package/src/unit-control/types.ts +4 -1
- package/src/unit-control/utils.ts +5 -3
- package/src/utils/colors-values.js +18 -22
- package/tsconfig.json +14 -3
- package/tsconfig.tsbuildinfo +1 -1
- package/build/box-control/visualizer.js +0 -165
- package/build/box-control/visualizer.js.map +0 -1
- package/build/flyout/context.js +0 -23
- package/build/flyout/context.js.map +0 -1
- package/build/flyout/flyout/component.js +0 -106
- package/build/flyout/flyout/component.js.map +0 -1
- package/build/flyout/flyout/hook.js +0 -53
- package/build/flyout/flyout/hook.js.map +0 -1
- package/build/flyout/flyout/index.js +0 -24
- package/build/flyout/flyout/index.js.map +0 -1
- package/build/flyout/flyout-content/component.js +0 -65
- package/build/flyout/flyout-content/component.js.map +0 -1
- package/build/flyout/flyout-content/index.js +0 -16
- package/build/flyout/flyout-content/index.js.map +0 -1
- package/build/flyout/index.js +0 -16
- package/build/flyout/index.js.map +0 -1
- package/build/flyout/styles.js +0 -46
- package/build/flyout/styles.js.map +0 -1
- package/build/flyout/utils.js +0 -36
- package/build/flyout/utils.js.map +0 -1
- package/build/mobile/html-text-input/container.android.js +0 -41
- package/build/mobile/html-text-input/container.android.js.map +0 -1
- package/build/mobile/html-text-input/container.ios.js +0 -60
- package/build/mobile/html-text-input/container.ios.js.map +0 -1
- package/build/popover/utils.js +0 -322
- package/build/popover/utils.js.map +0 -1
- package/build-module/box-control/visualizer.js +0 -154
- package/build-module/box-control/visualizer.js.map +0 -1
- package/build-module/flyout/context.js +0 -11
- package/build-module/flyout/context.js.map +0 -1
- package/build-module/flyout/flyout/component.js +0 -89
- package/build-module/flyout/flyout/component.js.map +0 -1
- package/build-module/flyout/flyout/hook.js +0 -44
- package/build-module/flyout/flyout/hook.js.map +0 -1
- package/build-module/flyout/flyout/index.js +0 -3
- package/build-module/flyout/flyout/index.js.map +0 -1
- package/build-module/flyout/flyout-content/component.js +0 -51
- package/build-module/flyout/flyout-content/component.js.map +0 -1
- package/build-module/flyout/flyout-content/index.js +0 -2
- package/build-module/flyout/flyout-content/index.js.map +0 -1
- package/build-module/flyout/index.js +0 -2
- package/build-module/flyout/index.js.map +0 -1
- package/build-module/flyout/styles.js +0 -27
- package/build-module/flyout/styles.js.map +0 -1
- package/build-module/flyout/utils.js +0 -25
- package/build-module/flyout/utils.js.map +0 -1
- package/build-module/mobile/html-text-input/container.android.js +0 -29
- package/build-module/mobile/html-text-input/container.android.js.map +0 -1
- package/build-module/mobile/html-text-input/container.ios.js +0 -48
- package/build-module/mobile/html-text-input/container.ios.js.map +0 -1
- package/build-module/popover/utils.js +0 -308
- package/build-module/popover/utils.js.map +0 -1
- package/build-types/flyout/context.d.ts +0 -6
- package/build-types/flyout/context.d.ts.map +0 -1
- package/build-types/flyout/flyout/component.d.ts +0 -21
- package/build-types/flyout/flyout/component.d.ts.map +0 -1
- package/build-types/flyout/flyout/hook.d.ts +0 -270
- package/build-types/flyout/flyout/hook.d.ts.map +0 -1
- package/build-types/flyout/flyout/index.d.ts +0 -3
- package/build-types/flyout/flyout/index.d.ts.map +0 -1
- package/build-types/flyout/flyout-content/component.d.ts +0 -3
- package/build-types/flyout/flyout-content/component.d.ts.map +0 -1
- package/build-types/flyout/flyout-content/index.d.ts +0 -2
- package/build-types/flyout/flyout-content/index.d.ts.map +0 -1
- package/build-types/flyout/index.d.ts +0 -2
- package/build-types/flyout/index.d.ts.map +0 -1
- package/build-types/flyout/styles.d.ts +0 -22
- package/build-types/flyout/styles.d.ts.map +0 -1
- package/build-types/flyout/types.d.ts +0 -80
- package/build-types/flyout/types.d.ts.map +0 -1
- package/build-types/flyout/utils.d.ts +0 -8
- package/build-types/flyout/utils.d.ts.map +0 -1
- package/build-types/popover/utils.d.ts +0 -70
- package/build-types/popover/utils.d.ts.map +0 -1
- package/build-types/toggle-group-control/toggle-group-control-option/styles.d.ts +0 -19
- package/build-types/toggle-group-control/toggle-group-control-option/styles.d.ts.map +0 -1
- package/src/box-control/visualizer.js +0 -116
- package/src/button-group/index.js +0 -17
- package/src/button-group/stories/index.js +0 -21
- package/src/date-time/stories/date.js +0 -17
- package/src/date-time/stories/index.js +0 -72
- package/src/date-time/stories/time.js +0 -32
- package/src/date-time/test/date.js +0 -97
- package/src/date-time/utils.js +0 -18
- package/src/flyout/context.js +0 -10
- package/src/flyout/flyout/README.md +0 -98
- package/src/flyout/flyout/component.js +0 -111
- package/src/flyout/flyout/hook.js +0 -45
- package/src/flyout/flyout/index.js +0 -2
- package/src/flyout/flyout-content/component.js +0 -53
- package/src/flyout/flyout-content/index.js +0 -1
- package/src/flyout/index.js +0 -1
- package/src/flyout/stories/index.js +0 -24
- package/src/flyout/styles.ts +0 -41
- package/src/flyout/test/__snapshots__/index.js.snap +0 -186
- package/src/flyout/test/index.js +0 -103
- package/src/flyout/types.ts +0 -84
- package/src/flyout/utils.js +0 -23
- package/src/input-control/stories/index.js +0 -71
- package/src/mobile/html-text-input/container.android.js +0 -23
- package/src/mobile/html-text-input/container.ios.js +0 -50
- package/src/popover/test/utils.js +0 -304
- package/src/popover/utils.js +0 -396
- package/src/select-control/stories/index.js +0 -104
- package/src/text-control/index.js +0 -72
- package/src/text-control/stories/index.js +0 -46
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import { render
|
|
4
|
+
import { render, screen } from '@testing-library/react';
|
|
5
5
|
import userEvent from '@testing-library/user-event';
|
|
6
6
|
|
|
7
7
|
/**
|
|
@@ -12,43 +12,48 @@ import { useState } from '@wordpress/element';
|
|
|
12
12
|
/**
|
|
13
13
|
* Internal dependencies
|
|
14
14
|
*/
|
|
15
|
-
import UnitControl from '
|
|
15
|
+
import UnitControl from '..';
|
|
16
16
|
import { parseQuantityAndUnitFromRawValue } from '../utils';
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
-
const getInput = () =>
|
|
31
|
-
document.body.querySelector( '.components-unit-control input' );
|
|
32
|
-
const getSelect = () =>
|
|
33
|
-
document.body.querySelector( '.components-unit-control select' );
|
|
34
|
-
const getUnitLabel = () =>
|
|
35
|
-
document.body.querySelector( '.components-unit-control__unit-label' );
|
|
17
|
+
import type { UnitControlOnChangeCallback } from '../types';
|
|
18
|
+
|
|
19
|
+
const getInput = ( {
|
|
20
|
+
isInputTypeText = false,
|
|
21
|
+
}: {
|
|
22
|
+
isInputTypeText?: boolean;
|
|
23
|
+
} = {} ) =>
|
|
24
|
+
screen.getByRole(
|
|
25
|
+
isInputTypeText ? 'textbox' : 'spinbutton'
|
|
26
|
+
) as HTMLInputElement;
|
|
27
|
+
const getSelect = () => screen.getByRole( 'combobox' ) as HTMLSelectElement;
|
|
28
|
+
const getSelectOptions = () =>
|
|
29
|
+
screen.getAllByRole( 'option' ) as HTMLOptionElement[];
|
|
36
30
|
|
|
37
31
|
const ControlledSyncUnits = () => {
|
|
38
|
-
const [ state, setState ] = useState( {
|
|
32
|
+
const [ state, setState ] = useState( {
|
|
33
|
+
valueA: '',
|
|
34
|
+
valueB: '',
|
|
35
|
+
} );
|
|
39
36
|
|
|
40
37
|
// Keep the unit sync'd between the two `UnitControl` instances.
|
|
41
|
-
const onUnitControlChange = (
|
|
42
|
-
|
|
43
|
-
|
|
38
|
+
const onUnitControlChange = (
|
|
39
|
+
fieldName: 'valueA' | 'valueB',
|
|
40
|
+
newValue?: string | number
|
|
41
|
+
) => {
|
|
42
|
+
const parsedQuantityAndUnit = parseQuantityAndUnitFromRawValue(
|
|
44
43
|
newValue
|
|
45
44
|
);
|
|
45
|
+
const quantity = parsedQuantityAndUnit[ 0 ];
|
|
46
46
|
|
|
47
47
|
if ( ! Number.isFinite( quantity ) ) {
|
|
48
48
|
return;
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
const
|
|
51
|
+
const newUnit = parsedQuantityAndUnit[ 1 ];
|
|
52
|
+
|
|
53
|
+
const nextState = {
|
|
54
|
+
...state,
|
|
55
|
+
[ fieldName ]: newValue,
|
|
56
|
+
};
|
|
52
57
|
|
|
53
58
|
Object.entries( state ).forEach( ( [ stateProp, stateValue ] ) => {
|
|
54
59
|
const [
|
|
@@ -57,7 +62,9 @@ const ControlledSyncUnits = () => {
|
|
|
57
62
|
] = parseQuantityAndUnitFromRawValue( stateValue );
|
|
58
63
|
|
|
59
64
|
if ( stateProp !== fieldName && stateUnit !== newUnit ) {
|
|
60
|
-
nextState[
|
|
65
|
+
nextState[
|
|
66
|
+
stateProp as 'valueA' | 'valueB'
|
|
67
|
+
] = `${ stateQuantity }${ newUnit }`;
|
|
61
68
|
}
|
|
62
69
|
} );
|
|
63
70
|
|
|
@@ -81,52 +88,69 @@ const ControlledSyncUnits = () => {
|
|
|
81
88
|
};
|
|
82
89
|
|
|
83
90
|
describe( 'UnitControl', () => {
|
|
91
|
+
beforeEach( () => {
|
|
92
|
+
jest.useFakeTimers();
|
|
93
|
+
} );
|
|
94
|
+
|
|
95
|
+
afterEach( () => {
|
|
96
|
+
jest.runOnlyPendingTimers();
|
|
97
|
+
jest.useRealTimers();
|
|
98
|
+
} );
|
|
99
|
+
|
|
84
100
|
describe( 'Basic rendering', () => {
|
|
85
101
|
it( 'should render', () => {
|
|
86
102
|
render( <UnitControl /> );
|
|
87
103
|
const input = getInput();
|
|
88
104
|
const select = getSelect();
|
|
89
105
|
|
|
90
|
-
expect( input ).
|
|
91
|
-
expect( select ).
|
|
106
|
+
expect( input ).toBeInTheDocument();
|
|
107
|
+
expect( select ).toBeInTheDocument();
|
|
92
108
|
} );
|
|
93
109
|
|
|
94
110
|
it( 'should render custom className', () => {
|
|
95
|
-
render( <UnitControl
|
|
111
|
+
const { container: withoutClassName } = render( <UnitControl /> );
|
|
96
112
|
|
|
97
|
-
const
|
|
113
|
+
const { container: withClassName } = render(
|
|
114
|
+
<UnitControl className="hello" />
|
|
115
|
+
);
|
|
98
116
|
|
|
99
|
-
expect(
|
|
117
|
+
expect( withoutClassName.firstChild ).toMatchDiffSnapshot(
|
|
118
|
+
withClassName.firstChild
|
|
119
|
+
);
|
|
100
120
|
} );
|
|
101
121
|
|
|
102
122
|
it( 'should not render select, if units are disabled', () => {
|
|
103
123
|
render( <UnitControl value="3em" units={ [] } /> );
|
|
104
124
|
const input = getInput();
|
|
105
|
-
|
|
125
|
+
// Using `queryByRole` instead of `getSelect` because we need to test
|
|
126
|
+
// for this element NOT to be in the document.
|
|
127
|
+
const select = screen.queryByRole( 'combobox' );
|
|
106
128
|
|
|
107
|
-
expect( input ).
|
|
108
|
-
expect( select ).
|
|
129
|
+
expect( input ).toBeInTheDocument();
|
|
130
|
+
expect( select ).not.toBeInTheDocument();
|
|
109
131
|
} );
|
|
110
132
|
|
|
111
133
|
it( 'should render label if single units', () => {
|
|
112
134
|
render( <UnitControl units={ [ { value: '%', label: '%' } ] } /> );
|
|
113
135
|
|
|
114
|
-
const select =
|
|
115
|
-
const label =
|
|
136
|
+
const select = screen.queryByRole( 'combobox' );
|
|
137
|
+
const label = screen.getByText( '%' );
|
|
116
138
|
|
|
117
|
-
expect( select ).
|
|
118
|
-
expect( label ).
|
|
139
|
+
expect( select ).not.toBeInTheDocument();
|
|
140
|
+
expect( label ).toBeInTheDocument();
|
|
119
141
|
} );
|
|
120
142
|
} );
|
|
121
143
|
|
|
122
144
|
describe( 'Value', () => {
|
|
123
145
|
it( 'should update value on change', async () => {
|
|
146
|
+
const user = userEvent.setup( {
|
|
147
|
+
advanceTimers: jest.advanceTimersByTime,
|
|
148
|
+
} );
|
|
149
|
+
|
|
124
150
|
let state = '50px';
|
|
125
151
|
const setState = jest.fn( ( value ) => ( state = value ) );
|
|
126
152
|
|
|
127
|
-
|
|
128
|
-
<UnitControl value={ state } onChange={ setState } />
|
|
129
|
-
);
|
|
153
|
+
render( <UnitControl value={ state } onChange={ setState } /> );
|
|
130
154
|
|
|
131
155
|
const input = getInput();
|
|
132
156
|
await user.clear( input );
|
|
@@ -141,12 +165,15 @@ describe( 'UnitControl', () => {
|
|
|
141
165
|
} );
|
|
142
166
|
|
|
143
167
|
it( 'should increment value on UP press', async () => {
|
|
144
|
-
|
|
145
|
-
|
|
168
|
+
const user = userEvent.setup( {
|
|
169
|
+
advanceTimers: jest.advanceTimersByTime,
|
|
170
|
+
} );
|
|
146
171
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
172
|
+
let state: string | undefined = '50px';
|
|
173
|
+
const setState: UnitControlOnChangeCallback = ( nextState ) =>
|
|
174
|
+
( state = nextState );
|
|
175
|
+
|
|
176
|
+
render( <UnitControl value={ state } onChange={ setState } /> );
|
|
150
177
|
|
|
151
178
|
const input = getInput();
|
|
152
179
|
await user.type( input, '{ArrowUp}' );
|
|
@@ -155,12 +182,15 @@ describe( 'UnitControl', () => {
|
|
|
155
182
|
} );
|
|
156
183
|
|
|
157
184
|
it( 'should increment value on UP + SHIFT press, with step', async () => {
|
|
158
|
-
|
|
159
|
-
|
|
185
|
+
const user = userEvent.setup( {
|
|
186
|
+
advanceTimers: jest.advanceTimersByTime,
|
|
187
|
+
} );
|
|
160
188
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
189
|
+
let state: string | undefined = '50px';
|
|
190
|
+
const setState: UnitControlOnChangeCallback = ( nextState ) =>
|
|
191
|
+
( state = nextState );
|
|
192
|
+
|
|
193
|
+
render( <UnitControl value={ state } onChange={ setState } /> );
|
|
164
194
|
|
|
165
195
|
const input = getInput();
|
|
166
196
|
await user.type( input, '{Shift>}{ArrowUp}{/Shift}' );
|
|
@@ -169,12 +199,15 @@ describe( 'UnitControl', () => {
|
|
|
169
199
|
} );
|
|
170
200
|
|
|
171
201
|
it( 'should decrement value on DOWN press', async () => {
|
|
172
|
-
|
|
173
|
-
|
|
202
|
+
const user = userEvent.setup( {
|
|
203
|
+
advanceTimers: jest.advanceTimersByTime,
|
|
204
|
+
} );
|
|
174
205
|
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
206
|
+
let state: string | number | undefined = 50;
|
|
207
|
+
const setState: UnitControlOnChangeCallback = ( nextState ) =>
|
|
208
|
+
( state = nextState );
|
|
209
|
+
|
|
210
|
+
render( <UnitControl value={ state } onChange={ setState } /> );
|
|
178
211
|
|
|
179
212
|
const input = getInput();
|
|
180
213
|
await user.type( input, '{ArrowDown}' );
|
|
@@ -183,12 +216,15 @@ describe( 'UnitControl', () => {
|
|
|
183
216
|
} );
|
|
184
217
|
|
|
185
218
|
it( 'should decrement value on DOWN + SHIFT press, with step', async () => {
|
|
186
|
-
|
|
187
|
-
|
|
219
|
+
const user = userEvent.setup( {
|
|
220
|
+
advanceTimers: jest.advanceTimersByTime,
|
|
221
|
+
} );
|
|
188
222
|
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
223
|
+
let state: string | number | undefined = 50;
|
|
224
|
+
const setState: UnitControlOnChangeCallback = ( nextState ) =>
|
|
225
|
+
( state = nextState );
|
|
226
|
+
|
|
227
|
+
render( <UnitControl value={ state } onChange={ setState } /> );
|
|
192
228
|
|
|
193
229
|
const input = getInput();
|
|
194
230
|
await user.type( input, '{Shift>}{ArrowDown}{/Shift}' );
|
|
@@ -197,10 +233,15 @@ describe( 'UnitControl', () => {
|
|
|
197
233
|
} );
|
|
198
234
|
|
|
199
235
|
it( 'should cancel change when ESCAPE key is pressed', async () => {
|
|
200
|
-
|
|
201
|
-
|
|
236
|
+
const user = userEvent.setup( {
|
|
237
|
+
advanceTimers: jest.advanceTimersByTime,
|
|
238
|
+
} );
|
|
239
|
+
|
|
240
|
+
let state: string | number | undefined = 50;
|
|
241
|
+
const setState: UnitControlOnChangeCallback = ( nextState ) =>
|
|
242
|
+
( state = nextState );
|
|
202
243
|
|
|
203
|
-
|
|
244
|
+
render(
|
|
204
245
|
<UnitControl
|
|
205
246
|
value={ state }
|
|
206
247
|
onChange={ setState }
|
|
@@ -208,95 +249,91 @@ describe( 'UnitControl', () => {
|
|
|
208
249
|
/>
|
|
209
250
|
);
|
|
210
251
|
|
|
211
|
-
|
|
252
|
+
// Input type is `text` when the `isPressEnterToChange` prop is passed
|
|
253
|
+
const input = getInput( { isInputTypeText: true } );
|
|
212
254
|
await user.clear( input );
|
|
213
255
|
await user.type( input, '300px' );
|
|
214
256
|
|
|
215
257
|
expect( input.value ).toBe( '300px' );
|
|
216
258
|
expect( state ).toBe( 50 );
|
|
217
259
|
|
|
218
|
-
user.keyboard( '{Escape}' );
|
|
260
|
+
await user.keyboard( '{Escape}' );
|
|
219
261
|
|
|
220
262
|
expect( input.value ).toBe( '50' );
|
|
221
263
|
expect( state ).toBe( 50 );
|
|
222
264
|
} );
|
|
223
265
|
|
|
224
266
|
it( 'should run onBlur callback when quantity input is blurred', async () => {
|
|
225
|
-
|
|
267
|
+
const user = userEvent.setup( {
|
|
268
|
+
advanceTimers: jest.advanceTimersByTime,
|
|
269
|
+
} );
|
|
270
|
+
|
|
226
271
|
const onChangeSpy = jest.fn();
|
|
227
272
|
const onBlurSpy = jest.fn();
|
|
228
|
-
|
|
273
|
+
|
|
274
|
+
let state: string | undefined = '33%';
|
|
275
|
+
const setState: UnitControlOnChangeCallback = ( nextState ) => {
|
|
229
276
|
onChangeSpy( nextState );
|
|
230
277
|
state = nextState;
|
|
231
278
|
};
|
|
232
279
|
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
onBlur={ onBlurSpy }
|
|
240
|
-
/>
|
|
241
|
-
</>
|
|
280
|
+
render(
|
|
281
|
+
<UnitControl
|
|
282
|
+
value={ state }
|
|
283
|
+
onChange={ setState }
|
|
284
|
+
onBlur={ onBlurSpy }
|
|
285
|
+
/>
|
|
242
286
|
);
|
|
243
287
|
|
|
244
288
|
const input = getInput();
|
|
245
289
|
await user.clear( input );
|
|
246
290
|
await user.type( input, '41' );
|
|
247
291
|
|
|
248
|
-
|
|
249
|
-
expect( onChangeSpy ).toHaveBeenCalledTimes( 3 )
|
|
250
|
-
);
|
|
292
|
+
expect( onChangeSpy ).toHaveBeenCalledTimes( 3 );
|
|
251
293
|
expect( onChangeSpy ).toHaveBeenLastCalledWith( '41%' );
|
|
252
294
|
|
|
253
|
-
// Clicking
|
|
254
|
-
|
|
255
|
-
await user.click( button );
|
|
295
|
+
// Clicking document.body to trigger a blur event on the input.
|
|
296
|
+
await user.click( document.body );
|
|
256
297
|
|
|
257
|
-
|
|
258
|
-
expect( onBlurSpy ).toHaveBeenCalledTimes( 1 )
|
|
259
|
-
);
|
|
298
|
+
expect( onBlurSpy ).toHaveBeenCalledTimes( 1 );
|
|
260
299
|
} );
|
|
261
300
|
|
|
262
301
|
it( 'should invoke onChange and onUnitChange callbacks when isPressEnterToChange is true and the component is blurred with an uncommitted value', async () => {
|
|
263
|
-
|
|
302
|
+
const user = userEvent.setup( {
|
|
303
|
+
advanceTimers: jest.advanceTimersByTime,
|
|
304
|
+
} );
|
|
264
305
|
|
|
265
306
|
const onUnitChangeSpy = jest.fn();
|
|
266
307
|
const onChangeSpy = jest.fn();
|
|
267
308
|
|
|
268
|
-
|
|
309
|
+
let state: string | undefined = '15px';
|
|
310
|
+
const setState: UnitControlOnChangeCallback = ( nextState ) => {
|
|
269
311
|
onChangeSpy( nextState );
|
|
270
312
|
state = nextState;
|
|
271
313
|
};
|
|
272
314
|
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
isPressEnterToChange
|
|
281
|
-
/>
|
|
282
|
-
</>
|
|
315
|
+
render(
|
|
316
|
+
<UnitControl
|
|
317
|
+
value={ state }
|
|
318
|
+
onChange={ setState }
|
|
319
|
+
onUnitChange={ onUnitChangeSpy }
|
|
320
|
+
isPressEnterToChange
|
|
321
|
+
/>
|
|
283
322
|
);
|
|
284
323
|
|
|
285
|
-
|
|
324
|
+
// Input type is `text` when the `isPressEnterToChange` prop is passed
|
|
325
|
+
const input = getInput( { isInputTypeText: true } );
|
|
286
326
|
await user.clear( input );
|
|
287
327
|
await user.type( input, '41vh' );
|
|
288
328
|
|
|
289
329
|
// This is because `isPressEnterToChange` is `true`
|
|
290
330
|
expect( onChangeSpy ).not.toHaveBeenCalled();
|
|
331
|
+
expect( onUnitChangeSpy ).not.toHaveBeenCalled();
|
|
291
332
|
|
|
292
|
-
// Clicking
|
|
293
|
-
|
|
294
|
-
await user.click( button );
|
|
295
|
-
|
|
296
|
-
await waitFor( () =>
|
|
297
|
-
expect( onChangeSpy ).toHaveBeenCalledTimes( 1 )
|
|
298
|
-
);
|
|
333
|
+
// Clicking document.body to trigger a blur event on the input.
|
|
334
|
+
await user.click( document.body );
|
|
299
335
|
|
|
336
|
+
expect( onChangeSpy ).toHaveBeenCalledTimes( 1 );
|
|
300
337
|
expect( onChangeSpy ).toHaveBeenLastCalledWith( '41vh' );
|
|
301
338
|
|
|
302
339
|
expect( onUnitChangeSpy ).toHaveBeenCalledTimes( 1 );
|
|
@@ -305,16 +342,55 @@ describe( 'UnitControl', () => {
|
|
|
305
342
|
expect.anything()
|
|
306
343
|
);
|
|
307
344
|
} );
|
|
345
|
+
|
|
346
|
+
it( 'should update value correctly when typed and blurred when a single unit is passed', async () => {
|
|
347
|
+
const user = userEvent.setup( {
|
|
348
|
+
advanceTimers: jest.advanceTimersByTime,
|
|
349
|
+
} );
|
|
350
|
+
|
|
351
|
+
const onChangeSpy = jest.fn();
|
|
352
|
+
render(
|
|
353
|
+
<>
|
|
354
|
+
<button>Click me</button>
|
|
355
|
+
<UnitControl
|
|
356
|
+
units={ [ { value: '%', label: '%' } ] }
|
|
357
|
+
onChange={ onChangeSpy }
|
|
358
|
+
/>
|
|
359
|
+
</>
|
|
360
|
+
);
|
|
361
|
+
|
|
362
|
+
const input = getInput();
|
|
363
|
+
await user.type( input, '62' );
|
|
364
|
+
|
|
365
|
+
expect( onChangeSpy ).toHaveBeenLastCalledWith(
|
|
366
|
+
'62%',
|
|
367
|
+
expect.anything()
|
|
368
|
+
);
|
|
369
|
+
|
|
370
|
+
// Start counting again calls to `onChangeSpy`.
|
|
371
|
+
onChangeSpy.mockClear();
|
|
372
|
+
|
|
373
|
+
// Clicking on the button should cause the `onBlur` callback to fire.
|
|
374
|
+
const button = screen.getByRole( 'button' );
|
|
375
|
+
await user.click( button );
|
|
376
|
+
|
|
377
|
+
expect( onChangeSpy ).not.toHaveBeenCalled();
|
|
378
|
+
} );
|
|
308
379
|
} );
|
|
309
380
|
|
|
310
381
|
describe( 'Unit', () => {
|
|
311
382
|
it( 'should update unit value on change', async () => {
|
|
312
|
-
|
|
313
|
-
|
|
383
|
+
const user = userEvent.setup( {
|
|
384
|
+
advanceTimers: jest.advanceTimersByTime,
|
|
385
|
+
} );
|
|
386
|
+
|
|
387
|
+
let state: string | undefined = '14rem';
|
|
388
|
+
const setState: UnitControlOnChangeCallback = ( nextState ) =>
|
|
389
|
+
( state = nextState );
|
|
314
390
|
|
|
315
391
|
const spy = jest.fn();
|
|
316
392
|
|
|
317
|
-
|
|
393
|
+
render(
|
|
318
394
|
<UnitControl
|
|
319
395
|
value={ state }
|
|
320
396
|
onChange={ setState }
|
|
@@ -337,8 +413,7 @@ describe( 'UnitControl', () => {
|
|
|
337
413
|
|
|
338
414
|
render( <UnitControl units={ units } /> );
|
|
339
415
|
|
|
340
|
-
const
|
|
341
|
-
const options = select.querySelectorAll( 'option' );
|
|
416
|
+
const options = getSelectOptions();
|
|
342
417
|
|
|
343
418
|
expect( options.length ).toBe( 2 );
|
|
344
419
|
|
|
@@ -349,15 +424,20 @@ describe( 'UnitControl', () => {
|
|
|
349
424
|
} );
|
|
350
425
|
|
|
351
426
|
it( 'should reset value on unit change, if unit has default value', async () => {
|
|
352
|
-
|
|
353
|
-
|
|
427
|
+
const user = userEvent.setup( {
|
|
428
|
+
advanceTimers: jest.advanceTimersByTime,
|
|
429
|
+
} );
|
|
430
|
+
|
|
431
|
+
let state: string | number | undefined = 50;
|
|
432
|
+
const setState: UnitControlOnChangeCallback = ( nextState ) =>
|
|
433
|
+
( state = nextState );
|
|
354
434
|
|
|
355
435
|
const units = [
|
|
356
436
|
{ value: 'pt', label: 'pt', default: 25 },
|
|
357
437
|
{ value: 'vmax', label: 'vmax', default: 75 },
|
|
358
438
|
];
|
|
359
439
|
|
|
360
|
-
|
|
440
|
+
render(
|
|
361
441
|
<UnitControl
|
|
362
442
|
isResetValueOnUnitChange
|
|
363
443
|
units={ units }
|
|
@@ -377,15 +457,20 @@ describe( 'UnitControl', () => {
|
|
|
377
457
|
} );
|
|
378
458
|
|
|
379
459
|
it( 'should not reset value on unit change, if disabled', async () => {
|
|
380
|
-
|
|
381
|
-
|
|
460
|
+
const user = userEvent.setup( {
|
|
461
|
+
advanceTimers: jest.advanceTimersByTime,
|
|
462
|
+
} );
|
|
463
|
+
|
|
464
|
+
let state: string | number | undefined = 50;
|
|
465
|
+
const setState: UnitControlOnChangeCallback = ( nextState ) =>
|
|
466
|
+
( state = nextState );
|
|
382
467
|
|
|
383
468
|
const units = [
|
|
384
469
|
{ value: 'pt', label: 'pt', default: 25 },
|
|
385
470
|
{ value: 'vmax', label: 'vmax', default: 75 },
|
|
386
471
|
];
|
|
387
472
|
|
|
388
|
-
|
|
473
|
+
render(
|
|
389
474
|
<UnitControl
|
|
390
475
|
isResetValueOnUnitChange={ false }
|
|
391
476
|
value={ state }
|
|
@@ -405,10 +490,15 @@ describe( 'UnitControl', () => {
|
|
|
405
490
|
} );
|
|
406
491
|
|
|
407
492
|
it( 'should set correct unit if single units', async () => {
|
|
408
|
-
|
|
409
|
-
|
|
493
|
+
const user = userEvent.setup( {
|
|
494
|
+
advanceTimers: jest.advanceTimersByTime,
|
|
495
|
+
} );
|
|
410
496
|
|
|
411
|
-
|
|
497
|
+
let state: string | undefined = '50%';
|
|
498
|
+
const setState: UnitControlOnChangeCallback = ( value ) =>
|
|
499
|
+
( state = value );
|
|
500
|
+
|
|
501
|
+
render(
|
|
412
502
|
<UnitControl
|
|
413
503
|
value={ state }
|
|
414
504
|
units={ [ { value: '%', label: '%' } ] }
|
|
@@ -420,11 +510,15 @@ describe( 'UnitControl', () => {
|
|
|
420
510
|
await user.clear( input );
|
|
421
511
|
await user.type( input, '62' );
|
|
422
512
|
|
|
423
|
-
|
|
513
|
+
expect( state ).toBe( '62%' );
|
|
424
514
|
} );
|
|
425
515
|
|
|
426
516
|
it( 'should update unit value when a new raw value is passed', async () => {
|
|
427
|
-
const
|
|
517
|
+
const user = userEvent.setup( {
|
|
518
|
+
advanceTimers: jest.advanceTimersByTime,
|
|
519
|
+
} );
|
|
520
|
+
|
|
521
|
+
render( <ControlledSyncUnits /> );
|
|
428
522
|
|
|
429
523
|
const [ inputA, inputB ] = screen.getAllByRole( 'spinbutton' );
|
|
430
524
|
const [ selectA, selectB ] = screen.getAllByRole( 'combobox' );
|
|
@@ -442,24 +536,26 @@ describe( 'UnitControl', () => {
|
|
|
442
536
|
|
|
443
537
|
await user.selectOptions( selectA, remOptionA );
|
|
444
538
|
|
|
445
|
-
|
|
539
|
+
expect( selectB ).toHaveValue( 'rem' );
|
|
446
540
|
expect( selectA ).toHaveValue( 'rem' );
|
|
447
541
|
|
|
448
542
|
await user.selectOptions( selectB, vwOptionB );
|
|
449
543
|
|
|
450
|
-
|
|
544
|
+
expect( selectA ).toHaveValue( 'vw' );
|
|
451
545
|
expect( selectB ).toHaveValue( 'vw' );
|
|
452
546
|
} );
|
|
453
547
|
|
|
454
548
|
it( 'should maintain the chosen non-default unit when value is cleared', async () => {
|
|
549
|
+
const user = userEvent.setup( {
|
|
550
|
+
advanceTimers: jest.advanceTimersByTime,
|
|
551
|
+
} );
|
|
552
|
+
|
|
455
553
|
const units = [
|
|
456
554
|
{ value: 'pt', label: 'pt' },
|
|
457
555
|
{ value: 'vmax', label: 'vmax' },
|
|
458
556
|
];
|
|
459
557
|
|
|
460
|
-
|
|
461
|
-
<UnitControl units={ units } value="5" />
|
|
462
|
-
);
|
|
558
|
+
render( <UnitControl units={ units } value="5" /> );
|
|
463
559
|
|
|
464
560
|
const select = getSelect();
|
|
465
561
|
await user.selectOptions( select, [ 'vmax' ] );
|
|
@@ -471,47 +567,47 @@ describe( 'UnitControl', () => {
|
|
|
471
567
|
} );
|
|
472
568
|
|
|
473
569
|
it( 'should run onBlur callback when the unit select is blurred', async () => {
|
|
570
|
+
const user = userEvent.setup( {
|
|
571
|
+
advanceTimers: jest.advanceTimersByTime,
|
|
572
|
+
} );
|
|
573
|
+
|
|
474
574
|
const onUnitChangeSpy = jest.fn();
|
|
475
575
|
const onBlurSpy = jest.fn();
|
|
476
576
|
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
onBlur={ onBlurSpy }
|
|
484
|
-
/>
|
|
485
|
-
</>
|
|
577
|
+
render(
|
|
578
|
+
<UnitControl
|
|
579
|
+
value="15px"
|
|
580
|
+
onUnitChange={ onUnitChangeSpy }
|
|
581
|
+
onBlur={ onBlurSpy }
|
|
582
|
+
/>
|
|
486
583
|
);
|
|
487
584
|
|
|
488
585
|
const select = getSelect();
|
|
489
586
|
await user.selectOptions( select, [ 'em' ] );
|
|
490
587
|
|
|
491
|
-
|
|
492
|
-
expect( onUnitChangeSpy ).toHaveBeenCalledTimes( 1 )
|
|
493
|
-
);
|
|
588
|
+
expect( onUnitChangeSpy ).toHaveBeenCalledTimes( 1 );
|
|
494
589
|
expect( onUnitChangeSpy ).toHaveBeenLastCalledWith(
|
|
495
590
|
'em',
|
|
496
591
|
expect.anything()
|
|
497
592
|
);
|
|
498
593
|
|
|
499
|
-
// Clicking
|
|
500
|
-
|
|
501
|
-
await user.click( button );
|
|
594
|
+
// Clicking document.body to trigger a blur event on the input.
|
|
595
|
+
await user.click( document.body );
|
|
502
596
|
|
|
503
|
-
|
|
504
|
-
expect( onBlurSpy ).toHaveBeenCalledTimes( 1 )
|
|
505
|
-
);
|
|
597
|
+
expect( onBlurSpy ).toHaveBeenCalledTimes( 1 );
|
|
506
598
|
} );
|
|
507
599
|
} );
|
|
508
600
|
|
|
509
601
|
describe( 'Unit Parser', () => {
|
|
510
|
-
let state = '10px';
|
|
511
|
-
const setState = jest.fn( ( nextState ) => ( state = nextState ) );
|
|
512
|
-
|
|
513
602
|
it( 'should parse unit from input', async () => {
|
|
514
|
-
const
|
|
603
|
+
const user = userEvent.setup( {
|
|
604
|
+
advanceTimers: jest.advanceTimersByTime,
|
|
605
|
+
} );
|
|
606
|
+
|
|
607
|
+
let state = '10px';
|
|
608
|
+
const setState = jest.fn( ( nextState ) => ( state = nextState ) );
|
|
609
|
+
|
|
610
|
+
render(
|
|
515
611
|
<UnitControl
|
|
516
612
|
value={ state }
|
|
517
613
|
onChange={ setState }
|
|
@@ -519,16 +615,24 @@ describe( 'UnitControl', () => {
|
|
|
519
615
|
/>
|
|
520
616
|
);
|
|
521
617
|
|
|
522
|
-
|
|
618
|
+
// Input type is `text` when the `isPressEnterToChange` prop is passed
|
|
619
|
+
const input = getInput( { isInputTypeText: true } );
|
|
523
620
|
await user.clear( input );
|
|
524
621
|
await user.type( input, '55 em' );
|
|
525
|
-
user.keyboard( '{Enter}' );
|
|
622
|
+
await user.keyboard( '{Enter}' );
|
|
526
623
|
|
|
527
624
|
expect( state ).toBe( '55em' );
|
|
528
625
|
} );
|
|
529
626
|
|
|
530
627
|
it( 'should parse PX unit from input', async () => {
|
|
531
|
-
const
|
|
628
|
+
const user = userEvent.setup( {
|
|
629
|
+
advanceTimers: jest.advanceTimersByTime,
|
|
630
|
+
} );
|
|
631
|
+
|
|
632
|
+
let state = '10px';
|
|
633
|
+
const setState = jest.fn( ( nextState ) => ( state = nextState ) );
|
|
634
|
+
|
|
635
|
+
render(
|
|
532
636
|
<UnitControl
|
|
533
637
|
value={ state }
|
|
534
638
|
onChange={ setState }
|
|
@@ -536,16 +640,24 @@ describe( 'UnitControl', () => {
|
|
|
536
640
|
/>
|
|
537
641
|
);
|
|
538
642
|
|
|
539
|
-
|
|
643
|
+
// Input type is `text` when the `isPressEnterToChange` prop is passed
|
|
644
|
+
const input = getInput( { isInputTypeText: true } );
|
|
540
645
|
await user.clear( input );
|
|
541
646
|
await user.type( input, '61 PX' );
|
|
542
|
-
user.keyboard( '{Enter}' );
|
|
647
|
+
await user.keyboard( '{Enter}' );
|
|
543
648
|
|
|
544
649
|
expect( state ).toBe( '61px' );
|
|
545
650
|
} );
|
|
546
651
|
|
|
547
652
|
it( 'should parse EM unit from input', async () => {
|
|
548
|
-
const
|
|
653
|
+
const user = userEvent.setup( {
|
|
654
|
+
advanceTimers: jest.advanceTimersByTime,
|
|
655
|
+
} );
|
|
656
|
+
|
|
657
|
+
let state = '10px';
|
|
658
|
+
const setState = jest.fn( ( nextState ) => ( state = nextState ) );
|
|
659
|
+
|
|
660
|
+
render(
|
|
549
661
|
<UnitControl
|
|
550
662
|
value={ state }
|
|
551
663
|
onChange={ setState }
|
|
@@ -553,16 +665,24 @@ describe( 'UnitControl', () => {
|
|
|
553
665
|
/>
|
|
554
666
|
);
|
|
555
667
|
|
|
556
|
-
|
|
668
|
+
// Input type is `text` when the `isPressEnterToChange` prop is passed
|
|
669
|
+
const input = getInput( { isInputTypeText: true } );
|
|
557
670
|
await user.clear( input );
|
|
558
671
|
await user.type( input, '55 em' );
|
|
559
|
-
user.keyboard( '{Enter}' );
|
|
672
|
+
await user.keyboard( '{Enter}' );
|
|
560
673
|
|
|
561
674
|
expect( state ).toBe( '55em' );
|
|
562
675
|
} );
|
|
563
676
|
|
|
564
677
|
it( 'should parse % unit from input', async () => {
|
|
565
|
-
const
|
|
678
|
+
const user = userEvent.setup( {
|
|
679
|
+
advanceTimers: jest.advanceTimersByTime,
|
|
680
|
+
} );
|
|
681
|
+
|
|
682
|
+
let state = '10px';
|
|
683
|
+
const setState = jest.fn( ( nextState ) => ( state = nextState ) );
|
|
684
|
+
|
|
685
|
+
render(
|
|
566
686
|
<UnitControl
|
|
567
687
|
value={ state }
|
|
568
688
|
onChange={ setState }
|
|
@@ -570,16 +690,24 @@ describe( 'UnitControl', () => {
|
|
|
570
690
|
/>
|
|
571
691
|
);
|
|
572
692
|
|
|
573
|
-
|
|
693
|
+
// Input type is `text` when the `isPressEnterToChange` prop is passed
|
|
694
|
+
const input = getInput( { isInputTypeText: true } );
|
|
574
695
|
await user.clear( input );
|
|
575
696
|
await user.type( input, '-10 %' );
|
|
576
|
-
user.keyboard( '{Enter}' );
|
|
697
|
+
await user.keyboard( '{Enter}' );
|
|
577
698
|
|
|
578
699
|
expect( state ).toBe( '-10%' );
|
|
579
700
|
} );
|
|
580
701
|
|
|
581
702
|
it( 'should parse REM unit from input', async () => {
|
|
582
|
-
const
|
|
703
|
+
const user = userEvent.setup( {
|
|
704
|
+
advanceTimers: jest.advanceTimersByTime,
|
|
705
|
+
} );
|
|
706
|
+
|
|
707
|
+
let state = '10px';
|
|
708
|
+
const setState = jest.fn( ( nextState ) => ( state = nextState ) );
|
|
709
|
+
|
|
710
|
+
render(
|
|
583
711
|
<UnitControl
|
|
584
712
|
value={ state }
|
|
585
713
|
onChange={ setState }
|
|
@@ -587,10 +715,11 @@ describe( 'UnitControl', () => {
|
|
|
587
715
|
/>
|
|
588
716
|
);
|
|
589
717
|
|
|
590
|
-
|
|
718
|
+
// Input type is `text` when the `isPressEnterToChange` prop is passed
|
|
719
|
+
const input = getInput( { isInputTypeText: true } );
|
|
591
720
|
await user.clear( input );
|
|
592
721
|
await user.type( input, '123 rEm ' );
|
|
593
|
-
user.keyboard( '{Enter}' );
|
|
722
|
+
await user.keyboard( '{Enter}' );
|
|
594
723
|
|
|
595
724
|
expect( state ).toBe( '123rem' );
|
|
596
725
|
} );
|
|
@@ -604,7 +733,7 @@ describe( 'UnitControl', () => {
|
|
|
604
733
|
|
|
605
734
|
rerender( <UnitControl value={ '20vh' } /> );
|
|
606
735
|
|
|
607
|
-
|
|
736
|
+
expect( select.value ).toBe( 'vh' );
|
|
608
737
|
} );
|
|
609
738
|
|
|
610
739
|
it( 'should fallback to default unit if parsed unit is invalid', () => {
|
|
@@ -625,7 +754,7 @@ describe( 'UnitControl', () => {
|
|
|
625
754
|
);
|
|
626
755
|
|
|
627
756
|
const select = getSelect();
|
|
628
|
-
const options =
|
|
757
|
+
const options = getSelectOptions();
|
|
629
758
|
|
|
630
759
|
expect( select.value ).toBe( '%' );
|
|
631
760
|
expect( options.length ).toBe( 3 );
|