@wordpress/components 40.0.0 → 40.1.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 +40 -0
- package/CONTRIBUTING.md +2 -0
- package/build/border-box-control/border-box-control/component.cjs +37 -5
- package/build/border-box-control/border-box-control/component.cjs.map +3 -3
- package/build/border-box-control/border-box-control/hook.cjs +24 -3
- package/build/border-box-control/border-box-control/hook.cjs.map +3 -3
- package/build/border-box-control/border-box-control-linked-button/hook.cjs +2 -2
- package/build/border-box-control/border-box-control-linked-button/hook.cjs.map +2 -2
- package/build/border-box-control/border-box-control-split-controls/hook.cjs +2 -2
- package/build/border-box-control/border-box-control-split-controls/hook.cjs.map +2 -2
- package/build/border-box-control/border-box-control-visualizer/hook.cjs +2 -2
- package/build/border-box-control/border-box-control-visualizer/hook.cjs.map +2 -2
- package/build/color-palette/index.cjs +1 -1
- package/build/color-palette/index.cjs.map +2 -2
- package/build/composite/context.cjs +9 -2
- package/build/composite/context.cjs.map +2 -2
- package/build/composite/group-label.cjs +4 -0
- package/build/composite/group-label.cjs.map +2 -2
- package/build/composite/group.cjs +10 -2
- package/build/composite/group.cjs.map +2 -2
- package/build/composite/item.cjs +4 -0
- package/build/composite/item.cjs.map +3 -3
- package/build/context/context-system-provider.cjs +2 -5
- package/build/context/context-system-provider.cjs.map +3 -3
- package/build/context/use-context-system.cjs +7 -2
- package/build/context/use-context-system.cjs.map +2 -2
- package/build/disabled/index.cjs +1 -1
- package/build/disabled/index.cjs.map +2 -2
- package/build/draggable/index.cjs.map +1 -1
- package/build/form-token-field/index.cjs +1 -1
- package/build/form-token-field/index.cjs.map +2 -2
- package/build/icon/index.cjs +30 -12
- package/build/icon/index.cjs.map +2 -2
- package/build/input-control/styles/input-control-styles.cjs +42 -27
- package/build/input-control/styles/input-control-styles.cjs.map +2 -2
- package/build/item-group/context.cjs +1 -0
- package/build/item-group/context.cjs.map +2 -2
- package/build/item-group/item/component.cjs +12 -0
- package/build/item-group/item/component.cjs.map +3 -3
- package/build/item-group/item/hook.cjs +7 -6
- package/build/item-group/item/hook.cjs.map +2 -2
- package/build/item-group/item-group/component.cjs +1 -0
- package/build/item-group/item-group/component.cjs.map +2 -2
- package/build/item-group/item-group/hook.cjs +1 -1
- package/build/item-group/item-group/hook.cjs.map +2 -2
- package/build/progress-bar/index.cjs +1 -1
- package/build/progress-bar/index.cjs.map +2 -2
- package/build/resizable-box/index.cjs.map +1 -1
- package/build/snackbar/index.cjs +8 -5
- package/build/snackbar/index.cjs.map +2 -2
- package/build/textarea-control/index.cjs +1 -1
- package/build/textarea-control/index.cjs.map +2 -2
- package/build/toggle-group-control/context.cjs +8 -2
- package/build/toggle-group-control/context.cjs.map +2 -2
- package/build/toggle-group-control/toggle-group-control/as-button-group.cjs +5 -2
- package/build/toggle-group-control/toggle-group-control/as-button-group.cjs.map +2 -2
- package/build/toggle-group-control/toggle-group-control/as-radio-group.cjs +5 -2
- package/build/toggle-group-control/toggle-group-control/as-radio-group.cjs.map +2 -2
- package/build/toggle-group-control/toggle-group-control/component.cjs +3 -1
- package/build/toggle-group-control/toggle-group-control/component.cjs.map +2 -2
- package/build/toggle-group-control/toggle-group-control-option/component.cjs +2 -0
- package/build/toggle-group-control/toggle-group-control-option/component.cjs.map +2 -2
- package/build/toggle-group-control/toggle-group-control-option-base/component.cjs +2 -1
- package/build/toggle-group-control/toggle-group-control-option-base/component.cjs.map +2 -2
- package/build/toggle-group-control/toggle-group-control-option-icon/component.cjs +2 -0
- package/build/toggle-group-control/toggle-group-control-option-icon/component.cjs.map +2 -2
- package/build/tools-panel/tools-panel/hook.cjs +102 -106
- package/build/tools-panel/tools-panel/hook.cjs.map +2 -2
- package/build/tools-panel/tools-panel-item/hook.cjs +33 -33
- package/build/tools-panel/tools-panel-item/hook.cjs.map +2 -2
- package/build/tree-grid/cell.cjs +4 -0
- package/build/tree-grid/cell.cjs.map +2 -2
- package/build/tree-grid/roving-tab-index-item.cjs +5 -1
- package/build/tree-grid/roving-tab-index-item.cjs.map +2 -2
- package/build/tree-grid/row.cjs +6 -1
- package/build/tree-grid/row.cjs.map +2 -2
- package/build/tree-grid/use-validate-tree-grid-structure.cjs +81 -0
- package/build/tree-grid/use-validate-tree-grid-structure.cjs.map +7 -0
- package/build/utils/colors-values.cjs +3 -2
- package/build/utils/colors-values.cjs.map +2 -2
- package/build-module/border-box-control/border-box-control/component.mjs +38 -6
- package/build-module/border-box-control/border-box-control/component.mjs.map +2 -2
- package/build-module/border-box-control/border-box-control/hook.mjs +14 -3
- package/build-module/border-box-control/border-box-control/hook.mjs.map +2 -2
- package/build-module/border-box-control/border-box-control-linked-button/hook.mjs +2 -2
- package/build-module/border-box-control/border-box-control-linked-button/hook.mjs.map +2 -2
- package/build-module/border-box-control/border-box-control-split-controls/hook.mjs +2 -2
- package/build-module/border-box-control/border-box-control-split-controls/hook.mjs.map +2 -2
- package/build-module/border-box-control/border-box-control-visualizer/hook.mjs +2 -2
- package/build-module/border-box-control/border-box-control-visualizer/hook.mjs.map +2 -2
- package/build-module/color-palette/index.mjs +1 -1
- package/build-module/color-palette/index.mjs.map +2 -2
- package/build-module/composite/context.mjs +6 -1
- package/build-module/composite/context.mjs.map +2 -2
- package/build-module/composite/group-label.mjs +5 -1
- package/build-module/composite/group-label.mjs.map +2 -2
- package/build-module/composite/group.mjs +11 -3
- package/build-module/composite/group.mjs.map +2 -2
- package/build-module/composite/item.mjs +4 -0
- package/build-module/composite/item.mjs.map +2 -2
- package/build-module/context/context-system-provider.mjs +2 -5
- package/build-module/context/context-system-provider.mjs.map +3 -3
- package/build-module/context/use-context-system.mjs +7 -2
- package/build-module/context/use-context-system.mjs.map +2 -2
- package/build-module/disabled/index.mjs +1 -1
- package/build-module/disabled/index.mjs.map +2 -2
- package/build-module/draggable/index.mjs.map +1 -1
- package/build-module/form-token-field/index.mjs +1 -1
- package/build-module/form-token-field/index.mjs.map +2 -2
- package/build-module/icon/index.mjs +30 -12
- package/build-module/icon/index.mjs.map +2 -2
- package/build-module/input-control/styles/input-control-styles.mjs +42 -27
- package/build-module/input-control/styles/input-control-styles.mjs.map +2 -2
- package/build-module/item-group/context.mjs +1 -0
- package/build-module/item-group/context.mjs.map +2 -2
- package/build-module/item-group/item/component.mjs +12 -0
- package/build-module/item-group/item/component.mjs.map +2 -2
- package/build-module/item-group/item/hook.mjs +7 -6
- package/build-module/item-group/item/hook.mjs.map +2 -2
- package/build-module/item-group/item-group/component.mjs +1 -0
- package/build-module/item-group/item-group/component.mjs.map +2 -2
- package/build-module/item-group/item-group/hook.mjs +1 -1
- package/build-module/item-group/item-group/hook.mjs.map +2 -2
- package/build-module/progress-bar/index.mjs +1 -1
- package/build-module/progress-bar/index.mjs.map +2 -2
- package/build-module/resizable-box/index.mjs.map +1 -1
- package/build-module/snackbar/index.mjs +8 -5
- package/build-module/snackbar/index.mjs.map +2 -2
- package/build-module/textarea-control/index.mjs +1 -1
- package/build-module/textarea-control/index.mjs.map +2 -2
- package/build-module/toggle-group-control/context.mjs +8 -2
- package/build-module/toggle-group-control/context.mjs.map +2 -2
- package/build-module/toggle-group-control/toggle-group-control/as-button-group.mjs +5 -2
- package/build-module/toggle-group-control/toggle-group-control/as-button-group.mjs.map +2 -2
- package/build-module/toggle-group-control/toggle-group-control/as-radio-group.mjs +5 -2
- package/build-module/toggle-group-control/toggle-group-control/as-radio-group.mjs.map +2 -2
- package/build-module/toggle-group-control/toggle-group-control/component.mjs +3 -1
- package/build-module/toggle-group-control/toggle-group-control/component.mjs.map +2 -2
- package/build-module/toggle-group-control/toggle-group-control-option/component.mjs +2 -0
- package/build-module/toggle-group-control/toggle-group-control-option/component.mjs.map +2 -2
- package/build-module/toggle-group-control/toggle-group-control-option-base/component.mjs +2 -1
- package/build-module/toggle-group-control/toggle-group-control-option-base/component.mjs.map +2 -2
- package/build-module/toggle-group-control/toggle-group-control-option-icon/component.mjs +2 -0
- package/build-module/toggle-group-control/toggle-group-control-option-icon/component.mjs.map +2 -2
- package/build-module/tools-panel/tools-panel/hook.mjs +103 -107
- package/build-module/tools-panel/tools-panel/hook.mjs.map +2 -2
- package/build-module/tools-panel/tools-panel-item/hook.mjs +35 -35
- package/build-module/tools-panel/tools-panel-item/hook.mjs.map +2 -2
- package/build-module/tree-grid/cell.mjs +5 -1
- package/build-module/tree-grid/cell.mjs.map +2 -2
- package/build-module/tree-grid/roving-tab-index-item.mjs +5 -1
- package/build-module/tree-grid/roving-tab-index-item.mjs.map +2 -2
- package/build-module/tree-grid/row.mjs +7 -2
- package/build-module/tree-grid/row.mjs.map +2 -2
- package/build-module/tree-grid/use-validate-tree-grid-structure.mjs +56 -0
- package/build-module/tree-grid/use-validate-tree-grid-structure.mjs.map +7 -0
- package/build-module/utils/colors-values.mjs +3 -2
- package/build-module/utils/colors-values.mjs.map +2 -2
- package/build-style/style-rtl.css +27 -85
- package/build-style/style.css +27 -85
- package/build-types/border-box-control/border-box-control/component.d.ts +4 -0
- 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 +4 -2
- package/build-types/border-box-control/border-box-control/hook.d.ts.map +1 -1
- package/build-types/border-box-control/types.d.ts +6 -2
- package/build-types/border-box-control/types.d.ts.map +1 -1
- package/build-types/composite/context.d.ts +2 -0
- package/build-types/composite/context.d.ts.map +1 -1
- package/build-types/composite/group-label.d.ts.map +1 -1
- package/build-types/composite/group.d.ts.map +1 -1
- package/build-types/composite/item.d.ts.map +1 -1
- package/build-types/composite/types.d.ts +1 -1
- package/build-types/context/context-system-provider.d.ts +8 -6
- package/build-types/context/context-system-provider.d.ts.map +1 -1
- package/build-types/context/use-context-system.d.ts.map +1 -1
- package/build-types/icon/index.d.ts.map +1 -1
- package/build-types/input-control/styles/input-control-styles.d.ts.map +1 -1
- package/build-types/item-group/context.d.ts.map +1 -1
- package/build-types/item-group/item/component.d.ts.map +1 -1
- package/build-types/item-group/item/hook.d.ts +1 -1
- package/build-types/item-group/item/hook.d.ts.map +1 -1
- package/build-types/item-group/item-group/component.d.ts.map +1 -1
- package/build-types/item-group/types.d.ts +4 -0
- package/build-types/item-group/types.d.ts.map +1 -1
- package/build-types/popover/types.d.ts +6 -2
- package/build-types/popover/types.d.ts.map +1 -1
- package/build-types/snackbar/index.d.ts.map +1 -1
- package/build-types/toggle-group-control/context.d.ts +2 -2
- package/build-types/toggle-group-control/context.d.ts.map +1 -1
- package/build-types/toggle-group-control/toggle-group-control/as-button-group.d.ts +1 -1
- package/build-types/toggle-group-control/toggle-group-control/as-button-group.d.ts.map +1 -1
- package/build-types/toggle-group-control/toggle-group-control/as-radio-group.d.ts +1 -1
- package/build-types/toggle-group-control/toggle-group-control/as-radio-group.d.ts.map +1 -1
- package/build-types/toggle-group-control/toggle-group-control/component.d.ts.map +1 -1
- package/build-types/toggle-group-control/toggle-group-control-option/component.d.ts +2 -2
- package/build-types/toggle-group-control/toggle-group-control-option/component.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-icon/component.d.ts +2 -2
- package/build-types/toggle-group-control/toggle-group-control-option-icon/component.d.ts.map +1 -1
- package/build-types/toggle-group-control/types.d.ts +12 -3
- package/build-types/toggle-group-control/types.d.ts.map +1 -1
- package/build-types/tools-panel/tools-panel/hook.d.ts +4 -4
- package/build-types/tools-panel/tools-panel/hook.d.ts.map +1 -1
- package/build-types/tools-panel/tools-panel-item/hook.d.ts.map +1 -1
- package/build-types/tools-panel/types.d.ts +52 -9
- package/build-types/tools-panel/types.d.ts.map +1 -1
- package/build-types/tree-grid/cell.d.ts.map +1 -1
- package/build-types/tree-grid/roving-tab-index-item.d.ts.map +1 -1
- package/build-types/tree-grid/row.d.ts.map +1 -1
- package/build-types/tree-grid/use-validate-tree-grid-structure.d.ts +2 -0
- package/build-types/tree-grid/use-validate-tree-grid-structure.d.ts.map +1 -0
- package/build-types/utils/colors-values.d.ts.map +1 -1
- package/emotion-to-scss-modules.md +149 -0
- package/package.json +28 -27
- package/src/alignment-matrix-control/test/{index.tsx → index.jsdom.test.tsx} +5 -4
- package/src/angle-picker-control/style.module.scss +1 -1
- package/src/autocomplete/test/get-autocomplete-match.ts +2 -1
- package/src/autocomplete/test/{index.tsx → index.jsdom.test.tsx} +2 -1
- package/src/badge/test/{index.tsx → index.jsdom.test.tsx} +1 -0
- package/src/base-control/stories/index.story.tsx +2 -2
- package/src/base-control/test/{index.tsx → index.jsdom.test.tsx} +1 -0
- package/src/border-box-control/border-box-control/README.md +5 -3
- package/src/border-box-control/border-box-control/component.tsx +83 -15
- package/src/border-box-control/border-box-control/hook.ts +19 -1
- package/src/border-box-control/stories/index.story.tsx +10 -0
- package/src/border-box-control/style.module.scss +34 -3
- package/src/border-box-control/test/{index.tsx → index.jsdom.test.tsx} +138 -2
- package/src/border-box-control/test/utils.ts +11 -0
- package/src/border-box-control/types.ts +6 -2
- package/src/border-control/test/{index.js → index.jsdom.test.tsx} +44 -24
- package/src/box-control/test/{index.tsx → index.jsdom.test.tsx} +6 -3
- package/src/button/style.scss +0 -6
- package/src/button/test/{index.tsx → index.jsdom.test.tsx} +6 -2
- package/src/checkbox-control/stories/index.story.tsx +1 -1
- package/src/checkbox-control/style.scss +2 -2
- package/src/checkbox-control/test/__snapshots__/{index.tsx.snap → index.jsdom.test.tsx.snap} +10 -7
- package/src/checkbox-control/test/{index.tsx → index.jsdom.test.tsx} +4 -1
- package/src/circular-option-picker/test/{index.tsx → index.jsdom.test.tsx} +1 -0
- package/src/color-indicator/test/__snapshots__/{index.tsx.snap → index.jsdom.test.tsx.snap} +2 -2
- package/src/color-indicator/test/{index.tsx → index.jsdom.test.tsx} +1 -0
- package/src/color-palette/index.tsx +1 -1
- package/src/color-palette/test/{index.tsx → index.jsdom.test.tsx} +25 -22
- package/src/color-palette/test/{utils.ts → utils.jsdom.test.ts} +1 -0
- package/src/combobox-control/test/{index.tsx → index.jsdom.test.tsx} +12 -7
- package/src/composite/README.md +1 -1
- package/src/composite/context.tsx +6 -0
- package/src/composite/group-label.tsx +8 -1
- package/src/composite/group.tsx +9 -2
- package/src/composite/item.tsx +6 -0
- package/src/composite/legacy/test/{index.tsx → index.jsdom.test.tsx} +6 -13
- package/src/composite/test/{index.tsx → index.jsdom.test.tsx} +60 -17
- package/src/composite/types.ts +1 -1
- package/src/confirm-dialog/test/{index.tsx → index.jsdom.test.tsx} +16 -14
- package/src/content-editable-control/test/{index.tsx → index.jsdom.test.tsx} +4 -3
- package/src/context/{context-system-provider.js → context-system-provider.tsx} +19 -5
- package/src/context/stories/{ComponentsProvider.stories.jsx → ComponentsProvider.stories.tsx} +2 -2
- package/src/context/test/context-connect.tsx +1 -2
- package/src/context/test/{context-system-provider.js → context-system-provider.jsdom.test.tsx} +93 -51
- package/src/context/test/wordpress-component.tsx +1 -2
- package/src/context/use-context-system.js +13 -4
- package/src/custom-gradient-picker/gradient-bar/test/{utils.ts → utils.jsdom.test.ts} +6 -5
- package/src/custom-gradient-picker/test/serializer.ts +1 -0
- package/src/custom-select-control-v2/test/{index.tsx → index.jsdom.test.tsx} +4 -1
- package/src/date-time/date-picker/test/{index.tsx → index.jsdom.test.tsx} +6 -3
- package/src/date-time/date-picker/test/{use-lilius.ts → use-lilius.jsdom.test.ts} +1 -0
- package/src/date-time/date-time/test/{index.tsx → index.jsdom.test.tsx} +20 -11
- package/src/date-time/test/utils.test.ts +9 -0
- package/src/date-time/time-picker/test/{index.tsx → index.jsdom.test.tsx} +37 -27
- package/src/date-time/time-picker/time-input/test/{index.tsx → index.jsdom.test.tsx} +8 -3
- package/src/disabled/index.tsx +7 -7
- package/src/disabled/test/{index.tsx → index.jsdom.test.tsx} +26 -0
- package/src/draggable/index.tsx +1 -1
- package/src/draggable/style.module.scss +1 -1
- package/src/dropdown/style.module.scss +2 -2
- package/src/dropdown/test/{index.tsx → index.jsdom.test.tsx} +1 -0
- package/src/dropdown-menu/test/{index.tsx → index.jsdom.test.tsx} +5 -4
- package/src/duotone-picker/test/{custom-duotone-bar.tsx → custom-duotone-bar.jsdom.test.tsx} +11 -8
- package/src/duotone-picker/test/{index.tsx → index.jsdom.test.tsx} +11 -10
- package/src/external-link/test/{index.tsx → index.jsdom.test.tsx} +5 -4
- package/src/focal-point-picker/test/{index.tsx → index.jsdom.test.tsx} +12 -9
- package/src/focal-point-picker/test/{media.tsx → media.jsdom.test.tsx} +1 -0
- package/src/font-size-picker/test/{font-size-picker-select.tsx → font-size-picker-select.jsdom.test.tsx} +19 -16
- package/src/font-size-picker/test/{font-size-picker-toggle-group.tsx → font-size-picker-toggle-group.jsdom.test.tsx} +13 -11
- package/src/font-size-picker/test/{index.tsx → index.jsdom.test.tsx} +19 -14
- package/src/font-size-picker/test/utils.ts +1 -0
- package/src/form-toggle/style.scss +1 -1
- package/src/form-toggle/test/__snapshots__/{index.tsx.snap → index.jsdom.test.tsx.snap} +4 -4
- package/src/form-toggle/test/{index.tsx → index.jsdom.test.tsx} +2 -1
- package/src/form-token-field/index.tsx +1 -1
- package/src/form-token-field/test/{index.tsx → index.jsdom.test.tsx} +86 -44
- package/src/gradient-picker/test/{index.tsx → index.jsdom.test.tsx} +12 -9
- package/src/guide/test/{index.tsx → index.jsdom.test.tsx} +4 -2
- package/src/h-stack/test/__snapshots__/{index.tsx.snap → index.jsdom.test.tsx.snap} +4 -4
- package/src/h-stack/test/{index.tsx → index.jsdom.test.tsx} +3 -0
- package/src/higher-order/with-fallback-styles/test/{index.tsx → index.jsdom.test.tsx} +3 -2
- package/src/higher-order/with-filters/test/__snapshots__/index.jsdom.test.tsx.snap +87 -0
- package/src/higher-order/with-filters/test/{index.tsx → index.jsdom.test.tsx} +6 -5
- package/src/higher-order/with-focus-outside/test/{index.tsx → index.jsdom.test.tsx} +2 -1
- package/src/higher-order/with-focus-return/test/{index.tsx → index.jsdom.test.tsx} +1 -0
- package/src/higher-order/with-notices/test/{index.tsx → index.jsdom.test.tsx} +1 -0
- package/src/higher-order/with-spoken-messages/test/{index.tsx → index.jsdom.test.tsx} +3 -2
- package/src/icon/index.tsx +28 -12
- package/src/icon/test/{index.tsx → index.jsdom.test.tsx} +66 -0
- package/src/input-control/styles/input-control-styles.tsx +38 -7
- package/src/input-control/test/{index.js → index.jsdom.test.tsx} +16 -10
- package/src/isolated-event-container/test/{index.tsx → index.jsdom.test.tsx} +4 -3
- package/src/item-group/context.ts +1 -0
- package/src/item-group/item/component.tsx +19 -1
- package/src/item-group/item/hook.ts +2 -3
- package/src/item-group/item-group/component.tsx +1 -0
- package/src/item-group/style.module.scss +1 -2
- package/src/item-group/test/__snapshots__/{index.js.snap → index.jsdom.test.tsx.snap} +9 -9
- package/src/item-group/test/{index.js → index.jsdom.test.tsx} +99 -2
- package/src/item-group/types.ts +4 -0
- package/src/keyboard-shortcuts/test/{index.tsx → index.jsdom.test.tsx} +5 -4
- package/src/menu/test/{index.tsx → index.jsdom.test.tsx} +67 -23
- package/src/menu-group/test/{index.tsx → index.jsdom.test.tsx} +1 -0
- package/src/menu-item/test/__snapshots__/{index.js.snap → index.jsdom.test.tsx.snap} +5 -5
- package/src/menu-item/test/{index.js → index.jsdom.test.tsx} +1 -0
- package/src/modal/test/{aria-helper.ts → aria-helper.jsdom.test.ts} +1 -0
- package/src/modal/test/{index.tsx → index.jsdom.test.tsx} +9 -5
- package/src/navigable-container/test/{navigable-menu.tsx → navigable-menu.jsdom.test.tsx} +7 -5
- package/src/navigable-container/test/{tababble-container.tsx → tababble-container.jsdom.test.tsx} +5 -3
- package/src/navigator/test/{index.tsx → index.jsdom.test.tsx} +5 -2
- package/src/navigator/test/router.ts +1 -0
- package/src/notice/test/__snapshots__/{index.tsx.snap → index.jsdom.test.tsx.snap} +7 -4
- package/src/notice/test/{index.tsx → index.jsdom.test.tsx} +8 -4
- package/src/notice/test/{list.tsx → list.jsdom.test.tsx} +1 -0
- package/src/number-control/test/{index.tsx → index.jsdom.test.tsx} +9 -6
- package/src/palette-edit/test/{index.tsx → index.jsdom.test.tsx} +16 -13
- package/src/panel/test/__snapshots__/body.jsdom.test.tsx.snap +9 -0
- package/src/panel/test/__snapshots__/header.jsdom.test.tsx.snap +9 -0
- package/src/panel/test/__snapshots__/index.jsdom.test.tsx.snap +17 -0
- package/src/panel/test/__snapshots__/row.jsdom.test.tsx.snap +17 -0
- package/src/panel/test/{body.tsx → body.jsdom.test.tsx} +2 -1
- package/src/panel/test/{header.tsx → header.jsdom.test.tsx} +1 -0
- package/src/panel/test/{index.tsx → index.jsdom.test.tsx} +1 -0
- package/src/panel/test/{row.tsx → row.jsdom.test.tsx} +1 -0
- package/src/placeholder/style.scss +0 -5
- package/src/placeholder/test/{index.tsx → index.jsdom.test.tsx} +19 -14
- package/src/popover/README.md +2 -2
- package/src/popover/test/{index.tsx → index.jsdom.test.tsx} +23 -0
- package/src/popover/types.ts +9 -3
- package/src/progress-bar/style.module.scss +9 -1
- package/src/query-controls/test/terms.ts +1 -0
- package/src/radio-control/test/{index.tsx → index.jsdom.test.tsx} +14 -11
- package/src/range-control/test/{index.tsx → index.jsdom.test.tsx} +10 -7
- package/src/resizable-box/index.tsx +1 -1
- package/src/sandbox/test/{index.tsx → index.jsdom.test.tsx} +1 -0
- package/src/scroll-lock/test/{index.tsx → index.jsdom.test.tsx} +1 -0
- package/src/shortcut/test/__snapshots__/index.jsdom.test.tsx.snap +15 -0
- package/src/shortcut/test/{index.tsx → index.jsdom.test.tsx} +1 -0
- package/src/slot-fill/test/{index.js → index.jsdom.test.tsx} +4 -3
- package/src/slot-fill/test/{slot.js → slot.jsdom.test.tsx} +17 -9
- package/src/snackbar/index.tsx +10 -6
- package/src/snackbar/test/{index.tsx → index.jsdom.test.tsx} +41 -11
- package/src/snackbar/test/list.jsdom.test.tsx +100 -0
- package/src/style-provider/test/{index.tsx → index.jsdom.test.tsx} +1 -0
- package/src/surface/style.module.scss +2 -2
- package/src/surface/test/{index.tsx → index.jsdom.test.tsx} +1 -0
- package/src/tab-panel/style.scss +4 -23
- package/src/tab-panel/test/{index.tsx → index.jsdom.test.tsx} +22 -21
- package/src/tabs/test/{index.tsx → index.jsdom.test.tsx} +21 -19
- package/src/text-control/test/{text-control.tsx → text-control.jsdom.test.tsx} +1 -0
- package/src/text-highlight/test/{index.tsx → index.jsdom.test.tsx} +1 -0
- package/src/textarea-control/style.module.scss +9 -4
- package/src/tip/style.scss +1 -1
- package/src/toggle-control/test/{index.tsx → index.jsdom.test.tsx} +4 -1
- package/src/toggle-group-control/context.ts +14 -5
- package/src/toggle-group-control/stories/index.story.tsx +15 -2
- package/src/toggle-group-control/test/{index.tsx → index.jsdom.test.tsx} +283 -9
- package/src/toggle-group-control/toggle-group-control/README.md +8 -5
- package/src/toggle-group-control/toggle-group-control/as-button-group.tsx +4 -0
- package/src/toggle-group-control/toggle-group-control/as-radio-group.tsx +4 -0
- package/src/toggle-group-control/toggle-group-control/component.tsx +2 -0
- package/src/toggle-group-control/toggle-group-control/style.module.scss +8 -2
- package/src/toggle-group-control/toggle-group-control-option/README.md +8 -5
- package/src/toggle-group-control/toggle-group-control-option/component.tsx +2 -0
- package/src/toggle-group-control/toggle-group-control-option-base/component.tsx +4 -1
- package/src/toggle-group-control/toggle-group-control-option-icon/README.md +7 -0
- package/src/toggle-group-control/toggle-group-control-option-icon/component.tsx +2 -0
- package/src/toggle-group-control/types.ts +12 -3
- package/src/toolbar/test/{index.tsx → index.jsdom.test.tsx} +1 -0
- package/src/toolbar/test/{toolbar-group.tsx → toolbar-group.jsdom.test.tsx} +2 -1
- package/src/tools-panel/test/{index.tsx → index.jsdom.test.tsx} +595 -47
- package/src/tools-panel/tools-panel/hook.ts +195 -180
- package/src/tools-panel/tools-panel-item/README.md +42 -1
- package/src/tools-panel/tools-panel-item/hook.ts +97 -69
- package/src/tools-panel/types.ts +54 -9
- package/src/tooltip/test/{index.tsx → index.jsdom.test.tsx} +5 -3
- package/src/tree-grid/cell.tsx +6 -2
- package/src/tree-grid/roving-tab-index-item.tsx +7 -3
- package/src/tree-grid/row.tsx +8 -2
- package/src/tree-grid/test/__snapshots__/{cell.tsx.snap → cell.jsdom.test.tsx.snap} +2 -2
- package/src/tree-grid/test/__snapshots__/index.jsdom.test.tsx.snap +3 -0
- package/src/tree-grid/test/__snapshots__/roving-tab-index-item.jsdom.test.tsx.snap +27 -0
- package/src/tree-grid/test/__snapshots__/roving-tab-index.jsdom.test.tsx.snap +9 -0
- package/src/tree-grid/test/__snapshots__/{row.tsx.snap → row.jsdom.test.tsx.snap} +9 -5
- package/src/tree-grid/test/cell.jsdom.test.tsx +149 -0
- package/src/tree-grid/test/{index.tsx → index.jsdom.test.tsx} +9 -7
- package/src/tree-grid/test/{roving-tab-index-item.tsx → roving-tab-index-item.jsdom.test.tsx} +4 -1
- package/src/tree-grid/test/{roving-tab-index.tsx → roving-tab-index.jsdom.test.tsx} +1 -0
- package/src/tree-grid/test/row.jsdom.test.tsx +132 -0
- package/src/tree-grid/use-validate-tree-grid-structure.ts +104 -0
- package/src/truncate/style.module.scss +0 -1
- package/src/truncate/test/{index.tsx → index.jsdom.test.tsx} +1 -0
- package/src/unit-control/test/{index.tsx → index.jsdom.test.tsx} +22 -19
- package/src/unit-control/test/utils.ts +1 -0
- package/src/utils/colors-values.js +5 -4
- package/src/utils/hooks/test/{use-controlled-state.js → use-controlled-state.jsdom.test.tsx} +22 -7
- package/src/utils/hooks/test/{use-controlled-value.js → use-controlled-value.jsdom.test.tsx} +6 -3
- package/src/utils/hooks/test/{use-cx.js → use-cx.jsdom.test.tsx} +8 -5
- package/src/utils/test/colors.js +1 -0
- package/src/utils/test/{get-node-text.js → get-node-text.tsx} +1 -0
- package/src/utils/test/math.js +1 -0
- package/src/utils/test/rtl.js +1 -0
- package/src/utils/test/space.js +1 -0
- package/src/utils/test/strings.js +1 -0
- package/src/utils/test/unit-values.js +1 -0
- package/src/v-stack/test/__snapshots__/{index.tsx.snap → index.jsdom.test.tsx.snap} +4 -4
- package/src/v-stack/test/{index.tsx → index.jsdom.test.tsx} +3 -0
- package/src/validated-form-controls/style.scss +11 -15
- package/src/validated-form-controls/test/{content-editable-control.tsx → content-editable-control.jsdom.test.tsx} +1 -1
- package/src/validated-form-controls/test/{custom-select-control.tsx → custom-select-control.jsdom.test.tsx} +3 -0
- package/src/validated-form-controls/test/{input-control.tsx → input-control.jsdom.test.tsx} +3 -0
- package/src/validated-form-controls/test/{range-control.tsx → range-control.jsdom.test.tsx} +3 -0
- package/src/validated-form-controls/test/{textarea-control.tsx → textarea-control.jsdom.test.tsx} +1 -0
- package/src/view/test/__snapshots__/{index.js.snap → index.jsdom.test.tsx.snap} +7 -7
- package/src/view/test/{index.js → index.jsdom.test.tsx} +7 -2
- package/src/context/test/__snapshots__/context-system-provider.js.snap +0 -35
- package/src/higher-order/with-filters/test/__snapshots__/index.tsx.snap +0 -87
- package/src/panel/test/__snapshots__/body.tsx.snap +0 -9
- package/src/panel/test/__snapshots__/header.tsx.snap +0 -9
- package/src/panel/test/__snapshots__/index.tsx.snap +0 -17
- package/src/panel/test/__snapshots__/row.tsx.snap +0 -17
- package/src/shortcut/test/__snapshots__/index.tsx.snap +0 -15
- package/src/snackbar/test/list.tsx +0 -39
- package/src/toggle-group-control/test/__snapshots__/index.tsx.snap +0 -359
- package/src/tree-grid/test/__snapshots__/index.tsx.snap +0 -3
- package/src/tree-grid/test/__snapshots__/roving-tab-index-item.tsx.snap +0 -27
- package/src/tree-grid/test/__snapshots__/roving-tab-index.tsx.snap +0 -9
- package/src/tree-grid/test/cell.tsx +0 -46
- package/src/tree-grid/test/row.tsx +0 -37
- /package/src/card/test/__snapshots__/{index.tsx.snap → index.jsdom.test.tsx.snap} +0 -0
- /package/src/card/test/{index.tsx → index.jsdom.test.tsx} +0 -0
- /package/src/color-picker/test/{index.tsx → index.jsdom.test.tsx} +0 -0
- /package/src/custom-gradient-picker/test/{index.tsx → index.jsdom.test.tsx} +0 -0
- /package/src/custom-select-control/test/__snapshots__/{index.tsx.snap → index.jsdom.test.tsx.snap} +0 -0
- /package/src/custom-select-control/test/{index.tsx → index.jsdom.test.tsx} +0 -0
- /package/src/divider/test/{index.tsx → index.jsdom.test.tsx} +0 -0
- /package/src/elevation/test/__snapshots__/{index.tsx.snap → index.jsdom.test.tsx.snap} +0 -0
- /package/src/elevation/test/{index.tsx → index.jsdom.test.tsx} +0 -0
- /package/src/flex/test/__snapshots__/{index.tsx.snap → index.jsdom.test.tsx.snap} +0 -0
- /package/src/flex/test/{index.tsx → index.jsdom.test.tsx} +0 -0
- /package/src/form-file-upload/test/{index.tsx → index.jsdom.test.tsx} +0 -0
- /package/src/grid/test/{grid.tsx → grid.jsdom.test.tsx} +0 -0
- /package/src/heading/test/__snapshots__/{index.tsx.snap → index.jsdom.test.tsx.snap} +0 -0
- /package/src/heading/test/{index.tsx → index.jsdom.test.tsx} +0 -0
- /package/src/input-control/test/__snapshots__/{index.js.snap → index.jsdom.test.tsx.snap} +0 -0
- /package/src/progress-bar/test/{index.tsx → index.jsdom.test.tsx} +0 -0
- /package/src/resizable-box/resize-tooltip/test/{index.tsx → index.jsdom.test.tsx} +0 -0
- /package/src/resizable-box/resize-tooltip/test/{label.tsx → label.jsdom.test.tsx} +0 -0
- /package/src/scrollable/test/{index.tsx → index.jsdom.test.tsx} +0 -0
- /package/src/search-control/test/{index.tsx → index.jsdom.test.tsx} +0 -0
- /package/src/select-control/test/__snapshots__/{select-control.tsx.snap → select-control.jsdom.test.tsx.snap} +0 -0
- /package/src/select-control/test/{select-control.tsx → select-control.jsdom.test.tsx} +0 -0
- /package/src/slot-fill/test/__snapshots__/{slot.js.snap → slot.jsdom.test.tsx.snap} +0 -0
- /package/src/spacer/test/__snapshots__/{index.tsx.snap → index.jsdom.test.tsx.snap} +0 -0
- /package/src/spacer/test/{index.tsx → index.jsdom.test.tsx} +0 -0
- /package/src/text/test/__snapshots__/{index.tsx.snap → index.jsdom.test.tsx.snap} +0 -0
- /package/src/text/test/{index.tsx → index.jsdom.test.tsx} +0 -0
- /package/src/utils/test/{polymorphic-element.tsx → polymorphic-element.jsdom.test.tsx} +0 -0
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { describe, expect, it, test, vi } from 'vitest';
|
|
1
2
|
import { render, screen, waitFor, within } from '@testing-library/react';
|
|
2
3
|
import { click, type, press } from '@ariakit/test';
|
|
3
4
|
import PaletteEdit, {
|
|
@@ -6,6 +7,8 @@ import PaletteEdit, {
|
|
|
6
7
|
} from '..';
|
|
7
8
|
import type { PaletteElement } from '../types';
|
|
8
9
|
|
|
10
|
+
globalThis.wpVitest.mockMatchMedia();
|
|
11
|
+
|
|
9
12
|
const noop = () => {};
|
|
10
13
|
|
|
11
14
|
async function clearInput( input: HTMLInputElement ) {
|
|
@@ -384,7 +387,7 @@ describe( 'PaletteEdit', () => {
|
|
|
384
387
|
} );
|
|
385
388
|
|
|
386
389
|
it( 'calls the `onChange` with the new color appended', async () => {
|
|
387
|
-
const onChange =
|
|
390
|
+
const onChange = vi.fn();
|
|
388
391
|
|
|
389
392
|
render(
|
|
390
393
|
<PaletteEdit
|
|
@@ -413,7 +416,7 @@ describe( 'PaletteEdit', () => {
|
|
|
413
416
|
} );
|
|
414
417
|
|
|
415
418
|
it( 'calls the `onChange` with the new gradient appended', async () => {
|
|
416
|
-
const onChange =
|
|
419
|
+
const onChange = vi.fn();
|
|
417
420
|
|
|
418
421
|
render(
|
|
419
422
|
<PaletteEdit
|
|
@@ -443,7 +446,7 @@ describe( 'PaletteEdit', () => {
|
|
|
443
446
|
} );
|
|
444
447
|
|
|
445
448
|
it( 'calls the `onChange` with the new duotone appended, seeded from the color palette', async () => {
|
|
446
|
-
const onChange =
|
|
449
|
+
const onChange = vi.fn();
|
|
447
450
|
|
|
448
451
|
render(
|
|
449
452
|
<PaletteEdit
|
|
@@ -474,7 +477,7 @@ describe( 'PaletteEdit', () => {
|
|
|
474
477
|
} );
|
|
475
478
|
|
|
476
479
|
it( 'ignores palette colors a duotone cannot be built from when adding one', async () => {
|
|
477
|
-
const onChange =
|
|
480
|
+
const onChange = vi.fn();
|
|
478
481
|
|
|
479
482
|
render(
|
|
480
483
|
<PaletteEdit
|
|
@@ -518,7 +521,7 @@ describe( 'PaletteEdit', () => {
|
|
|
518
521
|
// accepts hex, `rgb()` and `hsl()`, so a named color saved as-is would
|
|
519
522
|
// render in the editor and be dropped on the front end.
|
|
520
523
|
it( 'normalizes palette colors to hex when adding a duotone', async () => {
|
|
521
|
-
const onChange =
|
|
524
|
+
const onChange = vi.fn();
|
|
522
525
|
|
|
523
526
|
render(
|
|
524
527
|
<PaletteEdit
|
|
@@ -551,7 +554,7 @@ describe( 'PaletteEdit', () => {
|
|
|
551
554
|
} );
|
|
552
555
|
|
|
553
556
|
it( 'falls back to black and white when adding a duotone without a color palette', async () => {
|
|
554
|
-
const onChange =
|
|
557
|
+
const onChange = vi.fn();
|
|
555
558
|
|
|
556
559
|
render(
|
|
557
560
|
<PaletteEdit
|
|
@@ -590,7 +593,7 @@ describe( 'PaletteEdit', () => {
|
|
|
590
593
|
} );
|
|
591
594
|
|
|
592
595
|
it( 'can remove a color', async () => {
|
|
593
|
-
const onChange =
|
|
596
|
+
const onChange = vi.fn();
|
|
594
597
|
|
|
595
598
|
render(
|
|
596
599
|
<PaletteEdit
|
|
@@ -623,7 +626,7 @@ describe( 'PaletteEdit', () => {
|
|
|
623
626
|
} );
|
|
624
627
|
|
|
625
628
|
it( 'can update palette name', async () => {
|
|
626
|
-
const onChange =
|
|
629
|
+
const onChange = vi.fn();
|
|
627
630
|
|
|
628
631
|
render(
|
|
629
632
|
<PaletteEdit
|
|
@@ -663,7 +666,7 @@ describe( 'PaletteEdit', () => {
|
|
|
663
666
|
} );
|
|
664
667
|
|
|
665
668
|
it( 'can update color palette value', async () => {
|
|
666
|
-
const onChange =
|
|
669
|
+
const onChange = vi.fn();
|
|
667
670
|
|
|
668
671
|
render(
|
|
669
672
|
<PaletteEdit
|
|
@@ -694,7 +697,7 @@ describe( 'PaletteEdit', () => {
|
|
|
694
697
|
} );
|
|
695
698
|
|
|
696
699
|
it( 'can update gradient palette value', async () => {
|
|
697
|
-
const onChange =
|
|
700
|
+
const onChange = vi.fn();
|
|
698
701
|
|
|
699
702
|
render(
|
|
700
703
|
<PaletteEdit
|
|
@@ -727,7 +730,7 @@ describe( 'PaletteEdit', () => {
|
|
|
727
730
|
} );
|
|
728
731
|
|
|
729
732
|
it( 'can update duotone palette value', async () => {
|
|
730
|
-
const onChange =
|
|
733
|
+
const onChange = vi.fn();
|
|
731
734
|
|
|
732
735
|
render(
|
|
733
736
|
<PaletteEdit
|
|
@@ -757,7 +760,7 @@ describe( 'PaletteEdit', () => {
|
|
|
757
760
|
// has to apply when editing one, or the shadows and highlights picker can
|
|
758
761
|
// offer a color the saved duotone cannot be built from.
|
|
759
762
|
it( 'hides unusable colors and saves named ones as hex when editing a duotone', async () => {
|
|
760
|
-
const onChange =
|
|
763
|
+
const onChange = vi.fn();
|
|
761
764
|
|
|
762
765
|
render(
|
|
763
766
|
<PaletteEdit
|
|
@@ -805,7 +808,7 @@ describe( 'PaletteEdit', () => {
|
|
|
805
808
|
// rather than an edge one. The duotone that was clicked has to be the one
|
|
806
809
|
// that gets edited.
|
|
807
810
|
it( 'updates the clicked duotone when two share the same colors', async () => {
|
|
808
|
-
const onChange =
|
|
811
|
+
const onChange = vi.fn();
|
|
809
812
|
const twins = [
|
|
810
813
|
{ colors: [ '#000000', '#ffffff' ], name: 'First', slug: 'first' },
|
|
811
814
|
{
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
|
2
|
+
|
|
3
|
+
exports[`Panel > basic rendering > should render an additional className 1`] = `
|
|
4
|
+
<div>
|
|
5
|
+
<div
|
|
6
|
+
class="the-panel components-panel"
|
|
7
|
+
/>
|
|
8
|
+
</div>
|
|
9
|
+
`;
|
|
10
|
+
|
|
11
|
+
exports[`Panel > basic rendering > should render an empty div without any provided props 1`] = `
|
|
12
|
+
<div>
|
|
13
|
+
<div
|
|
14
|
+
class="components-panel"
|
|
15
|
+
/>
|
|
16
|
+
</div>
|
|
17
|
+
`;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
|
2
|
+
|
|
3
|
+
exports[`PanelRow > should render with the custom class name 1`] = `
|
|
4
|
+
<div>
|
|
5
|
+
<div
|
|
6
|
+
class="components-panel__row custom"
|
|
7
|
+
/>
|
|
8
|
+
</div>
|
|
9
|
+
`;
|
|
10
|
+
|
|
11
|
+
exports[`PanelRow > should render with the default class name 1`] = `
|
|
12
|
+
<div>
|
|
13
|
+
<div
|
|
14
|
+
class="components-panel__row"
|
|
15
|
+
/>
|
|
16
|
+
</div>
|
|
17
|
+
`;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { describe, expect, it, vi } from 'vitest';
|
|
1
2
|
import { render, screen } from '@testing-library/react';
|
|
2
3
|
import userEvent from '@testing-library/user-event';
|
|
3
4
|
import { PanelBody } from '../body';
|
|
@@ -131,7 +132,7 @@ describe( 'PanelBody', () => {
|
|
|
131
132
|
|
|
132
133
|
it( 'should pass button props to panel title', async () => {
|
|
133
134
|
const user = userEvent.setup();
|
|
134
|
-
const mock =
|
|
135
|
+
const mock = vi.fn();
|
|
135
136
|
|
|
136
137
|
render(
|
|
137
138
|
<PanelBody title="Panel" buttonProps={ { onClick: mock } }>
|
|
@@ -51,11 +51,6 @@
|
|
|
51
51
|
.block-editor-block-icon {
|
|
52
52
|
margin-right: $grid-unit-05;
|
|
53
53
|
fill: currentColor;
|
|
54
|
-
// Optimize for high contrast modes.
|
|
55
|
-
// See also https://blogs.windows.com/msedgedev/2020/09/17/styling-for-windows-high-contrast-with-new-standards-for-forced-colors/.
|
|
56
|
-
@media (forced-colors: active) {
|
|
57
|
-
fill: CanvasText;
|
|
58
|
-
}
|
|
59
54
|
}
|
|
60
55
|
|
|
61
56
|
// Don't take up space if the label is empty.
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
|
1
2
|
import { render, screen, within } from '@testing-library/react';
|
|
2
3
|
import { useResizeObserver } from '@wordpress/compose';
|
|
3
4
|
import { SVG, Path } from '@wordpress/primitives';
|
|
@@ -6,10 +7,13 @@ import BasePlaceholder from '../';
|
|
|
6
7
|
import type { WordPressComponentProps } from '../../context';
|
|
7
8
|
import type { PlaceholderProps } from '../types';
|
|
8
9
|
|
|
9
|
-
|
|
10
|
+
vi.mock( import( '@wordpress/compose' ), async ( importOriginal ) => {
|
|
11
|
+
const original = await importOriginal();
|
|
10
12
|
return {
|
|
11
|
-
...
|
|
12
|
-
useResizeObserver:
|
|
13
|
+
...original,
|
|
14
|
+
useResizeObserver: vi.fn(
|
|
15
|
+
() => []
|
|
16
|
+
) as unknown as typeof original.useResizeObserver,
|
|
13
17
|
};
|
|
14
18
|
} );
|
|
15
19
|
|
|
@@ -31,15 +35,18 @@ const Placeholder = (
|
|
|
31
35
|
|
|
32
36
|
const getPlaceholder = () => screen.getByTestId( 'placeholder' );
|
|
33
37
|
|
|
34
|
-
|
|
35
|
-
|
|
38
|
+
vi.mock( import( '@wordpress/a11y' ), async ( importOriginal ) => ( {
|
|
39
|
+
...( await importOriginal() ),
|
|
40
|
+
speak: vi.fn(),
|
|
41
|
+
} ) );
|
|
42
|
+
const mockedUseResizeObserver = vi.mocked( useResizeObserver );
|
|
43
|
+
const mockedSpeak = vi.mocked( speak );
|
|
36
44
|
|
|
37
45
|
describe( 'Placeholder', () => {
|
|
38
46
|
beforeEach( () => {
|
|
39
|
-
|
|
40
|
-
useResizeObserver.mockReturnValue( [
|
|
47
|
+
mockedUseResizeObserver.mockReturnValue( [
|
|
41
48
|
<div key="1" />,
|
|
42
|
-
{ width: 320 },
|
|
49
|
+
{ width: 320, height: null },
|
|
43
50
|
] );
|
|
44
51
|
mockedSpeak.mockReset();
|
|
45
52
|
} );
|
|
@@ -153,10 +160,9 @@ describe( 'Placeholder', () => {
|
|
|
153
160
|
|
|
154
161
|
describe( 'resize aware', () => {
|
|
155
162
|
it( 'should not assign modifier class in first-pass `null` width from `useResizeObserver`', () => {
|
|
156
|
-
|
|
157
|
-
useResizeObserver.mockReturnValue( [
|
|
163
|
+
mockedUseResizeObserver.mockReturnValue( [
|
|
158
164
|
<div key="1" />,
|
|
159
|
-
{ width: 480 },
|
|
165
|
+
{ width: 480, height: null },
|
|
160
166
|
] );
|
|
161
167
|
|
|
162
168
|
render( <Placeholder /> );
|
|
@@ -168,10 +174,9 @@ describe( 'Placeholder', () => {
|
|
|
168
174
|
} );
|
|
169
175
|
|
|
170
176
|
it( 'should assign modifier class', () => {
|
|
171
|
-
|
|
172
|
-
useResizeObserver.mockReturnValue( [
|
|
177
|
+
mockedUseResizeObserver.mockReturnValue( [
|
|
173
178
|
<div key="1" />,
|
|
174
|
-
{ width: null },
|
|
179
|
+
{ width: null, height: null },
|
|
175
180
|
] );
|
|
176
181
|
|
|
177
182
|
render( <Placeholder /> );
|
package/src/popover/README.md
CHANGED
|
@@ -183,9 +183,9 @@ Used to show/hide the arrow that points at the popover's anchor.
|
|
|
183
183
|
- Required: No
|
|
184
184
|
- Default: `true`
|
|
185
185
|
|
|
186
|
-
### `offset`: `number`
|
|
186
|
+
### `offset`: `number | { mainAxis?: number; crossAxis?: number }`
|
|
187
187
|
|
|
188
|
-
The distance (in px) between the anchor and the popover.
|
|
188
|
+
The distance (in px) between the anchor and the popover. A number displaces the popover along its main axis; pass an object to also displace it along its cross axis.
|
|
189
189
|
|
|
190
190
|
- Required: No
|
|
191
191
|
|
|
@@ -174,6 +174,29 @@ describe( 'Popover', () => {
|
|
|
174
174
|
} );
|
|
175
175
|
} );
|
|
176
176
|
|
|
177
|
+
describe( 'offset', () => {
|
|
178
|
+
it( 'should displace the popover along its cross axis when passed an offset object', async () => {
|
|
179
|
+
render(
|
|
180
|
+
<Popover
|
|
181
|
+
placement="right-start"
|
|
182
|
+
offset={ { mainAxis: 16, crossAxis: 24 } }
|
|
183
|
+
animate={ false }
|
|
184
|
+
flip={ false }
|
|
185
|
+
shift={ false }
|
|
186
|
+
data-testid="popover-element"
|
|
187
|
+
>
|
|
188
|
+
Hello
|
|
189
|
+
</Popover>
|
|
190
|
+
);
|
|
191
|
+
const popover = screen.getByTestId( 'popover-element' );
|
|
192
|
+
|
|
193
|
+
await waitFor( () => expect( popover ).toBeVisible() );
|
|
194
|
+
expect( popover ).toHaveStyle(
|
|
195
|
+
'transform: translateX(16px) translateY(24px)'
|
|
196
|
+
);
|
|
197
|
+
} );
|
|
198
|
+
} );
|
|
199
|
+
|
|
177
200
|
describe( 'style', () => {
|
|
178
201
|
it( 'outputs inline styles added through the style prop in addition to built-in popover positioning styles', async () => {
|
|
179
202
|
render(
|
package/src/popover/types.ts
CHANGED
|
@@ -105,9 +105,15 @@ export type PopoverProps = {
|
|
|
105
105
|
*/
|
|
106
106
|
noArrow?: boolean;
|
|
107
107
|
/**
|
|
108
|
-
* The distance (in px) between the anchor and the popover.
|
|
109
|
-
|
|
110
|
-
|
|
108
|
+
* The distance (in px) between the anchor and the popover. Pass an object to
|
|
109
|
+
* also displace the popover along its cross axis.
|
|
110
|
+
*/
|
|
111
|
+
offset?:
|
|
112
|
+
| number
|
|
113
|
+
| {
|
|
114
|
+
mainAxis?: number;
|
|
115
|
+
crossAxis?: number;
|
|
116
|
+
};
|
|
111
117
|
/**
|
|
112
118
|
* A callback invoked when the popover should be closed.
|
|
113
119
|
*/
|
|
@@ -33,12 +33,20 @@ $indeterminate-indicator-width: 50%;
|
|
|
33
33
|
outline-offset: -2px;
|
|
34
34
|
|
|
35
35
|
width: var(--indicator-width);
|
|
36
|
-
|
|
36
|
+
|
|
37
|
+
@media not (prefers-reduced-motion) {
|
|
38
|
+
transition: width 0.4s ease-in-out;
|
|
39
|
+
}
|
|
37
40
|
|
|
38
41
|
&.is-indeterminate {
|
|
39
42
|
--indicator-width: #{$indeterminate-indicator-width};
|
|
40
43
|
animation: indeterminate-slide 1.5s ease-in-out infinite;
|
|
41
44
|
transition: none;
|
|
45
|
+
|
|
46
|
+
@media (prefers-reduced-motion: reduce) {
|
|
47
|
+
animation-duration: 3s;
|
|
48
|
+
animation-timing-function: steps(4, end);
|
|
49
|
+
}
|
|
42
50
|
}
|
|
43
51
|
}
|
|
44
52
|
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
+
import { describe, expect, it, vi } from 'vitest';
|
|
1
2
|
import { render, screen } from '@testing-library/react';
|
|
2
3
|
import userEvent from '@testing-library/user-event';
|
|
3
4
|
import { useState } from '@wordpress/element';
|
|
4
5
|
import RadioControl from '../';
|
|
5
6
|
|
|
7
|
+
globalThis.wpVitest.mockMatchMedia();
|
|
8
|
+
|
|
6
9
|
const ControlledRadioControl = ( {
|
|
7
10
|
...props
|
|
8
11
|
}: React.ComponentProps< typeof RadioControl > ) => {
|
|
@@ -54,7 +57,7 @@ describe.each( [
|
|
|
54
57
|
|
|
55
58
|
describe( 'semantics and labelling', () => {
|
|
56
59
|
it( 'should render a radiogroup with an accessible label (legend)', () => {
|
|
57
|
-
const onChangeSpy =
|
|
60
|
+
const onChangeSpy = vi.fn();
|
|
58
61
|
render(
|
|
59
62
|
<Component { ...defaultProps } onChange={ onChangeSpy } />
|
|
60
63
|
);
|
|
@@ -65,7 +68,7 @@ describe.each( [
|
|
|
65
68
|
} );
|
|
66
69
|
|
|
67
70
|
it( 'should render a radiogroup with an accessible label even when the label is visually hidden', () => {
|
|
68
|
-
const onChangeSpy =
|
|
71
|
+
const onChangeSpy = vi.fn();
|
|
69
72
|
render(
|
|
70
73
|
<Component
|
|
71
74
|
{ ...defaultProps }
|
|
@@ -113,7 +116,7 @@ describe.each( [
|
|
|
113
116
|
} );
|
|
114
117
|
|
|
115
118
|
it( 'should describe the radio group with the help text', () => {
|
|
116
|
-
const onChangeSpy =
|
|
119
|
+
const onChangeSpy = vi.fn();
|
|
117
120
|
render(
|
|
118
121
|
<Component
|
|
119
122
|
{ ...defaultProps }
|
|
@@ -128,7 +131,7 @@ describe.each( [
|
|
|
128
131
|
} );
|
|
129
132
|
|
|
130
133
|
it( 'should render radio inputs with accessible labels', () => {
|
|
131
|
-
const onChangeSpy =
|
|
134
|
+
const onChangeSpy = vi.fn();
|
|
132
135
|
render(
|
|
133
136
|
<Component { ...defaultProps } onChange={ onChangeSpy } />
|
|
134
137
|
);
|
|
@@ -143,7 +146,7 @@ describe.each( [
|
|
|
143
146
|
} );
|
|
144
147
|
|
|
145
148
|
it( 'should not select have a selected value when the `selected` prop does not match any available options', () => {
|
|
146
|
-
const onChangeSpy =
|
|
149
|
+
const onChangeSpy = vi.fn();
|
|
147
150
|
render(
|
|
148
151
|
<Component { ...defaultProps } onChange={ onChangeSpy } />
|
|
149
152
|
);
|
|
@@ -156,7 +159,7 @@ describe.each( [
|
|
|
156
159
|
} );
|
|
157
160
|
|
|
158
161
|
it( 'should render mutually exclusive radio inputs', () => {
|
|
159
|
-
const onChangeSpy =
|
|
162
|
+
const onChangeSpy = vi.fn();
|
|
160
163
|
render(
|
|
161
164
|
<Component
|
|
162
165
|
{ ...defaultProps }
|
|
@@ -173,7 +176,7 @@ describe.each( [
|
|
|
173
176
|
} );
|
|
174
177
|
|
|
175
178
|
it( 'should use the option description text to describe individual options', () => {
|
|
176
|
-
const onChangeSpy =
|
|
179
|
+
const onChangeSpy = vi.fn();
|
|
177
180
|
render(
|
|
178
181
|
<Component
|
|
179
182
|
{ ...defaultPropsWithDescriptions }
|
|
@@ -199,7 +202,7 @@ describe.each( [
|
|
|
199
202
|
describe( 'interaction', () => {
|
|
200
203
|
it( 'should keep enabled options interactive when another option is disabled', async () => {
|
|
201
204
|
const user = userEvent.setup();
|
|
202
|
-
const onChangeSpy =
|
|
205
|
+
const onChangeSpy = vi.fn();
|
|
203
206
|
render(
|
|
204
207
|
<Component
|
|
205
208
|
{ ...defaultPropsWithDisabledOption }
|
|
@@ -227,7 +230,7 @@ describe.each( [
|
|
|
227
230
|
|
|
228
231
|
it( 'should select a new value when clicking on the radio input', async () => {
|
|
229
232
|
const user = userEvent.setup();
|
|
230
|
-
const onChangeSpy =
|
|
233
|
+
const onChangeSpy = vi.fn();
|
|
231
234
|
render(
|
|
232
235
|
<Component { ...defaultProps } onChange={ onChangeSpy } />
|
|
233
236
|
);
|
|
@@ -252,7 +255,7 @@ describe.each( [
|
|
|
252
255
|
|
|
253
256
|
it( 'should select a new value when clicking on the radio label', async () => {
|
|
254
257
|
const user = userEvent.setup();
|
|
255
|
-
const onChangeSpy =
|
|
258
|
+
const onChangeSpy = vi.fn();
|
|
256
259
|
render(
|
|
257
260
|
<Component { ...defaultProps } onChange={ onChangeSpy } />
|
|
258
261
|
);
|
|
@@ -275,7 +278,7 @@ describe.each( [
|
|
|
275
278
|
|
|
276
279
|
it( 'should select a new value when using the arrow keys', async () => {
|
|
277
280
|
const user = userEvent.setup();
|
|
278
|
-
const onChangeSpy =
|
|
281
|
+
const onChangeSpy = vi.fn();
|
|
279
282
|
render(
|
|
280
283
|
<Component { ...defaultProps } onChange={ onChangeSpy } />
|
|
281
284
|
);
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
import { describe, expect, it, vi } from 'vitest';
|
|
1
2
|
import { act, fireEvent, render, screen } from '@testing-library/react';
|
|
2
3
|
import RangeControl from '../';
|
|
3
4
|
|
|
5
|
+
globalThis.wpVitest.mockMatchMedia();
|
|
6
|
+
|
|
4
7
|
const getRangeInput = (): HTMLInputElement => screen.getByRole( 'slider' );
|
|
5
8
|
const getNumberInput = (): HTMLInputElement => screen.getByRole( 'spinbutton' );
|
|
6
9
|
const getResetButton = (): HTMLButtonElement => screen.getByRole( 'button' );
|
|
@@ -11,7 +14,7 @@ const fireChangeEvent = ( input: HTMLInputElement, value?: number | string ) =>
|
|
|
11
14
|
describe( 'RangeControl', () => {
|
|
12
15
|
describe( '#render()', () => {
|
|
13
16
|
it( 'should trigger change callback with numeric value', () => {
|
|
14
|
-
const onChange =
|
|
17
|
+
const onChange = vi.fn();
|
|
15
18
|
|
|
16
19
|
render( <RangeControl onChange={ onChange } /> );
|
|
17
20
|
|
|
@@ -76,7 +79,7 @@ describe( 'RangeControl', () => {
|
|
|
76
79
|
} );
|
|
77
80
|
|
|
78
81
|
it( 'should not call onChange if new value is invalid', () => {
|
|
79
|
-
const onChange =
|
|
82
|
+
const onChange = vi.fn();
|
|
80
83
|
render(
|
|
81
84
|
<RangeControl onChange={ onChange } min={ 10 } max={ 20 } />
|
|
82
85
|
);
|
|
@@ -90,7 +93,7 @@ describe( 'RangeControl', () => {
|
|
|
90
93
|
} );
|
|
91
94
|
|
|
92
95
|
it( 'should keep invalid values in number input until loss of focus', () => {
|
|
93
|
-
const onChange =
|
|
96
|
+
const onChange = vi.fn();
|
|
94
97
|
render(
|
|
95
98
|
<RangeControl onChange={ onChange } min={ -1 } max={ 1 } />
|
|
96
99
|
);
|
|
@@ -141,7 +144,7 @@ describe( 'RangeControl', () => {
|
|
|
141
144
|
} );
|
|
142
145
|
|
|
143
146
|
it( 'should take into account the step starting from min', () => {
|
|
144
|
-
const onChange =
|
|
147
|
+
const onChange = vi.fn();
|
|
145
148
|
render(
|
|
146
149
|
<RangeControl
|
|
147
150
|
onChange={ onChange }
|
|
@@ -286,7 +289,7 @@ describe( 'RangeControl', () => {
|
|
|
286
289
|
|
|
287
290
|
describe( 'reset', () => {
|
|
288
291
|
it( 'should clear the input value when clicking the reset button', () => {
|
|
289
|
-
const spy =
|
|
292
|
+
const spy = vi.fn();
|
|
290
293
|
render( <RangeControl allowReset onChange={ spy } /> );
|
|
291
294
|
|
|
292
295
|
const resetButton = getResetButton();
|
|
@@ -310,7 +313,7 @@ describe( 'RangeControl', () => {
|
|
|
310
313
|
} );
|
|
311
314
|
|
|
312
315
|
it( 'should reset to the `initialPosition` value when clicking the reset button', () => {
|
|
313
|
-
const spy =
|
|
316
|
+
const spy = vi.fn();
|
|
314
317
|
render(
|
|
315
318
|
<RangeControl
|
|
316
319
|
allowReset
|
|
@@ -339,7 +342,7 @@ describe( 'RangeControl', () => {
|
|
|
339
342
|
} );
|
|
340
343
|
|
|
341
344
|
it( 'should reset to the `resetFallbackValue` value when clicking the reset button', () => {
|
|
342
|
-
const spy =
|
|
345
|
+
const spy = vi.fn();
|
|
343
346
|
render(
|
|
344
347
|
<RangeControl
|
|
345
348
|
initialPosition={ 10 }
|
|
@@ -102,7 +102,7 @@ function UnforwardedResizableBox(
|
|
|
102
102
|
) }
|
|
103
103
|
// Add a focusable element within the drag handle. Unfortunately,
|
|
104
104
|
// `re-resizable` does not make them properly focusable by default,
|
|
105
|
-
// causing focus to move the
|
|
105
|
+
// causing focus to move the block wrapper which triggers block
|
|
106
106
|
// drag.
|
|
107
107
|
handleComponent={ Object.fromEntries(
|
|
108
108
|
Object.keys( HANDLE_CLASSES ).map( ( key ) => [
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
|
2
|
+
|
|
3
|
+
exports[`Shortcut > renders passed className 1`] = `
|
|
4
|
+
<span
|
|
5
|
+
class="my-class"
|
|
6
|
+
>
|
|
7
|
+
shortcut text
|
|
8
|
+
</span>
|
|
9
|
+
`;
|
|
10
|
+
|
|
11
|
+
exports[`Shortcut > renders the shortcut display text when a string is passed as the shortcut 1`] = `
|
|
12
|
+
<span>
|
|
13
|
+
shortcut text
|
|
14
|
+
</span>
|
|
15
|
+
`;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { describe, expect, test } from 'vitest';
|
|
1
2
|
import { render, screen, within } from '@testing-library/react';
|
|
2
3
|
import { createRef } from '@wordpress/element';
|
|
3
4
|
import { createSlotFill, Provider as SlotFillProvider } from '../';
|
|
@@ -79,7 +80,7 @@ describe( 'createSlotFill', () => {
|
|
|
79
80
|
|
|
80
81
|
test( 'should forward ref to the slot when using bubblesVirtually', () => {
|
|
81
82
|
const TestSlotFill = createSlotFill( 'TestRefSlot' );
|
|
82
|
-
const ref = createRef();
|
|
83
|
+
const ref = createRef< HTMLElement >();
|
|
83
84
|
|
|
84
85
|
render(
|
|
85
86
|
<SlotFillProvider>
|
|
@@ -91,12 +92,12 @@ describe( 'createSlotFill', () => {
|
|
|
91
92
|
);
|
|
92
93
|
|
|
93
94
|
expect( ref.current ).not.toBeNull();
|
|
94
|
-
expect( ref.current
|
|
95
|
+
expect( ref.current!.tagName ).toBe( 'DIV' );
|
|
95
96
|
} );
|
|
96
97
|
|
|
97
98
|
test( 'should forward ref without bubblesVirtually (ref stays null for fragment-based slot)', () => {
|
|
98
99
|
const TestSlotFill = createSlotFill( 'TestRefSlotBase' );
|
|
99
|
-
const ref = createRef();
|
|
100
|
+
const ref = createRef< HTMLElement >();
|
|
100
101
|
|
|
101
102
|
render(
|
|
102
103
|
<SlotFillProvider>
|