@wordpress/components 22.1.0 → 23.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 +57 -0
- package/build/alignment-matrix-control/cell.js.map +1 -1
- package/build/alignment-matrix-control/icon.js +4 -2
- package/build/alignment-matrix-control/icon.js.map +1 -1
- package/build/alignment-matrix-control/index.js +25 -1
- package/build/alignment-matrix-control/index.js.map +1 -1
- package/build/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.js +13 -13
- package/build/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.js.map +1 -1
- package/build/alignment-matrix-control/styles/alignment-matrix-control-styles.js +16 -16
- package/build/alignment-matrix-control/styles/alignment-matrix-control-styles.js.map +1 -1
- package/build/alignment-matrix-control/types.js +6 -0
- package/build/alignment-matrix-control/types.js.map +1 -0
- package/build/alignment-matrix-control/utils.js +9 -8
- package/build/alignment-matrix-control/utils.js.map +1 -1
- package/build/angle-picker-control/styles/angle-picker-control-styles.js +9 -9
- package/build/angle-picker-control/styles/angle-picker-control-styles.js.map +1 -1
- package/build/autocomplete/index.js +38 -9
- package/build/autocomplete/index.js.map +1 -1
- package/build/base-control/hooks.js +52 -0
- package/build/base-control/hooks.js.map +1 -0
- package/build/base-control/index.js +24 -7
- package/build/base-control/index.js.map +1 -1
- package/build/base-field/hook.js +0 -14
- package/build/base-field/hook.js.map +1 -1
- package/build/base-field/index.js.map +1 -1
- package/build/base-field/styles.js +5 -5
- package/build/base-field/styles.js.map +1 -1
- package/build/base-field/types.js +6 -0
- package/build/base-field/types.js.map +1 -0
- package/build/border-control/border-control/component.js +1 -0
- package/build/border-control/border-control/component.js.map +1 -1
- package/build/border-control/styles.js +16 -16
- package/build/border-control/styles.js.map +1 -1
- package/build/box-control/linked-button.js +3 -4
- package/build/box-control/linked-button.js.map +1 -1
- package/build/color-palette/index.js +2 -7
- package/build/color-palette/index.js.map +1 -1
- package/build/color-picker/input-with-slider.js +1 -0
- package/build/color-picker/input-with-slider.js.map +1 -1
- package/build/color-picker/styles.js +8 -8
- package/build/color-picker/styles.js.map +1 -1
- package/build/custom-select-control/index.js +14 -2
- package/build/custom-select-control/index.js.map +1 -1
- package/build/dashicon/index.js +1 -4
- package/build/dashicon/index.js.map +1 -1
- package/build/date-time/date-time/index.js +4 -4
- package/build/date-time/date-time/index.js.map +1 -1
- package/build/duotone-picker/duotone-picker.js +2 -2
- package/build/duotone-picker/duotone-picker.js.map +1 -1
- package/build/gradient-picker/index.js +3 -9
- package/build/gradient-picker/index.js.map +1 -1
- package/build/higher-order/with-fallback-styles/index.js +2 -2
- package/build/higher-order/with-fallback-styles/index.js.map +1 -1
- package/build/index.js +13 -1
- package/build/index.js.map +1 -1
- package/build/input-control/index.js +17 -5
- package/build/input-control/index.js.map +1 -1
- package/build/input-control/input-base.js +2 -0
- package/build/input-control/input-base.js.map +1 -1
- package/build/mobile/bottom-sheet/cell.native.js +1 -1
- package/build/mobile/bottom-sheet/cell.native.js.map +1 -1
- package/build/mobile/bottom-sheet/switch-cell.native.js +1 -3
- package/build/mobile/bottom-sheet/switch-cell.native.js.map +1 -1
- package/build/mobile/global-styles-context/index.native.js +8 -8
- package/build/mobile/global-styles-context/index.native.js.map +1 -1
- package/build/mobile/keyboard-aware-flat-list/index.ios.js +4 -2
- package/build/mobile/keyboard-aware-flat-list/index.ios.js.map +1 -1
- package/build/modal/index.js +8 -0
- package/build/modal/index.js.map +1 -1
- package/build/navigator/navigator-provider/component.js +12 -8
- package/build/navigator/navigator-provider/component.js.map +1 -1
- package/build/number-control/styles/number-control-styles.js +8 -8
- package/build/number-control/styles/number-control-styles.js.map +1 -1
- package/build/palette-edit/index.js +72 -33
- package/build/palette-edit/index.js.map +1 -1
- package/build/popover/index.js +10 -2
- package/build/popover/index.js.map +1 -1
- package/build/query-controls/index.js +1 -0
- package/build/query-controls/index.js.map +1 -1
- package/build/snackbar/index.js +35 -24
- package/build/snackbar/index.js.map +1 -1
- package/build/snackbar/list.js +14 -19
- package/build/snackbar/list.js.map +1 -1
- package/build/snackbar/types.js +6 -0
- package/build/snackbar/types.js.map +1 -0
- package/build/tab-panel/index.js +10 -5
- package/build/tab-panel/index.js.map +1 -1
- package/build/theme/color-algorithms.js +118 -0
- package/build/theme/color-algorithms.js.map +1 -0
- package/build/theme/index.js +21 -18
- package/build/theme/index.js.map +1 -1
- package/build/theme/styles.js +10 -7
- package/build/theme/styles.js.map +1 -1
- package/build/toggle-control/index.js +5 -2
- package/build/toggle-control/index.js.map +1 -1
- package/build/ui/context/context-system-provider.js +3 -1
- package/build/ui/context/context-system-provider.js.map +1 -1
- package/build/unit-control/index.js +5 -2
- package/build/unit-control/index.js.map +1 -1
- package/build/utils/colors-values.js +1 -1
- package/build/utils/colors-values.js.map +1 -1
- package/build/utils/config-values.js +0 -2
- package/build/utils/config-values.js.map +1 -1
- package/build/utils/hooks/use-controlled-value.js.map +1 -1
- package/build-module/alignment-matrix-control/cell.js.map +1 -1
- package/build-module/alignment-matrix-control/icon.js +4 -2
- package/build-module/alignment-matrix-control/icon.js.map +1 -1
- package/build-module/alignment-matrix-control/index.js +23 -1
- package/build-module/alignment-matrix-control/index.js.map +1 -1
- package/build-module/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.js +13 -13
- package/build-module/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.js.map +1 -1
- package/build-module/alignment-matrix-control/styles/alignment-matrix-control-styles.js +16 -16
- package/build-module/alignment-matrix-control/styles/alignment-matrix-control-styles.js.map +1 -1
- package/build-module/alignment-matrix-control/types.js +2 -0
- package/build-module/alignment-matrix-control/types.js.map +1 -0
- package/build-module/alignment-matrix-control/utils.js +13 -8
- package/build-module/alignment-matrix-control/utils.js.map +1 -1
- package/build-module/angle-picker-control/styles/angle-picker-control-styles.js +9 -9
- package/build-module/angle-picker-control/styles/angle-picker-control-styles.js.map +1 -1
- package/build-module/autocomplete/index.js +38 -9
- package/build-module/autocomplete/index.js.map +1 -1
- package/build-module/base-control/hooks.js +41 -0
- package/build-module/base-control/hooks.js.map +1 -0
- package/build-module/base-control/index.js +18 -8
- package/build-module/base-control/index.js.map +1 -1
- package/build-module/base-field/hook.js +0 -14
- package/build-module/base-field/hook.js.map +1 -1
- package/build-module/base-field/index.js.map +1 -1
- package/build-module/base-field/styles.js +5 -5
- package/build-module/base-field/styles.js.map +1 -1
- package/build-module/base-field/types.js +2 -0
- package/build-module/base-field/types.js.map +1 -0
- package/build-module/border-control/border-control/component.js +1 -0
- package/build-module/border-control/border-control/component.js.map +1 -1
- package/build-module/border-control/styles.js +17 -17
- package/build-module/border-control/styles.js.map +1 -1
- package/build-module/box-control/linked-button.js +3 -4
- package/build-module/box-control/linked-button.js.map +1 -1
- package/build-module/color-palette/index.js +2 -7
- package/build-module/color-palette/index.js.map +1 -1
- package/build-module/color-picker/input-with-slider.js +1 -0
- package/build-module/color-picker/input-with-slider.js.map +1 -1
- package/build-module/color-picker/styles.js +8 -8
- package/build-module/color-picker/styles.js.map +1 -1
- package/build-module/custom-select-control/index.js +14 -2
- package/build-module/custom-select-control/index.js.map +1 -1
- package/build-module/dashicon/index.js +1 -4
- package/build-module/dashicon/index.js.map +1 -1
- package/build-module/date-time/date-time/index.js +4 -4
- package/build-module/date-time/date-time/index.js.map +1 -1
- package/build-module/duotone-picker/duotone-picker.js +2 -2
- package/build-module/duotone-picker/duotone-picker.js.map +1 -1
- package/build-module/gradient-picker/index.js +3 -8
- package/build-module/gradient-picker/index.js.map +1 -1
- package/build-module/higher-order/with-fallback-styles/index.js +2 -2
- package/build-module/higher-order/with-fallback-styles/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 +16 -5
- package/build-module/input-control/index.js.map +1 -1
- package/build-module/input-control/input-base.js +2 -0
- package/build-module/input-control/input-base.js.map +1 -1
- package/build-module/mobile/bottom-sheet/cell.native.js +1 -1
- package/build-module/mobile/bottom-sheet/cell.native.js.map +1 -1
- package/build-module/mobile/bottom-sheet/switch-cell.native.js +1 -2
- package/build-module/mobile/bottom-sheet/switch-cell.native.js.map +1 -1
- package/build-module/mobile/global-styles-context/index.native.js +8 -7
- package/build-module/mobile/global-styles-context/index.native.js.map +1 -1
- package/build-module/mobile/keyboard-aware-flat-list/index.ios.js +2 -2
- package/build-module/mobile/keyboard-aware-flat-list/index.ios.js.map +1 -1
- package/build-module/modal/index.js +8 -0
- package/build-module/modal/index.js.map +1 -1
- package/build-module/navigator/navigator-provider/component.js +12 -8
- package/build-module/navigator/navigator-provider/component.js.map +1 -1
- package/build-module/number-control/styles/number-control-styles.js +8 -10
- package/build-module/number-control/styles/number-control-styles.js.map +1 -1
- package/build-module/palette-edit/index.js +73 -34
- package/build-module/palette-edit/index.js.map +1 -1
- package/build-module/popover/index.js +10 -2
- package/build-module/popover/index.js.map +1 -1
- package/build-module/query-controls/index.js +1 -0
- package/build-module/query-controls/index.js.map +1 -1
- package/build-module/snackbar/index.js +33 -23
- package/build-module/snackbar/index.js.map +1 -1
- package/build-module/snackbar/list.js +14 -22
- package/build-module/snackbar/list.js.map +1 -1
- package/build-module/snackbar/types.js +2 -0
- package/build-module/snackbar/types.js.map +1 -0
- package/build-module/tab-panel/index.js +10 -5
- package/build-module/tab-panel/index.js.map +1 -1
- package/build-module/theme/color-algorithms.js +105 -0
- package/build-module/theme/color-algorithms.js.map +1 -0
- package/build-module/theme/index.js +21 -17
- package/build-module/theme/index.js.map +1 -1
- package/build-module/theme/styles.js +8 -6
- package/build-module/theme/styles.js.map +1 -1
- package/build-module/toggle-control/index.js +4 -2
- package/build-module/toggle-control/index.js.map +1 -1
- package/build-module/ui/context/context-system-provider.js +3 -2
- package/build-module/ui/context/context-system-provider.js.map +1 -1
- package/build-module/unit-control/index.js +5 -2
- package/build-module/unit-control/index.js.map +1 -1
- package/build-module/utils/colors-values.js +1 -1
- package/build-module/utils/colors-values.js.map +1 -1
- package/build-module/utils/config-values.js +0 -2
- package/build-module/utils/config-values.js.map +1 -1
- package/build-module/utils/hooks/use-controlled-value.js.map +1 -1
- package/build-style/style-rtl.css +92 -75
- package/build-style/style.css +92 -75
- package/build-types/alignment-matrix-control/cell.d.ts +5 -0
- package/build-types/alignment-matrix-control/cell.d.ts.map +1 -0
- package/build-types/alignment-matrix-control/icon.d.ts +6 -0
- package/build-types/alignment-matrix-control/icon.d.ts.map +1 -0
- package/build-types/alignment-matrix-control/index.d.ts +30 -0
- package/build-types/alignment-matrix-control/index.d.ts.map +1 -0
- package/build-types/alignment-matrix-control/stories/index.d.ts +14 -0
- package/build-types/alignment-matrix-control/stories/index.d.ts.map +1 -0
- package/build-types/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.d.ts +19 -0
- package/build-types/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.d.ts.map +1 -0
- package/build-types/alignment-matrix-control/styles/alignment-matrix-control-styles.d.ts +23 -0
- package/build-types/alignment-matrix-control/styles/alignment-matrix-control-styles.d.ts.map +1 -0
- package/build-types/alignment-matrix-control/test/index.d.ts +2 -0
- package/build-types/alignment-matrix-control/test/index.d.ts.map +1 -0
- package/build-types/alignment-matrix-control/types.d.ts +39 -0
- package/build-types/alignment-matrix-control/types.d.ts.map +1 -0
- package/build-types/alignment-matrix-control/utils.d.ts +33 -0
- package/build-types/alignment-matrix-control/utils.d.ts.map +1 -0
- package/build-types/base-control/hooks.d.ts +23 -0
- package/build-types/base-control/hooks.d.ts.map +1 -0
- package/build-types/base-control/index.d.ts +17 -7
- package/build-types/base-control/index.d.ts.map +1 -1
- package/build-types/base-control/stories/index.d.ts.map +1 -1
- package/build-types/base-control/test/index.d.ts +2 -0
- package/build-types/base-control/test/index.d.ts.map +1 -0
- package/build-types/base-control/types.d.ts +8 -2
- package/build-types/base-control/types.d.ts.map +1 -1
- package/build-types/base-field/hook.d.ts +7 -31
- package/build-types/base-field/hook.d.ts.map +1 -1
- package/build-types/base-field/index.d.ts +1 -1
- package/build-types/base-field/index.d.ts.map +1 -1
- package/build-types/base-field/styles.d.ts +5 -5
- package/build-types/base-field/styles.d.ts.map +1 -1
- package/build-types/base-field/test/index.d.ts +2 -0
- package/build-types/base-field/test/index.d.ts.map +1 -0
- package/build-types/base-field/types.d.ts +29 -0
- package/build-types/base-field/types.d.ts.map +1 -0
- package/build-types/border-box-control/border-box-control/hook.d.ts +2 -2
- package/build-types/border-box-control/border-box-control-linked-button/hook.d.ts +2 -2
- package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts +2 -2
- package/build-types/border-box-control/border-box-control-visualizer/hook.d.ts +2 -2
- package/build-types/border-control/border-control/component.d.ts.map +1 -1
- package/build-types/border-control/border-control/hook.d.ts +2 -2
- package/build-types/border-control/border-control-dropdown/hook.d.ts +2 -2
- package/build-types/border-control/border-control-style-picker/hook.d.ts +2 -2
- package/build-types/border-control/styles.d.ts.map +1 -1
- package/build-types/card/card/hook.d.ts +2 -2
- package/build-types/card/card-body/hook.d.ts +2 -2
- package/build-types/card/card-divider/hook.d.ts +2 -2
- package/build-types/card/card-footer/hook.d.ts +2 -2
- package/build-types/card/card-header/hook.d.ts +2 -2
- package/build-types/card/card-media/hook.d.ts +2 -2
- package/build-types/color-palette/index.d.ts +2 -2
- package/build-types/color-palette/index.d.ts.map +1 -1
- package/build-types/color-palette/stories/index.d.ts +6 -7
- package/build-types/color-palette/stories/index.d.ts.map +1 -1
- package/build-types/color-palette/styles.d.ts +1 -1
- package/build-types/color-palette/types.d.ts +1 -1
- package/build-types/color-palette/types.d.ts.map +1 -1
- package/build-types/color-picker/input-with-slider.d.ts.map +1 -1
- package/build-types/color-picker/styles.d.ts +5 -5
- package/build-types/color-picker/styles.d.ts.map +1 -1
- package/build-types/custom-select-control/index.d.ts.map +1 -1
- package/build-types/dashicon/index.d.ts +6 -20
- package/build-types/dashicon/index.d.ts.map +1 -1
- package/build-types/dashicon/types.d.ts +14 -0
- package/build-types/dashicon/types.d.ts.map +1 -1
- package/build-types/date-time/date/styles.d.ts +3 -3
- package/build-types/date-time/date-time/styles.d.ts +3 -3
- package/build-types/date-time/time/styles.d.ts +8 -8
- package/build-types/elevation/hook.d.ts +2 -2
- package/build-types/external-link/styles/external-link-styles.d.ts +1 -1
- package/build-types/flex/flex/hook.d.ts +2 -2
- package/build-types/flex/flex-block/hook.d.ts +2 -2
- package/build-types/flex/flex-item/hook.d.ts +2 -2
- package/build-types/focal-point-picker/styles/focal-point-picker-style.d.ts +2 -5
- package/build-types/focal-point-picker/styles/focal-point-picker-style.d.ts.map +1 -1
- package/build-types/grid/hook.d.ts +2 -2
- package/build-types/h-stack/component.d.ts +1 -1
- package/build-types/h-stack/hook.d.ts +2 -2
- package/build-types/heading/hook.d.ts +2 -2
- 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.map +1 -1
- package/build-types/input-control/stories/index.d.ts +1 -0
- package/build-types/input-control/stories/index.d.ts.map +1 -1
- package/build-types/input-control/types.d.ts +2 -1
- package/build-types/input-control/types.d.ts.map +1 -1
- package/build-types/item-group/item/hook.d.ts +2 -2
- package/build-types/item-group/item-group/hook.d.ts +2 -2
- package/build-types/modal/index.d.ts.map +1 -1
- package/build-types/modal/stories/index.d.ts.map +1 -1
- package/build-types/navigator/navigator-back-button/hook.d.ts +3 -3
- package/build-types/navigator/navigator-button/hook.d.ts +3 -3
- package/build-types/navigator/navigator-provider/component.d.ts.map +1 -1
- package/build-types/number-control/index.d.ts +2 -2
- package/build-types/number-control/index.d.ts.map +1 -1
- package/build-types/number-control/stories/index.d.ts +25 -0
- package/build-types/number-control/stories/index.d.ts.map +1 -0
- package/build-types/number-control/styles/number-control-styles.d.ts +6 -6
- package/build-types/number-control/styles/number-control-styles.d.ts.map +1 -1
- package/build-types/number-control/test/index.d.ts +2 -0
- package/build-types/number-control/test/index.d.ts.map +1 -0
- 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/range-control/index.d.ts +1 -1
- package/build-types/range-control/styles/range-control-styles.d.ts +2 -2
- package/build-types/resizable-box/resize-tooltip/index.d.ts +15 -19
- package/build-types/resizable-box/resize-tooltip/index.d.ts.map +1 -1
- package/build-types/resizable-box/resize-tooltip/label.d.ts +4 -3
- package/build-types/resizable-box/resize-tooltip/label.d.ts.map +1 -1
- package/build-types/scrollable/hook.d.ts +2 -2
- package/build-types/search-control/index.d.ts +1 -1
- package/build-types/search-control/stories/index.d.ts +2 -2
- package/build-types/snackbar/index.d.ts +19 -0
- package/build-types/snackbar/index.d.ts.map +1 -0
- package/build-types/snackbar/list.d.ts +18 -0
- package/build-types/snackbar/list.d.ts.map +1 -0
- package/build-types/snackbar/stories/index.d.ts +16 -0
- package/build-types/snackbar/stories/index.d.ts.map +1 -0
- package/build-types/snackbar/stories/list.d.ts +12 -0
- package/build-types/snackbar/stories/list.d.ts.map +1 -0
- package/build-types/snackbar/types.d.ts +111 -0
- package/build-types/snackbar/types.d.ts.map +1 -0
- package/build-types/spacer/hook.d.ts +2 -2
- package/build-types/spinner/index.d.ts +1 -1
- package/build-types/surface/hook.d.ts +2 -2
- package/build-types/tab-panel/index.d.ts +1 -1
- package/build-types/tab-panel/index.d.ts.map +1 -1
- package/build-types/tab-panel/types.d.ts +19 -1
- package/build-types/tab-panel/types.d.ts.map +1 -1
- package/build-types/text/hook.d.ts +2 -2
- package/build-types/text-control/index.d.ts +2 -2
- package/build-types/text-control/stories/index.d.ts.map +1 -1
- package/build-types/text-control/types.d.ts +1 -5
- package/build-types/text-control/types.d.ts.map +1 -1
- package/build-types/theme/color-algorithms.d.ts +20 -0
- package/build-types/theme/color-algorithms.d.ts.map +1 -0
- package/build-types/theme/index.d.ts +1 -1
- package/build-types/theme/index.d.ts.map +1 -1
- package/build-types/theme/stories/index.d.ts +4 -0
- package/build-types/theme/stories/index.d.ts.map +1 -1
- package/build-types/theme/styles.d.ts +3 -2
- package/build-types/theme/styles.d.ts.map +1 -1
- package/build-types/theme/test/color-algorithms.d.ts +2 -0
- package/build-types/theme/test/color-algorithms.d.ts.map +1 -0
- package/build-types/theme/types.d.ts +41 -3
- package/build-types/theme/types.d.ts.map +1 -1
- package/build-types/toggle-control/index.d.ts.map +1 -1
- package/build-types/toggle-group-control/toggle-group-control/as-button-group.d.ts +2 -2
- package/build-types/toggle-group-control/toggle-group-control/as-radio-group.d.ts +2 -2
- package/build-types/toggle-group-control/toggle-group-control-option/component.d.ts +1 -1
- package/build-types/toggle-group-control/toggle-group-control-option-icon/component.d.ts +1 -1
- package/build-types/tools-panel/tools-panel/hook.d.ts +2 -2
- package/build-types/tools-panel/tools-panel-header/hook.d.ts +2 -2
- package/build-types/tools-panel/tools-panel-item/hook.d.ts +2 -2
- package/build-types/truncate/hook.d.ts +2 -2
- package/build-types/ui/context/context-system-provider.d.ts.map +1 -1
- package/build-types/ui/control-group/hook.d.ts +2 -2
- package/build-types/ui/control-label/hook.d.ts +2 -2
- package/build-types/ui/form-group/form-group.d.ts +2 -2
- package/build-types/ui/form-group/use-form-group.d.ts +5 -5
- package/build-types/unit-control/index.d.ts +2 -1
- package/build-types/unit-control/index.d.ts.map +1 -1
- package/build-types/unit-control/styles/unit-control-styles.d.ts +2 -2
- package/build-types/unit-control/types.d.ts +4 -0
- package/build-types/unit-control/types.d.ts.map +1 -1
- package/build-types/utils/config-values.d.ts +0 -2
- package/build-types/utils/hooks/use-controlled-value.d.ts +2 -1
- package/build-types/utils/hooks/use-controlled-value.d.ts.map +1 -1
- package/build-types/v-stack/component.d.ts +2 -2
- package/build-types/v-stack/hook.d.ts +2 -2
- package/build-types/v-stack/stories/index.d.ts +2 -2
- package/package.json +21 -20
- package/src/alignment-matrix-control/README.md +7 -7
- package/src/alignment-matrix-control/{cell.js → cell.tsx} +7 -1
- package/src/alignment-matrix-control/{icon.js → icon.tsx} +6 -3
- package/src/alignment-matrix-control/{index.js → index.tsx} +31 -4
- package/src/alignment-matrix-control/stories/{index.js → index.tsx} +17 -9
- package/src/alignment-matrix-control/styles/{alignment-matrix-control-icon-styles.js → alignment-matrix-control-icon-styles.ts} +11 -3
- package/src/alignment-matrix-control/styles/{alignment-matrix-control-styles.js → alignment-matrix-control-styles.ts} +13 -3
- package/src/alignment-matrix-control/test/{index.js → index.tsx} +5 -5
- package/src/alignment-matrix-control/types.ts +54 -0
- package/src/alignment-matrix-control/{utils.js → utils.tsx} +24 -14
- package/src/angle-picker-control/styles/angle-picker-control-styles.js +4 -0
- package/src/autocomplete/index.js +43 -12
- package/src/base-control/README.md +21 -12
- package/src/base-control/hooks.ts +45 -0
- package/src/base-control/index.tsx +18 -7
- package/src/base-control/stories/index.tsx +8 -10
- package/src/base-control/test/index.tsx +52 -0
- package/src/base-control/types.ts +8 -2
- package/src/base-field/README.md +21 -22
- package/src/base-field/{hook.js → hook.ts} +5 -15
- package/src/base-field/{index.js → index.ts} +0 -0
- package/src/base-field/{styles.js → styles.ts} +2 -2
- package/src/base-field/test/__snapshots__/{index.js.snap → index.tsx.snap} +4 -4
- package/src/base-field/test/{index.js → index.tsx} +10 -5
- package/src/base-field/types.ts +29 -0
- package/src/border-box-control/border-box-control/README.md +1 -0
- package/src/border-box-control/test/index.js +3 -1
- package/src/border-control/border-control/component.tsx +1 -0
- package/src/border-control/styles.ts +1 -10
- package/src/box-control/linked-button.js +8 -11
- package/src/box-control/test/index.js +206 -135
- package/src/button/stories/index.js +30 -0
- package/src/button/style.scss +17 -14
- package/src/button/test/index.js +32 -15
- package/src/card/test/index.tsx +32 -20
- package/src/circular-option-picker/style.scss +1 -0
- package/src/color-palette/index.tsx +4 -6
- package/src/color-palette/stories/index.tsx +1 -5
- package/src/color-palette/test/__snapshots__/index.tsx.snap +4 -4
- package/src/color-palette/test/index.tsx +84 -36
- package/src/color-palette/types.ts +1 -1
- package/src/color-picker/README.md +1 -0
- package/src/color-picker/input-with-slider.tsx +1 -0
- package/src/color-picker/styles.ts +0 -4
- package/src/confirm-dialog/README.md +3 -2
- package/src/custom-select-control/README.md +14 -0
- package/src/custom-select-control/index.js +14 -2
- package/src/dashicon/{index.js → index.tsx} +10 -4
- package/src/dashicon/types.ts +17 -0
- package/src/date-time/date-time/index.tsx +2 -2
- package/src/dimension-control/test/__snapshots__/index.test.js.snap +4 -8
- package/src/disabled/test/index.tsx +21 -11
- package/src/dropdown/test/index.js +39 -49
- package/src/dropdown-menu/test/index.js +18 -12
- package/src/duotone-picker/duotone-picker.js +2 -2
- package/src/focal-point-picker/test/media.js +26 -21
- package/src/form-token-field/style.scss +1 -1
- package/src/gradient-picker/index.js +5 -8
- package/src/grid/test/grid.tsx +31 -31
- package/src/higher-order/navigate-regions/style.scss +2 -22
- package/src/higher-order/with-fallback-styles/index.js +4 -2
- package/src/higher-order/with-filters/test/index.js +94 -101
- package/src/higher-order/with-focus-return/test/index.js +1 -4
- package/src/index.js +2 -2
- package/src/input-control/index.tsx +42 -28
- package/src/input-control/input-base.tsx +8 -1
- package/src/input-control/stories/index.tsx +6 -0
- package/src/input-control/test/index.js +18 -0
- package/src/input-control/types.ts +2 -0
- package/src/mobile/bottom-sheet/cell.native.js +1 -1
- package/src/mobile/bottom-sheet/switch-cell.native.js +2 -2
- package/src/mobile/global-styles-context/index.native.js +9 -11
- package/src/mobile/keyboard-aware-flat-list/index.ios.js +2 -2
- package/src/mobile/link-settings/test/edit.native.js +68 -124
- package/src/modal/index.tsx +11 -0
- package/src/modal/stories/index.tsx +3 -0
- package/src/modal/test/index.tsx +15 -0
- package/src/navigation/stories/index.js +6 -6
- package/src/navigation/stories/{controlled-state.js → utils/controlled-state.js} +3 -3
- package/src/navigation/stories/{default.js → utils/default.js} +3 -3
- package/src/navigation/stories/{group.js → utils/group.js} +4 -4
- package/src/navigation/stories/{hide-if-empty.js → utils/hide-if-empty.js} +3 -3
- package/src/navigation/stories/{more-examples.js → utils/more-examples.js} +4 -4
- package/src/navigation/stories/{search.js → utils/search.js} +5 -5
- package/src/navigator/navigator-provider/component.tsx +13 -10
- package/src/notice/test/list.js +8 -5
- package/src/number-control/stories/{index.js → index.tsx} +24 -7
- package/src/number-control/styles/{number-control-styles.js → number-control-styles.ts} +5 -3
- package/src/number-control/test/index.tsx +600 -0
- package/src/palette-edit/index.js +88 -39
- package/src/palette-edit/test/index.js +25 -1
- package/src/popover/index.tsx +10 -2
- package/src/popover/style.scss +12 -11
- package/src/popover/test/index.tsx +25 -15
- package/src/query-controls/index.js +1 -0
- package/src/range-control/test/index.tsx +57 -60
- package/src/resizable-box/style.scss +1 -0
- package/src/sandbox/test/index.js +13 -11
- package/src/search-control/style.scss +4 -0
- package/src/snackbar/README.md +63 -8
- package/src/snackbar/{index.js → index.tsx} +46 -28
- package/src/snackbar/{list.js → list.tsx} +20 -21
- package/src/snackbar/stories/index.tsx +96 -0
- package/src/snackbar/stories/list.tsx +98 -0
- package/src/snackbar/types.ts +116 -0
- package/src/tab-panel/README.md +9 -0
- package/src/tab-panel/index.tsx +14 -3
- package/src/tab-panel/style.scss +46 -34
- package/src/tab-panel/test/index.tsx +111 -0
- package/src/tab-panel/types.ts +20 -1
- package/src/text/test/__snapshots__/index.tsx.snap +1 -0
- package/src/text/test/index.tsx +98 -46
- package/src/text-control/stories/index.tsx +0 -1
- package/src/text-control/types.ts +1 -6
- package/src/theme/README.md +32 -2
- package/src/theme/color-algorithms.ts +138 -0
- package/src/theme/index.tsx +23 -16
- package/src/theme/stories/index.tsx +67 -0
- package/src/theme/styles.ts +22 -17
- package/src/theme/test/color-algorithms.ts +100 -0
- package/src/theme/test/index.tsx +68 -35
- package/src/theme/types.ts +43 -3
- package/src/toggle-control/index.tsx +4 -2
- package/src/toggle-group-control/test/index.tsx +13 -2
- package/src/toolbar-group/test/index.js +8 -6
- package/src/tools-panel/stories/index.js +1 -1
- package/src/tools-panel/stories/{tools-panel-with-item-group-slot.js → utils/tools-panel-with-item-group-slot.js} +14 -11
- package/src/tools-panel/test/index.js +20 -14
- package/src/tooltip/README.md +7 -0
- package/src/tooltip/style.scss +2 -2
- package/src/tooltip/test/index.js +109 -18
- package/src/ui/context/context-system-provider.js +3 -2
- package/src/ui/context/test/context-system-provider.js +5 -4
- package/src/ui/control-label/test/index.js +3 -5
- package/src/unit-control/README.md +9 -1
- package/src/unit-control/index.tsx +3 -0
- package/src/unit-control/test/index.tsx +1 -0
- package/src/unit-control/types.ts +4 -0
- package/src/utils/colors-values.js +1 -1
- package/src/utils/config-values.js +0 -2
- package/src/utils/hooks/use-controlled-value.ts +2 -2
- package/src/utils/theme-variables.scss +20 -0
- package/tsconfig.json +2 -4
- package/tsconfig.tsbuildinfo +1 -1
- package/src/number-control/test/index.js +0 -478
- package/src/snackbar/stories/index.js +0 -89
|
@@ -50,6 +50,24 @@ describe( 'InputControl', () => {
|
|
|
50
50
|
|
|
51
51
|
expect( input ).toBeInTheDocument();
|
|
52
52
|
} );
|
|
53
|
+
|
|
54
|
+
it( 'should render help text as description', () => {
|
|
55
|
+
render( <InputControl help="My help text" /> );
|
|
56
|
+
expect(
|
|
57
|
+
screen.getByRole( 'textbox', { description: 'My help text' } )
|
|
58
|
+
).toBeInTheDocument();
|
|
59
|
+
} );
|
|
60
|
+
|
|
61
|
+
it( 'should render help as aria-details when not plain text', () => {
|
|
62
|
+
render( <InputControl help={ <a href="/foo">My help text</a> } /> );
|
|
63
|
+
|
|
64
|
+
const input = screen.getByRole( 'textbox' );
|
|
65
|
+
const help = screen.getByRole( 'link', { name: 'My help text' } );
|
|
66
|
+
|
|
67
|
+
expect(
|
|
68
|
+
help.closest( `#${ input.getAttribute( 'aria-details' ) }` )
|
|
69
|
+
).toBeVisible();
|
|
70
|
+
} );
|
|
53
71
|
} );
|
|
54
72
|
|
|
55
73
|
describe( 'Ensurance of focus for number inputs', () => {
|
|
@@ -15,6 +15,7 @@ import type { useDrag } from '@use-gesture/react';
|
|
|
15
15
|
import type { StateReducer } from './reducer/state';
|
|
16
16
|
import type { WordPressComponentProps } from '../ui/context';
|
|
17
17
|
import type { FlexProps } from '../flex/types';
|
|
18
|
+
import type { BaseControlProps } from '../base-control/types';
|
|
18
19
|
|
|
19
20
|
export type LabelPosition = 'top' | 'bottom' | 'side' | 'edge';
|
|
20
21
|
|
|
@@ -171,6 +172,7 @@ export interface InputBaseProps extends BaseProps, FlexProps {
|
|
|
171
172
|
|
|
172
173
|
export interface InputControlProps
|
|
173
174
|
extends Omit< InputBaseProps, 'children' | 'isFocused' | keyof FlexProps >,
|
|
175
|
+
Pick< BaseControlProps, 'help' >,
|
|
174
176
|
/**
|
|
175
177
|
* The `prefix` prop in `WordPressComponentProps< InputFieldProps, 'input', false >` comes from the
|
|
176
178
|
* `HTMLInputAttributes` and clashes with the one from `InputBaseProps`. So we have to omit it from
|
|
@@ -58,7 +58,7 @@ class BottomSheetCell extends Component {
|
|
|
58
58
|
|
|
59
59
|
AccessibilityInfo.isScreenReaderEnabled().then(
|
|
60
60
|
( isScreenReaderEnabled ) => {
|
|
61
|
-
if ( this.isCurrent ) {
|
|
61
|
+
if ( this.isCurrent && isScreenReaderEnabled ) {
|
|
62
62
|
this.setState( { isScreenReaderEnabled } );
|
|
63
63
|
}
|
|
64
64
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
4
|
import { Switch } from 'react-native';
|
|
5
|
-
|
|
5
|
+
|
|
6
6
|
/**
|
|
7
7
|
* WordPress dependencies
|
|
8
8
|
*/
|
|
@@ -20,7 +20,7 @@ export default function BottomSheetSwitchCell( props ) {
|
|
|
20
20
|
};
|
|
21
21
|
|
|
22
22
|
const getAccessibilityLabel = () => {
|
|
23
|
-
if (
|
|
23
|
+
if ( ! cellProps.help ) {
|
|
24
24
|
return value
|
|
25
25
|
? sprintf(
|
|
26
26
|
/* translators: accessibility text. Switch setting ON state. %s: Switch title. */
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* External dependencies
|
|
3
|
-
*/
|
|
4
|
-
import { pick } from 'lodash';
|
|
5
|
-
|
|
6
1
|
/**
|
|
7
2
|
* WordPress dependencies
|
|
8
3
|
*/
|
|
@@ -34,15 +29,18 @@ export const getMergedGlobalStyles = (
|
|
|
34
29
|
const baseGlobalColors = {
|
|
35
30
|
baseColors: baseGlobalStyles || {},
|
|
36
31
|
};
|
|
37
|
-
const blockStyleAttributes =
|
|
38
|
-
blockAttributes
|
|
39
|
-
|
|
32
|
+
const blockStyleAttributes = Object.fromEntries(
|
|
33
|
+
Object.entries( blockAttributes ?? {} ).filter( ( [ key ] ) =>
|
|
34
|
+
BLOCK_STYLE_ATTRIBUTES.includes( key )
|
|
35
|
+
)
|
|
40
36
|
);
|
|
37
|
+
|
|
41
38
|
// This prevents certain wrapper styles from being applied to blocks that
|
|
42
39
|
// don't support them yet.
|
|
43
|
-
const wrapperPropsStyleFiltered =
|
|
44
|
-
wrapperPropsStyle
|
|
45
|
-
|
|
40
|
+
const wrapperPropsStyleFiltered = Object.fromEntries(
|
|
41
|
+
Object.entries( wrapperPropsStyle ?? {} ).filter( ( [ key ] ) =>
|
|
42
|
+
BLOCK_STYLE_ATTRIBUTES.includes( key )
|
|
43
|
+
)
|
|
46
44
|
);
|
|
47
45
|
|
|
48
46
|
const mergedStyle = {
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { KeyboardAwareScrollView } from 'react-native-keyboard-aware-scroll-view';
|
|
5
5
|
import { FlatList } from 'react-native';
|
|
6
|
-
import
|
|
6
|
+
import fastDeepEqual from 'fast-deep-equal/es6';
|
|
7
7
|
import Animated, {
|
|
8
8
|
useAnimatedScrollHandler,
|
|
9
9
|
useSharedValue,
|
|
@@ -14,7 +14,7 @@ import Animated, {
|
|
|
14
14
|
*/
|
|
15
15
|
import { memo, useCallback, useRef } from '@wordpress/element';
|
|
16
16
|
|
|
17
|
-
const List = memo( FlatList,
|
|
17
|
+
const List = memo( FlatList, fastDeepEqual );
|
|
18
18
|
const AnimatedKeyboardAwareScrollView = Animated.createAnimatedComponent(
|
|
19
19
|
KeyboardAwareScrollView
|
|
20
20
|
);
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* External dependencies
|
|
5
5
|
*/
|
|
6
6
|
import Clipboard from '@react-native-clipboard/clipboard';
|
|
7
|
-
import { fireEvent, initializeEditor
|
|
7
|
+
import { fireEvent, initializeEditor } from 'test/helpers';
|
|
8
8
|
/**
|
|
9
9
|
* WordPress dependencies
|
|
10
10
|
*/
|
|
@@ -76,24 +76,18 @@ describe.each( [
|
|
|
76
76
|
Clipboard.getString.mockReturnValue( url );
|
|
77
77
|
|
|
78
78
|
// Act.
|
|
79
|
-
const block = await
|
|
80
|
-
|
|
81
|
-
type === 'core/image' ? /Image Block/ : /Button Block/
|
|
82
|
-
)
|
|
79
|
+
const [ block ] = await subject.findAllByLabelText(
|
|
80
|
+
type === 'core/image' ? /Image Block/ : /Button Block/
|
|
83
81
|
);
|
|
84
82
|
fireEvent.press( block );
|
|
85
83
|
fireEvent.press( block );
|
|
86
|
-
fireEvent.press(
|
|
87
|
-
await waitFor( () => subject.getByLabelText( 'Open Settings' ) )
|
|
88
|
-
);
|
|
84
|
+
fireEvent.press( await subject.findByLabelText( 'Open Settings' ) );
|
|
89
85
|
|
|
90
86
|
// Assert.
|
|
91
|
-
const linkToField = await
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
}`
|
|
96
|
-
)
|
|
87
|
+
const linkToField = await subject.findByLabelText(
|
|
88
|
+
`Link to, ${
|
|
89
|
+
type === 'core/image' ? 'None' : 'Search or type URL'
|
|
90
|
+
}`
|
|
97
91
|
);
|
|
98
92
|
expect( linkToField ).toBeTruthy();
|
|
99
93
|
} );
|
|
@@ -113,37 +107,29 @@ describe.each( [
|
|
|
113
107
|
Clipboard.getString.mockReturnValue( url );
|
|
114
108
|
|
|
115
109
|
// Act.
|
|
116
|
-
const block = await
|
|
117
|
-
|
|
118
|
-
type === 'core/image' ? /Image Block/ : /Button Block/
|
|
119
|
-
)
|
|
110
|
+
const [ block ] = await subject.findAllByLabelText(
|
|
111
|
+
type === 'core/image' ? /Image Block/ : /Button Block/
|
|
120
112
|
);
|
|
121
113
|
fireEvent.press( block );
|
|
122
114
|
fireEvent.press( block );
|
|
123
115
|
fireEvent.press(
|
|
124
|
-
await
|
|
125
|
-
subject.getByLabelText( 'Open Settings' )
|
|
126
|
-
)
|
|
116
|
+
await subject.findByLabelText( 'Open Settings' )
|
|
127
117
|
);
|
|
128
118
|
fireEvent.press(
|
|
129
|
-
await
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
}`
|
|
136
|
-
)
|
|
119
|
+
await subject.findByLabelText(
|
|
120
|
+
`Link to, ${
|
|
121
|
+
type === 'core/image'
|
|
122
|
+
? 'None'
|
|
123
|
+
: 'Search or type URL'
|
|
124
|
+
}`
|
|
137
125
|
)
|
|
138
126
|
);
|
|
139
127
|
if ( type === 'core/image' ) {
|
|
140
128
|
fireEvent.press(
|
|
141
|
-
await
|
|
142
|
-
subject.getByLabelText( /Custom URL/ )
|
|
143
|
-
)
|
|
129
|
+
await subject.findByLabelText( /Custom URL/ )
|
|
144
130
|
);
|
|
145
131
|
}
|
|
146
|
-
await
|
|
132
|
+
await subject.findByLabelText( 'Apply' );
|
|
147
133
|
|
|
148
134
|
// Assert.
|
|
149
135
|
expect(
|
|
@@ -166,60 +152,46 @@ describe.each( [
|
|
|
166
152
|
Clipboard.getString.mockReturnValue( url );
|
|
167
153
|
|
|
168
154
|
// Act.
|
|
169
|
-
const block = await
|
|
170
|
-
|
|
171
|
-
type === 'core/image' ? /Image Block/ : /Button Block/
|
|
172
|
-
)
|
|
155
|
+
const [ block ] = await subject.findAllByLabelText(
|
|
156
|
+
type === 'core/image' ? /Image Block/ : /Button Block/
|
|
173
157
|
);
|
|
174
158
|
fireEvent.press( block );
|
|
175
159
|
fireEvent.press( block );
|
|
176
160
|
fireEvent.press(
|
|
177
|
-
await
|
|
178
|
-
subject.getByLabelText( 'Open Settings' )
|
|
179
|
-
)
|
|
161
|
+
await subject.findByLabelText( 'Open Settings' )
|
|
180
162
|
);
|
|
181
163
|
fireEvent.press(
|
|
182
|
-
await
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
}`
|
|
189
|
-
)
|
|
164
|
+
await subject.findByLabelText(
|
|
165
|
+
`Link to, ${
|
|
166
|
+
type === 'core/image'
|
|
167
|
+
? 'None'
|
|
168
|
+
: 'Search or type URL'
|
|
169
|
+
}`
|
|
190
170
|
)
|
|
191
171
|
);
|
|
192
172
|
if ( type === 'core/image' ) {
|
|
193
173
|
fireEvent.press(
|
|
194
|
-
await
|
|
195
|
-
subject.getByLabelText( 'Custom URL. Empty' )
|
|
196
|
-
)
|
|
174
|
+
await subject.findByLabelText( 'Custom URL. Empty' )
|
|
197
175
|
);
|
|
198
176
|
}
|
|
199
177
|
fireEvent.press(
|
|
200
|
-
await
|
|
201
|
-
|
|
202
|
-
`Copy URL from the clipboard, ${ url }`
|
|
203
|
-
)
|
|
178
|
+
await subject.findByLabelText(
|
|
179
|
+
`Copy URL from the clipboard, ${ url }`
|
|
204
180
|
)
|
|
205
181
|
);
|
|
206
182
|
fireEvent.press(
|
|
207
|
-
await
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
}`
|
|
212
|
-
)
|
|
183
|
+
await subject.findByLabelText(
|
|
184
|
+
`Link to, ${
|
|
185
|
+
type === 'core/image' ? 'Custom URL' : url
|
|
186
|
+
}`
|
|
213
187
|
)
|
|
214
188
|
);
|
|
215
189
|
if ( type === 'core/image' ) {
|
|
216
190
|
fireEvent.press(
|
|
217
|
-
await
|
|
218
|
-
subject.getByLabelText( `Custom URL, ${ url }` )
|
|
219
|
-
)
|
|
191
|
+
await subject.findByLabelText( `Custom URL, ${ url }` )
|
|
220
192
|
);
|
|
221
193
|
}
|
|
222
|
-
await
|
|
194
|
+
await subject.findByLabelText( 'Apply' );
|
|
223
195
|
|
|
224
196
|
// Assert.
|
|
225
197
|
expect(
|
|
@@ -245,51 +217,37 @@ describe.each( [
|
|
|
245
217
|
Clipboard.getString.mockReturnValue( url );
|
|
246
218
|
|
|
247
219
|
// Act.
|
|
248
|
-
const block = await
|
|
249
|
-
|
|
250
|
-
type === 'core/image'
|
|
251
|
-
? /Image Block/
|
|
252
|
-
: /Button Block/
|
|
253
|
-
)
|
|
220
|
+
const [ block ] = await subject.findAllByLabelText(
|
|
221
|
+
type === 'core/image' ? /Image Block/ : /Button Block/
|
|
254
222
|
);
|
|
255
223
|
fireEvent.press( block );
|
|
256
224
|
fireEvent.press( block );
|
|
257
225
|
fireEvent.press(
|
|
258
|
-
await
|
|
259
|
-
subject.getByLabelText( 'Open Settings' )
|
|
260
|
-
)
|
|
226
|
+
await subject.findByLabelText( 'Open Settings' )
|
|
261
227
|
);
|
|
262
228
|
fireEvent.press(
|
|
263
|
-
await
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
}`
|
|
270
|
-
)
|
|
229
|
+
await subject.findByLabelText(
|
|
230
|
+
`Link to, ${
|
|
231
|
+
type === 'core/image'
|
|
232
|
+
? 'None'
|
|
233
|
+
: 'Search or type URL'
|
|
234
|
+
}`
|
|
271
235
|
)
|
|
272
236
|
);
|
|
273
237
|
if ( type === 'core/image' ) {
|
|
274
238
|
fireEvent.press(
|
|
275
|
-
await
|
|
276
|
-
subject.getByLabelText( /Custom URL/ )
|
|
277
|
-
)
|
|
239
|
+
await subject.findByLabelText( /Custom URL/ )
|
|
278
240
|
);
|
|
279
241
|
}
|
|
280
|
-
await
|
|
281
|
-
|
|
282
|
-
`Copy URL from the clipboard, ${ url }`
|
|
283
|
-
)
|
|
242
|
+
await subject.findByLabelText(
|
|
243
|
+
`Copy URL from the clipboard, ${ url }`
|
|
284
244
|
);
|
|
285
245
|
|
|
286
246
|
// Assert.
|
|
287
|
-
const clipboardUrl = await
|
|
288
|
-
subject.getByText( url )
|
|
289
|
-
);
|
|
247
|
+
const clipboardUrl = await subject.findByText( url );
|
|
290
248
|
expect( clipboardUrl ).toBeTruthy();
|
|
291
|
-
const clipboardNote = await
|
|
292
|
-
|
|
249
|
+
const clipboardNote = await subject.findByText(
|
|
250
|
+
__( 'From clipboard' )
|
|
293
251
|
);
|
|
294
252
|
expect( clipboardNote ).toBeTruthy();
|
|
295
253
|
}
|
|
@@ -312,53 +270,39 @@ describe.each( [
|
|
|
312
270
|
Clipboard.getString.mockReturnValue( url );
|
|
313
271
|
|
|
314
272
|
// Act.
|
|
315
|
-
const block = await
|
|
316
|
-
|
|
317
|
-
type === 'core/image'
|
|
318
|
-
? /Image Block/
|
|
319
|
-
: /Button Block/
|
|
320
|
-
)
|
|
273
|
+
const [ block ] = await subject.findAllByLabelText(
|
|
274
|
+
type === 'core/image' ? /Image Block/ : /Button Block/
|
|
321
275
|
);
|
|
322
276
|
fireEvent.press( block );
|
|
323
277
|
fireEvent.press( block );
|
|
324
278
|
fireEvent.press(
|
|
325
|
-
await
|
|
326
|
-
subject.getByLabelText( 'Open Settings' )
|
|
327
|
-
)
|
|
279
|
+
await subject.findByLabelText( 'Open Settings' )
|
|
328
280
|
);
|
|
329
281
|
fireEvent.press(
|
|
330
|
-
await
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
}`
|
|
337
|
-
)
|
|
282
|
+
await subject.findByLabelText(
|
|
283
|
+
`Link to, ${
|
|
284
|
+
type === 'core/image'
|
|
285
|
+
? 'None'
|
|
286
|
+
: 'Search or type URL'
|
|
287
|
+
}`
|
|
338
288
|
)
|
|
339
289
|
);
|
|
340
290
|
if ( type === 'core/image' ) {
|
|
341
291
|
fireEvent.press(
|
|
342
|
-
await
|
|
343
|
-
subject.getByLabelText( /Custom URL/ )
|
|
344
|
-
)
|
|
292
|
+
await subject.findByLabelText( /Custom URL/ )
|
|
345
293
|
);
|
|
346
294
|
}
|
|
347
295
|
fireEvent.press(
|
|
348
|
-
await
|
|
349
|
-
|
|
350
|
-
`Copy URL from the clipboard, ${ url }`
|
|
351
|
-
)
|
|
296
|
+
await subject.findByLabelText(
|
|
297
|
+
`Copy URL from the clipboard, ${ url }`
|
|
352
298
|
)
|
|
353
299
|
);
|
|
354
300
|
|
|
355
301
|
// Assert.
|
|
356
|
-
const linkToField = await
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
}`
|
|
361
|
-
)
|
|
302
|
+
const linkToField = await subject.findByLabelText(
|
|
303
|
+
`Link to, ${
|
|
304
|
+
type === 'core/image' ? 'Custom URL' : url
|
|
305
|
+
}`
|
|
362
306
|
);
|
|
363
307
|
expect( linkToField ).toBeTruthy();
|
|
364
308
|
}
|
package/src/modal/index.tsx
CHANGED
|
@@ -98,6 +98,17 @@ function UnforwardedModal(
|
|
|
98
98
|
}, [ bodyOpenClassName ] );
|
|
99
99
|
|
|
100
100
|
function handleEscapeKeyDown( event: KeyboardEvent< HTMLDivElement > ) {
|
|
101
|
+
if (
|
|
102
|
+
// Ignore keydowns from IMEs
|
|
103
|
+
event.nativeEvent.isComposing ||
|
|
104
|
+
// Workaround for Mac Safari where the final Enter/Backspace of an IME composition
|
|
105
|
+
// is `isComposing=false`, even though it's technically still part of the composition.
|
|
106
|
+
// These can only be detected by keyCode.
|
|
107
|
+
event.keyCode === 229
|
|
108
|
+
) {
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
|
|
101
112
|
if (
|
|
102
113
|
shouldCloseOnEsc &&
|
|
103
114
|
event.code === 'Escape' &&
|
|
@@ -12,6 +12,7 @@ import { useState } from '@wordpress/element';
|
|
|
12
12
|
* Internal dependencies
|
|
13
13
|
*/
|
|
14
14
|
import Button from '../../button';
|
|
15
|
+
import InputControl from '../../input-control';
|
|
15
16
|
import Modal from '../';
|
|
16
17
|
import type { ModalProps } from '../types';
|
|
17
18
|
|
|
@@ -75,6 +76,8 @@ const Template: ComponentStory< typeof Modal > = ( {
|
|
|
75
76
|
anim id est laborum.
|
|
76
77
|
</p>
|
|
77
78
|
|
|
79
|
+
<InputControl style={ { marginBottom: '20px' } } />
|
|
80
|
+
|
|
78
81
|
<Button variant="secondary" onClick={ closeModal }>
|
|
79
82
|
Close Modal
|
|
80
83
|
</Button>
|
package/src/modal/test/index.tsx
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
4
|
import { render, screen, within } from '@testing-library/react';
|
|
5
|
+
import userEvent from '@testing-library/user-event';
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* Internal dependencies
|
|
@@ -69,4 +70,18 @@ describe( 'Modal', () => {
|
|
|
69
70
|
const title = within( dialog ).queryByText( 'Test Title' );
|
|
70
71
|
expect( title ).not.toBeInTheDocument();
|
|
71
72
|
} );
|
|
73
|
+
|
|
74
|
+
it( 'should call onRequestClose when the escape key is pressed', async () => {
|
|
75
|
+
const user = userEvent.setup( {
|
|
76
|
+
advanceTimers: jest.advanceTimersByTime,
|
|
77
|
+
} );
|
|
78
|
+
const onRequestClose = jest.fn();
|
|
79
|
+
render(
|
|
80
|
+
<Modal onRequestClose={ onRequestClose }>
|
|
81
|
+
<p>Modal content</p>
|
|
82
|
+
</Modal>
|
|
83
|
+
);
|
|
84
|
+
await user.keyboard( '[Escape]' );
|
|
85
|
+
expect( onRequestClose ).toHaveBeenCalled();
|
|
86
|
+
} );
|
|
72
87
|
} );
|
|
@@ -6,12 +6,12 @@ import NavigationBackButton from '../back-button';
|
|
|
6
6
|
import NavigationGroup from '../group';
|
|
7
7
|
import NavigationItem from '../item';
|
|
8
8
|
import NavigationMenu from '../menu';
|
|
9
|
-
import { DefaultStory } from './default';
|
|
10
|
-
import { GroupStory } from './group';
|
|
11
|
-
import { ControlledStateStory } from './controlled-state';
|
|
12
|
-
import { SearchStory } from './search';
|
|
13
|
-
import { MoreExamplesStory } from './more-examples';
|
|
14
|
-
import { HideIfEmptyStory } from './hide-if-empty';
|
|
9
|
+
import { DefaultStory } from './utils/default';
|
|
10
|
+
import { GroupStory } from './utils/group';
|
|
11
|
+
import { ControlledStateStory } from './utils/controlled-state';
|
|
12
|
+
import { SearchStory } from './utils/search';
|
|
13
|
+
import { MoreExamplesStory } from './utils/more-examples';
|
|
14
|
+
import { HideIfEmptyStory } from './utils/hide-if-empty';
|
|
15
15
|
import './style.css';
|
|
16
16
|
|
|
17
17
|
export default {
|
|
@@ -7,9 +7,9 @@ import { useState } from '@wordpress/element';
|
|
|
7
7
|
/**
|
|
8
8
|
* Internal dependencies
|
|
9
9
|
*/
|
|
10
|
-
import Navigation from '
|
|
11
|
-
import NavigationItem from '
|
|
12
|
-
import NavigationMenu from '
|
|
10
|
+
import Navigation from '../..';
|
|
11
|
+
import NavigationItem from '../../item';
|
|
12
|
+
import NavigationMenu from '../../menu';
|
|
13
13
|
|
|
14
14
|
export function ControlledStateStory() {
|
|
15
15
|
const [ activeItem, setActiveItem ] = useState( 'item-1' );
|
|
@@ -6,9 +6,9 @@ import { useState } from '@wordpress/element';
|
|
|
6
6
|
/**
|
|
7
7
|
* Internal dependencies
|
|
8
8
|
*/
|
|
9
|
-
import Navigation from '
|
|
10
|
-
import NavigationItem from '
|
|
11
|
-
import NavigationMenu from '
|
|
9
|
+
import Navigation from '../..';
|
|
10
|
+
import NavigationItem from '../../item';
|
|
11
|
+
import NavigationMenu from '../../menu';
|
|
12
12
|
|
|
13
13
|
export function DefaultStory() {
|
|
14
14
|
const [ activeItem, setActiveItem ] = useState( 'item-1' );
|
|
@@ -6,10 +6,10 @@ import { useState } from '@wordpress/element';
|
|
|
6
6
|
/**
|
|
7
7
|
* Internal dependencies
|
|
8
8
|
*/
|
|
9
|
-
import Navigation from '
|
|
10
|
-
import NavigationItem from '
|
|
11
|
-
import NavigationMenu from '
|
|
12
|
-
import NavigationGroup from '
|
|
9
|
+
import Navigation from '../..';
|
|
10
|
+
import NavigationItem from '../../item';
|
|
11
|
+
import NavigationMenu from '../../menu';
|
|
12
|
+
import NavigationGroup from '../../group';
|
|
13
13
|
|
|
14
14
|
export function GroupStory() {
|
|
15
15
|
const [ activeItem, setActiveItem ] = useState( 'item-1' );
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Internal dependencies
|
|
3
3
|
*/
|
|
4
|
-
import Navigation from '
|
|
5
|
-
import NavigationItem from '
|
|
6
|
-
import NavigationMenu from '
|
|
4
|
+
import Navigation from '../..';
|
|
5
|
+
import NavigationItem from '../../item';
|
|
6
|
+
import NavigationMenu from '../../menu';
|
|
7
7
|
|
|
8
8
|
export function HideIfEmptyStory() {
|
|
9
9
|
return (
|
|
@@ -7,10 +7,10 @@ import { Icon, wordpress, home } from '@wordpress/icons';
|
|
|
7
7
|
/**
|
|
8
8
|
* Internal dependencies
|
|
9
9
|
*/
|
|
10
|
-
import Navigation from '
|
|
11
|
-
import NavigationGroup from '
|
|
12
|
-
import NavigationItem from '
|
|
13
|
-
import NavigationMenu from '
|
|
10
|
+
import Navigation from '../..';
|
|
11
|
+
import NavigationGroup from '../../group';
|
|
12
|
+
import NavigationItem from '../../item';
|
|
13
|
+
import NavigationMenu from '../../menu';
|
|
14
14
|
|
|
15
15
|
export function MoreExamplesStory() {
|
|
16
16
|
const [ activeItem, setActiveItem ] = useState( 'child-1' );
|
|
@@ -6,11 +6,11 @@ import { useState } from '@wordpress/element';
|
|
|
6
6
|
/**
|
|
7
7
|
* Internal dependencies
|
|
8
8
|
*/
|
|
9
|
-
import Navigation from '
|
|
10
|
-
import NavigationGroup from '
|
|
11
|
-
import NavigationItem from '
|
|
12
|
-
import NavigationMenu from '
|
|
13
|
-
import { normalizedSearch } from '
|
|
9
|
+
import Navigation from '../..';
|
|
10
|
+
import NavigationGroup from '../../group';
|
|
11
|
+
import NavigationItem from '../../item';
|
|
12
|
+
import NavigationMenu from '../../menu';
|
|
13
|
+
import { normalizedSearch } from '../../utils';
|
|
14
14
|
|
|
15
15
|
const searchItems = [
|
|
16
16
|
{ item: 'foo', title: 'Foo' },
|
|
@@ -43,8 +43,8 @@ function UnconnectedNavigatorProvider(
|
|
|
43
43
|
|
|
44
44
|
const goTo: NavigatorContextType[ 'goTo' ] = useCallback(
|
|
45
45
|
( path, options = {} ) => {
|
|
46
|
-
setLocationHistory( [
|
|
47
|
-
...
|
|
46
|
+
setLocationHistory( ( prevLocationHistory ) => [
|
|
47
|
+
...prevLocationHistory,
|
|
48
48
|
{
|
|
49
49
|
...options,
|
|
50
50
|
path,
|
|
@@ -53,21 +53,24 @@ function UnconnectedNavigatorProvider(
|
|
|
53
53
|
},
|
|
54
54
|
] );
|
|
55
55
|
},
|
|
56
|
-
[
|
|
56
|
+
[]
|
|
57
57
|
);
|
|
58
58
|
|
|
59
59
|
const goBack: NavigatorContextType[ 'goBack' ] = useCallback( () => {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
60
|
+
setLocationHistory( ( prevLocationHistory ) => {
|
|
61
|
+
if ( prevLocationHistory.length <= 1 ) {
|
|
62
|
+
return prevLocationHistory;
|
|
63
|
+
}
|
|
64
|
+
return [
|
|
65
|
+
...prevLocationHistory.slice( 0, -2 ),
|
|
63
66
|
{
|
|
64
|
-
...
|
|
67
|
+
...prevLocationHistory[ prevLocationHistory.length - 2 ],
|
|
65
68
|
isBack: true,
|
|
66
69
|
hasRestoredFocus: false,
|
|
67
70
|
},
|
|
68
|
-
]
|
|
69
|
-
}
|
|
70
|
-
}, [
|
|
71
|
+
];
|
|
72
|
+
} );
|
|
73
|
+
}, [] );
|
|
71
74
|
|
|
72
75
|
const navigatorContextValue: NavigatorContextType = useMemo(
|
|
73
76
|
() => ( {
|