@wordpress/components 23.2.0 → 23.3.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 +35 -1
- package/CONTRIBUTING.md +1 -1
- package/build/alignment-matrix-control/utils.js +2 -2
- package/build/alignment-matrix-control/utils.js.map +1 -1
- package/build/autocomplete/autocompleter-ui.js +1 -3
- package/build/autocomplete/autocompleter-ui.js.map +1 -1
- package/build/border-box-control/border-box-control-linked-button/component.js.map +1 -1
- package/build/border-box-control/border-box-control-linked-button/hook.js.map +1 -1
- package/build/border-control/border-control-dropdown/component.js +8 -4
- package/build/border-control/border-control-dropdown/component.js.map +1 -1
- package/build/button/deprecated.js +8 -6
- package/build/button/deprecated.js.map +1 -1
- package/build/button/index.js +52 -23
- package/build/button/index.js.map +1 -1
- package/build/button/types.js +6 -0
- package/build/button/types.js.map +1 -0
- package/build/color-list-picker/index.js.map +1 -1
- package/build/color-list-picker/types.js +6 -0
- package/build/color-list-picker/types.js.map +1 -0
- package/build/color-palette/index.js +9 -61
- package/build/color-palette/index.js.map +1 -1
- package/build/color-palette/index.native.js +24 -9
- package/build/color-palette/index.native.js.map +1 -1
- package/build/color-palette/utils.js +103 -0
- package/build/color-palette/utils.js.map +1 -0
- package/build/custom-gradient-picker/gradient-bar/utils.js +1 -1
- package/build/custom-gradient-picker/gradient-bar/utils.js.map +1 -1
- package/build/date-time/date/index.js.map +1 -1
- package/build/dropdown/index.js +20 -8
- package/build/dropdown/index.js.map +1 -1
- package/build/form-token-field/token.js +1 -1
- package/build/form-token-field/token.js.map +1 -1
- package/build/gradient-picker/index.js +9 -1
- package/build/gradient-picker/index.js.map +1 -1
- package/build/h-stack/component.js +0 -1
- package/build/h-stack/component.js.map +1 -1
- package/build/input-control/input-field.js +4 -2
- package/build/input-control/input-field.js.map +1 -1
- package/build/keyboard-shortcuts/index.js +44 -16
- package/build/keyboard-shortcuts/index.js.map +1 -1
- package/build/keyboard-shortcuts/types.js +6 -0
- package/build/keyboard-shortcuts/types.js.map +1 -0
- package/build/modal/index.js +1 -1
- package/build/modal/index.js.map +1 -1
- package/build/notice/index.js +16 -18
- package/build/notice/index.js.map +1 -1
- package/build/notice/list.js +23 -8
- package/build/notice/list.js.map +1 -1
- package/build/notice/types.js +6 -0
- package/build/notice/types.js.map +1 -0
- package/build/number-control/index.js +1 -1
- package/build/number-control/index.js.map +1 -1
- package/build/query-controls/author-select.js +7 -3
- package/build/query-controls/author-select.js.map +1 -1
- package/build/query-controls/category-select.js +7 -3
- package/build/query-controls/category-select.js.map +1 -1
- package/build/query-controls/index.js +68 -20
- package/build/query-controls/index.js.map +1 -1
- package/build/query-controls/terms.js +4 -3
- package/build/query-controls/terms.js.map +1 -1
- package/build/query-controls/types.js +6 -0
- package/build/query-controls/types.js.map +1 -0
- package/build/slot-fill/bubbles-virtually/fill.js +1 -0
- package/build/slot-fill/bubbles-virtually/fill.js.map +1 -1
- package/build/slot-fill/slot.js +1 -0
- package/build/slot-fill/slot.js.map +1 -1
- package/build/slot-fill/use-slot.js +1 -11
- package/build/slot-fill/use-slot.js.map +1 -1
- package/build/snackbar/index.js.map +1 -1
- package/build/snackbar/list.js.map +1 -1
- package/build/tab-panel/index.js +36 -8
- package/build/tab-panel/index.js.map +1 -1
- package/build/tree-grid/index.js +1 -1
- package/build/tree-grid/index.js.map +1 -1
- package/build/tree-select/index.js +2 -6
- package/build/tree-select/index.js.map +1 -1
- package/build-module/alignment-matrix-control/utils.js +2 -2
- package/build-module/alignment-matrix-control/utils.js.map +1 -1
- package/build-module/autocomplete/autocompleter-ui.js +1 -2
- package/build-module/autocomplete/autocompleter-ui.js.map +1 -1
- package/build-module/border-box-control/border-box-control-linked-button/component.js.map +1 -1
- package/build-module/border-box-control/border-box-control-linked-button/hook.js.map +1 -1
- package/build-module/border-control/border-control-dropdown/component.js +7 -4
- package/build-module/border-control/border-control-dropdown/component.js.map +1 -1
- package/build-module/button/deprecated.js +8 -5
- package/build-module/button/deprecated.js.map +1 -1
- package/build-module/button/index.js +51 -22
- package/build-module/button/index.js.map +1 -1
- package/build-module/button/types.js +2 -0
- package/build-module/button/types.js.map +1 -0
- package/build-module/color-list-picker/index.js.map +1 -1
- package/build-module/color-list-picker/types.js +2 -0
- package/build-module/color-list-picker/types.js.map +1 -0
- package/build-module/color-palette/index.js +7 -54
- package/build-module/color-palette/index.js.map +1 -1
- package/build-module/color-palette/index.native.js +24 -8
- package/build-module/color-palette/index.native.js.map +1 -1
- package/build-module/color-palette/utils.js +79 -0
- package/build-module/color-palette/utils.js.map +1 -0
- package/build-module/custom-gradient-picker/gradient-bar/utils.js +1 -1
- package/build-module/custom-gradient-picker/gradient-bar/utils.js.map +1 -1
- package/build-module/date-time/date/index.js +1 -1
- package/build-module/date-time/date/index.js.map +1 -1
- package/build-module/dropdown/index.js +19 -8
- package/build-module/dropdown/index.js.map +1 -1
- package/build-module/form-token-field/token.js +1 -1
- package/build-module/form-token-field/token.js.map +1 -1
- package/build-module/gradient-picker/index.js +9 -2
- package/build-module/gradient-picker/index.js.map +1 -1
- package/build-module/h-stack/component.js +0 -1
- package/build-module/h-stack/component.js.map +1 -1
- package/build-module/input-control/input-field.js +4 -2
- package/build-module/input-control/input-field.js.map +1 -1
- package/build-module/keyboard-shortcuts/index.js +48 -16
- package/build-module/keyboard-shortcuts/index.js.map +1 -1
- package/build-module/keyboard-shortcuts/types.js +2 -0
- package/build-module/keyboard-shortcuts/types.js.map +1 -0
- package/build-module/modal/index.js +1 -1
- package/build-module/modal/index.js.map +1 -1
- package/build-module/notice/index.js +14 -15
- package/build-module/notice/index.js.map +1 -1
- package/build-module/notice/list.js +23 -8
- package/build-module/notice/list.js.map +1 -1
- package/build-module/notice/types.js +2 -0
- package/build-module/notice/types.js.map +1 -0
- package/build-module/number-control/index.js +1 -1
- package/build-module/number-control/index.js.map +1 -1
- package/build-module/query-controls/author-select.js +7 -3
- package/build-module/query-controls/author-select.js.map +1 -1
- package/build-module/query-controls/category-select.js +8 -4
- package/build-module/query-controls/category-select.js.map +1 -1
- package/build-module/query-controls/index.js +64 -20
- package/build-module/query-controls/index.js.map +1 -1
- package/build-module/query-controls/terms.js +8 -4
- package/build-module/query-controls/terms.js.map +1 -1
- package/build-module/query-controls/types.js +2 -0
- package/build-module/query-controls/types.js.map +1 -0
- package/build-module/slot-fill/bubbles-virtually/fill.js +1 -0
- package/build-module/slot-fill/bubbles-virtually/fill.js.map +1 -1
- package/build-module/slot-fill/slot.js +1 -0
- package/build-module/slot-fill/slot.js.map +1 -1
- package/build-module/slot-fill/use-slot.js +2 -12
- package/build-module/slot-fill/use-slot.js.map +1 -1
- package/build-module/snackbar/index.js.map +1 -1
- package/build-module/snackbar/list.js.map +1 -1
- package/build-module/tab-panel/index.js +36 -8
- package/build-module/tab-panel/index.js.map +1 -1
- package/build-module/tree-grid/index.js +1 -1
- package/build-module/tree-grid/index.js.map +1 -1
- package/build-module/tree-select/index.js +2 -6
- package/build-module/tree-select/index.js.map +1 -1
- package/build-style/style-rtl.css +5 -0
- package/build-style/style.css +5 -0
- package/build-types/border-box-control/border-box-control/hook.d.ts +1 -1
- package/build-types/border-box-control/border-box-control-linked-button/component.d.ts +1 -1
- package/build-types/border-box-control/border-box-control-linked-button/hook.d.ts +171 -160
- package/build-types/border-box-control/border-box-control-linked-button/hook.d.ts.map +1 -1
- package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts +1 -1
- package/build-types/border-control/border-control/hook.d.ts +1 -1
- 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 +1 -1
- package/build-types/button/deprecated.d.ts +143 -7
- package/build-types/button/deprecated.d.ts.map +1 -1
- package/build-types/button/index.d.ts +20 -3
- package/build-types/button/index.d.ts.map +1 -1
- package/build-types/button/stories/index.d.ts +20 -0
- package/build-types/button/stories/index.d.ts.map +1 -0
- package/build-types/button/test/index.d.ts +2 -0
- package/build-types/button/test/index.d.ts.map +1 -0
- package/build-types/button/types.d.ts +134 -0
- package/build-types/button/types.d.ts.map +1 -0
- package/build-types/color-list-picker/index.d.ts +5 -0
- package/build-types/color-list-picker/index.d.ts.map +1 -0
- package/build-types/color-list-picker/types.d.ts +42 -0
- package/build-types/color-list-picker/types.d.ts.map +1 -0
- package/build-types/color-palette/index.d.ts +2 -4
- package/build-types/color-palette/index.d.ts.map +1 -1
- package/build-types/color-palette/stories/index.d.ts +2 -2
- package/build-types/color-palette/styles.d.ts +1 -1
- package/build-types/color-palette/types.d.ts +1 -1
- package/build-types/color-palette/types.d.ts.map +1 -1
- package/build-types/color-palette/utils.d.ts +14 -0
- package/build-types/color-palette/utils.d.ts.map +1 -0
- package/build-types/color-picker/styles.d.ts +2 -2
- package/build-types/date-time/date/index.d.ts.map +1 -1
- package/build-types/date-time/date/styles.d.ts +3 -3
- package/build-types/dropdown/index.d.ts +4 -4
- package/build-types/dropdown/index.d.ts.map +1 -1
- package/build-types/dropdown/stories/index.d.ts.map +1 -1
- package/build-types/dropdown/types.d.ts +9 -10
- package/build-types/dropdown/types.d.ts.map +1 -1
- package/build-types/font-size-picker/styles.d.ts +2 -2
- package/build-types/h-stack/component.d.ts +0 -1
- package/build-types/h-stack/component.d.ts.map +1 -1
- package/build-types/input-control/input-field.d.ts.map +1 -1
- package/build-types/keyboard-shortcuts/index.d.ts +38 -0
- package/build-types/keyboard-shortcuts/index.d.ts.map +1 -0
- package/build-types/keyboard-shortcuts/stories/index.d.ts +12 -0
- package/build-types/keyboard-shortcuts/stories/index.d.ts.map +1 -0
- package/build-types/keyboard-shortcuts/test/index.d.ts +2 -0
- package/build-types/keyboard-shortcuts/test/index.d.ts.map +1 -0
- package/build-types/keyboard-shortcuts/types.d.ts +48 -0
- package/build-types/keyboard-shortcuts/types.d.ts.map +1 -0
- package/build-types/modal/index.d.ts.map +1 -1
- package/build-types/navigator/navigator-back-button/component.d.ts +1 -1
- package/build-types/navigator/navigator-back-button/hook.d.ts +2 -2
- package/build-types/navigator/navigator-button/component.d.ts +1 -1
- package/build-types/navigator/navigator-button/hook.d.ts +2 -2
- package/build-types/notice/index.d.ts +16 -0
- package/build-types/notice/index.d.ts.map +1 -0
- package/build-types/notice/list.d.ts +32 -0
- package/build-types/notice/list.d.ts.map +1 -0
- package/build-types/notice/stories/index.d.ts +17 -0
- package/build-types/notice/stories/index.d.ts.map +1 -0
- package/build-types/notice/test/index.d.ts +2 -0
- package/build-types/notice/test/index.d.ts.map +1 -0
- package/build-types/notice/test/list.d.ts +2 -0
- package/build-types/notice/test/list.d.ts.map +1 -0
- package/build-types/notice/types.d.ts +128 -0
- package/build-types/notice/types.d.ts.map +1 -0
- package/build-types/number-control/styles/number-control-styles.d.ts +2 -2
- package/build-types/number-control/styles/number-control-styles.d.ts.map +1 -1
- package/build-types/placeholder/stories/index.d.ts.map +1 -1
- package/build-types/query-controls/author-select.d.ts +4 -0
- package/build-types/query-controls/author-select.d.ts.map +1 -0
- package/build-types/query-controls/category-select.d.ts +4 -0
- package/build-types/query-controls/category-select.d.ts.map +1 -0
- package/build-types/query-controls/index.d.ts +30 -0
- package/build-types/query-controls/index.d.ts.map +1 -0
- package/build-types/query-controls/stories/index.d.ts +13 -0
- package/build-types/query-controls/stories/index.d.ts.map +1 -0
- package/build-types/query-controls/terms.d.ts +13 -0
- package/build-types/query-controls/terms.d.ts.map +1 -0
- package/build-types/query-controls/test/terms.d.ts +2 -0
- package/build-types/query-controls/test/terms.d.ts.map +1 -0
- package/build-types/query-controls/types.d.ts +131 -0
- package/build-types/query-controls/types.d.ts.map +1 -0
- package/build-types/range-control/index.d.ts +1 -1
- package/build-types/slot-fill/bubbles-virtually/fill.d.ts.map +1 -1
- package/build-types/slot-fill/use-slot.d.ts.map +1 -1
- package/build-types/snackbar/index.d.ts +9 -2
- package/build-types/snackbar/index.d.ts.map +1 -1
- package/build-types/snackbar/list.d.ts.map +1 -1
- package/build-types/snackbar/types.d.ts +15 -88
- package/build-types/snackbar/types.d.ts.map +1 -1
- package/build-types/tab-panel/index.d.ts.map +1 -1
- package/build-types/tab-panel/types.d.ts +1 -1
- package/build-types/tab-panel/types.d.ts.map +1 -1
- package/build-types/toggle-group-control/stories/index.d.ts.map +1 -1
- package/build-types/tree-select/index.d.ts.map +1 -1
- package/build-types/ui/form-group/form-group.d.ts +2 -2
- package/package.json +18 -17
- package/src/alignment-matrix-control/utils.tsx +2 -2
- package/src/autocomplete/autocompleter-ui.js +1 -2
- package/src/autocomplete/test/index.js +1 -5
- package/src/border-box-control/border-box-control-linked-button/component.tsx +1 -1
- package/src/border-box-control/border-box-control-linked-button/hook.ts +1 -1
- package/src/border-control/border-control-dropdown/component.tsx +9 -8
- package/src/box-control/test/index.js +11 -35
- package/src/button/README.md +49 -55
- package/src/button/{deprecated.js → deprecated.tsx} +19 -4
- package/src/button/{index.js → index.tsx} +95 -34
- package/src/button/stories/index.tsx +106 -0
- package/src/button/style.scss +3 -2
- package/src/button/test/{index.js → index.tsx} +30 -7
- package/src/button/types.ts +138 -0
- package/src/checkbox-control/test/index.tsx +1 -5
- package/src/color-list-picker/{index.js → index.tsx} +3 -2
- package/src/color-list-picker/types.ts +46 -0
- package/src/color-palette/README.md +1 -1
- package/src/color-palette/index.native.js +11 -4
- package/src/color-palette/index.tsx +11 -67
- package/src/color-palette/test/index.tsx +4 -14
- package/src/color-palette/test/utils.ts +1 -1
- package/src/color-palette/types.ts +1 -1
- package/src/color-palette/utils.ts +98 -0
- package/src/color-picker/test/index.js +6 -15
- package/src/combobox-control/test/index.js +1 -6
- package/src/confirm-dialog/test/index.js +9 -29
- package/src/custom-gradient-picker/gradient-bar/utils.js +1 -1
- package/src/date-time/date/index.tsx +2 -1
- package/src/date-time/date/test/index.tsx +2 -8
- package/src/date-time/time/test/index.tsx +9 -29
- package/src/dimension-control/test/index.test.js +2 -8
- package/src/disabled/test/index.tsx +1 -5
- package/src/draggable/test/index.native.js +4 -4
- package/src/dropdown/README.md +1 -8
- package/src/dropdown/index.tsx +17 -6
- package/src/dropdown/stories/index.tsx +3 -3
- package/src/dropdown/test/index.tsx +2 -8
- package/src/dropdown/types.ts +9 -10
- package/src/dropdown-menu/README.md +1 -1
- package/src/dropdown-menu/stories/index.js +96 -27
- package/src/dropdown-menu/test/index.js +2 -8
- package/src/external-link/test/index.tsx +1 -6
- package/src/focal-point-picker/test/index.js +3 -11
- package/src/font-size-picker/test/index.tsx +14 -44
- package/src/form-file-upload/test/index.tsx +2 -17
- package/src/form-toggle/test/index.tsx +1 -5
- package/src/form-token-field/test/index.tsx +80 -163
- package/src/form-token-field/token.tsx +1 -1
- package/src/gradient-picker/index.js +15 -4
- package/src/guide/test/index.js +5 -17
- package/src/h-stack/component.tsx +0 -1
- package/src/higher-order/with-filters/test/index.js +24 -24
- package/src/higher-order/with-focus-outside/test/index.js +11 -25
- package/src/higher-order/with-focus-return/test/index.js +1 -5
- package/src/input-control/input-field.tsx +3 -1
- package/src/input-control/test/index.js +1 -6
- package/src/isolated-event-container/test/index.js +2 -8
- package/src/keyboard-shortcuts/README.md +1 -1
- package/src/keyboard-shortcuts/index.tsx +93 -0
- package/src/keyboard-shortcuts/stories/index.tsx +60 -0
- package/src/keyboard-shortcuts/test/{index.js → index.tsx} +16 -6
- package/src/keyboard-shortcuts/types.ts +51 -0
- package/src/modal/index.tsx +1 -2
- package/src/navigable-container/test/navigable-menu.js +5 -17
- package/src/navigable-container/test/tababble-container.js +3 -11
- package/src/navigation/test/index.js +3 -11
- package/src/navigator/test/index.tsx +6 -20
- package/src/notice/README.md +89 -42
- package/src/notice/{index.js → index.tsx} +28 -20
- package/src/notice/list.tsx +72 -0
- package/src/notice/stories/index.tsx +119 -0
- package/src/notice/test/__snapshots__/{index.js.snap → index.tsx.snap} +0 -0
- package/src/notice/test/{index.js → index.tsx} +7 -4
- package/src/notice/test/{list.js → list.tsx} +0 -0
- package/src/notice/types.ts +136 -0
- package/src/number-control/index.tsx +1 -1
- package/src/number-control/test/index.tsx +28 -86
- package/src/panel/test/body.js +2 -8
- package/src/placeholder/stories/index.tsx +1 -0
- package/src/query-controls/README.md +56 -56
- package/src/query-controls/author-select.tsx +37 -0
- package/src/query-controls/category-select.tsx +46 -0
- package/src/query-controls/index.tsx +192 -0
- package/src/query-controls/stories/index.tsx +205 -0
- package/src/query-controls/terms.ts +57 -0
- package/src/query-controls/test/{terms.js → terms.ts} +36 -20
- package/src/query-controls/types.ts +150 -0
- package/src/select-control/test/select-control.tsx +1 -6
- package/src/slot-fill/bubbles-virtually/fill.js +1 -0
- package/src/slot-fill/slot.js +1 -1
- package/src/slot-fill/use-slot.js +6 -16
- package/src/snackbar/index.tsx +6 -5
- package/src/snackbar/list.tsx +4 -2
- package/src/snackbar/types.ts +18 -92
- package/src/tab-panel/index.tsx +38 -16
- package/src/tab-panel/style.scss +8 -0
- package/src/tab-panel/test/index.tsx +35 -7
- package/src/tab-panel/types.ts +1 -1
- package/src/theme/test/index.tsx +4 -4
- package/src/toggle-group-control/stories/index.tsx +1 -0
- package/src/toggle-group-control/test/index.tsx +7 -23
- package/src/toolbar/stories/index.js +75 -72
- package/src/tools-panel/stories/index.js +3 -0
- package/src/tools-panel/test/index.js +1 -1
- package/src/tree-grid/index.js +1 -1
- package/src/tree-select/index.tsx +3 -6
- package/src/ui/context/test/context-connect.tsx +2 -0
- package/src/ui/context/test/wordpress-component.tsx +2 -0
- package/src/unit-control/test/index.tsx +21 -74
- package/src/utils/hooks/test/use-latest-ref.js +15 -18
- package/tsconfig.json +1 -4
- package/tsconfig.tsbuildinfo +1 -1
- package/build-types/radio-context/index.d.ts +0 -6
- package/build-types/radio-context/index.d.ts.map +0 -1
- package/src/button/stories/index.js +0 -179
- package/src/keyboard-shortcuts/index.js +0 -56
- package/src/notice/list.js +0 -48
- package/src/notice/stories/index.js +0 -46
- package/src/query-controls/author-select.js +0 -23
- package/src/query-controls/category-select.js +0 -31
- package/src/query-controls/index.js +0 -122
- package/src/query-controls/terms.js +0 -40
- package/src/toolbar/stories/toolbar-button.js +0 -32
- package/src/toolbar/stories/toolbar-group.js +0 -33
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import { render, fireEvent } from '@testing-library/react';
|
|
4
|
+
import { render, fireEvent, waitFor } from '@testing-library/react';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Internal dependencies
|
|
8
8
|
*/
|
|
9
9
|
import { ColorPicker } from '..';
|
|
10
10
|
|
|
11
|
-
jest.useFakeTimers();
|
|
12
|
-
|
|
13
11
|
/**
|
|
14
12
|
* Ordinarily we'd try to select the compnoent by role but the silder role appears
|
|
15
13
|
* on several elements and we'd end up encoding assumptions about order when
|
|
@@ -43,12 +41,6 @@ function moveReactColorfulSlider( sliderElement, from, to ) {
|
|
|
43
41
|
fireEvent( sliderElement, new FakeMouseEvent( 'mousemove', to ) );
|
|
44
42
|
}
|
|
45
43
|
|
|
46
|
-
const sleep = ( ms ) => {
|
|
47
|
-
const promise = new Promise( ( resolve ) => setTimeout( resolve, ms ) );
|
|
48
|
-
jest.advanceTimersByTime( ms + 1 );
|
|
49
|
-
return promise;
|
|
50
|
-
};
|
|
51
|
-
|
|
52
44
|
const hslaMatcher = expect.objectContaining( {
|
|
53
45
|
h: expect.any( Number ),
|
|
54
46
|
s: expect.any( Number ),
|
|
@@ -95,8 +87,9 @@ describe( 'ColorPicker', () => {
|
|
|
95
87
|
{ pageX: 10, pageY: 10 }
|
|
96
88
|
);
|
|
97
89
|
|
|
98
|
-
|
|
99
|
-
|
|
90
|
+
await waitFor( () =>
|
|
91
|
+
expect( onChangeComplete ).toHaveBeenCalled()
|
|
92
|
+
);
|
|
100
93
|
|
|
101
94
|
expect( onChangeComplete ).toHaveBeenCalledWith(
|
|
102
95
|
legacyColorMatcher
|
|
@@ -119,8 +112,7 @@ describe( 'ColorPicker', () => {
|
|
|
119
112
|
{ pageX: 10, pageY: 10 }
|
|
120
113
|
);
|
|
121
114
|
|
|
122
|
-
|
|
123
|
-
await sleep( 1 );
|
|
115
|
+
await waitFor( () => expect( onChange ).toHaveBeenCalled() );
|
|
124
116
|
|
|
125
117
|
expect( onChange ).toHaveBeenCalledWith(
|
|
126
118
|
expect.stringMatching( /^#([a-fA-F0-9]{8})$/ )
|
|
@@ -152,8 +144,7 @@ describe( 'ColorPicker', () => {
|
|
|
152
144
|
{ pageX: 10, pageY: 10 }
|
|
153
145
|
);
|
|
154
146
|
|
|
155
|
-
|
|
156
|
-
await sleep( 1 );
|
|
147
|
+
await waitFor( () => expect( onChange ).toHaveBeenCalled() );
|
|
157
148
|
|
|
158
149
|
expect( onChange ).toHaveBeenCalledWith(
|
|
159
150
|
expect.stringMatching( /^#([a-fA-F0-9]{6})$/ )
|
|
@@ -14,8 +14,6 @@ import { useState } from '@wordpress/element';
|
|
|
14
14
|
*/
|
|
15
15
|
import ComboboxControl from '../';
|
|
16
16
|
|
|
17
|
-
jest.useFakeTimers();
|
|
18
|
-
|
|
19
17
|
const timezones = [
|
|
20
18
|
{ label: 'Greenwich Mean Time', value: 'GMT' },
|
|
21
19
|
{ label: 'Universal Coordinated Time', value: 'UTC' },
|
|
@@ -56,10 +54,7 @@ const getInput = ( name ) => screen.getByRole( 'combobox', { name } );
|
|
|
56
54
|
const getOption = ( name ) => screen.getByRole( 'option', { name } );
|
|
57
55
|
const getAllOptions = () => screen.getAllByRole( 'option' );
|
|
58
56
|
const getOptionSearchString = ( option ) => option.label.substring( 0, 11 );
|
|
59
|
-
const setupUser = () =>
|
|
60
|
-
userEvent.setup( {
|
|
61
|
-
advanceTimers: jest.advanceTimersByTime,
|
|
62
|
-
} );
|
|
57
|
+
const setupUser = () => userEvent.setup();
|
|
63
58
|
|
|
64
59
|
const ControlledComboboxControl = ( {
|
|
65
60
|
value: valueProp,
|
|
@@ -15,8 +15,6 @@ import userEvent from '@testing-library/user-event';
|
|
|
15
15
|
*/
|
|
16
16
|
import { ConfirmDialog } from '..';
|
|
17
17
|
|
|
18
|
-
jest.useFakeTimers();
|
|
19
|
-
|
|
20
18
|
const noop = () => {};
|
|
21
19
|
|
|
22
20
|
describe( 'Confirm', () => {
|
|
@@ -82,9 +80,7 @@ describe( 'Confirm', () => {
|
|
|
82
80
|
} );
|
|
83
81
|
|
|
84
82
|
it( 'should not render if closed by clicking `OK`, and the `onConfirm` callback should be called', async () => {
|
|
85
|
-
const user = userEvent.setup(
|
|
86
|
-
advanceTimers: jest.advanceTimersByTime,
|
|
87
|
-
} );
|
|
83
|
+
const user = userEvent.setup();
|
|
88
84
|
|
|
89
85
|
const onConfirm = jest.fn().mockName( 'onConfirm()' );
|
|
90
86
|
|
|
@@ -104,9 +100,7 @@ describe( 'Confirm', () => {
|
|
|
104
100
|
} );
|
|
105
101
|
|
|
106
102
|
it( 'should not render if closed by clicking `Cancel`, and the `onCancel` callback should be called', async () => {
|
|
107
|
-
const user = userEvent.setup(
|
|
108
|
-
advanceTimers: jest.advanceTimersByTime,
|
|
109
|
-
} );
|
|
103
|
+
const user = userEvent.setup();
|
|
110
104
|
|
|
111
105
|
const onCancel = jest.fn().mockName( 'onCancel()' );
|
|
112
106
|
|
|
@@ -126,9 +120,7 @@ describe( 'Confirm', () => {
|
|
|
126
120
|
} );
|
|
127
121
|
|
|
128
122
|
it( 'should be dismissable even if an `onCancel` callback is not provided', async () => {
|
|
129
|
-
const user = userEvent.setup(
|
|
130
|
-
advanceTimers: jest.advanceTimersByTime,
|
|
131
|
-
} );
|
|
123
|
+
const user = userEvent.setup();
|
|
132
124
|
|
|
133
125
|
render(
|
|
134
126
|
<ConfirmDialog onConfirm={ noop }>
|
|
@@ -166,9 +158,7 @@ describe( 'Confirm', () => {
|
|
|
166
158
|
} );
|
|
167
159
|
|
|
168
160
|
it( 'should not render if dialog is closed by pressing `Escape`, and the `onCancel` callback should be called', async () => {
|
|
169
|
-
const user = userEvent.setup(
|
|
170
|
-
advanceTimers: jest.advanceTimersByTime,
|
|
171
|
-
} );
|
|
161
|
+
const user = userEvent.setup();
|
|
172
162
|
|
|
173
163
|
const onCancel = jest.fn().mockName( 'onCancel()' );
|
|
174
164
|
|
|
@@ -187,9 +177,7 @@ describe( 'Confirm', () => {
|
|
|
187
177
|
} );
|
|
188
178
|
|
|
189
179
|
it( 'should not render if dialog is closed by pressing `Enter`, and the `onConfirm` callback should be called', async () => {
|
|
190
|
-
const user = userEvent.setup(
|
|
191
|
-
advanceTimers: jest.advanceTimersByTime,
|
|
192
|
-
} );
|
|
180
|
+
const user = userEvent.setup();
|
|
193
181
|
|
|
194
182
|
const onConfirm = jest.fn().mockName( 'onConfirm()' );
|
|
195
183
|
|
|
@@ -245,9 +233,7 @@ describe( 'Confirm', () => {
|
|
|
245
233
|
} );
|
|
246
234
|
|
|
247
235
|
it( 'should call the `onConfirm` callback if `OK`', async () => {
|
|
248
|
-
const user = userEvent.setup(
|
|
249
|
-
advanceTimers: jest.advanceTimersByTime,
|
|
250
|
-
} );
|
|
236
|
+
const user = userEvent.setup();
|
|
251
237
|
|
|
252
238
|
const onConfirm = jest.fn().mockName( 'onConfirm()' );
|
|
253
239
|
|
|
@@ -265,9 +251,7 @@ describe( 'Confirm', () => {
|
|
|
265
251
|
} );
|
|
266
252
|
|
|
267
253
|
it( 'should call the `onCancel` callback if `Cancel` is clicked', async () => {
|
|
268
|
-
const user = userEvent.setup(
|
|
269
|
-
advanceTimers: jest.advanceTimersByTime,
|
|
270
|
-
} );
|
|
254
|
+
const user = userEvent.setup();
|
|
271
255
|
|
|
272
256
|
const onCancel = jest.fn().mockName( 'onCancel()' );
|
|
273
257
|
|
|
@@ -313,9 +297,7 @@ describe( 'Confirm', () => {
|
|
|
313
297
|
} );
|
|
314
298
|
|
|
315
299
|
it( 'should call the `onCancel` callback if the `Escape` key is pressed', async () => {
|
|
316
|
-
const user = userEvent.setup(
|
|
317
|
-
advanceTimers: jest.advanceTimersByTime,
|
|
318
|
-
} );
|
|
300
|
+
const user = userEvent.setup();
|
|
319
301
|
|
|
320
302
|
const onCancel = jest.fn().mockName( 'onCancel()' );
|
|
321
303
|
|
|
@@ -331,9 +313,7 @@ describe( 'Confirm', () => {
|
|
|
331
313
|
} );
|
|
332
314
|
|
|
333
315
|
it( 'should call the `onConfirm` callback if the `Enter` key is pressed', async () => {
|
|
334
|
-
const user = userEvent.setup(
|
|
335
|
-
advanceTimers: jest.advanceTimersByTime,
|
|
336
|
-
} );
|
|
316
|
+
const user = userEvent.setup();
|
|
337
317
|
|
|
338
318
|
const onConfirm = jest.fn().mockName( 'onConfirm()' );
|
|
339
319
|
|
|
@@ -170,7 +170,7 @@ export function updateControlPointColorByPosition(
|
|
|
170
170
|
* @param {number} mouseXCoordinate Horizontal coordinate of the mouse position.
|
|
171
171
|
* @param {Element} containerElement Container for the gradient picker.
|
|
172
172
|
*
|
|
173
|
-
* @return {number} Whole number percentage from the left.
|
|
173
|
+
* @return {number | undefined} Whole number percentage from the left.
|
|
174
174
|
*/
|
|
175
175
|
export function getHorizontalRelativeGradientPosition(
|
|
176
176
|
mouseXCoordinate,
|
|
@@ -16,6 +16,7 @@ import {
|
|
|
16
16
|
startOfWeek,
|
|
17
17
|
endOfWeek,
|
|
18
18
|
} from 'date-fns';
|
|
19
|
+
import type { KeyboardEventHandler } from 'react';
|
|
19
20
|
|
|
20
21
|
/**
|
|
21
22
|
* WordPress dependencies
|
|
@@ -273,7 +274,7 @@ type DayProps = {
|
|
|
273
274
|
numEvents: number;
|
|
274
275
|
isInvalid: boolean;
|
|
275
276
|
onClick: () => void;
|
|
276
|
-
onKeyDown:
|
|
277
|
+
onKeyDown: KeyboardEventHandler;
|
|
277
278
|
};
|
|
278
279
|
|
|
279
280
|
function Day( {
|
|
@@ -10,8 +10,6 @@ import userEvent from '@testing-library/user-event';
|
|
|
10
10
|
*/
|
|
11
11
|
import DatePicker from '..';
|
|
12
12
|
|
|
13
|
-
jest.useFakeTimers();
|
|
14
|
-
|
|
15
13
|
describe( 'DatePicker', () => {
|
|
16
14
|
it( 'should highlight the current date', () => {
|
|
17
15
|
render( <DatePicker currentDate="2022-05-02T11:00:00" /> );
|
|
@@ -33,9 +31,7 @@ describe( 'DatePicker', () => {
|
|
|
33
31
|
} );
|
|
34
32
|
|
|
35
33
|
it( 'should call onChange when a day is selected', async () => {
|
|
36
|
-
const user = userEvent.setup(
|
|
37
|
-
advanceTimers: jest.advanceTimersByTime,
|
|
38
|
-
} );
|
|
34
|
+
const user = userEvent.setup();
|
|
39
35
|
|
|
40
36
|
const onChange = jest.fn();
|
|
41
37
|
|
|
@@ -54,9 +50,7 @@ describe( 'DatePicker', () => {
|
|
|
54
50
|
} );
|
|
55
51
|
|
|
56
52
|
it( 'should call onMonthPreviewed and onChange when a day in a different month is selected', async () => {
|
|
57
|
-
const user = userEvent.setup(
|
|
58
|
-
advanceTimers: jest.advanceTimersByTime,
|
|
59
|
-
} );
|
|
53
|
+
const user = userEvent.setup();
|
|
60
54
|
|
|
61
55
|
const onMonthPreviewed = jest.fn();
|
|
62
56
|
const onChange = jest.fn();
|
|
@@ -9,13 +9,9 @@ import userEvent from '@testing-library/user-event';
|
|
|
9
9
|
*/
|
|
10
10
|
import TimePicker from '..';
|
|
11
11
|
|
|
12
|
-
jest.useFakeTimers();
|
|
13
|
-
|
|
14
12
|
describe( 'TimePicker', () => {
|
|
15
13
|
it( 'should call onChange with updated date values', async () => {
|
|
16
|
-
const user = userEvent.setup(
|
|
17
|
-
advanceTimers: jest.advanceTimersByTime,
|
|
18
|
-
} );
|
|
14
|
+
const user = userEvent.setup();
|
|
19
15
|
|
|
20
16
|
const onChangeSpy = jest.fn();
|
|
21
17
|
|
|
@@ -69,9 +65,7 @@ describe( 'TimePicker', () => {
|
|
|
69
65
|
} );
|
|
70
66
|
|
|
71
67
|
it( 'should call onChange with an updated hour (12-hour clock)', async () => {
|
|
72
|
-
const user = userEvent.setup(
|
|
73
|
-
advanceTimers: jest.advanceTimersByTime,
|
|
74
|
-
} );
|
|
68
|
+
const user = userEvent.setup();
|
|
75
69
|
|
|
76
70
|
const onChangeSpy = jest.fn();
|
|
77
71
|
|
|
@@ -93,9 +87,7 @@ describe( 'TimePicker', () => {
|
|
|
93
87
|
} );
|
|
94
88
|
|
|
95
89
|
it( 'should call onChange with a bounded hour (12-hour clock) if the hour is out of bounds', async () => {
|
|
96
|
-
const user = userEvent.setup(
|
|
97
|
-
advanceTimers: jest.advanceTimersByTime,
|
|
98
|
-
} );
|
|
90
|
+
const user = userEvent.setup();
|
|
99
91
|
|
|
100
92
|
const onChangeSpy = jest.fn();
|
|
101
93
|
|
|
@@ -117,9 +109,7 @@ describe( 'TimePicker', () => {
|
|
|
117
109
|
} );
|
|
118
110
|
|
|
119
111
|
it( 'should call onChange with an updated hour (24-hour clock)', async () => {
|
|
120
|
-
const user = userEvent.setup(
|
|
121
|
-
advanceTimers: jest.advanceTimersByTime,
|
|
122
|
-
} );
|
|
112
|
+
const user = userEvent.setup();
|
|
123
113
|
|
|
124
114
|
const onChangeSpy = jest.fn();
|
|
125
115
|
|
|
@@ -141,9 +131,7 @@ describe( 'TimePicker', () => {
|
|
|
141
131
|
} );
|
|
142
132
|
|
|
143
133
|
it( 'should call onChange with a bounded minute if out of bounds', async () => {
|
|
144
|
-
const user = userEvent.setup(
|
|
145
|
-
advanceTimers: jest.advanceTimersByTime,
|
|
146
|
-
} );
|
|
134
|
+
const user = userEvent.setup();
|
|
147
135
|
|
|
148
136
|
const onChangeSpy = jest.fn();
|
|
149
137
|
|
|
@@ -165,9 +153,7 @@ describe( 'TimePicker', () => {
|
|
|
165
153
|
} );
|
|
166
154
|
|
|
167
155
|
it( 'should switch to PM correctly', async () => {
|
|
168
|
-
const user = userEvent.setup(
|
|
169
|
-
advanceTimers: jest.advanceTimersByTime,
|
|
170
|
-
} );
|
|
156
|
+
const user = userEvent.setup();
|
|
171
157
|
|
|
172
158
|
const onChangeSpy = jest.fn();
|
|
173
159
|
|
|
@@ -187,9 +173,7 @@ describe( 'TimePicker', () => {
|
|
|
187
173
|
} );
|
|
188
174
|
|
|
189
175
|
it( 'should switch to AM correctly', async () => {
|
|
190
|
-
const user = userEvent.setup(
|
|
191
|
-
advanceTimers: jest.advanceTimersByTime,
|
|
192
|
-
} );
|
|
176
|
+
const user = userEvent.setup();
|
|
193
177
|
|
|
194
178
|
const onChangeSpy = jest.fn();
|
|
195
179
|
|
|
@@ -209,9 +193,7 @@ describe( 'TimePicker', () => {
|
|
|
209
193
|
} );
|
|
210
194
|
|
|
211
195
|
it( 'should allow to set the time correctly when the PM period is selected', async () => {
|
|
212
|
-
const user = userEvent.setup(
|
|
213
|
-
advanceTimers: jest.advanceTimersByTime,
|
|
214
|
-
} );
|
|
196
|
+
const user = userEvent.setup();
|
|
215
197
|
|
|
216
198
|
const onChangeSpy = jest.fn();
|
|
217
199
|
|
|
@@ -244,9 +226,7 @@ describe( 'TimePicker', () => {
|
|
|
244
226
|
} );
|
|
245
227
|
|
|
246
228
|
it( 'should truncate at the minutes on change', async () => {
|
|
247
|
-
const user = userEvent.setup(
|
|
248
|
-
advanceTimers: jest.advanceTimersByTime,
|
|
249
|
-
} );
|
|
229
|
+
const user = userEvent.setup();
|
|
250
230
|
|
|
251
231
|
const onChangeSpy = jest.fn();
|
|
252
232
|
|
|
@@ -14,8 +14,6 @@ import { plus } from '@wordpress/icons';
|
|
|
14
14
|
*/
|
|
15
15
|
import { DimensionControl } from '../';
|
|
16
16
|
|
|
17
|
-
jest.useFakeTimers();
|
|
18
|
-
|
|
19
17
|
describe( 'DimensionControl', () => {
|
|
20
18
|
const onChangeHandler = jest.fn();
|
|
21
19
|
const instanceId = 1;
|
|
@@ -90,9 +88,7 @@ describe( 'DimensionControl', () => {
|
|
|
90
88
|
|
|
91
89
|
describe( 'callbacks', () => {
|
|
92
90
|
it( 'should call onChange handler with correct args on size change', async () => {
|
|
93
|
-
const user = userEvent.setup(
|
|
94
|
-
advanceTimers: jest.advanceTimersByTime,
|
|
95
|
-
} );
|
|
91
|
+
const user = userEvent.setup();
|
|
96
92
|
|
|
97
93
|
render(
|
|
98
94
|
<DimensionControl
|
|
@@ -114,9 +110,7 @@ describe( 'DimensionControl', () => {
|
|
|
114
110
|
} );
|
|
115
111
|
|
|
116
112
|
it( 'should call onChange handler with undefined value when no size is provided on change', async () => {
|
|
117
|
-
const user = userEvent.setup(
|
|
118
|
-
advanceTimers: jest.advanceTimersByTime,
|
|
119
|
-
} );
|
|
113
|
+
const user = userEvent.setup();
|
|
120
114
|
|
|
121
115
|
render(
|
|
122
116
|
<DimensionControl
|
|
@@ -9,8 +9,6 @@ import { render, screen } from '@testing-library/react';
|
|
|
9
9
|
import Disabled from '../';
|
|
10
10
|
import userEvent from '@testing-library/user-event';
|
|
11
11
|
|
|
12
|
-
jest.useFakeTimers();
|
|
13
|
-
|
|
14
12
|
describe( 'Disabled', () => {
|
|
15
13
|
const Form = () => (
|
|
16
14
|
<form title="form">
|
|
@@ -75,9 +73,7 @@ describe( 'Disabled', () => {
|
|
|
75
73
|
} );
|
|
76
74
|
|
|
77
75
|
it( 'should preserve input values when toggling the isDisabled prop', async () => {
|
|
78
|
-
const user = userEvent.setup(
|
|
79
|
-
advanceTimers: jest.advanceTimersByTime,
|
|
80
|
-
} );
|
|
76
|
+
const user = userEvent.setup();
|
|
81
77
|
|
|
82
78
|
const MaybeDisable = ( { isDisabled = true } ) => (
|
|
83
79
|
<Disabled isDisabled={ isDisabled }>
|
|
@@ -59,7 +59,7 @@ describe( 'Draggable', () => {
|
|
|
59
59
|
{ state: State.ACTIVE },
|
|
60
60
|
] );
|
|
61
61
|
|
|
62
|
-
expect( onLongPress ).
|
|
62
|
+
expect( onLongPress ).toHaveBeenCalledTimes( 1 );
|
|
63
63
|
expect( onLongPress ).toHaveBeenCalledWith( triggerId );
|
|
64
64
|
} );
|
|
65
65
|
|
|
@@ -111,16 +111,16 @@ describe( 'Draggable', () => {
|
|
|
111
111
|
{ state: State.END },
|
|
112
112
|
] );
|
|
113
113
|
|
|
114
|
-
expect( onDragStart ).
|
|
114
|
+
expect( onDragStart ).toHaveBeenCalledTimes( 1 );
|
|
115
115
|
expect( onDragStart ).toHaveBeenCalledWith( {
|
|
116
116
|
id: triggerId,
|
|
117
117
|
x: touchEvents[ 0 ].x,
|
|
118
118
|
y: touchEvents[ 0 ].y,
|
|
119
119
|
} );
|
|
120
|
-
expect( onDragOver ).
|
|
120
|
+
expect( onDragOver ).toHaveBeenCalledTimes( 2 );
|
|
121
121
|
expect( onDragOver ).toHaveBeenNthCalledWith( 1, touchEvents[ 1 ] );
|
|
122
122
|
expect( onDragOver ).toHaveBeenNthCalledWith( 2, touchEvents[ 2 ] );
|
|
123
|
-
expect( onDragEnd ).
|
|
123
|
+
expect( onDragEnd ).toHaveBeenCalledTimes( 1 );
|
|
124
124
|
expect( onDragEnd ).toHaveBeenCalledWith( {
|
|
125
125
|
id: triggerId,
|
|
126
126
|
x: touchEvents[ 2 ].x,
|
package/src/dropdown/README.md
CHANGED
|
@@ -13,7 +13,7 @@ const MyDropdown = () => (
|
|
|
13
13
|
<Dropdown
|
|
14
14
|
className="my-container-class-name"
|
|
15
15
|
contentClassName="my-popover-content-classname"
|
|
16
|
-
|
|
16
|
+
popoverProps={ { placement: 'bottom-start' } }
|
|
17
17
|
renderToggle={ ( { isOpen, onToggle } ) => (
|
|
18
18
|
<Button
|
|
19
19
|
variant="primary"
|
|
@@ -90,13 +90,6 @@ Use this object to access properties/features of the `Popover` component that ar
|
|
|
90
90
|
|
|
91
91
|
- Required: No
|
|
92
92
|
|
|
93
|
-
### `position`: `PopoverProps[ 'position' ]`
|
|
94
|
-
|
|
95
|
-
The direction in which the popover should open relative to its parent node. Specify a y- and an x-axis as a space-separated string. Supports `"top"`, `"bottom"` y-axis, and `"left"`, `"center"`, `"right"` x-axis.
|
|
96
|
-
|
|
97
|
-
- Required: No
|
|
98
|
-
- Default: `"top center"`
|
|
99
|
-
|
|
100
93
|
### `renderContent`: `( props: CallbackProps ) => ReactNode`
|
|
101
94
|
|
|
102
95
|
A callback invoked to render the content of the dropdown menu.
|
package/src/dropdown/index.tsx
CHANGED
|
@@ -9,6 +9,7 @@ import type { ForwardedRef } from 'react';
|
|
|
9
9
|
*/
|
|
10
10
|
import { forwardRef, useEffect, useRef, useState } from '@wordpress/element';
|
|
11
11
|
import { useMergeRefs } from '@wordpress/compose';
|
|
12
|
+
import deprecated from '@wordpress/deprecated';
|
|
12
13
|
|
|
13
14
|
/**
|
|
14
15
|
* Internal dependencies
|
|
@@ -41,14 +42,24 @@ function UnforwardedDropdown(
|
|
|
41
42
|
expandOnMobile,
|
|
42
43
|
headerTitle,
|
|
43
44
|
focusOnMount,
|
|
44
|
-
position,
|
|
45
45
|
popoverProps,
|
|
46
46
|
onClose,
|
|
47
47
|
onToggle,
|
|
48
48
|
style,
|
|
49
|
+
|
|
50
|
+
// Deprecated props
|
|
51
|
+
position,
|
|
49
52
|
}: DropdownProps,
|
|
50
53
|
forwardedRef: ForwardedRef< any >
|
|
51
54
|
) {
|
|
55
|
+
if ( position !== undefined ) {
|
|
56
|
+
deprecated( '`position` prop in wp.components.Dropdown', {
|
|
57
|
+
since: '6.2',
|
|
58
|
+
alternative: '`popoverProps.placement` prop',
|
|
59
|
+
hint: 'Note that the `position` prop will override any values passed through the `popoverProps.placement` prop.',
|
|
60
|
+
} );
|
|
61
|
+
}
|
|
62
|
+
|
|
52
63
|
// Use internal state instead of a ref to make sure that the component
|
|
53
64
|
// re-renders when the popover's anchor updates.
|
|
54
65
|
const [ fallbackPopoverAnchor, setFallbackPopoverAnchor ] =
|
|
@@ -141,7 +152,7 @@ function UnforwardedDropdown(
|
|
|
141
152
|
{ ...popoverProps }
|
|
142
153
|
className={ classnames(
|
|
143
154
|
'components-dropdown__content',
|
|
144
|
-
popoverProps
|
|
155
|
+
popoverProps?.className,
|
|
145
156
|
contentClassName
|
|
146
157
|
) }
|
|
147
158
|
>
|
|
@@ -161,18 +172,18 @@ function UnforwardedDropdown(
|
|
|
161
172
|
* const MyDropdown = () => (
|
|
162
173
|
* <Dropdown
|
|
163
174
|
* className="my-container-class-name"
|
|
164
|
-
* contentClassName="my-
|
|
165
|
-
*
|
|
175
|
+
* contentClassName="my-dropdown-content-classname"
|
|
176
|
+
* popoverProps={ { placement: 'bottom-start' } }
|
|
166
177
|
* renderToggle={ ( { isOpen, onToggle } ) => (
|
|
167
178
|
* <Button
|
|
168
179
|
* variant="primary"
|
|
169
180
|
* onClick={ onToggle }
|
|
170
181
|
* aria-expanded={ isOpen }
|
|
171
182
|
* >
|
|
172
|
-
* Toggle
|
|
183
|
+
* Toggle Dropdown!
|
|
173
184
|
* </Button>
|
|
174
185
|
* ) }
|
|
175
|
-
* renderContent={ () => <div>This is the content of the
|
|
186
|
+
* renderContent={ () => <div>This is the content of the dropdown.</div> }
|
|
176
187
|
* />
|
|
177
188
|
* );
|
|
178
189
|
* ```
|
|
@@ -16,11 +16,12 @@ const meta: ComponentMeta< typeof Dropdown > = {
|
|
|
16
16
|
subcomponents: { DropdownContentWrapper },
|
|
17
17
|
argTypes: {
|
|
18
18
|
focusOnMount: {
|
|
19
|
+
options: [ 'firstElement', true, false ],
|
|
19
20
|
control: {
|
|
20
21
|
type: 'radio',
|
|
21
|
-
options: [ 'firstElement', true, false ],
|
|
22
22
|
},
|
|
23
23
|
},
|
|
24
|
+
position: { control: { type: null } },
|
|
24
25
|
renderContent: { control: { type: null } },
|
|
25
26
|
renderToggle: { control: { type: null } },
|
|
26
27
|
},
|
|
@@ -42,9 +43,8 @@ const Template: ComponentStory< typeof Dropdown > = ( args ) => {
|
|
|
42
43
|
|
|
43
44
|
export const Default: ComponentStory< typeof Dropdown > = Template.bind( {} );
|
|
44
45
|
Default.args = {
|
|
45
|
-
position: 'bottom right',
|
|
46
46
|
renderToggle: ( { isOpen, onToggle } ) => (
|
|
47
|
-
<Button onClick={ onToggle } aria-expanded={ isOpen }
|
|
47
|
+
<Button onClick={ onToggle } aria-expanded={ isOpen } variant="primary">
|
|
48
48
|
Open dropdown
|
|
49
49
|
</Button>
|
|
50
50
|
),
|
|
@@ -9,13 +9,9 @@ import userEvent from '@testing-library/user-event';
|
|
|
9
9
|
*/
|
|
10
10
|
import Dropdown from '..';
|
|
11
11
|
|
|
12
|
-
jest.useFakeTimers();
|
|
13
|
-
|
|
14
12
|
describe( 'Dropdown', () => {
|
|
15
13
|
it( 'should toggle the dropdown properly', async () => {
|
|
16
|
-
const user = userEvent.setup(
|
|
17
|
-
advanceTimers: jest.advanceTimersByTime,
|
|
18
|
-
} );
|
|
14
|
+
const user = userEvent.setup();
|
|
19
15
|
const { unmount } = render(
|
|
20
16
|
<Dropdown
|
|
21
17
|
className="container"
|
|
@@ -49,9 +45,7 @@ describe( 'Dropdown', () => {
|
|
|
49
45
|
} );
|
|
50
46
|
|
|
51
47
|
it( 'should close the dropdown when calling onClose', async () => {
|
|
52
|
-
const user = userEvent.setup(
|
|
53
|
-
advanceTimers: jest.advanceTimersByTime,
|
|
54
|
-
} );
|
|
48
|
+
const user = userEvent.setup();
|
|
55
49
|
render(
|
|
56
50
|
<Dropdown
|
|
57
51
|
className="container"
|
package/src/dropdown/types.ts
CHANGED
|
@@ -81,16 +81,6 @@ export type DropdownProps = {
|
|
|
81
81
|
ComponentPropsWithoutRef< typeof Popover >,
|
|
82
82
|
'children'
|
|
83
83
|
>;
|
|
84
|
-
/**
|
|
85
|
-
* The direction in which the popover should open
|
|
86
|
-
* relative to its parent node.
|
|
87
|
-
* Specify a y- and an x-axis as a space-separated string.
|
|
88
|
-
* Supports "top", "bottom" y-axis,
|
|
89
|
-
* and "left", "center", "right" x-axis.
|
|
90
|
-
*
|
|
91
|
-
* @default 'top center'
|
|
92
|
-
*/
|
|
93
|
-
position?: PopoverProps[ 'position' ];
|
|
94
84
|
/**
|
|
95
85
|
* A callback invoked to render the content of the dropdown menu.
|
|
96
86
|
* Its first argument is the same as the renderToggle prop.
|
|
@@ -112,4 +102,13 @@ export type DropdownProps = {
|
|
|
112
102
|
* The style of the global container.
|
|
113
103
|
*/
|
|
114
104
|
style?: CSSProperties;
|
|
105
|
+
/**
|
|
106
|
+
* Legacy way to specify the popover's position with respect to its anchor.
|
|
107
|
+
* For details about the possible values, see the `Popover` component's docs.
|
|
108
|
+
* _Note: this prop is deprecated. Use the `popoverProps.placement` prop
|
|
109
|
+
* instead._
|
|
110
|
+
*
|
|
111
|
+
* @deprecated
|
|
112
|
+
*/
|
|
113
|
+
position?: PopoverProps[ 'position' ];
|
|
115
114
|
};
|
|
@@ -205,6 +205,6 @@ Use this object to modify props available for the `NavigableMenu` component that
|
|
|
205
205
|
|
|
206
206
|
In some contexts, the arrow down key used to open the dropdown menu might need to be disabled—for example when that key is used to perform another action.
|
|
207
207
|
|
|
208
|
-
- Type: `
|
|
208
|
+
- Type: `boolean`
|
|
209
209
|
- Required: No
|
|
210
210
|
- Default: `false`
|