@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
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External dependencies
|
|
3
|
+
*/
|
|
4
|
+
import {
|
|
5
|
+
Gesture,
|
|
6
|
+
GestureDetector,
|
|
7
|
+
LongPressGestureHandler,
|
|
8
|
+
} from 'react-native-gesture-handler';
|
|
9
|
+
import Animated, {
|
|
10
|
+
useSharedValue,
|
|
11
|
+
runOnJS,
|
|
12
|
+
useAnimatedReaction,
|
|
13
|
+
useAnimatedGestureHandler,
|
|
14
|
+
} from 'react-native-reanimated';
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* WordPress dependencies
|
|
18
|
+
*/
|
|
19
|
+
import { createContext, useContext, useRef, useMemo } from '@wordpress/element';
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Internal dependencies
|
|
23
|
+
*/
|
|
24
|
+
import styles from './style.scss';
|
|
25
|
+
|
|
26
|
+
const Context = createContext( {} );
|
|
27
|
+
const { Provider } = Context;
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Draggable component.
|
|
31
|
+
*
|
|
32
|
+
* @param {Object} props Component props.
|
|
33
|
+
* @param {JSX.Element} props.children Children to be rendered.
|
|
34
|
+
* @param {Function} [props.onDragEnd] Callback when dragging ends.
|
|
35
|
+
* @param {Function} [props.onDragOver] Callback when dragging happens over an element.
|
|
36
|
+
* @param {Function} [props.onDragStart] Callback when dragging starts.
|
|
37
|
+
* @param {string} [props.testID] Id used for querying the pan gesture in tests.
|
|
38
|
+
*
|
|
39
|
+
* @return {JSX.Element} The component to be rendered.
|
|
40
|
+
*/
|
|
41
|
+
const Draggable = ( {
|
|
42
|
+
children,
|
|
43
|
+
onDragEnd,
|
|
44
|
+
onDragOver,
|
|
45
|
+
onDragStart,
|
|
46
|
+
testID,
|
|
47
|
+
} ) => {
|
|
48
|
+
const isDragging = useSharedValue( false );
|
|
49
|
+
const isPanActive = useSharedValue( false );
|
|
50
|
+
const draggingId = useSharedValue( '' );
|
|
51
|
+
const panGestureRef = useRef();
|
|
52
|
+
const currentFirstTouchId = useSharedValue( null );
|
|
53
|
+
|
|
54
|
+
const initialPosition = {
|
|
55
|
+
x: useSharedValue( 0 ),
|
|
56
|
+
y: useSharedValue( 0 ),
|
|
57
|
+
};
|
|
58
|
+
const lastPosition = {
|
|
59
|
+
x: useSharedValue( 0 ),
|
|
60
|
+
y: useSharedValue( 0 ),
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
useAnimatedReaction(
|
|
64
|
+
() => isDragging.value,
|
|
65
|
+
( result, previous ) => {
|
|
66
|
+
if ( result === previous || previous === null ) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
if ( result ) {
|
|
71
|
+
if ( onDragStart ) {
|
|
72
|
+
onDragStart( {
|
|
73
|
+
x: initialPosition.x.value,
|
|
74
|
+
y: initialPosition.y.value,
|
|
75
|
+
id: draggingId.value,
|
|
76
|
+
} );
|
|
77
|
+
}
|
|
78
|
+
} else if ( onDragEnd ) {
|
|
79
|
+
onDragEnd( {
|
|
80
|
+
x: lastPosition.x.value,
|
|
81
|
+
y: lastPosition.y.value,
|
|
82
|
+
id: draggingId.value,
|
|
83
|
+
} );
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
);
|
|
87
|
+
|
|
88
|
+
function getFirstTouchEvent( event ) {
|
|
89
|
+
'worklet';
|
|
90
|
+
|
|
91
|
+
return event.allTouches.find(
|
|
92
|
+
( touch ) => touch.id === currentFirstTouchId.value
|
|
93
|
+
);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
const panGesture = Gesture.Pan()
|
|
97
|
+
.manualActivation( true )
|
|
98
|
+
.onTouchesDown( ( event ) => {
|
|
99
|
+
if ( ! currentFirstTouchId.value ) {
|
|
100
|
+
const firstEvent = event.allTouches[ 0 ];
|
|
101
|
+
const { x = 0, y = 0 } = firstEvent;
|
|
102
|
+
|
|
103
|
+
currentFirstTouchId.value = firstEvent.id;
|
|
104
|
+
|
|
105
|
+
initialPosition.x.value = x;
|
|
106
|
+
initialPosition.y.value = y;
|
|
107
|
+
}
|
|
108
|
+
} )
|
|
109
|
+
.onTouchesMove( ( event, state ) => {
|
|
110
|
+
if ( ! isPanActive.value && isDragging.value ) {
|
|
111
|
+
isPanActive.value = true;
|
|
112
|
+
state.activate();
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
if ( isPanActive.value && isDragging.value ) {
|
|
116
|
+
const firstEvent = getFirstTouchEvent( event );
|
|
117
|
+
|
|
118
|
+
if ( ! firstEvent ) {
|
|
119
|
+
state.end();
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
lastPosition.x.value = firstEvent.x;
|
|
124
|
+
lastPosition.y.value = firstEvent.y;
|
|
125
|
+
|
|
126
|
+
if ( onDragOver ) {
|
|
127
|
+
onDragOver( firstEvent );
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
} )
|
|
131
|
+
.onTouchesCancelled( ( _event, state ) => {
|
|
132
|
+
state.end();
|
|
133
|
+
} )
|
|
134
|
+
.onEnd( () => {
|
|
135
|
+
currentFirstTouchId.value = null;
|
|
136
|
+
isPanActive.value = false;
|
|
137
|
+
isDragging.value = false;
|
|
138
|
+
} )
|
|
139
|
+
.withRef( panGestureRef )
|
|
140
|
+
.shouldCancelWhenOutside( false )
|
|
141
|
+
.withTestId( testID );
|
|
142
|
+
|
|
143
|
+
const providerValue = useMemo( () => {
|
|
144
|
+
return { panGestureRef, isDragging, isPanActive, draggingId };
|
|
145
|
+
}, [] );
|
|
146
|
+
|
|
147
|
+
return (
|
|
148
|
+
<GestureDetector gesture={ panGesture }>
|
|
149
|
+
<Animated.View style={ styles.draggable__container }>
|
|
150
|
+
<Provider value={ providerValue }>{ children }</Provider>
|
|
151
|
+
</Animated.View>
|
|
152
|
+
</GestureDetector>
|
|
153
|
+
);
|
|
154
|
+
};
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* Draggable trigger component.
|
|
158
|
+
*
|
|
159
|
+
* This component acts as the trigger for the dragging functionality.
|
|
160
|
+
*
|
|
161
|
+
* @param {Object} props Component props.
|
|
162
|
+
* @param {JSX.Element} props.children Children to be rendered.
|
|
163
|
+
* @param {*} props.id Identifier passed within the event callbacks.
|
|
164
|
+
* @param {boolean} [props.enabled] Enables the long-press gesture.
|
|
165
|
+
* @param {number} [props.maxDistance] Maximum distance, that defines how far the finger is allowed to travel during a long press gesture.
|
|
166
|
+
* @param {number} [props.minDuration] Minimum time, that a finger must remain pressed on the corresponding view.
|
|
167
|
+
* @param {Function} [props.onLongPress] Callback when long-press gesture is triggered over an element.
|
|
168
|
+
* @param {Function} [props.onLongPressEnd] Callback when long-press gesture ends.
|
|
169
|
+
* @param {string} [props.testID] Id used for querying the long-press gesture handler in tests.
|
|
170
|
+
*
|
|
171
|
+
* @return {JSX.Element} The component to be rendered.
|
|
172
|
+
*/
|
|
173
|
+
const DraggableTrigger = ( {
|
|
174
|
+
children,
|
|
175
|
+
enabled = true,
|
|
176
|
+
id,
|
|
177
|
+
maxDistance = 1000,
|
|
178
|
+
minDuration = 500,
|
|
179
|
+
onLongPress,
|
|
180
|
+
onLongPressEnd,
|
|
181
|
+
testID,
|
|
182
|
+
} ) => {
|
|
183
|
+
const { panGestureRef, isDragging, isPanActive, draggingId } = useContext(
|
|
184
|
+
Context
|
|
185
|
+
);
|
|
186
|
+
|
|
187
|
+
const gestureHandler = useAnimatedGestureHandler( {
|
|
188
|
+
onActive: () => {
|
|
189
|
+
if ( isDragging.value ) {
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
draggingId.value = id;
|
|
194
|
+
isDragging.value = true;
|
|
195
|
+
if ( onLongPress ) {
|
|
196
|
+
runOnJS( onLongPress )( id );
|
|
197
|
+
}
|
|
198
|
+
},
|
|
199
|
+
onEnd: () => {
|
|
200
|
+
if ( ! isPanActive.value ) {
|
|
201
|
+
isDragging.value = false;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
if ( onLongPressEnd ) {
|
|
205
|
+
runOnJS( onLongPressEnd )( id );
|
|
206
|
+
}
|
|
207
|
+
},
|
|
208
|
+
} );
|
|
209
|
+
|
|
210
|
+
return (
|
|
211
|
+
<LongPressGestureHandler
|
|
212
|
+
enabled={ enabled }
|
|
213
|
+
minDurationMs={ minDuration }
|
|
214
|
+
maxDist={ maxDistance }
|
|
215
|
+
simultaneousHandlers={ panGestureRef }
|
|
216
|
+
shouldCancelWhenOutside={ false }
|
|
217
|
+
onGestureEvent={ gestureHandler }
|
|
218
|
+
testID={ testID }
|
|
219
|
+
>
|
|
220
|
+
{ children }
|
|
221
|
+
</LongPressGestureHandler>
|
|
222
|
+
);
|
|
223
|
+
};
|
|
224
|
+
|
|
225
|
+
export { DraggableTrigger };
|
|
226
|
+
export default Draggable;
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { render } from 'test/helpers';
|
|
5
|
+
import {
|
|
6
|
+
fireGestureHandler,
|
|
7
|
+
getByGestureTestId,
|
|
8
|
+
} from 'react-native-gesture-handler/jest-utils';
|
|
9
|
+
import { State } from 'react-native-gesture-handler';
|
|
10
|
+
import Animated from 'react-native-reanimated';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* WordPress dependencies
|
|
14
|
+
*/
|
|
15
|
+
import { Draggable, DraggableTrigger } from '@wordpress/components';
|
|
16
|
+
|
|
17
|
+
// Touch event type constants have been extracted from original source code, as they are not exported in the package.
|
|
18
|
+
// Reference: https://github.com/software-mansion/react-native-gesture-handler/blob/90895e5f38616a6be256fceec6c6a391cd9ad7c7/src/TouchEventType.ts
|
|
19
|
+
const TouchEventType = {
|
|
20
|
+
UNDETERMINED: 0,
|
|
21
|
+
TOUCHES_DOWN: 1,
|
|
22
|
+
TOUCHES_MOVE: 2,
|
|
23
|
+
TOUCHES_UP: 3,
|
|
24
|
+
TOUCHES_CANCELLED: 4,
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
// Reanimated uses "requestAnimationFrame" for notifying shared value updates when using "useAnimatedReaction" hook.
|
|
28
|
+
// For testing, we mock the "requestAnimationFrame" so it calls the callback passed instantly.
|
|
29
|
+
let requestAnimationFrameCopy;
|
|
30
|
+
beforeEach( () => {
|
|
31
|
+
requestAnimationFrameCopy = global.requestAnimationFrame;
|
|
32
|
+
global.requestAnimationFrame = ( callback ) => callback();
|
|
33
|
+
} );
|
|
34
|
+
afterEach( () => {
|
|
35
|
+
global.requestAnimationFrame = requestAnimationFrameCopy;
|
|
36
|
+
} );
|
|
37
|
+
|
|
38
|
+
describe( 'Draggable', () => {
|
|
39
|
+
it( 'triggers onLongPress handler', () => {
|
|
40
|
+
const triggerId = 'trigger-id';
|
|
41
|
+
const onLongPress = jest.fn();
|
|
42
|
+
const { getByTestId } = render(
|
|
43
|
+
<Draggable>
|
|
44
|
+
<DraggableTrigger
|
|
45
|
+
id={ triggerId }
|
|
46
|
+
enabled={ true }
|
|
47
|
+
minDuration={ 500 }
|
|
48
|
+
onLongPress={ onLongPress }
|
|
49
|
+
testID="draggableTrigger"
|
|
50
|
+
>
|
|
51
|
+
<Animated.View />
|
|
52
|
+
</DraggableTrigger>
|
|
53
|
+
</Draggable>
|
|
54
|
+
);
|
|
55
|
+
|
|
56
|
+
const draggableTrigger = getByTestId( 'draggableTrigger' );
|
|
57
|
+
fireGestureHandler( draggableTrigger, [
|
|
58
|
+
{ oldState: State.BEGAN, state: State.ACTIVE },
|
|
59
|
+
{ state: State.ACTIVE },
|
|
60
|
+
] );
|
|
61
|
+
|
|
62
|
+
expect( onLongPress ).toBeCalledTimes( 1 );
|
|
63
|
+
expect( onLongPress ).toHaveBeenCalledWith( triggerId );
|
|
64
|
+
} );
|
|
65
|
+
|
|
66
|
+
it( 'triggers dragging handlers', () => {
|
|
67
|
+
const triggerId = 'trigger-id';
|
|
68
|
+
const onDragStart = jest.fn();
|
|
69
|
+
const onDragOver = jest.fn();
|
|
70
|
+
const onDragEnd = jest.fn();
|
|
71
|
+
const { getByTestId } = render(
|
|
72
|
+
<Draggable
|
|
73
|
+
onDragStart={ onDragStart }
|
|
74
|
+
onDragOver={ onDragOver }
|
|
75
|
+
onDragEnd={ onDragEnd }
|
|
76
|
+
testID="draggable"
|
|
77
|
+
>
|
|
78
|
+
<DraggableTrigger id={ triggerId } testID="draggableTrigger">
|
|
79
|
+
<Animated.View />
|
|
80
|
+
</DraggableTrigger>
|
|
81
|
+
</Draggable>
|
|
82
|
+
);
|
|
83
|
+
|
|
84
|
+
const draggableTrigger = getByTestId( 'draggableTrigger' );
|
|
85
|
+
const draggable = getByGestureTestId( 'draggable' );
|
|
86
|
+
const touchEventId = 1;
|
|
87
|
+
const touchEvents = [
|
|
88
|
+
{ id: touchEventId, x: 0, y: 0 },
|
|
89
|
+
{ id: touchEventId, x: 100, y: 100 },
|
|
90
|
+
{ id: touchEventId, x: 50, y: 50 },
|
|
91
|
+
];
|
|
92
|
+
fireGestureHandler( draggableTrigger, [
|
|
93
|
+
{ oldState: State.BEGAN, state: State.ACTIVE },
|
|
94
|
+
{ state: State.ACTIVE },
|
|
95
|
+
] );
|
|
96
|
+
fireGestureHandler( draggable, [
|
|
97
|
+
// TOUCHES_DOWN event is only received on ACTIVE state, so we have to fire it manually.
|
|
98
|
+
{ oldState: State.BEGAN, state: State.ACTIVE },
|
|
99
|
+
{
|
|
100
|
+
allTouches: [ touchEvents[ 0 ] ],
|
|
101
|
+
eventType: TouchEventType.TOUCHES_DOWN,
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
allTouches: [ touchEvents[ 1 ] ],
|
|
105
|
+
eventType: TouchEventType.TOUCHES_MOVE,
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
allTouches: [ touchEvents[ 2 ] ],
|
|
109
|
+
eventType: TouchEventType.TOUCHES_MOVE,
|
|
110
|
+
},
|
|
111
|
+
{ state: State.END },
|
|
112
|
+
] );
|
|
113
|
+
|
|
114
|
+
expect( onDragStart ).toBeCalledTimes( 1 );
|
|
115
|
+
expect( onDragStart ).toHaveBeenCalledWith( {
|
|
116
|
+
id: triggerId,
|
|
117
|
+
x: touchEvents[ 0 ].x,
|
|
118
|
+
y: touchEvents[ 0 ].y,
|
|
119
|
+
} );
|
|
120
|
+
expect( onDragOver ).toBeCalledTimes( 2 );
|
|
121
|
+
expect( onDragOver ).toHaveBeenNthCalledWith( 1, touchEvents[ 1 ] );
|
|
122
|
+
expect( onDragOver ).toHaveBeenNthCalledWith( 2, touchEvents[ 2 ] );
|
|
123
|
+
expect( onDragEnd ).toBeCalledTimes( 1 );
|
|
124
|
+
expect( onDragEnd ).toHaveBeenCalledWith( {
|
|
125
|
+
id: triggerId,
|
|
126
|
+
x: touchEvents[ 2 ].x,
|
|
127
|
+
y: touchEvents[ 2 ].y,
|
|
128
|
+
} );
|
|
129
|
+
} );
|
|
130
|
+
} );
|
package/src/dropdown/index.js
CHANGED
|
@@ -31,12 +31,12 @@ export default function Dropdown( props ) {
|
|
|
31
31
|
const {
|
|
32
32
|
renderContent,
|
|
33
33
|
renderToggle,
|
|
34
|
-
position = 'bottom right',
|
|
35
34
|
className,
|
|
36
35
|
contentClassName,
|
|
37
36
|
expandOnMobile,
|
|
38
37
|
headerTitle,
|
|
39
38
|
focusOnMount,
|
|
39
|
+
position,
|
|
40
40
|
popoverProps,
|
|
41
41
|
onClose,
|
|
42
42
|
onToggle,
|
|
@@ -82,6 +82,10 @@ export default function Dropdown( props ) {
|
|
|
82
82
|
}
|
|
83
83
|
|
|
84
84
|
const args = { isOpen, onToggle: toggle, onClose: close };
|
|
85
|
+
const hasAnchorRef =
|
|
86
|
+
!! popoverProps?.anchorRef ||
|
|
87
|
+
!! popoverProps?.getAnchorRect ||
|
|
88
|
+
!! popoverProps?.anchorRect;
|
|
85
89
|
|
|
86
90
|
return (
|
|
87
91
|
<div
|
|
@@ -101,10 +105,15 @@ export default function Dropdown( props ) {
|
|
|
101
105
|
expandOnMobile={ expandOnMobile }
|
|
102
106
|
headerTitle={ headerTitle }
|
|
103
107
|
focusOnMount={ focusOnMount }
|
|
104
|
-
|
|
108
|
+
// This value is used to ensure that the dropdowns
|
|
109
|
+
// align with the editor header by default.
|
|
110
|
+
offset={ 13 }
|
|
105
111
|
anchorRef={
|
|
106
|
-
|
|
112
|
+
! hasAnchorRef
|
|
113
|
+
? containerRef?.current?.firstChild // Anchor to the rendered toggle.
|
|
114
|
+
: undefined
|
|
107
115
|
}
|
|
116
|
+
{ ...popoverProps }
|
|
108
117
|
className={ classnames(
|
|
109
118
|
'components-dropdown__content',
|
|
110
119
|
popoverProps ? popoverProps.className : undefined,
|
package/src/dropdown/style.scss
CHANGED
|
@@ -105,7 +105,7 @@ function FocalPointPicker( props ) {
|
|
|
105
105
|
// coordinates to workaround a bug affecting Android's PanResponder.
|
|
106
106
|
// Specifically, dragging the handle outside the bounds of the image
|
|
107
107
|
// results in inaccurate locationX and locationY coordinates to be
|
|
108
|
-
// reported. https://
|
|
108
|
+
// reported. https://github.com/facebook/react-native/issues/15290#issuecomment-435494944
|
|
109
109
|
const x = pageX - locationPageOffsetX;
|
|
110
110
|
const y = pageY - locationPageOffsetY;
|
|
111
111
|
onChange( {
|
|
@@ -116,7 +116,7 @@ function FocalPointPicker( props ) {
|
|
|
116
116
|
} );
|
|
117
117
|
// Slider (child of RangeCell) is uncontrolled, so we must increment a
|
|
118
118
|
// key to re-mount and sync the pan gesture values to the sliders
|
|
119
|
-
// https://
|
|
119
|
+
// https://github.com/callstack/react-native-slider/tree/v3.0.3#value
|
|
120
120
|
setSliderKey( ( prevState ) => prevState + 1 );
|
|
121
121
|
},
|
|
122
122
|
} ),
|
|
@@ -193,7 +193,7 @@ function FocalPointPicker( props ) {
|
|
|
193
193
|
setVideoNaturalSize( { height, width } );
|
|
194
194
|
setDisplayPlaceholder( false );
|
|
195
195
|
// Avoid invisible, paused video on Android, presumably related to
|
|
196
|
-
// https://
|
|
196
|
+
// https://github.com/react-native-video/react-native-video/issues/1979
|
|
197
197
|
videoRef?.current.seek( 0 );
|
|
198
198
|
};
|
|
199
199
|
const onXCoordinateChange = ( x ) =>
|
|
@@ -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
|
/**
|
|
@@ -14,16 +14,6 @@ import FormFileUpload from '../';
|
|
|
14
14
|
*/
|
|
15
15
|
const { File } = window;
|
|
16
16
|
|
|
17
|
-
function render( jsx ) {
|
|
18
|
-
return {
|
|
19
|
-
user: userEvent.setup( {
|
|
20
|
-
// Avoids timeout errors (https://github.com/testing-library/user-event/issues/565#issuecomment-1064579531).
|
|
21
|
-
delay: null,
|
|
22
|
-
} ),
|
|
23
|
-
...RTLrender( jsx ),
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
|
|
27
17
|
// @testing-library/user-event considers changing <input type="file"> to a string as a change, but it do not occur on real browsers, so the comparisons will be against this result
|
|
28
18
|
const fakePath = expect.objectContaining( {
|
|
29
19
|
target: expect.objectContaining( {
|
|
@@ -32,6 +22,15 @@ const fakePath = expect.objectContaining( {
|
|
|
32
22
|
} );
|
|
33
23
|
|
|
34
24
|
describe( 'FormFileUpload', () => {
|
|
25
|
+
beforeEach( () => {
|
|
26
|
+
jest.useFakeTimers();
|
|
27
|
+
} );
|
|
28
|
+
|
|
29
|
+
afterEach( () => {
|
|
30
|
+
jest.runOnlyPendingTimers();
|
|
31
|
+
jest.useRealTimers();
|
|
32
|
+
} );
|
|
33
|
+
|
|
35
34
|
it( 'should show an Icon Button and a hidden input', () => {
|
|
36
35
|
render( <FormFileUpload>My Upload Button</FormFileUpload> );
|
|
37
36
|
|
|
@@ -42,9 +41,13 @@ describe( 'FormFileUpload', () => {
|
|
|
42
41
|
} );
|
|
43
42
|
|
|
44
43
|
it( 'should not fire a change event after selecting the same file', async () => {
|
|
44
|
+
const user = userEvent.setup( {
|
|
45
|
+
advanceTimers: jest.advanceTimersByTime,
|
|
46
|
+
} );
|
|
47
|
+
|
|
45
48
|
const onChange = jest.fn();
|
|
46
49
|
|
|
47
|
-
|
|
50
|
+
render(
|
|
48
51
|
<FormFileUpload onChange={ onChange }>
|
|
49
52
|
My Upload Button
|
|
50
53
|
</FormFileUpload>
|
|
@@ -65,9 +68,13 @@ describe( 'FormFileUpload', () => {
|
|
|
65
68
|
} );
|
|
66
69
|
|
|
67
70
|
it( 'should fire a change event after selecting the same file if the value was reset in between', async () => {
|
|
71
|
+
const user = userEvent.setup( {
|
|
72
|
+
advanceTimers: jest.advanceTimersByTime,
|
|
73
|
+
} );
|
|
74
|
+
|
|
68
75
|
const onChange = jest.fn();
|
|
69
76
|
|
|
70
|
-
|
|
77
|
+
render(
|
|
71
78
|
<FormFileUpload
|
|
72
79
|
onClick={ jest.fn( ( e ) => ( e.target.value = '' ) ) }
|
|
73
80
|
onChange={ onChange }
|
package/src/index.js
CHANGED
|
@@ -71,7 +71,6 @@ export { DuotoneSwatch, DuotonePicker } from './duotone-picker';
|
|
|
71
71
|
export { Elevation as __experimentalElevation } from './elevation';
|
|
72
72
|
export { default as ExternalLink } from './external-link';
|
|
73
73
|
export { Flex, FlexBlock, FlexItem } from './flex';
|
|
74
|
-
export { Flyout as __experimentalFlyout } from './flyout';
|
|
75
74
|
export { default as FocalPointPicker } from './focal-point-picker';
|
|
76
75
|
export { default as FocusableIframe } from './focusable-iframe';
|
|
77
76
|
export { default as FontSizePicker } from './font-size-picker';
|
package/src/index.native.js
CHANGED
|
@@ -61,6 +61,7 @@ export {
|
|
|
61
61
|
filterUnitsWithSettings as filterUnitsWithSettings,
|
|
62
62
|
} from './unit-control/utils';
|
|
63
63
|
export { default as Disabled } from './disabled';
|
|
64
|
+
export { default as Draggable, DraggableTrigger } from './draggable';
|
|
64
65
|
|
|
65
66
|
// Higher-Order Components.
|
|
66
67
|
export { default as withConstrainedTabbing } from './higher-order/with-constrained-tabbing';
|
|
@@ -17,6 +17,7 @@ import { useState, forwardRef } from '@wordpress/element';
|
|
|
17
17
|
import InputBase from './input-base';
|
|
18
18
|
import InputField from './input-field';
|
|
19
19
|
import type { InputControlProps } from './types';
|
|
20
|
+
import { useDraft } from './utils';
|
|
20
21
|
|
|
21
22
|
function useUniqueId( idProp?: string ) {
|
|
22
23
|
const instanceId = useInstanceId( InputControl );
|
|
@@ -52,6 +53,12 @@ export function UnforwardedInputControl(
|
|
|
52
53
|
const id = useUniqueId( idProp );
|
|
53
54
|
const classes = classNames( 'components-input-control', className );
|
|
54
55
|
|
|
56
|
+
const draftHookProps = useDraft( {
|
|
57
|
+
value,
|
|
58
|
+
onBlur: props.onBlur,
|
|
59
|
+
onChange,
|
|
60
|
+
} );
|
|
61
|
+
|
|
55
62
|
return (
|
|
56
63
|
<InputBase
|
|
57
64
|
__unstableInputWidth={ __unstableInputWidth }
|
|
@@ -75,14 +82,13 @@ export function UnforwardedInputControl(
|
|
|
75
82
|
id={ id }
|
|
76
83
|
isFocused={ isFocused }
|
|
77
84
|
isPressEnterToChange={ isPressEnterToChange }
|
|
78
|
-
onChange={ onChange }
|
|
79
85
|
onKeyDown={ onKeyDown }
|
|
80
86
|
onValidate={ onValidate }
|
|
81
87
|
ref={ ref }
|
|
82
88
|
setIsFocused={ setIsFocused }
|
|
83
89
|
size={ size }
|
|
84
90
|
stateReducer={ stateReducer }
|
|
85
|
-
|
|
91
|
+
{ ...draftHookProps }
|
|
86
92
|
/>
|
|
87
93
|
</InputBase>
|
|
88
94
|
);
|
|
@@ -92,7 +98,7 @@ export function UnforwardedInputControl(
|
|
|
92
98
|
* InputControl components let users enter and edit text. This is an experimental component
|
|
93
99
|
* intended to (in time) merge with or replace `TextControl`.
|
|
94
100
|
*
|
|
95
|
-
*
|
|
101
|
+
* ```jsx
|
|
96
102
|
* import { __experimentalInputControl as InputControl } from '@wordpress/components';
|
|
97
103
|
* import { useState } from '@wordpress/compose';
|
|
98
104
|
*
|
|
@@ -102,10 +108,11 @@ export function UnforwardedInputControl(
|
|
|
102
108
|
* return (
|
|
103
109
|
* <InputControl
|
|
104
110
|
* value={ value }
|
|
105
|
-
* onChange={ ( nextValue ) => setValue( nextValue ) }
|
|
111
|
+
* onChange={ ( nextValue ) => setValue( nextValue ?? '' ) }
|
|
106
112
|
* />
|
|
107
113
|
* );
|
|
108
114
|
* };
|
|
115
|
+
* ```
|
|
109
116
|
*/
|
|
110
117
|
export const InputControl = forwardRef( UnforwardedInputControl );
|
|
111
118
|
|
|
@@ -24,7 +24,6 @@ import type { WordPressComponentProps } from '../ui/context';
|
|
|
24
24
|
import { useDragCursor } from './utils';
|
|
25
25
|
import { Input } from './styles/input-control-styles';
|
|
26
26
|
import { useInputControlStateReducer } from './reducer/reducer';
|
|
27
|
-
import { useUpdateEffect } from '../utils';
|
|
28
27
|
import type { InputFieldProps } from './types';
|
|
29
28
|
|
|
30
29
|
function InputField(
|
|
@@ -67,40 +66,21 @@ function InputField(
|
|
|
67
66
|
pressEnter,
|
|
68
67
|
pressUp,
|
|
69
68
|
reset,
|
|
70
|
-
} = useInputControlStateReducer(
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
69
|
+
} = useInputControlStateReducer(
|
|
70
|
+
stateReducer,
|
|
71
|
+
{
|
|
72
|
+
isDragEnabled,
|
|
73
|
+
value: valueProp,
|
|
74
|
+
isPressEnterToChange,
|
|
75
|
+
},
|
|
76
|
+
onChange
|
|
77
|
+
);
|
|
75
78
|
|
|
76
|
-
const {
|
|
79
|
+
const { value, isDragging, isDirty } = state;
|
|
77
80
|
const wasDirtyOnBlur = useRef( false );
|
|
78
81
|
|
|
79
82
|
const dragCursor = useDragCursor( isDragging, dragDirection );
|
|
80
83
|
|
|
81
|
-
/*
|
|
82
|
-
* Handles synchronization of external and internal value state.
|
|
83
|
-
* If not focused and did not hold a dirty value[1] on blur
|
|
84
|
-
* updates the value from the props. Otherwise if not holding
|
|
85
|
-
* a dirty value[1] propagates the value and event through onChange.
|
|
86
|
-
* [1] value is only made dirty if isPressEnterToChange is true
|
|
87
|
-
*/
|
|
88
|
-
useUpdateEffect( () => {
|
|
89
|
-
if ( valueProp === value ) {
|
|
90
|
-
return;
|
|
91
|
-
}
|
|
92
|
-
if ( ! isFocused && ! wasDirtyOnBlur.current ) {
|
|
93
|
-
commit( valueProp, _event as SyntheticEvent );
|
|
94
|
-
} else if ( ! isDirty ) {
|
|
95
|
-
onChange( value, {
|
|
96
|
-
event: _event as
|
|
97
|
-
| ChangeEvent< HTMLInputElement >
|
|
98
|
-
| PointerEvent< HTMLInputElement >,
|
|
99
|
-
} );
|
|
100
|
-
wasDirtyOnBlur.current = false;
|
|
101
|
-
}
|
|
102
|
-
}, [ value, isDirty, isFocused, valueProp ] );
|
|
103
|
-
|
|
104
84
|
const handleOnBlur = ( event: FocusEvent< HTMLInputElement > ) => {
|
|
105
85
|
onBlur( event );
|
|
106
86
|
setIsFocused?.( false );
|