@wordpress/components 28.13.1-next.082ed6819.0 → 28.14.1-next.cd6172eb0.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 +46 -2
- package/CONTRIBUTING.md +16 -16
- package/build/angle-picker-control/index.js +1 -1
- package/build/angle-picker-control/index.js.map +1 -1
- package/build/autocomplete/index.js +0 -1
- package/build/autocomplete/index.js.map +1 -1
- package/build/border-box-control/border-box-control-split-controls/component.js +1 -1
- package/build/border-box-control/border-box-control-split-controls/component.js.map +1 -1
- package/build/border-control/border-control/component.js +2 -0
- package/build/border-control/border-control/component.js.map +1 -1
- package/build/box-control/all-input-control.js +1 -0
- package/build/box-control/all-input-control.js.map +1 -1
- package/build/box-control/axial-input-controls.js +1 -0
- package/build/box-control/axial-input-controls.js.map +1 -1
- package/build/box-control/index.js +22 -15
- package/build/box-control/index.js.map +1 -1
- package/build/box-control/input-controls.js +1 -0
- package/build/box-control/input-controls.js.map +1 -1
- package/build/box-control/types.js.map +1 -1
- package/build/circular-option-picker/circular-option-picker-actions.js +1 -0
- package/build/circular-option-picker/circular-option-picker-actions.js.map +1 -1
- package/build/circular-option-picker/circular-option-picker-option.js +1 -0
- package/build/circular-option-picker/circular-option-picker-option.js.map +1 -1
- package/build/clipboard-button/index.js +5 -3
- package/build/clipboard-button/index.js.map +1 -1
- package/build/color-palette/index.native.js +0 -1
- package/build/color-palette/index.native.js.map +1 -1
- package/build/color-picker/input-with-slider.js +2 -2
- package/build/color-picker/input-with-slider.js.map +1 -1
- package/build/composite/item.js +0 -9
- package/build/composite/item.js.map +1 -1
- package/build/context/context-connect.js +0 -1
- package/build/context/context-connect.js.map +1 -1
- package/build/custom-gradient-picker/gradient-bar/control-points.js +2 -0
- package/build/custom-gradient-picker/gradient-bar/control-points.js.map +1 -1
- package/build/custom-gradient-picker/index.js +2 -0
- package/build/custom-gradient-picker/index.js.map +1 -1
- package/build/custom-gradient-picker/types.js.map +1 -1
- package/build/custom-select-control/index.js +8 -0
- package/build/custom-select-control/index.js.map +1 -1
- package/build/custom-select-control/types.js.map +1 -1
- package/build/drop-zone/index.js +19 -13
- package/build/drop-zone/index.js.map +1 -1
- package/build/drop-zone/types.js.map +1 -1
- package/build/dropdown-menu/index.js +1 -0
- package/build/dropdown-menu/index.js.map +1 -1
- package/build/duotone-picker/color-list-picker/index.js +9 -14
- package/build/duotone-picker/color-list-picker/index.js.map +1 -1
- package/build/external-link/index.js +0 -1
- package/build/external-link/index.js.map +1 -1
- package/build/font-size-picker/font-size-picker-select.js +1 -0
- package/build/font-size-picker/font-size-picker-select.js.map +1 -1
- package/build/font-size-picker/index.js +1 -0
- package/build/font-size-picker/index.js.map +1 -1
- package/build/form-file-upload/index.js +11 -1
- package/build/form-file-upload/index.js.map +1 -1
- package/build/form-file-upload/types.js.map +1 -1
- package/build/form-token-field/index.js +6 -1
- package/build/form-token-field/index.js.map +1 -1
- package/build/gradient-picker/index.js +2 -0
- package/build/gradient-picker/index.js.map +1 -1
- package/build/gradient-picker/types.js.map +1 -1
- package/build/icon/index.js +9 -0
- package/build/icon/index.js.map +1 -1
- package/build/menu/checkbox-item.js +5 -9
- package/build/menu/checkbox-item.js.map +1 -1
- package/build/menu/group-label.js +4 -1
- package/build/menu/group-label.js.map +1 -1
- package/build/menu/group.js +4 -1
- package/build/menu/group.js.map +1 -1
- package/build/menu/item-help-text.js +5 -0
- package/build/menu/item-help-text.js.map +1 -1
- package/build/menu/item-label.js +5 -0
- package/build/menu/item-label.js.map +1 -1
- package/build/menu/item.js +4 -8
- package/build/menu/item.js.map +1 -1
- package/build/menu/radio-item.js +5 -9
- package/build/menu/radio-item.js.map +1 -1
- package/build/menu/separator.js +5 -2
- package/build/menu/separator.js.map +1 -1
- package/build/modal/aria-helper.js +0 -1
- package/build/modal/aria-helper.js.map +1 -1
- package/build/modal/index.js +0 -1
- package/build/modal/index.js.map +1 -1
- package/build/number-control/index.js +8 -0
- package/build/number-control/index.js.map +1 -1
- package/build/number-control/types.js.map +1 -1
- package/build/range-control/index.js +2 -1
- package/build/range-control/index.js.map +1 -1
- package/build/resizable-box/index.js +9 -1
- package/build/resizable-box/index.js.map +1 -1
- package/build/slot-fill/bubbles-virtually/fill.js +8 -12
- package/build/slot-fill/bubbles-virtually/fill.js.map +1 -1
- package/build/slot-fill/bubbles-virtually/slot-fill-provider.js +6 -10
- package/build/slot-fill/bubbles-virtually/slot-fill-provider.js.map +1 -1
- package/build/slot-fill/bubbles-virtually/slot.js +4 -10
- package/build/slot-fill/bubbles-virtually/slot.js.map +1 -1
- package/build/slot-fill/types.js.map +1 -1
- package/build/style-provider/index.js +0 -1
- package/build/style-provider/index.js.map +1 -1
- package/build/tabs/tab.js +0 -17
- package/build/tabs/tab.js.map +1 -1
- package/build/toolbar/toolbar-button/index.js +2 -0
- package/build/toolbar/toolbar-button/index.js.map +1 -1
- package/build/tools-panel/tools-panel/component.js +2 -0
- package/build/tools-panel/tools-panel/component.js.map +1 -1
- package/build/unit-control/index.js +10 -1
- package/build/unit-control/index.js.map +1 -1
- package/build/unit-control/types.js.map +1 -1
- package/build-module/angle-picker-control/index.js +1 -1
- package/build-module/angle-picker-control/index.js.map +1 -1
- package/build-module/autocomplete/index.js +0 -1
- package/build-module/autocomplete/index.js.map +1 -1
- package/build-module/border-box-control/border-box-control-split-controls/component.js +1 -1
- package/build-module/border-box-control/border-box-control-split-controls/component.js.map +1 -1
- package/build-module/border-control/border-control/component.js +2 -0
- package/build-module/border-control/border-control/component.js.map +1 -1
- package/build-module/box-control/all-input-control.js +1 -0
- package/build-module/box-control/all-input-control.js.map +1 -1
- package/build-module/box-control/axial-input-controls.js +1 -0
- package/build-module/box-control/axial-input-controls.js.map +1 -1
- package/build-module/box-control/index.js +22 -15
- package/build-module/box-control/index.js.map +1 -1
- package/build-module/box-control/input-controls.js +1 -0
- package/build-module/box-control/input-controls.js.map +1 -1
- package/build-module/box-control/types.js.map +1 -1
- package/build-module/circular-option-picker/circular-option-picker-actions.js +1 -0
- package/build-module/circular-option-picker/circular-option-picker-actions.js.map +1 -1
- package/build-module/circular-option-picker/circular-option-picker-option.js +1 -0
- package/build-module/circular-option-picker/circular-option-picker-option.js.map +1 -1
- package/build-module/clipboard-button/index.js +5 -3
- package/build-module/clipboard-button/index.js.map +1 -1
- package/build-module/color-palette/index.native.js +0 -1
- package/build-module/color-palette/index.native.js.map +1 -1
- package/build-module/color-picker/input-with-slider.js +2 -2
- package/build-module/color-picker/input-with-slider.js.map +1 -1
- package/build-module/composite/item.js +0 -9
- package/build-module/composite/item.js.map +1 -1
- package/build-module/context/context-connect.js +0 -1
- package/build-module/context/context-connect.js.map +1 -1
- package/build-module/custom-gradient-picker/gradient-bar/control-points.js +2 -0
- package/build-module/custom-gradient-picker/gradient-bar/control-points.js.map +1 -1
- package/build-module/custom-gradient-picker/index.js +2 -0
- package/build-module/custom-gradient-picker/index.js.map +1 -1
- package/build-module/custom-gradient-picker/types.js.map +1 -1
- package/build-module/custom-select-control/index.js +8 -0
- package/build-module/custom-select-control/index.js.map +1 -1
- package/build-module/custom-select-control/types.js.map +1 -1
- package/build-module/drop-zone/index.js +19 -13
- package/build-module/drop-zone/index.js.map +1 -1
- package/build-module/drop-zone/types.js.map +1 -1
- package/build-module/dropdown-menu/index.js +1 -0
- package/build-module/dropdown-menu/index.js.map +1 -1
- package/build-module/duotone-picker/color-list-picker/index.js +10 -15
- package/build-module/duotone-picker/color-list-picker/index.js.map +1 -1
- package/build-module/external-link/index.js +0 -1
- package/build-module/external-link/index.js.map +1 -1
- package/build-module/font-size-picker/font-size-picker-select.js +1 -0
- package/build-module/font-size-picker/font-size-picker-select.js.map +1 -1
- package/build-module/font-size-picker/index.js +1 -0
- package/build-module/font-size-picker/index.js.map +1 -1
- package/build-module/form-file-upload/index.js +13 -2
- package/build-module/form-file-upload/index.js.map +1 -1
- package/build-module/form-file-upload/types.js.map +1 -1
- package/build-module/form-token-field/index.js +6 -1
- package/build-module/form-token-field/index.js.map +1 -1
- package/build-module/gradient-picker/index.js +2 -0
- package/build-module/gradient-picker/index.js.map +1 -1
- package/build-module/gradient-picker/types.js.map +1 -1
- package/build-module/icon/index.js +9 -0
- package/build-module/icon/index.js.map +1 -1
- package/build-module/menu/checkbox-item.js +5 -9
- package/build-module/menu/checkbox-item.js.map +1 -1
- package/build-module/menu/group-label.js +4 -1
- package/build-module/menu/group-label.js.map +1 -1
- package/build-module/menu/group.js +4 -1
- package/build-module/menu/group.js.map +1 -1
- package/build-module/menu/item-help-text.js +6 -1
- package/build-module/menu/item-help-text.js.map +1 -1
- package/build-module/menu/item-label.js +6 -1
- package/build-module/menu/item-label.js.map +1 -1
- package/build-module/menu/item.js +4 -8
- package/build-module/menu/item.js.map +1 -1
- package/build-module/menu/radio-item.js +5 -9
- package/build-module/menu/radio-item.js.map +1 -1
- package/build-module/menu/separator.js +5 -2
- package/build-module/menu/separator.js.map +1 -1
- package/build-module/modal/aria-helper.js +0 -1
- package/build-module/modal/aria-helper.js.map +1 -1
- package/build-module/modal/index.js +0 -1
- package/build-module/modal/index.js.map +1 -1
- package/build-module/number-control/index.js +8 -0
- package/build-module/number-control/index.js.map +1 -1
- package/build-module/number-control/types.js.map +1 -1
- package/build-module/range-control/index.js +2 -1
- package/build-module/range-control/index.js.map +1 -1
- package/build-module/resizable-box/index.js +9 -1
- package/build-module/resizable-box/index.js.map +1 -1
- package/build-module/slot-fill/bubbles-virtually/fill.js +9 -13
- package/build-module/slot-fill/bubbles-virtually/fill.js.map +1 -1
- package/build-module/slot-fill/bubbles-virtually/slot-fill-provider.js +6 -10
- package/build-module/slot-fill/bubbles-virtually/slot-fill-provider.js.map +1 -1
- package/build-module/slot-fill/bubbles-virtually/slot.js +4 -10
- package/build-module/slot-fill/bubbles-virtually/slot.js.map +1 -1
- package/build-module/slot-fill/types.js.map +1 -1
- package/build-module/style-provider/index.js +0 -1
- package/build-module/style-provider/index.js.map +1 -1
- package/build-module/tabs/tab.js +0 -15
- package/build-module/tabs/tab.js.map +1 -1
- package/build-module/toolbar/toolbar-button/index.js +2 -0
- package/build-module/toolbar/toolbar-button/index.js.map +1 -1
- package/build-module/tools-panel/tools-panel/component.js +2 -0
- package/build-module/tools-panel/tools-panel/component.js.map +1 -1
- package/build-module/unit-control/index.js +10 -1
- package/build-module/unit-control/index.js.map +1 -1
- package/build-module/unit-control/types.js.map +1 -1
- package/build-style/style-rtl.css +12 -8
- package/build-style/style.css +12 -8
- package/build-types/border-control/border-control/component.d.ts.map +1 -1
- package/build-types/box-control/all-input-control.d.ts.map +1 -1
- package/build-types/box-control/axial-input-controls.d.ts.map +1 -1
- package/build-types/box-control/index.d.ts +14 -13
- package/build-types/box-control/index.d.ts.map +1 -1
- package/build-types/box-control/input-controls.d.ts.map +1 -1
- package/build-types/box-control/stories/index.story.d.ts +42 -6
- package/build-types/box-control/stories/index.story.d.ts.map +1 -1
- package/build-types/box-control/styles/box-control-styles.d.ts +3 -2
- package/build-types/box-control/styles/box-control-styles.d.ts.map +1 -1
- package/build-types/box-control/types.d.ts +16 -2
- package/build-types/box-control/types.d.ts.map +1 -1
- package/build-types/circular-option-picker/circular-option-picker-actions.d.ts.map +1 -1
- package/build-types/circular-option-picker/circular-option-picker-option.d.ts.map +1 -1
- package/build-types/clipboard-button/index.d.ts.map +1 -1
- package/build-types/color-picker/styles.d.ts +3 -2
- package/build-types/color-picker/styles.d.ts.map +1 -1
- package/build-types/composite/item.d.ts.map +1 -1
- package/build-types/custom-gradient-picker/gradient-bar/control-points.d.ts.map +1 -1
- package/build-types/custom-gradient-picker/index.d.ts +1 -1
- package/build-types/custom-gradient-picker/index.d.ts.map +1 -1
- package/build-types/custom-gradient-picker/types.d.ts +6 -0
- package/build-types/custom-gradient-picker/types.d.ts.map +1 -1
- package/build-types/custom-select-control/index.d.ts.map +1 -1
- package/build-types/custom-select-control/stories/index.story.d.ts.map +1 -1
- package/build-types/custom-select-control/types.d.ts +7 -0
- package/build-types/custom-select-control/types.d.ts.map +1 -1
- package/build-types/date-time/time/styles.d.ts +8 -4
- package/build-types/date-time/time/styles.d.ts.map +1 -1
- package/build-types/drop-zone/index.d.ts +1 -1
- package/build-types/drop-zone/index.d.ts.map +1 -1
- package/build-types/drop-zone/types.d.ts +5 -0
- package/build-types/drop-zone/types.d.ts.map +1 -1
- package/build-types/dropdown-menu/index.d.ts.map +1 -1
- package/build-types/duotone-picker/color-list-picker/index.d.ts.map +1 -1
- package/build-types/focal-point-picker/styles/focal-point-picker-style.d.ts +2 -1
- package/build-types/focal-point-picker/styles/focal-point-picker-style.d.ts.map +1 -1
- package/build-types/font-size-picker/font-size-picker-select.d.ts.map +1 -1
- package/build-types/font-size-picker/index.d.ts.map +1 -1
- package/build-types/form-file-upload/index.d.ts +2 -1
- package/build-types/form-file-upload/index.d.ts.map +1 -1
- package/build-types/form-file-upload/stories/index.story.d.ts.map +1 -1
- package/build-types/form-file-upload/types.d.ts +10 -8
- package/build-types/form-file-upload/types.d.ts.map +1 -1
- package/build-types/form-token-field/index.d.ts.map +1 -1
- package/build-types/form-token-field/stories/index.story.d.ts.map +1 -1
- package/build-types/gradient-picker/index.d.ts +1 -1
- package/build-types/gradient-picker/index.d.ts.map +1 -1
- package/build-types/gradient-picker/types.d.ts +6 -0
- package/build-types/gradient-picker/types.d.ts.map +1 -1
- package/build-types/icon/index.d.ts +23 -7
- package/build-types/icon/index.d.ts.map +1 -1
- package/build-types/icon/stories/index.story.d.ts +7 -1
- package/build-types/icon/stories/index.story.d.ts.map +1 -1
- package/build-types/lock-unlock.d.ts +2 -2
- package/build-types/menu/checkbox-item.d.ts.map +1 -1
- package/build-types/menu/group-label.d.ts.map +1 -1
- package/build-types/menu/group.d.ts.map +1 -1
- package/build-types/menu/index.d.ts.map +1 -1
- package/build-types/menu/item-help-text.d.ts.map +1 -1
- package/build-types/menu/item-label.d.ts.map +1 -1
- package/build-types/menu/item.d.ts.map +1 -1
- package/build-types/menu/radio-item.d.ts.map +1 -1
- package/build-types/menu/separator.d.ts.map +1 -1
- package/build-types/number-control/index.d.ts +2 -1
- package/build-types/number-control/index.d.ts.map +1 -1
- package/build-types/number-control/stories/index.story.d.ts +2 -1
- package/build-types/number-control/stories/index.story.d.ts.map +1 -1
- package/build-types/number-control/types.d.ts +7 -0
- package/build-types/number-control/types.d.ts.map +1 -1
- package/build-types/range-control/index.d.ts +1 -1
- package/build-types/range-control/index.d.ts.map +1 -1
- package/build-types/range-control/styles/range-control-styles.d.ts +2 -1
- package/build-types/range-control/styles/range-control-styles.d.ts.map +1 -1
- package/build-types/resizable-box/index.d.ts.map +1 -1
- package/build-types/slot-fill/bubbles-virtually/fill.d.ts.map +1 -1
- package/build-types/slot-fill/bubbles-virtually/slot-fill-provider.d.ts.map +1 -1
- package/build-types/slot-fill/bubbles-virtually/slot.d.ts.map +1 -1
- package/build-types/slot-fill/bubbles-virtually/use-slot-fills.d.ts +1 -1
- package/build-types/slot-fill/types.d.ts +4 -3
- package/build-types/slot-fill/types.d.ts.map +1 -1
- package/build-types/tabs/tab.d.ts +3 -0
- package/build-types/tabs/tab.d.ts.map +1 -1
- package/build-types/toolbar/toolbar-button/index.d.ts.map +1 -1
- package/build-types/tools-panel/stories/index.story.d.ts.map +1 -1
- package/build-types/tools-panel/tools-panel/component.d.ts +2 -0
- package/build-types/tools-panel/tools-panel/component.d.ts.map +1 -1
- package/build-types/unit-control/index.d.ts +3 -2
- package/build-types/unit-control/index.d.ts.map +1 -1
- package/build-types/unit-control/stories/index.story.d.ts.map +1 -1
- package/build-types/unit-control/styles/unit-control-styles.d.ts +2 -1
- package/build-types/unit-control/styles/unit-control-styles.d.ts.map +1 -1
- package/build-types/unit-control/types.d.ts +7 -0
- package/build-types/unit-control/types.d.ts.map +1 -1
- package/package.json +20 -20
- package/src/angle-picker-control/index.tsx +1 -1
- package/src/border-box-control/border-box-control-split-controls/component.tsx +1 -1
- package/src/border-control/border-control/component.tsx +2 -0
- package/src/box-control/README.md +80 -60
- package/src/box-control/all-input-control.tsx +1 -0
- package/src/box-control/axial-input-controls.tsx +1 -0
- package/src/box-control/docs-manifest.json +5 -0
- package/src/box-control/index.tsx +23 -15
- package/src/box-control/input-controls.tsx +1 -0
- package/src/box-control/stories/index.story.tsx +1 -0
- package/src/box-control/test/index.tsx +33 -26
- package/src/box-control/types.ts +71 -54
- package/src/circular-option-picker/circular-option-picker-actions.tsx +1 -0
- package/src/circular-option-picker/circular-option-picker-option.tsx +1 -0
- package/src/circular-option-picker/style.scss +2 -2
- package/src/clipboard-button/index.tsx +5 -3
- package/src/color-picker/input-with-slider.tsx +1 -1
- package/src/composite/item.tsx +1 -19
- package/src/custom-gradient-picker/gradient-bar/control-points.tsx +2 -0
- package/src/custom-gradient-picker/index.tsx +2 -0
- package/src/custom-gradient-picker/style.scss +1 -1
- package/src/custom-gradient-picker/types.ts +6 -0
- package/src/custom-select-control/README.md +2 -0
- package/src/custom-select-control/index.tsx +9 -0
- package/src/custom-select-control/stories/index.story.tsx +1 -0
- package/src/custom-select-control/test/index.tsx +13 -9
- package/src/custom-select-control/types.ts +7 -0
- package/src/drop-zone/index.tsx +21 -24
- package/src/drop-zone/types.ts +5 -0
- package/src/dropdown-menu/index.tsx +1 -0
- package/src/dropdown-menu/style.scss +1 -1
- package/src/duotone-picker/color-list-picker/index.tsx +8 -8
- package/src/duotone-picker/color-list-picker/style.scss +0 -6
- package/src/font-size-picker/font-size-picker-select.tsx +1 -0
- package/src/font-size-picker/index.tsx +1 -0
- package/src/form-file-upload/README.md +58 -48
- package/src/form-file-upload/docs-manifest.json +5 -0
- package/src/form-file-upload/index.tsx +12 -1
- package/src/form-file-upload/stories/index.story.tsx +1 -0
- package/src/form-file-upload/test/index.tsx +5 -1
- package/src/form-file-upload/types.ts +10 -8
- package/src/form-token-field/README.md +1 -0
- package/src/form-token-field/index.tsx +7 -0
- package/src/form-token-field/stories/index.story.tsx +2 -0
- package/src/form-token-field/test/index.tsx +5 -1
- package/src/gradient-picker/README.md +8 -0
- package/src/gradient-picker/index.tsx +2 -0
- package/src/gradient-picker/types.ts +6 -0
- package/src/icon/README.md +22 -65
- package/src/icon/docs-manifest.json +5 -0
- package/src/icon/index.tsx +28 -13
- package/src/icon/stories/index.story.tsx +50 -8
- package/src/menu/checkbox-item.tsx +9 -7
- package/src/menu/group-label.tsx +8 -1
- package/src/menu/group.tsx +8 -1
- package/src/menu/item-help-text.tsx +10 -1
- package/src/menu/item-label.tsx +10 -1
- package/src/menu/item.tsx +8 -6
- package/src/menu/radio-item.tsx +9 -7
- package/src/menu/separator.tsx +9 -2
- package/src/menu-items-choice/style.scss +1 -0
- package/src/number-control/README.md +2 -1
- package/src/number-control/index.tsx +9 -0
- package/src/number-control/stories/index.story.tsx +1 -0
- package/src/number-control/test/index.tsx +5 -1
- package/src/number-control/types.ts +7 -0
- package/src/range-control/index.tsx +1 -0
- package/src/resizable-box/index.tsx +10 -0
- package/src/resizable-box/style.scss +8 -0
- package/src/slot-fill/bubbles-virtually/fill.tsx +7 -11
- package/src/slot-fill/bubbles-virtually/slot-fill-provider.tsx +2 -13
- package/src/slot-fill/bubbles-virtually/slot.tsx +4 -7
- package/src/slot-fill/types.ts +4 -3
- package/src/tabs/tab.tsx +0 -18
- package/src/tabs/test/index.tsx +1492 -947
- package/src/toolbar/toolbar-button/index.tsx +2 -0
- package/src/tools-panel/stories/index.story.tsx +12 -0
- package/src/tools-panel/tools-panel/README.md +4 -0
- package/src/tools-panel/tools-panel/component.tsx +2 -0
- package/src/unit-control/README.md +3 -3
- package/src/unit-control/index.tsx +11 -1
- package/src/unit-control/stories/index.story.tsx +1 -0
- package/src/unit-control/test/index.tsx +5 -1
- package/src/unit-control/types.ts +7 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/build/menu/use-temporary-focus-visible-fix.js +0 -27
- package/build/menu/use-temporary-focus-visible-fix.js.map +0 -1
- package/build-module/menu/use-temporary-focus-visible-fix.js +0 -20
- package/build-module/menu/use-temporary-focus-visible-fix.js.map +0 -1
- package/build-types/menu/use-temporary-focus-visible-fix.d.ts +0 -8
- package/build-types/menu/use-temporary-focus-visible-fix.d.ts.map +0 -1
- package/src/menu/use-temporary-focus-visible-fix.ts +0 -22
|
@@ -45,9 +45,11 @@ export default function ClipboardButton( {
|
|
|
45
45
|
} );
|
|
46
46
|
|
|
47
47
|
useEffect( () => {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
48
|
+
return () => {
|
|
49
|
+
if ( timeoutIdRef.current ) {
|
|
50
|
+
clearTimeout( timeoutIdRef.current );
|
|
51
|
+
}
|
|
52
|
+
};
|
|
51
53
|
}, [] );
|
|
52
54
|
|
|
53
55
|
const classes = clsx( 'components-clipboard-button', className );
|
|
@@ -31,6 +31,7 @@ export const InputWithSlider = ( {
|
|
|
31
31
|
return (
|
|
32
32
|
<HStack spacing={ 4 }>
|
|
33
33
|
<NumberControlWrapper
|
|
34
|
+
__next40pxDefaultSize
|
|
34
35
|
min={ min }
|
|
35
36
|
max={ max }
|
|
36
37
|
label={ label }
|
|
@@ -45,7 +46,6 @@ export const InputWithSlider = ( {
|
|
|
45
46
|
</InputControlPrefixWrapper>
|
|
46
47
|
}
|
|
47
48
|
spinControls="none"
|
|
48
|
-
size="__unstable-large"
|
|
49
49
|
/>
|
|
50
50
|
<RangeControl
|
|
51
51
|
__nextHasNoMarginBottom
|
package/src/composite/item.tsx
CHANGED
|
@@ -26,23 +26,5 @@ export const CompositeItem = forwardRef<
|
|
|
26
26
|
// obfuscated to discourage its use outside of the component's internals.
|
|
27
27
|
const store = ( props.store ?? context.store ) as Ariakit.CompositeStore;
|
|
28
28
|
|
|
29
|
-
|
|
30
|
-
// where none of the items are tabbable. In this case, we force all items to
|
|
31
|
-
// be tabbable, so that as soon as an item received focus, it becomes active
|
|
32
|
-
// and Composite goes back to working as expected.
|
|
33
|
-
const tabbable = Ariakit.useStoreState( store, ( state ) => {
|
|
34
|
-
return (
|
|
35
|
-
state?.activeId !== null &&
|
|
36
|
-
! store?.item( state?.activeId )?.element?.isConnected
|
|
37
|
-
);
|
|
38
|
-
} );
|
|
39
|
-
|
|
40
|
-
return (
|
|
41
|
-
<Ariakit.CompositeItem
|
|
42
|
-
store={ store }
|
|
43
|
-
tabbable={ tabbable }
|
|
44
|
-
{ ...props }
|
|
45
|
-
ref={ ref }
|
|
46
|
-
/>
|
|
47
|
-
);
|
|
29
|
+
return <Ariakit.CompositeItem store={ store } { ...props } ref={ ref } />;
|
|
48
30
|
} );
|
|
@@ -66,6 +66,7 @@ function ControlPointButton( {
|
|
|
66
66
|
aria-describedby={ descriptionId }
|
|
67
67
|
aria-haspopup="true"
|
|
68
68
|
aria-expanded={ isOpen }
|
|
69
|
+
__next40pxDefaultSize
|
|
69
70
|
className={ clsx(
|
|
70
71
|
'components-custom-gradient-picker__control-point-button',
|
|
71
72
|
{
|
|
@@ -349,6 +350,7 @@ function InsertPoint( {
|
|
|
349
350
|
} }
|
|
350
351
|
renderToggle={ ( { isOpen, onToggle } ) => (
|
|
351
352
|
<Button
|
|
353
|
+
__next40pxDefaultSize
|
|
352
354
|
aria-expanded={ isOpen }
|
|
353
355
|
aria-haspopup="true"
|
|
354
356
|
onClick={ () => {
|
|
@@ -140,6 +140,7 @@ const GradientTypePicker = ( {
|
|
|
140
140
|
export function CustomGradientPicker( {
|
|
141
141
|
value,
|
|
142
142
|
onChange,
|
|
143
|
+
enableAlpha = true,
|
|
143
144
|
__experimentalIsRenderedInSidebar = false,
|
|
144
145
|
}: CustomGradientPickerProps ) {
|
|
145
146
|
const { gradientAST, hasGradient } = getGradientAstWithDefault( value );
|
|
@@ -167,6 +168,7 @@ export function CustomGradientPicker( {
|
|
|
167
168
|
__experimentalIsRenderedInSidebar={
|
|
168
169
|
__experimentalIsRenderedInSidebar
|
|
169
170
|
}
|
|
171
|
+
disableAlpha={ ! enableAlpha }
|
|
170
172
|
background={ background }
|
|
171
173
|
hasGradient={ hasGradient }
|
|
172
174
|
value={ controlPoints }
|
|
@@ -47,7 +47,7 @@ $components-custom-gradient-picker__padding: $grid-unit-20; // 48px container, 1
|
|
|
47
47
|
// Same size as the .components-custom-gradient-picker__control-point-dropdown parent
|
|
48
48
|
height: inherit;
|
|
49
49
|
width: inherit;
|
|
50
|
-
min-width: $grid-unit-20;
|
|
50
|
+
min-width: $grid-unit-20 !important;
|
|
51
51
|
border-radius: $radius-round;
|
|
52
52
|
|
|
53
53
|
background: $white;
|
|
@@ -26,6 +26,12 @@ export type CustomGradientPickerProps = {
|
|
|
26
26
|
* the `currentGradient` as an argument.
|
|
27
27
|
*/
|
|
28
28
|
onChange: ( currentGradient: string ) => void;
|
|
29
|
+
/**
|
|
30
|
+
* Whether to enable alpha transparency options in the picker.
|
|
31
|
+
*
|
|
32
|
+
* @default true
|
|
33
|
+
*/
|
|
34
|
+
enableAlpha?: boolean;
|
|
29
35
|
/**
|
|
30
36
|
* Whether this is rendered in the sidebar.
|
|
31
37
|
*
|
|
@@ -41,6 +41,7 @@ function MyCustomSelectControl() {
|
|
|
41
41
|
const [ , setFontSize ] = useState();
|
|
42
42
|
return (
|
|
43
43
|
<CustomSelectControl
|
|
44
|
+
__next40pxDefaultSize
|
|
44
45
|
label="Font Size"
|
|
45
46
|
options={ options }
|
|
46
47
|
onChange={ ( { selectedItem } ) => setFontSize( selectedItem ) }
|
|
@@ -52,6 +53,7 @@ function MyControlledCustomSelectControl() {
|
|
|
52
53
|
const [ fontSize, setFontSize ] = useState( options[ 0 ] );
|
|
53
54
|
return (
|
|
54
55
|
<CustomSelectControl
|
|
56
|
+
__next40pxDefaultSize
|
|
55
57
|
label="Font Size"
|
|
56
58
|
options={ options }
|
|
57
59
|
onChange={ ( { selectedItem } ) => setFontSize( selectedItem ) }
|
|
@@ -18,6 +18,7 @@ import CustomSelectItem from '../custom-select-control-v2/item';
|
|
|
18
18
|
import * as Styled from '../custom-select-control-v2/styles';
|
|
19
19
|
import type { CustomSelectProps, CustomSelectOption } from './types';
|
|
20
20
|
import { VisuallyHidden } from '../visually-hidden';
|
|
21
|
+
import { maybeWarnDeprecated36pxSize } from '../utils/deprecated-36px-size';
|
|
21
22
|
|
|
22
23
|
function useDeprecatedProps< T extends CustomSelectOption >( {
|
|
23
24
|
__experimentalShowSelectedHint,
|
|
@@ -56,6 +57,7 @@ function CustomSelectControl< T extends CustomSelectOption >(
|
|
|
56
57
|
) {
|
|
57
58
|
const {
|
|
58
59
|
__next40pxDefaultSize = false,
|
|
60
|
+
__shouldNotWarnDeprecated36pxSize,
|
|
59
61
|
describedBy,
|
|
60
62
|
options,
|
|
61
63
|
onChange,
|
|
@@ -66,6 +68,13 @@ function CustomSelectControl< T extends CustomSelectOption >(
|
|
|
66
68
|
...restProps
|
|
67
69
|
} = useDeprecatedProps( props );
|
|
68
70
|
|
|
71
|
+
maybeWarnDeprecated36pxSize( {
|
|
72
|
+
componentName: 'CustomSelectControl',
|
|
73
|
+
__next40pxDefaultSize,
|
|
74
|
+
size,
|
|
75
|
+
__shouldNotWarnDeprecated36pxSize,
|
|
76
|
+
} );
|
|
77
|
+
|
|
69
78
|
const descriptionId = useInstanceId(
|
|
70
79
|
CustomSelectControl,
|
|
71
80
|
'custom-select-control__description'
|
|
@@ -13,7 +13,11 @@ import { useState } from '@wordpress/element';
|
|
|
13
13
|
/**
|
|
14
14
|
* Internal dependencies
|
|
15
15
|
*/
|
|
16
|
-
import
|
|
16
|
+
import _CustomSelectControl from '..';
|
|
17
|
+
|
|
18
|
+
const UncontrolledCustomSelectControl = (
|
|
19
|
+
props: React.ComponentProps< typeof _CustomSelectControl >
|
|
20
|
+
) => <_CustomSelectControl __next40pxDefaultSize { ...props } />;
|
|
17
21
|
|
|
18
22
|
const customClassName = 'amber-skies';
|
|
19
23
|
const customStyles = {
|
|
@@ -716,7 +720,7 @@ describe( 'Type checking', () => {
|
|
|
716
720
|
|
|
717
721
|
const onChange = (): void => {};
|
|
718
722
|
|
|
719
|
-
<
|
|
723
|
+
<_CustomSelectControl
|
|
720
724
|
label="Label"
|
|
721
725
|
options={ options }
|
|
722
726
|
value={ {
|
|
@@ -726,7 +730,7 @@ describe( 'Type checking', () => {
|
|
|
726
730
|
onChange={ onChange }
|
|
727
731
|
/>;
|
|
728
732
|
|
|
729
|
-
<
|
|
733
|
+
<_CustomSelectControl
|
|
730
734
|
label="Label"
|
|
731
735
|
options={ options }
|
|
732
736
|
value={ {
|
|
@@ -736,7 +740,7 @@ describe( 'Type checking', () => {
|
|
|
736
740
|
onChange={ onChange }
|
|
737
741
|
/>;
|
|
738
742
|
|
|
739
|
-
<
|
|
743
|
+
<_CustomSelectControl
|
|
740
744
|
label="Label"
|
|
741
745
|
options={ options }
|
|
742
746
|
value={ {
|
|
@@ -748,7 +752,7 @@ describe( 'Type checking', () => {
|
|
|
748
752
|
onChange={ onChange }
|
|
749
753
|
/>;
|
|
750
754
|
|
|
751
|
-
<
|
|
755
|
+
<_CustomSelectControl
|
|
752
756
|
label="Label"
|
|
753
757
|
options={ options }
|
|
754
758
|
value={ {
|
|
@@ -764,7 +768,7 @@ describe( 'Type checking', () => {
|
|
|
764
768
|
}
|
|
765
769
|
/>;
|
|
766
770
|
|
|
767
|
-
<
|
|
771
|
+
<_CustomSelectControl
|
|
768
772
|
label="Label"
|
|
769
773
|
options={ optionsReadOnly }
|
|
770
774
|
value={ {
|
|
@@ -774,7 +778,7 @@ describe( 'Type checking', () => {
|
|
|
774
778
|
onChange={ onChange }
|
|
775
779
|
/>;
|
|
776
780
|
|
|
777
|
-
<
|
|
781
|
+
<_CustomSelectControl
|
|
778
782
|
label="Label"
|
|
779
783
|
options={ optionsReadOnly }
|
|
780
784
|
value={ {
|
|
@@ -785,7 +789,7 @@ describe( 'Type checking', () => {
|
|
|
785
789
|
onChange={ onChange }
|
|
786
790
|
/>;
|
|
787
791
|
|
|
788
|
-
<
|
|
792
|
+
<_CustomSelectControl
|
|
789
793
|
label="Label"
|
|
790
794
|
options={ optionsReadOnly }
|
|
791
795
|
value={ {
|
|
@@ -797,7 +801,7 @@ describe( 'Type checking', () => {
|
|
|
797
801
|
onChange={ onChange }
|
|
798
802
|
/>;
|
|
799
803
|
|
|
800
|
-
<
|
|
804
|
+
<_CustomSelectControl
|
|
801
805
|
label="Label"
|
|
802
806
|
options={ optionsReadOnly }
|
|
803
807
|
value={ {
|
|
@@ -120,4 +120,11 @@ export type CustomSelectProps< T extends CustomSelectOption > = {
|
|
|
120
120
|
* @default false
|
|
121
121
|
*/
|
|
122
122
|
__next40pxDefaultSize?: boolean;
|
|
123
|
+
/**
|
|
124
|
+
* Do not throw a warning for the deprecated 36px default size.
|
|
125
|
+
* For internal components of other components that already throw the warning.
|
|
126
|
+
*
|
|
127
|
+
* @ignore
|
|
128
|
+
*/
|
|
129
|
+
__shouldNotWarnDeprecated36pxSize?: boolean;
|
|
123
130
|
};
|
package/src/drop-zone/index.tsx
CHANGED
|
@@ -15,7 +15,7 @@ import { __experimentalUseDropZone as useDropZone } from '@wordpress/compose';
|
|
|
15
15
|
/**
|
|
16
16
|
* Internal dependencies
|
|
17
17
|
*/
|
|
18
|
-
import type {
|
|
18
|
+
import type { DropZoneProps } from './types';
|
|
19
19
|
import type { WordPressComponentProps } from '../context';
|
|
20
20
|
|
|
21
21
|
/**
|
|
@@ -47,19 +47,22 @@ export function DropZoneComponent( {
|
|
|
47
47
|
onFilesDrop,
|
|
48
48
|
onHTMLDrop,
|
|
49
49
|
onDrop,
|
|
50
|
+
isEligible = () => true,
|
|
50
51
|
...restProps
|
|
51
52
|
}: WordPressComponentProps< DropZoneProps, 'div', false > ) {
|
|
52
53
|
const [ isDraggingOverDocument, setIsDraggingOverDocument ] =
|
|
53
54
|
useState< boolean >();
|
|
54
55
|
const [ isDraggingOverElement, setIsDraggingOverElement ] =
|
|
55
56
|
useState< boolean >();
|
|
56
|
-
const [
|
|
57
|
+
const [ isActive, setIsActive ] = useState< boolean >();
|
|
57
58
|
const ref = useDropZone( {
|
|
58
59
|
onDrop( event ) {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
60
|
+
if ( ! event.dataTransfer ) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
const files = getFilesFromDataTransfer( event.dataTransfer );
|
|
65
|
+
const html = event.dataTransfer.getData( 'text/html' );
|
|
63
66
|
|
|
64
67
|
/**
|
|
65
68
|
* From Windows Chrome 96, the `event.dataTransfer` returns both file object and HTML.
|
|
@@ -76,32 +79,31 @@ export function DropZoneComponent( {
|
|
|
76
79
|
onDragStart( event ) {
|
|
77
80
|
setIsDraggingOverDocument( true );
|
|
78
81
|
|
|
79
|
-
|
|
82
|
+
if ( ! event.dataTransfer ) {
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
80
85
|
|
|
81
86
|
/**
|
|
82
87
|
* From Windows Chrome 96, the `event.dataTransfer` returns both file object and HTML.
|
|
83
88
|
* The order of the checks is important to recognize the HTML drop.
|
|
84
89
|
*/
|
|
85
|
-
if ( event.dataTransfer
|
|
86
|
-
|
|
90
|
+
if ( event.dataTransfer.types.includes( 'text/html' ) ) {
|
|
91
|
+
setIsActive( !! onHTMLDrop );
|
|
87
92
|
} else if (
|
|
88
93
|
// Check for the types because sometimes the files themselves
|
|
89
94
|
// are only available on drop.
|
|
90
|
-
event.dataTransfer
|
|
91
|
-
( event.dataTransfer
|
|
92
|
-
? getFilesFromDataTransfer( event.dataTransfer )
|
|
93
|
-
: []
|
|
94
|
-
).length > 0
|
|
95
|
+
event.dataTransfer.types.includes( 'Files' ) ||
|
|
96
|
+
getFilesFromDataTransfer( event.dataTransfer ).length > 0
|
|
95
97
|
) {
|
|
96
|
-
|
|
98
|
+
setIsActive( !! onFilesDrop );
|
|
99
|
+
} else {
|
|
100
|
+
setIsActive( !! onDrop && isEligible( event.dataTransfer ) );
|
|
97
101
|
}
|
|
98
|
-
|
|
99
|
-
setType( _type );
|
|
100
102
|
},
|
|
101
103
|
onDragEnd() {
|
|
102
104
|
setIsDraggingOverElement( false );
|
|
103
105
|
setIsDraggingOverDocument( false );
|
|
104
|
-
|
|
106
|
+
setIsActive( undefined );
|
|
105
107
|
},
|
|
106
108
|
onDragEnter() {
|
|
107
109
|
setIsDraggingOverElement( true );
|
|
@@ -112,14 +114,9 @@ export function DropZoneComponent( {
|
|
|
112
114
|
} );
|
|
113
115
|
|
|
114
116
|
const classes = clsx( 'components-drop-zone', className, {
|
|
115
|
-
'is-active':
|
|
116
|
-
( isDraggingOverDocument || isDraggingOverElement ) &&
|
|
117
|
-
( ( type === 'file' && onFilesDrop ) ||
|
|
118
|
-
( type === 'html' && onHTMLDrop ) ||
|
|
119
|
-
( type === 'default' && onDrop ) ),
|
|
117
|
+
'is-active': isActive,
|
|
120
118
|
'is-dragging-over-document': isDraggingOverDocument,
|
|
121
119
|
'is-dragging-over-element': isDraggingOverElement,
|
|
122
|
-
[ `is-dragging-${ type }` ]: !! type,
|
|
123
120
|
} );
|
|
124
121
|
|
|
125
122
|
return (
|
package/src/drop-zone/types.ts
CHANGED
|
@@ -26,4 +26,9 @@ export type DropZoneProps = {
|
|
|
26
26
|
* It receives the HTML being dropped as an argument.
|
|
27
27
|
*/
|
|
28
28
|
onHTMLDrop?: ( html: string ) => void;
|
|
29
|
+
/**
|
|
30
|
+
* A function to determine if the drop zone is eligible to handle the drop
|
|
31
|
+
* data transfer items.
|
|
32
|
+
*/
|
|
33
|
+
isEligible?: ( dataTransfer: DataTransfer ) => boolean;
|
|
29
34
|
};
|
|
@@ -164,6 +164,7 @@ function UnconnectedDropdownMenu( dropdownMenuProps: DropdownMenuProps ) {
|
|
|
164
164
|
{ controlSets?.flatMap( ( controlSet, indexOfSet ) =>
|
|
165
165
|
controlSet.map( ( control, indexOfControl ) => (
|
|
166
166
|
<Button
|
|
167
|
+
__next40pxDefaultSize
|
|
167
168
|
key={ [
|
|
168
169
|
indexOfSet,
|
|
169
170
|
indexOfControl,
|
|
@@ -12,7 +12,6 @@ import Button from '../../button';
|
|
|
12
12
|
import ColorPalette from '../../color-palette';
|
|
13
13
|
import ColorIndicator from '../../color-indicator';
|
|
14
14
|
import Icon from '../../icon';
|
|
15
|
-
import { HStack } from '../../h-stack';
|
|
16
15
|
import type { ColorListPickerProps, ColorOptionProps } from './types';
|
|
17
16
|
import { useInstanceId } from '@wordpress/compose';
|
|
18
17
|
|
|
@@ -32,23 +31,24 @@ function ColorOption( {
|
|
|
32
31
|
return (
|
|
33
32
|
<>
|
|
34
33
|
<Button
|
|
34
|
+
__next40pxDefaultSize
|
|
35
35
|
className="components-color-list-picker__swatch-button"
|
|
36
|
+
id={ labelId }
|
|
36
37
|
onClick={ () => setIsOpen( ( prev ) => ! prev ) }
|
|
37
38
|
aria-expanded={ isOpen }
|
|
38
39
|
aria-controls={ contentId }
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
{ value ? (
|
|
40
|
+
icon={
|
|
41
|
+
value ? (
|
|
42
42
|
<ColorIndicator
|
|
43
43
|
colorValue={ value }
|
|
44
44
|
className="components-color-list-picker__swatch-color"
|
|
45
45
|
/>
|
|
46
46
|
) : (
|
|
47
47
|
<Icon icon={ swatch } />
|
|
48
|
-
)
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
48
|
+
)
|
|
49
|
+
}
|
|
50
|
+
text={ label }
|
|
51
|
+
/>
|
|
52
52
|
<div
|
|
53
53
|
role="group"
|
|
54
54
|
id={ contentId }
|
|
@@ -7,12 +7,6 @@
|
|
|
7
7
|
margin: $grid-unit-10 0;
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
-
.components-color-list-picker__swatch-button {
|
|
11
|
-
// Used to simulate styles as a .button.has-icon (which this component can't
|
|
12
|
-
// opt into, because it has to show more than a simple SVG as the "icon")
|
|
13
|
-
padding: 6px;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
10
|
.components-color-list-picker__swatch-color {
|
|
17
11
|
// Match the 24px size of the `swatch` icon (used when no color is set)
|
|
18
12
|
margin: 2px;
|
|
@@ -69,6 +69,7 @@ const FontSizePickerSelect = ( props: FontSizePickerSelectProps ) => {
|
|
|
69
69
|
return (
|
|
70
70
|
<CustomSelectControl
|
|
71
71
|
__next40pxDefaultSize={ __next40pxDefaultSize }
|
|
72
|
+
__shouldNotWarnDeprecated36pxSize
|
|
72
73
|
className="components-font-size-picker__select"
|
|
73
74
|
label={ __( 'Font size' ) }
|
|
74
75
|
hideLabelFromVision
|
|
@@ -1,95 +1,105 @@
|
|
|
1
1
|
# FormFileUpload
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
<!-- This file is generated automatically and cannot be edited directly. Make edits via TypeScript types and TSDocs. -->
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
<p class="callout callout-info">See the <a href="https://wordpress.github.io/gutenberg/?path=/docs/components-formfileupload--docs">WordPress Storybook</a> for more detailed, interactive documentation.</p>
|
|
6
|
+
|
|
7
|
+
FormFileUpload allows users to select files from their local device.
|
|
6
8
|
|
|
7
9
|
```jsx
|
|
8
10
|
import { FormFileUpload } from '@wordpress/components';
|
|
9
11
|
|
|
10
12
|
const MyFormFileUpload = () => (
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
<FormFileUpload
|
|
14
|
+
__next40pxDefaultSize
|
|
15
|
+
accept="image/*"
|
|
16
|
+
onChange={ ( event ) => console.log( event.currentTarget.files ) }
|
|
17
|
+
>
|
|
18
|
+
Upload
|
|
19
|
+
</FormFileUpload>
|
|
17
20
|
);
|
|
18
21
|
```
|
|
19
|
-
|
|
20
22
|
## Props
|
|
21
23
|
|
|
22
|
-
|
|
24
|
+
### `__next40pxDefaultSize`
|
|
25
|
+
|
|
26
|
+
Start opting into the larger default height that will become the default size in a future version.
|
|
27
|
+
|
|
28
|
+
- Type: `boolean`
|
|
29
|
+
- Required: No
|
|
30
|
+
- Default: `false`
|
|
23
31
|
|
|
24
|
-
### accept
|
|
32
|
+
### `accept`
|
|
25
33
|
|
|
26
|
-
A string passed to `input` element that tells the browser which
|
|
27
|
-
|
|
34
|
+
A string passed to the `input` element that tells the browser which
|
|
35
|
+
[file types](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#Unique_file_type_specifiers)
|
|
36
|
+
can be uploaded by the user. e.g: `image/*,video/*`.
|
|
28
37
|
|
|
29
|
-
-
|
|
30
|
-
-
|
|
38
|
+
- Type: `string`
|
|
39
|
+
- Required: No
|
|
31
40
|
|
|
32
|
-
### children
|
|
41
|
+
### `children`
|
|
33
42
|
|
|
34
43
|
Children are passed as children of `Button`.
|
|
35
44
|
|
|
36
|
-
-
|
|
37
|
-
-
|
|
45
|
+
- Type: `ReactNode`
|
|
46
|
+
- Required: No
|
|
38
47
|
|
|
39
|
-
### icon
|
|
48
|
+
### `icon`
|
|
40
49
|
|
|
41
|
-
The icon to render
|
|
50
|
+
The icon to render in the default button.
|
|
42
51
|
|
|
43
|
-
|
|
44
|
-
- Required: No
|
|
45
|
-
- Default: `null`
|
|
52
|
+
See the `Icon` component docs for more information.
|
|
46
53
|
|
|
47
|
-
|
|
54
|
+
- Type: `IconType`
|
|
55
|
+
- Required: No
|
|
56
|
+
|
|
57
|
+
### `multiple`
|
|
48
58
|
|
|
49
59
|
Whether to allow multiple selection of files or not.
|
|
50
60
|
|
|
51
|
-
-
|
|
52
|
-
-
|
|
53
|
-
-
|
|
61
|
+
- Type: `boolean`
|
|
62
|
+
- Required: No
|
|
63
|
+
- Default: `false`
|
|
54
64
|
|
|
55
|
-
### onChange
|
|
65
|
+
### `onChange`
|
|
56
66
|
|
|
57
67
|
Callback function passed directly to the `input` file element.
|
|
58
68
|
|
|
59
69
|
Select files will be available in `event.currentTarget.files`.
|
|
60
70
|
|
|
61
|
-
-
|
|
62
|
-
-
|
|
71
|
+
- Type: `ChangeEventHandler<HTMLInputElement>`
|
|
72
|
+
- Required: Yes
|
|
63
73
|
|
|
64
|
-
### onClick
|
|
74
|
+
### `onClick`
|
|
65
75
|
|
|
66
76
|
Callback function passed directly to the `input` file element.
|
|
67
77
|
|
|
68
|
-
This can be useful when you want to force a `change` event to fire when
|
|
78
|
+
This can be useful when you want to force a `change` event to fire when
|
|
79
|
+
the user chooses the same file again. To do this, set the target value to
|
|
80
|
+
an empty string in the `onClick` function.
|
|
69
81
|
|
|
70
82
|
```jsx
|
|
71
83
|
<FormFileUpload
|
|
72
|
-
|
|
73
|
-
|
|
84
|
+
__next40pxDefaultSize
|
|
85
|
+
onClick={ ( event ) => ( event.target.value = '' ) }
|
|
86
|
+
onChange={ onChange }
|
|
74
87
|
>
|
|
75
|
-
|
|
88
|
+
Upload
|
|
76
89
|
</FormFileUpload>
|
|
77
90
|
```
|
|
78
91
|
|
|
79
|
-
-
|
|
80
|
-
-
|
|
81
|
-
|
|
82
|
-
### render
|
|
92
|
+
- Type: `MouseEventHandler<HTMLInputElement>`
|
|
93
|
+
- Required: No
|
|
83
94
|
|
|
84
|
-
|
|
95
|
+
### `render`
|
|
85
96
|
|
|
86
|
-
|
|
87
|
-
- Required: No
|
|
97
|
+
Optional callback function used to render the UI.
|
|
88
98
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
99
|
+
If passed, the component does not render the default UI (a button) and
|
|
100
|
+
calls this function to render it. The function receives an object with
|
|
101
|
+
property `openFileDialog`, a function that, when called, opens the browser
|
|
102
|
+
native file upload modal window.
|
|
92
103
|
|
|
93
|
-
-
|
|
94
|
-
-
|
|
95
|
-
- Default: `false`
|
|
104
|
+
- Type: `(arg: { openFileDialog: () => void; }) => ReactNode`
|
|
105
|
+
- Required: No
|
|
@@ -9,15 +9,17 @@ import { useRef } from '@wordpress/element';
|
|
|
9
9
|
import Button from '../button';
|
|
10
10
|
import type { WordPressComponentProps } from '../context';
|
|
11
11
|
import type { FormFileUploadProps } from './types';
|
|
12
|
+
import { maybeWarnDeprecated36pxSize } from '../utils/deprecated-36px-size';
|
|
12
13
|
|
|
13
14
|
/**
|
|
14
|
-
* FormFileUpload
|
|
15
|
+
* FormFileUpload allows users to select files from their local device.
|
|
15
16
|
*
|
|
16
17
|
* ```jsx
|
|
17
18
|
* import { FormFileUpload } from '@wordpress/components';
|
|
18
19
|
*
|
|
19
20
|
* const MyFormFileUpload = () => (
|
|
20
21
|
* <FormFileUpload
|
|
22
|
+
* __next40pxDefaultSize
|
|
21
23
|
* accept="image/*"
|
|
22
24
|
* onChange={ ( event ) => console.log( event.currentTarget.files ) }
|
|
23
25
|
* >
|
|
@@ -40,6 +42,15 @@ export function FormFileUpload( {
|
|
|
40
42
|
ref.current?.click();
|
|
41
43
|
};
|
|
42
44
|
|
|
45
|
+
if ( ! render ) {
|
|
46
|
+
maybeWarnDeprecated36pxSize( {
|
|
47
|
+
componentName: 'FormFileUpload',
|
|
48
|
+
__next40pxDefaultSize: props.__next40pxDefaultSize,
|
|
49
|
+
// @ts-expect-error - We don't "officially" support all Button props but this likely happens.
|
|
50
|
+
size: props.size,
|
|
51
|
+
} );
|
|
52
|
+
}
|
|
53
|
+
|
|
43
54
|
const ui = render ? (
|
|
44
55
|
render( { openFileDialog } )
|
|
45
56
|
) : (
|