@wordpress/components 23.6.0 → 23.8.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 +43 -4
- package/build/angle-picker-control/angle-circle.js +1 -4
- package/build/angle-picker-control/angle-circle.js.map +1 -1
- package/build/angle-picker-control/index.js +10 -22
- package/build/angle-picker-control/index.js.map +1 -1
- package/build/angle-picker-control/styles/angle-picker-control-styles.js +24 -15
- package/build/angle-picker-control/styles/angle-picker-control-styles.js.map +1 -1
- package/build/animate/index.js +27 -19
- package/build/animate/index.js.map +1 -1
- package/build/animate/types.js.map +1 -0
- package/build/box-control/axial-input-controls.js.map +1 -1
- package/build/color-picker/color-input.js +0 -4
- package/build/color-picker/color-input.js.map +1 -1
- package/build/color-picker/component.js +5 -4
- package/build/color-picker/component.js.map +1 -1
- package/build/color-picker/hex-input.js.map +1 -1
- package/build/color-picker/hsl-input.js.map +1 -1
- package/build/color-picker/input-with-slider.js.map +1 -1
- package/build/color-picker/legacy-adapter.js.map +1 -1
- package/build/color-picker/picker.js.map +1 -1
- package/build/color-picker/rgb-input.js.map +1 -1
- package/build/color-picker/use-deprecated-props.js.map +1 -1
- package/build/custom-gradient-picker/constants.js +1 -1
- package/build/custom-gradient-picker/constants.js.map +1 -1
- package/build/custom-gradient-picker/gradient-bar/constants.js.map +1 -1
- package/build/custom-gradient-picker/gradient-bar/control-points.js +9 -5
- package/build/custom-gradient-picker/gradient-bar/control-points.js.map +1 -1
- package/build/custom-gradient-picker/gradient-bar/index.js +14 -9
- package/build/custom-gradient-picker/gradient-bar/index.js.map +1 -1
- package/build/custom-gradient-picker/gradient-bar/utils.js +34 -54
- package/build/custom-gradient-picker/gradient-bar/utils.js.map +1 -1
- package/build/custom-gradient-picker/index.js +45 -16
- package/build/custom-gradient-picker/index.js.map +1 -1
- package/build/custom-gradient-picker/serializer.js +10 -4
- package/build/custom-gradient-picker/serializer.js.map +1 -1
- package/build/custom-gradient-picker/styles/custom-gradient-picker-styles.js +6 -6
- package/build/custom-gradient-picker/styles/custom-gradient-picker-styles.js.map +1 -1
- package/build/custom-gradient-picker/types.js +6 -0
- package/build/custom-gradient-picker/types.js.map +1 -0
- package/build/custom-gradient-picker/utils.js +17 -12
- package/build/custom-gradient-picker/utils.js.map +1 -1
- package/build/drop-zone/index.js +8 -8
- package/build/drop-zone/index.js.map +1 -1
- package/build/{color-list-picker → duotone-picker/color-list-picker}/index.js +5 -5
- package/build/duotone-picker/color-list-picker/index.js.map +1 -0
- package/build/duotone-picker/color-list-picker/types.js +6 -0
- package/build/duotone-picker/color-list-picker/types.js.map +1 -0
- package/build/duotone-picker/custom-duotone-bar.js.map +1 -1
- package/build/duotone-picker/duotone-picker.js +39 -2
- package/build/duotone-picker/duotone-picker.js.map +1 -1
- package/build/duotone-picker/duotone-swatch.js.map +1 -1
- package/build/duotone-picker/index.js.map +1 -1
- package/build/duotone-picker/types.js +6 -0
- package/build/duotone-picker/types.js.map +1 -0
- package/build/duotone-picker/utils.js +13 -11
- package/build/duotone-picker/utils.js.map +1 -1
- package/build/form-token-field/index.js +9 -3
- package/build/form-token-field/index.js.map +1 -1
- package/build/gradient-picker/index.js +61 -9
- package/build/gradient-picker/index.js.map +1 -1
- package/build/gradient-picker/types.js +6 -0
- package/build/gradient-picker/types.js.map +1 -0
- package/build/index.js.map +1 -1
- package/build/mobile/keyboard-aware-flat-list/index.android.js +0 -4
- package/build/mobile/keyboard-aware-flat-list/index.android.js.map +1 -1
- package/build/mobile/keyboard-aware-flat-list/index.ios.js +100 -55
- package/build/mobile/keyboard-aware-flat-list/index.ios.js.map +1 -1
- package/build/mobile/keyboard-aware-flat-list/use-keyboard-offset.native.js +82 -0
- package/build/mobile/keyboard-aware-flat-list/use-keyboard-offset.native.js.map +1 -0
- package/build/mobile/keyboard-aware-flat-list/use-scroll-to-text-input.native.js +85 -0
- package/build/mobile/keyboard-aware-flat-list/use-scroll-to-text-input.native.js.map +1 -0
- package/build/mobile/keyboard-aware-flat-list/use-text-input-caret-position.native.js +44 -0
- package/build/mobile/keyboard-aware-flat-list/use-text-input-caret-position.native.js.map +1 -0
- package/build/mobile/keyboard-aware-flat-list/use-text-input-offset.native.js +53 -0
- package/build/mobile/keyboard-aware-flat-list/use-text-input-offset.native.js.map +1 -0
- package/build/navigator/navigator-provider/component.js +4 -2
- package/build/navigator/navigator-provider/component.js.map +1 -1
- package/build/navigator/navigator-screen/component.js +4 -3
- package/build/navigator/navigator-screen/component.js.map +1 -1
- package/build/palette-edit/index.js +1 -2
- package/build/palette-edit/index.js.map +1 -1
- package/build/private-apis.js.map +1 -1
- package/build/query-controls/author-select.js +2 -1
- package/build/query-controls/author-select.js.map +1 -1
- package/build/query-controls/category-select.js +3 -1
- package/build/query-controls/category-select.js.map +1 -1
- package/build/query-controls/index.js +7 -1
- package/build/query-controls/index.js.map +1 -1
- package/build/resizable-box/resize-tooltip/utils.js.map +1 -1
- package/build/sandbox/index.native.js +129 -93
- package/build/sandbox/index.native.js.map +1 -1
- package/build/tab-panel/index.js +1 -1
- package/build/tab-panel/index.js.map +1 -1
- package/build/tools-panel/tools-panel/hook.js +45 -6
- package/build/tools-panel/tools-panel/hook.js.map +1 -1
- package/build/utils/input/input-control.js +1 -1
- package/build/utils/input/input-control.js.map +1 -1
- package/build-module/angle-picker-control/angle-circle.js +1 -4
- package/build-module/angle-picker-control/angle-circle.js.map +1 -1
- package/build-module/angle-picker-control/index.js +12 -21
- package/build-module/angle-picker-control/index.js.map +1 -1
- package/build-module/angle-picker-control/styles/angle-picker-control-styles.js +20 -13
- package/build-module/angle-picker-control/styles/angle-picker-control-styles.js.map +1 -1
- package/build-module/animate/index.js +25 -17
- package/build-module/animate/index.js.map +1 -1
- package/build-module/box-control/axial-input-controls.js.map +1 -1
- package/build-module/color-picker/color-input.js +0 -4
- package/build-module/color-picker/color-input.js.map +1 -1
- package/build-module/color-picker/component.js +3 -3
- package/build-module/color-picker/component.js.map +1 -1
- package/build-module/color-picker/hex-input.js.map +1 -1
- package/build-module/color-picker/hsl-input.js.map +1 -1
- package/build-module/color-picker/input-with-slider.js.map +1 -1
- package/build-module/color-picker/legacy-adapter.js.map +1 -1
- package/build-module/color-picker/picker.js +4 -0
- package/build-module/color-picker/picker.js.map +1 -1
- package/build-module/color-picker/rgb-input.js.map +1 -1
- package/build-module/color-picker/use-deprecated-props.js.map +1 -1
- package/build-module/custom-gradient-picker/constants.js +1 -1
- package/build-module/custom-gradient-picker/constants.js.map +1 -1
- package/build-module/custom-gradient-picker/gradient-bar/constants.js.map +1 -1
- package/build-module/custom-gradient-picker/gradient-bar/control-points.js +9 -4
- package/build-module/custom-gradient-picker/gradient-bar/control-points.js.map +1 -1
- package/build-module/custom-gradient-picker/gradient-bar/index.js +14 -8
- package/build-module/custom-gradient-picker/gradient-bar/index.js.map +1 -1
- package/build-module/custom-gradient-picker/gradient-bar/utils.js +34 -54
- package/build-module/custom-gradient-picker/gradient-bar/utils.js.map +1 -1
- package/build-module/custom-gradient-picker/index.js +44 -17
- package/build-module/custom-gradient-picker/index.js.map +1 -1
- package/build-module/custom-gradient-picker/serializer.js +10 -4
- package/build-module/custom-gradient-picker/serializer.js.map +1 -1
- package/build-module/custom-gradient-picker/styles/custom-gradient-picker-styles.js +6 -6
- package/build-module/custom-gradient-picker/styles/custom-gradient-picker-styles.js.map +1 -1
- package/build-module/custom-gradient-picker/types.js +2 -0
- package/build-module/custom-gradient-picker/utils.js +17 -12
- package/build-module/custom-gradient-picker/utils.js.map +1 -1
- package/build-module/drop-zone/index.js +8 -8
- package/build-module/drop-zone/index.js.map +1 -1
- package/build-module/{color-list-picker → duotone-picker/color-list-picker}/index.js +5 -5
- package/build-module/duotone-picker/color-list-picker/index.js.map +1 -0
- package/build-module/duotone-picker/color-list-picker/types.js +2 -0
- package/build-module/duotone-picker/color-list-picker/types.js.map +1 -0
- package/build-module/duotone-picker/custom-duotone-bar.js.map +1 -1
- package/build-module/duotone-picker/duotone-picker.js +38 -2
- package/build-module/duotone-picker/duotone-picker.js.map +1 -1
- package/build-module/duotone-picker/duotone-swatch.js.map +1 -1
- package/build-module/duotone-picker/index.js.map +1 -1
- package/build-module/duotone-picker/types.js +2 -0
- package/build-module/duotone-picker/types.js.map +1 -0
- package/build-module/duotone-picker/utils.js +17 -11
- package/build-module/duotone-picker/utils.js.map +1 -1
- package/build-module/form-token-field/index.js +9 -4
- package/build-module/form-token-field/index.js.map +1 -1
- package/build-module/gradient-picker/index.js +61 -10
- package/build-module/gradient-picker/index.js.map +1 -1
- package/build-module/gradient-picker/types.js +2 -0
- package/build-module/gradient-picker/types.js.map +1 -0
- package/build-module/index.js.map +1 -1
- package/build-module/mobile/keyboard-aware-flat-list/index.android.js +0 -4
- package/build-module/mobile/keyboard-aware-flat-list/index.android.js.map +1 -1
- package/build-module/mobile/keyboard-aware-flat-list/index.ios.js +97 -54
- package/build-module/mobile/keyboard-aware-flat-list/index.ios.js.map +1 -1
- package/build-module/mobile/keyboard-aware-flat-list/use-keyboard-offset.native.js +73 -0
- package/build-module/mobile/keyboard-aware-flat-list/use-keyboard-offset.native.js.map +1 -0
- package/build-module/mobile/keyboard-aware-flat-list/use-scroll-to-text-input.native.js +76 -0
- package/build-module/mobile/keyboard-aware-flat-list/use-scroll-to-text-input.native.js.map +1 -0
- package/build-module/mobile/keyboard-aware-flat-list/use-text-input-caret-position.native.js +33 -0
- package/build-module/mobile/keyboard-aware-flat-list/use-text-input-caret-position.native.js.map +1 -0
- package/build-module/mobile/keyboard-aware-flat-list/use-text-input-offset.native.js +40 -0
- package/build-module/mobile/keyboard-aware-flat-list/use-text-input-offset.native.js.map +1 -0
- package/build-module/navigator/navigator-provider/component.js +4 -2
- package/build-module/navigator/navigator-provider/component.js.map +1 -1
- package/build-module/navigator/navigator-screen/component.js +4 -3
- package/build-module/navigator/navigator-screen/component.js.map +1 -1
- package/build-module/palette-edit/index.js +1 -2
- package/build-module/palette-edit/index.js.map +1 -1
- package/build-module/private-apis.js.map +1 -1
- package/build-module/query-controls/author-select.js +2 -1
- package/build-module/query-controls/author-select.js.map +1 -1
- package/build-module/query-controls/category-select.js +3 -1
- package/build-module/query-controls/category-select.js.map +1 -1
- package/build-module/query-controls/index.js +7 -2
- package/build-module/query-controls/index.js.map +1 -1
- package/build-module/resizable-box/resize-tooltip/utils.js.map +1 -1
- package/build-module/sandbox/index.native.js +121 -87
- package/build-module/sandbox/index.native.js.map +1 -1
- package/build-module/tab-panel/index.js +2 -2
- package/build-module/tab-panel/index.js.map +1 -1
- package/build-module/tools-panel/tools-panel/hook.js +45 -6
- package/build-module/tools-panel/tools-panel/hook.js.map +1 -1
- package/build-module/utils/input/input-control.js +1 -1
- package/build-module/utils/input/input-control.js.map +1 -1
- package/build-style/style-rtl.css +41 -29
- package/build-style/style.css +43 -29
- package/build-types/angle-picker-control/angle-circle.d.ts.map +1 -1
- package/build-types/angle-picker-control/index.d.ts.map +1 -1
- package/build-types/angle-picker-control/styles/angle-picker-control-styles.d.ts +6 -1
- package/build-types/angle-picker-control/styles/angle-picker-control-styles.d.ts.map +1 -1
- package/build-types/animate/index.d.ts +27 -22
- package/build-types/animate/index.d.ts.map +1 -1
- package/build-types/animate/stories/index.d.ts +18 -0
- package/build-types/animate/stories/index.d.ts.map +1 -0
- package/build-types/animate/types.d.ts +30 -0
- package/build-types/animate/types.d.ts.map +1 -0
- package/build-types/border-box-control/border-box-control/hook.d.ts +2 -2
- package/build-types/border-box-control/border-box-control-linked-button/hook.d.ts +2 -2
- package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts +2 -2
- package/build-types/border-box-control/border-box-control-visualizer/hook.d.ts +2 -2
- package/build-types/border-control/border-control/hook.d.ts +2 -2
- package/build-types/border-control/border-control-dropdown/hook.d.ts +2 -2
- package/build-types/border-control/border-control-style-picker/hook.d.ts +2 -2
- package/build-types/box-control/styles/box-control-styles.d.ts +5 -5
- package/build-types/button/deprecated.d.ts +2 -2
- package/build-types/card/card/hook.d.ts +2 -2
- package/build-types/card/card-body/hook.d.ts +2 -2
- package/build-types/card/card-divider/hook.d.ts +2 -2
- package/build-types/card/card-footer/hook.d.ts +2 -2
- package/build-types/card/card-header/hook.d.ts +2 -2
- package/build-types/card/card-media/hook.d.ts +2 -2
- package/build-types/color-palette/styles.d.ts +1 -1
- package/build-types/color-picker/color-input.d.ts +1 -11
- package/build-types/color-picker/color-input.d.ts.map +1 -1
- package/build-types/color-picker/component.d.ts +8 -9
- package/build-types/color-picker/component.d.ts.map +1 -1
- package/build-types/color-picker/hex-input.d.ts +1 -10
- package/build-types/color-picker/hex-input.d.ts.map +1 -1
- package/build-types/color-picker/hsl-input.d.ts +1 -10
- package/build-types/color-picker/hsl-input.d.ts.map +1 -1
- package/build-types/color-picker/input-with-slider.d.ts +1 -9
- package/build-types/color-picker/input-with-slider.d.ts.map +1 -1
- package/build-types/color-picker/legacy-adapter.d.ts +1 -3
- package/build-types/color-picker/legacy-adapter.d.ts.map +1 -1
- package/build-types/color-picker/picker.d.ts +4 -7
- package/build-types/color-picker/picker.d.ts.map +1 -1
- package/build-types/color-picker/rgb-input.d.ts +1 -10
- package/build-types/color-picker/rgb-input.d.ts.map +1 -1
- package/build-types/color-picker/stories/index.d.ts +19 -0
- package/build-types/color-picker/stories/index.d.ts.map +1 -0
- package/build-types/color-picker/styles.d.ts +5 -5
- package/build-types/color-picker/test/index.d.ts +2 -0
- package/build-types/color-picker/test/index.d.ts.map +1 -0
- package/build-types/color-picker/types.d.ts +105 -1
- package/build-types/color-picker/types.d.ts.map +1 -1
- package/build-types/color-picker/use-deprecated-props.d.ts +1 -44
- package/build-types/color-picker/use-deprecated-props.d.ts.map +1 -1
- package/build-types/combobox-control/styles.d.ts +1 -1
- package/build-types/custom-gradient-picker/constants.d.ts +8 -8
- package/build-types/custom-gradient-picker/constants.d.ts.map +1 -1
- package/build-types/custom-gradient-picker/gradient-bar/constants.d.ts +7 -7
- package/build-types/custom-gradient-picker/gradient-bar/constants.d.ts.map +1 -1
- package/build-types/custom-gradient-picker/gradient-bar/control-points.d.ts +5 -22
- package/build-types/custom-gradient-picker/gradient-bar/control-points.d.ts.map +1 -1
- package/build-types/custom-gradient-picker/gradient-bar/index.d.ts +3 -9
- package/build-types/custom-gradient-picker/gradient-bar/index.d.ts.map +1 -1
- package/build-types/custom-gradient-picker/gradient-bar/test/utils.d.ts +2 -0
- package/build-types/custom-gradient-picker/gradient-bar/test/utils.d.ts.map +1 -0
- package/build-types/custom-gradient-picker/gradient-bar/utils.d.ts +44 -92
- package/build-types/custom-gradient-picker/gradient-bar/utils.d.ts.map +1 -1
- package/build-types/custom-gradient-picker/index.d.ts +27 -6
- package/build-types/custom-gradient-picker/index.d.ts.map +1 -1
- package/build-types/custom-gradient-picker/serializer.d.ts +9 -16
- package/build-types/custom-gradient-picker/serializer.d.ts.map +1 -1
- package/build-types/custom-gradient-picker/stories/index.d.ts +12 -0
- package/build-types/custom-gradient-picker/stories/index.d.ts.map +1 -0
- package/build-types/custom-gradient-picker/styles/custom-gradient-picker-styles.d.ts +3 -2
- package/build-types/custom-gradient-picker/styles/custom-gradient-picker-styles.d.ts.map +1 -1
- package/build-types/custom-gradient-picker/test/serializer.d.ts +2 -0
- package/build-types/custom-gradient-picker/test/serializer.d.ts.map +1 -0
- package/build-types/custom-gradient-picker/types.d.ts +118 -0
- package/build-types/custom-gradient-picker/types.d.ts.map +1 -0
- package/build-types/custom-gradient-picker/utils.d.ts +12 -4
- package/build-types/custom-gradient-picker/utils.d.ts.map +1 -1
- package/build-types/date-time/date/styles.d.ts +2 -2
- package/build-types/date-time/date-time/styles.d.ts +1 -1
- package/build-types/date-time/time/styles.d.ts +8 -8
- package/build-types/drop-zone/index.d.ts.map +1 -1
- package/build-types/duotone-picker/color-list-picker/index.d.ts.map +1 -0
- package/build-types/{color-list-picker → duotone-picker/color-list-picker}/types.d.ts +2 -2
- package/build-types/duotone-picker/color-list-picker/types.d.ts.map +1 -0
- package/build-types/duotone-picker/custom-duotone-bar.d.ts +6 -0
- package/build-types/duotone-picker/custom-duotone-bar.d.ts.map +1 -0
- package/build-types/duotone-picker/duotone-picker.d.ts +38 -0
- package/build-types/duotone-picker/duotone-picker.d.ts.map +1 -0
- package/build-types/duotone-picker/duotone-swatch.d.ts +5 -0
- package/build-types/duotone-picker/duotone-swatch.d.ts.map +1 -0
- package/build-types/duotone-picker/index.d.ts +3 -0
- package/build-types/duotone-picker/index.d.ts.map +1 -0
- package/build-types/duotone-picker/stories/duotone-picker.d.ts +12 -0
- package/build-types/duotone-picker/stories/duotone-picker.d.ts.map +1 -0
- package/build-types/duotone-picker/stories/duotone-swatch.d.ts +14 -0
- package/build-types/duotone-picker/stories/duotone-swatch.d.ts.map +1 -0
- package/build-types/duotone-picker/types.d.ts +60 -0
- package/build-types/duotone-picker/types.d.ts.map +1 -0
- package/build-types/duotone-picker/utils.d.ts +52 -0
- package/build-types/duotone-picker/utils.d.ts.map +1 -0
- package/build-types/elevation/hook.d.ts +2 -2
- package/build-types/external-link/styles/external-link-styles.d.ts +1 -1
- package/build-types/flex/flex/hook.d.ts +2 -2
- package/build-types/flex/flex-block/hook.d.ts +2 -2
- package/build-types/flex/flex-item/hook.d.ts +2 -2
- package/build-types/focal-point-picker/styles/focal-point-picker-style.d.ts +2 -2
- 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 +6 -0
- package/build-types/form-token-field/types.d.ts.map +1 -1
- package/build-types/gradient-picker/index.d.ts +49 -11
- package/build-types/gradient-picker/index.d.ts.map +1 -1
- package/build-types/gradient-picker/stories/index.d.ts +14 -0
- package/build-types/gradient-picker/stories/index.d.ts.map +1 -0
- package/build-types/gradient-picker/types.d.ts +87 -0
- package/build-types/gradient-picker/types.d.ts.map +1 -0
- package/build-types/grid/hook.d.ts +2 -2
- package/build-types/h-stack/hook.d.ts +2 -2
- package/build-types/heading/hook.d.ts +2 -2
- package/build-types/index.d.ts +128 -0
- package/build-types/index.d.ts.map +1 -0
- package/build-types/input-control/styles/input-control-styles.d.ts +2 -2
- package/build-types/item-group/item/hook.d.ts +2 -2
- package/build-types/item-group/item-group/hook.d.ts +2 -2
- package/build-types/navigation/styles/navigation-styles.d.ts +2 -2
- package/build-types/navigator/navigator-back-button/hook.d.ts +2 -2
- package/build-types/navigator/navigator-button/hook.d.ts +2 -2
- package/build-types/navigator/navigator-provider/component.d.ts.map +1 -1
- package/build-types/navigator/navigator-screen/component.d.ts +1 -1
- package/build-types/navigator/navigator-screen/component.d.ts.map +1 -1
- package/build-types/navigator/stories/index.d.ts +1 -0
- package/build-types/navigator/stories/index.d.ts.map +1 -1
- package/build-types/navigator/types.d.ts +2 -2
- package/build-types/navigator/types.d.ts.map +1 -1
- package/build-types/number-control/index.d.ts +2 -2
- package/build-types/number-control/stories/index.d.ts +2 -2
- package/build-types/palette-edit/index.d.ts.map +1 -1
- package/build-types/palette-edit/styles.d.ts +3 -3
- package/build-types/popover/index.d.ts +1 -1
- package/build-types/popover/stories/e2e/index.d.ts +1 -1
- package/build-types/private-apis.d.ts +2 -3
- package/build-types/private-apis.d.ts.map +1 -1
- package/build-types/query-controls/author-select.d.ts.map +1 -1
- package/build-types/query-controls/category-select.d.ts.map +1 -1
- package/build-types/query-controls/index.d.ts.map +1 -1
- package/build-types/range-control/index.d.ts +1 -1
- package/build-types/range-control/styles/range-control-styles.d.ts +2 -2
- package/build-types/resizable-box/index.d.ts +1 -1
- package/build-types/resizable-box/resize-tooltip/index.d.ts +1 -1
- package/build-types/resizable-box/resize-tooltip/utils.d.ts +1 -1
- package/build-types/resizable-box/resize-tooltip/utils.d.ts.map +1 -1
- package/build-types/resizable-box/stories/index.d.ts +2 -2
- package/build-types/scrollable/hook.d.ts +2 -2
- package/build-types/search-control/index.d.ts +1 -1
- package/build-types/search-control/stories/index.d.ts +2 -2
- package/build-types/spacer/hook.d.ts +2 -2
- package/build-types/spinner/index.d.ts +1 -1
- package/build-types/surface/hook.d.ts +2 -2
- package/build-types/tab-panel/index.d.ts.map +1 -1
- package/build-types/text/hook.d.ts +2 -2
- package/build-types/text-control/index.d.ts +1 -1
- package/build-types/toolbar/toolbar-button/index.d.ts +2 -2
- package/build-types/tools-panel/tools-panel/hook.d.ts +2 -2
- package/build-types/tools-panel/tools-panel/hook.d.ts.map +1 -1
- package/build-types/tools-panel/tools-panel-header/hook.d.ts +2 -2
- package/build-types/tools-panel/tools-panel-item/hook.d.ts +2 -2
- package/build-types/tools-panel/types.d.ts +1 -0
- package/build-types/tools-panel/types.d.ts.map +1 -1
- package/build-types/truncate/hook.d.ts +2 -2
- package/build-types/ui/control-group/hook.d.ts +2 -2
- package/build-types/ui/control-label/hook.d.ts +2 -2
- package/build-types/ui/form-group/form-group.d.ts +2 -2
- package/build-types/ui/form-group/use-form-group.d.ts +2 -2
- package/build-types/unit-control/index.d.ts +1 -1
- package/build-types/unit-control/styles/unit-control-styles.d.ts +2 -2
- package/build-types/utils/input/input-control.d.ts.map +1 -1
- package/build-types/v-stack/hook.d.ts +2 -2
- package/package.json +20 -19
- package/src/angle-picker-control/angle-circle.tsx +0 -1
- package/src/angle-picker-control/index.tsx +14 -27
- package/src/angle-picker-control/styles/angle-picker-control-styles.tsx +16 -9
- package/src/animate/index.tsx +75 -0
- package/src/animate/stories/index.tsx +102 -0
- package/src/animate/types.ts +32 -0
- package/src/border-box-control/stories/index.tsx +1 -1
- package/src/box-control/axial-input-controls.tsx +1 -1
- package/src/circular-option-picker/style.scss +10 -0
- package/src/color-indicator/style.scss +1 -0
- package/src/color-picker/README.md +2 -2
- package/src/color-picker/color-input.tsx +1 -12
- package/src/color-picker/component.tsx +9 -18
- package/src/color-picker/hex-input.tsx +2 -7
- package/src/color-picker/hsl-input.tsx +2 -7
- package/src/color-picker/input-with-slider.tsx +1 -9
- package/src/color-picker/legacy-adapter.tsx +1 -2
- package/src/color-picker/picker.tsx +5 -6
- package/src/color-picker/rgb-input.tsx +2 -7
- package/src/color-picker/stories/index.tsx +51 -0
- package/src/color-picker/test/{index.js → index.tsx} +36 -18
- package/src/color-picker/types.ts +128 -1
- package/src/color-picker/use-deprecated-props.ts +2 -53
- package/src/combobox-control/stories/index.tsx +1 -1
- package/src/custom-gradient-picker/{constants.js → constants.ts} +2 -2
- package/src/custom-gradient-picker/gradient-bar/{control-points.js → control-points.tsx} +171 -134
- package/src/custom-gradient-picker/gradient-bar/{index.js → index.tsx} +32 -10
- package/src/custom-gradient-picker/gradient-bar/test/{utils.js → utils.ts} +58 -31
- package/src/custom-gradient-picker/gradient-bar/utils.ts +193 -0
- package/src/custom-gradient-picker/{index.js → index.tsx} +63 -22
- package/src/custom-gradient-picker/serializer.ts +78 -0
- package/src/custom-gradient-picker/stories/index.tsx +45 -0
- package/src/custom-gradient-picker/style.scss +25 -4
- package/src/custom-gradient-picker/test/{serializer.js → serializer.ts} +39 -33
- package/src/custom-gradient-picker/types.ts +119 -0
- package/src/custom-gradient-picker/{utils.js → utils.ts} +37 -22
- package/src/custom-select-control/test/index.js +6 -4
- package/src/drop-zone/index.tsx +12 -8
- package/src/drop-zone/style.scss +1 -1
- package/src/{color-list-picker → duotone-picker/color-list-picker}/index.tsx +7 -6
- package/src/{color-list-picker → duotone-picker/color-list-picker}/types.ts +2 -2
- package/src/duotone-picker/{custom-duotone-bar.js → custom-duotone-bar.tsx} +7 -1
- package/src/duotone-picker/{duotone-picker.js → duotone-picker.tsx} +39 -2
- package/src/duotone-picker/{duotone-swatch.js → duotone-swatch.tsx} +2 -1
- package/src/duotone-picker/stories/{duotone-picker.js → duotone-picker.tsx} +15 -8
- package/src/duotone-picker/stories/{duotone-swatch.js → duotone-swatch.tsx} +9 -3
- package/src/duotone-picker/types.ts +61 -0
- package/src/duotone-picker/{utils.js → utils.ts} +29 -14
- package/src/flex/flex-item/README.md +1 -1
- package/src/form-token-field/README.md +1 -0
- package/src/form-token-field/index.tsx +10 -3
- package/src/form-token-field/style.scss +0 -7
- package/src/form-token-field/test/index.tsx +1 -0
- package/src/form-token-field/types.ts +6 -0
- package/src/gradient-picker/README.md +16 -23
- package/src/gradient-picker/{index.js → index.tsx} +70 -16
- package/src/gradient-picker/stories/{index.js → index.tsx} +19 -8
- package/src/gradient-picker/types.ts +89 -0
- package/src/item-group/test/index.js +5 -3
- package/src/mobile/keyboard-aware-flat-list/index.android.js +0 -4
- package/src/mobile/keyboard-aware-flat-list/index.ios.js +118 -67
- package/src/mobile/keyboard-aware-flat-list/test/use-keyboard-offset.native.js +203 -0
- package/src/mobile/keyboard-aware-flat-list/test/use-scroll-to-text-input.native.js +140 -0
- package/src/mobile/keyboard-aware-flat-list/test/use-text-input-caret-position.native.js +82 -0
- package/src/mobile/keyboard-aware-flat-list/test/use-text-input-offset.native.js +147 -0
- package/src/mobile/keyboard-aware-flat-list/use-keyboard-offset.native.js +87 -0
- package/src/mobile/keyboard-aware-flat-list/use-scroll-to-text-input.native.js +105 -0
- package/src/mobile/keyboard-aware-flat-list/use-text-input-caret-position.native.js +36 -0
- package/src/mobile/keyboard-aware-flat-list/use-text-input-offset.native.js +54 -0
- package/src/navigator/navigator-provider/component.tsx +2 -0
- package/src/navigator/navigator-screen/component.tsx +5 -2
- package/src/navigator/stories/index.tsx +68 -0
- package/src/navigator/test/index.tsx +52 -0
- package/src/navigator/types.ts +2 -1
- package/src/palette-edit/index.tsx +4 -5
- package/src/query-controls/author-select.tsx +1 -0
- package/src/query-controls/category-select.tsx +1 -0
- package/src/query-controls/index.tsx +4 -2
- package/src/resizable-box/resize-tooltip/utils.ts +1 -1
- package/src/sandbox/index.native.js +139 -112
- package/src/slot-fill/test/slot.js +8 -6
- package/src/style.scss +1 -1
- package/src/tab-panel/index.tsx +7 -2
- package/src/tools-panel/test/index.tsx +86 -0
- package/src/tools-panel/tools-panel/hook.ts +44 -4
- package/src/tools-panel/types.ts +1 -0
- package/src/tooltip/test/index.js +251 -301
- package/src/utils/input/input-control.js +1 -0
- package/tsconfig.json +1 -3
- package/tsconfig.tsbuildinfo +1 -1
- package/build/color-list-picker/index.js.map +0 -1
- package/build-module/color-list-picker/index.js.map +0 -1
- package/build-types/color-list-picker/index.d.ts.map +0 -1
- package/build-types/color-list-picker/types.d.ts.map +0 -1
- package/src/animate/index.js +0 -60
- package/src/animate/stories/index.js +0 -53
- package/src/color-picker/stories/index.js +0 -41
- package/src/custom-gradient-picker/gradient-bar/utils.js +0 -189
- package/src/custom-gradient-picker/serializer.js +0 -48
- package/src/custom-gradient-picker/stories/index.js +0 -33
- /package/build/{color-list-picker → animate}/types.js +0 -0
- /package/build-module/{color-list-picker → animate}/types.js +0 -0
- /package/build-module/{color-list-picker → animate}/types.js.map +0 -0
- /package/{build/color-list-picker → build-module/custom-gradient-picker}/types.js.map +0 -0
- /package/build-types/{color-list-picker → duotone-picker/color-list-picker}/index.d.ts +0 -0
- /package/src/custom-gradient-picker/gradient-bar/{constants.js → constants.ts} +0 -0
- /package/src/custom-gradient-picker/styles/{custom-gradient-picker-styles.js → custom-gradient-picker-styles.tsx} +0 -0
- /package/src/{color-list-picker → duotone-picker/color-list-picker}/style.scss +0 -0
- /package/src/duotone-picker/{index.js → index.ts} +0 -0
- /package/src/{index.js → index.ts} +0 -0
- /package/src/{private-apis.js → private-apis.ts} +0 -0
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External dependencies
|
|
3
|
+
*/
|
|
4
|
+
import type { ComponentMeta, ComponentStory } from '@storybook/react';
|
|
5
|
+
|
|
1
6
|
/**
|
|
2
7
|
* WordPress dependencies
|
|
3
8
|
*/
|
|
@@ -6,23 +11,22 @@ import { useState } from '@wordpress/element';
|
|
|
6
11
|
/**
|
|
7
12
|
* Internal dependencies
|
|
8
13
|
*/
|
|
9
|
-
import { DuotonePicker } from '
|
|
14
|
+
import { DuotonePicker } from '..';
|
|
15
|
+
import type { DuotonePickerProps } from '../types';
|
|
10
16
|
|
|
11
|
-
|
|
17
|
+
const meta: ComponentMeta< typeof DuotonePicker > = {
|
|
12
18
|
title: 'Components/DuotonePicker',
|
|
13
19
|
component: DuotonePicker,
|
|
14
20
|
argTypes: {
|
|
15
|
-
clearable: { control: { type: 'boolean' } },
|
|
16
|
-
disableCustomColors: { control: { type: 'boolean' } },
|
|
17
|
-
disableCustomDuotone: { control: { type: 'boolean' } },
|
|
18
21
|
onChange: { action: 'onChange' },
|
|
19
|
-
|
|
22
|
+
value: { control: { type: null } },
|
|
20
23
|
},
|
|
21
24
|
parameters: {
|
|
22
25
|
controls: { expanded: true },
|
|
23
26
|
docs: { source: { state: 'open' } },
|
|
24
27
|
},
|
|
25
28
|
};
|
|
29
|
+
export default meta;
|
|
26
30
|
|
|
27
31
|
const DUOTONE_PALETTE = [
|
|
28
32
|
{
|
|
@@ -44,8 +48,11 @@ const COLOR_PALETTE = [
|
|
|
44
48
|
{ color: '#8c00b7', name: 'Purple', slug: 'purple' },
|
|
45
49
|
];
|
|
46
50
|
|
|
47
|
-
const Template
|
|
48
|
-
|
|
51
|
+
const Template: ComponentStory< typeof DuotonePicker > = ( {
|
|
52
|
+
onChange,
|
|
53
|
+
...args
|
|
54
|
+
} ) => {
|
|
55
|
+
const [ value, setValue ] = useState< DuotonePickerProps[ 'value' ] >();
|
|
49
56
|
|
|
50
57
|
return (
|
|
51
58
|
<DuotonePicker
|
|
@@ -1,9 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External dependencies
|
|
3
|
+
*/
|
|
4
|
+
import type { ComponentMeta, ComponentStory } from '@storybook/react';
|
|
5
|
+
|
|
1
6
|
/**
|
|
2
7
|
* Internal dependencies
|
|
3
8
|
*/
|
|
4
|
-
import { DuotoneSwatch } from '
|
|
9
|
+
import { DuotoneSwatch } from '..';
|
|
5
10
|
|
|
6
|
-
|
|
11
|
+
const meta: ComponentMeta< typeof DuotoneSwatch > = {
|
|
7
12
|
title: 'Components/DuotoneSwatch',
|
|
8
13
|
component: DuotoneSwatch,
|
|
9
14
|
parameters: {
|
|
@@ -11,8 +16,9 @@ export default {
|
|
|
11
16
|
docs: { source: { state: 'open' } },
|
|
12
17
|
},
|
|
13
18
|
};
|
|
19
|
+
export default meta;
|
|
14
20
|
|
|
15
|
-
const Template = ( args ) => {
|
|
21
|
+
const Template: ComponentStory< typeof DuotoneSwatch > = ( args ) => {
|
|
16
22
|
return <DuotoneSwatch { ...args } />;
|
|
17
23
|
};
|
|
18
24
|
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
export type DuotonePickerProps = {
|
|
2
|
+
/**
|
|
3
|
+
* Whether there should be a button to clear the duotone value.
|
|
4
|
+
*
|
|
5
|
+
* @default true
|
|
6
|
+
*/
|
|
7
|
+
clearable?: boolean;
|
|
8
|
+
/**
|
|
9
|
+
* Whether there should be an `unset` option.
|
|
10
|
+
*
|
|
11
|
+
* @default true
|
|
12
|
+
*/
|
|
13
|
+
unsetable?: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Array of color presets of the form `{ color: '#000000', name: 'Black', slug: 'black' }`.
|
|
16
|
+
*/
|
|
17
|
+
colorPalette: Color[];
|
|
18
|
+
/**
|
|
19
|
+
* Array of duotone presets of the form `{ colors: [ '#000000', '#ffffff' ], name: 'Grayscale', slug: 'grayscale' }`.
|
|
20
|
+
*/
|
|
21
|
+
duotonePalette: DuotoneColor[];
|
|
22
|
+
/**
|
|
23
|
+
* Whether custom colors should be disabled.
|
|
24
|
+
*
|
|
25
|
+
* @default false
|
|
26
|
+
*/
|
|
27
|
+
disableCustomColors?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Whether custom duotone values should be disabled.
|
|
30
|
+
*
|
|
31
|
+
* @default false
|
|
32
|
+
*/
|
|
33
|
+
disableCustomDuotone?: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* An array of colors for the duotone effect.
|
|
36
|
+
*/
|
|
37
|
+
value?: string[] | 'unset';
|
|
38
|
+
/**
|
|
39
|
+
* Callback which is called when the duotone colors change.
|
|
40
|
+
*/
|
|
41
|
+
onChange: ( value: DuotonePickerProps[ 'value' ] | undefined ) => void;
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
type Color = {
|
|
45
|
+
color: string;
|
|
46
|
+
name: string;
|
|
47
|
+
slug: string;
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
type DuotoneColor = {
|
|
51
|
+
colors: string[];
|
|
52
|
+
name: string;
|
|
53
|
+
slug: string;
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
export type DuotoneSwatchProps = {
|
|
57
|
+
/**
|
|
58
|
+
* An array of colors to show or `null` to show the placeholder swatch icon.
|
|
59
|
+
*/
|
|
60
|
+
values?: string[] | null;
|
|
61
|
+
};
|
|
@@ -4,6 +4,11 @@
|
|
|
4
4
|
import { colord, extend } from 'colord';
|
|
5
5
|
import namesPlugin from 'colord/plugins/names';
|
|
6
6
|
|
|
7
|
+
/**
|
|
8
|
+
* Internal dependencies
|
|
9
|
+
*/
|
|
10
|
+
import type { DuotonePickerProps } from './types';
|
|
11
|
+
|
|
7
12
|
extend( [ namesPlugin ] );
|
|
8
13
|
|
|
9
14
|
/**
|
|
@@ -18,11 +23,13 @@ extend( [ namesPlugin ] );
|
|
|
18
23
|
/**
|
|
19
24
|
* Calculate the brightest and darkest values from a color palette.
|
|
20
25
|
*
|
|
21
|
-
* @param
|
|
26
|
+
* @param palette Color palette for the theme.
|
|
22
27
|
*
|
|
23
|
-
* @return
|
|
28
|
+
* @return Tuple of the darkest color and brightest color.
|
|
24
29
|
*/
|
|
25
|
-
export function getDefaultColors(
|
|
30
|
+
export function getDefaultColors(
|
|
31
|
+
palette: DuotonePickerProps[ 'colorPalette' ]
|
|
32
|
+
) {
|
|
26
33
|
// A default dark and light color are required.
|
|
27
34
|
if ( ! palette || palette.length < 2 ) return [ '#000', '#fff' ];
|
|
28
35
|
|
|
@@ -38,7 +45,10 @@ export function getDefaultColors( palette ) {
|
|
|
38
45
|
current.brightness >= max.brightness ? current : max,
|
|
39
46
|
];
|
|
40
47
|
},
|
|
41
|
-
[
|
|
48
|
+
[
|
|
49
|
+
{ brightness: 1, color: '' },
|
|
50
|
+
{ brightness: 0, color: '' },
|
|
51
|
+
]
|
|
42
52
|
)
|
|
43
53
|
.map( ( { color } ) => color );
|
|
44
54
|
}
|
|
@@ -46,12 +56,15 @@ export function getDefaultColors( palette ) {
|
|
|
46
56
|
/**
|
|
47
57
|
* Generate a duotone gradient from a list of colors.
|
|
48
58
|
*
|
|
49
|
-
* @param
|
|
50
|
-
* @param
|
|
59
|
+
* @param colors CSS color strings.
|
|
60
|
+
* @param angle CSS gradient angle.
|
|
51
61
|
*
|
|
52
|
-
* @return
|
|
62
|
+
* @return CSS gradient string for the duotone swatch.
|
|
53
63
|
*/
|
|
54
|
-
export function getGradientFromCSSColors(
|
|
64
|
+
export function getGradientFromCSSColors(
|
|
65
|
+
colors: string[] = [],
|
|
66
|
+
angle = '90deg'
|
|
67
|
+
) {
|
|
55
68
|
const l = 100 / colors.length;
|
|
56
69
|
|
|
57
70
|
const stops = colors
|
|
@@ -64,11 +77,11 @@ export function getGradientFromCSSColors( colors = [], angle = '90deg' ) {
|
|
|
64
77
|
/**
|
|
65
78
|
* Convert a color array to an array of color stops.
|
|
66
79
|
*
|
|
67
|
-
* @param
|
|
80
|
+
* @param colors CSS colors array
|
|
68
81
|
*
|
|
69
|
-
* @return
|
|
82
|
+
* @return Color stop information.
|
|
70
83
|
*/
|
|
71
|
-
export function getColorStopsFromColors( colors ) {
|
|
84
|
+
export function getColorStopsFromColors( colors: string[] ) {
|
|
72
85
|
return colors.map( ( color, i ) => ( {
|
|
73
86
|
position: ( i * 100 ) / ( colors.length - 1 ),
|
|
74
87
|
color,
|
|
@@ -78,10 +91,12 @@ export function getColorStopsFromColors( colors ) {
|
|
|
78
91
|
/**
|
|
79
92
|
* Convert a color stop array to an array colors.
|
|
80
93
|
*
|
|
81
|
-
* @param
|
|
94
|
+
* @param colorStops Color stop information.
|
|
82
95
|
*
|
|
83
|
-
* @return
|
|
96
|
+
* @return CSS colors array.
|
|
84
97
|
*/
|
|
85
|
-
export function getColorsFromColorStops(
|
|
98
|
+
export function getColorsFromColorStops(
|
|
99
|
+
colorStops: { position: number; color: string }[] = []
|
|
100
|
+
) {
|
|
86
101
|
return colorStops.map( ( { color } ) => color );
|
|
87
102
|
}
|
|
@@ -16,7 +16,7 @@ The CSS display property of `FlexItem`.
|
|
|
16
16
|
|
|
17
17
|
### `isBlock`: `boolean`
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
Determines if `FlexItem` should render as an adaptive full-width block.
|
|
20
20
|
|
|
21
21
|
- Required: No
|
|
22
22
|
- Default: `false`
|
|
@@ -61,6 +61,7 @@ The `value` property is handled in a manner similar to controlled form component
|
|
|
61
61
|
- `__experimentalShowHowTo` - If false, the text on how to use the select (ie: _Separate with commas or the Enter key._) will be hidden.
|
|
62
62
|
- `__experimentalValidateInput` - If passed, all introduced values will be validated before being added as tokens.
|
|
63
63
|
- `__experimentalAutoSelectFirstMatch` - If true, the select the first matching suggestion when the user presses the Enter key (or space when tokenizeOnSpace is true).
|
|
64
|
+
- `__nextHasNoMarginBottom` - Start opting into the new margin-free styles that will become the default in a future version, currently scheduled to be WordPress 6.5. (The prop can be safely removed once this happens.)
|
|
64
65
|
|
|
65
66
|
## Usage
|
|
66
67
|
|
|
@@ -22,7 +22,11 @@ import { TokensAndInputWrapperFlex } from './styles';
|
|
|
22
22
|
import SuggestionsList from './suggestions-list';
|
|
23
23
|
import type { FormTokenFieldProps, TokenItem } from './types';
|
|
24
24
|
import { FlexItem } from '../flex';
|
|
25
|
-
import {
|
|
25
|
+
import {
|
|
26
|
+
StyledHelp,
|
|
27
|
+
StyledLabel,
|
|
28
|
+
} from '../base-control/styles/base-control-styles';
|
|
29
|
+
import { Spacer } from '../spacer';
|
|
26
30
|
|
|
27
31
|
const identity = ( value: string ) => value;
|
|
28
32
|
|
|
@@ -67,6 +71,7 @@ export function FormTokenField( props: FormTokenFieldProps ) {
|
|
|
67
71
|
__experimentalShowHowTo = true,
|
|
68
72
|
__next36pxDefaultSize = false,
|
|
69
73
|
__experimentalAutoSelectFirstMatch = false,
|
|
74
|
+
__nextHasNoMarginBottom = false,
|
|
70
75
|
} = props;
|
|
71
76
|
|
|
72
77
|
const instanceId = useInstanceId( FormTokenField );
|
|
@@ -716,17 +721,19 @@ export function FormTokenField( props: FormTokenFieldProps ) {
|
|
|
716
721
|
/>
|
|
717
722
|
) }
|
|
718
723
|
</div>
|
|
724
|
+
{ ! __nextHasNoMarginBottom && <Spacer marginBottom={ 2 } /> }
|
|
719
725
|
{ __experimentalShowHowTo && (
|
|
720
|
-
<
|
|
726
|
+
<StyledHelp
|
|
721
727
|
id={ `components-form-token-suggestions-howto-${ instanceId }` }
|
|
722
728
|
className="components-form-token-field__help"
|
|
729
|
+
__nextHasNoMarginBottom={ __nextHasNoMarginBottom }
|
|
723
730
|
>
|
|
724
731
|
{ tokenizeOnSpace
|
|
725
732
|
? __(
|
|
726
733
|
'Separate with commas, spaces, or the Enter key.'
|
|
727
734
|
)
|
|
728
735
|
: __( 'Separate with commas or the Enter key.' ) }
|
|
729
|
-
</
|
|
736
|
+
</StyledHelp>
|
|
730
737
|
) }
|
|
731
738
|
</div>
|
|
732
739
|
);
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
.components-form-token-field__input-container {
|
|
2
2
|
@include input-control();
|
|
3
3
|
width: 100%;
|
|
4
|
-
margin: 0 0 $grid-unit-10 0;
|
|
5
4
|
padding: 0;
|
|
6
5
|
cursor: text;
|
|
7
6
|
|
|
@@ -48,12 +47,6 @@
|
|
|
48
47
|
}
|
|
49
48
|
}
|
|
50
49
|
|
|
51
|
-
.components-form-token-field__help {
|
|
52
|
-
font-size: $helptext-font-size;
|
|
53
|
-
font-style: normal;
|
|
54
|
-
color: $gray-700;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
50
|
// Tokens
|
|
58
51
|
.components-form-token-field__token {
|
|
59
52
|
font-size: $default-font-size;
|
|
@@ -169,6 +169,12 @@ export interface FormTokenFieldProps
|
|
|
169
169
|
* Custom renderer for suggestions.
|
|
170
170
|
*/
|
|
171
171
|
__experimentalRenderItem?: ( args: { item: string } ) => ReactNode;
|
|
172
|
+
/**
|
|
173
|
+
* Start opting into the new margin-free styles that will become the default in a future version.
|
|
174
|
+
*
|
|
175
|
+
* @default false
|
|
176
|
+
*/
|
|
177
|
+
__nextHasNoMarginBottom?: boolean;
|
|
172
178
|
}
|
|
173
179
|
|
|
174
180
|
/**
|
|
@@ -49,63 +49,56 @@ const myGradientPicker = () => {
|
|
|
49
49
|
|
|
50
50
|
The component accepts the following props:
|
|
51
51
|
|
|
52
|
-
###
|
|
52
|
+
### `className`: `string`
|
|
53
|
+
|
|
54
|
+
The class name added to the wrapper.
|
|
55
|
+
|
|
56
|
+
- Required: No
|
|
57
|
+
|
|
58
|
+
### `value`: `string`
|
|
53
59
|
|
|
54
60
|
The current value of the gradient. Pass a css gradient like `linear-gradient(90deg, rgb(6, 147, 227) 0%, rgb(155, 81, 224) 100%)`. Optionally pass in a `null` value to specify no gradient is currently selected.
|
|
55
61
|
|
|
56
|
-
- Type: `string`
|
|
57
62
|
- Required: No
|
|
58
63
|
- Default: `linear-gradient(90deg, rgb(6, 147, 227) 0%, rgb(155, 81, 224) 100%)`
|
|
59
64
|
|
|
60
|
-
### onChange
|
|
65
|
+
### `onChange`: `( currentGradient: string | undefined ) => void`
|
|
61
66
|
|
|
62
67
|
The function called when a new gradient has been defined. It is passed the `currentGradient` as an argument.
|
|
63
68
|
|
|
64
|
-
- Type: `Function`
|
|
65
69
|
- Required: Yes
|
|
66
70
|
|
|
67
|
-
### gradients
|
|
71
|
+
### `gradients`: `GradientsProp[]`
|
|
68
72
|
|
|
69
|
-
An array of objects of predefined gradients
|
|
73
|
+
An array of objects of predefined gradients displayed above the gradient selector.
|
|
70
74
|
|
|
71
|
-
- Type: `array`
|
|
72
75
|
- Required: No
|
|
76
|
+
- Default: `[]`
|
|
73
77
|
|
|
74
|
-
### clearable
|
|
78
|
+
### `clearable`: `boolean`
|
|
75
79
|
|
|
76
80
|
Whether the palette should have a clearing button or not.
|
|
77
81
|
|
|
78
|
-
- Type: `Boolean`
|
|
79
82
|
- Required: No
|
|
80
83
|
- Default: true
|
|
81
84
|
|
|
82
|
-
###
|
|
83
|
-
|
|
84
|
-
Called when a new gradient has been defined. It is passed the `currentGradient` as an argument.
|
|
85
|
-
|
|
86
|
-
- Type: `Function`
|
|
87
|
-
- Required: No
|
|
88
|
-
|
|
89
|
-
### disableCustomGradients
|
|
85
|
+
### `disableCustomGradients`: `boolean`
|
|
90
86
|
|
|
91
87
|
If true, the gradient picker will not be displayed and only defined gradients from `gradients` are available.
|
|
92
88
|
|
|
93
|
-
- Type: `Boolean`
|
|
94
89
|
- Required: No
|
|
95
90
|
- Default: false
|
|
96
91
|
|
|
97
|
-
### __nextHasNoMargin
|
|
92
|
+
### `__nextHasNoMargin`: `boolean`
|
|
98
93
|
|
|
99
94
|
Start opting into the new margin-free styles that will become the default in a future version, currently scheduled to be WordPress 6.4. (The prop can be safely removed once this happens.)
|
|
100
95
|
|
|
101
|
-
- Type: `Boolean`
|
|
102
96
|
- Required: No
|
|
103
97
|
- Default: `false`
|
|
104
98
|
|
|
105
|
-
### headingLevel
|
|
99
|
+
### `headingLevel`: `1 | 2 | 3 | 4 | 5 | 6 | '1' | '2' | '3' | '4' | '5' | '6'`
|
|
106
100
|
|
|
107
|
-
The heading level.
|
|
101
|
+
The heading level. Only applies in cases where gradients are provided from multiple origins (ie. when the array passed as the `gradients` prop contains two or more items).
|
|
108
102
|
|
|
109
|
-
- Type: `1 | 2 | 3 | 4 | 5 | 6 | '1' | '2' | '3' | '4' | '5' | '6'`
|
|
110
103
|
- Required: No
|
|
111
104
|
- Default: `2`
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
|
-
|
|
3
1
|
/**
|
|
4
2
|
* WordPress dependencies
|
|
5
3
|
*/
|
|
@@ -15,13 +13,21 @@ import CustomGradientPicker from '../custom-gradient-picker';
|
|
|
15
13
|
import { VStack } from '../v-stack';
|
|
16
14
|
import { ColorHeading } from '../color-palette/styles';
|
|
17
15
|
import { Spacer } from '../spacer';
|
|
16
|
+
import type {
|
|
17
|
+
GradientPickerComponentProps,
|
|
18
|
+
PickerProps,
|
|
19
|
+
OriginObject,
|
|
20
|
+
GradientObject,
|
|
21
|
+
} from './types';
|
|
18
22
|
|
|
19
23
|
// The Multiple Origin Gradients have a `gradients` property (an array of
|
|
20
24
|
// gradient objects), while Single Origin ones have a `gradient` property.
|
|
21
|
-
const isMultipleOriginObject = (
|
|
25
|
+
const isMultipleOriginObject = (
|
|
26
|
+
obj: Record< string, any >
|
|
27
|
+
): obj is OriginObject =>
|
|
22
28
|
Array.isArray( obj.gradients ) && ! ( 'gradient' in obj );
|
|
23
29
|
|
|
24
|
-
const isMultipleOriginArray = ( arr ) => {
|
|
30
|
+
const isMultipleOriginArray = ( arr: any[] ): arr is OriginObject[] => {
|
|
25
31
|
return (
|
|
26
32
|
arr.length > 0 &&
|
|
27
33
|
arr.every( ( gradientObj ) => isMultipleOriginObject( gradientObj ) )
|
|
@@ -35,7 +41,7 @@ function SingleOrigin( {
|
|
|
35
41
|
onChange,
|
|
36
42
|
value,
|
|
37
43
|
actions,
|
|
38
|
-
} ) {
|
|
44
|
+
}: PickerProps< GradientObject > ) {
|
|
39
45
|
const gradientOptions = useMemo( () => {
|
|
40
46
|
return gradients.map( ( { gradient, name }, index ) => (
|
|
41
47
|
<CircularOptionPicker.Option
|
|
@@ -80,7 +86,7 @@ function MultipleOrigin( {
|
|
|
80
86
|
value,
|
|
81
87
|
actions,
|
|
82
88
|
headingLevel,
|
|
83
|
-
} ) {
|
|
89
|
+
}: PickerProps< OriginObject > ) {
|
|
84
90
|
return (
|
|
85
91
|
<VStack spacing={ 3 } className={ className }>
|
|
86
92
|
{ gradients.map( ( { name, gradients: gradientSet }, index ) => {
|
|
@@ -107,25 +113,72 @@ function MultipleOrigin( {
|
|
|
107
113
|
);
|
|
108
114
|
}
|
|
109
115
|
|
|
110
|
-
|
|
116
|
+
function Component( props: PickerProps< any > ) {
|
|
117
|
+
if ( isMultipleOriginArray( props.gradients ) ) {
|
|
118
|
+
return <MultipleOrigin { ...props } />;
|
|
119
|
+
}
|
|
120
|
+
return <SingleOrigin { ...props } />;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* GradientPicker is a React component that renders a color gradient picker to
|
|
125
|
+
* define a multi step gradient. There's either a _linear_ or a _radial_ type
|
|
126
|
+
* available.
|
|
127
|
+
*
|
|
128
|
+
* ```jsx
|
|
129
|
+
*import { GradientPicker } from '@wordpress/components';
|
|
130
|
+
*import { useState } from '@wordpress/element';
|
|
131
|
+
*
|
|
132
|
+
*const myGradientPicker = () => {
|
|
133
|
+
* const [ gradient, setGradient ] = useState( null );
|
|
134
|
+
*
|
|
135
|
+
* return (
|
|
136
|
+
* <GradientPicker
|
|
137
|
+
* __nextHasNoMargin
|
|
138
|
+
* value={ gradient }
|
|
139
|
+
* onChange={ ( currentGradient ) => setGradient( currentGradient ) }
|
|
140
|
+
* gradients={ [
|
|
141
|
+
* {
|
|
142
|
+
* name: 'JShine',
|
|
143
|
+
* gradient:
|
|
144
|
+
* 'linear-gradient(135deg,#12c2e9 0%,#c471ed 50%,#f64f59 100%)',
|
|
145
|
+
* slug: 'jshine',
|
|
146
|
+
* },
|
|
147
|
+
* {
|
|
148
|
+
* name: 'Moonlit Asteroid',
|
|
149
|
+
* gradient:
|
|
150
|
+
* 'linear-gradient(135deg,#0F2027 0%, #203A43 0%, #2c5364 100%)',
|
|
151
|
+
* slug: 'moonlit-asteroid',
|
|
152
|
+
* },
|
|
153
|
+
* {
|
|
154
|
+
* name: 'Rastafarie',
|
|
155
|
+
* gradient:
|
|
156
|
+
* 'linear-gradient(135deg,#1E9600 0%, #FFF200 0%, #FF0000 100%)',
|
|
157
|
+
* slug: 'rastafari',
|
|
158
|
+
* },
|
|
159
|
+
* ] }
|
|
160
|
+
* />
|
|
161
|
+
* );
|
|
162
|
+
*};
|
|
163
|
+
*```
|
|
164
|
+
*
|
|
165
|
+
*/
|
|
166
|
+
export function GradientPicker( {
|
|
111
167
|
/** Start opting into the new margin-free styles that will become the default in a future version. */
|
|
112
168
|
__nextHasNoMargin = false,
|
|
113
169
|
className,
|
|
114
|
-
gradients,
|
|
170
|
+
gradients = [],
|
|
115
171
|
onChange,
|
|
116
172
|
value,
|
|
117
173
|
clearable = true,
|
|
118
174
|
disableCustomGradients = false,
|
|
119
175
|
__experimentalIsRenderedInSidebar,
|
|
120
176
|
headingLevel = 2,
|
|
121
|
-
} ) {
|
|
177
|
+
}: GradientPickerComponentProps ) {
|
|
122
178
|
const clearGradient = useCallback(
|
|
123
179
|
() => onChange( undefined ),
|
|
124
180
|
[ onChange ]
|
|
125
181
|
);
|
|
126
|
-
const Component = isMultipleOriginArray( gradients )
|
|
127
|
-
? MultipleOrigin
|
|
128
|
-
: SingleOrigin;
|
|
129
182
|
|
|
130
183
|
if ( ! __nextHasNoMargin ) {
|
|
131
184
|
deprecated( 'Outer margin styles for wp.components.GradientPicker', {
|
|
@@ -137,7 +190,7 @@ export default function GradientPicker( {
|
|
|
137
190
|
|
|
138
191
|
const deprecatedMarginSpacerProps = ! __nextHasNoMargin
|
|
139
192
|
? {
|
|
140
|
-
marginTop: ! gradients
|
|
193
|
+
marginTop: ! gradients.length ? 3 : undefined,
|
|
141
194
|
marginBottom: ! clearable ? 6 : 0,
|
|
142
195
|
}
|
|
143
196
|
: {};
|
|
@@ -145,7 +198,7 @@ export default function GradientPicker( {
|
|
|
145
198
|
return (
|
|
146
199
|
// Outmost Spacer wrapper can be removed when deprecation period is over
|
|
147
200
|
<Spacer marginBottom={ 0 } { ...deprecatedMarginSpacerProps }>
|
|
148
|
-
<VStack spacing={ gradients
|
|
201
|
+
<VStack spacing={ gradients.length ? 4 : 0 }>
|
|
149
202
|
{ ! disableCustomGradients && (
|
|
150
203
|
<CustomGradientPicker
|
|
151
204
|
__nextHasNoMargin
|
|
@@ -156,10 +209,9 @@ export default function GradientPicker( {
|
|
|
156
209
|
onChange={ onChange }
|
|
157
210
|
/>
|
|
158
211
|
) }
|
|
159
|
-
{ ( gradients
|
|
212
|
+
{ ( gradients.length || clearable ) && (
|
|
160
213
|
<Component
|
|
161
214
|
className={ className }
|
|
162
|
-
clearable={ clearable }
|
|
163
215
|
clearGradient={ clearGradient }
|
|
164
216
|
gradients={ gradients }
|
|
165
217
|
onChange={ onChange }
|
|
@@ -181,3 +233,5 @@ export default function GradientPicker( {
|
|
|
181
233
|
</Spacer>
|
|
182
234
|
);
|
|
183
235
|
}
|
|
236
|
+
|
|
237
|
+
export default GradientPicker;
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External dependencies
|
|
3
|
+
*/
|
|
4
|
+
import type { ComponentMeta, ComponentStory } from '@storybook/react';
|
|
1
5
|
/**
|
|
2
6
|
* WordPress dependencies
|
|
3
7
|
*/
|
|
@@ -6,18 +10,21 @@ import { useState } from '@wordpress/element';
|
|
|
6
10
|
/**
|
|
7
11
|
* Internal dependencies
|
|
8
12
|
*/
|
|
9
|
-
import GradientPicker from '
|
|
13
|
+
import GradientPicker from '..';
|
|
10
14
|
|
|
11
|
-
|
|
15
|
+
const meta: ComponentMeta< typeof GradientPicker > = {
|
|
12
16
|
title: 'Components/GradientPicker',
|
|
13
17
|
component: GradientPicker,
|
|
18
|
+
parameters: {
|
|
19
|
+
controls: { expanded: true },
|
|
20
|
+
docs: { source: { state: 'open' } },
|
|
21
|
+
actions: { argTypesRegex: '^on.*' },
|
|
22
|
+
},
|
|
14
23
|
argTypes: {
|
|
15
|
-
|
|
16
|
-
clearable: { control: { type: 'boolean' } },
|
|
17
|
-
disableCustomGradients: { control: { type: 'boolean' } },
|
|
18
|
-
onChange: { action: 'onChange' },
|
|
24
|
+
value: { control: { type: null } },
|
|
19
25
|
},
|
|
20
26
|
};
|
|
27
|
+
export default meta;
|
|
21
28
|
|
|
22
29
|
const GRADIENTS = [
|
|
23
30
|
{
|
|
@@ -58,8 +65,12 @@ const GRADIENTS = [
|
|
|
58
65
|
},
|
|
59
66
|
];
|
|
60
67
|
|
|
61
|
-
const Template
|
|
62
|
-
|
|
68
|
+
const Template: ComponentStory< typeof GradientPicker > = ( {
|
|
69
|
+
onChange,
|
|
70
|
+
...props
|
|
71
|
+
} ) => {
|
|
72
|
+
const [ gradient, setGradient ] =
|
|
73
|
+
useState< ( typeof props )[ 'value' ] >( null );
|
|
63
74
|
return (
|
|
64
75
|
<GradientPicker
|
|
65
76
|
{ ...props }
|