@wordpress/components 23.3.5 → 23.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +35 -5
- package/build/alignment-matrix-control/utils.js +4 -4
- package/build/alignment-matrix-control/utils.js.map +1 -1
- package/build/angle-picker-control/angle-circle.js +37 -29
- package/build/angle-picker-control/angle-circle.js.map +1 -1
- package/build/angle-picker-control/index.js +44 -9
- package/build/angle-picker-control/index.js.map +1 -1
- package/build/angle-picker-control/styles/angle-picker-control-styles.js +13 -13
- package/build/angle-picker-control/styles/angle-picker-control-styles.js.map +1 -1
- package/build/angle-picker-control/types.js.map +1 -0
- package/build/autocomplete/autocompleter-ui.js +41 -17
- package/build/autocomplete/autocompleter-ui.js.map +1 -1
- package/build/autocomplete/autocompleter-ui.native.js +1 -0
- package/build/autocomplete/autocompleter-ui.native.js.map +1 -1
- package/build/autocomplete/index.js +31 -33
- package/build/autocomplete/index.js.map +1 -1
- package/build/base-control/hooks.js +1 -1
- package/build/base-control/hooks.js.map +1 -1
- package/build/border-box-control/utils.js +1 -1
- package/build/border-box-control/utils.js.map +1 -1
- package/build/box-control/all-input-control.js +2 -2
- package/build/box-control/all-input-control.js.map +1 -1
- package/build/box-control/axial-input-controls.js +1 -1
- package/build/box-control/axial-input-controls.js.map +1 -1
- package/build/box-control/icon.js.map +1 -1
- package/build/box-control/index.js +32 -3
- package/build/box-control/index.js.map +1 -1
- package/build/box-control/input-controls.js +5 -5
- package/build/box-control/input-controls.js.map +1 -1
- package/build/box-control/linked-button.js.map +1 -1
- package/build/box-control/styles/box-control-icon-styles.js +28 -28
- package/build/box-control/styles/box-control-icon-styles.js.map +1 -1
- package/build/box-control/styles/box-control-styles.js +23 -23
- package/build/box-control/styles/box-control-styles.js.map +1 -1
- package/build/box-control/styles/box-control-visualizer-styles.js +19 -19
- package/build/box-control/styles/box-control-visualizer-styles.js.map +1 -1
- package/build/box-control/types.js +6 -0
- package/build/box-control/types.js.map +1 -0
- package/build/box-control/unit-control.js.map +1 -1
- package/build/box-control/utils.js +23 -23
- package/build/box-control/utils.js.map +1 -1
- package/build/circular-option-picker/index.js +63 -14
- package/build/circular-option-picker/index.js.map +1 -1
- package/build/circular-option-picker/types.js +6 -0
- package/build/circular-option-picker/types.js.map +1 -0
- package/build/color-palette/index.js +8 -3
- package/build/color-palette/index.js.map +1 -1
- package/build/combobox-control/index.js +68 -12
- package/build/combobox-control/index.js.map +1 -1
- package/build/combobox-control/styles.js +2 -2
- package/build/combobox-control/styles.js.map +1 -1
- package/build/combobox-control/types.js +6 -0
- package/build/combobox-control/types.js.map +1 -0
- package/build/custom-gradient-picker/index.js +0 -1
- package/build/custom-gradient-picker/index.js.map +1 -1
- package/build/date-time/time/index.js +1 -1
- package/build/date-time/time/index.js.map +1 -1
- package/build/date-time/utils.js +1 -1
- package/build/date-time/utils.js.map +1 -1
- package/build/draggable/index.js +2 -2
- package/build/draggable/index.js.map +1 -1
- package/build/focal-point-picker/utils.js +3 -3
- package/build/focal-point-picker/utils.js.map +1 -1
- package/build/font-size-picker/utils.js +2 -2
- package/build/font-size-picker/utils.js.map +1 -1
- package/build/gradient-picker/index.js +9 -4
- package/build/gradient-picker/index.js.map +1 -1
- package/build/higher-order/with-constrained-tabbing/index.js +9 -0
- package/build/higher-order/with-constrained-tabbing/index.js.map +1 -1
- package/build/input-control/reducer/reducer.js +5 -5
- package/build/input-control/reducer/reducer.js.map +1 -1
- package/build/input-control/utils.js +1 -1
- package/build/input-control/utils.js.map +1 -1
- package/build/menu-items-choice/index.js +40 -3
- package/build/menu-items-choice/index.js.map +1 -1
- package/build/menu-items-choice/types.js +6 -0
- package/build/menu-items-choice/types.js.map +1 -0
- package/build/mobile/global-styles-context/utils.native.js +2 -1
- package/build/mobile/global-styles-context/utils.native.js.map +1 -1
- package/build/modal/index.js +41 -3
- package/build/modal/index.js.map +1 -1
- package/build/palette-edit/index.js +4 -1
- package/build/palette-edit/index.js.map +1 -1
- package/build/panel/header.js +9 -0
- package/build/panel/header.js.map +1 -1
- package/build/panel/index.js +21 -3
- package/build/panel/index.js.map +1 -1
- package/build/panel/row.js +10 -4
- package/build/panel/row.js.map +1 -1
- package/build/panel/types.js +6 -0
- package/build/panel/types.js.map +1 -0
- package/build/popover/index.js +15 -3
- package/build/popover/index.js.map +1 -1
- package/build/popover/overlay-middlewares.js +46 -0
- package/build/popover/overlay-middlewares.js.map +1 -0
- package/build/popover/utils.js +45 -6
- package/build/popover/utils.js.map +1 -1
- package/build/query-controls/terms.js +1 -1
- package/build/query-controls/terms.js.map +1 -1
- package/build/range-control/utils.js +4 -4
- package/build/range-control/utils.js.map +1 -1
- package/build/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js +12 -12
- package/build/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js.map +1 -1
- package/build/resizable-box/resize-tooltip/utils.js +14 -14
- package/build/resizable-box/resize-tooltip/utils.js.map +1 -1
- package/build/snackbar/index.js +2 -2
- package/build/snackbar/index.js.map +1 -1
- package/build/toolbar/toolbar/index.js +25 -14
- package/build/toolbar/toolbar/index.js.map +1 -1
- package/build/toolbar/toolbar/toolbar-container.js +5 -4
- package/build/toolbar/toolbar/toolbar-container.js.map +1 -1
- package/build/toolbar/toolbar/types.js +6 -0
- package/build/toolbar/toolbar/types.js.map +1 -0
- package/build/toolbar/toolbar-button/index.js +2 -0
- package/build/toolbar/toolbar-button/index.js.map +1 -1
- package/build/toolbar/toolbar-button/toolbar-button-container.js +1 -0
- package/build/toolbar/toolbar-button/toolbar-button-container.js.map +1 -1
- package/build/toolbar/toolbar-context/index.js +2 -0
- package/build/toolbar/toolbar-context/index.js.map +1 -1
- package/build/toolbar/toolbar-dropdown-menu/index.js +2 -0
- package/build/toolbar/toolbar-dropdown-menu/index.js.map +1 -1
- package/build/toolbar/toolbar-group/index.js +2 -0
- package/build/toolbar/toolbar-group/index.js.map +1 -1
- package/build/toolbar/toolbar-group/toolbar-group-collapsed.js +2 -0
- package/build/toolbar/toolbar-group/toolbar-group-collapsed.js.map +1 -1
- package/build/toolbar/toolbar-group/toolbar-group-container.js +1 -0
- package/build/toolbar/toolbar-group/toolbar-group-container.js.map +1 -1
- package/build/toolbar/toolbar-item/index.js +2 -0
- package/build/toolbar/toolbar-item/index.js.map +1 -1
- package/build/tools-panel/context.js +2 -0
- package/build/tools-panel/context.js.map +1 -1
- package/build/tools-panel/tools-panel/component.js +61 -5
- package/build/tools-panel/tools-panel/component.js.map +1 -1
- package/build/tools-panel/tools-panel/hook.js +22 -14
- package/build/tools-panel/tools-panel/hook.js.map +1 -1
- package/build/tools-panel/tools-panel-header/component.js +2 -1
- package/build/tools-panel/tools-panel-header/component.js.map +1 -1
- package/build/tools-panel/tools-panel-header/hook.js +2 -0
- package/build/tools-panel/tools-panel-header/hook.js.map +1 -1
- package/build/tools-panel/tools-panel-item/component.js +5 -4
- package/build/tools-panel/tools-panel-item/component.js.map +1 -1
- package/build/tools-panel/tools-panel-item/hook.js +18 -4
- package/build/tools-panel/tools-panel-item/hook.js.map +1 -1
- package/build/tree-grid/cell.js +15 -4
- package/build/tree-grid/cell.js.map +1 -1
- package/build/tree-grid/index.js +81 -19
- package/build/tree-grid/index.js.map +1 -1
- package/build/tree-grid/item.js +14 -3
- package/build/tree-grid/item.js.map +1 -1
- package/build/tree-grid/roving-tab-index-context.js +1 -1
- package/build/tree-grid/roving-tab-index-context.js.map +1 -1
- package/build/tree-grid/roving-tab-index-item.js +13 -6
- package/build/tree-grid/roving-tab-index-item.js.map +1 -1
- package/build/tree-grid/roving-tab-index.js +0 -3
- package/build/tree-grid/roving-tab-index.js.map +1 -1
- package/build/tree-grid/row.js +20 -18
- package/build/tree-grid/row.js.map +1 -1
- package/build/tree-grid/types.js +6 -0
- package/build/tree-grid/types.js.map +1 -0
- package/build/ui/context/context-connect.js +7 -7
- package/build/ui/context/context-connect.js.map +1 -1
- package/build/ui/context/context-system-provider.js +8 -4
- package/build/ui/context/context-system-provider.js.map +1 -1
- package/build/ui/context/get-styled-class-name-from-key.js +1 -1
- package/build/ui/context/get-styled-class-name-from-key.js.map +1 -1
- package/build/ui/utils/get-valid-children.js +1 -1
- package/build/ui/utils/get-valid-children.js.map +1 -1
- package/build/ui/utils/space.js +1 -1
- package/build/ui/utils/space.js.map +1 -1
- package/build/unit-control/index.js +2 -2
- package/build/unit-control/index.js.map +1 -1
- package/build/unit-control/utils.js +20 -20
- package/build/unit-control/utils.js.map +1 -1
- package/build/utils/events.js +4 -4
- package/build/utils/events.js.map +1 -1
- package/build/utils/hooks/use-controlled-state.js +2 -2
- package/build/utils/hooks/use-controlled-state.js.map +1 -1
- package/build/utils/hooks/use-controlled-value.js +4 -4
- package/build/utils/hooks/use-controlled-value.js.map +1 -1
- package/build/utils/hooks/use-latest-ref.js +1 -1
- package/build/utils/hooks/use-latest-ref.js.map +1 -1
- package/build/utils/unit-values.js +3 -3
- package/build/utils/unit-values.js.map +1 -1
- package/build-module/alignment-matrix-control/utils.js +4 -4
- package/build-module/alignment-matrix-control/utils.js.map +1 -1
- package/build-module/angle-picker-control/angle-circle.js +37 -29
- package/build-module/angle-picker-control/angle-circle.js.map +1 -1
- package/build-module/angle-picker-control/index.js +42 -8
- package/build-module/angle-picker-control/index.js.map +1 -1
- package/build-module/angle-picker-control/styles/angle-picker-control-styles.js +13 -13
- package/build-module/angle-picker-control/styles/angle-picker-control-styles.js.map +1 -1
- package/build-module/autocomplete/autocompleter-ui.js +40 -19
- package/build-module/autocomplete/autocompleter-ui.js.map +1 -1
- package/build-module/autocomplete/autocompleter-ui.native.js +1 -0
- package/build-module/autocomplete/autocompleter-ui.native.js.map +1 -1
- package/build-module/autocomplete/index.js +30 -32
- package/build-module/autocomplete/index.js.map +1 -1
- package/build-module/base-control/hooks.js +1 -1
- package/build-module/base-control/hooks.js.map +1 -1
- package/build-module/border-box-control/utils.js +1 -1
- package/build-module/border-box-control/utils.js.map +1 -1
- package/build-module/box-control/all-input-control.js +2 -2
- package/build-module/box-control/all-input-control.js.map +1 -1
- package/build-module/box-control/axial-input-controls.js +1 -1
- package/build-module/box-control/axial-input-controls.js.map +1 -1
- package/build-module/box-control/icon.js.map +1 -1
- package/build-module/box-control/index.js +31 -3
- package/build-module/box-control/index.js.map +1 -1
- package/build-module/box-control/input-controls.js +5 -5
- package/build-module/box-control/input-controls.js.map +1 -1
- package/build-module/box-control/linked-button.js.map +1 -1
- package/build-module/box-control/styles/box-control-icon-styles.js +28 -28
- package/build-module/box-control/styles/box-control-icon-styles.js.map +1 -1
- package/build-module/box-control/styles/box-control-styles.js +23 -23
- package/build-module/box-control/styles/box-control-styles.js.map +1 -1
- package/build-module/box-control/styles/box-control-visualizer-styles.js +19 -19
- package/build-module/box-control/styles/box-control-visualizer-styles.js.map +1 -1
- package/build-module/box-control/types.js +2 -0
- package/build-module/box-control/unit-control.js.map +1 -1
- package/build-module/box-control/utils.js +23 -23
- package/build-module/box-control/utils.js.map +1 -1
- package/build-module/circular-option-picker/index.js +59 -16
- package/build-module/circular-option-picker/index.js.map +1 -1
- package/build-module/circular-option-picker/types.js +2 -0
- package/build-module/color-palette/index.js +8 -3
- package/build-module/color-palette/index.js.map +1 -1
- package/build-module/combobox-control/index.js +68 -12
- package/build-module/combobox-control/index.js.map +1 -1
- package/build-module/combobox-control/styles.js +2 -2
- package/build-module/combobox-control/styles.js.map +1 -1
- package/build-module/combobox-control/types.js +2 -0
- package/build-module/custom-gradient-picker/index.js +0 -1
- package/build-module/custom-gradient-picker/index.js.map +1 -1
- package/build-module/date-time/time/index.js +1 -1
- package/build-module/date-time/time/index.js.map +1 -1
- package/build-module/date-time/utils.js +1 -1
- package/build-module/date-time/utils.js.map +1 -1
- package/build-module/draggable/index.js +2 -2
- package/build-module/draggable/index.js.map +1 -1
- package/build-module/focal-point-picker/utils.js +3 -3
- package/build-module/focal-point-picker/utils.js.map +1 -1
- package/build-module/font-size-picker/utils.js +2 -2
- package/build-module/font-size-picker/utils.js.map +1 -1
- package/build-module/gradient-picker/index.js +9 -4
- package/build-module/gradient-picker/index.js.map +1 -1
- package/build-module/higher-order/with-constrained-tabbing/index.js +9 -0
- package/build-module/higher-order/with-constrained-tabbing/index.js.map +1 -1
- package/build-module/input-control/reducer/reducer.js +5 -5
- package/build-module/input-control/reducer/reducer.js.map +1 -1
- package/build-module/input-control/utils.js +1 -1
- package/build-module/input-control/utils.js.map +1 -1
- package/build-module/menu-items-choice/index.js +40 -4
- package/build-module/menu-items-choice/index.js.map +1 -1
- package/build-module/menu-items-choice/types.js +2 -0
- package/build-module/menu-items-choice/types.js.map +1 -0
- package/build-module/mobile/global-styles-context/utils.native.js +2 -1
- package/build-module/mobile/global-styles-context/utils.native.js.map +1 -1
- package/build-module/modal/index.js +41 -4
- package/build-module/modal/index.js.map +1 -1
- package/build-module/palette-edit/index.js +4 -1
- package/build-module/palette-edit/index.js.map +1 -1
- package/build-module/panel/header.js +9 -0
- package/build-module/panel/header.js.map +1 -1
- package/build-module/panel/index.js +20 -2
- package/build-module/panel/index.js.map +1 -1
- package/build-module/panel/row.js +9 -3
- package/build-module/panel/row.js.map +1 -1
- package/build-module/panel/types.js +2 -0
- package/build-module/panel/types.js.map +1 -0
- package/build-module/popover/index.js +14 -4
- package/build-module/popover/index.js.map +1 -1
- package/build-module/popover/overlay-middlewares.js +38 -0
- package/build-module/popover/overlay-middlewares.js.map +1 -0
- package/build-module/popover/utils.js +41 -5
- package/build-module/popover/utils.js.map +1 -1
- package/build-module/query-controls/terms.js +1 -1
- package/build-module/query-controls/terms.js.map +1 -1
- package/build-module/range-control/utils.js +4 -4
- package/build-module/range-control/utils.js.map +1 -1
- package/build-module/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js +12 -12
- package/build-module/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js.map +1 -1
- package/build-module/resizable-box/resize-tooltip/utils.js +14 -14
- package/build-module/resizable-box/resize-tooltip/utils.js.map +1 -1
- package/build-module/snackbar/index.js +2 -2
- package/build-module/snackbar/index.js.map +1 -1
- package/build-module/toolbar/toolbar/index.js +25 -13
- package/build-module/toolbar/toolbar/index.js.map +1 -1
- package/build-module/toolbar/toolbar/toolbar-container.js +4 -3
- package/build-module/toolbar/toolbar/toolbar-container.js.map +1 -1
- package/build-module/toolbar/toolbar/types.js +2 -0
- package/build-module/toolbar/toolbar/types.js.map +1 -0
- package/build-module/toolbar/toolbar-button/index.js +1 -0
- package/build-module/toolbar/toolbar-button/index.js.map +1 -1
- package/build-module/toolbar/toolbar-button/toolbar-button-container.js +1 -0
- package/build-module/toolbar/toolbar-button/toolbar-button-container.js.map +1 -1
- package/build-module/toolbar/toolbar-context/index.js +2 -0
- package/build-module/toolbar/toolbar-context/index.js.map +1 -1
- package/build-module/toolbar/toolbar-dropdown-menu/index.js +1 -0
- package/build-module/toolbar/toolbar-dropdown-menu/index.js.map +1 -1
- package/build-module/toolbar/toolbar-group/index.js +1 -0
- package/build-module/toolbar/toolbar-group/index.js.map +1 -1
- package/build-module/toolbar/toolbar-group/toolbar-group-collapsed.js +1 -0
- package/build-module/toolbar/toolbar-group/toolbar-group-collapsed.js.map +1 -1
- package/build-module/toolbar/toolbar-group/toolbar-group-container.js +1 -0
- package/build-module/toolbar/toolbar-group/toolbar-group-container.js.map +1 -1
- package/build-module/toolbar/toolbar-item/index.js +1 -0
- package/build-module/toolbar/toolbar-item/index.js.map +1 -1
- package/build-module/tools-panel/context.js +2 -0
- package/build-module/tools-panel/context.js.map +1 -1
- package/build-module/tools-panel/tools-panel/component.js +59 -4
- package/build-module/tools-panel/tools-panel/component.js.map +1 -1
- package/build-module/tools-panel/tools-panel/hook.js +22 -14
- package/build-module/tools-panel/tools-panel/hook.js.map +1 -1
- package/build-module/tools-panel/tools-panel-header/component.js +2 -1
- package/build-module/tools-panel/tools-panel-header/component.js.map +1 -1
- package/build-module/tools-panel/tools-panel-header/hook.js +2 -0
- package/build-module/tools-panel/tools-panel-header/hook.js.map +1 -1
- package/build-module/tools-panel/tools-panel-item/component.js +3 -3
- package/build-module/tools-panel/tools-panel-item/component.js.map +1 -1
- package/build-module/tools-panel/tools-panel-item/hook.js +19 -4
- package/build-module/tools-panel/tools-panel-item/hook.js.map +1 -1
- package/build-module/tree-grid/cell.js +16 -4
- package/build-module/tree-grid/cell.js.map +1 -1
- package/build-module/tree-grid/index.js +81 -21
- package/build-module/tree-grid/index.js.map +1 -1
- package/build-module/tree-grid/item.js +14 -2
- package/build-module/tree-grid/item.js.map +1 -1
- package/build-module/tree-grid/roving-tab-index-context.js +1 -1
- package/build-module/tree-grid/roving-tab-index-context.js.map +1 -1
- package/build-module/tree-grid/roving-tab-index-item.js +11 -4
- package/build-module/tree-grid/roving-tab-index-item.js.map +1 -1
- package/build-module/tree-grid/roving-tab-index.js +0 -3
- package/build-module/tree-grid/roving-tab-index.js.map +1 -1
- package/build-module/tree-grid/row.js +22 -17
- package/build-module/tree-grid/row.js.map +1 -1
- package/build-module/tree-grid/types.js +2 -0
- package/build-module/tree-grid/types.js.map +1 -0
- package/build-module/ui/context/context-connect.js +7 -7
- package/build-module/ui/context/context-connect.js.map +1 -1
- package/build-module/ui/context/context-system-provider.js +7 -4
- package/build-module/ui/context/context-system-provider.js.map +1 -1
- package/build-module/ui/context/get-styled-class-name-from-key.js +1 -1
- package/build-module/ui/context/get-styled-class-name-from-key.js.map +1 -1
- package/build-module/ui/utils/get-valid-children.js +1 -1
- package/build-module/ui/utils/get-valid-children.js.map +1 -1
- package/build-module/ui/utils/space.js +1 -1
- package/build-module/ui/utils/space.js.map +1 -1
- package/build-module/unit-control/index.js +2 -2
- package/build-module/unit-control/index.js.map +1 -1
- package/build-module/unit-control/utils.js +20 -20
- package/build-module/unit-control/utils.js.map +1 -1
- package/build-module/utils/events.js +4 -4
- package/build-module/utils/events.js.map +1 -1
- package/build-module/utils/hooks/use-controlled-state.js +2 -2
- package/build-module/utils/hooks/use-controlled-state.js.map +1 -1
- package/build-module/utils/hooks/use-controlled-value.js +4 -4
- package/build-module/utils/hooks/use-controlled-value.js.map +1 -1
- package/build-module/utils/hooks/use-latest-ref.js +1 -1
- package/build-module/utils/hooks/use-latest-ref.js.map +1 -1
- package/build-module/utils/unit-values.js +3 -3
- package/build-module/utils/unit-values.js.map +1 -1
- package/build-style/style-rtl.css +5 -0
- package/build-style/style.css +5 -0
- package/build-types/alignment-matrix-control/utils.d.ts +4 -4
- package/build-types/angle-picker-control/angle-circle.d.ts +6 -0
- package/build-types/angle-picker-control/angle-circle.d.ts.map +1 -0
- package/build-types/angle-picker-control/index.d.ts +29 -0
- package/build-types/angle-picker-control/index.d.ts.map +1 -0
- package/build-types/angle-picker-control/stories/index.d.ts +15 -0
- package/build-types/angle-picker-control/stories/index.d.ts.map +1 -0
- package/build-types/angle-picker-control/styles/angle-picker-control-styles.d.ts +20 -0
- package/build-types/angle-picker-control/styles/angle-picker-control-styles.d.ts.map +1 -0
- package/build-types/angle-picker-control/types.d.ts +26 -0
- package/build-types/angle-picker-control/types.d.ts.map +1 -0
- package/build-types/base-control/hooks.d.ts +1 -1
- package/build-types/border-box-control/border-box-control/component.d.ts +1 -1
- package/build-types/border-box-control/border-box-control/hook.d.ts +1 -1
- package/build-types/border-box-control/border-box-control-split-controls/component.d.ts +1 -1
- package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts +1 -1
- package/build-types/border-box-control/stories/index.d.ts +1 -1
- package/build-types/border-box-control/test/index.d.ts.map +1 -0
- package/build-types/border-box-control/test/utils.d.ts +2 -0
- package/build-types/border-box-control/test/utils.d.ts.map +1 -0
- package/build-types/box-control/all-input-control.d.ts +4 -0
- package/build-types/box-control/all-input-control.d.ts.map +1 -0
- package/build-types/box-control/axial-input-controls.d.ts +4 -0
- package/build-types/box-control/axial-input-controls.d.ts.map +1 -0
- package/build-types/box-control/icon.d.ts +8 -0
- package/build-types/box-control/icon.d.ts.map +1 -0
- package/build-types/box-control/index.d.ts +31 -0
- package/build-types/box-control/index.d.ts.map +1 -0
- package/build-types/box-control/input-controls.d.ts +4 -0
- package/build-types/box-control/input-controls.d.ts.map +1 -0
- package/build-types/box-control/linked-button.d.ts +9 -0
- package/build-types/box-control/linked-button.d.ts.map +1 -0
- package/build-types/box-control/styles/box-control-icon-styles.d.ts +42 -0
- package/build-types/box-control/styles/box-control-icon-styles.d.ts.map +1 -0
- package/build-types/box-control/styles/box-control-styles.d.ts +42 -0
- package/build-types/box-control/styles/box-control-styles.d.ts.map +1 -0
- package/build-types/box-control/styles/box-control-visualizer-styles.d.ts +46 -0
- package/build-types/box-control/styles/box-control-visualizer-styles.d.ts.map +1 -0
- package/build-types/box-control/test/index.d.ts +2 -0
- package/build-types/box-control/test/index.d.ts.map +1 -0
- package/build-types/box-control/types.d.ts +99 -0
- package/build-types/box-control/types.d.ts.map +1 -0
- package/build-types/box-control/unit-control.d.ts +4 -0
- package/build-types/box-control/unit-control.d.ts.map +1 -0
- package/build-types/box-control/utils.d.ts +84 -0
- package/build-types/box-control/utils.d.ts.map +1 -0
- package/build-types/circular-option-picker/index.d.ts +56 -7
- package/build-types/circular-option-picker/index.d.ts.map +1 -1
- package/build-types/circular-option-picker/stories/index.d.ts +14 -0
- package/build-types/circular-option-picker/stories/index.d.ts.map +1 -0
- package/build-types/circular-option-picker/types.d.ts +49 -0
- package/build-types/circular-option-picker/types.d.ts.map +1 -0
- package/build-types/color-palette/index.d.ts +3 -1
- package/build-types/color-palette/index.d.ts.map +1 -1
- package/build-types/color-palette/stories/index.d.ts +6 -2
- package/build-types/color-palette/stories/index.d.ts.map +1 -1
- package/build-types/color-palette/types.d.ts +8 -0
- package/build-types/color-palette/types.d.ts.map +1 -1
- package/build-types/combobox-control/index.d.ts +51 -0
- package/build-types/combobox-control/index.d.ts.map +1 -0
- package/build-types/combobox-control/stories/index.d.ts +18 -0
- package/build-types/combobox-control/stories/index.d.ts.map +1 -0
- package/build-types/combobox-control/styles.d.ts +8 -0
- package/build-types/combobox-control/styles.d.ts.map +1 -0
- package/build-types/combobox-control/test/index.d.ts +2 -0
- package/build-types/combobox-control/test/index.d.ts.map +1 -0
- package/build-types/combobox-control/types.d.ts +62 -0
- package/build-types/combobox-control/types.d.ts.map +1 -0
- package/build-types/date-time/utils.d.ts +1 -1
- package/build-types/focal-point-picker/styles/focal-point-picker-style.d.ts +1 -1
- package/build-types/focal-point-picker/utils.d.ts +3 -3
- package/build-types/font-size-picker/utils.d.ts +2 -2
- package/build-types/h-stack/stories/e2e/index.d.ts +9 -0
- package/build-types/h-stack/stories/e2e/index.d.ts.map +1 -0
- package/build-types/higher-order/with-constrained-tabbing/index.d.ts +10 -1
- package/build-types/higher-order/with-constrained-tabbing/index.d.ts.map +1 -1
- package/build-types/input-control/reducer/reducer.d.ts +3 -3
- package/build-types/input-control/utils.d.ts +1 -1
- package/build-types/menu-items-choice/index.d.ts +38 -0
- package/build-types/menu-items-choice/index.d.ts.map +1 -0
- package/build-types/menu-items-choice/stories/index.d.ts +12 -0
- package/build-types/menu-items-choice/stories/index.d.ts.map +1 -0
- package/build-types/menu-items-choice/types.d.ts +53 -0
- package/build-types/menu-items-choice/types.d.ts.map +1 -0
- package/build-types/modal/index.d.ts.map +1 -1
- package/build-types/modal/types.d.ts +2 -0
- package/build-types/modal/types.d.ts.map +1 -1
- package/build-types/panel/header.d.ts +13 -0
- package/build-types/panel/header.d.ts.map +1 -0
- package/build-types/panel/index.d.ts +21 -0
- package/build-types/panel/index.d.ts.map +1 -0
- package/build-types/panel/row.d.ts +12 -0
- package/build-types/panel/row.d.ts.map +1 -0
- package/build-types/panel/test/header.d.ts +2 -0
- package/build-types/panel/test/header.d.ts.map +1 -0
- package/build-types/panel/test/index.d.ts +2 -0
- package/build-types/{base-field → panel}/test/index.d.ts.map +1 -1
- package/build-types/panel/test/row.d.ts +2 -0
- package/build-types/panel/test/row.d.ts.map +1 -0
- package/build-types/panel/types.d.ts +38 -0
- package/build-types/panel/types.d.ts.map +1 -0
- package/build-types/popover/index.d.ts.map +1 -1
- package/build-types/popover/overlay-middlewares.d.ts +9 -0
- package/build-types/popover/overlay-middlewares.d.ts.map +1 -0
- package/build-types/popover/stories/index.d.ts.map +1 -1
- package/build-types/popover/types.d.ts +3 -2
- package/build-types/popover/types.d.ts.map +1 -1
- package/build-types/popover/utils.d.ts +12 -4
- package/build-types/popover/utils.d.ts.map +1 -1
- package/build-types/query-controls/terms.d.ts +1 -1
- package/build-types/range-control/utils.d.ts +4 -4
- package/build-types/resizable-box/resize-tooltip/styles/resize-tooltip.styles.d.ts +5 -4
- package/build-types/resizable-box/resize-tooltip/styles/resize-tooltip.styles.d.ts.map +1 -1
- package/build-types/resizable-box/resize-tooltip/utils.d.ts +6 -6
- package/build-types/tab-panel/stories/index.d.ts +1 -0
- package/build-types/tab-panel/stories/index.d.ts.map +1 -1
- package/build-types/toolbar/index.d.ts +7 -0
- package/build-types/toolbar/index.d.ts.map +1 -0
- package/build-types/toolbar/stories/index.d.ts +14 -0
- package/build-types/toolbar/stories/index.d.ts.map +1 -0
- package/build-types/toolbar/test/index.d.ts +2 -0
- package/build-types/toolbar/test/index.d.ts.map +1 -0
- package/build-types/toolbar/test/toolbar-group.d.ts +2 -0
- package/build-types/toolbar/test/toolbar-group.d.ts.map +1 -0
- package/build-types/toolbar/toolbar/index.d.ts +25 -0
- package/build-types/toolbar/toolbar/index.d.ts.map +1 -0
- package/build-types/toolbar/toolbar/toolbar-container.d.ts +5 -0
- package/build-types/toolbar/toolbar/toolbar-container.d.ts.map +1 -0
- package/build-types/toolbar/toolbar/types.d.ts +15 -0
- package/build-types/toolbar/toolbar/types.d.ts.map +1 -0
- package/build-types/toolbar/toolbar-button/index.d.ts +12 -0
- package/build-types/toolbar/toolbar-button/index.d.ts.map +1 -0
- package/build-types/toolbar/toolbar-button/toolbar-button-container.d.ts +3 -0
- package/build-types/toolbar/toolbar-button/toolbar-button-container.d.ts.map +1 -0
- package/build-types/toolbar/toolbar-context/index.d.ts +3 -0
- package/build-types/toolbar/toolbar-context/index.d.ts.map +1 -0
- package/build-types/toolbar/toolbar-dropdown-menu/index.d.ts +3 -0
- package/build-types/toolbar/toolbar-dropdown-menu/index.d.ts.map +1 -0
- package/build-types/toolbar/toolbar-group/index.d.ts +39 -0
- package/build-types/toolbar/toolbar-group/index.d.ts.map +1 -0
- package/build-types/toolbar/toolbar-group/toolbar-group-collapsed.d.ts +7 -0
- package/build-types/toolbar/toolbar-group/toolbar-group-collapsed.d.ts.map +1 -0
- package/build-types/toolbar/toolbar-group/toolbar-group-container.d.ts +7 -0
- package/build-types/toolbar/toolbar-group/toolbar-group-container.d.ts.map +1 -0
- package/build-types/toolbar/toolbar-item/index.d.ts +7 -0
- package/build-types/toolbar/toolbar-item/index.d.ts.map +1 -0
- package/build-types/tools-panel/context.d.ts.map +1 -1
- package/build-types/tools-panel/stories/index.d.ts +17 -0
- package/build-types/tools-panel/stories/index.d.ts.map +1 -0
- package/build-types/tools-panel/test/index.d.ts +2 -0
- package/build-types/tools-panel/test/index.d.ts.map +1 -0
- package/build-types/tools-panel/tools-panel/component.d.ts +54 -2
- package/build-types/tools-panel/tools-panel/component.d.ts.map +1 -1
- package/build-types/tools-panel/tools-panel/hook.d.ts +5 -2
- package/build-types/tools-panel/tools-panel/hook.d.ts.map +1 -1
- package/build-types/tools-panel/tools-panel-header/component.d.ts.map +1 -1
- package/build-types/tools-panel/tools-panel-header/hook.d.ts +2 -1
- package/build-types/tools-panel/tools-panel-header/hook.d.ts.map +1 -1
- package/build-types/tools-panel/tools-panel-item/component.d.ts +3 -2
- package/build-types/tools-panel/tools-panel-item/component.d.ts.map +1 -1
- package/build-types/tools-panel/tools-panel-item/hook.d.ts.map +1 -1
- package/build-types/tools-panel/types.d.ts +49 -20
- package/build-types/tools-panel/types.d.ts.map +1 -1
- package/build-types/tree-grid/cell.d.ts +13 -0
- package/build-types/tree-grid/cell.d.ts.map +1 -0
- package/build-types/tree-grid/index.d.ts +70 -0
- package/build-types/tree-grid/index.d.ts.map +1 -0
- package/build-types/tree-grid/item.d.ts +12 -0
- package/build-types/tree-grid/item.d.ts.map +1 -0
- package/build-types/tree-grid/roving-tab-index-context.d.ts +10 -0
- package/build-types/tree-grid/roving-tab-index-context.d.ts.map +1 -0
- package/build-types/tree-grid/roving-tab-index-item.d.ts +5 -0
- package/build-types/tree-grid/roving-tab-index-item.d.ts.map +1 -0
- package/build-types/tree-grid/roving-tab-index.d.ts +10 -0
- package/build-types/tree-grid/roving-tab-index.d.ts.map +1 -0
- package/build-types/tree-grid/row.d.ts +12 -0
- package/build-types/tree-grid/row.d.ts.map +1 -0
- package/build-types/tree-grid/stories/index.d.ts +13 -0
- package/build-types/tree-grid/stories/index.d.ts.map +1 -0
- package/build-types/tree-grid/test/cell.d.ts +2 -0
- package/build-types/tree-grid/test/cell.d.ts.map +1 -0
- package/build-types/tree-grid/test/index.d.ts +2 -0
- package/build-types/tree-grid/test/index.d.ts.map +1 -0
- package/build-types/tree-grid/test/roving-tab-index-item.d.ts +2 -0
- package/build-types/tree-grid/test/roving-tab-index-item.d.ts.map +1 -0
- package/build-types/tree-grid/test/roving-tab-index.d.ts +2 -0
- package/build-types/tree-grid/test/roving-tab-index.d.ts.map +1 -0
- package/build-types/tree-grid/test/row.d.ts +2 -0
- package/build-types/tree-grid/test/row.d.ts.map +1 -0
- package/build-types/tree-grid/types.d.ts +109 -0
- package/build-types/tree-grid/types.d.ts.map +1 -0
- package/build-types/ui/context/context-connect.d.ts +7 -7
- package/build-types/ui/context/context-system-provider.d.ts.map +1 -1
- package/build-types/ui/context/get-styled-class-name-from-key.d.ts +1 -1
- package/build-types/ui/utils/get-valid-children.d.ts +1 -1
- package/build-types/ui/utils/space.d.ts +1 -1
- package/build-types/unit-control/index.d.ts +1 -1
- package/build-types/unit-control/utils.d.ts +20 -20
- package/build-types/utils/events.d.ts +2 -2
- package/build-types/utils/hooks/use-controlled-state.d.ts +1 -1
- package/build-types/utils/hooks/use-controlled-state.d.ts.map +1 -1
- package/build-types/utils/hooks/use-controlled-value.d.ts +4 -4
- package/build-types/utils/hooks/use-latest-ref.d.ts +1 -1
- package/build-types/utils/unit-values.d.ts +3 -3
- package/build-types/v-stack/stories/e2e/index.d.ts +9 -0
- package/build-types/v-stack/stories/e2e/index.d.ts.map +1 -0
- package/package.json +21 -19
- package/src/alignment-matrix-control/utils.tsx +4 -4
- package/src/angle-picker-control/README.md +17 -14
- package/src/angle-picker-control/{angle-circle.js → angle-circle.tsx} +44 -12
- package/src/angle-picker-control/{index.js → index.tsx} +54 -10
- package/src/angle-picker-control/stories/index.tsx +57 -0
- package/src/angle-picker-control/styles/{angle-picker-control-styles.js → angle-picker-control-styles.tsx} +5 -1
- package/src/angle-picker-control/types.ts +29 -0
- package/src/autocomplete/autocompleter-ui.js +72 -34
- package/src/autocomplete/autocompleter-ui.native.js +1 -0
- package/src/autocomplete/index.js +36 -36
- package/src/base-control/hooks.ts +1 -1
- package/src/border-box-control/test/{index.js → index.tsx} +76 -102
- package/src/border-box-control/test/{utils.js → utils.ts} +20 -0
- package/src/border-box-control/utils.ts +1 -1
- package/src/box-control/README.md +17 -26
- package/src/box-control/{all-input-control.js → all-input-control.tsx} +10 -6
- package/src/box-control/{axial-input-controls.js → axial-input-controls.tsx} +29 -24
- package/src/box-control/{icon.js → icon.tsx} +9 -4
- package/src/box-control/{index.js → index.tsx} +43 -8
- package/src/box-control/{input-controls.js → input-controls.tsx} +26 -16
- package/src/box-control/{linked-button.js → linked-button.tsx} +4 -1
- package/src/box-control/styles/{box-control-icon-styles.js → box-control-icon-styles.ts} +1 -1
- package/src/box-control/styles/{box-control-styles.js → box-control-styles.ts} +10 -2
- package/src/box-control/styles/{box-control-visualizer-styles.js → box-control-visualizer-styles.ts} +6 -2
- package/src/box-control/test/{index.js → index.tsx} +12 -9
- package/src/box-control/types.ts +121 -0
- package/src/box-control/{unit-control.js → unit-control.tsx} +9 -2
- package/src/box-control/{utils.js → utils.ts} +47 -38
- package/src/button/test/index.tsx +38 -30
- package/src/circular-option-picker/README.md +141 -0
- package/src/circular-option-picker/{index.js → index.tsx} +74 -14
- package/src/circular-option-picker/stories/index.tsx +134 -0
- package/src/circular-option-picker/types.ts +69 -0
- package/src/color-palette/README.md +7 -0
- package/src/color-palette/index.tsx +6 -1
- package/src/color-palette/test/__snapshots__/index.tsx.snap +1 -1
- package/src/color-palette/types.ts +8 -0
- package/src/combobox-control/README.md +8 -15
- package/src/combobox-control/{index.js → index.tsx} +91 -19
- package/src/combobox-control/stories/index.tsx +114 -0
- package/src/combobox-control/styles.ts +4 -1
- package/src/combobox-control/test/{index.js → index.tsx} +9 -7
- package/src/combobox-control/types.ts +69 -0
- package/src/custom-gradient-picker/index.js +0 -1
- package/src/custom-select-control/stories/index.js +1 -1
- package/src/date-time/time/index.tsx +1 -1
- package/src/date-time/utils.ts +1 -1
- package/src/draggable/index.tsx +2 -2
- package/src/dropdown-menu/test/index.js +3 -11
- package/src/focal-point-picker/utils.ts +3 -3
- package/src/font-size-picker/utils.ts +2 -2
- package/src/gradient-picker/README.md +8 -0
- package/src/gradient-picker/index.js +6 -1
- package/src/h-stack/stories/e2e/index.tsx +36 -0
- package/src/higher-order/with-constrained-tabbing/index.tsx +30 -0
- package/src/input-control/reducer/reducer.ts +5 -5
- package/src/input-control/utils.ts +1 -1
- package/src/menu-items-choice/index.tsx +83 -0
- package/src/menu-items-choice/stories/index.tsx +79 -0
- package/src/menu-items-choice/types.ts +54 -0
- package/src/mobile/global-styles-context/utils.native.js +1 -0
- package/src/modal/index.tsx +45 -1
- package/src/modal/style.scss +8 -0
- package/src/modal/types.ts +2 -0
- package/src/palette-edit/index.js +4 -1
- package/src/panel/README.md +2 -2
- package/src/panel/header.tsx +20 -0
- package/src/panel/index.tsx +48 -0
- package/src/panel/row.tsx +37 -0
- package/src/panel/stories/index.js +22 -0
- package/src/panel/test/{header.js → header.tsx} +1 -1
- package/src/panel/test/{index.js → index.tsx} +6 -4
- package/src/panel/test/{row.js → row.tsx} +4 -2
- package/src/panel/types.ts +38 -0
- package/src/popover/README.md +4 -1
- package/src/popover/index.tsx +17 -1
- package/src/popover/overlay-middlewares.tsx +29 -0
- package/src/popover/stories/index.tsx +7 -1
- package/src/popover/test/index.tsx +29 -21
- package/src/popover/types.ts +4 -2
- package/src/popover/utils.ts +39 -3
- package/src/query-controls/terms.ts +1 -1
- package/src/range-control/utils.ts +4 -4
- package/src/resizable-box/resize-tooltip/utils.ts +14 -14
- package/src/snackbar/index.tsx +2 -2
- package/src/tab-panel/stories/index.tsx +41 -0
- package/src/tab-panel/test/index.tsx +794 -262
- package/src/toolbar/stories/{index.js → index.tsx} +39 -26
- package/src/toolbar/test/{toolbar-group.js → toolbar-group.tsx} +2 -2
- package/src/toolbar/toolbar/README.md +7 -2
- package/src/toolbar/toolbar/{index.js → index.tsx} +33 -12
- package/src/toolbar/toolbar/{toolbar-container.js → toolbar-container.tsx} +9 -2
- package/src/toolbar/toolbar/types.ts +15 -0
- package/src/toolbar/toolbar-button/index.js +2 -0
- package/src/toolbar/toolbar-button/toolbar-button-container.js +2 -0
- package/src/toolbar/toolbar-context/index.js +2 -0
- package/src/toolbar/toolbar-dropdown-menu/index.js +2 -0
- package/src/toolbar/toolbar-group/index.js +2 -0
- package/src/toolbar/toolbar-group/toolbar-group-collapsed.js +2 -0
- package/src/toolbar/toolbar-group/toolbar-group-container.js +2 -0
- package/src/toolbar/toolbar-item/index.js +2 -0
- package/src/tools-panel/context.ts +2 -0
- package/src/tools-panel/stories/{index.js → index.tsx} +196 -95
- package/src/tools-panel/test/{index.js → index.tsx} +177 -67
- package/src/tools-panel/tools-panel/README.md +12 -4
- package/src/tools-panel/tools-panel/component.tsx +57 -3
- package/src/tools-panel/tools-panel/hook.ts +34 -13
- package/src/tools-panel/tools-panel-header/README.md +7 -0
- package/src/tools-panel/tools-panel-header/component.tsx +2 -1
- package/src/tools-panel/tools-panel-header/hook.ts +6 -4
- package/src/tools-panel/tools-panel-item/README.md +6 -4
- package/src/tools-panel/tools-panel-item/component.tsx +4 -4
- package/src/tools-panel/tools-panel-item/hook.ts +22 -4
- package/src/tools-panel/types.ts +51 -20
- package/src/tree-grid/README.md +18 -58
- package/src/tree-grid/cell.tsx +41 -0
- package/src/tree-grid/{index.js → index.tsx} +111 -35
- package/src/tree-grid/item.tsx +32 -0
- package/src/tree-grid/{roving-tab-index-context.js → roving-tab-index-context.ts} +9 -1
- package/src/tree-grid/roving-tab-index-item.tsx +50 -0
- package/src/tree-grid/{roving-tab-index.js → roving-tab-index.tsx} +7 -5
- package/src/tree-grid/row.tsx +47 -0
- package/src/tree-grid/stories/index.tsx +144 -0
- package/src/tree-grid/test/__snapshots__/index.tsx.snap +3 -0
- package/src/tree-grid/test/{cell.js → cell.tsx} +7 -4
- package/src/tree-grid/test/{index.js → index.tsx} +13 -5
- package/src/tree-grid/test/{roving-tab-index-item.js → roving-tab-index-item.tsx} +7 -4
- package/src/tree-grid/test/{row.js → row.tsx} +4 -4
- package/src/tree-grid/types.ts +116 -0
- package/src/ui/context/context-connect.ts +7 -7
- package/src/ui/context/context-system-provider.js +7 -4
- package/src/ui/context/get-styled-class-name-from-key.ts +1 -1
- package/src/ui/utils/get-valid-children.ts +1 -1
- package/src/ui/utils/space.ts +1 -1
- package/src/unit-control/index.tsx +2 -2
- package/src/unit-control/utils.ts +20 -20
- package/src/utils/events.ts +4 -4
- package/src/utils/hooks/use-controlled-state.js +2 -2
- package/src/utils/hooks/use-controlled-value.ts +4 -4
- package/src/utils/hooks/use-latest-ref.ts +1 -1
- package/src/utils/unit-values.ts +3 -3
- package/src/v-stack/stories/e2e/index.tsx +36 -0
- package/tsconfig.json +1 -7
- package/tsconfig.tsbuildinfo +1 -1
- package/build/base-field/hook.js +0 -54
- package/build/base-field/hook.js.map +0 -1
- package/build/base-field/index.js +0 -14
- package/build/base-field/index.js.map +0 -1
- package/build/base-field/styles.js +0 -33
- package/build/base-field/styles.js.map +0 -1
- package/build/resizable-box/styles/resizable-box.styles.js +0 -2
- package/build-module/base-field/hook.js +0 -37
- package/build-module/base-field/hook.js.map +0 -1
- package/build-module/base-field/index.js +0 -2
- package/build-module/base-field/index.js.map +0 -1
- package/build-module/base-field/styles.js +0 -18
- package/build-module/base-field/styles.js.map +0 -1
- package/build-module/resizable-box/styles/resizable-box.styles.js +0 -2
- package/build-types/base-field/hook.d.ts +0 -270
- package/build-types/base-field/hook.d.ts.map +0 -1
- package/build-types/base-field/index.d.ts +0 -2
- package/build-types/base-field/index.d.ts.map +0 -1
- package/build-types/base-field/styles.d.ts +0 -6
- package/build-types/base-field/styles.d.ts.map +0 -1
- package/build-types/base-field/types.d.ts +0 -29
- package/build-types/base-field/types.d.ts.map +0 -1
- package/build-types/resizable-box/styles/resizable-box.styles.d.ts +0 -1
- package/build-types/resizable-box/styles/resizable-box.styles.d.ts.map +0 -1
- package/src/angle-picker-control/stories/index.js +0 -29
- package/src/base-field/README.md +0 -66
- package/src/base-field/hook.ts +0 -51
- package/src/base-field/index.ts +0 -1
- package/src/base-field/styles.ts +0 -86
- package/src/base-field/test/__snapshots__/index.tsx.snap +0 -141
- package/src/base-field/test/index.tsx +0 -84
- package/src/base-field/types.ts +0 -29
- package/src/combobox-control/stories/index.js +0 -339
- package/src/higher-order/with-constrained-tabbing/index.js +0 -22
- package/src/menu-items-choice/index.js +0 -43
- package/src/panel/header.js +0 -10
- package/src/panel/index.js +0 -26
- package/src/panel/row.js +0 -20
- package/src/resizable-box/styles/resizable-box.styles.js +0 -0
- package/src/tools-panel/stories/utils/tools-panel-with-item-group-slot.js +0 -246
- package/src/tree-grid/cell.js +0 -24
- package/src/tree-grid/item.js +0 -20
- package/src/tree-grid/roving-tab-index-item.js +0 -33
- package/src/tree-grid/row.js +0 -31
- package/src/tree-grid/stories/index.js +0 -106
- package/src/tree-grid/test/__snapshots__/index.js.snap +0 -3
- /package/build/{base-field → angle-picker-control}/types.js +0 -0
- /package/build-module/{base-field → angle-picker-control}/types.js +0 -0
- /package/build-module/{base-field → angle-picker-control}/types.js.map +0 -0
- /package/{build/base-field → build-module/box-control}/types.js.map +0 -0
- /package/build-module/{resizable-box/styles/resizable-box.styles.js.map → circular-option-picker/types.js.map} +0 -0
- /package/{build/resizable-box/styles/resizable-box.styles.js.map → build-module/combobox-control/types.js.map} +0 -0
- /package/build-types/{base-field → border-box-control}/test/index.d.ts +0 -0
- /package/src/panel/test/__snapshots__/{header.js.snap → header.tsx.snap} +0 -0
- /package/src/panel/test/__snapshots__/{index.js.snap → index.tsx.snap} +0 -0
- /package/src/panel/test/__snapshots__/{row.js.snap → row.tsx.snap} +0 -0
- /package/src/resizable-box/resize-tooltip/styles/{resize-tooltip.styles.js → resize-tooltip.styles.ts} +0 -0
- /package/src/toolbar/test/{index.js → index.tsx} +0 -0
- /package/src/tree-grid/test/__snapshots__/{cell.js.snap → cell.tsx.snap} +0 -0
- /package/src/tree-grid/test/__snapshots__/{roving-tab-index-item.js.snap → roving-tab-index-item.tsx.snap} +0 -0
- /package/src/tree-grid/test/__snapshots__/{roving-tab-index.js.snap → roving-tab-index.tsx.snap} +0 -0
- /package/src/tree-grid/test/__snapshots__/{row.js.snap → row.tsx.snap} +0 -0
- /package/src/tree-grid/test/{roving-tab-index.js → roving-tab-index.tsx} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# AnglePickerControl
|
|
2
2
|
|
|
3
|
-
AnglePickerControl is a React component to render a UI that allows users to pick an angle.
|
|
3
|
+
`AnglePickerControl` is a React component to render a UI that allows users to pick an angle.
|
|
4
4
|
Users can choose an angle in a visual UI with the mouse by dragging an angle indicator inside a circle or by directly inserting the desired angle in a text field.
|
|
5
5
|
|
|
6
6
|
## Usage
|
|
@@ -9,9 +9,15 @@ Users can choose an angle in a visual UI with the mouse by dragging an angle ind
|
|
|
9
9
|
import { useState } from '@wordpress/element';
|
|
10
10
|
import { AnglePickerControl } from '@wordpress/components';
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
const [ angle, setAngle ] = useState();
|
|
14
|
-
return
|
|
12
|
+
function Example() {
|
|
13
|
+
const [ angle, setAngle ] = useState( 0 );
|
|
14
|
+
return (
|
|
15
|
+
<AnglePickerControl
|
|
16
|
+
value={ angle }
|
|
17
|
+
onChange={ setAngle }
|
|
18
|
+
__nextHasNoMarginBottom
|
|
19
|
+
/>
|
|
20
|
+
);
|
|
15
21
|
};
|
|
16
22
|
```
|
|
17
23
|
|
|
@@ -19,31 +25,28 @@ const MyAnglePicker = () => {
|
|
|
19
25
|
|
|
20
26
|
The component accepts the following props.
|
|
21
27
|
|
|
22
|
-
### label
|
|
28
|
+
### `label`: `string`
|
|
23
29
|
|
|
24
|
-
Label to use for the angle picker.
|
|
30
|
+
Label to use for the angle picker.
|
|
25
31
|
|
|
26
|
-
- Type: `String`
|
|
27
32
|
- Required: No
|
|
33
|
+
- Default: `__( 'Angle' )`
|
|
28
34
|
|
|
29
|
-
### value
|
|
35
|
+
### `value`: `number | string`
|
|
30
36
|
|
|
31
37
|
The current value of the input. The value represents an angle in degrees and should be a value between 0 and 360.
|
|
32
38
|
|
|
33
|
-
- Type: `Number`
|
|
34
39
|
- Required: Yes
|
|
35
40
|
|
|
36
|
-
### onChange
|
|
41
|
+
### `onChange`: `( value: number ) => void`
|
|
37
42
|
|
|
38
43
|
A function that receives the new value of the input.
|
|
39
44
|
|
|
40
|
-
- Type: `function`
|
|
41
45
|
- Required: Yes
|
|
42
46
|
|
|
43
|
-
### __nextHasNoMarginBottom
|
|
47
|
+
### `__nextHasNoMarginBottom`: `boolean`
|
|
44
48
|
|
|
45
49
|
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.)
|
|
46
50
|
|
|
47
|
-
- Type: `boolean`
|
|
48
51
|
- Required: No
|
|
49
|
-
- Default: `false`
|
|
52
|
+
- Default: `false`
|
|
@@ -13,12 +13,29 @@ import {
|
|
|
13
13
|
CircleIndicator,
|
|
14
14
|
} from './styles/angle-picker-control-styles';
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
import type { WordPressComponentProps } from '../ui/context';
|
|
17
|
+
import type { AngleCircleProps } from './types';
|
|
18
|
+
|
|
19
|
+
type UseDraggingArgumentType = Parameters< typeof useDragging >[ 0 ];
|
|
20
|
+
type UseDraggingCallbackEvent =
|
|
21
|
+
| Parameters< UseDraggingArgumentType[ 'onDragStart' ] >[ 0 ]
|
|
22
|
+
| Parameters< UseDraggingArgumentType[ 'onDragMove' ] >[ 0 ]
|
|
23
|
+
| Parameters< UseDraggingArgumentType[ 'onDragEnd' ] >[ 0 ];
|
|
24
|
+
|
|
25
|
+
function AngleCircle( {
|
|
26
|
+
value,
|
|
27
|
+
onChange,
|
|
28
|
+
...props
|
|
29
|
+
}: WordPressComponentProps< AngleCircleProps, 'div' > ) {
|
|
30
|
+
const angleCircleRef = useRef< HTMLDivElement | null >( null );
|
|
31
|
+
const angleCircleCenter = useRef< { x: number; y: number } | undefined >();
|
|
32
|
+
const previousCursorValue = useRef< CSSStyleDeclaration[ 'cursor' ] >();
|
|
20
33
|
|
|
21
34
|
const setAngleCircleCenter = () => {
|
|
35
|
+
if ( angleCircleRef.current === null ) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
|
|
22
39
|
const rect = angleCircleRef.current.getBoundingClientRect();
|
|
23
40
|
angleCircleCenter.current = {
|
|
24
41
|
x: rect.x + rect.width / 2,
|
|
@@ -26,14 +43,26 @@ function AngleCircle( { value, onChange, ...props } ) {
|
|
|
26
43
|
};
|
|
27
44
|
};
|
|
28
45
|
|
|
29
|
-
const changeAngleToPosition = ( event ) => {
|
|
30
|
-
|
|
46
|
+
const changeAngleToPosition = ( event: UseDraggingCallbackEvent ) => {
|
|
47
|
+
if ( event === undefined ) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
|
|
31
51
|
// Prevent (drag) mouse events from selecting and accidentally
|
|
32
52
|
// triggering actions from other elements.
|
|
33
53
|
event.preventDefault();
|
|
34
54
|
// Input control needs to lose focus and by preventDefault above, it doesn't.
|
|
35
|
-
event.target
|
|
36
|
-
|
|
55
|
+
( event.target as HTMLDivElement | null )?.focus();
|
|
56
|
+
|
|
57
|
+
if (
|
|
58
|
+
angleCircleCenter.current !== undefined &&
|
|
59
|
+
onChange !== undefined
|
|
60
|
+
) {
|
|
61
|
+
const { x: centerX, y: centerY } = angleCircleCenter.current;
|
|
62
|
+
onChange(
|
|
63
|
+
getAngle( centerX, centerY, event.clientX, event.clientY )
|
|
64
|
+
);
|
|
65
|
+
}
|
|
37
66
|
};
|
|
38
67
|
|
|
39
68
|
const { startDrag, isDragging } = useDragging( {
|
|
@@ -52,13 +81,12 @@ function AngleCircle( { value, onChange, ...props } ) {
|
|
|
52
81
|
}
|
|
53
82
|
document.body.style.cursor = 'grabbing';
|
|
54
83
|
} else {
|
|
55
|
-
document.body.style.cursor = previousCursorValue.current ||
|
|
84
|
+
document.body.style.cursor = previousCursorValue.current || '';
|
|
56
85
|
previousCursorValue.current = undefined;
|
|
57
86
|
}
|
|
58
87
|
}, [ isDragging ] );
|
|
59
88
|
|
|
60
89
|
return (
|
|
61
|
-
/* eslint-disable jsx-a11y/no-static-element-interactions */
|
|
62
90
|
<CircleRoot
|
|
63
91
|
ref={ angleCircleRef }
|
|
64
92
|
onMouseDown={ startDrag }
|
|
@@ -76,11 +104,15 @@ function AngleCircle( { value, onChange, ...props } ) {
|
|
|
76
104
|
<CircleIndicator className="components-angle-picker-control__angle-circle-indicator" />
|
|
77
105
|
</CircleIndicatorWrapper>
|
|
78
106
|
</CircleRoot>
|
|
79
|
-
/* eslint-enable jsx-a11y/no-static-element-interactions */
|
|
80
107
|
);
|
|
81
108
|
}
|
|
82
109
|
|
|
83
|
-
function getAngle(
|
|
110
|
+
function getAngle(
|
|
111
|
+
centerX: number,
|
|
112
|
+
centerY: number,
|
|
113
|
+
pointX: number,
|
|
114
|
+
pointY: number
|
|
115
|
+
) {
|
|
84
116
|
const y = pointY - centerY;
|
|
85
117
|
const x = pointX - centerX;
|
|
86
118
|
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
+
import type { ForwardedRef } from 'react';
|
|
4
5
|
import classnames from 'classnames';
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* WordPress dependencies
|
|
8
9
|
*/
|
|
9
10
|
import deprecated from '@wordpress/deprecated';
|
|
11
|
+
import { forwardRef } from '@wordpress/element';
|
|
10
12
|
import { __ } from '@wordpress/i18n';
|
|
11
13
|
|
|
12
14
|
/**
|
|
@@ -21,14 +23,22 @@ import { Text } from '../text';
|
|
|
21
23
|
import { Spacer } from '../spacer';
|
|
22
24
|
import { COLORS } from '../utils/colors-values';
|
|
23
25
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
26
|
+
import type { WordPressComponentProps } from '../ui/context';
|
|
27
|
+
import type { AnglePickerControlProps } from './types';
|
|
28
|
+
|
|
29
|
+
function UnforwardedAnglePickerControl(
|
|
30
|
+
props: WordPressComponentProps< AnglePickerControlProps, 'div' >,
|
|
31
|
+
ref: ForwardedRef< any >
|
|
32
|
+
) {
|
|
33
|
+
const {
|
|
34
|
+
__nextHasNoMarginBottom = false,
|
|
35
|
+
className,
|
|
36
|
+
label = __( 'Angle' ),
|
|
37
|
+
onChange,
|
|
38
|
+
value,
|
|
39
|
+
...restProps
|
|
40
|
+
} = props;
|
|
41
|
+
|
|
32
42
|
if ( ! __nextHasNoMarginBottom ) {
|
|
33
43
|
deprecated(
|
|
34
44
|
'Bottom margin styles for wp.components.AnglePickerControl',
|
|
@@ -40,9 +50,15 @@ export default function AnglePickerControl( {
|
|
|
40
50
|
);
|
|
41
51
|
}
|
|
42
52
|
|
|
43
|
-
const handleOnNumberChange = ( unprocessedValue ) => {
|
|
53
|
+
const handleOnNumberChange = ( unprocessedValue: string | undefined ) => {
|
|
54
|
+
if ( onChange === undefined ) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
|
|
44
58
|
const inputValue =
|
|
45
|
-
unprocessedValue !==
|
|
59
|
+
unprocessedValue !== undefined && unprocessedValue !== ''
|
|
60
|
+
? parseInt( unprocessedValue, 10 )
|
|
61
|
+
: 0;
|
|
46
62
|
onChange( inputValue );
|
|
47
63
|
};
|
|
48
64
|
|
|
@@ -50,6 +66,8 @@ export default function AnglePickerControl( {
|
|
|
50
66
|
|
|
51
67
|
return (
|
|
52
68
|
<Root
|
|
69
|
+
{ ...restProps }
|
|
70
|
+
ref={ ref }
|
|
53
71
|
__nextHasNoMarginBottom={ __nextHasNoMarginBottom }
|
|
54
72
|
className={ classes }
|
|
55
73
|
gap={ 4 }
|
|
@@ -94,3 +112,29 @@ export default function AnglePickerControl( {
|
|
|
94
112
|
</Root>
|
|
95
113
|
);
|
|
96
114
|
}
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* `AnglePickerControl` is a React component to render a UI that allows users to
|
|
118
|
+
* pick an angle. Users can choose an angle in a visual UI with the mouse by
|
|
119
|
+
* dragging an angle indicator inside a circle or by directly inserting the
|
|
120
|
+
* desired angle in a text field.
|
|
121
|
+
*
|
|
122
|
+
* ```jsx
|
|
123
|
+
* import { useState } from '@wordpress/element';
|
|
124
|
+
* import { AnglePickerControl } from '@wordpress/components';
|
|
125
|
+
*
|
|
126
|
+
* function Example() {
|
|
127
|
+
* const [ angle, setAngle ] = useState( 0 );
|
|
128
|
+
* return (
|
|
129
|
+
* <AnglePickerControl
|
|
130
|
+
* value={ angle }
|
|
131
|
+
* onChange={ setAngle }
|
|
132
|
+
* __nextHasNoMarginBottom
|
|
133
|
+
* </>
|
|
134
|
+
* );
|
|
135
|
+
* }
|
|
136
|
+
* ```
|
|
137
|
+
*/
|
|
138
|
+
export const AnglePickerControl = forwardRef( UnforwardedAnglePickerControl );
|
|
139
|
+
|
|
140
|
+
export default AnglePickerControl;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External dependencies
|
|
3
|
+
*/
|
|
4
|
+
import type { ComponentMeta, ComponentStory } from '@storybook/react';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* WordPress dependencies
|
|
8
|
+
*/
|
|
9
|
+
import { useState } from '@wordpress/element';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Internal dependencies
|
|
13
|
+
*/
|
|
14
|
+
import { AnglePickerControl } from '..';
|
|
15
|
+
|
|
16
|
+
const meta: ComponentMeta< typeof AnglePickerControl > = {
|
|
17
|
+
title: 'Components/AnglePickerControl',
|
|
18
|
+
component: AnglePickerControl,
|
|
19
|
+
argTypes: {
|
|
20
|
+
as: { control: { type: null } },
|
|
21
|
+
value: { control: { type: null } },
|
|
22
|
+
},
|
|
23
|
+
parameters: {
|
|
24
|
+
actions: { argTypesRegex: '^on.*' },
|
|
25
|
+
controls: {
|
|
26
|
+
expanded: true,
|
|
27
|
+
},
|
|
28
|
+
docs: { source: { state: 'open' } },
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
export default meta;
|
|
33
|
+
|
|
34
|
+
const AnglePickerWithState: ComponentStory< typeof AnglePickerControl > = ( {
|
|
35
|
+
onChange,
|
|
36
|
+
...args
|
|
37
|
+
} ) => {
|
|
38
|
+
const [ angle, setAngle ] = useState< number >( 0 );
|
|
39
|
+
|
|
40
|
+
const handleChange = ( newValue: number ) => {
|
|
41
|
+
setAngle( newValue );
|
|
42
|
+
onChange( newValue );
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
return (
|
|
46
|
+
<AnglePickerControl
|
|
47
|
+
{ ...args }
|
|
48
|
+
value={ angle }
|
|
49
|
+
onChange={ handleChange }
|
|
50
|
+
/>
|
|
51
|
+
);
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
export const Default = AnglePickerWithState.bind( {} );
|
|
55
|
+
Default.args = {
|
|
56
|
+
__nextHasNoMarginBottom: true,
|
|
57
|
+
};
|
|
@@ -12,10 +12,14 @@ import { COLORS } from '../../utils';
|
|
|
12
12
|
import { space } from '../../ui/utils/space';
|
|
13
13
|
import CONFIG from '../../utils/config-values';
|
|
14
14
|
|
|
15
|
+
import type { AnglePickerControlProps } from '../types';
|
|
16
|
+
|
|
15
17
|
const CIRCLE_SIZE = 32;
|
|
16
18
|
const INNER_CIRCLE_SIZE = 3;
|
|
17
19
|
|
|
18
|
-
const deprecatedBottomMargin = ( {
|
|
20
|
+
const deprecatedBottomMargin = ( {
|
|
21
|
+
__nextHasNoMarginBottom,
|
|
22
|
+
}: Pick< AnglePickerControlProps, '__nextHasNoMarginBottom' > ) => {
|
|
19
23
|
return ! __nextHasNoMarginBottom
|
|
20
24
|
? css`
|
|
21
25
|
margin-bottom: ${ space( 2 ) };
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export type AnglePickerControlProps = {
|
|
2
|
+
/**
|
|
3
|
+
* Start opting into the new margin-free styles that will become the default
|
|
4
|
+
* in a future version.
|
|
5
|
+
*
|
|
6
|
+
* @default false
|
|
7
|
+
*/
|
|
8
|
+
__nextHasNoMarginBottom?: boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Label to use for the angle picker.
|
|
11
|
+
*
|
|
12
|
+
* @default __( 'Angle' )
|
|
13
|
+
*/
|
|
14
|
+
label?: string;
|
|
15
|
+
/**
|
|
16
|
+
* A function that receives the new value of the input.
|
|
17
|
+
*/
|
|
18
|
+
onChange: ( value: number ) => void;
|
|
19
|
+
/**
|
|
20
|
+
* The current value of the input. The value represents an angle in degrees
|
|
21
|
+
* and should be a value between 0 and 360.
|
|
22
|
+
*/
|
|
23
|
+
value: number | string;
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
export type AngleCircleProps = Pick<
|
|
27
|
+
AnglePickerControlProps,
|
|
28
|
+
'value' | 'onChange'
|
|
29
|
+
>;
|
|
@@ -6,8 +6,14 @@ import classnames from 'classnames';
|
|
|
6
6
|
/**
|
|
7
7
|
* WordPress dependencies
|
|
8
8
|
*/
|
|
9
|
-
import {
|
|
9
|
+
import {
|
|
10
|
+
useLayoutEffect,
|
|
11
|
+
useRef,
|
|
12
|
+
useEffect,
|
|
13
|
+
useState,
|
|
14
|
+
} from '@wordpress/element';
|
|
10
15
|
import { useAnchor } from '@wordpress/rich-text';
|
|
16
|
+
import { useMergeRefs, useRefEffect } from '@wordpress/compose';
|
|
11
17
|
|
|
12
18
|
/**
|
|
13
19
|
* Internal dependencies
|
|
@@ -15,6 +21,8 @@ import { useAnchor } from '@wordpress/rich-text';
|
|
|
15
21
|
import getDefaultUseItems from './get-default-use-items';
|
|
16
22
|
import Button from '../button';
|
|
17
23
|
import Popover from '../popover';
|
|
24
|
+
import { VisuallyHidden } from '../visually-hidden';
|
|
25
|
+
import { createPortal } from 'react-dom';
|
|
18
26
|
|
|
19
27
|
export function getAutoCompleterUI( autocompleter ) {
|
|
20
28
|
const useItems = autocompleter.useItems
|
|
@@ -40,7 +48,25 @@ export function getAutoCompleterUI( autocompleter ) {
|
|
|
40
48
|
value,
|
|
41
49
|
} );
|
|
42
50
|
|
|
51
|
+
const [ needsA11yCompat, setNeedsA11yCompat ] = useState( false );
|
|
43
52
|
const popoverRef = useRef();
|
|
53
|
+
const popoverRefs = useMergeRefs( [
|
|
54
|
+
popoverRef,
|
|
55
|
+
useRefEffect(
|
|
56
|
+
( node ) => {
|
|
57
|
+
if ( ! contentRef.current ) return;
|
|
58
|
+
|
|
59
|
+
// If the popover is rendered in a different document than
|
|
60
|
+
// the content, we need to duplicate the options list in the
|
|
61
|
+
// content document so that it's available to the screen
|
|
62
|
+
// readers, which check the DOM ID based aira-* attributes.
|
|
63
|
+
setNeedsA11yCompat(
|
|
64
|
+
node.ownerDocument !== contentRef.current.ownerDocument
|
|
65
|
+
);
|
|
66
|
+
},
|
|
67
|
+
[ contentRef ]
|
|
68
|
+
),
|
|
69
|
+
] );
|
|
44
70
|
|
|
45
71
|
useOnClickOutside( popoverRef, reset );
|
|
46
72
|
|
|
@@ -55,41 +81,53 @@ export function getAutoCompleterUI( autocompleter ) {
|
|
|
55
81
|
return null;
|
|
56
82
|
}
|
|
57
83
|
|
|
58
|
-
|
|
59
|
-
<
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
className="components-autocomplete__popover"
|
|
64
|
-
anchor={ popoverAnchor }
|
|
65
|
-
ref={ popoverRef }
|
|
84
|
+
const ListBox = ( { Component = 'div' } ) => (
|
|
85
|
+
<Component
|
|
86
|
+
id={ listBoxId }
|
|
87
|
+
role="listbox"
|
|
88
|
+
className="components-autocomplete__results"
|
|
66
89
|
>
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
90
|
+
{ items.map( ( option, index ) => (
|
|
91
|
+
<Button
|
|
92
|
+
key={ option.key }
|
|
93
|
+
id={ `components-autocomplete-item-${ instanceId }-${ option.key }` }
|
|
94
|
+
role="option"
|
|
95
|
+
aria-selected={ index === selectedIndex }
|
|
96
|
+
disabled={ option.isDisabled }
|
|
97
|
+
className={ classnames(
|
|
98
|
+
'components-autocomplete__result',
|
|
99
|
+
className,
|
|
100
|
+
{
|
|
101
|
+
'is-selected': index === selectedIndex,
|
|
102
|
+
}
|
|
103
|
+
) }
|
|
104
|
+
onClick={ () => onSelect( option ) }
|
|
105
|
+
>
|
|
106
|
+
{ option.label }
|
|
107
|
+
</Button>
|
|
108
|
+
) ) }
|
|
109
|
+
</Component>
|
|
110
|
+
);
|
|
111
|
+
|
|
112
|
+
return (
|
|
113
|
+
<>
|
|
114
|
+
<Popover
|
|
115
|
+
focusOnMount={ false }
|
|
116
|
+
onClose={ onReset }
|
|
117
|
+
placement="top-start"
|
|
118
|
+
className="components-autocomplete__popover"
|
|
119
|
+
anchor={ popoverAnchor }
|
|
120
|
+
ref={ popoverRefs }
|
|
71
121
|
>
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
className,
|
|
82
|
-
{
|
|
83
|
-
'is-selected': index === selectedIndex,
|
|
84
|
-
}
|
|
85
|
-
) }
|
|
86
|
-
onClick={ () => onSelect( option ) }
|
|
87
|
-
>
|
|
88
|
-
{ option.label }
|
|
89
|
-
</Button>
|
|
90
|
-
) ) }
|
|
91
|
-
</div>
|
|
92
|
-
</Popover>
|
|
122
|
+
<ListBox />
|
|
123
|
+
</Popover>
|
|
124
|
+
{ contentRef.current &&
|
|
125
|
+
needsA11yCompat &&
|
|
126
|
+
createPortal(
|
|
127
|
+
<ListBox Component={ VisuallyHidden } />,
|
|
128
|
+
contentRef.current.ownerDocument.body
|
|
129
|
+
) }
|
|
130
|
+
</>
|
|
93
131
|
);
|
|
94
132
|
}
|
|
95
133
|
|
|
@@ -35,6 +35,8 @@ import { speak } from '@wordpress/a11y';
|
|
|
35
35
|
import { getAutoCompleterUI } from './autocompleter-ui';
|
|
36
36
|
import { escapeRegExp } from '../utils/strings';
|
|
37
37
|
|
|
38
|
+
const EMPTY_ARRAY = [];
|
|
39
|
+
|
|
38
40
|
/**
|
|
39
41
|
* A raw completer option.
|
|
40
42
|
*
|
|
@@ -121,7 +123,7 @@ function useAutocomplete( {
|
|
|
121
123
|
const debouncedSpeak = useDebounce( speak, 500 );
|
|
122
124
|
const instanceId = useInstanceId( useAutocomplete );
|
|
123
125
|
const [ selectedIndex, setSelectedIndex ] = useState( 0 );
|
|
124
|
-
const [ filteredOptions, setFilteredOptions ] = useState(
|
|
126
|
+
const [ filteredOptions, setFilteredOptions ] = useState( EMPTY_ARRAY );
|
|
125
127
|
const [ filterValue, setFilterValue ] = useState( '' );
|
|
126
128
|
const [ autocompleter, setAutocompleter ] = useState( null );
|
|
127
129
|
const [ AutocompleterUI, setAutocompleterUI ] = useState( null );
|
|
@@ -169,7 +171,7 @@ function useAutocomplete( {
|
|
|
169
171
|
|
|
170
172
|
function reset() {
|
|
171
173
|
setSelectedIndex( 0 );
|
|
172
|
-
setFilteredOptions(
|
|
174
|
+
setFilteredOptions( EMPTY_ARRAY );
|
|
173
175
|
setFilterValue( '' );
|
|
174
176
|
setAutocompleter( null );
|
|
175
177
|
setAutocompleterUI( null );
|
|
@@ -281,23 +283,19 @@ function useAutocomplete( {
|
|
|
281
283
|
|
|
282
284
|
useEffect( () => {
|
|
283
285
|
if ( ! textContent ) {
|
|
284
|
-
reset();
|
|
286
|
+
if ( autocompleter ) reset();
|
|
285
287
|
return;
|
|
286
288
|
}
|
|
287
289
|
|
|
288
|
-
const text = removeAccents( textContent );
|
|
289
|
-
const textAfterSelection = getTextContent(
|
|
290
|
-
slice( record, undefined, getTextContent( record ).length )
|
|
291
|
-
);
|
|
292
290
|
const completer = completers?.find(
|
|
293
291
|
( { triggerPrefix, allowContext } ) => {
|
|
294
|
-
const index =
|
|
292
|
+
const index = textContent.lastIndexOf( triggerPrefix );
|
|
295
293
|
|
|
296
294
|
if ( index === -1 ) {
|
|
297
295
|
return false;
|
|
298
296
|
}
|
|
299
297
|
|
|
300
|
-
const textWithoutTrigger =
|
|
298
|
+
const textWithoutTrigger = textContent.slice(
|
|
301
299
|
index + triggerPrefix.length
|
|
302
300
|
);
|
|
303
301
|
|
|
@@ -339,9 +337,16 @@ function useAutocomplete( {
|
|
|
339
337
|
return false;
|
|
340
338
|
}
|
|
341
339
|
|
|
340
|
+
const textAfterSelection = getTextContent(
|
|
341
|
+
slice( record, undefined, getTextContent( record ).length )
|
|
342
|
+
);
|
|
343
|
+
|
|
342
344
|
if (
|
|
343
345
|
allowContext &&
|
|
344
|
-
! allowContext(
|
|
346
|
+
! allowContext(
|
|
347
|
+
textContent.slice( 0, index ),
|
|
348
|
+
textAfterSelection
|
|
349
|
+
)
|
|
345
350
|
) {
|
|
346
351
|
return false;
|
|
347
352
|
}
|
|
@@ -358,11 +363,12 @@ function useAutocomplete( {
|
|
|
358
363
|
);
|
|
359
364
|
|
|
360
365
|
if ( ! completer ) {
|
|
361
|
-
reset();
|
|
366
|
+
if ( autocompleter ) reset();
|
|
362
367
|
return;
|
|
363
368
|
}
|
|
364
369
|
|
|
365
370
|
const safeTrigger = escapeRegExp( completer.triggerPrefix );
|
|
371
|
+
const text = removeAccents( textContent );
|
|
366
372
|
const match = text
|
|
367
373
|
.slice( text.lastIndexOf( completer.triggerPrefix ) )
|
|
368
374
|
.match( new RegExp( `${ safeTrigger }([\u0000-\uFFFF]*)$` ) );
|
|
@@ -412,53 +418,47 @@ function useAutocomplete( {
|
|
|
412
418
|
};
|
|
413
419
|
}
|
|
414
420
|
|
|
421
|
+
function useLastDifferentValue( value ) {
|
|
422
|
+
const history = useRef( new Set() );
|
|
423
|
+
|
|
424
|
+
history.current.add( value );
|
|
425
|
+
|
|
426
|
+
// Keep the history size to 2.
|
|
427
|
+
if ( history.current.size > 2 ) {
|
|
428
|
+
history.current.delete( Array.from( history.current )[ 0 ] );
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
return Array.from( history.current )[ 0 ];
|
|
432
|
+
}
|
|
433
|
+
|
|
415
434
|
export function useAutocompleteProps( options ) {
|
|
416
|
-
const [ isVisible, setIsVisible ] = useState( false );
|
|
417
435
|
const ref = useRef();
|
|
418
|
-
const recordAfterInput = useRef();
|
|
419
436
|
const onKeyDownRef = useRef();
|
|
437
|
+
const { record } = options;
|
|
438
|
+
const previousRecord = useLastDifferentValue( record );
|
|
420
439
|
const { popover, listBoxId, activeId, onKeyDown } = useAutocomplete( {
|
|
421
440
|
...options,
|
|
422
441
|
contentRef: ref,
|
|
423
442
|
} );
|
|
424
443
|
onKeyDownRef.current = onKeyDown;
|
|
425
444
|
|
|
426
|
-
useEffect( () => {
|
|
427
|
-
if ( isVisible ) {
|
|
428
|
-
if ( ! recordAfterInput.current ) {
|
|
429
|
-
recordAfterInput.current = options.record;
|
|
430
|
-
} else if (
|
|
431
|
-
recordAfterInput.current.start !== options.record.start ||
|
|
432
|
-
recordAfterInput.current.end !== options.record.end
|
|
433
|
-
) {
|
|
434
|
-
setIsVisible( false );
|
|
435
|
-
recordAfterInput.current = null;
|
|
436
|
-
}
|
|
437
|
-
}
|
|
438
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
439
|
-
}, [ options.record ] );
|
|
440
|
-
|
|
441
445
|
const mergedRefs = useMergeRefs( [
|
|
442
446
|
ref,
|
|
443
447
|
useRefEffect( ( element ) => {
|
|
444
448
|
function _onKeyDown( event ) {
|
|
445
449
|
onKeyDownRef.current( event );
|
|
446
450
|
}
|
|
447
|
-
function _onInput() {
|
|
448
|
-
// Only show auto complete UI if the user is inputting text.
|
|
449
|
-
setIsVisible( true );
|
|
450
|
-
recordAfterInput.current = null;
|
|
451
|
-
}
|
|
452
451
|
element.addEventListener( 'keydown', _onKeyDown );
|
|
453
|
-
element.addEventListener( 'input', _onInput );
|
|
454
452
|
return () => {
|
|
455
453
|
element.removeEventListener( 'keydown', _onKeyDown );
|
|
456
|
-
element.removeEventListener( 'input', _onInput );
|
|
457
454
|
};
|
|
458
455
|
}, [] ),
|
|
459
456
|
] );
|
|
460
457
|
|
|
461
|
-
if
|
|
458
|
+
// We only want to show the popover if the user has typed something.
|
|
459
|
+
const didUserInput = record.text !== previousRecord?.text;
|
|
460
|
+
|
|
461
|
+
if ( ! didUserInput ) {
|
|
462
462
|
return { ref: mergedRefs };
|
|
463
463
|
}
|
|
464
464
|
|
|
@@ -14,7 +14,7 @@ import type { BaseControlProps } from './types';
|
|
|
14
14
|
*
|
|
15
15
|
* Namely, it takes care of generating a unique `id`, properly associating it with the `label` and `help` elements.
|
|
16
16
|
*
|
|
17
|
-
* @param
|
|
17
|
+
* @param props
|
|
18
18
|
*/
|
|
19
19
|
export function useBaseControlProps(
|
|
20
20
|
props: Omit< BaseControlProps, 'children' >
|