@wordpress/components 23.0.0 → 23.2.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 +29 -0
- package/CONTRIBUTING.md +0 -21
- package/LICENSE.md +1 -1
- package/build/autocomplete/index.js +1 -3
- package/build/autocomplete/index.js.map +1 -1
- package/build/border-box-control/border-box-control/component.js +0 -3
- package/build/border-box-control/border-box-control/component.js.map +1 -1
- package/build/border-box-control/border-box-control/hook.js +0 -2
- package/build/border-box-control/border-box-control/hook.js.map +1 -1
- package/build/border-box-control/border-box-control-split-controls/component.js +0 -2
- package/build/border-box-control/border-box-control-split-controls/component.js.map +1 -1
- package/build/border-box-control/border-box-control-split-controls/hook.js +0 -2
- package/build/border-box-control/border-box-control-split-controls/hook.js.map +1 -1
- package/build/border-control/border-control/component.js +0 -2
- package/build/border-control/border-control/component.js.map +1 -1
- package/build/border-control/border-control/hook.js +0 -2
- package/build/border-control/border-control/hook.js.map +1 -1
- package/build/border-control/border-control-dropdown/component.js +6 -11
- package/build/border-control/border-control-dropdown/component.js.map +1 -1
- package/build/border-control/border-control-dropdown/hook.js +0 -2
- package/build/border-control/border-control-dropdown/hook.js.map +1 -1
- package/build/color-palette/index.js +5 -8
- package/build/color-palette/index.js.map +1 -1
- package/build/color-picker/component.js +1 -0
- package/build/color-picker/component.js.map +1 -1
- package/build/color-picker/styles.js +8 -10
- package/build/color-picker/styles.js.map +1 -1
- package/build/combobox-control/index.js +5 -1
- package/build/combobox-control/index.js.map +1 -1
- package/build/dimension-control/index.js.map +1 -1
- package/build/dropdown/index.js +45 -10
- package/build/dropdown/index.js.map +1 -1
- package/build/focal-point-picker/utils.js +1 -1
- package/build/focal-point-picker/utils.js.map +1 -1
- package/build/gradient-picker/index.js +1 -2
- package/build/gradient-picker/index.js.map +1 -1
- package/build/higher-order/navigate-regions/index.js +4 -3
- package/build/higher-order/navigate-regions/index.js.map +1 -1
- package/build/index.js +7 -25
- package/build/index.js.map +1 -1
- package/build/index.native.js +8 -18
- package/build/index.native.js.map +1 -1
- package/build/item-group/item/component.js +27 -3
- package/build/item-group/item/component.js.map +1 -1
- package/build/item-group/item-group/component.js +26 -3
- package/build/item-group/item-group/component.js.map +1 -1
- package/build/item-group/styles.js +14 -14
- package/build/item-group/styles.js.map +1 -1
- package/build/mobile/bottom-sheet/picker-cell.native.js +1 -9
- package/build/mobile/bottom-sheet/picker-cell.native.js.map +1 -1
- package/build/mobile/global-styles-context/utils.native.js +30 -12
- package/build/mobile/global-styles-context/utils.native.js.map +1 -1
- package/build/panel/row.js +5 -3
- package/build/panel/row.js.map +1 -1
- package/build/query-controls/index.js +1 -0
- package/build/query-controls/index.js.map +1 -1
- package/build/resizable-box/index.js +5 -4
- package/build/resizable-box/index.js.map +1 -1
- package/build/responsive-wrapper/index.js +18 -1
- package/build/responsive-wrapper/index.js.map +1 -1
- package/build/responsive-wrapper/types.js +6 -0
- package/build/responsive-wrapper/types.js.map +1 -0
- package/build/sandbox/index.js +35 -24
- package/build/sandbox/index.js.map +1 -1
- package/build/sandbox/types.js +6 -0
- package/build/sandbox/types.js.map +1 -0
- package/build/tab-panel/index.js +15 -9
- package/build/tab-panel/index.js.map +1 -1
- package/build/toolbar/index.js +42 -60
- package/build/toolbar/index.js.map +1 -1
- package/build/toolbar/toolbar/index.js +74 -0
- package/build/toolbar/toolbar/index.js.map +1 -0
- package/build/toolbar/{toolbar-container.js → toolbar/toolbar-container.js} +0 -0
- package/build/toolbar/toolbar/toolbar-container.js.map +1 -0
- package/build/toolbar/{toolbar-container.native.js → toolbar/toolbar-container.native.js} +0 -0
- package/build/toolbar/toolbar/toolbar-container.native.js.map +1 -0
- package/build/{toolbar-button → toolbar/toolbar-button}/index.js +1 -1
- package/build/toolbar/toolbar-button/index.js.map +1 -0
- package/build/{toolbar-button → toolbar/toolbar-button}/toolbar-button-container.js +0 -0
- package/build/toolbar/toolbar-button/toolbar-button-container.js.map +1 -0
- package/build/{toolbar-button → toolbar/toolbar-button}/toolbar-button-container.native.js +0 -0
- package/build/toolbar/toolbar-button/toolbar-button-container.native.js.map +1 -0
- package/build/{toolbar-context → toolbar/toolbar-context}/index.js +0 -0
- package/build/toolbar/toolbar-context/index.js.map +1 -0
- package/build/{toolbar-dropdown-menu → toolbar/toolbar-dropdown-menu}/index.js +1 -1
- package/build/toolbar/toolbar-dropdown-menu/index.js.map +1 -0
- package/build/{toolbar-group → toolbar/toolbar-group}/index.js +0 -0
- package/build/toolbar/toolbar-group/index.js.map +1 -0
- package/build/{toolbar-group → toolbar/toolbar-group}/toolbar-group-collapsed.js +1 -1
- package/build/toolbar/toolbar-group/toolbar-group-collapsed.js.map +1 -0
- package/build/{toolbar-group → toolbar/toolbar-group}/toolbar-group-collapsed.native.js +1 -1
- package/build/toolbar/toolbar-group/toolbar-group-collapsed.native.js.map +1 -0
- package/build/{toolbar-group → toolbar/toolbar-group}/toolbar-group-container.js +0 -0
- package/build/toolbar/toolbar-group/toolbar-group-container.js.map +1 -0
- package/build/{toolbar-group → toolbar/toolbar-group}/toolbar-group-container.native.js +0 -0
- package/build/toolbar/toolbar-group/toolbar-group-container.native.js.map +1 -0
- package/build/{toolbar-item → toolbar/toolbar-item}/index.js +0 -0
- package/build/toolbar/toolbar-item/index.js.map +1 -0
- package/build/{toolbar-item → toolbar/toolbar-item}/index.native.js +0 -0
- package/build/toolbar/toolbar-item/index.native.js.map +1 -0
- package/build/tree-grid/index.js +3 -3
- package/build/tree-grid/index.js.map +1 -1
- package/build-module/autocomplete/index.js +1 -2
- package/build-module/autocomplete/index.js.map +1 -1
- package/build-module/border-box-control/border-box-control/component.js +0 -3
- 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 +0 -2
- 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/component.js +0 -2
- package/build-module/border-box-control/border-box-control-split-controls/component.js.map +1 -1
- package/build-module/border-box-control/border-box-control-split-controls/hook.js +0 -2
- 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 +0 -2
- package/build-module/border-control/border-control/component.js.map +1 -1
- package/build-module/border-control/border-control/hook.js +0 -2
- package/build-module/border-control/border-control/hook.js.map +1 -1
- package/build-module/border-control/border-control-dropdown/component.js +6 -11
- package/build-module/border-control/border-control-dropdown/component.js.map +1 -1
- package/build-module/border-control/border-control-dropdown/hook.js +0 -2
- package/build-module/border-control/border-control-dropdown/hook.js.map +1 -1
- package/build-module/color-palette/index.js +5 -8
- package/build-module/color-palette/index.js.map +1 -1
- package/build-module/color-picker/component.js +1 -0
- package/build-module/color-picker/component.js.map +1 -1
- package/build-module/color-picker/styles.js +8 -9
- package/build-module/color-picker/styles.js.map +1 -1
- package/build-module/combobox-control/index.js +5 -1
- package/build-module/combobox-control/index.js.map +1 -1
- package/build-module/dimension-control/index.js +1 -2
- package/build-module/dimension-control/index.js.map +1 -1
- package/build-module/dropdown/index.js +44 -10
- package/build-module/dropdown/index.js.map +1 -1
- package/build-module/focal-point-picker/utils.js +1 -1
- package/build-module/focal-point-picker/utils.js.map +1 -1
- package/build-module/gradient-picker/index.js +1 -2
- package/build-module/gradient-picker/index.js.map +1 -1
- package/build-module/higher-order/navigate-regions/index.js +4 -3
- package/build-module/higher-order/navigate-regions/index.js.map +1 -1
- package/build-module/index.js +1 -7
- package/build-module/index.js.map +1 -1
- package/build-module/index.native.js +1 -6
- package/build-module/index.native.js.map +1 -1
- package/build-module/item-group/item/component.js +26 -2
- package/build-module/item-group/item/component.js.map +1 -1
- package/build-module/item-group/item-group/component.js +25 -2
- package/build-module/item-group/item-group/component.js.map +1 -1
- package/build-module/item-group/styles.js +14 -14
- package/build-module/item-group/styles.js.map +1 -1
- package/build-module/mobile/bottom-sheet/picker-cell.native.js +1 -8
- package/build-module/mobile/bottom-sheet/picker-cell.native.js.map +1 -1
- package/build-module/mobile/global-styles-context/utils.native.js +31 -13
- package/build-module/mobile/global-styles-context/utils.native.js.map +1 -1
- package/build-module/panel/row.js +5 -3
- package/build-module/panel/row.js.map +1 -1
- package/build-module/query-controls/index.js +1 -0
- package/build-module/query-controls/index.js.map +1 -1
- package/build-module/resizable-box/index.js +3 -2
- package/build-module/resizable-box/index.js.map +1 -1
- package/build-module/responsive-wrapper/index.js +20 -1
- package/build-module/responsive-wrapper/index.js.map +1 -1
- package/build-module/responsive-wrapper/types.js +2 -0
- package/build-module/responsive-wrapper/types.js.map +1 -0
- package/build-module/sandbox/index.js +37 -23
- package/build-module/sandbox/index.js.map +1 -1
- package/build-module/sandbox/types.js +2 -0
- package/build-module/sandbox/types.js.map +1 -0
- package/build-module/tab-panel/index.js +15 -8
- package/build-module/tab-panel/index.js.map +1 -1
- package/build-module/toolbar/index.js +6 -58
- package/build-module/toolbar/index.js.map +1 -1
- package/build-module/toolbar/toolbar/index.js +59 -0
- package/build-module/toolbar/toolbar/index.js.map +1 -0
- package/build-module/toolbar/{toolbar-container.js → toolbar/toolbar-container.js} +0 -0
- package/{build → build-module/toolbar}/toolbar/toolbar-container.js.map +1 -1
- package/build-module/toolbar/{toolbar-container.native.js → toolbar/toolbar-container.native.js} +0 -0
- package/build-module/toolbar/toolbar/toolbar-container.native.js.map +1 -0
- package/build-module/{toolbar-button → toolbar/toolbar-button}/index.js +1 -1
- package/build-module/toolbar/toolbar-button/index.js.map +1 -0
- package/build-module/{toolbar-button → toolbar/toolbar-button}/toolbar-button-container.js +0 -0
- package/build-module/toolbar/toolbar-button/toolbar-button-container.js.map +1 -0
- package/build-module/{toolbar-button → toolbar/toolbar-button}/toolbar-button-container.native.js +0 -0
- package/build-module/toolbar/toolbar-button/toolbar-button-container.native.js.map +1 -0
- package/build-module/{toolbar-context → toolbar/toolbar-context}/index.js +0 -0
- package/build-module/toolbar/toolbar-context/index.js.map +1 -0
- package/build-module/{toolbar-dropdown-menu → toolbar/toolbar-dropdown-menu}/index.js +1 -1
- package/build-module/toolbar/toolbar-dropdown-menu/index.js.map +1 -0
- package/build-module/{toolbar-group → toolbar/toolbar-group}/index.js +0 -0
- package/build-module/toolbar/toolbar-group/index.js.map +1 -0
- package/build-module/{toolbar-group → toolbar/toolbar-group}/toolbar-group-collapsed.js +1 -1
- package/build-module/toolbar/toolbar-group/toolbar-group-collapsed.js.map +1 -0
- package/build-module/{toolbar-group → toolbar/toolbar-group}/toolbar-group-collapsed.native.js +1 -1
- package/build-module/toolbar/toolbar-group/toolbar-group-collapsed.native.js.map +1 -0
- package/build-module/{toolbar-group → toolbar/toolbar-group}/toolbar-group-container.js +0 -0
- package/build-module/toolbar/toolbar-group/toolbar-group-container.js.map +1 -0
- package/build-module/{toolbar-group → toolbar/toolbar-group}/toolbar-group-container.native.js +0 -0
- package/build-module/toolbar/toolbar-group/toolbar-group-container.native.js.map +1 -0
- package/build-module/{toolbar-item → toolbar/toolbar-item}/index.js +0 -0
- package/build-module/toolbar/toolbar-item/index.js.map +1 -0
- package/build-module/{toolbar-item → toolbar/toolbar-item}/index.native.js +0 -0
- package/build-module/toolbar/toolbar-item/index.native.js.map +1 -0
- package/build-module/tree-grid/index.js +3 -3
- package/build-module/tree-grid/index.js.map +1 -1
- package/build-style/style-rtl.css +19 -32
- package/build-style/style.css +19 -32
- package/build-types/border-box-control/border-box-control/component.d.ts +1 -1
- 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 +0 -1
- package/build-types/border-box-control/border-box-control/hook.d.ts.map +1 -1
- package/build-types/border-box-control/border-box-control-split-controls/component.d.ts +1 -1
- package/build-types/border-box-control/border-box-control-split-controls/component.d.ts.map +1 -1
- package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts +0 -1
- package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts.map +1 -1
- package/build-types/border-box-control/stories/index.d.ts +1 -1
- package/build-types/border-control/border-control/component.d.ts +1 -1
- package/build-types/border-control/border-control/component.d.ts.map +1 -1
- package/build-types/border-control/border-control/hook.d.ts +0 -1
- package/build-types/border-control/border-control/hook.d.ts.map +1 -1
- package/build-types/border-control/border-control-dropdown/component.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 +0 -1
- package/build-types/border-control/border-control-dropdown/hook.d.ts.map +1 -1
- package/build-types/border-control/stories/index.d.ts +6 -6
- package/build-types/border-control/stories/index.d.ts.map +1 -1
- package/build-types/border-control/types.d.ts +1 -1
- package/build-types/border-control/types.d.ts.map +1 -1
- package/build-types/color-palette/index.d.ts +2 -3
- package/build-types/color-palette/index.d.ts.map +1 -1
- package/build-types/color-palette/stories/index.d.ts +2 -9
- package/build-types/color-palette/stories/index.d.ts.map +1 -1
- package/build-types/color-palette/types.d.ts +3 -16
- package/build-types/color-palette/types.d.ts.map +1 -1
- package/build-types/color-picker/component.d.ts.map +1 -1
- package/build-types/color-picker/styles.d.ts.map +1 -1
- package/build-types/dashicon/types.d.ts +0 -4
- package/build-types/dashicon/types.d.ts.map +1 -1
- package/build-types/disabled/stories/index.d.ts.map +1 -1
- package/build-types/dropdown/index.d.ts +29 -1
- package/build-types/dropdown/index.d.ts.map +1 -1
- package/build-types/dropdown/stories/index.d.ts +23 -0
- package/build-types/dropdown/stories/index.d.ts.map +1 -0
- package/build-types/dropdown/test/index.d.ts +2 -0
- package/build-types/dropdown/test/index.d.ts.map +1 -0
- package/build-types/dropdown/types.d.ts +101 -0
- package/build-types/dropdown/types.d.ts.map +1 -1
- package/build-types/focal-point-picker/utils.d.ts.map +1 -1
- package/build-types/icon/stories/index.d.ts +22 -0
- package/build-types/icon/stories/index.d.ts.map +1 -0
- package/build-types/item-group/item/component.d.ts +24 -2
- package/build-types/item-group/item/component.d.ts.map +1 -1
- package/build-types/item-group/item-group/component.d.ts +23 -2
- package/build-types/item-group/item-group/component.d.ts.map +1 -1
- package/build-types/item-group/stories/index.d.ts +15 -0
- package/build-types/item-group/stories/index.d.ts.map +1 -0
- package/build-types/item-group/styles.d.ts.map +1 -1
- package/build-types/radio-context/index.d.ts +6 -0
- package/build-types/radio-context/index.d.ts.map +1 -0
- package/build-types/resizable-box/index.d.ts +6 -7
- package/build-types/resizable-box/index.d.ts.map +1 -1
- package/build-types/resizable-box/stories/index.d.ts +61 -0
- package/build-types/resizable-box/stories/index.d.ts.map +1 -0
- package/build-types/responsive-wrapper/index.d.ts +24 -0
- package/build-types/responsive-wrapper/index.d.ts.map +1 -0
- package/build-types/responsive-wrapper/stories/index.d.ts +12 -0
- package/build-types/responsive-wrapper/stories/index.d.ts.map +1 -0
- package/build-types/responsive-wrapper/types.d.ts +22 -0
- package/build-types/responsive-wrapper/types.d.ts.map +1 -0
- package/build-types/sandbox/index.d.ts +19 -0
- package/build-types/sandbox/index.d.ts.map +1 -0
- package/build-types/sandbox/stories/index.d.ts +12 -0
- package/build-types/sandbox/stories/index.d.ts.map +1 -0
- package/build-types/sandbox/test/index.d.ts +2 -0
- package/build-types/sandbox/test/index.d.ts.map +1 -0
- package/build-types/sandbox/types.d.ts +36 -0
- package/build-types/sandbox/types.d.ts.map +1 -0
- package/build-types/tab-panel/index.d.ts.map +1 -1
- package/build-types/tab-panel/stories/index.d.ts +1 -0
- package/build-types/tab-panel/stories/index.d.ts.map +1 -1
- package/build-types/tab-panel/types.d.ts +10 -4
- package/build-types/tab-panel/types.d.ts.map +1 -1
- package/package.json +17 -17
- package/src/autocomplete/index.js +1 -3
- package/src/autocomplete/test/index.js +2 -0
- package/src/base-control/test/index.tsx +1 -0
- package/src/border-box-control/border-box-control/component.tsx +0 -7
- package/src/border-box-control/border-box-control/hook.ts +0 -2
- package/src/border-box-control/border-box-control-split-controls/component.tsx +0 -2
- package/src/border-box-control/border-box-control-split-controls/hook.ts +0 -2
- package/src/border-box-control/test/index.js +2 -0
- package/src/border-control/border-control/component.tsx +0 -4
- package/src/border-control/border-control/hook.ts +0 -2
- package/src/border-control/border-control-dropdown/component.tsx +11 -17
- package/src/border-control/border-control-dropdown/hook.ts +0 -2
- package/src/border-control/stories/index.tsx +0 -1
- package/src/border-control/test/index.js +70 -67
- package/src/border-control/types.ts +1 -4
- package/src/box-control/test/index.js +2 -0
- package/src/checkbox-control/test/index.tsx +2 -0
- package/src/color-palette/index.tsx +12 -12
- package/src/color-palette/stories/index.tsx +0 -13
- package/src/color-palette/test/index.tsx +2 -0
- package/src/color-palette/types.ts +3 -17
- package/src/color-picker/component.tsx +1 -0
- package/src/color-picker/stories/index.js +20 -60
- package/src/color-picker/styles.ts +0 -5
- package/src/color-picker/test/index.js +2 -0
- package/src/combobox-control/index.js +9 -1
- package/src/combobox-control/test/index.js +2 -0
- package/src/confirm-dialog/test/index.js +2 -0
- package/src/dashicon/types.ts +0 -6
- package/src/date-time/date/test/index.tsx +2 -0
- package/src/date-time/time/test/index.tsx +2 -0
- package/src/dimension-control/index.js +2 -3
- package/src/dimension-control/test/index.test.js +2 -0
- package/src/disabled/stories/index.tsx +6 -2
- package/src/disabled/test/index.tsx +2 -0
- package/src/dropdown/README.md +41 -46
- package/src/dropdown/{index.js → index.tsx} +57 -13
- package/src/dropdown/stories/{index.js → index.tsx} +21 -8
- package/src/dropdown/test/{index.js → index.tsx} +9 -9
- package/src/dropdown/types.ts +107 -0
- package/src/dropdown-menu/README.md +2 -3
- package/src/dropdown-menu/test/index.js +2 -0
- package/src/external-link/test/index.tsx +2 -0
- package/src/focal-point-picker/stories/index.tsx +1 -1
- package/src/focal-point-picker/test/index.js +2 -0
- package/src/focal-point-picker/utils.ts +4 -1
- package/src/font-size-picker/test/index.tsx +2 -0
- package/src/form-file-upload/test/index.tsx +2 -0
- package/src/form-toggle/test/index.tsx +2 -0
- package/src/form-token-field/test/index.tsx +3 -0
- package/src/gradient-picker/index.js +1 -2
- package/src/gradient-picker/stories/index.js +0 -1
- package/src/guide/stories/index.js +14 -41
- package/src/guide/test/index.js +2 -0
- package/src/higher-order/navigate-regions/index.js +5 -2
- package/src/higher-order/navigate-regions/style.scss +13 -39
- package/src/higher-order/with-filters/test/index.js +70 -74
- package/src/higher-order/with-focus-outside/test/index.js +2 -0
- package/src/higher-order/with-focus-return/test/index.js +2 -0
- package/src/higher-order/with-notices/test/index.js +1 -0
- package/src/icon/stories/index.tsx +103 -0
- package/src/index.js +8 -7
- package/src/index.native.js +8 -6
- package/src/input-control/test/index.js +3 -0
- package/src/isolated-event-container/test/index.js +2 -0
- package/src/item-group/item/component.tsx +26 -2
- package/src/item-group/item-group/component.tsx +25 -2
- package/src/item-group/stories/index.tsx +103 -0
- package/src/item-group/styles.ts +1 -0
- package/src/item-group/test/__snapshots__/index.js.snap +11 -10
- package/src/mobile/bottom-sheet/picker-cell.native.js +1 -6
- package/src/mobile/global-styles-context/utils.native.js +17 -16
- package/src/modal/test/index.tsx +1 -3
- package/src/navigable-container/test/navigable-menu.js +2 -0
- package/src/navigable-container/test/tababble-container.js +2 -0
- package/src/navigation/test/index.js +2 -0
- package/src/navigator/test/index.tsx +2 -0
- package/src/notice/stories/index.js +30 -58
- package/src/notice/test/index.js +8 -3
- package/src/number-control/test/index.tsx +2 -0
- package/src/panel/row.js +3 -3
- package/src/panel/stories/index.js +62 -80
- package/src/panel/test/__snapshots__/body.js.snap +9 -0
- package/src/panel/test/body.js +71 -62
- package/src/placeholder/style.scss +1 -1
- package/src/placeholder/test/index.tsx +3 -0
- package/src/query-controls/index.js +1 -0
- package/src/resizable-box/README.md +2 -2
- package/src/resizable-box/index.tsx +7 -6
- package/src/resizable-box/stories/index.tsx +92 -0
- package/src/responsive-wrapper/README.md +29 -0
- package/src/responsive-wrapper/{index.js → index.tsx} +23 -2
- package/src/responsive-wrapper/stories/index.tsx +38 -0
- package/src/responsive-wrapper/types.ts +20 -0
- package/src/sandbox/README.md +45 -2
- package/src/sandbox/{index.js → index.tsx} +47 -24
- package/src/sandbox/stories/index.tsx +32 -0
- package/src/sandbox/test/{index.js → index.tsx} +9 -4
- package/src/sandbox/types.ts +34 -0
- package/src/select-control/test/select-control.tsx +2 -0
- package/src/slot-fill/stories/index.js +12 -17
- package/src/style.scss +3 -3
- package/src/tab-panel/README.md +1 -0
- package/src/tab-panel/index.tsx +20 -7
- package/src/tab-panel/stories/index.tsx +20 -0
- package/src/tab-panel/test/index.tsx +91 -0
- package/src/tab-panel/types.ts +10 -4
- package/src/text-highlight/test/index.tsx +1 -0
- package/src/toggle-group-control/test/index.tsx +2 -0
- package/src/toolbar/index.js +6 -52
- package/src/toolbar/stories/index.js +2 -9
- package/src/{toolbar-button/stories/index.js → toolbar/stories/toolbar-button.js} +1 -2
- package/src/{toolbar-group/stories/index.js → toolbar/stories/toolbar-group.js} +1 -1
- package/src/toolbar/test/index.js +1 -2
- package/src/{toolbar-group/test/index.js → toolbar/test/toolbar-group.js} +3 -1
- package/src/toolbar/{README.md → toolbar/README.md} +0 -0
- package/src/toolbar/toolbar/index.js +52 -0
- package/src/toolbar/{style.native.scss → toolbar/style.native.scss} +0 -0
- package/src/toolbar/{style.scss → toolbar/style.scss} +1 -1
- package/src/toolbar/{toolbar-container.js → toolbar/toolbar-container.js} +0 -0
- package/src/toolbar/{toolbar-container.native.js → toolbar/toolbar-container.native.js} +0 -0
- package/src/{toolbar-button → toolbar/toolbar-button}/README.md +0 -0
- package/src/{toolbar-button → toolbar/toolbar-button}/index.js +1 -1
- package/src/{toolbar-button → toolbar/toolbar-button}/style.scss +0 -0
- package/src/{toolbar-button → toolbar/toolbar-button}/toolbar-button-container.js +0 -0
- package/src/{toolbar-button → toolbar/toolbar-button}/toolbar-button-container.native.js +0 -0
- package/src/{toolbar-context → toolbar/toolbar-context}/index.js +0 -0
- package/src/{toolbar-dropdown-menu → toolbar/toolbar-dropdown-menu}/README.md +0 -0
- package/src/{toolbar-dropdown-menu → toolbar/toolbar-dropdown-menu}/index.js +1 -1
- package/src/{toolbar-group → toolbar/toolbar-group}/README.md +0 -0
- package/src/{toolbar-group → toolbar/toolbar-group}/index.js +0 -0
- package/src/{toolbar-group → toolbar/toolbar-group}/style.native.scss +0 -0
- package/src/{toolbar-group → toolbar/toolbar-group}/style.scss +0 -0
- package/src/{toolbar-group → toolbar/toolbar-group}/toolbar-group-collapsed.js +1 -1
- package/src/{toolbar-group → toolbar/toolbar-group}/toolbar-group-collapsed.native.js +1 -1
- package/src/{toolbar-group → toolbar/toolbar-group}/toolbar-group-container.js +0 -0
- package/src/{toolbar-group → toolbar/toolbar-group}/toolbar-group-container.native.js +0 -0
- package/src/{toolbar-item → toolbar/toolbar-item}/README.md +0 -0
- package/src/{toolbar-item → toolbar/toolbar-item}/index.js +0 -0
- package/src/{toolbar-item → toolbar/toolbar-item}/index.native.js +0 -0
- package/src/tooltip/stories/index.js +68 -78
- package/src/tooltip/test/index.js +2 -0
- package/src/tree-grid/index.js +2 -4
- package/src/unit-control/test/index.tsx +3 -0
- package/src/utils/hooks/test/use-latest-ref.js +2 -0
- package/tsconfig.json +0 -7
- package/tsconfig.tsbuildinfo +1 -1
- package/build/toolbar/toolbar-container.native.js.map +0 -1
- package/build/toolbar-button/index.js.map +0 -1
- package/build/toolbar-button/toolbar-button-container.js.map +0 -1
- package/build/toolbar-button/toolbar-button-container.native.js.map +0 -1
- package/build/toolbar-context/index.js.map +0 -1
- package/build/toolbar-dropdown-menu/index.js.map +0 -1
- package/build/toolbar-group/index.js.map +0 -1
- package/build/toolbar-group/toolbar-group-collapsed.js.map +0 -1
- package/build/toolbar-group/toolbar-group-collapsed.native.js.map +0 -1
- package/build/toolbar-group/toolbar-group-container.js.map +0 -1
- package/build/toolbar-group/toolbar-group-container.native.js.map +0 -1
- package/build/toolbar-item/index.js.map +0 -1
- package/build/toolbar-item/index.native.js.map +0 -1
- package/build-module/toolbar/toolbar-container.js.map +0 -1
- package/build-module/toolbar/toolbar-container.native.js.map +0 -1
- package/build-module/toolbar-button/index.js.map +0 -1
- package/build-module/toolbar-button/toolbar-button-container.js.map +0 -1
- package/build-module/toolbar-button/toolbar-button-container.native.js.map +0 -1
- package/build-module/toolbar-context/index.js.map +0 -1
- package/build-module/toolbar-dropdown-menu/index.js.map +0 -1
- package/build-module/toolbar-group/index.js.map +0 -1
- package/build-module/toolbar-group/toolbar-group-collapsed.js.map +0 -1
- package/build-module/toolbar-group/toolbar-group-collapsed.native.js.map +0 -1
- package/build-module/toolbar-group/toolbar-group-container.js.map +0 -1
- package/build-module/toolbar-group/toolbar-group-container.native.js.map +0 -1
- package/build-module/toolbar-item/index.js.map +0 -1
- package/build-module/toolbar-item/index.native.js.map +0 -1
- package/src/icon/stories/index.js +0 -128
- package/src/item-group/stories/index.js +0 -270
- package/src/resizable-box/stories/index.js +0 -97
|
@@ -1,13 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
4
|
+
import {
|
|
5
|
+
act,
|
|
6
|
+
fireEvent,
|
|
7
|
+
render,
|
|
8
|
+
screen,
|
|
9
|
+
waitFor,
|
|
10
|
+
} from '@testing-library/react';
|
|
5
11
|
|
|
6
12
|
/**
|
|
7
13
|
* Internal dependencies
|
|
8
14
|
*/
|
|
9
15
|
import { BorderControl } from '../';
|
|
10
16
|
|
|
17
|
+
jest.useRealTimers();
|
|
18
|
+
|
|
11
19
|
const colors = [
|
|
12
20
|
{ name: 'Gray', color: '#f6f7f7' },
|
|
13
21
|
{ name: 'Blue', color: '#72aee6' },
|
|
@@ -37,29 +45,24 @@ function createProps( customProps ) {
|
|
|
37
45
|
|
|
38
46
|
const toggleLabelRegex = /Border color( and style)* picker/;
|
|
39
47
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
// hook from the `floating-ui` package will schedule a state update in a
|
|
44
|
-
// promise handler. We need to wait for this promise handler to execute
|
|
45
|
-
// before checking results. That's what this async `act()` call achieves.
|
|
46
|
-
// See also: https://floating-ui.com/docs/react-dom#testing
|
|
47
|
-
await act( () => Promise.resolve() );
|
|
48
|
-
return view;
|
|
49
|
-
};
|
|
50
|
-
|
|
51
|
-
const rerenderBorderControl = async ( rerender, props ) => {
|
|
52
|
-
const view = rerender( <BorderControl { ...props } /> );
|
|
53
|
-
// Same reason to `act()` as in `renderBorderControl` above.
|
|
54
|
-
await act( () => Promise.resolve() );
|
|
55
|
-
return view;
|
|
56
|
-
};
|
|
48
|
+
function getWrappingPopoverElement( element ) {
|
|
49
|
+
return element.closest( '.components-popover' );
|
|
50
|
+
}
|
|
57
51
|
|
|
58
52
|
const openPopover = async () => {
|
|
59
53
|
const toggleButton = screen.getByLabelText( toggleLabelRegex );
|
|
60
54
|
fireEvent.click( toggleButton );
|
|
61
|
-
|
|
62
|
-
|
|
55
|
+
|
|
56
|
+
// Wait for color picker popover to fully appear
|
|
57
|
+
const pickerButton = screen.getByRole( 'button', {
|
|
58
|
+
name: /^Custom color picker/,
|
|
59
|
+
} );
|
|
60
|
+
|
|
61
|
+
await waitFor( () =>
|
|
62
|
+
expect(
|
|
63
|
+
getWrappingPopoverElement( pickerButton )
|
|
64
|
+
).toBePositionedPopover()
|
|
65
|
+
);
|
|
63
66
|
};
|
|
64
67
|
|
|
65
68
|
const getButton = ( name ) => {
|
|
@@ -93,9 +96,9 @@ const clearWidthInput = () => setWidthInput( '' );
|
|
|
93
96
|
|
|
94
97
|
describe( 'BorderControl', () => {
|
|
95
98
|
describe( 'basic rendering', () => {
|
|
96
|
-
it( 'should render standard border control',
|
|
99
|
+
it( 'should render standard border control', () => {
|
|
97
100
|
const props = createProps();
|
|
98
|
-
|
|
101
|
+
render( <BorderControl { ...props } /> );
|
|
99
102
|
|
|
100
103
|
const label = screen.getByText( props.label );
|
|
101
104
|
const colorButton = screen.getByLabelText( toggleLabelRegex );
|
|
@@ -114,9 +117,9 @@ describe( 'BorderControl', () => {
|
|
|
114
117
|
expect( slider ).not.toBeInTheDocument();
|
|
115
118
|
} );
|
|
116
119
|
|
|
117
|
-
it( 'should hide label',
|
|
120
|
+
it( 'should hide label', () => {
|
|
118
121
|
const props = createProps( { hideLabelFromVision: true } );
|
|
119
|
-
|
|
122
|
+
render( <BorderControl { ...props } /> );
|
|
120
123
|
const label = screen.getByText( props.label );
|
|
121
124
|
|
|
122
125
|
// As visually hidden labels are still included in the document
|
|
@@ -128,17 +131,17 @@ describe( 'BorderControl', () => {
|
|
|
128
131
|
);
|
|
129
132
|
} );
|
|
130
133
|
|
|
131
|
-
it( 'should render with slider',
|
|
134
|
+
it( 'should render with slider', () => {
|
|
132
135
|
const props = createProps( { withSlider: true } );
|
|
133
|
-
|
|
136
|
+
render( <BorderControl { ...props } /> );
|
|
134
137
|
|
|
135
138
|
const slider = getSliderInput();
|
|
136
139
|
expect( slider ).toBeInTheDocument();
|
|
137
140
|
} );
|
|
138
141
|
|
|
139
|
-
it( 'should render placeholder in UnitControl',
|
|
142
|
+
it( 'should render placeholder in UnitControl', () => {
|
|
140
143
|
const props = createProps( { placeholder: 'Mixed' } );
|
|
141
|
-
|
|
144
|
+
render( <BorderControl { ...props } /> );
|
|
142
145
|
|
|
143
146
|
const widthInput = getWidthInput();
|
|
144
147
|
expect( widthInput ).toHaveAttribute( 'placeholder', 'Mixed' );
|
|
@@ -146,7 +149,7 @@ describe( 'BorderControl', () => {
|
|
|
146
149
|
|
|
147
150
|
it( 'should render color and style popover', async () => {
|
|
148
151
|
const props = createProps();
|
|
149
|
-
|
|
152
|
+
render( <BorderControl { ...props } /> );
|
|
150
153
|
await openPopover();
|
|
151
154
|
|
|
152
155
|
const customColorPicker = getButton( /Custom color picker/ );
|
|
@@ -170,7 +173,7 @@ describe( 'BorderControl', () => {
|
|
|
170
173
|
|
|
171
174
|
it( 'should render color and style popover header', async () => {
|
|
172
175
|
const props = createProps( { showDropdownHeader: true } );
|
|
173
|
-
|
|
176
|
+
render( <BorderControl { ...props } /> );
|
|
174
177
|
await openPopover();
|
|
175
178
|
|
|
176
179
|
const headerLabel = screen.getByText( 'Border color' );
|
|
@@ -182,7 +185,7 @@ describe( 'BorderControl', () => {
|
|
|
182
185
|
|
|
183
186
|
it( 'should not render style options when opted out of', async () => {
|
|
184
187
|
const props = createProps( { enableStyle: false } );
|
|
185
|
-
|
|
188
|
+
render( <BorderControl { ...props } /> );
|
|
186
189
|
await openPopover();
|
|
187
190
|
|
|
188
191
|
const styleLabel = screen.queryByText( 'Style' );
|
|
@@ -199,18 +202,18 @@ describe( 'BorderControl', () => {
|
|
|
199
202
|
|
|
200
203
|
describe( 'color and style picker aria labels', () => {
|
|
201
204
|
describe( 'with style selection enabled', () => {
|
|
202
|
-
it( 'should include both color and style in label',
|
|
205
|
+
it( 'should include both color and style in label', () => {
|
|
203
206
|
const props = createProps( { value: undefined } );
|
|
204
|
-
|
|
207
|
+
render( <BorderControl { ...props } /> );
|
|
205
208
|
|
|
206
209
|
expect(
|
|
207
210
|
screen.getByLabelText( 'Border color and style picker.' )
|
|
208
211
|
).toBeInTheDocument();
|
|
209
212
|
} );
|
|
210
213
|
|
|
211
|
-
it( 'should correctly describe named color selection',
|
|
214
|
+
it( 'should correctly describe named color selection', () => {
|
|
212
215
|
const props = createProps( { value: { color: '#72aee6' } } );
|
|
213
|
-
|
|
216
|
+
render( <BorderControl { ...props } /> );
|
|
214
217
|
|
|
215
218
|
expect(
|
|
216
219
|
screen.getByLabelText(
|
|
@@ -219,9 +222,9 @@ describe( 'BorderControl', () => {
|
|
|
219
222
|
).toBeInTheDocument();
|
|
220
223
|
} );
|
|
221
224
|
|
|
222
|
-
it( 'should correctly describe custom color selection',
|
|
225
|
+
it( 'should correctly describe custom color selection', () => {
|
|
223
226
|
const props = createProps( { value: { color: '#4b1d80' } } );
|
|
224
|
-
|
|
227
|
+
render( <BorderControl { ...props } /> );
|
|
225
228
|
|
|
226
229
|
expect(
|
|
227
230
|
screen.getByLabelText(
|
|
@@ -230,11 +233,11 @@ describe( 'BorderControl', () => {
|
|
|
230
233
|
).toBeInTheDocument();
|
|
231
234
|
} );
|
|
232
235
|
|
|
233
|
-
it( 'should correctly describe named color and style selections',
|
|
236
|
+
it( 'should correctly describe named color and style selections', () => {
|
|
234
237
|
const props = createProps( {
|
|
235
238
|
value: { color: '#72aee6', style: 'dotted' },
|
|
236
239
|
} );
|
|
237
|
-
|
|
240
|
+
render( <BorderControl { ...props } /> );
|
|
238
241
|
|
|
239
242
|
expect(
|
|
240
243
|
screen.getByLabelText(
|
|
@@ -243,11 +246,11 @@ describe( 'BorderControl', () => {
|
|
|
243
246
|
).toBeInTheDocument();
|
|
244
247
|
} );
|
|
245
248
|
|
|
246
|
-
it( 'should correctly describe custom color and style selections',
|
|
249
|
+
it( 'should correctly describe custom color and style selections', () => {
|
|
247
250
|
const props = createProps( {
|
|
248
251
|
value: { color: '#4b1d80', style: 'dashed' },
|
|
249
252
|
} );
|
|
250
|
-
|
|
253
|
+
render( <BorderControl { ...props } /> );
|
|
251
254
|
|
|
252
255
|
expect(
|
|
253
256
|
screen.getByLabelText(
|
|
@@ -258,24 +261,24 @@ describe( 'BorderControl', () => {
|
|
|
258
261
|
} );
|
|
259
262
|
|
|
260
263
|
describe( 'with style selection disabled', () => {
|
|
261
|
-
it( 'should only include color in the label',
|
|
264
|
+
it( 'should only include color in the label', () => {
|
|
262
265
|
const props = createProps( {
|
|
263
266
|
value: undefined,
|
|
264
267
|
enableStyle: false,
|
|
265
268
|
} );
|
|
266
|
-
|
|
269
|
+
render( <BorderControl { ...props } /> );
|
|
267
270
|
|
|
268
271
|
expect(
|
|
269
272
|
screen.getByLabelText( 'Border color picker.' )
|
|
270
273
|
).toBeInTheDocument();
|
|
271
274
|
} );
|
|
272
275
|
|
|
273
|
-
it( 'should correctly describe named color selection',
|
|
276
|
+
it( 'should correctly describe named color selection', () => {
|
|
274
277
|
const props = createProps( {
|
|
275
278
|
value: { color: '#72aee6' },
|
|
276
279
|
enableStyle: false,
|
|
277
280
|
} );
|
|
278
|
-
|
|
281
|
+
render( <BorderControl { ...props } /> );
|
|
279
282
|
|
|
280
283
|
expect(
|
|
281
284
|
screen.getByLabelText(
|
|
@@ -284,12 +287,12 @@ describe( 'BorderControl', () => {
|
|
|
284
287
|
).toBeInTheDocument();
|
|
285
288
|
} );
|
|
286
289
|
|
|
287
|
-
it( 'should correctly describe custom color selection',
|
|
290
|
+
it( 'should correctly describe custom color selection', () => {
|
|
288
291
|
const props = createProps( {
|
|
289
292
|
value: { color: '#4b1d80' },
|
|
290
293
|
enableStyle: false,
|
|
291
294
|
} );
|
|
292
|
-
|
|
295
|
+
render( <BorderControl { ...props } /> );
|
|
293
296
|
|
|
294
297
|
expect(
|
|
295
298
|
screen.getByLabelText(
|
|
@@ -301,9 +304,9 @@ describe( 'BorderControl', () => {
|
|
|
301
304
|
} );
|
|
302
305
|
|
|
303
306
|
describe( 'onChange handling', () => {
|
|
304
|
-
it( 'should update width with slider value',
|
|
307
|
+
it( 'should update width with slider value', () => {
|
|
305
308
|
const props = createProps( { withSlider: true } );
|
|
306
|
-
const { rerender } =
|
|
309
|
+
const { rerender } = render( <BorderControl { ...props } /> );
|
|
307
310
|
|
|
308
311
|
const slider = getSliderInput();
|
|
309
312
|
fireEvent.change( slider, { target: { value: '5' } } );
|
|
@@ -313,7 +316,7 @@ describe( 'BorderControl', () => {
|
|
|
313
316
|
width: '5px',
|
|
314
317
|
} );
|
|
315
318
|
|
|
316
|
-
|
|
319
|
+
rerender( <BorderControl { ...props } /> );
|
|
317
320
|
const widthInput = getWidthInput();
|
|
318
321
|
|
|
319
322
|
expect( widthInput.value ).toEqual( '5' );
|
|
@@ -321,7 +324,7 @@ describe( 'BorderControl', () => {
|
|
|
321
324
|
|
|
322
325
|
it( 'should update color selection', async () => {
|
|
323
326
|
const props = createProps();
|
|
324
|
-
|
|
327
|
+
render( <BorderControl { ...props } /> );
|
|
325
328
|
await openPopover();
|
|
326
329
|
clickButton( 'Color: Green' );
|
|
327
330
|
|
|
@@ -333,7 +336,7 @@ describe( 'BorderControl', () => {
|
|
|
333
336
|
|
|
334
337
|
it( 'should clear color selection when toggling swatch off', async () => {
|
|
335
338
|
const props = createProps();
|
|
336
|
-
|
|
339
|
+
render( <BorderControl { ...props } /> );
|
|
337
340
|
await openPopover();
|
|
338
341
|
clickButton( 'Color: Blue' );
|
|
339
342
|
|
|
@@ -345,7 +348,7 @@ describe( 'BorderControl', () => {
|
|
|
345
348
|
|
|
346
349
|
it( 'should update style selection', async () => {
|
|
347
350
|
const props = createProps();
|
|
348
|
-
|
|
351
|
+
render( <BorderControl { ...props } /> );
|
|
349
352
|
await openPopover();
|
|
350
353
|
clickButton( 'Dashed' );
|
|
351
354
|
|
|
@@ -357,7 +360,7 @@ describe( 'BorderControl', () => {
|
|
|
357
360
|
|
|
358
361
|
it( 'should take no action when color and style popover is closed', async () => {
|
|
359
362
|
const props = createProps( { showDropdownHeader: true } );
|
|
360
|
-
|
|
363
|
+
render( <BorderControl { ...props } /> );
|
|
361
364
|
await openPopover();
|
|
362
365
|
clickButton( 'Close border color' );
|
|
363
366
|
|
|
@@ -366,7 +369,7 @@ describe( 'BorderControl', () => {
|
|
|
366
369
|
|
|
367
370
|
it( 'should reset color and style only when popover reset button clicked', async () => {
|
|
368
371
|
const props = createProps();
|
|
369
|
-
|
|
372
|
+
render( <BorderControl { ...props } /> );
|
|
370
373
|
await openPopover();
|
|
371
374
|
clickButton( 'Reset to default' );
|
|
372
375
|
|
|
@@ -379,9 +382,9 @@ describe( 'BorderControl', () => {
|
|
|
379
382
|
|
|
380
383
|
it( 'should sanitize border when width and color are undefined', async () => {
|
|
381
384
|
const props = createProps();
|
|
382
|
-
const { rerender } =
|
|
385
|
+
const { rerender } = render( <BorderControl { ...props } /> );
|
|
383
386
|
clearWidthInput();
|
|
384
|
-
|
|
387
|
+
rerender( <BorderControl { ...props } /> );
|
|
385
388
|
await openPopover();
|
|
386
389
|
clickButton( 'Color: Blue' );
|
|
387
390
|
|
|
@@ -392,9 +395,9 @@ describe( 'BorderControl', () => {
|
|
|
392
395
|
const props = createProps( {
|
|
393
396
|
shouldSanitizeBorder: false,
|
|
394
397
|
} );
|
|
395
|
-
const { rerender } =
|
|
398
|
+
const { rerender } = render( <BorderControl { ...props } /> );
|
|
396
399
|
clearWidthInput();
|
|
397
|
-
|
|
400
|
+
rerender( <BorderControl { ...props } /> );
|
|
398
401
|
await openPopover();
|
|
399
402
|
clickButton( 'Color: Blue' );
|
|
400
403
|
|
|
@@ -407,7 +410,7 @@ describe( 'BorderControl', () => {
|
|
|
407
410
|
|
|
408
411
|
it( 'should clear color and set style to `none` when setting zero width', async () => {
|
|
409
412
|
const props = createProps();
|
|
410
|
-
|
|
413
|
+
render( <BorderControl { ...props } /> );
|
|
411
414
|
await openPopover();
|
|
412
415
|
clickButton( 'Color: Green' );
|
|
413
416
|
clickButton( 'Dotted' );
|
|
@@ -422,12 +425,12 @@ describe( 'BorderControl', () => {
|
|
|
422
425
|
|
|
423
426
|
it( 'should reselect color and style selections when changing to non-zero width', async () => {
|
|
424
427
|
const props = createProps();
|
|
425
|
-
const { rerender } =
|
|
428
|
+
const { rerender } = render( <BorderControl { ...props } /> );
|
|
426
429
|
await openPopover();
|
|
427
430
|
clickButton( 'Color: Green' );
|
|
428
|
-
|
|
431
|
+
rerender( <BorderControl { ...props } /> );
|
|
429
432
|
clickButton( 'Dotted' );
|
|
430
|
-
|
|
433
|
+
rerender( <BorderControl { ...props } /> );
|
|
431
434
|
setWidthInput( '0' );
|
|
432
435
|
setWidthInput( '5' );
|
|
433
436
|
|
|
@@ -440,7 +443,7 @@ describe( 'BorderControl', () => {
|
|
|
440
443
|
|
|
441
444
|
it( 'should set a non-zero width when applying color to zero width border', async () => {
|
|
442
445
|
const props = createProps( { value: undefined } );
|
|
443
|
-
const { rerender } =
|
|
446
|
+
const { rerender } = render( <BorderControl { ...props } /> );
|
|
444
447
|
await openPopover();
|
|
445
448
|
clickButton( 'Color: Yellow' );
|
|
446
449
|
|
|
@@ -451,7 +454,7 @@ describe( 'BorderControl', () => {
|
|
|
451
454
|
} );
|
|
452
455
|
|
|
453
456
|
setWidthInput( '0' );
|
|
454
|
-
|
|
457
|
+
rerender( <BorderControl { ...props } /> );
|
|
455
458
|
clickButton( 'Color: Green' );
|
|
456
459
|
|
|
457
460
|
expect( props.onChange ).toHaveBeenCalledWith( {
|
|
@@ -466,7 +469,7 @@ describe( 'BorderControl', () => {
|
|
|
466
469
|
value: undefined,
|
|
467
470
|
shouldSanitizeBorder: false,
|
|
468
471
|
} );
|
|
469
|
-
const { rerender } =
|
|
472
|
+
const { rerender } = render( <BorderControl { ...props } /> );
|
|
470
473
|
await openPopover();
|
|
471
474
|
clickButton( 'Dashed' );
|
|
472
475
|
|
|
@@ -477,7 +480,7 @@ describe( 'BorderControl', () => {
|
|
|
477
480
|
} );
|
|
478
481
|
|
|
479
482
|
setWidthInput( '0' );
|
|
480
|
-
|
|
483
|
+
rerender( <BorderControl { ...props } /> );
|
|
481
484
|
clickButton( 'Dotted' );
|
|
482
485
|
|
|
483
486
|
expect( props.onChange ).toHaveBeenCalledWith( {
|
|
@@ -17,10 +17,7 @@ export type Border = {
|
|
|
17
17
|
|
|
18
18
|
export type ColorProps = Pick<
|
|
19
19
|
ColorPaletteProps,
|
|
20
|
-
| '
|
|
21
|
-
| 'enableAlpha'
|
|
22
|
-
| '__experimentalHasMultipleOrigins'
|
|
23
|
-
| '__experimentalIsRenderedInSidebar'
|
|
20
|
+
'colors' | 'enableAlpha' | '__experimentalIsRenderedInSidebar'
|
|
24
21
|
> & {
|
|
25
22
|
/**
|
|
26
23
|
* This toggles the ability to choose custom colors.
|
|
@@ -15,6 +15,8 @@ import { useState } from '@wordpress/element';
|
|
|
15
15
|
import BaseCheckboxControl from '..';
|
|
16
16
|
import type { CheckboxControlProps } from '../types';
|
|
17
17
|
|
|
18
|
+
jest.useFakeTimers();
|
|
19
|
+
|
|
18
20
|
const noop = () => {};
|
|
19
21
|
|
|
20
22
|
const getInput = () => screen.getByRole( 'checkbox' ) as HTMLInputElement;
|
|
@@ -32,6 +32,7 @@ import type {
|
|
|
32
32
|
SinglePaletteProps,
|
|
33
33
|
} from './types';
|
|
34
34
|
import type { WordPressComponentProps } from '../ui/context';
|
|
35
|
+
import type { DropdownProps } from '../dropdown/types';
|
|
35
36
|
|
|
36
37
|
extend( [ namesPlugin, a11yPlugin ] );
|
|
37
38
|
|
|
@@ -134,7 +135,7 @@ export function CustomColorPickerDropdown( {
|
|
|
134
135
|
popoverProps: receivedPopoverProps,
|
|
135
136
|
...props
|
|
136
137
|
}: CustomColorPickerDropdownProps ) {
|
|
137
|
-
const popoverProps = useMemo(
|
|
138
|
+
const popoverProps = useMemo< DropdownProps[ 'popoverProps' ] >(
|
|
138
139
|
() => ( {
|
|
139
140
|
shift: true,
|
|
140
141
|
...( isRenderedInSidebar
|
|
@@ -166,7 +167,7 @@ export function CustomColorPickerDropdown( {
|
|
|
166
167
|
export const extractColorNameFromCurrentValue = (
|
|
167
168
|
currentValue?: ColorPaletteProps[ 'value' ],
|
|
168
169
|
colors: ColorPaletteProps[ 'colors' ] = [],
|
|
169
|
-
showMultiplePalettes:
|
|
170
|
+
showMultiplePalettes: boolean = false
|
|
170
171
|
) => {
|
|
171
172
|
if ( ! currentValue ) {
|
|
172
173
|
return '';
|
|
@@ -224,33 +225,32 @@ function UnforwardedColorPalette(
|
|
|
224
225
|
enableAlpha = false,
|
|
225
226
|
onChange,
|
|
226
227
|
value,
|
|
227
|
-
__experimentalHasMultipleOrigins = false,
|
|
228
228
|
__experimentalIsRenderedInSidebar = false,
|
|
229
229
|
...otherProps
|
|
230
230
|
} = props;
|
|
231
231
|
const clearColor = useCallback( () => onChange( undefined ), [ onChange ] );
|
|
232
232
|
|
|
233
|
+
const hasMultipleColorOrigins =
|
|
234
|
+
colors.length > 0 &&
|
|
235
|
+
( colors as PaletteObject[] )[ 0 ].colors !== undefined;
|
|
233
236
|
const buttonLabelName = useMemo(
|
|
234
237
|
() =>
|
|
235
238
|
extractColorNameFromCurrentValue(
|
|
236
239
|
value,
|
|
237
240
|
colors,
|
|
238
|
-
|
|
241
|
+
hasMultipleColorOrigins
|
|
239
242
|
),
|
|
240
|
-
[ value, colors,
|
|
243
|
+
[ value, colors, hasMultipleColorOrigins ]
|
|
241
244
|
);
|
|
242
245
|
|
|
243
|
-
// Make sure that the `colors` array has a format
|
|
244
|
-
// compatible with the `__experimentalHasMultipleOrigins` flag. This is true
|
|
245
|
-
// when __experimentalHasMultipleOrigins and areColorsMultiplePalette() are
|
|
246
|
-
// either both `true` or both `false`.
|
|
246
|
+
// Make sure that the `colors` array has a valid format.
|
|
247
247
|
if (
|
|
248
248
|
colors.length > 0 &&
|
|
249
|
-
|
|
249
|
+
hasMultipleColorOrigins !== areColorsMultiplePalette( colors )
|
|
250
250
|
) {
|
|
251
251
|
// eslint-disable-next-line no-console
|
|
252
252
|
console.warn(
|
|
253
|
-
'wp.components.ColorPalette: please specify a format for the `colors` prop
|
|
253
|
+
'wp.components.ColorPalette: please specify a valid format for the `colors` prop. '
|
|
254
254
|
);
|
|
255
255
|
return null;
|
|
256
256
|
}
|
|
@@ -340,7 +340,7 @@ function UnforwardedColorPalette(
|
|
|
340
340
|
) }
|
|
341
341
|
/>
|
|
342
342
|
) }
|
|
343
|
-
{
|
|
343
|
+
{ hasMultipleColorOrigins ? (
|
|
344
344
|
<MultiplePalettes
|
|
345
345
|
{ ...paletteCommonProps }
|
|
346
346
|
colors={ colors as PaletteObject[] }
|
|
@@ -20,13 +20,6 @@ const meta: ComponentMeta< typeof ColorPalette > = {
|
|
|
20
20
|
title: 'Components/ColorPalette',
|
|
21
21
|
component: ColorPalette,
|
|
22
22
|
argTypes: {
|
|
23
|
-
// Removing the control because setting this prop without changing the
|
|
24
|
-
// format of the `colors` prop can break the component.
|
|
25
|
-
__experimentalHasMultipleOrigins: {
|
|
26
|
-
control: {
|
|
27
|
-
type: null,
|
|
28
|
-
},
|
|
29
|
-
},
|
|
30
23
|
as: { control: { type: null } },
|
|
31
24
|
onChange: { action: 'onChange', control: { type: null } },
|
|
32
25
|
value: { control: { type: null } },
|
|
@@ -69,14 +62,8 @@ Default.args = {
|
|
|
69
62
|
],
|
|
70
63
|
};
|
|
71
64
|
|
|
72
|
-
/**
|
|
73
|
-
* When setting the `__experimentalHasMultipleOrigins` prop to `true`,
|
|
74
|
-
* the `colors` prop is expected to be an array of color palettes, rather
|
|
75
|
-
* than an array of color objects.
|
|
76
|
-
*/
|
|
77
65
|
export const MultipleOrigins = Template.bind( {} );
|
|
78
66
|
MultipleOrigins.args = {
|
|
79
|
-
__experimentalHasMultipleOrigins: true,
|
|
80
67
|
colors: [
|
|
81
68
|
{
|
|
82
69
|
name: 'Primary colors',
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import type { CSSProperties,
|
|
4
|
+
import type { CSSProperties, ReactNode } from 'react';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Internal dependencies
|
|
8
8
|
*/
|
|
9
|
-
import type {
|
|
9
|
+
import type { DropdownProps } from '../dropdown/types';
|
|
10
10
|
|
|
11
11
|
export type ColorObject = {
|
|
12
12
|
name: string;
|
|
@@ -37,15 +37,8 @@ export type MultiplePalettesProps = PaletteProps & {
|
|
|
37
37
|
colors: PaletteObject[];
|
|
38
38
|
};
|
|
39
39
|
|
|
40
|
-
|
|
41
|
-
export type CustomColorPickerDropdownProps = {
|
|
40
|
+
export type CustomColorPickerDropdownProps = DropdownProps & {
|
|
42
41
|
isRenderedInSidebar: boolean;
|
|
43
|
-
renderContent: () => ReactNode;
|
|
44
|
-
popoverProps?: Omit< PopoverProps, 'children' >;
|
|
45
|
-
renderToggle: ( props: {
|
|
46
|
-
isOpen: boolean;
|
|
47
|
-
onToggle: MouseEventHandler< HTMLButtonElement >;
|
|
48
|
-
} ) => ReactNode;
|
|
49
42
|
};
|
|
50
43
|
|
|
51
44
|
export type ColorPaletteProps = Pick< PaletteProps, 'onChange' > & {
|
|
@@ -81,13 +74,6 @@ export type ColorPaletteProps = Pick< PaletteProps, 'onChange' > & {
|
|
|
81
74
|
* Currently active value.
|
|
82
75
|
*/
|
|
83
76
|
value?: string;
|
|
84
|
-
/**
|
|
85
|
-
* Whether the colors prop is an array of color palettes,
|
|
86
|
-
* rather than an array of color objects.
|
|
87
|
-
*
|
|
88
|
-
* @default false
|
|
89
|
-
*/
|
|
90
|
-
__experimentalHasMultipleOrigins?: boolean;
|
|
91
77
|
/**
|
|
92
78
|
* Whether this is rendered in the sidebar.
|
|
93
79
|
*
|