@wordpress/components 25.13.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 +89 -1
- 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-dropdown/component.js +4 -2
- package/build/border-control/border-control-dropdown/component.js.map +1 -1
- package/build/border-control/border-control-dropdown/hook.js +3 -2
- package/build/border-control/border-control-dropdown/hook.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/border-control/styles.js +17 -17
- package/build/border-control/styles.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/checkbox-control/index.js +1 -1
- package/build/checkbox-control/index.js.map +1 -1
- package/build/checkbox-control/types.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/date-time/time/timezone.js +11 -2
- package/build/date-time/time/timezone.js.map +1 -1
- package/build/dimension-control/index.js +2 -0
- package/build/dimension-control/index.js.map +1 -1
- package/build/dimension-control/types.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/focal-point-picker/controls.js +5 -1
- package/build/focal-point-picker/controls.js.map +1 -1
- package/build/focal-point-picker/index.js +2 -0
- package/build/focal-point-picker/index.js.map +1 -1
- package/build/focal-point-picker/styles/focal-point-picker-style.js +15 -15
- package/build/focal-point-picker/styles/focal-point-picker-style.js.map +1 -1
- package/build/focal-point-picker/types.js.map +1 -1
- package/build/font-size-picker/font-size-picker-select.js +2 -0
- package/build/font-size-picker/font-size-picker-select.js.map +1 -1
- package/build/font-size-picker/font-size-picker-toggle-group.js +2 -0
- package/build/font-size-picker/font-size-picker-toggle-group.js.map +1 -1
- package/build/font-size-picker/index.js +10 -3
- 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/font-size-picker/types.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 -19
- 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 +39 -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 -34
- 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/query-controls/author-select.js +3 -1
- package/build/query-controls/author-select.js.map +1 -1
- package/build/query-controls/category-select.js +3 -1
- package/build/query-controls/category-select.js.map +1 -1
- package/build/query-controls/index.js +6 -1
- package/build/query-controls/index.js.map +1 -1
- package/build/query-controls/types.js.map +1 -1
- 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/index.js +18 -1
- package/build/tabs/index.js.map +1 -1
- package/build/tabs/styles.js +3 -3
- package/build/tabs/styles.js.map +1 -1
- package/build/tabs/tab.js +2 -2
- package/build/tabs/tab.js.map +1 -1
- package/build/tabs/tabpanel.js +11 -8
- package/build/tabs/tabpanel.js.map +1 -1
- package/build/tabs/types.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/utils.js +17 -17
- package/build/toggle-group-control/toggle-group-control/utils.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/tools-panel-item/hook.js +11 -11
- package/build/tools-panel/tools-panel-item/hook.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-dropdown/component.js +4 -2
- package/build-module/border-control/border-control-dropdown/component.js.map +1 -1
- package/build-module/border-control/border-control-dropdown/hook.js +3 -2
- package/build-module/border-control/border-control-dropdown/hook.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/border-control/styles.js +17 -17
- package/build-module/border-control/styles.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/checkbox-control/index.js +1 -1
- package/build-module/checkbox-control/index.js.map +1 -1
- package/build-module/checkbox-control/types.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/date-time/time/timezone.js +11 -2
- package/build-module/date-time/time/timezone.js.map +1 -1
- package/build-module/dimension-control/index.js +2 -0
- package/build-module/dimension-control/index.js.map +1 -1
- package/build-module/dimension-control/types.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/focal-point-picker/controls.js +5 -1
- package/build-module/focal-point-picker/controls.js.map +1 -1
- package/build-module/focal-point-picker/index.js +2 -0
- package/build-module/focal-point-picker/index.js.map +1 -1
- package/build-module/focal-point-picker/styles/focal-point-picker-style.js +15 -15
- package/build-module/focal-point-picker/styles/focal-point-picker-style.js.map +1 -1
- package/build-module/focal-point-picker/types.js.map +1 -1
- package/build-module/font-size-picker/font-size-picker-select.js +2 -0
- package/build-module/font-size-picker/font-size-picker-select.js.map +1 -1
- package/build-module/font-size-picker/font-size-picker-toggle-group.js +2 -0
- package/build-module/font-size-picker/font-size-picker-toggle-group.js.map +1 -1
- package/build-module/font-size-picker/index.js +10 -3
- 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/font-size-picker/types.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 -3
- 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 +38 -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 +14 -33
- 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/query-controls/author-select.js +3 -1
- package/build-module/query-controls/author-select.js.map +1 -1
- package/build-module/query-controls/category-select.js +3 -1
- package/build-module/query-controls/category-select.js.map +1 -1
- package/build-module/query-controls/index.js +6 -1
- package/build-module/query-controls/index.js.map +1 -1
- package/build-module/query-controls/types.js.map +1 -1
- 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/index.js +18 -1
- package/build-module/tabs/index.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/tab.js +2 -2
- package/build-module/tabs/tab.js.map +1 -1
- package/build-module/tabs/tabpanel.js +11 -8
- package/build-module/tabs/tabpanel.js.map +1 -1
- package/build-module/tabs/types.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/utils.js +17 -17
- package/build-module/toggle-group-control/toggle-group-control/utils.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/tools-panel-item/hook.js +11 -11
- package/build-module/tools-panel/tools-panel-item/hook.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 +30 -6
- package/build-style/style.css +30 -6
- 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/component.d.ts.map +1 -1
- package/build-types/border-control/border-control-dropdown/hook.d.ts +5 -4
- package/build-types/border-control/border-control-dropdown/hook.d.ts.map +1 -1
- package/build-types/border-control/border-control-style-picker/hook.d.ts +4 -4
- package/build-types/border-control/stories/index.story.d.ts +6 -6
- package/build-types/border-control/styles.d.ts +1 -1
- package/build-types/border-control/styles.d.ts.map +1 -1
- 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/checkbox-control/index.d.ts.map +1 -1
- package/build-types/checkbox-control/types.d.ts +3 -2
- package/build-types/checkbox-control/types.d.ts.map +1 -1
- 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/date-time/time/timezone.d.ts.map +1 -1
- package/build-types/dimension-control/index.d.ts.map +1 -1
- package/build-types/dimension-control/types.d.ts +6 -0
- package/build-types/dimension-control/types.d.ts.map +1 -1
- 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/controls.d.ts +1 -1
- package/build-types/focal-point-picker/controls.d.ts.map +1 -1
- package/build-types/focal-point-picker/index.d.ts +1 -1
- package/build-types/focal-point-picker/index.d.ts.map +1 -1
- package/build-types/focal-point-picker/stories/index.story.d.ts +8 -4
- package/build-types/focal-point-picker/stories/index.story.d.ts.map +1 -1
- package/build-types/focal-point-picker/styles/focal-point-picker-style.d.ts +1 -1
- package/build-types/focal-point-picker/types.d.ts +7 -0
- package/build-types/focal-point-picker/types.d.ts.map +1 -1
- package/build-types/font-size-picker/font-size-picker-select.d.ts.map +1 -1
- package/build-types/font-size-picker/font-size-picker-toggle-group.d.ts.map +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/font-size-picker/types.d.ts +8 -1
- 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/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 +2 -2
- 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/query-controls/author-select.d.ts +1 -1
- package/build-types/query-controls/author-select.d.ts.map +1 -1
- package/build-types/query-controls/category-select.d.ts +1 -1
- package/build-types/query-controls/category-select.d.ts.map +1 -1
- package/build-types/query-controls/index.d.ts +1 -1
- package/build-types/query-controls/index.d.ts.map +1 -1
- package/build-types/query-controls/types.d.ts +9 -0
- package/build-types/query-controls/types.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/index.d.ts +2 -2
- package/build-types/tabs/index.d.ts.map +1 -1
- package/build-types/tabs/styles.d.ts.map +1 -1
- package/build-types/tabs/tab.d.ts +2 -1
- package/build-types/tabs/tab.d.ts.map +1 -1
- package/build-types/tabs/tabpanel.d.ts +3 -2
- package/build-types/tabs/tabpanel.d.ts.map +1 -1
- package/build-types/tabs/types.d.ts +8 -3
- package/build-types/tabs/types.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/utils.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/tools-panel-item/hook.d.ts.map +1 -1
- 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-dropdown/component.tsx +3 -1
- package/src/border-control/border-control-dropdown/hook.ts +3 -2
- package/src/border-control/border-control-style-picker/component.tsx +1 -1
- package/src/border-control/styles.ts +2 -9
- 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 +3 -10
- package/src/checkbox-control/index.tsx +8 -6
- package/src/checkbox-control/test/__snapshots__/index.tsx.snap +3 -8
- package/src/checkbox-control/test/index.tsx +7 -0
- package/src/checkbox-control/types.ts +3 -2
- 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/test/index.js +367 -35
- package/src/custom-select-control-v2/index.tsx +13 -12
- package/src/date-time/date/styles.ts +3 -3
- package/src/date-time/time/timezone.tsx +15 -3
- package/src/dimension-control/index.tsx +2 -0
- package/src/dimension-control/test/__snapshots__/index.test.js.snap +2 -2
- package/src/dimension-control/types.ts +6 -0
- 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/focal-point-picker/controls.tsx +4 -0
- package/src/focal-point-picker/index.tsx +2 -0
- package/src/focal-point-picker/styles/focal-point-picker-style.ts +1 -1
- package/src/focal-point-picker/types.ts +7 -0
- package/src/font-size-picker/font-size-picker-select.tsx +2 -0
- package/src/font-size-picker/font-size-picker-toggle-group.tsx +9 -1
- package/src/font-size-picker/index.native.js +8 -2
- package/src/font-size-picker/index.tsx +15 -5
- package/src/font-size-picker/types.ts +8 -1
- package/src/form-toggle/README.md +0 -6
- package/src/form-toggle/style.scss +4 -2
- 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 -3
- 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/test/utils.native.js +22 -0
- package/src/mobile/global-styles-context/utils.native.js +42 -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/link-settings/style.native.scss +0 -17
- 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 +14 -43
- package/src/palette-edit/style.scss +2 -2
- package/src/panel/README.md +0 -6
- package/src/private-apis.native.js +13 -0
- package/src/private-apis.ts +12 -37
- package/src/query-controls/author-select.tsx +2 -0
- package/src/query-controls/category-select.tsx +2 -0
- package/src/query-controls/index.tsx +6 -1
- package/src/query-controls/types.ts +9 -0
- 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 +1 -5
- 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/spinner/README.md +2 -0
- package/src/tab-panel/README.md +0 -5
- package/src/tab-panel/test/index.tsx +39 -56
- package/src/tabs/README.md +4 -4
- package/src/tabs/index.tsx +22 -1
- package/src/tabs/stories/index.story.tsx +48 -48
- package/src/tabs/styles.ts +7 -1
- package/src/tabs/tab.tsx +3 -3
- package/src/tabs/tabpanel.tsx +13 -8
- package/src/tabs/test/index.tsx +236 -106
- package/src/tabs/types.ts +8 -3
- 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 +107 -41
- 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/utils.ts +15 -20
- 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/tools-panel-item/hook.ts +10 -21
- 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/inserter-button/index.native.js +0 -98
- package/build/mobile/inserter-button/index.native.js.map +0 -1
- package/build/mobile/inserter-button/sparkles.js +0 -23
- package/build/mobile/inserter-button/sparkles.js.map +0 -1
- package/build/mobile/keyboard-aware-flat-list/use-scroll-to-text-input.native.js.map +0 -1
- package/build/mobile/link-settings/image-link-destinations-screen.native.js +0 -119
- package/build/mobile/link-settings/image-link-destinations-screen.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/inserter-button/index.native.js +0 -89
- package/build-module/mobile/inserter-button/index.native.js.map +0 -1
- package/build-module/mobile/inserter-button/sparkles.js +0 -15
- package/build-module/mobile/inserter-button/sparkles.js.map +0 -1
- package/build-module/mobile/keyboard-aware-flat-list/use-scroll-to-text-input.native.js.map +0 -1
- package/build-module/mobile/link-settings/image-link-destinations-screen.native.js +0 -110
- package/build-module/mobile/link-settings/image-link-destinations-screen.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/build-types/mobile/inserter-button/sparkles.d.ts +0 -3
- package/build-types/mobile/inserter-button/sparkles.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 -333
- package/src/dropdown-menu-v2-ariakit/test/index.tsx +0 -1108
- package/src/dropdown-menu-v2-ariakit/types.ts +0 -179
- package/src/mobile/inserter-button/README.md +0 -62
- package/src/mobile/inserter-button/index.native.js +0 -116
- package/src/mobile/inserter-button/sparkles.js +0 -15
- package/src/mobile/inserter-button/style.native.scss +0 -72
- package/src/mobile/link-settings/image-link-destinations-screen.native.js +0 -152
- /package/build-types/{dropdown-menu-v2-ariakit → composite}/test/index.d.ts +0 -0
package/src/tabs/types.ts
CHANGED
|
@@ -78,8 +78,10 @@ export type TabListProps = {
|
|
|
78
78
|
export type TabProps = {
|
|
79
79
|
/**
|
|
80
80
|
* The id of the tab, which is prepended with the `Tabs` instanceId.
|
|
81
|
+
* The value of this prop should match with the value of the `tabId` prop on
|
|
82
|
+
* the corresponding `Tabs.TabPanel` component.
|
|
81
83
|
*/
|
|
82
|
-
|
|
84
|
+
tabId: string;
|
|
83
85
|
/**
|
|
84
86
|
* The children elements, generally the text to display on the tab.
|
|
85
87
|
*/
|
|
@@ -103,9 +105,12 @@ export type TabPanelProps = {
|
|
|
103
105
|
*/
|
|
104
106
|
children?: React.ReactNode;
|
|
105
107
|
/**
|
|
106
|
-
* A unique identifier for the tabpanel, which is used to generate
|
|
108
|
+
* A unique identifier for the tabpanel, which is used to generate an
|
|
109
|
+
* instanced id for the underlying element.
|
|
110
|
+
* The value of this prop should match with the value of the `tabId` prop on
|
|
111
|
+
* the corresponding `Tabs.Tab` component.
|
|
107
112
|
*/
|
|
108
|
-
|
|
113
|
+
tabId: string;
|
|
109
114
|
/**
|
|
110
115
|
* Determines whether or not the tabpanel element should be focusable.
|
|
111
116
|
* If `false`, pressing the tab key will skip over the tabpanel, and instead
|
|
@@ -4,12 +4,6 @@ TextControl components let users enter and edit text.
|
|
|
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
|
|
@@ -4,12 +4,6 @@ TextareaControls are TextControls that allow for multiple lines of text, and wra
|
|
|
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
|
|
@@ -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,14 +19,22 @@ 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,
|
|
27
32
|
onChange,
|
|
33
|
+
extraButtonOptions,
|
|
28
34
|
...props
|
|
29
|
-
}: ToggleGroupControlProps
|
|
35
|
+
}: ToggleGroupControlProps & {
|
|
36
|
+
extraButtonOptions?: { name: string; value: string }[];
|
|
37
|
+
} ) => {
|
|
30
38
|
const [ value, setValue ] = useState( valueProp );
|
|
31
39
|
|
|
32
40
|
return (
|
|
@@ -40,6 +48,14 @@ const ControlledToggleGroupControl = ( {
|
|
|
40
48
|
value={ value }
|
|
41
49
|
/>
|
|
42
50
|
<Button onClick={ () => setValue( undefined ) }>Reset</Button>
|
|
51
|
+
{ extraButtonOptions?.map( ( obj ) => (
|
|
52
|
+
<Button
|
|
53
|
+
key={ obj.value }
|
|
54
|
+
onClick={ () => setValue( obj.value ) }
|
|
55
|
+
>
|
|
56
|
+
{ obj.name }
|
|
57
|
+
</Button>
|
|
58
|
+
) ) }
|
|
43
59
|
</>
|
|
44
60
|
);
|
|
45
61
|
};
|
|
@@ -102,7 +118,6 @@ describe.each( [
|
|
|
102
118
|
} );
|
|
103
119
|
} );
|
|
104
120
|
it( 'should call onChange with proper value', async () => {
|
|
105
|
-
const user = userEvent.setup();
|
|
106
121
|
const mockOnChange = jest.fn();
|
|
107
122
|
|
|
108
123
|
render(
|
|
@@ -115,13 +130,12 @@ describe.each( [
|
|
|
115
130
|
</Component>
|
|
116
131
|
);
|
|
117
132
|
|
|
118
|
-
await
|
|
133
|
+
await click( screen.getByRole( 'radio', { name: 'R' } ) );
|
|
119
134
|
|
|
120
135
|
expect( mockOnChange ).toHaveBeenCalledWith( 'rigas' );
|
|
121
136
|
} );
|
|
122
137
|
|
|
123
138
|
it( 'should render tooltip where `showTooltip` === `true`', async () => {
|
|
124
|
-
const user = userEvent.setup();
|
|
125
139
|
render(
|
|
126
140
|
<Component label="Test Toggle Group Control">
|
|
127
141
|
{ optionsWithTooltip }
|
|
@@ -132,19 +146,26 @@ describe.each( [
|
|
|
132
146
|
'Click for Delicious Gnocchi'
|
|
133
147
|
);
|
|
134
148
|
|
|
135
|
-
await
|
|
149
|
+
await hover( firstRadio );
|
|
136
150
|
|
|
137
|
-
const tooltip = await screen.
|
|
138
|
-
'Click for Delicious Gnocchi'
|
|
139
|
-
);
|
|
151
|
+
const tooltip = await screen.findByRole( 'tooltip', {
|
|
152
|
+
name: 'Click for Delicious Gnocchi',
|
|
153
|
+
} );
|
|
140
154
|
|
|
141
155
|
await waitFor( () => expect( tooltip ).toBeVisible() );
|
|
142
156
|
|
|
143
|
-
|
|
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();
|
|
144
166
|
} );
|
|
145
167
|
|
|
146
168
|
it( 'should not render tooltip', async () => {
|
|
147
|
-
const user = userEvent.setup();
|
|
148
169
|
render(
|
|
149
170
|
<Component label="Test Toggle Group Control">
|
|
150
171
|
{ optionsWithTooltip }
|
|
@@ -155,19 +176,24 @@ describe.each( [
|
|
|
155
176
|
'Click for Sumptuous Caponata'
|
|
156
177
|
);
|
|
157
178
|
|
|
158
|
-
await
|
|
179
|
+
await hover( secondRadio );
|
|
159
180
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
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();
|
|
165
193
|
} );
|
|
166
194
|
|
|
167
195
|
if ( mode === 'controlled' ) {
|
|
168
196
|
it( 'should reset values correctly', async () => {
|
|
169
|
-
const user = userEvent.setup();
|
|
170
|
-
|
|
171
197
|
render(
|
|
172
198
|
<Component label="Test Toggle Group Control">
|
|
173
199
|
{ options }
|
|
@@ -177,28 +203,67 @@ describe.each( [
|
|
|
177
203
|
const rigasOption = screen.getByRole( 'radio', { name: 'R' } );
|
|
178
204
|
const jackOption = screen.getByRole( 'radio', { name: 'J' } );
|
|
179
205
|
|
|
180
|
-
await
|
|
206
|
+
await click( rigasOption );
|
|
181
207
|
|
|
182
208
|
expect( jackOption ).not.toBeChecked();
|
|
183
209
|
expect( rigasOption ).toBeChecked();
|
|
184
210
|
|
|
185
|
-
await
|
|
211
|
+
await press.ArrowRight();
|
|
186
212
|
|
|
187
213
|
expect( rigasOption ).not.toBeChecked();
|
|
188
214
|
expect( jackOption ).toBeChecked();
|
|
189
215
|
|
|
190
|
-
await
|
|
216
|
+
await click( screen.getByRole( 'button', { name: 'Reset' } ) );
|
|
191
217
|
|
|
192
218
|
expect( rigasOption ).not.toBeChecked();
|
|
193
219
|
expect( jackOption ).not.toBeChecked();
|
|
194
220
|
} );
|
|
221
|
+
|
|
222
|
+
it( 'should update correctly when triggered by external updates', async () => {
|
|
223
|
+
render(
|
|
224
|
+
<Component
|
|
225
|
+
value="rigas"
|
|
226
|
+
label="Test Toggle Group Control"
|
|
227
|
+
extraButtonOptions={ [
|
|
228
|
+
{ name: 'Rigas', value: 'rigas' },
|
|
229
|
+
{ name: 'Jack', value: 'jack' },
|
|
230
|
+
] }
|
|
231
|
+
>
|
|
232
|
+
{ options }
|
|
233
|
+
</Component>
|
|
234
|
+
);
|
|
235
|
+
|
|
236
|
+
expect( screen.getByRole( 'radio', { name: 'R' } ) ).toBeChecked();
|
|
237
|
+
expect(
|
|
238
|
+
screen.getByRole( 'radio', { name: 'J' } )
|
|
239
|
+
).not.toBeChecked();
|
|
240
|
+
|
|
241
|
+
await click( screen.getByRole( 'button', { name: 'Jack' } ) );
|
|
242
|
+
expect( screen.getByRole( 'radio', { name: 'J' } ) ).toBeChecked();
|
|
243
|
+
expect(
|
|
244
|
+
screen.getByRole( 'radio', { name: 'R' } )
|
|
245
|
+
).not.toBeChecked();
|
|
246
|
+
|
|
247
|
+
await click( screen.getByRole( 'button', { name: 'Rigas' } ) );
|
|
248
|
+
expect( screen.getByRole( 'radio', { name: 'R' } ) ).toBeChecked();
|
|
249
|
+
expect(
|
|
250
|
+
screen.getByRole( 'radio', { name: 'J' } )
|
|
251
|
+
).not.toBeChecked();
|
|
252
|
+
|
|
253
|
+
await click( screen.getByRole( 'button', { name: 'Reset' } ) );
|
|
254
|
+
expect(
|
|
255
|
+
screen.getByRole( 'radio', { name: 'R' } )
|
|
256
|
+
).not.toBeChecked();
|
|
257
|
+
expect(
|
|
258
|
+
screen.getByRole( 'radio', { name: 'J' } )
|
|
259
|
+
).not.toBeChecked();
|
|
260
|
+
} );
|
|
195
261
|
}
|
|
196
262
|
|
|
197
263
|
describe( 'isDeselectable', () => {
|
|
198
264
|
describe( 'isDeselectable = false', () => {
|
|
199
265
|
it( 'should not be deselectable', async () => {
|
|
200
266
|
const mockOnChange = jest.fn();
|
|
201
|
-
const user = userEvent.setup();
|
|
202
267
|
|
|
203
268
|
render(
|
|
204
269
|
<Component
|
|
@@ -214,31 +279,35 @@ describe.each( [
|
|
|
214
279
|
name: 'R',
|
|
215
280
|
checked: true,
|
|
216
281
|
} );
|
|
217
|
-
await
|
|
282
|
+
await click( rigas );
|
|
218
283
|
expect( mockOnChange ).toHaveBeenCalledTimes( 0 );
|
|
219
284
|
} );
|
|
220
285
|
|
|
221
286
|
it( 'should not tab to next radio option', async () => {
|
|
222
|
-
const user = userEvent.setup();
|
|
223
|
-
|
|
224
287
|
render(
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
288
|
+
<>
|
|
289
|
+
<Component value="rigas" label="Test">
|
|
290
|
+
{ options }
|
|
291
|
+
</Component>
|
|
292
|
+
<button>After ToggleGroupControl</button>
|
|
293
|
+
</>
|
|
228
294
|
);
|
|
229
295
|
|
|
230
296
|
const rigas = screen.getByRole( 'radio', {
|
|
231
297
|
name: 'R',
|
|
232
298
|
} );
|
|
233
299
|
|
|
234
|
-
await
|
|
300
|
+
await press.Tab();
|
|
235
301
|
expect( rigas ).toHaveFocus();
|
|
236
302
|
|
|
237
|
-
await
|
|
303
|
+
await press.Tab();
|
|
238
304
|
|
|
305
|
+
// When in controlled mode, there is an additional "Reset" button.
|
|
239
306
|
const expectedFocusTarget =
|
|
240
307
|
mode === 'uncontrolled'
|
|
241
|
-
?
|
|
308
|
+
? screen.getByRole( 'button', {
|
|
309
|
+
name: 'After ToggleGroupControl',
|
|
310
|
+
} )
|
|
242
311
|
: screen.getByRole( 'button', { name: 'Reset' } );
|
|
243
312
|
|
|
244
313
|
expect( expectedFocusTarget ).toHaveFocus();
|
|
@@ -248,7 +317,6 @@ describe.each( [
|
|
|
248
317
|
describe( 'isDeselectable = true', () => {
|
|
249
318
|
it( 'should be deselectable', async () => {
|
|
250
319
|
const mockOnChange = jest.fn();
|
|
251
|
-
const user = userEvent.setup();
|
|
252
320
|
|
|
253
321
|
render(
|
|
254
322
|
<Component
|
|
@@ -261,7 +329,7 @@ describe.each( [
|
|
|
261
329
|
</Component>
|
|
262
330
|
);
|
|
263
331
|
|
|
264
|
-
await
|
|
332
|
+
await click(
|
|
265
333
|
screen.getByRole( 'button', {
|
|
266
334
|
name: 'R',
|
|
267
335
|
pressed: true,
|
|
@@ -270,7 +338,7 @@ describe.each( [
|
|
|
270
338
|
expect( mockOnChange ).toHaveBeenCalledTimes( 1 );
|
|
271
339
|
expect( mockOnChange ).toHaveBeenLastCalledWith( undefined );
|
|
272
340
|
|
|
273
|
-
await
|
|
341
|
+
await click(
|
|
274
342
|
screen.getByRole( 'button', {
|
|
275
343
|
name: 'R',
|
|
276
344
|
pressed: false,
|
|
@@ -281,15 +349,13 @@ describe.each( [
|
|
|
281
349
|
} );
|
|
282
350
|
|
|
283
351
|
it( 'should tab to the next option button', async () => {
|
|
284
|
-
const user = userEvent.setup();
|
|
285
|
-
|
|
286
352
|
render(
|
|
287
353
|
<Component isDeselectable value="rigas" label="Test">
|
|
288
354
|
{ options }
|
|
289
355
|
</Component>
|
|
290
356
|
);
|
|
291
357
|
|
|
292
|
-
await
|
|
358
|
+
await press.Tab();
|
|
293
359
|
expect(
|
|
294
360
|
screen.getByRole( 'button', {
|
|
295
361
|
name: 'R',
|
|
@@ -297,7 +363,7 @@ describe.each( [
|
|
|
297
363
|
} )
|
|
298
364
|
).toHaveFocus();
|
|
299
365
|
|
|
300
|
-
await
|
|
366
|
+
await press.Tab();
|
|
301
367
|
expect(
|
|
302
368
|
screen.getByRole( 'button', {
|
|
303
369
|
name: 'J',
|
|
@@ -306,7 +372,7 @@ describe.each( [
|
|
|
306
372
|
).toHaveFocus();
|
|
307
373
|
|
|
308
374
|
// Focus should not move with arrow keys
|
|
309
|
-
await
|
|
375
|
+
await press.ArrowLeft();
|
|
310
376
|
expect(
|
|
311
377
|
screen.getByRole( 'button', {
|
|
312
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`
|
|
@@ -21,30 +21,25 @@ type ValueProp = ToggleGroupControlProps[ 'value' ];
|
|
|
21
21
|
export function useComputeControlledOrUncontrolledValue(
|
|
22
22
|
valueProp: ValueProp
|
|
23
23
|
): { value: ValueProp; defaultValue: ValueProp } {
|
|
24
|
-
const
|
|
25
|
-
const
|
|
24
|
+
const prevValueProp = usePrevious( valueProp );
|
|
25
|
+
const prevIsControlled = useRef( false );
|
|
26
26
|
|
|
27
|
+
// Assume the component is being used in controlled mode on the first re-render
|
|
28
|
+
// that has a different `valueProp` from the previous render.
|
|
29
|
+
const isControlled =
|
|
30
|
+
prevIsControlled.current ||
|
|
31
|
+
( prevValueProp !== undefined &&
|
|
32
|
+
valueProp !== undefined &&
|
|
33
|
+
prevValueProp !== valueProp );
|
|
27
34
|
useEffect( () => {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
// - the `value` prop is not `undefined`
|
|
31
|
-
// - the `value` prop was not previously `undefined` and was given a new value
|
|
32
|
-
hasEverBeenUsedInControlledMode.current =
|
|
33
|
-
valueProp !== undefined &&
|
|
34
|
-
previousValueProp !== undefined &&
|
|
35
|
-
valueProp !== previousValueProp;
|
|
36
|
-
}
|
|
37
|
-
}, [ valueProp, previousValueProp ] );
|
|
35
|
+
prevIsControlled.current = isControlled;
|
|
36
|
+
}, [ isControlled ] );
|
|
38
37
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
if ( hasEverBeenUsedInControlledMode.current ) {
|
|
38
|
+
if ( isControlled ) {
|
|
42
39
|
// When in controlled mode, use `''` instead of `undefined`
|
|
43
|
-
value
|
|
44
|
-
} else {
|
|
45
|
-
// When in uncontrolled mode, the `value` should be intended as the initial value
|
|
46
|
-
defaultValue = valueProp;
|
|
40
|
+
return { value: valueProp ?? '', defaultValue: undefined };
|
|
47
41
|
}
|
|
48
42
|
|
|
49
|
-
|
|
43
|
+
// When in uncontrolled mode, the `value` should be intended as the initial value
|
|
44
|
+
return { value: undefined, defaultValue: valueProp };
|
|
50
45
|
}
|
|
@@ -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
|
`;
|