@wordpress/components 19.4.1 → 19.5.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 +16 -1
- package/CONTRIBUTING.md +69 -2
- package/build/box-control/unit-control.js +2 -2
- package/build/box-control/unit-control.js.map +1 -1
- package/build/card/card/component.js +2 -2
- package/build/card/card/component.js.map +1 -1
- package/build/card/card-body/component.js +1 -1
- package/build/card/card-body/component.js.map +1 -1
- package/build/card/card-divider/component.js +1 -1
- package/build/card/card-divider/component.js.map +1 -1
- package/build/card/card-footer/component.js +1 -1
- package/build/card/card-footer/component.js.map +1 -1
- package/build/card/card-header/component.js +1 -1
- package/build/card/card-header/component.js.map +1 -1
- package/build/card/card-media/component.js +1 -1
- package/build/card/card-media/component.js.map +1 -1
- package/build/color-palette/index.native.js +35 -30
- package/build/color-palette/index.native.js.map +1 -1
- package/build/color-picker/component.js.map +1 -1
- package/build/color-picker/hex-input.js +6 -9
- package/build/color-picker/hex-input.js.map +1 -1
- package/build/confirm-dialog/component.js.map +1 -1
- package/build/divider/component.js.map +1 -1
- package/build/elevation/component.js +1 -1
- package/build/elevation/component.js.map +1 -1
- package/build/flex/flex/component.js +1 -1
- package/build/flex/flex/component.js.map +1 -1
- package/build/flex/flex-block/component.js +1 -1
- package/build/flex/flex-block/component.js.map +1 -1
- package/build/flex/flex-item/component.js +1 -1
- package/build/flex/flex-item/component.js.map +1 -1
- package/build/flyout/flyout/component.js +1 -1
- package/build/flyout/flyout/component.js.map +1 -1
- package/build/flyout/flyout-content/component.js +1 -1
- package/build/flyout/flyout-content/component.js.map +1 -1
- package/build/focal-point-picker/index.js +18 -12
- package/build/focal-point-picker/index.js.map +1 -1
- package/build/font-size-picker/index.js +0 -1
- package/build/font-size-picker/index.js.map +1 -1
- package/build/grid/component.js +1 -1
- package/build/grid/component.js.map +1 -1
- package/build/h-stack/component.js +1 -1
- package/build/h-stack/component.js.map +1 -1
- package/build/heading/component.js.map +1 -1
- package/build/index.js +12 -0
- package/build/index.js.map +1 -1
- package/build/index.native.js +15 -1
- package/build/index.native.js.map +1 -1
- package/build/input-control/index.js.map +1 -1
- package/build/input-control/input-base.js.map +1 -1
- package/build/input-control/input-field.js +7 -7
- package/build/input-control/input-field.js.map +1 -1
- package/build/input-control/reducer/reducer.js +3 -0
- package/build/input-control/reducer/reducer.js.map +1 -1
- package/build/item-group/item/component.js.map +1 -1
- package/build/item-group/item-group/component.js.map +1 -1
- package/build/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js +1 -1
- package/build/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js.map +1 -1
- package/build/mobile/color-settings/palette.screen.native.js +26 -9
- package/build/mobile/color-settings/palette.screen.native.js.map +1 -1
- package/build/mobile/global-styles-context/utils.native.js +63 -9
- package/build/mobile/global-styles-context/utils.native.js.map +1 -1
- package/build/navigator/index.js +16 -0
- package/build/navigator/index.js.map +1 -1
- package/build/navigator/navigator-back-button/component.js +72 -0
- package/build/navigator/navigator-back-button/component.js.map +1 -0
- package/build/navigator/navigator-back-button/hook.js +49 -0
- package/build/navigator/navigator-back-button/hook.js.map +1 -0
- package/build/navigator/navigator-back-button/index.js +16 -0
- package/build/navigator/navigator-back-button/index.js.map +1 -0
- package/build/navigator/navigator-button/component.js +71 -0
- package/build/navigator/navigator-button/component.js.map +1 -0
- package/build/navigator/navigator-button/hook.js +59 -0
- package/build/navigator/navigator-button/hook.js.map +1 -0
- package/build/navigator/navigator-button/index.js +16 -0
- package/build/navigator/navigator-button/index.js.map +1 -0
- package/build/navigator/navigator-provider/component.js +11 -21
- package/build/navigator/navigator-provider/component.js.map +1 -1
- package/build/navigator/navigator-screen/component.js +14 -22
- package/build/navigator/navigator-screen/component.js.map +1 -1
- package/build/resizable-box/index.js.map +1 -1
- package/build/resizable-box/resize-tooltip/index.js.map +1 -1
- package/build/resizable-box/resize-tooltip/label.js.map +1 -1
- package/build/scrollable/component.js +1 -1
- package/build/scrollable/component.js.map +1 -1
- package/build/select-control/index.js.map +1 -1
- package/build/spacer/component.js.map +1 -1
- package/build/surface/component.js +1 -1
- package/build/surface/component.js.map +1 -1
- package/build/text/component.js +1 -1
- package/build/text/component.js.map +1 -1
- package/build/text-control/index.js +2 -2
- package/build/text-control/index.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control/component.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control-option/component.js.map +1 -1
- package/build/tools-panel/tools-panel/component.js.map +1 -1
- package/build/tools-panel/tools-panel-header/component.js.map +1 -1
- package/build/tools-panel/tools-panel-item/component.js.map +1 -1
- package/build/tree-grid/index.js +50 -6
- package/build/tree-grid/index.js.map +1 -1
- package/build/truncate/component.js +1 -1
- package/build/truncate/component.js.map +1 -1
- package/build/ui/control-group/component.js +1 -1
- package/build/ui/control-group/component.js.map +1 -1
- package/build/ui/control-label/component.js +1 -1
- package/build/ui/control-label/component.js.map +1 -1
- package/build/ui/form-group/form-group.js +1 -1
- package/build/ui/form-group/form-group.js.map +1 -1
- package/build/ui/shortcut/component.js.map +1 -1
- package/build/ui/spinner/component.js +1 -1
- package/build/ui/spinner/component.js.map +1 -1
- package/build/ui/tooltip/component.js +1 -1
- package/build/ui/tooltip/component.js.map +1 -1
- package/build/ui/tooltip/content.js +1 -1
- package/build/ui/tooltip/content.js.map +1 -1
- package/build/unit-control/index.js.map +1 -1
- package/build/v-stack/component.js +1 -1
- package/build/v-stack/component.js.map +1 -1
- package/build/visually-hidden/component.js +1 -1
- package/build/visually-hidden/component.js.map +1 -1
- package/build/z-stack/component.js.map +1 -1
- package/build-module/box-control/unit-control.js +1 -1
- package/build-module/box-control/unit-control.js.map +1 -1
- package/build-module/card/card/component.js +2 -2
- package/build-module/card/card/component.js.map +1 -1
- package/build-module/card/card-body/component.js +1 -1
- package/build-module/card/card-body/component.js.map +1 -1
- package/build-module/card/card-divider/component.js +1 -1
- package/build-module/card/card-divider/component.js.map +1 -1
- package/build-module/card/card-footer/component.js +1 -1
- package/build-module/card/card-footer/component.js.map +1 -1
- package/build-module/card/card-header/component.js +1 -1
- package/build-module/card/card-header/component.js.map +1 -1
- package/build-module/card/card-media/component.js +1 -1
- package/build-module/card/card-media/component.js.map +1 -1
- package/build-module/color-palette/index.native.js +36 -31
- package/build-module/color-palette/index.native.js.map +1 -1
- package/build-module/color-picker/component.js.map +1 -1
- package/build-module/color-picker/hex-input.js +6 -9
- package/build-module/color-picker/hex-input.js.map +1 -1
- package/build-module/confirm-dialog/component.js.map +1 -1
- package/build-module/divider/component.js.map +1 -1
- package/build-module/elevation/component.js +1 -1
- package/build-module/elevation/component.js.map +1 -1
- package/build-module/flex/flex/component.js +1 -1
- package/build-module/flex/flex/component.js.map +1 -1
- package/build-module/flex/flex-block/component.js +1 -1
- package/build-module/flex/flex-block/component.js.map +1 -1
- package/build-module/flex/flex-item/component.js +1 -1
- package/build-module/flex/flex-item/component.js.map +1 -1
- package/build-module/flyout/flyout/component.js +1 -1
- package/build-module/flyout/flyout/component.js.map +1 -1
- package/build-module/flyout/flyout-content/component.js +1 -1
- package/build-module/flyout/flyout-content/component.js.map +1 -1
- package/build-module/focal-point-picker/index.js +18 -12
- package/build-module/focal-point-picker/index.js.map +1 -1
- package/build-module/font-size-picker/index.js +0 -1
- package/build-module/font-size-picker/index.js.map +1 -1
- package/build-module/grid/component.js +1 -1
- package/build-module/grid/component.js.map +1 -1
- package/build-module/h-stack/component.js +1 -1
- package/build-module/h-stack/component.js.map +1 -1
- package/build-module/heading/component.js.map +1 -1
- package/build-module/index.js +1 -1
- package/build-module/index.js.map +1 -1
- package/build-module/index.native.js +1 -1
- package/build-module/index.native.js.map +1 -1
- package/build-module/input-control/index.js.map +1 -1
- package/build-module/input-control/input-base.js.map +1 -1
- package/build-module/input-control/input-field.js +6 -6
- package/build-module/input-control/input-field.js.map +1 -1
- package/build-module/input-control/reducer/reducer.js +3 -0
- package/build-module/input-control/reducer/reducer.js.map +1 -1
- package/build-module/item-group/item/component.js.map +1 -1
- package/build-module/item-group/item-group/component.js.map +1 -1
- package/build-module/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js +1 -1
- package/build-module/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js.map +1 -1
- package/build-module/mobile/color-settings/palette.screen.native.js +27 -10
- package/build-module/mobile/color-settings/palette.screen.native.js.map +1 -1
- package/build-module/mobile/global-styles-context/utils.native.js +60 -10
- package/build-module/mobile/global-styles-context/utils.native.js.map +1 -1
- package/build-module/navigator/index.js +2 -0
- package/build-module/navigator/index.js.map +1 -1
- package/build-module/navigator/navigator-back-button/component.js +59 -0
- package/build-module/navigator/navigator-back-button/component.js.map +1 -0
- package/build-module/navigator/navigator-back-button/hook.js +36 -0
- package/build-module/navigator/navigator-back-button/hook.js.map +1 -0
- package/build-module/navigator/navigator-back-button/index.js +2 -0
- package/build-module/navigator/navigator-back-button/index.js.map +1 -0
- package/build-module/navigator/navigator-button/component.js +58 -0
- package/build-module/navigator/navigator-button/component.js.map +1 -0
- package/build-module/navigator/navigator-button/hook.js +46 -0
- package/build-module/navigator/navigator-button/hook.js.map +1 -0
- package/build-module/navigator/navigator-button/index.js +2 -0
- package/build-module/navigator/navigator-button/index.js.map +1 -0
- package/build-module/navigator/navigator-provider/component.js +11 -21
- package/build-module/navigator/navigator-provider/component.js.map +1 -1
- package/build-module/navigator/navigator-screen/component.js +13 -22
- package/build-module/navigator/navigator-screen/component.js.map +1 -1
- package/build-module/resizable-box/index.js.map +1 -1
- package/build-module/resizable-box/resize-tooltip/index.js.map +1 -1
- package/build-module/resizable-box/resize-tooltip/label.js.map +1 -1
- package/build-module/scrollable/component.js +1 -1
- package/build-module/scrollable/component.js.map +1 -1
- package/build-module/select-control/index.js +1 -1
- package/build-module/select-control/index.js.map +1 -1
- package/build-module/spacer/component.js.map +1 -1
- package/build-module/surface/component.js +1 -1
- package/build-module/surface/component.js.map +1 -1
- package/build-module/text/component.js +1 -1
- package/build-module/text/component.js.map +1 -1
- package/build-module/text-control/index.js +2 -2
- package/build-module/text-control/index.js.map +1 -1
- package/build-module/toggle-group-control/toggle-group-control/component.js.map +1 -1
- package/build-module/toggle-group-control/toggle-group-control-option/component.js.map +1 -1
- package/build-module/tools-panel/tools-panel/component.js.map +1 -1
- package/build-module/tools-panel/tools-panel-header/component.js.map +1 -1
- package/build-module/tools-panel/tools-panel-item/component.js.map +1 -1
- package/build-module/tree-grid/index.js +51 -7
- package/build-module/tree-grid/index.js.map +1 -1
- package/build-module/truncate/component.js +1 -1
- package/build-module/truncate/component.js.map +1 -1
- package/build-module/ui/control-group/component.js +1 -1
- package/build-module/ui/control-group/component.js.map +1 -1
- package/build-module/ui/control-label/component.js +1 -1
- package/build-module/ui/control-label/component.js.map +1 -1
- package/build-module/ui/form-group/form-group.js +1 -1
- package/build-module/ui/form-group/form-group.js.map +1 -1
- package/build-module/ui/shortcut/component.js.map +1 -1
- package/build-module/ui/spinner/component.js +1 -1
- package/build-module/ui/spinner/component.js.map +1 -1
- package/build-module/ui/tooltip/component.js +1 -1
- package/build-module/ui/tooltip/component.js.map +1 -1
- package/build-module/ui/tooltip/content.js +1 -1
- package/build-module/ui/tooltip/content.js.map +1 -1
- package/build-module/unit-control/index.js.map +1 -1
- package/build-module/v-stack/component.js +1 -1
- package/build-module/v-stack/component.js.map +1 -1
- package/build-module/visually-hidden/component.js +1 -1
- package/build-module/visually-hidden/component.js.map +1 -1
- package/build-module/z-stack/component.js.map +1 -1
- package/build-types/card/card-divider/hook.d.ts +0 -1
- package/build-types/card/card-divider/hook.d.ts.map +1 -1
- package/build-types/color-picker/styles.d.ts +2 -4
- package/build-types/color-picker/styles.d.ts.map +1 -1
- package/build-types/confirm-dialog/component.d.ts +2 -6
- package/build-types/confirm-dialog/component.d.ts.map +1 -1
- package/build-types/flyout/flyout/hook.d.ts +0 -1
- package/build-types/flyout/flyout/hook.d.ts.map +1 -1
- package/build-types/input-control/index.d.ts +3 -3
- package/build-types/input-control/index.d.ts.map +1 -1
- package/build-types/input-control/input-base.d.ts +2 -2
- package/build-types/input-control/input-base.d.ts.map +1 -1
- package/build-types/input-control/input-field.d.ts +1 -3
- package/build-types/input-control/input-field.d.ts.map +1 -1
- package/build-types/input-control/reducer/reducer.d.ts.map +1 -1
- package/build-types/input-control/types.d.ts +1 -1
- package/build-types/input-control/types.d.ts.map +1 -1
- package/build-types/navigator/index.d.ts +2 -0
- package/build-types/navigator/index.d.ts.map +1 -1
- package/build-types/navigator/navigator-back-button/component.d.ts +38 -0
- package/build-types/navigator/navigator-back-button/component.d.ts.map +1 -0
- package/build-types/navigator/navigator-back-button/hook.d.ts +282 -0
- package/build-types/navigator/navigator-back-button/hook.d.ts.map +1 -0
- package/build-types/navigator/navigator-back-button/index.d.ts +2 -0
- package/build-types/navigator/navigator-back-button/index.d.ts.map +1 -0
- package/build-types/navigator/navigator-button/component.d.ts +37 -0
- package/build-types/navigator/navigator-button/component.d.ts.map +1 -0
- package/build-types/navigator/navigator-button/hook.d.ts +282 -0
- package/build-types/navigator/navigator-button/hook.d.ts.map +1 -0
- package/build-types/navigator/navigator-button/index.d.ts +2 -0
- package/build-types/navigator/navigator-button/index.d.ts.map +1 -0
- package/build-types/navigator/navigator-provider/component.d.ts +10 -20
- package/build-types/navigator/navigator-provider/component.d.ts.map +1 -1
- package/build-types/navigator/navigator-screen/component.d.ts +10 -20
- package/build-types/navigator/navigator-screen/component.d.ts.map +1 -1
- package/build-types/navigator/types.d.ts +21 -0
- package/build-types/navigator/types.d.ts.map +1 -1
- package/build-types/number-control/styles/number-control-styles.d.ts +1 -1
- package/build-types/resizable-box/index.d.ts +2 -2
- package/build-types/resizable-box/index.d.ts.map +1 -1
- package/build-types/resizable-box/resize-tooltip/index.d.ts.map +1 -1
- package/build-types/select-control/index.d.ts +1 -3
- package/build-types/select-control/index.d.ts.map +1 -1
- package/build-types/ui/context/wordpress-component.d.ts +2 -6
- package/build-types/ui/context/wordpress-component.d.ts.map +1 -1
- package/build-types/unit-control/index.d.ts +1 -3
- package/build-types/unit-control/index.d.ts.map +1 -1
- package/build-types/z-stack/component.d.ts.map +1 -1
- package/package.json +8 -7
- package/src/alignment-matrix-control/README.md +4 -0
- package/src/alignment-matrix-control/stories/index.js +1 -1
- package/src/base-control/stories/index.js +65 -22
- package/src/box-control/stories/index.js +4 -1
- package/src/box-control/unit-control.js +1 -1
- package/src/card/card/component.js +1 -1
- package/src/card/card-body/component.js +1 -1
- package/src/card/card-divider/component.js +1 -1
- package/src/card/card-footer/component.js +1 -1
- package/src/card/card-header/component.js +1 -1
- package/src/card/card-media/component.js +1 -1
- package/src/color-palette/index.native.js +92 -75
- package/src/color-palette/style.native.scss +10 -5
- package/src/color-picker/component.tsx +2 -2
- package/src/color-picker/hex-input.tsx +9 -9
- package/src/confirm-dialog/component.tsx +2 -2
- package/src/divider/component.tsx +2 -2
- package/src/elevation/component.js +1 -1
- package/src/flex/flex/component.js +1 -1
- package/src/flex/flex-block/component.js +1 -1
- package/src/flex/flex-item/component.js +1 -1
- package/src/flyout/flyout/component.js +1 -1
- package/src/flyout/flyout-content/component.js +1 -1
- package/src/focal-point-picker/README.md +7 -0
- package/src/focal-point-picker/index.js +12 -7
- package/src/focal-point-picker/stories/index.js +30 -0
- package/src/focal-point-picker/test/index.js +44 -0
- package/src/font-size-picker/index.js +0 -1
- package/src/form-file-upload/README.md +1 -1
- package/src/form-file-upload/stories/index.js +51 -0
- package/src/grid/component.js +1 -1
- package/src/h-stack/component.js +1 -1
- package/src/heading/component.tsx +2 -2
- package/src/index.js +2 -0
- package/src/index.native.js +5 -1
- package/src/input-control/index.tsx +2 -2
- package/src/input-control/input-base.tsx +2 -2
- package/src/input-control/input-field.tsx +4 -6
- package/src/input-control/reducer/reducer.ts +3 -0
- package/src/input-control/stories/index.js +1 -1
- package/src/input-control/types.ts +1 -1
- package/src/item-group/item/component.tsx +2 -2
- package/src/item-group/item-group/component.tsx +2 -2
- package/src/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js +10 -1
- package/src/mobile/color-settings/palette.screen.native.js +39 -9
- package/src/mobile/color-settings/style.native.scss +4 -0
- package/src/mobile/global-styles-context/test/fixtures/theme.native.js +27 -0
- package/src/mobile/global-styles-context/test/utils.native.js +2 -2
- package/src/mobile/global-styles-context/utils.native.js +75 -6
- package/src/navigation/stories/index.js +1 -1
- package/src/navigator/index.ts +2 -0
- package/src/navigator/navigator-back-button/README.md +31 -0
- package/src/navigator/navigator-back-button/component.tsx +62 -0
- package/src/navigator/navigator-back-button/hook.ts +40 -0
- package/src/navigator/navigator-back-button/index.ts +1 -0
- package/src/navigator/navigator-button/README.md +38 -0
- package/src/navigator/navigator-button/component.tsx +61 -0
- package/src/navigator/navigator-button/hook.ts +55 -0
- package/src/navigator/navigator-button/index.ts +1 -0
- package/src/navigator/navigator-provider/README.md +20 -33
- package/src/navigator/navigator-provider/component.tsx +12 -22
- package/src/navigator/navigator-screen/README.md +1 -1
- package/src/navigator/navigator-screen/component.tsx +14 -23
- package/src/navigator/stories/index.js +24 -37
- package/src/navigator/test/index.js +89 -34
- package/src/navigator/types.ts +26 -0
- package/src/number-control/stories/index.js +1 -1
- package/src/radio/stories/index.js +1 -1
- package/src/radio-group/stories/index.js +4 -1
- package/src/resizable-box/index.tsx +2 -2
- package/src/resizable-box/resize-tooltip/index.tsx +2 -2
- package/src/resizable-box/resize-tooltip/label.tsx +2 -2
- package/src/scrollable/component.js +1 -1
- package/src/select-control/index.tsx +2 -3
- package/src/spacer/component.tsx +2 -2
- package/src/surface/component.js +1 -1
- package/src/text/component.js +1 -1
- package/src/text-control/index.js +2 -2
- package/src/toggle-group-control/stories/index.js +1 -1
- package/src/toggle-group-control/toggle-group-control/component.tsx +2 -2
- package/src/toggle-group-control/toggle-group-control-option/component.tsx +2 -2
- package/src/tools-panel/stories/index.js +0 -1
- package/src/tools-panel/tools-panel/component.tsx +2 -2
- package/src/tools-panel/tools-panel-header/component.tsx +2 -2
- package/src/tools-panel/tools-panel-item/component.tsx +2 -2
- package/src/tree-grid/README.md +24 -1
- package/src/tree-grid/index.js +66 -7
- package/src/tree-grid/stories/index.js +4 -1
- package/src/tree-grid/test/__snapshots__/index.js.snap +1 -14
- package/src/tree-grid/test/index.js +226 -7
- package/src/truncate/component.js +1 -1
- package/src/ui/context/wordpress-component.ts +2 -2
- package/src/ui/control-group/component.js +1 -1
- package/src/ui/control-label/component.js +1 -1
- package/src/ui/form-group/form-group.js +1 -1
- package/src/ui/shortcut/component.tsx +2 -2
- package/src/ui/spinner/component.js +1 -1
- package/src/ui/tooltip/component.js +1 -1
- package/src/ui/tooltip/content.js +1 -1
- package/src/unit-control/index.tsx +2 -2
- package/src/unit-control/stories/index.js +1 -1
- package/src/v-stack/component.js +1 -1
- package/src/visually-hidden/component.js +1 -1
- package/src/z-stack/component.tsx +2 -2
- package/tsconfig.tsbuildinfo +1 -1
- package/src/tools-panel/stories/typography-panel.js +0 -215
package/src/navigator/types.ts
CHANGED
|
@@ -43,3 +43,29 @@ export type NavigatorScreenProps = {
|
|
|
43
43
|
*/
|
|
44
44
|
children: ReactNode;
|
|
45
45
|
};
|
|
46
|
+
|
|
47
|
+
type ButtonProps = {
|
|
48
|
+
// TODO: should also extend `Button` prop types once the `Button` component
|
|
49
|
+
// is refactored to TypeScript.
|
|
50
|
+
};
|
|
51
|
+
export type NavigatorBackButtonProps = Omit< ButtonProps, 'href' > & {
|
|
52
|
+
/**
|
|
53
|
+
* The children elements.
|
|
54
|
+
*/
|
|
55
|
+
children: ReactNode;
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
export type NavigatorButtonProps = NavigatorBackButtonProps & {
|
|
59
|
+
/**
|
|
60
|
+
* The path of the screen to navigate to. The value of this prop needs to be
|
|
61
|
+
* a valid value for an HTML attribute.
|
|
62
|
+
*/
|
|
63
|
+
path: string;
|
|
64
|
+
/**
|
|
65
|
+
* The HTML attribute used to identify the `NavigatorButton`, which is used
|
|
66
|
+
* by `Navigator` to restore focus.
|
|
67
|
+
*
|
|
68
|
+
* @default 'id'
|
|
69
|
+
*/
|
|
70
|
+
attributeName?: string;
|
|
71
|
+
};
|
|
@@ -14,7 +14,7 @@ import { useState } from '@wordpress/element';
|
|
|
14
14
|
import NumberControl from '../';
|
|
15
15
|
|
|
16
16
|
export default {
|
|
17
|
-
title: 'Components/NumberControl',
|
|
17
|
+
title: 'Components (Experimental)/NumberControl',
|
|
18
18
|
component: NumberControl,
|
|
19
19
|
parameters: {
|
|
20
20
|
knobs: { disable: false },
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
import RadioGroup from '../../radio-group';
|
|
5
5
|
import Radio from '../';
|
|
6
6
|
|
|
7
|
-
export default { title: 'Components/Radio', component: Radio };
|
|
7
|
+
export default { title: 'Components (Experimental)/Radio', component: Radio };
|
|
8
8
|
|
|
9
9
|
export const _default = () => {
|
|
10
10
|
// Radio components must be a descendent of a RadioGroup component.
|
|
@@ -9,7 +9,10 @@ import { useState } from '@wordpress/element';
|
|
|
9
9
|
import Radio from '../../radio';
|
|
10
10
|
import RadioGroup from '../';
|
|
11
11
|
|
|
12
|
-
export default {
|
|
12
|
+
export default {
|
|
13
|
+
title: 'Components (Experimental)/RadioGroup',
|
|
14
|
+
component: RadioGroup,
|
|
15
|
+
};
|
|
13
16
|
|
|
14
17
|
export const _default = () => {
|
|
15
18
|
/* eslint-disable no-restricted-syntax */
|
|
@@ -9,7 +9,7 @@ import { forwardRef } from '@wordpress/element';
|
|
|
9
9
|
import classnames from 'classnames';
|
|
10
10
|
import { Resizable } from 're-resizable';
|
|
11
11
|
import type { ResizableProps } from 're-resizable';
|
|
12
|
-
import type { ReactNode,
|
|
12
|
+
import type { ReactNode, ForwardedRef } from 'react';
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* Internal dependencies
|
|
@@ -104,7 +104,7 @@ function ResizableBox(
|
|
|
104
104
|
__experimentalTooltipProps: tooltipProps = {},
|
|
105
105
|
...props
|
|
106
106
|
}: ResizableBoxProps,
|
|
107
|
-
ref:
|
|
107
|
+
ref: ForwardedRef< Resizable >
|
|
108
108
|
): JSX.Element {
|
|
109
109
|
return (
|
|
110
110
|
<Resizable
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { noop } from 'lodash';
|
|
5
5
|
import classnames from 'classnames';
|
|
6
|
-
import type { Ref } from 'react';
|
|
6
|
+
import type { Ref, ForwardedRef } from 'react';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* WordPress dependencies
|
|
@@ -43,7 +43,7 @@ function ResizeTooltip(
|
|
|
43
43
|
zIndex = 1000,
|
|
44
44
|
...props
|
|
45
45
|
}: ResizeTooltipProps,
|
|
46
|
-
ref:
|
|
46
|
+
ref: ForwardedRef< HTMLDivElement >
|
|
47
47
|
): JSX.Element | null {
|
|
48
48
|
const { label, resizeListener } = useResizeLabel( {
|
|
49
49
|
axis,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import type {
|
|
4
|
+
import type { ForwardedRef } from 'react';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* WordPress dependencies
|
|
@@ -33,7 +33,7 @@ type LabelProps = React.DetailedHTMLProps<
|
|
|
33
33
|
|
|
34
34
|
function Label(
|
|
35
35
|
{ label, position = POSITIONS.corner, zIndex = 1000, ...props }: LabelProps,
|
|
36
|
-
ref:
|
|
36
|
+
ref: ForwardedRef< HTMLDivElement >
|
|
37
37
|
): JSX.Element | null {
|
|
38
38
|
const showLabel = !! label;
|
|
39
39
|
|
|
@@ -7,7 +7,7 @@ import { useScrollable } from './hook';
|
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* @param {import('../ui/context').WordPressComponentProps<import('./types').Props, 'div'>} props
|
|
10
|
-
* @param {import('react').
|
|
10
|
+
* @param {import('react').ForwardedRef<any>} forwardedRef
|
|
11
11
|
*/
|
|
12
12
|
function Scrollable( props, forwardedRef ) {
|
|
13
13
|
const scrollableProps = useScrollable( props );
|
|
@@ -3,8 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { isEmpty, noop } from 'lodash';
|
|
5
5
|
import classNames from 'classnames';
|
|
6
|
-
|
|
7
|
-
import type { ChangeEvent, FocusEvent, ReactNode, Ref } from 'react';
|
|
6
|
+
import type { ChangeEvent, FocusEvent, ReactNode, ForwardedRef } from 'react';
|
|
8
7
|
|
|
9
8
|
/**
|
|
10
9
|
* WordPress dependencies
|
|
@@ -74,7 +73,7 @@ function SelectControl(
|
|
|
74
73
|
suffix,
|
|
75
74
|
...props
|
|
76
75
|
}: WordPressComponentProps< SelectControlProps, 'select', false >,
|
|
77
|
-
ref:
|
|
76
|
+
ref: ForwardedRef< HTMLSelectElement >
|
|
78
77
|
) {
|
|
79
78
|
const [ isFocused, setIsFocused ] = useState( false );
|
|
80
79
|
const id = useUniqueId( idProp );
|
package/src/spacer/component.tsx
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import type {
|
|
4
|
+
import type { ForwardedRef } from 'react';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Internal dependencies
|
|
@@ -13,7 +13,7 @@ import type { Props } from './types';
|
|
|
13
13
|
|
|
14
14
|
function Spacer(
|
|
15
15
|
props: WordPressComponentProps< Props, 'div' >,
|
|
16
|
-
forwardedRef:
|
|
16
|
+
forwardedRef: ForwardedRef< any >
|
|
17
17
|
) {
|
|
18
18
|
const spacerProps = useSpacer( props );
|
|
19
19
|
|
package/src/surface/component.js
CHANGED
|
@@ -7,7 +7,7 @@ import { useSurface } from './hook';
|
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* @param {import('../ui/context').WordPressComponentProps<import('./types').Props, 'div'>} props
|
|
10
|
-
* @param {import('react').
|
|
10
|
+
* @param {import('react').ForwardedRef<any>} forwardedRef
|
|
11
11
|
*/
|
|
12
12
|
function Surface( props, forwardedRef ) {
|
|
13
13
|
const surfaceProps = useSurface( props );
|
package/src/text/component.js
CHANGED
|
@@ -7,7 +7,7 @@ import useText from './hook';
|
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* @param {import('../ui/context').WordPressComponentProps<import('./types').Props, 'span'>} props
|
|
10
|
-
* @param {import('react').
|
|
10
|
+
* @param {import('react').ForwardedRef<any>} forwardedRef
|
|
11
11
|
*/
|
|
12
12
|
function Text( props, forwardedRef ) {
|
|
13
13
|
const textProps = useText( props );
|
|
@@ -24,8 +24,8 @@ import BaseControl from '../base-control';
|
|
|
24
24
|
|
|
25
25
|
/**
|
|
26
26
|
*
|
|
27
|
-
* @param {Props}
|
|
28
|
-
* @param {import('react').
|
|
27
|
+
* @param {Props} props Props
|
|
28
|
+
* @param {import('react').ForwardedRef<HTMLInputElement>} ref
|
|
29
29
|
*/
|
|
30
30
|
function TextControl(
|
|
31
31
|
{
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import type {
|
|
4
|
+
import type { ForwardedRef } from 'react';
|
|
5
5
|
// eslint-disable-next-line no-restricted-imports
|
|
6
6
|
import { RadioGroup, useRadioState } from 'reakit';
|
|
7
7
|
|
|
@@ -31,7 +31,7 @@ const noop = () => {};
|
|
|
31
31
|
|
|
32
32
|
function ToggleGroupControl(
|
|
33
33
|
props: WordPressComponentProps< ToggleGroupControlProps, 'input' >,
|
|
34
|
-
forwardedRef:
|
|
34
|
+
forwardedRef: ForwardedRef< any >
|
|
35
35
|
) {
|
|
36
36
|
const {
|
|
37
37
|
className,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import type {
|
|
4
|
+
import type { ForwardedRef } from 'react';
|
|
5
5
|
// eslint-disable-next-line no-restricted-imports
|
|
6
6
|
import { Radio } from 'reakit';
|
|
7
7
|
|
|
@@ -39,7 +39,7 @@ const WithToolTip = ( { showTooltip, text, children }: WithToolTipProps ) => {
|
|
|
39
39
|
|
|
40
40
|
function ToggleGroupControlOption(
|
|
41
41
|
props: WordPressComponentProps< ToggleGroupControlOptionProps, 'button' >,
|
|
42
|
-
forwardedRef:
|
|
42
|
+
forwardedRef: ForwardedRef< any >
|
|
43
43
|
) {
|
|
44
44
|
const toggleGroupControlContext = useToggleGroupControlContext();
|
|
45
45
|
const id = useInstanceId(
|
|
@@ -467,7 +467,6 @@ export const WithConditionallyRenderedControl = () => {
|
|
|
467
467
|
);
|
|
468
468
|
};
|
|
469
469
|
|
|
470
|
-
export { TypographyPanel } from './typography-panel';
|
|
471
470
|
export { ToolsPanelWithItemGroupSlot } from './tools-panel-with-item-group-slot';
|
|
472
471
|
|
|
473
472
|
const PanelWrapperView = styled.div`
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import type {
|
|
4
|
+
import type { ForwardedRef } from 'react';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Internal dependencies
|
|
@@ -15,7 +15,7 @@ import type { ToolsPanelProps } from '../types';
|
|
|
15
15
|
|
|
16
16
|
const ToolsPanel = (
|
|
17
17
|
props: WordPressComponentProps< ToolsPanelProps, 'div' >,
|
|
18
|
-
forwardedRef:
|
|
18
|
+
forwardedRef: ForwardedRef< any >
|
|
19
19
|
) => {
|
|
20
20
|
const {
|
|
21
21
|
children,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import type {
|
|
4
|
+
import type { ForwardedRef } from 'react';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* WordPress dependencies
|
|
@@ -114,7 +114,7 @@ const OptionalControlsGroup = ( {
|
|
|
114
114
|
|
|
115
115
|
const ToolsPanelHeader = (
|
|
116
116
|
props: WordPressComponentProps< ToolsPanelHeaderProps, 'h2' >,
|
|
117
|
-
forwardedRef:
|
|
117
|
+
forwardedRef: ForwardedRef< any >
|
|
118
118
|
) => {
|
|
119
119
|
const {
|
|
120
120
|
areAllOptionalControlsHidden,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import type {
|
|
4
|
+
import type { ForwardedRef } from 'react';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Internal dependencies
|
|
@@ -15,7 +15,7 @@ import type { ToolsPanelItemProps } from '../types';
|
|
|
15
15
|
// prevents props being applied to HTML elements that would make them invalid.
|
|
16
16
|
const ToolsPanelItem = (
|
|
17
17
|
props: WordPressComponentProps< ToolsPanelItemProps, 'div' >,
|
|
18
|
-
forwardedRef:
|
|
18
|
+
forwardedRef: ForwardedRef< any >
|
|
19
19
|
) => {
|
|
20
20
|
const {
|
|
21
21
|
children,
|
package/src/tree-grid/README.md
CHANGED
|
@@ -108,10 +108,33 @@ function TreeMenu() {
|
|
|
108
108
|
|
|
109
109
|
##### Props
|
|
110
110
|
|
|
111
|
-
|
|
111
|
+
Aside from the documented callback functions, any props specified will be passed to the `table` element rendered by `TreeGrid`.
|
|
112
112
|
|
|
113
113
|
`TreeGrid` should always have children.
|
|
114
114
|
|
|
115
|
+
###### onFocusRow( event: Event, startRow: HTMLElement, destinationRow: HTMLElement )
|
|
116
|
+
|
|
117
|
+
Callback that fires when focus is shifted from one row to another via the UP and DOWN keys.
|
|
118
|
+
The callback is passed the event, the start row element that the focus was on originally, and
|
|
119
|
+
the destination row element after the focus has moved.
|
|
120
|
+
|
|
121
|
+
- Type: `Function`
|
|
122
|
+
- Required: No
|
|
123
|
+
|
|
124
|
+
###### onCollapseRow( row: HTMLElement )
|
|
125
|
+
|
|
126
|
+
A callback that passes in the row element to be collapsed.
|
|
127
|
+
|
|
128
|
+
- Type: `Function`
|
|
129
|
+
- Required: No
|
|
130
|
+
|
|
131
|
+
###### onExpandRow( row: HTMLElement )
|
|
132
|
+
|
|
133
|
+
A callback that passes in the row element to be expanded.
|
|
134
|
+
|
|
135
|
+
- Type: `Function`
|
|
136
|
+
- Required: No
|
|
137
|
+
|
|
115
138
|
#### TreeGridRow
|
|
116
139
|
|
|
117
140
|
##### Props
|
package/src/tree-grid/index.js
CHANGED
|
@@ -8,7 +8,7 @@ import { includes } from 'lodash';
|
|
|
8
8
|
*/
|
|
9
9
|
import { focus } from '@wordpress/dom';
|
|
10
10
|
import { forwardRef, useCallback } from '@wordpress/element';
|
|
11
|
-
import { UP, DOWN, LEFT, RIGHT } from '@wordpress/keycodes';
|
|
11
|
+
import { UP, DOWN, LEFT, RIGHT, HOME, END } from '@wordpress/keycodes';
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* Internal dependencies
|
|
@@ -45,22 +45,30 @@ function getRowFocusables( rowElement ) {
|
|
|
45
45
|
* @param {WPElement} props.children Children to be rendered.
|
|
46
46
|
* @param {Function} props.onExpandRow Callback to fire when row is expanded.
|
|
47
47
|
* @param {Function} props.onCollapseRow Callback to fire when row is collapsed.
|
|
48
|
+
* @param {Function} props.onFocusRow Callback to fire when moving focus to a different row.
|
|
48
49
|
* @param {Object} ref A ref to the underlying DOM table element.
|
|
49
50
|
*/
|
|
50
51
|
function TreeGrid(
|
|
51
|
-
{
|
|
52
|
+
{
|
|
53
|
+
children,
|
|
54
|
+
onExpandRow = () => {},
|
|
55
|
+
onCollapseRow = () => {},
|
|
56
|
+
onFocusRow = () => {},
|
|
57
|
+
...props
|
|
58
|
+
},
|
|
52
59
|
ref
|
|
53
60
|
) {
|
|
54
61
|
const onKeyDown = useCallback(
|
|
55
62
|
( event ) => {
|
|
56
|
-
const { keyCode, metaKey, ctrlKey, altKey
|
|
63
|
+
const { keyCode, metaKey, ctrlKey, altKey } = event;
|
|
57
64
|
|
|
58
|
-
|
|
59
|
-
|
|
65
|
+
// The shift key is intentionally absent from the following list,
|
|
66
|
+
// to enable shift + up/down to select items from the list.
|
|
67
|
+
const hasModifierKeyPressed = metaKey || ctrlKey || altKey;
|
|
60
68
|
|
|
61
69
|
if (
|
|
62
70
|
hasModifierKeyPressed ||
|
|
63
|
-
! includes( [ UP, DOWN, LEFT, RIGHT ], keyCode )
|
|
71
|
+
! includes( [ UP, DOWN, LEFT, RIGHT, HOME, END ], keyCode )
|
|
64
72
|
) {
|
|
65
73
|
return;
|
|
66
74
|
}
|
|
@@ -216,12 +224,63 @@ function TreeGrid(
|
|
|
216
224
|
);
|
|
217
225
|
focusablesInNextRow[ nextIndex ].focus();
|
|
218
226
|
|
|
227
|
+
// Let consumers know the row that was originally focused,
|
|
228
|
+
// and the row that is now in focus.
|
|
229
|
+
onFocusRow( event, activeRow, rows[ nextRowIndex ] );
|
|
230
|
+
|
|
231
|
+
// Prevent key use for anything else. This ensures Voiceover
|
|
232
|
+
// doesn't try to handle key navigation.
|
|
233
|
+
event.preventDefault();
|
|
234
|
+
} else if ( includes( [ HOME, END ], keyCode ) ) {
|
|
235
|
+
// Calculate the rowIndex of the next row.
|
|
236
|
+
const rows = Array.from(
|
|
237
|
+
treeGridElement.querySelectorAll( '[role="row"]' )
|
|
238
|
+
);
|
|
239
|
+
const currentRowIndex = rows.indexOf( activeRow );
|
|
240
|
+
let nextRowIndex;
|
|
241
|
+
|
|
242
|
+
if ( keyCode === HOME ) {
|
|
243
|
+
nextRowIndex = 0;
|
|
244
|
+
} else {
|
|
245
|
+
nextRowIndex = rows.length - 1;
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
// Focus is either at the top or bottom edge of the grid. Do nothing.
|
|
249
|
+
if ( nextRowIndex === currentRowIndex ) {
|
|
250
|
+
// Prevent key use for anything else. For example, Voiceover
|
|
251
|
+
// will start navigating horizontally when reaching the vertical
|
|
252
|
+
// bounds of a table.
|
|
253
|
+
event.preventDefault();
|
|
254
|
+
return;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
// Get the focusables in the next row.
|
|
258
|
+
const focusablesInNextRow = getRowFocusables(
|
|
259
|
+
rows[ nextRowIndex ]
|
|
260
|
+
);
|
|
261
|
+
|
|
262
|
+
// If for some reason there are no focusables in the next row, do nothing.
|
|
263
|
+
if ( ! focusablesInNextRow || ! focusablesInNextRow.length ) {
|
|
264
|
+
// Prevent key use for anything else. For example, Voiceover
|
|
265
|
+
// will still focus text when using arrow keys, while this
|
|
266
|
+
// component should limit navigation to focusables.
|
|
267
|
+
event.preventDefault();
|
|
268
|
+
return;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
// Try to focus the element in the next row that's at a similar column to the activeElement.
|
|
272
|
+
const nextIndex = Math.min(
|
|
273
|
+
currentColumnIndex,
|
|
274
|
+
focusablesInNextRow.length - 1
|
|
275
|
+
);
|
|
276
|
+
focusablesInNextRow[ nextIndex ].focus();
|
|
277
|
+
|
|
219
278
|
// Prevent key use for anything else. This ensures Voiceover
|
|
220
279
|
// doesn't try to handle key navigation.
|
|
221
280
|
event.preventDefault();
|
|
222
281
|
}
|
|
223
282
|
},
|
|
224
|
-
[ onExpandRow, onCollapseRow ]
|
|
283
|
+
[ onExpandRow, onCollapseRow, onFocusRow ]
|
|
225
284
|
);
|
|
226
285
|
|
|
227
286
|
/* Disable reason: A treegrid is implemented using a table element. */
|
|
@@ -9,7 +9,10 @@ import { Fragment } from '@wordpress/element';
|
|
|
9
9
|
import TreeGrid, { TreeGridRow, TreeGridCell } from '../';
|
|
10
10
|
import { Button } from '../../';
|
|
11
11
|
|
|
12
|
-
export default {
|
|
12
|
+
export default {
|
|
13
|
+
title: 'Components (Experimental)/TreeGrid',
|
|
14
|
+
component: TreeGrid,
|
|
15
|
+
};
|
|
13
16
|
|
|
14
17
|
const groceries = [
|
|
15
18
|
{
|
|
@@ -1,16 +1,3 @@
|
|
|
1
1
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
2
|
|
|
3
|
-
exports[`TreeGrid renders a table, tbody and any child elements 1`] = `
|
|
4
|
-
<table
|
|
5
|
-
onKeyDown={[Function]}
|
|
6
|
-
role="treegrid"
|
|
7
|
-
>
|
|
8
|
-
<tbody>
|
|
9
|
-
<tr>
|
|
10
|
-
<td>
|
|
11
|
-
Test
|
|
12
|
-
</td>
|
|
13
|
-
</tr>
|
|
14
|
-
</tbody>
|
|
15
|
-
</table>
|
|
16
|
-
`;
|
|
3
|
+
exports[`TreeGrid simple rendering renders a table, tbody and any child elements 1`] = `"<table role=\\"treegrid\\"><tbody><tr><td>Test</td></tr></tbody></table>"`;
|