@wordpress/components 28.6.0 → 28.8.1-next.1f6eadc42.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 +109 -0
- package/CONTRIBUTING.md +42 -19
- package/build/alignment-matrix-control/cell.js +4 -7
- package/build/alignment-matrix-control/cell.js.map +1 -1
- package/build/alignment-matrix-control/icon.js +31 -19
- package/build/alignment-matrix-control/icon.js.map +1 -1
- package/build/alignment-matrix-control/index.js +55 -51
- package/build/alignment-matrix-control/index.js.map +1 -1
- package/build/alignment-matrix-control/styles.js +73 -0
- package/build/alignment-matrix-control/styles.js.map +1 -0
- package/build/alignment-matrix-control/types.js.map +1 -1
- package/build/angle-picker-control/angle-circle.js +9 -9
- package/build/angle-picker-control/angle-circle.js.map +1 -1
- package/build/border-control/border-control/component.js +18 -13
- package/build/border-control/border-control/component.js.map +1 -1
- package/build/box-control/utils.js +1 -1
- package/build/box-control/utils.js.map +1 -1
- package/build/circular-option-picker/circular-option-picker-option.js +15 -9
- package/build/circular-option-picker/circular-option-picker-option.js.map +1 -1
- package/build/circular-option-picker/circular-option-picker.js +15 -12
- package/build/circular-option-picker/circular-option-picker.js.map +1 -1
- package/build/circular-option-picker/types.js.map +1 -1
- package/build/clipboard-button/index.js +6 -6
- package/build/clipboard-button/index.js.map +1 -1
- package/build/color-palette/utils.js +1 -2
- package/build/color-palette/utils.js.map +1 -1
- package/build/color-picker/color-copy-button.js +8 -8
- package/build/color-picker/color-copy-button.js.map +1 -1
- package/build/color-picker/hex-input.js +8 -8
- package/build/color-picker/hex-input.js.map +1 -1
- package/build/color-picker/input-with-slider.js +8 -8
- package/build/color-picker/input-with-slider.js.map +1 -1
- package/build/color-picker/styles.js +8 -8
- package/build/color-picker/styles.js.map +1 -1
- package/build/combobox-control/types.js.map +1 -1
- package/build/composite/context.js +1 -1
- package/build/composite/context.js.map +1 -1
- package/build/composite/group-label.js +33 -0
- package/build/composite/group-label.js.map +1 -0
- package/build/composite/group.js +33 -0
- package/build/composite/group.js.map +1 -0
- package/build/composite/hover.js +33 -0
- package/build/composite/hover.js.map +1 -0
- package/build/composite/index.js +63 -118
- package/build/composite/index.js.map +1 -1
- package/build/composite/item.js +33 -0
- package/build/composite/item.js.map +1 -0
- package/build/composite/legacy/index.js +59 -7
- package/build/composite/legacy/index.js.map +1 -1
- package/build/composite/row.js +33 -0
- package/build/composite/row.js.map +1 -0
- package/build/composite/typeahead.js +33 -0
- package/build/composite/typeahead.js.map +1 -0
- package/build/composite/types.js.map +1 -1
- package/build/custom-gradient-picker/gradient-bar/control-points.js +8 -8
- package/build/custom-gradient-picker/gradient-bar/control-points.js.map +1 -1
- package/build/custom-select-control-v2/styles.js +12 -14
- package/build/custom-select-control-v2/styles.js.map +1 -1
- package/build/date-time/date/index.js +1 -1
- package/build/date-time/date/index.js.map +1 -1
- package/build/date-time/date/styles.js +37 -26
- package/build/date-time/date/styles.js.map +1 -1
- package/build/date-time/date/use-lilius/index.js +163 -0
- package/build/date-time/date/use-lilius/index.js.map +1 -0
- package/build/date-time/time/time-input/index.js +17 -19
- package/build/date-time/time/time-input/index.js.map +1 -1
- package/build/dimension-control/index.js +6 -1
- package/build/dimension-control/index.js.map +1 -1
- package/build/draggable/index.js +4 -4
- package/build/draggable/index.js.map +1 -1
- package/build/dropdown-menu-v2/checkbox-item.js +69 -0
- package/build/dropdown-menu-v2/checkbox-item.js.map +1 -0
- package/build/dropdown-menu-v2/context.js +17 -0
- package/build/dropdown-menu-v2/context.js.map +1 -0
- package/build/dropdown-menu-v2/group-label.js +40 -0
- package/build/dropdown-menu-v2/group-label.js.map +1 -0
- package/build/dropdown-menu-v2/group.js +29 -0
- package/build/dropdown-menu-v2/group.js.map +1 -0
- package/build/dropdown-menu-v2/index.js +58 -146
- package/build/dropdown-menu-v2/index.js.map +1 -1
- package/build/dropdown-menu-v2/item-help-text.js +27 -0
- package/build/dropdown-menu-v2/item-help-text.js.map +1 -0
- package/build/dropdown-menu-v2/item-label.js +27 -0
- package/build/dropdown-menu-v2/item-label.js.map +1 -0
- package/build/dropdown-menu-v2/item.js +53 -0
- package/build/dropdown-menu-v2/item.js.map +1 -0
- package/build/dropdown-menu-v2/radio-item.js +79 -0
- package/build/dropdown-menu-v2/radio-item.js.map +1 -0
- package/build/dropdown-menu-v2/separator.js +30 -0
- package/build/dropdown-menu-v2/separator.js.map +1 -0
- package/build/dropdown-menu-v2/styles.js +54 -78
- package/build/dropdown-menu-v2/styles.js.map +1 -1
- package/build/dropdown-menu-v2/types.js.map +1 -1
- package/build/dropdown-menu-v2/use-temporary-focus-visible-fix.js +27 -0
- package/build/dropdown-menu-v2/use-temporary-focus-visible-fix.js.map +1 -0
- package/build/focal-point-picker/styles/focal-point-style.js +7 -2
- package/build/focal-point-picker/styles/focal-point-style.js.map +1 -1
- package/build/form-token-field/types.js.map +1 -1
- package/build/index.js +13 -0
- package/build/index.js.map +1 -1
- package/build/input-control/index.js +2 -2
- package/build/input-control/index.js.map +1 -1
- package/build/input-control/input-base.js +5 -10
- package/build/input-control/input-base.js.map +1 -1
- package/build/input-control/input-prefix-wrapper.js +3 -3
- package/build/input-control/input-prefix-wrapper.js.map +1 -1
- package/build/input-control/input-suffix-wrapper.js +2 -3
- package/build/input-control/input-suffix-wrapper.js.map +1 -1
- package/build/input-control/reducer/reducer.js +8 -8
- package/build/input-control/reducer/reducer.js.map +1 -1
- package/build/input-control/styles/input-control-styles.js +75 -45
- package/build/input-control/styles/input-control-styles.js.map +1 -1
- package/build/input-control/types.js.map +1 -1
- package/build/input-control/utils.js +3 -3
- package/build/input-control/utils.js.map +1 -1
- package/build/item-group/styles.js +10 -10
- package/build/item-group/styles.js.map +1 -1
- package/build/modal/index.js +16 -9
- package/build/modal/index.js.map +1 -1
- package/build/navigation/index.js +4 -4
- package/build/navigation/index.js.map +1 -1
- package/build/navigation/styles/navigation-styles.js +13 -13
- package/build/navigation/styles/navigation-styles.js.map +1 -1
- package/build/navigator/index.js +12 -13
- package/build/navigator/index.js.map +1 -1
- package/build/navigator/navigator-back-button/hook.js +2 -2
- package/build/navigator/navigator-back-button/hook.js.map +1 -1
- package/build/navigator/navigator-button/hook.js +2 -2
- package/build/navigator/navigator-button/hook.js.map +1 -1
- package/build/navigator/navigator-provider/component.js +99 -67
- package/build/navigator/navigator-provider/component.js.map +1 -1
- package/build/navigator/navigator-screen/component.js +5 -0
- package/build/navigator/navigator-screen/component.js.map +1 -1
- package/build/navigator/navigator-to-parent-button/component.js +2 -2
- package/build/navigator/navigator-to-parent-button/component.js.map +1 -1
- package/build/navigator/types.js.map +1 -1
- package/build/navigator/use-navigator.js +1 -2
- package/build/navigator/use-navigator.js.map +1 -1
- package/build/palette-edit/index.js +2 -2
- package/build/palette-edit/index.js.map +1 -1
- package/build/private-apis.js +1 -14
- package/build/private-apis.js.map +1 -1
- package/build/range-control/styles/range-control-styles.js +30 -30
- package/build/range-control/styles/range-control-styles.js.map +1 -1
- package/build/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js +4 -4
- package/build/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js.map +1 -1
- package/build/select-control/styles/select-control-styles.js +12 -12
- package/build/select-control/styles/select-control-styles.js.map +1 -1
- package/build/slot-fill/bubbles-virtually/fill.js +4 -4
- package/build/slot-fill/bubbles-virtually/fill.js.map +1 -1
- package/build/slot-fill/index.js +1 -0
- package/build/slot-fill/index.js.map +1 -1
- package/build/snackbar/index.js +4 -4
- package/build/snackbar/index.js.map +1 -1
- package/build/tabs/index.js +4 -4
- package/build/tabs/index.js.map +1 -1
- package/build/tabs/styles.js +3 -3
- package/build/tabs/styles.js.map +1 -1
- package/build/tabs/tablist.js +5 -4
- package/build/tabs/tablist.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control/utils.js +6 -6
- package/build/toggle-group-control/toggle-group-control/utils.js.map +1 -1
- package/build/tools-panel/tools-panel/hook.js +6 -6
- package/build/tools-panel/tools-panel/hook.js.map +1 -1
- package/build/unit-control/styles/unit-control-styles.js +7 -7
- package/build/unit-control/styles/unit-control-styles.js.map +1 -1
- package/build/utils/config-values.js +6 -4
- package/build/utils/config-values.js.map +1 -1
- package/build/utils/element-rect.js +73 -105
- package/build/utils/element-rect.js.map +1 -1
- package/build/utils/hooks/use-update-effect.js +4 -4
- package/build/utils/hooks/use-update-effect.js.map +1 -1
- package/build-module/alignment-matrix-control/cell.js +2 -5
- package/build-module/alignment-matrix-control/cell.js.map +1 -1
- package/build-module/alignment-matrix-control/icon.js +31 -19
- package/build-module/alignment-matrix-control/icon.js.map +1 -1
- package/build-module/alignment-matrix-control/index.js +55 -50
- package/build-module/alignment-matrix-control/index.js.map +1 -1
- package/build-module/alignment-matrix-control/styles.js +70 -0
- package/build-module/alignment-matrix-control/styles.js.map +1 -0
- package/build-module/alignment-matrix-control/types.js.map +1 -1
- package/build-module/angle-picker-control/angle-circle.js +9 -9
- package/build-module/angle-picker-control/angle-circle.js.map +1 -1
- package/build-module/border-control/border-control/component.js +18 -13
- package/build-module/border-control/border-control/component.js.map +1 -1
- package/build-module/box-control/utils.js +1 -1
- package/build-module/box-control/utils.js.map +1 -1
- package/build-module/circular-option-picker/circular-option-picker-option.js +16 -10
- package/build-module/circular-option-picker/circular-option-picker-option.js.map +1 -1
- package/build-module/circular-option-picker/circular-option-picker.js +16 -13
- package/build-module/circular-option-picker/circular-option-picker.js.map +1 -1
- package/build-module/circular-option-picker/types.js.map +1 -1
- package/build-module/clipboard-button/index.js +6 -6
- package/build-module/clipboard-button/index.js.map +1 -1
- package/build-module/color-palette/utils.js +1 -2
- package/build-module/color-palette/utils.js.map +1 -1
- package/build-module/color-picker/color-copy-button.js +8 -8
- package/build-module/color-picker/color-copy-button.js.map +1 -1
- package/build-module/color-picker/hex-input.js +7 -8
- package/build-module/color-picker/hex-input.js.map +1 -1
- package/build-module/color-picker/input-with-slider.js +7 -8
- package/build-module/color-picker/input-with-slider.js.map +1 -1
- package/build-module/color-picker/styles.js +8 -8
- package/build-module/color-picker/styles.js.map +1 -1
- package/build-module/combobox-control/types.js.map +1 -1
- package/build-module/composite/context.js +1 -1
- package/build-module/composite/context.js.map +1 -1
- package/build-module/composite/group-label.js +25 -0
- package/build-module/composite/group-label.js.map +1 -0
- package/build-module/composite/group.js +25 -0
- package/build-module/composite/group.js.map +1 -0
- package/build-module/composite/hover.js +25 -0
- package/build-module/composite/hover.js.map +1 -0
- package/build-module/composite/index.js +64 -118
- package/build-module/composite/index.js.map +1 -1
- package/build-module/composite/item.js +25 -0
- package/build-module/composite/item.js.map +1 -0
- package/build-module/composite/legacy/index.js +57 -8
- package/build-module/composite/legacy/index.js.map +1 -1
- package/build-module/composite/row.js +25 -0
- package/build-module/composite/row.js.map +1 -0
- package/build-module/composite/typeahead.js +25 -0
- package/build-module/composite/typeahead.js.map +1 -0
- package/build-module/composite/types.js.map +1 -1
- package/build-module/custom-gradient-picker/gradient-bar/control-points.js +8 -8
- package/build-module/custom-gradient-picker/gradient-bar/control-points.js.map +1 -1
- package/build-module/custom-select-control-v2/styles.js +12 -14
- package/build-module/custom-select-control-v2/styles.js.map +1 -1
- package/build-module/date-time/date/index.js +1 -2
- package/build-module/date-time/date/index.js.map +1 -1
- package/build-module/date-time/date/styles.js +33 -26
- package/build-module/date-time/date/styles.js.map +1 -1
- package/build-module/date-time/date/use-lilius/index.js +158 -0
- package/build-module/date-time/date/use-lilius/index.js.map +1 -0
- package/build-module/date-time/time/time-input/index.js +17 -19
- package/build-module/date-time/time/time-input/index.js.map +1 -1
- package/build-module/dimension-control/index.js +6 -1
- package/build-module/dimension-control/index.js.map +1 -1
- package/build-module/draggable/index.js +4 -4
- package/build-module/draggable/index.js.map +1 -1
- package/build-module/dropdown-menu-v2/checkbox-item.js +62 -0
- package/build-module/dropdown-menu-v2/checkbox-item.js.map +1 -0
- package/build-module/dropdown-menu-v2/context.js +11 -0
- package/build-module/dropdown-menu-v2/context.js.map +1 -0
- package/build-module/dropdown-menu-v2/group-label.js +32 -0
- package/build-module/dropdown-menu-v2/group-label.js.map +1 -0
- package/build-module/dropdown-menu-v2/group.js +21 -0
- package/build-module/dropdown-menu-v2/group.js.map +1 -0
- package/build-module/dropdown-menu-v2/index.js +57 -144
- package/build-module/dropdown-menu-v2/index.js.map +1 -1
- package/build-module/dropdown-menu-v2/item-help-text.js +19 -0
- package/build-module/dropdown-menu-v2/item-help-text.js.map +1 -0
- package/build-module/dropdown-menu-v2/item-label.js +19 -0
- package/build-module/dropdown-menu-v2/item-label.js.map +1 -0
- package/build-module/dropdown-menu-v2/item.js +46 -0
- package/build-module/dropdown-menu-v2/item.js.map +1 -0
- package/build-module/dropdown-menu-v2/radio-item.js +72 -0
- package/build-module/dropdown-menu-v2/radio-item.js.map +1 -0
- package/build-module/dropdown-menu-v2/separator.js +22 -0
- package/build-module/dropdown-menu-v2/separator.js.map +1 -0
- package/build-module/dropdown-menu-v2/styles.js +54 -78
- package/build-module/dropdown-menu-v2/styles.js.map +1 -1
- package/build-module/dropdown-menu-v2/types.js.map +1 -1
- package/build-module/dropdown-menu-v2/use-temporary-focus-visible-fix.js +20 -0
- package/build-module/dropdown-menu-v2/use-temporary-focus-visible-fix.js.map +1 -0
- package/build-module/focal-point-picker/styles/focal-point-style.js +6 -2
- package/build-module/focal-point-picker/styles/focal-point-style.js.map +1 -1
- package/build-module/form-token-field/types.js.map +1 -1
- package/build-module/index.js +3 -1
- package/build-module/index.js.map +1 -1
- package/build-module/input-control/index.js +2 -2
- package/build-module/input-control/index.js.map +1 -1
- package/build-module/input-control/input-base.js +6 -11
- package/build-module/input-control/input-base.js.map +1 -1
- package/build-module/input-control/input-prefix-wrapper.js +4 -3
- package/build-module/input-control/input-prefix-wrapper.js.map +1 -1
- package/build-module/input-control/input-suffix-wrapper.js +3 -3
- package/build-module/input-control/input-suffix-wrapper.js.map +1 -1
- package/build-module/input-control/reducer/reducer.js +8 -8
- package/build-module/input-control/reducer/reducer.js.map +1 -1
- package/build-module/input-control/styles/input-control-styles.js +74 -44
- package/build-module/input-control/styles/input-control-styles.js.map +1 -1
- package/build-module/input-control/types.js.map +1 -1
- package/build-module/input-control/utils.js +3 -3
- package/build-module/input-control/utils.js.map +1 -1
- package/build-module/item-group/styles.js +10 -10
- package/build-module/item-group/styles.js.map +1 -1
- package/build-module/modal/index.js +17 -9
- package/build-module/modal/index.js.map +1 -1
- package/build-module/navigation/index.js +4 -4
- package/build-module/navigation/index.js.map +1 -1
- package/build-module/navigation/styles/navigation-styles.js +14 -14
- package/build-module/navigation/styles/navigation-styles.js.map +1 -1
- package/build-module/navigator/index.js +6 -6
- package/build-module/navigator/index.js.map +1 -1
- package/build-module/navigator/navigator-back-button/hook.js +1 -1
- package/build-module/navigator/navigator-back-button/hook.js.map +1 -1
- package/build-module/navigator/navigator-button/hook.js +1 -1
- package/build-module/navigator/navigator-button/hook.js.map +1 -1
- package/build-module/navigator/navigator-provider/component.js +99 -67
- package/build-module/navigator/navigator-provider/component.js.map +1 -1
- package/build-module/navigator/navigator-screen/component.js +4 -0
- package/build-module/navigator/navigator-screen/component.js.map +1 -1
- package/build-module/navigator/navigator-to-parent-button/component.js +1 -1
- package/build-module/navigator/navigator-to-parent-button/component.js.map +1 -1
- package/build-module/navigator/types.js.map +1 -1
- package/build-module/navigator/use-navigator.js +1 -2
- package/build-module/navigator/use-navigator.js.map +1 -1
- package/build-module/palette-edit/index.js +2 -2
- package/build-module/palette-edit/index.js.map +1 -1
- package/build-module/private-apis.js +1 -14
- package/build-module/private-apis.js.map +1 -1
- package/build-module/range-control/styles/range-control-styles.js +31 -31
- package/build-module/range-control/styles/range-control-styles.js.map +1 -1
- package/build-module/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js +5 -5
- package/build-module/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js.map +1 -1
- package/build-module/select-control/styles/select-control-styles.js +13 -13
- package/build-module/select-control/styles/select-control-styles.js.map +1 -1
- package/build-module/slot-fill/bubbles-virtually/fill.js +4 -4
- package/build-module/slot-fill/bubbles-virtually/fill.js.map +1 -1
- package/build-module/slot-fill/index.js +1 -0
- package/build-module/slot-fill/index.js.map +1 -1
- package/build-module/snackbar/index.js +4 -4
- package/build-module/snackbar/index.js.map +1 -1
- package/build-module/tabs/index.js +4 -4
- package/build-module/tabs/index.js.map +1 -1
- package/build-module/tabs/styles.js +4 -4
- package/build-module/tabs/styles.js.map +1 -1
- package/build-module/tabs/tablist.js +5 -4
- package/build-module/tabs/tablist.js.map +1 -1
- package/build-module/toggle-group-control/toggle-group-control/utils.js +6 -6
- package/build-module/toggle-group-control/toggle-group-control/utils.js.map +1 -1
- package/build-module/tools-panel/tools-panel/hook.js +6 -6
- package/build-module/tools-panel/tools-panel/hook.js.map +1 -1
- package/build-module/unit-control/styles/unit-control-styles.js +7 -7
- package/build-module/unit-control/styles/unit-control-styles.js.map +1 -1
- package/build-module/utils/config-values.js +6 -4
- package/build-module/utils/config-values.js.map +1 -1
- package/build-module/utils/element-rect.js +74 -105
- package/build-module/utils/element-rect.js.map +1 -1
- package/build-module/utils/hooks/use-update-effect.js +4 -4
- package/build-module/utils/hooks/use-update-effect.js.map +1 -1
- package/build-style/style-rtl.css +12 -27
- package/build-style/style.css +12 -27
- package/build-types/alignment-matrix-control/cell.d.ts +1 -1
- package/build-types/alignment-matrix-control/cell.d.ts.map +1 -1
- package/build-types/alignment-matrix-control/icon.d.ts +1 -1
- package/build-types/alignment-matrix-control/icon.d.ts.map +1 -1
- package/build-types/alignment-matrix-control/index.d.ts +16 -6
- package/build-types/alignment-matrix-control/index.d.ts.map +1 -1
- package/build-types/alignment-matrix-control/stories/index.story.d.ts.map +1 -1
- package/build-types/alignment-matrix-control/{styles/alignment-matrix-control-styles.d.ts → styles.d.ts} +9 -10
- package/build-types/alignment-matrix-control/styles.d.ts.map +1 -0
- package/build-types/alignment-matrix-control/types.d.ts +12 -1
- package/build-types/alignment-matrix-control/types.d.ts.map +1 -1
- package/build-types/angle-picker-control/angle-circle.d.ts.map +1 -1
- package/build-types/border-control/border-control/component.d.ts.map +1 -1
- package/build-types/box-control/stories/index.story.d.ts.map +1 -1
- package/build-types/box-control/utils.d.ts +1 -1
- package/build-types/box-control/utils.d.ts.map +1 -1
- package/build-types/circular-option-picker/circular-option-picker-option.d.ts.map +1 -1
- package/build-types/circular-option-picker/circular-option-picker.d.ts.map +1 -1
- package/build-types/circular-option-picker/types.d.ts +2 -2
- package/build-types/circular-option-picker/types.d.ts.map +1 -1
- package/build-types/color-palette/utils.d.ts.map +1 -1
- package/build-types/color-picker/color-copy-button.d.ts.map +1 -1
- package/build-types/color-picker/hex-input.d.ts.map +1 -1
- package/build-types/color-picker/input-with-slider.d.ts.map +1 -1
- package/build-types/color-picker/styles.d.ts.map +1 -1
- package/build-types/combobox-control/types.d.ts +1 -0
- package/build-types/combobox-control/types.d.ts.map +1 -1
- package/build-types/composite/context.d.ts.map +1 -1
- package/build-types/composite/group-label.d.ts +3 -0
- package/build-types/composite/group-label.d.ts.map +1 -0
- package/build-types/composite/group.d.ts +3 -0
- package/build-types/composite/group.d.ts.map +1 -0
- package/build-types/composite/hover.d.ts +3 -0
- package/build-types/composite/hover.d.ts.map +1 -0
- package/build-types/composite/index.d.ts +63 -47
- package/build-types/composite/index.d.ts.map +1 -1
- package/build-types/composite/item.d.ts +3 -0
- package/build-types/composite/item.d.ts.map +1 -0
- package/build-types/composite/legacy/index.d.ts +23 -3
- package/build-types/composite/legacy/index.d.ts.map +1 -1
- package/build-types/composite/legacy/stories/index.story.d.ts.map +1 -1
- package/build-types/composite/row.d.ts +3 -0
- package/build-types/composite/row.d.ts.map +1 -0
- package/build-types/composite/stories/index.story.d.ts +9 -8
- package/build-types/composite/stories/index.story.d.ts.map +1 -1
- package/build-types/composite/typeahead.d.ts +3 -0
- package/build-types/composite/typeahead.d.ts.map +1 -0
- package/build-types/composite/types.d.ts +12 -11
- package/build-types/composite/types.d.ts.map +1 -1
- package/build-types/date-time/date/index.d.ts +0 -3
- package/build-types/date-time/date/index.d.ts.map +1 -1
- package/build-types/date-time/date/styles.d.ts.map +1 -1
- package/build-types/date-time/date/test/use-lilius.d.ts +2 -0
- package/build-types/date-time/date/test/use-lilius.d.ts.map +1 -0
- package/build-types/date-time/date/use-lilius/index.d.ts +169 -0
- package/build-types/date-time/date/use-lilius/index.d.ts.map +1 -0
- package/build-types/date-time/time/time-input/index.d.ts.map +1 -1
- package/build-types/dimension-control/index.d.ts +1 -1
- package/build-types/dimension-control/index.d.ts.map +1 -1
- package/build-types/dimension-control/stories/index.story.d.ts +5 -0
- package/build-types/dimension-control/stories/index.story.d.ts.map +1 -1
- package/build-types/dropdown-menu-v2/checkbox-item.d.ts +3 -0
- package/build-types/dropdown-menu-v2/checkbox-item.d.ts.map +1 -0
- package/build-types/dropdown-menu-v2/context.d.ts +6 -0
- package/build-types/dropdown-menu-v2/context.d.ts.map +1 -0
- package/build-types/dropdown-menu-v2/group-label.d.ts +3 -0
- package/build-types/dropdown-menu-v2/group-label.d.ts.map +1 -0
- package/build-types/dropdown-menu-v2/group.d.ts +3 -0
- package/build-types/dropdown-menu-v2/group.d.ts.map +1 -0
- package/build-types/dropdown-menu-v2/index.d.ts +39 -18
- package/build-types/dropdown-menu-v2/index.d.ts.map +1 -1
- package/build-types/dropdown-menu-v2/item-help-text.d.ts +6 -0
- package/build-types/dropdown-menu-v2/item-help-text.d.ts.map +1 -0
- package/build-types/dropdown-menu-v2/item-label.d.ts +6 -0
- package/build-types/dropdown-menu-v2/item-label.d.ts.map +1 -0
- package/build-types/dropdown-menu-v2/item.d.ts +3 -0
- package/build-types/dropdown-menu-v2/item.d.ts.map +1 -0
- package/build-types/dropdown-menu-v2/radio-item.d.ts +3 -0
- package/build-types/dropdown-menu-v2/radio-item.d.ts.map +1 -0
- package/build-types/dropdown-menu-v2/separator.d.ts +3 -0
- package/build-types/dropdown-menu-v2/separator.d.ts.map +1 -0
- package/build-types/dropdown-menu-v2/stories/index.story.d.ts +10 -10
- package/build-types/dropdown-menu-v2/stories/index.story.d.ts.map +1 -1
- package/build-types/dropdown-menu-v2/styles.d.ts +14 -6
- package/build-types/dropdown-menu-v2/styles.d.ts.map +1 -1
- package/build-types/dropdown-menu-v2/types.d.ts +6 -0
- package/build-types/dropdown-menu-v2/types.d.ts.map +1 -1
- package/build-types/dropdown-menu-v2/use-temporary-focus-visible-fix.d.ts +8 -0
- package/build-types/dropdown-menu-v2/use-temporary-focus-visible-fix.d.ts.map +1 -0
- package/build-types/focal-point-picker/styles/focal-point-style.d.ts.map +1 -1
- package/build-types/form-token-field/types.d.ts +1 -0
- package/build-types/form-token-field/types.d.ts.map +1 -1
- package/build-types/index.d.ts +4 -1
- package/build-types/index.d.ts.map +1 -1
- package/build-types/input-control/input-base.d.ts.map +1 -1
- package/build-types/input-control/input-prefix-wrapper.d.ts +2 -2
- package/build-types/input-control/input-prefix-wrapper.d.ts.map +1 -1
- package/build-types/input-control/input-suffix-wrapper.d.ts +2 -2
- package/build-types/input-control/input-suffix-wrapper.d.ts.map +1 -1
- package/build-types/input-control/reducer/reducer.d.ts.map +1 -1
- package/build-types/input-control/stories/index.story.d.ts +9 -0
- package/build-types/input-control/stories/index.story.d.ts.map +1 -1
- package/build-types/input-control/styles/input-control-styles.d.ts +15 -9
- package/build-types/input-control/styles/input-control-styles.d.ts.map +1 -1
- package/build-types/input-control/types.d.ts +23 -6
- package/build-types/input-control/types.d.ts.map +1 -1
- package/build-types/modal/index.d.ts.map +1 -1
- package/build-types/modal/stories/index.story.d.ts +3 -0
- package/build-types/modal/stories/index.story.d.ts.map +1 -1
- package/build-types/navigation/styles/navigation-styles.d.ts.map +1 -1
- package/build-types/navigator/index.d.ts +6 -6
- package/build-types/navigator/index.d.ts.map +1 -1
- package/build-types/navigator/navigator-provider/component.d.ts.map +1 -1
- package/build-types/navigator/navigator-screen/component.d.ts.map +1 -1
- package/build-types/navigator/stories/index.story.d.ts +1 -1
- package/build-types/navigator/stories/index.story.d.ts.map +1 -1
- package/build-types/navigator/types.d.ts +3 -1
- package/build-types/navigator/types.d.ts.map +1 -1
- package/build-types/navigator/use-navigator.d.ts +1 -2
- package/build-types/navigator/use-navigator.d.ts.map +1 -1
- package/build-types/private-apis.d.ts.map +1 -1
- package/build-types/range-control/styles/range-control-styles.d.ts.map +1 -1
- package/build-types/resizable-box/resize-tooltip/styles/resize-tooltip.styles.d.ts.map +1 -1
- package/build-types/select-control/styles/select-control-styles.d.ts +1 -1
- package/build-types/select-control/styles/select-control-styles.d.ts.map +1 -1
- package/build-types/slot-fill/index.d.ts +3 -0
- package/build-types/slot-fill/index.d.ts.map +1 -1
- package/build-types/tabs/index.d.ts.map +1 -1
- package/build-types/tabs/styles.d.ts.map +1 -1
- package/build-types/tabs/tablist.d.ts.map +1 -1
- package/build-types/unit-control/styles/unit-control-styles.d.ts.map +1 -1
- package/build-types/utils/config-values.d.ts +3 -3
- package/build-types/utils/element-rect.d.ts +32 -74
- package/build-types/utils/element-rect.d.ts.map +1 -1
- package/package.json +19 -20
- package/src/alignment-matrix-control/README.md +1 -5
- package/src/alignment-matrix-control/cell.tsx +3 -9
- package/src/alignment-matrix-control/icon.tsx +48 -30
- package/src/alignment-matrix-control/index.tsx +60 -50
- package/src/alignment-matrix-control/stories/index.story.tsx +3 -12
- package/src/alignment-matrix-control/styles.ts +113 -0
- package/src/alignment-matrix-control/types.ts +12 -1
- package/src/angle-picker-control/angle-circle.tsx +11 -9
- package/src/border-control/border-control/component.tsx +23 -16
- package/src/box-control/utils.ts +1 -1
- package/src/circular-option-picker/circular-option-picker-option.tsx +16 -19
- package/src/circular-option-picker/circular-option-picker.tsx +26 -12
- package/src/circular-option-picker/types.ts +2 -2
- package/src/clipboard-button/index.tsx +6 -6
- package/src/color-palette/test/utils.ts +21 -2
- package/src/color-palette/utils.ts +1 -3
- package/src/color-picker/color-copy-button.tsx +10 -8
- package/src/color-picker/hex-input.tsx +6 -10
- package/src/color-picker/input-with-slider.tsx +6 -10
- package/src/color-picker/styles.ts +1 -1
- package/src/combobox-control/types.ts +1 -0
- package/src/composite/README.md +5 -24
- package/src/composite/{context.ts → context.tsx} +1 -2
- package/src/composite/group-label.tsx +30 -0
- package/src/composite/group.tsx +30 -0
- package/src/composite/hover.tsx +30 -0
- package/src/composite/index.tsx +71 -166
- package/src/composite/item.tsx +30 -0
- package/src/composite/legacy/index.tsx +73 -11
- package/src/composite/legacy/stories/index.story.tsx +2 -1
- package/src/composite/legacy/test/index.tsx +57 -1
- package/src/composite/row.tsx +30 -0
- package/src/composite/stories/index.story.tsx +254 -365
- package/src/composite/typeahead.tsx +30 -0
- package/src/composite/types.ts +14 -16
- package/src/custom-gradient-picker/gradient-bar/control-points.tsx +10 -10
- package/src/custom-gradient-picker/style.scss +2 -21
- package/src/custom-select-control-v2/styles.ts +4 -4
- package/src/date-time/date/index.tsx +1 -1
- package/src/date-time/date/styles.ts +33 -13
- package/src/date-time/date/test/use-lilius.ts +417 -0
- package/src/date-time/date/use-lilius/index.ts +394 -0
- package/src/date-time/time/test/index.tsx +3 -6
- package/src/date-time/time/time-input/index.tsx +25 -25
- package/src/date-time/time/time-input/test/index.tsx +6 -7
- package/src/dimension-control/README.md +4 -0
- package/src/dimension-control/index.tsx +7 -1
- package/src/dimension-control/stories/index.story.tsx +7 -2
- package/src/dimension-control/test/__snapshots__/index.test.js.snap +16 -16
- package/src/dimension-control/test/index.test.js +1 -0
- package/src/draggable/index.tsx +4 -4
- package/src/dropdown-menu-v2/README.md +73 -60
- package/src/dropdown-menu-v2/checkbox-item.tsx +63 -0
- package/src/dropdown-menu-v2/context.tsx +13 -0
- package/src/dropdown-menu-v2/group-label.tsx +37 -0
- package/src/dropdown-menu-v2/group.tsx +26 -0
- package/src/dropdown-menu-v2/index.tsx +57 -197
- package/src/dropdown-menu-v2/item-help-text.tsx +23 -0
- package/src/dropdown-menu-v2/item-label.tsx +23 -0
- package/src/dropdown-menu-v2/item.tsx +50 -0
- package/src/dropdown-menu-v2/radio-item.tsx +70 -0
- package/src/dropdown-menu-v2/separator.tsx +27 -0
- package/src/dropdown-menu-v2/stories/index.story.tsx +295 -262
- package/src/dropdown-menu-v2/styles.ts +102 -66
- package/src/dropdown-menu-v2/test/index.tsx +159 -132
- package/src/dropdown-menu-v2/types.ts +7 -0
- package/src/dropdown-menu-v2/use-temporary-focus-visible-fix.ts +22 -0
- package/src/focal-point-picker/styles/focal-point-style.ts +6 -1
- package/src/form-toggle/style.scss +1 -1
- package/src/form-token-field/style.scss +2 -3
- package/src/form-token-field/types.ts +1 -0
- package/src/index.ts +6 -1
- package/src/input-control/index.tsx +2 -2
- package/src/input-control/input-base.tsx +4 -14
- package/src/input-control/input-prefix-wrapper.tsx +8 -4
- package/src/input-control/input-suffix-wrapper.tsx +4 -6
- package/src/input-control/reducer/reducer.ts +13 -10
- package/src/input-control/stories/index.story.tsx +31 -12
- package/src/input-control/styles/input-control-styles.tsx +42 -11
- package/src/input-control/types.ts +23 -7
- package/src/input-control/utils.ts +3 -3
- package/src/item-group/styles.ts +3 -3
- package/src/item-group/test/__snapshots__/index.js.snap +3 -3
- package/src/modal/index.tsx +21 -12
- package/src/modal/stories/index.story.tsx +8 -14
- package/src/modal/style.scss +5 -9
- package/src/navigation/index.tsx +4 -4
- package/src/navigation/styles/navigation-styles.tsx +3 -3
- package/src/navigator/index.ts +6 -6
- package/src/navigator/navigator-back-button/hook.ts +1 -1
- package/src/navigator/navigator-button/hook.ts +1 -1
- package/src/navigator/navigator-provider/README.md +2 -3
- package/src/navigator/navigator-provider/component.tsx +97 -82
- package/src/navigator/navigator-screen/component.tsx +7 -0
- package/src/navigator/navigator-to-parent-button/component.tsx +1 -1
- package/src/navigator/stories/index.story.tsx +82 -253
- package/src/navigator/test/index.tsx +8 -0
- package/src/navigator/types.ts +3 -1
- package/src/navigator/use-navigator.ts +1 -3
- package/src/palette-edit/index.tsx +2 -2
- package/src/popover/style.scss +2 -1
- package/src/private-apis.ts +1 -23
- package/src/range-control/styles/range-control-styles.ts +7 -7
- package/src/resizable-box/resize-tooltip/styles/resize-tooltip.styles.ts +2 -2
- package/src/resizable-box/style.scss +2 -2
- package/src/select-control/README.md +2 -2
- package/src/select-control/styles/select-control-styles.ts +5 -5
- package/src/slot-fill/bubbles-virtually/fill.tsx +4 -4
- package/src/slot-fill/index.tsx +1 -0
- package/src/snackbar/index.tsx +4 -4
- package/src/tab-panel/style.scss +0 -1
- package/src/tabs/index.tsx +8 -4
- package/src/tabs/styles.ts +42 -14
- package/src/tabs/tablist.tsx +5 -4
- package/src/text-control/style.scss +3 -2
- package/src/toggle-group-control/toggle-group-control/utils.ts +7 -7
- package/src/tools-panel/tools-panel/hook.ts +6 -6
- package/src/unit-control/styles/unit-control-styles.ts +2 -1
- package/src/utils/config-values.js +6 -4
- package/src/utils/element-rect.ts +93 -130
- package/src/utils/hooks/use-update-effect.js +4 -4
- package/tsconfig.tsbuildinfo +1 -1
- package/build/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.js +0 -66
- package/build/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.js.map +0 -1
- package/build/alignment-matrix-control/styles/alignment-matrix-control-styles.js +0 -77
- package/build/alignment-matrix-control/styles/alignment-matrix-control-styles.js.map +0 -1
- package/build/navigator/navigator-back-button/index.js +0 -14
- package/build/navigator/navigator-back-button/index.js.map +0 -1
- package/build/navigator/navigator-button/index.js +0 -14
- package/build/navigator/navigator-button/index.js.map +0 -1
- package/build/navigator/navigator-provider/index.js +0 -14
- package/build/navigator/navigator-provider/index.js.map +0 -1
- package/build/navigator/navigator-screen/index.js +0 -14
- package/build/navigator/navigator-screen/index.js.map +0 -1
- package/build/navigator/navigator-to-parent-button/index.js +0 -14
- package/build/navigator/navigator-to-parent-button/index.js.map +0 -1
- package/build-module/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.js +0 -63
- package/build-module/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.js.map +0 -1
- package/build-module/alignment-matrix-control/styles/alignment-matrix-control-styles.js +0 -72
- package/build-module/alignment-matrix-control/styles/alignment-matrix-control-styles.js.map +0 -1
- package/build-module/navigator/navigator-back-button/index.js +0 -2
- package/build-module/navigator/navigator-back-button/index.js.map +0 -1
- package/build-module/navigator/navigator-button/index.js +0 -2
- package/build-module/navigator/navigator-button/index.js.map +0 -1
- package/build-module/navigator/navigator-provider/index.js +0 -2
- package/build-module/navigator/navigator-provider/index.js.map +0 -1
- package/build-module/navigator/navigator-screen/index.js +0 -2
- package/build-module/navigator/navigator-screen/index.js.map +0 -1
- package/build-module/navigator/navigator-to-parent-button/index.js +0 -2
- package/build-module/navigator/navigator-to-parent-button/index.js.map +0 -1
- package/build-types/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.d.ts +0 -18
- package/build-types/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.d.ts.map +0 -1
- package/build-types/alignment-matrix-control/styles/alignment-matrix-control-styles.d.ts.map +0 -1
- package/build-types/composite/stories/utils.d.ts +0 -29
- package/build-types/composite/stories/utils.d.ts.map +0 -1
- package/build-types/navigator/navigator-back-button/index.d.ts +0 -2
- package/build-types/navigator/navigator-back-button/index.d.ts.map +0 -1
- package/build-types/navigator/navigator-button/index.d.ts +0 -2
- package/build-types/navigator/navigator-button/index.d.ts.map +0 -1
- package/build-types/navigator/navigator-provider/index.d.ts +0 -2
- package/build-types/navigator/navigator-provider/index.d.ts.map +0 -1
- package/build-types/navigator/navigator-screen/index.d.ts +0 -2
- package/build-types/navigator/navigator-screen/index.d.ts.map +0 -1
- package/build-types/navigator/navigator-to-parent-button/index.d.ts +0 -2
- package/build-types/navigator/navigator-to-parent-button/index.d.ts.map +0 -1
- package/src/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.ts +0 -77
- package/src/alignment-matrix-control/styles/alignment-matrix-control-styles.ts +0 -102
- package/src/composite/stories/utils.tsx +0 -76
- package/src/navigator/navigator-back-button/index.ts +0 -1
- package/src/navigator/navigator-button/index.ts +0 -1
- package/src/navigator/navigator-provider/index.ts +0 -1
- package/src/navigator/navigator-screen/index.ts +0 -1
- package/src/navigator/navigator-to-parent-button/index.ts +0 -1
|
@@ -12,17 +12,17 @@ import type { FillComponentProps } from '../types';
|
|
|
12
12
|
|
|
13
13
|
function useForceUpdate() {
|
|
14
14
|
const [ , setState ] = useState( {} );
|
|
15
|
-
const
|
|
15
|
+
const mountedRef = useRef( true );
|
|
16
16
|
|
|
17
17
|
useEffect( () => {
|
|
18
|
-
|
|
18
|
+
mountedRef.current = true;
|
|
19
19
|
return () => {
|
|
20
|
-
|
|
20
|
+
mountedRef.current = false;
|
|
21
21
|
};
|
|
22
22
|
}, [] );
|
|
23
23
|
|
|
24
24
|
return () => {
|
|
25
|
-
if (
|
|
25
|
+
if ( mountedRef.current ) {
|
|
26
26
|
setState( {} );
|
|
27
27
|
}
|
|
28
28
|
};
|
package/src/slot-fill/index.tsx
CHANGED
package/src/snackbar/index.tsx
CHANGED
|
@@ -96,17 +96,17 @@ function UnforwardedSnackbar(
|
|
|
96
96
|
|
|
97
97
|
// The `onDismiss/onRemove` can have unstable references,
|
|
98
98
|
// trigger side-effect cleanup, and reset timers.
|
|
99
|
-
const
|
|
99
|
+
const callbacksRef = useRef( { onDismiss, onRemove } );
|
|
100
100
|
useLayoutEffect( () => {
|
|
101
|
-
|
|
101
|
+
callbacksRef.current = { onDismiss, onRemove };
|
|
102
102
|
} );
|
|
103
103
|
|
|
104
104
|
useEffect( () => {
|
|
105
105
|
// Only set up the timeout dismiss if we're not explicitly dismissing.
|
|
106
106
|
const timeoutHandle = setTimeout( () => {
|
|
107
107
|
if ( ! explicitDismiss ) {
|
|
108
|
-
|
|
109
|
-
|
|
108
|
+
callbacksRef.current.onDismiss?.();
|
|
109
|
+
callbacksRef.current.onRemove?.();
|
|
110
110
|
}
|
|
111
111
|
}, NOTICE_TIMEOUT );
|
|
112
112
|
|
package/src/tab-panel/style.scss
CHANGED
package/src/tabs/index.tsx
CHANGED
|
@@ -55,9 +55,9 @@ function Tabs( {
|
|
|
55
55
|
// Keep track of whether tabs have been populated. This is used to prevent
|
|
56
56
|
// certain effects from firing too early while tab data and relevant
|
|
57
57
|
// variables are undefined during the initial render.
|
|
58
|
-
const
|
|
58
|
+
const tabsHavePopulatedRef = useRef( false );
|
|
59
59
|
if ( items.length > 0 ) {
|
|
60
|
-
|
|
60
|
+
tabsHavePopulatedRef.current = true;
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
const selectedTab = items.find( ( item ) => item.id === selectedId );
|
|
@@ -94,7 +94,7 @@ function Tabs( {
|
|
|
94
94
|
|
|
95
95
|
if ( firstEnabledTab ) {
|
|
96
96
|
setSelectedId( firstEnabledTab.id );
|
|
97
|
-
} else if (
|
|
97
|
+
} else if ( tabsHavePopulatedRef.current ) {
|
|
98
98
|
setSelectedId( null );
|
|
99
99
|
}
|
|
100
100
|
}
|
|
@@ -148,7 +148,11 @@ function Tabs( {
|
|
|
148
148
|
|
|
149
149
|
// Once the tabs have populated, if the `selectedTabId` still can't be
|
|
150
150
|
// found, clear the selection.
|
|
151
|
-
if (
|
|
151
|
+
if (
|
|
152
|
+
tabsHavePopulatedRef.current &&
|
|
153
|
+
!! selectedTabId &&
|
|
154
|
+
! selectedTab
|
|
155
|
+
) {
|
|
152
156
|
setSelectedId( null );
|
|
153
157
|
}
|
|
154
158
|
}, [ isControlled, selectedTab, selectedTabId, setSelectedId ] );
|
package/src/tabs/styles.ts
CHANGED
|
@@ -7,7 +7,7 @@ import * as Ariakit from '@ariakit/react';
|
|
|
7
7
|
/**
|
|
8
8
|
* Internal dependencies
|
|
9
9
|
*/
|
|
10
|
-
import { COLORS } from '../utils';
|
|
10
|
+
import { COLORS, CONFIG } from '../utils';
|
|
11
11
|
import { space } from '../utils/space';
|
|
12
12
|
|
|
13
13
|
export const TabListWrapper = styled.div`
|
|
@@ -22,36 +22,65 @@ export const TabListWrapper = styled.div`
|
|
|
22
22
|
text-align: start;
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
@media not ( prefers-reduced-motion
|
|
25
|
+
@media not ( prefers-reduced-motion ) {
|
|
26
26
|
&.is-animation-enabled::after {
|
|
27
|
-
transition-property:
|
|
27
|
+
transition-property: transform;
|
|
28
28
|
transition-duration: 0.2s;
|
|
29
29
|
transition-timing-function: ease-out;
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
|
+
--direction-factor: 1;
|
|
33
|
+
--direction-origin-x: left;
|
|
34
|
+
--indicator-start: var( --indicator-left );
|
|
35
|
+
&:dir( rtl ) {
|
|
36
|
+
--direction-factor: -1;
|
|
37
|
+
--direction-origin-x: right;
|
|
38
|
+
--indicator-start: var( --indicator-right );
|
|
39
|
+
}
|
|
32
40
|
&::after {
|
|
33
41
|
content: '';
|
|
34
42
|
position: absolute;
|
|
35
43
|
pointer-events: none;
|
|
44
|
+
transform-origin: var( --direction-origin-x ) top;
|
|
36
45
|
|
|
37
46
|
// Windows high contrast mode.
|
|
38
47
|
outline: 2px solid transparent;
|
|
39
48
|
outline-offset: -1px;
|
|
40
49
|
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
50
|
+
|
|
51
|
+
/* Using a large value to avoid antialiasing rounding issues
|
|
52
|
+
when scaling in the transform, see: https://stackoverflow.com/a/52159123 */
|
|
53
|
+
--antialiasing-factor: 100;
|
|
54
|
+
&:not( [aria-orientation='vertical'] ) {
|
|
55
|
+
&::after {
|
|
56
|
+
bottom: 0;
|
|
57
|
+
height: 0;
|
|
58
|
+
width: calc( var( --antialiasing-factor ) * 1px );
|
|
59
|
+
transform: translateX(
|
|
60
|
+
calc(
|
|
61
|
+
var( --indicator-start ) * var( --direction-factor ) *
|
|
62
|
+
1px
|
|
63
|
+
)
|
|
64
|
+
)
|
|
65
|
+
scaleX(
|
|
66
|
+
calc(
|
|
67
|
+
var( --indicator-width ) / var( --antialiasing-factor )
|
|
68
|
+
)
|
|
69
|
+
);
|
|
70
|
+
border-bottom: var( --wp-admin-border-width-focus ) solid
|
|
71
|
+
${ COLORS.theme.accent };
|
|
72
|
+
}
|
|
48
73
|
}
|
|
49
74
|
&[aria-orientation='vertical']::after {
|
|
50
75
|
z-index: -1;
|
|
76
|
+
top: 0;
|
|
51
77
|
left: 0;
|
|
52
78
|
width: 100%;
|
|
53
|
-
|
|
54
|
-
|
|
79
|
+
width: calc( var( --antialiasing-factor ) * 1px );
|
|
80
|
+
transform: translateY( calc( var( --indicator-top ) * 1px ) )
|
|
81
|
+
scaleY(
|
|
82
|
+
calc( var( --indicator-height ) / var( --antialiasing-factor ) )
|
|
83
|
+
);
|
|
55
84
|
background-color: ${ COLORS.theme.gray[ 100 ] };
|
|
56
85
|
}
|
|
57
86
|
`;
|
|
@@ -107,7 +136,7 @@ export const Tab = styled( Ariakit.Tab )`
|
|
|
107
136
|
// Outline works for Windows high contrast mode as well.
|
|
108
137
|
outline: var( --wp-admin-border-width-focus ) solid
|
|
109
138
|
${ COLORS.theme.accent };
|
|
110
|
-
border-radius:
|
|
139
|
+
border-radius: ${ CONFIG.radiusSmall };
|
|
111
140
|
|
|
112
141
|
// Animation
|
|
113
142
|
opacity: 0;
|
|
@@ -136,7 +165,6 @@ export const TabPanel = styled( Ariakit.TabPanel )`
|
|
|
136
165
|
}
|
|
137
166
|
|
|
138
167
|
&:focus-visible {
|
|
139
|
-
border-radius: 2px;
|
|
140
168
|
box-shadow: 0 0 0 var( --wp-admin-border-width-focus )
|
|
141
169
|
${ COLORS.theme.accent };
|
|
142
170
|
// Windows high contrast mode.
|
package/src/tabs/tablist.tsx
CHANGED
|
@@ -78,10 +78,11 @@ export const TabList = forwardRef<
|
|
|
78
78
|
onBlur={ onBlur }
|
|
79
79
|
{ ...otherProps }
|
|
80
80
|
style={ {
|
|
81
|
-
'--indicator-
|
|
82
|
-
'--indicator-
|
|
83
|
-
'--indicator-
|
|
84
|
-
'--indicator-
|
|
81
|
+
'--indicator-top': indicatorPosition.top,
|
|
82
|
+
'--indicator-right': indicatorPosition.right,
|
|
83
|
+
'--indicator-left': indicatorPosition.left,
|
|
84
|
+
'--indicator-width': indicatorPosition.width,
|
|
85
|
+
'--indicator-height': indicatorPosition.height,
|
|
85
86
|
...otherProps.style,
|
|
86
87
|
} }
|
|
87
88
|
className={ clsx(
|
|
@@ -23,7 +23,8 @@
|
|
|
23
23
|
|
|
24
24
|
// Subtract 1px to account for the border, which isn't included on the element
|
|
25
25
|
// on newer components like InputControl, SelectControl, etc.
|
|
26
|
-
|
|
27
|
-
padding-
|
|
26
|
+
// These values should be shared with the `controlPaddingX` in ./utils/config-values.js
|
|
27
|
+
padding-left: $grid-unit-15;
|
|
28
|
+
padding-right: $grid-unit-15;
|
|
28
29
|
}
|
|
29
30
|
}
|
|
@@ -21,23 +21,23 @@ type ValueProp = ToggleGroupControlProps[ 'value' ];
|
|
|
21
21
|
export function useComputeControlledOrUncontrolledValue(
|
|
22
22
|
valueProp: ValueProp
|
|
23
23
|
): { value: ValueProp; defaultValue: ValueProp } {
|
|
24
|
-
const
|
|
24
|
+
const isInitialRenderRef = useRef( true );
|
|
25
25
|
const prevValueProp = usePrevious( valueProp );
|
|
26
|
-
const
|
|
26
|
+
const prevIsControlledRef = useRef( false );
|
|
27
27
|
|
|
28
28
|
useEffect( () => {
|
|
29
|
-
if (
|
|
30
|
-
|
|
29
|
+
if ( isInitialRenderRef.current ) {
|
|
30
|
+
isInitialRenderRef.current = false;
|
|
31
31
|
}
|
|
32
32
|
}, [] );
|
|
33
33
|
|
|
34
34
|
// Assume the component is being used in controlled mode on the first re-render
|
|
35
35
|
// that has a different `valueProp` from the previous render.
|
|
36
36
|
const isControlled =
|
|
37
|
-
|
|
38
|
-
( !
|
|
37
|
+
prevIsControlledRef.current ||
|
|
38
|
+
( ! isInitialRenderRef.current && prevValueProp !== valueProp );
|
|
39
39
|
useEffect( () => {
|
|
40
|
-
|
|
40
|
+
prevIsControlledRef.current = isControlled;
|
|
41
41
|
}, [ isControlled ] );
|
|
42
42
|
|
|
43
43
|
if ( isControlled ) {
|
|
@@ -94,16 +94,16 @@ export function useToolsPanel(
|
|
|
94
94
|
...otherProps
|
|
95
95
|
} = useContextSystem( props, 'ToolsPanel' );
|
|
96
96
|
|
|
97
|
-
const
|
|
98
|
-
const wasResetting =
|
|
97
|
+
const isResettingRef = useRef( false );
|
|
98
|
+
const wasResetting = isResettingRef.current;
|
|
99
99
|
|
|
100
|
-
// `
|
|
100
|
+
// `isResettingRef` is cleared via this hook to effectively batch together
|
|
101
101
|
// the resetAll task. Without this, the flag is cleared after the first
|
|
102
102
|
// control updates and forces a rerender with subsequent controls then
|
|
103
103
|
// believing they need to reset, unfortunately using stale data.
|
|
104
104
|
useEffect( () => {
|
|
105
105
|
if ( wasResetting ) {
|
|
106
|
-
|
|
106
|
+
isResettingRef.current = false;
|
|
107
107
|
}
|
|
108
108
|
}, [ wasResetting ] );
|
|
109
109
|
|
|
@@ -303,7 +303,7 @@ export function useToolsPanel(
|
|
|
303
303
|
// Resets display of children and executes resetAll callback if available.
|
|
304
304
|
const resetAllItems = useCallback( () => {
|
|
305
305
|
if ( typeof resetAll === 'function' ) {
|
|
306
|
-
|
|
306
|
+
isResettingRef.current = true;
|
|
307
307
|
resetAll( resetAllFilters );
|
|
308
308
|
}
|
|
309
309
|
|
|
@@ -340,7 +340,7 @@ export function useToolsPanel(
|
|
|
340
340
|
firstDisplayedItem,
|
|
341
341
|
flagItemCustomization,
|
|
342
342
|
hasMenuItems: !! panelItems.length,
|
|
343
|
-
isResetting:
|
|
343
|
+
isResetting: isResettingRef.current,
|
|
344
344
|
lastDisplayedItem,
|
|
345
345
|
menuItems,
|
|
346
346
|
panelId,
|
|
@@ -64,6 +64,7 @@ const baseUnitLabelStyles = ( { selectSize }: SelectProps ) => {
|
|
|
64
64
|
white-space: nowrap;
|
|
65
65
|
overflow: hidden;
|
|
66
66
|
text-overflow: ellipsis;
|
|
67
|
+
field-sizing: content;
|
|
67
68
|
|
|
68
69
|
&:not( :disabled ) {
|
|
69
70
|
color: ${ COLORS.theme.accent };
|
|
@@ -114,7 +115,7 @@ const unitSelectSizes = ( { selectSize = 'default' }: SelectProps ) => {
|
|
|
114
115
|
align-items: center;
|
|
115
116
|
|
|
116
117
|
&:where( :not( :disabled ) ):hover {
|
|
117
|
-
box-shadow:
|
|
118
|
+
box-shadow: 0 0 0
|
|
118
119
|
${ CONFIG.borderWidth + ' ' + COLORS.ui.borderFocus };
|
|
119
120
|
outline: ${ CONFIG.borderWidth } solid transparent; // For High Contrast Mode
|
|
120
121
|
}
|
|
@@ -5,14 +5,16 @@ import { space } from './space';
|
|
|
5
5
|
import { COLORS } from './colors-values';
|
|
6
6
|
|
|
7
7
|
const CONTROL_HEIGHT = '36px';
|
|
8
|
-
const CONTROL_PADDING_X = '12px';
|
|
9
8
|
|
|
10
9
|
const CONTROL_PROPS = {
|
|
11
10
|
controlSurfaceColor: COLORS.white,
|
|
12
11
|
controlTextActiveColor: COLORS.theme.accent,
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
|
|
13
|
+
// These values should be shared with TextControl.
|
|
14
|
+
controlPaddingX: 12,
|
|
15
|
+
controlPaddingXSmall: 8,
|
|
16
|
+
controlPaddingXLarge: 12 * 1.3334, // TODO: Deprecate
|
|
17
|
+
|
|
16
18
|
controlBackgroundColor: COLORS.white,
|
|
17
19
|
controlBoxShadow: 'transparent',
|
|
18
20
|
controlBoxShadowFocus: `0 0 0 0.5px ${ COLORS.theme.accent }`,
|
|
@@ -2,134 +2,37 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* WordPress dependencies
|
|
4
4
|
*/
|
|
5
|
-
import {
|
|
5
|
+
import { useLayoutEffect, useRef, useState } from '@wordpress/element';
|
|
6
|
+
import { useResizeObserver } from '@wordpress/compose';
|
|
6
7
|
/**
|
|
7
8
|
* Internal dependencies
|
|
8
9
|
*/
|
|
9
10
|
import { useEvent } from './hooks/use-event';
|
|
10
11
|
|
|
11
12
|
/**
|
|
12
|
-
*
|
|
13
|
+
* The position and dimensions of an element, relative to its offset parent.
|
|
13
14
|
*/
|
|
14
|
-
export type
|
|
15
|
+
export type ElementOffsetRect = {
|
|
15
16
|
/**
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
* @default true
|
|
17
|
+
* The distance from the top edge of the offset parent to the top edge of
|
|
18
|
+
* the element.
|
|
20
19
|
*/
|
|
21
|
-
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* Tracks an element's "rect" (size and position) and fires `onRect` for all
|
|
26
|
-
* of its discrete values. The element can be changed dynamically and **it
|
|
27
|
-
* must not be stored in a ref**. Instead, it should be stored in a React
|
|
28
|
-
* state or equivalent.
|
|
29
|
-
*
|
|
30
|
-
* By default, `onRect` is called initially for the target element (including
|
|
31
|
-
* when the target element changes), not only on size or position updates.
|
|
32
|
-
* This allows consumers of the hook to always be in sync with all rect values
|
|
33
|
-
* of the target element throughout its lifetime. This behavior can be
|
|
34
|
-
* disabled by setting the `fireOnElementInit` option to `false`.
|
|
35
|
-
*
|
|
36
|
-
* Under the hood, it sets up a `ResizeObserver` that tracks the element. The
|
|
37
|
-
* target element can be changed dynamically, and the observer will be
|
|
38
|
-
* updated accordingly.
|
|
39
|
-
*
|
|
40
|
-
* @example
|
|
41
|
-
*
|
|
42
|
-
* ```tsx
|
|
43
|
-
* const [ targetElement, setTargetElement ] = useState< HTMLElement | null >();
|
|
44
|
-
*
|
|
45
|
-
* useTrackElementRectUpdates( targetElement, ( element ) => {
|
|
46
|
-
* console.log( 'Element resized:', element );
|
|
47
|
-
* } );
|
|
48
|
-
*
|
|
49
|
-
* <div ref={ setTargetElement } />;
|
|
50
|
-
* ```
|
|
51
|
-
*/
|
|
52
|
-
export function useTrackElementRectUpdates(
|
|
20
|
+
top: number;
|
|
53
21
|
/**
|
|
54
|
-
* The
|
|
22
|
+
* The distance from the right edge of the offset parent to the right edge
|
|
23
|
+
* of the element.
|
|
55
24
|
*/
|
|
56
|
-
|
|
25
|
+
right: number;
|
|
57
26
|
/**
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
* set to `false`.
|
|
27
|
+
* The distance from the bottom edge of the offset parent to the bottom edge
|
|
28
|
+
* of the element.
|
|
61
29
|
*/
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* The element being tracked at the time of this update.
|
|
65
|
-
*/
|
|
66
|
-
element: HTMLElement,
|
|
67
|
-
/**
|
|
68
|
-
* The list of
|
|
69
|
-
* [`ResizeObserverEntry`](https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserverEntry)
|
|
70
|
-
* objects passed to the `ResizeObserver.observe` callback. This list
|
|
71
|
-
* won't be available when the observer is set up, and only on updates.
|
|
72
|
-
*/
|
|
73
|
-
resizeObserverEntries?: ResizeObserverEntry[]
|
|
74
|
-
) => void,
|
|
75
|
-
{ fireOnElementInit = true }: UseTrackElementRectUpdatesOptions = {}
|
|
76
|
-
) {
|
|
77
|
-
const onRectEvent = useEvent( onRect );
|
|
78
|
-
|
|
79
|
-
const observedElementRef = useRef< HTMLElement | null >();
|
|
80
|
-
const resizeObserverRef = useRef< ResizeObserver >();
|
|
81
|
-
|
|
82
|
-
// TODO: could this be a layout effect?
|
|
83
|
-
useEffect( () => {
|
|
84
|
-
if ( targetElement === observedElementRef.current ) {
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
observedElementRef.current = targetElement;
|
|
89
|
-
|
|
90
|
-
// Set up a ResizeObserver.
|
|
91
|
-
if ( ! resizeObserverRef.current ) {
|
|
92
|
-
resizeObserverRef.current = new ResizeObserver( ( entries ) => {
|
|
93
|
-
if ( observedElementRef.current ) {
|
|
94
|
-
onRectEvent( observedElementRef.current, entries );
|
|
95
|
-
}
|
|
96
|
-
} );
|
|
97
|
-
}
|
|
98
|
-
const { current: resizeObserver } = resizeObserverRef;
|
|
99
|
-
|
|
100
|
-
// Observe new element.
|
|
101
|
-
if ( targetElement ) {
|
|
102
|
-
if ( fireOnElementInit ) {
|
|
103
|
-
// TODO: investigate if this can be removed,
|
|
104
|
-
// see: https://stackoverflow.com/a/60026394
|
|
105
|
-
onRectEvent( targetElement );
|
|
106
|
-
}
|
|
107
|
-
resizeObserver.observe( targetElement );
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
return () => {
|
|
111
|
-
// Unobserve previous element.
|
|
112
|
-
if ( observedElementRef.current ) {
|
|
113
|
-
resizeObserver.unobserve( observedElementRef.current );
|
|
114
|
-
}
|
|
115
|
-
};
|
|
116
|
-
}, [ fireOnElementInit, onRectEvent, targetElement ] );
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
/**
|
|
120
|
-
* The position and dimensions of an element, relative to its offset parent.
|
|
121
|
-
*/
|
|
122
|
-
export type ElementOffsetRect = {
|
|
30
|
+
bottom: number;
|
|
123
31
|
/**
|
|
124
32
|
* The distance from the left edge of the offset parent to the left edge of
|
|
125
33
|
* the element.
|
|
126
34
|
*/
|
|
127
35
|
left: number;
|
|
128
|
-
/**
|
|
129
|
-
* The distance from the top edge of the offset parent to the top edge of
|
|
130
|
-
* the element.
|
|
131
|
-
*/
|
|
132
|
-
top: number;
|
|
133
36
|
/**
|
|
134
37
|
* The width of the element.
|
|
135
38
|
*/
|
|
@@ -144,51 +47,111 @@ export type ElementOffsetRect = {
|
|
|
144
47
|
* An `ElementOffsetRect` object with all values set to zero.
|
|
145
48
|
*/
|
|
146
49
|
export const NULL_ELEMENT_OFFSET_RECT = {
|
|
147
|
-
left: 0,
|
|
148
50
|
top: 0,
|
|
51
|
+
right: 0,
|
|
52
|
+
bottom: 0,
|
|
53
|
+
left: 0,
|
|
149
54
|
width: 0,
|
|
150
55
|
height: 0,
|
|
151
56
|
} satisfies ElementOffsetRect;
|
|
152
57
|
|
|
153
58
|
/**
|
|
154
59
|
* Returns the position and dimensions of an element, relative to its offset
|
|
155
|
-
* parent
|
|
156
|
-
*
|
|
60
|
+
* parent, with subpixel precision. Values reflect the real measures before any
|
|
61
|
+
* potential scaling distortions along the X and Y axes.
|
|
157
62
|
*
|
|
158
|
-
*
|
|
159
|
-
*
|
|
160
|
-
*
|
|
161
|
-
*
|
|
63
|
+
* Useful in contexts where plain `getBoundingClientRect` calls or `ResizeObserver`
|
|
64
|
+
* entries are not suitable, such as when the element is transformed, and when
|
|
65
|
+
* `element.offset<Top|Left|Width|Height>` methods are not precise enough.
|
|
66
|
+
*
|
|
67
|
+
* **Note:** in some contexts, like when the scale is 0, this method will fail
|
|
68
|
+
* because it's impossible to calculate a scaling ratio. When that happens, it
|
|
69
|
+
* will return `undefined`.
|
|
162
70
|
*/
|
|
163
71
|
export function getElementOffsetRect(
|
|
164
72
|
element: HTMLElement
|
|
165
|
-
): ElementOffsetRect {
|
|
73
|
+
): ElementOffsetRect | undefined {
|
|
74
|
+
// Position and dimension values computed with `getBoundingClientRect` have
|
|
75
|
+
// subpixel precision, but are affected by distortions since they represent
|
|
76
|
+
// the "real" measures, or in other words, the actual final values as rendered
|
|
77
|
+
// by the browser.
|
|
78
|
+
const rect = element.getBoundingClientRect();
|
|
79
|
+
if ( rect.width === 0 || rect.height === 0 ) {
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
const offsetParentRect =
|
|
83
|
+
element.offsetParent?.getBoundingClientRect() ??
|
|
84
|
+
NULL_ELEMENT_OFFSET_RECT;
|
|
85
|
+
|
|
86
|
+
// Computed widths and heights have subpixel precision, and are not affected
|
|
87
|
+
// by distortions.
|
|
88
|
+
const computedWidth = parseFloat( getComputedStyle( element ).width );
|
|
89
|
+
const computedHeight = parseFloat( getComputedStyle( element ).height );
|
|
90
|
+
|
|
91
|
+
// We can obtain the current scale factor for the element by comparing "computed"
|
|
92
|
+
// dimensions with the "real" ones.
|
|
93
|
+
const scaleX = computedWidth / rect.width;
|
|
94
|
+
const scaleY = computedHeight / rect.height;
|
|
95
|
+
|
|
166
96
|
return {
|
|
167
|
-
//
|
|
168
|
-
//
|
|
169
|
-
//
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
//
|
|
175
|
-
width:
|
|
176
|
-
height:
|
|
97
|
+
// To obtain the adjusted values for the position:
|
|
98
|
+
// 1. Compute the element's position relative to the offset parent.
|
|
99
|
+
// 2. Correct for the scale factor.
|
|
100
|
+
top: ( rect.top - offsetParentRect?.top ) * scaleY,
|
|
101
|
+
right: ( offsetParentRect?.right - rect.right ) * scaleX,
|
|
102
|
+
bottom: ( offsetParentRect?.bottom - rect.bottom ) * scaleY,
|
|
103
|
+
left: ( rect.left - offsetParentRect?.left ) * scaleX,
|
|
104
|
+
// Computed dimensions don't need any adjustments.
|
|
105
|
+
width: computedWidth,
|
|
106
|
+
height: computedHeight,
|
|
177
107
|
};
|
|
178
108
|
}
|
|
179
109
|
|
|
110
|
+
const POLL_RATE = 100;
|
|
111
|
+
|
|
180
112
|
/**
|
|
181
113
|
* Tracks the position and dimensions of an element, relative to its offset
|
|
182
114
|
* parent. The element can be changed dynamically.
|
|
115
|
+
*
|
|
116
|
+
* **Note:** sometimes, the measurement will fail (see `getElementOffsetRect`'s
|
|
117
|
+
* documentation for more details). When that happens, this hook will attempt
|
|
118
|
+
* to measure again after a frame, and if that fails, it will poll every 100
|
|
119
|
+
* milliseconds until it succeeds.
|
|
183
120
|
*/
|
|
184
121
|
export function useTrackElementOffsetRect(
|
|
185
122
|
targetElement: HTMLElement | undefined | null
|
|
186
123
|
) {
|
|
187
124
|
const [ indicatorPosition, setIndicatorPosition ] =
|
|
188
125
|
useState< ElementOffsetRect >( NULL_ELEMENT_OFFSET_RECT );
|
|
126
|
+
const intervalRef = useRef< ReturnType< typeof setInterval > >();
|
|
127
|
+
|
|
128
|
+
const measure = useEvent( () => {
|
|
129
|
+
if ( targetElement ) {
|
|
130
|
+
const elementOffsetRect = getElementOffsetRect( targetElement );
|
|
131
|
+
if ( elementOffsetRect ) {
|
|
132
|
+
setIndicatorPosition( elementOffsetRect );
|
|
133
|
+
clearInterval( intervalRef.current );
|
|
134
|
+
return true;
|
|
135
|
+
}
|
|
136
|
+
} else {
|
|
137
|
+
clearInterval( intervalRef.current );
|
|
138
|
+
}
|
|
139
|
+
return false;
|
|
140
|
+
} );
|
|
141
|
+
|
|
142
|
+
const setElement = useResizeObserver( () => {
|
|
143
|
+
if ( ! measure() ) {
|
|
144
|
+
requestAnimationFrame( () => {
|
|
145
|
+
if ( ! measure() ) {
|
|
146
|
+
intervalRef.current = setInterval( measure, POLL_RATE );
|
|
147
|
+
}
|
|
148
|
+
} );
|
|
149
|
+
}
|
|
150
|
+
} );
|
|
189
151
|
|
|
190
|
-
|
|
191
|
-
|
|
152
|
+
useLayoutEffect(
|
|
153
|
+
() => setElement( targetElement ),
|
|
154
|
+
[ setElement, targetElement ]
|
|
192
155
|
);
|
|
193
156
|
|
|
194
157
|
return indicatorPosition;
|
|
@@ -12,12 +12,12 @@ import { useRef, useEffect } from '@wordpress/element';
|
|
|
12
12
|
* @param {import('react').DependencyList} deps
|
|
13
13
|
*/
|
|
14
14
|
function useUpdateEffect( effect, deps ) {
|
|
15
|
-
const
|
|
15
|
+
const mountedRef = useRef( false );
|
|
16
16
|
useEffect( () => {
|
|
17
|
-
if (
|
|
17
|
+
if ( mountedRef.current ) {
|
|
18
18
|
return effect();
|
|
19
19
|
}
|
|
20
|
-
|
|
20
|
+
mountedRef.current = true;
|
|
21
21
|
return undefined;
|
|
22
22
|
// Disable reasons:
|
|
23
23
|
// 1. This hook needs to pass a dep list that isn't an array literal
|
|
@@ -28,7 +28,7 @@ function useUpdateEffect( effect, deps ) {
|
|
|
28
28
|
|
|
29
29
|
useEffect(
|
|
30
30
|
() => () => {
|
|
31
|
-
|
|
31
|
+
mountedRef.current = false;
|
|
32
32
|
},
|
|
33
33
|
[]
|
|
34
34
|
);
|