@wordpress/components 19.16.0 → 19.17.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 +40 -4
- package/build/base-control/index.js +6 -3
- package/build/base-control/index.js.map +1 -1
- package/build/base-control/styles/base-control-styles.js +8 -8
- package/build/base-control/styles/base-control-styles.js.map +1 -1
- package/build/border-control/styles.js +17 -25
- package/build/border-control/styles.js.map +1 -1
- package/build/box-control/all-input-control.js +2 -27
- package/build/box-control/all-input-control.js.map +1 -1
- package/build/box-control/index.js +10 -5
- package/build/box-control/index.js.map +1 -1
- package/build/box-control/styles/box-control-styles.js +17 -9
- package/build/box-control/styles/box-control-styles.js.map +1 -1
- package/build/box-control/utils.js +35 -0
- package/build/box-control/utils.js.map +1 -1
- package/build/color-picker/styles.js +10 -8
- package/build/color-picker/styles.js.map +1 -1
- package/build/combobox-control/index.js +14 -6
- package/build/combobox-control/index.js.map +1 -1
- package/build/custom-select-control/index.js +3 -1
- package/build/custom-select-control/index.js.map +1 -1
- package/build/date-time/time/index.js +6 -2
- package/build/date-time/time/index.js.map +1 -1
- package/build/date-time/time/styles.js +17 -24
- package/build/date-time/time/styles.js.map +1 -1
- package/build/external-link/index.js +6 -0
- package/build/external-link/index.js.map +1 -1
- package/build/flex/flex/component.js +9 -9
- package/build/flex/flex/component.js.map +1 -1
- package/build/flex/flex/hook.js +6 -16
- package/build/flex/flex/hook.js.map +1 -1
- package/build/flex/flex/index.js.map +1 -1
- package/build/flex/flex-block/component.js +9 -9
- package/build/flex/flex-block/component.js.map +1 -1
- package/build/flex/flex-block/hook.js +0 -4
- package/build/flex/flex-block/hook.js.map +1 -1
- package/build/flex/flex-block/index.js.map +1 -1
- package/build/flex/flex-item/component.js +9 -9
- package/build/flex/flex-item/component.js.map +1 -1
- package/build/flex/flex-item/hook.js +1 -5
- package/build/flex/flex-item/hook.js.map +1 -1
- package/build/flex/flex-item/index.js.map +1 -1
- package/build/flex/index.js.map +1 -1
- package/build/flex/styles.js +5 -5
- package/build/flex/styles.js.map +1 -1
- package/build/focal-point-picker/styles/focal-point-picker-style.js +22 -22
- package/build/focal-point-picker/styles/focal-point-picker-style.js.map +1 -1
- package/build/focal-point-picker/styles/focal-point-style.js +5 -5
- package/build/focal-point-picker/styles/focal-point-style.js.map +1 -1
- package/build/font-size-picker/index.js +15 -6
- package/build/font-size-picker/index.js.map +1 -1
- package/build/form-token-field/index.js +6 -2
- package/build/form-token-field/index.js.map +1 -1
- package/build/form-token-field/suggestions-list.js +19 -6
- package/build/form-token-field/suggestions-list.js.map +1 -1
- package/build/index.js +7 -1
- package/build/index.js.map +1 -1
- package/build/input-control/input-base.js +1 -2
- package/build/input-control/input-base.js.map +1 -1
- package/build/input-control/reducer/actions.js +3 -1
- package/build/input-control/reducer/actions.js.map +1 -1
- package/build/input-control/reducer/reducer.js +28 -11
- package/build/input-control/reducer/reducer.js.map +1 -1
- package/build/input-control/reducer/state.js.map +1 -1
- package/build/input-control/styles/input-control-styles.js +26 -26
- package/build/input-control/styles/input-control-styles.js.map +1 -1
- package/build/mobile/global-styles-context/utils.native.js +23 -3
- package/build/mobile/global-styles-context/utils.native.js.map +1 -1
- package/build/mobile/image/index.native.js +23 -2
- package/build/mobile/image/index.native.js.map +1 -1
- package/build/mobile/link-picker/link-picker-screen.native.js +10 -4
- package/build/mobile/link-picker/link-picker-screen.native.js.map +1 -1
- package/build/mobile/picker/index.ios.js +16 -3
- package/build/mobile/picker/index.ios.js.map +1 -1
- package/build/placeholder/index.js +11 -14
- package/build/placeholder/index.js.map +1 -1
- package/build/placeholder/types.js +6 -0
- package/build/placeholder/types.js.map +1 -0
- package/build/popover/index.js +113 -62
- package/build/popover/index.js.map +1 -1
- package/build/range-control/styles/range-control-styles.js +40 -40
- 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 +6 -6
- package/build/select-control/styles/select-control-styles.js.map +1 -1
- package/build/style-provider/index.js +10 -7
- package/build/style-provider/index.js.map +1 -1
- package/build/style-provider/types.js +6 -0
- package/build/style-provider/types.js.map +1 -0
- package/build/swatch/index.js +2 -0
- package/build/swatch/index.js.map +1 -1
- package/build/swatch/types.js +6 -0
- package/build/swatch/types.js.map +1 -0
- package/build/text/hook.js +5 -8
- package/build/text/hook.js.map +1 -1
- package/build/tools-panel/styles.js +13 -10
- package/build/tools-panel/styles.js.map +1 -1
- package/build/tools-panel/tools-panel/hook.js +1 -1
- package/build/tools-panel/tools-panel/hook.js.map +1 -1
- package/build/ui/tooltip/styles.js +4 -4
- package/build/ui/tooltip/styles.js.map +1 -1
- package/build/unit-control/styles/unit-control-styles.js +34 -9
- package/build/unit-control/styles/unit-control-styles.js.map +1 -1
- package/build/utils/base-label.js +24 -0
- package/build/utils/base-label.js.map +1 -0
- package/build/utils/box-sizing.js +22 -0
- package/build/utils/box-sizing.js.map +1 -0
- package/build/utils/style-mixins.js +16 -0
- package/build/utils/style-mixins.js.map +1 -1
- package/build-module/base-control/index.js +7 -5
- package/build-module/base-control/index.js.map +1 -1
- package/build-module/base-control/styles/base-control-styles.js +9 -9
- package/build-module/base-control/styles/base-control-styles.js.map +1 -1
- package/build-module/border-control/styles.js +18 -26
- package/build-module/border-control/styles.js.map +1 -1
- package/build-module/box-control/all-input-control.js +3 -28
- package/build-module/box-control/all-input-control.js.map +1 -1
- package/build-module/box-control/index.js +4 -4
- package/build-module/box-control/index.js.map +1 -1
- package/build-module/box-control/styles/box-control-styles.js +18 -10
- package/build-module/box-control/styles/box-control-styles.js.map +1 -1
- package/build-module/box-control/utils.js +33 -0
- package/build-module/box-control/utils.js.map +1 -1
- package/build-module/color-picker/styles.js +9 -8
- package/build-module/color-picker/styles.js.map +1 -1
- package/build-module/combobox-control/index.js +13 -6
- package/build-module/combobox-control/index.js.map +1 -1
- package/build-module/custom-select-control/index.js +2 -1
- package/build-module/custom-select-control/index.js.map +1 -1
- package/build-module/date-time/time/index.js +6 -3
- package/build-module/date-time/time/index.js.map +1 -1
- package/build-module/date-time/time/styles.js +15 -21
- package/build-module/date-time/time/styles.js.map +1 -1
- package/build-module/external-link/index.js +6 -0
- package/build-module/external-link/index.js.map +1 -1
- package/build-module/flex/flex/component.js +9 -9
- package/build-module/flex/flex/component.js.map +1 -1
- package/build-module/flex/flex/hook.js +6 -15
- package/build-module/flex/flex/hook.js.map +1 -1
- package/build-module/flex/flex/index.js.map +1 -1
- package/build-module/flex/flex-block/component.js +9 -9
- package/build-module/flex/flex-block/component.js.map +1 -1
- package/build-module/flex/flex-block/hook.js +0 -4
- package/build-module/flex/flex-block/hook.js.map +1 -1
- package/build-module/flex/flex-block/index.js.map +1 -1
- package/build-module/flex/flex-item/component.js +9 -9
- package/build-module/flex/flex-item/component.js.map +1 -1
- package/build-module/flex/flex-item/hook.js +1 -5
- package/build-module/flex/flex-item/hook.js.map +1 -1
- package/build-module/flex/flex-item/index.js.map +1 -1
- package/build-module/flex/index.js.map +1 -1
- package/build-module/flex/styles.js +5 -5
- package/build-module/flex/styles.js.map +1 -1
- package/build-module/focal-point-picker/styles/focal-point-picker-style.js +22 -22
- package/build-module/focal-point-picker/styles/focal-point-picker-style.js.map +1 -1
- package/build-module/focal-point-picker/styles/focal-point-style.js +5 -5
- package/build-module/focal-point-picker/styles/focal-point-style.js.map +1 -1
- package/build-module/font-size-picker/index.js +14 -6
- package/build-module/font-size-picker/index.js.map +1 -1
- package/build-module/form-token-field/index.js +5 -2
- package/build-module/form-token-field/index.js.map +1 -1
- package/build-module/form-token-field/suggestions-list.js +19 -6
- package/build-module/form-token-field/suggestions-list.js.map +1 -1
- package/build-module/index.js +1 -1
- package/build-module/index.js.map +1 -1
- package/build-module/input-control/input-base.js +1 -2
- package/build-module/input-control/input-base.js.map +1 -1
- package/build-module/input-control/reducer/actions.js +1 -0
- package/build-module/input-control/reducer/actions.js.map +1 -1
- package/build-module/input-control/reducer/reducer.js +28 -11
- package/build-module/input-control/reducer/reducer.js.map +1 -1
- package/build-module/input-control/reducer/state.js.map +1 -1
- package/build-module/input-control/styles/input-control-styles.js +27 -27
- package/build-module/input-control/styles/input-control-styles.js.map +1 -1
- package/build-module/mobile/global-styles-context/utils.native.js +23 -4
- package/build-module/mobile/global-styles-context/utils.native.js.map +1 -1
- package/build-module/mobile/image/index.native.js +25 -4
- package/build-module/mobile/image/index.native.js.map +1 -1
- package/build-module/mobile/link-picker/link-picker-screen.native.js +11 -4
- package/build-module/mobile/link-picker/link-picker-screen.native.js.map +1 -1
- package/build-module/mobile/picker/index.ios.js +14 -3
- package/build-module/mobile/picker/index.ios.js.map +1 -1
- package/build-module/placeholder/index.js +10 -15
- package/build-module/placeholder/index.js.map +1 -1
- package/build-module/placeholder/types.js +2 -0
- package/build-module/placeholder/types.js.map +1 -0
- package/build-module/popover/index.js +112 -62
- package/build-module/popover/index.js.map +1 -1
- package/build-module/range-control/styles/range-control-styles.js +40 -40
- 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 +4 -4
- 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 +6 -6
- package/build-module/select-control/styles/select-control-styles.js.map +1 -1
- package/build-module/style-provider/index.js +10 -5
- package/build-module/style-provider/index.js.map +1 -1
- package/build-module/style-provider/types.js +2 -0
- package/build-module/style-provider/types.js.map +1 -0
- package/build-module/swatch/index.js +2 -0
- package/build-module/swatch/index.js.map +1 -1
- package/build-module/swatch/types.js +2 -0
- package/build-module/swatch/types.js.map +1 -0
- package/build-module/text/hook.js +5 -7
- package/build-module/text/hook.js.map +1 -1
- package/build-module/tools-panel/styles.js +12 -11
- package/build-module/tools-panel/styles.js.map +1 -1
- package/build-module/tools-panel/tools-panel/hook.js +1 -1
- package/build-module/tools-panel/tools-panel/hook.js.map +1 -1
- package/build-module/ui/tooltip/styles.js +4 -4
- package/build-module/ui/tooltip/styles.js.map +1 -1
- package/build-module/unit-control/styles/unit-control-styles.js +35 -9
- package/build-module/unit-control/styles/unit-control-styles.js.map +1 -1
- package/build-module/utils/base-label.js +18 -0
- package/build-module/utils/base-label.js.map +1 -0
- package/build-module/utils/box-sizing.js +16 -0
- package/build-module/utils/box-sizing.js.map +1 -0
- package/build-module/utils/style-mixins.js +2 -0
- package/build-module/utils/style-mixins.js.map +1 -1
- package/build-style/style-rtl.css +50 -30
- package/build-style/style.css +52 -30
- package/build-types/base-control/index.d.ts +4 -3
- package/build-types/base-control/index.d.ts.map +1 -1
- package/build-types/base-control/stories/index.d.ts +1 -1
- package/build-types/base-control/stories/index.d.ts.map +1 -1
- package/build-types/base-control/styles/base-control-styles.d.ts.map +1 -1
- package/build-types/base-control/types.d.ts +0 -1
- package/build-types/base-control/types.d.ts.map +1 -1
- package/build-types/border-control/styles.d.ts.map +1 -1
- package/build-types/color-picker/color-display.d.ts +13 -0
- package/build-types/color-picker/color-display.d.ts.map +1 -0
- package/build-types/color-picker/styles.d.ts.map +1 -1
- package/build-types/date-time/time/index.d.ts.map +1 -1
- package/build-types/date-time/time/styles.d.ts +0 -4
- package/build-types/date-time/time/styles.d.ts.map +1 -1
- package/build-types/external-link/index.d.ts.map +1 -1
- package/build-types/flex/flex/component.d.ts +5 -4
- package/build-types/flex/flex/component.d.ts.map +1 -1
- package/build-types/flex/flex/hook.d.ts +5 -2
- package/build-types/flex/flex/hook.d.ts.map +1 -1
- package/build-types/flex/flex/index.d.ts +2 -2
- package/build-types/flex/flex/index.d.ts.map +1 -1
- package/build-types/flex/flex-block/component.d.ts +5 -4
- package/build-types/flex/flex-block/component.d.ts.map +1 -1
- package/build-types/flex/flex-block/hook.d.ts +6 -3
- package/build-types/flex/flex-block/hook.d.ts.map +1 -1
- package/build-types/flex/flex-block/index.d.ts +2 -2
- package/build-types/flex/flex-block/index.d.ts.map +1 -1
- package/build-types/flex/flex-item/component.d.ts +5 -4
- package/build-types/flex/flex-item/component.d.ts.map +1 -1
- package/build-types/flex/flex-item/hook.d.ts +6 -3
- package/build-types/flex/flex-item/hook.d.ts.map +1 -1
- package/build-types/flex/flex-item/index.d.ts +2 -2
- package/build-types/flex/flex-item/index.d.ts.map +1 -1
- package/build-types/flex/index.d.ts +3 -3
- package/build-types/flex/index.d.ts.map +1 -1
- package/build-types/flex/stories/index.d.ts +13 -0
- package/build-types/flex/stories/index.d.ts.map +1 -0
- package/build-types/flex/styles.d.ts +5 -5
- package/build-types/flex/styles.d.ts.map +1 -1
- package/build-types/flex/test/index.d.ts +2 -0
- package/build-types/flex/test/index.d.ts.map +1 -0
- package/build-types/flex/types.d.ts +15 -11
- package/build-types/flex/types.d.ts.map +1 -1
- package/build-types/flyout/context.d.ts +6 -0
- package/build-types/flyout/context.d.ts.map +1 -0
- package/build-types/flyout/flyout/component.d.ts +21 -0
- package/build-types/flyout/flyout/component.d.ts.map +1 -0
- package/build-types/flyout/flyout/hook.d.ts +270 -0
- package/build-types/flyout/flyout/hook.d.ts.map +1 -0
- package/build-types/flyout/flyout/index.d.ts +3 -0
- package/build-types/flyout/flyout/index.d.ts.map +1 -0
- package/build-types/flyout/flyout-content/component.d.ts +3 -0
- package/build-types/flyout/flyout-content/component.d.ts.map +1 -0
- package/build-types/flyout/flyout-content/index.d.ts +2 -0
- package/build-types/flyout/flyout-content/index.d.ts.map +1 -0
- package/build-types/flyout/index.d.ts +2 -0
- package/build-types/flyout/index.d.ts.map +1 -0
- package/build-types/flyout/styles.d.ts +22 -0
- package/build-types/flyout/styles.d.ts.map +1 -0
- package/build-types/flyout/types.d.ts +80 -0
- package/build-types/flyout/types.d.ts.map +1 -0
- package/build-types/flyout/utils.d.ts +8 -0
- package/build-types/flyout/utils.d.ts.map +1 -0
- package/build-types/form-token-field/index.d.ts.map +1 -1
- package/build-types/form-token-field/stories/index.d.ts +6 -0
- package/build-types/form-token-field/stories/index.d.ts.map +1 -1
- package/build-types/form-token-field/suggestions-list.d.ts +1 -1
- package/build-types/form-token-field/suggestions-list.d.ts.map +1 -1
- package/build-types/form-token-field/types.d.ts +15 -3
- package/build-types/form-token-field/types.d.ts.map +1 -1
- package/build-types/input-control/input-base.d.ts.map +1 -1
- package/build-types/input-control/reducer/actions.d.ts +3 -1
- package/build-types/input-control/reducer/actions.d.ts.map +1 -1
- package/build-types/input-control/reducer/reducer.d.ts +2 -2
- package/build-types/input-control/reducer/reducer.d.ts.map +1 -1
- package/build-types/input-control/reducer/state.d.ts +2 -2
- package/build-types/input-control/reducer/state.d.ts.map +1 -1
- package/build-types/input-control/styles/input-control-styles.d.ts.map +1 -1
- package/build-types/placeholder/index.d.ts +16 -0
- package/build-types/placeholder/index.d.ts.map +1 -0
- package/build-types/placeholder/stories/index.d.ts +12 -0
- package/build-types/placeholder/stories/index.d.ts.map +1 -0
- package/build-types/placeholder/types.d.ts +47 -0
- package/build-types/placeholder/types.d.ts.map +1 -0
- package/build-types/popover/index.d.ts +1 -1
- package/build-types/popover/index.d.ts.map +1 -1
- package/build-types/popover/utils.d.ts +70 -0
- package/build-types/popover/utils.d.ts.map +1 -0
- package/build-types/range-control/styles/range-control-styles.d.ts.map +1 -1
- package/build-types/select-control/styles/select-control-styles.d.ts.map +1 -1
- package/build-types/style-provider/index.d.ts +7 -4
- package/build-types/style-provider/index.d.ts.map +1 -1
- package/build-types/style-provider/types.d.ts +15 -0
- package/build-types/style-provider/types.d.ts.map +1 -0
- package/build-types/swatch/index.d.ts +5 -0
- package/build-types/swatch/index.d.ts.map +1 -0
- package/build-types/swatch/types.d.ts +11 -0
- package/build-types/swatch/types.d.ts.map +1 -0
- package/build-types/text/hook.d.ts.map +1 -1
- package/build-types/tools-panel/styles.d.ts +1 -1
- package/build-types/tools-panel/styles.d.ts.map +1 -1
- package/build-types/tools-panel/tools-panel/hook.d.ts.map +1 -1
- package/build-types/ui/tooltip/styles.d.ts.map +1 -1
- package/build-types/unit-control/index.d.ts +1 -1
- package/build-types/unit-control/stories/index.d.ts.map +1 -1
- package/build-types/unit-control/styles/unit-control-styles.d.ts.map +1 -1
- package/build-types/unit-control/types.d.ts +1 -7
- package/build-types/unit-control/types.d.ts.map +1 -1
- package/build-types/utils/base-label.d.ts +2 -0
- package/build-types/utils/base-label.d.ts.map +1 -0
- package/build-types/utils/box-sizing.d.ts +2 -0
- package/build-types/utils/box-sizing.d.ts.map +1 -0
- package/build-types/utils/hooks/use-combined-ref.d.ts +8 -0
- package/build-types/utils/hooks/use-combined-ref.d.ts.map +1 -0
- package/build-types/utils/style-mixins.d.ts +2 -0
- package/package.json +17 -17
- package/src/base-control/index.tsx +5 -3
- package/src/base-control/stories/index.tsx +1 -0
- package/src/base-control/styles/base-control-styles.ts +9 -5
- package/src/base-control/types.ts +0 -1
- package/src/border-control/styles.ts +2 -1
- package/src/box-control/all-input-control.js +3 -27
- package/src/box-control/index.js +5 -6
- package/src/box-control/styles/box-control-styles.js +1 -2
- package/src/box-control/utils.js +32 -0
- package/src/color-picker/styles.ts +3 -0
- package/src/combobox-control/README.md +7 -0
- package/src/combobox-control/index.js +14 -4
- package/src/combobox-control/stories/index.js +49 -5
- package/src/custom-gradient-picker/style.scss +0 -12
- package/src/custom-select-control/index.js +3 -2
- package/src/custom-select-control/style.scss +1 -5
- package/src/date-time/time/index.tsx +7 -5
- package/src/date-time/time/styles.ts +3 -6
- package/src/external-link/index.tsx +10 -0
- package/src/flex/flex/README.md +19 -13
- package/src/flex/flex/{component.js → component.tsx} +15 -10
- package/src/flex/flex/{hook.js → hook.ts} +14 -13
- package/src/flex/flex/{index.js → index.ts} +0 -0
- package/src/flex/flex-block/README.md +3 -3
- package/src/flex/flex-block/{component.js → component.tsx} +15 -10
- package/src/flex/flex-block/{hook.js → hook.ts} +5 -5
- package/src/flex/flex-block/{index.js → index.ts} +0 -0
- package/src/flex/flex-item/README.md +6 -5
- package/src/flex/flex-item/{component.js → component.tsx} +15 -10
- package/src/flex/flex-item/{hook.js → hook.ts} +10 -7
- package/src/flex/flex-item/{index.js → index.ts} +0 -0
- package/src/flex/{index.js → index.ts} +0 -0
- package/src/flex/stories/index.tsx +81 -0
- package/src/flex/{styles.js → styles.ts} +0 -0
- package/src/flex/test/__snapshots__/{index.js.snap → index.tsx.snap} +49 -9
- package/src/flex/test/index.tsx +84 -0
- package/src/flex/types.ts +15 -11
- package/src/focal-point-picker/styles/focal-point-picker-style.js +0 -5
- package/src/focal-point-picker/styles/focal-point-style.js +0 -1
- package/src/font-size-picker/index.js +18 -7
- package/src/font-size-picker/stories/index.js +6 -0
- package/src/form-token-field/README.md +2 -1
- package/src/form-token-field/index.tsx +5 -2
- package/src/form-token-field/stories/index.tsx +14 -0
- package/src/form-token-field/style.scss +0 -5
- package/src/form-token-field/suggestions-list.tsx +21 -12
- package/src/form-token-field/types.ts +16 -2
- package/src/index.js +4 -1
- package/src/input-control/input-base.tsx +0 -1
- package/src/input-control/reducer/actions.ts +3 -1
- package/src/input-control/reducer/reducer.ts +27 -10
- package/src/input-control/reducer/state.ts +7 -2
- package/src/input-control/styles/input-control-styles.tsx +3 -1
- package/src/input-control/test/index.js +20 -4
- package/src/mobile/global-styles-context/utils.native.js +21 -4
- package/src/mobile/image/index.native.js +27 -2
- package/src/mobile/link-picker/link-picker-screen.native.js +12 -4
- package/src/mobile/picker/index.ios.js +16 -0
- package/src/mobile/picker/styles.native.scss +8 -0
- package/src/panel/style.scss +4 -1
- package/src/placeholder/README.md +49 -9
- package/src/placeholder/{index.js → index.tsx} +27 -23
- package/src/placeholder/stories/index.tsx +64 -0
- package/src/placeholder/style.scss +0 -4
- package/src/placeholder/types.ts +48 -0
- package/src/popover/README.md +7 -0
- package/src/popover/index.js +144 -70
- package/src/popover/stories/index.js +199 -98
- package/src/popover/style.scss +60 -6
- package/src/popover/test/index.js +23 -1
- package/src/range-control/styles/range-control-styles.ts +0 -12
- package/src/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js +1 -1
- package/src/select-control/styles/select-control-styles.ts +0 -1
- package/src/style-provider/index.tsx +41 -0
- package/src/style-provider/types.ts +15 -0
- package/src/swatch/{index.js → index.tsx} +4 -1
- package/src/swatch/types.ts +11 -0
- package/src/text/hook.js +5 -3
- package/src/toggle-group-control/test/__snapshots__/index.js.snap +24 -0
- package/src/tools-panel/styles.ts +7 -16
- package/src/tools-panel/test/__snapshots__/index.js.snap +2 -11
- package/src/tools-panel/tools-panel/hook.ts +6 -1
- package/src/ui/tooltip/styles.js +1 -0
- package/src/ui/tooltip/test/__snapshots__/index.js.snap +1 -0
- package/src/unit-control/stories/index.tsx +16 -23
- package/src/unit-control/styles/unit-control-styles.ts +93 -41
- package/src/unit-control/types.ts +1 -7
- package/src/utils/base-label.ts +13 -0
- package/src/utils/box-sizing.ts +14 -0
- package/src/utils/style-mixins.js +2 -0
- package/tsconfig.json +2 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/src/flex/stories/index.js +0 -29
- package/src/flex/test/index.js +0 -77
- package/src/placeholder/stories/index.js +0 -44
- package/src/popover/stories/_utils.js +0 -64
- package/src/style-provider/index.js +0 -31
|
@@ -29,22 +29,18 @@ const PlaceholderIllustration = createElement(SVG, {
|
|
|
29
29
|
/**
|
|
30
30
|
* Renders a placeholder. Normally used by blocks to render their empty state.
|
|
31
31
|
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
* @param {string} props.label Title of the placeholder.
|
|
36
|
-
* @param {string} props.instructions Instructions of the placeholder.
|
|
37
|
-
* @param {string} props.className Class to set on the container div.
|
|
38
|
-
* @param {Object} props.notices A rendered notices list.
|
|
39
|
-
* @param {Object} props.preview Preview to be rendered in the placeholder.
|
|
40
|
-
* @param {boolean} props.isColumnLayout Whether a column layout should be used.
|
|
41
|
-
* @param {boolean} props.withIllustration Whether to add an illustration to the placeholder.
|
|
32
|
+
* ```jsx
|
|
33
|
+
* import { Placeholder } from '@wordpress/components';
|
|
34
|
+
* import { more } from '@wordpress/icons';
|
|
42
35
|
*
|
|
43
|
-
*
|
|
36
|
+
* const MyPlaceholder = () => <Placeholder icon={ more } label="Placeholder" />;
|
|
37
|
+
* ```
|
|
44
38
|
*/
|
|
45
39
|
|
|
46
|
-
function Placeholder(
|
|
47
|
-
|
|
40
|
+
export function Placeholder( // ref is omitted until we have `WordPressComponentPropsWithoutRef` or add
|
|
41
|
+
// ref forwarding to Placeholder.
|
|
42
|
+
props) {
|
|
43
|
+
const {
|
|
48
44
|
icon,
|
|
49
45
|
children,
|
|
50
46
|
label,
|
|
@@ -55,7 +51,7 @@ function Placeholder(_ref) {
|
|
|
55
51
|
isColumnLayout,
|
|
56
52
|
withIllustration,
|
|
57
53
|
...additionalProps
|
|
58
|
-
} =
|
|
54
|
+
} = props;
|
|
59
55
|
const [resizeListener, {
|
|
60
56
|
width
|
|
61
57
|
}] = useResizeObserver(); // Since `useResizeObserver` will report a width of `null` until after the
|
|
@@ -89,6 +85,5 @@ function Placeholder(_ref) {
|
|
|
89
85
|
className: "components-placeholder__instructions"
|
|
90
86
|
}, instructions), children));
|
|
91
87
|
}
|
|
92
|
-
|
|
93
88
|
export default Placeholder;
|
|
94
89
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/components/src/placeholder/index.
|
|
1
|
+
{"version":3,"sources":["@wordpress/components/src/placeholder/index.tsx"],"names":["classnames","useResizeObserver","SVG","Path","Icon","PlaceholderIllustration","Placeholder","props","icon","children","label","instructions","className","notices","preview","isColumnLayout","withIllustration","additionalProps","resizeListener","width","modifierClassNames","classes","fieldsetClasses"],"mappings":";;;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,iBAAT,QAAkC,oBAAlC;AACA,SAASC,GAAT,EAAcC,IAAd,QAA0B,uBAA1B;AAEA;AACA;AACA;;AACA,OAAOC,IAAP,MAAiB,SAAjB;AAIA,MAAMC,uBAAuB,GAC5B,cAAC,GAAD;AACC,EAAA,SAAS,EAAC,sCADX;AAEC,EAAA,IAAI,EAAC,MAFN;AAGC,EAAA,KAAK,EAAC,4BAHP;AAIC,EAAA,OAAO,EAAC,WAJT;AAKC,EAAA,mBAAmB,EAAC;AALrB,GAOC,cAAC,IAAD;AAAM,EAAA,YAAY,EAAC,oBAAnB;AAAwC,EAAA,CAAC,EAAC;AAA1C,EAPD,CADD;AAYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASC,WAAT,EACN;AACA;AACAC,KAHM,EAOL;AACD,QAAM;AACLC,IAAAA,IADK;AAELC,IAAAA,QAFK;AAGLC,IAAAA,KAHK;AAILC,IAAAA,YAJK;AAKLC,IAAAA,SALK;AAMLC,IAAAA,OANK;AAOLC,IAAAA,OAPK;AAQLC,IAAAA,cARK;AASLC,IAAAA,gBATK;AAUL,OAAGC;AAVE,MAWFV,KAXJ;AAYA,QAAM,CAAEW,cAAF,EAAkB;AAAEC,IAAAA;AAAF,GAAlB,IAAgClB,iBAAiB,EAAvD,CAbC,CAeD;AACA;;AACA,MAAImB,kBAAJ;;AACA,MAAK,OAAOD,KAAP,KAAiB,QAAtB,EAAiC;AAChCC,IAAAA,kBAAkB,GAAG;AACpB,kBAAYD,KAAK,IAAI,GADD;AAEpB,mBAAaA,KAAK,IAAI,GAAT,IAAgBA,KAAK,GAAG,GAFjB;AAGpB,kBAAYA,KAAK,GAAG;AAHA,KAArB;AAKA;;AAED,QAAME,OAAO,GAAGrB,UAAU,CACzB,wBADyB,EAEzBY,SAFyB,EAGzBQ,kBAHyB,EAIzBJ,gBAAgB,GAAG,kBAAH,GAAwB,IAJf,CAA1B;AAMA,QAAMM,eAAe,GAAGtB,UAAU,CAAE,kCAAF,EAAsC;AACvE,wBAAoBe;AADmD,GAAtC,CAAlC;AAGA,SACC,kCAAUE,eAAV;AAA4B,IAAA,SAAS,EAAGI;AAAxC,MACGL,gBAAgB,GAAGX,uBAAH,GAA6B,IADhD,EAEGa,cAFH,EAGGL,OAHH,EAIGC,OAAO,IACR;AAAK,IAAA,SAAS,EAAC;AAAf,KACGA,OADH,CALF,EASC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC,cAAC,IAAD;AAAM,IAAA,IAAI,EAAGN;AAAb,IADD,EAEGE,KAFH,CATD,EAaC;AAAU,IAAA,SAAS,EAAGY;AAAtB,KACG,CAAC,CAAEX,YAAH,IACD;AAAQ,IAAA,SAAS,EAAC;AAAlB,KACGA,YADH,CAFF,EAMGF,QANH,CAbD,CADD;AAwBA;AAED,eAAeH,WAAf","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useResizeObserver } from '@wordpress/compose';\nimport { SVG, Path } from '@wordpress/primitives';\n\n/**\n * Internal dependencies\n */\nimport Icon from '../icon';\nimport type { PlaceholderProps } from './types';\nimport type { WordPressComponentProps } from '../ui/context';\n\nconst PlaceholderIllustration = (\n\t<SVG\n\t\tclassName=\"components-placeholder__illustration\"\n\t\tfill=\"none\"\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\tviewBox=\"0 0 60 60\"\n\t\tpreserveAspectRatio=\"none\"\n\t>\n\t\t<Path vectorEffect=\"non-scaling-stroke\" d=\"M60 60 0 0\" />\n\t</SVG>\n);\n\n/**\n * Renders a placeholder. Normally used by blocks to render their empty state.\n *\n * ```jsx\n * import { Placeholder } from '@wordpress/components';\n * import { more } from '@wordpress/icons';\n *\n * const MyPlaceholder = () => <Placeholder icon={ more } label=\"Placeholder\" />;\n * ```\n */\nexport function Placeholder< IconProps = unknown >(\n\t// ref is omitted until we have `WordPressComponentPropsWithoutRef` or add\n\t// ref forwarding to Placeholder.\n\tprops: Omit<\n\t\tWordPressComponentProps< PlaceholderProps< IconProps >, 'div', false >,\n\t\t'ref'\n\t>\n) {\n\tconst {\n\t\ticon,\n\t\tchildren,\n\t\tlabel,\n\t\tinstructions,\n\t\tclassName,\n\t\tnotices,\n\t\tpreview,\n\t\tisColumnLayout,\n\t\twithIllustration,\n\t\t...additionalProps\n\t} = props;\n\tconst [ resizeListener, { width } ] = useResizeObserver();\n\n\t// Since `useResizeObserver` will report a width of `null` until after the\n\t// first render, avoid applying any modifier classes until width is known.\n\tlet modifierClassNames;\n\tif ( typeof width === 'number' ) {\n\t\tmodifierClassNames = {\n\t\t\t'is-large': width >= 480,\n\t\t\t'is-medium': width >= 160 && width < 480,\n\t\t\t'is-small': width < 160,\n\t\t};\n\t}\n\n\tconst classes = classnames(\n\t\t'components-placeholder',\n\t\tclassName,\n\t\tmodifierClassNames,\n\t\twithIllustration ? 'has-illustration' : null\n\t);\n\tconst fieldsetClasses = classnames( 'components-placeholder__fieldset', {\n\t\t'is-column-layout': isColumnLayout,\n\t} );\n\treturn (\n\t\t<div { ...additionalProps } className={ classes }>\n\t\t\t{ withIllustration ? PlaceholderIllustration : null }\n\t\t\t{ resizeListener }\n\t\t\t{ notices }\n\t\t\t{ preview && (\n\t\t\t\t<div className=\"components-placeholder__preview\">\n\t\t\t\t\t{ preview }\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t<div className=\"components-placeholder__label\">\n\t\t\t\t<Icon icon={ icon } />\n\t\t\t\t{ label }\n\t\t\t</div>\n\t\t\t<fieldset className={ fieldsetClasses }>\n\t\t\t\t{ !! instructions && (\n\t\t\t\t\t<legend className=\"components-placeholder__instructions\">\n\t\t\t\t\t\t{ instructions }\n\t\t\t\t\t</legend>\n\t\t\t\t) }\n\t\t\t\t{ children }\n\t\t\t</fieldset>\n\t\t</div>\n\t);\n}\n\nexport default Placeholder;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
|
|
@@ -15,6 +15,7 @@ import { useRef, useLayoutEffect, forwardRef, createContext, useContext, useMemo
|
|
|
15
15
|
import { useViewportMatch, useMergeRefs, __experimentalUseDialog as useDialog } from '@wordpress/compose';
|
|
16
16
|
import { close } from '@wordpress/icons';
|
|
17
17
|
import deprecated from '@wordpress/deprecated';
|
|
18
|
+
import { Path, SVG } from '@wordpress/primitives';
|
|
18
19
|
/**
|
|
19
20
|
* Internal dependencies
|
|
20
21
|
*/
|
|
@@ -29,7 +30,25 @@ import { getAnimateClassName } from '../animate';
|
|
|
29
30
|
* @type {string}
|
|
30
31
|
*/
|
|
31
32
|
|
|
32
|
-
const SLOT_NAME = 'Popover';
|
|
33
|
+
const SLOT_NAME = 'Popover'; // An SVG displaying a triangle facing down, filled with a solid
|
|
34
|
+
// color and bordered in such a way to create an arrow-like effect.
|
|
35
|
+
// Keeping the SVG's viewbox squared simplify the arrow positioning
|
|
36
|
+
// calculations.
|
|
37
|
+
|
|
38
|
+
const ArrowTriangle = props => createElement(SVG, _extends({}, props, {
|
|
39
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
40
|
+
viewBox: `0 0 100 100`,
|
|
41
|
+
className: "components-popover__triangle",
|
|
42
|
+
role: "presentation"
|
|
43
|
+
}), createElement(Path, {
|
|
44
|
+
className: "components-popover__triangle-bg",
|
|
45
|
+
d: "M 0 0 L 50 50 L 100 0"
|
|
46
|
+
}), createElement(Path, {
|
|
47
|
+
className: "components-popover__triangle-border",
|
|
48
|
+
d: "M 0 0 L 50 50 L 100 0",
|
|
49
|
+
vectorEffect: "non-scaling-stroke"
|
|
50
|
+
}));
|
|
51
|
+
|
|
33
52
|
const slotNameContext = createContext();
|
|
34
53
|
|
|
35
54
|
const positionToPlacement = position => {
|
|
@@ -79,7 +98,7 @@ const placementToAnimationOrigin = placement => {
|
|
|
79
98
|
return x + ' ' + y;
|
|
80
99
|
};
|
|
81
100
|
|
|
82
|
-
const Popover = (_ref,
|
|
101
|
+
const Popover = (_ref, forwardedRef) => {
|
|
83
102
|
let {
|
|
84
103
|
range,
|
|
85
104
|
animate = true,
|
|
@@ -90,7 +109,7 @@ const Popover = (_ref, ref) => {
|
|
|
90
109
|
noArrow = true,
|
|
91
110
|
isAlternate,
|
|
92
111
|
position,
|
|
93
|
-
placement = 'bottom-start',
|
|
112
|
+
placement: placementProp = 'bottom-start',
|
|
94
113
|
offset,
|
|
95
114
|
focusOnMount = 'firstElement',
|
|
96
115
|
anchorRef,
|
|
@@ -100,7 +119,7 @@ const Popover = (_ref, ref) => {
|
|
|
100
119
|
onFocusOutside,
|
|
101
120
|
__unstableSlotName = SLOT_NAME,
|
|
102
121
|
__unstableObserveElement,
|
|
103
|
-
__unstableForcePosition,
|
|
122
|
+
__unstableForcePosition = false,
|
|
104
123
|
__unstableShift = false,
|
|
105
124
|
...contentProps
|
|
106
125
|
} = _ref;
|
|
@@ -117,26 +136,30 @@ const Popover = (_ref, ref) => {
|
|
|
117
136
|
const isMobileViewport = useViewportMatch('medium', '<');
|
|
118
137
|
const isExpanded = expandOnMobile && isMobileViewport;
|
|
119
138
|
const hasArrow = !isExpanded && !noArrow;
|
|
120
|
-
const
|
|
139
|
+
const normalizedPlacementFromProps = position ? positionToPlacement(position) : placementProp;
|
|
121
140
|
const ownerDocument = useMemo(() => {
|
|
141
|
+
var _documentToReturn;
|
|
142
|
+
|
|
143
|
+
let documentToReturn;
|
|
144
|
+
|
|
122
145
|
if (anchorRef !== null && anchorRef !== void 0 && anchorRef.top) {
|
|
123
|
-
|
|
146
|
+
documentToReturn = anchorRef === null || anchorRef === void 0 ? void 0 : anchorRef.top.ownerDocument;
|
|
124
147
|
} else if (anchorRef !== null && anchorRef !== void 0 && anchorRef.startContainer) {
|
|
125
|
-
|
|
148
|
+
documentToReturn = anchorRef.startContainer.ownerDocument;
|
|
126
149
|
} else if (anchorRef !== null && anchorRef !== void 0 && anchorRef.current) {
|
|
127
|
-
|
|
150
|
+
documentToReturn = anchorRef.current.ownerDocument;
|
|
128
151
|
} else if (anchorRef) {
|
|
129
152
|
// This one should be deprecated.
|
|
130
|
-
|
|
153
|
+
documentToReturn = anchorRef.ownerDocument;
|
|
131
154
|
} else if (anchorRect && anchorRect !== null && anchorRect !== void 0 && anchorRect.ownerDocument) {
|
|
132
|
-
|
|
155
|
+
documentToReturn = anchorRect.ownerDocument;
|
|
133
156
|
} else if (getAnchorRect) {
|
|
134
|
-
var _getAnchorRect
|
|
157
|
+
var _getAnchorRect;
|
|
135
158
|
|
|
136
|
-
|
|
159
|
+
documentToReturn = (_getAnchorRect = getAnchorRect(anchorRefFallback.current)) === null || _getAnchorRect === void 0 ? void 0 : _getAnchorRect.ownerDocument;
|
|
137
160
|
}
|
|
138
161
|
|
|
139
|
-
return document;
|
|
162
|
+
return (_documentToReturn = documentToReturn) !== null && _documentToReturn !== void 0 ? _documentToReturn : document;
|
|
140
163
|
}, [anchorRef, anchorRect, getAnchorRect]);
|
|
141
164
|
/**
|
|
142
165
|
* Offsets the position of the popover when the anchor is inside an iframe.
|
|
@@ -156,22 +179,35 @@ const Popover = (_ref, ref) => {
|
|
|
156
179
|
|
|
157
180
|
const iframeRect = frameElement.getBoundingClientRect();
|
|
158
181
|
return {
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
fn(_ref2) {
|
|
162
|
-
let {
|
|
163
|
-
x,
|
|
164
|
-
y
|
|
165
|
-
} = _ref2;
|
|
166
|
-
return {
|
|
167
|
-
x: x + iframeRect.left,
|
|
168
|
-
y: y + iframeRect.top
|
|
169
|
-
};
|
|
170
|
-
}
|
|
171
|
-
|
|
182
|
+
x: iframeRect.left,
|
|
183
|
+
y: iframeRect.top
|
|
172
184
|
};
|
|
173
185
|
}, [ownerDocument]);
|
|
174
|
-
const
|
|
186
|
+
const middleware = [frameOffset || offset ? offsetMiddleware(_ref2 => {
|
|
187
|
+
let {
|
|
188
|
+
placement: currentPlacement
|
|
189
|
+
} = _ref2;
|
|
190
|
+
|
|
191
|
+
if (!frameOffset) {
|
|
192
|
+
return offset;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
const isTopBottomPlacement = currentPlacement.includes('top') || currentPlacement.includes('bottom'); // The main axis should represent the gap between the
|
|
196
|
+
// floating element and the reference element. The cross
|
|
197
|
+
// axis is always perpendicular to the main axis.
|
|
198
|
+
|
|
199
|
+
const mainAxis = isTopBottomPlacement ? 'y' : 'x';
|
|
200
|
+
const crossAxis = mainAxis === 'x' ? 'y' : 'x'; // When the popover is before the reference, subtract the offset,
|
|
201
|
+
// of the main axis else add it.
|
|
202
|
+
|
|
203
|
+
const hasBeforePlacement = currentPlacement.includes('top') || currentPlacement.includes('left');
|
|
204
|
+
const mainAxisModifier = hasBeforePlacement ? -1 : 1;
|
|
205
|
+
const normalizedOffset = offset ? offset : 0;
|
|
206
|
+
return {
|
|
207
|
+
mainAxis: normalizedOffset + frameOffset[mainAxis] * mainAxisModifier,
|
|
208
|
+
crossAxis: frameOffset[crossAxis]
|
|
209
|
+
};
|
|
210
|
+
}) : undefined, __unstableForcePosition ? undefined : flip(), __unstableForcePosition ? undefined : size({
|
|
175
211
|
apply(sizeProps) {
|
|
176
212
|
const {
|
|
177
213
|
height
|
|
@@ -216,35 +252,42 @@ const Popover = (_ref, ref) => {
|
|
|
216
252
|
onClose: onDialogClose
|
|
217
253
|
});
|
|
218
254
|
const {
|
|
255
|
+
// Positioning coordinates
|
|
219
256
|
x,
|
|
220
257
|
y,
|
|
258
|
+
// Callback refs (not regular refs). This allows the position to be updated.
|
|
259
|
+
// when either elements change.
|
|
221
260
|
reference,
|
|
222
261
|
floating,
|
|
223
|
-
|
|
262
|
+
// Object with "regular" refs to both "reference" and "floating"
|
|
224
263
|
refs,
|
|
264
|
+
// Type of CSS position property to use (absolute or fixed)
|
|
265
|
+
strategy,
|
|
225
266
|
update,
|
|
226
|
-
placement:
|
|
267
|
+
placement: computedPlacement,
|
|
227
268
|
middlewareData: {
|
|
228
269
|
arrow: arrowData = {}
|
|
229
270
|
}
|
|
230
271
|
} = useFloating({
|
|
231
|
-
placement:
|
|
232
|
-
middleware
|
|
233
|
-
});
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
272
|
+
placement: normalizedPlacementFromProps,
|
|
273
|
+
middleware
|
|
274
|
+
}); // Update the `reference`'s ref.
|
|
275
|
+
//
|
|
276
|
+
// In floating-ui's terms:
|
|
277
|
+
// - "reference" refers to the popover's anchor element.
|
|
278
|
+
// - "floating" refers the floating popover's element.
|
|
279
|
+
// A floating element can also be positioned relative to a virtual element,
|
|
280
|
+
// instead of a real one. A virtual element is represented by an object
|
|
281
|
+
// with the `getBoundingClientRect()` function (like real elements).
|
|
282
|
+
// See https://floating-ui.com/docs/virtual-elements for more info.
|
|
241
283
|
|
|
242
284
|
useLayoutEffect(() => {
|
|
243
|
-
|
|
244
|
-
let usedRef;
|
|
285
|
+
let resultingReferenceRef;
|
|
245
286
|
|
|
246
287
|
if (anchorRef !== null && anchorRef !== void 0 && anchorRef.top) {
|
|
247
|
-
|
|
288
|
+
// Create a virtual element for the ref. The expectation is that
|
|
289
|
+
// if anchorRef.top is defined, then anchorRef.bottom is defined too.
|
|
290
|
+
resultingReferenceRef = {
|
|
248
291
|
getBoundingClientRect() {
|
|
249
292
|
const topRect = anchorRef.top.getBoundingClientRect();
|
|
250
293
|
const bottomRect = anchorRef.bottom.getBoundingClientRect();
|
|
@@ -253,18 +296,23 @@ const Popover = (_ref, ref) => {
|
|
|
253
296
|
|
|
254
297
|
};
|
|
255
298
|
} else if (anchorRef !== null && anchorRef !== void 0 && anchorRef.current) {
|
|
256
|
-
|
|
299
|
+
// Standard React ref.
|
|
300
|
+
resultingReferenceRef = anchorRef.current;
|
|
257
301
|
} else if (anchorRef) {
|
|
258
|
-
|
|
302
|
+
// If `anchorRef` holds directly the element's value (no `current` key)
|
|
303
|
+
// This is a weird scenario and should be deprecated.
|
|
304
|
+
resultingReferenceRef = anchorRef;
|
|
259
305
|
} else if (anchorRect) {
|
|
260
|
-
|
|
306
|
+
// Create a virtual element for the ref.
|
|
307
|
+
resultingReferenceRef = {
|
|
261
308
|
getBoundingClientRect() {
|
|
262
309
|
return anchorRect;
|
|
263
310
|
}
|
|
264
311
|
|
|
265
312
|
};
|
|
266
313
|
} else if (getAnchorRect) {
|
|
267
|
-
|
|
314
|
+
// Create a virtual element for the ref.
|
|
315
|
+
resultingReferenceRef = {
|
|
268
316
|
getBoundingClientRect() {
|
|
269
317
|
var _rect$x, _rect$y, _rect$width, _rect$height;
|
|
270
318
|
|
|
@@ -274,21 +322,23 @@ const Popover = (_ref, ref) => {
|
|
|
274
322
|
|
|
275
323
|
};
|
|
276
324
|
} else if (anchorRefFallback.current) {
|
|
277
|
-
|
|
325
|
+
// If no explicit ref is passed via props, fall back to
|
|
326
|
+
// anchoring to the popover's parent node.
|
|
327
|
+
resultingReferenceRef = anchorRefFallback.current.parentNode;
|
|
278
328
|
}
|
|
279
329
|
|
|
280
|
-
if (!
|
|
330
|
+
if (!resultingReferenceRef) {
|
|
281
331
|
return;
|
|
282
332
|
}
|
|
283
333
|
|
|
284
|
-
reference(
|
|
334
|
+
reference(resultingReferenceRef);
|
|
285
335
|
|
|
286
336
|
if (!refs.floating.current) {
|
|
287
337
|
return;
|
|
288
338
|
}
|
|
289
339
|
|
|
290
|
-
return autoUpdate(
|
|
291
|
-
}, [anchorRef, anchorRect, getAnchorRect]); // This is only needed for a
|
|
340
|
+
return autoUpdate(resultingReferenceRef, refs.floating.current, update);
|
|
341
|
+
}, [anchorRef, anchorRect, getAnchorRect]); // This is only needed for a smooth transition when moving blocks.
|
|
292
342
|
|
|
293
343
|
useLayoutEffect(() => {
|
|
294
344
|
if (!__unstableObserveElement) {
|
|
@@ -302,7 +352,9 @@ const Popover = (_ref, ref) => {
|
|
|
302
352
|
return () => {
|
|
303
353
|
observer.disconnect();
|
|
304
354
|
};
|
|
305
|
-
}, [__unstableObserveElement]); // If
|
|
355
|
+
}, [__unstableObserveElement]); // If the reference element is in a different ownerDocument (e.g. iFrame),
|
|
356
|
+
// we need to manually update the floating's position as the reference's owner
|
|
357
|
+
// document scrolls.
|
|
306
358
|
|
|
307
359
|
useLayoutEffect(() => {
|
|
308
360
|
if (ownerDocument === document) {
|
|
@@ -316,8 +368,9 @@ const Popover = (_ref, ref) => {
|
|
|
316
368
|
|
|
317
369
|
const animateClassName = !!animate && getAnimateClassName({
|
|
318
370
|
type: 'appear',
|
|
319
|
-
origin: placementToAnimationOrigin(
|
|
320
|
-
});
|
|
371
|
+
origin: placementToAnimationOrigin(computedPlacement)
|
|
372
|
+
});
|
|
373
|
+
const mergedFloatingRef = useMergeRefs([floating, dialogRef, forwardedRef]); // Disable reason: We care to capture the _bubbled_ events from inputs
|
|
321
374
|
// within popover as inferring close intent.
|
|
322
375
|
|
|
323
376
|
let content = // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions
|
|
@@ -328,7 +381,7 @@ const Popover = (_ref, ref) => {
|
|
|
328
381
|
'is-alternate': isAlternate
|
|
329
382
|
})
|
|
330
383
|
}, contentProps, {
|
|
331
|
-
ref:
|
|
384
|
+
ref: mergedFloatingRef
|
|
332
385
|
}, dialogProps, {
|
|
333
386
|
tabIndex: "-1",
|
|
334
387
|
style: isExpanded ? undefined : {
|
|
@@ -347,16 +400,13 @@ const Popover = (_ref, ref) => {
|
|
|
347
400
|
})), createElement("div", {
|
|
348
401
|
className: "components-popover__content"
|
|
349
402
|
}, children), hasArrow && createElement("div", {
|
|
350
|
-
className: "components-popover__arrow",
|
|
351
403
|
ref: arrowRef,
|
|
404
|
+
className: ['components-popover__arrow', `is-${computedPlacement.split('-')[0]}`].join(' '),
|
|
352
405
|
style: {
|
|
353
|
-
left:
|
|
354
|
-
top:
|
|
355
|
-
right: undefined,
|
|
356
|
-
bottom: undefined,
|
|
357
|
-
[staticSide]: '-4px'
|
|
406
|
+
left: Number.isFinite(arrowData === null || arrowData === void 0 ? void 0 : arrowData.x) ? `${arrowData.x}px` : '',
|
|
407
|
+
top: Number.isFinite(arrowData === null || arrowData === void 0 ? void 0 : arrowData.y) ? `${arrowData.y}px` : ''
|
|
358
408
|
}
|
|
359
|
-
}));
|
|
409
|
+
}, createElement(ArrowTriangle, null)));
|
|
360
410
|
|
|
361
411
|
if (slot.ref) {
|
|
362
412
|
content = createElement(Fill, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/components/src/popover/index.js"],"names":["classnames","useFloating","flip","shift","autoUpdate","arrow","offset","offsetMiddleware","limitShift","size","useRef","useLayoutEffect","forwardRef","createContext","useContext","useMemo","useViewportMatch","useMergeRefs","__experimentalUseDialog","useDialog","close","deprecated","Button","ScrollLock","Slot","Fill","useSlot","getAnimateClassName","SLOT_NAME","slotNameContext","positionToPlacement","position","x","y","z","split","includes","suffix","placementToAnimationOrigin","placement","a","b","Popover","ref","range","animate","headerTitle","onClose","children","className","noArrow","isAlternate","focusOnMount","anchorRef","anchorRect","getAnchorRect","expandOnMobile","onFocusOutside","__unstableSlotName","__unstableObserveElement","__unstableForcePosition","__unstableShift","contentProps","since","version","arrowRef","anchorRefFallback","isMobileViewport","isExpanded","hasArrow","usedPlacement","ownerDocument","top","startContainer","current","document","frameOffset","defaultView","frameElement","undefined","iframeRect","getBoundingClientRect","name","fn","left","middlewares","apply","sizeProps","height","refs","floating","Object","assign","firstChild","style","maxHeight","overflow","crossAxis","limiter","padding","element","filter","m","slotName","slot","onDialogClose","type","event","dialogRef","dialogProps","__unstableOnClose","reference","strategy","update","placementData","middlewareData","arrowData","middleware","staticSide","right","bottom","mergedRefs","usedRef","topRect","bottomRect","window","DOMRect","width","rect","observer","MutationObserver","observe","attributes","disconnect","addEventListener","removeEventListener","animateClassName","origin","content","Number","isNaN","PopoverContainer","PopoverSlot","__unstableSlotNameProvider","Provider"],"mappings":"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","sourcesContent":["// @ts-nocheck\n/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport {\n\tuseFloating,\n\tflip,\n\tshift,\n\tautoUpdate,\n\tarrow,\n\toffset as offsetMiddleware,\n\tlimitShift,\n\tsize,\n} from '@floating-ui/react-dom';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseRef,\n\tuseLayoutEffect,\n\tforwardRef,\n\tcreateContext,\n\tuseContext,\n\tuseMemo,\n} from '@wordpress/element';\nimport {\n\tuseViewportMatch,\n\tuseMergeRefs,\n\t__experimentalUseDialog as useDialog,\n} from '@wordpress/compose';\nimport { close } from '@wordpress/icons';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport ScrollLock from '../scroll-lock';\nimport { Slot, Fill, useSlot } from '../slot-fill';\nimport { getAnimateClassName } from '../animate';\n\n/**\n * Name of slot in which popover should fill.\n *\n * @type {string}\n */\nconst SLOT_NAME = 'Popover';\n\nconst slotNameContext = createContext();\n\nconst positionToPlacement = ( position ) => {\n\tconst [ x, y, z ] = position.split( ' ' );\n\n\tif ( [ 'top', 'bottom' ].includes( x ) ) {\n\t\tlet suffix = '';\n\t\tif ( ( !! z && z === 'left' ) || y === 'right' ) {\n\t\t\tsuffix = '-start';\n\t\t} else if ( ( !! z && z === 'right' ) || y === 'left' ) {\n\t\t\tsuffix = '-end';\n\t\t}\n\t\treturn x + suffix;\n\t}\n\n\treturn y;\n};\n\nconst placementToAnimationOrigin = ( placement ) => {\n\tconst [ a, b ] = placement.split( '-' );\n\n\tlet x, y;\n\tif ( a === 'top' || a === 'bottom' ) {\n\t\tx = a === 'top' ? 'bottom' : 'top';\n\t\ty = 'middle';\n\t\tif ( b === 'start' ) {\n\t\t\ty = 'left';\n\t\t} else if ( b === 'end' ) {\n\t\t\ty = 'right';\n\t\t}\n\t}\n\n\tif ( a === 'left' || a === 'right' ) {\n\t\tx = 'center';\n\t\ty = a === 'left' ? 'right' : 'left';\n\t\tif ( b === 'start' ) {\n\t\t\tx = 'top';\n\t\t} else if ( b === 'end' ) {\n\t\t\tx = 'bottom';\n\t\t}\n\t}\n\n\treturn x + ' ' + y;\n};\n\nconst Popover = (\n\t{\n\t\trange,\n\t\tanimate = true,\n\t\theaderTitle,\n\t\tonClose,\n\t\tchildren,\n\t\tclassName,\n\t\tnoArrow = true,\n\t\tisAlternate,\n\t\tposition,\n\t\tplacement = 'bottom-start',\n\t\toffset,\n\t\tfocusOnMount = 'firstElement',\n\t\tanchorRef,\n\t\tanchorRect,\n\t\tgetAnchorRect,\n\t\texpandOnMobile,\n\t\tonFocusOutside,\n\t\t__unstableSlotName = SLOT_NAME,\n\t\t__unstableObserveElement,\n\t\t__unstableForcePosition,\n\t\t__unstableShift = false,\n\t\t...contentProps\n\t},\n\tref\n) => {\n\tif ( range ) {\n\t\tdeprecated( 'range prop in Popover component', {\n\t\t\tsince: '6.1',\n\t\t\tversion: '6.3',\n\t\t} );\n\t}\n\n\tconst arrowRef = useRef( null );\n\tconst anchorRefFallback = useRef( null );\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\tconst isExpanded = expandOnMobile && isMobileViewport;\n\tconst hasArrow = ! isExpanded && ! noArrow;\n\tconst usedPlacement = position\n\t\t? positionToPlacement( position )\n\t\t: placement;\n\n\tconst ownerDocument = useMemo( () => {\n\t\tif ( anchorRef?.top ) {\n\t\t\treturn anchorRef?.top.ownerDocument;\n\t\t} else if ( anchorRef?.startContainer ) {\n\t\t\treturn anchorRef.startContainer.ownerDocument;\n\t\t} else if ( anchorRef?.current ) {\n\t\t\treturn anchorRef.current.ownerDocument;\n\t\t} else if ( anchorRef ) {\n\t\t\t// This one should be deprecated.\n\t\t\treturn anchorRef.ownerDocument;\n\t\t} else if ( anchorRect && anchorRect?.ownerDocument ) {\n\t\t\treturn anchorRect.ownerDocument;\n\t\t} else if ( getAnchorRect ) {\n\t\t\treturn (\n\t\t\t\tgetAnchorRect( anchorRefFallback.current )?.ownerDocument ??\n\t\t\t\tdocument\n\t\t\t);\n\t\t}\n\n\t\treturn document;\n\t}, [ anchorRef, anchorRect, getAnchorRect ] );\n\n\t/**\n\t * Offsets the position of the popover when the anchor is inside an iframe.\n\t */\n\tconst frameOffset = useMemo( () => {\n\t\tconst { defaultView } = ownerDocument;\n\t\tconst { frameElement } = defaultView;\n\n\t\tif ( ! frameElement || ownerDocument === document ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst iframeRect = frameElement.getBoundingClientRect();\n\t\treturn {\n\t\t\tname: 'iframeOffset',\n\t\t\tfn( { x, y } ) {\n\t\t\t\treturn {\n\t\t\t\t\tx: x + iframeRect.left,\n\t\t\t\t\ty: y + iframeRect.top,\n\t\t\t\t};\n\t\t\t},\n\t\t};\n\t}, [ ownerDocument ] );\n\n\tconst middlewares = [\n\t\tframeOffset,\n\t\toffset ? offsetMiddleware( offset ) : undefined,\n\t\t__unstableForcePosition ? undefined : flip(),\n\t\t__unstableForcePosition\n\t\t\t? undefined\n\t\t\t: size( {\n\t\t\t\t\tapply( sizeProps ) {\n\t\t\t\t\t\tconst { height } = sizeProps;\n\t\t\t\t\t\tif ( ! refs.floating.current ) return;\n\t\t\t\t\t\t// Reduce the height of the popover to the available space.\n\t\t\t\t\t\tObject.assign( refs.floating.current.firstChild.style, {\n\t\t\t\t\t\t\tmaxHeight: `${ height }px`,\n\t\t\t\t\t\t\toverflow: 'auto',\n\t\t\t\t\t\t} );\n\t\t\t\t\t},\n\t\t\t } ),\n\t\t__unstableShift\n\t\t\t? shift( {\n\t\t\t\t\tcrossAxis: true,\n\t\t\t\t\tlimiter: limitShift(),\n\t\t\t\t\tpadding: 1, // Necessary to avoid flickering at the edge of the viewport.\n\t\t\t } )\n\t\t\t: undefined,\n\t\thasArrow ? arrow( { element: arrowRef } ) : undefined,\n\t].filter( ( m ) => !! m );\n\tconst slotName = useContext( slotNameContext ) || __unstableSlotName;\n\tconst slot = useSlot( slotName );\n\n\tlet onDialogClose;\n\n\tif ( onClose || onFocusOutside ) {\n\t\tonDialogClose = ( type, event ) => {\n\t\t\t// Ideally the popover should have just a single onClose prop and\n\t\t\t// not three props that potentially do the same thing.\n\t\t\tif ( type === 'focus-outside' && onFocusOutside ) {\n\t\t\t\tonFocusOutside( event );\n\t\t\t} else if ( onClose ) {\n\t\t\t\tonClose();\n\t\t\t}\n\t\t};\n\t}\n\n\tconst [ dialogRef, dialogProps ] = useDialog( {\n\t\tfocusOnMount,\n\t\t__unstableOnClose: onDialogClose,\n\t\tonClose: onDialogClose,\n\t} );\n\n\tconst {\n\t\tx,\n\t\ty,\n\t\treference,\n\t\tfloating,\n\t\tstrategy,\n\t\trefs,\n\t\tupdate,\n\t\tplacement: placementData,\n\t\tmiddlewareData: { arrow: arrowData = {} },\n\t} = useFloating( {\n\t\tplacement: usedPlacement,\n\t\tmiddleware: middlewares,\n\t} );\n\tconst staticSide = {\n\t\ttop: 'bottom',\n\t\tright: 'left',\n\t\tbottom: 'top',\n\t\tleft: 'right',\n\t}[ placementData.split( '-' )[ 0 ] ];\n\tconst mergedRefs = useMergeRefs( [ floating, dialogRef, ref ] );\n\n\t// Updates references\n\tuseLayoutEffect( () => {\n\t\t// No ref or position have been passed\n\t\tlet usedRef;\n\t\tif ( anchorRef?.top ) {\n\t\t\tusedRef = {\n\t\t\t\tgetBoundingClientRect() {\n\t\t\t\t\tconst topRect = anchorRef.top.getBoundingClientRect();\n\t\t\t\t\tconst bottomRect = anchorRef.bottom.getBoundingClientRect();\n\t\t\t\t\treturn new window.DOMRect(\n\t\t\t\t\t\ttopRect.x,\n\t\t\t\t\t\ttopRect.y,\n\t\t\t\t\t\ttopRect.width,\n\t\t\t\t\t\tbottomRect.bottom - topRect.top\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t};\n\t\t} else if ( anchorRef?.current ) {\n\t\t\tusedRef = anchorRef.current;\n\t\t} else if ( anchorRef ) {\n\t\t\tusedRef = anchorRef;\n\t\t} else if ( anchorRect ) {\n\t\t\tusedRef = {\n\t\t\t\tgetBoundingClientRect() {\n\t\t\t\t\treturn anchorRect;\n\t\t\t\t},\n\t\t\t};\n\t\t} else if ( getAnchorRect ) {\n\t\t\tusedRef = {\n\t\t\t\tgetBoundingClientRect() {\n\t\t\t\t\tconst rect = getAnchorRect( anchorRefFallback.current );\n\t\t\t\t\treturn new window.DOMRect(\n\t\t\t\t\t\trect.x ?? rect.left,\n\t\t\t\t\t\trect.y ?? rect.top,\n\t\t\t\t\t\trect.width ?? rect.right - rect.left,\n\t\t\t\t\t\trect.height ?? rect.bottom - rect.top\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t};\n\t\t} else if ( anchorRefFallback.current ) {\n\t\t\tusedRef = anchorRefFallback.current;\n\t\t}\n\n\t\tif ( ! usedRef ) {\n\t\t\treturn;\n\t\t}\n\n\t\treference( usedRef );\n\n\t\tif ( ! refs.floating.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn autoUpdate( usedRef, refs.floating.current, update );\n\t}, [ anchorRef, anchorRect, getAnchorRect ] );\n\n\t// This is only needed for a smoth transition when moving blocks.\n\tuseLayoutEffect( () => {\n\t\tif ( ! __unstableObserveElement ) {\n\t\t\treturn;\n\t\t}\n\t\tconst observer = new window.MutationObserver( update );\n\t\tobserver.observe( __unstableObserveElement, { attributes: true } );\n\n\t\treturn () => {\n\t\t\tobserver.disconnect();\n\t\t};\n\t}, [ __unstableObserveElement ] );\n\n\t// If we're using getAnchorRect, we need to update the position as we scroll the iframe.\n\tuseLayoutEffect( () => {\n\t\tif ( ownerDocument === document ) {\n\t\t\treturn;\n\t\t}\n\n\t\townerDocument.addEventListener( 'scroll', update );\n\t\treturn () => ownerDocument.removeEventListener( 'scroll', update );\n\t}, [ ownerDocument ] );\n\n\t/** @type {false | string} */\n\tconst animateClassName =\n\t\t!! animate &&\n\t\tgetAnimateClassName( {\n\t\t\ttype: 'appear',\n\t\t\torigin: placementToAnimationOrigin( placementData ),\n\t\t} );\n\n\t// Disable reason: We care to capture the _bubbled_ events from inputs\n\t// within popover as inferring close intent.\n\n\tlet content = (\n\t\t// eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions\n\t\t// eslint-disable-next-line jsx-a11y/no-static-element-interactions\n\t\t<div\n\t\t\tclassName={ classnames(\n\t\t\t\t'components-popover',\n\t\t\t\tclassName,\n\t\t\t\tanimateClassName,\n\t\t\t\t{\n\t\t\t\t\t'is-expanded': isExpanded,\n\t\t\t\t\t'is-alternate': isAlternate,\n\t\t\t\t}\n\t\t\t) }\n\t\t\t{ ...contentProps }\n\t\t\tref={ mergedRefs }\n\t\t\t{ ...dialogProps }\n\t\t\ttabIndex=\"-1\"\n\t\t\tstyle={\n\t\t\t\tisExpanded\n\t\t\t\t\t? undefined\n\t\t\t\t\t: {\n\t\t\t\t\t\t\tposition: strategy,\n\t\t\t\t\t\t\tleft: Number.isNaN( x ) ? 0 : x,\n\t\t\t\t\t\t\ttop: Number.isNaN( y ) ? 0 : y,\n\t\t\t\t\t }\n\t\t\t}\n\t\t>\n\t\t\t{ isExpanded && <ScrollLock /> }\n\t\t\t{ isExpanded && (\n\t\t\t\t<div className=\"components-popover__header\">\n\t\t\t\t\t<span className=\"components-popover__header-title\">\n\t\t\t\t\t\t{ headerTitle }\n\t\t\t\t\t</span>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName=\"components-popover__close\"\n\t\t\t\t\t\ticon={ close }\n\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t<div className=\"components-popover__content\">{ children }</div>\n\t\t\t{ hasArrow && (\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"components-popover__arrow\"\n\t\t\t\t\tref={ arrowRef }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\tleft:\n\t\t\t\t\t\t\t! arrowData?.x || Number.isNaN( arrowData?.x )\n\t\t\t\t\t\t\t\t? 0\n\t\t\t\t\t\t\t\t: arrowData.x,\n\t\t\t\t\t\ttop:\n\t\t\t\t\t\t\t! arrowData?.y || Number.isNaN( arrowData?.y )\n\t\t\t\t\t\t\t\t? 0\n\t\t\t\t\t\t\t\t: arrowData.y,\n\t\t\t\t\t\tright: undefined,\n\t\t\t\t\t\tbottom: undefined,\n\t\t\t\t\t\t[ staticSide ]: '-4px',\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</div>\n\t);\n\n\tif ( slot.ref ) {\n\t\tcontent = <Fill name={ slotName }>{ content }</Fill>;\n\t}\n\n\tif ( anchorRef || anchorRect ) {\n\t\treturn content;\n\t}\n\n\treturn <span ref={ anchorRefFallback }>{ content }</span>;\n};\n\nconst PopoverContainer = forwardRef( Popover );\n\nfunction PopoverSlot( { name = SLOT_NAME }, ref ) {\n\treturn (\n\t\t<Slot\n\t\t\tbubblesVirtually\n\t\t\tname={ name }\n\t\t\tclassName=\"popover-slot\"\n\t\t\tref={ ref }\n\t\t/>\n\t);\n}\n\nPopoverContainer.Slot = forwardRef( PopoverSlot );\nPopoverContainer.__unstableSlotNameProvider = slotNameContext.Provider;\n\nexport default PopoverContainer;\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/components/src/popover/index.js"],"names":["classnames","useFloating","flip","shift","autoUpdate","arrow","offset","offsetMiddleware","limitShift","size","useRef","useLayoutEffect","forwardRef","createContext","useContext","useMemo","useViewportMatch","useMergeRefs","__experimentalUseDialog","useDialog","close","deprecated","Path","SVG","Button","ScrollLock","Slot","Fill","useSlot","getAnimateClassName","SLOT_NAME","ArrowTriangle","props","slotNameContext","positionToPlacement","position","x","y","z","split","includes","suffix","placementToAnimationOrigin","placement","a","b","Popover","forwardedRef","range","animate","headerTitle","onClose","children","className","noArrow","isAlternate","placementProp","focusOnMount","anchorRef","anchorRect","getAnchorRect","expandOnMobile","onFocusOutside","__unstableSlotName","__unstableObserveElement","__unstableForcePosition","__unstableShift","contentProps","since","version","arrowRef","anchorRefFallback","isMobileViewport","isExpanded","hasArrow","normalizedPlacementFromProps","ownerDocument","documentToReturn","top","startContainer","current","document","frameOffset","defaultView","frameElement","undefined","iframeRect","getBoundingClientRect","left","middleware","currentPlacement","isTopBottomPlacement","mainAxis","crossAxis","hasBeforePlacement","mainAxisModifier","normalizedOffset","apply","sizeProps","height","refs","floating","Object","assign","firstChild","style","maxHeight","overflow","limiter","padding","element","filter","m","slotName","slot","onDialogClose","type","event","dialogRef","dialogProps","__unstableOnClose","reference","strategy","update","computedPlacement","middlewareData","arrowData","resultingReferenceRef","topRect","bottomRect","bottom","window","DOMRect","width","rect","right","parentNode","observer","MutationObserver","observe","attributes","disconnect","addEventListener","removeEventListener","animateClassName","origin","mergedFloatingRef","content","Number","isNaN","join","isFinite","ref","PopoverContainer","PopoverSlot","name","__unstableSlotNameProvider","Provider"],"mappings":"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","sourcesContent":["// @ts-nocheck\n/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport {\n\tuseFloating,\n\tflip,\n\tshift,\n\tautoUpdate,\n\tarrow,\n\toffset as offsetMiddleware,\n\tlimitShift,\n\tsize,\n} from '@floating-ui/react-dom';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseRef,\n\tuseLayoutEffect,\n\tforwardRef,\n\tcreateContext,\n\tuseContext,\n\tuseMemo,\n} from '@wordpress/element';\nimport {\n\tuseViewportMatch,\n\tuseMergeRefs,\n\t__experimentalUseDialog as useDialog,\n} from '@wordpress/compose';\nimport { close } from '@wordpress/icons';\nimport deprecated from '@wordpress/deprecated';\nimport { Path, SVG } from '@wordpress/primitives';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport ScrollLock from '../scroll-lock';\nimport { Slot, Fill, useSlot } from '../slot-fill';\nimport { getAnimateClassName } from '../animate';\n\n/**\n * Name of slot in which popover should fill.\n *\n * @type {string}\n */\nconst SLOT_NAME = 'Popover';\n\n// An SVG displaying a triangle facing down, filled with a solid\n// color and bordered in such a way to create an arrow-like effect.\n// Keeping the SVG's viewbox squared simplify the arrow positioning\n// calculations.\nconst ArrowTriangle = ( props ) => (\n\t<SVG\n\t\t{ ...props }\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\tviewBox={ `0 0 100 100` }\n\t\tclassName=\"components-popover__triangle\"\n\t\trole=\"presentation\"\n\t>\n\t\t<Path\n\t\t\tclassName=\"components-popover__triangle-bg\"\n\t\t\td=\"M 0 0 L 50 50 L 100 0\"\n\t\t/>\n\t\t<Path\n\t\t\tclassName=\"components-popover__triangle-border\"\n\t\t\td=\"M 0 0 L 50 50 L 100 0\"\n\t\t\tvectorEffect=\"non-scaling-stroke\"\n\t\t/>\n\t</SVG>\n);\n\nconst slotNameContext = createContext();\n\nconst positionToPlacement = ( position ) => {\n\tconst [ x, y, z ] = position.split( ' ' );\n\n\tif ( [ 'top', 'bottom' ].includes( x ) ) {\n\t\tlet suffix = '';\n\t\tif ( ( !! z && z === 'left' ) || y === 'right' ) {\n\t\t\tsuffix = '-start';\n\t\t} else if ( ( !! z && z === 'right' ) || y === 'left' ) {\n\t\t\tsuffix = '-end';\n\t\t}\n\t\treturn x + suffix;\n\t}\n\n\treturn y;\n};\n\nconst placementToAnimationOrigin = ( placement ) => {\n\tconst [ a, b ] = placement.split( '-' );\n\n\tlet x, y;\n\tif ( a === 'top' || a === 'bottom' ) {\n\t\tx = a === 'top' ? 'bottom' : 'top';\n\t\ty = 'middle';\n\t\tif ( b === 'start' ) {\n\t\t\ty = 'left';\n\t\t} else if ( b === 'end' ) {\n\t\t\ty = 'right';\n\t\t}\n\t}\n\n\tif ( a === 'left' || a === 'right' ) {\n\t\tx = 'center';\n\t\ty = a === 'left' ? 'right' : 'left';\n\t\tif ( b === 'start' ) {\n\t\t\tx = 'top';\n\t\t} else if ( b === 'end' ) {\n\t\t\tx = 'bottom';\n\t\t}\n\t}\n\n\treturn x + ' ' + y;\n};\n\nconst Popover = (\n\t{\n\t\trange,\n\t\tanimate = true,\n\t\theaderTitle,\n\t\tonClose,\n\t\tchildren,\n\t\tclassName,\n\t\tnoArrow = true,\n\t\tisAlternate,\n\t\tposition,\n\t\tplacement: placementProp = 'bottom-start',\n\t\toffset,\n\t\tfocusOnMount = 'firstElement',\n\t\tanchorRef,\n\t\tanchorRect,\n\t\tgetAnchorRect,\n\t\texpandOnMobile,\n\t\tonFocusOutside,\n\t\t__unstableSlotName = SLOT_NAME,\n\t\t__unstableObserveElement,\n\t\t__unstableForcePosition = false,\n\t\t__unstableShift = false,\n\t\t...contentProps\n\t},\n\tforwardedRef\n) => {\n\tif ( range ) {\n\t\tdeprecated( 'range prop in Popover component', {\n\t\t\tsince: '6.1',\n\t\t\tversion: '6.3',\n\t\t} );\n\t}\n\n\tconst arrowRef = useRef( null );\n\tconst anchorRefFallback = useRef( null );\n\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\tconst isExpanded = expandOnMobile && isMobileViewport;\n\tconst hasArrow = ! isExpanded && ! noArrow;\n\tconst normalizedPlacementFromProps = position\n\t\t? positionToPlacement( position )\n\t\t: placementProp;\n\n\tconst ownerDocument = useMemo( () => {\n\t\tlet documentToReturn;\n\n\t\tif ( anchorRef?.top ) {\n\t\t\tdocumentToReturn = anchorRef?.top.ownerDocument;\n\t\t} else if ( anchorRef?.startContainer ) {\n\t\t\tdocumentToReturn = anchorRef.startContainer.ownerDocument;\n\t\t} else if ( anchorRef?.current ) {\n\t\t\tdocumentToReturn = anchorRef.current.ownerDocument;\n\t\t} else if ( anchorRef ) {\n\t\t\t// This one should be deprecated.\n\t\t\tdocumentToReturn = anchorRef.ownerDocument;\n\t\t} else if ( anchorRect && anchorRect?.ownerDocument ) {\n\t\t\tdocumentToReturn = anchorRect.ownerDocument;\n\t\t} else if ( getAnchorRect ) {\n\t\t\tdocumentToReturn = getAnchorRect(\n\t\t\t\tanchorRefFallback.current\n\t\t\t)?.ownerDocument;\n\t\t}\n\n\t\treturn documentToReturn ?? document;\n\t}, [ anchorRef, anchorRect, getAnchorRect ] );\n\n\t/**\n\t * Offsets the position of the popover when the anchor is inside an iframe.\n\t */\n\tconst frameOffset = useMemo( () => {\n\t\tconst { defaultView } = ownerDocument;\n\t\tconst { frameElement } = defaultView;\n\n\t\tif ( ! frameElement || ownerDocument === document ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst iframeRect = frameElement.getBoundingClientRect();\n\t\treturn { x: iframeRect.left, y: iframeRect.top };\n\t}, [ ownerDocument ] );\n\n\tconst middleware = [\n\t\tframeOffset || offset\n\t\t\t? offsetMiddleware( ( { placement: currentPlacement } ) => {\n\t\t\t\t\tif ( ! frameOffset ) {\n\t\t\t\t\t\treturn offset;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst isTopBottomPlacement =\n\t\t\t\t\t\tcurrentPlacement.includes( 'top' ) ||\n\t\t\t\t\t\tcurrentPlacement.includes( 'bottom' );\n\n\t\t\t\t\t// The main axis should represent the gap between the\n\t\t\t\t\t// floating element and the reference element. The cross\n\t\t\t\t\t// axis is always perpendicular to the main axis.\n\t\t\t\t\tconst mainAxis = isTopBottomPlacement ? 'y' : 'x';\n\t\t\t\t\tconst crossAxis = mainAxis === 'x' ? 'y' : 'x';\n\n\t\t\t\t\t// When the popover is before the reference, subtract the offset,\n\t\t\t\t\t// of the main axis else add it.\n\t\t\t\t\tconst hasBeforePlacement =\n\t\t\t\t\t\tcurrentPlacement.includes( 'top' ) ||\n\t\t\t\t\t\tcurrentPlacement.includes( 'left' );\n\t\t\t\t\tconst mainAxisModifier = hasBeforePlacement ? -1 : 1;\n\t\t\t\t\tconst normalizedOffset = offset ? offset : 0;\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tmainAxis:\n\t\t\t\t\t\t\tnormalizedOffset +\n\t\t\t\t\t\t\tframeOffset[ mainAxis ] * mainAxisModifier,\n\t\t\t\t\t\tcrossAxis: frameOffset[ crossAxis ],\n\t\t\t\t\t};\n\t\t\t } )\n\t\t\t: undefined,\n\t\t__unstableForcePosition ? undefined : flip(),\n\t\t__unstableForcePosition\n\t\t\t? undefined\n\t\t\t: size( {\n\t\t\t\t\tapply( sizeProps ) {\n\t\t\t\t\t\tconst { height } = sizeProps;\n\t\t\t\t\t\tif ( ! refs.floating.current ) return;\n\t\t\t\t\t\t// Reduce the height of the popover to the available space.\n\t\t\t\t\t\tObject.assign( refs.floating.current.firstChild.style, {\n\t\t\t\t\t\t\tmaxHeight: `${ height }px`,\n\t\t\t\t\t\t\toverflow: 'auto',\n\t\t\t\t\t\t} );\n\t\t\t\t\t},\n\t\t\t } ),\n\t\t__unstableShift\n\t\t\t? shift( {\n\t\t\t\t\tcrossAxis: true,\n\t\t\t\t\tlimiter: limitShift(),\n\t\t\t\t\tpadding: 1, // Necessary to avoid flickering at the edge of the viewport.\n\t\t\t } )\n\t\t\t: undefined,\n\t\thasArrow ? arrow( { element: arrowRef } ) : undefined,\n\t].filter( ( m ) => !! m );\n\tconst slotName = useContext( slotNameContext ) || __unstableSlotName;\n\tconst slot = useSlot( slotName );\n\n\tlet onDialogClose;\n\n\tif ( onClose || onFocusOutside ) {\n\t\tonDialogClose = ( type, event ) => {\n\t\t\t// Ideally the popover should have just a single onClose prop and\n\t\t\t// not three props that potentially do the same thing.\n\t\t\tif ( type === 'focus-outside' && onFocusOutside ) {\n\t\t\t\tonFocusOutside( event );\n\t\t\t} else if ( onClose ) {\n\t\t\t\tonClose();\n\t\t\t}\n\t\t};\n\t}\n\n\tconst [ dialogRef, dialogProps ] = useDialog( {\n\t\tfocusOnMount,\n\t\t__unstableOnClose: onDialogClose,\n\t\tonClose: onDialogClose,\n\t} );\n\n\tconst {\n\t\t// Positioning coordinates\n\t\tx,\n\t\ty,\n\t\t// Callback refs (not regular refs). This allows the position to be updated.\n\t\t// when either elements change.\n\t\treference,\n\t\tfloating,\n\t\t// Object with \"regular\" refs to both \"reference\" and \"floating\"\n\t\trefs,\n\t\t// Type of CSS position property to use (absolute or fixed)\n\t\tstrategy,\n\t\tupdate,\n\t\tplacement: computedPlacement,\n\t\tmiddlewareData: { arrow: arrowData = {} },\n\t} = useFloating( { placement: normalizedPlacementFromProps, middleware } );\n\n\t// Update the `reference`'s ref.\n\t//\n\t// In floating-ui's terms:\n\t// - \"reference\" refers to the popover's anchor element.\n\t// - \"floating\" refers the floating popover's element.\n\t// A floating element can also be positioned relative to a virtual element,\n\t// instead of a real one. A virtual element is represented by an object\n\t// with the `getBoundingClientRect()` function (like real elements).\n\t// See https://floating-ui.com/docs/virtual-elements for more info.\n\tuseLayoutEffect( () => {\n\t\tlet resultingReferenceRef;\n\n\t\tif ( anchorRef?.top ) {\n\t\t\t// Create a virtual element for the ref. The expectation is that\n\t\t\t// if anchorRef.top is defined, then anchorRef.bottom is defined too.\n\t\t\tresultingReferenceRef = {\n\t\t\t\tgetBoundingClientRect() {\n\t\t\t\t\tconst topRect = anchorRef.top.getBoundingClientRect();\n\t\t\t\t\tconst bottomRect = anchorRef.bottom.getBoundingClientRect();\n\t\t\t\t\treturn new window.DOMRect(\n\t\t\t\t\t\ttopRect.x,\n\t\t\t\t\t\ttopRect.y,\n\t\t\t\t\t\ttopRect.width,\n\t\t\t\t\t\tbottomRect.bottom - topRect.top\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t};\n\t\t} else if ( anchorRef?.current ) {\n\t\t\t// Standard React ref.\n\t\t\tresultingReferenceRef = anchorRef.current;\n\t\t} else if ( anchorRef ) {\n\t\t\t// If `anchorRef` holds directly the element's value (no `current` key)\n\t\t\t// This is a weird scenario and should be deprecated.\n\t\t\tresultingReferenceRef = anchorRef;\n\t\t} else if ( anchorRect ) {\n\t\t\t// Create a virtual element for the ref.\n\t\t\tresultingReferenceRef = {\n\t\t\t\tgetBoundingClientRect() {\n\t\t\t\t\treturn anchorRect;\n\t\t\t\t},\n\t\t\t};\n\t\t} else if ( getAnchorRect ) {\n\t\t\t// Create a virtual element for the ref.\n\t\t\tresultingReferenceRef = {\n\t\t\t\tgetBoundingClientRect() {\n\t\t\t\t\tconst rect = getAnchorRect( anchorRefFallback.current );\n\t\t\t\t\treturn new window.DOMRect(\n\t\t\t\t\t\trect.x ?? rect.left,\n\t\t\t\t\t\trect.y ?? rect.top,\n\t\t\t\t\t\trect.width ?? rect.right - rect.left,\n\t\t\t\t\t\trect.height ?? rect.bottom - rect.top\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t};\n\t\t} else if ( anchorRefFallback.current ) {\n\t\t\t// If no explicit ref is passed via props, fall back to\n\t\t\t// anchoring to the popover's parent node.\n\t\t\tresultingReferenceRef = anchorRefFallback.current.parentNode;\n\t\t}\n\n\t\tif ( ! resultingReferenceRef ) {\n\t\t\treturn;\n\t\t}\n\n\t\treference( resultingReferenceRef );\n\n\t\tif ( ! refs.floating.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn autoUpdate(\n\t\t\tresultingReferenceRef,\n\t\t\trefs.floating.current,\n\t\t\tupdate\n\t\t);\n\t}, [ anchorRef, anchorRect, getAnchorRect ] );\n\n\t// This is only needed for a smooth transition when moving blocks.\n\tuseLayoutEffect( () => {\n\t\tif ( ! __unstableObserveElement ) {\n\t\t\treturn;\n\t\t}\n\t\tconst observer = new window.MutationObserver( update );\n\t\tobserver.observe( __unstableObserveElement, { attributes: true } );\n\n\t\treturn () => {\n\t\t\tobserver.disconnect();\n\t\t};\n\t}, [ __unstableObserveElement ] );\n\n\t// If the reference element is in a different ownerDocument (e.g. iFrame),\n\t// we need to manually update the floating's position as the reference's owner\n\t// document scrolls.\n\tuseLayoutEffect( () => {\n\t\tif ( ownerDocument === document ) {\n\t\t\treturn;\n\t\t}\n\n\t\townerDocument.addEventListener( 'scroll', update );\n\t\treturn () => ownerDocument.removeEventListener( 'scroll', update );\n\t}, [ ownerDocument ] );\n\n\t/** @type {false | string} */\n\tconst animateClassName =\n\t\t!! animate &&\n\t\tgetAnimateClassName( {\n\t\t\ttype: 'appear',\n\t\t\torigin: placementToAnimationOrigin( computedPlacement ),\n\t\t} );\n\n\tconst mergedFloatingRef = useMergeRefs( [\n\t\tfloating,\n\t\tdialogRef,\n\t\tforwardedRef,\n\t] );\n\n\t// Disable reason: We care to capture the _bubbled_ events from inputs\n\t// within popover as inferring close intent.\n\n\tlet content = (\n\t\t// eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions\n\t\t// eslint-disable-next-line jsx-a11y/no-static-element-interactions\n\t\t<div\n\t\t\tclassName={ classnames(\n\t\t\t\t'components-popover',\n\t\t\t\tclassName,\n\t\t\t\tanimateClassName,\n\t\t\t\t{\n\t\t\t\t\t'is-expanded': isExpanded,\n\t\t\t\t\t'is-alternate': isAlternate,\n\t\t\t\t}\n\t\t\t) }\n\t\t\t{ ...contentProps }\n\t\t\tref={ mergedFloatingRef }\n\t\t\t{ ...dialogProps }\n\t\t\ttabIndex=\"-1\"\n\t\t\tstyle={\n\t\t\t\tisExpanded\n\t\t\t\t\t? undefined\n\t\t\t\t\t: {\n\t\t\t\t\t\t\tposition: strategy,\n\t\t\t\t\t\t\tleft: Number.isNaN( x ) ? 0 : x,\n\t\t\t\t\t\t\ttop: Number.isNaN( y ) ? 0 : y,\n\t\t\t\t\t }\n\t\t\t}\n\t\t>\n\t\t\t{ /* Prevents scroll on the document */ }\n\t\t\t{ isExpanded && <ScrollLock /> }\n\t\t\t{ isExpanded && (\n\t\t\t\t<div className=\"components-popover__header\">\n\t\t\t\t\t<span className=\"components-popover__header-title\">\n\t\t\t\t\t\t{ headerTitle }\n\t\t\t\t\t</span>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName=\"components-popover__close\"\n\t\t\t\t\t\ticon={ close }\n\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t<div className=\"components-popover__content\">{ children }</div>\n\t\t\t{ hasArrow && (\n\t\t\t\t<div\n\t\t\t\t\tref={ arrowRef }\n\t\t\t\t\tclassName={ [\n\t\t\t\t\t\t'components-popover__arrow',\n\t\t\t\t\t\t`is-${ computedPlacement.split( '-' )[ 0 ] }`,\n\t\t\t\t\t].join( ' ' ) }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\tleft: Number.isFinite( arrowData?.x )\n\t\t\t\t\t\t\t? `${ arrowData.x }px`\n\t\t\t\t\t\t\t: '',\n\t\t\t\t\t\ttop: Number.isFinite( arrowData?.y )\n\t\t\t\t\t\t\t? `${ arrowData.y }px`\n\t\t\t\t\t\t\t: '',\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<ArrowTriangle />\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</div>\n\t);\n\n\tif ( slot.ref ) {\n\t\tcontent = <Fill name={ slotName }>{ content }</Fill>;\n\t}\n\n\tif ( anchorRef || anchorRect ) {\n\t\treturn content;\n\t}\n\n\treturn <span ref={ anchorRefFallback }>{ content }</span>;\n};\n\nconst PopoverContainer = forwardRef( Popover );\n\nfunction PopoverSlot( { name = SLOT_NAME }, ref ) {\n\treturn (\n\t\t<Slot\n\t\t\tbubblesVirtually\n\t\t\tname={ name }\n\t\t\tclassName=\"popover-slot\"\n\t\t\tref={ ref }\n\t\t/>\n\t);\n}\n\nPopoverContainer.Slot = forwardRef( PopoverSlot );\nPopoverContainer.__unstableSlotNameProvider = slotNameContext.Provider;\n\nexport default PopoverContainer;\n"]}
|