@wordpress/components 23.9.0 → 25.0.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 +62 -0
- package/CONTRIBUTING.md +75 -1
- package/README.md +1 -3
- package/build/autocomplete/autocompleter-ui.js +0 -2
- package/build/autocomplete/autocompleter-ui.js.map +1 -1
- package/build/autocomplete/index.js +2 -0
- package/build/autocomplete/index.js.map +1 -1
- package/build/button/index.js +2 -0
- package/build/button/index.js.map +1 -1
- package/build/card/card-media/component.js +2 -1
- package/build/card/card-media/component.js.map +1 -1
- package/build/color-picker/styles.js +8 -8
- package/build/color-picker/styles.js.map +1 -1
- package/build/combobox-control/index.js +7 -5
- package/build/combobox-control/index.js.map +1 -1
- package/build/combobox-control/styles.js +3 -3
- package/build/combobox-control/styles.js.map +1 -1
- package/build/date-time/date-time/index.js +3 -84
- package/build/date-time/date-time/index.js.map +1 -1
- package/build/date-time/date-time/styles.js +4 -19
- package/build/date-time/date-time/styles.js.map +1 -1
- package/build/dimension-control/index.js +1 -1
- package/build/dimension-control/index.js.map +1 -1
- package/build/draggable/index.js +2 -7
- package/build/draggable/index.js.map +1 -1
- package/build/dropdown-menu/index.js +87 -11
- package/build/dropdown-menu/index.js.map +1 -1
- package/build/dropdown-menu/types.js +6 -0
- package/build/dropdown-menu/types.js.map +1 -0
- package/build/dropdown-menu-v2/index.js +195 -0
- package/build/dropdown-menu-v2/index.js.map +1 -0
- package/build/dropdown-menu-v2/styles.js +176 -0
- package/build/dropdown-menu-v2/styles.js.map +1 -0
- package/build/dropdown-menu-v2/types.js +6 -0
- package/build/dropdown-menu-v2/types.js.map +1 -0
- package/build/form-token-field/index.js +5 -3
- package/build/form-token-field/index.js.map +1 -1
- package/build/form-token-field/styles.js +3 -3
- package/build/form-token-field/styles.js.map +1 -1
- package/build/index.native.js +0 -9
- package/build/index.native.js.map +1 -1
- package/build/input-control/styles/input-control-styles.js +30 -23
- package/build/input-control/styles/input-control-styles.js.map +1 -1
- package/build/mobile/bottom-sheet/cell.native.js +16 -8
- package/build/mobile/bottom-sheet/cell.native.js.map +1 -1
- package/build/mobile/bottom-sheet/range-cell.native.js +3 -2
- package/build/mobile/bottom-sheet/range-cell.native.js.map +1 -1
- package/build/mobile/bottom-sheet/stepper-cell/index.native.js +4 -2
- package/build/mobile/bottom-sheet/stepper-cell/index.native.js.map +1 -1
- package/build/mobile/bottom-sheet/switch-cell.native.js +8 -2
- package/build/mobile/bottom-sheet/switch-cell.native.js.map +1 -1
- package/build/mobile/bottom-sheet-select-control/index.native.js +4 -2
- package/build/mobile/bottom-sheet-select-control/index.native.js.map +1 -1
- package/build/mobile/bottom-sheet-text-control/index.native.js +4 -2
- package/build/mobile/bottom-sheet-text-control/index.native.js.map +1 -1
- package/build/mobile/global-styles-context/index.native.js +13 -1
- package/build/mobile/global-styles-context/index.native.js.map +1 -1
- package/build/mobile/link-picker/link-picker-results.native.js +3 -1
- package/build/mobile/link-picker/link-picker-results.native.js.map +1 -1
- package/build/navigable-container/container.js +39 -19
- package/build/navigable-container/container.js.map +1 -1
- package/build/navigable-container/index.js.map +1 -1
- package/build/navigable-container/menu.js +37 -5
- package/build/navigable-container/menu.js.map +1 -1
- package/build/navigable-container/tabbable.js +45 -4
- package/build/navigable-container/tabbable.js.map +1 -1
- package/build/navigable-container/types.js +6 -0
- package/build/navigable-container/types.js.map +1 -0
- package/build/palette-edit/index.js +34 -12
- package/build/palette-edit/index.js.map +1 -1
- package/build/private-apis.js +13 -1
- package/build/private-apis.js.map +1 -1
- package/build/range-control/index.native.js +5 -2
- package/build/range-control/index.native.js.map +1 -1
- package/build/sandbox/index.native.js +6 -2
- package/build/sandbox/index.native.js.map +1 -1
- package/build/slot-fill/bubbles-virtually/fill.js +2 -1
- package/build/slot-fill/bubbles-virtually/fill.js.map +1 -1
- package/build/slot-fill/bubbles-virtually/slot-fill-provider.js +45 -35
- package/build/slot-fill/bubbles-virtually/slot-fill-provider.js.map +1 -1
- package/build/slot-fill/bubbles-virtually/use-slot.js +11 -26
- package/build/slot-fill/bubbles-virtually/use-slot.js.map +1 -1
- package/build/slot-fill/fill.js +7 -31
- package/build/slot-fill/fill.js.map +1 -1
- package/build/slot-fill/index.js.map +1 -1
- package/build/slot-fill/provider.js +0 -6
- package/build/slot-fill/provider.js.map +1 -1
- package/build/slot-fill/slot.js +0 -5
- package/build/slot-fill/slot.js.map +1 -1
- package/build/snackbar/list.js +0 -2
- package/build/snackbar/list.js.map +1 -1
- package/build/tab-panel/index.js.map +1 -1
- package/build/theme/color-algorithms.js +1 -1
- package/build/theme/color-algorithms.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control/styles.js +7 -7
- package/build/toggle-group-control/toggle-group-control/styles.js.map +1 -1
- package/build/toolbar/toolbar-button/index.js +1 -2
- package/build/toolbar/toolbar-button/index.js.map +1 -1
- package/build/toolbar/toolbar-item/index.js +4 -2
- package/build/toolbar/toolbar-item/index.js.map +1 -1
- package/build/utils/colors-values.js +3 -3
- package/build/utils/colors-values.js.map +1 -1
- package/build/utils/use-deprecated-props.js +35 -0
- package/build/utils/use-deprecated-props.js.map +1 -0
- package/build-module/autocomplete/autocompleter-ui.js +1 -3
- package/build-module/autocomplete/autocompleter-ui.js.map +1 -1
- package/build-module/autocomplete/index.js +3 -3
- package/build-module/autocomplete/index.js.map +1 -1
- package/build-module/button/index.js +2 -0
- package/build-module/button/index.js.map +1 -1
- package/build-module/card/card-media/component.js +2 -1
- package/build-module/card/card-media/component.js.map +1 -1
- package/build-module/color-picker/styles.js +8 -8
- package/build-module/color-picker/styles.js.map +1 -1
- package/build-module/combobox-control/index.js +6 -5
- package/build-module/combobox-control/index.js.map +1 -1
- package/build-module/combobox-control/styles.js +3 -3
- package/build-module/combobox-control/styles.js.map +1 -1
- package/build-module/date-time/date-time/index.js +6 -81
- package/build-module/date-time/date-time/index.js.map +1 -1
- package/build-module/date-time/date-time/styles.js +3 -17
- package/build-module/date-time/date-time/styles.js.map +1 -1
- package/build-module/dimension-control/index.js +1 -1
- package/build-module/dimension-control/index.js.map +1 -1
- package/build-module/draggable/index.js +2 -7
- package/build-module/draggable/index.js.map +1 -1
- package/build-module/dropdown-menu/index.js +87 -10
- package/build-module/dropdown-menu/index.js.map +1 -1
- package/build-module/dropdown-menu/types.js +2 -0
- package/build-module/dropdown-menu/types.js.map +1 -0
- package/build-module/dropdown-menu-v2/index.js +149 -0
- package/build-module/dropdown-menu-v2/index.js.map +1 -0
- package/build-module/dropdown-menu-v2/styles.js +153 -0
- package/build-module/dropdown-menu-v2/styles.js.map +1 -0
- package/build-module/dropdown-menu-v2/types.js +2 -0
- package/build-module/dropdown-menu-v2/types.js.map +1 -0
- package/build-module/form-token-field/index.js +4 -3
- package/build-module/form-token-field/index.js.map +1 -1
- package/build-module/form-token-field/styles.js +3 -3
- package/build-module/form-token-field/styles.js.map +1 -1
- package/build-module/index.native.js +0 -1
- package/build-module/index.native.js.map +1 -1
- package/build-module/input-control/styles/input-control-styles.js +30 -23
- package/build-module/input-control/styles/input-control-styles.js.map +1 -1
- package/build-module/mobile/bottom-sheet/cell.native.js +16 -8
- package/build-module/mobile/bottom-sheet/cell.native.js.map +1 -1
- package/build-module/mobile/bottom-sheet/range-cell.native.js +3 -2
- package/build-module/mobile/bottom-sheet/range-cell.native.js.map +1 -1
- package/build-module/mobile/bottom-sheet/stepper-cell/index.native.js +4 -2
- package/build-module/mobile/bottom-sheet/stepper-cell/index.native.js.map +1 -1
- package/build-module/mobile/bottom-sheet/switch-cell.native.js +7 -2
- package/build-module/mobile/bottom-sheet/switch-cell.native.js.map +1 -1
- package/build-module/mobile/bottom-sheet-select-control/index.native.js +4 -2
- package/build-module/mobile/bottom-sheet-select-control/index.native.js.map +1 -1
- package/build-module/mobile/bottom-sheet-text-control/index.native.js +4 -2
- package/build-module/mobile/bottom-sheet-text-control/index.native.js.map +1 -1
- package/build-module/mobile/global-styles-context/index.native.js +13 -1
- package/build-module/mobile/global-styles-context/index.native.js.map +1 -1
- package/build-module/mobile/link-picker/link-picker-results.native.js +3 -1
- package/build-module/mobile/link-picker/link-picker-results.native.js.map +1 -1
- package/build-module/navigable-container/container.js +43 -19
- package/build-module/navigable-container/container.js.map +1 -1
- package/build-module/navigable-container/index.js +0 -2
- package/build-module/navigable-container/index.js.map +1 -1
- package/build-module/navigable-container/menu.js +36 -4
- package/build-module/navigable-container/menu.js.map +1 -1
- package/build-module/navigable-container/tabbable.js +44 -3
- package/build-module/navigable-container/tabbable.js.map +1 -1
- package/build-module/navigable-container/types.js +2 -0
- package/build-module/navigable-container/types.js.map +1 -0
- package/build-module/palette-edit/index.js +34 -13
- package/build-module/palette-edit/index.js.map +1 -1
- package/build-module/private-apis.js +12 -1
- package/build-module/private-apis.js.map +1 -1
- package/build-module/range-control/index.native.js +5 -2
- package/build-module/range-control/index.native.js.map +1 -1
- package/build-module/sandbox/index.native.js +6 -2
- package/build-module/sandbox/index.native.js.map +1 -1
- package/build-module/slot-fill/bubbles-virtually/fill.js +2 -1
- package/build-module/slot-fill/bubbles-virtually/fill.js.map +1 -1
- package/build-module/slot-fill/bubbles-virtually/slot-fill-provider.js +46 -36
- package/build-module/slot-fill/bubbles-virtually/slot-fill-provider.js.map +1 -1
- package/build-module/slot-fill/bubbles-virtually/use-slot.js +12 -27
- package/build-module/slot-fill/bubbles-virtually/use-slot.js.map +1 -1
- package/build-module/slot-fill/fill.js +7 -31
- package/build-module/slot-fill/fill.js.map +1 -1
- package/build-module/slot-fill/index.js +1 -2
- package/build-module/slot-fill/index.js.map +1 -1
- package/build-module/slot-fill/provider.js +0 -6
- package/build-module/slot-fill/provider.js.map +1 -1
- package/build-module/slot-fill/slot.js +0 -5
- package/build-module/slot-fill/slot.js.map +1 -1
- package/build-module/snackbar/list.js +0 -2
- package/build-module/snackbar/list.js.map +1 -1
- package/build-module/tab-panel/index.js.map +1 -1
- package/build-module/theme/color-algorithms.js +1 -1
- package/build-module/theme/color-algorithms.js.map +1 -1
- package/build-module/toggle-group-control/toggle-group-control/styles.js +7 -7
- package/build-module/toggle-group-control/toggle-group-control/styles.js.map +1 -1
- package/build-module/toolbar/toolbar-button/index.js +1 -2
- package/build-module/toolbar/toolbar-button/index.js.map +1 -1
- package/build-module/toolbar/toolbar-item/index.js +5 -2
- package/build-module/toolbar/toolbar-item/index.js.map +1 -1
- package/build-module/utils/colors-values.js +3 -3
- package/build-module/utils/colors-values.js.map +1 -1
- package/build-module/utils/use-deprecated-props.js +25 -0
- package/build-module/utils/use-deprecated-props.js.map +1 -0
- package/build-style/style-rtl.css +67 -67
- package/build-style/style.css +67 -67
- package/build-types/autocomplete/autocompleter-ui.d.ts.map +1 -1
- package/build-types/autocomplete/index.d.ts.map +1 -1
- package/build-types/autocomplete/types.d.ts +2 -18
- package/build-types/autocomplete/types.d.ts.map +1 -1
- package/build-types/button/deprecated.d.ts +6 -0
- package/build-types/button/deprecated.d.ts.map +1 -1
- package/build-types/button/index.d.ts.map +1 -1
- package/build-types/button/types.d.ts +7 -0
- package/build-types/button/types.d.ts.map +1 -1
- package/build-types/card/card-media/component.d.ts +2 -1
- package/build-types/card/card-media/component.d.ts.map +1 -1
- package/build-types/card/stories/index.d.ts +21 -1
- package/build-types/card/stories/index.d.ts.map +1 -1
- package/build-types/color-picker/styles.d.ts.map +1 -1
- package/build-types/combobox-control/index.d.ts +1 -1
- package/build-types/combobox-control/index.d.ts.map +1 -1
- package/build-types/combobox-control/stories/index.d.ts.map +1 -1
- package/build-types/combobox-control/styles.d.ts +1 -1
- package/build-types/combobox-control/types.d.ts +8 -1
- package/build-types/combobox-control/types.d.ts.map +1 -1
- package/build-types/date-time/date-time/index.d.ts +3 -4
- package/build-types/date-time/date-time/index.d.ts.map +1 -1
- package/build-types/date-time/date-time/styles.d.ts +0 -4
- package/build-types/date-time/date-time/styles.d.ts.map +1 -1
- package/build-types/date-time/stories/date-time.d.ts.map +1 -1
- package/build-types/date-time/types.d.ts +0 -14
- package/build-types/date-time/types.d.ts.map +1 -1
- package/build-types/dimension-control/index.d.ts +1 -1
- package/build-types/draggable/index.d.ts.map +1 -1
- package/build-types/dropdown-menu/index.d.ts +83 -1
- package/build-types/dropdown-menu/index.d.ts.map +1 -1
- package/build-types/dropdown-menu/stories/index.d.ts +13 -0
- package/build-types/dropdown-menu/stories/index.d.ts.map +1 -0
- package/build-types/dropdown-menu/test/index.d.ts +2 -0
- package/build-types/dropdown-menu/test/index.d.ts.map +1 -0
- package/build-types/dropdown-menu/types.d.ts +134 -0
- package/build-types/dropdown-menu/types.d.ts.map +1 -0
- package/build-types/dropdown-menu-v2/index.d.ts +17 -0
- package/build-types/dropdown-menu-v2/index.d.ts.map +1 -0
- package/build-types/dropdown-menu-v2/stories/index.d.ts +13 -0
- package/build-types/dropdown-menu-v2/stories/index.d.ts.map +1 -0
- package/build-types/dropdown-menu-v2/styles.d.ts +41 -0
- package/build-types/dropdown-menu-v2/styles.d.ts.map +1 -0
- package/build-types/dropdown-menu-v2/test/index.d.ts +2 -0
- package/build-types/dropdown-menu-v2/test/index.d.ts.map +1 -0
- package/build-types/dropdown-menu-v2/types.d.ts +242 -0
- package/build-types/dropdown-menu-v2/types.d.ts.map +1 -0
- package/build-types/form-token-field/index.d.ts.map +1 -1
- package/build-types/form-token-field/styles.d.ts +1 -1
- package/build-types/form-token-field/types.d.ts +8 -1
- package/build-types/form-token-field/types.d.ts.map +1 -1
- package/build-types/input-control/styles/input-control-styles.d.ts.map +1 -1
- package/build-types/navigable-container/container.d.ts +20 -1
- package/build-types/navigable-container/container.d.ts.map +1 -1
- package/build-types/navigable-container/index.d.ts +5 -2
- package/build-types/navigable-container/index.d.ts.map +1 -1
- package/build-types/navigable-container/menu.d.ts +45 -11
- package/build-types/navigable-container/menu.d.ts.map +1 -1
- package/build-types/navigable-container/stories/navigable-menu.d.ts +12 -0
- package/build-types/navigable-container/stories/navigable-menu.d.ts.map +1 -0
- package/build-types/navigable-container/stories/tabbable-container.d.ts +12 -0
- package/build-types/navigable-container/stories/tabbable-container.d.ts.map +1 -0
- package/build-types/navigable-container/tabbable.d.ts +52 -9
- package/build-types/navigable-container/tabbable.d.ts.map +1 -1
- package/build-types/navigable-container/test/navigable-menu.d.ts +2 -0
- package/build-types/navigable-container/test/navigable-menu.d.ts.map +1 -0
- package/build-types/navigable-container/test/tababble-container.d.ts +2 -0
- package/build-types/navigable-container/test/tababble-container.d.ts.map +1 -0
- package/build-types/navigable-container/types.d.ts +61 -0
- package/build-types/navigable-container/types.d.ts.map +1 -0
- package/build-types/navigator/navigator-back-button/component.d.ts +1 -0
- package/build-types/navigator/navigator-back-button/component.d.ts.map +1 -1
- package/build-types/navigator/navigator-back-button/hook.d.ts +1 -0
- package/build-types/navigator/navigator-back-button/hook.d.ts.map +1 -1
- package/build-types/navigator/navigator-button/component.d.ts +1 -0
- package/build-types/navigator/navigator-button/component.d.ts.map +1 -1
- package/build-types/navigator/navigator-button/hook.d.ts +1 -0
- package/build-types/navigator/navigator-button/hook.d.ts.map +1 -1
- package/build-types/navigator/navigator-to-parent-button/component.d.ts +1 -0
- package/build-types/navigator/navigator-to-parent-button/component.d.ts.map +1 -1
- package/build-types/palette-edit/index.d.ts +1 -1
- package/build-types/palette-edit/index.d.ts.map +1 -1
- package/build-types/palette-edit/stories/index.d.ts.map +1 -1
- package/build-types/palette-edit/types.d.ts +8 -0
- package/build-types/palette-edit/types.d.ts.map +1 -1
- package/build-types/private-apis.d.ts.map +1 -1
- package/build-types/slot-fill/bubbles-virtually/fill.d.ts.map +1 -1
- package/build-types/slot-fill/bubbles-virtually/slot-fill-provider.d.ts.map +1 -1
- package/build-types/slot-fill/bubbles-virtually/use-slot.d.ts.map +1 -1
- package/build-types/slot-fill/fill.d.ts +4 -2
- package/build-types/slot-fill/fill.d.ts.map +1 -1
- package/build-types/slot-fill/index.d.ts +1 -2
- package/build-types/slot-fill/index.d.ts.map +1 -1
- package/build-types/slot-fill/provider.d.ts +0 -2
- package/build-types/slot-fill/provider.d.ts.map +1 -1
- package/build-types/slot-fill/slot.d.ts.map +1 -1
- package/build-types/snackbar/list.d.ts.map +1 -1
- package/build-types/toggle-group-control/toggle-group-control/styles.d.ts.map +1 -1
- package/build-types/toolbar/stories/index.d.ts.map +1 -1
- package/build-types/toolbar/toolbar-button/index.d.ts +6 -0
- package/build-types/toolbar/toolbar-button/index.d.ts.map +1 -1
- package/build-types/toolbar/toolbar-item/index.d.ts +6 -4
- package/build-types/toolbar/toolbar-item/index.d.ts.map +1 -1
- package/build-types/tree-grid/types.d.ts +7 -0
- package/build-types/tree-grid/types.d.ts.map +1 -1
- package/build-types/ui/context/get-styled-class-name-from-key.d.ts +1 -10
- package/build-types/ui/context/get-styled-class-name-from-key.d.ts.map +1 -1
- package/build-types/utils/use-deprecated-props.d.ts +9 -0
- package/build-types/utils/use-deprecated-props.d.ts.map +1 -0
- package/package.json +21 -20
- package/src/autocomplete/README.md +78 -52
- package/src/autocomplete/autocompleter-ui.tsx +0 -2
- package/src/autocomplete/index.tsx +1 -2
- package/src/autocomplete/types.ts +3 -19
- package/src/button/index.tsx +2 -0
- package/src/button/style.scss +18 -18
- package/src/button/types.ts +7 -0
- package/src/card/card-media/README.md +1 -1
- package/src/card/card-media/component.tsx +2 -1
- package/src/card/stories/index.tsx +47 -26
- package/src/checkbox-control/style.scss +1 -4
- package/src/color-picker/styles.ts +7 -2
- package/src/combobox-control/index.tsx +24 -18
- package/src/combobox-control/stories/index.tsx +0 -1
- package/src/combobox-control/styles.ts +4 -4
- package/src/combobox-control/types.ts +8 -1
- package/src/custom-gradient-picker/style.scss +2 -2
- package/src/date-time/README.md +0 -16
- package/src/date-time/date-time/index.tsx +17 -155
- package/src/date-time/date-time/styles.ts +0 -4
- package/src/date-time/stories/date-time.tsx +0 -4
- package/src/date-time/types.ts +0 -16
- package/src/dimension-control/index.tsx +1 -1
- package/src/draggable/index.tsx +1 -9
- package/src/dropdown-menu/README.md +12 -22
- package/src/dropdown-menu/{index.js → index.tsx} +111 -25
- package/src/dropdown-menu/stories/{index.js → index.tsx} +14 -22
- package/src/dropdown-menu/test/{index.js → index.tsx} +6 -5
- package/src/dropdown-menu/types.ts +143 -0
- package/src/dropdown-menu-v2/README.md +392 -0
- package/src/dropdown-menu-v2/index.tsx +241 -0
- package/src/dropdown-menu-v2/stories/index.tsx +193 -0
- package/src/dropdown-menu-v2/styles.ts +263 -0
- package/src/dropdown-menu-v2/test/index.tsx +816 -0
- package/src/dropdown-menu-v2/types.ts +250 -0
- package/src/form-toggle/style.scss +1 -5
- package/src/form-token-field/index.tsx +7 -3
- package/src/form-token-field/styles.ts +4 -4
- package/src/form-token-field/types.ts +8 -1
- package/src/index.native.js +0 -1
- package/src/input-control/styles/input-control-styles.tsx +7 -0
- package/src/mobile/bottom-sheet/cell.native.js +26 -5
- package/src/mobile/bottom-sheet/range-cell.native.js +2 -1
- package/src/mobile/bottom-sheet/stepper-cell/index.native.js +2 -0
- package/src/mobile/bottom-sheet/styles.native.scss +13 -1
- package/src/mobile/bottom-sheet/switch-cell.native.js +10 -2
- package/src/mobile/bottom-sheet-select-control/index.native.js +2 -0
- package/src/mobile/bottom-sheet-text-control/index.native.js +2 -0
- package/src/mobile/global-styles-context/index.native.js +12 -1
- package/src/mobile/link-picker/link-picker-results.native.js +3 -0
- package/src/modal/style.scss +1 -1
- package/src/navigable-container/README.md +24 -13
- package/src/navigable-container/{container.js → container.tsx} +57 -27
- package/src/navigable-container/{index.js → index.tsx} +0 -1
- package/src/navigable-container/menu.tsx +100 -0
- package/src/navigable-container/stories/{navigable-menu.js → navigable-menu.tsx} +15 -10
- package/src/navigable-container/stories/{tabbable-container.js → tabbable-container.tsx} +15 -6
- package/src/navigable-container/tabbable.tsx +92 -0
- package/src/navigable-container/test/{navigable-menu.js → navigable-menu.tsx} +3 -1
- package/src/navigable-container/test/{tababble-container.js → tababble-container.tsx} +53 -24
- package/src/navigable-container/types.ts +76 -0
- package/src/palette-edit/index.tsx +45 -7
- package/src/palette-edit/stories/index.tsx +4 -0
- package/src/palette-edit/types.ts +11 -0
- package/src/private-apis.ts +22 -0
- package/src/range-control/index.native.js +3 -0
- package/src/sandbox/index.native.js +4 -0
- package/src/search-control/style.scss +2 -0
- package/src/slot-fill/bubbles-virtually/fill.js +2 -1
- package/src/slot-fill/bubbles-virtually/slot-fill-provider.js +46 -60
- package/src/slot-fill/bubbles-virtually/use-slot.js +14 -41
- package/src/slot-fill/fill.js +4 -26
- package/src/slot-fill/index.js +1 -3
- package/src/slot-fill/provider.js +0 -6
- package/src/slot-fill/slot.js +0 -5
- package/src/snackbar/list.tsx +0 -1
- package/src/style.scss +6 -0
- package/src/tab-panel/index.tsx +1 -1
- package/src/theme/color-algorithms.ts +1 -1
- package/src/theme/stories/index.tsx +1 -1
- package/src/theme/test/color-algorithms.ts +2 -2
- package/src/toggle-group-control/test/__snapshots__/index.tsx.snap +10 -6
- package/src/toggle-group-control/toggle-group-control/styles.ts +6 -1
- package/src/toolbar/stories/index.tsx +25 -26
- package/src/toolbar/toolbar-button/index.tsx +10 -13
- package/src/toolbar/toolbar-item/{index.js → index.tsx} +12 -3
- package/src/tooltip/style.scss +2 -2
- package/src/tree-grid/README.md +18 -0
- package/src/tree-grid/types.ts +7 -0
- package/src/utils/colors-values.js +3 -3
- package/src/utils/theme-variables.scss +4 -4
- package/src/utils/use-deprecated-props.ts +29 -0
- package/tsconfig.json +1 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/build/mobile/readable-content-view/index.native.js +0 -97
- package/build/mobile/readable-content-view/index.native.js.map +0 -1
- package/build-module/mobile/readable-content-view/index.native.js +0 -81
- package/build-module/mobile/readable-content-view/index.native.js.map +0 -1
- package/src/CONTRIBUTING.md +0 -78
- package/src/README.md +0 -20
- package/src/mobile/readable-content-view/index.native.js +0 -85
- package/src/mobile/readable-content-view/style.native.scss +0 -30
- package/src/navigable-container/menu.js +0 -62
- package/src/navigable-container/tabbable.js +0 -46
|
@@ -1,12 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
+
import classnames from 'classnames';
|
|
4
5
|
import { paramCase as kebabCase } from 'change-case';
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* WordPress dependencies
|
|
8
9
|
*/
|
|
9
|
-
import {
|
|
10
|
+
import {
|
|
11
|
+
useState,
|
|
12
|
+
useRef,
|
|
13
|
+
useEffect,
|
|
14
|
+
useCallback,
|
|
15
|
+
useMemo,
|
|
16
|
+
} from '@wordpress/element';
|
|
10
17
|
import { __, sprintf } from '@wordpress/i18n';
|
|
11
18
|
import { lineSolid, moreVertical, plus } from '@wordpress/icons';
|
|
12
19
|
import {
|
|
@@ -106,15 +113,26 @@ function ColorPickerPopover< T extends Color | Gradient >( {
|
|
|
106
113
|
isGradient,
|
|
107
114
|
element,
|
|
108
115
|
onChange,
|
|
116
|
+
popoverProps: receivedPopoverProps,
|
|
109
117
|
onClose = () => {},
|
|
110
118
|
}: ColorPickerPopoverProps< T > ) {
|
|
119
|
+
const popoverProps: ColorPickerPopoverProps< T >[ 'popoverProps' ] =
|
|
120
|
+
useMemo(
|
|
121
|
+
() => ( {
|
|
122
|
+
shift: true,
|
|
123
|
+
offset: 20,
|
|
124
|
+
placement: 'left-start',
|
|
125
|
+
...receivedPopoverProps,
|
|
126
|
+
className: classnames(
|
|
127
|
+
'components-palette-edit__popover',
|
|
128
|
+
receivedPopoverProps?.className
|
|
129
|
+
),
|
|
130
|
+
} ),
|
|
131
|
+
[ receivedPopoverProps ]
|
|
132
|
+
);
|
|
133
|
+
|
|
111
134
|
return (
|
|
112
|
-
<Popover
|
|
113
|
-
placement="left-start"
|
|
114
|
-
offset={ 20 }
|
|
115
|
-
className="components-palette-edit__popover"
|
|
116
|
-
onClose={ onClose }
|
|
117
|
-
>
|
|
135
|
+
<Popover { ...popoverProps } onClose={ onClose }>
|
|
118
136
|
{ ! isGradient && (
|
|
119
137
|
<ColorPicker
|
|
120
138
|
color={ element.color }
|
|
@@ -154,17 +172,31 @@ function Option< T extends Color | Gradient >( {
|
|
|
154
172
|
onStartEditing,
|
|
155
173
|
onRemove,
|
|
156
174
|
onStopEditing,
|
|
175
|
+
popoverProps: receivedPopoverProps,
|
|
157
176
|
slugPrefix,
|
|
158
177
|
isGradient,
|
|
159
178
|
}: OptionProps< T > ) {
|
|
160
179
|
const focusOutsideProps = useFocusOutside( onStopEditing );
|
|
161
180
|
const value = isGradient ? element.gradient : element.color;
|
|
162
181
|
|
|
182
|
+
// Use internal state instead of a ref to make sure that the component
|
|
183
|
+
// re-renders when the popover's anchor updates.
|
|
184
|
+
const [ popoverAnchor, setPopoverAnchor ] = useState( null );
|
|
185
|
+
const popoverProps = useMemo(
|
|
186
|
+
() => ( {
|
|
187
|
+
...receivedPopoverProps,
|
|
188
|
+
// Use the custom palette color item as the popover anchor.
|
|
189
|
+
anchor: popoverAnchor,
|
|
190
|
+
} ),
|
|
191
|
+
[ popoverAnchor, receivedPopoverProps ]
|
|
192
|
+
);
|
|
193
|
+
|
|
163
194
|
return (
|
|
164
195
|
<PaletteItem
|
|
165
196
|
className={ isEditing ? 'is-selected' : undefined }
|
|
166
197
|
as="div"
|
|
167
198
|
onClick={ onStartEditing }
|
|
199
|
+
ref={ setPopoverAnchor }
|
|
168
200
|
{ ...( isEditing
|
|
169
201
|
? { ...focusOutsideProps }
|
|
170
202
|
: {
|
|
@@ -218,6 +250,7 @@ function Option< T extends Color | Gradient >( {
|
|
|
218
250
|
isGradient={ isGradient }
|
|
219
251
|
onChange={ onChange }
|
|
220
252
|
element={ element }
|
|
253
|
+
popoverProps={ popoverProps }
|
|
221
254
|
/>
|
|
222
255
|
) }
|
|
223
256
|
</PaletteItem>
|
|
@@ -244,6 +277,7 @@ function PaletteEditListView< T extends Color | Gradient >( {
|
|
|
244
277
|
canOnlyChangeValues,
|
|
245
278
|
slugPrefix,
|
|
246
279
|
isGradient,
|
|
280
|
+
popoverProps,
|
|
247
281
|
}: PaletteEditListViewProps< T > ) {
|
|
248
282
|
// When unmounting the component if there are empty elements (the user did not complete the insertion) clean them.
|
|
249
283
|
const elementsReference = useRef< typeof elements >();
|
|
@@ -317,6 +351,7 @@ function PaletteEditListView< T extends Color | Gradient >( {
|
|
|
317
351
|
}
|
|
318
352
|
} }
|
|
319
353
|
slugPrefix={ slugPrefix }
|
|
354
|
+
popoverProps={ popoverProps }
|
|
320
355
|
/>
|
|
321
356
|
) ) }
|
|
322
357
|
</ItemGroup>
|
|
@@ -356,6 +391,7 @@ export function PaletteEdit( {
|
|
|
356
391
|
canOnlyChangeValues,
|
|
357
392
|
canReset,
|
|
358
393
|
slugPrefix = '',
|
|
394
|
+
popoverProps,
|
|
359
395
|
}: PaletteEditProps ) {
|
|
360
396
|
const isGradient = !! gradients;
|
|
361
397
|
const elements = isGradient ? gradients : colors;
|
|
@@ -541,6 +577,7 @@ export function PaletteEdit( {
|
|
|
541
577
|
setEditingElement={ setEditingElement }
|
|
542
578
|
slugPrefix={ slugPrefix }
|
|
543
579
|
isGradient={ isGradient }
|
|
580
|
+
popoverProps={ popoverProps }
|
|
544
581
|
/>
|
|
545
582
|
) }
|
|
546
583
|
{ ! isEditing && editingElement !== null && (
|
|
@@ -568,6 +605,7 @@ export function PaletteEdit( {
|
|
|
568
605
|
);
|
|
569
606
|
} }
|
|
570
607
|
element={ elements[ editingElement ?? -1 ] }
|
|
608
|
+
popoverProps={ popoverProps }
|
|
571
609
|
/>
|
|
572
610
|
) }
|
|
573
611
|
{ ! isEditing &&
|
|
@@ -6,6 +6,7 @@ import type { Key, MouseEventHandler } from 'react';
|
|
|
6
6
|
/**
|
|
7
7
|
* Internal dependencies
|
|
8
8
|
*/
|
|
9
|
+
import type Popover from '../popover';
|
|
9
10
|
import type { HeadingSize } from '../heading/types';
|
|
10
11
|
|
|
11
12
|
export type Color = {
|
|
@@ -58,6 +59,13 @@ export type BasePaletteEdit = {
|
|
|
58
59
|
* @default ''
|
|
59
60
|
*/
|
|
60
61
|
slugPrefix?: string;
|
|
62
|
+
/**
|
|
63
|
+
* Props to pass through to the underlying Popover component.
|
|
64
|
+
*/
|
|
65
|
+
popoverProps?: Omit<
|
|
66
|
+
React.ComponentPropsWithoutRef< typeof Popover >,
|
|
67
|
+
'children'
|
|
68
|
+
>;
|
|
61
69
|
};
|
|
62
70
|
|
|
63
71
|
type PaletteEditColors = {
|
|
@@ -94,6 +102,7 @@ export type ColorPickerPopoverProps< T extends Color | Gradient > = {
|
|
|
94
102
|
onChange: ( newElement: T ) => void;
|
|
95
103
|
isGradient?: T extends Gradient ? true : false;
|
|
96
104
|
onClose?: () => void;
|
|
105
|
+
popoverProps?: PaletteEditProps[ 'popoverProps' ];
|
|
97
106
|
};
|
|
98
107
|
|
|
99
108
|
export type NameInputProps = {
|
|
@@ -112,6 +121,7 @@ export type OptionProps< T extends Color | Gradient > = {
|
|
|
112
121
|
onRemove: MouseEventHandler< HTMLButtonElement >;
|
|
113
122
|
onStartEditing: () => void;
|
|
114
123
|
onStopEditing: () => void;
|
|
124
|
+
popoverProps?: PaletteEditProps[ 'popoverProps' ];
|
|
115
125
|
slugPrefix: string;
|
|
116
126
|
};
|
|
117
127
|
|
|
@@ -121,6 +131,7 @@ export type PaletteEditListViewProps< T extends Color | Gradient > = {
|
|
|
121
131
|
isGradient: T extends Gradient ? true : false;
|
|
122
132
|
canOnlyChangeValues: PaletteEditProps[ 'canOnlyChangeValues' ];
|
|
123
133
|
editingElement?: EditingElement;
|
|
134
|
+
popoverProps?: PaletteEditProps[ 'popoverProps' ];
|
|
124
135
|
setEditingElement: ( newEditingElement?: EditingElement ) => void;
|
|
125
136
|
slugPrefix: string;
|
|
126
137
|
};
|
package/src/private-apis.ts
CHANGED
|
@@ -9,6 +9,18 @@ import { __dangerousOptInToUnstableAPIsOnlyForCoreModules } from '@wordpress/pri
|
|
|
9
9
|
import { default as CustomSelectControl } from './custom-select-control';
|
|
10
10
|
import { positionToPlacement as __experimentalPopoverLegacyPositionToPlacement } from './popover/utils';
|
|
11
11
|
import { createPrivateSlotFill } from './slot-fill';
|
|
12
|
+
import {
|
|
13
|
+
DropdownMenu as DropdownMenuV2,
|
|
14
|
+
DropdownMenuCheckboxItem as DropdownMenuCheckboxItemV2,
|
|
15
|
+
DropdownMenuGroup as DropdownMenuGroupV2,
|
|
16
|
+
DropdownMenuItem as DropdownMenuItemV2,
|
|
17
|
+
DropdownMenuLabel as DropdownMenuLabelV2,
|
|
18
|
+
DropdownMenuRadioGroup as DropdownMenuRadioGroupV2,
|
|
19
|
+
DropdownMenuRadioItem as DropdownMenuRadioItemV2,
|
|
20
|
+
DropdownMenuSeparator as DropdownMenuSeparatorV2,
|
|
21
|
+
DropdownSubMenu as DropdownSubMenuV2,
|
|
22
|
+
DropdownSubMenuTrigger as DropdownSubMenuTriggerV2,
|
|
23
|
+
} from './dropdown-menu-v2';
|
|
12
24
|
|
|
13
25
|
export const { lock, unlock } =
|
|
14
26
|
__dangerousOptInToUnstableAPIsOnlyForCoreModules(
|
|
@@ -21,4 +33,14 @@ lock( privateApis, {
|
|
|
21
33
|
CustomSelectControl,
|
|
22
34
|
__experimentalPopoverLegacyPositionToPlacement,
|
|
23
35
|
createPrivateSlotFill,
|
|
36
|
+
DropdownMenuV2,
|
|
37
|
+
DropdownMenuCheckboxItemV2,
|
|
38
|
+
DropdownMenuGroupV2,
|
|
39
|
+
DropdownMenuItemV2,
|
|
40
|
+
DropdownMenuLabelV2,
|
|
41
|
+
DropdownMenuRadioGroupV2,
|
|
42
|
+
DropdownMenuRadioItemV2,
|
|
43
|
+
DropdownMenuSeparatorV2,
|
|
44
|
+
DropdownSubMenuV2,
|
|
45
|
+
DropdownSubMenuTriggerV2,
|
|
24
46
|
} );
|
|
@@ -25,6 +25,7 @@ const RangeControl = memo(
|
|
|
25
25
|
max,
|
|
26
26
|
type,
|
|
27
27
|
separatorType,
|
|
28
|
+
disabled,
|
|
28
29
|
...props
|
|
29
30
|
} ) => {
|
|
30
31
|
if ( type === 'stepper' ) {
|
|
@@ -36,6 +37,7 @@ const RangeControl = memo(
|
|
|
36
37
|
onChange={ onChange }
|
|
37
38
|
separatorType={ separatorType }
|
|
38
39
|
value={ value }
|
|
40
|
+
disabled={ disabled }
|
|
39
41
|
/>
|
|
40
42
|
);
|
|
41
43
|
}
|
|
@@ -61,6 +63,7 @@ const RangeControl = memo(
|
|
|
61
63
|
allowReset={ allowReset }
|
|
62
64
|
defaultValue={ initialSliderValue }
|
|
63
65
|
separatorType={ separatorType }
|
|
66
|
+
disabled={ disabled }
|
|
64
67
|
{ ...props }
|
|
65
68
|
/>
|
|
66
69
|
);
|
|
@@ -186,6 +186,8 @@ const Sandbox = forwardRef( function Sandbox(
|
|
|
186
186
|
url,
|
|
187
187
|
onWindowEvents = {},
|
|
188
188
|
viewportProps = '',
|
|
189
|
+
onLoadEnd = () => {},
|
|
190
|
+
testID,
|
|
189
191
|
},
|
|
190
192
|
ref
|
|
191
193
|
) {
|
|
@@ -372,6 +374,8 @@ const Sandbox = forwardRef( function Sandbox(
|
|
|
372
374
|
showsHorizontalScrollIndicator={ false }
|
|
373
375
|
showsVerticalScrollIndicator={ false }
|
|
374
376
|
mediaPlaybackRequiresUserAction={ false }
|
|
377
|
+
onLoadEnd={ onLoadEnd }
|
|
378
|
+
testID={ testID }
|
|
375
379
|
/>
|
|
376
380
|
);
|
|
377
381
|
} );
|
|
@@ -41,10 +41,12 @@
|
|
|
41
41
|
.components-search-control__icon {
|
|
42
42
|
position: absolute;
|
|
43
43
|
top: 0;
|
|
44
|
+
width: $icon-size;
|
|
44
45
|
right: ( $grid-unit-60 - $icon-size ) * 0.5;
|
|
45
46
|
bottom: 0;
|
|
46
47
|
display: flex;
|
|
47
48
|
align-items: center;
|
|
49
|
+
justify-content: center;
|
|
48
50
|
|
|
49
51
|
> svg {
|
|
50
52
|
margin: $grid-unit-10 0;
|
|
@@ -30,7 +30,8 @@ function useForceUpdate() {
|
|
|
30
30
|
|
|
31
31
|
export default function Fill( { name, children } ) {
|
|
32
32
|
const { registerFill, unregisterFill, ...slot } = useSlot( name );
|
|
33
|
-
const
|
|
33
|
+
const rerender = useForceUpdate();
|
|
34
|
+
const ref = useRef( { rerender } );
|
|
34
35
|
|
|
35
36
|
useEffect( () => {
|
|
36
37
|
// We register fills so we can keep track of their existence.
|
|
@@ -8,7 +8,7 @@ import { proxyMap } from 'valtio/utils';
|
|
|
8
8
|
/**
|
|
9
9
|
* WordPress dependencies
|
|
10
10
|
*/
|
|
11
|
-
import {
|
|
11
|
+
import { useState } from '@wordpress/element';
|
|
12
12
|
import isShallowEqual from '@wordpress/is-shallow-equal';
|
|
13
13
|
|
|
14
14
|
/**
|
|
@@ -16,13 +16,13 @@ import isShallowEqual from '@wordpress/is-shallow-equal';
|
|
|
16
16
|
*/
|
|
17
17
|
import SlotFillContext from './slot-fill-context';
|
|
18
18
|
|
|
19
|
-
function
|
|
20
|
-
const slots =
|
|
21
|
-
const fills =
|
|
19
|
+
function createSlotRegistry() {
|
|
20
|
+
const slots = proxyMap();
|
|
21
|
+
const fills = proxyMap();
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
const slot = slots.
|
|
25
|
-
slots.
|
|
23
|
+
function registerSlot( name, ref, fillProps ) {
|
|
24
|
+
const slot = slots.get( name ) || {};
|
|
25
|
+
slots.set(
|
|
26
26
|
name,
|
|
27
27
|
valRef( {
|
|
28
28
|
...slot,
|
|
@@ -30,77 +30,63 @@ function useSlotRegistry() {
|
|
|
30
30
|
fillProps: fillProps || slot.fillProps || {},
|
|
31
31
|
} )
|
|
32
32
|
);
|
|
33
|
-
}
|
|
33
|
+
}
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
function unregisterSlot( name, ref ) {
|
|
36
36
|
// Make sure we're not unregistering a slot registered by another element
|
|
37
37
|
// See https://github.com/WordPress/gutenberg/pull/19242#issuecomment-590295412
|
|
38
|
-
if ( slots.
|
|
39
|
-
slots.
|
|
38
|
+
if ( slots.get( name )?.ref === ref ) {
|
|
39
|
+
slots.delete( name );
|
|
40
40
|
}
|
|
41
|
-
}
|
|
41
|
+
}
|
|
42
42
|
|
|
43
|
-
|
|
44
|
-
const slot = slots.
|
|
43
|
+
function updateSlot( name, fillProps ) {
|
|
44
|
+
const slot = slots.get( name );
|
|
45
45
|
if ( ! slot ) {
|
|
46
46
|
return;
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
if (
|
|
50
|
-
|
|
51
|
-
const slotFills = fills.current.get( name );
|
|
52
|
-
if ( slotFills ) {
|
|
53
|
-
// Force update fills.
|
|
54
|
-
slotFills.map( ( fill ) => fill.current.rerender() );
|
|
55
|
-
}
|
|
49
|
+
if ( isShallowEqual( slot.fillProps, fillProps ) ) {
|
|
50
|
+
return;
|
|
56
51
|
}
|
|
57
|
-
}, [] );
|
|
58
52
|
|
|
59
|
-
|
|
60
|
-
fills.
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
53
|
+
slot.fillProps = fillProps;
|
|
54
|
+
const slotFills = fills.get( name );
|
|
55
|
+
if ( slotFills ) {
|
|
56
|
+
// Force update fills.
|
|
57
|
+
slotFills.map( ( fill ) => fill.current.rerender() );
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
function registerFill( name, ref ) {
|
|
62
|
+
fills.set( name, valRef( [ ...( fills.get( name ) || [] ), ref ] ) );
|
|
63
|
+
}
|
|
65
64
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
valRef(
|
|
71
|
-
fills.current
|
|
72
|
-
.get( name )
|
|
73
|
-
.filter( ( fillRef ) => fillRef !== ref )
|
|
74
|
-
)
|
|
75
|
-
);
|
|
65
|
+
function unregisterFill( name, ref ) {
|
|
66
|
+
const fillsForName = fills.get( name );
|
|
67
|
+
if ( ! fillsForName ) {
|
|
68
|
+
return;
|
|
76
69
|
}
|
|
77
|
-
}, [] );
|
|
78
70
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
registerSlot,
|
|
85
|
-
updateSlot,
|
|
86
|
-
unregisterSlot,
|
|
87
|
-
registerFill,
|
|
88
|
-
unregisterFill,
|
|
89
|
-
} ),
|
|
90
|
-
[
|
|
91
|
-
registerSlot,
|
|
92
|
-
updateSlot,
|
|
93
|
-
unregisterSlot,
|
|
94
|
-
registerFill,
|
|
95
|
-
unregisterFill,
|
|
96
|
-
]
|
|
97
|
-
);
|
|
71
|
+
fills.set(
|
|
72
|
+
name,
|
|
73
|
+
valRef( fillsForName.filter( ( fillRef ) => fillRef !== ref ) )
|
|
74
|
+
);
|
|
75
|
+
}
|
|
98
76
|
|
|
99
|
-
return
|
|
77
|
+
return {
|
|
78
|
+
slots,
|
|
79
|
+
fills,
|
|
80
|
+
registerSlot,
|
|
81
|
+
updateSlot,
|
|
82
|
+
unregisterSlot,
|
|
83
|
+
registerFill,
|
|
84
|
+
unregisterFill,
|
|
85
|
+
};
|
|
100
86
|
}
|
|
101
87
|
|
|
102
88
|
export default function SlotFillProvider( { children } ) {
|
|
103
|
-
const registry =
|
|
89
|
+
const [ registry ] = useState( createSlotRegistry );
|
|
104
90
|
return (
|
|
105
91
|
<SlotFillContext.Provider value={ registry }>
|
|
106
92
|
{ children }
|
|
@@ -7,7 +7,7 @@ import { useSnapshot } from 'valtio';
|
|
|
7
7
|
/**
|
|
8
8
|
* WordPress dependencies
|
|
9
9
|
*/
|
|
10
|
-
import {
|
|
10
|
+
import { useMemo, useContext } from '@wordpress/element';
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* Internal dependencies
|
|
@@ -15,52 +15,25 @@ import { useCallback, useContext } from '@wordpress/element';
|
|
|
15
15
|
import SlotFillContext from './slot-fill-context';
|
|
16
16
|
|
|
17
17
|
export default function useSlot( name ) {
|
|
18
|
-
const
|
|
19
|
-
updateSlot: registryUpdateSlot,
|
|
20
|
-
unregisterSlot: registryUnregisterSlot,
|
|
21
|
-
registerFill: registryRegisterFill,
|
|
22
|
-
unregisterFill: registryUnregisterFill,
|
|
23
|
-
...registry
|
|
24
|
-
} = useContext( SlotFillContext );
|
|
18
|
+
const registry = useContext( SlotFillContext );
|
|
25
19
|
const slots = useSnapshot( registry.slots, { sync: true } );
|
|
26
|
-
// The important bit here is that
|
|
27
|
-
//
|
|
28
|
-
//
|
|
20
|
+
// The important bit here is that the `useSnapshot` call ensures that the
|
|
21
|
+
// hook only causes a re-render if the slot with the given name changes,
|
|
22
|
+
// not any other slot.
|
|
29
23
|
const slot = slots.get( name );
|
|
30
24
|
|
|
31
|
-
const
|
|
32
|
-
(
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
( slotRef ) => {
|
|
40
|
-
registryUnregisterSlot( name, slotRef );
|
|
41
|
-
},
|
|
42
|
-
[ name, registryUnregisterSlot ]
|
|
43
|
-
);
|
|
44
|
-
|
|
45
|
-
const registerFill = useCallback(
|
|
46
|
-
( fillRef ) => {
|
|
47
|
-
registryRegisterFill( name, fillRef );
|
|
48
|
-
},
|
|
49
|
-
[ name, registryRegisterFill ]
|
|
50
|
-
);
|
|
51
|
-
|
|
52
|
-
const unregisterFill = useCallback(
|
|
53
|
-
( fillRef ) => {
|
|
54
|
-
registryUnregisterFill( name, fillRef );
|
|
55
|
-
},
|
|
56
|
-
[ name, registryUnregisterFill ]
|
|
25
|
+
const api = useMemo(
|
|
26
|
+
() => ( {
|
|
27
|
+
updateSlot: ( fillProps ) => registry.updateSlot( name, fillProps ),
|
|
28
|
+
unregisterSlot: ( ref ) => registry.unregisterSlot( name, ref ),
|
|
29
|
+
registerFill: ( ref ) => registry.registerFill( name, ref ),
|
|
30
|
+
unregisterFill: ( ref ) => registry.unregisterFill( name, ref ),
|
|
31
|
+
} ),
|
|
32
|
+
[ name, registry ]
|
|
57
33
|
);
|
|
58
34
|
|
|
59
35
|
return {
|
|
60
36
|
...slot,
|
|
61
|
-
|
|
62
|
-
unregisterSlot,
|
|
63
|
-
registerFill,
|
|
64
|
-
unregisterFill,
|
|
37
|
+
...api,
|
|
65
38
|
};
|
|
66
39
|
}
|
package/src/slot-fill/fill.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
/**
|
|
4
4
|
* WordPress dependencies
|
|
5
5
|
*/
|
|
6
|
-
import {
|
|
6
|
+
import { useContext, useLayoutEffect, useRef } from '@wordpress/element';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* Internal dependencies
|
|
@@ -11,7 +11,8 @@ import { createPortal, useLayoutEffect, useRef } from '@wordpress/element';
|
|
|
11
11
|
import SlotFillContext from './context';
|
|
12
12
|
import useSlot from './use-slot';
|
|
13
13
|
|
|
14
|
-
function
|
|
14
|
+
export default function Fill( { name, children } ) {
|
|
15
|
+
const { registerFill, unregisterFill } = useContext( SlotFillContext );
|
|
15
16
|
const slot = useSlot( name );
|
|
16
17
|
|
|
17
18
|
const ref = useRef( {
|
|
@@ -51,28 +52,5 @@ function FillComponent( { name, children, registerFill, unregisterFill } ) {
|
|
|
51
52
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
52
53
|
}, [ name ] );
|
|
53
54
|
|
|
54
|
-
|
|
55
|
-
return null;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
// If a function is passed as a child, provide it with the fillProps.
|
|
59
|
-
if ( typeof children === 'function' ) {
|
|
60
|
-
children = children( slot.props.fillProps );
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
return createPortal( children, slot.node );
|
|
55
|
+
return null;
|
|
64
56
|
}
|
|
65
|
-
|
|
66
|
-
const Fill = ( props ) => (
|
|
67
|
-
<SlotFillContext.Consumer>
|
|
68
|
-
{ ( { registerFill, unregisterFill } ) => (
|
|
69
|
-
<FillComponent
|
|
70
|
-
{ ...props }
|
|
71
|
-
registerFill={ registerFill }
|
|
72
|
-
unregisterFill={ unregisterFill }
|
|
73
|
-
/>
|
|
74
|
-
) }
|
|
75
|
-
</SlotFillContext.Consumer>
|
|
76
|
-
);
|
|
77
|
-
|
|
78
|
-
export default Fill;
|
package/src/slot-fill/index.js
CHANGED
|
@@ -13,7 +13,7 @@ import BubblesVirtuallyFill from './bubbles-virtually/fill';
|
|
|
13
13
|
import BubblesVirtuallySlot from './bubbles-virtually/slot';
|
|
14
14
|
import BubblesVirtuallySlotFillProvider from './bubbles-virtually/slot-fill-provider';
|
|
15
15
|
import SlotFillProvider from './provider';
|
|
16
|
-
|
|
16
|
+
export { default as useSlot } from './bubbles-virtually/use-slot';
|
|
17
17
|
export { default as useSlotFills } from './bubbles-virtually/use-slot-fills';
|
|
18
18
|
|
|
19
19
|
export function Fill( props ) {
|
|
@@ -65,5 +65,3 @@ export const createPrivateSlotFill = ( name ) => {
|
|
|
65
65
|
|
|
66
66
|
return { privateKey, ...privateSlotFill };
|
|
67
67
|
};
|
|
68
|
-
|
|
69
|
-
export { useSlot };
|
|
@@ -19,7 +19,6 @@ export default class SlotFillProvider extends Component {
|
|
|
19
19
|
this.unregisterFill = this.unregisterFill.bind( this );
|
|
20
20
|
this.getSlot = this.getSlot.bind( this );
|
|
21
21
|
this.getFills = this.getFills.bind( this );
|
|
22
|
-
this.hasFills = this.hasFills.bind( this );
|
|
23
22
|
this.subscribe = this.subscribe.bind( this );
|
|
24
23
|
|
|
25
24
|
this.slots = {};
|
|
@@ -32,7 +31,6 @@ export default class SlotFillProvider extends Component {
|
|
|
32
31
|
unregisterFill: this.unregisterFill,
|
|
33
32
|
getSlot: this.getSlot,
|
|
34
33
|
getFills: this.getFills,
|
|
35
|
-
hasFills: this.hasFills,
|
|
36
34
|
subscribe: this.subscribe,
|
|
37
35
|
};
|
|
38
36
|
}
|
|
@@ -91,10 +89,6 @@ export default class SlotFillProvider extends Component {
|
|
|
91
89
|
return this.fills[ name ];
|
|
92
90
|
}
|
|
93
91
|
|
|
94
|
-
hasFills( name ) {
|
|
95
|
-
return this.fills[ name ] && !! this.fills[ name ].length;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
92
|
forceUpdateSlot( name ) {
|
|
99
93
|
const slot = this.getSlot( name );
|
|
100
94
|
|
package/src/slot-fill/slot.js
CHANGED
|
@@ -29,7 +29,6 @@ class SlotComponent extends Component {
|
|
|
29
29
|
super( ...arguments );
|
|
30
30
|
|
|
31
31
|
this.isUnmounted = false;
|
|
32
|
-
this.bindNode = this.bindNode.bind( this );
|
|
33
32
|
}
|
|
34
33
|
|
|
35
34
|
componentDidMount() {
|
|
@@ -53,10 +52,6 @@ class SlotComponent extends Component {
|
|
|
53
52
|
}
|
|
54
53
|
}
|
|
55
54
|
|
|
56
|
-
bindNode( node ) {
|
|
57
|
-
this.node = node;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
55
|
forceUpdate() {
|
|
61
56
|
if ( this.isUnmounted ) {
|
|
62
57
|
return;
|
package/src/snackbar/list.tsx
CHANGED
package/src/style.scss
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
// Include the default WP Components color variables.
|
|
2
|
+
// TODO: Remove this once all admin-scheme variables are accounted for in the wp-components fallback values.
|
|
3
|
+
:root {
|
|
4
|
+
@include admin-scheme(#3858e9);
|
|
5
|
+
}
|
|
6
|
+
|
|
1
7
|
// Variables
|
|
2
8
|
@import "./utils/theme-variables.scss";
|
|
3
9
|
|
package/src/tab-panel/index.tsx
CHANGED
|
@@ -48,7 +48,7 @@ export function checkContrasts(
|
|
|
48
48
|
outputs: ThemeOutputValues[ 'colors' ]
|
|
49
49
|
) {
|
|
50
50
|
const background = inputs.background || COLORS.white;
|
|
51
|
-
const accent = inputs.accent || '#
|
|
51
|
+
const accent = inputs.accent || '#3858e9';
|
|
52
52
|
const foreground = outputs.foreground || COLORS.gray[ 900 ];
|
|
53
53
|
const gray = outputs.gray || COLORS.gray;
|
|
54
54
|
|
|
@@ -53,9 +53,9 @@ describe( 'Theme color algorithms', () => {
|
|
|
53
53
|
'wp.components.Theme: The background color ("#000") does not have sufficient contrast against the accent color ("#111").'
|
|
54
54
|
);
|
|
55
55
|
|
|
56
|
-
generateThemeVariables( { background: '#
|
|
56
|
+
generateThemeVariables( { background: '#1a1a1a' } );
|
|
57
57
|
expect( console ).toHaveWarnedWith(
|
|
58
|
-
'wp.components.Theme: The background color ("#
|
|
58
|
+
'wp.components.Theme: The background color ("#1a1a1a") does not have sufficient contrast against the accent color ("#3858e9").'
|
|
59
59
|
);
|
|
60
60
|
} );
|
|
61
61
|
|