@wordpress/components 21.3.0 → 22.0.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 +65 -1
- package/build/angle-picker-control/index.js +1 -1
- package/build/angle-picker-control/index.js.map +1 -1
- package/build/autocomplete/autocompleter-ui.js +28 -2
- package/build/autocomplete/autocompleter-ui.js.map +1 -1
- package/build/border-box-control/border-box-control/component.js +63 -15
- package/build/border-box-control/border-box-control/component.js.map +1 -1
- package/build/border-box-control/border-box-control/hook.js +7 -3
- 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 -3
- 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 +3 -3
- 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 +8 -11
- 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 +3 -7
- package/build/border-box-control/border-box-control-visualizer/hook.js.map +1 -1
- package/build/border-box-control/styles.js +34 -34
- package/build/border-box-control/styles.js.map +1 -1
- package/build/border-control/border-control/component.js +5 -4
- package/build/border-control/border-control/component.js.map +1 -1
- package/build/border-control/border-control/hook.js +12 -5
- package/build/border-control/border-control/hook.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 +19 -34
- package/build/border-control/styles.js.map +1 -1
- package/build/box-control/index.js +6 -2
- package/build/box-control/index.js.map +1 -1
- package/build/circular-option-picker/index.js +14 -14
- package/build/circular-option-picker/index.js.map +1 -1
- package/build/color-palette/index.js +83 -30
- package/build/color-palette/index.js.map +1 -1
- package/build/color-palette/styles.js +3 -3
- package/build/color-palette/styles.js.map +1 -1
- package/build/color-palette/types.js +6 -0
- package/build/color-palette/types.js.map +1 -0
- package/build/color-picker/input-with-slider.js +1 -1
- package/build/color-picker/input-with-slider.js.map +1 -1
- package/build/custom-gradient-picker/gradient-bar/index.js +1 -3
- package/build/custom-gradient-picker/gradient-bar/index.js.map +1 -1
- package/build/custom-select-control/index.js +8 -4
- package/build/custom-select-control/index.js.map +1 -1
- package/build/date-time/date-time/index.js +2 -0
- package/build/date-time/date-time/index.js.map +1 -1
- package/build/date-time/time/index.js +4 -4
- package/build/date-time/time/index.js.map +1 -1
- package/build/disabled/index.js +8 -1
- package/build/disabled/index.js.map +1 -1
- package/build/external-link/index.js +13 -2
- package/build/external-link/index.js.map +1 -1
- package/build/focusable-iframe/index.js +0 -1
- package/build/focusable-iframe/index.js.map +1 -1
- package/build/font-size-picker/index.js +61 -48
- package/build/font-size-picker/index.js.map +1 -1
- package/build/font-size-picker/utils.js +0 -21
- package/build/font-size-picker/utils.js.map +1 -1
- package/build/form-file-upload/index.js.map +1 -1
- package/build/higher-order/with-filters/index.js +1 -7
- package/build/higher-order/with-filters/index.js.map +1 -1
- package/build/index.js +7 -1
- package/build/index.js.map +1 -1
- package/build/input-control/index.js +2 -0
- package/build/input-control/index.js.map +1 -1
- package/build/input-control/input-base.js +1 -1
- package/build/input-control/input-base.js.map +1 -1
- package/build/input-control/styles/input-control-styles.js +21 -21
- package/build/input-control/styles/input-control-styles.js.map +1 -1
- package/build/isolated-event-container/index.js +5 -9
- package/build/isolated-event-container/index.js.map +1 -1
- package/build/item-group/styles.js +10 -10
- package/build/item-group/styles.js.map +1 -1
- package/build/navigator/navigator-screen/component.js +20 -14
- package/build/navigator/navigator-screen/component.js.map +1 -1
- package/build/number-control/index.js +82 -22
- package/build/number-control/index.js.map +1 -1
- package/build/number-control/styles/number-control-styles.js +36 -6
- package/build/number-control/styles/number-control-styles.js.map +1 -1
- package/build/popover/index.js +15 -29
- package/build/popover/index.js.map +1 -1
- package/build/radio-group/index.js +7 -1
- package/build/radio-group/index.js.map +1 -1
- package/build/{radio → radio-group/radio}/index.js +7 -1
- package/build/radio-group/radio/index.js.map +1 -0
- package/build/{radio-context → radio-group/radio-context}/index.js +0 -0
- package/build/radio-group/radio-context/index.js.map +1 -0
- package/build/slot-fill/bubbles-virtually/fill.js +9 -5
- package/build/slot-fill/bubbles-virtually/fill.js.map +1 -1
- package/build/slot-fill/bubbles-virtually/slot.js +13 -8
- package/build/slot-fill/bubbles-virtually/slot.js.map +1 -1
- package/build/slot-fill/bubbles-virtually/use-slot.js +15 -9
- package/build/slot-fill/bubbles-virtually/use-slot.js.map +1 -1
- package/build/slot-fill/fill.js +12 -4
- package/build/slot-fill/fill.js.map +1 -1
- package/build/slot-fill/use-slot.js +3 -1
- package/build/slot-fill/use-slot.js.map +1 -1
- package/build/snackbar/index.js +1 -1
- package/build/snackbar/index.js.map +1 -1
- package/build/tab-panel/index.js +2 -6
- package/build/tab-panel/index.js.map +1 -1
- package/build/text-control/index.js +0 -2
- package/build/text-control/index.js.map +1 -1
- package/build/toggle-control/index.js +15 -3
- package/build/toggle-control/index.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control/as-button-group.js +90 -0
- package/build/toggle-group-control/toggle-group-control/as-button-group.js.map +1 -0
- package/build/toggle-group-control/toggle-group-control/as-radio-group.js +90 -0
- package/build/toggle-group-control/toggle-group-control/as-radio-group.js.map +1 -0
- package/build/toggle-group-control/toggle-group-control/component.js +21 -50
- package/build/toggle-group-control/toggle-group-control/component.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control/styles.js +8 -8
- package/build/toggle-group-control/toggle-group-control/styles.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control-option-base/component.js +39 -17
- package/build/toggle-group-control/toggle-group-control-option-base/component.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control-option-base/styles.js +23 -23
- package/build/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -1
- package/build/toolbar-dropdown-menu/index.js +1 -1
- package/build/toolbar-dropdown-menu/index.js.map +1 -1
- package/build/ui/context/context-system-provider.js +9 -22
- package/build/ui/context/context-system-provider.js.map +1 -1
- package/build/unit-control/index.js +7 -9
- package/build/unit-control/index.js.map +1 -1
- package/build/unit-control/styles/unit-control-styles.js +15 -25
- package/build/unit-control/styles/unit-control-styles.js.map +1 -1
- package/build/utils/config-values.js +0 -1
- package/build/utils/config-values.js.map +1 -1
- package/build/utils/hooks/use-update-effect.js +5 -1
- package/build/utils/hooks/use-update-effect.js.map +1 -1
- package/build-module/angle-picker-control/index.js +1 -1
- package/build-module/angle-picker-control/index.js.map +1 -1
- package/build-module/autocomplete/autocompleter-ui.js +29 -3
- package/build-module/autocomplete/autocompleter-ui.js.map +1 -1
- package/build-module/border-box-control/border-box-control/component.js +61 -13
- 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 +7 -3
- 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 -3
- 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 +3 -3
- 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 +9 -10
- 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 +4 -6
- package/build-module/border-box-control/border-box-control-visualizer/hook.js.map +1 -1
- package/build-module/border-box-control/styles.js +26 -28
- package/build-module/border-box-control/styles.js.map +1 -1
- package/build-module/border-control/border-control/component.js +5 -4
- package/build-module/border-control/border-control/component.js.map +1 -1
- package/build-module/border-control/border-control/hook.js +12 -5
- package/build-module/border-control/border-control/hook.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 +20 -36
- package/build-module/border-control/styles.js.map +1 -1
- package/build-module/box-control/index.js +6 -2
- package/build-module/box-control/index.js.map +1 -1
- package/build-module/circular-option-picker/index.js +14 -14
- package/build-module/circular-option-picker/index.js.map +1 -1
- package/build-module/color-palette/index.js +81 -28
- package/build-module/color-palette/index.js.map +1 -1
- package/build-module/color-palette/styles.js +3 -3
- package/build-module/color-palette/styles.js.map +1 -1
- package/build-module/color-palette/types.js +2 -0
- package/build-module/color-palette/types.js.map +1 -0
- package/build-module/color-picker/input-with-slider.js +1 -1
- package/build-module/color-picker/input-with-slider.js.map +1 -1
- package/build-module/custom-gradient-picker/gradient-bar/index.js +1 -2
- package/build-module/custom-gradient-picker/gradient-bar/index.js.map +1 -1
- package/build-module/custom-select-control/index.js +8 -4
- package/build-module/custom-select-control/index.js.map +1 -1
- package/build-module/date-time/date-time/index.js +2 -0
- package/build-module/date-time/date-time/index.js.map +1 -1
- package/build-module/date-time/time/index.js +4 -4
- package/build-module/date-time/time/index.js.map +1 -1
- package/build-module/disabled/index.js +8 -1
- package/build-module/disabled/index.js.map +1 -1
- package/build-module/external-link/index.js +13 -2
- package/build-module/external-link/index.js.map +1 -1
- package/build-module/focusable-iframe/index.js +0 -1
- package/build-module/focusable-iframe/index.js.map +1 -1
- package/build-module/font-size-picker/index.js +65 -50
- package/build-module/font-size-picker/index.js.map +1 -1
- package/build-module/font-size-picker/utils.js +0 -19
- package/build-module/font-size-picker/utils.js.map +1 -1
- package/build-module/form-file-upload/index.js.map +1 -1
- package/build-module/higher-order/with-filters/index.js +1 -6
- package/build-module/higher-order/with-filters/index.js.map +1 -1
- package/build-module/index.js +2 -2
- package/build-module/index.js.map +1 -1
- package/build-module/input-control/index.js +2 -0
- package/build-module/input-control/index.js.map +1 -1
- package/build-module/input-control/input-base.js +1 -1
- package/build-module/input-control/input-base.js.map +1 -1
- package/build-module/input-control/styles/input-control-styles.js +21 -21
- package/build-module/input-control/styles/input-control-styles.js.map +1 -1
- package/build-module/isolated-event-container/index.js +7 -9
- package/build-module/isolated-event-container/index.js.map +1 -1
- package/build-module/item-group/styles.js +10 -10
- package/build-module/item-group/styles.js.map +1 -1
- package/build-module/navigator/navigator-screen/component.js +20 -4
- package/build-module/navigator/navigator-screen/component.js.map +1 -1
- package/build-module/number-control/index.js +81 -26
- package/build-module/number-control/index.js.map +1 -1
- package/build-module/number-control/styles/number-control-styles.js +30 -4
- package/build-module/number-control/styles/number-control-styles.js.map +1 -1
- package/build-module/popover/index.js +15 -29
- package/build-module/popover/index.js.map +1 -1
- package/build-module/radio-group/index.js +6 -1
- package/build-module/radio-group/index.js.map +1 -1
- package/build-module/{radio → radio-group/radio}/index.js +6 -1
- package/build-module/radio-group/radio/index.js.map +1 -0
- package/build-module/{radio-context → radio-group/radio-context}/index.js +0 -0
- package/build-module/radio-group/radio-context/index.js.map +1 -0
- package/build-module/slot-fill/bubbles-virtually/fill.js +9 -5
- package/build-module/slot-fill/bubbles-virtually/fill.js.map +1 -1
- package/build-module/slot-fill/bubbles-virtually/slot.js +13 -8
- package/build-module/slot-fill/bubbles-virtually/slot.js.map +1 -1
- package/build-module/slot-fill/bubbles-virtually/use-slot.js +15 -9
- package/build-module/slot-fill/bubbles-virtually/use-slot.js.map +1 -1
- package/build-module/slot-fill/fill.js +12 -4
- package/build-module/slot-fill/fill.js.map +1 -1
- package/build-module/slot-fill/use-slot.js +3 -1
- package/build-module/slot-fill/use-slot.js.map +1 -1
- package/build-module/snackbar/index.js +1 -1
- package/build-module/snackbar/index.js.map +1 -1
- package/build-module/tab-panel/index.js +2 -6
- package/build-module/tab-panel/index.js.map +1 -1
- package/build-module/text-control/index.js +0 -2
- package/build-module/text-control/index.js.map +1 -1
- package/build-module/toggle-control/index.js +15 -3
- package/build-module/toggle-control/index.js.map +1 -1
- package/build-module/toggle-group-control/toggle-group-control/as-button-group.js +76 -0
- package/build-module/toggle-group-control/toggle-group-control/as-button-group.js.map +1 -0
- package/build-module/toggle-group-control/toggle-group-control/as-radio-group.js +75 -0
- package/build-module/toggle-group-control/toggle-group-control/as-radio-group.js.map +1 -0
- package/build-module/toggle-group-control/toggle-group-control/component.js +19 -49
- package/build-module/toggle-group-control/toggle-group-control/component.js.map +1 -1
- package/build-module/toggle-group-control/toggle-group-control/styles.js +7 -6
- package/build-module/toggle-group-control/toggle-group-control/styles.js.map +1 -1
- package/build-module/toggle-group-control/toggle-group-control-option-base/component.js +39 -17
- package/build-module/toggle-group-control/toggle-group-control-option-base/component.js.map +1 -1
- package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js +21 -18
- package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -1
- package/build-module/toolbar-dropdown-menu/index.js +1 -1
- package/build-module/toolbar-dropdown-menu/index.js.map +1 -1
- package/build-module/ui/context/context-system-provider.js +6 -20
- package/build-module/ui/context/context-system-provider.js.map +1 -1
- package/build-module/unit-control/index.js +8 -10
- package/build-module/unit-control/index.js.map +1 -1
- package/build-module/unit-control/styles/unit-control-styles.js +8 -24
- package/build-module/unit-control/styles/unit-control-styles.js.map +1 -1
- package/build-module/utils/config-values.js +0 -1
- package/build-module/utils/config-values.js.map +1 -1
- package/build-module/utils/hooks/use-update-effect.js +5 -1
- package/build-module/utils/hooks/use-update-effect.js.map +1 -1
- package/build-style/style-rtl.css +21 -41
- package/build-style/style.css +19 -39
- package/build-types/base-field/hook.d.ts +11 -11
- package/build-types/border-box-control/border-box-control/component.d.ts +53 -4
- 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 +13 -12
- 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 +12 -12
- 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 +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 +12 -12
- 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 +12 -12
- package/build-types/border-box-control/border-box-control-visualizer/hook.d.ts.map +1 -1
- package/build-types/border-box-control/stories/index.d.ts +17 -0
- package/build-types/border-box-control/stories/index.d.ts.map +1 -0
- package/build-types/border-box-control/styles.d.ts +7 -6
- package/build-types/border-box-control/styles.d.ts.map +1 -1
- package/build-types/border-box-control/types.d.ts +12 -16
- package/build-types/border-box-control/types.d.ts.map +1 -1
- package/build-types/border-control/border-control/component.d.ts +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 +13 -13
- package/build-types/border-control/border-control/hook.d.ts.map +1 -1
- package/build-types/border-control/border-control-dropdown/component.d.ts +1 -1
- package/build-types/border-control/border-control-dropdown/hook.d.ts +11 -11
- package/build-types/border-control/border-control-dropdown/hook.d.ts.map +1 -1
- package/build-types/border-control/border-control-style-picker/hook.d.ts +11 -11
- package/build-types/border-control/stories/index.d.ts +6 -6
- package/build-types/border-control/stories/index.d.ts.map +1 -1
- package/build-types/border-control/styles.d.ts +3 -3
- package/build-types/border-control/styles.d.ts.map +1 -1
- package/build-types/border-control/types.d.ts +7 -9
- package/build-types/border-control/types.d.ts.map +1 -1
- package/build-types/card/card/hook.d.ts +12 -12
- package/build-types/card/card-body/hook.d.ts +12 -12
- package/build-types/card/card-divider/hook.d.ts +13 -13
- package/build-types/card/card-footer/hook.d.ts +12 -12
- package/build-types/card/card-header/hook.d.ts +12 -12
- package/build-types/card/card-media/hook.d.ts +12 -12
- package/build-types/card/stories/index.d.ts.map +1 -1
- package/build-types/circular-option-picker/index.d.ts +4 -24
- package/build-types/circular-option-picker/index.d.ts.map +1 -1
- package/build-types/color-palette/index.d.ts +33 -18
- package/build-types/color-palette/index.d.ts.map +1 -1
- package/build-types/color-palette/stories/index.d.ts +21 -0
- package/build-types/color-palette/stories/index.d.ts.map +1 -0
- package/build-types/color-palette/styles.d.ts +3 -2
- package/build-types/color-palette/styles.d.ts.map +1 -1
- package/build-types/color-palette/test/index.d.ts +2 -0
- package/build-types/color-palette/test/index.d.ts.map +1 -0
- package/build-types/color-palette/types.d.ts +86 -0
- package/build-types/color-palette/types.d.ts.map +1 -0
- package/build-types/color-picker/styles.d.ts +5 -4
- package/build-types/color-picker/styles.d.ts.map +1 -1
- package/build-types/confirm-dialog/component.d.ts +4 -4
- package/build-types/custom-select-control/index.d.ts +1 -12
- package/build-types/custom-select-control/index.d.ts.map +1 -1
- package/build-types/custom-select-control/styles.d.ts +3 -1
- package/build-types/custom-select-control/styles.d.ts.map +1 -1
- package/build-types/date-time/date/styles.d.ts +3 -3
- package/build-types/date-time/date-time/index.d.ts +2 -0
- package/build-types/date-time/date-time/index.d.ts.map +1 -1
- package/build-types/date-time/date-time/styles.d.ts +3 -3
- package/build-types/date-time/stories/date-time.d.ts.map +1 -1
- package/build-types/date-time/time/styles.d.ts +8 -4
- package/build-types/date-time/time/styles.d.ts.map +1 -1
- package/build-types/disabled/index.d.ts +8 -1
- package/build-types/disabled/index.d.ts.map +1 -1
- package/build-types/elevation/hook.d.ts +12 -12
- package/build-types/external-link/index.d.ts.map +1 -1
- package/build-types/external-link/styles/external-link-styles.d.ts +1 -1
- package/build-types/external-link/test/index.d.ts +2 -0
- package/build-types/external-link/test/index.d.ts.map +1 -0
- package/build-types/flex/flex/hook.d.ts +12 -12
- package/build-types/flex/flex-block/hook.d.ts +12 -12
- package/build-types/flex/flex-item/hook.d.ts +12 -12
- package/build-types/focal-point-picker/styles/focal-point-picker-style.d.ts +2 -2
- package/build-types/focal-point-picker/styles/focal-point-style.d.ts +3 -3
- package/build-types/focusable-iframe/index.d.ts.map +1 -1
- package/build-types/font-size-picker/index.d.ts.map +1 -1
- package/build-types/font-size-picker/types.d.ts +1 -1
- package/build-types/font-size-picker/utils.d.ts +0 -8
- package/build-types/font-size-picker/utils.d.ts.map +1 -1
- package/build-types/form-file-upload/index.d.ts.map +1 -1
- package/build-types/form-file-upload/types.d.ts +5 -4
- package/build-types/form-file-upload/types.d.ts.map +1 -1
- package/build-types/grid/hook.d.ts +12 -12
- package/build-types/h-stack/component.d.ts +1 -1
- package/build-types/h-stack/hook.d.ts +12 -12
- package/build-types/heading/hook.d.ts +12 -12
- package/build-types/input-control/index.d.ts +1 -1
- package/build-types/input-control/index.d.ts.map +1 -1
- package/build-types/input-control/input-base.d.ts +5 -2
- package/build-types/input-control/input-base.d.ts.map +1 -1
- package/build-types/input-control/styles/input-control-styles.d.ts.map +1 -1
- package/build-types/input-control/types.d.ts +3 -8
- package/build-types/input-control/types.d.ts.map +1 -1
- package/build-types/input-control/utils.d.ts +1 -1
- package/build-types/isolated-event-container/index.d.ts +3 -2
- package/build-types/isolated-event-container/index.d.ts.map +1 -1
- package/build-types/item-group/item/hook.d.ts +13 -13
- package/build-types/item-group/item-group/hook.d.ts +13 -13
- package/build-types/navigator/navigator-back-button/hook.d.ts +13 -13
- package/build-types/navigator/navigator-button/hook.d.ts +13 -13
- package/build-types/navigator/navigator-screen/component.d.ts.map +1 -1
- package/build-types/number-control/index.d.ts +2 -4
- package/build-types/number-control/index.d.ts.map +1 -1
- package/build-types/number-control/styles/number-control-styles.d.ts +5 -0
- package/build-types/number-control/styles/number-control-styles.d.ts.map +1 -1
- package/build-types/number-control/types.d.ts +12 -0
- package/build-types/number-control/types.d.ts.map +1 -1
- package/build-types/popover/index.d.ts +1 -1
- package/build-types/popover/index.d.ts.map +1 -1
- package/build-types/popover/stories/e2e/index.d.ts +1 -1
- package/build-types/popover/stories/index.d.ts +2 -0
- package/build-types/popover/stories/index.d.ts.map +1 -1
- package/build-types/popover/types.d.ts +18 -14
- package/build-types/popover/types.d.ts.map +1 -1
- package/build-types/radio-group/index.d.ts +10 -0
- package/build-types/radio-group/index.d.ts.map +1 -0
- package/build-types/radio-group/radio/index.d.ts +7 -0
- package/build-types/radio-group/radio/index.d.ts.map +1 -0
- package/build-types/{radio-context → radio-group/radio-context}/index.d.ts +0 -0
- package/build-types/radio-group/radio-context/index.d.ts.map +1 -0
- package/build-types/range-control/index.d.ts +1 -1
- package/build-types/range-control/styles/range-control-styles.d.ts +2 -1
- package/build-types/range-control/styles/range-control-styles.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/label.d.ts +1 -1
- package/build-types/scrollable/hook.d.ts +12 -12
- package/build-types/search-control/index.d.ts +2 -2
- package/build-types/search-control/stories/index.d.ts +4 -4
- package/build-types/select-control/stories/index.d.ts.map +1 -1
- package/build-types/slot-fill/bubbles-virtually/use-slot.d.ts.map +1 -1
- package/build-types/slot-fill/fill.d.ts.map +1 -1
- package/build-types/slot-fill/use-slot.d.ts.map +1 -1
- package/build-types/spacer/hook.d.ts +12 -12
- package/build-types/spinner/index.d.ts +1 -1
- package/build-types/surface/hook.d.ts +12 -12
- package/build-types/tab-panel/index.d.ts.map +1 -1
- package/build-types/text/hook.d.ts +12 -12
- package/build-types/text-control/index.d.ts +2 -4
- package/build-types/text-control/index.d.ts.map +1 -1
- package/build-types/text-control/stories/index.d.ts.map +1 -1
- package/build-types/toggle-control/index.d.ts.map +1 -1
- package/build-types/toggle-control/types.d.ts +2 -1
- package/build-types/toggle-control/types.d.ts.map +1 -1
- package/build-types/toggle-group-control/stories/index.d.ts +2 -2
- package/build-types/toggle-group-control/stories/index.d.ts.map +1 -1
- package/build-types/toggle-group-control/toggle-group-control/as-button-group.d.ts +6 -0
- package/build-types/toggle-group-control/toggle-group-control/as-button-group.d.ts.map +1 -0
- package/build-types/toggle-group-control/toggle-group-control/as-radio-group.d.ts +6 -0
- package/build-types/toggle-group-control/toggle-group-control/as-radio-group.d.ts.map +1 -0
- package/build-types/toggle-group-control/toggle-group-control/component.d.ts +2 -2
- package/build-types/toggle-group-control/toggle-group-control/component.d.ts.map +1 -1
- package/build-types/toggle-group-control/toggle-group-control/styles.d.ts +2 -2
- package/build-types/toggle-group-control/toggle-group-control/styles.d.ts.map +1 -1
- package/build-types/toggle-group-control/toggle-group-control-option-base/component.d.ts.map +1 -1
- package/build-types/toggle-group-control/toggle-group-control-option-base/styles.d.ts +4 -7
- package/build-types/toggle-group-control/toggle-group-control-option-base/styles.d.ts.map +1 -1
- package/build-types/toggle-group-control/toggle-group-control-option-icon/component.d.ts +1 -1
- package/build-types/toggle-group-control/types.d.ts +19 -14
- package/build-types/toggle-group-control/types.d.ts.map +1 -1
- package/build-types/tools-panel/tools-panel/hook.d.ts +12 -12
- package/build-types/tools-panel/tools-panel-header/hook.d.ts +12 -12
- package/build-types/tools-panel/tools-panel-item/hook.d.ts +12 -12
- package/build-types/truncate/hook.d.ts +12 -12
- package/build-types/ui/context/context-system-provider.d.ts.map +1 -1
- package/build-types/ui/control-group/hook.d.ts +12 -12
- package/build-types/ui/control-label/component.d.ts +1 -1
- package/build-types/ui/control-label/hook.d.ts +12 -12
- package/build-types/ui/form-group/form-group.d.ts +4 -4
- package/build-types/ui/form-group/use-form-group.d.ts +28 -28
- 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 +2 -5
- package/build-types/unit-control/styles/unit-control-styles.d.ts.map +1 -1
- package/build-types/unit-control/types.d.ts +3 -3
- package/build-types/unit-control/types.d.ts.map +1 -1
- package/build-types/utils/config-values.d.ts +0 -1
- package/build-types/utils/hooks/use-update-effect.d.ts.map +1 -1
- package/build-types/utils/types.d.ts +0 -14
- package/build-types/utils/types.d.ts.map +1 -1
- package/build-types/v-stack/component.d.ts +2 -2
- package/build-types/v-stack/hook.d.ts +12 -12
- package/build-types/v-stack/stories/index.d.ts +2 -2
- package/package.json +17 -17
- package/src/angle-picker-control/index.js +1 -1
- package/src/angle-picker-control/stories/index.js +3 -0
- package/src/autocomplete/autocompleter-ui.js +29 -2
- package/src/autocomplete/test/index.js +89 -0
- package/src/border-box-control/border-box-control/README.md +8 -0
- package/src/border-box-control/border-box-control/component.tsx +64 -13
- package/src/border-box-control/border-box-control/hook.ts +7 -2
- package/src/border-box-control/border-box-control-linked-button/hook.ts +3 -6
- package/src/border-box-control/border-box-control-split-controls/component.tsx +3 -6
- package/src/border-box-control/border-box-control-split-controls/hook.ts +11 -14
- package/src/border-box-control/border-box-control-visualizer/hook.ts +4 -7
- package/src/border-box-control/stories/index.tsx +90 -0
- package/src/border-box-control/styles.ts +28 -22
- package/src/border-box-control/test/index.js +287 -122
- package/src/border-box-control/types.ts +12 -16
- package/src/border-control/border-control/README.md +8 -0
- package/src/border-control/border-control/component.tsx +4 -3
- package/src/border-control/border-control/hook.ts +10 -6
- package/src/border-control/border-control-dropdown/hook.ts +5 -7
- package/src/border-control/stories/index.tsx +12 -14
- package/src/border-control/styles.ts +20 -23
- package/src/border-control/test/index.js +139 -96
- package/src/border-control/types.ts +7 -9
- package/src/box-control/README.md +14 -0
- package/src/box-control/index.js +4 -0
- package/src/box-control/stories/index.js +8 -27
- package/src/button/README.md +2 -15
- package/src/button/stories/index.js +109 -178
- package/src/button/style.scss +17 -54
- package/src/card/stories/index.tsx +27 -31
- package/src/card/test/__snapshots__/index.tsx.snap +36 -35
- package/src/card/test/index.tsx +2 -6
- package/src/circular-option-picker/index.js +14 -20
- package/src/color-palette/README.md +51 -49
- package/src/color-palette/{index.js → index.tsx} +132 -51
- package/src/color-palette/stories/{index.js → index.tsx} +38 -27
- package/src/color-palette/style.scss +2 -2
- package/src/color-palette/{styles.js → styles.ts} +0 -0
- package/src/color-palette/test/__snapshots__/{index.js.snap → index.tsx.snap} +0 -0
- package/src/color-palette/test/{index.js → index.tsx} +1 -1
- package/src/color-palette/types.ts +93 -0
- package/src/color-picker/input-with-slider.tsx +1 -1
- package/src/custom-gradient-picker/gradient-bar/index.js +1 -3
- package/src/custom-select-control/README.md +14 -0
- package/src/custom-select-control/index.js +22 -15
- package/src/date-time/date-time/index.tsx +2 -0
- package/src/date-time/stories/date-time.tsx +4 -0
- package/src/date-time/time/index.tsx +4 -4
- package/src/dimension-control/test/__snapshots__/index.test.js.snap +4 -0
- package/src/disabled/README.md +2 -0
- package/src/disabled/index.tsx +8 -1
- package/src/disabled/test/index.tsx +0 -5
- package/src/external-link/index.tsx +14 -6
- package/src/external-link/test/index.tsx +106 -0
- package/src/focusable-iframe/index.js +0 -1
- package/src/font-size-picker/README.md +3 -3
- package/src/font-size-picker/index.tsx +152 -142
- package/src/font-size-picker/test/index.tsx +447 -174
- package/src/font-size-picker/test/utils.ts +1 -45
- package/src/font-size-picker/types.ts +1 -1
- package/src/font-size-picker/utils.ts +0 -22
- package/src/form-file-upload/README.md +1 -3
- package/src/form-file-upload/index.tsx +1 -0
- package/src/form-file-upload/types.ts +5 -4
- package/src/form-toggle/test/__snapshots__/index.tsx.snap +15 -13
- package/src/form-toggle/test/index.tsx +1 -1
- package/src/h-stack/test/__snapshots__/index.tsx.snap +36 -30
- package/src/h-stack/test/index.tsx +3 -3
- package/src/higher-order/with-filters/index.js +4 -9
- package/src/index.js +2 -1
- package/src/input-control/index.tsx +2 -0
- package/src/input-control/input-base.tsx +3 -3
- package/src/input-control/styles/input-control-styles.tsx +1 -0
- package/src/input-control/types.ts +4 -11
- package/src/isolated-event-container/index.tsx +32 -0
- package/src/item-group/styles.ts +1 -1
- package/src/item-group/test/__snapshots__/index.js.snap +90 -85
- package/src/item-group/test/index.js +7 -17
- package/src/navigator/navigator-screen/component.tsx +20 -3
- package/src/number-control/README.md +9 -4
- package/src/number-control/index.tsx +100 -33
- package/src/number-control/styles/number-control-styles.js +26 -1
- package/src/number-control/test/index.js +50 -0
- package/src/number-control/types.ts +12 -0
- package/src/popover/README.md +12 -7
- package/src/popover/index.tsx +20 -30
- package/src/popover/stories/index.tsx +29 -1
- package/src/popover/style.scss +9 -0
- package/src/popover/types.ts +18 -15
- package/src/radio-group/README.md +4 -0
- package/src/radio-group/index.js +6 -1
- package/src/{radio → radio-group/radio}/index.js +6 -1
- package/src/{radio-context → radio-group/radio-context}/index.js +0 -0
- package/src/radio-group/stories/index.js +11 -2
- package/src/sandbox/test/index.js +2 -2
- package/src/select-control/stories/index.tsx +9 -4
- package/src/slot-fill/bubbles-virtually/fill.js +5 -5
- package/src/slot-fill/bubbles-virtually/slot.js +10 -8
- package/src/slot-fill/bubbles-virtually/use-slot.js +15 -9
- package/src/slot-fill/fill.js +12 -2
- package/src/slot-fill/use-slot.js +3 -0
- package/src/snackbar/index.js +1 -1
- package/src/surface/test/__snapshots__/index.tsx.snap +58 -46
- package/src/surface/test/index.tsx +6 -16
- package/src/tab-panel/index.tsx +2 -3
- package/src/tab-panel/test/index.tsx +78 -1
- package/src/text/test/__snapshots__/index.tsx.snap +19 -15
- package/src/text/test/index.tsx +2 -2
- package/src/text-control/index.tsx +0 -2
- package/src/text-control/stories/index.tsx +5 -6
- package/src/toggle-control/README.md +6 -4
- package/src/toggle-control/index.tsx +13 -2
- package/src/toggle-control/types.ts +2 -4
- package/src/toggle-group-control/stories/index.tsx +4 -4
- package/src/toggle-group-control/test/__snapshots__/index.tsx.snap +219 -160
- package/src/toggle-group-control/test/index.tsx +129 -2
- package/src/toggle-group-control/toggle-group-control/as-button-group.tsx +103 -0
- package/src/toggle-group-control/toggle-group-control/as-radio-group.tsx +99 -0
- package/src/toggle-group-control/toggle-group-control/component.tsx +29 -74
- package/src/toggle-group-control/toggle-group-control/styles.ts +12 -10
- package/src/toggle-group-control/toggle-group-control-option-base/component.tsx +49 -25
- package/src/toggle-group-control/toggle-group-control-option-base/styles.ts +39 -19
- package/src/toggle-group-control/types.ts +75 -63
- package/src/toolbar-dropdown-menu/index.js +1 -1
- package/src/tools-panel/stories/index.js +0 -1
- package/src/tools-panel/stories/tools-panel-with-item-group-slot.js +0 -1
- package/src/tree-grid/test/__snapshots__/cell.js.snap +20 -18
- package/src/tree-grid/test/__snapshots__/roving-tab-index.js.snap +3 -1
- package/src/tree-grid/test/__snapshots__/row.js.snap +33 -29
- package/src/tree-grid/test/cell.js +1 -1
- package/src/tree-grid/test/roving-tab-index.js +1 -1
- package/src/tree-grid/test/row.js +2 -2
- package/src/ui/context/context-system-provider.js +5 -18
- package/src/ui/context/test/__snapshots__/context-system-provider.js.snap +23 -17
- package/src/ui/context/test/context-system-provider.js +3 -3
- package/src/ui/control-group/test/__snapshots__/index.js.snap +18 -16
- package/src/ui/control-group/test/index.js +1 -1
- package/src/ui/control-label/test/__snapshots__/index.js.snap +27 -21
- package/src/ui/control-label/test/index.js +3 -3
- package/src/ui/form-group/test/__snapshots__/index.js.snap +34 -30
- package/src/ui/form-group/test/index.js +2 -2
- package/src/ui/shortcut/test/__snapshots__/index.js.snap +1 -1
- package/src/ui/shortcut/test/index.js +1 -1
- package/src/ui/spinner/test/__snapshots__/index.js.snap +75 -73
- package/src/ui/spinner/test/index.js +3 -7
- package/src/unit-control/index.tsx +29 -30
- package/src/unit-control/styles/unit-control-styles.ts +6 -12
- package/src/unit-control/test/utils.ts +43 -0
- package/src/unit-control/types.ts +5 -6
- package/src/utils/config-values.js +0 -1
- package/src/utils/hooks/use-update-effect.js +5 -1
- package/src/utils/types.ts +0 -15
- package/src/v-stack/test/__snapshots__/index.tsx.snap +36 -30
- package/src/v-stack/test/index.tsx +3 -3
- package/src/view/test/__snapshots__/index.js.snap +34 -24
- package/src/view/test/index.js +5 -5
- package/tsconfig.json +0 -2
- package/tsconfig.tsbuildinfo +1 -1
- package/build/radio/index.js.map +0 -1
- package/build/radio-context/index.js.map +0 -1
- package/build-module/radio/index.js.map +0 -1
- package/build-module/radio-context/index.js.map +0 -1
- package/build-types/radio-context/index.d.ts.map +0 -1
- package/src/border-box-control/stories/index.js +0 -106
- package/src/form-file-upload/stories/index.js +0 -51
- package/src/isolated-event-container/index.js +0 -28
- package/src/radio/stories/index.js +0 -20
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
4
|
+
import { render, screen } from '@testing-library/react';
|
|
5
|
+
import userEvent from '@testing-library/user-event';
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* Internal dependencies
|
|
@@ -48,40 +49,22 @@ const props = {
|
|
|
48
49
|
const toggleLabelRegex = /Border color( and style)* picker/;
|
|
49
50
|
const colorPickerRegex = /Border color picker/;
|
|
50
51
|
|
|
51
|
-
const renderBorderBoxControl = ( customProps ) => {
|
|
52
|
-
return render( <BorderBoxControl { ...{ ...props, ...customProps } } /> );
|
|
53
|
-
};
|
|
54
|
-
|
|
55
|
-
const clickButton = ( name ) => {
|
|
56
|
-
fireEvent.click( screen.getByRole( 'button', { name } ) );
|
|
57
|
-
};
|
|
58
|
-
|
|
59
|
-
const queryButton = ( name ) => {
|
|
60
|
-
return screen.queryByRole( 'button', { name } );
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
const updateLinkedWidthInput = ( value ) => {
|
|
64
|
-
const widthInput = screen.getByRole( 'spinbutton' );
|
|
65
|
-
widthInput.focus();
|
|
66
|
-
fireEvent.change( widthInput, { target: { value } } );
|
|
67
|
-
};
|
|
68
|
-
|
|
69
|
-
const updateSplitWidthInput = ( value, index = 0 ) => {
|
|
70
|
-
const splitInputs = screen.getAllByRole( 'spinbutton' );
|
|
71
|
-
splitInputs[ index ].focus();
|
|
72
|
-
fireEvent.change( splitInputs[ index ], { target: { value } } );
|
|
73
|
-
};
|
|
74
|
-
|
|
75
52
|
describe( 'BorderBoxControl', () => {
|
|
76
53
|
describe( 'Linked view rendering', () => {
|
|
77
54
|
it( 'should render correctly when no value provided', () => {
|
|
78
|
-
|
|
55
|
+
render( <BorderBoxControl { ...props } /> );
|
|
79
56
|
|
|
80
57
|
const label = screen.getByText( props.label );
|
|
81
58
|
const colorButton = screen.getByLabelText( toggleLabelRegex );
|
|
82
|
-
const widthInput = screen.getByRole( 'spinbutton'
|
|
83
|
-
|
|
84
|
-
|
|
59
|
+
const widthInput = screen.getByRole( 'spinbutton', {
|
|
60
|
+
name: 'Border width',
|
|
61
|
+
} );
|
|
62
|
+
const unitSelect = screen.getByRole( 'combobox', {
|
|
63
|
+
name: 'Select unit',
|
|
64
|
+
} );
|
|
65
|
+
const slider = screen.getByRole( 'slider', {
|
|
66
|
+
name: 'Border width',
|
|
67
|
+
} );
|
|
85
68
|
const linkedButton = screen.getByLabelText( 'Unlink sides' );
|
|
86
69
|
|
|
87
70
|
expect( label ).toBeInTheDocument();
|
|
@@ -94,7 +77,8 @@ describe( 'BorderBoxControl', () => {
|
|
|
94
77
|
} );
|
|
95
78
|
|
|
96
79
|
it( 'should hide label', () => {
|
|
97
|
-
|
|
80
|
+
render( <BorderBoxControl { ...props } hideLabelFromVision /> );
|
|
81
|
+
|
|
98
82
|
const label = screen.getByText( props.label );
|
|
99
83
|
|
|
100
84
|
// As visually hidden labels are still included in the document
|
|
@@ -107,62 +91,112 @@ describe( 'BorderBoxControl', () => {
|
|
|
107
91
|
} );
|
|
108
92
|
|
|
109
93
|
it( 'should show correct width value when flat border value provided', () => {
|
|
110
|
-
|
|
111
|
-
|
|
94
|
+
render( <BorderBoxControl { ...props } value={ defaultBorder } /> );
|
|
95
|
+
|
|
96
|
+
const widthInput = screen.getByRole( 'spinbutton', {
|
|
97
|
+
name: 'Border width',
|
|
98
|
+
} );
|
|
112
99
|
|
|
113
100
|
expect( widthInput.value ).toBe( '1' );
|
|
114
101
|
} );
|
|
115
102
|
|
|
116
103
|
it( 'should show correct width value when consistent split borders provided', () => {
|
|
117
|
-
|
|
118
|
-
|
|
104
|
+
render(
|
|
105
|
+
<BorderBoxControl { ...props } value={ defaultBorders } />
|
|
106
|
+
);
|
|
107
|
+
|
|
108
|
+
const widthInput = screen.getByRole( 'spinbutton', {
|
|
109
|
+
name: 'Border width',
|
|
110
|
+
} );
|
|
119
111
|
|
|
120
112
|
expect( widthInput.value ).toBe( '1' );
|
|
121
113
|
} );
|
|
122
114
|
|
|
123
|
-
it( 'should render placeholder and omit unit select when border values are mixed', () => {
|
|
124
|
-
|
|
115
|
+
it( 'should render placeholder and omit unit select when border values are mixed', async () => {
|
|
116
|
+
const user = userEvent.setup( {
|
|
117
|
+
advanceTimers: jest.advanceTimersByTime,
|
|
118
|
+
} );
|
|
119
|
+
|
|
120
|
+
render( <BorderBoxControl { ...props } value={ mixedBorders } /> );
|
|
125
121
|
|
|
126
122
|
// First render of control with mixed values should show split view.
|
|
127
|
-
|
|
123
|
+
await user.click(
|
|
124
|
+
screen.getByRole( 'button', { name: 'Link sides' } )
|
|
125
|
+
);
|
|
128
126
|
|
|
129
|
-
const widthInput = screen.getByRole( 'spinbutton'
|
|
130
|
-
|
|
127
|
+
const widthInput = screen.getByRole( 'spinbutton', {
|
|
128
|
+
name: 'Border width',
|
|
129
|
+
} );
|
|
130
|
+
const unitSelect = screen.queryByRole( 'combobox', {
|
|
131
|
+
name: 'Select unit',
|
|
132
|
+
} );
|
|
131
133
|
|
|
132
134
|
expect( widthInput ).toHaveAttribute( 'placeholder', 'Mixed' );
|
|
133
135
|
expect( unitSelect ).not.toBeInTheDocument();
|
|
134
136
|
} );
|
|
135
137
|
|
|
136
138
|
it( 'should render shared border width and unit select when switching to linked view', async () => {
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
value: {
|
|
140
|
-
top: { color: 'red', width: '5px', style: 'solid' },
|
|
141
|
-
right: { color: 'blue', width: '5px', style: 'dashed' },
|
|
142
|
-
bottom: { color: 'green', width: '5px', style: 'solid' },
|
|
143
|
-
left: { color: 'yellow', width: '5px', style: 'dotted' },
|
|
144
|
-
},
|
|
139
|
+
const user = userEvent.setup( {
|
|
140
|
+
advanceTimers: jest.advanceTimersByTime,
|
|
145
141
|
} );
|
|
146
142
|
|
|
143
|
+
// Render control with mixed border values but consistent widths.
|
|
144
|
+
render(
|
|
145
|
+
<BorderBoxControl
|
|
146
|
+
{ ...props }
|
|
147
|
+
value={ {
|
|
148
|
+
top: { color: 'red', width: '5px', style: 'solid' },
|
|
149
|
+
right: { color: 'blue', width: '5px', style: 'dashed' },
|
|
150
|
+
bottom: {
|
|
151
|
+
color: 'green',
|
|
152
|
+
width: '5px',
|
|
153
|
+
style: 'solid',
|
|
154
|
+
},
|
|
155
|
+
left: {
|
|
156
|
+
color: 'yellow',
|
|
157
|
+
width: '5px',
|
|
158
|
+
style: 'dotted',
|
|
159
|
+
},
|
|
160
|
+
} }
|
|
161
|
+
/>
|
|
162
|
+
);
|
|
163
|
+
|
|
147
164
|
// First render of control with mixed values should show split view.
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
165
|
+
await user.click(
|
|
166
|
+
screen.getByRole( 'button', { name: 'Link sides' } )
|
|
167
|
+
);
|
|
168
|
+
|
|
169
|
+
const linkedInput = screen.getByRole( 'spinbutton', {
|
|
170
|
+
name: 'Border width',
|
|
171
|
+
} );
|
|
172
|
+
const unitSelect = screen.getByRole( 'combobox', {
|
|
173
|
+
name: 'Select unit',
|
|
174
|
+
} );
|
|
151
175
|
|
|
152
176
|
expect( linkedInput.value ).toBe( '5' );
|
|
153
177
|
expect( unitSelect ).toBeInTheDocument();
|
|
154
178
|
} );
|
|
155
179
|
|
|
156
|
-
it( 'should omit style options when requested', () => {
|
|
157
|
-
|
|
180
|
+
it( 'should omit style options when requested', async () => {
|
|
181
|
+
const user = userEvent.setup( {
|
|
182
|
+
advanceTimers: jest.advanceTimersByTime,
|
|
183
|
+
} );
|
|
184
|
+
|
|
185
|
+
render( <BorderBoxControl { ...props } enableStyle={ false } /> );
|
|
158
186
|
|
|
159
187
|
const colorButton = screen.getByLabelText( colorPickerRegex );
|
|
160
|
-
|
|
188
|
+
await user.click( colorButton );
|
|
161
189
|
|
|
162
190
|
const styleLabel = screen.queryByText( 'Style' );
|
|
163
|
-
const solidButton =
|
|
164
|
-
|
|
165
|
-
|
|
191
|
+
const solidButton = screen.queryByRole( 'button', {
|
|
192
|
+
name: 'Solid',
|
|
193
|
+
} );
|
|
194
|
+
const dashedButton = screen.queryByRole( 'button', {
|
|
195
|
+
name: 'Dashed',
|
|
196
|
+
} );
|
|
197
|
+
const dottedButton = screen.queryByRole( 'button', {
|
|
198
|
+
name: 'Dotted',
|
|
199
|
+
} );
|
|
166
200
|
|
|
167
201
|
expect( styleLabel ).not.toBeInTheDocument();
|
|
168
202
|
expect( solidButton ).not.toBeInTheDocument();
|
|
@@ -173,12 +207,18 @@ describe( 'BorderBoxControl', () => {
|
|
|
173
207
|
|
|
174
208
|
describe( 'Split view rendering', () => {
|
|
175
209
|
it( 'should render split view by default when mixed values provided', () => {
|
|
176
|
-
|
|
210
|
+
render( <BorderBoxControl { ...props } value={ mixedBorders } /> );
|
|
177
211
|
|
|
178
212
|
const colorButtons = screen.getAllByLabelText( toggleLabelRegex );
|
|
179
|
-
const widthInputs = screen.getAllByRole( 'spinbutton'
|
|
180
|
-
|
|
181
|
-
|
|
213
|
+
const widthInputs = screen.getAllByRole( 'spinbutton', {
|
|
214
|
+
name: 'Border width',
|
|
215
|
+
} );
|
|
216
|
+
const unitSelects = screen.getAllByRole( 'combobox', {
|
|
217
|
+
name: 'Select unit',
|
|
218
|
+
} );
|
|
219
|
+
const sliders = screen.queryAllByRole( 'slider', {
|
|
220
|
+
name: 'Border width',
|
|
221
|
+
} );
|
|
182
222
|
const linkedButton = screen.getByLabelText( 'Link sides' );
|
|
183
223
|
|
|
184
224
|
expect( colorButtons.length ).toBe( 4 );
|
|
@@ -189,9 +229,11 @@ describe( 'BorderBoxControl', () => {
|
|
|
189
229
|
} );
|
|
190
230
|
|
|
191
231
|
it( 'should render correct width values in appropriate inputs', () => {
|
|
192
|
-
|
|
232
|
+
render( <BorderBoxControl { ...props } value={ mixedBorders } /> );
|
|
193
233
|
|
|
194
|
-
const widthInputs = screen.getAllByRole( 'spinbutton'
|
|
234
|
+
const widthInputs = screen.getAllByRole( 'spinbutton', {
|
|
235
|
+
name: 'Border width',
|
|
236
|
+
} );
|
|
195
237
|
|
|
196
238
|
expect( widthInputs[ 0 ].value ).toBe( '1' ); // Top.
|
|
197
239
|
expect( widthInputs[ 1 ].value ).toBe( '0.75' ); // Left.
|
|
@@ -199,39 +241,75 @@ describe( 'BorderBoxControl', () => {
|
|
|
199
241
|
expect( widthInputs[ 3 ].value ).toBe( '2' ); // Bottom.
|
|
200
242
|
} );
|
|
201
243
|
|
|
202
|
-
it( 'should render split view correctly when starting with flat border', () => {
|
|
203
|
-
|
|
204
|
-
|
|
244
|
+
it( 'should render split view correctly when starting with flat border', async () => {
|
|
245
|
+
const user = userEvent.setup( {
|
|
246
|
+
advanceTimers: jest.advanceTimersByTime,
|
|
247
|
+
} );
|
|
248
|
+
|
|
249
|
+
render(
|
|
250
|
+
<BorderBoxControl { ...props } value={ defaultBorders } />
|
|
251
|
+
);
|
|
252
|
+
|
|
253
|
+
await user.click(
|
|
254
|
+
screen.getByRole( 'button', { name: 'Unlink sides' } )
|
|
255
|
+
);
|
|
205
256
|
|
|
206
|
-
const widthInputs = screen.getAllByRole( 'spinbutton'
|
|
257
|
+
const widthInputs = screen.getAllByRole( 'spinbutton', {
|
|
258
|
+
name: 'Border width',
|
|
259
|
+
} );
|
|
207
260
|
expect( widthInputs[ 0 ].value ).toBe( '1' ); // Top.
|
|
208
261
|
expect( widthInputs[ 1 ].value ).toBe( '1' ); // Left.
|
|
209
262
|
expect( widthInputs[ 2 ].value ).toBe( '1' ); // Right.
|
|
210
263
|
expect( widthInputs[ 3 ].value ).toBe( '1' ); // Bottom.
|
|
211
264
|
} );
|
|
212
265
|
|
|
213
|
-
it( 'should omit style options when requested', () => {
|
|
214
|
-
|
|
215
|
-
|
|
266
|
+
it( 'should omit style options when requested', async () => {
|
|
267
|
+
const user = userEvent.setup( {
|
|
268
|
+
advanceTimers: jest.advanceTimersByTime,
|
|
269
|
+
} );
|
|
216
270
|
|
|
217
|
-
|
|
271
|
+
render( <BorderBoxControl { ...props } enableStyle={ false } /> );
|
|
272
|
+
|
|
273
|
+
await user.click(
|
|
274
|
+
screen.getByRole( 'button', { name: 'Unlink sides' } )
|
|
275
|
+
);
|
|
218
276
|
|
|
219
|
-
colorButtons.
|
|
220
|
-
fireEvent.click( button );
|
|
277
|
+
const colorButtons = screen.getAllByLabelText( colorPickerRegex );
|
|
221
278
|
|
|
279
|
+
function assertStyleOptionsMissing() {
|
|
222
280
|
const styleLabel = screen.queryByText( 'Style' );
|
|
223
|
-
const solidButton =
|
|
224
|
-
|
|
225
|
-
|
|
281
|
+
const solidButton = screen.queryByRole( 'button', {
|
|
282
|
+
name: 'Solid',
|
|
283
|
+
} );
|
|
284
|
+
const dashedButton = screen.queryByRole( 'button', {
|
|
285
|
+
name: 'Dashed',
|
|
286
|
+
} );
|
|
287
|
+
const dottedButton = screen.queryByRole( 'button', {
|
|
288
|
+
name: 'Dotted',
|
|
289
|
+
} );
|
|
226
290
|
|
|
227
291
|
expect( styleLabel ).not.toBeInTheDocument();
|
|
228
292
|
expect( solidButton ).not.toBeInTheDocument();
|
|
229
293
|
expect( dashedButton ).not.toBeInTheDocument();
|
|
230
294
|
expect( dottedButton ).not.toBeInTheDocument();
|
|
295
|
+
}
|
|
231
296
|
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
297
|
+
await user.click( colorButtons[ 0 ] );
|
|
298
|
+
assertStyleOptionsMissing();
|
|
299
|
+
await user.click( colorButtons[ 0 ] );
|
|
300
|
+
|
|
301
|
+
await user.click( colorButtons[ 1 ] );
|
|
302
|
+
assertStyleOptionsMissing();
|
|
303
|
+
await user.click( colorButtons[ 1 ] );
|
|
304
|
+
|
|
305
|
+
await user.click( colorButtons[ 2 ] );
|
|
306
|
+
assertStyleOptionsMissing();
|
|
307
|
+
await user.click( colorButtons[ 2 ] );
|
|
308
|
+
|
|
309
|
+
await user.click( colorButtons[ 3 ] );
|
|
310
|
+
assertStyleOptionsMissing();
|
|
311
|
+
await user.click( colorButtons[ 3 ] );
|
|
312
|
+
}, 10000 );
|
|
235
313
|
} );
|
|
236
314
|
|
|
237
315
|
describe( 'onChange handling', () => {
|
|
@@ -241,16 +319,36 @@ describe( 'BorderBoxControl', () => {
|
|
|
241
319
|
} );
|
|
242
320
|
|
|
243
321
|
describe( 'Linked value change handling', () => {
|
|
244
|
-
it( 'should set undefined when new border is empty', () => {
|
|
245
|
-
|
|
246
|
-
|
|
322
|
+
it( 'should set undefined when new border is empty', async () => {
|
|
323
|
+
const user = userEvent.setup( {
|
|
324
|
+
advanceTimers: jest.advanceTimersByTime,
|
|
325
|
+
} );
|
|
326
|
+
|
|
327
|
+
render(
|
|
328
|
+
<BorderBoxControl { ...props } value={ { width: '1px' } } />
|
|
329
|
+
);
|
|
330
|
+
|
|
331
|
+
await user.clear(
|
|
332
|
+
screen.getByRole( 'spinbutton', { name: 'Border width' } )
|
|
333
|
+
);
|
|
247
334
|
|
|
248
335
|
expect( props.onChange ).toHaveBeenCalledWith( undefined );
|
|
249
336
|
} );
|
|
250
337
|
|
|
251
|
-
it( 'should update with complete flat border', () => {
|
|
252
|
-
|
|
253
|
-
|
|
338
|
+
it( 'should update with complete flat border', async () => {
|
|
339
|
+
const user = userEvent.setup( {
|
|
340
|
+
advanceTimers: jest.advanceTimersByTime,
|
|
341
|
+
} );
|
|
342
|
+
|
|
343
|
+
render(
|
|
344
|
+
<BorderBoxControl { ...props } value={ defaultBorder } />
|
|
345
|
+
);
|
|
346
|
+
|
|
347
|
+
const widthInput = screen.getByRole( 'spinbutton', {
|
|
348
|
+
name: 'Border width',
|
|
349
|
+
} );
|
|
350
|
+
await user.clear( widthInput );
|
|
351
|
+
await user.type( widthInput, '3' );
|
|
254
352
|
|
|
255
353
|
expect( props.onChange ).toHaveBeenCalledWith( {
|
|
256
354
|
...defaultBorder,
|
|
@@ -258,18 +356,32 @@ describe( 'BorderBoxControl', () => {
|
|
|
258
356
|
} );
|
|
259
357
|
} );
|
|
260
358
|
|
|
261
|
-
it( 'should maintain mixed values if not explicitly set via linked control', () => {
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
top: { color: '#72aee6' },
|
|
265
|
-
right: { color: '#f6f7f7', style: 'dashed' },
|
|
266
|
-
bottom: { color: '#e65054', style: 'dotted' },
|
|
267
|
-
left: { color: undefined },
|
|
268
|
-
},
|
|
359
|
+
it( 'should maintain mixed values if not explicitly set via linked control', async () => {
|
|
360
|
+
const user = userEvent.setup( {
|
|
361
|
+
advanceTimers: jest.advanceTimersByTime,
|
|
269
362
|
} );
|
|
270
363
|
|
|
271
|
-
|
|
272
|
-
|
|
364
|
+
render(
|
|
365
|
+
<BorderBoxControl
|
|
366
|
+
{ ...props }
|
|
367
|
+
value={ {
|
|
368
|
+
top: { color: '#72aee6' },
|
|
369
|
+
right: { color: '#f6f7f7', style: 'dashed' },
|
|
370
|
+
bottom: { color: '#e65054', style: 'dotted' },
|
|
371
|
+
left: { color: undefined },
|
|
372
|
+
} }
|
|
373
|
+
/>
|
|
374
|
+
);
|
|
375
|
+
|
|
376
|
+
await user.click(
|
|
377
|
+
screen.getByRole( 'button', { name: 'Link sides' } )
|
|
378
|
+
);
|
|
379
|
+
|
|
380
|
+
const widthInput = screen.getByRole( 'spinbutton', {
|
|
381
|
+
name: 'Border width',
|
|
382
|
+
} );
|
|
383
|
+
await user.clear( widthInput );
|
|
384
|
+
await user.type( widthInput, '4' );
|
|
273
385
|
|
|
274
386
|
expect( props.onChange ).toHaveBeenCalledWith( {
|
|
275
387
|
top: { color: '#72aee6', width: '4px' },
|
|
@@ -279,9 +391,20 @@ describe( 'BorderBoxControl', () => {
|
|
|
279
391
|
} );
|
|
280
392
|
} );
|
|
281
393
|
|
|
282
|
-
it( 'should update with consistent split borders', () => {
|
|
283
|
-
|
|
284
|
-
|
|
394
|
+
it( 'should update with consistent split borders', async () => {
|
|
395
|
+
const user = userEvent.setup( {
|
|
396
|
+
advanceTimers: jest.advanceTimersByTime,
|
|
397
|
+
} );
|
|
398
|
+
|
|
399
|
+
render(
|
|
400
|
+
<BorderBoxControl { ...props } value={ defaultBorders } />
|
|
401
|
+
);
|
|
402
|
+
|
|
403
|
+
const widthInput = screen.getByRole( 'spinbutton', {
|
|
404
|
+
name: 'Border width',
|
|
405
|
+
} );
|
|
406
|
+
await user.clear( widthInput );
|
|
407
|
+
await user.type( widthInput, '10' );
|
|
285
408
|
|
|
286
409
|
expect( props.onChange ).toHaveBeenCalledWith( {
|
|
287
410
|
...defaultBorder,
|
|
@@ -289,32 +412,56 @@ describe( 'BorderBoxControl', () => {
|
|
|
289
412
|
} );
|
|
290
413
|
} );
|
|
291
414
|
|
|
292
|
-
it( 'should set undefined borders when change results in empty borders', () => {
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
top: { width: '1px' },
|
|
296
|
-
right: { width: '1px' },
|
|
297
|
-
bottom: { width: '1px' },
|
|
298
|
-
left: { width: '1px' },
|
|
299
|
-
},
|
|
415
|
+
it( 'should set undefined borders when change results in empty borders', async () => {
|
|
416
|
+
const user = userEvent.setup( {
|
|
417
|
+
advanceTimers: jest.advanceTimersByTime,
|
|
300
418
|
} );
|
|
301
|
-
|
|
419
|
+
|
|
420
|
+
render(
|
|
421
|
+
<BorderBoxControl
|
|
422
|
+
{ ...props }
|
|
423
|
+
value={ {
|
|
424
|
+
top: { width: '1px' },
|
|
425
|
+
right: { width: '1px' },
|
|
426
|
+
bottom: { width: '1px' },
|
|
427
|
+
left: { width: '1px' },
|
|
428
|
+
} }
|
|
429
|
+
/>
|
|
430
|
+
);
|
|
431
|
+
|
|
432
|
+
await user.clear(
|
|
433
|
+
screen.getByRole( 'spinbutton', { name: 'Border width' } )
|
|
434
|
+
);
|
|
302
435
|
|
|
303
436
|
expect( props.onChange ).toHaveBeenCalledWith( undefined );
|
|
304
437
|
} );
|
|
305
438
|
|
|
306
|
-
it( 'should set flat border when change results in consistent split borders', () => {
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
top: { ...defaultBorder, width: '1px' },
|
|
310
|
-
right: { ...defaultBorder, width: '2px' },
|
|
311
|
-
bottom: { ...defaultBorder, width: '3px' },
|
|
312
|
-
left: { ...defaultBorder, width: '4px' },
|
|
313
|
-
},
|
|
439
|
+
it( 'should set flat border when change results in consistent split borders', async () => {
|
|
440
|
+
const user = userEvent.setup( {
|
|
441
|
+
advanceTimers: jest.advanceTimersByTime,
|
|
314
442
|
} );
|
|
315
443
|
|
|
316
|
-
|
|
317
|
-
|
|
444
|
+
render(
|
|
445
|
+
<BorderBoxControl
|
|
446
|
+
{ ...props }
|
|
447
|
+
value={ {
|
|
448
|
+
top: { ...defaultBorder, width: '1px' },
|
|
449
|
+
right: { ...defaultBorder, width: '2px' },
|
|
450
|
+
bottom: { ...defaultBorder, width: '3px' },
|
|
451
|
+
left: { ...defaultBorder, width: '4px' },
|
|
452
|
+
} }
|
|
453
|
+
/>
|
|
454
|
+
);
|
|
455
|
+
|
|
456
|
+
await user.click(
|
|
457
|
+
screen.getByRole( 'button', { name: 'Link sides' } )
|
|
458
|
+
);
|
|
459
|
+
|
|
460
|
+
const widthInput = screen.getByRole( 'spinbutton', {
|
|
461
|
+
name: 'Border width',
|
|
462
|
+
} );
|
|
463
|
+
await user.clear( widthInput );
|
|
464
|
+
await user.type( widthInput, '10' );
|
|
318
465
|
|
|
319
466
|
expect( props.onChange ).toHaveBeenCalledWith( {
|
|
320
467
|
...defaultBorder,
|
|
@@ -324,7 +471,11 @@ describe( 'BorderBoxControl', () => {
|
|
|
324
471
|
} );
|
|
325
472
|
|
|
326
473
|
describe( 'Split value change handling', () => {
|
|
327
|
-
it( 'should set split borders when the updated borders are mixed', () => {
|
|
474
|
+
it( 'should set split borders when the updated borders are mixed', async () => {
|
|
475
|
+
const user = userEvent.setup( {
|
|
476
|
+
advanceTimers: jest.advanceTimersByTime,
|
|
477
|
+
} );
|
|
478
|
+
|
|
328
479
|
const borders = {
|
|
329
480
|
top: { ...defaultBorder, width: '1px' },
|
|
330
481
|
right: { ...defaultBorder, width: '2px' },
|
|
@@ -332,8 +483,13 @@ describe( 'BorderBoxControl', () => {
|
|
|
332
483
|
left: { ...defaultBorder, width: '4px' },
|
|
333
484
|
};
|
|
334
485
|
|
|
335
|
-
|
|
336
|
-
|
|
486
|
+
render( <BorderBoxControl { ...props } value={ borders } /> );
|
|
487
|
+
|
|
488
|
+
const widthInput = screen.getAllByRole( 'spinbutton', {
|
|
489
|
+
name: 'Border width',
|
|
490
|
+
} )[ 0 ];
|
|
491
|
+
await user.clear( widthInput );
|
|
492
|
+
await user.type( widthInput, '5' );
|
|
337
493
|
|
|
338
494
|
expect( props.onChange ).toHaveBeenCalledWith( {
|
|
339
495
|
...borders,
|
|
@@ -341,7 +497,11 @@ describe( 'BorderBoxControl', () => {
|
|
|
341
497
|
} );
|
|
342
498
|
} );
|
|
343
499
|
|
|
344
|
-
it( 'should set flat border when updated borders are consistent', () => {
|
|
500
|
+
it( 'should set flat border when updated borders are consistent', async () => {
|
|
501
|
+
const user = userEvent.setup( {
|
|
502
|
+
advanceTimers: jest.advanceTimersByTime,
|
|
503
|
+
} );
|
|
504
|
+
|
|
345
505
|
const borders = {
|
|
346
506
|
top: { ...defaultBorder, width: '4px' },
|
|
347
507
|
right: { ...defaultBorder, width: '1px' },
|
|
@@ -349,8 +509,13 @@ describe( 'BorderBoxControl', () => {
|
|
|
349
509
|
left: { ...defaultBorder, width: '1px' },
|
|
350
510
|
};
|
|
351
511
|
|
|
352
|
-
|
|
353
|
-
|
|
512
|
+
render( <BorderBoxControl { ...props } value={ borders } /> );
|
|
513
|
+
|
|
514
|
+
const widthInput = screen.getAllByRole( 'spinbutton', {
|
|
515
|
+
name: 'Border width',
|
|
516
|
+
} )[ 0 ];
|
|
517
|
+
await user.clear( widthInput );
|
|
518
|
+
await user.type( widthInput, '1' );
|
|
354
519
|
|
|
355
520
|
expect( props.onChange ).toHaveBeenCalledWith( defaultBorder );
|
|
356
521
|
} );
|
|
@@ -44,12 +44,11 @@ export type BorderBoxControlProps = ColorProps &
|
|
|
44
44
|
*/
|
|
45
45
|
value: AnyBorder;
|
|
46
46
|
/**
|
|
47
|
-
*
|
|
48
|
-
* default size in a future version.
|
|
47
|
+
* Size of the control.
|
|
49
48
|
*
|
|
50
|
-
* @default
|
|
49
|
+
* @default 'default'
|
|
51
50
|
*/
|
|
52
|
-
|
|
51
|
+
size?: 'default' | '__unstable-large';
|
|
53
52
|
};
|
|
54
53
|
|
|
55
54
|
export type LinkedButtonProps = {
|
|
@@ -66,12 +65,11 @@ export type LinkedButtonProps = {
|
|
|
66
65
|
*/
|
|
67
66
|
onClick: () => void;
|
|
68
67
|
/**
|
|
69
|
-
*
|
|
70
|
-
* default size in a future version.
|
|
68
|
+
* Size of the control.
|
|
71
69
|
*
|
|
72
|
-
* @default
|
|
70
|
+
* @default 'default'
|
|
73
71
|
*/
|
|
74
|
-
|
|
72
|
+
size?: 'default' | '__unstable-large';
|
|
75
73
|
};
|
|
76
74
|
|
|
77
75
|
export type VisualizerProps = {
|
|
@@ -82,12 +80,11 @@ export type VisualizerProps = {
|
|
|
82
80
|
*/
|
|
83
81
|
value?: Borders;
|
|
84
82
|
/**
|
|
85
|
-
*
|
|
86
|
-
* default size in a future version.
|
|
83
|
+
* Size of the control.
|
|
87
84
|
*
|
|
88
|
-
* @default
|
|
85
|
+
* @default 'default'
|
|
89
86
|
*/
|
|
90
|
-
|
|
87
|
+
size?: 'default' | '__unstable-large';
|
|
91
88
|
};
|
|
92
89
|
|
|
93
90
|
export type SplitControlsProps = ColorProps & {
|
|
@@ -116,10 +113,9 @@ export type SplitControlsProps = ColorProps & {
|
|
|
116
113
|
*/
|
|
117
114
|
value?: Borders;
|
|
118
115
|
/**
|
|
119
|
-
*
|
|
120
|
-
* default size in a future version.
|
|
116
|
+
* Size of the control.
|
|
121
117
|
*
|
|
122
|
-
* @default
|
|
118
|
+
* @default 'default'
|
|
123
119
|
*/
|
|
124
|
-
|
|
120
|
+
size?: 'default' | '__unstable-large';
|
|
125
121
|
};
|
|
@@ -135,6 +135,14 @@ dropdown. The header includes a label for the color picker and a close button.
|
|
|
135
135
|
|
|
136
136
|
- Required: No
|
|
137
137
|
|
|
138
|
+
### `size`: `string`
|
|
139
|
+
|
|
140
|
+
Size of the control.
|
|
141
|
+
|
|
142
|
+
- Required: No
|
|
143
|
+
- Default: `default`
|
|
144
|
+
- Allowed values: `default`, `__unstable-large`
|
|
145
|
+
|
|
138
146
|
### `value`: `Object`
|
|
139
147
|
|
|
140
148
|
An object representing a border or `undefined`. Used to set the current border
|