@wordpress/components 25.14.0 → 25.15.1-next.79a6196f.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 +51 -0
- package/CONTRIBUTING.md +57 -115
- package/LICENSE.md +1 -1
- package/build/base-control/index.js +17 -13
- package/build/base-control/index.js.map +1 -1
- package/build/border-box-control/border-box-control-linked-button/component.js +1 -1
- package/build/border-box-control/border-box-control-linked-button/component.js.map +1 -1
- package/build/border-control/border-control-style-picker/component.js +1 -1
- package/build/border-control/border-control-style-picker/component.js.map +1 -1
- package/build/box-control/index.js +1 -1
- package/build/box-control/index.js.map +1 -1
- package/build/box-control/linked-button.js +1 -1
- package/build/box-control/linked-button.js.map +1 -1
- package/build/button/index.js +1 -1
- package/build/button/index.js.map +1 -1
- package/build/color-palette/index.native.js +11 -7
- package/build/color-palette/index.native.js.map +1 -1
- package/build/color-picker/color-copy-button.js +1 -1
- package/build/color-picker/color-copy-button.js.map +1 -1
- package/build/context/wordpress-component.js.map +1 -1
- package/build/custom-select-control-v2/index.js +11 -10
- package/build/custom-select-control-v2/index.js.map +1 -1
- package/build/date-time/date/styles.js +8 -8
- package/build/date-time/date/styles.js.map +1 -1
- package/build/dropdown-menu-v2/index.js +205 -159
- package/build/dropdown-menu-v2/index.js.map +1 -1
- package/build/dropdown-menu-v2/styles.js +86 -77
- package/build/dropdown-menu-v2/styles.js.map +1 -1
- package/build/dropdown-menu-v2/types.js.map +1 -1
- package/build/duotone-picker/duotone-picker.js +4 -3
- package/build/duotone-picker/duotone-picker.js.map +1 -1
- package/build/font-size-picker/index.js +4 -2
- package/build/font-size-picker/index.js.map +1 -1
- package/build/font-size-picker/index.native.js +6 -3
- package/build/font-size-picker/index.native.js.map +1 -1
- package/build/form-token-field/index.js +10 -5
- package/build/form-token-field/index.js.map +1 -1
- package/build/form-token-field/token.js +1 -0
- package/build/form-token-field/token.js.map +1 -1
- package/build/gradient-picker/index.js +3 -2
- package/build/gradient-picker/index.js.map +1 -1
- package/build/index.native.js +20 -3
- package/build/index.native.js.map +1 -1
- package/build/input-control/styles/input-control-styles.js +32 -29
- package/build/input-control/styles/input-control-styles.js.map +1 -1
- package/build/input-control/types.js.map +1 -1
- package/build/lock-unlock.js +18 -0
- package/build/lock-unlock.js.map +1 -0
- package/build/mobile/bottom-sheet/index.native.js +8 -0
- package/build/mobile/bottom-sheet/index.native.js.map +1 -1
- package/build/mobile/color-settings/palette.screen.native.js +8 -4
- package/build/mobile/color-settings/palette.screen.native.js.map +1 -1
- package/build/mobile/global-styles-context/utils.native.js +26 -13
- package/build/mobile/global-styles-context/utils.native.js.map +1 -1
- package/build/mobile/image/constants.js +12 -0
- package/build/mobile/image/constants.js.map +1 -0
- package/build/mobile/image/index.native.js +26 -18
- package/build/mobile/image/index.native.js.map +1 -1
- package/build/mobile/keyboard-aware-flat-list/index.android.js +40 -8
- package/build/mobile/keyboard-aware-flat-list/index.android.js.map +1 -1
- package/build/mobile/keyboard-aware-flat-list/index.ios.js +44 -68
- package/build/mobile/keyboard-aware-flat-list/index.ios.js.map +1 -1
- package/build/mobile/keyboard-aware-flat-list/use-scroll-to-element.native.js +39 -0
- package/build/mobile/keyboard-aware-flat-list/use-scroll-to-element.native.js.map +1 -0
- package/build/mobile/keyboard-aware-flat-list/{use-scroll-to-text-input.native.js → use-scroll-to-section.native.js} +22 -29
- package/build/mobile/keyboard-aware-flat-list/use-scroll-to-section.native.js.map +1 -0
- package/build/mobile/keyboard-aware-flat-list/use-scroll.native.js +93 -0
- package/build/mobile/keyboard-aware-flat-list/use-scroll.native.js.map +1 -0
- package/build/mobile/utils/get-px-from-css-unit.native.js +302 -0
- package/build/mobile/utils/get-px-from-css-unit.native.js.map +1 -0
- package/build/modal/index.js +18 -13
- package/build/modal/index.js.map +1 -1
- package/build/navigation/menu/menu-title.js +1 -1
- package/build/navigation/menu/menu-title.js.map +1 -1
- package/build/navigator/navigator-provider/component.js +13 -15
- package/build/navigator/navigator-provider/component.js.map +1 -1
- package/build/navigator/navigator-screen/component.js +23 -63
- package/build/navigator/navigator-screen/component.js.map +1 -1
- package/build/navigator/styles.js +52 -0
- package/build/navigator/styles.js.map +1 -0
- package/build/number-control/index.js +4 -8
- package/build/number-control/index.js.map +1 -1
- package/build/number-control/types.js.map +1 -1
- package/build/palette-edit/index.js +15 -54
- package/build/palette-edit/index.js.map +1 -1
- package/build/private-apis.js +11 -26
- package/build/private-apis.js.map +1 -1
- package/build/private-apis.native.js +21 -0
- package/build/private-apis.native.js.map +1 -0
- package/build/radio-control/index.js +1 -0
- package/build/radio-control/index.js.map +1 -1
- package/build/range-control/index.js +1 -1
- package/build/range-control/index.js.map +1 -1
- package/build/select-control/styles/select-control-styles.js +15 -25
- package/build/select-control/styles/select-control-styles.js.map +1 -1
- package/build/slot-fill/index.js +3 -2
- package/build/slot-fill/index.js.map +1 -1
- package/build/slot-fill/types.js.map +1 -1
- package/build/snackbar/types.js.map +1 -1
- package/build/tabs/styles.js +3 -3
- package/build/tabs/styles.js.map +1 -1
- package/build/tabs/tabpanel.js +9 -7
- package/build/tabs/tabpanel.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control/component.js +4 -4
- package/build/toggle-group-control/toggle-group-control/component.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control/styles.js +29 -15
- package/build/toggle-group-control/toggle-group-control/styles.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control-option-base/styles.js +9 -9
- package/build/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -1
- package/build/tools-panel/tools-panel/component.js +3 -1
- package/build/tools-panel/tools-panel/component.js.map +1 -1
- package/build/tools-panel/tools-panel-header/component.js +9 -8
- package/build/tools-panel/tools-panel-header/component.js.map +1 -1
- package/build/tools-panel/types.js.map +1 -1
- package/build/tooltip/index.js +34 -10
- package/build/tooltip/index.js.map +1 -1
- package/build/tooltip/types.js.map +1 -1
- package/build/truncate/hook.js +10 -4
- package/build/truncate/hook.js.map +1 -1
- package/build/truncate/types.js.map +1 -1
- package/build/unit-control/index.js +1 -1
- package/build/unit-control/index.js.map +1 -1
- package/build/utils/strings.js +34 -3
- package/build/utils/strings.js.map +1 -1
- package/build-module/base-control/index.js +16 -12
- package/build-module/base-control/index.js.map +1 -1
- package/build-module/border-box-control/border-box-control-linked-button/component.js +1 -1
- package/build-module/border-box-control/border-box-control-linked-button/component.js.map +1 -1
- package/build-module/border-control/border-control-style-picker/component.js +1 -1
- package/build-module/border-control/border-control-style-picker/component.js.map +1 -1
- package/build-module/box-control/index.js +1 -1
- package/build-module/box-control/index.js.map +1 -1
- package/build-module/box-control/linked-button.js +1 -1
- package/build-module/box-control/linked-button.js.map +1 -1
- package/build-module/button/index.js +1 -1
- package/build-module/button/index.js.map +1 -1
- package/build-module/color-palette/index.native.js +11 -7
- package/build-module/color-palette/index.native.js.map +1 -1
- package/build-module/color-picker/color-copy-button.js +1 -1
- package/build-module/color-picker/color-copy-button.js.map +1 -1
- package/build-module/context/wordpress-component.js.map +1 -1
- package/build-module/custom-select-control-v2/index.js +11 -10
- package/build-module/custom-select-control-v2/index.js.map +1 -1
- package/build-module/date-time/date/styles.js +8 -8
- package/build-module/date-time/date/styles.js.map +1 -1
- package/build-module/dropdown-menu-v2/index.js +201 -154
- package/build-module/dropdown-menu-v2/index.js.map +1 -1
- package/build-module/dropdown-menu-v2/styles.js +68 -61
- package/build-module/dropdown-menu-v2/styles.js.map +1 -1
- package/build-module/dropdown-menu-v2/types.js.map +1 -1
- package/build-module/duotone-picker/duotone-picker.js +4 -3
- package/build-module/duotone-picker/duotone-picker.js.map +1 -1
- package/build-module/font-size-picker/index.js +4 -2
- package/build-module/font-size-picker/index.js.map +1 -1
- package/build-module/font-size-picker/index.native.js +5 -2
- package/build-module/font-size-picker/index.native.js.map +1 -1
- package/build-module/form-token-field/index.js +10 -5
- package/build-module/form-token-field/index.js.map +1 -1
- package/build-module/form-token-field/token.js +1 -0
- package/build-module/form-token-field/token.js.map +1 -1
- package/build-module/gradient-picker/index.js +3 -2
- package/build-module/gradient-picker/index.js.map +1 -1
- package/build-module/index.native.js +6 -1
- package/build-module/index.native.js.map +1 -1
- package/build-module/input-control/styles/input-control-styles.js +31 -29
- package/build-module/input-control/styles/input-control-styles.js.map +1 -1
- package/build-module/input-control/types.js.map +1 -1
- package/build-module/lock-unlock.js +9 -0
- package/build-module/lock-unlock.js.map +1 -0
- package/build-module/mobile/bottom-sheet/index.native.js +9 -1
- package/build-module/mobile/bottom-sheet/index.native.js.map +1 -1
- package/build-module/mobile/color-settings/palette.screen.native.js +8 -4
- package/build-module/mobile/color-settings/palette.screen.native.js.map +1 -1
- package/build-module/mobile/global-styles-context/utils.native.js +25 -13
- package/build-module/mobile/global-styles-context/utils.native.js.map +1 -1
- package/build-module/mobile/image/constants.js +5 -0
- package/build-module/mobile/image/constants.js.map +1 -0
- package/build-module/mobile/image/index.native.js +25 -16
- package/build-module/mobile/image/index.native.js.map +1 -1
- package/build-module/mobile/keyboard-aware-flat-list/index.android.js +40 -6
- package/build-module/mobile/keyboard-aware-flat-list/index.android.js.map +1 -1
- package/build-module/mobile/keyboard-aware-flat-list/index.ios.js +46 -68
- package/build-module/mobile/keyboard-aware-flat-list/index.ios.js.map +1 -1
- package/build-module/mobile/keyboard-aware-flat-list/use-scroll-to-element.native.js +33 -0
- package/build-module/mobile/keyboard-aware-flat-list/use-scroll-to-element.native.js.map +1 -0
- package/build-module/mobile/keyboard-aware-flat-list/{use-scroll-to-text-input.native.js → use-scroll-to-section.native.js} +21 -27
- package/build-module/mobile/keyboard-aware-flat-list/use-scroll-to-section.native.js.map +1 -0
- package/build-module/mobile/keyboard-aware-flat-list/use-scroll.native.js +86 -0
- package/build-module/mobile/keyboard-aware-flat-list/use-scroll.native.js.map +1 -0
- package/build-module/mobile/utils/get-px-from-css-unit.native.js +294 -0
- package/build-module/mobile/utils/get-px-from-css-unit.native.js.map +1 -0
- package/build-module/modal/index.js +18 -13
- package/build-module/modal/index.js.map +1 -1
- package/build-module/navigation/menu/menu-title.js +1 -1
- package/build-module/navigation/menu/menu-title.js.map +1 -1
- package/build-module/navigator/navigator-provider/component.js +3 -16
- package/build-module/navigator/navigator-provider/component.js.map +1 -1
- package/build-module/navigator/navigator-screen/component.js +16 -70
- package/build-module/navigator/navigator-screen/component.js.map +1 -1
- package/build-module/navigator/styles.js +47 -0
- package/build-module/navigator/styles.js.map +1 -0
- package/build-module/number-control/index.js +4 -8
- package/build-module/number-control/index.js.map +1 -1
- package/build-module/number-control/types.js.map +1 -1
- package/build-module/palette-edit/index.js +15 -51
- package/build-module/palette-edit/index.js.map +1 -1
- package/build-module/private-apis.js +10 -23
- package/build-module/private-apis.js.map +1 -1
- package/build-module/private-apis.native.js +14 -0
- package/build-module/private-apis.native.js.map +1 -0
- package/build-module/radio-control/index.js +1 -0
- package/build-module/radio-control/index.js.map +1 -1
- package/build-module/range-control/index.js +1 -1
- package/build-module/range-control/index.js.map +1 -1
- package/build-module/select-control/styles/select-control-styles.js +15 -25
- package/build-module/select-control/styles/select-control-styles.js.map +1 -1
- package/build-module/slot-fill/index.js +3 -2
- package/build-module/slot-fill/index.js.map +1 -1
- package/build-module/slot-fill/types.js.map +1 -1
- package/build-module/snackbar/types.js.map +1 -1
- package/build-module/tabs/styles.js +3 -3
- package/build-module/tabs/styles.js.map +1 -1
- package/build-module/tabs/tabpanel.js +9 -7
- package/build-module/tabs/tabpanel.js.map +1 -1
- package/build-module/toggle-group-control/toggle-group-control/component.js +4 -4
- package/build-module/toggle-group-control/toggle-group-control/component.js.map +1 -1
- package/build-module/toggle-group-control/toggle-group-control/styles.js +29 -15
- package/build-module/toggle-group-control/toggle-group-control/styles.js.map +1 -1
- package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js +9 -9
- package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -1
- package/build-module/tools-panel/tools-panel/component.js +3 -1
- package/build-module/tools-panel/tools-panel/component.js.map +1 -1
- package/build-module/tools-panel/tools-panel-header/component.js +9 -8
- package/build-module/tools-panel/tools-panel-header/component.js.map +1 -1
- package/build-module/tools-panel/types.js.map +1 -1
- package/build-module/tooltip/index.js +34 -12
- package/build-module/tooltip/index.js.map +1 -1
- package/build-module/tooltip/types.js.map +1 -1
- package/build-module/truncate/hook.js +10 -4
- package/build-module/truncate/hook.js.map +1 -1
- package/build-module/truncate/types.js.map +1 -1
- package/build-module/unit-control/index.js +1 -1
- package/build-module/unit-control/index.js.map +1 -1
- package/build-module/utils/strings.js +32 -2
- package/build-module/utils/strings.js.map +1 -1
- package/build-style/style-rtl.css +29 -5
- package/build-style/style.css +29 -5
- package/build-types/base-control/index.d.ts +3 -27
- package/build-types/base-control/index.d.ts.map +1 -1
- package/build-types/base-control/stories/index.story.d.ts +4 -1
- package/build-types/base-control/stories/index.story.d.ts.map +1 -1
- package/build-types/border-box-control/border-box-control/hook.d.ts +4 -4
- package/build-types/border-box-control/border-box-control-linked-button/hook.d.ts +6 -6
- package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts +4 -4
- package/build-types/border-box-control/border-box-control-visualizer/hook.d.ts +4 -4
- package/build-types/border-box-control/stories/index.story.d.ts +1 -1
- package/build-types/border-control/border-control/hook.d.ts +4 -4
- package/build-types/border-control/border-control-dropdown/hook.d.ts +4 -4
- package/build-types/border-control/border-control-style-picker/hook.d.ts +4 -4
- package/build-types/border-control/stories/index.story.d.ts +6 -6
- package/build-types/box-control/stories/index.story.d.ts +42 -42
- package/build-types/box-control/styles/box-control-styles.d.ts +1 -1
- package/build-types/button/deprecated.d.ts +3 -3
- package/build-types/card/card/hook.d.ts +4 -4
- package/build-types/card/card-body/hook.d.ts +4 -4
- package/build-types/card/card-divider/hook.d.ts +4 -4
- package/build-types/card/card-footer/hook.d.ts +4 -4
- package/build-types/card/card-header/hook.d.ts +4 -4
- package/build-types/card/card-media/hook.d.ts +4 -4
- package/build-types/color-palette/styles.d.ts +2 -2
- package/build-types/color-picker/component.d.ts +2 -2
- package/build-types/color-picker/stories/index.story.d.ts +1 -1
- package/build-types/color-picker/stories/index.story.d.ts.map +1 -1
- package/build-types/color-picker/styles.d.ts +3 -3
- package/build-types/composite/test/index.d.ts.map +1 -0
- package/build-types/context/wordpress-component.d.ts +3 -3
- package/build-types/context/wordpress-component.d.ts.map +1 -1
- package/build-types/custom-select-control-v2/index.d.ts +3 -2
- package/build-types/custom-select-control-v2/index.d.ts.map +1 -1
- package/build-types/custom-select-control-v2/stories/index.story.d.ts +4 -3
- package/build-types/custom-select-control-v2/stories/index.story.d.ts.map +1 -1
- package/build-types/date-time/date/styles.d.ts +3 -3
- package/build-types/date-time/date-time/styles.d.ts +1 -1
- package/build-types/date-time/time/styles.d.ts +4 -4
- package/build-types/dropdown/index.d.ts +1 -1
- package/build-types/dropdown/index.d.ts.map +1 -1
- package/build-types/dropdown/stories/index.story.d.ts +3 -3
- package/build-types/dropdown/stories/index.story.d.ts.map +1 -1
- package/build-types/dropdown-menu/index.d.ts +1 -1
- package/build-types/dropdown-menu/index.d.ts.map +1 -1
- package/build-types/dropdown-menu/stories/index.story.d.ts +2 -2
- package/build-types/dropdown-menu/stories/index.story.d.ts.map +1 -1
- package/build-types/dropdown-menu-v2/index.d.ts +18 -15
- package/build-types/dropdown-menu-v2/index.d.ts.map +1 -1
- package/build-types/dropdown-menu-v2/stories/index.story.d.ts +7 -2
- package/build-types/dropdown-menu-v2/stories/index.story.d.ts.map +1 -1
- package/build-types/dropdown-menu-v2/styles.d.ts +77 -23
- package/build-types/dropdown-menu-v2/styles.d.ts.map +1 -1
- package/build-types/dropdown-menu-v2/types.d.ts +89 -173
- package/build-types/dropdown-menu-v2/types.d.ts.map +1 -1
- package/build-types/duotone-picker/duotone-picker.d.ts.map +1 -1
- package/build-types/elevation/hook.d.ts +4 -4
- package/build-types/flex/flex/hook.d.ts +4 -4
- package/build-types/flex/flex-block/hook.d.ts +4 -4
- package/build-types/flex/flex-item/hook.d.ts +4 -4
- package/build-types/focal-point-picker/stories/index.story.d.ts +4 -4
- package/build-types/focal-point-picker/styles/focal-point-picker-style.d.ts +1 -1
- package/build-types/font-size-picker/index.d.ts.map +1 -1
- package/build-types/font-size-picker/styles.d.ts +1 -1
- package/build-types/form-token-field/index.d.ts.map +1 -1
- package/build-types/form-token-field/token.d.ts.map +1 -1
- package/build-types/grid/hook.d.ts +4 -4
- package/build-types/h-stack/hook.d.ts +4 -4
- package/build-types/heading/component.d.ts +1 -1
- package/build-types/heading/hook.d.ts +4 -4
- package/build-types/input-control/styles/input-control-styles.d.ts +11 -0
- package/build-types/input-control/styles/input-control-styles.d.ts.map +1 -1
- package/build-types/input-control/types.d.ts +1 -1
- package/build-types/input-control/types.d.ts.map +1 -1
- package/build-types/item-group/item/hook.d.ts +4 -4
- package/build-types/item-group/item-group/hook.d.ts +4 -4
- package/build-types/lock-unlock.d.ts +3 -0
- package/build-types/lock-unlock.d.ts.map +1 -0
- package/build-types/menu-item/index.d.ts +1 -1
- package/build-types/menu-item/stories/index.story.d.ts +4 -4
- package/build-types/mobile/image/constants.d.ts +5 -0
- package/build-types/mobile/image/constants.d.ts.map +1 -0
- package/build-types/modal/index.d.ts.map +1 -1
- package/build-types/navigation/styles/navigation-styles.d.ts +3 -3
- package/build-types/navigator/navigator-back-button/hook.d.ts +6 -6
- package/build-types/navigator/navigator-button/hook.d.ts +6 -6
- package/build-types/navigator/navigator-provider/component.d.ts.map +1 -1
- package/build-types/navigator/navigator-screen/component.d.ts +1 -7
- package/build-types/navigator/navigator-screen/component.d.ts.map +1 -1
- package/build-types/navigator/styles.d.ts +9 -0
- package/build-types/navigator/styles.d.ts.map +1 -0
- package/build-types/number-control/index.d.ts +1 -1
- package/build-types/number-control/index.d.ts.map +1 -1
- package/build-types/number-control/stories/index.story.d.ts +1 -1
- package/build-types/number-control/types.d.ts +1 -1
- package/build-types/palette-edit/index.d.ts +3 -8
- package/build-types/palette-edit/index.d.ts.map +1 -1
- package/build-types/palette-edit/styles.d.ts +3 -3
- package/build-types/popover/index.d.ts +1 -1
- package/build-types/popover/index.d.ts.map +1 -1
- package/build-types/popover/stories/e2e/index.story.d.ts +1 -1
- package/build-types/private-apis.d.ts +0 -1
- package/build-types/private-apis.d.ts.map +1 -1
- package/build-types/radio-control/index.d.ts.map +1 -1
- package/build-types/range-control/index.d.ts +1 -1
- package/build-types/range-control/styles/range-control-styles.d.ts +1 -1
- package/build-types/resizable-box/index.d.ts +1 -1
- package/build-types/resizable-box/resize-tooltip/index.d.ts +1 -1
- package/build-types/resizable-box/stories/index.story.d.ts +2 -2
- package/build-types/scrollable/hook.d.ts +4 -4
- package/build-types/search-control/index.d.ts +1 -1
- package/build-types/search-control/stories/index.story.d.ts +2 -2
- package/build-types/select-control/styles/select-control-styles.d.ts.map +1 -1
- package/build-types/slot-fill/index.d.ts +1 -1
- package/build-types/slot-fill/index.d.ts.map +1 -1
- package/build-types/slot-fill/types.d.ts +4 -0
- package/build-types/slot-fill/types.d.ts.map +1 -1
- package/build-types/snackbar/index.d.ts +2 -2
- package/build-types/snackbar/stories/index.story.d.ts +0 -3
- package/build-types/snackbar/stories/index.story.d.ts.map +1 -1
- package/build-types/snackbar/types.d.ts +1 -1
- package/build-types/snackbar/types.d.ts.map +1 -1
- package/build-types/spacer/hook.d.ts +4 -4
- package/build-types/surface/hook.d.ts +4 -4
- package/build-types/tabs/styles.d.ts.map +1 -1
- package/build-types/tabs/tabpanel.d.ts +1 -1
- package/build-types/tabs/tabpanel.d.ts.map +1 -1
- package/build-types/text/hook.d.ts +4 -4
- package/build-types/text-control/index.d.ts +1 -1
- package/build-types/textarea-control/index.d.ts +1 -1
- package/build-types/toggle-control/stories/index.story.d.ts +2 -2
- 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-radio-group.d.ts +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/styles.d.ts +2 -2
- package/build-types/toggle-group-control/toggle-group-control/styles.d.ts.map +1 -1
- package/build-types/toggle-group-control/toggle-group-control-option/component.d.ts +1 -1
- package/build-types/toggle-group-control/toggle-group-control-option-base/component.d.ts +1 -1
- package/build-types/toggle-group-control/toggle-group-control-option-base/component.d.ts.map +1 -1
- package/build-types/toggle-group-control/toggle-group-control-option-base/styles.d.ts.map +1 -1
- package/build-types/toggle-group-control/toggle-group-control-option-icon/component.d.ts +1 -1
- package/build-types/toolbar/toolbar-button/index.d.ts +3 -3
- package/build-types/tools-panel/tools-panel/component.d.ts.map +1 -1
- package/build-types/tools-panel/tools-panel/hook.d.ts +5 -4
- 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 +5 -4
- 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 +4 -4
- package/build-types/tools-panel/types.d.ts +9 -0
- package/build-types/tools-panel/types.d.ts.map +1 -1
- package/build-types/tooltip/index.d.ts +1 -1
- package/build-types/tooltip/index.d.ts.map +1 -1
- package/build-types/tooltip/stories/index.story.d.ts +10 -1
- package/build-types/tooltip/stories/index.story.d.ts.map +1 -1
- package/build-types/tooltip/types.d.ts +3 -0
- package/build-types/tooltip/types.d.ts.map +1 -1
- package/build-types/truncate/hook.d.ts +5 -5
- package/build-types/truncate/hook.d.ts.map +1 -1
- package/build-types/truncate/types.d.ts +4 -0
- package/build-types/truncate/types.d.ts.map +1 -1
- package/build-types/unit-control/index.d.ts +1 -1
- package/build-types/unit-control/styles/unit-control-styles.d.ts +1 -1
- package/build-types/utils/strings.d.ts +14 -2
- package/build-types/utils/strings.d.ts.map +1 -1
- package/build-types/v-stack/hook.d.ts +4 -4
- package/build-types/v-stack/stories/index.story.d.ts +1 -1
- package/package.json +20 -21
- package/src/alignment-matrix-control/test/index.tsx +10 -16
- package/src/base-control/index.tsx +21 -16
- package/src/border-box-control/border-box-control-linked-button/component.tsx +1 -1
- package/src/border-control/border-control-style-picker/component.tsx +1 -1
- package/src/box-control/index.tsx +1 -1
- package/src/box-control/linked-button.tsx +1 -1
- package/src/button/README.md +32 -6
- package/src/button/index.tsx +1 -1
- package/src/button-group/README.md +0 -6
- package/src/card/card/README.md +1 -1
- package/src/checkbox-control/README.md +1 -9
- package/src/color-palette/index.native.js +18 -7
- package/src/color-picker/color-copy-button.tsx +1 -1
- package/src/combobox-control/README.md +0 -6
- package/src/composite/test/index.tsx +576 -0
- package/src/context/wordpress-component.ts +11 -6
- package/src/custom-select-control/README.md +0 -6
- package/src/custom-select-control-v2/index.tsx +13 -12
- package/src/date-time/date/styles.ts +3 -3
- package/src/dropdown-menu/README.md +0 -5
- package/src/dropdown-menu-v2/README.md +75 -136
- package/src/dropdown-menu-v2/index.tsx +321 -231
- package/src/dropdown-menu-v2/stories/index.story.tsx +522 -126
- package/src/dropdown-menu-v2/styles.ts +226 -151
- package/src/dropdown-menu-v2/test/index.tsx +480 -188
- package/src/dropdown-menu-v2/types.ts +98 -184
- package/src/duotone-picker/duotone-picker.tsx +7 -3
- package/src/font-size-picker/index.native.js +8 -2
- package/src/font-size-picker/index.tsx +4 -2
- package/src/form-toggle/README.md +0 -6
- package/src/form-token-field/index.tsx +11 -7
- package/src/form-token-field/test/index.tsx +97 -0
- package/src/form-token-field/token.tsx +1 -0
- package/src/gradient-picker/index.tsx +2 -2
- package/src/index.native.js +6 -1
- package/src/input-control/styles/input-control-styles.tsx +10 -8
- package/src/input-control/types.ts +1 -1
- package/src/lock-unlock.js +10 -0
- package/src/menu-group/README.md +0 -8
- package/src/menu-items-choice/README.md +0 -7
- package/src/mobile/bottom-sheet/index.native.js +15 -1
- package/src/mobile/color-settings/palette.screen.native.js +7 -5
- package/src/mobile/global-styles-context/test/fixtures/theme.native.js +0 -20
- package/src/mobile/global-styles-context/utils.native.js +28 -19
- package/src/mobile/image/constants.js +1 -0
- package/src/mobile/image/index.native.js +55 -18
- package/src/mobile/image/style.native.scss +35 -9
- package/src/mobile/keyboard-aware-flat-list/index.android.js +50 -5
- package/src/mobile/keyboard-aware-flat-list/index.ios.js +65 -91
- package/src/mobile/keyboard-aware-flat-list/test/{use-scroll-to-text-input.native.js → use-scroll-to-section.native.js} +27 -25
- package/src/mobile/keyboard-aware-flat-list/test/use-scroll.native.js +71 -0
- package/src/mobile/keyboard-aware-flat-list/use-scroll-to-element.native.js +41 -0
- package/src/mobile/keyboard-aware-flat-list/{use-scroll-to-text-input.native.js → use-scroll-to-section.native.js} +22 -27
- package/src/mobile/keyboard-aware-flat-list/use-scroll.native.js +100 -0
- package/src/mobile/utils/get-px-from-css-unit.native.js +329 -0
- package/src/mobile/utils/test/get-px-from-css-unit.native.js +172 -0
- package/src/modal/README.md +0 -6
- package/src/modal/index.tsx +18 -16
- package/src/modal/test/index.tsx +90 -1
- package/src/navigation/menu/menu-title.tsx +1 -1
- package/src/navigator/navigator-provider/component.tsx +3 -4
- package/src/navigator/navigator-screen/component.tsx +15 -93
- package/src/navigator/styles.ts +71 -0
- package/src/navigator/test/index.tsx +0 -64
- package/src/notice/README.md +0 -6
- package/src/number-control/README.md +2 -2
- package/src/number-control/index.tsx +4 -8
- package/src/number-control/types.ts +1 -1
- package/src/palette-edit/index.tsx +15 -58
- package/src/palette-edit/test/index.tsx +1 -75
- package/src/panel/README.md +0 -6
- package/src/private-apis.native.js +13 -0
- package/src/private-apis.ts +12 -37
- package/src/radio-control/README.md +0 -6
- package/src/radio-control/index.tsx +4 -1
- package/src/radio-control/style.scss +29 -2
- package/src/radio-group/README.md +0 -6
- package/src/range-control/README.md +1 -9
- package/src/range-control/index.tsx +1 -1
- package/src/search-control/README.md +0 -6
- package/src/select-control/README.md +0 -6
- package/src/select-control/styles/select-control-styles.ts +10 -28
- package/src/slot-fill/index.tsx +5 -2
- package/src/slot-fill/types.ts +5 -0
- package/src/snackbar/README.md +0 -6
- package/src/snackbar/stories/index.story.tsx +7 -5
- package/src/snackbar/style.scss +4 -3
- package/src/snackbar/types.ts +2 -1
- package/src/spacer/README.md +0 -2
- package/src/tab-panel/README.md +0 -5
- package/src/tab-panel/test/index.tsx +39 -56
- package/src/tabs/styles.ts +7 -1
- package/src/tabs/tabpanel.tsx +7 -6
- package/src/tabs/test/index.tsx +56 -0
- package/src/text-control/README.md +0 -6
- package/src/textarea-control/README.md +0 -6
- package/src/toggle-group-control/test/__snapshots__/index.tsx.snap +12 -16
- package/src/toggle-group-control/test/index.tsx +58 -45
- package/src/toggle-group-control/toggle-group-control/component.tsx +5 -4
- package/src/toggle-group-control/toggle-group-control/styles.ts +13 -19
- package/src/toggle-group-control/toggle-group-control-option/README.md +1 -1
- package/src/toggle-group-control/toggle-group-control-option-base/README.md +1 -1
- package/src/toggle-group-control/toggle-group-control-option-base/styles.ts +3 -2
- package/src/toggle-group-control/toggle-group-control-option-icon/README.md +1 -1
- package/src/toolbar/toolbar/README.md +0 -6
- package/src/tools-panel/test/index.tsx +12 -20
- package/src/tools-panel/tools-panel/README.md +7 -0
- package/src/tools-panel/tools-panel/component.tsx +2 -0
- package/src/tools-panel/tools-panel-header/README.md +7 -0
- package/src/tools-panel/tools-panel-header/component.tsx +20 -13
- package/src/tools-panel/types.ts +9 -0
- package/src/tooltip/README.md +4 -0
- package/src/tooltip/index.tsx +48 -10
- package/src/tooltip/stories/index.story.tsx +18 -1
- package/src/tooltip/test/index.tsx +404 -254
- package/src/tooltip/types.ts +4 -0
- package/src/tree-grid/README.md +0 -4
- package/src/truncate/README.md +8 -0
- package/src/truncate/hook.ts +17 -10
- package/src/truncate/test/index.tsx +54 -27
- package/src/truncate/types.ts +4 -0
- package/src/unit-control/index.tsx +1 -1
- package/src/utils/strings.ts +30 -2
- package/src/utils/test/strings.js +96 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/build/dropdown-menu-v2-ariakit/index.js +0 -256
- package/build/dropdown-menu-v2-ariakit/index.js.map +0 -1
- package/build/dropdown-menu-v2-ariakit/styles.js +0 -180
- package/build/dropdown-menu-v2-ariakit/styles.js.map +0 -1
- package/build/dropdown-menu-v2-ariakit/types.js +0 -6
- package/build/dropdown-menu-v2-ariakit/types.js.map +0 -1
- package/build/mobile/keyboard-aware-flat-list/use-scroll-to-text-input.native.js.map +0 -1
- package/build-module/dropdown-menu-v2-ariakit/index.js +0 -237
- package/build-module/dropdown-menu-v2-ariakit/index.js.map +0 -1
- package/build-module/dropdown-menu-v2-ariakit/styles.js +0 -165
- package/build-module/dropdown-menu-v2-ariakit/styles.js.map +0 -1
- package/build-module/dropdown-menu-v2-ariakit/types.js +0 -2
- package/build-module/dropdown-menu-v2-ariakit/types.js.map +0 -1
- package/build-module/mobile/keyboard-aware-flat-list/use-scroll-to-text-input.native.js.map +0 -1
- package/build-types/dropdown-menu-v2-ariakit/index.d.ts +0 -20
- package/build-types/dropdown-menu-v2-ariakit/index.d.ts.map +0 -1
- package/build-types/dropdown-menu-v2-ariakit/stories/index.story.d.ts +0 -16
- package/build-types/dropdown-menu-v2-ariakit/stories/index.story.d.ts.map +0 -1
- package/build-types/dropdown-menu-v2-ariakit/styles.d.ts +0 -96
- package/build-types/dropdown-menu-v2-ariakit/styles.d.ts.map +0 -1
- package/build-types/dropdown-menu-v2-ariakit/test/index.d.ts.map +0 -1
- package/build-types/dropdown-menu-v2-ariakit/types.d.ts +0 -168
- package/build-types/dropdown-menu-v2-ariakit/types.d.ts.map +0 -1
- package/src/dropdown-menu-v2-ariakit/README.md +0 -331
- package/src/dropdown-menu-v2-ariakit/index.tsx +0 -383
- package/src/dropdown-menu-v2-ariakit/stories/index.story.tsx +0 -617
- package/src/dropdown-menu-v2-ariakit/styles.ts +0 -345
- package/src/dropdown-menu-v2-ariakit/test/index.tsx +0 -1108
- package/src/dropdown-menu-v2-ariakit/types.ts +0 -179
- /package/build-types/{dropdown-menu-v2-ariakit → composite}/test/index.d.ts +0 -0
|
@@ -47,9 +47,9 @@ exports[`ToggleGroupControl controlled should render correctly with icons 1`] =
|
|
|
47
47
|
display: -ms-inline-flexbox;
|
|
48
48
|
display: inline-flex;
|
|
49
49
|
min-width: 0;
|
|
50
|
-
padding: 2px;
|
|
51
50
|
position: relative;
|
|
52
51
|
min-height: 36px;
|
|
52
|
+
padding: 2px;
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
.emotion-8:hover {
|
|
@@ -116,7 +116,8 @@ exports[`ToggleGroupControl controlled should render correctly with icons 1`] =
|
|
|
116
116
|
width: 100%;
|
|
117
117
|
z-index: 2;
|
|
118
118
|
color: #1e1e1e;
|
|
119
|
-
|
|
119
|
+
height: 30px;
|
|
120
|
+
aspect-ratio: 1;
|
|
120
121
|
padding-left: 0;
|
|
121
122
|
padding-right: 0;
|
|
122
123
|
color: #fff;
|
|
@@ -198,7 +199,8 @@ exports[`ToggleGroupControl controlled should render correctly with icons 1`] =
|
|
|
198
199
|
width: 100%;
|
|
199
200
|
z-index: 2;
|
|
200
201
|
color: #1e1e1e;
|
|
201
|
-
|
|
202
|
+
height: 30px;
|
|
203
|
+
aspect-ratio: 1;
|
|
202
204
|
padding-left: 0;
|
|
203
205
|
padding-right: 0;
|
|
204
206
|
}
|
|
@@ -249,7 +251,6 @@ exports[`ToggleGroupControl controlled should render correctly with icons 1`] =
|
|
|
249
251
|
aria-label="Uppercase"
|
|
250
252
|
class="emotion-12 components-toggle-group-control-option-base"
|
|
251
253
|
data-active-item=""
|
|
252
|
-
data-command=""
|
|
253
254
|
data-value="uppercase"
|
|
254
255
|
data-wp-c16t="true"
|
|
255
256
|
data-wp-component="ToggleGroupControlOptionBase"
|
|
@@ -288,7 +289,6 @@ exports[`ToggleGroupControl controlled should render correctly with icons 1`] =
|
|
|
288
289
|
aria-checked="false"
|
|
289
290
|
aria-label="Lowercase"
|
|
290
291
|
class="emotion-18 components-toggle-group-control-option-base"
|
|
291
|
-
data-command=""
|
|
292
292
|
data-value="lowercase"
|
|
293
293
|
data-wp-c16t="true"
|
|
294
294
|
data-wp-component="ToggleGroupControlOptionBase"
|
|
@@ -374,9 +374,9 @@ exports[`ToggleGroupControl controlled should render correctly with text options
|
|
|
374
374
|
display: -ms-inline-flexbox;
|
|
375
375
|
display: inline-flex;
|
|
376
376
|
min-width: 0;
|
|
377
|
-
padding: 2px;
|
|
378
377
|
position: relative;
|
|
379
378
|
min-height: 36px;
|
|
379
|
+
padding: 2px;
|
|
380
380
|
}
|
|
381
381
|
|
|
382
382
|
.emotion-8:hover {
|
|
@@ -498,7 +498,6 @@ exports[`ToggleGroupControl controlled should render correctly with text options
|
|
|
498
498
|
aria-checked="false"
|
|
499
499
|
aria-label="R"
|
|
500
500
|
class="emotion-12 components-toggle-group-control-option-base"
|
|
501
|
-
data-command=""
|
|
502
501
|
data-value="rigas"
|
|
503
502
|
data-wp-c16t="true"
|
|
504
503
|
data-wp-component="ToggleGroupControlOptionBase"
|
|
@@ -521,7 +520,6 @@ exports[`ToggleGroupControl controlled should render correctly with text options
|
|
|
521
520
|
aria-checked="false"
|
|
522
521
|
aria-label="J"
|
|
523
522
|
class="emotion-12 components-toggle-group-control-option-base"
|
|
524
|
-
data-command=""
|
|
525
523
|
data-value="jack"
|
|
526
524
|
data-wp-c16t="true"
|
|
527
525
|
data-wp-component="ToggleGroupControlOptionBase"
|
|
@@ -596,9 +594,9 @@ exports[`ToggleGroupControl uncontrolled should render correctly with icons 1`]
|
|
|
596
594
|
display: -ms-inline-flexbox;
|
|
597
595
|
display: inline-flex;
|
|
598
596
|
min-width: 0;
|
|
599
|
-
padding: 2px;
|
|
600
597
|
position: relative;
|
|
601
598
|
min-height: 36px;
|
|
599
|
+
padding: 2px;
|
|
602
600
|
}
|
|
603
601
|
|
|
604
602
|
.emotion-8:hover {
|
|
@@ -665,7 +663,8 @@ exports[`ToggleGroupControl uncontrolled should render correctly with icons 1`]
|
|
|
665
663
|
width: 100%;
|
|
666
664
|
z-index: 2;
|
|
667
665
|
color: #1e1e1e;
|
|
668
|
-
|
|
666
|
+
height: 30px;
|
|
667
|
+
aspect-ratio: 1;
|
|
669
668
|
padding-left: 0;
|
|
670
669
|
padding-right: 0;
|
|
671
670
|
color: #fff;
|
|
@@ -747,7 +746,8 @@ exports[`ToggleGroupControl uncontrolled should render correctly with icons 1`]
|
|
|
747
746
|
width: 100%;
|
|
748
747
|
z-index: 2;
|
|
749
748
|
color: #1e1e1e;
|
|
750
|
-
|
|
749
|
+
height: 30px;
|
|
750
|
+
aspect-ratio: 1;
|
|
751
751
|
padding-left: 0;
|
|
752
752
|
padding-right: 0;
|
|
753
753
|
}
|
|
@@ -798,7 +798,6 @@ exports[`ToggleGroupControl uncontrolled should render correctly with icons 1`]
|
|
|
798
798
|
aria-label="Uppercase"
|
|
799
799
|
class="emotion-12 components-toggle-group-control-option-base"
|
|
800
800
|
data-active-item=""
|
|
801
|
-
data-command=""
|
|
802
801
|
data-value="uppercase"
|
|
803
802
|
data-wp-c16t="true"
|
|
804
803
|
data-wp-component="ToggleGroupControlOptionBase"
|
|
@@ -837,7 +836,6 @@ exports[`ToggleGroupControl uncontrolled should render correctly with icons 1`]
|
|
|
837
836
|
aria-checked="false"
|
|
838
837
|
aria-label="Lowercase"
|
|
839
838
|
class="emotion-18 components-toggle-group-control-option-base"
|
|
840
|
-
data-command=""
|
|
841
839
|
data-value="lowercase"
|
|
842
840
|
data-wp-c16t="true"
|
|
843
841
|
data-wp-component="ToggleGroupControlOptionBase"
|
|
@@ -917,9 +915,9 @@ exports[`ToggleGroupControl uncontrolled should render correctly with text optio
|
|
|
917
915
|
display: -ms-inline-flexbox;
|
|
918
916
|
display: inline-flex;
|
|
919
917
|
min-width: 0;
|
|
920
|
-
padding: 2px;
|
|
921
918
|
position: relative;
|
|
922
919
|
min-height: 36px;
|
|
920
|
+
padding: 2px;
|
|
923
921
|
}
|
|
924
922
|
|
|
925
923
|
.emotion-8:hover {
|
|
@@ -1041,7 +1039,6 @@ exports[`ToggleGroupControl uncontrolled should render correctly with text optio
|
|
|
1041
1039
|
aria-checked="false"
|
|
1042
1040
|
aria-label="R"
|
|
1043
1041
|
class="emotion-12 components-toggle-group-control-option-base"
|
|
1044
|
-
data-command=""
|
|
1045
1042
|
data-value="rigas"
|
|
1046
1043
|
data-wp-c16t="true"
|
|
1047
1044
|
data-wp-component="ToggleGroupControlOptionBase"
|
|
@@ -1064,7 +1061,6 @@ exports[`ToggleGroupControl uncontrolled should render correctly with text optio
|
|
|
1064
1061
|
aria-checked="false"
|
|
1065
1062
|
aria-label="J"
|
|
1066
1063
|
class="emotion-12 components-toggle-group-control-option-base"
|
|
1067
|
-
data-command=""
|
|
1068
1064
|
data-value="jack"
|
|
1069
1065
|
data-wp-c16t="true"
|
|
1070
1066
|
data-wp-component="ToggleGroupControlOptionBase"
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
4
|
import { render, screen, waitFor } from '@testing-library/react';
|
|
5
|
-
import
|
|
5
|
+
import { press, click, hover, sleep } from '@ariakit/test';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* WordPress dependencies
|
|
@@ -19,8 +19,13 @@ import {
|
|
|
19
19
|
ToggleGroupControlOption,
|
|
20
20
|
ToggleGroupControlOptionIcon,
|
|
21
21
|
} from '../index';
|
|
22
|
+
import { TOOLTIP_DELAY } from '../../tooltip';
|
|
22
23
|
import type { ToggleGroupControlProps } from '../types';
|
|
23
|
-
|
|
24
|
+
|
|
25
|
+
const hoverOutside = async () => {
|
|
26
|
+
await hover( document.body );
|
|
27
|
+
await hover( document.body, { clientX: 10, clientY: 10 } );
|
|
28
|
+
};
|
|
24
29
|
|
|
25
30
|
const ControlledToggleGroupControl = ( {
|
|
26
31
|
value: valueProp,
|
|
@@ -113,7 +118,6 @@ describe.each( [
|
|
|
113
118
|
} );
|
|
114
119
|
} );
|
|
115
120
|
it( 'should call onChange with proper value', async () => {
|
|
116
|
-
const user = userEvent.setup();
|
|
117
121
|
const mockOnChange = jest.fn();
|
|
118
122
|
|
|
119
123
|
render(
|
|
@@ -126,13 +130,12 @@ describe.each( [
|
|
|
126
130
|
</Component>
|
|
127
131
|
);
|
|
128
132
|
|
|
129
|
-
await
|
|
133
|
+
await click( screen.getByRole( 'radio', { name: 'R' } ) );
|
|
130
134
|
|
|
131
135
|
expect( mockOnChange ).toHaveBeenCalledWith( 'rigas' );
|
|
132
136
|
} );
|
|
133
137
|
|
|
134
138
|
it( 'should render tooltip where `showTooltip` === `true`', async () => {
|
|
135
|
-
const user = userEvent.setup();
|
|
136
139
|
render(
|
|
137
140
|
<Component label="Test Toggle Group Control">
|
|
138
141
|
{ optionsWithTooltip }
|
|
@@ -143,19 +146,26 @@ describe.each( [
|
|
|
143
146
|
'Click for Delicious Gnocchi'
|
|
144
147
|
);
|
|
145
148
|
|
|
146
|
-
await
|
|
149
|
+
await hover( firstRadio );
|
|
147
150
|
|
|
148
|
-
const tooltip = await screen.
|
|
149
|
-
'Click for Delicious Gnocchi'
|
|
150
|
-
);
|
|
151
|
+
const tooltip = await screen.findByRole( 'tooltip', {
|
|
152
|
+
name: 'Click for Delicious Gnocchi',
|
|
153
|
+
} );
|
|
151
154
|
|
|
152
155
|
await waitFor( () => expect( tooltip ).toBeVisible() );
|
|
153
156
|
|
|
154
|
-
|
|
157
|
+
// hover outside of radio
|
|
158
|
+
await hoverOutside();
|
|
159
|
+
|
|
160
|
+
// Tooltip should hide
|
|
161
|
+
expect(
|
|
162
|
+
screen.queryByRole( 'tooltip', {
|
|
163
|
+
name: 'Click for Delicious Gnocchi',
|
|
164
|
+
} )
|
|
165
|
+
).not.toBeInTheDocument();
|
|
155
166
|
} );
|
|
156
167
|
|
|
157
168
|
it( 'should not render tooltip', async () => {
|
|
158
|
-
const user = userEvent.setup();
|
|
159
169
|
render(
|
|
160
170
|
<Component label="Test Toggle Group Control">
|
|
161
171
|
{ optionsWithTooltip }
|
|
@@ -166,19 +176,24 @@ describe.each( [
|
|
|
166
176
|
'Click for Sumptuous Caponata'
|
|
167
177
|
);
|
|
168
178
|
|
|
169
|
-
await
|
|
179
|
+
await hover( secondRadio );
|
|
170
180
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
181
|
+
// Tooltip shouldn't show
|
|
182
|
+
expect(
|
|
183
|
+
screen.queryByText( 'Click for Sumptuous Caponata' )
|
|
184
|
+
).not.toBeInTheDocument();
|
|
185
|
+
|
|
186
|
+
// Advance time by default delay
|
|
187
|
+
await sleep( TOOLTIP_DELAY );
|
|
188
|
+
|
|
189
|
+
// Tooltip shouldn't show.
|
|
190
|
+
expect(
|
|
191
|
+
screen.queryByText( 'Click for Sumptuous Caponata' )
|
|
192
|
+
).not.toBeInTheDocument();
|
|
176
193
|
} );
|
|
177
194
|
|
|
178
195
|
if ( mode === 'controlled' ) {
|
|
179
196
|
it( 'should reset values correctly', async () => {
|
|
180
|
-
const user = userEvent.setup();
|
|
181
|
-
|
|
182
197
|
render(
|
|
183
198
|
<Component label="Test Toggle Group Control">
|
|
184
199
|
{ options }
|
|
@@ -188,25 +203,23 @@ describe.each( [
|
|
|
188
203
|
const rigasOption = screen.getByRole( 'radio', { name: 'R' } );
|
|
189
204
|
const jackOption = screen.getByRole( 'radio', { name: 'J' } );
|
|
190
205
|
|
|
191
|
-
await
|
|
206
|
+
await click( rigasOption );
|
|
192
207
|
|
|
193
208
|
expect( jackOption ).not.toBeChecked();
|
|
194
209
|
expect( rigasOption ).toBeChecked();
|
|
195
210
|
|
|
196
|
-
await
|
|
211
|
+
await press.ArrowRight();
|
|
197
212
|
|
|
198
213
|
expect( rigasOption ).not.toBeChecked();
|
|
199
214
|
expect( jackOption ).toBeChecked();
|
|
200
215
|
|
|
201
|
-
await
|
|
216
|
+
await click( screen.getByRole( 'button', { name: 'Reset' } ) );
|
|
202
217
|
|
|
203
218
|
expect( rigasOption ).not.toBeChecked();
|
|
204
219
|
expect( jackOption ).not.toBeChecked();
|
|
205
220
|
} );
|
|
206
221
|
|
|
207
222
|
it( 'should update correctly when triggered by external updates', async () => {
|
|
208
|
-
const user = userEvent.setup();
|
|
209
|
-
|
|
210
223
|
render(
|
|
211
224
|
<Component
|
|
212
225
|
value="rigas"
|
|
@@ -225,19 +238,19 @@ describe.each( [
|
|
|
225
238
|
screen.getByRole( 'radio', { name: 'J' } )
|
|
226
239
|
).not.toBeChecked();
|
|
227
240
|
|
|
228
|
-
await
|
|
241
|
+
await click( screen.getByRole( 'button', { name: 'Jack' } ) );
|
|
229
242
|
expect( screen.getByRole( 'radio', { name: 'J' } ) ).toBeChecked();
|
|
230
243
|
expect(
|
|
231
244
|
screen.getByRole( 'radio', { name: 'R' } )
|
|
232
245
|
).not.toBeChecked();
|
|
233
246
|
|
|
234
|
-
await
|
|
247
|
+
await click( screen.getByRole( 'button', { name: 'Rigas' } ) );
|
|
235
248
|
expect( screen.getByRole( 'radio', { name: 'R' } ) ).toBeChecked();
|
|
236
249
|
expect(
|
|
237
250
|
screen.getByRole( 'radio', { name: 'J' } )
|
|
238
251
|
).not.toBeChecked();
|
|
239
252
|
|
|
240
|
-
await
|
|
253
|
+
await click( screen.getByRole( 'button', { name: 'Reset' } ) );
|
|
241
254
|
expect(
|
|
242
255
|
screen.getByRole( 'radio', { name: 'R' } )
|
|
243
256
|
).not.toBeChecked();
|
|
@@ -251,7 +264,6 @@ describe.each( [
|
|
|
251
264
|
describe( 'isDeselectable = false', () => {
|
|
252
265
|
it( 'should not be deselectable', async () => {
|
|
253
266
|
const mockOnChange = jest.fn();
|
|
254
|
-
const user = userEvent.setup();
|
|
255
267
|
|
|
256
268
|
render(
|
|
257
269
|
<Component
|
|
@@ -267,31 +279,35 @@ describe.each( [
|
|
|
267
279
|
name: 'R',
|
|
268
280
|
checked: true,
|
|
269
281
|
} );
|
|
270
|
-
await
|
|
282
|
+
await click( rigas );
|
|
271
283
|
expect( mockOnChange ).toHaveBeenCalledTimes( 0 );
|
|
272
284
|
} );
|
|
273
285
|
|
|
274
286
|
it( 'should not tab to next radio option', async () => {
|
|
275
|
-
const user = userEvent.setup();
|
|
276
|
-
|
|
277
287
|
render(
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
288
|
+
<>
|
|
289
|
+
<Component value="rigas" label="Test">
|
|
290
|
+
{ options }
|
|
291
|
+
</Component>
|
|
292
|
+
<button>After ToggleGroupControl</button>
|
|
293
|
+
</>
|
|
281
294
|
);
|
|
282
295
|
|
|
283
296
|
const rigas = screen.getByRole( 'radio', {
|
|
284
297
|
name: 'R',
|
|
285
298
|
} );
|
|
286
299
|
|
|
287
|
-
await
|
|
300
|
+
await press.Tab();
|
|
288
301
|
expect( rigas ).toHaveFocus();
|
|
289
302
|
|
|
290
|
-
await
|
|
303
|
+
await press.Tab();
|
|
291
304
|
|
|
305
|
+
// When in controlled mode, there is an additional "Reset" button.
|
|
292
306
|
const expectedFocusTarget =
|
|
293
307
|
mode === 'uncontrolled'
|
|
294
|
-
?
|
|
308
|
+
? screen.getByRole( 'button', {
|
|
309
|
+
name: 'After ToggleGroupControl',
|
|
310
|
+
} )
|
|
295
311
|
: screen.getByRole( 'button', { name: 'Reset' } );
|
|
296
312
|
|
|
297
313
|
expect( expectedFocusTarget ).toHaveFocus();
|
|
@@ -301,7 +317,6 @@ describe.each( [
|
|
|
301
317
|
describe( 'isDeselectable = true', () => {
|
|
302
318
|
it( 'should be deselectable', async () => {
|
|
303
319
|
const mockOnChange = jest.fn();
|
|
304
|
-
const user = userEvent.setup();
|
|
305
320
|
|
|
306
321
|
render(
|
|
307
322
|
<Component
|
|
@@ -314,7 +329,7 @@ describe.each( [
|
|
|
314
329
|
</Component>
|
|
315
330
|
);
|
|
316
331
|
|
|
317
|
-
await
|
|
332
|
+
await click(
|
|
318
333
|
screen.getByRole( 'button', {
|
|
319
334
|
name: 'R',
|
|
320
335
|
pressed: true,
|
|
@@ -323,7 +338,7 @@ describe.each( [
|
|
|
323
338
|
expect( mockOnChange ).toHaveBeenCalledTimes( 1 );
|
|
324
339
|
expect( mockOnChange ).toHaveBeenLastCalledWith( undefined );
|
|
325
340
|
|
|
326
|
-
await
|
|
341
|
+
await click(
|
|
327
342
|
screen.getByRole( 'button', {
|
|
328
343
|
name: 'R',
|
|
329
344
|
pressed: false,
|
|
@@ -334,15 +349,13 @@ describe.each( [
|
|
|
334
349
|
} );
|
|
335
350
|
|
|
336
351
|
it( 'should tab to the next option button', async () => {
|
|
337
|
-
const user = userEvent.setup();
|
|
338
|
-
|
|
339
352
|
render(
|
|
340
353
|
<Component isDeselectable value="rigas" label="Test">
|
|
341
354
|
{ options }
|
|
342
355
|
</Component>
|
|
343
356
|
);
|
|
344
357
|
|
|
345
|
-
await
|
|
358
|
+
await press.Tab();
|
|
346
359
|
expect(
|
|
347
360
|
screen.getByRole( 'button', {
|
|
348
361
|
name: 'R',
|
|
@@ -350,7 +363,7 @@ describe.each( [
|
|
|
350
363
|
} )
|
|
351
364
|
).toHaveFocus();
|
|
352
365
|
|
|
353
|
-
await
|
|
366
|
+
await press.Tab();
|
|
354
367
|
expect(
|
|
355
368
|
screen.getByRole( 'button', {
|
|
356
369
|
name: 'J',
|
|
@@ -359,7 +372,7 @@ describe.each( [
|
|
|
359
372
|
).toHaveFocus();
|
|
360
373
|
|
|
361
374
|
// Focus should not move with arrow keys
|
|
362
|
-
await
|
|
375
|
+
await press.ArrowLeft();
|
|
363
376
|
expect(
|
|
364
377
|
screen.getByRole( 'button', {
|
|
365
378
|
name: 'J',
|
|
@@ -47,6 +47,8 @@ function UnconnectedToggleGroupControl(
|
|
|
47
47
|
} = useContextSystem( props, 'ToggleGroupControl' );
|
|
48
48
|
|
|
49
49
|
const baseId = useInstanceId( ToggleGroupControl, 'toggle-group-control' );
|
|
50
|
+
const normalizedSize =
|
|
51
|
+
__next40pxDefaultSize && size === 'default' ? '__unstable-large' : size;
|
|
50
52
|
|
|
51
53
|
const cx = useCx();
|
|
52
54
|
|
|
@@ -56,13 +58,12 @@ function UnconnectedToggleGroupControl(
|
|
|
56
58
|
styles.toggleGroupControl( {
|
|
57
59
|
isBlock,
|
|
58
60
|
isDeselectable,
|
|
59
|
-
size,
|
|
60
|
-
__next40pxDefaultSize,
|
|
61
|
+
size: normalizedSize,
|
|
61
62
|
} ),
|
|
62
63
|
isBlock && styles.block,
|
|
63
64
|
className
|
|
64
65
|
),
|
|
65
|
-
[ className, cx, isBlock, isDeselectable,
|
|
66
|
+
[ className, cx, isBlock, isDeselectable, normalizedSize ]
|
|
66
67
|
);
|
|
67
68
|
|
|
68
69
|
const MainControl = isDeselectable
|
|
@@ -86,7 +87,7 @@ function UnconnectedToggleGroupControl(
|
|
|
86
87
|
label={ label }
|
|
87
88
|
onChange={ onChange }
|
|
88
89
|
ref={ forwardedRef }
|
|
89
|
-
size={
|
|
90
|
+
size={ normalizedSize }
|
|
90
91
|
value={ value }
|
|
91
92
|
>
|
|
92
93
|
<LayoutGroup id={ baseId }>{ children }</LayoutGroup>
|
|
@@ -14,11 +14,7 @@ export const toggleGroupControl = ( {
|
|
|
14
14
|
isBlock,
|
|
15
15
|
isDeselectable,
|
|
16
16
|
size,
|
|
17
|
-
|
|
18
|
-
}: Pick<
|
|
19
|
-
ToggleGroupControlProps,
|
|
20
|
-
'isBlock' | 'isDeselectable' | '__next40pxDefaultSize'
|
|
21
|
-
> & {
|
|
17
|
+
}: Pick< ToggleGroupControlProps, 'isBlock' | 'isDeselectable' > & {
|
|
22
18
|
size: NonNullable< ToggleGroupControlProps[ 'size' ] >;
|
|
23
19
|
} ) => css`
|
|
24
20
|
background: ${ COLORS.ui.background };
|
|
@@ -26,10 +22,9 @@ export const toggleGroupControl = ( {
|
|
|
26
22
|
border-radius: ${ CONFIG.controlBorderRadius };
|
|
27
23
|
display: inline-flex;
|
|
28
24
|
min-width: 0;
|
|
29
|
-
padding: 2px;
|
|
30
25
|
position: relative;
|
|
31
26
|
|
|
32
|
-
${ toggleGroupControlSize( size
|
|
27
|
+
${ toggleGroupControlSize( size ) }
|
|
33
28
|
${ ! isDeselectable && enclosingBorders( isBlock ) }
|
|
34
29
|
`;
|
|
35
30
|
|
|
@@ -57,21 +52,20 @@ const enclosingBorders = ( isBlock: ToggleGroupControlProps[ 'isBlock' ] ) => {
|
|
|
57
52
|
};
|
|
58
53
|
|
|
59
54
|
export const toggleGroupControlSize = (
|
|
60
|
-
size: NonNullable< ToggleGroupControlProps[ 'size' ]
|
|
61
|
-
__next40pxDefaultSize: ToggleGroupControlProps[ '__next40pxDefaultSize' ]
|
|
55
|
+
size: NonNullable< ToggleGroupControlProps[ 'size' ] >
|
|
62
56
|
) => {
|
|
63
|
-
const
|
|
64
|
-
default:
|
|
65
|
-
|
|
57
|
+
const styles = {
|
|
58
|
+
default: css`
|
|
59
|
+
min-height: 36px;
|
|
60
|
+
padding: 2px;
|
|
61
|
+
`,
|
|
62
|
+
'__unstable-large': css`
|
|
63
|
+
min-height: 40px;
|
|
64
|
+
padding: 3px;
|
|
65
|
+
`,
|
|
66
66
|
};
|
|
67
67
|
|
|
68
|
-
|
|
69
|
-
heights.default = '36px';
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
return css`
|
|
73
|
-
min-height: ${ heights[ size ] };
|
|
74
|
-
`;
|
|
68
|
+
return styles[ size ];
|
|
75
69
|
};
|
|
76
70
|
|
|
77
71
|
export const block = css`
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
This feature is still experimental. “Experimental” means this is an early implementation subject to drastic and breaking changes.
|
|
5
5
|
</div>
|
|
6
6
|
|
|
7
|
-
`ToggleGroupControlOption` is a form component and is meant to be used as a child of [`ToggleGroupControl`](
|
|
7
|
+
`ToggleGroupControlOption` is a form component and is meant to be used as a child of [`ToggleGroupControl`](/packages/components/src/toggle-group-control/toggle-group-control/README.md).
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
## Usage
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
This feature is still experimental. “Experimental” means this is an early implementation subject to drastic and breaking changes.
|
|
5
5
|
</div>
|
|
6
6
|
|
|
7
|
-
`ToggleGroupControlOptionBase` is a form component and is meant to be used as an internal, generic component for any children of [`ToggleGroupControl`](
|
|
7
|
+
`ToggleGroupControlOptionBase` is a form component and is meant to be used as an internal, generic component for any children of [`ToggleGroupControl`](/packages/components/src/toggle-group-control/toggle-group-control/README.md).
|
|
8
8
|
|
|
9
9
|
## Props
|
|
10
10
|
|
|
@@ -102,12 +102,13 @@ const isIconStyles = ( {
|
|
|
102
102
|
}: Pick< ToggleGroupControlProps, 'size' > ) => {
|
|
103
103
|
const iconButtonSizes = {
|
|
104
104
|
default: '30px',
|
|
105
|
-
'__unstable-large': '
|
|
105
|
+
'__unstable-large': '32px',
|
|
106
106
|
};
|
|
107
107
|
|
|
108
108
|
return css`
|
|
109
109
|
color: ${ COLORS.gray[ 900 ] };
|
|
110
|
-
|
|
110
|
+
height: ${ iconButtonSizes[ size ] };
|
|
111
|
+
aspect-ratio: 1;
|
|
111
112
|
padding-left: 0;
|
|
112
113
|
padding-right: 0;
|
|
113
114
|
`;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
This feature is still experimental. “Experimental” means this is an early implementation subject to drastic and breaking changes.
|
|
5
5
|
</div>
|
|
6
6
|
|
|
7
|
-
`ToggleGroupControlOptionIcon` is a form component which is meant to be used as a child of [`ToggleGroupControl`]
|
|
7
|
+
`ToggleGroupControlOptionIcon` is a form component which is meant to be used as a child of [`ToggleGroupControl`](/packages/components/src/toggle-group-control/toggle-group-control/README.md) and displays an icon.
|
|
8
8
|
|
|
9
9
|
## Usage
|
|
10
10
|
|
|
@@ -4,12 +4,6 @@ Toolbar can be used to group related options. To emphasize groups of related ico
|
|
|
4
4
|
|
|
5
5
|

|
|
6
6
|
|
|
7
|
-
## Table of contents
|
|
8
|
-
|
|
9
|
-
1. [Design guidelines](#design-guidelines)
|
|
10
|
-
2. [Development guidelines](#development-guidelines)
|
|
11
|
-
3. [Related components](#related-components)
|
|
12
|
-
|
|
13
7
|
## Design guidelines
|
|
14
8
|
|
|
15
9
|
### Usage
|
|
@@ -455,8 +455,8 @@ describe( 'ToolsPanel', () => {
|
|
|
455
455
|
|
|
456
456
|
const menuGroups = screen.getAllByRole( 'group' );
|
|
457
457
|
|
|
458
|
-
//
|
|
459
|
-
expect( menuGroups.length ).toEqual(
|
|
458
|
+
// There are now only two groups controls & reset all.
|
|
459
|
+
expect( menuGroups.length ).toEqual( 2 );
|
|
460
460
|
} );
|
|
461
461
|
|
|
462
462
|
it( 'should not render contents of items when in placeholder state', () => {
|
|
@@ -517,15 +517,11 @@ describe( 'ToolsPanel', () => {
|
|
|
517
517
|
|
|
518
518
|
await openDropdownMenu();
|
|
519
519
|
|
|
520
|
-
// The linked control should initially appear in the optional controls
|
|
521
|
-
// menu group. There should be three menu groups: default controls,
|
|
522
|
-
// optional controls, and the group to reset all options.
|
|
523
520
|
let menuGroups = screen.getAllByRole( 'group' );
|
|
524
|
-
expect( menuGroups.length ).toEqual( 3 );
|
|
525
521
|
|
|
526
|
-
// The linked control should be in the
|
|
522
|
+
// The linked control should be in the first group of controls.
|
|
527
523
|
expect(
|
|
528
|
-
within( menuGroups[
|
|
524
|
+
within( menuGroups[ 0 ] ).getByText( 'Linked' )
|
|
529
525
|
).toBeInTheDocument();
|
|
530
526
|
|
|
531
527
|
// Simulate the main control having a value set which should
|
|
@@ -540,22 +536,18 @@ describe( 'ToolsPanel', () => {
|
|
|
540
536
|
linkedItem = screen.getByText( 'Linked control' );
|
|
541
537
|
expect( linkedItem ).toBeInTheDocument();
|
|
542
538
|
|
|
543
|
-
// The linked control should
|
|
544
|
-
// menu group
|
|
539
|
+
// The linked control should still appear in the controls
|
|
540
|
+
// menu group but as a default control.
|
|
545
541
|
menuGroups = screen.getAllByRole( 'group' );
|
|
546
542
|
|
|
547
|
-
//
|
|
548
|
-
//
|
|
549
|
-
expect( menuGroups.length ).toEqual( 2 );
|
|
550
|
-
|
|
551
|
-
// The new default control item for the Linked control should be
|
|
552
|
-
// within the first menu group.
|
|
543
|
+
// The new default control item for the Linked control should still
|
|
544
|
+
// be within the first menu group.
|
|
553
545
|
const defaultItem = within( menuGroups[ 0 ] ).getByText( 'Linked' );
|
|
554
546
|
expect( defaultItem ).toBeInTheDocument();
|
|
555
547
|
|
|
556
548
|
// Optional controls have an additional aria-label. This can be used
|
|
557
|
-
// to confirm the conditional default control
|
|
558
|
-
//
|
|
549
|
+
// to confirm the conditional default control is now being treated
|
|
550
|
+
// as default control.
|
|
559
551
|
expect(
|
|
560
552
|
screen.queryByRole( 'menuitemcheckbox', {
|
|
561
553
|
name: 'Show Linked',
|
|
@@ -599,7 +591,7 @@ describe( 'ToolsPanel', () => {
|
|
|
599
591
|
let conditionalItem = screen.queryByText( 'Conditional control' );
|
|
600
592
|
expect( conditionalItem ).not.toBeInTheDocument();
|
|
601
593
|
|
|
602
|
-
// The conditional control should not yet appear in the
|
|
594
|
+
// The conditional control should not yet appear in the controls
|
|
603
595
|
// menu group.
|
|
604
596
|
await openDropdownMenu();
|
|
605
597
|
let menuGroups = screen.getAllByRole( 'group' );
|
|
@@ -619,7 +611,7 @@ describe( 'ToolsPanel', () => {
|
|
|
619
611
|
conditionalItem = screen.getByText( 'Conditional control' );
|
|
620
612
|
expect( conditionalItem ).toBeInTheDocument();
|
|
621
613
|
|
|
622
|
-
// The conditional control should now appear in the
|
|
614
|
+
// The conditional control should now appear in the controls
|
|
623
615
|
// menu group.
|
|
624
616
|
menuGroups = screen.getAllByRole( 'group' );
|
|
625
617
|
|
|
@@ -157,6 +157,13 @@ wrapper element allowing the panel to lay them out accordingly.
|
|
|
157
157
|
- Required: No
|
|
158
158
|
- Default: `false`
|
|
159
159
|
|
|
160
|
+
### `dropdownMenuProps`: `{}`
|
|
161
|
+
|
|
162
|
+
The popover props to configure panel's `DropdownMenu`.
|
|
163
|
+
|
|
164
|
+
- Type: `DropdownMenuProps`
|
|
165
|
+
- Required: No
|
|
166
|
+
|
|
160
167
|
### `headingLevel`: `1 | 2 | 3 | 4 | 5 | 6 | '1' | '2' | '3' | '4' | '5' | '6'`
|
|
161
168
|
|
|
162
169
|
The heading level of the panel's header.
|
|
@@ -25,6 +25,7 @@ const UnconnectedToolsPanel = (
|
|
|
25
25
|
resetAllItems,
|
|
26
26
|
toggleItem,
|
|
27
27
|
headingLevel,
|
|
28
|
+
dropdownMenuProps,
|
|
28
29
|
...toolsPanelProps
|
|
29
30
|
} = useToolsPanel( props );
|
|
30
31
|
|
|
@@ -36,6 +37,7 @@ const UnconnectedToolsPanel = (
|
|
|
36
37
|
resetAll={ resetAllItems }
|
|
37
38
|
toggleItem={ toggleItem }
|
|
38
39
|
headingLevel={ headingLevel }
|
|
40
|
+
dropdownMenuProps={ dropdownMenuProps }
|
|
39
41
|
/>
|
|
40
42
|
{ children }
|
|
41
43
|
</ToolsPanelContext.Provider>
|