@wordpress/components 37.0.0 → 38.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/AGENTS.md +2 -2
- package/CHANGELOG.md +46 -0
- package/build/autocomplete/index.cjs +3 -1
- package/build/autocomplete/index.cjs.map +2 -2
- package/build/color-picker/component.cjs +14 -5
- package/build/color-picker/component.cjs.map +2 -2
- package/build/color-picker/picker.cjs +95 -23
- package/build/color-picker/picker.cjs.map +2 -2
- package/build/confirm-dialog/component.cjs +86 -4
- package/build/confirm-dialog/component.cjs.map +3 -3
- package/build/content-editable-control/index.cjs +19 -9
- package/build/content-editable-control/index.cjs.map +3 -3
- package/build/custom-select-control/index.cjs +1 -2
- package/build/custom-select-control/index.cjs.map +2 -2
- package/build/disabled/index.cjs +87 -4
- package/build/disabled/index.cjs.map +4 -4
- package/build/form-token-field/index.cjs +87 -2
- package/build/form-token-field/index.cjs.map +3 -3
- package/build/gradient-picker/index.cjs +26 -20
- package/build/gradient-picker/index.cjs.map +2 -2
- package/build/input-control/index.cjs +0 -1
- package/build/input-control/index.cjs.map +2 -2
- package/build/input-control/styles/input-control-styles.cjs +23 -31
- package/build/input-control/styles/input-control-styles.cjs.map +2 -2
- package/build/private-apis.cjs +0 -2
- package/build/private-apis.cjs.map +3 -3
- package/build/range-control/index.cjs +0 -1
- package/build/range-control/index.cjs.map +2 -2
- package/build/sandbox/index.cjs +23 -4
- package/build/sandbox/index.cjs.map +3 -3
- package/build/search-control/index.cjs +93 -10
- package/build/search-control/index.cjs.map +4 -4
- package/build/select-control/index.cjs +0 -1
- package/build/select-control/index.cjs.map +2 -2
- package/build/select-control/styles/select-control-styles.cjs +9 -16
- package/build/select-control/styles/select-control-styles.cjs.map +2 -2
- package/build/slot-fill/fill.cjs.map +2 -2
- package/build/toggle-group-control/toggle-group-control/component.cjs +91 -8
- package/build/toggle-group-control/toggle-group-control/component.cjs.map +4 -4
- package/build/toggle-group-control/toggle-group-control-option-base/component.cjs +98 -17
- package/build/toggle-group-control/toggle-group-control-option-base/component.cjs.map +4 -4
- package/build/tools-panel/tools-panel/component.cjs +6 -0
- package/build/tools-panel/tools-panel/component.cjs.map +2 -2
- package/build/tools-panel/tools-panel/hook.cjs +87 -11
- package/build/tools-panel/tools-panel/hook.cjs.map +4 -4
- package/build/tools-panel/tools-panel-header/component.cjs +87 -2
- package/build/tools-panel/tools-panel-header/component.cjs.map +3 -3
- package/build/tools-panel/tools-panel-header/hook.cjs +90 -20
- package/build/tools-panel/tools-panel-header/hook.cjs.map +4 -4
- package/build/tools-panel/tools-panel-item/hook.cjs +88 -9
- package/build/tools-panel/tools-panel-item/hook.cjs.map +4 -4
- package/build/validated-form-controls/control-with-error.cjs +3 -0
- package/build/validated-form-controls/control-with-error.cjs.map +2 -2
- package/build-module/autocomplete/index.mjs +3 -1
- package/build-module/autocomplete/index.mjs.map +2 -2
- package/build-module/color-picker/component.mjs +14 -5
- package/build-module/color-picker/component.mjs.map +2 -2
- package/build-module/color-picker/picker.mjs +96 -24
- package/build-module/color-picker/picker.mjs.map +2 -2
- package/build-module/confirm-dialog/component.mjs +86 -4
- package/build-module/confirm-dialog/component.mjs.map +3 -3
- package/build-module/content-editable-control/index.mjs +21 -11
- package/build-module/content-editable-control/index.mjs.map +2 -2
- package/build-module/custom-select-control/index.mjs +1 -2
- package/build-module/custom-select-control/index.mjs.map +2 -2
- package/build-module/disabled/index.mjs +87 -4
- package/build-module/disabled/index.mjs.map +3 -3
- package/build-module/form-token-field/index.mjs +88 -3
- package/build-module/form-token-field/index.mjs.map +3 -3
- package/build-module/gradient-picker/index.mjs +26 -20
- package/build-module/gradient-picker/index.mjs.map +2 -2
- package/build-module/input-control/index.mjs +0 -1
- package/build-module/input-control/index.mjs.map +2 -2
- package/build-module/input-control/styles/input-control-styles.mjs +23 -31
- package/build-module/input-control/styles/input-control-styles.mjs.map +2 -2
- package/build-module/private-apis.mjs +0 -2
- package/build-module/private-apis.mjs.map +2 -2
- package/build-module/range-control/index.mjs +0 -1
- package/build-module/range-control/index.mjs.map +2 -2
- package/build-module/sandbox/index.mjs +13 -4
- package/build-module/sandbox/index.mjs.map +2 -2
- package/build-module/search-control/index.mjs +93 -10
- package/build-module/search-control/index.mjs.map +3 -3
- package/build-module/select-control/index.mjs +0 -1
- package/build-module/select-control/index.mjs.map +2 -2
- package/build-module/select-control/styles/select-control-styles.mjs +9 -16
- package/build-module/select-control/styles/select-control-styles.mjs.map +2 -2
- package/build-module/slot-fill/fill.mjs.map +2 -2
- package/build-module/toggle-group-control/toggle-group-control/component.mjs +92 -9
- package/build-module/toggle-group-control/toggle-group-control/component.mjs.map +3 -3
- package/build-module/toggle-group-control/toggle-group-control-option-base/component.mjs +99 -18
- package/build-module/toggle-group-control/toggle-group-control-option-base/component.mjs.map +3 -3
- package/build-module/tools-panel/tools-panel/component.mjs +6 -0
- package/build-module/tools-panel/tools-panel/component.mjs.map +2 -2
- package/build-module/tools-panel/tools-panel/hook.mjs +87 -11
- package/build-module/tools-panel/tools-panel/hook.mjs.map +3 -3
- package/build-module/tools-panel/tools-panel-header/component.mjs +87 -2
- package/build-module/tools-panel/tools-panel-header/component.mjs.map +3 -3
- package/build-module/tools-panel/tools-panel-header/hook.mjs +90 -20
- package/build-module/tools-panel/tools-panel-header/hook.mjs.map +3 -3
- package/build-module/tools-panel/tools-panel-item/hook.mjs +89 -10
- package/build-module/tools-panel/tools-panel-item/hook.mjs.map +3 -3
- package/build-module/validated-form-controls/control-with-error.mjs +3 -0
- package/build-module/validated-form-controls/control-with-error.mjs.map +2 -2
- package/build-style/style-rtl.css +20 -24
- package/build-style/style.css +20 -24
- package/build-types/autocomplete/index.d.ts +7 -3
- package/build-types/autocomplete/index.d.ts.map +1 -1
- package/build-types/border-box-control/border-box-control/component.d.ts +1 -3
- package/build-types/border-box-control/border-box-control/component.d.ts.map +1 -1
- package/build-types/border-box-control/stories/index.story.d.ts +1 -3
- package/build-types/border-box-control/stories/index.story.d.ts.map +1 -1
- package/build-types/border-box-control/types.d.ts +1 -15
- package/build-types/border-box-control/types.d.ts.map +1 -1
- package/build-types/box-control/input-control.d.ts +3 -0
- package/build-types/box-control/input-control.d.ts.map +1 -0
- package/build-types/box-control/styles/box-control-styles.d.ts +4 -8
- package/build-types/box-control/styles/box-control-styles.d.ts.map +1 -1
- package/build-types/box-control/types.d.ts +1 -8
- package/build-types/box-control/types.d.ts.map +1 -1
- package/build-types/card/context.d.ts +3 -0
- package/build-types/card/context.d.ts.map +1 -0
- package/build-types/color-picker/component.d.ts.map +1 -1
- package/build-types/color-picker/picker.d.ts +17 -1
- package/build-types/color-picker/picker.d.ts.map +1 -1
- package/build-types/color-picker/styles.d.ts +4 -8
- package/build-types/color-picker/styles.d.ts.map +1 -1
- package/build-types/color-picker/types.d.ts +2 -0
- package/build-types/color-picker/types.d.ts.map +1 -1
- package/build-types/confirm-dialog/component.d.ts.map +1 -1
- package/build-types/content-editable-control/index.d.ts.map +1 -1
- package/build-types/context/wordpress-component.d.ts +2 -1
- package/build-types/context/wordpress-component.d.ts.map +1 -1
- package/build-types/custom-select-control/index.d.ts.map +1 -1
- package/build-types/custom-select-control/types.d.ts +1 -8
- package/build-types/custom-select-control/types.d.ts.map +1 -1
- package/build-types/date-time/date/index.d.ts +23 -0
- package/build-types/date-time/date/index.d.ts.map +1 -0
- package/build-types/date-time/date/styles.d.ts +45 -0
- package/build-types/date-time/date/styles.d.ts.map +1 -0
- package/build-types/date-time/date/test/index.d.ts +2 -0
- package/build-types/date-time/date/test/index.d.ts.map +1 -0
- package/build-types/date-time/date/test/use-lilius.d.ts +2 -0
- package/build-types/date-time/date/test/use-lilius.d.ts.map +1 -0
- package/build-types/date-time/date/use-lilius/index.d.ts +169 -0
- package/build-types/date-time/date/use-lilius/index.d.ts.map +1 -0
- package/build-types/date-time/time/index.d.ts +27 -0
- package/build-types/date-time/time/index.d.ts.map +1 -0
- package/build-types/date-time/time/styles.d.ts +93 -0
- package/build-types/date-time/time/styles.d.ts.map +1 -0
- package/build-types/date-time/time/test/index.d.ts +2 -0
- package/build-types/date-time/time/test/index.d.ts.map +1 -0
- package/build-types/date-time/time/time-input/index.d.ts +4 -0
- package/build-types/date-time/time/time-input/index.d.ts.map +1 -0
- package/build-types/date-time/time/time-input/test/index.d.ts +2 -0
- package/build-types/date-time/time/time-input/test/index.d.ts.map +1 -0
- package/build-types/date-time/time/timezone.d.ts +7 -0
- package/build-types/date-time/time/timezone.d.ts.map +1 -0
- package/build-types/date-time/time-picker/styles.d.ts +8 -16
- package/build-types/date-time/time-picker/styles.d.ts.map +1 -1
- package/build-types/disabled/index.d.ts.map +1 -1
- package/build-types/divider/styles.d.ts +10 -0
- package/build-types/divider/styles.d.ts.map +1 -0
- package/build-types/flex/styles.d.ts +17 -0
- package/build-types/flex/styles.d.ts.map +1 -0
- package/build-types/focal-point-picker/styles/focal-point-picker-style.d.ts +2 -4
- package/build-types/focal-point-picker/styles/focal-point-picker-style.d.ts.map +1 -1
- package/build-types/font-size-picker/index.d.ts +12 -2
- package/build-types/font-size-picker/index.d.ts.map +1 -1
- package/build-types/font-size-picker/stories/e2e/index.story.d.ts +12 -1
- package/build-types/font-size-picker/stories/e2e/index.story.d.ts.map +1 -1
- package/build-types/font-size-picker/types.d.ts +2 -15
- package/build-types/font-size-picker/types.d.ts.map +1 -1
- package/build-types/form-token-field/index.d.ts.map +1 -1
- package/build-types/gradient-picker/index.d.ts.map +1 -1
- package/build-types/gradient-picker/stories/index.story.d.ts +1 -0
- package/build-types/gradient-picker/stories/index.story.d.ts.map +1 -1
- package/build-types/gradient-picker/test/index.d.ts +2 -0
- package/build-types/gradient-picker/test/index.d.ts.map +1 -0
- package/build-types/gradient-picker/types.d.ts +19 -4
- package/build-types/gradient-picker/types.d.ts.map +1 -1
- package/build-types/input-control/index.d.ts.map +1 -1
- package/build-types/input-control/styles/input-control-styles.d.ts +0 -6
- package/build-types/input-control/styles/input-control-styles.d.ts.map +1 -1
- package/build-types/input-control/types.d.ts +1 -8
- package/build-types/input-control/types.d.ts.map +1 -1
- package/build-types/mobile/image/constants.d.ts +5 -0
- package/build-types/mobile/image/constants.d.ts.map +1 -0
- package/build-types/navigation/back-button/index.d.ts +7 -0
- package/build-types/navigation/back-button/index.d.ts.map +1 -0
- package/build-types/navigation/constants.d.ts +3 -0
- package/build-types/navigation/constants.d.ts.map +1 -0
- package/build-types/navigation/context.d.ts +4 -0
- package/build-types/navigation/context.d.ts.map +1 -0
- package/build-types/navigation/group/context.d.ts +7 -0
- package/build-types/navigation/group/context.d.ts.map +1 -0
- package/build-types/navigation/group/index.d.ts +7 -0
- package/build-types/navigation/group/index.d.ts.map +1 -0
- package/build-types/navigation/index.d.ts +46 -0
- package/build-types/navigation/index.d.ts.map +1 -0
- package/build-types/navigation/item/base-content.d.ts +3 -0
- package/build-types/navigation/item/base-content.d.ts.map +1 -0
- package/build-types/navigation/item/base.d.ts +3 -0
- package/build-types/navigation/item/base.d.ts.map +1 -0
- package/build-types/navigation/item/index.d.ts +7 -0
- package/build-types/navigation/item/index.d.ts.map +1 -0
- package/build-types/navigation/item/use-navigation-tree-item.d.ts +3 -0
- package/build-types/navigation/item/use-navigation-tree-item.d.ts.map +1 -0
- package/build-types/navigation/menu/context.d.ts +7 -0
- package/build-types/navigation/menu/context.d.ts.map +1 -0
- package/build-types/navigation/menu/index.d.ts +7 -0
- package/build-types/navigation/menu/index.d.ts.map +1 -0
- package/build-types/navigation/menu/menu-title-search.d.ts +3 -0
- package/build-types/navigation/menu/menu-title-search.d.ts.map +1 -0
- package/build-types/navigation/menu/menu-title.d.ts +3 -0
- package/build-types/navigation/menu/menu-title.d.ts.map +1 -0
- package/build-types/navigation/menu/search-no-results-found.d.ts +3 -0
- package/build-types/navigation/menu/search-no-results-found.d.ts.map +1 -0
- package/build-types/navigation/menu/use-navigation-tree-menu.d.ts +3 -0
- package/build-types/navigation/menu/use-navigation-tree-menu.d.ts.map +1 -0
- package/build-types/navigation/stories/index.story.d.ts +23 -0
- package/build-types/navigation/stories/index.story.d.ts.map +1 -0
- package/build-types/navigation/stories/utils/controlled-state.d.ts +7 -0
- package/build-types/navigation/stories/utils/controlled-state.d.ts.map +1 -0
- package/build-types/navigation/stories/utils/default.d.ts +10 -0
- package/build-types/navigation/stories/utils/default.d.ts.map +1 -0
- package/build-types/navigation/stories/utils/group.d.ts +10 -0
- package/build-types/navigation/stories/utils/group.d.ts.map +1 -0
- package/build-types/navigation/stories/utils/hide-if-empty.d.ts +10 -0
- package/build-types/navigation/stories/utils/hide-if-empty.d.ts.map +1 -0
- package/build-types/navigation/stories/utils/more-examples.d.ts +10 -0
- package/build-types/navigation/stories/utils/more-examples.d.ts.map +1 -0
- package/build-types/navigation/stories/utils/search.d.ts +10 -0
- package/build-types/navigation/stories/utils/search.d.ts.map +1 -0
- package/build-types/navigation/styles/navigation-styles.d.ts +55 -0
- package/build-types/navigation/styles/navigation-styles.d.ts.map +1 -0
- package/build-types/navigation/test/index.d.ts +2 -0
- package/build-types/navigation/test/index.d.ts.map +1 -0
- package/build-types/navigation/types.d.ts +266 -0
- package/build-types/navigation/types.d.ts.map +1 -0
- package/build-types/navigation/use-create-navigation-tree.d.ts +15 -0
- package/build-types/navigation/use-create-navigation-tree.d.ts.map +1 -0
- package/build-types/navigation/use-navigation-tree-nodes.d.ts +10 -0
- package/build-types/navigation/use-navigation-tree-nodes.d.ts.map +1 -0
- package/build-types/navigation/utils.d.ts +3 -0
- package/build-types/navigation/utils.d.ts.map +1 -0
- package/build-types/number-control/index.d.ts +2 -4
- package/build-types/number-control/index.d.ts.map +1 -1
- package/build-types/number-control/stories/index.story.d.ts +2 -4
- package/build-types/number-control/stories/index.story.d.ts.map +1 -1
- package/build-types/number-control/types.d.ts +1 -15
- package/build-types/number-control/types.d.ts.map +1 -1
- package/build-types/private-apis.d.ts.map +1 -1
- package/build-types/range-control/index.d.ts +2 -4
- package/build-types/range-control/index.d.ts.map +1 -1
- package/build-types/range-control/styles/range-control-styles.d.ts +2 -4
- package/build-types/range-control/styles/range-control-styles.d.ts.map +1 -1
- package/build-types/range-control/types.d.ts +2 -16
- package/build-types/range-control/types.d.ts.map +1 -1
- package/build-types/sandbox/index.d.ts.map +1 -1
- package/build-types/sandbox/types.d.ts +11 -0
- package/build-types/sandbox/types.d.ts.map +1 -1
- package/build-types/search-control/index.d.ts.map +1 -1
- package/build-types/search-control/types.d.ts +1 -1
- package/build-types/search-control/types.d.ts.map +1 -1
- package/build-types/select-control/index.d.ts.map +1 -1
- package/build-types/select-control/styles/select-control-styles.d.ts.map +1 -1
- package/build-types/select-control/types.d.ts +0 -7
- package/build-types/select-control/types.d.ts.map +1 -1
- package/build-types/slot-fill/fill.d.ts.map +1 -1
- package/build-types/slot-fill/stories/index.story.d.ts +1 -6
- package/build-types/slot-fill/stories/index.story.d.ts.map +1 -1
- package/build-types/surface/styles.d.ts +11 -0
- package/build-types/surface/styles.d.ts.map +1 -0
- package/build-types/theme/styles.d.ts +10 -0
- package/build-types/theme/styles.d.ts.map +1 -0
- package/build-types/toggle-group-control/toggle-group-control/component.d.ts +0 -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-base/component.d.ts.map +1 -1
- package/build-types/toggle-group-control/types.d.ts +0 -7
- package/build-types/toggle-group-control/types.d.ts.map +1 -1
- package/build-types/tools-panel/tools-panel/component.d.ts.map +1 -1
- package/build-types/tools-panel/tools-panel/hook.d.ts.map +1 -1
- package/build-types/tools-panel/tools-panel-header/component.d.ts.map +1 -1
- package/build-types/tools-panel/tools-panel-header/hook.d.ts.map +1 -1
- package/build-types/tools-panel/tools-panel-item/hook.d.ts.map +1 -1
- package/build-types/tree-select/types.d.ts +1 -8
- package/build-types/tree-select/types.d.ts.map +1 -1
- package/build-types/truncate/styles.d.ts +2 -0
- package/build-types/truncate/styles.d.ts.map +1 -0
- package/build-types/unit-control/index.d.ts +2 -4
- package/build-types/unit-control/index.d.ts.map +1 -1
- package/build-types/unit-control/styles/unit-control-styles.d.ts +2 -4
- package/build-types/unit-control/styles/unit-control-styles.d.ts.map +1 -1
- package/build-types/unit-control/types.d.ts +1 -15
- package/build-types/unit-control/types.d.ts.map +1 -1
- package/build-types/utils/deprecated-36px-size.d.ts +7 -0
- package/build-types/utils/deprecated-36px-size.d.ts.map +1 -0
- package/build-types/validated-form-controls/components/number-control.d.ts +2 -4
- package/build-types/validated-form-controls/components/number-control.d.ts.map +1 -1
- package/build-types/validated-form-controls/components/range-control.d.ts +2 -4
- package/build-types/validated-form-controls/components/range-control.d.ts.map +1 -1
- package/build-types/validated-form-controls/components/stories/overview.story.d.ts +5 -0
- package/build-types/validated-form-controls/components/stories/overview.story.d.ts.map +1 -1
- package/build-types/validated-form-controls/components/toggle-group-control.d.ts +1 -2
- package/build-types/validated-form-controls/components/toggle-group-control.d.ts.map +1 -1
- package/build-types/validated-form-controls/control-with-error.d.ts.map +1 -1
- package/build-types/visually-hidden/test/index.d.ts +2 -0
- package/build-types/visually-hidden/test/index.d.ts.map +1 -0
- package/package.json +27 -27
- package/src/autocomplete/index.tsx +16 -3
- package/src/base-control/README.md +2 -2
- package/src/border-box-control/types.ts +4 -15
- package/src/box-control/types.ts +4 -8
- package/src/card/test/__snapshots__/index.tsx.snap +1 -1
- package/src/checkbox-control/test/__snapshots__/index.tsx.snap +1 -1
- package/src/color-indicator/test/__snapshots__/index.tsx.snap +1 -1
- package/src/color-picker/component.tsx +23 -19
- package/src/color-picker/picker.tsx +144 -21
- package/src/color-picker/test/index.tsx +502 -0
- package/src/color-picker/types.ts +2 -0
- package/src/combobox-control/style.scss +2 -2
- package/src/confirm-dialog/component.tsx +2 -4
- package/src/confirm-dialog/style.module.scss +7 -0
- package/src/confirm-dialog/test/index.tsx +5 -0
- package/src/content-editable-control/index.tsx +24 -5
- package/src/content-editable-control/style.module.scss +1 -1
- package/src/content-editable-control/test/index.tsx +20 -8
- package/src/context/test/__snapshots__/context-system-provider.js.snap +1 -1
- package/src/context/wordpress-component.ts +7 -2
- package/src/custom-gradient-picker/test/index.tsx +111 -1
- package/src/custom-select-control/index.tsx +1 -2
- package/src/custom-select-control/test/__snapshots__/index.tsx.snap +6 -0
- package/src/custom-select-control/test/index.tsx +23 -0
- package/src/custom-select-control/types.ts +1 -8
- package/src/disabled/index.tsx +7 -5
- package/src/disabled/style.module.scss +15 -0
- package/src/disabled/test/index.tsx +6 -4
- package/src/elevation/test/__snapshots__/index.tsx.snap +1 -1
- package/src/external-link/style.scss +6 -12
- package/src/flex/test/__snapshots__/index.tsx.snap +1 -1
- package/src/font-size-picker/types.ts +6 -15
- package/src/form-toggle/test/__snapshots__/index.tsx.snap +1 -1
- package/src/form-token-field/index.tsx +5 -4
- package/src/form-token-field/style.module.scss +6 -0
- package/src/form-token-field/style.scss +2 -2
- package/src/gradient-picker/README.md +21 -3
- package/src/gradient-picker/index.tsx +43 -28
- package/src/gradient-picker/stories/index.story.tsx +41 -5
- package/src/gradient-picker/test/index.tsx +148 -0
- package/src/gradient-picker/types.ts +24 -4
- package/src/h-stack/test/__snapshots__/index.tsx.snap +1 -1
- package/src/heading/test/__snapshots__/index.tsx.snap +1 -1
- package/src/higher-order/with-filters/test/__snapshots__/index.tsx.snap +1 -1
- package/src/input-control/index.tsx +0 -1
- package/src/input-control/styles/input-control-styles.tsx +0 -8
- package/src/input-control/test/__snapshots__/index.js.snap +11 -0
- package/src/input-control/test/index.js +28 -0
- package/src/input-control/types.ts +1 -8
- package/src/item-group/test/__snapshots__/index.js.snap +1 -1
- package/src/menu/README.md +2 -2
- package/src/menu-item/test/__snapshots__/index.js.snap +1 -1
- package/src/modal/test/index.tsx +42 -0
- package/src/notice/test/__snapshots__/index.tsx.snap +1 -1
- package/src/number-control/types.ts +1 -22
- package/src/panel/test/__snapshots__/body.tsx.snap +1 -1
- package/src/panel/test/__snapshots__/header.tsx.snap +1 -1
- package/src/panel/test/__snapshots__/index.tsx.snap +1 -1
- package/src/panel/test/__snapshots__/row.tsx.snap +1 -1
- package/src/private-apis.ts +0 -2
- package/src/range-control/index.tsx +0 -1
- package/src/range-control/types.ts +2 -15
- package/src/sandbox/index.tsx +22 -2
- package/src/sandbox/test/index.tsx +21 -0
- package/src/sandbox/types.ts +11 -0
- package/src/scrollable/test/__snapshots__/index.tsx.snap +1 -1
- package/src/search-control/index.tsx +23 -20
- package/src/search-control/style.module.scss +16 -0
- package/src/search-control/test/index.tsx +8 -0
- package/src/search-control/types.ts +1 -1
- package/src/select-control/index.tsx +0 -1
- package/src/select-control/styles/select-control-styles.ts +0 -7
- package/src/select-control/test/__snapshots__/select-control.tsx.snap +11 -0
- package/src/select-control/test/select-control.tsx +37 -0
- package/src/select-control/types.ts +0 -7
- package/src/shortcut/test/__snapshots__/index.tsx.snap +1 -1
- package/src/slot-fill/fill.tsx +3 -9
- package/src/slot-fill/stories/index.story.tsx +52 -10
- package/src/slot-fill/test/__snapshots__/slot.js.snap +1 -1
- package/src/slot-fill/test/slot.js +53 -11
- package/src/spacer/test/__snapshots__/index.tsx.snap +1 -1
- package/src/text/test/__snapshots__/index.tsx.snap +1 -1
- package/src/text-control/style.scss +1 -1
- package/src/toggle-group-control/test/__snapshots__/index.tsx.snap +29 -707
- package/src/toggle-group-control/test/index.tsx +33 -3
- package/src/toggle-group-control/toggle-group-control/component.tsx +11 -16
- package/src/toggle-group-control/toggle-group-control/style.module.scss +63 -0
- package/src/toggle-group-control/toggle-group-control-option-base/component.tsx +22 -24
- package/src/toggle-group-control/toggle-group-control-option-base/style.module.scss +88 -0
- package/src/toggle-group-control/types.ts +0 -7
- package/src/tools-panel/style.module.scss +117 -0
- package/src/tools-panel/test/index.tsx +105 -39
- package/src/tools-panel/tools-panel/component.tsx +12 -1
- package/src/tools-panel/tools-panel/hook.ts +13 -15
- package/src/tools-panel/tools-panel-header/component.tsx +6 -2
- package/src/tools-panel/tools-panel-header/hook.ts +7 -25
- package/src/tools-panel/tools-panel-item/hook.ts +16 -34
- package/src/tooltip/test/index.tsx +1 -1
- package/src/tree-grid/test/__snapshots__/cell.tsx.snap +1 -1
- package/src/tree-grid/test/__snapshots__/index.tsx.snap +1 -1
- package/src/tree-grid/test/__snapshots__/roving-tab-index-item.tsx.snap +1 -1
- package/src/tree-grid/test/__snapshots__/roving-tab-index.tsx.snap +1 -1
- package/src/tree-grid/test/__snapshots__/row.tsx.snap +1 -1
- package/src/tree-select/README.md +1 -1
- package/src/tree-select/types.ts +1 -8
- package/src/unit-control/types.ts +1 -18
- package/src/utils/theme-variables.scss +1 -0
- package/src/v-stack/test/__snapshots__/index.tsx.snap +1 -1
- package/src/validated-form-controls/components/stories/overview.story.tsx +51 -0
- package/src/validated-form-controls/control-with-error.tsx +9 -0
- package/src/validated-form-controls/style.scss +3 -3
- package/src/validated-form-controls/test/control-with-error.tsx +42 -0
- package/src/view/test/__snapshots__/index.js.snap +1 -1
- package/build/confirm-dialog/styles.cjs +0 -42
- package/build/confirm-dialog/styles.cjs.map +0 -7
- package/build/disabled/styles/disabled-styles.cjs +0 -42
- package/build/disabled/styles/disabled-styles.cjs.map +0 -7
- package/build/form-token-field/styles.cjs +0 -49
- package/build/form-token-field/styles.cjs.map +0 -7
- package/build/search-control/styles.cjs +0 -74
- package/build/search-control/styles.cjs.map +0 -7
- package/build/theme/color-algorithms.cjs +0 -131
- package/build/theme/color-algorithms.cjs.map +0 -7
- package/build/theme/index.cjs +0 -160
- package/build/theme/index.cjs.map +0 -7
- package/build/theme/types.cjs +0 -19
- package/build/theme/types.cjs.map +0 -7
- package/build/toggle-group-control/toggle-group-control/styles.cjs +0 -53
- package/build/toggle-group-control/toggle-group-control/styles.cjs.map +0 -7
- package/build/toggle-group-control/toggle-group-control-option-base/styles.cjs +0 -94
- package/build/toggle-group-control/toggle-group-control-option-base/styles.cjs.map +0 -7
- package/build/tools-panel/styles.cjs +0 -129
- package/build/tools-panel/styles.cjs.map +0 -7
- package/build/utils/use-deprecated-props.cjs +0 -41
- package/build/utils/use-deprecated-props.cjs.map +0 -7
- package/build-module/confirm-dialog/styles.mjs +0 -17
- package/build-module/confirm-dialog/styles.mjs.map +0 -7
- package/build-module/disabled/styles/disabled-styles.mjs +0 -17
- package/build-module/disabled/styles/disabled-styles.mjs.map +0 -7
- package/build-module/form-token-field/styles.mjs +0 -14
- package/build-module/form-token-field/styles.mjs.map +0 -7
- package/build-module/search-control/styles.mjs +0 -38
- package/build-module/search-control/styles.mjs.map +0 -7
- package/build-module/theme/color-algorithms.mjs +0 -94
- package/build-module/theme/color-algorithms.mjs.map +0 -7
- package/build-module/theme/index.mjs +0 -129
- package/build-module/theme/index.mjs.map +0 -7
- package/build-module/theme/types.mjs +0 -1
- package/build-module/theme/types.mjs.map +0 -7
- package/build-module/toggle-group-control/toggle-group-control/styles.mjs +0 -27
- package/build-module/toggle-group-control/toggle-group-control/styles.mjs.map +0 -7
- package/build-module/toggle-group-control/toggle-group-control-option-base/styles.mjs +0 -56
- package/build-module/toggle-group-control/toggle-group-control-option-base/styles.mjs.map +0 -7
- package/build-module/tools-panel/styles.mjs +0 -84
- package/build-module/tools-panel/styles.mjs.map +0 -7
- package/build-module/utils/use-deprecated-props.mjs +0 -16
- package/build-module/utils/use-deprecated-props.mjs.map +0 -7
- package/src/confirm-dialog/styles.ts +0 -18
- package/src/disabled/styles/disabled-styles.tsx +0 -23
- package/src/form-token-field/styles.ts +0 -15
- package/src/search-control/styles.ts +0 -27
- package/src/theme/README.md +0 -47
- package/src/theme/color-algorithms.ts +0 -142
- package/src/theme/index.tsx +0 -80
- package/src/theme/stories/index.story.tsx +0 -127
- package/src/theme/style.module.scss +0 -4
- package/src/theme/test/color-algorithms.ts +0 -100
- package/src/theme/test/index.tsx +0 -151
- package/src/theme/types.ts +0 -61
- package/src/toggle-group-control/toggle-group-control/styles.ts +0 -84
- package/src/toggle-group-control/toggle-group-control-option-base/styles.ts +0 -109
- package/src/tools-panel/styles.ts +0 -176
- package/src/utils/use-deprecated-props.ts +0 -14
|
@@ -33,7 +33,7 @@ input.components-combobox-control__input[type="text"] {
|
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
.components-combobox-control__suggestions-container {
|
|
36
|
-
@include input-control
|
|
36
|
+
@include input-control;
|
|
37
37
|
display: flex;
|
|
38
38
|
flex-wrap: wrap;
|
|
39
39
|
align-items: flex-start;
|
|
@@ -41,7 +41,7 @@ input.components-combobox-control__input[type="text"] {
|
|
|
41
41
|
padding: 0;
|
|
42
42
|
|
|
43
43
|
&:focus-within {
|
|
44
|
-
@include input-style__focus
|
|
44
|
+
@include input-style__focus;
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
.components-spinner {
|
|
@@ -15,8 +15,7 @@ import { Flex } from '../flex';
|
|
|
15
15
|
import Button from '../button';
|
|
16
16
|
import { Text } from '../text';
|
|
17
17
|
import { VStack } from '../v-stack';
|
|
18
|
-
import
|
|
19
|
-
import { useCx } from '../utils/hooks/use-cx';
|
|
18
|
+
import styles from './style.module.scss';
|
|
20
19
|
|
|
21
20
|
const UnconnectedConfirmDialog = (
|
|
22
21
|
props: WordPressComponentProps< ConfirmDialogProps, 'div', false >,
|
|
@@ -33,8 +32,7 @@ const UnconnectedConfirmDialog = (
|
|
|
33
32
|
...otherProps
|
|
34
33
|
} = useContextSystem( props, 'ConfirmDialog' );
|
|
35
34
|
|
|
36
|
-
const
|
|
37
|
-
const wrapperClassName = cx( styles.wrapper );
|
|
35
|
+
const wrapperClassName = styles.wrapper;
|
|
38
36
|
const cancelButtonRef = useRef< HTMLButtonElement >( null );
|
|
39
37
|
const confirmButtonRef = useRef< HTMLButtonElement >( null );
|
|
40
38
|
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
@use "@wordpress/base-styles/z-index" as *;
|
|
2
|
+
|
|
3
|
+
// Match the previous Emotion `&&` specificity so this rule continues to
|
|
4
|
+
// override the Modal overlay's default z-index regardless of source order.
|
|
5
|
+
.wrapper.wrapper {
|
|
6
|
+
z-index: z-index(".components-confirm-dialog");
|
|
7
|
+
}
|
|
@@ -8,6 +8,7 @@ import userEvent from '@testing-library/user-event';
|
|
|
8
8
|
* Internal dependencies
|
|
9
9
|
*/
|
|
10
10
|
import { ConfirmDialog } from '..';
|
|
11
|
+
import styles from '../style.module.scss';
|
|
11
12
|
|
|
12
13
|
const noop = () => {};
|
|
13
14
|
|
|
@@ -25,6 +26,10 @@ describe( 'Confirm', () => {
|
|
|
25
26
|
const elementsTexts = [ 'Are you sure?', 'OK', 'Cancel' ];
|
|
26
27
|
|
|
27
28
|
expect( dialog ).toBeInTheDocument();
|
|
29
|
+
expect( dialog ).toHaveClass( 'components-confirm-dialog' );
|
|
30
|
+
// Disable reason: Semantic queries can't reach the overlay.
|
|
31
|
+
// eslint-disable-next-line testing-library/no-node-access
|
|
32
|
+
expect( dialog.parentElement ).toHaveClass( styles.wrapper );
|
|
28
33
|
|
|
29
34
|
elementsTexts.forEach( ( txt ) => {
|
|
30
35
|
const el = screen.getByText( txt );
|
|
@@ -6,7 +6,8 @@ import type { ForwardedRef } from 'react';
|
|
|
6
6
|
/**
|
|
7
7
|
* WordPress dependencies
|
|
8
8
|
*/
|
|
9
|
-
import {
|
|
9
|
+
import { useMergeRefs } from '@wordpress/compose';
|
|
10
|
+
import { forwardRef, useRef } from '@wordpress/element';
|
|
10
11
|
|
|
11
12
|
/**
|
|
12
13
|
* Internal dependencies
|
|
@@ -14,6 +15,7 @@ import { forwardRef } from '@wordpress/element';
|
|
|
14
15
|
import BaseControl from '../base-control';
|
|
15
16
|
import { useBaseControlProps } from '../base-control/hooks';
|
|
16
17
|
import type { WordPressComponentProps } from '../context';
|
|
18
|
+
import { VisuallyHidden } from '../visually-hidden';
|
|
17
19
|
import type { ContentEditableControlProps } from './types';
|
|
18
20
|
import styles from './style.module.scss';
|
|
19
21
|
|
|
@@ -31,25 +33,42 @@ function UnforwardedContentEditableControl(
|
|
|
31
33
|
}: WordPressComponentProps< ContentEditableControlProps, 'div', false >,
|
|
32
34
|
forwardedRef: ForwardedRef< HTMLDivElement >
|
|
33
35
|
) {
|
|
36
|
+
// The label is not passed through to `BaseControl`: it would render a
|
|
37
|
+
// `<label for>` pointing at the `contentEditable` `div`, which is not a
|
|
38
|
+
// labelable element, making the association invalid. The label is instead
|
|
39
|
+
// rendered here without `for` and wired up via `aria-labelledby`.
|
|
34
40
|
const { baseControlProps, controlProps } = useBaseControlProps( {
|
|
35
41
|
id,
|
|
36
42
|
className,
|
|
37
43
|
help,
|
|
38
|
-
hideLabelFromVision,
|
|
39
|
-
label,
|
|
40
44
|
} );
|
|
41
45
|
|
|
46
|
+
const labelId = `${ controlProps.id }__label`;
|
|
47
|
+
const editableRef = useRef< HTMLDivElement >( null );
|
|
48
|
+
const mergedRefs = useMergeRefs( [ editableRef, forwardedRef ] );
|
|
49
|
+
|
|
42
50
|
return (
|
|
43
51
|
<BaseControl { ...baseControlProps }>
|
|
52
|
+
{ hideLabelFromVision ? (
|
|
53
|
+
<VisuallyHidden id={ labelId }>{ label }</VisuallyHidden>
|
|
54
|
+
) : (
|
|
55
|
+
<BaseControl.VisualLabel
|
|
56
|
+
id={ labelId }
|
|
57
|
+
// Focus the field on label click, like `<label for>` would.
|
|
58
|
+
onClick={ () => editableRef.current?.focus() }
|
|
59
|
+
>
|
|
60
|
+
{ label }
|
|
61
|
+
</BaseControl.VisualLabel>
|
|
62
|
+
) }
|
|
44
63
|
<div
|
|
45
64
|
className={ styles.editable }
|
|
46
65
|
role="textbox"
|
|
47
66
|
aria-multiline
|
|
48
|
-
aria-
|
|
67
|
+
aria-labelledby={ labelId }
|
|
49
68
|
aria-placeholder={ placeholder || undefined }
|
|
50
69
|
aria-disabled={ disabled || undefined }
|
|
51
70
|
aria-required={ required || undefined }
|
|
52
|
-
ref={
|
|
71
|
+
ref={ mergedRefs }
|
|
53
72
|
// A disabled field is not `contentEditable`, which also
|
|
54
73
|
// removes it from the tab order.
|
|
55
74
|
contentEditable={ ! disabled }
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
width: 100%;
|
|
7
7
|
background: $components-color-background;
|
|
8
8
|
color: $components-color-foreground;
|
|
9
|
-
@include input-control
|
|
9
|
+
@include input-control;
|
|
10
10
|
border-color: $components-color-border;
|
|
11
11
|
|
|
12
12
|
// `::placeholder` only applies to native form fields, so draw the text
|
|
@@ -21,12 +21,20 @@ describe( 'ContentEditableControl', () => {
|
|
|
21
21
|
const label = screen.getByText( 'Description' );
|
|
22
22
|
|
|
23
23
|
expect( textbox ).toHaveAttribute( 'contenteditable', 'true' );
|
|
24
|
-
//
|
|
25
|
-
|
|
26
|
-
//
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
expect( textbox ).
|
|
24
|
+
// A `<div contenteditable>` is not a labelable element, so the label
|
|
25
|
+
// must not use `for` (Chrome logs a console error for the invalid
|
|
26
|
+
// association). The name is wired through `aria-labelledby` instead.
|
|
27
|
+
expect( label ).not.toHaveAttribute( 'for' );
|
|
28
|
+
expect( textbox ).toHaveAttribute( 'aria-labelledby', label.id );
|
|
29
|
+
expect( textbox ).toHaveAccessibleName( 'Description' );
|
|
30
|
+
} );
|
|
31
|
+
|
|
32
|
+
it( 'focuses the textbox when the label is clicked', () => {
|
|
33
|
+
render( <ContentEditableControl label="Description" /> );
|
|
34
|
+
|
|
35
|
+
fireEvent.click( screen.getByText( 'Description' ) );
|
|
36
|
+
|
|
37
|
+
expect( screen.getByRole( 'textbox' ) ).toHaveFocus();
|
|
30
38
|
} );
|
|
31
39
|
|
|
32
40
|
it( 'visually hides the label when `hideLabelFromVision` is set', () => {
|
|
@@ -95,9 +103,13 @@ describe( 'ContentEditableControl', () => {
|
|
|
95
103
|
'id',
|
|
96
104
|
'my-custom-id'
|
|
97
105
|
);
|
|
106
|
+
expect( screen.getByRole( 'textbox' ) ).toHaveAttribute(
|
|
107
|
+
'aria-labelledby',
|
|
108
|
+
'my-custom-id__label'
|
|
109
|
+
);
|
|
98
110
|
expect( screen.getByText( 'Custom id' ) ).toHaveAttribute(
|
|
99
|
-
'
|
|
100
|
-
'my-custom-
|
|
111
|
+
'id',
|
|
112
|
+
'my-custom-id__label'
|
|
101
113
|
);
|
|
102
114
|
} );
|
|
103
115
|
|
|
@@ -34,8 +34,13 @@ export type WordPressComponent<
|
|
|
34
34
|
IsPolymorphic extends boolean,
|
|
35
35
|
> = {
|
|
36
36
|
< TT extends React.ElementType >(
|
|
37
|
-
props: WordPressComponentProps< O, TT,
|
|
38
|
-
( IsPolymorphic extends true
|
|
37
|
+
props: WordPressComponentProps< O, TT, false > &
|
|
38
|
+
( IsPolymorphic extends true
|
|
39
|
+
? {
|
|
40
|
+
/** The HTML element or React component to render the component as. */
|
|
41
|
+
as: TT;
|
|
42
|
+
}
|
|
43
|
+
: {} )
|
|
39
44
|
): React.ReactNode;
|
|
40
45
|
( props: WordPressComponentProps< O, T, IsPolymorphic > ): React.ReactNode;
|
|
41
46
|
displayName?: string;
|
|
@@ -1,15 +1,125 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import { render, screen } from '@testing-library/react';
|
|
4
|
+
import { fireEvent, render, screen, waitFor } from '@testing-library/react';
|
|
5
5
|
import userEvent from '@testing-library/user-event';
|
|
6
6
|
|
|
7
|
+
/**
|
|
8
|
+
* WordPress dependencies
|
|
9
|
+
*/
|
|
10
|
+
import { useState } from '@wordpress/element';
|
|
11
|
+
|
|
7
12
|
/**
|
|
8
13
|
* Internal dependencies
|
|
9
14
|
*/
|
|
10
15
|
import CustomGradientPicker from '../';
|
|
11
16
|
|
|
17
|
+
function ControlledCustomGradientPicker( {
|
|
18
|
+
initialValue = 'linear-gradient(90deg,rgb(0,0,0) 0%,rgb(255,255,255) 100%)',
|
|
19
|
+
}: {
|
|
20
|
+
initialValue?: string;
|
|
21
|
+
} ) {
|
|
22
|
+
const [ value, setValue ] = useState( initialValue );
|
|
23
|
+
return <CustomGradientPicker value={ value } onChange={ setValue } />;
|
|
24
|
+
}
|
|
25
|
+
|
|
12
26
|
describe( 'CustomGradientPicker', () => {
|
|
27
|
+
describe( 'new gradient stop color picker', () => {
|
|
28
|
+
it( 'preserves visual saturation when setting a new stop color through black', async () => {
|
|
29
|
+
const { container } = render( <ControlledCustomGradientPicker /> );
|
|
30
|
+
|
|
31
|
+
// Presentational gradient bar markup; no accessible roles.
|
|
32
|
+
// eslint-disable-next-line testing-library/no-container, testing-library/no-node-access
|
|
33
|
+
const markers = container.querySelector(
|
|
34
|
+
'.components-custom-gradient-picker__markers-container'
|
|
35
|
+
) as HTMLElement;
|
|
36
|
+
markers.getBoundingClientRect = () =>
|
|
37
|
+
( {
|
|
38
|
+
left: 0,
|
|
39
|
+
x: 0,
|
|
40
|
+
width: 200,
|
|
41
|
+
top: 0,
|
|
42
|
+
height: 20,
|
|
43
|
+
right: 200,
|
|
44
|
+
bottom: 20,
|
|
45
|
+
y: 0,
|
|
46
|
+
toJSON: () => ( {} ),
|
|
47
|
+
} ) as DOMRect;
|
|
48
|
+
|
|
49
|
+
// eslint-disable-next-line testing-library/no-container, testing-library/no-node-access
|
|
50
|
+
const bar = container.querySelector(
|
|
51
|
+
'.components-custom-gradient-picker__gradient-bar'
|
|
52
|
+
) as HTMLElement;
|
|
53
|
+
// Hover mid-bar so the insert-point control appears (away from 0%/100%).
|
|
54
|
+
fireEvent.mouseMove( bar, { clientX: 100 } );
|
|
55
|
+
|
|
56
|
+
// eslint-disable-next-line testing-library/no-container, testing-library/no-node-access
|
|
57
|
+
const insertButton = container.querySelector(
|
|
58
|
+
'.components-custom-gradient-picker__insert-point-dropdown'
|
|
59
|
+
) as HTMLElement;
|
|
60
|
+
expect( insertButton ).toBeTruthy();
|
|
61
|
+
fireEvent.click( insertButton );
|
|
62
|
+
|
|
63
|
+
const colorSlider = screen.getByRole( 'slider', { name: 'Color' } );
|
|
64
|
+
colorSlider.getBoundingClientRect = () =>
|
|
65
|
+
( {
|
|
66
|
+
left: 0,
|
|
67
|
+
top: 0,
|
|
68
|
+
width: 100,
|
|
69
|
+
height: 100,
|
|
70
|
+
right: 100,
|
|
71
|
+
bottom: 100,
|
|
72
|
+
x: 0,
|
|
73
|
+
y: 0,
|
|
74
|
+
toJSON: () => ( {} ),
|
|
75
|
+
} ) as DOMRect;
|
|
76
|
+
|
|
77
|
+
// Choose a saturated mid-brightness color — creates the new stop and
|
|
78
|
+
// exercises parent gradient updates while picking.
|
|
79
|
+
fireEvent.mouseDown( colorSlider, {
|
|
80
|
+
buttons: 1,
|
|
81
|
+
pageX: 80,
|
|
82
|
+
pageY: 20,
|
|
83
|
+
clientX: 80,
|
|
84
|
+
clientY: 20,
|
|
85
|
+
} );
|
|
86
|
+
|
|
87
|
+
// ColorPicker content is portaled; pointer has no accessible role.
|
|
88
|
+
// eslint-disable-next-line testing-library/no-node-access
|
|
89
|
+
const pointer = document.querySelector(
|
|
90
|
+
'.react-colorful__saturation-pointer'
|
|
91
|
+
) as HTMLElement;
|
|
92
|
+
expect( pointer ).toBeTruthy();
|
|
93
|
+
const leftBefore = pointer.style.left;
|
|
94
|
+
expect( parseFloat( leftBefore ) ).toBeGreaterThan( 50 );
|
|
95
|
+
|
|
96
|
+
// Keyboard to black — must not reset saturation via HSVA↔HSLA echo
|
|
97
|
+
// while the gradient parent keeps updating (#80110 / #80205).
|
|
98
|
+
colorSlider.focus();
|
|
99
|
+
for ( let i = 0; i < 20; i++ ) {
|
|
100
|
+
fireEvent.keyDown( colorSlider, {
|
|
101
|
+
key: 'ArrowDown',
|
|
102
|
+
keyCode: 40,
|
|
103
|
+
which: 40,
|
|
104
|
+
} );
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
expect( pointer ).toHaveStyle( {
|
|
108
|
+
top: '100%',
|
|
109
|
+
left: leftBefore,
|
|
110
|
+
} );
|
|
111
|
+
|
|
112
|
+
// Close the portaled popover so later tests are not affected by
|
|
113
|
+
// asynchronous Popover position updates.
|
|
114
|
+
fireEvent.click( insertButton );
|
|
115
|
+
await waitFor( () => {
|
|
116
|
+
expect(
|
|
117
|
+
screen.queryByRole( 'slider', { name: 'Color' } )
|
|
118
|
+
).not.toBeInTheDocument();
|
|
119
|
+
} );
|
|
120
|
+
} );
|
|
121
|
+
} );
|
|
122
|
+
|
|
13
123
|
describe( 'GradientTypePicker angle persistence', () => {
|
|
14
124
|
it( 'should restore the previous linear angle when switching from radial back to linear', async () => {
|
|
15
125
|
const user = userEvent.setup();
|
|
@@ -62,7 +62,6 @@ function CustomSelectControl< T extends CustomSelectOption >(
|
|
|
62
62
|
const {
|
|
63
63
|
// Prevent passing legacy props to internal component.
|
|
64
64
|
__next40pxDefaultSize: _next40pxDefaultSize,
|
|
65
|
-
__shouldNotWarnDeprecated36pxSize: _shouldNotWarnDeprecated36pxSize,
|
|
66
65
|
describedBy,
|
|
67
66
|
options,
|
|
68
67
|
onChange,
|
|
@@ -177,7 +176,7 @@ function CustomSelectControl< T extends CustomSelectOption >(
|
|
|
177
176
|
<CustomSelect
|
|
178
177
|
aria-describedby={ descriptionId }
|
|
179
178
|
renderSelectedValue={ renderSelectedValue }
|
|
180
|
-
size={ size
|
|
179
|
+
size={ size }
|
|
181
180
|
store={ store }
|
|
182
181
|
className={ clsx(
|
|
183
182
|
// Keeping the classname for legacy reasons
|
|
@@ -694,6 +694,29 @@ describe.each( [
|
|
|
694
694
|
} );
|
|
695
695
|
} );
|
|
696
696
|
|
|
697
|
+
describe( 'Legacy size support', () => {
|
|
698
|
+
it( 'treats __unstable-large the same as default', async () => {
|
|
699
|
+
const options = [ { key: 'one', name: 'One' } ];
|
|
700
|
+
|
|
701
|
+
await render(
|
|
702
|
+
<UncontrolledCustomSelectControl label="Test" options={ options } />
|
|
703
|
+
);
|
|
704
|
+
await render(
|
|
705
|
+
<UncontrolledCustomSelectControl
|
|
706
|
+
label="Test"
|
|
707
|
+
options={ options }
|
|
708
|
+
// @ts-expect-error testing legacy runtime support for removed size type
|
|
709
|
+
size="__unstable-large"
|
|
710
|
+
/>
|
|
711
|
+
);
|
|
712
|
+
|
|
713
|
+
const comboboxes = screen.getAllByRole( 'combobox' );
|
|
714
|
+
const [ defaultCombobox, legacyCombobox ] = comboboxes;
|
|
715
|
+
|
|
716
|
+
expect( legacyCombobox ).toMatchStyleDiffSnapshot( defaultCombobox );
|
|
717
|
+
} );
|
|
718
|
+
} );
|
|
719
|
+
|
|
697
720
|
describe( 'Type checking', () => {
|
|
698
721
|
// eslint-disable-next-line jest/expect-expect
|
|
699
722
|
it( 'should infer the value type from available `options`, but not the `value` or `onChange` prop', () => {
|
|
@@ -89,7 +89,7 @@ export type CustomSelectProps< T extends CustomSelectOption > = {
|
|
|
89
89
|
*
|
|
90
90
|
* @default 'default'
|
|
91
91
|
*/
|
|
92
|
-
size?: 'default' | 'small'
|
|
92
|
+
size?: 'default' | 'small';
|
|
93
93
|
/**
|
|
94
94
|
* Can be used to externally control the value of the control.
|
|
95
95
|
*/
|
|
@@ -121,11 +121,4 @@ export type CustomSelectProps< T extends CustomSelectOption > = {
|
|
|
121
121
|
* @ignore
|
|
122
122
|
*/
|
|
123
123
|
__next40pxDefaultSize?: boolean;
|
|
124
|
-
/**
|
|
125
|
-
* Do not throw a warning for the deprecated 36px default size.
|
|
126
|
-
* For internal components of other components that already throw the warning.
|
|
127
|
-
*
|
|
128
|
-
* @ignore
|
|
129
|
-
*/
|
|
130
|
-
__shouldNotWarnDeprecated36pxSize?: boolean;
|
|
131
124
|
};
|
package/src/disabled/index.tsx
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import
|
|
1
|
+
import clsx from 'clsx';
|
|
2
2
|
import type { DisabledProps } from './types';
|
|
3
3
|
import type { WordPressComponentProps } from '../context';
|
|
4
|
-
import { useCx } from '../utils';
|
|
5
4
|
import Context from './context';
|
|
5
|
+
import styles from './style.module.scss';
|
|
6
6
|
|
|
7
7
|
const { Consumer, Provider } = Context;
|
|
8
8
|
|
|
@@ -54,8 +54,6 @@ function Disabled( {
|
|
|
54
54
|
isDisabled = true,
|
|
55
55
|
...props
|
|
56
56
|
}: WordPressComponentProps< DisabledProps, 'div' > ) {
|
|
57
|
-
const cx = useCx();
|
|
58
|
-
|
|
59
57
|
return (
|
|
60
58
|
<Provider value={ isDisabled }>
|
|
61
59
|
<div
|
|
@@ -63,7 +61,11 @@ function Disabled( {
|
|
|
63
61
|
inert={ isDisabled ? 'true' : undefined }
|
|
64
62
|
className={
|
|
65
63
|
isDisabled
|
|
66
|
-
?
|
|
64
|
+
? clsx(
|
|
65
|
+
styles.disabled,
|
|
66
|
+
className,
|
|
67
|
+
'components-disabled'
|
|
68
|
+
)
|
|
67
69
|
: undefined
|
|
68
70
|
}
|
|
69
71
|
{ ...props }
|
|
@@ -2,12 +2,13 @@
|
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
4
|
import { render, screen } from '@testing-library/react';
|
|
5
|
+
import userEvent from '@testing-library/user-event';
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* Internal dependencies
|
|
8
9
|
*/
|
|
9
10
|
import Disabled from '../';
|
|
10
|
-
import
|
|
11
|
+
import styles from '../style.module.scss';
|
|
11
12
|
|
|
12
13
|
describe( 'Disabled', () => {
|
|
13
14
|
const Form = () => (
|
|
@@ -24,9 +25,10 @@ describe( 'Disabled', () => {
|
|
|
24
25
|
</Disabled>
|
|
25
26
|
);
|
|
26
27
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
);
|
|
28
|
+
const wrapper = screen.getByTestId( 'disabled-wrapper' );
|
|
29
|
+
expect( wrapper ).toHaveAttribute( 'inert' );
|
|
30
|
+
expect( wrapper ).toHaveClass( 'components-disabled' );
|
|
31
|
+
expect( wrapper ).toHaveClass( styles.disabled );
|
|
30
32
|
} );
|
|
31
33
|
|
|
32
34
|
it( 'should cleanly un-disable via reconciliation', () => {
|
|
@@ -1,16 +1,9 @@
|
|
|
1
|
+
@use "@wordpress/base-styles/mixins";
|
|
2
|
+
|
|
1
3
|
.components-external-link {
|
|
2
4
|
color: var(--wpds-color-foreground-interactive-brand);
|
|
3
5
|
text-decoration: none;
|
|
4
6
|
|
|
5
|
-
// Match the `outset-ring--focus` utility used by `Link` in `@wordpress/ui`.
|
|
6
|
-
@media not ( prefers-reduced-motion ) {
|
|
7
|
-
transition: outline 0.1s ease-out;
|
|
8
|
-
}
|
|
9
|
-
// Outline width must be kept at 0 even with a transparent color,
|
|
10
|
-
// or else the outline will be visible in forced-colors mode.
|
|
11
|
-
outline: 0 solid transparent;
|
|
12
|
-
outline-offset: 1px;
|
|
13
|
-
|
|
14
7
|
&:visited {
|
|
15
8
|
color: var(--wpds-color-foreground-interactive-brand);
|
|
16
9
|
}
|
|
@@ -21,12 +14,13 @@
|
|
|
21
14
|
}
|
|
22
15
|
|
|
23
16
|
&:focus {
|
|
24
|
-
outline:
|
|
25
|
-
var(--wpds-border-width-focus) solid
|
|
26
|
-
var(--wpds-color-stroke-focus);
|
|
27
17
|
// Override style from wp-admin common.css.
|
|
28
18
|
box-shadow: none;
|
|
29
19
|
border-radius: 0;
|
|
20
|
+
|
|
21
|
+
&:not(:active) {
|
|
22
|
+
@include mixins.outset-ring__focus();
|
|
23
|
+
}
|
|
30
24
|
}
|
|
31
25
|
}
|
|
32
26
|
|
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
import type { ToggleGroupControlProps } from '../toggle-group-control/types';
|
|
2
|
+
|
|
3
|
+
export type FontSizePickerProps = Pick<
|
|
4
|
+
ToggleGroupControlProps,
|
|
5
|
+
'__next40pxDefaultSize' | 'size'
|
|
6
|
+
> & {
|
|
2
7
|
/**
|
|
3
8
|
* If `true`, it will not be possible to choose a custom fontSize. The user
|
|
4
9
|
* will be forced to pick one of the pre-defined sizes passed in fontSizes.
|
|
@@ -74,20 +79,6 @@ export type FontSizePickerProps = {
|
|
|
74
79
|
* @ignore
|
|
75
80
|
*/
|
|
76
81
|
__nextHasNoMarginBottom?: boolean;
|
|
77
|
-
/**
|
|
78
|
-
* Start opting into the larger default height that will become the default size in a future version.
|
|
79
|
-
*
|
|
80
|
-
* @deprecated Default behavior since WordPress 7.1. Prop can be safely removed.
|
|
81
|
-
* @ignore
|
|
82
|
-
*/
|
|
83
|
-
__next40pxDefaultSize?: boolean;
|
|
84
|
-
/**
|
|
85
|
-
* Size of the control.
|
|
86
|
-
*
|
|
87
|
-
* @deprecated This prop no longer has any effect.
|
|
88
|
-
* @ignore
|
|
89
|
-
*/
|
|
90
|
-
size?: 'default' | '__unstable-large';
|
|
91
82
|
};
|
|
92
83
|
|
|
93
84
|
export type FontSize = {
|
|
@@ -25,10 +25,10 @@ import deprecated from '@wordpress/deprecated';
|
|
|
25
25
|
*/
|
|
26
26
|
import Token from './token';
|
|
27
27
|
import TokenInput from './token-input';
|
|
28
|
-
import { TokensAndInputWrapperFlex } from './styles';
|
|
29
28
|
import SuggestionsList from './suggestions-list';
|
|
30
29
|
import type { FormTokenFieldProps, TokenItem } from './types';
|
|
31
|
-
import { FlexItem } from '../flex';
|
|
30
|
+
import { Flex, FlexItem } from '../flex';
|
|
31
|
+
import styles from './style.module.scss';
|
|
32
32
|
import {
|
|
33
33
|
StyledHelp,
|
|
34
34
|
StyledLabel,
|
|
@@ -826,14 +826,15 @@ export function FormTokenField( props: FormTokenFieldProps ) {
|
|
|
826
826
|
onMouseDown={ onContainerTouched }
|
|
827
827
|
onTouchStart={ onContainerTouched }
|
|
828
828
|
>
|
|
829
|
-
<
|
|
829
|
+
<Flex
|
|
830
|
+
className={ styles[ 'tokens-and-input' ] }
|
|
830
831
|
justify="flex-start"
|
|
831
832
|
align="center"
|
|
832
833
|
gap={ 1 }
|
|
833
834
|
wrap
|
|
834
835
|
>
|
|
835
836
|
{ renderTokensAndInput() }
|
|
836
|
-
</
|
|
837
|
+
</Flex>
|
|
837
838
|
{ isExpanded && (
|
|
838
839
|
<SuggestionsList
|
|
839
840
|
instanceId={ instanceId }
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
@use "../utils/theme-variables" as *;
|
|
6
6
|
|
|
7
7
|
.components-form-token-field__input-container {
|
|
8
|
-
@include input-control
|
|
8
|
+
@include input-control;
|
|
9
9
|
width: 100%;
|
|
10
10
|
padding: 0;
|
|
11
11
|
cursor: text;
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
&.is-active {
|
|
20
|
-
@include input-style__focus
|
|
20
|
+
@include input-style__focus;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
// Token input
|