@wordpress/components 19.9.0 → 19.12.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 +84 -0
- package/CONTRIBUTING.md +80 -7
- package/README.md +1 -1
- package/build/alignment-matrix-control/index.js +5 -2
- package/build/alignment-matrix-control/index.js.map +1 -1
- package/build/angle-picker-control/angle-circle.js +5 -7
- package/build/angle-picker-control/angle-circle.js.map +1 -1
- package/build/autocomplete/autocompleter-ui.js +1 -1
- package/build/autocomplete/autocompleter-ui.js.map +1 -1
- package/build/autocomplete/autocompleter-ui.native.js +2 -2
- package/build/autocomplete/autocompleter-ui.native.js.map +1 -1
- package/build/autocomplete/index.js +12 -10
- package/build/autocomplete/index.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/hook.js +2 -2
- package/build/border-box-control/border-box-control/hook.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 +23 -8
- package/build/border-box-control/border-box-control-split-controls/component.js.map +1 -1
- package/build/border-box-control/border-box-control-split-controls/hook.js +13 -4
- package/build/border-box-control/border-box-control-split-controls/hook.js.map +1 -1
- package/build/border-box-control/border-box-control-visualizer/hook.js +7 -2
- package/build/border-box-control/border-box-control-visualizer/hook.js.map +1 -1
- package/build/border-box-control/styles.js +25 -19
- 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 +8 -5
- 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 +14 -14
- package/build/color-palette/index.js.map +1 -1
- package/build/color-palette/index.native.js +4 -1
- package/build/color-palette/index.native.js.map +1 -1
- package/build/color-picker/color-copy-button.js +87 -0
- package/build/color-picker/color-copy-button.js.map +1 -0
- package/build/color-picker/component.js +5 -15
- package/build/color-picker/component.js.map +1 -1
- package/build/color-picker/hex-input.js +18 -1
- package/build/color-picker/hex-input.js.map +1 -1
- package/build/color-picker/styles.js +11 -11
- package/build/color-picker/styles.js.map +1 -1
- package/build/custom-gradient-picker/utils.js +1 -1
- package/build/custom-gradient-picker/utils.js.map +1 -1
- package/build/date-time/{date.js → date/index.js} +83 -20
- package/build/date-time/date/index.js.map +1 -0
- package/build/date-time/date/styles.js +70 -0
- package/build/date-time/date/styles.js.map +1 -0
- package/build/date-time/{utils.js → date/utils.js} +6 -4
- package/build/date-time/date/utils.js.map +1 -0
- package/build/date-time/date-time/index.js +175 -0
- package/build/date-time/date-time/index.js.map +1 -0
- package/build/date-time/date-time/styles.js +32 -0
- package/build/date-time/date-time/styles.js.map +1 -0
- package/build/date-time/index.js +2 -84
- package/build/date-time/index.js.map +1 -1
- package/build/date-time/time/index.js +322 -0
- package/build/date-time/time/index.js.map +1 -0
- package/build/date-time/time/styles.js +139 -0
- package/build/date-time/time/styles.js.map +1 -0
- package/build/date-time/{timezone.js → time/timezone.js} +8 -5
- package/build/date-time/time/timezone.js.map +1 -0
- package/build/date-time/types.js +6 -0
- package/build/date-time/types.js.map +1 -0
- package/build/disabled/index.js +4 -76
- package/build/disabled/index.js.map +1 -1
- package/build/draggable/index.native.js +228 -0
- package/build/draggable/index.native.js.map +1 -0
- package/build/dropdown/index.js +9 -4
- 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/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 +12 -6
- package/build/input-control/index.js.map +1 -1
- package/build/input-control/input-field.js +1 -26
- package/build/input-control/input-field.js.map +1 -1
- package/build/input-control/reducer/reducer.js +36 -24
- package/build/input-control/reducer/reducer.js.map +1 -1
- package/build/input-control/reducer/state.js +0 -1
- package/build/input-control/reducer/state.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/input-control/utils.js +45 -0
- package/build/input-control/utils.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/palette-edit/index.js +38 -7
- package/build/palette-edit/index.js.map +1 -1
- package/build/popover/index.js +228 -321
- 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.native.js +1 -1
- package/build/sandbox/index.native.js.map +1 -1
- package/build/search-control/index.js +4 -6
- package/build/search-control/index.js.map +1 -1
- package/build/select-control/index.js +34 -5
- 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/spacer/hook.js +11 -3
- package/build/spacer/hook.js.map +1 -1
- package/build/surface/component.js +7 -7
- package/build/surface/component.js.map +1 -1
- package/build/surface/hook.js +8 -11
- package/build/surface/hook.js.map +1 -1
- package/build/surface/index.js.map +1 -1
- package/build/surface/styles.js +8 -48
- package/build/surface/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/textarea-control/index.js +40 -6
- package/build/textarea-control/index.js.map +1 -1
- package/build/textarea-control/styles/textarea-control-styles.js +3 -3
- package/build/textarea-control/styles/textarea-control-styles.js.map +1 -1
- package/build/textarea-control/types.js +6 -0
- package/build/textarea-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/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/hooks/index.js +0 -8
- package/build/utils/hooks/index.js.map +1 -1
- package/build-module/alignment-matrix-control/index.js +5 -2
- package/build-module/alignment-matrix-control/index.js.map +1 -1
- package/build-module/angle-picker-control/angle-circle.js +5 -7
- package/build-module/angle-picker-control/angle-circle.js.map +1 -1
- package/build-module/autocomplete/autocompleter-ui.js +1 -1
- package/build-module/autocomplete/autocompleter-ui.js.map +1 -1
- package/build-module/autocomplete/autocompleter-ui.native.js +2 -2
- package/build-module/autocomplete/autocompleter-ui.native.js.map +1 -1
- package/build-module/autocomplete/index.js +13 -11
- package/build-module/autocomplete/index.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/hook.js +2 -2
- package/build-module/border-box-control/border-box-control/hook.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 +23 -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-split-controls/hook.js +11 -4
- package/build-module/border-box-control/border-box-control-split-controls/hook.js.map +1 -1
- package/build-module/border-box-control/border-box-control-visualizer/hook.js +5 -2
- package/build-module/border-box-control/border-box-control-visualizer/hook.js.map +1 -1
- package/build-module/border-box-control/styles.js +15 -16
- 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 +8 -5
- 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 +12 -16
- package/build-module/color-palette/index.js.map +1 -1
- package/build-module/color-palette/index.native.js +4 -1
- package/build-module/color-palette/index.native.js.map +1 -1
- package/build-module/color-picker/color-copy-button.js +73 -0
- package/build-module/color-picker/color-copy-button.js.map +1 -0
- package/build-module/color-picker/component.js +6 -15
- package/build-module/color-picker/component.js.map +1 -1
- package/build-module/color-picker/hex-input.js +18 -1
- package/build-module/color-picker/hex-input.js.map +1 -1
- package/build-module/color-picker/styles.js +9 -9
- package/build-module/color-picker/styles.js.map +1 -1
- package/build-module/custom-gradient-picker/utils.js +1 -1
- package/build-module/custom-gradient-picker/utils.js.map +1 -1
- package/build-module/date-time/{date.js → date/index.js} +79 -22
- package/build-module/date-time/date/index.js.map +1 -0
- package/build-module/date-time/date/styles.js +61 -0
- package/build-module/date-time/date/styles.js.map +1 -0
- package/build-module/date-time/date/utils.js +22 -0
- package/build-module/date-time/date/utils.js.map +1 -0
- package/build-module/date-time/date-time/index.js +144 -0
- package/build-module/date-time/date-time/index.js.map +1 -0
- package/build-module/date-time/date-time/styles.js +22 -0
- package/build-module/date-time/date-time/styles.js.map +1 -0
- package/build-module/date-time/index.js +2 -82
- package/build-module/date-time/index.js.map +1 -1
- package/build-module/date-time/time/index.js +302 -0
- package/build-module/date-time/time/index.js.map +1 -0
- package/build-module/date-time/time/styles.js +118 -0
- package/build-module/date-time/time/styles.js.map +1 -0
- package/build-module/date-time/{timezone.js → time/timezone.js} +7 -5
- package/build-module/date-time/time/timezone.js.map +1 -0
- package/build-module/date-time/types.js +2 -0
- package/build-module/date-time/types.js.map +1 -0
- package/build-module/disabled/index.js +5 -76
- package/build-module/disabled/index.js.map +1 -1
- package/build-module/draggable/index.native.js +211 -0
- package/build-module/draggable/index.native.js.map +1 -0
- package/build-module/dropdown/index.js +9 -4
- 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/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 +11 -6
- package/build-module/input-control/index.js.map +1 -1
- package/build-module/input-control/input-field.js +1 -25
- package/build-module/input-control/input-field.js.map +1 -1
- package/build-module/input-control/reducer/reducer.js +38 -26
- package/build-module/input-control/reducer/reducer.js.map +1 -1
- package/build-module/input-control/reducer/state.js +0 -1
- package/build-module/input-control/reducer/state.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/input-control/utils.js +48 -2
- package/build-module/input-control/utils.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/palette-edit/index.js +37 -7
- package/build-module/palette-edit/index.js.map +1 -1
- package/build-module/popover/index.js +230 -323
- 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.native.js +1 -1
- package/build-module/sandbox/index.native.js.map +1 -1
- package/build-module/search-control/index.js +6 -7
- package/build-module/search-control/index.js.map +1 -1
- package/build-module/select-control/index.js +32 -4
- 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/spacer/hook.js +10 -2
- package/build-module/spacer/hook.js.map +1 -1
- package/build-module/surface/component.js +7 -7
- package/build-module/surface/component.js.map +1 -1
- package/build-module/surface/hook.js +8 -11
- package/build-module/surface/hook.js.map +1 -1
- package/build-module/surface/index.js.map +1 -1
- package/build-module/surface/styles.js +8 -48
- package/build-module/surface/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/textarea-control/index.js +36 -5
- package/build-module/textarea-control/index.js.map +1 -1
- package/build-module/textarea-control/styles/textarea-control-styles.js +3 -3
- package/build-module/textarea-control/styles/textarea-control-styles.js.map +1 -1
- package/build-module/textarea-control/types.js +2 -0
- package/build-module/textarea-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/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/hooks/index.js +0 -1
- package/build-module/utils/hooks/index.js.map +1 -1
- package/build-style/style-rtl.css +51 -358
- package/build-style/style.css +47 -361
- 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 +4 -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 +4 -3
- 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/card/types.d.ts +1 -1
- package/build-types/card/types.d.ts.map +1 -1
- 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/test/index.d.ts +2 -0
- package/build-types/checkbox-control/test/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 +1 -0
- package/build-types/color-palette/index.d.ts.map +1 -1
- package/build-types/color-palette/test/utils.d.ts +2 -0
- package/build-types/color-palette/test/utils.d.ts.map +1 -0
- package/build-types/color-picker/color-copy-button.d.ts +4 -0
- package/build-types/color-picker/color-copy-button.d.ts.map +1 -0
- package/build-types/color-picker/component.d.ts.map +1 -1
- package/build-types/color-picker/hex-input.d.ts.map +1 -1
- package/build-types/color-picker/styles.d.ts +4 -4
- package/build-types/color-picker/styles.d.ts.map +1 -1
- package/build-types/color-picker/types.d.ts +8 -0
- package/build-types/color-picker/types.d.ts.map +1 -1
- package/build-types/date-time/date/index.d.ts +25 -0
- package/build-types/date-time/date/index.d.ts.map +1 -0
- package/build-types/date-time/date/styles.d.ts +23 -0
- package/build-types/date-time/date/styles.d.ts.map +1 -0
- package/build-types/date-time/date/test/index.d.ts +2 -0
- package/build-types/date-time/date/test/index.d.ts.map +1 -0
- package/build-types/date-time/date/test/utils.d.ts +2 -0
- package/build-types/date-time/date/test/utils.d.ts.map +1 -0
- package/build-types/date-time/date/utils.d.ts +15 -0
- package/build-types/date-time/date/utils.d.ts.map +1 -0
- package/build-types/date-time/date-time/index.d.ts +33 -0
- package/build-types/date-time/date-time/index.d.ts.map +1 -0
- package/build-types/date-time/date-time/styles.d.ts +6 -0
- package/build-types/date-time/date-time/styles.d.ts.map +1 -0
- package/build-types/date-time/index.d.ts +9 -0
- package/build-types/date-time/index.d.ts.map +1 -0
- package/build-types/date-time/stories/date-time.d.ts +14 -0
- package/build-types/date-time/stories/date-time.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/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/time/index.d.ts +25 -0
- package/build-types/date-time/time/index.d.ts.map +1 -0
- package/build-types/date-time/time/styles.d.ts +111 -0
- package/build-types/date-time/time/styles.d.ts.map +1 -0
- package/build-types/date-time/time/test/index.d.ts +2 -0
- package/build-types/date-time/time/test/index.d.ts.map +1 -0
- package/build-types/date-time/time/timezone.d.ts +8 -0
- package/build-types/date-time/time/timezone.d.ts.map +1 -0
- package/build-types/date-time/types.d.ts +90 -0
- package/build-types/date-time/types.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 +4 -3
- package/build-types/input-control/index.d.ts.map +1 -1
- package/build-types/input-control/input-field.d.ts.map +1 -1
- package/build-types/input-control/reducer/reducer.d.ts +5 -3
- package/build-types/input-control/reducer/reducer.d.ts.map +1 -1
- package/build-types/input-control/reducer/state.d.ts +2 -2
- package/build-types/input-control/reducer/state.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 +6 -0
- package/build-types/input-control/types.d.ts.map +1 -1
- package/build-types/input-control/utils.d.ts +17 -0
- package/build-types/input-control/utils.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 +6 -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/surface/component.d.ts +3 -2
- package/build-types/surface/component.d.ts.map +1 -1
- package/build-types/surface/hook.d.ts +4 -4
- package/build-types/surface/hook.d.ts.map +1 -1
- package/build-types/surface/index.d.ts +2 -2
- package/build-types/surface/index.d.ts.map +1 -1
- package/build-types/surface/stories/index.d.ts +12 -0
- package/build-types/surface/stories/index.d.ts.map +1 -0
- package/build-types/surface/styles.d.ts +10 -21
- package/build-types/surface/styles.d.ts.map +1 -1
- package/build-types/surface/test/index.d.ts +2 -0
- package/build-types/{flyout/flyout → surface/test}/index.d.ts.map +1 -1
- package/build-types/surface/types.d.ts +1 -1
- package/build-types/surface/types.d.ts.map +1 -1
- package/build-types/text-control/index.d.ts +32 -0
- package/build-types/text-control/index.d.ts.map +1 -0
- package/build-types/text-control/stories/index.d.ts +13 -0
- package/build-types/text-control/stories/index.d.ts.map +1 -0
- package/build-types/text-control/types.d.ts +25 -0
- package/build-types/text-control/types.d.ts.map +1 -0
- package/build-types/textarea-control/index.d.ts +29 -0
- package/build-types/textarea-control/index.d.ts.map +1 -0
- package/build-types/textarea-control/stories/index.d.ts +12 -0
- package/build-types/textarea-control/stories/index.d.ts.map +1 -0
- package/build-types/textarea-control/styles/textarea-control-styles.d.ts +6 -0
- package/build-types/textarea-control/styles/textarea-control-styles.d.ts.map +1 -0
- package/build-types/textarea-control/types.d.ts +26 -0
- package/build-types/textarea-control/types.d.ts.map +1 -0
- 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/hooks/index.d.ts +0 -1
- package/package.json +20 -20
- package/src/alignment-matrix-control/index.js +4 -2
- package/src/angle-picker-control/angle-circle.js +3 -3
- package/src/autocomplete/autocompleter-ui.js +1 -1
- package/src/autocomplete/autocompleter-ui.native.js +2 -2
- package/src/autocomplete/index.js +21 -9
- 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/hook.ts +2 -2
- 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 +26 -7
- package/src/border-box-control/border-box-control-split-controls/hook.ts +18 -4
- package/src/border-box-control/border-box-control-visualizer/hook.ts +14 -6
- package/src/border-box-control/stories/index.js +1 -0
- package/src/border-box-control/styles.ts +20 -9
- 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 +13 -4
- 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/test/index.js +120 -109
- 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/card/types.ts +1 -1
- 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/test/__snapshots__/index.tsx.snap +42 -0
- package/src/checkbox-control/test/index.tsx +109 -0
- 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 +17 -17
- package/src/color-palette/index.native.js +3 -0
- package/src/color-palette/stories/index.js +25 -1
- package/src/color-palette/style.scss +3 -18
- package/src/color-palette/test/__snapshots__/index.js.snap +2 -3
- package/src/color-palette/test/utils.ts +24 -0
- package/src/color-picker/color-copy-button.tsx +76 -0
- package/src/color-picker/component.tsx +18 -38
- package/src/color-picker/hex-input.tsx +16 -0
- package/src/color-picker/styles.ts +5 -1
- package/src/color-picker/types.ts +9 -0
- package/src/confirm-dialog/stories/index.js +87 -99
- package/src/custom-gradient-picker/utils.js +1 -1
- package/src/date-time/README.md +29 -10
- package/src/date-time/{datepicker.scss → date/datepicker.scss} +0 -0
- package/src/date-time/{date.js → date/index.tsx} +76 -24
- package/src/date-time/date/style.scss +75 -0
- package/src/date-time/date/styles.ts +55 -0
- package/src/date-time/date/test/index.tsx +127 -0
- package/src/date-time/{test/utils.js → date/test/utils.ts} +1 -1
- package/src/date-time/date/utils.ts +20 -0
- package/src/date-time/date-time/index.tsx +217 -0
- package/src/date-time/date-time/styles.ts +8 -0
- package/src/date-time/index.ts +9 -0
- package/src/date-time/stories/date-time.tsx +75 -0
- package/src/date-time/stories/date.tsx +73 -0
- package/src/date-time/stories/time.tsx +51 -0
- package/src/date-time/stories/utils.ts +9 -0
- package/src/date-time/style.scss +1 -262
- package/src/date-time/time/index.tsx +356 -0
- package/src/date-time/time/styles.ts +119 -0
- package/src/date-time/{test/time.js → time/test/index.tsx} +119 -57
- package/src/date-time/{timezone.js → time/timezone.tsx} +9 -5
- package/src/date-time/types.ts +104 -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 +226 -0
- package/src/draggable/style.native.scss +3 -0
- package/src/draggable/test/index.native.js +130 -0
- package/src/dropdown/index.js +12 -3
- 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/index.js +0 -1
- package/src/index.native.js +1 -0
- package/src/input-control/README.md +1 -1
- package/src/input-control/index.tsx +11 -4
- package/src/input-control/input-field.tsx +10 -30
- package/src/input-control/reducer/reducer.ts +40 -26
- package/src/input-control/reducer/state.ts +2 -3
- package/src/input-control/stories/index.tsx +1 -1
- package/src/input-control/styles/input-control-styles.tsx +19 -5
- package/src/input-control/types.ts +6 -0
- package/src/input-control/utils.ts +55 -1
- 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/navigator/stories/index.js +16 -10
- 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 +256 -416
- package/src/popover/style.scss +20 -190
- package/src/popover/test/__snapshots__/index.js.snap +6 -18
- package/src/query-controls/README.md +1 -1
- package/src/resizable-box/resize-tooltip/utils.ts +4 -5
- package/src/sandbox/index.native.js +1 -1
- package/src/search-control/index.js +6 -7
- package/src/select-control/README.md +13 -2
- package/src/select-control/index.tsx +36 -30
- package/src/select-control/stories/index.tsx +90 -0
- package/src/select-control/styles/select-control-styles.ts +15 -11
- package/src/select-control/test/{select-control.js → select-control.tsx} +2 -2
- package/src/select-control/types.ts +66 -1
- package/src/slot-fill/README.md +1 -1
- package/src/spacer/hook.ts +13 -13
- package/src/surface/README.md +15 -15
- package/src/surface/{component.js → component.tsx} +13 -7
- package/src/surface/{hook.js → hook.ts} +13 -12
- package/src/surface/{index.js → index.ts} +0 -0
- package/src/surface/stories/index.tsx +40 -0
- package/src/surface/{styles.js → styles.ts} +15 -44
- package/src/surface/test/__snapshots__/{index.js.snap → index.tsx.snap} +0 -0
- package/src/surface/test/{index.js → index.tsx} +2 -1
- package/src/surface/types.ts +1 -1
- package/src/tab-panel/style.scss +1 -1
- 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/textarea-control/README.md +14 -20
- package/src/textarea-control/index.tsx +86 -0
- package/src/textarea-control/stories/index.tsx +58 -0
- package/src/textarea-control/styles/{textarea-control-styles.js → textarea-control-styles.ts} +0 -0
- package/src/textarea-control/types.ts +30 -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/tools-panel/test/__snapshots__/index.js.snap +1 -1
- 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/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/hooks/index.js +0 -1
- package/tsconfig.json +7 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/build/box-control/visualizer.js +0 -165
- package/build/box-control/visualizer.js.map +0 -1
- package/build/color-picker/color-display.js +0 -184
- package/build/color-picker/color-display.js.map +0 -1
- package/build/date-time/date.js.map +0 -1
- package/build/date-time/time.js +0 -287
- package/build/date-time/time.js.map +0 -1
- package/build/date-time/timezone.js.map +0 -1
- package/build/date-time/utils.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/utils/hooks/use-combined-ref.js +0 -32
- package/build/utils/hooks/use-combined-ref.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/color-picker/color-display.js +0 -170
- package/build-module/color-picker/color-display.js.map +0 -1
- package/build-module/date-time/date.js.map +0 -1
- package/build-module/date-time/time.js +0 -269
- package/build-module/date-time/time.js.map +0 -1
- package/build-module/date-time/timezone.js.map +0 -1
- package/build-module/date-time/utils.js +0 -20
- package/build-module/date-time/utils.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-module/utils/hooks/use-combined-ref.js +0 -28
- package/build-module/utils/hooks/use-combined-ref.js.map +0 -1
- package/build-types/color-picker/color-display.d.ts +0 -14
- package/build-types/color-picker/color-display.d.ts.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-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/utils/hooks/use-combined-ref.d.ts +0 -8
- package/build-types/utils/hooks/use-combined-ref.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/color-picker/color-display.tsx +0 -169
- package/src/date-time/index.js +0 -170
- 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/time.js +0 -310
- 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/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/surface/stories/index.js +0 -46
- package/src/text-control/index.js +0 -72
- package/src/text-control/stories/index.js +0 -46
- package/src/textarea-control/index.js +0 -45
- package/src/textarea-control/stories/index.js +0 -48
- package/src/utils/hooks/use-combined-ref.ts +0 -28
|
@@ -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 );
|