@wordpress/components 22.0.0 → 22.1.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 +42 -0
- package/build/angle-picker-control/index.js +3 -1
- package/build/angle-picker-control/index.js.map +1 -1
- package/build/autocomplete/index.js +7 -3
- package/build/autocomplete/index.js.map +1 -1
- package/build/border-box-control/border-box-control/component.js +1 -1
- package/build/border-box-control/border-box-control/component.js.map +1 -1
- package/build/border-box-control/border-box-control/hook.js +13 -1
- package/build/border-box-control/border-box-control/hook.js.map +1 -1
- package/build/border-box-control/border-box-control-split-controls/hook.js +11 -1
- package/build/border-box-control/border-box-control-split-controls/hook.js.map +1 -1
- package/build/border-control/border-control/component.js +2 -2
- package/build/border-control/border-control/component.js.map +1 -1
- package/build/border-control/border-control/hook.js +11 -1
- package/build/border-control/border-control/hook.js.map +1 -1
- package/build/border-control/border-control-dropdown/component.js +1 -1
- package/build/border-control/border-control-dropdown/component.js.map +1 -1
- package/build/border-control/border-control-dropdown/hook.js +10 -2
- package/build/border-control/border-control-dropdown/hook.js.map +1 -1
- package/build/color-palette/index.js +1 -1
- package/build/color-palette/index.js.map +1 -1
- package/build/color-picker/input-with-slider.js +17 -3
- package/build/color-picker/input-with-slider.js.map +1 -1
- package/build/custom-select-control/index.js +5 -2
- package/build/custom-select-control/index.js.map +1 -1
- package/build/dashicon/index.js +17 -2
- package/build/dashicon/index.js.map +1 -1
- package/build/draggable/index.js +58 -38
- package/build/draggable/index.js.map +1 -1
- package/build/draggable/types.js +6 -0
- package/build/draggable/types.js.map +1 -0
- package/build/flex/flex/hook.js +2 -3
- package/build/flex/flex/hook.js.map +1 -1
- package/build/focal-point-picker/focal-point.js +2 -12
- package/build/focal-point-picker/focal-point.js.map +1 -1
- package/build/focal-point-picker/styles/focal-point-style.js +11 -51
- package/build/focal-point-picker/styles/focal-point-style.js.map +1 -1
- package/build/font-size-picker/constants.js +41 -0
- package/build/font-size-picker/constants.js.map +1 -0
- package/build/font-size-picker/font-size-picker-select.js +97 -0
- package/build/font-size-picker/font-size-picker-select.js.map +1 -0
- package/build/font-size-picker/font-size-picker-toggle-group.js +50 -0
- package/build/font-size-picker/font-size-picker-toggle-group.js.map +1 -0
- package/build/font-size-picker/index.js +39 -76
- package/build/font-size-picker/index.js.map +1 -1
- package/build/font-size-picker/utils.js +17 -89
- package/build/font-size-picker/utils.js.map +1 -1
- package/build/form-token-field/index.js +9 -6
- package/build/form-token-field/index.js.map +1 -1
- package/build/higher-order/navigate-regions/index.js +3 -0
- package/build/higher-order/navigate-regions/index.js.map +1 -1
- package/build/icon/index.js +3 -2
- package/build/icon/index.js.map +1 -1
- package/build/index.js +8 -0
- package/build/index.js.map +1 -1
- package/build/menu-group/index.js +17 -3
- package/build/menu-group/index.js.map +1 -1
- package/build/menu-group/types.js +6 -0
- package/build/menu-group/types.js.map +1 -0
- package/build/navigator/navigator-screen/component.js +9 -5
- package/build/navigator/navigator-screen/component.js.map +1 -1
- package/build/palette-edit/index.js +3 -1
- package/build/palette-edit/index.js.map +1 -1
- package/build/popover/index.js +8 -4
- package/build/popover/index.js.map +1 -1
- package/build/range-control/styles/range-control-styles.js +47 -57
- package/build/range-control/styles/range-control-styles.js.map +1 -1
- package/build/spinner/styles.js +4 -4
- package/build/spinner/styles.js.map +1 -1
- package/build/tab-panel/index.js +3 -4
- package/build/tab-panel/index.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control/component.js +1 -0
- package/build/toggle-group-control/toggle-group-control/component.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control/styles.js +11 -6
- package/build/toggle-group-control/toggle-group-control/styles.js.map +1 -1
- package/build/tools-panel/styles.js +14 -14
- package/build/tools-panel/styles.js.map +1 -1
- package/build/tools-panel/tools-panel-item/hook.js +9 -5
- package/build/tools-panel/tools-panel-item/hook.js.map +1 -1
- package/build/utils/colors-values.js +3 -2
- package/build/utils/colors-values.js.map +1 -1
- package/build/utils/input/base.js +2 -2
- package/build/utils/input/base.js.map +1 -1
- package/build/view/index.js.map +1 -1
- package/build-module/angle-picker-control/index.js +2 -1
- package/build-module/angle-picker-control/index.js.map +1 -1
- package/build-module/autocomplete/index.js +7 -3
- package/build-module/autocomplete/index.js.map +1 -1
- package/build-module/border-box-control/border-box-control/component.js +1 -1
- package/build-module/border-box-control/border-box-control/component.js.map +1 -1
- package/build-module/border-box-control/border-box-control/hook.js +13 -1
- package/build-module/border-box-control/border-box-control/hook.js.map +1 -1
- package/build-module/border-box-control/border-box-control-split-controls/hook.js +11 -1
- package/build-module/border-box-control/border-box-control-split-controls/hook.js.map +1 -1
- package/build-module/border-control/border-control/component.js +2 -2
- package/build-module/border-control/border-control/component.js.map +1 -1
- package/build-module/border-control/border-control/hook.js +11 -1
- package/build-module/border-control/border-control/hook.js.map +1 -1
- package/build-module/border-control/border-control-dropdown/component.js +1 -1
- package/build-module/border-control/border-control-dropdown/component.js.map +1 -1
- package/build-module/border-control/border-control-dropdown/hook.js +10 -2
- package/build-module/border-control/border-control-dropdown/hook.js.map +1 -1
- package/build-module/color-palette/index.js +1 -1
- package/build-module/color-palette/index.js.map +1 -1
- package/build-module/color-picker/input-with-slider.js +17 -3
- package/build-module/color-picker/input-with-slider.js.map +1 -1
- package/build-module/custom-select-control/index.js +5 -2
- package/build-module/custom-select-control/index.js.map +1 -1
- package/build-module/dashicon/index.js +17 -2
- package/build-module/dashicon/index.js.map +1 -1
- package/build-module/draggable/index.js +59 -38
- package/build-module/draggable/index.js.map +1 -1
- package/build-module/draggable/types.js +2 -0
- package/build-module/draggable/types.js.map +1 -0
- package/build-module/flex/flex/hook.js +2 -3
- package/build-module/flex/flex/hook.js.map +1 -1
- package/build-module/focal-point-picker/focal-point.js +3 -13
- package/build-module/focal-point-picker/focal-point.js.map +1 -1
- package/build-module/focal-point-picker/styles/focal-point-style.js +6 -52
- package/build-module/focal-point-picker/styles/focal-point-style.js.map +1 -1
- package/build-module/font-size-picker/constants.js +31 -0
- package/build-module/font-size-picker/constants.js.map +1 -0
- package/build-module/font-size-picker/font-size-picker-select.js +83 -0
- package/build-module/font-size-picker/font-size-picker-select.js.map +1 -0
- package/build-module/font-size-picker/font-size-picker-toggle-group.js +40 -0
- package/build-module/font-size-picker/font-size-picker-toggle-group.js.map +1 -0
- package/build-module/font-size-picker/index.js +38 -76
- package/build-module/font-size-picker/index.js.map +1 -1
- package/build-module/font-size-picker/utils.js +15 -86
- package/build-module/font-size-picker/utils.js.map +1 -1
- package/build-module/form-token-field/index.js +9 -6
- package/build-module/form-token-field/index.js.map +1 -1
- package/build-module/higher-order/navigate-regions/index.js +3 -0
- package/build-module/higher-order/navigate-regions/index.js.map +1 -1
- package/build-module/icon/index.js +3 -2
- package/build-module/icon/index.js.map +1 -1
- package/build-module/index.js +1 -0
- package/build-module/index.js.map +1 -1
- package/build-module/menu-group/index.js +20 -2
- package/build-module/menu-group/index.js.map +1 -1
- package/build-module/menu-group/types.js +2 -0
- package/build-module/menu-group/types.js.map +1 -0
- package/build-module/navigator/navigator-screen/component.js +9 -5
- package/build-module/navigator/navigator-screen/component.js.map +1 -1
- package/build-module/palette-edit/index.js +3 -1
- package/build-module/palette-edit/index.js.map +1 -1
- package/build-module/popover/index.js +8 -4
- package/build-module/popover/index.js.map +1 -1
- package/build-module/range-control/styles/range-control-styles.js +47 -57
- package/build-module/range-control/styles/range-control-styles.js.map +1 -1
- package/build-module/spinner/styles.js +4 -4
- package/build-module/spinner/styles.js.map +1 -1
- package/build-module/tab-panel/index.js +4 -5
- package/build-module/tab-panel/index.js.map +1 -1
- package/build-module/toggle-group-control/toggle-group-control/component.js +1 -0
- package/build-module/toggle-group-control/toggle-group-control/component.js.map +1 -1
- package/build-module/toggle-group-control/toggle-group-control/styles.js +12 -6
- package/build-module/toggle-group-control/toggle-group-control/styles.js.map +1 -1
- package/build-module/tools-panel/styles.js +14 -14
- package/build-module/tools-panel/styles.js.map +1 -1
- package/build-module/tools-panel/tools-panel-item/hook.js +9 -5
- package/build-module/tools-panel/tools-panel-item/hook.js.map +1 -1
- package/build-module/utils/colors-values.js +3 -2
- package/build-module/utils/colors-values.js.map +1 -1
- package/build-module/utils/input/base.js +2 -2
- package/build-module/utils/input/base.js.map +1 -1
- package/build-module/view/index.js.map +1 -1
- package/build-style/style-rtl.css +72 -44
- package/build-style/style.css +72 -44
- package/build-types/border-box-control/border-box-control/component.d.ts +4 -4
- package/build-types/border-box-control/border-box-control/component.d.ts.map +1 -1
- package/build-types/border-box-control/border-box-control/hook.d.ts +6 -6
- package/build-types/border-box-control/border-box-control/hook.d.ts.map +1 -1
- package/build-types/border-box-control/border-box-control-linked-button/component.d.ts +4 -2
- package/build-types/border-box-control/border-box-control-linked-button/component.d.ts.map +1 -1
- package/build-types/border-box-control/border-box-control-split-controls/component.d.ts +3 -3
- package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts +5 -5
- package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts.map +1 -1
- package/build-types/border-box-control/border-box-control-visualizer/component.d.ts +3 -2
- package/build-types/border-box-control/border-box-control-visualizer/component.d.ts.map +1 -1
- package/build-types/border-box-control/stories/index.d.ts +3 -3
- package/build-types/border-box-control/types.d.ts +5 -38
- package/build-types/border-box-control/types.d.ts.map +1 -1
- package/build-types/border-control/border-control/component.d.ts +4 -2
- package/build-types/border-control/border-control/component.d.ts.map +1 -1
- package/build-types/border-control/border-control/hook.d.ts +5 -5
- package/build-types/border-control/border-control/hook.d.ts.map +1 -1
- package/build-types/border-control/border-control-dropdown/component.d.ts +3 -3
- package/build-types/border-control/border-control-dropdown/component.d.ts.map +1 -1
- package/build-types/border-control/border-control-dropdown/hook.d.ts +5 -5
- package/build-types/border-control/border-control-dropdown/hook.d.ts.map +1 -1
- package/build-types/border-control/stories/index.d.ts +24 -12
- package/build-types/border-control/stories/index.d.ts.map +1 -1
- package/build-types/border-control/types.d.ts +10 -51
- package/build-types/border-control/types.d.ts.map +1 -1
- package/build-types/color-palette/index.d.ts +16 -2
- package/build-types/color-palette/index.d.ts.map +1 -1
- package/build-types/color-palette/stories/index.d.ts +31 -2
- package/build-types/color-palette/stories/index.d.ts.map +1 -1
- package/build-types/color-palette/types.d.ts +14 -10
- package/build-types/color-palette/types.d.ts.map +1 -1
- package/build-types/color-picker/input-with-slider.d.ts.map +1 -1
- package/build-types/custom-select-control/index.d.ts.map +1 -1
- package/build-types/dashicon/index.d.ts +6 -1
- package/build-types/dashicon/index.d.ts.map +1 -1
- package/build-types/date-time/types.d.ts +0 -16
- package/build-types/date-time/types.d.ts.map +1 -1
- package/build-types/draggable/index.d.ts +42 -66
- package/build-types/draggable/index.d.ts.map +1 -1
- package/build-types/draggable/stories/index.d.ts +12 -0
- package/build-types/draggable/stories/index.d.ts.map +1 -0
- package/build-types/draggable/types.d.ts +58 -0
- package/build-types/draggable/types.d.ts.map +1 -0
- package/build-types/flex/flex/hook.d.ts.map +1 -1
- package/build-types/focal-point-picker/focal-point.d.ts.map +1 -1
- package/build-types/focal-point-picker/styles/focal-point-picker-style.d.ts +1 -1
- package/build-types/focal-point-picker/styles/focal-point-style.d.ts +1 -12
- package/build-types/focal-point-picker/styles/focal-point-style.d.ts.map +1 -1
- package/build-types/font-size-picker/constants.d.ts +15 -0
- package/build-types/font-size-picker/constants.d.ts.map +1 -0
- package/build-types/font-size-picker/font-size-picker-select.d.ts +5 -0
- package/build-types/font-size-picker/font-size-picker-select.d.ts.map +1 -0
- package/build-types/font-size-picker/font-size-picker-toggle-group.d.ts +5 -0
- package/build-types/font-size-picker/font-size-picker-toggle-group.d.ts.map +1 -0
- package/build-types/font-size-picker/index.d.ts.map +1 -1
- package/build-types/font-size-picker/types.d.ts +13 -13
- package/build-types/font-size-picker/types.d.ts.map +1 -1
- package/build-types/font-size-picker/utils.d.ts +6 -18
- package/build-types/font-size-picker/utils.d.ts.map +1 -1
- package/build-types/form-token-field/index.d.ts.map +1 -1
- package/build-types/icon/index.d.ts +1 -1
- package/build-types/icon/index.d.ts.map +1 -1
- package/build-types/menu-group/index.d.ts +21 -1
- package/build-types/menu-group/index.d.ts.map +1 -1
- package/build-types/menu-group/test/index.d.ts +2 -0
- package/build-types/menu-group/test/index.d.ts.map +1 -0
- package/build-types/menu-group/types.d.ts +23 -0
- package/build-types/menu-group/types.d.ts.map +1 -0
- package/build-types/navigator/navigator-screen/component.d.ts.map +1 -1
- package/build-types/popover/index.d.ts.map +1 -1
- package/build-types/tab-panel/index.d.ts.map +1 -1
- package/build-types/toggle-group-control/stories/index.d.ts.map +1 -1
- package/build-types/toggle-group-control/toggle-group-control/styles.d.ts +1 -2
- package/build-types/toggle-group-control/toggle-group-control/styles.d.ts.map +1 -1
- package/build-types/toggle-group-control/types.d.ts +2 -1
- package/build-types/toggle-group-control/types.d.ts.map +1 -1
- package/build-types/tools-panel/tools-panel-item/hook.d.ts.map +1 -1
- package/build-types/unit-control/index.d.ts +1 -1
- package/build-types/utils/colors-values.d.ts +1 -0
- package/build-types/utils/colors-values.d.ts.map +1 -1
- package/build-types/view/index.d.ts +1 -1
- package/build-types/view/index.d.ts.map +1 -1
- package/package.json +17 -17
- package/src/angle-picker-control/index.js +2 -1
- package/src/autocomplete/index.js +12 -3
- package/src/autocomplete/style.scss +1 -1
- package/src/base-field/test/__snapshots__/index.js.snap +9 -7
- package/src/base-field/test/index.js +27 -15
- package/src/border-box-control/border-box-control/README.md +5 -17
- package/src/border-box-control/border-box-control/component.tsx +1 -1
- package/src/border-box-control/border-box-control/hook.ts +18 -4
- package/src/border-box-control/border-box-control-split-controls/hook.ts +10 -0
- package/src/border-box-control/types.ts +32 -58
- package/src/border-control/border-control/README.md +4 -17
- package/src/border-control/border-control/component.tsx +2 -2
- package/src/border-control/border-control/hook.ts +10 -0
- package/src/border-control/border-control-dropdown/component.tsx +7 -6
- package/src/border-control/border-control-dropdown/hook.ts +9 -1
- package/src/border-control/types.ts +43 -80
- package/src/card/test/__snapshots__/index.tsx.snap +64 -368
- package/src/card/test/index.tsx +2 -2
- package/src/checkbox-control/style.scss +3 -3
- package/src/color-palette/README.md +12 -16
- package/src/color-palette/index.tsx +1 -1
- package/src/color-palette/style.scss +1 -1
- package/src/color-palette/types.ts +14 -10
- package/src/color-picker/input-with-slider.tsx +13 -2
- package/src/custom-select-control/index.js +7 -0
- package/src/custom-select-control/stories/index.js +1 -0
- package/src/custom-select-control/style.scss +6 -1
- package/src/custom-select-control/test/index.js +39 -0
- package/src/dashicon/index.js +21 -2
- package/src/date-time/date/test/index.tsx +2 -2
- package/src/date-time/types.ts +0 -19
- package/src/divider/test/index.tsx +4 -4
- package/src/draggable/README.md +13 -18
- package/src/draggable/{index.js → index.tsx} +71 -47
- package/src/draggable/stories/index.tsx +83 -0
- package/src/draggable/types.ts +58 -0
- package/src/drop-zone/style.scss +1 -1
- package/src/flex/flex/hook.ts +0 -3
- package/src/flex/test/index.tsx +29 -3
- package/src/focal-point-picker/focal-point.tsx +2 -24
- package/src/focal-point-picker/styles/focal-point-style.ts +8 -32
- package/src/font-size-picker/constants.ts +37 -0
- package/src/font-size-picker/font-size-picker-select.tsx +98 -0
- package/src/font-size-picker/font-size-picker-toggle-group.tsx +41 -0
- package/src/font-size-picker/index.tsx +55 -118
- package/src/font-size-picker/test/index.tsx +253 -44
- package/src/font-size-picker/test/utils.ts +58 -98
- package/src/font-size-picker/types.ts +25 -16
- package/src/font-size-picker/utils.ts +16 -102
- package/src/form-toggle/style.scss +3 -3
- package/src/form-token-field/index.tsx +13 -5
- package/src/form-token-field/style.scss +2 -2
- package/src/form-token-field/test/index.tsx +6 -6
- package/src/higher-order/navigate-regions/index.js +4 -0
- package/src/higher-order/navigate-regions/style.scss +72 -20
- package/src/higher-order/with-notices/test/index.js +1 -1
- package/src/icon/index.tsx +3 -2
- package/src/icon/test/index.js +10 -0
- package/src/index.js +1 -0
- package/src/item-group/stories/index.js +1 -1
- package/src/menu-group/{index.js → index.tsx} +22 -3
- package/src/menu-group/test/{index.js → index.tsx} +0 -0
- package/src/menu-group/types.ts +23 -0
- package/src/menu-item/style.scss +1 -1
- package/src/mobile/bottom-sheet/test/range-cell.native.js +4 -4
- package/src/mobile/html-text-input/test/index.native.js +2 -2
- package/src/mobile/link-settings/test/edit.native.js +29 -29
- package/src/mobile/link-settings/test/link-settings-navigation.native.js +5 -5
- package/src/navigator/navigator-screen/component.tsx +8 -3
- package/src/notice/README.md +2 -1
- package/src/notice/style.scss +1 -1
- package/src/palette-edit/index.js +3 -0
- package/src/panel/style.scss +1 -1
- package/src/popover/index.tsx +18 -7
- package/src/range-control/styles/range-control-styles.ts +2 -2
- package/src/resizable-box/style.scss +2 -2
- package/src/scrollable/test/index.tsx +7 -3
- package/src/search-control/style.scss +1 -1
- package/src/snackbar/style.scss +2 -2
- package/src/spacer/test/index.tsx +33 -3
- package/src/spinner/styles.ts +1 -1
- package/src/surface/test/index.tsx +12 -12
- package/src/tab-panel/index.tsx +9 -6
- package/src/tab-panel/style.scss +4 -5
- package/src/text/test/index.tsx +4 -4
- package/src/toggle-group-control/stories/index.tsx +2 -0
- package/src/toggle-group-control/test/__snapshots__/index.tsx.snap +6 -8
- package/src/toggle-group-control/test/index.tsx +29 -17
- package/src/toggle-group-control/toggle-group-control/README.md +8 -1
- package/src/toggle-group-control/toggle-group-control/component.tsx +1 -1
- package/src/toggle-group-control/toggle-group-control/styles.ts +22 -16
- package/src/toggle-group-control/types.ts +2 -1
- package/src/tools-panel/styles.ts +1 -1
- package/src/tools-panel/tools-panel-item/hook.ts +6 -1
- package/src/tree-grid/test/index.js +12 -12
- package/src/truncate/test/index.tsx +9 -9
- package/src/ui/form-group/test/index.js +16 -17
- package/src/utils/colors-values.js +4 -2
- package/src/utils/hooks/stories/use-cx.js +1 -1
- package/src/utils/input/base.js +2 -2
- package/src/view/{index.js → index.ts} +0 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/src/draggable/stories/index.js +0 -72
|
@@ -9,6 +9,11 @@
|
|
|
9
9
|
outline: 0; // focus ring is handled elsewhere
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
+
.components-custom-select-control__hint {
|
|
13
|
+
color: $gray-600;
|
|
14
|
+
margin-left: 10px;
|
|
15
|
+
}
|
|
16
|
+
|
|
12
17
|
.components-custom-select-control__menu {
|
|
13
18
|
// Hide when collapsed.
|
|
14
19
|
&[aria-hidden="true"] {
|
|
@@ -50,7 +55,7 @@
|
|
|
50
55
|
background: $gray-300;
|
|
51
56
|
}
|
|
52
57
|
.components-custom-select-control__item-hint {
|
|
53
|
-
color: $gray-
|
|
58
|
+
color: $gray-600;
|
|
54
59
|
text-align: right;
|
|
55
60
|
padding-right: $grid-unit-05;
|
|
56
61
|
}
|
|
@@ -46,4 +46,43 @@ describe( 'CustomSelectControl', () => {
|
|
|
46
46
|
|
|
47
47
|
expect( onKeyDown ).toHaveBeenCalledTimes( 0 );
|
|
48
48
|
} );
|
|
49
|
+
|
|
50
|
+
it( 'does not show selected hint by default', () => {
|
|
51
|
+
render(
|
|
52
|
+
<CustomSelectControl
|
|
53
|
+
label="Custom select"
|
|
54
|
+
options={ [
|
|
55
|
+
{
|
|
56
|
+
key: 'one',
|
|
57
|
+
name: 'One',
|
|
58
|
+
__experimentalHint: 'Hint',
|
|
59
|
+
},
|
|
60
|
+
] }
|
|
61
|
+
__nextUnconstrainedWidth
|
|
62
|
+
/>
|
|
63
|
+
);
|
|
64
|
+
expect(
|
|
65
|
+
screen.getByRole( 'button', { name: 'Custom select' } )
|
|
66
|
+
).not.toHaveTextContent( 'Hint' );
|
|
67
|
+
} );
|
|
68
|
+
|
|
69
|
+
it( 'shows selected hint when __experimentalShowSelectedHint is set', () => {
|
|
70
|
+
render(
|
|
71
|
+
<CustomSelectControl
|
|
72
|
+
label="Custom select"
|
|
73
|
+
options={ [
|
|
74
|
+
{
|
|
75
|
+
key: 'one',
|
|
76
|
+
name: 'One',
|
|
77
|
+
__experimentalHint: 'Hint',
|
|
78
|
+
},
|
|
79
|
+
] }
|
|
80
|
+
__experimentalShowSelectedHint
|
|
81
|
+
__nextUnconstrainedWidth
|
|
82
|
+
/>
|
|
83
|
+
);
|
|
84
|
+
expect(
|
|
85
|
+
screen.getByRole( 'button', { name: 'Custom select' } )
|
|
86
|
+
).toHaveTextContent( 'Hint' );
|
|
87
|
+
} );
|
|
49
88
|
} );
|
package/src/dashicon/index.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @property {import('./types').IconKey} icon Icon name
|
|
5
5
|
* @property {string} [className] Class name
|
|
6
|
+
* @property {number} [size] Size of the icon
|
|
6
7
|
*/
|
|
7
8
|
/** @typedef {import('react').ComponentPropsWithoutRef<'span'> & OwnProps} Props */
|
|
8
9
|
|
|
@@ -10,7 +11,8 @@
|
|
|
10
11
|
* @param {Props} props
|
|
11
12
|
* @return {JSX.Element} Element
|
|
12
13
|
*/
|
|
13
|
-
|
|
14
|
+
|
|
15
|
+
function Dashicon( { icon, className, size = 20, style = {}, ...extraProps } ) {
|
|
14
16
|
const iconClass = [
|
|
15
17
|
'dashicon',
|
|
16
18
|
'dashicons',
|
|
@@ -20,7 +22,24 @@ function Dashicon( { icon, className, ...extraProps } ) {
|
|
|
20
22
|
.filter( Boolean )
|
|
21
23
|
.join( ' ' );
|
|
22
24
|
|
|
23
|
-
|
|
25
|
+
// For retro-compatibility reasons (for example if people are overriding icon size with CSS), we add inline styles just if the size is different to the default
|
|
26
|
+
const sizeStyles =
|
|
27
|
+
// using `!=` to catch both 20 and "20"
|
|
28
|
+
// eslint-disable-next-line eqeqeq
|
|
29
|
+
20 != size
|
|
30
|
+
? {
|
|
31
|
+
fontSize: `${ size }px`,
|
|
32
|
+
width: `${ size }px`,
|
|
33
|
+
height: `${ size }px`,
|
|
34
|
+
}
|
|
35
|
+
: {};
|
|
36
|
+
|
|
37
|
+
const styles = {
|
|
38
|
+
...sizeStyles,
|
|
39
|
+
...style,
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
return <span className={ iconClass } style={ styles } { ...extraProps } />;
|
|
24
43
|
}
|
|
25
44
|
|
|
26
45
|
export default Dashicon;
|
|
@@ -16,7 +16,7 @@ describe( 'DatePicker', () => {
|
|
|
16
16
|
|
|
17
17
|
expect(
|
|
18
18
|
screen.getByRole( 'button', { name: 'May 2, 2022. Selected' } )
|
|
19
|
-
).
|
|
19
|
+
).toBeInTheDocument();
|
|
20
20
|
} );
|
|
21
21
|
|
|
22
22
|
it( "should highlight today's date when not provided a currentDate", () => {
|
|
@@ -27,7 +27,7 @@ describe( 'DatePicker', () => {
|
|
|
27
27
|
screen.getByRole( 'button', {
|
|
28
28
|
name: `${ todayDescription }. Selected`,
|
|
29
29
|
} )
|
|
30
|
-
).
|
|
30
|
+
).toBeInTheDocument();
|
|
31
31
|
} );
|
|
32
32
|
|
|
33
33
|
it( 'should call onChange when a day is selected', async () => {
|
package/src/date-time/types.ts
CHANGED
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* External dependencies
|
|
3
|
-
*/
|
|
4
|
-
import type { Moment } from 'moment';
|
|
5
|
-
|
|
6
1
|
export type TimePickerProps = {
|
|
7
2
|
/**
|
|
8
3
|
* The initial current time the time picker should render.
|
|
@@ -30,20 +25,6 @@ export type DatePickerEvent = {
|
|
|
30
25
|
date: Date;
|
|
31
26
|
};
|
|
32
27
|
|
|
33
|
-
export type DatePickerDayProps = {
|
|
34
|
-
/**
|
|
35
|
-
* The day to display.
|
|
36
|
-
*/
|
|
37
|
-
day: Moment;
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* List of events to show on this day.
|
|
41
|
-
*
|
|
42
|
-
* @default []
|
|
43
|
-
*/
|
|
44
|
-
events?: DatePickerEvent[];
|
|
45
|
-
};
|
|
46
|
-
|
|
47
28
|
export type DatePickerProps = {
|
|
48
29
|
/**
|
|
49
30
|
* The current date and time at initialization. Optionally pass in a `null`
|
|
@@ -9,15 +9,13 @@ import { render, screen } from '@testing-library/react';
|
|
|
9
9
|
import { Divider } from '..';
|
|
10
10
|
|
|
11
11
|
describe( 'props', () => {
|
|
12
|
-
beforeEach( () => {
|
|
13
|
-
render( <Divider /> );
|
|
14
|
-
} );
|
|
15
|
-
|
|
16
12
|
test( 'should render correctly', () => {
|
|
13
|
+
render( <Divider /> );
|
|
17
14
|
expect( screen.getByRole( 'separator' ) ).toMatchSnapshot();
|
|
18
15
|
} );
|
|
19
16
|
|
|
20
17
|
test( 'should render marginStart', () => {
|
|
18
|
+
render( <Divider /> );
|
|
21
19
|
render( <Divider marginStart={ 5 } /> );
|
|
22
20
|
|
|
23
21
|
const dividers = screen.getAllByRole( 'separator' );
|
|
@@ -25,6 +23,7 @@ describe( 'props', () => {
|
|
|
25
23
|
} );
|
|
26
24
|
|
|
27
25
|
test( 'should render marginEnd', () => {
|
|
26
|
+
render( <Divider /> );
|
|
28
27
|
render( <Divider marginEnd={ 5 } /> );
|
|
29
28
|
|
|
30
29
|
const dividers = screen.getAllByRole( 'separator' );
|
|
@@ -32,6 +31,7 @@ describe( 'props', () => {
|
|
|
32
31
|
} );
|
|
33
32
|
|
|
34
33
|
test( 'should render margin', () => {
|
|
34
|
+
render( <Divider /> );
|
|
35
35
|
render( <Divider margin={ 7 } /> );
|
|
36
36
|
|
|
37
37
|
const dividers = screen.getAllByRole( 'separator' );
|
package/src/draggable/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Draggable
|
|
2
2
|
|
|
3
|
-
`Draggable` is a Component that provides a way to set up a cross-browser (including IE)
|
|
3
|
+
`Draggable` is a Component that provides a way to set up a cross-browser (including IE) customizable drag image and the transfer data for the drag event. It decouples the drag handle and the element to drag: use it by wrapping the component that will become the drag handle and providing the DOM ID of the element to drag.
|
|
4
4
|
|
|
5
5
|
Note that the drag handle needs to declare the `draggable="true"` property and bind the `Draggable`s `onDraggableStart` and `onDraggableEnd` event handlers to its own `onDragStart` and `onDragEnd` respectively. `Draggable` takes care of the logic to setup the drag image and the transfer data, but is not concerned with creating an actual DOM element that is draggable.
|
|
6
6
|
|
|
@@ -8,44 +8,39 @@ Note that the drag handle needs to declare the `draggable="true"` property and b
|
|
|
8
8
|
|
|
9
9
|
The component accepts the following props:
|
|
10
10
|
|
|
11
|
-
### elementId
|
|
11
|
+
### `elementId`: `string`
|
|
12
12
|
|
|
13
13
|
The HTML id of the element to clone on drag
|
|
14
14
|
|
|
15
|
-
- Type: `string`
|
|
16
15
|
- Required: Yes
|
|
17
16
|
|
|
18
|
-
###
|
|
17
|
+
### `onDragEnd`: `( event: DragEvent ) => void`
|
|
19
18
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
- Type: `Object`
|
|
23
|
-
- Required: Yes
|
|
24
|
-
|
|
25
|
-
### onDragStart
|
|
26
|
-
|
|
27
|
-
A function called when dragging starts. This callback receives the `event` object from the `dragstart` event as its first parameter.
|
|
19
|
+
A function called when dragging ends. This callback receives the `event` object from the `dragend` event as its first parameter.
|
|
28
20
|
|
|
29
|
-
- Type: `Function`
|
|
30
21
|
- Required: No
|
|
31
22
|
- Default: `noop`
|
|
32
23
|
|
|
33
|
-
### onDragOver
|
|
24
|
+
### `onDragOver`: `( event: DragEvent ) => void`
|
|
34
25
|
|
|
35
26
|
A function called when the element being dragged is dragged over a valid drop target. This callback receives the `event` object from the `dragover` event as its first parameter.
|
|
36
27
|
|
|
37
|
-
- Type: `Function`
|
|
38
28
|
- Required: No
|
|
39
29
|
- Default: `noop`
|
|
40
30
|
|
|
41
|
-
###
|
|
31
|
+
### `onDragStart`: `( event: DragEvent ) => void`
|
|
42
32
|
|
|
43
|
-
A function called when dragging
|
|
33
|
+
A function called when dragging starts. This callback receives the `event` object from the `dragstart` event as its first parameter.
|
|
44
34
|
|
|
45
|
-
- Type: `Function`
|
|
46
35
|
- Required: No
|
|
47
36
|
- Default: `noop`
|
|
48
37
|
|
|
38
|
+
### `transferData`: `unknown`
|
|
39
|
+
|
|
40
|
+
Arbitrary data object attached to the drag and drop event.
|
|
41
|
+
|
|
42
|
+
- Required: Yes
|
|
43
|
+
|
|
49
44
|
## Usage
|
|
50
45
|
|
|
51
46
|
```jsx
|
|
@@ -1,38 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External dependencies
|
|
3
|
+
*/
|
|
4
|
+
import type { DragEvent } from 'react';
|
|
5
|
+
|
|
1
6
|
/**
|
|
2
7
|
* WordPress dependencies
|
|
3
8
|
*/
|
|
4
9
|
import { throttle } from '@wordpress/compose';
|
|
5
10
|
import { useEffect, useRef } from '@wordpress/element';
|
|
6
11
|
|
|
12
|
+
/**
|
|
13
|
+
* Internal dependencies
|
|
14
|
+
*/
|
|
15
|
+
import type { DraggableProps } from './types';
|
|
16
|
+
|
|
7
17
|
const dragImageClass = 'components-draggable__invisible-drag-image';
|
|
8
18
|
const cloneWrapperClass = 'components-draggable__clone';
|
|
9
19
|
const clonePadding = 0;
|
|
10
20
|
const bodyClass = 'is-dragging-components-draggable';
|
|
11
21
|
|
|
12
22
|
/**
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
23
|
+
* `Draggable` is a Component that provides a way to set up a cross-browser
|
|
24
|
+
* (including IE) customizable drag image and the transfer data for the drag
|
|
25
|
+
* event. It decouples the drag handle and the element to drag: use it by
|
|
26
|
+
* wrapping the component that will become the drag handle and providing the DOM
|
|
27
|
+
* ID of the element to drag.
|
|
28
|
+
*
|
|
29
|
+
* Note that the drag handle needs to declare the `draggable="true"` property
|
|
30
|
+
* and bind the `Draggable`s `onDraggableStart` and `onDraggableEnd` event
|
|
31
|
+
* handlers to its own `onDragStart` and `onDragEnd` respectively. `Draggable`
|
|
32
|
+
* takes care of the logic to setup the drag image and the transfer data, but is
|
|
33
|
+
* not concerned with creating an actual DOM element that is draggable.
|
|
34
|
+
*
|
|
35
|
+
* ```jsx
|
|
36
|
+
* import { Draggable, Panel, PanelBody } from '@wordpress/components';
|
|
37
|
+
* import { Icon, more } from '@wordpress/icons';
|
|
38
|
+
*
|
|
39
|
+
* const MyDraggable = () => (
|
|
40
|
+
* <div id="draggable-panel">
|
|
41
|
+
* <Panel header="Draggable panel">
|
|
42
|
+
* <PanelBody>
|
|
43
|
+
* <Draggable elementId="draggable-panel" transferData={ {} }>
|
|
44
|
+
* { ( { onDraggableStart, onDraggableEnd } ) => (
|
|
45
|
+
* <div
|
|
46
|
+
* className="example-drag-handle"
|
|
47
|
+
* draggable
|
|
48
|
+
* onDragStart={ onDraggableStart }
|
|
49
|
+
* onDragEnd={ onDraggableEnd }
|
|
50
|
+
* >
|
|
51
|
+
* <Icon icon={ more } />
|
|
52
|
+
* </div>
|
|
53
|
+
* ) }
|
|
54
|
+
* </Draggable>
|
|
55
|
+
* </PanelBody>
|
|
56
|
+
* </Panel>
|
|
57
|
+
* </div>
|
|
58
|
+
* );
|
|
59
|
+
* ```
|
|
16
60
|
*/
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* @typedef Props
|
|
20
|
-
* @property {(props: RenderProp) => JSX.Element | null} children Children.
|
|
21
|
-
* @property {(event: import('react').DragEvent) => void} [onDragStart] Callback when dragging starts.
|
|
22
|
-
* @property {(event: import('react').DragEvent) => void} [onDragOver] Callback when dragging happens over the document.
|
|
23
|
-
* @property {(event: import('react').DragEvent) => void} [onDragEnd] Callback when dragging ends.
|
|
24
|
-
* @property {string} [cloneClassname] Classname for the cloned element.
|
|
25
|
-
* @property {string} [elementId] ID for the element.
|
|
26
|
-
* @property {any} [transferData] Transfer data for the drag event.
|
|
27
|
-
* @property {string} [__experimentalTransferDataType] The transfer data type to set.
|
|
28
|
-
* @property {import('react').ReactNode} __experimentalDragComponent Component to show when dragging.
|
|
29
|
-
*/
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* @param {Props} props
|
|
33
|
-
* @return {JSX.Element} A draggable component.
|
|
34
|
-
*/
|
|
35
|
-
export default function Draggable( {
|
|
61
|
+
export function Draggable( {
|
|
36
62
|
children,
|
|
37
63
|
onDragStart,
|
|
38
64
|
onDragOver,
|
|
@@ -42,17 +68,16 @@ export default function Draggable( {
|
|
|
42
68
|
transferData,
|
|
43
69
|
__experimentalTransferDataType: transferDataType = 'text',
|
|
44
70
|
__experimentalDragComponent: dragComponent,
|
|
45
|
-
} ) {
|
|
46
|
-
|
|
47
|
-
const dragComponentRef = useRef( null );
|
|
71
|
+
}: DraggableProps ) {
|
|
72
|
+
const dragComponentRef = useRef< HTMLDivElement >( null );
|
|
48
73
|
const cleanup = useRef( () => {} );
|
|
49
74
|
|
|
50
75
|
/**
|
|
51
76
|
* Removes the element clone, resets cursor, and removes drag listener.
|
|
52
77
|
*
|
|
53
|
-
* @param
|
|
78
|
+
* @param event The non-custom DragEvent.
|
|
54
79
|
*/
|
|
55
|
-
function end( event ) {
|
|
80
|
+
function end( event: DragEvent ) {
|
|
56
81
|
event.preventDefault();
|
|
57
82
|
cleanup.current();
|
|
58
83
|
|
|
@@ -69,11 +94,10 @@ export default function Draggable( {
|
|
|
69
94
|
* - Sets transfer data.
|
|
70
95
|
* - Adds dragover listener.
|
|
71
96
|
*
|
|
72
|
-
* @param
|
|
97
|
+
* @param event The non-custom DragEvent.
|
|
73
98
|
*/
|
|
74
|
-
function start( event ) {
|
|
75
|
-
|
|
76
|
-
const { ownerDocument } = event.target;
|
|
99
|
+
function start( event: DragEvent ) {
|
|
100
|
+
const { ownerDocument } = event.target as HTMLElement;
|
|
77
101
|
|
|
78
102
|
event.dataTransfer.setData(
|
|
79
103
|
transferDataType,
|
|
@@ -82,8 +106,8 @@ export default function Draggable( {
|
|
|
82
106
|
|
|
83
107
|
const cloneWrapper = ownerDocument.createElement( 'div' );
|
|
84
108
|
// Reset position to 0,0. Natural stacking order will position this lower, even with a transform otherwise.
|
|
85
|
-
cloneWrapper.style.top = 0;
|
|
86
|
-
cloneWrapper.style.left = 0;
|
|
109
|
+
cloneWrapper.style.top = '0';
|
|
110
|
+
cloneWrapper.style.left = '0';
|
|
87
111
|
|
|
88
112
|
const dragImage = ownerDocument.createElement( 'div' );
|
|
89
113
|
|
|
@@ -119,19 +143,21 @@ export default function Draggable( {
|
|
|
119
143
|
// Inject the cloneWrapper into the DOM.
|
|
120
144
|
ownerDocument.body.appendChild( cloneWrapper );
|
|
121
145
|
} else {
|
|
122
|
-
const element = ownerDocument.getElementById(
|
|
146
|
+
const element = ownerDocument.getElementById(
|
|
147
|
+
elementId
|
|
148
|
+
) as HTMLElement;
|
|
123
149
|
|
|
124
150
|
// Prepare element clone and append to element wrapper.
|
|
125
151
|
const elementRect = element.getBoundingClientRect();
|
|
126
152
|
const elementWrapper = element.parentNode;
|
|
127
|
-
const elementTopOffset =
|
|
128
|
-
const elementLeftOffset =
|
|
153
|
+
const elementTopOffset = elementRect.top;
|
|
154
|
+
const elementLeftOffset = elementRect.left;
|
|
129
155
|
|
|
130
156
|
cloneWrapper.style.width = `${
|
|
131
157
|
elementRect.width + clonePadding * 2
|
|
132
158
|
}px`;
|
|
133
159
|
|
|
134
|
-
const clone = element.cloneNode( true );
|
|
160
|
+
const clone = element.cloneNode( true ) as HTMLElement;
|
|
135
161
|
clone.id = `clone-${ elementId }`;
|
|
136
162
|
|
|
137
163
|
// Position clone right over the original element (20px padding).
|
|
@@ -140,24 +166,21 @@ export default function Draggable( {
|
|
|
140
166
|
cloneWrapper.style.transform = `translate( ${ x }px, ${ y }px )`;
|
|
141
167
|
|
|
142
168
|
// Hack: Remove iFrames as it's causing the embeds drag clone to freeze.
|
|
143
|
-
Array.from
|
|
144
|
-
|
|
145
|
-
);
|
|
169
|
+
Array.from< HTMLIFrameElement >(
|
|
170
|
+
clone.querySelectorAll( 'iframe' )
|
|
171
|
+
).forEach( ( child ) => child.parentNode?.removeChild( child ) );
|
|
146
172
|
|
|
147
173
|
cloneWrapper.appendChild( clone );
|
|
148
174
|
|
|
149
175
|
// Inject the cloneWrapper into the DOM.
|
|
150
|
-
elementWrapper
|
|
176
|
+
elementWrapper?.appendChild( cloneWrapper );
|
|
151
177
|
}
|
|
152
178
|
|
|
153
179
|
// Mark the current cursor coordinates.
|
|
154
180
|
let cursorLeft = event.clientX;
|
|
155
181
|
let cursorTop = event.clientY;
|
|
156
182
|
|
|
157
|
-
|
|
158
|
-
* @param {import('react').DragEvent<Element>} e
|
|
159
|
-
*/
|
|
160
|
-
function over( e ) {
|
|
183
|
+
function over( e: DragEvent ) {
|
|
161
184
|
// Skip doing any work if mouse has not moved.
|
|
162
185
|
if ( cursorLeft === e.clientX && cursorTop === e.clientY ) {
|
|
163
186
|
return;
|
|
@@ -188,8 +211,7 @@ export default function Draggable( {
|
|
|
188
211
|
// https://reactjs.org/docs/events.html#event-pooling
|
|
189
212
|
event.persist();
|
|
190
213
|
|
|
191
|
-
|
|
192
|
-
let timerId;
|
|
214
|
+
let timerId: number | undefined;
|
|
193
215
|
|
|
194
216
|
if ( onDragStart ) {
|
|
195
217
|
timerId = setTimeout( () => onDragStart( event ) );
|
|
@@ -239,3 +261,5 @@ export default function Draggable( {
|
|
|
239
261
|
</>
|
|
240
262
|
);
|
|
241
263
|
}
|
|
264
|
+
|
|
265
|
+
export default Draggable;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External dependencies
|
|
3
|
+
*/
|
|
4
|
+
import type { ComponentMeta, ComponentStory } from '@storybook/react';
|
|
5
|
+
import type { DragEvent } from 'react';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* WordPress dependencies
|
|
9
|
+
*/
|
|
10
|
+
import { useState } from '@wordpress/element';
|
|
11
|
+
import { Icon, more } from '@wordpress/icons';
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Internal dependencies
|
|
15
|
+
*/
|
|
16
|
+
import Draggable from '..';
|
|
17
|
+
|
|
18
|
+
const meta: ComponentMeta< typeof Draggable > = {
|
|
19
|
+
component: Draggable,
|
|
20
|
+
title: 'Components/Draggable',
|
|
21
|
+
argTypes: {
|
|
22
|
+
elementId: { control: { type: null } },
|
|
23
|
+
__experimentalDragComponent: { control: { type: null } },
|
|
24
|
+
},
|
|
25
|
+
parameters: {
|
|
26
|
+
actions: { argTypesRegex: '^on.*' },
|
|
27
|
+
controls: { expanded: true },
|
|
28
|
+
docs: { source: { code: '' } },
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
export default meta;
|
|
32
|
+
|
|
33
|
+
const DefaultTemplate: ComponentStory< typeof Draggable > = ( args ) => {
|
|
34
|
+
const [ isDragging, setDragging ] = useState( false );
|
|
35
|
+
|
|
36
|
+
// Allow for the use of ID in the example.
|
|
37
|
+
return (
|
|
38
|
+
<div>
|
|
39
|
+
<p>Is Dragging? { isDragging ? 'Yes' : 'No!' }</p>
|
|
40
|
+
<div
|
|
41
|
+
/* eslint-disable no-restricted-syntax, eslint-comments/disable-enable-pair */
|
|
42
|
+
id="draggable-example-box"
|
|
43
|
+
style={ { display: 'inline-flex' } }
|
|
44
|
+
>
|
|
45
|
+
<Draggable { ...args } elementId="draggable-example-box">
|
|
46
|
+
{ ( { onDraggableStart, onDraggableEnd } ) => {
|
|
47
|
+
const handleOnDragStart = ( event: DragEvent ) => {
|
|
48
|
+
setDragging( true );
|
|
49
|
+
onDraggableStart( event );
|
|
50
|
+
};
|
|
51
|
+
const handleOnDragEnd = ( event: DragEvent ) => {
|
|
52
|
+
setDragging( false );
|
|
53
|
+
onDraggableEnd( event );
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
return (
|
|
57
|
+
<div
|
|
58
|
+
onDragStart={ handleOnDragStart }
|
|
59
|
+
onDragEnd={ handleOnDragEnd }
|
|
60
|
+
draggable
|
|
61
|
+
style={ {
|
|
62
|
+
alignItems: 'center',
|
|
63
|
+
display: 'flex',
|
|
64
|
+
justifyContent: 'center',
|
|
65
|
+
width: 100,
|
|
66
|
+
height: 100,
|
|
67
|
+
background: '#ddd',
|
|
68
|
+
} }
|
|
69
|
+
>
|
|
70
|
+
<Icon icon={ more } />
|
|
71
|
+
</div>
|
|
72
|
+
);
|
|
73
|
+
} }
|
|
74
|
+
</Draggable>
|
|
75
|
+
</div>
|
|
76
|
+
</div>
|
|
77
|
+
);
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
export const Default: ComponentStory< typeof Draggable > = DefaultTemplate.bind(
|
|
81
|
+
{}
|
|
82
|
+
);
|
|
83
|
+
Default.args = {};
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External dependencies
|
|
3
|
+
*/
|
|
4
|
+
import type { DragEvent, ReactNode } from 'react';
|
|
5
|
+
|
|
6
|
+
export type DraggableProps = {
|
|
7
|
+
/**
|
|
8
|
+
* Children.
|
|
9
|
+
*/
|
|
10
|
+
children: ( props: {
|
|
11
|
+
/**
|
|
12
|
+
* `onDragStart` handler.
|
|
13
|
+
*/
|
|
14
|
+
onDraggableStart: ( event: DragEvent ) => void;
|
|
15
|
+
/**
|
|
16
|
+
* `onDragEnd` handler.
|
|
17
|
+
*/
|
|
18
|
+
onDraggableEnd: ( event: DragEvent ) => void;
|
|
19
|
+
} ) => JSX.Element | null;
|
|
20
|
+
/**
|
|
21
|
+
* Classname for the cloned element.
|
|
22
|
+
*/
|
|
23
|
+
cloneClassname?: string;
|
|
24
|
+
/**
|
|
25
|
+
* The HTML id of the element to clone on drag
|
|
26
|
+
*/
|
|
27
|
+
elementId: string;
|
|
28
|
+
/**
|
|
29
|
+
* A function called when dragging ends. This callback receives the `event`
|
|
30
|
+
* object from the `dragend` event as its first parameter.
|
|
31
|
+
*/
|
|
32
|
+
onDragEnd?: ( event: DragEvent ) => void;
|
|
33
|
+
/**
|
|
34
|
+
* A function called when the element being dragged is dragged over a valid
|
|
35
|
+
* drop target. This callback receives the `event` object from the
|
|
36
|
+
* `dragover` event as its first parameter.
|
|
37
|
+
*/
|
|
38
|
+
onDragOver?: ( event: DragEvent ) => void;
|
|
39
|
+
/**
|
|
40
|
+
* A function called when dragging starts. This callback receives the
|
|
41
|
+
* `event` object from the `dragstart` event as its first parameter.
|
|
42
|
+
*/
|
|
43
|
+
onDragStart?: ( event: DragEvent ) => void;
|
|
44
|
+
/**
|
|
45
|
+
* Arbitrary data object attached to the drag and drop event.
|
|
46
|
+
*/
|
|
47
|
+
transferData: unknown;
|
|
48
|
+
/**
|
|
49
|
+
* The transfer data type to set.
|
|
50
|
+
*
|
|
51
|
+
* @default 'text'
|
|
52
|
+
*/
|
|
53
|
+
__experimentalTransferDataType?: string;
|
|
54
|
+
/**
|
|
55
|
+
* Component to show when dragging.
|
|
56
|
+
*/
|
|
57
|
+
__experimentalDragComponent?: ReactNode;
|
|
58
|
+
};
|
package/src/drop-zone/style.scss
CHANGED
package/src/flex/flex/hook.ts
CHANGED
|
@@ -57,8 +57,6 @@ export function useFlex( props: WordPressComponentProps< FlexProps, 'div' > ) {
|
|
|
57
57
|
|
|
58
58
|
const isColumn =
|
|
59
59
|
typeof direction === 'string' && !! direction.includes( 'column' );
|
|
60
|
-
const isReverse =
|
|
61
|
-
typeof direction === 'string' && direction.includes( 'reverse' );
|
|
62
60
|
|
|
63
61
|
const cx = useCx();
|
|
64
62
|
|
|
@@ -87,7 +85,6 @@ export function useFlex( props: WordPressComponentProps< FlexProps, 'div' > ) {
|
|
|
87
85
|
expanded,
|
|
88
86
|
gap,
|
|
89
87
|
isColumn,
|
|
90
|
-
isReverse,
|
|
91
88
|
justify,
|
|
92
89
|
wrap,
|
|
93
90
|
] );
|