@wordpress/components 29.7.0 → 29.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.stylelintrc.js +1 -1
- package/CHANGELOG.md +37 -0
- package/build/guide/index.js +4 -2
- package/build/guide/index.js.map +1 -1
- package/build/guide/types.js.map +1 -1
- package/build/item-group/styles.js +10 -10
- package/build/item-group/styles.js.map +1 -1
- package/build/popover/index.js +38 -18
- package/build/popover/index.js.map +1 -1
- package/build/popover/types.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control/component.js +1 -1
- package/build/toggle-group-control/toggle-group-control/component.js.map +1 -1
- package/build/unit-control/utils.js +9 -8
- package/build/unit-control/utils.js.map +1 -1
- package/build-module/guide/index.js +4 -2
- package/build-module/guide/index.js.map +1 -1
- package/build-module/guide/types.js.map +1 -1
- package/build-module/item-group/styles.js +10 -10
- package/build-module/item-group/styles.js.map +1 -1
- package/build-module/popover/index.js +37 -17
- package/build-module/popover/index.js.map +1 -1
- package/build-module/popover/types.js.map +1 -1
- package/build-module/toggle-group-control/toggle-group-control/component.js +1 -1
- package/build-module/toggle-group-control/toggle-group-control/component.js.map +1 -1
- package/build-module/unit-control/utils.js +9 -8
- package/build-module/unit-control/utils.js.map +1 -1
- package/build-style/style-rtl.css +17 -12
- package/build-style/style.css +17 -12
- package/build-types/guide/index.d.ts +1 -1
- package/build-types/guide/index.d.ts.map +1 -1
- package/build-types/guide/stories/index.story.d.ts.map +1 -1
- package/build-types/guide/types.d.ts +12 -0
- package/build-types/guide/types.d.ts.map +1 -1
- package/build-types/popover/index.d.ts +18 -2
- package/build-types/popover/index.d.ts.map +1 -1
- package/build-types/popover/stories/e2e/index.story.d.ts +8 -1
- package/build-types/popover/stories/e2e/index.story.d.ts.map +1 -1
- package/build-types/popover/stories/index.story.d.ts +1 -0
- package/build-types/popover/stories/index.story.d.ts.map +1 -1
- package/build-types/popover/test/utils/index.d.ts.map +1 -1
- package/build-types/popover/types.d.ts +9 -0
- package/build-types/popover/types.d.ts.map +1 -1
- package/build-types/unit-control/utils.d.ts.map +1 -1
- package/package.json +20 -20
- package/src/button/style.scss +1 -1
- package/src/color-picker/test/index.tsx +103 -26
- package/src/combobox-control/style.scss +4 -2
- package/src/duotone-picker/style.scss +4 -0
- package/src/form-token-field/style.scss +5 -5
- package/src/guide/README.md +16 -0
- package/src/guide/index.tsx +4 -2
- package/src/guide/stories/index.story.tsx +2 -0
- package/src/guide/types.ts +12 -0
- package/src/item-group/styles.ts +1 -1
- package/src/item-group/test/__snapshots__/index.js.snap +1 -1
- package/src/popover/index.tsx +46 -21
- package/src/popover/stories/index.story.tsx +83 -2
- package/src/popover/test/utils/index.tsx +0 -1
- package/src/popover/types.ts +10 -0
- package/src/toggle-group-control/toggle-group-control/component.tsx +1 -1
- package/src/unit-control/test/utils.ts +36 -0
- package/src/unit-control/utils.ts +8 -11
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_clsx","_interopRequireDefault","require","_reactDom","_framerMotion","_element","_compose","_icons","_deprecated","_primitives","_i18n","_button","_scrollLock","_slotFill","_utils","_context","_overlayMiddlewares","_styleProvider","_jsxRuntime","SLOT_NAME","exports","ArrowTriangle","jsxs","SVG","xmlns","viewBox","className","role","children","jsx","Path","d","vectorEffect","slotNameContext","createContext","undefined","fallbackContainerClassname","getPopoverFallbackContainer","container","document","body","querySelector","createElement","append","UnforwardedPopover","props","forwardedRef","animate","headerTitle","constrainTabbing","onClose","noArrow","position","placement","placementProp","offset","offsetProp","focusOnMount","anchor","expandOnMobile","onFocusOutside","__unstableSlotName","flip","resize","shift","inline","variant","style","contentStyle","__unstableForcePosition","anchorRef","anchorRect","getAnchorRect","isAlternate","contentProps","useContextSystem","computedFlipProp","computedResizeProp","deprecated","since","version","alternative","computedVariant","arrowRef","useRef","fallbackReferenceElement","setFallbackReferenceElement","useState","anchorRefFallback","useCallback","node","isMobileViewport","useViewportMatch","isExpanded","hasArrow","normalizedPlacementFromProps","positionToPlacement","middleware","overlayMiddlewares","offsetMiddleware","flipMiddleware","size","apply","sizeProps","_refs$floating$curren","firstElementChild","refs","floating","current","HTMLElement","Object","assign","maxHeight","availableHeight","overflow","shiftMiddleware","crossAxis","limiter","limitShift","padding","arrow","element","slotName","useContext","slot","useSlot","onDialogClose","type","event","dialogRef","dialogProps","useDialog","__unstableOnClose","x","y","strategy","update","computedPlacement","middlewareData","arrowData","useFloating","whileElementsMounted","referenceParam","floatingParam","updateParam","autoUpdate","layoutShift","animationFrame","arrowCallbackRef","anchorRefTop","top","anchorRefBottom","bottom","anchorRefStartContainer","startContainer","anchorRefCurrent","useLayoutEffect","resultingReferenceElement","getReferenceElement","setReference","mergedFloatingRef","useMergeRefs","setFloating","left","computePopoverPosition","shouldReduceMotion","useReducedMotion","shouldAnimate","animationFinished","setAnimationFinished","motionInlineStyles","otherMotionProps","useMemo","placementToMotionAnimationProps","animationProps","onAnimationComplete","isPositioned","content","motion","div","clsx","ref","tabIndex","default","icon","close","onClick","label","__","split","join","Number","isFinite","shouldRenderWithinSlot","hasAnchor","Fill","name","createPortal","StyleProvider","Fragment","Popover","contextConnect","PopoverSlot","Slot","bubblesVirtually","forwardRef","__unstableSlotNameProvider","Provider","_default"],"sources":["@wordpress/components/src/popover/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ForwardedRef, SyntheticEvent, RefCallback } from 'react';\nimport clsx from 'clsx';\nimport {\n\tuseFloating,\n\tflip as flipMiddleware,\n\tshift as shiftMiddleware,\n\tlimitShift,\n\tautoUpdate,\n\tarrow,\n\toffset as offsetMiddleware,\n\tsize,\n} from '@floating-ui/react-dom';\nimport type { HTMLMotionProps, MotionProps } from 'framer-motion';\nimport { motion } from 'framer-motion';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseRef,\n\tuseLayoutEffect,\n\tforwardRef,\n\tcreateContext,\n\tuseContext,\n\tuseMemo,\n\tuseState,\n\tuseCallback,\n\tcreatePortal,\n} from '@wordpress/element';\nimport {\n\tuseReducedMotion,\n\tuseViewportMatch,\n\tuseMergeRefs,\n\t__experimentalUseDialog as useDialog,\n} from '@wordpress/compose';\nimport { close } from '@wordpress/icons';\nimport deprecated from '@wordpress/deprecated';\nimport { Path, SVG } from '@wordpress/primitives';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport ScrollLock from '../scroll-lock';\nimport { Slot, Fill, useSlot } from '../slot-fill';\nimport {\n\tcomputePopoverPosition,\n\tpositionToPlacement,\n\tplacementToMotionAnimationProps,\n\tgetReferenceElement,\n} from './utils';\nimport { contextConnect, useContextSystem } from '../context';\nimport type { WordPressComponentProps } from '../context';\nimport type {\n\tPopoverProps,\n\tPopoverAnchorRefReference,\n\tPopoverAnchorRefTopBottom,\n} from './types';\nimport { overlayMiddlewares } from './overlay-middlewares';\nimport { StyleProvider } from '../style-provider';\n\n/**\n * Name of slot in which popover should fill.\n *\n * @type {string}\n */\nexport const SLOT_NAME = 'Popover';\n\n// An SVG displaying a triangle facing down, filled with a solid\n// color and bordered in such a way to create an arrow-like effect.\n// Keeping the SVG's viewbox squared simplify the arrow positioning\n// calculations.\nconst ArrowTriangle = () => (\n\t<SVG\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\tviewBox=\"0 0 100 100\"\n\t\tclassName=\"components-popover__triangle\"\n\t\trole=\"presentation\"\n\t>\n\t\t<Path\n\t\t\tclassName=\"components-popover__triangle-bg\"\n\t\t\td=\"M 0 0 L 50 50 L 100 0\"\n\t\t/>\n\t\t<Path\n\t\t\tclassName=\"components-popover__triangle-border\"\n\t\t\td=\"M 0 0 L 50 50 L 100 0\"\n\t\t\tvectorEffect=\"non-scaling-stroke\"\n\t\t/>\n\t</SVG>\n);\n\nconst slotNameContext = createContext< string | undefined >( undefined );\n\nconst fallbackContainerClassname = 'components-popover__fallback-container';\nconst getPopoverFallbackContainer = () => {\n\tlet container = document.body.querySelector(\n\t\t'.' + fallbackContainerClassname\n\t);\n\tif ( ! container ) {\n\t\tcontainer = document.createElement( 'div' );\n\t\tcontainer.className = fallbackContainerClassname;\n\t\tdocument.body.append( container );\n\t}\n\n\treturn container;\n};\n\nconst UnforwardedPopover = (\n\tprops: Omit<\n\t\tWordPressComponentProps< PopoverProps, 'div', false >,\n\t\t// To avoid overlaps between the standard HTML attributes and the props\n\t\t// expected by `framer-motion`, omit all framer motion props from popover\n\t\t// props (except for `animate` and `children` which are re-defined in\n\t\t// `PopoverProps`, and `style` which is merged safely).\n\t\tkeyof Omit< MotionProps, 'animate' | 'children' | 'style' >\n\t>,\n\tforwardedRef: ForwardedRef< any >\n) => {\n\tconst {\n\t\tanimate = true,\n\t\theaderTitle,\n\t\tconstrainTabbing,\n\t\tonClose,\n\t\tchildren,\n\t\tclassName,\n\t\tnoArrow = true,\n\t\tposition,\n\t\tplacement: placementProp = 'bottom-start',\n\t\toffset: offsetProp = 0,\n\t\tfocusOnMount = 'firstElement',\n\t\tanchor,\n\t\texpandOnMobile,\n\t\tonFocusOutside,\n\t\t__unstableSlotName = SLOT_NAME,\n\t\tflip = true,\n\t\tresize = true,\n\t\tshift = false,\n\t\tinline = false,\n\t\tvariant,\n\t\tstyle: contentStyle,\n\n\t\t// Deprecated props\n\t\t__unstableForcePosition,\n\t\tanchorRef,\n\t\tanchorRect,\n\t\tgetAnchorRect,\n\t\tisAlternate,\n\n\t\t// Rest\n\t\t...contentProps\n\t} = useContextSystem( props, 'Popover' );\n\n\tlet computedFlipProp = flip;\n\tlet computedResizeProp = resize;\n\tif ( __unstableForcePosition !== undefined ) {\n\t\tdeprecated( '`__unstableForcePosition` prop in wp.components.Popover', {\n\t\t\tsince: '6.1',\n\t\t\tversion: '6.3',\n\t\t\talternative: '`flip={ false }` and `resize={ false }`',\n\t\t} );\n\n\t\t// Back-compat, set the `flip` and `resize` props\n\t\t// to `false` to replicate `__unstableForcePosition`.\n\t\tcomputedFlipProp = ! __unstableForcePosition;\n\t\tcomputedResizeProp = ! __unstableForcePosition;\n\t}\n\n\tif ( anchorRef !== undefined ) {\n\t\tdeprecated( '`anchorRef` prop in wp.components.Popover', {\n\t\t\tsince: '6.1',\n\t\t\talternative: '`anchor` prop',\n\t\t} );\n\t}\n\n\tif ( anchorRect !== undefined ) {\n\t\tdeprecated( '`anchorRect` prop in wp.components.Popover', {\n\t\t\tsince: '6.1',\n\t\t\talternative: '`anchor` prop',\n\t\t} );\n\t}\n\n\tif ( getAnchorRect !== undefined ) {\n\t\tdeprecated( '`getAnchorRect` prop in wp.components.Popover', {\n\t\t\tsince: '6.1',\n\t\t\talternative: '`anchor` prop',\n\t\t} );\n\t}\n\n\tconst computedVariant = isAlternate ? 'toolbar' : variant;\n\tif ( isAlternate !== undefined ) {\n\t\tdeprecated( '`isAlternate` prop in wp.components.Popover', {\n\t\t\tsince: '6.2',\n\t\t\talternative: \"`variant` prop with the `'toolbar'` value\",\n\t\t} );\n\t}\n\n\tconst arrowRef = useRef< HTMLElement | null >( null );\n\n\tconst [ fallbackReferenceElement, setFallbackReferenceElement ] =\n\t\tuseState< HTMLSpanElement | null >( null );\n\n\tconst anchorRefFallback: RefCallback< HTMLSpanElement > = useCallback(\n\t\t( node ) => {\n\t\t\tsetFallbackReferenceElement( node );\n\t\t},\n\t\t[]\n\t);\n\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\tconst isExpanded = expandOnMobile && isMobileViewport;\n\tconst hasArrow = ! isExpanded && ! noArrow;\n\tconst normalizedPlacementFromProps = position\n\t\t? positionToPlacement( position )\n\t\t: placementProp;\n\n\tconst middleware = [\n\t\t...( placementProp === 'overlay' ? overlayMiddlewares() : [] ),\n\t\toffsetMiddleware( offsetProp ),\n\t\tcomputedFlipProp && flipMiddleware(),\n\t\tcomputedResizeProp &&\n\t\t\tsize( {\n\t\t\t\tapply( sizeProps ) {\n\t\t\t\t\tconst { firstElementChild } = refs.floating.current ?? {};\n\n\t\t\t\t\t// Only HTMLElement instances have the `style` property.\n\t\t\t\t\tif ( ! ( firstElementChild instanceof HTMLElement ) ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Reduce the height of the popover to the available space.\n\t\t\t\t\tObject.assign( firstElementChild.style, {\n\t\t\t\t\t\tmaxHeight: `${ sizeProps.availableHeight }px`,\n\t\t\t\t\t\toverflow: 'auto',\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t} ),\n\t\tshift &&\n\t\t\tshiftMiddleware( {\n\t\t\t\tcrossAxis: true,\n\t\t\t\tlimiter: limitShift(),\n\t\t\t\tpadding: 1, // Necessary to avoid flickering at the edge of the viewport.\n\t\t\t} ),\n\t\tarrow( { element: arrowRef } ),\n\t];\n\tconst slotName = useContext( slotNameContext ) || __unstableSlotName;\n\tconst slot = useSlot( slotName );\n\n\tlet onDialogClose;\n\n\tif ( onClose || onFocusOutside ) {\n\t\tonDialogClose = ( type: string | undefined, event: SyntheticEvent ) => {\n\t\t\t// Ideally the popover should have just a single onClose prop and\n\t\t\t// not three props that potentially do the same thing.\n\t\t\tif ( type === 'focus-outside' && onFocusOutside ) {\n\t\t\t\tonFocusOutside( event );\n\t\t\t} else if ( onClose ) {\n\t\t\t\tonClose();\n\t\t\t}\n\t\t};\n\t}\n\n\tconst [ dialogRef, dialogProps ] = useDialog( {\n\t\tconstrainTabbing,\n\t\tfocusOnMount,\n\t\t__unstableOnClose: onDialogClose,\n\t\t// @ts-expect-error The __unstableOnClose property needs to be deprecated first (see https://github.com/WordPress/gutenberg/pull/27675)\n\t\tonClose: onDialogClose,\n\t} );\n\n\tconst {\n\t\t// Positioning coordinates\n\t\tx,\n\t\ty,\n\t\t// Object with \"regular\" refs to both \"reference\" and \"floating\"\n\t\trefs,\n\t\t// Type of CSS position property to use (absolute or fixed)\n\t\tstrategy,\n\t\tupdate,\n\t\tplacement: computedPlacement,\n\t\tmiddlewareData: { arrow: arrowData },\n\t} = useFloating( {\n\t\tplacement:\n\t\t\tnormalizedPlacementFromProps === 'overlay'\n\t\t\t\t? undefined\n\t\t\t\t: normalizedPlacementFromProps,\n\t\tmiddleware,\n\t\twhileElementsMounted: ( referenceParam, floatingParam, updateParam ) =>\n\t\t\tautoUpdate( referenceParam, floatingParam, updateParam, {\n\t\t\t\tlayoutShift: false,\n\t\t\t\tanimationFrame: true,\n\t\t\t} ),\n\t} );\n\n\tconst arrowCallbackRef = useCallback(\n\t\t( node: HTMLElement | null ) => {\n\t\t\tarrowRef.current = node;\n\t\t\tupdate();\n\t\t},\n\t\t[ update ]\n\t);\n\n\t// When any of the possible anchor \"sources\" change,\n\t// recompute the reference element (real or virtual) and its owner document.\n\n\tconst anchorRefTop = ( anchorRef as PopoverAnchorRefTopBottom | undefined )\n\t\t?.top;\n\tconst anchorRefBottom = (\n\t\tanchorRef as PopoverAnchorRefTopBottom | undefined\n\t )?.bottom;\n\tconst anchorRefStartContainer = ( anchorRef as Range | undefined )\n\t\t?.startContainer;\n\tconst anchorRefCurrent = ( anchorRef as PopoverAnchorRefReference )\n\t\t?.current;\n\n\tuseLayoutEffect( () => {\n\t\tconst resultingReferenceElement = getReferenceElement( {\n\t\t\tanchor,\n\t\t\tanchorRef,\n\t\t\tanchorRect,\n\t\t\tgetAnchorRect,\n\t\t\tfallbackReferenceElement,\n\t\t} );\n\n\t\trefs.setReference( resultingReferenceElement );\n\t}, [\n\t\tanchor,\n\t\tanchorRef,\n\t\tanchorRefTop,\n\t\tanchorRefBottom,\n\t\tanchorRefStartContainer,\n\t\tanchorRefCurrent,\n\t\tanchorRect,\n\t\tgetAnchorRect,\n\t\tfallbackReferenceElement,\n\t\trefs,\n\t] );\n\n\tconst mergedFloatingRef = useMergeRefs( [\n\t\trefs.setFloating,\n\t\tdialogRef,\n\t\tforwardedRef,\n\t] );\n\n\tconst style = isExpanded\n\t\t? undefined\n\t\t: {\n\t\t\t\tposition: strategy,\n\t\t\t\ttop: 0,\n\t\t\t\tleft: 0,\n\t\t\t\t// `x` and `y` are framer-motion specific props and are shorthands\n\t\t\t\t// for `translateX` and `translateY`. Currently it is not possible\n\t\t\t\t// to use `translateX` and `translateY` because those values would\n\t\t\t\t// be overridden by the return value of the\n\t\t\t\t// `placementToMotionAnimationProps` function.\n\t\t\t\tx: computePopoverPosition( x ),\n\t\t\t\ty: computePopoverPosition( y ),\n\t\t };\n\n\tconst shouldReduceMotion = useReducedMotion();\n\tconst shouldAnimate = animate && ! isExpanded && ! shouldReduceMotion;\n\n\tconst [ animationFinished, setAnimationFinished ] = useState( false );\n\n\tconst { style: motionInlineStyles, ...otherMotionProps } = useMemo(\n\t\t() => placementToMotionAnimationProps( computedPlacement ),\n\t\t[ computedPlacement ]\n\t);\n\n\tconst animationProps: HTMLMotionProps< 'div' > = shouldAnimate\n\t\t? {\n\t\t\t\tstyle: {\n\t\t\t\t\t...contentStyle,\n\t\t\t\t\t...motionInlineStyles,\n\t\t\t\t\t...style,\n\t\t\t\t},\n\t\t\t\tonAnimationComplete: () => setAnimationFinished( true ),\n\t\t\t\t...otherMotionProps,\n\t\t }\n\t\t: {\n\t\t\t\tanimate: false,\n\t\t\t\tstyle: {\n\t\t\t\t\t...contentStyle,\n\t\t\t\t\t...style,\n\t\t\t\t},\n\t\t };\n\n\t// When Floating UI has finished positioning and Framer Motion has finished animating\n\t// the popover, add the `is-positioned` class to signal that all transitions have finished.\n\tconst isPositioned =\n\t\t( ! shouldAnimate || animationFinished ) && x !== null && y !== null;\n\n\tlet content = (\n\t\t<motion.div\n\t\t\tclassName={ clsx( className, {\n\t\t\t\t'is-expanded': isExpanded,\n\t\t\t\t'is-positioned': isPositioned,\n\t\t\t\t// Use the 'alternate' classname for 'toolbar' variant for back compat.\n\t\t\t\t[ `is-${\n\t\t\t\t\tcomputedVariant === 'toolbar'\n\t\t\t\t\t\t? 'alternate'\n\t\t\t\t\t\t: computedVariant\n\t\t\t\t}` ]: computedVariant,\n\t\t\t} ) }\n\t\t\t{ ...animationProps }\n\t\t\t{ ...contentProps }\n\t\t\tref={ mergedFloatingRef }\n\t\t\t{ ...dialogProps }\n\t\t\ttabIndex={ -1 }\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\tsize=\"small\"\n\t\t\t\t\t\ticon={ close }\n\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t\tlabel={ __( 'Close' ) }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t<div className=\"components-popover__content\">{ children }</div>\n\t\t\t{ hasArrow && (\n\t\t\t\t<div\n\t\t\t\t\tref={ arrowCallbackRef }\n\t\t\t\t\tclassName={ [\n\t\t\t\t\t\t'components-popover__arrow',\n\t\t\t\t\t\t`is-${ computedPlacement.split( '-' )[ 0 ] }`,\n\t\t\t\t\t].join( ' ' ) }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\tleft:\n\t\t\t\t\t\t\ttypeof arrowData?.x !== 'undefined' &&\n\t\t\t\t\t\t\tNumber.isFinite( arrowData.x )\n\t\t\t\t\t\t\t\t? `${ arrowData.x }px`\n\t\t\t\t\t\t\t\t: '',\n\t\t\t\t\t\ttop:\n\t\t\t\t\t\t\ttypeof arrowData?.y !== 'undefined' &&\n\t\t\t\t\t\t\tNumber.isFinite( arrowData.y )\n\t\t\t\t\t\t\t\t? `${ arrowData.y }px`\n\t\t\t\t\t\t\t\t: '',\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<ArrowTriangle />\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</motion.div>\n\t);\n\n\tconst shouldRenderWithinSlot = slot.ref && ! inline;\n\tconst hasAnchor = anchorRef || anchorRect || anchor;\n\n\tif ( shouldRenderWithinSlot ) {\n\t\tcontent = <Fill name={ slotName }>{ content }</Fill>;\n\t} else if ( ! inline ) {\n\t\tcontent = createPortal(\n\t\t\t<StyleProvider document={ document }>{ content }</StyleProvider>,\n\t\t\tgetPopoverFallbackContainer()\n\t\t);\n\t}\n\n\tif ( hasAnchor ) {\n\t\treturn content;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<span ref={ anchorRefFallback } />\n\t\t\t{ content }\n\t\t</>\n\t);\n};\n\n/**\n * `Popover` renders its content in a floating modal. If no explicit anchor is passed via props, it anchors to its parent element by default.\n *\n * ```jsx\n * import { Button, Popover } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const MyPopover = () => {\n * \tconst [ isVisible, setIsVisible ] = useState( false );\n * \tconst toggleVisible = () => {\n * \t\tsetIsVisible( ( state ) => ! state );\n * \t};\n *\n * \treturn (\n * \t\t<Button variant=\"secondary\" onClick={ toggleVisible }>\n * \t\t\tToggle Popover!\n * \t\t\t{ isVisible && <Popover>Popover is toggled!</Popover> }\n * \t\t</Button>\n * \t);\n * };\n * ```\n *\n */\nexport const Popover = contextConnect( UnforwardedPopover, 'Popover' );\n\nfunction PopoverSlot(\n\t{ name = SLOT_NAME }: { name?: string },\n\tref: ForwardedRef< any >\n) {\n\treturn (\n\t\t<Slot\n\t\t\tbubblesVirtually\n\t\t\tname={ name }\n\t\t\tclassName=\"popover-slot\"\n\t\t\tref={ ref }\n\t\t/>\n\t);\n}\n\n// @ts-expect-error For Legacy Reasons\nPopover.Slot = forwardRef( PopoverSlot );\n// @ts-expect-error For Legacy Reasons\nPopover.__unstableSlotNameProvider = slotNameContext.Provider;\n\nexport default Popover;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_clsx","_interopRequireDefault","require","_reactDom","_framerMotion","_element","_compose","_icons","_deprecated","_primitives","_i18n","_button","_scrollLock","_slotFill","_utils","_context","_overlayMiddlewares","_styleProvider","_jsxRuntime","SLOT_NAME","exports","OVERFLOW_PADDING","ArrowTriangle","jsxs","SVG","xmlns","viewBox","className","role","children","jsx","Path","d","vectorEffect","slotNameContext","createContext","undefined","fallbackContainerClassname","getPopoverFallbackContainer","container","document","body","querySelector","createElement","append","UnforwardedPopover","props","forwardedRef","animate","headerTitle","constrainTabbing","onClose","noArrow","position","placement","placementProp","offset","offsetProp","focusOnMount","anchor","expandOnMobile","onFocusOutside","__unstableSlotName","flip","resize","shift","inline","variant","style","contentStyle","__unstableForcePosition","anchorRef","anchorRect","getAnchorRect","isAlternate","contentProps","useContextSystem","computedFlipProp","computedResizeProp","deprecated","since","version","alternative","computedVariant","arrowRef","useRef","fallbackReferenceElement","setFallbackReferenceElement","useState","anchorRefFallback","useCallback","node","isMobileViewport","useViewportMatch","isExpanded","hasArrow","normalizedPlacementFromProps","positionToPlacement","middleware","overlayMiddlewares","offsetMiddleware","flipMiddleware","size","padding","apply","sizeProps","_refs$floating$curren","firstElementChild","refs","floating","current","HTMLElement","Object","assign","maxHeight","Math","max","availableHeight","overflow","shiftMiddleware","crossAxis","limiter","limitShift","arrow","element","slotName","useContext","slot","useSlot","onDialogClose","type","event","dialogRef","dialogProps","useDialog","__unstableOnClose","x","y","strategy","update","computedPlacement","middlewareData","arrowData","useFloating","whileElementsMounted","referenceParam","floatingParam","updateParam","autoUpdate","layoutShift","animationFrame","arrowCallbackRef","anchorRefTop","top","anchorRefBottom","bottom","anchorRefStartContainer","startContainer","anchorRefCurrent","useLayoutEffect","resultingReferenceElement","getReferenceElement","setReference","mergedFloatingRef","useMergeRefs","setFloating","left","computePopoverPosition","shouldReduceMotion","useReducedMotion","shouldAnimate","animationFinished","setAnimationFinished","motionInlineStyles","otherMotionProps","useMemo","placementToMotionAnimationProps","animationProps","onAnimationComplete","isPositioned","content","motion","div","clsx","ref","tabIndex","default","icon","close","onClick","label","__","split","join","Number","isFinite","shouldRenderWithinSlot","hasAnchor","Fill","name","createPortal","StyleProvider","Fragment","PopoverSlot","forwardRef","Slot","bubblesVirtually","Popover","contextConnect","displayName","__unstableSlotNameProvider","Provider","_default"],"sources":["@wordpress/components/src/popover/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ForwardedRef, SyntheticEvent, RefCallback } from 'react';\nimport clsx from 'clsx';\nimport {\n\tuseFloating,\n\tflip as flipMiddleware,\n\tshift as shiftMiddleware,\n\tlimitShift,\n\tautoUpdate,\n\tarrow,\n\toffset as offsetMiddleware,\n\tsize,\n} from '@floating-ui/react-dom';\nimport type { HTMLMotionProps, MotionProps } from 'framer-motion';\nimport { motion } from 'framer-motion';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseRef,\n\tuseLayoutEffect,\n\tforwardRef,\n\tcreateContext,\n\tuseContext,\n\tuseMemo,\n\tuseState,\n\tuseCallback,\n\tcreatePortal,\n} from '@wordpress/element';\nimport {\n\tuseReducedMotion,\n\tuseViewportMatch,\n\tuseMergeRefs,\n\t__experimentalUseDialog as useDialog,\n} from '@wordpress/compose';\nimport { close } from '@wordpress/icons';\nimport deprecated from '@wordpress/deprecated';\nimport { Path, SVG } from '@wordpress/primitives';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport ScrollLock from '../scroll-lock';\nimport { Slot, Fill, useSlot } from '../slot-fill';\nimport {\n\tcomputePopoverPosition,\n\tpositionToPlacement,\n\tplacementToMotionAnimationProps,\n\tgetReferenceElement,\n} from './utils';\nimport { contextConnect, useContextSystem } from '../context';\nimport type { WordPressComponentProps } from '../context';\nimport type {\n\tPopoverProps,\n\tPopoverAnchorRefReference,\n\tPopoverAnchorRefTopBottom,\n\tPopoverSlotProps,\n} from './types';\nimport { overlayMiddlewares } from './overlay-middlewares';\nimport { StyleProvider } from '../style-provider';\n\n/**\n * Name of slot in which popover should fill.\n *\n * @type {string}\n */\nexport const SLOT_NAME = 'Popover';\n\n/**\n * Virtual padding to account for overflow boundaries.\n *\n * @type {number}\n */\nconst OVERFLOW_PADDING = 8;\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 slotNameContext = createContext< string | undefined >( undefined );\n\nconst fallbackContainerClassname = 'components-popover__fallback-container';\nconst getPopoverFallbackContainer = () => {\n\tlet container = document.body.querySelector(\n\t\t'.' + fallbackContainerClassname\n\t);\n\tif ( ! container ) {\n\t\tcontainer = document.createElement( 'div' );\n\t\tcontainer.className = fallbackContainerClassname;\n\t\tdocument.body.append( container );\n\t}\n\n\treturn container;\n};\n\nconst UnforwardedPopover = (\n\tprops: Omit<\n\t\tWordPressComponentProps< PopoverProps, 'div', false >,\n\t\t// To avoid overlaps between the standard HTML attributes and the props\n\t\t// expected by `framer-motion`, omit all framer motion props from popover\n\t\t// props (except for `animate` and `children` which are re-defined in\n\t\t// `PopoverProps`, and `style` which is merged safely).\n\t\tkeyof Omit< MotionProps, 'animate' | 'children' | 'style' >\n\t>,\n\tforwardedRef: ForwardedRef< any >\n) => {\n\tconst {\n\t\tanimate = true,\n\t\theaderTitle,\n\t\tconstrainTabbing,\n\t\tonClose,\n\t\tchildren,\n\t\tclassName,\n\t\tnoArrow = true,\n\t\tposition,\n\t\tplacement: placementProp = 'bottom-start',\n\t\toffset: offsetProp = 0,\n\t\tfocusOnMount = 'firstElement',\n\t\tanchor,\n\t\texpandOnMobile,\n\t\tonFocusOutside,\n\t\t__unstableSlotName = SLOT_NAME,\n\t\tflip = true,\n\t\tresize = true,\n\t\tshift = false,\n\t\tinline = false,\n\t\tvariant,\n\t\tstyle: contentStyle,\n\n\t\t// Deprecated props\n\t\t__unstableForcePosition,\n\t\tanchorRef,\n\t\tanchorRect,\n\t\tgetAnchorRect,\n\t\tisAlternate,\n\n\t\t// Rest\n\t\t...contentProps\n\t} = useContextSystem( props, 'Popover' );\n\n\tlet computedFlipProp = flip;\n\tlet computedResizeProp = resize;\n\tif ( __unstableForcePosition !== undefined ) {\n\t\tdeprecated( '`__unstableForcePosition` prop in wp.components.Popover', {\n\t\t\tsince: '6.1',\n\t\t\tversion: '6.3',\n\t\t\talternative: '`flip={ false }` and `resize={ false }`',\n\t\t} );\n\n\t\t// Back-compat, set the `flip` and `resize` props\n\t\t// to `false` to replicate `__unstableForcePosition`.\n\t\tcomputedFlipProp = ! __unstableForcePosition;\n\t\tcomputedResizeProp = ! __unstableForcePosition;\n\t}\n\n\tif ( anchorRef !== undefined ) {\n\t\tdeprecated( '`anchorRef` prop in wp.components.Popover', {\n\t\t\tsince: '6.1',\n\t\t\talternative: '`anchor` prop',\n\t\t} );\n\t}\n\n\tif ( anchorRect !== undefined ) {\n\t\tdeprecated( '`anchorRect` prop in wp.components.Popover', {\n\t\t\tsince: '6.1',\n\t\t\talternative: '`anchor` prop',\n\t\t} );\n\t}\n\n\tif ( getAnchorRect !== undefined ) {\n\t\tdeprecated( '`getAnchorRect` prop in wp.components.Popover', {\n\t\t\tsince: '6.1',\n\t\t\talternative: '`anchor` prop',\n\t\t} );\n\t}\n\n\tconst computedVariant = isAlternate ? 'toolbar' : variant;\n\tif ( isAlternate !== undefined ) {\n\t\tdeprecated( '`isAlternate` prop in wp.components.Popover', {\n\t\t\tsince: '6.2',\n\t\t\talternative: \"`variant` prop with the `'toolbar'` value\",\n\t\t} );\n\t}\n\n\tconst arrowRef = useRef< HTMLElement | null >( null );\n\n\tconst [ fallbackReferenceElement, setFallbackReferenceElement ] =\n\t\tuseState< HTMLSpanElement | null >( null );\n\n\tconst anchorRefFallback: RefCallback< HTMLSpanElement > = useCallback(\n\t\t( node ) => {\n\t\t\tsetFallbackReferenceElement( node );\n\t\t},\n\t\t[]\n\t);\n\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\tconst isExpanded = expandOnMobile && isMobileViewport;\n\tconst hasArrow = ! isExpanded && ! noArrow;\n\tconst normalizedPlacementFromProps = position\n\t\t? positionToPlacement( position )\n\t\t: placementProp;\n\n\tconst middleware = [\n\t\t...( placementProp === 'overlay' ? overlayMiddlewares() : [] ),\n\t\toffsetMiddleware( offsetProp ),\n\t\tcomputedFlipProp && flipMiddleware(),\n\t\tcomputedResizeProp &&\n\t\t\tsize( {\n\t\t\t\tpadding: OVERFLOW_PADDING,\n\t\t\t\tapply( sizeProps ) {\n\t\t\t\t\tconst { firstElementChild } = refs.floating.current ?? {};\n\n\t\t\t\t\t// Only HTMLElement instances have the `style` property.\n\t\t\t\t\tif ( ! ( firstElementChild instanceof HTMLElement ) ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Reduce the height of the popover to the available space.\n\t\t\t\t\tObject.assign( firstElementChild.style, {\n\t\t\t\t\t\tmaxHeight: `${ Math.max(\n\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\tsizeProps.availableHeight\n\t\t\t\t\t\t) }px`,\n\t\t\t\t\t\toverflow: 'auto',\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t} ),\n\t\tshift &&\n\t\t\tshiftMiddleware( {\n\t\t\t\tcrossAxis: true,\n\t\t\t\tlimiter: limitShift(),\n\t\t\t\tpadding: 1, // Necessary to avoid flickering at the edge of the viewport.\n\t\t\t} ),\n\t\tarrow( { element: arrowRef } ),\n\t];\n\tconst slotName = useContext( slotNameContext ) || __unstableSlotName;\n\tconst slot = useSlot( slotName );\n\n\tlet onDialogClose;\n\n\tif ( onClose || onFocusOutside ) {\n\t\tonDialogClose = ( type: string | undefined, event: SyntheticEvent ) => {\n\t\t\t// Ideally the popover should have just a single onClose prop and\n\t\t\t// not three props that potentially do the same thing.\n\t\t\tif ( type === 'focus-outside' && onFocusOutside ) {\n\t\t\t\tonFocusOutside( event );\n\t\t\t} else if ( onClose ) {\n\t\t\t\tonClose();\n\t\t\t}\n\t\t};\n\t}\n\n\tconst [ dialogRef, dialogProps ] = useDialog( {\n\t\tconstrainTabbing,\n\t\tfocusOnMount,\n\t\t__unstableOnClose: onDialogClose,\n\t\t// @ts-expect-error The __unstableOnClose property needs to be deprecated first (see https://github.com/WordPress/gutenberg/pull/27675)\n\t\tonClose: onDialogClose,\n\t} );\n\n\tconst {\n\t\t// Positioning coordinates\n\t\tx,\n\t\ty,\n\t\t// Object with \"regular\" refs to both \"reference\" and \"floating\"\n\t\trefs,\n\t\t// Type of CSS position property to use (absolute or fixed)\n\t\tstrategy,\n\t\tupdate,\n\t\tplacement: computedPlacement,\n\t\tmiddlewareData: { arrow: arrowData },\n\t} = useFloating( {\n\t\tplacement:\n\t\t\tnormalizedPlacementFromProps === 'overlay'\n\t\t\t\t? undefined\n\t\t\t\t: normalizedPlacementFromProps,\n\t\tmiddleware,\n\t\twhileElementsMounted: ( referenceParam, floatingParam, updateParam ) =>\n\t\t\tautoUpdate( referenceParam, floatingParam, updateParam, {\n\t\t\t\tlayoutShift: false,\n\t\t\t\tanimationFrame: true,\n\t\t\t} ),\n\t} );\n\n\tconst arrowCallbackRef = useCallback(\n\t\t( node: HTMLElement | null ) => {\n\t\t\tarrowRef.current = node;\n\t\t\tupdate();\n\t\t},\n\t\t[ update ]\n\t);\n\n\t// When any of the possible anchor \"sources\" change,\n\t// recompute the reference element (real or virtual) and its owner document.\n\n\tconst anchorRefTop = ( anchorRef as PopoverAnchorRefTopBottom | undefined )\n\t\t?.top;\n\tconst anchorRefBottom = (\n\t\tanchorRef as PopoverAnchorRefTopBottom | undefined\n\t )?.bottom;\n\tconst anchorRefStartContainer = ( anchorRef as Range | undefined )\n\t\t?.startContainer;\n\tconst anchorRefCurrent = ( anchorRef as PopoverAnchorRefReference )\n\t\t?.current;\n\n\tuseLayoutEffect( () => {\n\t\tconst resultingReferenceElement = getReferenceElement( {\n\t\t\tanchor,\n\t\t\tanchorRef,\n\t\t\tanchorRect,\n\t\t\tgetAnchorRect,\n\t\t\tfallbackReferenceElement,\n\t\t} );\n\n\t\trefs.setReference( resultingReferenceElement );\n\t}, [\n\t\tanchor,\n\t\tanchorRef,\n\t\tanchorRefTop,\n\t\tanchorRefBottom,\n\t\tanchorRefStartContainer,\n\t\tanchorRefCurrent,\n\t\tanchorRect,\n\t\tgetAnchorRect,\n\t\tfallbackReferenceElement,\n\t\trefs,\n\t] );\n\n\tconst mergedFloatingRef = useMergeRefs( [\n\t\trefs.setFloating,\n\t\tdialogRef,\n\t\tforwardedRef,\n\t] );\n\n\tconst style = isExpanded\n\t\t? undefined\n\t\t: {\n\t\t\t\tposition: strategy,\n\t\t\t\ttop: 0,\n\t\t\t\tleft: 0,\n\t\t\t\t// `x` and `y` are framer-motion specific props and are shorthands\n\t\t\t\t// for `translateX` and `translateY`. Currently it is not possible\n\t\t\t\t// to use `translateX` and `translateY` because those values would\n\t\t\t\t// be overridden by the return value of the\n\t\t\t\t// `placementToMotionAnimationProps` function.\n\t\t\t\tx: computePopoverPosition( x ),\n\t\t\t\ty: computePopoverPosition( y ),\n\t\t };\n\n\tconst shouldReduceMotion = useReducedMotion();\n\tconst shouldAnimate = animate && ! isExpanded && ! shouldReduceMotion;\n\n\tconst [ animationFinished, setAnimationFinished ] = useState( false );\n\n\tconst { style: motionInlineStyles, ...otherMotionProps } = useMemo(\n\t\t() => placementToMotionAnimationProps( computedPlacement ),\n\t\t[ computedPlacement ]\n\t);\n\n\tconst animationProps: HTMLMotionProps< 'div' > = shouldAnimate\n\t\t? {\n\t\t\t\tstyle: {\n\t\t\t\t\t...contentStyle,\n\t\t\t\t\t...motionInlineStyles,\n\t\t\t\t\t...style,\n\t\t\t\t},\n\t\t\t\tonAnimationComplete: () => setAnimationFinished( true ),\n\t\t\t\t...otherMotionProps,\n\t\t }\n\t\t: {\n\t\t\t\tanimate: false,\n\t\t\t\tstyle: {\n\t\t\t\t\t...contentStyle,\n\t\t\t\t\t...style,\n\t\t\t\t},\n\t\t };\n\n\t// When Floating UI has finished positioning and Framer Motion has finished animating\n\t// the popover, add the `is-positioned` class to signal that all transitions have finished.\n\tconst isPositioned =\n\t\t( ! shouldAnimate || animationFinished ) && x !== null && y !== null;\n\n\tlet content = (\n\t\t<motion.div\n\t\t\tclassName={ clsx( className, {\n\t\t\t\t'is-expanded': isExpanded,\n\t\t\t\t'is-positioned': isPositioned,\n\t\t\t\t// Use the 'alternate' classname for 'toolbar' variant for back compat.\n\t\t\t\t[ `is-${\n\t\t\t\t\tcomputedVariant === 'toolbar'\n\t\t\t\t\t\t? 'alternate'\n\t\t\t\t\t\t: computedVariant\n\t\t\t\t}` ]: computedVariant,\n\t\t\t} ) }\n\t\t\t{ ...animationProps }\n\t\t\t{ ...contentProps }\n\t\t\tref={ mergedFloatingRef }\n\t\t\t{ ...dialogProps }\n\t\t\ttabIndex={ -1 }\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\tsize=\"small\"\n\t\t\t\t\t\ticon={ close }\n\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t\tlabel={ __( 'Close' ) }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t<div className=\"components-popover__content\">{ children }</div>\n\t\t\t{ hasArrow && (\n\t\t\t\t<div\n\t\t\t\t\tref={ arrowCallbackRef }\n\t\t\t\t\tclassName={ [\n\t\t\t\t\t\t'components-popover__arrow',\n\t\t\t\t\t\t`is-${ computedPlacement.split( '-' )[ 0 ] }`,\n\t\t\t\t\t].join( ' ' ) }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\tleft:\n\t\t\t\t\t\t\ttypeof arrowData?.x !== 'undefined' &&\n\t\t\t\t\t\t\tNumber.isFinite( arrowData.x )\n\t\t\t\t\t\t\t\t? `${ arrowData.x }px`\n\t\t\t\t\t\t\t\t: '',\n\t\t\t\t\t\ttop:\n\t\t\t\t\t\t\ttypeof arrowData?.y !== 'undefined' &&\n\t\t\t\t\t\t\tNumber.isFinite( arrowData.y )\n\t\t\t\t\t\t\t\t? `${ arrowData.y }px`\n\t\t\t\t\t\t\t\t: '',\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<ArrowTriangle />\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</motion.div>\n\t);\n\n\tconst shouldRenderWithinSlot = slot.ref && ! inline;\n\tconst hasAnchor = anchorRef || anchorRect || anchor;\n\n\tif ( shouldRenderWithinSlot ) {\n\t\tcontent = <Fill name={ slotName }>{ content }</Fill>;\n\t} else if ( ! inline ) {\n\t\tcontent = createPortal(\n\t\t\t<StyleProvider document={ document }>{ content }</StyleProvider>,\n\t\t\tgetPopoverFallbackContainer()\n\t\t);\n\t}\n\n\tif ( hasAnchor ) {\n\t\treturn content;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<span ref={ anchorRefFallback } />\n\t\t\t{ content }\n\t\t</>\n\t);\n};\n\n// Export the PopoverSlot individually to allow typescript to pick the types up.\nexport const PopoverSlot = forwardRef< HTMLDivElement, PopoverSlotProps >(\n\t( { name = SLOT_NAME }, ref ) => {\n\t\treturn (\n\t\t\t<Slot\n\t\t\t\tbubblesVirtually\n\t\t\t\tname={ name }\n\t\t\t\tclassName=\"popover-slot\"\n\t\t\t\tref={ ref }\n\t\t\t/>\n\t\t);\n\t}\n);\n\n/**\n * `Popover` renders its content in a floating modal. If no explicit anchor is passed via props, it anchors to its parent element by default.\n *\n * ```jsx\n * import { Button, Popover } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const MyPopover = () => {\n * \tconst [ isVisible, setIsVisible ] = useState( false );\n * \tconst toggleVisible = () => {\n * \t\tsetIsVisible( ( state ) => ! state );\n * \t};\n *\n * \treturn (\n * \t\t<Button variant=\"secondary\" onClick={ toggleVisible }>\n * \t\t\tToggle Popover!\n * \t\t\t{ isVisible && <Popover>Popover is toggled!</Popover> }\n * \t\t</Button>\n * \t);\n * };\n * ```\n *\n */\nexport const Popover = Object.assign(\n\tcontextConnect( UnforwardedPopover, 'Popover' ),\n\t{\n\t\t/**\n\t\t * Renders a slot that is used internally by Popover for rendering content.\n\t\t */\n\t\tSlot: Object.assign( PopoverSlot, {\n\t\t\tdisplayName: 'Popover.Slot',\n\t\t} ),\n\t\t/**\n\t\t * Provides a context to manage popover slot names.\n\t\t *\n\t\t * This is marked as unstable and should not be used directly.\n\t\t */\n\t\t__unstableSlotNameProvider: Object.assign( slotNameContext.Provider, {\n\t\t\tdisplayName: 'Popover.__unstableSlotNameProvider',\n\t\t} ),\n\t}\n);\n\nexport default Popover;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["@wordpress/components/src/popover/types.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ReactNode, MutableRefObject, SyntheticEvent } from 'react';\nimport type { Placement } from '@floating-ui/react-dom';\n\ntype PositionYAxis = 'top' | 'middle' | 'bottom';\ntype PositionXAxis = 'left' | 'center' | 'right';\ntype PositionCorner = 'top' | 'right' | 'bottom' | 'left';\n\ntype DomRectWithOwnerDocument = DOMRect & {\n\townerDocument?: Document;\n};\n\ntype PopoverPlacement = Placement | 'overlay';\n\nexport type PopoverAnchorRefReference = MutableRefObject<\n\tElement | null | undefined\n>;\nexport type PopoverAnchorRefTopBottom = { top: Element; bottom: Element };\n\nexport type VirtualElement = Pick< Element, 'getBoundingClientRect' > & {\n\townerDocument?: Document;\n};\n\nexport type PopoverProps = {\n\t/**\n\t * The name of the Slot in which the popover should be rendered. It should\n\t * be also passed to the corresponding `PopoverSlot` component.\n\t *\n\t * @default 'Popover'\n\t */\n\t__unstableSlotName?: string;\n\t/**\n\t * The element that should be used by the popover as its anchor. It can either\n\t * be an `Element` or, alternatively, a `VirtualElement` — ie. an object with\n\t * the `getBoundingClientRect()` and the `ownerDocument` properties defined.\n\t *\n\t * **The anchor element should be stored in local state** rather than a\n\t * plain React ref to ensure reactive updating when it changes.\n\t */\n\tanchor?: Element | VirtualElement | null;\n\t/**\n\t * Whether the popover should animate when opening.\n\t *\n\t * @default true\n\t */\n\tanimate?: boolean;\n\t/**\n\t * The `children` elements rendered as the popover's content.\n\t */\n\tchildren: ReactNode;\n\t/**\n\t * Show the popover fullscreen on mobile viewports.\n\t */\n\texpandOnMobile?: boolean;\n\t/**\n\t * Specifies whether the popover should flip across its axis if there isn't\n\t * space for it in the normal placement.\n\t * When the using a 'top' placement, the popover will switch to a 'bottom'\n\t * placement. When using a 'left' placement, the popover will switch to a\n\t * `right' placement.\n\t * The popover will retain its alignment of 'start' or 'end' when flipping.\n\t *\n\t * @default true\n\t */\n\tflip?: boolean;\n\t/**\n\t * Determines whether tabbing is constrained to within the popover,\n\t * preventing keyboard focus from leaving the popover content without\n\t * explicit focus elswhere, or whether the popover remains part of the wider\n\t * tab order. If no value is passed, it will be derived from `focusOnMount`.\n\t *\n\t * @default `focusOnMount` !== false\n\t */\n\tconstrainTabbing?: boolean;\n\t/**\n\t * By default, the _first tabbable element_ in the popover will receive focus\n\t * when it mounts. This is the same as setting this prop to `\"firstElement\"`.\n\t * Specifying a `false` value disables the focus handling entirely (this\n\t * should only be done when an appropriately accessible substitute behavior\n\t * exists).\n\t *\n\t * @default 'firstElement'\n\t */\n\tfocusOnMount?: 'firstElement' | boolean;\n\t/**\n\t * A callback invoked when the focus leaves the opened popover. This should\n\t * only be provided in advanced use-cases when a popover should close under\n\t * specific circumstances (for example, if the new `document.activeElement`\n\t * is content of or otherwise controlling popover visibility).\n\t *\n\t * When not provided, the `onClose` callback will be called instead.\n\t */\n\tonFocusOutside?: ( event: SyntheticEvent ) => void;\n\t/**\n\t * Used to customize the header text shown when the popover is toggled to\n\t * fullscreen on mobile viewports (see the `expandOnMobile` prop).\n\t */\n\theaderTitle?: string;\n\t/**\n\t * Used to show/hide the arrow that points at the popover's anchor.\n\t *\n\t * @default true\n\t */\n\tnoArrow?: boolean;\n\t/**\n\t * The distance (in px) between the anchor and the popover.\n\t */\n\toffset?: number;\n\t/**\n\t * A callback invoked when the popover should be closed.\n\t */\n\tonClose?: () => void;\n\t/**\n\t * Used to specify the popover's position with respect to its anchor.\n\t *\n\t * @default 'bottom-start'\n\t */\n\tplacement?: PopoverPlacement;\n\t/**\n\t * Legacy way to specify the popover's position with respect to its anchor.\n\t * _Note: this prop is deprecated. Use the `placement` prop instead._\n\t */\n\tposition?:\n\t\t| `${ PositionYAxis }`\n\t\t| `${ PositionYAxis } ${ PositionXAxis }`\n\t\t| `${ PositionYAxis } ${ PositionXAxis } ${ PositionCorner }`;\n\t/**\n\t * Adjusts the size of the popover to prevent its contents from going out of\n\t * view when meeting the viewport edges.\n\t *\n\t * @default true\n\t */\n\tresize?: boolean;\n\t/**\n\t * Enables the `Popover` to shift in order to stay in view when meeting the\n\t * viewport edges.\n\t *\n\t * @default false\n\t */\n\tshift?: boolean;\n\t/**\n\t * Specifies the popover's style.\n\t *\n\t * Leave undefined for the default style. Other values are:\n\t * - 'unstyled': The popover is essentially without any visible style, it\n\t * has no background, border, outline or drop shadow, but\n\t * the popover contents are still displayed.\n\t * - 'toolbar': A style that has no elevation, but a high contrast with\n\t * other elements. This is matches the style of the\n\t * `Toolbar` component.\n\t *\n\t * @default undefined\n\t */\n\tvariant?: 'unstyled' | 'toolbar';\n\t/**\n\t * Whether to render the popover inline or within the slot.\n\t *\n\t * @default false\n\t */\n\tinline?: boolean;\n\t// Deprecated props\n\t/**\n\t * Prevent the popover from flipping and resizing when meeting the viewport\n\t * edges. _Note: this prop is deprecated. Instead, provide use the individual\n\t * `flip` and `resize` props._\n\t *\n\t * @deprecated\n\t */\n\t__unstableForcePosition?: boolean;\n\t/**\n\t * An object extending a `DOMRect` with an additional optional `ownerDocument`\n\t * property, used to specify a fixed popover position.\n\t *\n\t * @deprecated\n\t */\n\tanchorRect?: DomRectWithOwnerDocument;\n\t/**\n\t * Used to specify a fixed popover position. It can be an `Element`, a React\n\t * reference to an `element`, an object with a `top` and a `bottom` properties\n\t * (both pointing to elements), or a `range`.\n\t *\n\t * @deprecated\n\t */\n\tanchorRef?:\n\t\t| Element\n\t\t| PopoverAnchorRefReference\n\t\t| PopoverAnchorRefTopBottom\n\t\t| Range;\n\t/**\n\t * A function returning the same value as the one expected by the `anchorRect`\n\t * prop, used to specify a dynamic popover position.\n\t *\n\t * @deprecated\n\t */\n\tgetAnchorRect?: (\n\t\tfallbackReferenceElement: Element | null\n\t) => DomRectWithOwnerDocument;\n\t/**\n\t * Used to enable a different visual style for the popover.\n\t * _Note: this prop is deprecated. Use the `variant` prop with the\n\t * 'toolbar' value instead._\n\t *\n\t * @deprecated\n\t */\n\tisAlternate?: boolean;\n};\n"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sources":["@wordpress/components/src/popover/types.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ReactNode, MutableRefObject, SyntheticEvent } from 'react';\nimport type { Placement } from '@floating-ui/react-dom';\n\ntype PositionYAxis = 'top' | 'middle' | 'bottom';\ntype PositionXAxis = 'left' | 'center' | 'right';\ntype PositionCorner = 'top' | 'right' | 'bottom' | 'left';\n\ntype DomRectWithOwnerDocument = DOMRect & {\n\townerDocument?: Document;\n};\n\ntype PopoverPlacement = Placement | 'overlay';\n\nexport type PopoverAnchorRefReference = MutableRefObject<\n\tElement | null | undefined\n>;\nexport type PopoverAnchorRefTopBottom = { top: Element; bottom: Element };\n\nexport type VirtualElement = Pick< Element, 'getBoundingClientRect' > & {\n\townerDocument?: Document;\n};\n\nexport type PopoverProps = {\n\t/**\n\t * The name of the Slot in which the popover should be rendered. It should\n\t * be also passed to the corresponding `PopoverSlot` component.\n\t *\n\t * @default 'Popover'\n\t */\n\t__unstableSlotName?: string;\n\t/**\n\t * The element that should be used by the popover as its anchor. It can either\n\t * be an `Element` or, alternatively, a `VirtualElement` — ie. an object with\n\t * the `getBoundingClientRect()` and the `ownerDocument` properties defined.\n\t *\n\t * **The anchor element should be stored in local state** rather than a\n\t * plain React ref to ensure reactive updating when it changes.\n\t */\n\tanchor?: Element | VirtualElement | null;\n\t/**\n\t * Whether the popover should animate when opening.\n\t *\n\t * @default true\n\t */\n\tanimate?: boolean;\n\t/**\n\t * The `children` elements rendered as the popover's content.\n\t */\n\tchildren: ReactNode;\n\t/**\n\t * Show the popover fullscreen on mobile viewports.\n\t */\n\texpandOnMobile?: boolean;\n\t/**\n\t * Specifies whether the popover should flip across its axis if there isn't\n\t * space for it in the normal placement.\n\t * When the using a 'top' placement, the popover will switch to a 'bottom'\n\t * placement. When using a 'left' placement, the popover will switch to a\n\t * `right' placement.\n\t * The popover will retain its alignment of 'start' or 'end' when flipping.\n\t *\n\t * @default true\n\t */\n\tflip?: boolean;\n\t/**\n\t * Determines whether tabbing is constrained to within the popover,\n\t * preventing keyboard focus from leaving the popover content without\n\t * explicit focus elswhere, or whether the popover remains part of the wider\n\t * tab order. If no value is passed, it will be derived from `focusOnMount`.\n\t *\n\t * @default `focusOnMount` !== false\n\t */\n\tconstrainTabbing?: boolean;\n\t/**\n\t * By default, the _first tabbable element_ in the popover will receive focus\n\t * when it mounts. This is the same as setting this prop to `\"firstElement\"`.\n\t * Specifying a `false` value disables the focus handling entirely (this\n\t * should only be done when an appropriately accessible substitute behavior\n\t * exists).\n\t *\n\t * @default 'firstElement'\n\t */\n\tfocusOnMount?: 'firstElement' | boolean;\n\t/**\n\t * A callback invoked when the focus leaves the opened popover. This should\n\t * only be provided in advanced use-cases when a popover should close under\n\t * specific circumstances (for example, if the new `document.activeElement`\n\t * is content of or otherwise controlling popover visibility).\n\t *\n\t * When not provided, the `onClose` callback will be called instead.\n\t */\n\tonFocusOutside?: ( event: SyntheticEvent ) => void;\n\t/**\n\t * Used to customize the header text shown when the popover is toggled to\n\t * fullscreen on mobile viewports (see the `expandOnMobile` prop).\n\t */\n\theaderTitle?: string;\n\t/**\n\t * Used to show/hide the arrow that points at the popover's anchor.\n\t *\n\t * @default true\n\t */\n\tnoArrow?: boolean;\n\t/**\n\t * The distance (in px) between the anchor and the popover.\n\t */\n\toffset?: number;\n\t/**\n\t * A callback invoked when the popover should be closed.\n\t */\n\tonClose?: () => void;\n\t/**\n\t * Used to specify the popover's position with respect to its anchor.\n\t *\n\t * @default 'bottom-start'\n\t */\n\tplacement?: PopoverPlacement;\n\t/**\n\t * Legacy way to specify the popover's position with respect to its anchor.\n\t * _Note: this prop is deprecated. Use the `placement` prop instead._\n\t */\n\tposition?:\n\t\t| `${ PositionYAxis }`\n\t\t| `${ PositionYAxis } ${ PositionXAxis }`\n\t\t| `${ PositionYAxis } ${ PositionXAxis } ${ PositionCorner }`;\n\t/**\n\t * Adjusts the size of the popover to prevent its contents from going out of\n\t * view when meeting the viewport edges.\n\t *\n\t * @default true\n\t */\n\tresize?: boolean;\n\t/**\n\t * Enables the `Popover` to shift in order to stay in view when meeting the\n\t * viewport edges.\n\t *\n\t * @default false\n\t */\n\tshift?: boolean;\n\t/**\n\t * Specifies the popover's style.\n\t *\n\t * Leave undefined for the default style. Other values are:\n\t * - 'unstyled': The popover is essentially without any visible style, it\n\t * has no background, border, outline or drop shadow, but\n\t * the popover contents are still displayed.\n\t * - 'toolbar': A style that has no elevation, but a high contrast with\n\t * other elements. This is matches the style of the\n\t * `Toolbar` component.\n\t *\n\t * @default undefined\n\t */\n\tvariant?: 'unstyled' | 'toolbar';\n\t/**\n\t * Whether to render the popover inline or within the slot.\n\t *\n\t * @default false\n\t */\n\tinline?: boolean;\n\t// Deprecated props\n\t/**\n\t * Prevent the popover from flipping and resizing when meeting the viewport\n\t * edges. _Note: this prop is deprecated. Instead, provide use the individual\n\t * `flip` and `resize` props._\n\t *\n\t * @deprecated\n\t */\n\t__unstableForcePosition?: boolean;\n\t/**\n\t * An object extending a `DOMRect` with an additional optional `ownerDocument`\n\t * property, used to specify a fixed popover position.\n\t *\n\t * @deprecated\n\t */\n\tanchorRect?: DomRectWithOwnerDocument;\n\t/**\n\t * Used to specify a fixed popover position. It can be an `Element`, a React\n\t * reference to an `element`, an object with a `top` and a `bottom` properties\n\t * (both pointing to elements), or a `range`.\n\t *\n\t * @deprecated\n\t */\n\tanchorRef?:\n\t\t| Element\n\t\t| PopoverAnchorRefReference\n\t\t| PopoverAnchorRefTopBottom\n\t\t| Range;\n\t/**\n\t * A function returning the same value as the one expected by the `anchorRect`\n\t * prop, used to specify a dynamic popover position.\n\t *\n\t * @deprecated\n\t */\n\tgetAnchorRect?: (\n\t\tfallbackReferenceElement: Element | null\n\t) => DomRectWithOwnerDocument;\n\t/**\n\t * Used to enable a different visual style for the popover.\n\t * _Note: this prop is deprecated. Use the `variant` prop with the\n\t * 'toolbar' value instead._\n\t *\n\t * @deprecated\n\t */\n\tisAlternate?: boolean;\n};\n\nexport type PopoverSlotProps = {\n\t/**\n\t * The name of the Slot in which the popover should be rendered. It should\n\t * be also passed to the corresponding `PopoverSlot` component.\n\t *\n\t * @default 'Popover'\n\t */\n\tname?: string;\n};\n"],"mappings":"","ignoreList":[]}
|
|
@@ -54,7 +54,7 @@ function UnconnectedToggleGroupControl(props, forwardedRef) {
|
|
|
54
54
|
const [selectedElement, setSelectedElement] = (0, _element.useState)();
|
|
55
55
|
const [controlElement, setControlElement] = (0, _element.useState)();
|
|
56
56
|
const refs = (0, _compose.useMergeRefs)([setControlElement, forwardedRef]);
|
|
57
|
-
const selectedRect = (0, _elementRect.useTrackElementOffsetRect)(value
|
|
57
|
+
const selectedRect = (0, _elementRect.useTrackElementOffsetRect)(value !== null && value !== undefined ? selectedElement : undefined);
|
|
58
58
|
(0, _useAnimatedOffsetRect.useAnimatedOffsetRect)(controlElement, selectedRect, {
|
|
59
59
|
prefix: 'selected',
|
|
60
60
|
dataAttribute: 'indicator-animated',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_element","require","_context","_hooks","_baseControl","_interopRequireDefault","_styles","_interopRequireWildcard","styles","_asRadioGroup","_asButtonGroup","_elementRect","_compose","_useAnimatedOffsetRect","_deprecated36pxSize","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","UnconnectedToggleGroupControl","props","forwardedRef","__nextHasNoMarginBottom","__next40pxDefaultSize","__shouldNotWarnDeprecated36pxSize","className","isAdaptiveWidth","isBlock","isDeselectable","label","hideLabelFromVision","help","onChange","size","value","children","otherProps","useContextSystem","normalizedSize","selectedElement","setSelectedElement","useState","controlElement","setControlElement","refs","useMergeRefs","selectedRect","useTrackElementOffsetRect","undefined","useAnimatedOffsetRect","prefix","dataAttribute","transitionEndFilter","event","pseudoElement","roundRect","cx","useCx","classes","useMemo","toggleGroupControl","block","MainControl","ToggleGroupControlAsButtonGroup","ToggleGroupControlAsRadioGroup","maybeWarnDeprecated36pxSize","componentName","jsxs","__associatedWPComponentName","jsx","VisualLabelWrapper","VisualLabel","ref","ToggleGroupControl","exports","contextConnect","_default"],"sources":["@wordpress/components/src/toggle-group-control/toggle-group-control/component.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ForwardedRef } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { useMemo, useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport type { WordPressComponentProps } from '../../context';\nimport { contextConnect, useContextSystem } from '../../context';\nimport { useCx } from '../../utils/hooks';\nimport BaseControl from '../../base-control';\nimport type { ToggleGroupControlProps } from '../types';\nimport { VisualLabelWrapper } from './styles';\nimport * as styles from './styles';\nimport { ToggleGroupControlAsRadioGroup } from './as-radio-group';\nimport { ToggleGroupControlAsButtonGroup } from './as-button-group';\nimport { useTrackElementOffsetRect } from '../../utils/element-rect';\nimport { useMergeRefs } from '@wordpress/compose';\nimport { useAnimatedOffsetRect } from '../../utils/hooks/use-animated-offset-rect';\nimport { maybeWarnDeprecated36pxSize } from '../../utils/deprecated-36px-size';\n\nfunction UnconnectedToggleGroupControl(\n\tprops: WordPressComponentProps< ToggleGroupControlProps, 'div', false >,\n\tforwardedRef: ForwardedRef< any >\n) {\n\tconst {\n\t\t__nextHasNoMarginBottom = false,\n\t\t__next40pxDefaultSize = false,\n\t\t__shouldNotWarnDeprecated36pxSize,\n\t\tclassName,\n\t\tisAdaptiveWidth = false,\n\t\tisBlock = false,\n\t\tisDeselectable = false,\n\t\tlabel,\n\t\thideLabelFromVision = false,\n\t\thelp,\n\t\tonChange,\n\t\tsize = 'default',\n\t\tvalue,\n\t\tchildren,\n\t\t...otherProps\n\t} = useContextSystem( props, 'ToggleGroupControl' );\n\n\tconst normalizedSize =\n\t\t__next40pxDefaultSize && size === 'default' ? '__unstable-large' : size;\n\n\tconst [ selectedElement, setSelectedElement ] = useState< HTMLElement >();\n\tconst [ controlElement, setControlElement ] = useState< HTMLElement >();\n\tconst refs = useMergeRefs( [ setControlElement, forwardedRef ] );\n\tconst selectedRect = useTrackElementOffsetRect(\n\t\tvalue || value === 0 ? selectedElement : undefined\n\t);\n\tuseAnimatedOffsetRect( controlElement, selectedRect, {\n\t\tprefix: 'selected',\n\t\tdataAttribute: 'indicator-animated',\n\t\ttransitionEndFilter: ( event ) => event.pseudoElement === '::before',\n\t\troundRect: true,\n\t} );\n\n\tconst cx = useCx();\n\n\tconst classes = useMemo(\n\t\t() =>\n\t\t\tcx(\n\t\t\t\tstyles.toggleGroupControl( {\n\t\t\t\t\tisBlock,\n\t\t\t\t\tisDeselectable,\n\t\t\t\t\tsize: normalizedSize,\n\t\t\t\t} ),\n\t\t\t\tisBlock && styles.block,\n\t\t\t\tclassName\n\t\t\t),\n\t\t[ className, cx, isBlock, isDeselectable, normalizedSize ]\n\t);\n\n\tconst MainControl = isDeselectable\n\t\t? ToggleGroupControlAsButtonGroup\n\t\t: ToggleGroupControlAsRadioGroup;\n\n\tmaybeWarnDeprecated36pxSize( {\n\t\tcomponentName: 'ToggleGroupControl',\n\t\tsize,\n\t\t__next40pxDefaultSize,\n\t\t__shouldNotWarnDeprecated36pxSize,\n\t} );\n\n\treturn (\n\t\t<BaseControl\n\t\t\thelp={ help }\n\t\t\t__nextHasNoMarginBottom={ __nextHasNoMarginBottom }\n\t\t\t__associatedWPComponentName=\"ToggleGroupControl\"\n\t\t>\n\t\t\t{ ! hideLabelFromVision && (\n\t\t\t\t<VisualLabelWrapper>\n\t\t\t\t\t<BaseControl.VisualLabel>{ label }</BaseControl.VisualLabel>\n\t\t\t\t</VisualLabelWrapper>\n\t\t\t) }\n\t\t\t<MainControl\n\t\t\t\t{ ...otherProps }\n\t\t\t\tsetSelectedElement={ setSelectedElement }\n\t\t\t\tclassName={ classes }\n\t\t\t\tisAdaptiveWidth={ isAdaptiveWidth }\n\t\t\t\tlabel={ label }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tref={ refs }\n\t\t\t\tsize={ normalizedSize }\n\t\t\t\tvalue={ value }\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</MainControl>\n\t\t</BaseControl>\n\t);\n}\n\n/**\n * `ToggleGroupControl` is a form component that lets users choose options\n * represented in horizontal segments. To render options for this control use\n * `ToggleGroupControlOption` component.\n *\n * This component is intended for selecting a single persistent value from a set of options,\n * similar to a how a radio button group would work. If you simply want a toggle to switch between views,\n * use a `TabPanel` instead.\n *\n * Only use this control when you know for sure the labels of items inside won't\n * wrap. For items with longer labels, you can consider a `SelectControl` or a\n * `CustomSelectControl` component instead.\n *\n * ```jsx\n * import {\n * __experimentalToggleGroupControl as ToggleGroupControl,\n * __experimentalToggleGroupControlOption as ToggleGroupControlOption,\n * } from '@wordpress/components';\n *\n * function Example() {\n * return (\n * <ToggleGroupControl\n * label=\"my label\"\n * value=\"vertical\"\n * isBlock\n * __nextHasNoMarginBottom\n * __next40pxDefaultSize\n * >\n * <ToggleGroupControlOption value=\"horizontal\" label=\"Horizontal\" />\n * <ToggleGroupControlOption value=\"vertical\" label=\"Vertical\" />\n * </ToggleGroupControl>\n * );\n * }\n * ```\n */\nexport const ToggleGroupControl = contextConnect(\n\tUnconnectedToggleGroupControl,\n\t'ToggleGroupControl'\n);\n\nexport default ToggleGroupControl;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_element","require","_context","_hooks","_baseControl","_interopRequireDefault","_styles","_interopRequireWildcard","styles","_asRadioGroup","_asButtonGroup","_elementRect","_compose","_useAnimatedOffsetRect","_deprecated36pxSize","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","UnconnectedToggleGroupControl","props","forwardedRef","__nextHasNoMarginBottom","__next40pxDefaultSize","__shouldNotWarnDeprecated36pxSize","className","isAdaptiveWidth","isBlock","isDeselectable","label","hideLabelFromVision","help","onChange","size","value","children","otherProps","useContextSystem","normalizedSize","selectedElement","setSelectedElement","useState","controlElement","setControlElement","refs","useMergeRefs","selectedRect","useTrackElementOffsetRect","undefined","useAnimatedOffsetRect","prefix","dataAttribute","transitionEndFilter","event","pseudoElement","roundRect","cx","useCx","classes","useMemo","toggleGroupControl","block","MainControl","ToggleGroupControlAsButtonGroup","ToggleGroupControlAsRadioGroup","maybeWarnDeprecated36pxSize","componentName","jsxs","__associatedWPComponentName","jsx","VisualLabelWrapper","VisualLabel","ref","ToggleGroupControl","exports","contextConnect","_default"],"sources":["@wordpress/components/src/toggle-group-control/toggle-group-control/component.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ForwardedRef } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { useMemo, useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport type { WordPressComponentProps } from '../../context';\nimport { contextConnect, useContextSystem } from '../../context';\nimport { useCx } from '../../utils/hooks';\nimport BaseControl from '../../base-control';\nimport type { ToggleGroupControlProps } from '../types';\nimport { VisualLabelWrapper } from './styles';\nimport * as styles from './styles';\nimport { ToggleGroupControlAsRadioGroup } from './as-radio-group';\nimport { ToggleGroupControlAsButtonGroup } from './as-button-group';\nimport { useTrackElementOffsetRect } from '../../utils/element-rect';\nimport { useMergeRefs } from '@wordpress/compose';\nimport { useAnimatedOffsetRect } from '../../utils/hooks/use-animated-offset-rect';\nimport { maybeWarnDeprecated36pxSize } from '../../utils/deprecated-36px-size';\n\nfunction UnconnectedToggleGroupControl(\n\tprops: WordPressComponentProps< ToggleGroupControlProps, 'div', false >,\n\tforwardedRef: ForwardedRef< any >\n) {\n\tconst {\n\t\t__nextHasNoMarginBottom = false,\n\t\t__next40pxDefaultSize = false,\n\t\t__shouldNotWarnDeprecated36pxSize,\n\t\tclassName,\n\t\tisAdaptiveWidth = false,\n\t\tisBlock = false,\n\t\tisDeselectable = false,\n\t\tlabel,\n\t\thideLabelFromVision = false,\n\t\thelp,\n\t\tonChange,\n\t\tsize = 'default',\n\t\tvalue,\n\t\tchildren,\n\t\t...otherProps\n\t} = useContextSystem( props, 'ToggleGroupControl' );\n\n\tconst normalizedSize =\n\t\t__next40pxDefaultSize && size === 'default' ? '__unstable-large' : size;\n\n\tconst [ selectedElement, setSelectedElement ] = useState< HTMLElement >();\n\tconst [ controlElement, setControlElement ] = useState< HTMLElement >();\n\tconst refs = useMergeRefs( [ setControlElement, forwardedRef ] );\n\tconst selectedRect = useTrackElementOffsetRect(\n\t\tvalue !== null && value !== undefined ? selectedElement : undefined\n\t);\n\tuseAnimatedOffsetRect( controlElement, selectedRect, {\n\t\tprefix: 'selected',\n\t\tdataAttribute: 'indicator-animated',\n\t\ttransitionEndFilter: ( event ) => event.pseudoElement === '::before',\n\t\troundRect: true,\n\t} );\n\n\tconst cx = useCx();\n\n\tconst classes = useMemo(\n\t\t() =>\n\t\t\tcx(\n\t\t\t\tstyles.toggleGroupControl( {\n\t\t\t\t\tisBlock,\n\t\t\t\t\tisDeselectable,\n\t\t\t\t\tsize: normalizedSize,\n\t\t\t\t} ),\n\t\t\t\tisBlock && styles.block,\n\t\t\t\tclassName\n\t\t\t),\n\t\t[ className, cx, isBlock, isDeselectable, normalizedSize ]\n\t);\n\n\tconst MainControl = isDeselectable\n\t\t? ToggleGroupControlAsButtonGroup\n\t\t: ToggleGroupControlAsRadioGroup;\n\n\tmaybeWarnDeprecated36pxSize( {\n\t\tcomponentName: 'ToggleGroupControl',\n\t\tsize,\n\t\t__next40pxDefaultSize,\n\t\t__shouldNotWarnDeprecated36pxSize,\n\t} );\n\n\treturn (\n\t\t<BaseControl\n\t\t\thelp={ help }\n\t\t\t__nextHasNoMarginBottom={ __nextHasNoMarginBottom }\n\t\t\t__associatedWPComponentName=\"ToggleGroupControl\"\n\t\t>\n\t\t\t{ ! hideLabelFromVision && (\n\t\t\t\t<VisualLabelWrapper>\n\t\t\t\t\t<BaseControl.VisualLabel>{ label }</BaseControl.VisualLabel>\n\t\t\t\t</VisualLabelWrapper>\n\t\t\t) }\n\t\t\t<MainControl\n\t\t\t\t{ ...otherProps }\n\t\t\t\tsetSelectedElement={ setSelectedElement }\n\t\t\t\tclassName={ classes }\n\t\t\t\tisAdaptiveWidth={ isAdaptiveWidth }\n\t\t\t\tlabel={ label }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tref={ refs }\n\t\t\t\tsize={ normalizedSize }\n\t\t\t\tvalue={ value }\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</MainControl>\n\t\t</BaseControl>\n\t);\n}\n\n/**\n * `ToggleGroupControl` is a form component that lets users choose options\n * represented in horizontal segments. To render options for this control use\n * `ToggleGroupControlOption` component.\n *\n * This component is intended for selecting a single persistent value from a set of options,\n * similar to a how a radio button group would work. If you simply want a toggle to switch between views,\n * use a `TabPanel` instead.\n *\n * Only use this control when you know for sure the labels of items inside won't\n * wrap. For items with longer labels, you can consider a `SelectControl` or a\n * `CustomSelectControl` component instead.\n *\n * ```jsx\n * import {\n * __experimentalToggleGroupControl as ToggleGroupControl,\n * __experimentalToggleGroupControlOption as ToggleGroupControlOption,\n * } from '@wordpress/components';\n *\n * function Example() {\n * return (\n * <ToggleGroupControl\n * label=\"my label\"\n * value=\"vertical\"\n * isBlock\n * __nextHasNoMarginBottom\n * __next40pxDefaultSize\n * >\n * <ToggleGroupControlOption value=\"horizontal\" label=\"Horizontal\" />\n * <ToggleGroupControlOption value=\"vertical\" label=\"Vertical\" />\n * </ToggleGroupControl>\n * );\n * }\n * ```\n */\nexport const ToggleGroupControl = contextConnect(\n\tUnconnectedToggleGroupControl,\n\t'ToggleGroupControl'\n);\n\nexport default ToggleGroupControl;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -372,15 +372,16 @@ const useCustomUnits = ({
|
|
|
372
372
|
defaultValues
|
|
373
373
|
}) => {
|
|
374
374
|
const customUnitsToReturn = filterUnitsWithSettings(availableUnits, units);
|
|
375
|
-
if (defaultValues) {
|
|
376
|
-
customUnitsToReturn
|
|
377
|
-
if (defaultValues[unit.value]) {
|
|
378
|
-
const [parsedDefaultValue] = parseQuantityAndUnitFromRawValue(defaultValues[unit.value]);
|
|
379
|
-
customUnitsToReturn[i].default = parsedDefaultValue;
|
|
380
|
-
}
|
|
381
|
-
});
|
|
375
|
+
if (!defaultValues) {
|
|
376
|
+
return customUnitsToReturn;
|
|
382
377
|
}
|
|
383
|
-
return customUnitsToReturn
|
|
378
|
+
return customUnitsToReturn.map(unit => {
|
|
379
|
+
const [defaultValue] = defaultValues[unit.value] ? parseQuantityAndUnitFromRawValue(defaultValues[unit.value]) : [];
|
|
380
|
+
return {
|
|
381
|
+
...unit,
|
|
382
|
+
default: defaultValue
|
|
383
|
+
};
|
|
384
|
+
});
|
|
384
385
|
};
|
|
385
386
|
|
|
386
387
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_i18n","require","_element","isWeb","Platform","OS","allUnits","px","value","label","__","a11yLabel","step","em","_x","rem","vw","vh","vmin","vmax","ch","ex","cm","mm","in","pc","pt","svw","svh","svi","svb","svmin","lvw","lvh","lvi","lvb","lvmin","dvw","dvh","dvi","dvb","dvmin","dvmax","svmax","lvmax","ALL_CSS_UNITS","exports","Object","values","CSS_UNITS","DEFAULT_UNIT","getParsedQuantityAndUnit","rawValue","fallbackUnit","allowedUnits","initialValue","parseQuantityAndUnitFromRawValue","hasUnits","units","Array","isArray","length","trimmedValue","quantityToReturn","trim","parsedQuantity","parseFloat","isFinite","undefined","unitMatch","match","matchedUnit","toLowerCase","unitToReturn","find","item","getValidParsedQuantityAndUnit","fallbackQuantity","parsedUnit","getAccessibleLabelForUnit","unit","filterUnitsWithSettings","allowedUnitValues","availableUnits","filter","includes","useCustomUnits","defaultValues","customUnitsToReturn","forEach","i","parsedDefaultValue","default","getUnitsWithCurrentUnit","legacyUnit","unitsToReturn","currentUnit","some","unshift"],"sources":["@wordpress/components/src/unit-control/utils.ts"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport { Platform } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport type { WPUnitControlUnit } from './types';\n\nconst isWeb = Platform.OS === 'web';\n\nconst allUnits: Record< string, WPUnitControlUnit > = {\n\tpx: {\n\t\tvalue: 'px',\n\t\tlabel: isWeb ? 'px' : __( 'Pixels (px)' ),\n\t\ta11yLabel: __( 'Pixels (px)' ),\n\t\tstep: 1,\n\t},\n\t'%': {\n\t\tvalue: '%',\n\t\tlabel: isWeb ? '%' : __( 'Percentage (%)' ),\n\t\ta11yLabel: __( 'Percent (%)' ),\n\t\tstep: 0.1,\n\t},\n\tem: {\n\t\tvalue: 'em',\n\t\tlabel: isWeb ? 'em' : __( 'Relative to parent font size (em)' ),\n\t\ta11yLabel: _x( 'ems', 'Relative to parent font size (em)' ),\n\t\tstep: 0.01,\n\t},\n\trem: {\n\t\tvalue: 'rem',\n\t\tlabel: isWeb ? 'rem' : __( 'Relative to root font size (rem)' ),\n\t\ta11yLabel: _x( 'rems', 'Relative to root font size (rem)' ),\n\t\tstep: 0.01,\n\t},\n\tvw: {\n\t\tvalue: 'vw',\n\t\tlabel: isWeb ? 'vw' : __( 'Viewport width (vw)' ),\n\t\ta11yLabel: __( 'Viewport width (vw)' ),\n\t\tstep: 0.1,\n\t},\n\tvh: {\n\t\tvalue: 'vh',\n\t\tlabel: isWeb ? 'vh' : __( 'Viewport height (vh)' ),\n\t\ta11yLabel: __( 'Viewport height (vh)' ),\n\t\tstep: 0.1,\n\t},\n\tvmin: {\n\t\tvalue: 'vmin',\n\t\tlabel: isWeb ? 'vmin' : __( 'Viewport smallest dimension (vmin)' ),\n\t\ta11yLabel: __( 'Viewport smallest dimension (vmin)' ),\n\t\tstep: 0.1,\n\t},\n\tvmax: {\n\t\tvalue: 'vmax',\n\t\tlabel: isWeb ? 'vmax' : __( 'Viewport largest dimension (vmax)' ),\n\t\ta11yLabel: __( 'Viewport largest dimension (vmax)' ),\n\t\tstep: 0.1,\n\t},\n\tch: {\n\t\tvalue: 'ch',\n\t\tlabel: isWeb ? 'ch' : __( 'Width of the zero (0) character (ch)' ),\n\t\ta11yLabel: __( 'Width of the zero (0) character (ch)' ),\n\t\tstep: 0.01,\n\t},\n\tex: {\n\t\tvalue: 'ex',\n\t\tlabel: isWeb ? 'ex' : __( 'x-height of the font (ex)' ),\n\t\ta11yLabel: __( 'x-height of the font (ex)' ),\n\t\tstep: 0.01,\n\t},\n\tcm: {\n\t\tvalue: 'cm',\n\t\tlabel: isWeb ? 'cm' : __( 'Centimeters (cm)' ),\n\t\ta11yLabel: __( 'Centimeters (cm)' ),\n\t\tstep: 0.001,\n\t},\n\tmm: {\n\t\tvalue: 'mm',\n\t\tlabel: isWeb ? 'mm' : __( 'Millimeters (mm)' ),\n\t\ta11yLabel: __( 'Millimeters (mm)' ),\n\t\tstep: 0.1,\n\t},\n\tin: {\n\t\tvalue: 'in',\n\t\tlabel: isWeb ? 'in' : __( 'Inches (in)' ),\n\t\ta11yLabel: __( 'Inches (in)' ),\n\t\tstep: 0.001,\n\t},\n\tpc: {\n\t\tvalue: 'pc',\n\t\tlabel: isWeb ? 'pc' : __( 'Picas (pc)' ),\n\t\ta11yLabel: __( 'Picas (pc)' ),\n\t\tstep: 1,\n\t},\n\tpt: {\n\t\tvalue: 'pt',\n\t\tlabel: isWeb ? 'pt' : __( 'Points (pt)' ),\n\t\ta11yLabel: __( 'Points (pt)' ),\n\t\tstep: 1,\n\t},\n\tsvw: {\n\t\tvalue: 'svw',\n\t\tlabel: isWeb ? 'svw' : __( 'Small viewport width (svw)' ),\n\t\ta11yLabel: __( 'Small viewport width (svw)' ),\n\t\tstep: 0.1,\n\t},\n\tsvh: {\n\t\tvalue: 'svh',\n\t\tlabel: isWeb ? 'svh' : __( 'Small viewport height (svh)' ),\n\t\ta11yLabel: __( 'Small viewport height (svh)' ),\n\t\tstep: 0.1,\n\t},\n\tsvi: {\n\t\tvalue: 'svi',\n\t\tlabel: isWeb\n\t\t\t? 'svi'\n\t\t\t: __( 'Viewport smallest size in the inline direction (svi)' ),\n\t\ta11yLabel: __( 'Small viewport width or height (svi)' ),\n\t\tstep: 0.1,\n\t},\n\tsvb: {\n\t\tvalue: 'svb',\n\t\tlabel: isWeb\n\t\t\t? 'svb'\n\t\t\t: __( 'Viewport smallest size in the block direction (svb)' ),\n\t\ta11yLabel: __( 'Small viewport width or height (svb)' ),\n\t\tstep: 0.1,\n\t},\n\tsvmin: {\n\t\tvalue: 'svmin',\n\t\tlabel: isWeb\n\t\t\t? 'svmin'\n\t\t\t: __( 'Small viewport smallest dimension (svmin)' ),\n\t\ta11yLabel: __( 'Small viewport smallest dimension (svmin)' ),\n\t\tstep: 0.1,\n\t},\n\tlvw: {\n\t\tvalue: 'lvw',\n\t\tlabel: isWeb ? 'lvw' : __( 'Large viewport width (lvw)' ),\n\t\ta11yLabel: __( 'Large viewport width (lvw)' ),\n\t\tstep: 0.1,\n\t},\n\tlvh: {\n\t\tvalue: 'lvh',\n\t\tlabel: isWeb ? 'lvh' : __( 'Large viewport height (lvh)' ),\n\t\ta11yLabel: __( 'Large viewport height (lvh)' ),\n\t\tstep: 0.1,\n\t},\n\tlvi: {\n\t\tvalue: 'lvi',\n\t\tlabel: isWeb ? 'lvi' : __( 'Large viewport width or height (lvi)' ),\n\t\ta11yLabel: __( 'Large viewport width or height (lvi)' ),\n\t\tstep: 0.1,\n\t},\n\tlvb: {\n\t\tvalue: 'lvb',\n\t\tlabel: isWeb ? 'lvb' : __( 'Large viewport width or height (lvb)' ),\n\t\ta11yLabel: __( 'Large viewport width or height (lvb)' ),\n\t\tstep: 0.1,\n\t},\n\tlvmin: {\n\t\tvalue: 'lvmin',\n\t\tlabel: isWeb\n\t\t\t? 'lvmin'\n\t\t\t: __( 'Large viewport smallest dimension (lvmin)' ),\n\t\ta11yLabel: __( 'Large viewport smallest dimension (lvmin)' ),\n\t\tstep: 0.1,\n\t},\n\tdvw: {\n\t\tvalue: 'dvw',\n\t\tlabel: isWeb ? 'dvw' : __( 'Dynamic viewport width (dvw)' ),\n\t\ta11yLabel: __( 'Dynamic viewport width (dvw)' ),\n\t\tstep: 0.1,\n\t},\n\tdvh: {\n\t\tvalue: 'dvh',\n\t\tlabel: isWeb ? 'dvh' : __( 'Dynamic viewport height (dvh)' ),\n\t\ta11yLabel: __( 'Dynamic viewport height (dvh)' ),\n\t\tstep: 0.1,\n\t},\n\tdvi: {\n\t\tvalue: 'dvi',\n\t\tlabel: isWeb ? 'dvi' : __( 'Dynamic viewport width or height (dvi)' ),\n\t\ta11yLabel: __( 'Dynamic viewport width or height (dvi)' ),\n\t\tstep: 0.1,\n\t},\n\tdvb: {\n\t\tvalue: 'dvb',\n\t\tlabel: isWeb ? 'dvb' : __( 'Dynamic viewport width or height (dvb)' ),\n\t\ta11yLabel: __( 'Dynamic viewport width or height (dvb)' ),\n\t\tstep: 0.1,\n\t},\n\tdvmin: {\n\t\tvalue: 'dvmin',\n\t\tlabel: isWeb\n\t\t\t? 'dvmin'\n\t\t\t: __( 'Dynamic viewport smallest dimension (dvmin)' ),\n\t\ta11yLabel: __( 'Dynamic viewport smallest dimension (dvmin)' ),\n\t\tstep: 0.1,\n\t},\n\tdvmax: {\n\t\tvalue: 'dvmax',\n\t\tlabel: isWeb\n\t\t\t? 'dvmax'\n\t\t\t: __( 'Dynamic viewport largest dimension (dvmax)' ),\n\t\ta11yLabel: __( 'Dynamic viewport largest dimension (dvmax)' ),\n\t\tstep: 0.1,\n\t},\n\tsvmax: {\n\t\tvalue: 'svmax',\n\t\tlabel: isWeb\n\t\t\t? 'svmax'\n\t\t\t: __( 'Small viewport largest dimension (svmax)' ),\n\t\ta11yLabel: __( 'Small viewport largest dimension (svmax)' ),\n\t\tstep: 0.1,\n\t},\n\tlvmax: {\n\t\tvalue: 'lvmax',\n\t\tlabel: isWeb\n\t\t\t? 'lvmax'\n\t\t\t: __( 'Large viewport largest dimension (lvmax)' ),\n\t\ta11yLabel: __( 'Large viewport largest dimension (lvmax)' ),\n\t\tstep: 0.1,\n\t},\n};\n\n/**\n * An array of all available CSS length units.\n */\nexport const ALL_CSS_UNITS = Object.values( allUnits );\n\n/**\n * Units of measurements. `a11yLabel` is used by screenreaders.\n */\nexport const CSS_UNITS = [\n\tallUnits.px,\n\tallUnits[ '%' ],\n\tallUnits.em,\n\tallUnits.rem,\n\tallUnits.vw,\n\tallUnits.vh,\n];\n\nexport const DEFAULT_UNIT = allUnits.px;\n\n/**\n * Handles legacy value + unit handling.\n * This component use to manage both incoming value and units separately.\n *\n * Moving forward, ideally the value should be a string that contains both\n * the value and unit, example: '10px'\n *\n * @param rawValue The raw value as a string (may or may not contain the unit)\n * @param fallbackUnit The unit used as a fallback, if not unit is detected in the `value`\n * @param allowedUnits Units to derive from.\n * @return The extracted quantity and unit. The quantity can be `undefined` in case the raw value\n * could not be parsed to a number correctly. The unit can be `undefined` in case the unit parse\n * from the raw value could not be matched against the list of allowed units.\n */\nexport function getParsedQuantityAndUnit(\n\trawValue?: string | number,\n\tfallbackUnit?: string,\n\tallowedUnits?: WPUnitControlUnit[]\n): [ number | undefined, string | undefined ] {\n\tconst initialValue = fallbackUnit\n\t\t? `${ rawValue ?? '' }${ fallbackUnit }`\n\t\t: rawValue;\n\n\treturn parseQuantityAndUnitFromRawValue( initialValue, allowedUnits );\n}\n\n/**\n * Checks if units are defined.\n *\n * @param units List of units.\n * @return Whether the list actually contains any units.\n */\nexport function hasUnits(\n\tunits?: WPUnitControlUnit[]\n): units is WPUnitControlUnit[] {\n\t// Although the `isArray` check shouldn't be necessary (given the signature of\n\t// this typed function), it's better to stay on the side of caution, since\n\t// this function may be called from un-typed environments.\n\treturn Array.isArray( units ) && !! units.length;\n}\n\n/**\n * Parses a quantity and unit from a raw string value, given a list of allowed\n * units and otherwise falling back to the default unit.\n *\n * @param rawValue The raw value as a string (may or may not contain the unit)\n * @param allowedUnits Units to derive from.\n * @return The extracted quantity and unit. The quantity can be `undefined` in case the raw value\n * could not be parsed to a number correctly. The unit can be `undefined` in case the unit parsed\n * from the raw value could not be matched against the list of allowed units.\n */\nexport function parseQuantityAndUnitFromRawValue(\n\trawValue?: string | number,\n\tallowedUnits: WPUnitControlUnit[] = ALL_CSS_UNITS\n): [ number | undefined, string | undefined ] {\n\tlet trimmedValue;\n\tlet quantityToReturn;\n\n\tif ( typeof rawValue !== 'undefined' || rawValue === null ) {\n\t\ttrimmedValue = `${ rawValue }`.trim();\n\t\tconst parsedQuantity = parseFloat( trimmedValue );\n\t\tquantityToReturn = ! isFinite( parsedQuantity )\n\t\t\t? undefined\n\t\t\t: parsedQuantity;\n\t}\n\n\tconst unitMatch = trimmedValue?.match( /[\\d.\\-\\+]*\\s*(.*)/ );\n\tconst matchedUnit = unitMatch?.[ 1 ]?.toLowerCase();\n\tlet unitToReturn: string | undefined;\n\tif ( hasUnits( allowedUnits ) ) {\n\t\tconst match = allowedUnits.find(\n\t\t\t( item ) => item.value === matchedUnit\n\t\t);\n\t\tunitToReturn = match?.value;\n\t} else {\n\t\tunitToReturn = DEFAULT_UNIT.value;\n\t}\n\n\treturn [ quantityToReturn, unitToReturn ];\n}\n\n/**\n * Parses quantity and unit from a raw value. Validates parsed value, using fallback\n * value if invalid.\n *\n * @param rawValue The next value.\n * @param allowedUnits Units to derive from.\n * @param fallbackQuantity The fallback quantity, used in case it's not possible to parse a valid quantity from the raw value.\n * @param fallbackUnit The fallback unit, used in case it's not possible to parse a valid unit from the raw value.\n * @return The extracted quantity and unit. The quantity can be `undefined` in case the raw value\n * could not be parsed to a number correctly, and the `fallbackQuantity` was also `undefined`. The\n * unit can be `undefined` only if the unit parsed from the raw value could not be matched against\n * the list of allowed units, the `fallbackQuantity` is also `undefined` and the list of\n * `allowedUnits` is passed empty.\n */\nexport function getValidParsedQuantityAndUnit(\n\trawValue: string | number,\n\tallowedUnits?: WPUnitControlUnit[],\n\tfallbackQuantity?: number,\n\tfallbackUnit?: string\n): [ number | undefined, string | undefined ] {\n\tconst [ parsedQuantity, parsedUnit ] = parseQuantityAndUnitFromRawValue(\n\t\trawValue,\n\t\tallowedUnits\n\t);\n\n\t// The parsed value from `parseQuantityAndUnitFromRawValue` should now be\n\t// either a real number or undefined. If undefined, use the fallback value.\n\tconst quantityToReturn = parsedQuantity ?? fallbackQuantity;\n\n\t// If no unit is parsed from the raw value, or if the fallback unit is not\n\t// defined, use the first value from the list of allowed units as fallback.\n\tlet unitToReturn = parsedUnit || fallbackUnit;\n\n\tif ( ! unitToReturn && hasUnits( allowedUnits ) ) {\n\t\tunitToReturn = allowedUnits[ 0 ].value;\n\t}\n\n\treturn [ quantityToReturn, unitToReturn ];\n}\n\n/**\n * Takes a unit value and finds the matching accessibility label for the\n * unit abbreviation.\n *\n * @param unit Unit value (example: `px`)\n * @return a11y label for the unit abbreviation\n */\nexport function getAccessibleLabelForUnit( unit: string ): string | undefined {\n\tconst match = ALL_CSS_UNITS.find( ( item ) => item.value === unit );\n\treturn match?.a11yLabel ? match?.a11yLabel : match?.value;\n}\n\n/**\n * Filters available units based on values defined a list of allowed unit values.\n *\n * @param allowedUnitValues Collection of allowed unit value strings.\n * @param availableUnits Collection of available unit objects.\n * @return Filtered units.\n */\nexport function filterUnitsWithSettings(\n\tallowedUnitValues: string[] = [],\n\tavailableUnits: WPUnitControlUnit[]\n): WPUnitControlUnit[] {\n\t// Although the `isArray` check shouldn't be necessary (given the signature of\n\t// this typed function), it's better to stay on the side of caution, since\n\t// this function may be called from un-typed environments.\n\treturn Array.isArray( availableUnits )\n\t\t? availableUnits.filter( ( unit ) =>\n\t\t\t\tallowedUnitValues.includes( unit.value )\n\t\t )\n\t\t: [];\n}\n\n/**\n * Custom hook to retrieve and consolidate units setting from add_theme_support().\n * TODO: ideally this hook shouldn't be needed\n * https://github.com/WordPress/gutenberg/pull/31822#discussion_r633280823\n *\n * @param args An object containing units, settingPath & defaultUnits.\n * @param args.units Collection of all potentially available units.\n * @param args.availableUnits Collection of unit value strings for filtering available units.\n * @param args.defaultValues Collection of default values for defined units. Example: `{ px: 350, em: 15 }`.\n *\n * @return Filtered list of units, with their default values updated following the `defaultValues`\n * argument's property.\n */\nexport const useCustomUnits = ( {\n\tunits = ALL_CSS_UNITS,\n\tavailableUnits = [],\n\tdefaultValues,\n}: {\n\tunits?: WPUnitControlUnit[];\n\tavailableUnits?: string[];\n\tdefaultValues?: Record< string, number >;\n} ): WPUnitControlUnit[] => {\n\tconst customUnitsToReturn = filterUnitsWithSettings(\n\t\tavailableUnits,\n\t\tunits\n\t);\n\n\tif ( defaultValues ) {\n\t\tcustomUnitsToReturn.forEach( ( unit, i ) => {\n\t\t\tif ( defaultValues[ unit.value ] ) {\n\t\t\t\tconst [ parsedDefaultValue ] = parseQuantityAndUnitFromRawValue(\n\t\t\t\t\tdefaultValues[ unit.value ]\n\t\t\t\t);\n\n\t\t\t\tcustomUnitsToReturn[ i ].default = parsedDefaultValue;\n\t\t\t}\n\t\t} );\n\t}\n\n\treturn customUnitsToReturn;\n};\n\n/**\n * Get available units with the unit for the currently selected value\n * prepended if it is not available in the list of units.\n *\n * This is useful to ensure that the current value's unit is always\n * accurately displayed in the UI, even if the intention is to hide\n * the availability of that unit.\n *\n * @param rawValue Selected value to parse.\n * @param legacyUnit Legacy unit value, if rawValue needs it appended.\n * @param units List of available units.\n *\n * @return A collection of units containing the unit for the current value.\n */\nexport function getUnitsWithCurrentUnit(\n\trawValue?: string | number,\n\tlegacyUnit?: string,\n\tunits: WPUnitControlUnit[] = ALL_CSS_UNITS\n): WPUnitControlUnit[] {\n\tconst unitsToReturn = Array.isArray( units ) ? [ ...units ] : [];\n\tconst [ , currentUnit ] = getParsedQuantityAndUnit(\n\t\trawValue,\n\t\tlegacyUnit,\n\t\tALL_CSS_UNITS\n\t);\n\n\tif (\n\t\tcurrentUnit &&\n\t\t! unitsToReturn.some( ( unit ) => unit.value === currentUnit )\n\t) {\n\t\tif ( allUnits[ currentUnit ] ) {\n\t\t\tunitsToReturn.unshift( allUnits[ currentUnit ] );\n\t\t}\n\t}\n\n\treturn unitsToReturn;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_i18n","require","_element","isWeb","Platform","OS","allUnits","px","value","label","__","a11yLabel","step","em","_x","rem","vw","vh","vmin","vmax","ch","ex","cm","mm","in","pc","pt","svw","svh","svi","svb","svmin","lvw","lvh","lvi","lvb","lvmin","dvw","dvh","dvi","dvb","dvmin","dvmax","svmax","lvmax","ALL_CSS_UNITS","exports","Object","values","CSS_UNITS","DEFAULT_UNIT","getParsedQuantityAndUnit","rawValue","fallbackUnit","allowedUnits","initialValue","parseQuantityAndUnitFromRawValue","hasUnits","units","Array","isArray","length","trimmedValue","quantityToReturn","trim","parsedQuantity","parseFloat","isFinite","undefined","unitMatch","match","matchedUnit","toLowerCase","unitToReturn","find","item","getValidParsedQuantityAndUnit","fallbackQuantity","parsedUnit","getAccessibleLabelForUnit","unit","filterUnitsWithSettings","allowedUnitValues","availableUnits","filter","includes","useCustomUnits","defaultValues","customUnitsToReturn","map","defaultValue","default","getUnitsWithCurrentUnit","legacyUnit","unitsToReturn","currentUnit","some","unshift"],"sources":["@wordpress/components/src/unit-control/utils.ts"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport { Platform } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport type { WPUnitControlUnit } from './types';\n\nconst isWeb = Platform.OS === 'web';\n\nconst allUnits: Record< string, WPUnitControlUnit > = {\n\tpx: {\n\t\tvalue: 'px',\n\t\tlabel: isWeb ? 'px' : __( 'Pixels (px)' ),\n\t\ta11yLabel: __( 'Pixels (px)' ),\n\t\tstep: 1,\n\t},\n\t'%': {\n\t\tvalue: '%',\n\t\tlabel: isWeb ? '%' : __( 'Percentage (%)' ),\n\t\ta11yLabel: __( 'Percent (%)' ),\n\t\tstep: 0.1,\n\t},\n\tem: {\n\t\tvalue: 'em',\n\t\tlabel: isWeb ? 'em' : __( 'Relative to parent font size (em)' ),\n\t\ta11yLabel: _x( 'ems', 'Relative to parent font size (em)' ),\n\t\tstep: 0.01,\n\t},\n\trem: {\n\t\tvalue: 'rem',\n\t\tlabel: isWeb ? 'rem' : __( 'Relative to root font size (rem)' ),\n\t\ta11yLabel: _x( 'rems', 'Relative to root font size (rem)' ),\n\t\tstep: 0.01,\n\t},\n\tvw: {\n\t\tvalue: 'vw',\n\t\tlabel: isWeb ? 'vw' : __( 'Viewport width (vw)' ),\n\t\ta11yLabel: __( 'Viewport width (vw)' ),\n\t\tstep: 0.1,\n\t},\n\tvh: {\n\t\tvalue: 'vh',\n\t\tlabel: isWeb ? 'vh' : __( 'Viewport height (vh)' ),\n\t\ta11yLabel: __( 'Viewport height (vh)' ),\n\t\tstep: 0.1,\n\t},\n\tvmin: {\n\t\tvalue: 'vmin',\n\t\tlabel: isWeb ? 'vmin' : __( 'Viewport smallest dimension (vmin)' ),\n\t\ta11yLabel: __( 'Viewport smallest dimension (vmin)' ),\n\t\tstep: 0.1,\n\t},\n\tvmax: {\n\t\tvalue: 'vmax',\n\t\tlabel: isWeb ? 'vmax' : __( 'Viewport largest dimension (vmax)' ),\n\t\ta11yLabel: __( 'Viewport largest dimension (vmax)' ),\n\t\tstep: 0.1,\n\t},\n\tch: {\n\t\tvalue: 'ch',\n\t\tlabel: isWeb ? 'ch' : __( 'Width of the zero (0) character (ch)' ),\n\t\ta11yLabel: __( 'Width of the zero (0) character (ch)' ),\n\t\tstep: 0.01,\n\t},\n\tex: {\n\t\tvalue: 'ex',\n\t\tlabel: isWeb ? 'ex' : __( 'x-height of the font (ex)' ),\n\t\ta11yLabel: __( 'x-height of the font (ex)' ),\n\t\tstep: 0.01,\n\t},\n\tcm: {\n\t\tvalue: 'cm',\n\t\tlabel: isWeb ? 'cm' : __( 'Centimeters (cm)' ),\n\t\ta11yLabel: __( 'Centimeters (cm)' ),\n\t\tstep: 0.001,\n\t},\n\tmm: {\n\t\tvalue: 'mm',\n\t\tlabel: isWeb ? 'mm' : __( 'Millimeters (mm)' ),\n\t\ta11yLabel: __( 'Millimeters (mm)' ),\n\t\tstep: 0.1,\n\t},\n\tin: {\n\t\tvalue: 'in',\n\t\tlabel: isWeb ? 'in' : __( 'Inches (in)' ),\n\t\ta11yLabel: __( 'Inches (in)' ),\n\t\tstep: 0.001,\n\t},\n\tpc: {\n\t\tvalue: 'pc',\n\t\tlabel: isWeb ? 'pc' : __( 'Picas (pc)' ),\n\t\ta11yLabel: __( 'Picas (pc)' ),\n\t\tstep: 1,\n\t},\n\tpt: {\n\t\tvalue: 'pt',\n\t\tlabel: isWeb ? 'pt' : __( 'Points (pt)' ),\n\t\ta11yLabel: __( 'Points (pt)' ),\n\t\tstep: 1,\n\t},\n\tsvw: {\n\t\tvalue: 'svw',\n\t\tlabel: isWeb ? 'svw' : __( 'Small viewport width (svw)' ),\n\t\ta11yLabel: __( 'Small viewport width (svw)' ),\n\t\tstep: 0.1,\n\t},\n\tsvh: {\n\t\tvalue: 'svh',\n\t\tlabel: isWeb ? 'svh' : __( 'Small viewport height (svh)' ),\n\t\ta11yLabel: __( 'Small viewport height (svh)' ),\n\t\tstep: 0.1,\n\t},\n\tsvi: {\n\t\tvalue: 'svi',\n\t\tlabel: isWeb\n\t\t\t? 'svi'\n\t\t\t: __( 'Viewport smallest size in the inline direction (svi)' ),\n\t\ta11yLabel: __( 'Small viewport width or height (svi)' ),\n\t\tstep: 0.1,\n\t},\n\tsvb: {\n\t\tvalue: 'svb',\n\t\tlabel: isWeb\n\t\t\t? 'svb'\n\t\t\t: __( 'Viewport smallest size in the block direction (svb)' ),\n\t\ta11yLabel: __( 'Small viewport width or height (svb)' ),\n\t\tstep: 0.1,\n\t},\n\tsvmin: {\n\t\tvalue: 'svmin',\n\t\tlabel: isWeb\n\t\t\t? 'svmin'\n\t\t\t: __( 'Small viewport smallest dimension (svmin)' ),\n\t\ta11yLabel: __( 'Small viewport smallest dimension (svmin)' ),\n\t\tstep: 0.1,\n\t},\n\tlvw: {\n\t\tvalue: 'lvw',\n\t\tlabel: isWeb ? 'lvw' : __( 'Large viewport width (lvw)' ),\n\t\ta11yLabel: __( 'Large viewport width (lvw)' ),\n\t\tstep: 0.1,\n\t},\n\tlvh: {\n\t\tvalue: 'lvh',\n\t\tlabel: isWeb ? 'lvh' : __( 'Large viewport height (lvh)' ),\n\t\ta11yLabel: __( 'Large viewport height (lvh)' ),\n\t\tstep: 0.1,\n\t},\n\tlvi: {\n\t\tvalue: 'lvi',\n\t\tlabel: isWeb ? 'lvi' : __( 'Large viewport width or height (lvi)' ),\n\t\ta11yLabel: __( 'Large viewport width or height (lvi)' ),\n\t\tstep: 0.1,\n\t},\n\tlvb: {\n\t\tvalue: 'lvb',\n\t\tlabel: isWeb ? 'lvb' : __( 'Large viewport width or height (lvb)' ),\n\t\ta11yLabel: __( 'Large viewport width or height (lvb)' ),\n\t\tstep: 0.1,\n\t},\n\tlvmin: {\n\t\tvalue: 'lvmin',\n\t\tlabel: isWeb\n\t\t\t? 'lvmin'\n\t\t\t: __( 'Large viewport smallest dimension (lvmin)' ),\n\t\ta11yLabel: __( 'Large viewport smallest dimension (lvmin)' ),\n\t\tstep: 0.1,\n\t},\n\tdvw: {\n\t\tvalue: 'dvw',\n\t\tlabel: isWeb ? 'dvw' : __( 'Dynamic viewport width (dvw)' ),\n\t\ta11yLabel: __( 'Dynamic viewport width (dvw)' ),\n\t\tstep: 0.1,\n\t},\n\tdvh: {\n\t\tvalue: 'dvh',\n\t\tlabel: isWeb ? 'dvh' : __( 'Dynamic viewport height (dvh)' ),\n\t\ta11yLabel: __( 'Dynamic viewport height (dvh)' ),\n\t\tstep: 0.1,\n\t},\n\tdvi: {\n\t\tvalue: 'dvi',\n\t\tlabel: isWeb ? 'dvi' : __( 'Dynamic viewport width or height (dvi)' ),\n\t\ta11yLabel: __( 'Dynamic viewport width or height (dvi)' ),\n\t\tstep: 0.1,\n\t},\n\tdvb: {\n\t\tvalue: 'dvb',\n\t\tlabel: isWeb ? 'dvb' : __( 'Dynamic viewport width or height (dvb)' ),\n\t\ta11yLabel: __( 'Dynamic viewport width or height (dvb)' ),\n\t\tstep: 0.1,\n\t},\n\tdvmin: {\n\t\tvalue: 'dvmin',\n\t\tlabel: isWeb\n\t\t\t? 'dvmin'\n\t\t\t: __( 'Dynamic viewport smallest dimension (dvmin)' ),\n\t\ta11yLabel: __( 'Dynamic viewport smallest dimension (dvmin)' ),\n\t\tstep: 0.1,\n\t},\n\tdvmax: {\n\t\tvalue: 'dvmax',\n\t\tlabel: isWeb\n\t\t\t? 'dvmax'\n\t\t\t: __( 'Dynamic viewport largest dimension (dvmax)' ),\n\t\ta11yLabel: __( 'Dynamic viewport largest dimension (dvmax)' ),\n\t\tstep: 0.1,\n\t},\n\tsvmax: {\n\t\tvalue: 'svmax',\n\t\tlabel: isWeb\n\t\t\t? 'svmax'\n\t\t\t: __( 'Small viewport largest dimension (svmax)' ),\n\t\ta11yLabel: __( 'Small viewport largest dimension (svmax)' ),\n\t\tstep: 0.1,\n\t},\n\tlvmax: {\n\t\tvalue: 'lvmax',\n\t\tlabel: isWeb\n\t\t\t? 'lvmax'\n\t\t\t: __( 'Large viewport largest dimension (lvmax)' ),\n\t\ta11yLabel: __( 'Large viewport largest dimension (lvmax)' ),\n\t\tstep: 0.1,\n\t},\n};\n\n/**\n * An array of all available CSS length units.\n */\nexport const ALL_CSS_UNITS = Object.values( allUnits );\n\n/**\n * Units of measurements. `a11yLabel` is used by screenreaders.\n */\nexport const CSS_UNITS = [\n\tallUnits.px,\n\tallUnits[ '%' ],\n\tallUnits.em,\n\tallUnits.rem,\n\tallUnits.vw,\n\tallUnits.vh,\n];\n\nexport const DEFAULT_UNIT = allUnits.px;\n\n/**\n * Handles legacy value + unit handling.\n * This component use to manage both incoming value and units separately.\n *\n * Moving forward, ideally the value should be a string that contains both\n * the value and unit, example: '10px'\n *\n * @param rawValue The raw value as a string (may or may not contain the unit)\n * @param fallbackUnit The unit used as a fallback, if not unit is detected in the `value`\n * @param allowedUnits Units to derive from.\n * @return The extracted quantity and unit. The quantity can be `undefined` in case the raw value\n * could not be parsed to a number correctly. The unit can be `undefined` in case the unit parse\n * from the raw value could not be matched against the list of allowed units.\n */\nexport function getParsedQuantityAndUnit(\n\trawValue?: string | number,\n\tfallbackUnit?: string,\n\tallowedUnits?: WPUnitControlUnit[]\n): [ number | undefined, string | undefined ] {\n\tconst initialValue = fallbackUnit\n\t\t? `${ rawValue ?? '' }${ fallbackUnit }`\n\t\t: rawValue;\n\n\treturn parseQuantityAndUnitFromRawValue( initialValue, allowedUnits );\n}\n\n/**\n * Checks if units are defined.\n *\n * @param units List of units.\n * @return Whether the list actually contains any units.\n */\nexport function hasUnits(\n\tunits?: WPUnitControlUnit[]\n): units is WPUnitControlUnit[] {\n\t// Although the `isArray` check shouldn't be necessary (given the signature of\n\t// this typed function), it's better to stay on the side of caution, since\n\t// this function may be called from un-typed environments.\n\treturn Array.isArray( units ) && !! units.length;\n}\n\n/**\n * Parses a quantity and unit from a raw string value, given a list of allowed\n * units and otherwise falling back to the default unit.\n *\n * @param rawValue The raw value as a string (may or may not contain the unit)\n * @param allowedUnits Units to derive from.\n * @return The extracted quantity and unit. The quantity can be `undefined` in case the raw value\n * could not be parsed to a number correctly. The unit can be `undefined` in case the unit parsed\n * from the raw value could not be matched against the list of allowed units.\n */\nexport function parseQuantityAndUnitFromRawValue(\n\trawValue?: string | number,\n\tallowedUnits: WPUnitControlUnit[] = ALL_CSS_UNITS\n): [ number | undefined, string | undefined ] {\n\tlet trimmedValue;\n\tlet quantityToReturn;\n\n\tif ( typeof rawValue !== 'undefined' || rawValue === null ) {\n\t\ttrimmedValue = `${ rawValue }`.trim();\n\t\tconst parsedQuantity = parseFloat( trimmedValue );\n\t\tquantityToReturn = ! isFinite( parsedQuantity )\n\t\t\t? undefined\n\t\t\t: parsedQuantity;\n\t}\n\n\tconst unitMatch = trimmedValue?.match( /[\\d.\\-\\+]*\\s*(.*)/ );\n\tconst matchedUnit = unitMatch?.[ 1 ]?.toLowerCase();\n\tlet unitToReturn: string | undefined;\n\tif ( hasUnits( allowedUnits ) ) {\n\t\tconst match = allowedUnits.find(\n\t\t\t( item ) => item.value === matchedUnit\n\t\t);\n\t\tunitToReturn = match?.value;\n\t} else {\n\t\tunitToReturn = DEFAULT_UNIT.value;\n\t}\n\n\treturn [ quantityToReturn, unitToReturn ];\n}\n\n/**\n * Parses quantity and unit from a raw value. Validates parsed value, using fallback\n * value if invalid.\n *\n * @param rawValue The next value.\n * @param allowedUnits Units to derive from.\n * @param fallbackQuantity The fallback quantity, used in case it's not possible to parse a valid quantity from the raw value.\n * @param fallbackUnit The fallback unit, used in case it's not possible to parse a valid unit from the raw value.\n * @return The extracted quantity and unit. The quantity can be `undefined` in case the raw value\n * could not be parsed to a number correctly, and the `fallbackQuantity` was also `undefined`. The\n * unit can be `undefined` only if the unit parsed from the raw value could not be matched against\n * the list of allowed units, the `fallbackQuantity` is also `undefined` and the list of\n * `allowedUnits` is passed empty.\n */\nexport function getValidParsedQuantityAndUnit(\n\trawValue: string | number,\n\tallowedUnits?: WPUnitControlUnit[],\n\tfallbackQuantity?: number,\n\tfallbackUnit?: string\n): [ number | undefined, string | undefined ] {\n\tconst [ parsedQuantity, parsedUnit ] = parseQuantityAndUnitFromRawValue(\n\t\trawValue,\n\t\tallowedUnits\n\t);\n\n\t// The parsed value from `parseQuantityAndUnitFromRawValue` should now be\n\t// either a real number or undefined. If undefined, use the fallback value.\n\tconst quantityToReturn = parsedQuantity ?? fallbackQuantity;\n\n\t// If no unit is parsed from the raw value, or if the fallback unit is not\n\t// defined, use the first value from the list of allowed units as fallback.\n\tlet unitToReturn = parsedUnit || fallbackUnit;\n\n\tif ( ! unitToReturn && hasUnits( allowedUnits ) ) {\n\t\tunitToReturn = allowedUnits[ 0 ].value;\n\t}\n\n\treturn [ quantityToReturn, unitToReturn ];\n}\n\n/**\n * Takes a unit value and finds the matching accessibility label for the\n * unit abbreviation.\n *\n * @param unit Unit value (example: `px`)\n * @return a11y label for the unit abbreviation\n */\nexport function getAccessibleLabelForUnit( unit: string ): string | undefined {\n\tconst match = ALL_CSS_UNITS.find( ( item ) => item.value === unit );\n\treturn match?.a11yLabel ? match?.a11yLabel : match?.value;\n}\n\n/**\n * Filters available units based on values defined a list of allowed unit values.\n *\n * @param allowedUnitValues Collection of allowed unit value strings.\n * @param availableUnits Collection of available unit objects.\n * @return Filtered units.\n */\nexport function filterUnitsWithSettings(\n\tallowedUnitValues: string[] = [],\n\tavailableUnits: WPUnitControlUnit[]\n): WPUnitControlUnit[] {\n\t// Although the `isArray` check shouldn't be necessary (given the signature of\n\t// this typed function), it's better to stay on the side of caution, since\n\t// this function may be called from un-typed environments.\n\treturn Array.isArray( availableUnits )\n\t\t? availableUnits.filter( ( unit ) =>\n\t\t\t\tallowedUnitValues.includes( unit.value )\n\t\t )\n\t\t: [];\n}\n\n/**\n * Custom hook to retrieve and consolidate units setting from add_theme_support().\n * TODO: ideally this hook shouldn't be needed\n * https://github.com/WordPress/gutenberg/pull/31822#discussion_r633280823\n *\n * @param args An object containing units, settingPath & defaultUnits.\n * @param args.units Collection of all potentially available units.\n * @param args.availableUnits Collection of unit value strings for filtering available units.\n * @param args.defaultValues Collection of default values for defined units. Example: `{ px: 350, em: 15 }`.\n *\n * @return Filtered list of units, with their default values updated following the `defaultValues`\n * argument's property.\n */\nexport const useCustomUnits = ( {\n\tunits = ALL_CSS_UNITS,\n\tavailableUnits = [],\n\tdefaultValues,\n}: {\n\tunits?: WPUnitControlUnit[];\n\tavailableUnits?: string[];\n\tdefaultValues?: Record< string, number >;\n} ): WPUnitControlUnit[] => {\n\tconst customUnitsToReturn = filterUnitsWithSettings(\n\t\tavailableUnits,\n\t\tunits\n\t);\n\n\tif ( ! defaultValues ) {\n\t\treturn customUnitsToReturn;\n\t}\n\n\treturn customUnitsToReturn.map( ( unit ) => {\n\t\tconst [ defaultValue ] = defaultValues[ unit.value ]\n\t\t\t? parseQuantityAndUnitFromRawValue( defaultValues[ unit.value ] )\n\t\t\t: [];\n\t\treturn { ...unit, default: defaultValue };\n\t} );\n};\n\n/**\n * Get available units with the unit for the currently selected value\n * prepended if it is not available in the list of units.\n *\n * This is useful to ensure that the current value's unit is always\n * accurately displayed in the UI, even if the intention is to hide\n * the availability of that unit.\n *\n * @param rawValue Selected value to parse.\n * @param legacyUnit Legacy unit value, if rawValue needs it appended.\n * @param units List of available units.\n *\n * @return A collection of units containing the unit for the current value.\n */\nexport function getUnitsWithCurrentUnit(\n\trawValue?: string | number,\n\tlegacyUnit?: string,\n\tunits: WPUnitControlUnit[] = ALL_CSS_UNITS\n): WPUnitControlUnit[] {\n\tconst unitsToReturn = Array.isArray( units ) ? [ ...units ] : [];\n\tconst [ , currentUnit ] = getParsedQuantityAndUnit(\n\t\trawValue,\n\t\tlegacyUnit,\n\t\tALL_CSS_UNITS\n\t);\n\n\tif (\n\t\tcurrentUnit &&\n\t\t! unitsToReturn.some( ( unit ) => unit.value === currentUnit )\n\t) {\n\t\tif ( allUnits[ currentUnit ] ) {\n\t\t\tunitsToReturn.unshift( allUnits[ currentUnit ] );\n\t\t}\n\t}\n\n\treturn unitsToReturn;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -54,6 +54,8 @@ function Guide({
|
|
|
54
54
|
className,
|
|
55
55
|
contentLabel,
|
|
56
56
|
finishButtonText = __('Finish'),
|
|
57
|
+
nextButtonText = __('Next'),
|
|
58
|
+
previousButtonText = __('Previous'),
|
|
57
59
|
onFinish,
|
|
58
60
|
pages = []
|
|
59
61
|
}) {
|
|
@@ -128,13 +130,13 @@ function Guide({
|
|
|
128
130
|
variant: "tertiary",
|
|
129
131
|
onClick: goBack,
|
|
130
132
|
__next40pxDefaultSize: true,
|
|
131
|
-
children:
|
|
133
|
+
children: previousButtonText
|
|
132
134
|
}), canGoForward && /*#__PURE__*/_jsx(Button, {
|
|
133
135
|
className: "components-guide__forward-button",
|
|
134
136
|
variant: "primary",
|
|
135
137
|
onClick: goForward,
|
|
136
138
|
__next40pxDefaultSize: true,
|
|
137
|
-
children:
|
|
139
|
+
children: nextButtonText
|
|
138
140
|
}), !canGoForward && /*#__PURE__*/_jsx(Button, {
|
|
139
141
|
className: "components-guide__finish-button",
|
|
140
142
|
variant: "primary",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["clsx","useState","useEffect","Children","useRef","deprecated","__","Modal","Button","PageControl","jsx","_jsx","jsxs","_jsxs","Guide","children","className","contentLabel","finishButtonText","onFinish","pages","ref","currentPage","setCurrentPage","frame","current","querySelector","HTMLElement","focus","count","since","alternative","_Children$map","map","child","content","canGoBack","canGoForward","length","goBack","goForward","isDismissible","onRequestClose","onKeyDown","event","code","preventDefault","image","numberOfPages","variant","onClick","__next40pxDefaultSize"],"sources":["@wordpress/components/src/guide/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useEffect, Children, useRef } from '@wordpress/element';\nimport deprecated from '@wordpress/deprecated';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport Modal from '../modal';\nimport Button from '../button';\nimport PageControl from './page-control';\nimport type { GuideProps } from './types';\n\n/**\n * `Guide` is a React component that renders a _user guide_ in a modal. The guide consists of several pages which the user can step through one by one. The guide is finished when the modal is closed or when the user clicks _Finish_ on the last page of the guide.\n *\n * ```jsx\n * function MyTutorial() {\n * \tconst [ isOpen, setIsOpen ] = useState( true );\n *\n * \tif ( ! isOpen ) {\n * \t\treturn null;\n * \t}\n *\n * \treturn (\n * \t\t<Guide\n * \t\t\tonFinish={ () => setIsOpen( false ) }\n * \t\t\tpages={ [\n * \t\t\t\t{\n * \t\t\t\t\tcontent: <p>Welcome to the ACME Store!</p>,\n * \t\t\t\t},\n * \t\t\t\t{\n * \t\t\t\t\timage: <img src=\"https://acmestore.com/add-to-cart.png\" />,\n * \t\t\t\t\tcontent: (\n * \t\t\t\t\t\t<p>\n * \t\t\t\t\t\t\tClick <i>Add to Cart</i> to buy a product.\n * \t\t\t\t\t\t</p>\n * \t\t\t\t\t),\n * \t\t\t\t},\n * \t\t\t] }\n * \t\t/>\n * \t);\n * }\n * ```\n */\nfunction Guide( {\n\tchildren,\n\tclassName,\n\tcontentLabel,\n\tfinishButtonText = __( 'Finish' ),\n\tonFinish,\n\tpages = [],\n}: GuideProps ) {\n\tconst ref = useRef< HTMLDivElement >( null );\n\tconst [ currentPage, setCurrentPage ] = useState( 0 );\n\n\tuseEffect( () => {\n\t\t// Place focus at the top of the guide on mount and when the page changes.\n\t\tconst frame = ref.current?.querySelector( '.components-guide' );\n\t\tif ( frame instanceof HTMLElement ) {\n\t\t\tframe.focus();\n\t\t}\n\t}, [ currentPage ] );\n\n\tuseEffect( () => {\n\t\tif ( Children.count( children ) ) {\n\t\t\tdeprecated( 'Passing children to <Guide>', {\n\t\t\t\tsince: '5.5',\n\t\t\t\talternative: 'the `pages` prop',\n\t\t\t} );\n\t\t}\n\t}, [ children ] );\n\n\tif ( Children.count( children ) ) {\n\t\tpages =\n\t\t\tChildren.map( children, ( child ) => ( {\n\t\t\t\tcontent: child,\n\t\t\t} ) ) ?? [];\n\t}\n\n\tconst canGoBack = currentPage > 0;\n\tconst canGoForward = currentPage < pages.length - 1;\n\n\tconst goBack = () => {\n\t\tif ( canGoBack ) {\n\t\t\tsetCurrentPage( currentPage - 1 );\n\t\t}\n\t};\n\n\tconst goForward = () => {\n\t\tif ( canGoForward ) {\n\t\t\tsetCurrentPage( currentPage + 1 );\n\t\t}\n\t};\n\n\tif ( pages.length === 0 ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Modal\n\t\t\tclassName={ clsx( 'components-guide', className ) }\n\t\t\tcontentLabel={ contentLabel }\n\t\t\tisDismissible={ pages.length > 1 }\n\t\t\tonRequestClose={ onFinish }\n\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\tif ( event.code === 'ArrowLeft' ) {\n\t\t\t\t\tgoBack();\n\t\t\t\t\t// Do not scroll the modal's contents.\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t} else if ( event.code === 'ArrowRight' ) {\n\t\t\t\t\tgoForward();\n\t\t\t\t\t// Do not scroll the modal's contents.\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t} }\n\t\t\tref={ ref }\n\t\t>\n\t\t\t<div className=\"components-guide__container\">\n\t\t\t\t<div className=\"components-guide__page\">\n\t\t\t\t\t{ pages[ currentPage ].image }\n\n\t\t\t\t\t{ pages.length > 1 && (\n\t\t\t\t\t\t<PageControl\n\t\t\t\t\t\t\tcurrentPage={ currentPage }\n\t\t\t\t\t\t\tnumberOfPages={ pages.length }\n\t\t\t\t\t\t\tsetCurrentPage={ setCurrentPage }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ pages[ currentPage ].content }\n\t\t\t\t</div>\n\n\t\t\t\t<div className=\"components-guide__footer\">\n\t\t\t\t\t{ canGoBack && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName=\"components-guide__back-button\"\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ goBack }\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{
|
|
1
|
+
{"version":3,"names":["clsx","useState","useEffect","Children","useRef","deprecated","__","Modal","Button","PageControl","jsx","_jsx","jsxs","_jsxs","Guide","children","className","contentLabel","finishButtonText","nextButtonText","previousButtonText","onFinish","pages","ref","currentPage","setCurrentPage","frame","current","querySelector","HTMLElement","focus","count","since","alternative","_Children$map","map","child","content","canGoBack","canGoForward","length","goBack","goForward","isDismissible","onRequestClose","onKeyDown","event","code","preventDefault","image","numberOfPages","variant","onClick","__next40pxDefaultSize"],"sources":["@wordpress/components/src/guide/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useEffect, Children, useRef } from '@wordpress/element';\nimport deprecated from '@wordpress/deprecated';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport Modal from '../modal';\nimport Button from '../button';\nimport PageControl from './page-control';\nimport type { GuideProps } from './types';\n\n/**\n * `Guide` is a React component that renders a _user guide_ in a modal. The guide consists of several pages which the user can step through one by one. The guide is finished when the modal is closed or when the user clicks _Finish_ on the last page of the guide.\n *\n * ```jsx\n * function MyTutorial() {\n * \tconst [ isOpen, setIsOpen ] = useState( true );\n *\n * \tif ( ! isOpen ) {\n * \t\treturn null;\n * \t}\n *\n * \treturn (\n * \t\t<Guide\n * \t\t\tonFinish={ () => setIsOpen( false ) }\n * \t\t\tpages={ [\n * \t\t\t\t{\n * \t\t\t\t\tcontent: <p>Welcome to the ACME Store!</p>,\n * \t\t\t\t},\n * \t\t\t\t{\n * \t\t\t\t\timage: <img src=\"https://acmestore.com/add-to-cart.png\" />,\n * \t\t\t\t\tcontent: (\n * \t\t\t\t\t\t<p>\n * \t\t\t\t\t\t\tClick <i>Add to Cart</i> to buy a product.\n * \t\t\t\t\t\t</p>\n * \t\t\t\t\t),\n * \t\t\t\t},\n * \t\t\t] }\n * \t\t/>\n * \t);\n * }\n * ```\n */\nfunction Guide( {\n\tchildren,\n\tclassName,\n\tcontentLabel,\n\tfinishButtonText = __( 'Finish' ),\n\tnextButtonText = __( 'Next' ),\n\tpreviousButtonText = __( 'Previous' ),\n\tonFinish,\n\tpages = [],\n}: GuideProps ) {\n\tconst ref = useRef< HTMLDivElement >( null );\n\tconst [ currentPage, setCurrentPage ] = useState( 0 );\n\n\tuseEffect( () => {\n\t\t// Place focus at the top of the guide on mount and when the page changes.\n\t\tconst frame = ref.current?.querySelector( '.components-guide' );\n\t\tif ( frame instanceof HTMLElement ) {\n\t\t\tframe.focus();\n\t\t}\n\t}, [ currentPage ] );\n\n\tuseEffect( () => {\n\t\tif ( Children.count( children ) ) {\n\t\t\tdeprecated( 'Passing children to <Guide>', {\n\t\t\t\tsince: '5.5',\n\t\t\t\talternative: 'the `pages` prop',\n\t\t\t} );\n\t\t}\n\t}, [ children ] );\n\n\tif ( Children.count( children ) ) {\n\t\tpages =\n\t\t\tChildren.map( children, ( child ) => ( {\n\t\t\t\tcontent: child,\n\t\t\t} ) ) ?? [];\n\t}\n\n\tconst canGoBack = currentPage > 0;\n\tconst canGoForward = currentPage < pages.length - 1;\n\n\tconst goBack = () => {\n\t\tif ( canGoBack ) {\n\t\t\tsetCurrentPage( currentPage - 1 );\n\t\t}\n\t};\n\n\tconst goForward = () => {\n\t\tif ( canGoForward ) {\n\t\t\tsetCurrentPage( currentPage + 1 );\n\t\t}\n\t};\n\n\tif ( pages.length === 0 ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Modal\n\t\t\tclassName={ clsx( 'components-guide', className ) }\n\t\t\tcontentLabel={ contentLabel }\n\t\t\tisDismissible={ pages.length > 1 }\n\t\t\tonRequestClose={ onFinish }\n\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\tif ( event.code === 'ArrowLeft' ) {\n\t\t\t\t\tgoBack();\n\t\t\t\t\t// Do not scroll the modal's contents.\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t} else if ( event.code === 'ArrowRight' ) {\n\t\t\t\t\tgoForward();\n\t\t\t\t\t// Do not scroll the modal's contents.\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t} }\n\t\t\tref={ ref }\n\t\t>\n\t\t\t<div className=\"components-guide__container\">\n\t\t\t\t<div className=\"components-guide__page\">\n\t\t\t\t\t{ pages[ currentPage ].image }\n\n\t\t\t\t\t{ pages.length > 1 && (\n\t\t\t\t\t\t<PageControl\n\t\t\t\t\t\t\tcurrentPage={ currentPage }\n\t\t\t\t\t\t\tnumberOfPages={ pages.length }\n\t\t\t\t\t\t\tsetCurrentPage={ setCurrentPage }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ pages[ currentPage ].content }\n\t\t\t\t</div>\n\n\t\t\t\t<div className=\"components-guide__footer\">\n\t\t\t\t\t{ canGoBack && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName=\"components-guide__back-button\"\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ goBack }\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ previousButtonText }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t) }\n\t\t\t\t\t{ canGoForward && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName=\"components-guide__forward-button\"\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\tonClick={ goForward }\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ nextButtonText }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! canGoForward && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName=\"components-guide__finish-button\"\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\tonClick={ onFinish }\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ finishButtonText }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</Modal>\n\t);\n}\n\nexport default Guide;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["@wordpress/components/src/guide/types.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ReactNode } from 'react';\n\n/**\n * Internal dependencies\n */\nimport type { ModalProps } from '../modal/types';\n\nexport type Page = {\n\t/**\n\t * Content of the page.\n\t */\n\tcontent: ReactNode;\n\t/**\n\t * Image displayed above the page content.\n\t */\n\timage?: ReactNode;\n};\n\nexport type GuideProps = {\n\t/**\n\t * Deprecated. Use `pages` prop instead.\n\t *\n\t * @deprecated since 5.5\n\t */\n\tchildren?: ReactNode;\n\t/**\n\t * A custom class to add to the modal.\n\t */\n\tclassName?: string;\n\t/**\n\t * Used as the modal's accessibility label.\n\t */\n\tcontentLabel: ModalProps[ 'contentLabel' ];\n\t/**\n\t * Use this to customize the label of the _Finish_ button shown at the end of the guide.\n\t *\n\t * @default 'Finish'\n\t */\n\tfinishButtonText?: string;\n\t/**\n\t * A function which is called when the guide is finished.\n\t */\n\tonFinish: ModalProps[ 'onRequestClose' ];\n\t/**\n\t * A list of objects describing each page in the guide. Each object **must** contain a `'content'` property and may optionally contain a `'image'` property.\n\t *\n\t * @default []\n\t */\n\tpages?: Page[];\n};\n\nexport type PageControlProps = {\n\t/**\n\t * Current page index.\n\t */\n\tcurrentPage: number;\n\t/**\n\t * Total number of pages.\n\t */\n\tnumberOfPages: number;\n\t/**\n\t * Called when user clicks on a `PageControlIcon` button.\n\t */\n\tsetCurrentPage: ( page: number ) => void;\n};\n"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sources":["@wordpress/components/src/guide/types.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ReactNode } from 'react';\n\n/**\n * Internal dependencies\n */\nimport type { ModalProps } from '../modal/types';\n\nexport type Page = {\n\t/**\n\t * Content of the page.\n\t */\n\tcontent: ReactNode;\n\t/**\n\t * Image displayed above the page content.\n\t */\n\timage?: ReactNode;\n};\n\nexport type GuideProps = {\n\t/**\n\t * Deprecated. Use `pages` prop instead.\n\t *\n\t * @deprecated since 5.5\n\t */\n\tchildren?: ReactNode;\n\t/**\n\t * A custom class to add to the modal.\n\t */\n\tclassName?: string;\n\t/**\n\t * Used as the modal's accessibility label.\n\t */\n\tcontentLabel: ModalProps[ 'contentLabel' ];\n\t/**\n\t * Use this to customize the label of the _Finish_ button shown at the end of the guide.\n\t *\n\t * @default 'Finish'\n\t */\n\tfinishButtonText?: string;\n\t/**\n\t * Use this to customize the label of the _Next_ button shown on each page of the guide.\n\t *\n\t * @default 'Next'\n\t */\n\tnextButtonText?: string;\n\t/**\n\t * Use this to customize the label of the _Previous_ button shown on each page of the guide except the first.\n\t *\n\t * @default 'Previous'\n\t */\n\tpreviousButtonText?: string;\n\t/**\n\t * A function which is called when the guide is finished.\n\t */\n\tonFinish: ModalProps[ 'onRequestClose' ];\n\t/**\n\t * A list of objects describing each page in the guide. Each object **must** contain a `'content'` property and may optionally contain a `'image'` property.\n\t *\n\t * @default []\n\t */\n\tpages?: Page[];\n};\n\nexport type PageControlProps = {\n\t/**\n\t * Current page index.\n\t */\n\tcurrentPage: number;\n\t/**\n\t * Total number of pages.\n\t */\n\tnumberOfPages: number;\n\t/**\n\t * Called when user clicks on a `PageControlIcon` button.\n\t */\n\tsetCurrentPage: ( page: number ) => void;\n};\n"],"mappings":"","ignoreList":[]}
|