@wordpress/components 21.0.0 → 21.0.2
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 +12 -0
- package/build/autocomplete/autocompleter-ui.js +3 -3
- package/build/autocomplete/autocompleter-ui.js.map +1 -1
- package/build/border-box-control/border-box-control/component.js +9 -10
- package/build/border-box-control/border-box-control/component.js.map +1 -1
- package/build/border-box-control/border-box-control-linked-button/component.js +1 -2
- package/build/border-box-control/border-box-control-linked-button/component.js.map +1 -1
- package/build/border-box-control/border-box-control-split-controls/component.js +9 -10
- package/build/border-box-control/border-box-control-split-controls/component.js.map +1 -1
- package/build/border-box-control/styles.js +7 -7
- package/build/border-box-control/styles.js.map +1 -1
- package/build/box-control/linked-button.js +3 -3
- package/build/box-control/linked-button.js.map +1 -1
- package/build/dropdown/index.js +11 -4
- package/build/dropdown/index.js.map +1 -1
- package/build/navigation/menu/menu-title-search.js +2 -1
- package/build/navigation/menu/menu-title-search.js.map +1 -1
- package/build/navigation/menu/use-navigation-tree-menu.js +2 -1
- package/build/navigation/menu/use-navigation-tree-menu.js.map +1 -1
- package/build/popover/index.js +39 -10
- package/build/popover/index.js.map +1 -1
- package/build/popover/utils.js +8 -2
- package/build/popover/utils.js.map +1 -1
- package/build/tooltip/index.js +8 -6
- package/build/tooltip/index.js.map +1 -1
- package/build-module/autocomplete/autocompleter-ui.js +4 -4
- package/build-module/autocomplete/autocompleter-ui.js.map +1 -1
- package/build-module/border-box-control/border-box-control/component.js +10 -11
- package/build-module/border-box-control/border-box-control/component.js.map +1 -1
- package/build-module/border-box-control/border-box-control-linked-button/component.js +1 -2
- package/build-module/border-box-control/border-box-control-linked-button/component.js.map +1 -1
- package/build-module/border-box-control/border-box-control-split-controls/component.js +10 -11
- package/build-module/border-box-control/border-box-control-split-controls/component.js.map +1 -1
- package/build-module/border-box-control/styles.js +7 -7
- package/build-module/border-box-control/styles.js.map +1 -1
- package/build-module/box-control/linked-button.js +3 -3
- package/build-module/box-control/linked-button.js.map +1 -1
- package/build-module/dropdown/index.js +10 -4
- package/build-module/dropdown/index.js.map +1 -1
- package/build-module/navigation/menu/menu-title-search.js +2 -1
- package/build-module/navigation/menu/menu-title-search.js.map +1 -1
- package/build-module/navigation/menu/use-navigation-tree-menu.js +2 -1
- package/build-module/navigation/menu/use-navigation-tree-menu.js.map +1 -1
- package/build-module/popover/index.js +39 -10
- package/build-module/popover/index.js.map +1 -1
- package/build-module/popover/utils.js +8 -2
- package/build-module/popover/utils.js.map +1 -1
- package/build-module/tooltip/index.js +9 -7
- package/build-module/tooltip/index.js.map +1 -1
- package/build-style/style-rtl.css +2 -3
- package/build-style/style.css +2 -3
- package/build-types/border-box-control/border-box-control/component.d.ts.map +1 -1
- package/build-types/border-box-control/border-box-control-linked-button/component.d.ts.map +1 -1
- package/build-types/border-box-control/border-box-control-split-controls/component.d.ts.map +1 -1
- package/build-types/border-box-control/styles.d.ts.map +1 -1
- package/build-types/dropdown/index.d.ts.map +1 -1
- package/build-types/popover/index.d.ts.map +1 -1
- package/build-types/popover/stories/index.d.ts.map +1 -1
- package/build-types/popover/types.d.ts +32 -14
- package/build-types/popover/types.d.ts.map +1 -1
- package/build-types/popover/utils.d.ts +2 -2
- package/build-types/popover/utils.d.ts.map +1 -1
- package/build-types/tooltip/index.d.ts.map +1 -1
- package/package.json +17 -17
- package/src/autocomplete/autocompleter-ui.js +6 -3
- package/src/border-box-control/border-box-control/component.tsx +28 -19
- package/src/border-box-control/border-box-control-linked-button/component.tsx +1 -2
- package/src/border-box-control/border-box-control-split-controls/component.tsx +25 -17
- package/src/border-box-control/stories/index.js +1 -0
- package/src/border-box-control/styles.ts +2 -1
- package/src/box-control/linked-button.js +3 -3
- package/src/box-control/test/index.js +5 -5
- package/src/button/style.scss +4 -3
- package/src/dropdown/index.js +15 -3
- package/src/modal/style.scss +3 -4
- package/src/navigation/menu/menu-title-search.js +2 -0
- package/src/navigation/menu/use-navigation-tree-menu.js +2 -0
- package/src/panel/README.md +1 -1
- package/src/popover/README.md +48 -3
- package/src/popover/index.tsx +41 -9
- package/src/popover/stories/index.tsx +1 -0
- package/src/popover/test/index.js +7 -5
- package/src/popover/types.ts +39 -20
- package/src/popover/utils.ts +16 -4
- package/src/tooltip/index.js +10 -6
- package/tsconfig.json +1 -0
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/components/src/navigation/menu/use-navigation-tree-menu.js"],"names":["useEffect","useNavigationContext","ROOT_MENU","useNavigationTreeMenu","props","navigationTree","addMenu","removeMenu","key","menu"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,oBAA1B;AAEA;AACA;AACA;;AACA,SAASC,oBAAT,QAAqC,YAArC;AACA,SAASC,SAAT,QAA0B,cAA1B;AAEA,OAAO,MAAMC,qBAAqB,GAAKC,KAAF,IAAa;AACjD,QAAM;AACLC,IAAAA,cAAc,EAAE;AAAEC,MAAAA,OAAF;AAAWC,MAAAA;AAAX;AADX,MAEFN,oBAAoB,EAFxB;AAIA,QAAMO,GAAG,GAAGJ,KAAK,CAACK,IAAN,IAAcP,SAA1B;AACAF,EAAAA,SAAS,CAAE,MAAM;AAChBM,IAAAA,OAAO,CAAEE,GAAF,EAAO,EAAE,GAAGJ,KAAL;AAAYK,MAAAA,IAAI,EAAED;AAAlB,KAAP,CAAP;AAEA,WAAO,MAAM;AACZD,MAAAA,UAAU,CAAEC,GAAF,CAAV;AACA,KAFD;
|
|
1
|
+
{"version":3,"sources":["@wordpress/components/src/navigation/menu/use-navigation-tree-menu.js"],"names":["useEffect","useNavigationContext","ROOT_MENU","useNavigationTreeMenu","props","navigationTree","addMenu","removeMenu","key","menu"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,oBAA1B;AAEA;AACA;AACA;;AACA,SAASC,oBAAT,QAAqC,YAArC;AACA,SAASC,SAAT,QAA0B,cAA1B;AAEA,OAAO,MAAMC,qBAAqB,GAAKC,KAAF,IAAa;AACjD,QAAM;AACLC,IAAAA,cAAc,EAAE;AAAEC,MAAAA,OAAF;AAAWC,MAAAA;AAAX;AADX,MAEFN,oBAAoB,EAFxB;AAIA,QAAMO,GAAG,GAAGJ,KAAK,CAACK,IAAN,IAAcP,SAA1B;AACAF,EAAAA,SAAS,CAAE,MAAM;AAChBM,IAAAA,OAAO,CAAEE,GAAF,EAAO,EAAE,GAAGJ,KAAL;AAAYK,MAAAA,IAAI,EAAED;AAAlB,KAAP,CAAP;AAEA,WAAO,MAAM;AACZD,MAAAA,UAAU,CAAEC,GAAF,CAAV;AACA,KAFD,CAHgB,CAMhB;AACA;AACA,GARQ,EAQN,EARM,CAAT;AASA,CAfM","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { useNavigationContext } from '../context';\nimport { ROOT_MENU } from '../constants';\n\nexport const useNavigationTreeMenu = ( props ) => {\n\tconst {\n\t\tnavigationTree: { addMenu, removeMenu },\n\t} = useNavigationContext();\n\n\tconst key = props.menu || ROOT_MENU;\n\tuseEffect( () => {\n\t\taddMenu( key, { ...props, menu: key } );\n\n\t\treturn () => {\n\t\t\tremoveMenu( key );\n\t\t};\n\t\t// Ignore exhaustive-deps rule for now. See https://github.com/WordPress/gutenberg/pull/44090\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [] );\n};\n"]}
|
|
@@ -88,7 +88,6 @@ const UnforwardedPopover = (props, forwardedRef) => {
|
|
|
88
88
|
var _frameOffsetRef$curre, _frameOffsetRef$curre2, _frameOffsetRef$curre3, _frameOffsetRef$curre4;
|
|
89
89
|
|
|
90
90
|
const {
|
|
91
|
-
range,
|
|
92
91
|
animate = true,
|
|
93
92
|
headerTitle,
|
|
94
93
|
onClose,
|
|
@@ -100,22 +99,26 @@ const UnforwardedPopover = (props, forwardedRef) => {
|
|
|
100
99
|
placement: placementProp = 'bottom-start',
|
|
101
100
|
offset: offsetProp = 0,
|
|
102
101
|
focusOnMount = 'firstElement',
|
|
103
|
-
|
|
104
|
-
anchorRect,
|
|
105
|
-
getAnchorRect,
|
|
102
|
+
anchor,
|
|
106
103
|
expandOnMobile,
|
|
107
104
|
onFocusOutside,
|
|
108
105
|
__unstableSlotName = SLOT_NAME,
|
|
109
106
|
flip = true,
|
|
110
107
|
resize = true,
|
|
111
108
|
shift = false,
|
|
112
|
-
|
|
109
|
+
// Deprecated props
|
|
113
110
|
__unstableForcePosition,
|
|
111
|
+
__unstableShift,
|
|
112
|
+
anchorRef,
|
|
113
|
+
anchorRect,
|
|
114
|
+
getAnchorRect,
|
|
115
|
+
range,
|
|
116
|
+
// Rest
|
|
114
117
|
...contentProps
|
|
115
118
|
} = props;
|
|
116
119
|
|
|
117
120
|
if (range) {
|
|
118
|
-
deprecated('range prop in Popover
|
|
121
|
+
deprecated('`range` prop in wp.components.Popover', {
|
|
119
122
|
since: '6.1',
|
|
120
123
|
version: '6.3'
|
|
121
124
|
});
|
|
@@ -125,7 +128,7 @@ const UnforwardedPopover = (props, forwardedRef) => {
|
|
|
125
128
|
let computedResizeProp = resize;
|
|
126
129
|
|
|
127
130
|
if (__unstableForcePosition !== undefined) {
|
|
128
|
-
deprecated('__unstableForcePosition prop
|
|
131
|
+
deprecated('`__unstableForcePosition` prop wp.components.Popover', {
|
|
129
132
|
since: '6.1',
|
|
130
133
|
version: '6.3',
|
|
131
134
|
alternative: '`flip={ false }` and `resize={ false }`'
|
|
@@ -139,7 +142,7 @@ const UnforwardedPopover = (props, forwardedRef) => {
|
|
|
139
142
|
let shouldShift = shift;
|
|
140
143
|
|
|
141
144
|
if (__unstableShift !== undefined) {
|
|
142
|
-
deprecated('`__unstableShift` prop in Popover
|
|
145
|
+
deprecated('`__unstableShift` prop in wp.components.Popover', {
|
|
143
146
|
since: '6.1',
|
|
144
147
|
version: '6.3',
|
|
145
148
|
alternative: '`shift` prop`'
|
|
@@ -148,6 +151,30 @@ const UnforwardedPopover = (props, forwardedRef) => {
|
|
|
148
151
|
shouldShift = __unstableShift;
|
|
149
152
|
}
|
|
150
153
|
|
|
154
|
+
if (anchorRef !== undefined) {
|
|
155
|
+
deprecated('`anchorRef` prop in wp.components.Popover', {
|
|
156
|
+
since: '6.1',
|
|
157
|
+
version: '6.3',
|
|
158
|
+
alternative: '`anchor` prop'
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
if (anchorRect !== undefined) {
|
|
163
|
+
deprecated('`anchorRect` prop in wp.components.Popover', {
|
|
164
|
+
since: '6.1',
|
|
165
|
+
version: '6.3',
|
|
166
|
+
alternative: '`anchor` prop'
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
if (getAnchorRect !== undefined) {
|
|
171
|
+
deprecated('`getAnchorRect` prop in wp.components.Popover', {
|
|
172
|
+
since: '6.1',
|
|
173
|
+
version: '6.3',
|
|
174
|
+
alternative: '`anchor` prop'
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
|
|
151
178
|
const arrowRef = useRef(null);
|
|
152
179
|
const [fallbackReferenceElement, setFallbackReferenceElement] = useState(null);
|
|
153
180
|
const [referenceOwnerDocument, setReferenceOwnerDocument] = useState();
|
|
@@ -279,6 +306,7 @@ const UnforwardedPopover = (props, forwardedRef) => {
|
|
|
279
306
|
|
|
280
307
|
useLayoutEffect(() => {
|
|
281
308
|
const resultingReferenceOwnerDoc = getReferenceOwnerDocument({
|
|
309
|
+
anchor,
|
|
282
310
|
anchorRef,
|
|
283
311
|
anchorRect,
|
|
284
312
|
getAnchorRect,
|
|
@@ -286,6 +314,7 @@ const UnforwardedPopover = (props, forwardedRef) => {
|
|
|
286
314
|
fallbackDocument: document
|
|
287
315
|
});
|
|
288
316
|
const resultingReferenceElement = getReferenceElement({
|
|
317
|
+
anchor,
|
|
289
318
|
anchorRef,
|
|
290
319
|
anchorRect,
|
|
291
320
|
getAnchorRect,
|
|
@@ -293,7 +322,7 @@ const UnforwardedPopover = (props, forwardedRef) => {
|
|
|
293
322
|
});
|
|
294
323
|
referenceCallbackRef(resultingReferenceElement);
|
|
295
324
|
setReferenceOwnerDocument(resultingReferenceOwnerDoc);
|
|
296
|
-
}, [anchorRef, anchorRef === null || anchorRef === void 0 ? void 0 : anchorRef.top, anchorRef === null || anchorRef === void 0 ? void 0 : anchorRef.bottom, anchorRef === null || anchorRef === void 0 ? void 0 : anchorRef.startContainer, anchorRef === null || anchorRef === void 0 ? void 0 : anchorRef.current, anchorRect, getAnchorRect, fallbackReferenceElement, referenceCallbackRef]); // If the reference element is in a different ownerDocument (e.g. iFrame),
|
|
325
|
+
}, [anchor, anchorRef, anchorRef === null || anchorRef === void 0 ? void 0 : anchorRef.top, anchorRef === null || anchorRef === void 0 ? void 0 : anchorRef.bottom, anchorRef === null || anchorRef === void 0 ? void 0 : anchorRef.startContainer, anchorRef === null || anchorRef === void 0 ? void 0 : anchorRef.current, anchorRect, getAnchorRect, fallbackReferenceElement, referenceCallbackRef]); // If the reference element is in a different ownerDocument (e.g. iFrame),
|
|
297
326
|
// we need to manually update the floating's position as the reference's owner
|
|
298
327
|
// document scrolls. Also update the frame offset if the view resizes.
|
|
299
328
|
|
|
@@ -370,7 +399,7 @@ const UnforwardedPopover = (props, forwardedRef) => {
|
|
|
370
399
|
}, content);
|
|
371
400
|
}
|
|
372
401
|
|
|
373
|
-
if (anchorRef || anchorRect) {
|
|
402
|
+
if (anchorRef || anchorRect || anchor) {
|
|
374
403
|
return content;
|
|
375
404
|
}
|
|
376
405
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/components/src/popover/index.tsx"],"names":["classnames","useFloating","flip","flipMiddleware","shift","shiftMiddleware","autoUpdate","arrow","offset","offsetMiddleware","limitShift","size","motion","useReducedMotion","useRef","useLayoutEffect","forwardRef","createContext","useContext","useMemo","useState","useCallback","useEffect","useViewportMatch","useMergeRefs","__experimentalUseDialog","useDialog","close","deprecated","Path","SVG","Button","ScrollLock","Slot","Fill","useSlot","getFrameOffset","positionToPlacement","placementToMotionAnimationProps","getReferenceOwnerDocument","getReferenceElement","SLOT_NAME","ArrowTriangle","AnimatedWrapper","forwardedRef","style","receivedInlineStyles","placement","shouldAnimate","props","hasAnimatedOnce","setHasAnimatedOnce","shouldReduceMotion","motionInlineStyles","otherMotionProps","onAnimationComplete","computedAnimationProps","animate","slotNameContext","undefined","UnforwardedPopover","range","headerTitle","onClose","children","className","noArrow","isAlternate","position","placementProp","offsetProp","focusOnMount","anchorRef","anchorRect","getAnchorRect","expandOnMobile","onFocusOutside","__unstableSlotName","resize","__unstableShift","__unstableForcePosition","contentProps","since","version","computedFlipProp","computedResizeProp","alternative","shouldShift","arrowRef","fallbackReferenceElement","setFallbackReferenceElement","referenceOwnerDocument","setReferenceOwnerDocument","anchorRefFallback","node","isMobileViewport","isExpanded","hasArrow","normalizedPlacementFromProps","frameOffsetRef","offsetRef","middleware","currentPlacement","current","isTopBottomPlacement","includes","mainAxis","crossAxis","hasBeforePlacement","mainAxisModifier","apply","sizeProps","firstElementChild","refs","floating","HTMLElement","Object","assign","maxHeight","availableHeight","overflow","limiter","padding","element","filter","m","slotName","slot","onDialogClose","type","event","dialogRef","dialogProps","__unstableOnClose","x","y","reference","referenceCallbackRef","strategy","update","computedPlacement","middlewareData","arrowData","whileElementsMounted","referenceParam","floatingParam","updateParam","animationFrame","arrowCallbackRef","resultingReferenceOwnerDoc","fallbackDocument","document","resultingReferenceElement","top","bottom","startContainer","ownerDocument","defaultView","frameElement","updateFrameOffset","addEventListener","removeEventListener","mergedFloatingRef","content","left","Number","isNaN","split","join","isFinite","ref","Popover","PopoverSlot","name","__unstableSlotNameProvider","Provider"],"mappings":"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","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\tautoUpdate,\n\tarrow,\n\toffset as offsetMiddleware,\n\tlimitShift,\n\tsize,\n\tMiddleware,\n} from '@floating-ui/react-dom';\n// eslint-disable-next-line no-restricted-imports\nimport {\n\tmotion,\n\tuseReducedMotion,\n\tHTMLMotionProps,\n\tMotionProps,\n} 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\tuseEffect,\n} from '@wordpress/element';\nimport {\n\tuseViewportMatch,\n\tuseMergeRefs,\n\t__experimentalUseDialog as useDialog,\n} from '@wordpress/compose';\nimport { close } from '@wordpress/icons';\nimport deprecated from '@wordpress/deprecated';\nimport { Path, SVG } from '@wordpress/primitives';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport ScrollLock from '../scroll-lock';\nimport { Slot, Fill, useSlot } from '../slot-fill';\nimport {\n\tgetFrameOffset,\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';\n\n/**\n * Name of slot in which popover should fill.\n *\n * @type {string}\n */\nconst SLOT_NAME = 'Popover';\n\n// An SVG displaying a triangle facing down, filled with a solid\n// color and bordered in such a way to create an arrow-like effect.\n// Keeping the SVG's viewbox squared simplify the arrow positioning\n// calculations.\nconst ArrowTriangle = () => (\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\t// When animating, animate only once (i.e. when the popover is opened), and\n\t\t// do not animate on subsequent prop changes (as it conflicts with\n\t\t// floating-ui's positioning updates).\n\t\tconst [ hasAnimatedOnce, setHasAnimatedOnce ] = useState( false );\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 onAnimationComplete = useCallback(\n\t\t\t() => setHasAnimatedOnce( true ),\n\t\t\t[]\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\t\tonAnimationComplete,\n\t\t\t\t\t\tanimate: hasAnimatedOnce\n\t\t\t\t\t\t\t? false\n\t\t\t\t\t\t\t: otherMotionProps.animate,\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`, which is re-defined in `PopoverProps`).\n\t\tkeyof Omit< MotionProps, 'animate' >\n\t>,\n\tforwardedRef: ForwardedRef< any >\n) => {\n\tconst {\n\t\trange,\n\t\tanimate = true,\n\t\theaderTitle,\n\t\tonClose,\n\t\tchildren,\n\t\tclassName,\n\t\tnoArrow = true,\n\t\tisAlternate,\n\t\tposition,\n\t\tplacement: placementProp = 'bottom-start',\n\t\toffset: offsetProp = 0,\n\t\tfocusOnMount = 'firstElement',\n\t\tanchorRef,\n\t\tanchorRect,\n\t\tgetAnchorRect,\n\t\texpandOnMobile,\n\t\tonFocusOutside,\n\t\t__unstableSlotName = SLOT_NAME,\n\t\tflip = true,\n\t\tresize = true,\n\t\tshift = false,\n\t\t__unstableShift,\n\t\t__unstableForcePosition,\n\t\t...contentProps\n\t} = props;\n\n\tif ( range ) {\n\t\tdeprecated( 'range prop in Popover component', {\n\t\t\tsince: '6.1',\n\t\t\tversion: '6.3',\n\t\t} );\n\t}\n\n\tlet computedFlipProp = flip;\n\tlet computedResizeProp = resize;\n\tif ( __unstableForcePosition !== undefined ) {\n\t\tdeprecated( '__unstableForcePosition prop in Popover component', {\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\tlet shouldShift = shift;\n\tif ( __unstableShift !== undefined ) {\n\t\tdeprecated( '`__unstableShift` prop in Popover component', {\n\t\t\tsince: '6.1',\n\t\t\tversion: '6.3',\n\t\t\talternative: '`shift` prop`',\n\t\t} );\n\n\t\t// Back-compat.\n\t\tshouldShift = __unstableShift;\n\t}\n\n\tconst arrowRef = useRef( 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\t/**\n\t * Store the offset prop 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 offsetRef = useRef( offsetProp );\n\n\tconst middleware = [\n\t\toffsetMiddleware( ( { placement: currentPlacement } ) => {\n\t\t\tif ( ! frameOffsetRef.current ) {\n\t\t\t\treturn offsetRef.current;\n\t\t\t}\n\n\t\t\tconst isTopBottomPlacement =\n\t\t\t\tcurrentPlacement.includes( 'top' ) ||\n\t\t\t\tcurrentPlacement.includes( 'bottom' );\n\n\t\t\t// The main axis should represent the gap between the\n\t\t\t// floating element and the reference element. The cross\n\t\t\t// axis is always perpendicular to the main axis.\n\t\t\tconst mainAxis = isTopBottomPlacement ? 'y' : 'x';\n\t\t\tconst crossAxis = mainAxis === 'x' ? 'y' : 'x';\n\n\t\t\t// When the popover is before the reference, subtract the offset,\n\t\t\t// of the main axis else add it.\n\t\t\tconst hasBeforePlacement =\n\t\t\t\tcurrentPlacement.includes( 'top' ) ||\n\t\t\t\tcurrentPlacement.includes( 'left' );\n\t\t\tconst mainAxisModifier = hasBeforePlacement ? -1 : 1;\n\n\t\t\treturn {\n\t\t\t\tmainAxis:\n\t\t\t\t\toffsetRef.current +\n\t\t\t\t\tframeOffsetRef.current[ mainAxis ] * mainAxisModifier,\n\t\t\t\tcrossAxis: frameOffsetRef.current[ crossAxis ],\n\t\t\t};\n\t\t} ),\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\tshouldShift\n\t\t\t? shiftMiddleware( {\n\t\t\t\t\tcrossAxis: true,\n\t\t\t\t\tlimiter: limitShift(),\n\t\t\t\t\tpadding: 1, // Necessary to avoid flickering at the edge of the viewport.\n\t\t\t } )\n\t\t\t: undefined,\n\t\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: 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\tuseEffect( () => {\n\t\toffsetRef.current = offsetProp;\n\t\tupdate();\n\t}, [ offsetProp, update ] );\n\n\tconst arrowCallbackRef = useCallback(\n\t\t( node ) => {\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\tuseLayoutEffect( () => {\n\t\tconst resultingReferenceOwnerDoc = getReferenceOwnerDocument( {\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 resultingReferenceElement = getReferenceElement( {\n\t\t\tanchorRef,\n\t\t\tanchorRect,\n\t\t\tgetAnchorRect,\n\t\t\tfallbackReferenceElement,\n\t\t} );\n\n\t\treferenceCallbackRef( resultingReferenceElement );\n\n\t\tsetReferenceOwnerDocument( resultingReferenceOwnerDoc );\n\t}, [\n\t\tanchorRef as Element | undefined,\n\t\t( anchorRef as PopoverAnchorRefTopBottom | undefined )?.top,\n\t\t( anchorRef as PopoverAnchorRefTopBottom | undefined )?.bottom,\n\t\t( anchorRef as Range | undefined )?.startContainer,\n\t\t( anchorRef as PopoverAnchorRefReference )?.current,\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\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\n\t\tupdateFrameOffset();\n\n\t\treturn () => {\n\t\t\tdefaultView.removeEventListener( 'resize', updateFrameOffset );\n\t\t};\n\t}, [ referenceOwnerDocument, update ] );\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-alternate': isAlternate,\n\t\t\t} ) }\n\t\t\t{ ...contentProps }\n\t\t\tref={ mergedFloatingRef }\n\t\t\t{ ...dialogProps }\n\t\t\ttabIndex={ -1 }\n\t\t\tstyle={\n\t\t\t\tisExpanded\n\t\t\t\t\t? undefined\n\t\t\t\t\t: {\n\t\t\t\t\t\t\tposition: strategy,\n\t\t\t\t\t\t\tleft: Number.isNaN( x ) ? 0 : x ?? undefined,\n\t\t\t\t\t\t\ttop: Number.isNaN( y ) ? 0 : y ?? undefined,\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 ) {\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"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/components/src/popover/index.tsx"],"names":["classnames","useFloating","flip","flipMiddleware","shift","shiftMiddleware","autoUpdate","arrow","offset","offsetMiddleware","limitShift","size","motion","useReducedMotion","useRef","useLayoutEffect","forwardRef","createContext","useContext","useMemo","useState","useCallback","useEffect","useViewportMatch","useMergeRefs","__experimentalUseDialog","useDialog","close","deprecated","Path","SVG","Button","ScrollLock","Slot","Fill","useSlot","getFrameOffset","positionToPlacement","placementToMotionAnimationProps","getReferenceOwnerDocument","getReferenceElement","SLOT_NAME","ArrowTriangle","AnimatedWrapper","forwardedRef","style","receivedInlineStyles","placement","shouldAnimate","props","hasAnimatedOnce","setHasAnimatedOnce","shouldReduceMotion","motionInlineStyles","otherMotionProps","onAnimationComplete","computedAnimationProps","animate","slotNameContext","undefined","UnforwardedPopover","headerTitle","onClose","children","className","noArrow","isAlternate","position","placementProp","offsetProp","focusOnMount","anchor","expandOnMobile","onFocusOutside","__unstableSlotName","resize","__unstableForcePosition","__unstableShift","anchorRef","anchorRect","getAnchorRect","range","contentProps","since","version","computedFlipProp","computedResizeProp","alternative","shouldShift","arrowRef","fallbackReferenceElement","setFallbackReferenceElement","referenceOwnerDocument","setReferenceOwnerDocument","anchorRefFallback","node","isMobileViewport","isExpanded","hasArrow","normalizedPlacementFromProps","frameOffsetRef","offsetRef","middleware","currentPlacement","current","isTopBottomPlacement","includes","mainAxis","crossAxis","hasBeforePlacement","mainAxisModifier","apply","sizeProps","firstElementChild","refs","floating","HTMLElement","Object","assign","maxHeight","availableHeight","overflow","limiter","padding","element","filter","m","slotName","slot","onDialogClose","type","event","dialogRef","dialogProps","__unstableOnClose","x","y","reference","referenceCallbackRef","strategy","update","computedPlacement","middlewareData","arrowData","whileElementsMounted","referenceParam","floatingParam","updateParam","animationFrame","arrowCallbackRef","resultingReferenceOwnerDoc","fallbackDocument","document","resultingReferenceElement","top","bottom","startContainer","ownerDocument","defaultView","frameElement","updateFrameOffset","addEventListener","removeEventListener","mergedFloatingRef","content","left","Number","isNaN","split","join","isFinite","ref","Popover","PopoverSlot","name","__unstableSlotNameProvider","Provider"],"mappings":"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","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\tautoUpdate,\n\tarrow,\n\toffset as offsetMiddleware,\n\tlimitShift,\n\tsize,\n\tMiddleware,\n} from '@floating-ui/react-dom';\n// eslint-disable-next-line no-restricted-imports\nimport {\n\tmotion,\n\tuseReducedMotion,\n\tHTMLMotionProps,\n\tMotionProps,\n} 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\tuseEffect,\n} from '@wordpress/element';\nimport {\n\tuseViewportMatch,\n\tuseMergeRefs,\n\t__experimentalUseDialog as useDialog,\n} from '@wordpress/compose';\nimport { close } from '@wordpress/icons';\nimport deprecated from '@wordpress/deprecated';\nimport { Path, SVG } from '@wordpress/primitives';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport ScrollLock from '../scroll-lock';\nimport { Slot, Fill, useSlot } from '../slot-fill';\nimport {\n\tgetFrameOffset,\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';\n\n/**\n * Name of slot in which popover should fill.\n *\n * @type {string}\n */\nconst SLOT_NAME = 'Popover';\n\n// An SVG displaying a triangle facing down, filled with a solid\n// color and bordered in such a way to create an arrow-like effect.\n// Keeping the SVG's viewbox squared simplify the arrow positioning\n// calculations.\nconst ArrowTriangle = () => (\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\t// When animating, animate only once (i.e. when the popover is opened), and\n\t\t// do not animate on subsequent prop changes (as it conflicts with\n\t\t// floating-ui's positioning updates).\n\t\tconst [ hasAnimatedOnce, setHasAnimatedOnce ] = useState( false );\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 onAnimationComplete = useCallback(\n\t\t\t() => setHasAnimatedOnce( true ),\n\t\t\t[]\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\t\tonAnimationComplete,\n\t\t\t\t\t\tanimate: hasAnimatedOnce\n\t\t\t\t\t\t\t? false\n\t\t\t\t\t\t\t: otherMotionProps.animate,\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`, which is re-defined in `PopoverProps`).\n\t\tkeyof Omit< MotionProps, 'animate' >\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\tisAlternate,\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\n\t\t// Deprecated props\n\t\t__unstableForcePosition,\n\t\t__unstableShift,\n\t\tanchorRef,\n\t\tanchorRect,\n\t\tgetAnchorRect,\n\t\trange,\n\n\t\t// Rest\n\t\t...contentProps\n\t} = props;\n\n\tif ( range ) {\n\t\tdeprecated( '`range` prop in wp.components.Popover', {\n\t\t\tsince: '6.1',\n\t\t\tversion: '6.3',\n\t\t} );\n\t}\n\n\tlet computedFlipProp = flip;\n\tlet computedResizeProp = resize;\n\tif ( __unstableForcePosition !== undefined ) {\n\t\tdeprecated( '`__unstableForcePosition` prop 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\tlet shouldShift = shift;\n\tif ( __unstableShift !== undefined ) {\n\t\tdeprecated( '`__unstableShift` prop in wp.components.Popover', {\n\t\t\tsince: '6.1',\n\t\t\tversion: '6.3',\n\t\t\talternative: '`shift` prop`',\n\t\t} );\n\n\t\t// Back-compat.\n\t\tshouldShift = __unstableShift;\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\tversion: '6.3',\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\tversion: '6.3',\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\tversion: '6.3',\n\t\t\talternative: '`anchor` prop',\n\t\t} );\n\t}\n\n\tconst arrowRef = useRef( 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\t/**\n\t * Store the offset prop 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 offsetRef = useRef( offsetProp );\n\n\tconst middleware = [\n\t\toffsetMiddleware( ( { placement: currentPlacement } ) => {\n\t\t\tif ( ! frameOffsetRef.current ) {\n\t\t\t\treturn offsetRef.current;\n\t\t\t}\n\n\t\t\tconst isTopBottomPlacement =\n\t\t\t\tcurrentPlacement.includes( 'top' ) ||\n\t\t\t\tcurrentPlacement.includes( 'bottom' );\n\n\t\t\t// The main axis should represent the gap between the\n\t\t\t// floating element and the reference element. The cross\n\t\t\t// axis is always perpendicular to the main axis.\n\t\t\tconst mainAxis = isTopBottomPlacement ? 'y' : 'x';\n\t\t\tconst crossAxis = mainAxis === 'x' ? 'y' : 'x';\n\n\t\t\t// When the popover is before the reference, subtract the offset,\n\t\t\t// of the main axis else add it.\n\t\t\tconst hasBeforePlacement =\n\t\t\t\tcurrentPlacement.includes( 'top' ) ||\n\t\t\t\tcurrentPlacement.includes( 'left' );\n\t\t\tconst mainAxisModifier = hasBeforePlacement ? -1 : 1;\n\n\t\t\treturn {\n\t\t\t\tmainAxis:\n\t\t\t\t\toffsetRef.current +\n\t\t\t\t\tframeOffsetRef.current[ mainAxis ] * mainAxisModifier,\n\t\t\t\tcrossAxis: frameOffsetRef.current[ crossAxis ],\n\t\t\t};\n\t\t} ),\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\tshouldShift\n\t\t\t? shiftMiddleware( {\n\t\t\t\t\tcrossAxis: true,\n\t\t\t\t\tlimiter: limitShift(),\n\t\t\t\t\tpadding: 1, // Necessary to avoid flickering at the edge of the viewport.\n\t\t\t } )\n\t\t\t: undefined,\n\t\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: 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\tuseEffect( () => {\n\t\toffsetRef.current = offsetProp;\n\t\tupdate();\n\t}, [ offsetProp, update ] );\n\n\tconst arrowCallbackRef = useCallback(\n\t\t( node ) => {\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\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 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\treferenceCallbackRef( resultingReferenceElement );\n\n\t\tsetReferenceOwnerDocument( resultingReferenceOwnerDoc );\n\t}, [\n\t\tanchor,\n\t\tanchorRef as Element | undefined,\n\t\t( anchorRef as PopoverAnchorRefTopBottom | undefined )?.top,\n\t\t( anchorRef as PopoverAnchorRefTopBottom | undefined )?.bottom,\n\t\t( anchorRef as Range | undefined )?.startContainer,\n\t\t( anchorRef as PopoverAnchorRefReference )?.current,\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\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\n\t\tupdateFrameOffset();\n\n\t\treturn () => {\n\t\t\tdefaultView.removeEventListener( 'resize', updateFrameOffset );\n\t\t};\n\t}, [ referenceOwnerDocument, update ] );\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-alternate': isAlternate,\n\t\t\t} ) }\n\t\t\t{ ...contentProps }\n\t\t\tref={ mergedFloatingRef }\n\t\t\t{ ...dialogProps }\n\t\t\ttabIndex={ -1 }\n\t\t\tstyle={\n\t\t\t\tisExpanded\n\t\t\t\t\t? undefined\n\t\t\t\t\t: {\n\t\t\t\t\t\t\tposition: strategy,\n\t\t\t\t\t\t\tleft: Number.isNaN( x ) ? 0 : x ?? undefined,\n\t\t\t\t\t\t\ttop: Number.isNaN( y ) ? 0 : y ?? undefined,\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"]}
|
|
@@ -157,6 +157,7 @@ export const getReferenceOwnerDocument = _ref => {
|
|
|
157
157
|
var _resultingReferenceOw;
|
|
158
158
|
|
|
159
159
|
let {
|
|
160
|
+
anchor,
|
|
160
161
|
anchorRef,
|
|
161
162
|
anchorRect,
|
|
162
163
|
getAnchorRect,
|
|
@@ -172,7 +173,9 @@ export const getReferenceOwnerDocument = _ref => {
|
|
|
172
173
|
// See https://floating-ui.com/docs/virtual-elements for more info.
|
|
173
174
|
let resultingReferenceOwnerDoc;
|
|
174
175
|
|
|
175
|
-
if (
|
|
176
|
+
if (anchor) {
|
|
177
|
+
resultingReferenceOwnerDoc = anchor.ownerDocument;
|
|
178
|
+
} else if (anchorRef !== null && anchorRef !== void 0 && anchorRef.top) {
|
|
176
179
|
resultingReferenceOwnerDoc = anchorRef === null || anchorRef === void 0 ? void 0 : anchorRef.top.ownerDocument;
|
|
177
180
|
} else if (anchorRef !== null && anchorRef !== void 0 && anchorRef.startContainer) {
|
|
178
181
|
resultingReferenceOwnerDoc = anchorRef.startContainer.ownerDocument;
|
|
@@ -195,6 +198,7 @@ export const getReferenceElement = _ref2 => {
|
|
|
195
198
|
var _referenceElement;
|
|
196
199
|
|
|
197
200
|
let {
|
|
201
|
+
anchor,
|
|
198
202
|
anchorRef,
|
|
199
203
|
anchorRect,
|
|
200
204
|
getAnchorRect,
|
|
@@ -202,7 +206,9 @@ export const getReferenceElement = _ref2 => {
|
|
|
202
206
|
} = _ref2;
|
|
203
207
|
let referenceElement = null;
|
|
204
208
|
|
|
205
|
-
if (
|
|
209
|
+
if (anchor) {
|
|
210
|
+
referenceElement = anchor;
|
|
211
|
+
} else if (anchorRef !== null && anchorRef !== void 0 && anchorRef.top) {
|
|
206
212
|
// Create a virtual element for the ref. The expectation is that
|
|
207
213
|
// if anchorRef.top is defined, then anchorRef.bottom is defined too.
|
|
208
214
|
// Seems to be used by the block toolbar, when multiple blocks are selected
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/components/src/popover/utils.ts"],"names":["positionToPlacement","position","x","y","z","split","includes","suffix","PLACEMENT_TO_ANIMATION_ORIGIN","top","originX","originY","right","bottom","left","placementToMotionAnimationProps","placement","translateProp","startsWith","translateDirection","style","initial","opacity","scale","animate","transition","duration","ease","getFrameOffset","document","frameElement","defaultView","iframeRect","getBoundingClientRect","getReferenceOwnerDocument","anchorRef","anchorRect","getAnchorRect","fallbackReferenceElement","fallbackDocument","resultingReferenceOwnerDoc","ownerDocument","startContainer","current","getReferenceElement","referenceElement","topRect","bottomRect","window","DOMRect","width","rect","height","parentElement"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\n// eslint-disable-next-line no-restricted-imports\nimport type { MotionProps } from 'framer-motion';\nimport type { ReferenceType } from '@floating-ui/react-dom';\n\n/**\n * Internal dependencies\n */\nimport type {\n\tPopoverProps,\n\tPopoverAnchorRefReference,\n\tPopoverAnchorRefTopBottom,\n} from './types';\n\n/**\n * Converts the `Popover`'s legacy \"position\" prop to the new \"placement\" prop\n * (used by `floating-ui`).\n *\n * @param position The legacy position\n * @return The corresponding placement\n */\nexport const positionToPlacement = (\n\tposition: NonNullable< PopoverProps[ 'position' ] >\n): NonNullable< PopoverProps[ 'placement' ] > => {\n\tconst [ x, y, z ] = position.split( ' ' );\n\n\tif ( [ 'top', 'bottom' ].includes( x ) ) {\n\t\tlet suffix = '';\n\t\tif ( ( !! z && z === 'left' ) || y === 'right' ) {\n\t\t\tsuffix = '-start';\n\t\t} else if ( ( !! z && z === 'right' ) || y === 'left' ) {\n\t\t\tsuffix = '-end';\n\t\t}\n\n\t\treturn ( x + suffix ) as NonNullable< PopoverProps[ 'placement' ] >;\n\t}\n\n\treturn y as NonNullable< PopoverProps[ 'placement' ] >;\n};\n\n/**\n * @typedef AnimationOrigin\n * @type {Object}\n * @property {number} originX A number between 0 and 1 (in CSS logical properties jargon, 0 is \"start\", 0.5 is \"center\", and 1 is \"end\")\n * @property {number} originY A number between 0 and 1 (0 is top, 0.5 is center, and 1 is bottom)\n */\n\nconst PLACEMENT_TO_ANIMATION_ORIGIN: Record<\n\tNonNullable< PopoverProps[ 'placement' ] >,\n\t{ originX: number; originY: number }\n> = {\n\ttop: { originX: 0.5, originY: 1 }, // open from bottom, center\n\t'top-start': { originX: 0, originY: 1 }, // open from bottom, left\n\t'top-end': { originX: 1, originY: 1 }, // open from bottom, right\n\tright: { originX: 0, originY: 0.5 }, // open from middle, left\n\t'right-start': { originX: 0, originY: 0 }, // open from top, left\n\t'right-end': { originX: 0, originY: 1 }, // open from bottom, left\n\tbottom: { originX: 0.5, originY: 0 }, // open from top, center\n\t'bottom-start': { originX: 0, originY: 0 }, // open from top, left\n\t'bottom-end': { originX: 1, originY: 0 }, // open from top, right\n\tleft: { originX: 1, originY: 0.5 }, // open from middle, right\n\t'left-start': { originX: 1, originY: 0 }, // open from top, right\n\t'left-end': { originX: 1, originY: 1 }, // open from bottom, right\n};\n\n/**\n * Given the floating-ui `placement`, compute the framer-motion props for the\n * popover's entry animation.\n *\n * @param placement A placement string from floating ui\n * @return The object containing the motion props\n */\nexport const placementToMotionAnimationProps = (\n\tplacement: NonNullable< PopoverProps[ 'placement' ] >\n): MotionProps => {\n\tconst translateProp =\n\t\tplacement.startsWith( 'top' ) || placement.startsWith( 'bottom' )\n\t\t\t? 'translateY'\n\t\t\t: 'translateX';\n\tconst translateDirection =\n\t\tplacement.startsWith( 'top' ) || placement.startsWith( 'left' )\n\t\t\t? 1\n\t\t\t: -1;\n\n\treturn {\n\t\tstyle: PLACEMENT_TO_ANIMATION_ORIGIN[ placement ],\n\t\tinitial: {\n\t\t\topacity: 0,\n\t\t\tscale: 0,\n\t\t\t[ translateProp ]: `${ 2 * translateDirection }em`,\n\t\t},\n\t\tanimate: { opacity: 1, scale: 1, [ translateProp ]: 0 },\n\t\ttransition: { duration: 0.1, ease: [ 0, 0, 0.2, 1 ] },\n\t};\n};\n\n/**\n * Returns the offset of a document's frame element.\n *\n * @param document The iframe's owner document.\n *\n * @return The offset of the document's frame element, or undefined if the\n * document has no frame element.\n */\nexport const getFrameOffset = (\n\tdocument?: Document\n): { x: number; y: number } | undefined => {\n\tconst frameElement = document?.defaultView?.frameElement;\n\tif ( ! frameElement ) {\n\t\treturn;\n\t}\n\tconst iframeRect = frameElement.getBoundingClientRect();\n\treturn { x: iframeRect.left, y: iframeRect.top };\n};\n\nexport const getReferenceOwnerDocument = ( {\n\tanchorRef,\n\tanchorRect,\n\tgetAnchorRect,\n\tfallbackReferenceElement,\n\tfallbackDocument,\n}: Pick< PopoverProps, 'anchorRef' | 'anchorRect' | 'getAnchorRect' > & {\n\tfallbackReferenceElement: Element | null;\n\tfallbackDocument: Document;\n} ): Document => {\n\t// In floating-ui's terms:\n\t// - \"reference\" refers to the popover's anchor element.\n\t// - \"floating\" refers the floating popover's element.\n\t// A floating element can also be positioned relative to a virtual element,\n\t// instead of a real one. A virtual element is represented by an object\n\t// with the `getBoundingClientRect()` function (like real elements).\n\t// See https://floating-ui.com/docs/virtual-elements for more info.\n\tlet resultingReferenceOwnerDoc;\n\tif ( ( anchorRef as PopoverAnchorRefTopBottom | undefined )?.top ) {\n\t\tresultingReferenceOwnerDoc = ( anchorRef as PopoverAnchorRefTopBottom )\n\t\t\t?.top.ownerDocument;\n\t} else if ( ( anchorRef as Range | undefined )?.startContainer ) {\n\t\tresultingReferenceOwnerDoc = ( anchorRef as Range ).startContainer\n\t\t\t.ownerDocument;\n\t} else if (\n\t\t( anchorRef as PopoverAnchorRefReference | undefined )?.current\n\t) {\n\t\tresultingReferenceOwnerDoc = (\n\t\t\t( anchorRef as PopoverAnchorRefReference ).current as Element\n\t\t ).ownerDocument;\n\t} else if ( anchorRef as Element | undefined ) {\n\t\t// This one should be deprecated.\n\t\tresultingReferenceOwnerDoc = ( anchorRef as Element ).ownerDocument;\n\t} else if ( anchorRect && anchorRect?.ownerDocument ) {\n\t\tresultingReferenceOwnerDoc = anchorRect.ownerDocument;\n\t} else if ( getAnchorRect ) {\n\t\tresultingReferenceOwnerDoc = getAnchorRect(\n\t\t\tfallbackReferenceElement\n\t\t)?.ownerDocument;\n\t}\n\n\treturn resultingReferenceOwnerDoc ?? fallbackDocument;\n};\n\nexport const getReferenceElement = ( {\n\tanchorRef,\n\tanchorRect,\n\tgetAnchorRect,\n\tfallbackReferenceElement,\n}: Pick< PopoverProps, 'anchorRef' | 'anchorRect' | 'getAnchorRect' > & {\n\tfallbackReferenceElement: Element | null;\n} ): ReferenceType | null => {\n\tlet referenceElement = null;\n\n\tif ( ( anchorRef as PopoverAnchorRefTopBottom | undefined )?.top ) {\n\t\t// Create a virtual element for the ref. The expectation is that\n\t\t// if anchorRef.top is defined, then anchorRef.bottom is defined too.\n\t\t// Seems to be used by the block toolbar, when multiple blocks are selected\n\t\t// (top and bottom blocks are used to calculate the resulting rect).\n\t\treferenceElement = {\n\t\t\tgetBoundingClientRect() {\n\t\t\t\tconst topRect = (\n\t\t\t\t\tanchorRef as PopoverAnchorRefTopBottom\n\t\t\t\t ).top.getBoundingClientRect();\n\t\t\t\tconst bottomRect = (\n\t\t\t\t\tanchorRef as PopoverAnchorRefTopBottom\n\t\t\t\t ).bottom.getBoundingClientRect();\n\t\t\t\treturn new window.DOMRect(\n\t\t\t\t\ttopRect.x,\n\t\t\t\t\ttopRect.y,\n\t\t\t\t\ttopRect.width,\n\t\t\t\t\tbottomRect.bottom - topRect.top\n\t\t\t\t);\n\t\t\t},\n\t\t};\n\t} else if (\n\t\t( anchorRef as PopoverAnchorRefReference | undefined )?.current\n\t) {\n\t\t// Standard React ref.\n\t\treferenceElement = ( anchorRef as PopoverAnchorRefReference ).current;\n\t} else if ( anchorRef as Element | undefined ) {\n\t\t// If `anchorRef` holds directly the element's value (no `current` key)\n\t\t// This is a weird scenario and should be deprecated.\n\t\treferenceElement = anchorRef as Element;\n\t} else if ( anchorRect ) {\n\t\t// Create a virtual element for the ref.\n\t\treferenceElement = {\n\t\t\tgetBoundingClientRect() {\n\t\t\t\treturn anchorRect;\n\t\t\t},\n\t\t};\n\t} else if ( getAnchorRect ) {\n\t\t// Create a virtual element for the ref.\n\t\treferenceElement = {\n\t\t\tgetBoundingClientRect() {\n\t\t\t\tconst rect = getAnchorRect( fallbackReferenceElement );\n\t\t\t\treturn new window.DOMRect(\n\t\t\t\t\trect.x ?? rect.left,\n\t\t\t\t\trect.y ?? rect.top,\n\t\t\t\t\trect.width ?? rect.right - rect.left,\n\t\t\t\t\trect.height ?? rect.bottom - rect.top\n\t\t\t\t);\n\t\t\t},\n\t\t};\n\t} else if ( fallbackReferenceElement ) {\n\t\t// If no explicit ref is passed via props, fall back to\n\t\t// anchoring to the popover's parent node.\n\t\treferenceElement = fallbackReferenceElement.parentElement;\n\t}\n\n\t// Convert any `undefined` value to `null`.\n\treturn referenceElement ?? null;\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/components/src/popover/utils.ts"],"names":["positionToPlacement","position","x","y","z","split","includes","suffix","PLACEMENT_TO_ANIMATION_ORIGIN","top","originX","originY","right","bottom","left","placementToMotionAnimationProps","placement","translateProp","startsWith","translateDirection","style","initial","opacity","scale","animate","transition","duration","ease","getFrameOffset","document","frameElement","defaultView","iframeRect","getBoundingClientRect","getReferenceOwnerDocument","anchor","anchorRef","anchorRect","getAnchorRect","fallbackReferenceElement","fallbackDocument","resultingReferenceOwnerDoc","ownerDocument","startContainer","current","getReferenceElement","referenceElement","topRect","bottomRect","window","DOMRect","width","rect","height","parentElement"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\n// eslint-disable-next-line no-restricted-imports\nimport type { MotionProps } from 'framer-motion';\nimport type { ReferenceType } from '@floating-ui/react-dom';\n\n/**\n * Internal dependencies\n */\nimport type {\n\tPopoverProps,\n\tPopoverAnchorRefReference,\n\tPopoverAnchorRefTopBottom,\n} from './types';\n\n/**\n * Converts the `Popover`'s legacy \"position\" prop to the new \"placement\" prop\n * (used by `floating-ui`).\n *\n * @param position The legacy position\n * @return The corresponding placement\n */\nexport const positionToPlacement = (\n\tposition: NonNullable< PopoverProps[ 'position' ] >\n): NonNullable< PopoverProps[ 'placement' ] > => {\n\tconst [ x, y, z ] = position.split( ' ' );\n\n\tif ( [ 'top', 'bottom' ].includes( x ) ) {\n\t\tlet suffix = '';\n\t\tif ( ( !! z && z === 'left' ) || y === 'right' ) {\n\t\t\tsuffix = '-start';\n\t\t} else if ( ( !! z && z === 'right' ) || y === 'left' ) {\n\t\t\tsuffix = '-end';\n\t\t}\n\n\t\treturn ( x + suffix ) as NonNullable< PopoverProps[ 'placement' ] >;\n\t}\n\n\treturn y as NonNullable< PopoverProps[ 'placement' ] >;\n};\n\n/**\n * @typedef AnimationOrigin\n * @type {Object}\n * @property {number} originX A number between 0 and 1 (in CSS logical properties jargon, 0 is \"start\", 0.5 is \"center\", and 1 is \"end\")\n * @property {number} originY A number between 0 and 1 (0 is top, 0.5 is center, and 1 is bottom)\n */\n\nconst PLACEMENT_TO_ANIMATION_ORIGIN: Record<\n\tNonNullable< PopoverProps[ 'placement' ] >,\n\t{ originX: number; originY: number }\n> = {\n\ttop: { originX: 0.5, originY: 1 }, // open from bottom, center\n\t'top-start': { originX: 0, originY: 1 }, // open from bottom, left\n\t'top-end': { originX: 1, originY: 1 }, // open from bottom, right\n\tright: { originX: 0, originY: 0.5 }, // open from middle, left\n\t'right-start': { originX: 0, originY: 0 }, // open from top, left\n\t'right-end': { originX: 0, originY: 1 }, // open from bottom, left\n\tbottom: { originX: 0.5, originY: 0 }, // open from top, center\n\t'bottom-start': { originX: 0, originY: 0 }, // open from top, left\n\t'bottom-end': { originX: 1, originY: 0 }, // open from top, right\n\tleft: { originX: 1, originY: 0.5 }, // open from middle, right\n\t'left-start': { originX: 1, originY: 0 }, // open from top, right\n\t'left-end': { originX: 1, originY: 1 }, // open from bottom, right\n};\n\n/**\n * Given the floating-ui `placement`, compute the framer-motion props for the\n * popover's entry animation.\n *\n * @param placement A placement string from floating ui\n * @return The object containing the motion props\n */\nexport const placementToMotionAnimationProps = (\n\tplacement: NonNullable< PopoverProps[ 'placement' ] >\n): MotionProps => {\n\tconst translateProp =\n\t\tplacement.startsWith( 'top' ) || placement.startsWith( 'bottom' )\n\t\t\t? 'translateY'\n\t\t\t: 'translateX';\n\tconst translateDirection =\n\t\tplacement.startsWith( 'top' ) || placement.startsWith( 'left' )\n\t\t\t? 1\n\t\t\t: -1;\n\n\treturn {\n\t\tstyle: PLACEMENT_TO_ANIMATION_ORIGIN[ placement ],\n\t\tinitial: {\n\t\t\topacity: 0,\n\t\t\tscale: 0,\n\t\t\t[ translateProp ]: `${ 2 * translateDirection }em`,\n\t\t},\n\t\tanimate: { opacity: 1, scale: 1, [ translateProp ]: 0 },\n\t\ttransition: { duration: 0.1, ease: [ 0, 0, 0.2, 1 ] },\n\t};\n};\n\n/**\n * Returns the offset of a document's frame element.\n *\n * @param document The iframe's owner document.\n *\n * @return The offset of the document's frame element, or undefined if the\n * document has no frame element.\n */\nexport const getFrameOffset = (\n\tdocument?: Document\n): { x: number; y: number } | undefined => {\n\tconst frameElement = document?.defaultView?.frameElement;\n\tif ( ! frameElement ) {\n\t\treturn;\n\t}\n\tconst iframeRect = frameElement.getBoundingClientRect();\n\treturn { x: iframeRect.left, y: iframeRect.top };\n};\n\nexport const getReferenceOwnerDocument = ( {\n\tanchor,\n\tanchorRef,\n\tanchorRect,\n\tgetAnchorRect,\n\tfallbackReferenceElement,\n\tfallbackDocument,\n}: Pick<\n\tPopoverProps,\n\t'anchorRef' | 'anchorRect' | 'getAnchorRect' | 'anchor'\n> & {\n\tfallbackReferenceElement: Element | null;\n\tfallbackDocument: Document;\n} ): Document => {\n\t// In floating-ui's terms:\n\t// - \"reference\" refers to the popover's anchor element.\n\t// - \"floating\" refers the floating popover's element.\n\t// A floating element can also be positioned relative to a virtual element,\n\t// instead of a real one. A virtual element is represented by an object\n\t// with the `getBoundingClientRect()` function (like real elements).\n\t// See https://floating-ui.com/docs/virtual-elements for more info.\n\tlet resultingReferenceOwnerDoc;\n\tif ( anchor ) {\n\t\tresultingReferenceOwnerDoc = anchor.ownerDocument;\n\t} else if ( ( anchorRef as PopoverAnchorRefTopBottom | undefined )?.top ) {\n\t\tresultingReferenceOwnerDoc = ( anchorRef as PopoverAnchorRefTopBottom )\n\t\t\t?.top.ownerDocument;\n\t} else if ( ( anchorRef as Range | undefined )?.startContainer ) {\n\t\tresultingReferenceOwnerDoc = ( anchorRef as Range ).startContainer\n\t\t\t.ownerDocument;\n\t} else if (\n\t\t( anchorRef as PopoverAnchorRefReference | undefined )?.current\n\t) {\n\t\tresultingReferenceOwnerDoc = (\n\t\t\t( anchorRef as PopoverAnchorRefReference ).current as Element\n\t\t ).ownerDocument;\n\t} else if ( anchorRef as Element | undefined ) {\n\t\t// This one should be deprecated.\n\t\tresultingReferenceOwnerDoc = ( anchorRef as Element ).ownerDocument;\n\t} else if ( anchorRect && anchorRect?.ownerDocument ) {\n\t\tresultingReferenceOwnerDoc = anchorRect.ownerDocument;\n\t} else if ( getAnchorRect ) {\n\t\tresultingReferenceOwnerDoc = getAnchorRect(\n\t\t\tfallbackReferenceElement\n\t\t)?.ownerDocument;\n\t}\n\n\treturn resultingReferenceOwnerDoc ?? fallbackDocument;\n};\n\nexport const getReferenceElement = ( {\n\tanchor,\n\tanchorRef,\n\tanchorRect,\n\tgetAnchorRect,\n\tfallbackReferenceElement,\n}: Pick<\n\tPopoverProps,\n\t'anchorRef' | 'anchorRect' | 'getAnchorRect' | 'anchor'\n> & {\n\tfallbackReferenceElement: Element | null;\n} ): ReferenceType | null => {\n\tlet referenceElement = null;\n\n\tif ( anchor ) {\n\t\treferenceElement = anchor;\n\t} else if ( ( anchorRef as PopoverAnchorRefTopBottom | undefined )?.top ) {\n\t\t// Create a virtual element for the ref. The expectation is that\n\t\t// if anchorRef.top is defined, then anchorRef.bottom is defined too.\n\t\t// Seems to be used by the block toolbar, when multiple blocks are selected\n\t\t// (top and bottom blocks are used to calculate the resulting rect).\n\t\treferenceElement = {\n\t\t\tgetBoundingClientRect() {\n\t\t\t\tconst topRect = (\n\t\t\t\t\tanchorRef as PopoverAnchorRefTopBottom\n\t\t\t\t ).top.getBoundingClientRect();\n\t\t\t\tconst bottomRect = (\n\t\t\t\t\tanchorRef as PopoverAnchorRefTopBottom\n\t\t\t\t ).bottom.getBoundingClientRect();\n\t\t\t\treturn new window.DOMRect(\n\t\t\t\t\ttopRect.x,\n\t\t\t\t\ttopRect.y,\n\t\t\t\t\ttopRect.width,\n\t\t\t\t\tbottomRect.bottom - topRect.top\n\t\t\t\t);\n\t\t\t},\n\t\t};\n\t} else if (\n\t\t( anchorRef as PopoverAnchorRefReference | undefined )?.current\n\t) {\n\t\t// Standard React ref.\n\t\treferenceElement = ( anchorRef as PopoverAnchorRefReference ).current;\n\t} else if ( anchorRef as Element | undefined ) {\n\t\t// If `anchorRef` holds directly the element's value (no `current` key)\n\t\t// This is a weird scenario and should be deprecated.\n\t\treferenceElement = anchorRef as Element;\n\t} else if ( anchorRect ) {\n\t\t// Create a virtual element for the ref.\n\t\treferenceElement = {\n\t\t\tgetBoundingClientRect() {\n\t\t\t\treturn anchorRect;\n\t\t\t},\n\t\t};\n\t} else if ( getAnchorRect ) {\n\t\t// Create a virtual element for the ref.\n\t\treferenceElement = {\n\t\t\tgetBoundingClientRect() {\n\t\t\t\tconst rect = getAnchorRect( fallbackReferenceElement );\n\t\t\t\treturn new window.DOMRect(\n\t\t\t\t\trect.x ?? rect.left,\n\t\t\t\t\trect.y ?? rect.top,\n\t\t\t\t\trect.width ?? rect.right - rect.left,\n\t\t\t\t\trect.height ?? rect.bottom - rect.top\n\t\t\t\t);\n\t\t\t},\n\t\t};\n\t} else if ( fallbackReferenceElement ) {\n\t\t// If no explicit ref is passed via props, fall back to\n\t\t// anchoring to the popover's parent node.\n\t\treferenceElement = fallbackReferenceElement.parentElement;\n\t}\n\n\t// Convert any `undefined` value to `null`.\n\treturn referenceElement ?? null;\n};\n"]}
|
|
@@ -4,7 +4,7 @@ import { createElement } from "@wordpress/element";
|
|
|
4
4
|
/**
|
|
5
5
|
* WordPress dependencies
|
|
6
6
|
*/
|
|
7
|
-
import { Children, cloneElement, concatChildren, useEffect, useState
|
|
7
|
+
import { Children, cloneElement, concatChildren, useEffect, useState } from '@wordpress/element';
|
|
8
8
|
import { useDebounce, useMergeRefs } from '@wordpress/compose';
|
|
9
9
|
/**
|
|
10
10
|
* Internal dependencies
|
|
@@ -54,7 +54,7 @@ const getRegularElement = _ref2 => {
|
|
|
54
54
|
|
|
55
55
|
const addPopoverToGrandchildren = _ref3 => {
|
|
56
56
|
let {
|
|
57
|
-
|
|
57
|
+
anchor,
|
|
58
58
|
grandchildren,
|
|
59
59
|
isOver,
|
|
60
60
|
offset,
|
|
@@ -69,7 +69,7 @@ const addPopoverToGrandchildren = _ref3 => {
|
|
|
69
69
|
"aria-hidden": "true",
|
|
70
70
|
animate: false,
|
|
71
71
|
offset: offset,
|
|
72
|
-
|
|
72
|
+
anchor: anchor,
|
|
73
73
|
shift: true
|
|
74
74
|
}, text, createElement(Shortcut, {
|
|
75
75
|
className: "components-tooltip__shortcut",
|
|
@@ -112,13 +112,15 @@ function Tooltip(props) {
|
|
|
112
112
|
|
|
113
113
|
const [isMouseDown, setIsMouseDown] = useState(false);
|
|
114
114
|
const [isOver, setIsOver] = useState(false);
|
|
115
|
-
const delayedSetIsOver = useDebounce(setIsOver, delay); //
|
|
115
|
+
const delayedSetIsOver = useDebounce(setIsOver, delay); // Using internal state (instead of a ref) for the popover anchor to make sure
|
|
116
|
+
// that the component re-renders when the anchor updates.
|
|
117
|
+
|
|
118
|
+
const [popoverAnchor, setPopoverAnchor] = useState(null); // Create a reference to the Tooltip's child, to be passed to the Popover
|
|
116
119
|
// so that the Tooltip can be correctly positioned. Also, merge with the
|
|
117
120
|
// existing ref for the first child, so that its ref is preserved.
|
|
118
121
|
|
|
119
|
-
const childRef = useRef(null);
|
|
120
122
|
const existingChildRef = (_Children$toArray$ = Children.toArray(children)[0]) === null || _Children$toArray$ === void 0 ? void 0 : _Children$toArray$.ref;
|
|
121
|
-
const mergedChildRefs = useMergeRefs([
|
|
123
|
+
const mergedChildRefs = useMergeRefs([setPopoverAnchor, existingChildRef]);
|
|
122
124
|
|
|
123
125
|
const createMouseDown = event => {
|
|
124
126
|
// In firefox, the mouse down event is also fired when the select
|
|
@@ -239,7 +241,7 @@ function Tooltip(props) {
|
|
|
239
241
|
} = child.props;
|
|
240
242
|
const getElementWithPopover = disabled ? getDisabledElement : getRegularElement;
|
|
241
243
|
const popoverData = {
|
|
242
|
-
|
|
244
|
+
anchor: popoverAnchor,
|
|
243
245
|
isOver,
|
|
244
246
|
offset: 4,
|
|
245
247
|
position,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/components/src/tooltip/index.js"],"names":["Children","cloneElement","concatChildren","useEffect","useState","useRef","useDebounce","useMergeRefs","Popover","Shortcut","TOOLTIP_DELAY","eventCatcher","getDisabledElement","eventHandlers","child","childrenWithPopover","mergedRefs","children","ref","getRegularElement","addPopoverToGrandchildren","anchorRef","grandchildren","isOver","offset","position","shortcut","text","emitToChild","eventName","event","count","only","props","disabled","Tooltip","delay","isMouseDown","setIsMouseDown","setIsOver","delayedSetIsOver","childRef","existingChildRef","toArray","mergedChildRefs","createMouseDown","target","tagName","document","addEventListener","cancelIsMouseDown","createMouseUp","removeEventListener","createMouseEvent","type","createToggleIsOver","isDelayed","currentTarget","cancel","_isOver","includes","clearOnUnmount","process","env","NODE_ENV","console","error","onMouseEnter","onMouseLeave","onClick","onFocus","onBlur","onMouseDown","getElementWithPopover","popoverData"],"mappings":"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","sourcesContent":["// @ts-nocheck\n\n/**\n * WordPress dependencies\n */\nimport {\n\tChildren,\n\tcloneElement,\n\tconcatChildren,\n\tuseEffect,\n\tuseState,\n\tuseRef,\n} from '@wordpress/element';\nimport { useDebounce, useMergeRefs } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport Popover from '../popover';\nimport Shortcut from '../shortcut';\n\n/**\n * Time over children to wait before showing tooltip\n *\n * @type {number}\n */\nexport const TOOLTIP_DELAY = 700;\n\nconst eventCatcher = <div className=\"event-catcher\" />;\n\nconst getDisabledElement = ( {\n\teventHandlers,\n\tchild,\n\tchildrenWithPopover,\n\tmergedRefs,\n} ) => {\n\treturn cloneElement(\n\t\t<span className=\"disabled-element-wrapper\">\n\t\t\t{ cloneElement( eventCatcher, eventHandlers ) }\n\t\t\t{ cloneElement( child, {\n\t\t\t\tchildren: childrenWithPopover,\n\t\t\t\tref: mergedRefs,\n\t\t\t} ) }\n\t\t</span>,\n\t\t{ ...eventHandlers }\n\t);\n};\n\nconst getRegularElement = ( {\n\tchild,\n\teventHandlers,\n\tchildrenWithPopover,\n\tmergedRefs,\n} ) => {\n\treturn cloneElement( child, {\n\t\t...eventHandlers,\n\t\tchildren: childrenWithPopover,\n\t\tref: mergedRefs,\n\t} );\n};\n\nconst addPopoverToGrandchildren = ( {\n\tanchorRef,\n\tgrandchildren,\n\tisOver,\n\toffset,\n\tposition,\n\tshortcut,\n\ttext,\n} ) =>\n\tconcatChildren(\n\t\tgrandchildren,\n\t\tisOver && (\n\t\t\t<Popover\n\t\t\t\tfocusOnMount={ false }\n\t\t\t\tposition={ position }\n\t\t\t\tclassName=\"components-tooltip\"\n\t\t\t\taria-hidden=\"true\"\n\t\t\t\tanimate={ false }\n\t\t\t\toffset={ offset }\n\t\t\t\tanchorRef={ anchorRef }\n\t\t\t\tshift\n\t\t\t>\n\t\t\t\t{ text }\n\t\t\t\t<Shortcut\n\t\t\t\t\tclassName=\"components-tooltip__shortcut\"\n\t\t\t\t\tshortcut={ shortcut }\n\t\t\t\t/>\n\t\t\t</Popover>\n\t\t)\n\t);\n\nconst emitToChild = ( children, eventName, event ) => {\n\tif ( Children.count( children ) !== 1 ) {\n\t\treturn;\n\t}\n\n\tconst child = Children.only( children );\n\n\t// If the underlying element is disabled, do not emit the event.\n\tif ( child.props.disabled ) {\n\t\treturn;\n\t}\n\n\tif ( typeof child.props[ eventName ] === 'function' ) {\n\t\tchild.props[ eventName ]( event );\n\t}\n};\n\nfunction Tooltip( props ) {\n\tconst {\n\t\tchildren,\n\t\tposition = 'bottom middle',\n\t\ttext,\n\t\tshortcut,\n\t\tdelay = TOOLTIP_DELAY,\n\t} = props;\n\t/**\n\t * Whether a mouse is currently pressed, used in determining whether\n\t * to handle a focus event as displaying the tooltip immediately.\n\t *\n\t * @type {boolean}\n\t */\n\tconst [ isMouseDown, setIsMouseDown ] = useState( false );\n\tconst [ isOver, setIsOver ] = useState( false );\n\tconst delayedSetIsOver = useDebounce( setIsOver, delay );\n\n\t// Create a reference to the Tooltip's child, to be passed to the Popover\n\t// so that the Tooltip can be correctly positioned. Also, merge with the\n\t// existing ref for the first child, so that its ref is preserved.\n\tconst childRef = useRef( null );\n\tconst existingChildRef = Children.toArray( children )[ 0 ]?.ref;\n\tconst mergedChildRefs = useMergeRefs( [ childRef, existingChildRef ] );\n\n\tconst createMouseDown = ( event ) => {\n\t\t// In firefox, the mouse down event is also fired when the select\n\t\t// list is chosen.\n\t\t// Cancel further processing because re-rendering of child components\n\t\t// causes onChange to be triggered with the old value.\n\t\t// See https://github.com/WordPress/gutenberg/pull/42483\n\t\tif ( event.target.tagName === 'OPTION' ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Preserve original child callback behavior.\n\t\temitToChild( children, 'onMouseDown', event );\n\n\t\t// On mouse down, the next `mouseup` should revert the value of the\n\t\t// instance property and remove its own event handler. The bind is\n\t\t// made on the document since the `mouseup` might not occur within\n\t\t// the bounds of the element.\n\t\tdocument.addEventListener( 'mouseup', cancelIsMouseDown );\n\t\tsetIsMouseDown( true );\n\t};\n\n\tconst createMouseUp = ( event ) => {\n\t\t// In firefox, the mouse up event is also fired when the select\n\t\t// list is chosen.\n\t\t// Cancel further processing because re-rendering of child components\n\t\t// causes onChange to be triggered with the old value.\n\t\t// See https://github.com/WordPress/gutenberg/pull/42483\n\t\tif ( event.target.tagName === 'OPTION' ) {\n\t\t\treturn;\n\t\t}\n\n\t\temitToChild( children, 'onMouseUp', event );\n\t\tdocument.removeEventListener( 'mouseup', cancelIsMouseDown );\n\t\tsetIsMouseDown( false );\n\t};\n\n\tconst createMouseEvent = ( type ) => {\n\t\tif ( type === 'mouseUp' ) return createMouseUp;\n\t\tif ( type === 'mouseDown' ) return createMouseDown;\n\t};\n\n\t/**\n\t * Prebound `isInMouseDown` handler, created as a constant reference to\n\t * assure ability to remove in component unmount.\n\t *\n\t * @type {Function}\n\t */\n\tconst cancelIsMouseDown = createMouseEvent( 'mouseUp' );\n\n\tconst createToggleIsOver = ( eventName, isDelayed ) => {\n\t\treturn ( event ) => {\n\t\t\t// Preserve original child callback behavior.\n\t\t\temitToChild( children, eventName, event );\n\n\t\t\t// Mouse events behave unreliably in React for disabled elements,\n\t\t\t// firing on mouseenter but not mouseleave. Further, the default\n\t\t\t// behavior for disabled elements in some browsers is to ignore\n\t\t\t// mouse events. Don't bother trying to handle them.\n\t\t\t//\n\t\t\t// See: https://github.com/facebook/react/issues/4251\n\t\t\tif ( event.currentTarget.disabled ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// A focus event will occur as a result of a mouse click, but it\n\t\t\t// should be disambiguated between interacting with the button and\n\t\t\t// using an explicit focus shift as a cue to display the tooltip.\n\t\t\tif ( 'focus' === event.type && isMouseDown ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Needed in case unsetting is over while delayed set pending, i.e.\n\t\t\t// quickly blur/mouseleave before delayedSetIsOver is called.\n\t\t\tdelayedSetIsOver.cancel();\n\n\t\t\tconst _isOver = [ 'focus', 'mouseenter' ].includes( event.type );\n\t\t\tif ( _isOver === isOver ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( isDelayed ) {\n\t\t\t\tdelayedSetIsOver( _isOver );\n\t\t\t} else {\n\t\t\t\tsetIsOver( _isOver );\n\t\t\t}\n\t\t};\n\t};\n\tconst clearOnUnmount = () => {\n\t\tdelayedSetIsOver.cancel();\n\t\tdocument.removeEventListener( 'mouseup', cancelIsMouseDown );\n\t};\n\n\tuseEffect( () => clearOnUnmount, [] );\n\n\tif ( Children.count( children ) !== 1 ) {\n\t\tif ( 'development' === process.env.NODE_ENV ) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error(\n\t\t\t\t'Tooltip should be called with only a single child element.'\n\t\t\t);\n\t\t}\n\n\t\treturn children;\n\t}\n\n\tconst eventHandlers = {\n\t\tonMouseEnter: createToggleIsOver( 'onMouseEnter', true ),\n\t\tonMouseLeave: createToggleIsOver( 'onMouseLeave' ),\n\t\tonClick: createToggleIsOver( 'onClick' ),\n\t\tonFocus: createToggleIsOver( 'onFocus' ),\n\t\tonBlur: createToggleIsOver( 'onBlur' ),\n\t\tonMouseDown: createMouseEvent( 'mouseDown' ),\n\t};\n\n\tconst child = Children.only( children );\n\tconst { children: grandchildren, disabled } = child.props;\n\tconst getElementWithPopover = disabled\n\t\t? getDisabledElement\n\t\t: getRegularElement;\n\n\tconst popoverData = {\n\t\tanchorRef: childRef,\n\t\tisOver,\n\t\toffset: 4,\n\t\tposition,\n\t\tshortcut,\n\t\ttext,\n\t};\n\tconst childrenWithPopover = addPopoverToGrandchildren( {\n\t\tgrandchildren,\n\t\t...popoverData,\n\t} );\n\n\treturn getElementWithPopover( {\n\t\tchild,\n\t\teventHandlers,\n\t\tchildrenWithPopover,\n\t\tmergedRefs: mergedChildRefs,\n\t} );\n}\n\nexport default Tooltip;\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/components/src/tooltip/index.js"],"names":["Children","cloneElement","concatChildren","useEffect","useState","useDebounce","useMergeRefs","Popover","Shortcut","TOOLTIP_DELAY","eventCatcher","getDisabledElement","eventHandlers","child","childrenWithPopover","mergedRefs","children","ref","getRegularElement","addPopoverToGrandchildren","anchor","grandchildren","isOver","offset","position","shortcut","text","emitToChild","eventName","event","count","only","props","disabled","Tooltip","delay","isMouseDown","setIsMouseDown","setIsOver","delayedSetIsOver","popoverAnchor","setPopoverAnchor","existingChildRef","toArray","mergedChildRefs","createMouseDown","target","tagName","document","addEventListener","cancelIsMouseDown","createMouseUp","removeEventListener","createMouseEvent","type","createToggleIsOver","isDelayed","currentTarget","cancel","_isOver","includes","clearOnUnmount","process","env","NODE_ENV","console","error","onMouseEnter","onMouseLeave","onClick","onFocus","onBlur","onMouseDown","getElementWithPopover","popoverData"],"mappings":"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","sourcesContent":["// @ts-nocheck\n\n/**\n * WordPress dependencies\n */\nimport {\n\tChildren,\n\tcloneElement,\n\tconcatChildren,\n\tuseEffect,\n\tuseState,\n} from '@wordpress/element';\nimport { useDebounce, useMergeRefs } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport Popover from '../popover';\nimport Shortcut from '../shortcut';\n\n/**\n * Time over children to wait before showing tooltip\n *\n * @type {number}\n */\nexport const TOOLTIP_DELAY = 700;\n\nconst eventCatcher = <div className=\"event-catcher\" />;\n\nconst getDisabledElement = ( {\n\teventHandlers,\n\tchild,\n\tchildrenWithPopover,\n\tmergedRefs,\n} ) => {\n\treturn cloneElement(\n\t\t<span className=\"disabled-element-wrapper\">\n\t\t\t{ cloneElement( eventCatcher, eventHandlers ) }\n\t\t\t{ cloneElement( child, {\n\t\t\t\tchildren: childrenWithPopover,\n\t\t\t\tref: mergedRefs,\n\t\t\t} ) }\n\t\t</span>,\n\t\t{ ...eventHandlers }\n\t);\n};\n\nconst getRegularElement = ( {\n\tchild,\n\teventHandlers,\n\tchildrenWithPopover,\n\tmergedRefs,\n} ) => {\n\treturn cloneElement( child, {\n\t\t...eventHandlers,\n\t\tchildren: childrenWithPopover,\n\t\tref: mergedRefs,\n\t} );\n};\n\nconst addPopoverToGrandchildren = ( {\n\tanchor,\n\tgrandchildren,\n\tisOver,\n\toffset,\n\tposition,\n\tshortcut,\n\ttext,\n} ) =>\n\tconcatChildren(\n\t\tgrandchildren,\n\t\tisOver && (\n\t\t\t<Popover\n\t\t\t\tfocusOnMount={ false }\n\t\t\t\tposition={ position }\n\t\t\t\tclassName=\"components-tooltip\"\n\t\t\t\taria-hidden=\"true\"\n\t\t\t\tanimate={ false }\n\t\t\t\toffset={ offset }\n\t\t\t\tanchor={ anchor }\n\t\t\t\tshift\n\t\t\t>\n\t\t\t\t{ text }\n\t\t\t\t<Shortcut\n\t\t\t\t\tclassName=\"components-tooltip__shortcut\"\n\t\t\t\t\tshortcut={ shortcut }\n\t\t\t\t/>\n\t\t\t</Popover>\n\t\t)\n\t);\n\nconst emitToChild = ( children, eventName, event ) => {\n\tif ( Children.count( children ) !== 1 ) {\n\t\treturn;\n\t}\n\n\tconst child = Children.only( children );\n\n\t// If the underlying element is disabled, do not emit the event.\n\tif ( child.props.disabled ) {\n\t\treturn;\n\t}\n\n\tif ( typeof child.props[ eventName ] === 'function' ) {\n\t\tchild.props[ eventName ]( event );\n\t}\n};\n\nfunction Tooltip( props ) {\n\tconst {\n\t\tchildren,\n\t\tposition = 'bottom middle',\n\t\ttext,\n\t\tshortcut,\n\t\tdelay = TOOLTIP_DELAY,\n\t} = props;\n\t/**\n\t * Whether a mouse is currently pressed, used in determining whether\n\t * to handle a focus event as displaying the tooltip immediately.\n\t *\n\t * @type {boolean}\n\t */\n\tconst [ isMouseDown, setIsMouseDown ] = useState( false );\n\tconst [ isOver, setIsOver ] = useState( false );\n\tconst delayedSetIsOver = useDebounce( setIsOver, delay );\n\t// Using internal state (instead of a ref) for the popover anchor to make sure\n\t// that the component re-renders when the anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\n\t// Create a reference to the Tooltip's child, to be passed to the Popover\n\t// so that the Tooltip can be correctly positioned. Also, merge with the\n\t// existing ref for the first child, so that its ref is preserved.\n\tconst existingChildRef = Children.toArray( children )[ 0 ]?.ref;\n\tconst mergedChildRefs = useMergeRefs( [\n\t\tsetPopoverAnchor,\n\t\texistingChildRef,\n\t] );\n\n\tconst createMouseDown = ( event ) => {\n\t\t// In firefox, the mouse down event is also fired when the select\n\t\t// list is chosen.\n\t\t// Cancel further processing because re-rendering of child components\n\t\t// causes onChange to be triggered with the old value.\n\t\t// See https://github.com/WordPress/gutenberg/pull/42483\n\t\tif ( event.target.tagName === 'OPTION' ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Preserve original child callback behavior.\n\t\temitToChild( children, 'onMouseDown', event );\n\n\t\t// On mouse down, the next `mouseup` should revert the value of the\n\t\t// instance property and remove its own event handler. The bind is\n\t\t// made on the document since the `mouseup` might not occur within\n\t\t// the bounds of the element.\n\t\tdocument.addEventListener( 'mouseup', cancelIsMouseDown );\n\t\tsetIsMouseDown( true );\n\t};\n\n\tconst createMouseUp = ( event ) => {\n\t\t// In firefox, the mouse up event is also fired when the select\n\t\t// list is chosen.\n\t\t// Cancel further processing because re-rendering of child components\n\t\t// causes onChange to be triggered with the old value.\n\t\t// See https://github.com/WordPress/gutenberg/pull/42483\n\t\tif ( event.target.tagName === 'OPTION' ) {\n\t\t\treturn;\n\t\t}\n\n\t\temitToChild( children, 'onMouseUp', event );\n\t\tdocument.removeEventListener( 'mouseup', cancelIsMouseDown );\n\t\tsetIsMouseDown( false );\n\t};\n\n\tconst createMouseEvent = ( type ) => {\n\t\tif ( type === 'mouseUp' ) return createMouseUp;\n\t\tif ( type === 'mouseDown' ) return createMouseDown;\n\t};\n\n\t/**\n\t * Prebound `isInMouseDown` handler, created as a constant reference to\n\t * assure ability to remove in component unmount.\n\t *\n\t * @type {Function}\n\t */\n\tconst cancelIsMouseDown = createMouseEvent( 'mouseUp' );\n\n\tconst createToggleIsOver = ( eventName, isDelayed ) => {\n\t\treturn ( event ) => {\n\t\t\t// Preserve original child callback behavior.\n\t\t\temitToChild( children, eventName, event );\n\n\t\t\t// Mouse events behave unreliably in React for disabled elements,\n\t\t\t// firing on mouseenter but not mouseleave. Further, the default\n\t\t\t// behavior for disabled elements in some browsers is to ignore\n\t\t\t// mouse events. Don't bother trying to handle them.\n\t\t\t//\n\t\t\t// See: https://github.com/facebook/react/issues/4251\n\t\t\tif ( event.currentTarget.disabled ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// A focus event will occur as a result of a mouse click, but it\n\t\t\t// should be disambiguated between interacting with the button and\n\t\t\t// using an explicit focus shift as a cue to display the tooltip.\n\t\t\tif ( 'focus' === event.type && isMouseDown ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Needed in case unsetting is over while delayed set pending, i.e.\n\t\t\t// quickly blur/mouseleave before delayedSetIsOver is called.\n\t\t\tdelayedSetIsOver.cancel();\n\n\t\t\tconst _isOver = [ 'focus', 'mouseenter' ].includes( event.type );\n\t\t\tif ( _isOver === isOver ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( isDelayed ) {\n\t\t\t\tdelayedSetIsOver( _isOver );\n\t\t\t} else {\n\t\t\t\tsetIsOver( _isOver );\n\t\t\t}\n\t\t};\n\t};\n\tconst clearOnUnmount = () => {\n\t\tdelayedSetIsOver.cancel();\n\t\tdocument.removeEventListener( 'mouseup', cancelIsMouseDown );\n\t};\n\n\tuseEffect( () => clearOnUnmount, [] );\n\n\tif ( Children.count( children ) !== 1 ) {\n\t\tif ( 'development' === process.env.NODE_ENV ) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error(\n\t\t\t\t'Tooltip should be called with only a single child element.'\n\t\t\t);\n\t\t}\n\n\t\treturn children;\n\t}\n\n\tconst eventHandlers = {\n\t\tonMouseEnter: createToggleIsOver( 'onMouseEnter', true ),\n\t\tonMouseLeave: createToggleIsOver( 'onMouseLeave' ),\n\t\tonClick: createToggleIsOver( 'onClick' ),\n\t\tonFocus: createToggleIsOver( 'onFocus' ),\n\t\tonBlur: createToggleIsOver( 'onBlur' ),\n\t\tonMouseDown: createMouseEvent( 'mouseDown' ),\n\t};\n\n\tconst child = Children.only( children );\n\tconst { children: grandchildren, disabled } = child.props;\n\tconst getElementWithPopover = disabled\n\t\t? getDisabledElement\n\t\t: getRegularElement;\n\n\tconst popoverData = {\n\t\tanchor: popoverAnchor,\n\t\tisOver,\n\t\toffset: 4,\n\t\tposition,\n\t\tshortcut,\n\t\ttext,\n\t};\n\tconst childrenWithPopover = addPopoverToGrandchildren( {\n\t\tgrandchildren,\n\t\t...popoverData,\n\t} );\n\n\treturn getElementWithPopover( {\n\t\tchild,\n\t\teventHandlers,\n\t\tchildrenWithPopover,\n\t\tmergedRefs: mergedChildRefs,\n\t} );\n}\n\nexport default Tooltip;\n"]}
|
|
@@ -423,8 +423,9 @@ p + .components-button.is-tertiary {
|
|
|
423
423
|
font-size: 11px;
|
|
424
424
|
}
|
|
425
425
|
.components-button.is-small.has-icon:not(.has-text) {
|
|
426
|
-
padding: 0
|
|
426
|
+
padding: 0;
|
|
427
427
|
width: 24px;
|
|
428
|
+
min-width: 24px;
|
|
428
429
|
}
|
|
429
430
|
.components-button.has-icon {
|
|
430
431
|
padding: 6px;
|
|
@@ -1893,8 +1894,6 @@ body.is-dragging-components-draggable {
|
|
|
1893
1894
|
background-color: rgba(0, 0, 0, 0.35);
|
|
1894
1895
|
z-index: 100000;
|
|
1895
1896
|
display: flex;
|
|
1896
|
-
-webkit-backdrop-filter: blur(8px);
|
|
1897
|
-
backdrop-filter: blur(8px);
|
|
1898
1897
|
animation: edit-post__fade-in-animation 0.2s ease-out 0s;
|
|
1899
1898
|
animation-fill-mode: forwards;
|
|
1900
1899
|
}
|
package/build-style/style.css
CHANGED
|
@@ -423,8 +423,9 @@ p + .components-button.is-tertiary {
|
|
|
423
423
|
font-size: 11px;
|
|
424
424
|
}
|
|
425
425
|
.components-button.is-small.has-icon:not(.has-text) {
|
|
426
|
-
padding: 0
|
|
426
|
+
padding: 0;
|
|
427
427
|
width: 24px;
|
|
428
|
+
min-width: 24px;
|
|
428
429
|
}
|
|
429
430
|
.components-button.has-icon {
|
|
430
431
|
padding: 6px;
|
|
@@ -1896,8 +1897,6 @@ body.is-dragging-components-draggable {
|
|
|
1896
1897
|
background-color: rgba(0, 0, 0, 0.35);
|
|
1897
1898
|
z-index: 100000;
|
|
1898
1899
|
display: flex;
|
|
1899
|
-
-webkit-backdrop-filter: blur(8px);
|
|
1900
|
-
backdrop-filter: blur(8px);
|
|
1901
1900
|
animation: edit-post__fade-in-animation 0.2s ease-out 0s;
|
|
1902
1901
|
animation-fill-mode: forwards;
|
|
1903
1902
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/border-box-control/border-box-control/component.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/border-box-control/border-box-control/component.tsx"],"names":[],"mappings":";AAqBA,OAAO,KAAK,EACX,UAAU,EAEV,MAAM,4BAA4B,CAAC;AA+HpC,QAAA,MAAM,yBAAyB;;;;;;;6CAG9B,CAAC;AAEF,eAAe,yBAAyB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/border-box-control/border-box-control-linked-button/component.tsx"],"names":[],"mappings":";AAeA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/border-box-control/border-box-control-linked-button/component.tsx"],"names":[],"mappings":";AAeA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AA0BlD,QAAA,MAAM,qCAAqC,oHAG1C,CAAC;AACF,eAAe,qCAAqC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/border-box-control/border-box-control-split-controls/component.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/border-box-control/border-box-control-split-controls/component.tsx"],"names":[],"mappings":";AAuHA,QAAA,MAAM,sCAAsC;;;;;;;6CAG3C,CAAC;AACF,eAAe,sCAAsC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/border-box-control/styles.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC,eAAO,MAAM,gBAAgB,2CAAQ,CAAC;AAEtC,eAAO,MAAM,mBAAmB,2CAE/B,CAAC;AAEF,eAAO,MAAM,4BAA4B,
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/border-box-control/styles.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC,eAAO,MAAM,gBAAgB,2CAAQ,CAAC;AAEtC,eAAO,MAAM,mBAAmB,2CAE/B,CAAC;AAEF,eAAO,MAAM,4BAA4B,4FASxC,CAAC;AAiBF,eAAO,MAAM,0BAA0B,2HAmBtC,CAAC;AAEF,eAAO,MAAM,6BAA6B,iDAIzC,CAAC;AAEF,eAAO,MAAM,qBAAqB,2CAGjC,CAAC;AAEF,eAAO,MAAM,kBAAkB,iDAE9B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dropdown/index.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dropdown/index.js"],"names":[],"mappings":"AA8BA,0DA2GC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/popover/index.tsx"],"names":[],"mappings":";AA4DA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,KAAK,EACX,YAAY,EAIZ,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/popover/index.tsx"],"names":[],"mappings":";AA4DA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,KAAK,EACX,YAAY,EAIZ,MAAM,SAAS,CAAC;AAsfjB;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,OAAO,qhCAAmC,CAAC;AAsBxD,eAAe,OAAO,CAAC"}
|