@wordpress/components 25.6.1 → 26.0.1-next.5a1d1283.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 +21 -1
- package/CONTRIBUTING.md +1 -1
- package/README.md +3 -8
- package/build/color-picker/hsv-color-picker.native.js +92 -0
- package/build/color-picker/hsv-color-picker.native.js.map +1 -0
- package/build/color-picker/hue-picker.native.js +195 -0
- package/build/color-picker/hue-picker.native.js.map +1 -0
- package/build/color-picker/index.native.js +3 -2
- package/build/color-picker/index.native.js.map +1 -1
- package/build/color-picker/saturation-picker.native.js +178 -0
- package/build/color-picker/saturation-picker.native.js.map +1 -0
- package/build/item-group/item/component.js +0 -1
- package/build/item-group/item/component.js.map +1 -1
- package/build/item-group/item-group/component.js +0 -1
- package/build/item-group/item-group/component.js.map +1 -1
- package/build/menu-item/index.js +6 -4
- package/build/menu-item/index.js.map +1 -1
- package/build/menu-item/types.js.map +1 -1
- package/build/mobile/link-settings/link-settings-navigation.native.js +1 -1
- package/build/mobile/link-settings/link-settings-navigation.native.js.map +1 -1
- package/build/navigation/index.js +0 -1
- package/build/navigation/index.js.map +1 -1
- package/build/navigator/navigator-provider/component.js +1 -2
- package/build/navigator/navigator-provider/component.js.map +1 -1
- package/build/palette-edit/styles.js +10 -10
- package/build/palette-edit/styles.js.map +1 -1
- package/build/popover/index.js +38 -75
- package/build/popover/index.js.map +1 -1
- package/build/popover/overlay-middlewares.js.map +1 -1
- package/build/popover/types.js.map +1 -1
- package/build/popover/utils.js +5 -50
- package/build/popover/utils.js.map +1 -1
- package/build/progress-bar/styles.js +6 -5
- package/build/progress-bar/styles.js.map +1 -1
- package/build/search-control/index.native.js +27 -24
- package/build/search-control/index.native.js.map +1 -1
- package/build/shortcut/index.js +13 -0
- package/build/shortcut/index.js.map +1 -1
- package/build/slot-fill/bubbles-virtually/slot-fill-context.js +3 -1
- package/build/slot-fill/bubbles-virtually/slot-fill-context.js.map +1 -1
- package/build/slot-fill/bubbles-virtually/slot.js +14 -8
- package/build/slot-fill/bubbles-virtually/slot.js.map +1 -1
- package/build/slot-fill/index.js +5 -0
- package/build/slot-fill/index.js.map +1 -1
- package/build/spinner/index.js +0 -1
- package/build/spinner/index.js.map +1 -1
- package/build/theme/index.js +0 -1
- package/build/theme/index.js.map +1 -1
- package/build/tools-panel/tools-panel/component.js +0 -1
- package/build/tools-panel/tools-panel/component.js.map +1 -1
- package/build/tools-panel/tools-panel-header/component.js +5 -1
- package/build/tools-panel/tools-panel-header/component.js.map +1 -1
- package/build/tree-select/index.js +0 -1
- package/build/tree-select/index.js.map +1 -1
- package/build/unit-control/index.js +0 -1
- package/build/unit-control/index.js.map +1 -1
- package/build/utils/hooks/use-cx.js +2 -1
- package/build/utils/hooks/use-cx.js.map +1 -1
- package/build/view/component.js +1 -2
- package/build/view/component.js.map +1 -1
- package/build-module/color-picker/hsv-color-picker.native.js +84 -0
- package/build-module/color-picker/hsv-color-picker.native.js.map +1 -0
- package/build-module/color-picker/hue-picker.native.js +185 -0
- package/build-module/color-picker/hue-picker.native.js.map +1 -0
- package/build-module/color-picker/index.native.js +2 -1
- package/build-module/color-picker/index.native.js.map +1 -1
- package/build-module/color-picker/saturation-picker.native.js +168 -0
- package/build-module/color-picker/saturation-picker.native.js.map +1 -0
- package/build-module/item-group/item/component.js +0 -1
- package/build-module/item-group/item/component.js.map +1 -1
- package/build-module/item-group/item-group/component.js +0 -1
- package/build-module/item-group/item-group/component.js.map +1 -1
- package/build-module/menu-item/index.js +4 -2
- package/build-module/menu-item/index.js.map +1 -1
- package/build-module/menu-item/types.js.map +1 -1
- package/build-module/mobile/link-settings/link-settings-navigation.native.js +1 -1
- package/build-module/mobile/link-settings/link-settings-navigation.native.js.map +1 -1
- package/build-module/navigation/index.js +0 -1
- package/build-module/navigation/index.js.map +1 -1
- package/build-module/navigator/navigator-provider/component.js +1 -2
- package/build-module/navigator/navigator-provider/component.js.map +1 -1
- package/build-module/palette-edit/styles.js +10 -10
- package/build-module/palette-edit/styles.js.map +1 -1
- package/build-module/popover/index.js +42 -79
- package/build-module/popover/index.js.map +1 -1
- package/build-module/popover/overlay-middlewares.js.map +1 -1
- package/build-module/popover/types.js.map +1 -1
- package/build-module/popover/utils.js +4 -47
- package/build-module/popover/utils.js.map +1 -1
- package/build-module/progress-bar/styles.js +6 -5
- package/build-module/progress-bar/styles.js.map +1 -1
- package/build-module/search-control/index.native.js +28 -25
- package/build-module/search-control/index.native.js.map +1 -1
- package/build-module/shortcut/index.js +13 -0
- package/build-module/shortcut/index.js.map +1 -1
- package/build-module/slot-fill/bubbles-virtually/slot-fill-context.js +3 -1
- package/build-module/slot-fill/bubbles-virtually/slot-fill-context.js.map +1 -1
- package/build-module/slot-fill/bubbles-virtually/slot.js +14 -8
- package/build-module/slot-fill/bubbles-virtually/slot.js.map +1 -1
- package/build-module/slot-fill/index.js +6 -1
- package/build-module/slot-fill/index.js.map +1 -1
- package/build-module/spinner/index.js +0 -1
- package/build-module/spinner/index.js.map +1 -1
- package/build-module/theme/index.js +0 -1
- package/build-module/theme/index.js.map +1 -1
- package/build-module/tools-panel/tools-panel/component.js +0 -1
- package/build-module/tools-panel/tools-panel/component.js.map +1 -1
- package/build-module/tools-panel/tools-panel-header/component.js +5 -1
- package/build-module/tools-panel/tools-panel-header/component.js.map +1 -1
- package/build-module/tree-select/index.js +0 -1
- package/build-module/tree-select/index.js.map +1 -1
- package/build-module/unit-control/index.js +0 -1
- package/build-module/unit-control/index.js.map +1 -1
- package/build-module/utils/hooks/use-cx.js +2 -1
- package/build-module/utils/hooks/use-cx.js.map +1 -1
- package/build-module/view/component.js +1 -2
- package/build-module/view/component.js.map +1 -1
- package/build-types/alignment-matrix-control/stories/index.story.d.ts +2 -2
- package/build-types/alignment-matrix-control/stories/index.story.d.ts.map +1 -1
- package/build-types/angle-picker-control/stories/index.story.d.ts +2 -2
- package/build-types/angle-picker-control/stories/index.story.d.ts.map +1 -1
- package/build-types/animate/stories/index.story.d.ts +9 -9
- package/build-types/animate/stories/index.story.d.ts.map +1 -1
- package/build-types/base-control/stories/index.story.d.ts +4 -4
- package/build-types/base-control/stories/index.story.d.ts.map +1 -1
- package/build-types/border-box-control/stories/index.story.d.ts +2 -2
- package/build-types/border-box-control/stories/index.story.d.ts.map +1 -1
- package/build-types/border-control/stories/index.story.d.ts +2 -2
- package/build-types/border-control/stories/index.story.d.ts.map +1 -1
- package/build-types/button/stories/e2e/index.story.d.ts +3 -3
- package/build-types/button/stories/e2e/index.story.d.ts.map +1 -1
- package/build-types/button/stories/index.story.d.ts +10 -9
- package/build-types/button/stories/index.story.d.ts.map +1 -1
- package/build-types/button-group/stories/index.story.d.ts +3 -3
- package/build-types/button-group/stories/index.story.d.ts.map +1 -1
- package/build-types/card/stories/index.story.d.ts +2 -2
- package/build-types/card/stories/index.story.d.ts.map +1 -1
- package/build-types/checkbox-control/stories/index.story.d.ts +4 -4
- package/build-types/checkbox-control/stories/index.story.d.ts.map +1 -1
- package/build-types/circular-option-picker/stories/index.story.d.ts +2 -2
- package/build-types/circular-option-picker/stories/index.story.d.ts.map +1 -1
- package/build-types/color-indicator/stories/index.story.d.ts +3 -3
- package/build-types/color-indicator/stories/index.story.d.ts.map +1 -1
- package/build-types/color-palette/stories/index.story.d.ts +3 -3
- package/build-types/color-palette/stories/index.story.d.ts.map +1 -1
- package/build-types/color-palette/styles.d.ts +1 -1
- package/build-types/color-picker/stories/index.story.d.ts +2 -2
- package/build-types/color-picker/stories/index.story.d.ts.map +1 -1
- package/build-types/combobox-control/stories/index.story.d.ts +2 -2
- package/build-types/combobox-control/stories/index.story.d.ts.map +1 -1
- package/build-types/custom-gradient-picker/stories/index.story.d.ts +2 -2
- package/build-types/custom-gradient-picker/stories/index.story.d.ts.map +1 -1
- package/build-types/date-time/date/styles.d.ts +1 -1
- package/build-types/date-time/stories/date-time.story.d.ts +5 -5
- package/build-types/date-time/stories/date-time.story.d.ts.map +1 -1
- package/build-types/date-time/stories/date.story.d.ts +5 -5
- package/build-types/date-time/stories/date.story.d.ts.map +1 -1
- package/build-types/date-time/stories/time.story.d.ts +3 -3
- package/build-types/date-time/stories/time.story.d.ts.map +1 -1
- package/build-types/dimension-control/stories/index.story.d.ts.map +1 -1
- package/build-types/disabled/stories/index.story.d.ts +4 -4
- package/build-types/disabled/stories/index.story.d.ts.map +1 -1
- package/build-types/divider/stories/index.story.d.ts +5 -5
- package/build-types/divider/stories/index.story.d.ts.map +1 -1
- package/build-types/draggable/stories/index.story.d.ts +4 -4
- package/build-types/draggable/stories/index.story.d.ts.map +1 -1
- package/build-types/drop-zone/stories/index.story.d.ts +2 -2
- package/build-types/drop-zone/stories/index.story.d.ts.map +1 -1
- package/build-types/dropdown/stories/index.story.d.ts +6 -5
- package/build-types/dropdown/stories/index.story.d.ts.map +1 -1
- package/build-types/dropdown-menu/stories/index.story.d.ts +2 -2
- package/build-types/dropdown-menu/stories/index.story.d.ts.map +1 -1
- package/build-types/dropdown-menu-v2/stories/index.story.d.ts +2 -2
- package/build-types/dropdown-menu-v2/stories/index.story.d.ts.map +1 -1
- package/build-types/duotone-picker/stories/duotone-picker.story.d.ts +2 -2
- package/build-types/duotone-picker/stories/duotone-picker.story.d.ts.map +1 -1
- package/build-types/duotone-picker/stories/duotone-swatch.story.d.ts +2 -2
- package/build-types/duotone-picker/stories/duotone-swatch.story.d.ts.map +1 -1
- package/build-types/elevation/stories/index.story.d.ts +5 -5
- package/build-types/elevation/stories/index.story.d.ts.map +1 -1
- package/build-types/external-link/stories/index.story.d.ts +3 -3
- package/build-types/external-link/stories/index.story.d.ts.map +1 -1
- package/build-types/flex/stories/index.story.d.ts +4 -4
- package/build-types/flex/stories/index.story.d.ts.map +1 -1
- package/build-types/focal-point-picker/stories/index.story.d.ts +2 -2
- package/build-types/focal-point-picker/stories/index.story.d.ts.map +1 -1
- package/build-types/font-size-picker/stories/e2e/index.story.d.ts +2 -2
- package/build-types/font-size-picker/stories/e2e/index.story.d.ts.map +1 -1
- package/build-types/font-size-picker/stories/index.story.d.ts +8 -8
- package/build-types/font-size-picker/stories/index.story.d.ts.map +1 -1
- package/build-types/form-file-upload/stories/index.story.d.ts +2 -2
- package/build-types/form-file-upload/stories/index.story.d.ts.map +1 -1
- package/build-types/form-toggle/stories/index.story.d.ts +3 -3
- package/build-types/form-toggle/stories/index.story.d.ts.map +1 -1
- package/build-types/form-token-field/stories/index.story.d.ts +7 -7
- package/build-types/form-token-field/stories/index.story.d.ts.map +1 -1
- package/build-types/gradient-picker/stories/index.story.d.ts +2 -2
- package/build-types/gradient-picker/stories/index.story.d.ts.map +1 -1
- package/build-types/grid/stories/index.story.d.ts +3 -3
- package/build-types/grid/stories/index.story.d.ts.map +1 -1
- package/build-types/guide/stories/index.story.d.ts +2 -2
- package/build-types/guide/stories/index.story.d.ts.map +1 -1
- package/build-types/h-stack/stories/e2e/index.story.d.ts +3 -3
- package/build-types/h-stack/stories/e2e/index.story.d.ts.map +1 -1
- package/build-types/h-stack/stories/index.story.d.ts +3 -3
- package/build-types/h-stack/stories/index.story.d.ts.map +1 -1
- package/build-types/heading/stories/index.story.d.ts +3 -3
- package/build-types/heading/stories/index.story.d.ts.map +1 -1
- package/build-types/icon/stories/index.story.d.ts +4 -4
- package/build-types/icon/stories/index.story.d.ts.map +1 -1
- package/build-types/input-control/stories/index.story.d.ts +2 -2
- package/build-types/input-control/stories/index.story.d.ts.map +1 -1
- package/build-types/item-group/item/component.d.ts +0 -1
- package/build-types/item-group/item/component.d.ts.map +1 -1
- package/build-types/item-group/item-group/component.d.ts +0 -1
- package/build-types/item-group/item-group/component.d.ts.map +1 -1
- package/build-types/item-group/stories/index.story.d.ts +6 -6
- package/build-types/item-group/stories/index.story.d.ts.map +1 -1
- package/build-types/keyboard-shortcuts/stories/index.story.d.ts +2 -2
- package/build-types/keyboard-shortcuts/stories/index.story.d.ts.map +1 -1
- package/build-types/menu-group/stories/index.story.d.ts +3 -3
- package/build-types/menu-group/stories/index.story.d.ts.map +1 -1
- package/build-types/menu-item/index.d.ts +5 -58
- package/build-types/menu-item/index.d.ts.map +1 -1
- package/build-types/menu-item/stories/index.story.d.ts +74 -0
- package/build-types/menu-item/stories/index.story.d.ts.map +1 -0
- package/build-types/menu-item/types.d.ts +3 -2
- package/build-types/menu-item/types.d.ts.map +1 -1
- package/build-types/menu-items-choice/stories/index.story.d.ts +3 -3
- package/build-types/menu-items-choice/stories/index.story.d.ts.map +1 -1
- package/build-types/modal/stories/index.story.d.ts +4 -4
- package/build-types/modal/stories/index.story.d.ts.map +1 -1
- package/build-types/navigable-container/stories/navigable-menu.story.d.ts +3 -3
- package/build-types/navigable-container/stories/navigable-menu.story.d.ts.map +1 -1
- package/build-types/navigable-container/stories/tabbable-container.story.d.ts +3 -3
- package/build-types/navigable-container/stories/tabbable-container.story.d.ts.map +1 -1
- package/build-types/navigation/index.d.ts +0 -1
- package/build-types/navigation/index.d.ts.map +1 -1
- package/build-types/navigation/stories/index.story.d.ts +2 -2
- package/build-types/navigation/stories/index.story.d.ts.map +1 -1
- package/build-types/navigation/stories/utils/controlled-state.d.ts +2 -2
- package/build-types/navigation/stories/utils/controlled-state.d.ts.map +1 -1
- package/build-types/navigation/stories/utils/default.d.ts +2 -2
- package/build-types/navigation/stories/utils/default.d.ts.map +1 -1
- package/build-types/navigation/stories/utils/group.d.ts +2 -2
- package/build-types/navigation/stories/utils/group.d.ts.map +1 -1
- package/build-types/navigation/stories/utils/hide-if-empty.d.ts +2 -2
- package/build-types/navigation/stories/utils/hide-if-empty.d.ts.map +1 -1
- package/build-types/navigation/stories/utils/more-examples.d.ts +2 -2
- package/build-types/navigation/stories/utils/more-examples.d.ts.map +1 -1
- package/build-types/navigation/stories/utils/search.d.ts +2 -2
- package/build-types/navigation/stories/utils/search.d.ts.map +1 -1
- package/build-types/navigation/styles/navigation-styles.d.ts +1 -1
- package/build-types/navigator/navigator-provider/component.d.ts +0 -1
- package/build-types/navigator/navigator-provider/component.d.ts.map +1 -1
- package/build-types/navigator/stories/index.story.d.ts +5 -5
- package/build-types/navigator/stories/index.story.d.ts.map +1 -1
- package/build-types/notice/stories/index.story.d.ts +3 -3
- package/build-types/notice/stories/index.story.d.ts.map +1 -1
- package/build-types/number-control/stories/index.story.d.ts +2 -2
- package/build-types/number-control/stories/index.story.d.ts.map +1 -1
- package/build-types/palette-edit/stories/index.story.d.ts +2 -2
- package/build-types/palette-edit/stories/index.story.d.ts.map +1 -1
- package/build-types/palette-edit/styles.d.ts +1 -1
- package/build-types/palette-edit/styles.d.ts.map +1 -1
- package/build-types/panel/stories/index.story.d.ts +6 -6
- package/build-types/panel/stories/index.story.d.ts.map +1 -1
- package/build-types/placeholder/stories/index.story.d.ts +3 -3
- package/build-types/placeholder/stories/index.story.d.ts.map +1 -1
- package/build-types/popover/index.d.ts.map +1 -1
- package/build-types/popover/overlay-middlewares.d.ts +2 -2
- package/build-types/popover/overlay-middlewares.d.ts.map +1 -1
- package/build-types/popover/stories/index.story.d.ts +7 -7
- package/build-types/popover/stories/index.story.d.ts.map +1 -1
- package/build-types/popover/types.d.ts +6 -0
- package/build-types/popover/types.d.ts.map +1 -1
- package/build-types/popover/utils.d.ts +1 -21
- package/build-types/popover/utils.d.ts.map +1 -1
- package/build-types/progress-bar/stories/index.story.d.ts +3 -3
- package/build-types/progress-bar/stories/index.story.d.ts.map +1 -1
- package/build-types/progress-bar/styles.d.ts.map +1 -1
- package/build-types/query-controls/stories/index.story.d.ts +4 -4
- package/build-types/query-controls/stories/index.story.d.ts.map +1 -1
- package/build-types/radio-control/stories/index.story.d.ts +3 -3
- package/build-types/radio-control/stories/index.story.d.ts.map +1 -1
- package/build-types/range-control/stories/index.story.d.ts +9 -9
- package/build-types/range-control/stories/index.story.d.ts.map +1 -1
- package/build-types/resizable-box/stories/index.story.d.ts +2 -2
- package/build-types/resizable-box/stories/index.story.d.ts.map +1 -1
- package/build-types/responsive-wrapper/stories/index.story.d.ts +3 -3
- package/build-types/responsive-wrapper/stories/index.story.d.ts.map +1 -1
- package/build-types/sandbox/stories/index.story.d.ts +2 -2
- package/build-types/sandbox/stories/index.story.d.ts.map +1 -1
- package/build-types/scroll-lock/stories/index.story.d.ts +3 -3
- package/build-types/scroll-lock/stories/index.story.d.ts.map +1 -1
- package/build-types/scrollable/stories/index.story.d.ts +3 -3
- package/build-types/scrollable/stories/index.story.d.ts.map +1 -1
- package/build-types/search-control/stories/index.story.d.ts +2 -2
- package/build-types/search-control/stories/index.story.d.ts.map +1 -1
- package/build-types/select-control/stories/index.story.d.ts +2 -2
- package/build-types/select-control/stories/index.story.d.ts.map +1 -1
- package/build-types/shortcut/index.d.ts +13 -0
- package/build-types/shortcut/index.d.ts.map +1 -1
- package/build-types/shortcut/stories/index.story.d.ts +13 -0
- package/build-types/shortcut/stories/index.story.d.ts.map +1 -0
- package/build-types/slot-fill/bubbles-virtually/slot-fill-context.d.ts +1 -0
- package/build-types/slot-fill/bubbles-virtually/slot-fill-context.d.ts.map +1 -1
- package/build-types/slot-fill/bubbles-virtually/slot.d.ts +1 -6
- package/build-types/slot-fill/index.d.ts +1 -1
- package/build-types/slot-fill/index.d.ts.map +1 -1
- package/build-types/snackbar/stories/index.story.d.ts +7 -7
- package/build-types/snackbar/stories/index.story.d.ts.map +1 -1
- package/build-types/snackbar/stories/list.story.d.ts +3 -3
- package/build-types/snackbar/stories/list.story.d.ts.map +1 -1
- package/build-types/spacer/stories/index.story.d.ts +3 -3
- package/build-types/spacer/stories/index.story.d.ts.map +1 -1
- package/build-types/spinner/index.d.ts +0 -1
- package/build-types/spinner/index.d.ts.map +1 -1
- package/build-types/spinner/stories/index.story.d.ts +4 -4
- package/build-types/spinner/stories/index.story.d.ts.map +1 -1
- package/build-types/surface/stories/index.story.d.ts +3 -3
- package/build-types/surface/stories/index.story.d.ts.map +1 -1
- package/build-types/tab-panel/stories/index.story.d.ts +2 -2
- package/build-types/tab-panel/stories/index.story.d.ts.map +1 -1
- package/build-types/text-control/stories/index.story.d.ts +4 -4
- package/build-types/text-control/stories/index.story.d.ts.map +1 -1
- package/build-types/text-highlight/stories/index.story.d.ts +3 -3
- package/build-types/text-highlight/stories/index.story.d.ts.map +1 -1
- package/build-types/textarea-control/stories/index.story.d.ts +3 -3
- package/build-types/textarea-control/stories/index.story.d.ts.map +1 -1
- package/build-types/theme/index.d.ts +0 -1
- package/build-types/theme/index.d.ts.map +1 -1
- package/build-types/theme/stories/index.story.d.ts +4 -4
- package/build-types/theme/stories/index.story.d.ts.map +1 -1
- package/build-types/tip/stories/index.story.d.ts +3 -3
- package/build-types/tip/stories/index.story.d.ts.map +1 -1
- package/build-types/toggle-control/stories/index.story.d.ts +2 -2
- package/build-types/toggle-control/stories/index.story.d.ts.map +1 -1
- package/build-types/toggle-group-control/stories/index.story.d.ts +6 -6
- package/build-types/toggle-group-control/stories/index.story.d.ts.map +1 -1
- package/build-types/toolbar/stories/index.story.d.ts +2 -2
- package/build-types/toolbar/stories/index.story.d.ts.map +1 -1
- package/build-types/tools-panel/stories/index.story.d.ts +8 -8
- package/build-types/tools-panel/stories/index.story.d.ts.map +1 -1
- package/build-types/tools-panel/tools-panel/component.d.ts +0 -1
- package/build-types/tools-panel/tools-panel/component.d.ts.map +1 -1
- package/build-types/tools-panel/tools-panel-header/component.d.ts.map +1 -1
- package/build-types/tree-grid/stories/index.story.d.ts +2 -2
- package/build-types/tree-grid/stories/index.story.d.ts.map +1 -1
- package/build-types/tree-select/index.d.ts +0 -1
- package/build-types/tree-select/index.d.ts.map +1 -1
- package/build-types/tree-select/stories/index.story.d.ts +2 -2
- package/build-types/tree-select/stories/index.story.d.ts.map +1 -1
- package/build-types/truncate/stories/index.story.d.ts +4 -4
- package/build-types/truncate/stories/index.story.d.ts.map +1 -1
- package/build-types/unit-control/index.d.ts +0 -1
- package/build-types/unit-control/index.d.ts.map +1 -1
- package/build-types/unit-control/stories/index.story.d.ts +7 -7
- package/build-types/unit-control/stories/index.story.d.ts.map +1 -1
- package/build-types/utils/hooks/use-cx.d.ts +2 -1
- package/build-types/utils/hooks/use-cx.d.ts.map +1 -1
- package/build-types/v-stack/stories/e2e/index.story.d.ts +3 -3
- package/build-types/v-stack/stories/e2e/index.story.d.ts.map +1 -1
- package/build-types/v-stack/stories/index.story.d.ts +2 -2
- package/build-types/v-stack/stories/index.story.d.ts.map +1 -1
- package/build-types/view/component.d.ts +0 -1
- package/build-types/view/component.d.ts.map +1 -1
- package/build-types/view/stories/index.story.d.ts +3 -3
- package/build-types/view/stories/index.story.d.ts.map +1 -1
- package/build-types/visually-hidden/stories/index.story.d.ts +5 -5
- package/build-types/visually-hidden/stories/index.story.d.ts.map +1 -1
- package/build-types/z-stack/stories/index.story.d.ts +3 -3
- package/build-types/z-stack/stories/index.story.d.ts.map +1 -1
- package/package.json +20 -20
- package/src/alignment-matrix-control/stories/index.story.tsx +7 -3
- package/src/angle-picker-control/stories/index.story.tsx +3 -3
- package/src/animate/stories/index.story.tsx +12 -10
- package/src/base-control/stories/index.story.tsx +5 -9
- package/src/border-box-control/stories/index.story.tsx +5 -9
- package/src/border-control/stories/index.story.tsx +8 -14
- package/src/button/stories/e2e/index.story.tsx +3 -3
- package/src/button/stories/index.story.tsx +10 -10
- package/src/button-group/stories/index.story.tsx +4 -6
- package/src/card/stories/index.story.tsx +5 -5
- package/src/checkbox-control/stories/index.story.tsx +7 -6
- package/src/circular-option-picker/stories/index.story.tsx +16 -4
- package/src/color-indicator/stories/index.story.tsx +4 -6
- package/src/color-palette/stories/index.story.tsx +12 -21
- package/src/color-picker/hsv-color-picker.native.js +88 -0
- package/src/color-picker/hue-picker.native.js +194 -0
- package/src/color-picker/index.native.js +2 -1
- package/src/color-picker/saturation-picker.native.js +163 -0
- package/src/color-picker/stories/index.story.tsx +3 -3
- package/src/color-picker/style.native.scss +23 -0
- package/src/combobox-control/stories/index.story.tsx +3 -3
- package/src/custom-gradient-picker/stories/index.story.tsx +3 -3
- package/src/date-time/stories/date-time.story.tsx +8 -10
- package/src/date-time/stories/date.story.tsx +8 -9
- package/src/date-time/stories/time.story.tsx +4 -4
- package/src/dimension-control/stories/index.story.tsx +3 -3
- package/src/disabled/stories/index.story.tsx +4 -4
- package/src/divider/stories/index.story.tsx +6 -6
- package/src/draggable/stories/index.story.tsx +5 -7
- package/src/drop-zone/stories/index.story.tsx +3 -3
- package/src/dropdown/stories/index.story.tsx +8 -6
- package/src/dropdown-menu/stories/index.story.tsx +3 -3
- package/src/dropdown-menu-v2/stories/index.story.tsx +24 -10
- package/src/duotone-picker/stories/duotone-picker.story.tsx +3 -6
- package/src/duotone-picker/stories/duotone-swatch.story.tsx +3 -3
- package/src/elevation/stories/index.story.tsx +7 -7
- package/src/external-link/stories/index.story.tsx +4 -6
- package/src/flex/stories/index.story.tsx +6 -6
- package/src/focal-point-picker/stories/index.story.tsx +3 -3
- package/src/font-size-picker/stories/e2e/index.story.tsx +3 -3
- package/src/font-size-picker/stories/index.story.tsx +10 -10
- package/src/form-file-upload/stories/index.story.tsx +3 -3
- package/src/form-toggle/stories/index.story.tsx +4 -7
- package/src/form-token-field/stories/index.story.tsx +10 -11
- package/src/gradient-picker/stories/index.story.tsx +3 -3
- package/src/grid/stories/index.story.tsx +4 -4
- package/src/guide/stories/index.story.tsx +3 -3
- package/src/h-stack/stories/e2e/index.story.tsx +4 -4
- package/src/h-stack/stories/index.story.tsx +4 -4
- package/src/heading/stories/index.story.tsx +3 -3
- package/src/icon/stories/index.story.tsx +5 -5
- package/src/input-control/stories/index.story.tsx +5 -3
- package/src/item-group/item/component.tsx +0 -1
- package/src/item-group/item-group/component.tsx +0 -1
- package/src/item-group/stories/index.story.tsx +11 -12
- package/src/keyboard-shortcuts/stories/index.story.tsx +3 -3
- package/src/menu-group/stories/index.story.tsx +5 -5
- package/src/menu-item/README.md +1 -1
- package/src/menu-item/index.tsx +5 -2
- package/src/menu-item/stories/index.story.tsx +80 -0
- package/src/menu-item/types.ts +3 -2
- package/src/menu-items-choice/stories/index.story.tsx +4 -6
- package/src/mobile/link-settings/link-settings-navigation.native.js +1 -1
- package/src/modal/stories/index.story.tsx +5 -10
- package/src/navigable-container/stories/navigable-menu.story.tsx +3 -3
- package/src/navigable-container/stories/tabbable-container.story.tsx +3 -3
- package/src/navigation/index.tsx +0 -1
- package/src/navigation/stories/index.story.tsx +16 -2
- package/src/navigation/stories/utils/controlled-state.tsx +2 -2
- package/src/navigation/stories/utils/default.tsx +2 -2
- package/src/navigation/stories/utils/group.tsx +2 -2
- package/src/navigation/stories/utils/hide-if-empty.tsx +2 -2
- package/src/navigation/stories/utils/more-examples.tsx +2 -2
- package/src/navigation/stories/utils/search.tsx +2 -2
- package/src/navigator/navigator-provider/component.tsx +0 -1
- package/src/navigator/stories/index.story.tsx +9 -10
- package/src/notice/stories/index.story.tsx +6 -6
- package/src/number-control/stories/index.story.tsx +3 -3
- package/src/palette-edit/stories/index.story.tsx +3 -3
- package/src/palette-edit/styles.js +0 -1
- package/src/panel/stories/index.story.tsx +9 -11
- package/src/placeholder/stories/index.story.tsx +4 -6
- package/src/popover/README.md +2 -2
- package/src/popover/index.tsx +69 -103
- package/src/popover/overlay-middlewares.tsx +2 -2
- package/src/popover/stories/index.story.tsx +8 -10
- package/src/popover/test/index.tsx +15 -1
- package/src/popover/types.ts +6 -0
- package/src/popover/utils.ts +5 -56
- package/src/progress-bar/stories/index.story.tsx +4 -6
- package/src/progress-bar/styles.ts +4 -1
- package/src/query-controls/stories/index.story.tsx +5 -6
- package/src/radio-control/stories/index.story.tsx +4 -6
- package/src/radio-group/stories/index.story.js +1 -0
- package/src/range-control/stories/index.story.tsx +12 -18
- package/src/resizable-box/stories/index.story.tsx +3 -3
- package/src/responsive-wrapper/stories/index.story.tsx +4 -5
- package/src/sandbox/stories/index.story.tsx +3 -5
- package/src/scroll-lock/stories/index.story.tsx +3 -3
- package/src/scrollable/stories/index.story.tsx +4 -4
- package/src/search-control/index.native.js +39 -27
- package/src/search-control/stories/index.story.tsx +3 -3
- package/src/select-control/stories/index.story.tsx +3 -3
- package/src/shortcut/index.tsx +13 -0
- package/src/shortcut/stories/index.story.tsx +33 -0
- package/src/slot-fill/README.md +5 -5
- package/src/slot-fill/bubbles-virtually/slot-fill-context.js +3 -0
- package/src/slot-fill/bubbles-virtually/slot.js +17 -5
- package/src/slot-fill/index.js +6 -1
- package/src/slot-fill/stories/index.story.js +2 -0
- package/src/slot-fill/test/__snapshots__/slot.js.snap +12 -4
- package/src/snackbar/stories/index.story.tsx +10 -13
- package/src/snackbar/stories/list.story.tsx +3 -3
- package/src/spacer/stories/index.story.tsx +4 -4
- package/src/spinner/index.tsx +0 -1
- package/src/spinner/stories/index.story.tsx +5 -5
- package/src/surface/stories/index.story.tsx +4 -4
- package/src/tab-panel/stories/index.story.tsx +5 -13
- package/src/tab-panel/test/index.tsx +9 -25
- package/src/text-control/stories/index.story.tsx +7 -6
- package/src/text-highlight/stories/index.story.tsx +4 -6
- package/src/textarea-control/stories/index.story.tsx +4 -6
- package/src/theme/index.tsx +0 -1
- package/src/theme/stories/index.story.tsx +5 -5
- package/src/tip/stories/index.story.tsx +4 -4
- package/src/toggle-control/stories/index.story.tsx +3 -3
- package/src/toggle-group-control/stories/index.story.tsx +17 -11
- package/src/toolbar/stories/index.story.tsx +13 -3
- package/src/tools-panel/stories/index.story.tsx +17 -12
- package/src/tools-panel/tools-panel/component.tsx +0 -1
- package/src/tools-panel/tools-panel-header/component.tsx +3 -0
- package/src/tree-grid/stories/index.story.tsx +5 -3
- package/src/tree-select/index.tsx +0 -1
- package/src/tree-select/stories/index.story.tsx +3 -3
- package/src/truncate/stories/index.story.tsx +5 -7
- package/src/unit-control/index.tsx +0 -1
- package/src/unit-control/stories/index.story.tsx +10 -9
- package/src/utils/hooks/use-cx.ts +2 -1
- package/src/v-stack/stories/e2e/index.story.tsx +4 -4
- package/src/v-stack/stories/index.story.tsx +3 -3
- package/src/view/component.tsx +0 -1
- package/src/view/stories/index.story.tsx +4 -4
- package/src/visually-hidden/stories/index.story.tsx +7 -7
- package/src/z-stack/stories/index.story.tsx +4 -4
- package/tsconfig.tsbuildinfo +1 -1
- package/build/popover/limit-shift.js +0 -129
- package/build/popover/limit-shift.js.map +0 -1
- package/build-module/popover/limit-shift.js +0 -122
- package/build-module/popover/limit-shift.js.map +0 -1
- package/build-types/popover/limit-shift.d.ts +0 -87
- package/build-types/popover/limit-shift.d.ts.map +0 -1
- package/src/popover/limit-shift.ts +0 -205
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Button","Heading","HStack","space","COLORS","CONFIG","View","InputControl","Container","InputControlContainer","Input","BackdropUI","InputBackdropUI","CircularOptionPicker","IndicatorStyled","_styled","Option","process","env","NODE_ENV","target","label","NameInputControl","gray","controlBorderRadius","PaletteItem","
|
|
1
|
+
{"version":3,"names":["Button","Heading","HStack","space","COLORS","CONFIG","View","InputControl","Container","InputControlContainer","Input","BackdropUI","InputBackdropUI","CircularOptionPicker","IndicatorStyled","_styled","Option","process","env","NODE_ENV","target","label","NameInputControl","gray","controlBorderRadius","PaletteItem","surfaceBorderColor","theme","accent","NameContainer","PaletteHeading","PaletteActionsContainer","PaletteHStackHeader","PaletteEditStyles","name","styles","map","toString","_EMOTION_STRINGIFIED_CSS_ERROR__","DoneButton","RemoveButton"],"sources":["@wordpress/components/src/palette-edit/styles.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport styled from '@emotion/styled';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport { Heading } from '../heading';\nimport { HStack } from '../h-stack';\nimport { space } from '../ui/utils/space';\nimport { COLORS, CONFIG } from '../utils';\nimport { View } from '../view';\nimport InputControl from '../input-control';\nimport {\n\tContainer as InputControlContainer,\n\tInput,\n\tBackdropUI as InputBackdropUI,\n} from '../input-control/styles/input-control-styles';\nimport CircularOptionPicker from '../circular-option-picker';\n\nexport const IndicatorStyled = styled( CircularOptionPicker.Option )`\n\twidth: ${ space( 6 ) };\n\theight: ${ space( 6 ) };\n\tpointer-events: none;\n`;\n\nexport const NameInputControl = styled( InputControl )`\n\t${ InputControlContainer } {\n\t\tbackground: ${ COLORS.gray[ 100 ] };\n\t\tborder-radius: ${ CONFIG.controlBorderRadius };\n\t\t${ Input }${ Input }${ Input }${ Input } {\n\t\t\theight: ${ space( 8 ) };\n\t\t}\n\t\t${ InputBackdropUI }${ InputBackdropUI }${ InputBackdropUI } {\n\t\t\tborder-color: transparent;\n\t\t\tbox-shadow: none;\n\t\t}\n\t}\n`;\n\nexport const PaletteItem = styled( View )`\n\tpadding: 3px 0 3px ${ space( 3 ) };\n\tborder: 1px solid ${ CONFIG.surfaceBorderColor };\n\tborder-bottom-color: transparent;\n\t&:first-of-type {\n\t\tborder-top-left-radius: ${ CONFIG.controlBorderRadius };\n\t\tborder-top-right-radius: ${ CONFIG.controlBorderRadius };\n\t}\n\t&:last-of-type {\n\t\tborder-bottom-left-radius: ${ CONFIG.controlBorderRadius };\n\t\tborder-bottom-right-radius: ${ CONFIG.controlBorderRadius };\n\t\tborder-bottom-color: ${ CONFIG.surfaceBorderColor };\n\t}\n\t&.is-selected + & {\n\t\tborder-top-color: transparent;\n\t}\n\t&.is-selected {\n\t\tborder-color: ${ COLORS.theme.accent };\n\t}\n`;\n\nexport const NameContainer = styled.div`\n\tline-height: ${ space( 8 ) };\n\tmargin-left: ${ space( 2 ) };\n\tmargin-right: ${ space( 2 ) };\n\twhite-space: nowrap;\n\toverflow: hidden;\n\t${ PaletteItem }:hover & {\n\t\tcolor: ${ COLORS.theme.accent };\n\t}\n`;\n\nexport const PaletteHeading = styled( Heading )`\n\ttext-transform: uppercase;\n\tline-height: ${ space( 6 ) };\n\tfont-weight: 500;\n\t&&& {\n\t\tfont-size: 11px;\n\t\tmargin-bottom: 0;\n\t}\n`;\n\nexport const PaletteActionsContainer = styled( View )`\n\theight: ${ space( 6 ) };\n\tdisplay: flex;\n`;\n\nexport const PaletteHStackHeader = styled( HStack )`\n\tmargin-bottom: ${ space( 2 ) };\n`;\n\nexport const PaletteEditStyles = styled( View )`\n\t&&& {\n\t\t.components-button.has-icon {\n\t\t\tmin-width: 0;\n\t\t\tpadding: 0;\n\t\t}\n\t}\n`;\n\nexport const DoneButton = styled( Button )`\n\t&& {\n\t\tcolor: ${ COLORS.theme.accent };\n\t}\n`;\n\nexport const RemoveButton = styled( Button )`\n\t&& {\n\t\tmargin-top: ${ space( 1 ) };\n\t}\n`;\n"],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { createElement } from "@wordpress/element";
|
|
1
|
+
import { createElement, Fragment } from "@wordpress/element";
|
|
2
2
|
/**
|
|
3
3
|
* External dependencies
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import classnames from 'classnames';
|
|
7
|
-
import { useFloating, flip as flipMiddleware, shift as shiftMiddleware, autoUpdate, arrow, offset as offsetMiddleware, size } from '@floating-ui/react-dom';
|
|
7
|
+
import { useFloating, flip as flipMiddleware, shift as shiftMiddleware, limitShift, autoUpdate, arrow, offset as offsetMiddleware, size } from '@floating-ui/react-dom';
|
|
8
8
|
// eslint-disable-next-line no-restricted-imports
|
|
9
9
|
|
|
10
10
|
// eslint-disable-next-line no-restricted-imports
|
|
@@ -13,7 +13,7 @@ import { motion, useReducedMotion } from 'framer-motion';
|
|
|
13
13
|
/**
|
|
14
14
|
* WordPress dependencies
|
|
15
15
|
*/
|
|
16
|
-
import { useRef, useLayoutEffect, forwardRef, createContext, useContext, useMemo, useState, useCallback } from '@wordpress/element';
|
|
16
|
+
import { useRef, useLayoutEffect, forwardRef, createContext, useContext, useMemo, useState, useCallback, createPortal } from '@wordpress/element';
|
|
17
17
|
import { useViewportMatch, useMergeRefs, __experimentalUseDialog as useDialog } from '@wordpress/compose';
|
|
18
18
|
import { close } from '@wordpress/icons';
|
|
19
19
|
import deprecated from '@wordpress/deprecated';
|
|
@@ -26,8 +26,7 @@ import { getScrollContainer } from '@wordpress/dom';
|
|
|
26
26
|
import Button from '../button';
|
|
27
27
|
import ScrollLock from '../scroll-lock';
|
|
28
28
|
import { Slot, Fill, useSlot } from '../slot-fill';
|
|
29
|
-
import { computePopoverPosition,
|
|
30
|
-
import { limitShift as customLimitShift } from './limit-shift';
|
|
29
|
+
import { computePopoverPosition, positionToPlacement, placementToMotionAnimationProps, getReferenceOwnerDocument, getReferenceElement } from './utils';
|
|
31
30
|
import { overlayMiddlewares } from './overlay-middlewares';
|
|
32
31
|
|
|
33
32
|
/**
|
|
@@ -82,8 +81,17 @@ const AnimatedWrapper = forwardRef(({
|
|
|
82
81
|
});
|
|
83
82
|
});
|
|
84
83
|
const slotNameContext = createContext(undefined);
|
|
84
|
+
const fallbackContainerClassname = 'components-popover__fallback-container';
|
|
85
|
+
const getPopoverFallbackContainer = () => {
|
|
86
|
+
let container = document.body.querySelector('.' + fallbackContainerClassname);
|
|
87
|
+
if (!container) {
|
|
88
|
+
container = document.createElement('div');
|
|
89
|
+
container.className = fallbackContainerClassname;
|
|
90
|
+
document.body.append(container);
|
|
91
|
+
}
|
|
92
|
+
return container;
|
|
93
|
+
};
|
|
85
94
|
const UnforwardedPopover = (props, forwardedRef) => {
|
|
86
|
-
var _frameOffsetRef$curre, _frameOffsetRef$curre2;
|
|
87
95
|
const {
|
|
88
96
|
animate = true,
|
|
89
97
|
headerTitle,
|
|
@@ -102,6 +110,7 @@ const UnforwardedPopover = (props, forwardedRef) => {
|
|
|
102
110
|
flip = true,
|
|
103
111
|
resize = true,
|
|
104
112
|
shift = false,
|
|
113
|
+
inline = false,
|
|
105
114
|
variant,
|
|
106
115
|
// Deprecated props
|
|
107
116
|
__unstableForcePosition,
|
|
@@ -161,39 +170,7 @@ const UnforwardedPopover = (props, forwardedRef) => {
|
|
|
161
170
|
const isExpanded = expandOnMobile && isMobileViewport;
|
|
162
171
|
const hasArrow = !isExpanded && !noArrow;
|
|
163
172
|
const normalizedPlacementFromProps = position ? positionToPlacement(position) : placementProp;
|
|
164
|
-
|
|
165
|
-
/**
|
|
166
|
-
* Offsets the position of the popover when the anchor is inside an iframe.
|
|
167
|
-
*
|
|
168
|
-
* Store the offset in a ref, due to constraints with floating-ui:
|
|
169
|
-
* https://floating-ui.com/docs/react-dom#variables-inside-middleware-functions.
|
|
170
|
-
*/
|
|
171
|
-
const frameOffsetRef = useRef(getFrameOffset(referenceOwnerDocument));
|
|
172
|
-
const middleware = [...(placementProp === 'overlay' ? overlayMiddlewares() : []),
|
|
173
|
-
// Custom middleware which adjusts the popover's position by taking into
|
|
174
|
-
// account the offset of the anchor's iframe (if any) compared to the page.
|
|
175
|
-
{
|
|
176
|
-
name: 'frameOffset',
|
|
177
|
-
fn({
|
|
178
|
-
x,
|
|
179
|
-
y
|
|
180
|
-
}) {
|
|
181
|
-
if (!frameOffsetRef.current) {
|
|
182
|
-
return {
|
|
183
|
-
x,
|
|
184
|
-
y
|
|
185
|
-
};
|
|
186
|
-
}
|
|
187
|
-
return {
|
|
188
|
-
x: x + frameOffsetRef.current.x,
|
|
189
|
-
y: y + frameOffsetRef.current.y,
|
|
190
|
-
data: {
|
|
191
|
-
// This will be used in the customLimitShift() function.
|
|
192
|
-
amount: frameOffsetRef.current
|
|
193
|
-
}
|
|
194
|
-
};
|
|
195
|
-
}
|
|
196
|
-
}, offsetMiddleware(offsetProp), computedFlipProp ? flipMiddleware() : undefined, computedResizeProp ? size({
|
|
173
|
+
const middleware = [...(placementProp === 'overlay' ? overlayMiddlewares() : []), offsetMiddleware(offsetProp), computedFlipProp && flipMiddleware(), computedResizeProp && size({
|
|
197
174
|
apply(sizeProps) {
|
|
198
175
|
var _refs$floating$curren;
|
|
199
176
|
const {
|
|
@@ -209,13 +186,13 @@ const UnforwardedPopover = (props, forwardedRef) => {
|
|
|
209
186
|
overflow: 'auto'
|
|
210
187
|
});
|
|
211
188
|
}
|
|
212
|
-
})
|
|
189
|
+
}), shift && shiftMiddleware({
|
|
213
190
|
crossAxis: true,
|
|
214
|
-
limiter:
|
|
191
|
+
limiter: limitShift(),
|
|
215
192
|
padding: 1 // Necessary to avoid flickering at the edge of the viewport.
|
|
216
|
-
})
|
|
193
|
+
}), arrow({
|
|
217
194
|
element: arrowRef
|
|
218
|
-
})]
|
|
195
|
+
})];
|
|
219
196
|
const slotName = useContext(slotNameContext) || __unstableSlotName;
|
|
220
197
|
const slot = useSlot(slotName);
|
|
221
198
|
let onDialogClose;
|
|
@@ -240,10 +217,6 @@ const UnforwardedPopover = (props, forwardedRef) => {
|
|
|
240
217
|
// Positioning coordinates
|
|
241
218
|
x,
|
|
242
219
|
y,
|
|
243
|
-
// Callback refs (not regular refs). This allows the position to be updated.
|
|
244
|
-
// when either elements change.
|
|
245
|
-
reference: referenceCallbackRef,
|
|
246
|
-
floating,
|
|
247
220
|
// Object with "regular" refs to both "reference" and "floating"
|
|
248
221
|
refs,
|
|
249
222
|
// Type of CSS position property to use (absolute or fixed)
|
|
@@ -257,6 +230,7 @@ const UnforwardedPopover = (props, forwardedRef) => {
|
|
|
257
230
|
placement: normalizedPlacementFromProps === 'overlay' ? undefined : normalizedPlacementFromProps,
|
|
258
231
|
middleware,
|
|
259
232
|
whileElementsMounted: (referenceParam, floatingParam, updateParam) => autoUpdate(referenceParam, floatingParam, updateParam, {
|
|
233
|
+
layoutShift: false,
|
|
260
234
|
animationFrame: true
|
|
261
235
|
})
|
|
262
236
|
});
|
|
@@ -281,32 +255,22 @@ const UnforwardedPopover = (props, forwardedRef) => {
|
|
|
281
255
|
fallbackReferenceElement,
|
|
282
256
|
fallbackDocument: document
|
|
283
257
|
});
|
|
284
|
-
const scale = getFrameScale(resultingReferenceOwnerDoc);
|
|
285
258
|
const resultingReferenceElement = getReferenceElement({
|
|
286
259
|
anchor,
|
|
287
260
|
anchorRef,
|
|
288
261
|
anchorRect,
|
|
289
262
|
getAnchorRect,
|
|
290
|
-
fallbackReferenceElement
|
|
291
|
-
scale
|
|
263
|
+
fallbackReferenceElement
|
|
292
264
|
});
|
|
293
|
-
|
|
265
|
+
refs.setReference(resultingReferenceElement);
|
|
294
266
|
setReferenceOwnerDocument(resultingReferenceOwnerDoc);
|
|
295
|
-
}, [anchor, anchorRef, anchorRefTop, anchorRefBottom, anchorRefStartContainer, anchorRefCurrent, anchorRect, getAnchorRect, fallbackReferenceElement,
|
|
267
|
+
}, [anchor, anchorRef, anchorRefTop, anchorRefBottom, anchorRefStartContainer, anchorRefCurrent, anchorRect, getAnchorRect, fallbackReferenceElement, refs]);
|
|
296
268
|
|
|
297
269
|
// If the reference element is in a different ownerDocument (e.g. iFrame),
|
|
298
270
|
// we need to manually update the floating's position as the reference's owner
|
|
299
|
-
// document scrolls.
|
|
271
|
+
// document scrolls.
|
|
300
272
|
useLayoutEffect(() => {
|
|
301
|
-
if (
|
|
302
|
-
// Reference and root documents are the same.
|
|
303
|
-
referenceOwnerDocument === document ||
|
|
304
|
-
// Reference and floating are in the same document.
|
|
305
|
-
referenceOwnerDocument === refs.floating.current?.ownerDocument ||
|
|
306
|
-
// The reference's document has no view (i.e. window)
|
|
307
|
-
// or frame element (ie. it's not an iframe).
|
|
308
|
-
!referenceOwnerDocument?.defaultView?.frameElement) {
|
|
309
|
-
frameOffsetRef.current = undefined;
|
|
273
|
+
if (!referenceOwnerDocument || !referenceOwnerDocument.defaultView) {
|
|
310
274
|
return;
|
|
311
275
|
}
|
|
312
276
|
const {
|
|
@@ -316,19 +280,14 @@ const UnforwardedPopover = (props, forwardedRef) => {
|
|
|
316
280
|
frameElement
|
|
317
281
|
} = defaultView;
|
|
318
282
|
const scrollContainer = frameElement ? getScrollContainer(frameElement) : null;
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
update();
|
|
322
|
-
};
|
|
323
|
-
defaultView.addEventListener('resize', updateFrameOffset);
|
|
324
|
-
scrollContainer?.addEventListener('scroll', updateFrameOffset);
|
|
325
|
-
updateFrameOffset();
|
|
283
|
+
defaultView.addEventListener('resize', update);
|
|
284
|
+
scrollContainer?.addEventListener('scroll', update);
|
|
326
285
|
return () => {
|
|
327
|
-
defaultView.removeEventListener('resize',
|
|
328
|
-
scrollContainer?.removeEventListener('scroll',
|
|
286
|
+
defaultView.removeEventListener('resize', update);
|
|
287
|
+
scrollContainer?.removeEventListener('scroll', update);
|
|
329
288
|
};
|
|
330
|
-
}, [referenceOwnerDocument, update
|
|
331
|
-
const mergedFloatingRef = useMergeRefs([
|
|
289
|
+
}, [referenceOwnerDocument, update]);
|
|
290
|
+
const mergedFloatingRef = useMergeRefs([refs.setFloating, dialogRef, forwardedRef]);
|
|
332
291
|
|
|
333
292
|
// Disable reason: We care to capture the _bubbled_ events from inputs
|
|
334
293
|
// within popover as inferring close intent.
|
|
@@ -375,21 +334,25 @@ const UnforwardedPopover = (props, forwardedRef) => {
|
|
|
375
334
|
ref: arrowCallbackRef,
|
|
376
335
|
className: ['components-popover__arrow', `is-${computedPlacement.split('-')[0]}`].join(' '),
|
|
377
336
|
style: {
|
|
378
|
-
left: typeof arrowData?.x !== 'undefined' && Number.isFinite(arrowData.x) ? `${arrowData.x
|
|
379
|
-
top: typeof arrowData?.y !== 'undefined' && Number.isFinite(arrowData.y) ? `${arrowData.y
|
|
337
|
+
left: typeof arrowData?.x !== 'undefined' && Number.isFinite(arrowData.x) ? `${arrowData.x}px` : '',
|
|
338
|
+
top: typeof arrowData?.y !== 'undefined' && Number.isFinite(arrowData.y) ? `${arrowData.y}px` : ''
|
|
380
339
|
}
|
|
381
340
|
}, createElement(ArrowTriangle, null)));
|
|
382
|
-
|
|
341
|
+
const shouldRenderWithinSlot = slot.ref && !inline;
|
|
342
|
+
const hasAnchor = anchorRef || anchorRect || anchor;
|
|
343
|
+
if (shouldRenderWithinSlot) {
|
|
383
344
|
content = createElement(Fill, {
|
|
384
345
|
name: slotName
|
|
385
346
|
}, content);
|
|
347
|
+
} else if (!inline) {
|
|
348
|
+
content = createPortal(content, getPopoverFallbackContainer());
|
|
386
349
|
}
|
|
387
|
-
if (
|
|
350
|
+
if (hasAnchor) {
|
|
388
351
|
return content;
|
|
389
352
|
}
|
|
390
|
-
return createElement("span", {
|
|
353
|
+
return createElement(Fragment, null, createElement("span", {
|
|
391
354
|
ref: anchorRefFallback
|
|
392
|
-
}, content);
|
|
355
|
+
}), content);
|
|
393
356
|
};
|
|
394
357
|
|
|
395
358
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["classnames","useFloating","flip","flipMiddleware","shift","shiftMiddleware","autoUpdate","arrow","offset","offsetMiddleware","size","motion","useReducedMotion","useRef","useLayoutEffect","forwardRef","createContext","useContext","useMemo","useState","useCallback","useViewportMatch","useMergeRefs","__experimentalUseDialog","useDialog","close","deprecated","Path","SVG","getScrollContainer","Button","ScrollLock","Slot","Fill","useSlot","computePopoverPosition","getFrameOffset","getFrameScale","positionToPlacement","placementToMotionAnimationProps","getReferenceOwnerDocument","getReferenceElement","limitShift","customLimitShift","overlayMiddlewares","SLOT_NAME","ArrowTriangle","createElement","xmlns","viewBox","className","role","d","vectorEffect","AnimatedWrapper","style","receivedInlineStyles","placement","shouldAnimate","props","forwardedRef","shouldReduceMotion","motionInlineStyles","otherMotionProps","computedAnimationProps","animate","div","ref","slotNameContext","undefined","UnforwardedPopover","_frameOffsetRef$curre","_frameOffsetRef$curre2","headerTitle","onClose","children","noArrow","position","placementProp","offsetProp","focusOnMount","anchor","expandOnMobile","onFocusOutside","__unstableSlotName","resize","variant","__unstableForcePosition","anchorRef","anchorRect","getAnchorRect","isAlternate","contentProps","computedFlipProp","computedResizeProp","since","version","alternative","computedVariant","arrowRef","fallbackReferenceElement","setFallbackReferenceElement","referenceOwnerDocument","setReferenceOwnerDocument","anchorRefFallback","node","isMobileViewport","isExpanded","hasArrow","normalizedPlacementFromProps","frameOffsetRef","middleware","name","fn","x","y","current","data","amount","apply","sizeProps","_refs$floating$curren","firstElementChild","refs","floating","HTMLElement","Object","assign","maxHeight","availableHeight","overflow","crossAxis","limiter","padding","element","filter","m","slotName","slot","onDialogClose","type","event","dialogRef","dialogProps","__unstableOnClose","reference","referenceCallbackRef","strategy","update","computedPlacement","middlewareData","arrowData","whileElementsMounted","referenceParam","floatingParam","updateParam","animationFrame","arrowCallbackRef","anchorRefTop","top","anchorRefBottom","bottom","anchorRefStartContainer","startContainer","anchorRefCurrent","resultingReferenceOwnerDoc","fallbackDocument","document","scale","resultingReferenceElement","ownerDocument","defaultView","frameElement","scrollContainer","updateFrameOffset","addEventListener","removeEventListener","mergedFloatingRef","content","tabIndex","left","icon","onClick","split","join","Number","isFinite","Popover","PopoverSlot","bubblesVirtually","__unstableSlotNameProvider","Provider"],"sources":["@wordpress/components/src/popover/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ForwardedRef, SyntheticEvent, RefCallback } from 'react';\nimport classnames from 'classnames';\nimport type { Middleware, MiddlewareArguments } from '@floating-ui/react-dom';\nimport {\n\tuseFloating,\n\tflip as flipMiddleware,\n\tshift as shiftMiddleware,\n\tautoUpdate,\n\tarrow,\n\toffset as offsetMiddleware,\n\tsize,\n} from '@floating-ui/react-dom';\n// eslint-disable-next-line no-restricted-imports\nimport type { HTMLMotionProps, MotionProps } from 'framer-motion';\n// eslint-disable-next-line no-restricted-imports\nimport { motion, useReducedMotion } from 'framer-motion';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseRef,\n\tuseLayoutEffect,\n\tforwardRef,\n\tcreateContext,\n\tuseContext,\n\tuseMemo,\n\tuseState,\n\tuseCallback,\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';\nimport { getScrollContainer } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport ScrollLock from '../scroll-lock';\nimport { Slot, Fill, useSlot } from '../slot-fill';\nimport {\n\tcomputePopoverPosition,\n\tgetFrameOffset,\n\tgetFrameScale,\n\tpositionToPlacement,\n\tplacementToMotionAnimationProps,\n\tgetReferenceOwnerDocument,\n\tgetReferenceElement,\n} from './utils';\nimport type { WordPressComponentProps } from '../ui/context';\nimport type {\n\tPopoverProps,\n\tAnimatedWrapperProps,\n\tPopoverAnchorRefReference,\n\tPopoverAnchorRefTopBottom,\n} from './types';\nimport { limitShift as customLimitShift } from './limit-shift';\nimport { overlayMiddlewares } from './overlay-middlewares';\n\n/**\n * Name of slot in which popover should fill.\n *\n * @type {string}\n */\nexport const 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 = () => (\n\t<SVG\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 AnimatedWrapper = forwardRef(\n\t(\n\t\t{\n\t\t\tstyle: receivedInlineStyles,\n\t\t\tplacement,\n\t\t\tshouldAnimate = false,\n\t\t\t...props\n\t\t}: HTMLMotionProps< 'div' > & AnimatedWrapperProps,\n\t\tforwardedRef: ForwardedRef< any >\n\t) => {\n\t\tconst shouldReduceMotion = useReducedMotion();\n\n\t\tconst { style: motionInlineStyles, ...otherMotionProps } = useMemo(\n\t\t\t() => placementToMotionAnimationProps( placement ),\n\t\t\t[ placement ]\n\t\t);\n\n\t\tconst computedAnimationProps: HTMLMotionProps< 'div' > =\n\t\t\tshouldAnimate && ! shouldReduceMotion\n\t\t\t\t? {\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t...motionInlineStyles,\n\t\t\t\t\t\t\t...receivedInlineStyles,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t...otherMotionProps,\n\t\t\t\t }\n\t\t\t\t: {\n\t\t\t\t\t\tanimate: false,\n\t\t\t\t\t\tstyle: receivedInlineStyles,\n\t\t\t\t };\n\n\t\treturn (\n\t\t\t<motion.div\n\t\t\t\t{ ...computedAnimationProps }\n\t\t\t\t{ ...props }\n\t\t\t\tref={ forwardedRef }\n\t\t\t/>\n\t\t);\n\t}\n);\n\nconst slotNameContext = createContext< string | undefined >( undefined );\n\nconst UnforwardedPopover = (\n\tprops: Omit<\n\t\tWordPressComponentProps< PopoverProps, 'div', false >,\n\t\t// To avoid overlaps between the standard HTML attributes and the props\n\t\t// expected by `framer-motion`, omit all framer motion props from popover\n\t\t// props (except for `animate` and `children`, which are re-defined in `PopoverProps`).\n\t\tkeyof Omit< MotionProps, 'animate' | 'children' >\n\t>,\n\tforwardedRef: ForwardedRef< any >\n) => {\n\tconst {\n\t\tanimate = true,\n\t\theaderTitle,\n\t\tonClose,\n\t\tchildren,\n\t\tclassName,\n\t\tnoArrow = true,\n\t\tposition,\n\t\tplacement: placementProp = 'bottom-start',\n\t\toffset: offsetProp = 0,\n\t\tfocusOnMount = 'firstElement',\n\t\tanchor,\n\t\texpandOnMobile,\n\t\tonFocusOutside,\n\t\t__unstableSlotName = SLOT_NAME,\n\t\tflip = true,\n\t\tresize = true,\n\t\tshift = false,\n\t\tvariant,\n\n\t\t// Deprecated props\n\t\t__unstableForcePosition,\n\t\tanchorRef,\n\t\tanchorRect,\n\t\tgetAnchorRect,\n\t\tisAlternate,\n\n\t\t// Rest\n\t\t...contentProps\n\t} = props;\n\n\tlet computedFlipProp = flip;\n\tlet computedResizeProp = resize;\n\tif ( __unstableForcePosition !== undefined ) {\n\t\tdeprecated( '`__unstableForcePosition` prop in wp.components.Popover', {\n\t\t\tsince: '6.1',\n\t\t\tversion: '6.3',\n\t\t\talternative: '`flip={ false }` and `resize={ false }`',\n\t\t} );\n\n\t\t// Back-compat, set the `flip` and `resize` props\n\t\t// to `false` to replicate `__unstableForcePosition`.\n\t\tcomputedFlipProp = ! __unstableForcePosition;\n\t\tcomputedResizeProp = ! __unstableForcePosition;\n\t}\n\n\tif ( anchorRef !== undefined ) {\n\t\tdeprecated( '`anchorRef` prop in wp.components.Popover', {\n\t\t\tsince: '6.1',\n\t\t\talternative: '`anchor` prop',\n\t\t} );\n\t}\n\n\tif ( anchorRect !== undefined ) {\n\t\tdeprecated( '`anchorRect` prop in wp.components.Popover', {\n\t\t\tsince: '6.1',\n\t\t\talternative: '`anchor` prop',\n\t\t} );\n\t}\n\n\tif ( getAnchorRect !== undefined ) {\n\t\tdeprecated( '`getAnchorRect` prop in wp.components.Popover', {\n\t\t\tsince: '6.1',\n\t\t\talternative: '`anchor` prop',\n\t\t} );\n\t}\n\n\tconst computedVariant = isAlternate ? 'toolbar' : variant;\n\tif ( isAlternate !== undefined ) {\n\t\tdeprecated( '`isAlternate` prop in wp.components.Popover', {\n\t\t\tsince: '6.2',\n\t\t\talternative: \"`variant` prop with the `'toolbar'` value\",\n\t\t} );\n\t}\n\n\tconst arrowRef = useRef< HTMLElement | null >( null );\n\n\tconst [ fallbackReferenceElement, setFallbackReferenceElement ] =\n\t\tuseState< HTMLSpanElement | null >( null );\n\tconst [ referenceOwnerDocument, setReferenceOwnerDocument ] = useState<\n\t\tDocument | undefined\n\t>();\n\n\tconst anchorRefFallback: RefCallback< HTMLSpanElement > = useCallback(\n\t\t( node ) => {\n\t\t\tsetFallbackReferenceElement( node );\n\t\t},\n\t\t[]\n\t);\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\t/**\n\t * Offsets the position of the popover when the anchor is inside an iframe.\n\t *\n\t * Store the offset in a ref, due to constraints with floating-ui:\n\t * https://floating-ui.com/docs/react-dom#variables-inside-middleware-functions.\n\t */\n\tconst frameOffsetRef = useRef( getFrameOffset( referenceOwnerDocument ) );\n\n\tconst middleware = [\n\t\t...( placementProp === 'overlay' ? overlayMiddlewares() : [] ),\n\t\t// Custom middleware which adjusts the popover's position by taking into\n\t\t// account the offset of the anchor's iframe (if any) compared to the page.\n\t\t{\n\t\t\tname: 'frameOffset',\n\t\t\tfn( { x, y }: MiddlewareArguments ) {\n\t\t\t\tif ( ! frameOffsetRef.current ) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tx,\n\t\t\t\t\t\ty,\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tx: x + frameOffsetRef.current.x,\n\t\t\t\t\ty: y + frameOffsetRef.current.y,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\t// This will be used in the customLimitShift() function.\n\t\t\t\t\t\tamount: frameOffsetRef.current,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t},\n\t\t},\n\t\toffsetMiddleware( offsetProp ),\n\t\tcomputedFlipProp ? flipMiddleware() : undefined,\n\t\tcomputedResizeProp\n\t\t\t? size( {\n\t\t\t\t\tapply( sizeProps ) {\n\t\t\t\t\t\tconst { firstElementChild } =\n\t\t\t\t\t\t\trefs.floating.current ?? {};\n\n\t\t\t\t\t\t// Only HTMLElement instances have the `style` property.\n\t\t\t\t\t\tif ( ! ( firstElementChild instanceof HTMLElement ) )\n\t\t\t\t\t\t\treturn;\n\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( firstElementChild.style, {\n\t\t\t\t\t\t\tmaxHeight: `${ sizeProps.availableHeight }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\t: undefined,\n\t\tshift\n\t\t\t? shiftMiddleware( {\n\t\t\t\t\tcrossAxis: true,\n\t\t\t\t\tlimiter: customLimitShift(),\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\tarrow( { element: arrowRef } ),\n\t].filter(\n\t\t( m: Middleware | undefined ): m is Middleware => m !== undefined\n\t);\n\tconst slotName = useContext( slotNameContext ) || __unstableSlotName;\n\tconst slot = useSlot( slotName );\n\n\tlet onDialogClose;\n\n\tif ( onClose || onFocusOutside ) {\n\t\tonDialogClose = ( type: string | undefined, event: SyntheticEvent ) => {\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\t// @ts-expect-error The __unstableOnClose property needs to be deprecated first (see https://github.com/WordPress/gutenberg/pull/27675)\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: referenceCallbackRef,\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( {\n\t\tplacement:\n\t\t\tnormalizedPlacementFromProps === 'overlay'\n\t\t\t\t? undefined\n\t\t\t\t: normalizedPlacementFromProps,\n\t\tmiddleware,\n\t\twhileElementsMounted: ( referenceParam, floatingParam, updateParam ) =>\n\t\t\tautoUpdate( referenceParam, floatingParam, updateParam, {\n\t\t\t\tanimationFrame: true,\n\t\t\t} ),\n\t} );\n\n\tconst arrowCallbackRef = useCallback(\n\t\t( node: HTMLElement | null ) => {\n\t\t\tarrowRef.current = node;\n\t\t\tupdate();\n\t\t},\n\t\t[ update ]\n\t);\n\n\t// When any of the possible anchor \"sources\" change,\n\t// recompute the reference element (real or virtual) and its owner document.\n\n\tconst anchorRefTop = ( anchorRef as PopoverAnchorRefTopBottom | undefined )\n\t\t?.top;\n\tconst anchorRefBottom = (\n\t\tanchorRef as PopoverAnchorRefTopBottom | undefined\n\t )?.bottom;\n\tconst anchorRefStartContainer = ( anchorRef as Range | undefined )\n\t\t?.startContainer;\n\tconst anchorRefCurrent = ( anchorRef as PopoverAnchorRefReference )\n\t\t?.current;\n\n\tuseLayoutEffect( () => {\n\t\tconst resultingReferenceOwnerDoc = getReferenceOwnerDocument( {\n\t\t\tanchor,\n\t\t\tanchorRef,\n\t\t\tanchorRect,\n\t\t\tgetAnchorRect,\n\t\t\tfallbackReferenceElement,\n\t\t\tfallbackDocument: document,\n\t\t} );\n\t\tconst scale = getFrameScale( resultingReferenceOwnerDoc );\n\t\tconst resultingReferenceElement = getReferenceElement( {\n\t\t\tanchor,\n\t\t\tanchorRef,\n\t\t\tanchorRect,\n\t\t\tgetAnchorRect,\n\t\t\tfallbackReferenceElement,\n\t\t\tscale,\n\t\t} );\n\n\t\treferenceCallbackRef( resultingReferenceElement );\n\n\t\tsetReferenceOwnerDocument( resultingReferenceOwnerDoc );\n\t}, [\n\t\tanchor,\n\t\tanchorRef,\n\t\tanchorRefTop,\n\t\tanchorRefBottom,\n\t\tanchorRefStartContainer,\n\t\tanchorRefCurrent,\n\t\tanchorRect,\n\t\tgetAnchorRect,\n\t\tfallbackReferenceElement,\n\t\treferenceCallbackRef,\n\t] );\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. Also update the frame offset if the view resizes.\n\tuseLayoutEffect( () => {\n\t\tif (\n\t\t\t// Reference and root documents are the same.\n\t\t\treferenceOwnerDocument === document ||\n\t\t\t// Reference and floating are in the same document.\n\t\t\treferenceOwnerDocument === refs.floating.current?.ownerDocument ||\n\t\t\t// The reference's document has no view (i.e. window)\n\t\t\t// or frame element (ie. it's not an iframe).\n\t\t\t! referenceOwnerDocument?.defaultView?.frameElement\n\t\t) {\n\t\t\tframeOffsetRef.current = undefined;\n\t\t\treturn;\n\t\t}\n\n\t\tconst { defaultView } = referenceOwnerDocument;\n\t\tconst { frameElement } = defaultView;\n\n\t\tconst scrollContainer = frameElement\n\t\t\t? getScrollContainer( frameElement )\n\t\t\t: null;\n\n\t\tconst updateFrameOffset = () => {\n\t\t\tframeOffsetRef.current = getFrameOffset( referenceOwnerDocument );\n\t\t\tupdate();\n\t\t};\n\t\tdefaultView.addEventListener( 'resize', updateFrameOffset );\n\t\tscrollContainer?.addEventListener( 'scroll', updateFrameOffset );\n\n\t\tupdateFrameOffset();\n\n\t\treturn () => {\n\t\t\tdefaultView.removeEventListener( 'resize', updateFrameOffset );\n\t\t\tscrollContainer?.removeEventListener( 'scroll', updateFrameOffset );\n\t\t};\n\t}, [ referenceOwnerDocument, update, refs.floating ] );\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<AnimatedWrapper\n\t\t\tshouldAnimate={ animate && ! isExpanded }\n\t\t\tplacement={ computedPlacement }\n\t\t\tclassName={ classnames( 'components-popover', className, {\n\t\t\t\t'is-expanded': isExpanded,\n\t\t\t\t'is-positioned': x !== null && y !== null,\n\t\t\t\t// Use the 'alternate' classname for 'toolbar' variant for back compat.\n\t\t\t\t[ `is-${\n\t\t\t\t\tcomputedVariant === 'toolbar'\n\t\t\t\t\t\t? 'alternate'\n\t\t\t\t\t\t: computedVariant\n\t\t\t\t}` ]: computedVariant,\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\ttop: 0,\n\t\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\t\t// `x` and `y` are framer-motion specific props and are shorthands\n\t\t\t\t\t\t\t// for `translateX` and `translateY`. Currently it is not possible\n\t\t\t\t\t\t\t// to use `translateX` and `translateY` because those values would\n\t\t\t\t\t\t\t// be overridden by the return value of the\n\t\t\t\t\t\t\t// `placementToMotionAnimationProps` function in `AnimatedWrapper`\n\t\t\t\t\t\t\tx: computePopoverPosition( x ),\n\t\t\t\t\t\t\ty: computePopoverPosition( 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={ arrowCallbackRef }\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:\n\t\t\t\t\t\t\ttypeof arrowData?.x !== 'undefined' &&\n\t\t\t\t\t\t\tNumber.isFinite( arrowData.x )\n\t\t\t\t\t\t\t\t? `${\n\t\t\t\t\t\t\t\t\t\tarrowData.x +\n\t\t\t\t\t\t\t\t\t\t( frameOffsetRef.current?.x ?? 0 )\n\t\t\t\t\t\t\t\t }px`\n\t\t\t\t\t\t\t\t: '',\n\t\t\t\t\t\ttop:\n\t\t\t\t\t\t\ttypeof arrowData?.y !== 'undefined' &&\n\t\t\t\t\t\t\tNumber.isFinite( arrowData.y )\n\t\t\t\t\t\t\t\t? `${\n\t\t\t\t\t\t\t\t\t\tarrowData.y +\n\t\t\t\t\t\t\t\t\t\t( frameOffsetRef.current?.y ?? 0 )\n\t\t\t\t\t\t\t\t }px`\n\t\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</AnimatedWrapper>\n\t);\n\n\tif ( slot.ref ) {\n\t\tcontent = <Fill name={ slotName }>{ content }</Fill>;\n\t}\n\n\tif ( anchorRef || anchorRect || anchor ) {\n\t\treturn content;\n\t}\n\n\treturn <span ref={ anchorRefFallback }>{ content }</span>;\n};\n\n/**\n * `Popover` renders its content in a floating modal. If no explicit anchor is passed via props, it anchors to its parent element by default.\n *\n * ```jsx\n * import { Button, Popover } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const MyPopover = () => {\n * \tconst [ isVisible, setIsVisible ] = useState( false );\n * \tconst toggleVisible = () => {\n * \t\tsetIsVisible( ( state ) => ! state );\n * \t};\n *\n * \treturn (\n * \t\t<Button variant=\"secondary\" onClick={ toggleVisible }>\n * \t\t\tToggle Popover!\n * \t\t\t{ isVisible && <Popover>Popover is toggled!</Popover> }\n * \t\t</Button>\n * \t);\n * };\n * ```\n *\n */\nexport const Popover = forwardRef( UnforwardedPopover );\n\nfunction PopoverSlot(\n\t{ name = SLOT_NAME }: { name?: string },\n\tref: ForwardedRef< any >\n) {\n\treturn (\n\t\t<Slot\n\t\t\t// @ts-expect-error Need to type `SlotFill`\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\n// @ts-expect-error For Legacy Reasons\nPopover.Slot = forwardRef( PopoverSlot );\n// @ts-expect-error For Legacy Reasons\nPopover.__unstableSlotNameProvider = slotNameContext.Provider;\n\nexport default Popover;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["classnames","useFloating","flip","flipMiddleware","shift","shiftMiddleware","limitShift","autoUpdate","arrow","offset","offsetMiddleware","size","motion","useReducedMotion","useRef","useLayoutEffect","forwardRef","createContext","useContext","useMemo","useState","useCallback","createPortal","useViewportMatch","useMergeRefs","__experimentalUseDialog","useDialog","close","deprecated","Path","SVG","getScrollContainer","Button","ScrollLock","Slot","Fill","useSlot","computePopoverPosition","positionToPlacement","placementToMotionAnimationProps","getReferenceOwnerDocument","getReferenceElement","overlayMiddlewares","SLOT_NAME","ArrowTriangle","createElement","xmlns","viewBox","className","role","d","vectorEffect","AnimatedWrapper","style","receivedInlineStyles","placement","shouldAnimate","props","forwardedRef","shouldReduceMotion","motionInlineStyles","otherMotionProps","computedAnimationProps","animate","div","ref","slotNameContext","undefined","fallbackContainerClassname","getPopoverFallbackContainer","container","document","body","querySelector","append","UnforwardedPopover","headerTitle","onClose","children","noArrow","position","placementProp","offsetProp","focusOnMount","anchor","expandOnMobile","onFocusOutside","__unstableSlotName","resize","inline","variant","__unstableForcePosition","anchorRef","anchorRect","getAnchorRect","isAlternate","contentProps","computedFlipProp","computedResizeProp","since","version","alternative","computedVariant","arrowRef","fallbackReferenceElement","setFallbackReferenceElement","referenceOwnerDocument","setReferenceOwnerDocument","anchorRefFallback","node","isMobileViewport","isExpanded","hasArrow","normalizedPlacementFromProps","middleware","apply","sizeProps","_refs$floating$curren","firstElementChild","refs","floating","current","HTMLElement","Object","assign","maxHeight","availableHeight","overflow","crossAxis","limiter","padding","element","slotName","slot","onDialogClose","type","event","dialogRef","dialogProps","__unstableOnClose","x","y","strategy","update","computedPlacement","middlewareData","arrowData","whileElementsMounted","referenceParam","floatingParam","updateParam","layoutShift","animationFrame","arrowCallbackRef","anchorRefTop","top","anchorRefBottom","bottom","anchorRefStartContainer","startContainer","anchorRefCurrent","resultingReferenceOwnerDoc","fallbackDocument","resultingReferenceElement","setReference","defaultView","frameElement","scrollContainer","addEventListener","removeEventListener","mergedFloatingRef","setFloating","content","tabIndex","left","icon","onClick","split","join","Number","isFinite","shouldRenderWithinSlot","hasAnchor","name","Fragment","Popover","PopoverSlot","bubblesVirtually","__unstableSlotNameProvider","Provider"],"sources":["@wordpress/components/src/popover/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ForwardedRef, SyntheticEvent, RefCallback } from 'react';\nimport classnames from 'classnames';\nimport {\n\tuseFloating,\n\tflip as flipMiddleware,\n\tshift as shiftMiddleware,\n\tlimitShift,\n\tautoUpdate,\n\tarrow,\n\toffset as offsetMiddleware,\n\tsize,\n} from '@floating-ui/react-dom';\n// eslint-disable-next-line no-restricted-imports\nimport type { HTMLMotionProps, MotionProps } from 'framer-motion';\n// eslint-disable-next-line no-restricted-imports\nimport { motion, useReducedMotion } from 'framer-motion';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseRef,\n\tuseLayoutEffect,\n\tforwardRef,\n\tcreateContext,\n\tuseContext,\n\tuseMemo,\n\tuseState,\n\tuseCallback,\n\tcreatePortal,\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';\nimport { getScrollContainer } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport ScrollLock from '../scroll-lock';\nimport { Slot, Fill, useSlot } from '../slot-fill';\nimport {\n\tcomputePopoverPosition,\n\tpositionToPlacement,\n\tplacementToMotionAnimationProps,\n\tgetReferenceOwnerDocument,\n\tgetReferenceElement,\n} from './utils';\nimport type { WordPressComponentProps } from '../ui/context';\nimport type {\n\tPopoverProps,\n\tAnimatedWrapperProps,\n\tPopoverAnchorRefReference,\n\tPopoverAnchorRefTopBottom,\n} from './types';\nimport { overlayMiddlewares } from './overlay-middlewares';\n\n/**\n * Name of slot in which popover should fill.\n *\n * @type {string}\n */\nexport const 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 = () => (\n\t<SVG\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 AnimatedWrapper = forwardRef(\n\t(\n\t\t{\n\t\t\tstyle: receivedInlineStyles,\n\t\t\tplacement,\n\t\t\tshouldAnimate = false,\n\t\t\t...props\n\t\t}: HTMLMotionProps< 'div' > & AnimatedWrapperProps,\n\t\tforwardedRef: ForwardedRef< any >\n\t) => {\n\t\tconst shouldReduceMotion = useReducedMotion();\n\n\t\tconst { style: motionInlineStyles, ...otherMotionProps } = useMemo(\n\t\t\t() => placementToMotionAnimationProps( placement ),\n\t\t\t[ placement ]\n\t\t);\n\n\t\tconst computedAnimationProps: HTMLMotionProps< 'div' > =\n\t\t\tshouldAnimate && ! shouldReduceMotion\n\t\t\t\t? {\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t...motionInlineStyles,\n\t\t\t\t\t\t\t...receivedInlineStyles,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t...otherMotionProps,\n\t\t\t\t }\n\t\t\t\t: {\n\t\t\t\t\t\tanimate: false,\n\t\t\t\t\t\tstyle: receivedInlineStyles,\n\t\t\t\t };\n\n\t\treturn (\n\t\t\t<motion.div\n\t\t\t\t{ ...computedAnimationProps }\n\t\t\t\t{ ...props }\n\t\t\t\tref={ forwardedRef }\n\t\t\t/>\n\t\t);\n\t}\n);\n\nconst slotNameContext = createContext< string | undefined >( undefined );\n\nconst fallbackContainerClassname = 'components-popover__fallback-container';\nconst getPopoverFallbackContainer = () => {\n\tlet container = document.body.querySelector(\n\t\t'.' + fallbackContainerClassname\n\t);\n\tif ( ! container ) {\n\t\tcontainer = document.createElement( 'div' );\n\t\tcontainer.className = fallbackContainerClassname;\n\t\tdocument.body.append( container );\n\t}\n\n\treturn container;\n};\n\nconst UnforwardedPopover = (\n\tprops: Omit<\n\t\tWordPressComponentProps< PopoverProps, 'div', false >,\n\t\t// To avoid overlaps between the standard HTML attributes and the props\n\t\t// expected by `framer-motion`, omit all framer motion props from popover\n\t\t// props (except for `animate` and `children`, which are re-defined in `PopoverProps`).\n\t\tkeyof Omit< MotionProps, 'animate' | 'children' >\n\t>,\n\tforwardedRef: ForwardedRef< any >\n) => {\n\tconst {\n\t\tanimate = true,\n\t\theaderTitle,\n\t\tonClose,\n\t\tchildren,\n\t\tclassName,\n\t\tnoArrow = true,\n\t\tposition,\n\t\tplacement: placementProp = 'bottom-start',\n\t\toffset: offsetProp = 0,\n\t\tfocusOnMount = 'firstElement',\n\t\tanchor,\n\t\texpandOnMobile,\n\t\tonFocusOutside,\n\t\t__unstableSlotName = SLOT_NAME,\n\t\tflip = true,\n\t\tresize = true,\n\t\tshift = false,\n\t\tinline = false,\n\t\tvariant,\n\n\t\t// Deprecated props\n\t\t__unstableForcePosition,\n\t\tanchorRef,\n\t\tanchorRect,\n\t\tgetAnchorRect,\n\t\tisAlternate,\n\n\t\t// Rest\n\t\t...contentProps\n\t} = props;\n\n\tlet computedFlipProp = flip;\n\tlet computedResizeProp = resize;\n\tif ( __unstableForcePosition !== undefined ) {\n\t\tdeprecated( '`__unstableForcePosition` prop in wp.components.Popover', {\n\t\t\tsince: '6.1',\n\t\t\tversion: '6.3',\n\t\t\talternative: '`flip={ false }` and `resize={ false }`',\n\t\t} );\n\n\t\t// Back-compat, set the `flip` and `resize` props\n\t\t// to `false` to replicate `__unstableForcePosition`.\n\t\tcomputedFlipProp = ! __unstableForcePosition;\n\t\tcomputedResizeProp = ! __unstableForcePosition;\n\t}\n\n\tif ( anchorRef !== undefined ) {\n\t\tdeprecated( '`anchorRef` prop in wp.components.Popover', {\n\t\t\tsince: '6.1',\n\t\t\talternative: '`anchor` prop',\n\t\t} );\n\t}\n\n\tif ( anchorRect !== undefined ) {\n\t\tdeprecated( '`anchorRect` prop in wp.components.Popover', {\n\t\t\tsince: '6.1',\n\t\t\talternative: '`anchor` prop',\n\t\t} );\n\t}\n\n\tif ( getAnchorRect !== undefined ) {\n\t\tdeprecated( '`getAnchorRect` prop in wp.components.Popover', {\n\t\t\tsince: '6.1',\n\t\t\talternative: '`anchor` prop',\n\t\t} );\n\t}\n\n\tconst computedVariant = isAlternate ? 'toolbar' : variant;\n\tif ( isAlternate !== undefined ) {\n\t\tdeprecated( '`isAlternate` prop in wp.components.Popover', {\n\t\t\tsince: '6.2',\n\t\t\talternative: \"`variant` prop with the `'toolbar'` value\",\n\t\t} );\n\t}\n\n\tconst arrowRef = useRef< HTMLElement | null >( null );\n\n\tconst [ fallbackReferenceElement, setFallbackReferenceElement ] =\n\t\tuseState< HTMLSpanElement | null >( null );\n\tconst [ referenceOwnerDocument, setReferenceOwnerDocument ] = useState<\n\t\tDocument | undefined\n\t>();\n\n\tconst anchorRefFallback: RefCallback< HTMLSpanElement > = useCallback(\n\t\t( node ) => {\n\t\t\tsetFallbackReferenceElement( node );\n\t\t},\n\t\t[]\n\t);\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 middleware = [\n\t\t...( placementProp === 'overlay' ? overlayMiddlewares() : [] ),\n\t\toffsetMiddleware( offsetProp ),\n\t\tcomputedFlipProp && flipMiddleware(),\n\t\tcomputedResizeProp &&\n\t\t\tsize( {\n\t\t\t\tapply( sizeProps ) {\n\t\t\t\t\tconst { firstElementChild } = refs.floating.current ?? {};\n\n\t\t\t\t\t// Only HTMLElement instances have the `style` property.\n\t\t\t\t\tif ( ! ( firstElementChild instanceof HTMLElement ) )\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t// Reduce the height of the popover to the available space.\n\t\t\t\t\tObject.assign( firstElementChild.style, {\n\t\t\t\t\t\tmaxHeight: `${ sizeProps.availableHeight }px`,\n\t\t\t\t\t\toverflow: 'auto',\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t} ),\n\t\tshift &&\n\t\t\tshiftMiddleware( {\n\t\t\t\tcrossAxis: true,\n\t\t\t\tlimiter: limitShift(),\n\t\t\t\tpadding: 1, // Necessary to avoid flickering at the edge of the viewport.\n\t\t\t} ),\n\t\tarrow( { element: arrowRef } ),\n\t];\n\tconst slotName = useContext( slotNameContext ) || __unstableSlotName;\n\tconst slot = useSlot( slotName );\n\n\tlet onDialogClose;\n\n\tif ( onClose || onFocusOutside ) {\n\t\tonDialogClose = ( type: string | undefined, event: SyntheticEvent ) => {\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\t// @ts-expect-error The __unstableOnClose property needs to be deprecated first (see https://github.com/WordPress/gutenberg/pull/27675)\n\t\tonClose: onDialogClose,\n\t} );\n\n\tconst {\n\t\t// Positioning coordinates\n\t\tx,\n\t\ty,\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( {\n\t\tplacement:\n\t\t\tnormalizedPlacementFromProps === 'overlay'\n\t\t\t\t? undefined\n\t\t\t\t: normalizedPlacementFromProps,\n\t\tmiddleware,\n\t\twhileElementsMounted: ( referenceParam, floatingParam, updateParam ) =>\n\t\t\tautoUpdate( referenceParam, floatingParam, updateParam, {\n\t\t\t\tlayoutShift: false,\n\t\t\t\tanimationFrame: true,\n\t\t\t} ),\n\t} );\n\n\tconst arrowCallbackRef = useCallback(\n\t\t( node: HTMLElement | null ) => {\n\t\t\tarrowRef.current = node;\n\t\t\tupdate();\n\t\t},\n\t\t[ update ]\n\t);\n\n\t// When any of the possible anchor \"sources\" change,\n\t// recompute the reference element (real or virtual) and its owner document.\n\n\tconst anchorRefTop = ( anchorRef as PopoverAnchorRefTopBottom | undefined )\n\t\t?.top;\n\tconst anchorRefBottom = (\n\t\tanchorRef as PopoverAnchorRefTopBottom | undefined\n\t )?.bottom;\n\tconst anchorRefStartContainer = ( anchorRef as Range | undefined )\n\t\t?.startContainer;\n\tconst anchorRefCurrent = ( anchorRef as PopoverAnchorRefReference )\n\t\t?.current;\n\n\tuseLayoutEffect( () => {\n\t\tconst resultingReferenceOwnerDoc = getReferenceOwnerDocument( {\n\t\t\tanchor,\n\t\t\tanchorRef,\n\t\t\tanchorRect,\n\t\t\tgetAnchorRect,\n\t\t\tfallbackReferenceElement,\n\t\t\tfallbackDocument: document,\n\t\t} );\n\n\t\tconst resultingReferenceElement = getReferenceElement( {\n\t\t\tanchor,\n\t\t\tanchorRef,\n\t\t\tanchorRect,\n\t\t\tgetAnchorRect,\n\t\t\tfallbackReferenceElement,\n\t\t} );\n\n\t\trefs.setReference( resultingReferenceElement );\n\n\t\tsetReferenceOwnerDocument( resultingReferenceOwnerDoc );\n\t}, [\n\t\tanchor,\n\t\tanchorRef,\n\t\tanchorRefTop,\n\t\tanchorRefBottom,\n\t\tanchorRefStartContainer,\n\t\tanchorRefCurrent,\n\t\tanchorRect,\n\t\tgetAnchorRect,\n\t\tfallbackReferenceElement,\n\t\trefs,\n\t] );\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 (\n\t\t\t! referenceOwnerDocument ||\n\t\t\t! referenceOwnerDocument.defaultView\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { defaultView } = referenceOwnerDocument;\n\t\tconst { frameElement } = defaultView;\n\n\t\tconst scrollContainer = frameElement\n\t\t\t? getScrollContainer( frameElement )\n\t\t\t: null;\n\n\t\tdefaultView.addEventListener( 'resize', update );\n\t\tscrollContainer?.addEventListener( 'scroll', update );\n\n\t\treturn () => {\n\t\t\tdefaultView.removeEventListener( 'resize', update );\n\t\t\tscrollContainer?.removeEventListener( 'scroll', update );\n\t\t};\n\t}, [ referenceOwnerDocument, update ] );\n\n\tconst mergedFloatingRef = useMergeRefs( [\n\t\trefs.setFloating,\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<AnimatedWrapper\n\t\t\tshouldAnimate={ animate && ! isExpanded }\n\t\t\tplacement={ computedPlacement }\n\t\t\tclassName={ classnames( 'components-popover', className, {\n\t\t\t\t'is-expanded': isExpanded,\n\t\t\t\t'is-positioned': x !== null && y !== null,\n\t\t\t\t// Use the 'alternate' classname for 'toolbar' variant for back compat.\n\t\t\t\t[ `is-${\n\t\t\t\t\tcomputedVariant === 'toolbar'\n\t\t\t\t\t\t? 'alternate'\n\t\t\t\t\t\t: computedVariant\n\t\t\t\t}` ]: computedVariant,\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\ttop: 0,\n\t\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\t\t// `x` and `y` are framer-motion specific props and are shorthands\n\t\t\t\t\t\t\t// for `translateX` and `translateY`. Currently it is not possible\n\t\t\t\t\t\t\t// to use `translateX` and `translateY` because those values would\n\t\t\t\t\t\t\t// be overridden by the return value of the\n\t\t\t\t\t\t\t// `placementToMotionAnimationProps` function in `AnimatedWrapper`\n\t\t\t\t\t\t\tx: computePopoverPosition( x ),\n\t\t\t\t\t\t\ty: computePopoverPosition( 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={ arrowCallbackRef }\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:\n\t\t\t\t\t\t\ttypeof arrowData?.x !== 'undefined' &&\n\t\t\t\t\t\t\tNumber.isFinite( arrowData.x )\n\t\t\t\t\t\t\t\t? `${ arrowData.x }px`\n\t\t\t\t\t\t\t\t: '',\n\t\t\t\t\t\ttop:\n\t\t\t\t\t\t\ttypeof arrowData?.y !== 'undefined' &&\n\t\t\t\t\t\t\tNumber.isFinite( arrowData.y )\n\t\t\t\t\t\t\t\t? `${ arrowData.y }px`\n\t\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</AnimatedWrapper>\n\t);\n\n\tconst shouldRenderWithinSlot = slot.ref && ! inline;\n\tconst hasAnchor = anchorRef || anchorRect || anchor;\n\n\tif ( shouldRenderWithinSlot ) {\n\t\tcontent = <Fill name={ slotName }>{ content }</Fill>;\n\t} else if ( ! inline ) {\n\t\tcontent = createPortal( content, getPopoverFallbackContainer() );\n\t}\n\n\tif ( hasAnchor ) {\n\t\treturn content;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<span ref={ anchorRefFallback } />\n\t\t\t{ content }\n\t\t</>\n\t);\n};\n\n/**\n * `Popover` renders its content in a floating modal. If no explicit anchor is passed via props, it anchors to its parent element by default.\n *\n * ```jsx\n * import { Button, Popover } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const MyPopover = () => {\n * \tconst [ isVisible, setIsVisible ] = useState( false );\n * \tconst toggleVisible = () => {\n * \t\tsetIsVisible( ( state ) => ! state );\n * \t};\n *\n * \treturn (\n * \t\t<Button variant=\"secondary\" onClick={ toggleVisible }>\n * \t\t\tToggle Popover!\n * \t\t\t{ isVisible && <Popover>Popover is toggled!</Popover> }\n * \t\t</Button>\n * \t);\n * };\n * ```\n *\n */\nexport const Popover = forwardRef( UnforwardedPopover );\n\nfunction PopoverSlot(\n\t{ name = SLOT_NAME }: { name?: string },\n\tref: ForwardedRef< any >\n) {\n\treturn (\n\t\t<Slot\n\t\t\t// @ts-expect-error Need to type `SlotFill`\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\n// @ts-expect-error For Legacy Reasons\nPopover.Slot = forwardRef( PopoverSlot );\n// @ts-expect-error For Legacy Reasons\nPopover.__unstableSlotNameProvider = slotNameContext.Provider;\n\nexport default Popover;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["size","overlayMiddlewares","name","fn","rects","reference","apply","elements","_elements$floating","firstElementChild","floating","HTMLElement","Object","assign","style","width","height"],"sources":["@wordpress/components/src/popover/overlay-middlewares.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type {
|
|
1
|
+
{"version":3,"names":["size","overlayMiddlewares","name","fn","rects","reference","apply","elements","_elements$floating","firstElementChild","floating","HTMLElement","Object","assign","style","width","height"],"sources":["@wordpress/components/src/popover/overlay-middlewares.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { MiddlewareState } from '@floating-ui/react-dom';\nimport { size } from '@floating-ui/react-dom';\n\nexport function overlayMiddlewares() {\n\treturn [\n\t\t{\n\t\t\tname: 'overlay',\n\t\t\tfn( { rects }: MiddlewareState ) {\n\t\t\t\treturn rects.reference;\n\t\t\t},\n\t\t},\n\t\tsize( {\n\t\t\tapply( { rects, elements } ) {\n\t\t\t\tconst { firstElementChild } = elements.floating ?? {};\n\n\t\t\t\t// Only HTMLElement instances have the `style` property.\n\t\t\t\tif ( ! ( firstElementChild instanceof HTMLElement ) ) return;\n\n\t\t\t\t// Reduce the height of the popover to the available space.\n\t\t\t\tObject.assign( firstElementChild.style, {\n\t\t\t\t\twidth: `${ rects.reference.width }px`,\n\t\t\t\t\theight: `${ rects.reference.height }px`,\n\t\t\t\t} );\n\t\t\t},\n\t\t} ),\n\t];\n}\n"],"mappings":"AAAA;AACA;AACA;;AAEA,SAASA,IAAI,QAAQ,wBAAwB;AAE7C,OAAO,SAASC,kBAAkBA,CAAA,EAAG;EACpC,OAAO,CACN;IACCC,IAAI,EAAE,SAAS;IACfC,EAAEA,CAAE;MAAEC;IAAuB,CAAC,EAAG;MAChC,OAAOA,KAAK,CAACC,SAAS;IACvB;EACD,CAAC,EACDL,IAAI,CAAE;IACLM,KAAKA,CAAE;MAAEF,KAAK;MAAEG;IAAS,CAAC,EAAG;MAAA,IAAAC,kBAAA;MAC5B,MAAM;QAAEC;MAAkB,CAAC,IAAAD,kBAAA,GAAGD,QAAQ,CAACG,QAAQ,cAAAF,kBAAA,cAAAA,kBAAA,GAAI,CAAC,CAAC;;MAErD;MACA,IAAK,EAAIC,iBAAiB,YAAYE,WAAW,CAAE,EAAG;;MAEtD;MACAC,MAAM,CAACC,MAAM,CAAEJ,iBAAiB,CAACK,KAAK,EAAE;QACvCC,KAAK,EAAG,GAAGX,KAAK,CAACC,SAAS,CAACU,KAAO,IAAG;QACrCC,MAAM,EAAG,GAAGZ,KAAK,CAACC,SAAS,CAACW,MAAQ;MACrC,CAAE,CAAC;IACJ;EACD,CAAE,CAAC,CACH;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["@wordpress/components/src/popover/types.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ReactNode, MutableRefObject, SyntheticEvent } from 'react';\nimport type { Placement } from '@floating-ui/react-dom';\n\ntype PositionYAxis = 'top' | 'middle' | 'bottom';\ntype PositionXAxis = 'left' | 'center' | 'right';\ntype PositionCorner = 'top' | 'right' | 'bottom' | 'left';\n\ntype DomRectWithOwnerDocument = DOMRect & {\n\townerDocument?: Document;\n};\n\ntype PopoverPlacement = Placement | 'overlay';\n\nexport type AnimatedWrapperProps = {\n\tplacement: PopoverPlacement;\n\tshouldAnimate?: boolean;\n};\n\nexport type PopoverAnchorRefReference = MutableRefObject<\n\tElement | null | undefined\n>;\nexport type PopoverAnchorRefTopBottom = { top: Element; bottom: Element };\n\nexport type VirtualElement = Pick< Element, 'getBoundingClientRect' > & {\n\townerDocument?: Document;\n};\n\nexport type PopoverProps = {\n\t/**\n\t * The name of the Slot in which the popover should be rendered. It should\n\t * be also passed to the corresponding `PopoverSlot` component.\n\t *\n\t * @default 'Popover'\n\t */\n\t__unstableSlotName?: string;\n\t/**\n\t * The element that should be used by the popover as its anchor. It can either\n\t * be an `Element` or, alternatively, a `VirtualElement` — ie. an object with\n\t * the `getBoundingClientRect()` and the `ownerDocument` properties defined.\n\t *\n\t * **The anchor element should be stored in local state** rather than a\n\t * plain React ref to ensure reactive updating when it changes.\n\t */\n\tanchor?: Element | VirtualElement | null;\n\t/**\n\t * Whether the popover should animate when opening.\n\t *\n\t * @default true\n\t */\n\tanimate?: boolean;\n\t/**\n\t * The `children` elements rendered as the popover's content.\n\t */\n\tchildren: ReactNode;\n\t/**\n\t * Show the popover fullscreen on mobile viewports.\n\t */\n\texpandOnMobile?: boolean;\n\t/**\n\t * Specifies whether the popover should flip across its axis if there isn't\n\t * space for it in the normal placement.\n\t * When the using a 'top' placement, the popover will switch to a 'bottom'\n\t * placement. When using a 'left' placement, the popover will switch to a\n\t * `right' placement.\n\t * The popover will retain its alignment of 'start' or 'end' when flipping.\n\t *\n\t * @default true\n\t */\n\tflip?: boolean;\n\t/**\n\t * By default, the _first tabbable element_ in the popover will receive focus\n\t * when it mounts. This is the same as setting this prop to `\"firstElement\"`.\n\t * Specifying a `false` value disables the focus handling entirely (this\n\t * should only be done when an appropriately accessible substitute behavior\n\t * exists).\n\t *\n\t * @default 'firstElement'\n\t */\n\tfocusOnMount?: 'firstElement' | boolean;\n\t/**\n\t * A callback invoked when the focus leaves the opened popover. This should\n\t * only be provided in advanced use-cases when a popover should close under\n\t * specific circumstances (for example, if the new `document.activeElement`\n\t * is content of or otherwise controlling popover visibility).\n\t *\n\t * When not provided, the `onClose` callback will be called instead.\n\t */\n\tonFocusOutside?: ( event: SyntheticEvent ) => void;\n\t/**\n\t * Used to customize the header text shown when the popover is toggled to\n\t * fullscreen on mobile viewports (see the `expandOnMobile` prop).\n\t */\n\theaderTitle?: string;\n\t/**\n\t * Used to show/hide the arrow that points at the popover's anchor.\n\t *\n\t * @default true\n\t */\n\tnoArrow?: boolean;\n\t/**\n\t * The distance (in px) between the anchor and the popover.\n\t */\n\toffset?: number;\n\t/**\n\t * A callback invoked when the popover should be closed.\n\t */\n\tonClose?: () => void;\n\t/**\n\t * Used to specify the popover's position with respect to its anchor.\n\t *\n\t * @default 'bottom-start'\n\t */\n\tplacement?: PopoverPlacement;\n\t/**\n\t * Legacy way to specify the popover's position with respect to its anchor.\n\t * _Note: this prop is deprecated. Use the `placement` prop instead._\n\t */\n\tposition?:\n\t\t| `${ PositionYAxis }`\n\t\t| `${ PositionYAxis } ${ PositionXAxis }`\n\t\t| `${ PositionYAxis } ${ PositionXAxis } ${ PositionCorner }`;\n\t/**\n\t * Adjusts the size of the popover to prevent its contents from going out of\n\t * view when meeting the viewport edges.\n\t *\n\t * @default true\n\t */\n\tresize?: boolean;\n\t/**\n\t * Enables the `Popover` to shift in order to stay in view when meeting the\n\t * viewport edges.\n\t *\n\t * @default false\n\t */\n\tshift?: boolean;\n\t/**\n\t * Specifies the popover's style.\n\t *\n\t * Leave undefined for the default style. Other values are:\n\t * - 'unstyled': The popover is essentially without any visible style, it\n\t * has no background, border, outline or drop shadow, but\n\t * the popover contents are still displayed.\n\t * - 'toolbar': A style that has no elevation, but a high contrast with\n\t * other elements. This is matches the style of the\n\t * `Toolbar` component.\n\t *\n\t * @default undefined\n\t */\n\tvariant?: 'unstyled' | 'toolbar';\n\t// Deprecated props\n\t/**\n\t * Prevent the popover from flipping and resizing when meeting the viewport\n\t * edges. _Note: this prop is deprecated. Instead, provide use the individual\n\t * `flip` and `resize` props._\n\t *\n\t * @deprecated\n\t */\n\t__unstableForcePosition?: boolean;\n\t/**\n\t * An object extending a `DOMRect` with an additional optional `ownerDocument`\n\t * property, used to specify a fixed popover position.\n\t *\n\t * @deprecated\n\t */\n\tanchorRect?: DomRectWithOwnerDocument;\n\t/**\n\t * Used to specify a fixed popover position. It can be an `Element`, a React\n\t * reference to an `element`, an object with a `top` and a `bottom` properties\n\t * (both pointing to elements), or a `range`.\n\t *\n\t * @deprecated\n\t */\n\tanchorRef?:\n\t\t| Element\n\t\t| PopoverAnchorRefReference\n\t\t| PopoverAnchorRefTopBottom\n\t\t| Range;\n\t/**\n\t * A function returning the same value as the one expected by the `anchorRect`\n\t * prop, used to specify a dynamic popover position.\n\t *\n\t * @deprecated\n\t */\n\tgetAnchorRect?: (\n\t\tfallbackReferenceElement: Element | null\n\t) => DomRectWithOwnerDocument;\n\t/**\n\t * Used to enable a different visual style for the popover.\n\t * _Note: this prop is deprecated. Use the `variant` prop with the\n\t * 'toolbar' value instead._\n\t *\n\t * @deprecated\n\t */\n\tisAlternate?: boolean;\n};\n"],"mappings":""}
|
|
1
|
+
{"version":3,"names":[],"sources":["@wordpress/components/src/popover/types.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ReactNode, MutableRefObject, SyntheticEvent } from 'react';\nimport type { Placement } from '@floating-ui/react-dom';\n\ntype PositionYAxis = 'top' | 'middle' | 'bottom';\ntype PositionXAxis = 'left' | 'center' | 'right';\ntype PositionCorner = 'top' | 'right' | 'bottom' | 'left';\n\ntype DomRectWithOwnerDocument = DOMRect & {\n\townerDocument?: Document;\n};\n\ntype PopoverPlacement = Placement | 'overlay';\n\nexport type AnimatedWrapperProps = {\n\tplacement: PopoverPlacement;\n\tshouldAnimate?: boolean;\n};\n\nexport type PopoverAnchorRefReference = MutableRefObject<\n\tElement | null | undefined\n>;\nexport type PopoverAnchorRefTopBottom = { top: Element; bottom: Element };\n\nexport type VirtualElement = Pick< Element, 'getBoundingClientRect' > & {\n\townerDocument?: Document;\n};\n\nexport type PopoverProps = {\n\t/**\n\t * The name of the Slot in which the popover should be rendered. It should\n\t * be also passed to the corresponding `PopoverSlot` component.\n\t *\n\t * @default 'Popover'\n\t */\n\t__unstableSlotName?: string;\n\t/**\n\t * The element that should be used by the popover as its anchor. It can either\n\t * be an `Element` or, alternatively, a `VirtualElement` — ie. an object with\n\t * the `getBoundingClientRect()` and the `ownerDocument` properties defined.\n\t *\n\t * **The anchor element should be stored in local state** rather than a\n\t * plain React ref to ensure reactive updating when it changes.\n\t */\n\tanchor?: Element | VirtualElement | null;\n\t/**\n\t * Whether the popover should animate when opening.\n\t *\n\t * @default true\n\t */\n\tanimate?: boolean;\n\t/**\n\t * The `children` elements rendered as the popover's content.\n\t */\n\tchildren: ReactNode;\n\t/**\n\t * Show the popover fullscreen on mobile viewports.\n\t */\n\texpandOnMobile?: boolean;\n\t/**\n\t * Specifies whether the popover should flip across its axis if there isn't\n\t * space for it in the normal placement.\n\t * When the using a 'top' placement, the popover will switch to a 'bottom'\n\t * placement. When using a 'left' placement, the popover will switch to a\n\t * `right' placement.\n\t * The popover will retain its alignment of 'start' or 'end' when flipping.\n\t *\n\t * @default true\n\t */\n\tflip?: boolean;\n\t/**\n\t * By default, the _first tabbable element_ in the popover will receive focus\n\t * when it mounts. This is the same as setting this prop to `\"firstElement\"`.\n\t * Specifying a `false` value disables the focus handling entirely (this\n\t * should only be done when an appropriately accessible substitute behavior\n\t * exists).\n\t *\n\t * @default 'firstElement'\n\t */\n\tfocusOnMount?: 'firstElement' | boolean;\n\t/**\n\t * A callback invoked when the focus leaves the opened popover. This should\n\t * only be provided in advanced use-cases when a popover should close under\n\t * specific circumstances (for example, if the new `document.activeElement`\n\t * is content of or otherwise controlling popover visibility).\n\t *\n\t * When not provided, the `onClose` callback will be called instead.\n\t */\n\tonFocusOutside?: ( event: SyntheticEvent ) => void;\n\t/**\n\t * Used to customize the header text shown when the popover is toggled to\n\t * fullscreen on mobile viewports (see the `expandOnMobile` prop).\n\t */\n\theaderTitle?: string;\n\t/**\n\t * Used to show/hide the arrow that points at the popover's anchor.\n\t *\n\t * @default true\n\t */\n\tnoArrow?: boolean;\n\t/**\n\t * The distance (in px) between the anchor and the popover.\n\t */\n\toffset?: number;\n\t/**\n\t * A callback invoked when the popover should be closed.\n\t */\n\tonClose?: () => void;\n\t/**\n\t * Used to specify the popover's position with respect to its anchor.\n\t *\n\t * @default 'bottom-start'\n\t */\n\tplacement?: PopoverPlacement;\n\t/**\n\t * Legacy way to specify the popover's position with respect to its anchor.\n\t * _Note: this prop is deprecated. Use the `placement` prop instead._\n\t */\n\tposition?:\n\t\t| `${ PositionYAxis }`\n\t\t| `${ PositionYAxis } ${ PositionXAxis }`\n\t\t| `${ PositionYAxis } ${ PositionXAxis } ${ PositionCorner }`;\n\t/**\n\t * Adjusts the size of the popover to prevent its contents from going out of\n\t * view when meeting the viewport edges.\n\t *\n\t * @default true\n\t */\n\tresize?: boolean;\n\t/**\n\t * Enables the `Popover` to shift in order to stay in view when meeting the\n\t * viewport edges.\n\t *\n\t * @default false\n\t */\n\tshift?: boolean;\n\t/**\n\t * Specifies the popover's style.\n\t *\n\t * Leave undefined for the default style. Other values are:\n\t * - 'unstyled': The popover is essentially without any visible style, it\n\t * has no background, border, outline or drop shadow, but\n\t * the popover contents are still displayed.\n\t * - 'toolbar': A style that has no elevation, but a high contrast with\n\t * other elements. This is matches the style of the\n\t * `Toolbar` component.\n\t *\n\t * @default undefined\n\t */\n\tvariant?: 'unstyled' | 'toolbar';\n\t/**\n\t * Whether to render the popover inline or within the slot.\n\t *\n\t * @default false\n\t */\n\tinline?: boolean;\n\t// Deprecated props\n\t/**\n\t * Prevent the popover from flipping and resizing when meeting the viewport\n\t * edges. _Note: this prop is deprecated. Instead, provide use the individual\n\t * `flip` and `resize` props._\n\t *\n\t * @deprecated\n\t */\n\t__unstableForcePosition?: boolean;\n\t/**\n\t * An object extending a `DOMRect` with an additional optional `ownerDocument`\n\t * property, used to specify a fixed popover position.\n\t *\n\t * @deprecated\n\t */\n\tanchorRect?: DomRectWithOwnerDocument;\n\t/**\n\t * Used to specify a fixed popover position. It can be an `Element`, a React\n\t * reference to an `element`, an object with a `top` and a `bottom` properties\n\t * (both pointing to elements), or a `range`.\n\t *\n\t * @deprecated\n\t */\n\tanchorRef?:\n\t\t| Element\n\t\t| PopoverAnchorRefReference\n\t\t| PopoverAnchorRefTopBottom\n\t\t| Range;\n\t/**\n\t * A function returning the same value as the one expected by the `anchorRect`\n\t * prop, used to specify a dynamic popover position.\n\t *\n\t * @deprecated\n\t */\n\tgetAnchorRect?: (\n\t\tfallbackReferenceElement: Element | null\n\t) => DomRectWithOwnerDocument;\n\t/**\n\t * Used to enable a different visual style for the popover.\n\t * _Note: this prop is deprecated. Use the `variant` prop with the\n\t * 'toolbar' value instead._\n\t *\n\t * @deprecated\n\t */\n\tisAlternate?: boolean;\n};\n"],"mappings":""}
|
|
@@ -174,40 +174,6 @@ export const placementToMotionAnimationProps = placement => {
|
|
|
174
174
|
}
|
|
175
175
|
};
|
|
176
176
|
};
|
|
177
|
-
|
|
178
|
-
/**
|
|
179
|
-
* Returns the offset of a document's frame element.
|
|
180
|
-
*
|
|
181
|
-
* @param document The iframe's owner document.
|
|
182
|
-
*
|
|
183
|
-
* @return The offset of the document's frame element, or undefined if the
|
|
184
|
-
* document has no frame element.
|
|
185
|
-
*/
|
|
186
|
-
export const getFrameOffset = document => {
|
|
187
|
-
const frameElement = document?.defaultView?.frameElement;
|
|
188
|
-
if (!frameElement) {
|
|
189
|
-
return;
|
|
190
|
-
}
|
|
191
|
-
const iframeRect = frameElement.getBoundingClientRect();
|
|
192
|
-
return {
|
|
193
|
-
x: iframeRect.left,
|
|
194
|
-
y: iframeRect.top
|
|
195
|
-
};
|
|
196
|
-
};
|
|
197
|
-
export const getFrameScale = document => {
|
|
198
|
-
const frameElement = document?.defaultView?.frameElement;
|
|
199
|
-
if (!frameElement) {
|
|
200
|
-
return {
|
|
201
|
-
x: 1,
|
|
202
|
-
y: 1
|
|
203
|
-
};
|
|
204
|
-
}
|
|
205
|
-
const rect = frameElement.getBoundingClientRect();
|
|
206
|
-
return {
|
|
207
|
-
x: rect.width / frameElement.offsetWidth,
|
|
208
|
-
y: rect.height / frameElement.offsetHeight
|
|
209
|
-
};
|
|
210
|
-
};
|
|
211
177
|
export const getReferenceOwnerDocument = ({
|
|
212
178
|
anchor,
|
|
213
179
|
anchorRef,
|
|
@@ -225,7 +191,9 @@ export const getReferenceOwnerDocument = ({
|
|
|
225
191
|
// with the `getBoundingClientRect()` function (like real elements).
|
|
226
192
|
// See https://floating-ui.com/docs/virtual-elements for more info.
|
|
227
193
|
let resultingReferenceOwnerDoc;
|
|
228
|
-
if (anchor) {
|
|
194
|
+
if (anchor?.contextElement) {
|
|
195
|
+
resultingReferenceOwnerDoc = anchor.contextElement?.ownerDocument;
|
|
196
|
+
} else if (anchor) {
|
|
229
197
|
resultingReferenceOwnerDoc = anchor.ownerDocument;
|
|
230
198
|
} else if (anchorRef?.top) {
|
|
231
199
|
resultingReferenceOwnerDoc = anchorRef?.top.ownerDocument;
|
|
@@ -248,8 +216,7 @@ export const getReferenceElement = ({
|
|
|
248
216
|
anchorRef,
|
|
249
217
|
anchorRect,
|
|
250
218
|
getAnchorRect,
|
|
251
|
-
fallbackReferenceElement
|
|
252
|
-
scale
|
|
219
|
+
fallbackReferenceElement
|
|
253
220
|
}) => {
|
|
254
221
|
var _referenceElement;
|
|
255
222
|
let referenceElement = null;
|
|
@@ -295,16 +262,6 @@ export const getReferenceElement = ({
|
|
|
295
262
|
// anchoring to the popover's parent node.
|
|
296
263
|
referenceElement = fallbackReferenceElement.parentElement;
|
|
297
264
|
}
|
|
298
|
-
if (referenceElement && (scale.x !== 1 || scale.y !== 1)) {
|
|
299
|
-
// If the popover is inside an iframe, the coordinates of the
|
|
300
|
-
// reference element need to be scaled to match the iframe's scale.
|
|
301
|
-
const rect = referenceElement.getBoundingClientRect();
|
|
302
|
-
referenceElement = {
|
|
303
|
-
getBoundingClientRect() {
|
|
304
|
-
return new window.DOMRect(rect.x * scale.x, rect.y * scale.y, rect.width * scale.x, rect.height * scale.y);
|
|
305
|
-
}
|
|
306
|
-
};
|
|
307
|
-
}
|
|
308
265
|
|
|
309
266
|
// Convert any `undefined` value to `null`.
|
|
310
267
|
return (_referenceElement = referenceElement) !== null && _referenceElement !== void 0 ? _referenceElement : null;
|