@wordpress/components 22.0.0 → 22.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +42 -0
- package/build/angle-picker-control/index.js +3 -1
- package/build/angle-picker-control/index.js.map +1 -1
- package/build/autocomplete/index.js +7 -3
- package/build/autocomplete/index.js.map +1 -1
- package/build/border-box-control/border-box-control/component.js +1 -1
- package/build/border-box-control/border-box-control/component.js.map +1 -1
- package/build/border-box-control/border-box-control/hook.js +13 -1
- package/build/border-box-control/border-box-control/hook.js.map +1 -1
- package/build/border-box-control/border-box-control-split-controls/hook.js +11 -1
- package/build/border-box-control/border-box-control-split-controls/hook.js.map +1 -1
- package/build/border-control/border-control/component.js +2 -2
- package/build/border-control/border-control/component.js.map +1 -1
- package/build/border-control/border-control/hook.js +11 -1
- package/build/border-control/border-control/hook.js.map +1 -1
- package/build/border-control/border-control-dropdown/component.js +1 -1
- package/build/border-control/border-control-dropdown/component.js.map +1 -1
- package/build/border-control/border-control-dropdown/hook.js +10 -2
- package/build/border-control/border-control-dropdown/hook.js.map +1 -1
- package/build/color-palette/index.js +1 -1
- package/build/color-palette/index.js.map +1 -1
- package/build/color-picker/input-with-slider.js +17 -3
- package/build/color-picker/input-with-slider.js.map +1 -1
- package/build/custom-select-control/index.js +5 -2
- package/build/custom-select-control/index.js.map +1 -1
- package/build/dashicon/index.js +17 -2
- package/build/dashicon/index.js.map +1 -1
- package/build/draggable/index.js +58 -38
- package/build/draggable/index.js.map +1 -1
- package/build/draggable/types.js +6 -0
- package/build/draggable/types.js.map +1 -0
- package/build/flex/flex/hook.js +2 -3
- package/build/flex/flex/hook.js.map +1 -1
- package/build/focal-point-picker/focal-point.js +2 -12
- package/build/focal-point-picker/focal-point.js.map +1 -1
- package/build/focal-point-picker/styles/focal-point-style.js +11 -51
- package/build/focal-point-picker/styles/focal-point-style.js.map +1 -1
- package/build/font-size-picker/constants.js +41 -0
- package/build/font-size-picker/constants.js.map +1 -0
- package/build/font-size-picker/font-size-picker-select.js +97 -0
- package/build/font-size-picker/font-size-picker-select.js.map +1 -0
- package/build/font-size-picker/font-size-picker-toggle-group.js +50 -0
- package/build/font-size-picker/font-size-picker-toggle-group.js.map +1 -0
- package/build/font-size-picker/index.js +39 -76
- package/build/font-size-picker/index.js.map +1 -1
- package/build/font-size-picker/utils.js +17 -89
- package/build/font-size-picker/utils.js.map +1 -1
- package/build/form-token-field/index.js +9 -6
- package/build/form-token-field/index.js.map +1 -1
- package/build/higher-order/navigate-regions/index.js +3 -0
- package/build/higher-order/navigate-regions/index.js.map +1 -1
- package/build/icon/index.js +3 -2
- package/build/icon/index.js.map +1 -1
- package/build/index.js +8 -0
- package/build/index.js.map +1 -1
- package/build/menu-group/index.js +17 -3
- package/build/menu-group/index.js.map +1 -1
- package/build/menu-group/types.js +6 -0
- package/build/menu-group/types.js.map +1 -0
- package/build/navigator/navigator-screen/component.js +9 -5
- package/build/navigator/navigator-screen/component.js.map +1 -1
- package/build/palette-edit/index.js +3 -1
- package/build/palette-edit/index.js.map +1 -1
- package/build/popover/index.js +8 -4
- package/build/popover/index.js.map +1 -1
- package/build/range-control/styles/range-control-styles.js +47 -57
- package/build/range-control/styles/range-control-styles.js.map +1 -1
- package/build/spinner/styles.js +4 -4
- package/build/spinner/styles.js.map +1 -1
- package/build/tab-panel/index.js +3 -4
- package/build/tab-panel/index.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control/component.js +1 -0
- package/build/toggle-group-control/toggle-group-control/component.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control/styles.js +11 -6
- package/build/toggle-group-control/toggle-group-control/styles.js.map +1 -1
- package/build/tools-panel/styles.js +14 -14
- package/build/tools-panel/styles.js.map +1 -1
- package/build/tools-panel/tools-panel-item/hook.js +9 -5
- package/build/tools-panel/tools-panel-item/hook.js.map +1 -1
- package/build/utils/colors-values.js +3 -2
- package/build/utils/colors-values.js.map +1 -1
- package/build/utils/input/base.js +2 -2
- package/build/utils/input/base.js.map +1 -1
- package/build/view/index.js.map +1 -1
- package/build-module/angle-picker-control/index.js +2 -1
- package/build-module/angle-picker-control/index.js.map +1 -1
- package/build-module/autocomplete/index.js +7 -3
- package/build-module/autocomplete/index.js.map +1 -1
- package/build-module/border-box-control/border-box-control/component.js +1 -1
- package/build-module/border-box-control/border-box-control/component.js.map +1 -1
- package/build-module/border-box-control/border-box-control/hook.js +13 -1
- package/build-module/border-box-control/border-box-control/hook.js.map +1 -1
- package/build-module/border-box-control/border-box-control-split-controls/hook.js +11 -1
- package/build-module/border-box-control/border-box-control-split-controls/hook.js.map +1 -1
- package/build-module/border-control/border-control/component.js +2 -2
- package/build-module/border-control/border-control/component.js.map +1 -1
- package/build-module/border-control/border-control/hook.js +11 -1
- package/build-module/border-control/border-control/hook.js.map +1 -1
- package/build-module/border-control/border-control-dropdown/component.js +1 -1
- package/build-module/border-control/border-control-dropdown/component.js.map +1 -1
- package/build-module/border-control/border-control-dropdown/hook.js +10 -2
- package/build-module/border-control/border-control-dropdown/hook.js.map +1 -1
- package/build-module/color-palette/index.js +1 -1
- package/build-module/color-palette/index.js.map +1 -1
- package/build-module/color-picker/input-with-slider.js +17 -3
- package/build-module/color-picker/input-with-slider.js.map +1 -1
- package/build-module/custom-select-control/index.js +5 -2
- package/build-module/custom-select-control/index.js.map +1 -1
- package/build-module/dashicon/index.js +17 -2
- package/build-module/dashicon/index.js.map +1 -1
- package/build-module/draggable/index.js +59 -38
- package/build-module/draggable/index.js.map +1 -1
- package/build-module/draggable/types.js +2 -0
- package/build-module/draggable/types.js.map +1 -0
- package/build-module/flex/flex/hook.js +2 -3
- package/build-module/flex/flex/hook.js.map +1 -1
- package/build-module/focal-point-picker/focal-point.js +3 -13
- package/build-module/focal-point-picker/focal-point.js.map +1 -1
- package/build-module/focal-point-picker/styles/focal-point-style.js +6 -52
- package/build-module/focal-point-picker/styles/focal-point-style.js.map +1 -1
- package/build-module/font-size-picker/constants.js +31 -0
- package/build-module/font-size-picker/constants.js.map +1 -0
- package/build-module/font-size-picker/font-size-picker-select.js +83 -0
- package/build-module/font-size-picker/font-size-picker-select.js.map +1 -0
- package/build-module/font-size-picker/font-size-picker-toggle-group.js +40 -0
- package/build-module/font-size-picker/font-size-picker-toggle-group.js.map +1 -0
- package/build-module/font-size-picker/index.js +38 -76
- package/build-module/font-size-picker/index.js.map +1 -1
- package/build-module/font-size-picker/utils.js +15 -86
- package/build-module/font-size-picker/utils.js.map +1 -1
- package/build-module/form-token-field/index.js +9 -6
- package/build-module/form-token-field/index.js.map +1 -1
- package/build-module/higher-order/navigate-regions/index.js +3 -0
- package/build-module/higher-order/navigate-regions/index.js.map +1 -1
- package/build-module/icon/index.js +3 -2
- package/build-module/icon/index.js.map +1 -1
- package/build-module/index.js +1 -0
- package/build-module/index.js.map +1 -1
- package/build-module/menu-group/index.js +20 -2
- package/build-module/menu-group/index.js.map +1 -1
- package/build-module/menu-group/types.js +2 -0
- package/build-module/menu-group/types.js.map +1 -0
- package/build-module/navigator/navigator-screen/component.js +9 -5
- package/build-module/navigator/navigator-screen/component.js.map +1 -1
- package/build-module/palette-edit/index.js +3 -1
- package/build-module/palette-edit/index.js.map +1 -1
- package/build-module/popover/index.js +8 -4
- package/build-module/popover/index.js.map +1 -1
- package/build-module/range-control/styles/range-control-styles.js +47 -57
- package/build-module/range-control/styles/range-control-styles.js.map +1 -1
- package/build-module/spinner/styles.js +4 -4
- package/build-module/spinner/styles.js.map +1 -1
- package/build-module/tab-panel/index.js +4 -5
- package/build-module/tab-panel/index.js.map +1 -1
- package/build-module/toggle-group-control/toggle-group-control/component.js +1 -0
- 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 +12 -6
- package/build-module/toggle-group-control/toggle-group-control/styles.js.map +1 -1
- package/build-module/tools-panel/styles.js +14 -14
- package/build-module/tools-panel/styles.js.map +1 -1
- package/build-module/tools-panel/tools-panel-item/hook.js +9 -5
- package/build-module/tools-panel/tools-panel-item/hook.js.map +1 -1
- package/build-module/utils/colors-values.js +3 -2
- package/build-module/utils/colors-values.js.map +1 -1
- package/build-module/utils/input/base.js +2 -2
- package/build-module/utils/input/base.js.map +1 -1
- package/build-module/view/index.js.map +1 -1
- package/build-style/style-rtl.css +72 -44
- package/build-style/style.css +72 -44
- package/build-types/border-box-control/border-box-control/component.d.ts +4 -4
- package/build-types/border-box-control/border-box-control/component.d.ts.map +1 -1
- package/build-types/border-box-control/border-box-control/hook.d.ts +6 -6
- package/build-types/border-box-control/border-box-control/hook.d.ts.map +1 -1
- package/build-types/border-box-control/border-box-control-linked-button/component.d.ts +4 -2
- package/build-types/border-box-control/border-box-control-linked-button/component.d.ts.map +1 -1
- package/build-types/border-box-control/border-box-control-split-controls/component.d.ts +3 -3
- package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts +5 -5
- package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts.map +1 -1
- package/build-types/border-box-control/border-box-control-visualizer/component.d.ts +3 -2
- package/build-types/border-box-control/border-box-control-visualizer/component.d.ts.map +1 -1
- package/build-types/border-box-control/stories/index.d.ts +3 -3
- package/build-types/border-box-control/types.d.ts +5 -38
- package/build-types/border-box-control/types.d.ts.map +1 -1
- package/build-types/border-control/border-control/component.d.ts +4 -2
- package/build-types/border-control/border-control/component.d.ts.map +1 -1
- package/build-types/border-control/border-control/hook.d.ts +5 -5
- package/build-types/border-control/border-control/hook.d.ts.map +1 -1
- package/build-types/border-control/border-control-dropdown/component.d.ts +3 -3
- 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 -5
- package/build-types/border-control/border-control-dropdown/hook.d.ts.map +1 -1
- package/build-types/border-control/stories/index.d.ts +24 -12
- package/build-types/border-control/stories/index.d.ts.map +1 -1
- package/build-types/border-control/types.d.ts +10 -51
- package/build-types/border-control/types.d.ts.map +1 -1
- package/build-types/color-palette/index.d.ts +16 -2
- package/build-types/color-palette/index.d.ts.map +1 -1
- package/build-types/color-palette/stories/index.d.ts +31 -2
- package/build-types/color-palette/stories/index.d.ts.map +1 -1
- package/build-types/color-palette/types.d.ts +14 -10
- package/build-types/color-palette/types.d.ts.map +1 -1
- package/build-types/color-picker/input-with-slider.d.ts.map +1 -1
- package/build-types/custom-select-control/index.d.ts.map +1 -1
- package/build-types/dashicon/index.d.ts +6 -1
- package/build-types/dashicon/index.d.ts.map +1 -1
- package/build-types/date-time/types.d.ts +0 -16
- package/build-types/date-time/types.d.ts.map +1 -1
- package/build-types/draggable/index.d.ts +42 -66
- package/build-types/draggable/index.d.ts.map +1 -1
- package/build-types/draggable/stories/index.d.ts +12 -0
- package/build-types/draggable/stories/index.d.ts.map +1 -0
- package/build-types/draggable/types.d.ts +58 -0
- package/build-types/draggable/types.d.ts.map +1 -0
- package/build-types/flex/flex/hook.d.ts.map +1 -1
- package/build-types/focal-point-picker/focal-point.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/styles/focal-point-style.d.ts +1 -12
- package/build-types/focal-point-picker/styles/focal-point-style.d.ts.map +1 -1
- package/build-types/font-size-picker/constants.d.ts +15 -0
- package/build-types/font-size-picker/constants.d.ts.map +1 -0
- package/build-types/font-size-picker/font-size-picker-select.d.ts +5 -0
- package/build-types/font-size-picker/font-size-picker-select.d.ts.map +1 -0
- package/build-types/font-size-picker/font-size-picker-toggle-group.d.ts +5 -0
- package/build-types/font-size-picker/font-size-picker-toggle-group.d.ts.map +1 -0
- package/build-types/font-size-picker/index.d.ts.map +1 -1
- package/build-types/font-size-picker/types.d.ts +13 -13
- package/build-types/font-size-picker/types.d.ts.map +1 -1
- package/build-types/font-size-picker/utils.d.ts +6 -18
- package/build-types/font-size-picker/utils.d.ts.map +1 -1
- package/build-types/form-token-field/index.d.ts.map +1 -1
- package/build-types/icon/index.d.ts +1 -1
- package/build-types/icon/index.d.ts.map +1 -1
- package/build-types/menu-group/index.d.ts +21 -1
- package/build-types/menu-group/index.d.ts.map +1 -1
- package/build-types/menu-group/test/index.d.ts +2 -0
- package/build-types/menu-group/test/index.d.ts.map +1 -0
- package/build-types/menu-group/types.d.ts +23 -0
- package/build-types/menu-group/types.d.ts.map +1 -0
- package/build-types/navigator/navigator-screen/component.d.ts.map +1 -1
- package/build-types/popover/index.d.ts.map +1 -1
- package/build-types/tab-panel/index.d.ts.map +1 -1
- package/build-types/toggle-group-control/stories/index.d.ts.map +1 -1
- package/build-types/toggle-group-control/toggle-group-control/styles.d.ts +1 -2
- package/build-types/toggle-group-control/toggle-group-control/styles.d.ts.map +1 -1
- package/build-types/toggle-group-control/types.d.ts +2 -1
- package/build-types/toggle-group-control/types.d.ts.map +1 -1
- package/build-types/tools-panel/tools-panel-item/hook.d.ts.map +1 -1
- package/build-types/unit-control/index.d.ts +1 -1
- package/build-types/utils/colors-values.d.ts +1 -0
- package/build-types/utils/colors-values.d.ts.map +1 -1
- package/build-types/view/index.d.ts +1 -1
- package/build-types/view/index.d.ts.map +1 -1
- package/package.json +17 -17
- package/src/angle-picker-control/index.js +2 -1
- package/src/autocomplete/index.js +12 -3
- package/src/autocomplete/style.scss +1 -1
- package/src/base-field/test/__snapshots__/index.js.snap +9 -7
- package/src/base-field/test/index.js +27 -15
- package/src/border-box-control/border-box-control/README.md +5 -17
- package/src/border-box-control/border-box-control/component.tsx +1 -1
- package/src/border-box-control/border-box-control/hook.ts +18 -4
- package/src/border-box-control/border-box-control-split-controls/hook.ts +10 -0
- package/src/border-box-control/types.ts +32 -58
- package/src/border-control/border-control/README.md +4 -17
- package/src/border-control/border-control/component.tsx +2 -2
- package/src/border-control/border-control/hook.ts +10 -0
- package/src/border-control/border-control-dropdown/component.tsx +7 -6
- package/src/border-control/border-control-dropdown/hook.ts +9 -1
- package/src/border-control/types.ts +43 -80
- package/src/card/test/__snapshots__/index.tsx.snap +64 -368
- package/src/card/test/index.tsx +2 -2
- package/src/checkbox-control/style.scss +3 -3
- package/src/color-palette/README.md +12 -16
- package/src/color-palette/index.tsx +1 -1
- package/src/color-palette/style.scss +1 -1
- package/src/color-palette/types.ts +14 -10
- package/src/color-picker/input-with-slider.tsx +13 -2
- package/src/custom-select-control/index.js +7 -0
- package/src/custom-select-control/stories/index.js +1 -0
- package/src/custom-select-control/style.scss +6 -1
- package/src/custom-select-control/test/index.js +39 -0
- package/src/dashicon/index.js +21 -2
- package/src/date-time/date/test/index.tsx +2 -2
- package/src/date-time/types.ts +0 -19
- package/src/divider/test/index.tsx +4 -4
- package/src/draggable/README.md +13 -18
- package/src/draggable/{index.js → index.tsx} +71 -47
- package/src/draggable/stories/index.tsx +83 -0
- package/src/draggable/types.ts +58 -0
- package/src/drop-zone/style.scss +1 -1
- package/src/flex/flex/hook.ts +0 -3
- package/src/flex/test/index.tsx +29 -3
- package/src/focal-point-picker/focal-point.tsx +2 -24
- package/src/focal-point-picker/styles/focal-point-style.ts +8 -32
- package/src/font-size-picker/constants.ts +37 -0
- package/src/font-size-picker/font-size-picker-select.tsx +98 -0
- package/src/font-size-picker/font-size-picker-toggle-group.tsx +41 -0
- package/src/font-size-picker/index.tsx +55 -118
- package/src/font-size-picker/test/index.tsx +253 -44
- package/src/font-size-picker/test/utils.ts +58 -98
- package/src/font-size-picker/types.ts +25 -16
- package/src/font-size-picker/utils.ts +16 -102
- package/src/form-toggle/style.scss +3 -3
- package/src/form-token-field/index.tsx +13 -5
- package/src/form-token-field/style.scss +2 -2
- package/src/form-token-field/test/index.tsx +6 -6
- package/src/higher-order/navigate-regions/index.js +4 -0
- package/src/higher-order/navigate-regions/style.scss +72 -20
- package/src/higher-order/with-notices/test/index.js +1 -1
- package/src/icon/index.tsx +3 -2
- package/src/icon/test/index.js +10 -0
- package/src/index.js +1 -0
- package/src/item-group/stories/index.js +1 -1
- package/src/menu-group/{index.js → index.tsx} +22 -3
- package/src/menu-group/test/{index.js → index.tsx} +0 -0
- package/src/menu-group/types.ts +23 -0
- package/src/menu-item/style.scss +1 -1
- package/src/mobile/bottom-sheet/test/range-cell.native.js +4 -4
- package/src/mobile/html-text-input/test/index.native.js +2 -2
- package/src/mobile/link-settings/test/edit.native.js +29 -29
- package/src/mobile/link-settings/test/link-settings-navigation.native.js +5 -5
- package/src/navigator/navigator-screen/component.tsx +8 -3
- package/src/notice/README.md +2 -1
- package/src/notice/style.scss +1 -1
- package/src/palette-edit/index.js +3 -0
- package/src/panel/style.scss +1 -1
- package/src/popover/index.tsx +18 -7
- package/src/range-control/styles/range-control-styles.ts +2 -2
- package/src/resizable-box/style.scss +2 -2
- package/src/scrollable/test/index.tsx +7 -3
- package/src/search-control/style.scss +1 -1
- package/src/snackbar/style.scss +2 -2
- package/src/spacer/test/index.tsx +33 -3
- package/src/spinner/styles.ts +1 -1
- package/src/surface/test/index.tsx +12 -12
- package/src/tab-panel/index.tsx +9 -6
- package/src/tab-panel/style.scss +4 -5
- package/src/text/test/index.tsx +4 -4
- package/src/toggle-group-control/stories/index.tsx +2 -0
- package/src/toggle-group-control/test/__snapshots__/index.tsx.snap +6 -8
- package/src/toggle-group-control/test/index.tsx +29 -17
- package/src/toggle-group-control/toggle-group-control/README.md +8 -1
- package/src/toggle-group-control/toggle-group-control/component.tsx +1 -1
- package/src/toggle-group-control/toggle-group-control/styles.ts +22 -16
- package/src/toggle-group-control/types.ts +2 -1
- package/src/tools-panel/styles.ts +1 -1
- package/src/tools-panel/tools-panel-item/hook.ts +6 -1
- package/src/tree-grid/test/index.js +12 -12
- package/src/truncate/test/index.tsx +9 -9
- package/src/ui/form-group/test/index.js +16 -17
- package/src/utils/colors-values.js +4 -2
- package/src/utils/hooks/stories/use-cx.js +1 -1
- package/src/utils/input/base.js +2 -2
- package/src/view/{index.js → index.ts} +0 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/src/draggable/stories/index.js +0 -72
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
4
|
import { render } from '@testing-library/react';
|
|
5
|
-
import type { RenderResult } from '@testing-library/react';
|
|
6
5
|
|
|
7
6
|
/**
|
|
8
7
|
* Internal dependencies
|
|
@@ -10,39 +9,40 @@ import type { RenderResult } from '@testing-library/react';
|
|
|
10
9
|
import { Surface } from '../index';
|
|
11
10
|
|
|
12
11
|
describe( 'props', () => {
|
|
13
|
-
let base: RenderResult;
|
|
14
|
-
beforeEach( () => {
|
|
15
|
-
base = render( <Surface>Surface</Surface> );
|
|
16
|
-
} );
|
|
17
|
-
|
|
18
12
|
test( 'should render correctly', () => {
|
|
19
|
-
|
|
13
|
+
const { container } = render( <Surface>Surface</Surface> );
|
|
14
|
+
expect( container ).toMatchSnapshot();
|
|
20
15
|
} );
|
|
21
16
|
|
|
22
17
|
test( 'should render variants', () => {
|
|
18
|
+
const view = render( <Surface>Surface</Surface> );
|
|
23
19
|
const { container } = render(
|
|
24
20
|
<Surface variant="secondary">Surface</Surface>
|
|
25
21
|
);
|
|
26
|
-
expect( container ).toMatchDiffSnapshot(
|
|
22
|
+
expect( container ).toMatchDiffSnapshot( view.container );
|
|
27
23
|
} );
|
|
28
24
|
|
|
29
25
|
test( 'should render borderLeft', () => {
|
|
26
|
+
const view = render( <Surface>Surface</Surface> );
|
|
30
27
|
const { container } = render( <Surface borderLeft>Surface</Surface> );
|
|
31
|
-
expect( container ).toMatchDiffSnapshot(
|
|
28
|
+
expect( container ).toMatchDiffSnapshot( view.container );
|
|
32
29
|
} );
|
|
33
30
|
|
|
34
31
|
test( 'should render borderRight', () => {
|
|
32
|
+
const view = render( <Surface>Surface</Surface> );
|
|
35
33
|
const { container } = render( <Surface borderRight>Surface</Surface> );
|
|
36
|
-
expect( container ).toMatchDiffSnapshot(
|
|
34
|
+
expect( container ).toMatchDiffSnapshot( view.container );
|
|
37
35
|
} );
|
|
38
36
|
|
|
39
37
|
test( 'should render borderTop', () => {
|
|
38
|
+
const view = render( <Surface>Surface</Surface> );
|
|
40
39
|
const { container } = render( <Surface borderTop>Surface</Surface> );
|
|
41
|
-
expect( container ).toMatchDiffSnapshot(
|
|
40
|
+
expect( container ).toMatchDiffSnapshot( view.container );
|
|
42
41
|
} );
|
|
43
42
|
|
|
44
43
|
test( 'should render borderBottom', () => {
|
|
44
|
+
const view = render( <Surface>Surface</Surface> );
|
|
45
45
|
const { container } = render( <Surface borderBottom>Surface</Surface> );
|
|
46
|
-
expect( container ).toMatchDiffSnapshot(
|
|
46
|
+
expect( container ).toMatchDiffSnapshot( view.container );
|
|
47
47
|
} );
|
|
48
48
|
} );
|
package/src/tab-panel/index.tsx
CHANGED
|
@@ -7,7 +7,7 @@ import { find } from 'lodash';
|
|
|
7
7
|
/**
|
|
8
8
|
* WordPress dependencies
|
|
9
9
|
*/
|
|
10
|
-
import { useState, useEffect } from '@wordpress/element';
|
|
10
|
+
import { useState, useEffect, useCallback } from '@wordpress/element';
|
|
11
11
|
import { useInstanceId } from '@wordpress/compose';
|
|
12
12
|
|
|
13
13
|
/**
|
|
@@ -85,10 +85,13 @@ export function TabPanel( {
|
|
|
85
85
|
const instanceId = useInstanceId( TabPanel, 'tab-panel' );
|
|
86
86
|
const [ selected, setSelected ] = useState< string >();
|
|
87
87
|
|
|
88
|
-
const handleTabSelection = (
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
88
|
+
const handleTabSelection = useCallback(
|
|
89
|
+
( tabKey: string ) => {
|
|
90
|
+
setSelected( tabKey );
|
|
91
|
+
onSelect?.( tabKey );
|
|
92
|
+
},
|
|
93
|
+
[ onSelect ]
|
|
94
|
+
);
|
|
92
95
|
|
|
93
96
|
const onNavigate = ( _childIndex: number, child: HTMLButtonElement ) => {
|
|
94
97
|
child.click();
|
|
@@ -100,7 +103,7 @@ export function TabPanel( {
|
|
|
100
103
|
if ( ! selectedTab?.name && tabs.length > 0 ) {
|
|
101
104
|
handleTabSelection( initialTabName || tabs[ 0 ].name );
|
|
102
105
|
}
|
|
103
|
-
}, [ tabs, selectedTab?.name, initialTabName ] );
|
|
106
|
+
}, [ tabs, selectedTab?.name, initialTabName, handleTabSelection ] );
|
|
104
107
|
|
|
105
108
|
return (
|
|
106
109
|
<div className={ className }>
|
package/src/tab-panel/style.scss
CHANGED
|
@@ -33,13 +33,12 @@
|
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
&:focus:not(:disabled) {
|
|
36
|
-
box-shadow: inset 0 var(--wp-admin-border-width-focus)
|
|
36
|
+
box-shadow: inset 0 var(--wp-admin-border-width-focus) $components-color-accent;
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
|
|
40
39
|
&.is-active {
|
|
41
40
|
// The transparent shadow ensures no jumpiness when focus animates on an active tab.
|
|
42
|
-
box-shadow: inset 0 0 0 var(--wp-admin-border-width-focus) transparent, inset 0 0 -$border-width-tab 0 0
|
|
41
|
+
box-shadow: inset 0 0 0 var(--wp-admin-border-width-focus) transparent, inset 0 0 -$border-width-tab 0 0 $components-color-accent;
|
|
43
42
|
position: relative;
|
|
44
43
|
|
|
45
44
|
// This border appears in Windows High Contrast mode instead of the box-shadow.
|
|
@@ -55,10 +54,10 @@
|
|
|
55
54
|
}
|
|
56
55
|
|
|
57
56
|
&:focus {
|
|
58
|
-
box-shadow: inset 0 0 0 var(--wp-admin-border-width-focus)
|
|
57
|
+
box-shadow: inset 0 0 0 var(--wp-admin-border-width-focus) $components-color-accent;
|
|
59
58
|
}
|
|
60
59
|
|
|
61
60
|
&.is-active:focus {
|
|
62
|
-
box-shadow: inset 0 0 0 var(--wp-admin-border-width-focus)
|
|
61
|
+
box-shadow: inset 0 0 0 var(--wp-admin-border-width-focus) $components-color-accent, inset 0 -#{$border-width-tab * 2} 0 0 $components-color-accent;
|
|
63
62
|
}
|
|
64
63
|
}
|
package/src/text/test/index.tsx
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import { render } from '@testing-library/react';
|
|
4
|
+
import { render, screen } from '@testing-library/react';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Internal dependencies
|
|
@@ -92,11 +92,11 @@ describe( 'Text', () => {
|
|
|
92
92
|
} );
|
|
93
93
|
|
|
94
94
|
test( 'should render highlighted words', async () => {
|
|
95
|
-
const
|
|
95
|
+
const { container } = render(
|
|
96
96
|
<Text highlightWords={ [ 'm' ] }>Lorem ipsum.</Text>
|
|
97
97
|
);
|
|
98
|
-
expect(
|
|
99
|
-
const words = await
|
|
98
|
+
expect( container.firstChild?.childNodes ).toHaveLength( 5 );
|
|
99
|
+
const words = await screen.findAllByText( 'm' );
|
|
100
100
|
expect( words ).toHaveLength( 2 );
|
|
101
101
|
words.forEach( ( word ) => expect( word.tagName ).toEqual( 'MARK' ) );
|
|
102
102
|
} );
|
|
@@ -81,6 +81,7 @@ Default.args = {
|
|
|
81
81
|
{ value: 'right', label: 'Right' },
|
|
82
82
|
{ value: 'justify', label: 'Justify' },
|
|
83
83
|
].map( mapPropsToOptionComponent ),
|
|
84
|
+
isBlock: true,
|
|
84
85
|
label: 'Label',
|
|
85
86
|
};
|
|
86
87
|
|
|
@@ -121,6 +122,7 @@ WithIcons.args = {
|
|
|
121
122
|
{ value: 'uppercase', label: 'Uppercase', icon: formatUppercase },
|
|
122
123
|
{ value: 'lowercase', label: 'Lowercase', icon: formatLowercase },
|
|
123
124
|
].map( mapPropsToOptionIconComponent ),
|
|
125
|
+
isBlock: false,
|
|
124
126
|
};
|
|
125
127
|
|
|
126
128
|
/**
|
|
@@ -41,6 +41,7 @@ exports[`ToggleGroupControl should render correctly with icons 1`] = `
|
|
|
41
41
|
.emotion-8 {
|
|
42
42
|
background: #fff;
|
|
43
43
|
border: 1px solid transparent;
|
|
44
|
+
border-radius: 2px;
|
|
44
45
|
display: -webkit-inline-box;
|
|
45
46
|
display: -webkit-inline-flex;
|
|
46
47
|
display: -ms-inline-flexbox;
|
|
@@ -51,8 +52,6 @@ exports[`ToggleGroupControl should render correctly with icons 1`] = `
|
|
|
51
52
|
-webkit-transition: -webkit-transform 100ms linear;
|
|
52
53
|
transition: transform 100ms linear;
|
|
53
54
|
min-height: 36px;
|
|
54
|
-
border-color: #757575;
|
|
55
|
-
border-radius: 2px;
|
|
56
55
|
}
|
|
57
56
|
|
|
58
57
|
@media ( prefers-reduced-motion: reduce ) {
|
|
@@ -66,8 +65,8 @@ exports[`ToggleGroupControl should render correctly with icons 1`] = `
|
|
|
66
65
|
}
|
|
67
66
|
|
|
68
67
|
.emotion-8:focus-within {
|
|
69
|
-
border-color: var( --wp-admin-theme-color-darker-10, #006ba1);
|
|
70
|
-
box-shadow: 0 0 0 0.5px var( --wp-admin-theme-color, #007cba);
|
|
68
|
+
border-color: var(--wp-components-color-accent-darker-10, var(--wp-admin-theme-color-darker-10, #006ba1));
|
|
69
|
+
box-shadow: 0 0 0 0.5px var(--wp-components-color-accent, var(--wp-admin-theme-color, #007cba));
|
|
71
70
|
outline: none;
|
|
72
71
|
z-index: 1;
|
|
73
72
|
}
|
|
@@ -377,6 +376,7 @@ exports[`ToggleGroupControl should render correctly with text options 1`] = `
|
|
|
377
376
|
.emotion-8 {
|
|
378
377
|
background: #fff;
|
|
379
378
|
border: 1px solid transparent;
|
|
379
|
+
border-radius: 2px;
|
|
380
380
|
display: -webkit-inline-box;
|
|
381
381
|
display: -webkit-inline-flex;
|
|
382
382
|
display: -ms-inline-flexbox;
|
|
@@ -387,8 +387,6 @@ exports[`ToggleGroupControl should render correctly with text options 1`] = `
|
|
|
387
387
|
-webkit-transition: -webkit-transform 100ms linear;
|
|
388
388
|
transition: transform 100ms linear;
|
|
389
389
|
min-height: 36px;
|
|
390
|
-
border-color: #757575;
|
|
391
|
-
border-radius: 2px;
|
|
392
390
|
}
|
|
393
391
|
|
|
394
392
|
@media ( prefers-reduced-motion: reduce ) {
|
|
@@ -402,8 +400,8 @@ exports[`ToggleGroupControl should render correctly with text options 1`] = `
|
|
|
402
400
|
}
|
|
403
401
|
|
|
404
402
|
.emotion-8:focus-within {
|
|
405
|
-
border-color: var( --wp-admin-theme-color-darker-10, #006ba1);
|
|
406
|
-
box-shadow: 0 0 0 0.5px var( --wp-admin-theme-color, #007cba);
|
|
403
|
+
border-color: var(--wp-components-color-accent-darker-10, var(--wp-admin-theme-color-darker-10, #006ba1));
|
|
404
|
+
box-shadow: 0 0 0 0.5px var(--wp-components-color-accent, var(--wp-admin-theme-color, #007cba));
|
|
407
405
|
outline: none;
|
|
408
406
|
z-index: 1;
|
|
409
407
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import { render,
|
|
4
|
+
import { render, screen, waitFor } from '@testing-library/react';
|
|
5
5
|
import userEvent from '@testing-library/user-event';
|
|
6
6
|
|
|
7
7
|
/**
|
|
@@ -73,7 +73,10 @@ describe( 'ToggleGroupControl', () => {
|
|
|
73
73
|
expect( container ).toMatchSnapshot();
|
|
74
74
|
} );
|
|
75
75
|
} );
|
|
76
|
-
it( 'should call onChange with proper value', () => {
|
|
76
|
+
it( 'should call onChange with proper value', async () => {
|
|
77
|
+
const user = userEvent.setup( {
|
|
78
|
+
advanceTimers: jest.advanceTimersByTime,
|
|
79
|
+
} );
|
|
77
80
|
const mockOnChange = jest.fn();
|
|
78
81
|
|
|
79
82
|
render(
|
|
@@ -86,13 +89,15 @@ describe( 'ToggleGroupControl', () => {
|
|
|
86
89
|
</ToggleGroupControl>
|
|
87
90
|
);
|
|
88
91
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
fireEvent.click( firstRadio );
|
|
92
|
+
await user.click( screen.getByRole( 'radio', { name: 'R' } ) );
|
|
92
93
|
|
|
93
94
|
expect( mockOnChange ).toHaveBeenCalledWith( 'rigas' );
|
|
94
95
|
} );
|
|
95
|
-
|
|
96
|
+
|
|
97
|
+
it( 'should render tooltip where `showTooltip` === `true`', async () => {
|
|
98
|
+
const user = userEvent.setup( {
|
|
99
|
+
advanceTimers: jest.advanceTimersByTime,
|
|
100
|
+
} );
|
|
96
101
|
render(
|
|
97
102
|
<ToggleGroupControl label="Test Toggle Group Control">
|
|
98
103
|
{ optionsWithTooltip }
|
|
@@ -103,14 +108,19 @@ describe( 'ToggleGroupControl', () => {
|
|
|
103
108
|
'Click for Delicious Gnocchi'
|
|
104
109
|
);
|
|
105
110
|
|
|
106
|
-
|
|
111
|
+
await user.hover( firstRadio );
|
|
107
112
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
113
|
+
await waitFor( () =>
|
|
114
|
+
expect(
|
|
115
|
+
screen.getByText( 'Click for Delicious Gnocchi' )
|
|
116
|
+
).toBeVisible()
|
|
117
|
+
);
|
|
111
118
|
} );
|
|
112
119
|
|
|
113
|
-
it( 'should not render tooltip', () => {
|
|
120
|
+
it( 'should not render tooltip', async () => {
|
|
121
|
+
const user = userEvent.setup( {
|
|
122
|
+
advanceTimers: jest.advanceTimersByTime,
|
|
123
|
+
} );
|
|
114
124
|
render(
|
|
115
125
|
<ToggleGroupControl label="Test Toggle Group Control">
|
|
116
126
|
{ optionsWithTooltip }
|
|
@@ -121,11 +131,13 @@ describe( 'ToggleGroupControl', () => {
|
|
|
121
131
|
'Click for Sumptuous Caponata'
|
|
122
132
|
);
|
|
123
133
|
|
|
124
|
-
|
|
134
|
+
await user.hover( secondRadio );
|
|
125
135
|
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
136
|
+
await waitFor( () =>
|
|
137
|
+
expect(
|
|
138
|
+
screen.queryByText( 'Click for Sumptuous Caponata' )
|
|
139
|
+
).not.toBeInTheDocument()
|
|
140
|
+
);
|
|
129
141
|
} );
|
|
130
142
|
|
|
131
143
|
describe( 'isDeselectable', () => {
|
|
@@ -196,7 +208,7 @@ describe( 'ToggleGroupControl', () => {
|
|
|
196
208
|
);
|
|
197
209
|
|
|
198
210
|
await user.click(
|
|
199
|
-
|
|
211
|
+
screen.getByRole( 'button', {
|
|
200
212
|
name: 'R',
|
|
201
213
|
pressed: true,
|
|
202
214
|
} )
|
|
@@ -208,7 +220,7 @@ describe( 'ToggleGroupControl', () => {
|
|
|
208
220
|
name: 'R',
|
|
209
221
|
pressed: false,
|
|
210
222
|
} )
|
|
211
|
-
).
|
|
223
|
+
).toBeVisible();
|
|
212
224
|
} );
|
|
213
225
|
|
|
214
226
|
it( 'should tab to the next option button', async () => {
|
|
@@ -50,9 +50,16 @@ Determines if segments should be rendered with equal widths.
|
|
|
50
50
|
- Required: No
|
|
51
51
|
- Default: `false`
|
|
52
52
|
|
|
53
|
+
### `isDeselectable`: `boolean`
|
|
54
|
+
|
|
55
|
+
Whether an option can be deselected by clicking it again.
|
|
56
|
+
|
|
57
|
+
- Required: No
|
|
58
|
+
- Default: `false`
|
|
59
|
+
|
|
53
60
|
### `isBlock`: `boolean`
|
|
54
61
|
|
|
55
|
-
Renders `ToggleGroupControl` as a (CSS) block element.
|
|
62
|
+
Renders `ToggleGroupControl` as a (CSS) block element, spanning the entire width of the available space. This is the recommended style when the options are text-based and not icons.
|
|
56
63
|
|
|
57
64
|
- Required: No
|
|
58
65
|
- Default: `false`
|
|
@@ -11,14 +11,15 @@ import { CONFIG, COLORS, reduceMotion } from '../../utils';
|
|
|
11
11
|
import type { ToggleGroupControlProps } from '../types';
|
|
12
12
|
|
|
13
13
|
export const ToggleGroupControl = ( {
|
|
14
|
+
isBlock,
|
|
14
15
|
isDeselectable,
|
|
15
16
|
size,
|
|
16
|
-
}: {
|
|
17
|
-
isDeselectable?: boolean;
|
|
17
|
+
}: Pick< ToggleGroupControlProps, 'isBlock' | 'isDeselectable' > & {
|
|
18
18
|
size: NonNullable< ToggleGroupControlProps[ 'size' ] >;
|
|
19
19
|
} ) => css`
|
|
20
20
|
background: ${ COLORS.ui.background };
|
|
21
21
|
border: 1px solid transparent;
|
|
22
|
+
border-radius: ${ CONFIG.controlBorderRadius };
|
|
22
23
|
display: inline-flex;
|
|
23
24
|
min-width: 0;
|
|
24
25
|
padding: 2px;
|
|
@@ -27,24 +28,29 @@ export const ToggleGroupControl = ( {
|
|
|
27
28
|
${ reduceMotion( 'transition' ) }
|
|
28
29
|
|
|
29
30
|
${ toggleGroupControlSize( size ) }
|
|
30
|
-
${ ! isDeselectable &&
|
|
31
|
+
${ ! isDeselectable && enclosingBorders( isBlock ) }
|
|
31
32
|
`;
|
|
32
33
|
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
const enclosingBorders = ( isBlock: ToggleGroupControlProps[ 'isBlock' ] ) => {
|
|
35
|
+
const enclosingBorder = css`
|
|
36
|
+
border-color: ${ COLORS.ui.border };
|
|
37
|
+
`;
|
|
38
|
+
|
|
39
|
+
return css`
|
|
40
|
+
${ isBlock && enclosingBorder }
|
|
36
41
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
42
|
+
&:hover {
|
|
43
|
+
border-color: ${ COLORS.ui.borderHover };
|
|
44
|
+
}
|
|
40
45
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
`;
|
|
46
|
+
&:focus-within {
|
|
47
|
+
border-color: ${ COLORS.ui.borderFocus };
|
|
48
|
+
box-shadow: ${ CONFIG.controlBoxShadowFocus };
|
|
49
|
+
outline: none;
|
|
50
|
+
z-index: 1;
|
|
51
|
+
}
|
|
52
|
+
`;
|
|
53
|
+
};
|
|
48
54
|
|
|
49
55
|
export const toggleGroupControlSize = (
|
|
50
56
|
size: NonNullable< ToggleGroupControlProps[ 'size' ] >
|
|
@@ -92,7 +92,8 @@ export type ToggleGroupControlProps = Pick<
|
|
|
92
92
|
*/
|
|
93
93
|
isAdaptiveWidth?: boolean;
|
|
94
94
|
/**
|
|
95
|
-
* Renders `ToggleGroupControl` as a (CSS) block element
|
|
95
|
+
* Renders `ToggleGroupControl` as a (CSS) block element, spanning the entire width of
|
|
96
|
+
* the available space. This is the recommended style when the options are text-based and not icons.
|
|
96
97
|
*
|
|
97
98
|
* @default false
|
|
98
99
|
*/
|
|
@@ -108,11 +108,15 @@ export function useToolsPanelItem(
|
|
|
108
108
|
const menuGroup = isShownByDefault ? 'default' : 'optional';
|
|
109
109
|
const isMenuItemChecked = menuItems?.[ menuGroup ]?.[ label ];
|
|
110
110
|
const wasMenuItemChecked = usePrevious( isMenuItemChecked );
|
|
111
|
+
const isRegistered = menuItems?.[ menuGroup ]?.[ label ] !== undefined;
|
|
111
112
|
|
|
112
113
|
// Determine if the panel item's corresponding menu is being toggled and
|
|
113
114
|
// trigger appropriate callback if it is.
|
|
114
115
|
useEffect( () => {
|
|
115
|
-
|
|
116
|
+
// We check whether this item is currently registered as items rendered
|
|
117
|
+
// via fills can persist through the parent panel being remounted.
|
|
118
|
+
// See: https://github.com/WordPress/gutenberg/pull/45673
|
|
119
|
+
if ( ! isRegistered || isResetting || ! hasMatchingPanel ) {
|
|
116
120
|
return;
|
|
117
121
|
}
|
|
118
122
|
|
|
@@ -126,6 +130,7 @@ export function useToolsPanelItem(
|
|
|
126
130
|
}, [
|
|
127
131
|
hasMatchingPanel,
|
|
128
132
|
isMenuItemChecked,
|
|
133
|
+
isRegistered,
|
|
129
134
|
isResetting,
|
|
130
135
|
isValueSet,
|
|
131
136
|
wasMenuItemChecked,
|
|
@@ -97,7 +97,7 @@ describe( 'TreeGrid', () => {
|
|
|
97
97
|
);
|
|
98
98
|
|
|
99
99
|
screen.getByText( 'Row 1' ).focus();
|
|
100
|
-
const row1Element = screen.
|
|
100
|
+
const row1Element = screen.getByRole( 'row', { name: 'Row 1' } );
|
|
101
101
|
|
|
102
102
|
fireEvent.keyDown( screen.getByText( 'Row 1' ), {
|
|
103
103
|
key: 'ArrowRight',
|
|
@@ -149,7 +149,7 @@ describe( 'TreeGrid', () => {
|
|
|
149
149
|
);
|
|
150
150
|
|
|
151
151
|
screen.getByText( 'Row 1' ).focus();
|
|
152
|
-
const row1Element = screen.
|
|
152
|
+
const row1Element = screen.getByRole( 'row', { name: 'Row 1' } );
|
|
153
153
|
|
|
154
154
|
fireEvent.keyDown( screen.getByText( 'Row 1' ), {
|
|
155
155
|
key: 'ArrowLeft',
|
|
@@ -188,8 +188,8 @@ describe( 'TreeGrid', () => {
|
|
|
188
188
|
|
|
189
189
|
screen.getByText( 'Row 2' ).focus();
|
|
190
190
|
|
|
191
|
-
const row2Element = screen.
|
|
192
|
-
const row3Element = screen.
|
|
191
|
+
const row2Element = screen.getByRole( 'row', { name: 'Row 2' } );
|
|
192
|
+
const row3Element = screen.getByRole( 'row', { name: 'Row 3' } );
|
|
193
193
|
|
|
194
194
|
fireEvent.keyDown( screen.getByText( 'Row 2' ), {
|
|
195
195
|
key: 'ArrowDown',
|
|
@@ -210,8 +210,8 @@ describe( 'TreeGrid', () => {
|
|
|
210
210
|
|
|
211
211
|
screen.getByText( 'Row 1' ).focus();
|
|
212
212
|
|
|
213
|
-
const row1Element = screen.
|
|
214
|
-
const row3Element = screen.
|
|
213
|
+
const row1Element = screen.getByRole( 'row', { name: 'Row 1' } );
|
|
214
|
+
const row3Element = screen.getByRole( 'row', { name: 'Row 3' } );
|
|
215
215
|
|
|
216
216
|
fireEvent.keyDown( screen.getByText( 'Row 1' ), {
|
|
217
217
|
key: 'End',
|
|
@@ -232,8 +232,8 @@ describe( 'TreeGrid', () => {
|
|
|
232
232
|
|
|
233
233
|
screen.getByText( 'Row 2' ).focus();
|
|
234
234
|
|
|
235
|
-
const row2Element = screen.
|
|
236
|
-
const row1Element = screen.
|
|
235
|
+
const row2Element = screen.getByRole( 'row', { name: 'Row 2' } );
|
|
236
|
+
const row1Element = screen.getByRole( 'row', { name: 'Row 1' } );
|
|
237
237
|
|
|
238
238
|
fireEvent.keyDown( screen.getByText( 'Row 2' ), {
|
|
239
239
|
key: 'ArrowUp',
|
|
@@ -254,8 +254,8 @@ describe( 'TreeGrid', () => {
|
|
|
254
254
|
|
|
255
255
|
screen.getByText( 'Row 3' ).focus();
|
|
256
256
|
|
|
257
|
-
const row3Element = screen.
|
|
258
|
-
const row1Element = screen.
|
|
257
|
+
const row3Element = screen.getByRole( 'row', { name: 'Row 3' } );
|
|
258
|
+
const row1Element = screen.getByRole( 'row', { name: 'Row 1' } );
|
|
259
259
|
|
|
260
260
|
fireEvent.keyDown( screen.getByText( 'Row 3' ), {
|
|
261
261
|
key: 'Home',
|
|
@@ -276,8 +276,8 @@ describe( 'TreeGrid', () => {
|
|
|
276
276
|
|
|
277
277
|
screen.getByText( 'Row 2' ).focus();
|
|
278
278
|
|
|
279
|
-
const row2Element = screen.
|
|
280
|
-
const row1Element = screen.
|
|
279
|
+
const row2Element = screen.getByRole( 'row', { name: 'Row 2' } );
|
|
280
|
+
const row1Element = screen.getByRole( 'row', { name: 'Row 1' } );
|
|
281
281
|
|
|
282
282
|
fireEvent.keyDown( screen.getByText( 'Row 2' ), {
|
|
283
283
|
key: 'ArrowUp',
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import { render } from '@testing-library/react';
|
|
4
|
+
import { render, screen } from '@testing-library/react';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Internal dependencies
|
|
@@ -10,34 +10,34 @@ import { Truncate } from '..';
|
|
|
10
10
|
|
|
11
11
|
describe( 'props', () => {
|
|
12
12
|
test( 'should render correctly', () => {
|
|
13
|
-
|
|
14
|
-
expect(
|
|
13
|
+
render( <Truncate>Lorem ipsum.</Truncate> );
|
|
14
|
+
expect( screen.getByText( 'Lorem ipsum.' ) ).toBeVisible();
|
|
15
15
|
} );
|
|
16
16
|
|
|
17
17
|
test( 'should render limit', () => {
|
|
18
|
-
|
|
18
|
+
render(
|
|
19
19
|
<Truncate limit={ 1 } ellipsizeMode="tail">
|
|
20
20
|
Lorem ipsum.
|
|
21
21
|
</Truncate>
|
|
22
22
|
);
|
|
23
|
-
expect(
|
|
23
|
+
expect( screen.getByText( 'L…' ) ).toBeVisible();
|
|
24
24
|
} );
|
|
25
25
|
|
|
26
26
|
test( 'should render custom ellipsis', () => {
|
|
27
|
-
|
|
27
|
+
render(
|
|
28
28
|
<Truncate ellipsis="!!!" limit={ 5 } ellipsizeMode="tail">
|
|
29
29
|
Lorem ipsum.
|
|
30
30
|
</Truncate>
|
|
31
31
|
);
|
|
32
|
-
expect(
|
|
32
|
+
expect( screen.getByText( 'Lorem!!!' ) ).toBeVisible();
|
|
33
33
|
} );
|
|
34
34
|
|
|
35
35
|
test( 'should render custom ellipsizeMode', () => {
|
|
36
|
-
|
|
36
|
+
render(
|
|
37
37
|
<Truncate ellipsis="!!!" ellipsizeMode="middle" limit={ 5 }>
|
|
38
38
|
Lorem ipsum.
|
|
39
39
|
</Truncate>
|
|
40
40
|
);
|
|
41
|
-
expect(
|
|
41
|
+
expect( screen.getByText( 'Lo!!!m.' ) ).toBeVisible();
|
|
42
42
|
} );
|
|
43
43
|
} );
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import { render } from '@testing-library/react';
|
|
4
|
+
import { render, screen } from '@testing-library/react';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Internal dependencies
|
|
@@ -20,44 +20,43 @@ const TextInput = ( { id: idProp, ...props } ) => {
|
|
|
20
20
|
/* eslint-disable no-restricted-syntax */
|
|
21
21
|
describe( 'props', () => {
|
|
22
22
|
test( 'should render correctly', () => {
|
|
23
|
-
|
|
23
|
+
render(
|
|
24
24
|
<FormGroup id="fname" label="First name">
|
|
25
25
|
<TextInput />
|
|
26
26
|
</FormGroup>
|
|
27
27
|
);
|
|
28
28
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
const input = container.querySelector( 'input' );
|
|
34
|
-
expect( input ).toHaveAttribute( 'id', 'fname' );
|
|
29
|
+
expect(
|
|
30
|
+
screen.getByRole( 'textbox', { name: 'First name' } )
|
|
31
|
+
).toBeVisible();
|
|
35
32
|
} );
|
|
36
33
|
|
|
37
34
|
test( 'should render label without prop correctly', () => {
|
|
38
|
-
|
|
35
|
+
render(
|
|
39
36
|
<FormGroup id="fname">
|
|
40
37
|
<ControlLabel htmlFor="fname">First name</ControlLabel>
|
|
41
38
|
<TextInput />
|
|
42
39
|
</FormGroup>
|
|
43
40
|
);
|
|
44
41
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
42
|
+
expect(
|
|
43
|
+
screen.getByRole( 'textbox', { name: 'First name' } )
|
|
44
|
+
).toBeVisible();
|
|
48
45
|
} );
|
|
49
46
|
|
|
50
47
|
test( 'should render labelHidden', () => {
|
|
51
|
-
|
|
48
|
+
render(
|
|
52
49
|
<FormGroup labelHidden id="fname" label="First name">
|
|
53
50
|
<TextInput />
|
|
54
51
|
</FormGroup>
|
|
55
52
|
);
|
|
56
53
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
expect(
|
|
54
|
+
expect(
|
|
55
|
+
screen.getByRole( 'textbox', { name: 'First name' } )
|
|
56
|
+
).toBeVisible();
|
|
57
|
+
expect( screen.getByText( 'First name' ) ).toHaveClass(
|
|
58
|
+
'components-visually-hidden'
|
|
59
|
+
);
|
|
61
60
|
} );
|
|
62
61
|
|
|
63
62
|
test( 'should render alignLabel', () => {
|