@wordpress/components 28.11.0 → 28.12.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.
Files changed (142) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/build/border-control/border-control-dropdown/component.js +1 -1
  3. package/build/border-control/border-control-dropdown/component.js.map +1 -1
  4. package/build/form-file-upload/index.js +5 -1
  5. package/build/form-file-upload/index.js.map +1 -1
  6. package/build/form-token-field/token.js +1 -0
  7. package/build/form-token-field/token.js.map +1 -1
  8. package/build/guide/page-control.js +1 -0
  9. package/build/guide/page-control.js.map +1 -1
  10. package/build/menu-item/index.js +1 -0
  11. package/build/menu-item/index.js.map +1 -1
  12. package/build/notice/index.js +2 -0
  13. package/build/notice/index.js.map +1 -1
  14. package/build/palette-edit/index.js +5 -0
  15. package/build/palette-edit/index.js.map +1 -1
  16. package/build/panel/body.js +1 -0
  17. package/build/panel/body.js.map +1 -1
  18. package/build/popover/index.js +4 -1
  19. package/build/popover/index.js.map +1 -1
  20. package/build/radio-group/radio.js +6 -0
  21. package/build/radio-group/radio.js.map +1 -1
  22. package/build/radio-group/types.js.map +1 -1
  23. package/build/snackbar/index.js +2 -1
  24. package/build/snackbar/index.js.map +1 -1
  25. package/build/tabs/tablist.js +13 -2
  26. package/build/tabs/tablist.js.map +1 -1
  27. package/build/toggle-group-control/toggle-group-control/component.js +1 -1
  28. package/build/toggle-group-control/toggle-group-control/component.js.map +1 -1
  29. package/build/utils/deprecated-36px-size.js +1 -1
  30. package/build/utils/deprecated-36px-size.js.map +1 -1
  31. package/build-module/border-control/border-control-dropdown/component.js +1 -1
  32. package/build-module/border-control/border-control-dropdown/component.js.map +1 -1
  33. package/build-module/form-file-upload/index.js +5 -1
  34. package/build-module/form-file-upload/index.js.map +1 -1
  35. package/build-module/form-token-field/token.js +1 -0
  36. package/build-module/form-token-field/token.js.map +1 -1
  37. package/build-module/guide/page-control.js +1 -0
  38. package/build-module/guide/page-control.js.map +1 -1
  39. package/build-module/menu-item/index.js +1 -0
  40. package/build-module/menu-item/index.js.map +1 -1
  41. package/build-module/notice/index.js +2 -0
  42. package/build-module/notice/index.js.map +1 -1
  43. package/build-module/palette-edit/index.js +5 -0
  44. package/build-module/palette-edit/index.js.map +1 -1
  45. package/build-module/panel/body.js +1 -0
  46. package/build-module/panel/body.js.map +1 -1
  47. package/build-module/popover/index.js +4 -1
  48. package/build-module/popover/index.js.map +1 -1
  49. package/build-module/radio-group/radio.js +6 -0
  50. package/build-module/radio-group/radio.js.map +1 -1
  51. package/build-module/radio-group/types.js.map +1 -1
  52. package/build-module/snackbar/index.js +2 -1
  53. package/build-module/snackbar/index.js.map +1 -1
  54. package/build-module/tabs/tablist.js +13 -2
  55. package/build-module/tabs/tablist.js.map +1 -1
  56. package/build-module/toggle-group-control/toggle-group-control/component.js +1 -1
  57. package/build-module/toggle-group-control/toggle-group-control/component.js.map +1 -1
  58. package/build-module/utils/deprecated-36px-size.js +1 -1
  59. package/build-module/utils/deprecated-36px-size.js.map +1 -1
  60. package/build-style/style-rtl.css +15 -29
  61. package/build-style/style.css +15 -29
  62. package/build-types/confirm-dialog/stories/index.story.d.ts.map +1 -1
  63. package/build-types/dropdown/stories/index.story.d.ts.map +1 -1
  64. package/build-types/external-link/stories/index.story.d.ts.map +1 -1
  65. package/build-types/form-file-upload/index.d.ts.map +1 -1
  66. package/build-types/form-token-field/token.d.ts.map +1 -1
  67. package/build-types/guide/page-control.d.ts.map +1 -1
  68. package/build-types/heading/stories/index.story.d.ts.map +1 -1
  69. package/build-types/lock-unlock.d.ts +2 -2
  70. package/build-types/menu/stories/index.story.d.ts.map +1 -1
  71. package/build-types/menu-item/index.d.ts.map +1 -1
  72. package/build-types/modal/stories/index.story.d.ts.map +1 -1
  73. package/build-types/navigator/stories/index.story.d.ts.map +1 -1
  74. package/build-types/notice/index.d.ts.map +1 -1
  75. package/build-types/notice/stories/index.story.d.ts.map +1 -1
  76. package/build-types/palette-edit/index.d.ts.map +1 -1
  77. package/build-types/panel/body.d.ts.map +1 -1
  78. package/build-types/popover/index.d.ts.map +1 -1
  79. package/build-types/popover/stories/index.story.d.ts.map +1 -1
  80. package/build-types/progress-bar/stories/index.story.d.ts.map +1 -1
  81. package/build-types/radio-group/radio.d.ts +4 -2
  82. package/build-types/radio-group/radio.d.ts.map +1 -1
  83. package/build-types/radio-group/stories/index.story.d.ts.map +1 -1
  84. package/build-types/radio-group/types.d.ts +5 -1
  85. package/build-types/radio-group/types.d.ts.map +1 -1
  86. package/build-types/snackbar/index.d.ts.map +1 -1
  87. package/build-types/snackbar/stories/index.story.d.ts.map +1 -1
  88. package/build-types/snackbar/stories/list.story.d.ts.map +1 -1
  89. package/build-types/spinner/stories/index.story.d.ts.map +1 -1
  90. package/build-types/tabs/tablist.d.ts.map +1 -1
  91. package/build-types/text/stories/index.story.d.ts.map +1 -1
  92. package/build-types/text-highlight/stories/index.story.d.ts.map +1 -1
  93. package/build-types/tip/stories/index.story.d.ts.map +1 -1
  94. package/build-types/tooltip/stories/index.story.d.ts.map +1 -1
  95. package/build-types/tree-grid/stories/index.story.d.ts.map +1 -1
  96. package/build-types/truncate/stories/index.story.d.ts.map +1 -1
  97. package/build-types/utils/deprecated-36px-size.d.ts +1 -1
  98. package/build-types/utils/deprecated-36px-size.d.ts.map +1 -1
  99. package/package.json +4 -4
  100. package/src/border-control/border-control-dropdown/component.tsx +1 -1
  101. package/src/confirm-dialog/stories/index.story.tsx +2 -1
  102. package/src/dropdown/stories/index.story.tsx +2 -1
  103. package/src/external-link/stories/index.story.tsx +2 -1
  104. package/src/form-file-upload/index.tsx +7 -1
  105. package/src/form-token-field/style.scss +8 -12
  106. package/src/form-token-field/token.tsx +1 -0
  107. package/src/guide/page-control.tsx +1 -0
  108. package/src/guide/style.scss +4 -6
  109. package/src/heading/stories/index.story.tsx +2 -1
  110. package/src/menu/stories/index.story.tsx +2 -1
  111. package/src/menu-item/index.tsx +1 -0
  112. package/src/menu-item/test/__snapshots__/index.js.snap +4 -4
  113. package/src/modal/stories/index.story.tsx +2 -1
  114. package/src/navigator/stories/index.story.tsx +2 -1
  115. package/src/notice/index.tsx +2 -0
  116. package/src/notice/stories/index.story.tsx +7 -2
  117. package/src/notice/test/__snapshots__/index.tsx.snap +4 -4
  118. package/src/palette-edit/index.tsx +5 -0
  119. package/src/panel/body.tsx +1 -0
  120. package/src/popover/index.tsx +3 -0
  121. package/src/popover/stories/index.story.tsx +2 -1
  122. package/src/progress-bar/stories/index.story.tsx +2 -1
  123. package/src/radio-group/README.md +8 -8
  124. package/src/radio-group/radio.tsx +7 -0
  125. package/src/radio-group/stories/index.story.tsx +16 -4
  126. package/src/radio-group/types.ts +6 -1
  127. package/src/snackbar/index.tsx +2 -1
  128. package/src/snackbar/stories/index.story.tsx +2 -1
  129. package/src/snackbar/stories/list.story.tsx +2 -1
  130. package/src/snackbar/style.scss +7 -16
  131. package/src/spinner/stories/index.story.tsx +2 -1
  132. package/src/tabs/tablist.tsx +13 -2
  133. package/src/text/stories/index.story.tsx +2 -1
  134. package/src/text-highlight/stories/index.story.tsx +2 -1
  135. package/src/tip/stories/index.story.tsx +2 -1
  136. package/src/toggle-group-control/toggle-group-control/component.tsx +1 -1
  137. package/src/tooltip/stories/index.story.tsx +2 -1
  138. package/src/tree-grid/stories/index.story.tsx +2 -1
  139. package/src/truncate/stories/index.story.tsx +2 -1
  140. package/src/utils/deprecated-36px-size.ts +5 -2
  141. package/src/visually-hidden/stories/index.story.tsx +1 -1
  142. package/tsconfig.tsbuildinfo +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","useFloating","flip","flipMiddleware","shift","shiftMiddleware","limitShift","autoUpdate","arrow","offset","offsetMiddleware","size","motion","useRef","useLayoutEffect","forwardRef","createContext","useContext","useMemo","useState","useCallback","createPortal","useReducedMotion","useViewportMatch","useMergeRefs","__experimentalUseDialog","useDialog","close","deprecated","Path","SVG","Button","ScrollLock","Slot","Fill","useSlot","computePopoverPosition","positionToPlacement","placementToMotionAnimationProps","getReferenceElement","contextConnect","useContextSystem","overlayMiddlewares","StyleProvider","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","SLOT_NAME","ArrowTriangle","xmlns","viewBox","className","role","children","d","vectorEffect","slotNameContext","undefined","fallbackContainerClassname","getPopoverFallbackContainer","container","document","body","querySelector","createElement","append","UnforwardedPopover","props","forwardedRef","animate","headerTitle","constrainTabbing","onClose","noArrow","position","placement","placementProp","offsetProp","focusOnMount","anchor","expandOnMobile","onFocusOutside","__unstableSlotName","resize","inline","variant","style","contentStyle","__unstableForcePosition","anchorRef","anchorRect","getAnchorRect","isAlternate","contentProps","computedFlipProp","computedResizeProp","since","version","alternative","computedVariant","arrowRef","fallbackReferenceElement","setFallbackReferenceElement","anchorRefFallback","node","isMobileViewport","isExpanded","hasArrow","normalizedPlacementFromProps","middleware","apply","sizeProps","_refs$floating$curren","firstElementChild","refs","floating","current","HTMLElement","Object","assign","maxHeight","availableHeight","overflow","crossAxis","limiter","padding","element","slotName","slot","onDialogClose","type","event","dialogRef","dialogProps","__unstableOnClose","x","y","strategy","update","computedPlacement","middlewareData","arrowData","whileElementsMounted","referenceParam","floatingParam","updateParam","layoutShift","animationFrame","arrowCallbackRef","anchorRefTop","top","anchorRefBottom","bottom","anchorRefStartContainer","startContainer","anchorRefCurrent","resultingReferenceElement","setReference","mergedFloatingRef","setFloating","left","shouldReduceMotion","shouldAnimate","animationFinished","setAnimationFinished","motionInlineStyles","otherMotionProps","animationProps","onAnimationComplete","isPositioned","content","div","ref","tabIndex","icon","onClick","split","join","Number","isFinite","shouldRenderWithinSlot","hasAnchor","name","Popover","PopoverSlot","bubblesVirtually","__unstableSlotNameProvider","Provider"],"sources":["@wordpress/components/src/popover/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ForwardedRef, SyntheticEvent, RefCallback } from 'react';\nimport 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';\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\ticon={ close }\n\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t<div className=\"components-popover__content\">{ children }</div>\n\t\t\t{ hasArrow && (\n\t\t\t\t<div\n\t\t\t\t\tref={ arrowCallbackRef }\n\t\t\t\t\tclassName={ [\n\t\t\t\t\t\t'components-popover__arrow',\n\t\t\t\t\t\t`is-${ computedPlacement.split( '-' )[ 0 ] }`,\n\t\t\t\t\t].join( ' ' ) }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\tleft:\n\t\t\t\t\t\t\ttypeof arrowData?.x !== 'undefined' &&\n\t\t\t\t\t\t\tNumber.isFinite( arrowData.x )\n\t\t\t\t\t\t\t\t? `${ arrowData.x }px`\n\t\t\t\t\t\t\t\t: '',\n\t\t\t\t\t\ttop:\n\t\t\t\t\t\t\ttypeof arrowData?.y !== 'undefined' &&\n\t\t\t\t\t\t\tNumber.isFinite( arrowData.y )\n\t\t\t\t\t\t\t\t? `${ arrowData.y }px`\n\t\t\t\t\t\t\t\t: '',\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<ArrowTriangle />\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</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","useFloating","flip","flipMiddleware","shift","shiftMiddleware","limitShift","autoUpdate","arrow","offset","offsetMiddleware","size","motion","useRef","useLayoutEffect","forwardRef","createContext","useContext","useMemo","useState","useCallback","createPortal","useReducedMotion","useViewportMatch","useMergeRefs","__experimentalUseDialog","useDialog","close","deprecated","Path","SVG","__","Button","ScrollLock","Slot","Fill","useSlot","computePopoverPosition","positionToPlacement","placementToMotionAnimationProps","getReferenceElement","contextConnect","useContextSystem","overlayMiddlewares","StyleProvider","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","SLOT_NAME","ArrowTriangle","xmlns","viewBox","className","role","children","d","vectorEffect","slotNameContext","undefined","fallbackContainerClassname","getPopoverFallbackContainer","container","document","body","querySelector","createElement","append","UnforwardedPopover","props","forwardedRef","animate","headerTitle","constrainTabbing","onClose","noArrow","position","placement","placementProp","offsetProp","focusOnMount","anchor","expandOnMobile","onFocusOutside","__unstableSlotName","resize","inline","variant","style","contentStyle","__unstableForcePosition","anchorRef","anchorRect","getAnchorRect","isAlternate","contentProps","computedFlipProp","computedResizeProp","since","version","alternative","computedVariant","arrowRef","fallbackReferenceElement","setFallbackReferenceElement","anchorRefFallback","node","isMobileViewport","isExpanded","hasArrow","normalizedPlacementFromProps","middleware","apply","sizeProps","_refs$floating$curren","firstElementChild","refs","floating","current","HTMLElement","Object","assign","maxHeight","availableHeight","overflow","crossAxis","limiter","padding","element","slotName","slot","onDialogClose","type","event","dialogRef","dialogProps","__unstableOnClose","x","y","strategy","update","computedPlacement","middlewareData","arrowData","whileElementsMounted","referenceParam","floatingParam","updateParam","layoutShift","animationFrame","arrowCallbackRef","anchorRefTop","top","anchorRefBottom","bottom","anchorRefStartContainer","startContainer","anchorRefCurrent","resultingReferenceElement","setReference","mergedFloatingRef","setFloating","left","shouldReduceMotion","shouldAnimate","animationFinished","setAnimationFinished","motionInlineStyles","otherMotionProps","animationProps","onAnimationComplete","isPositioned","content","div","ref","tabIndex","icon","onClick","label","split","join","Number","isFinite","shouldRenderWithinSlot","hasAnchor","name","Popover","PopoverSlot","bubblesVirtually","__unstableSlotNameProvider","Provider"],"sources":["@wordpress/components/src/popover/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ForwardedRef, SyntheticEvent, RefCallback } from 'react';\nimport 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":[]}
@@ -14,6 +14,7 @@ import { useStoreState } from '@ariakit/react';
14
14
  */
15
15
  import Button from '../button';
16
16
  import { RadioGroupContext } from './context';
17
+ import { maybeWarnDeprecated36pxSize } from '../utils/deprecated-36px-size';
17
18
  import { jsx as _jsx } from "react/jsx-runtime";
18
19
  function UnforwardedRadio({
19
20
  value,
@@ -26,6 +27,11 @@ function UnforwardedRadio({
26
27
  } = useContext(RadioGroupContext);
27
28
  const selectedValue = useStoreState(store, 'value');
28
29
  const isChecked = selectedValue !== undefined && selectedValue === value;
30
+ maybeWarnDeprecated36pxSize({
31
+ componentName: 'Radio',
32
+ size: undefined,
33
+ __next40pxDefaultSize: props.__next40pxDefaultSize
34
+ });
29
35
  return /*#__PURE__*/_jsx(Ariakit.Radio, {
30
36
  disabled: disabled,
31
37
  store: store,
@@ -1 +1 @@
1
- {"version":3,"names":["forwardRef","useContext","Ariakit","useStoreState","Button","RadioGroupContext","jsx","_jsx","UnforwardedRadio","value","children","props","ref","store","disabled","selectedValue","isChecked","undefined","Radio","render","variant"],"sources":["@wordpress/components/src/radio-group/radio.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { forwardRef, useContext } from '@wordpress/element';\n\n/**\n * External dependencies\n */\nimport * as Ariakit from '@ariakit/react';\nimport { useStoreState } from '@ariakit/react';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport { RadioGroupContext } from './context';\nimport type { WordPressComponentProps } from '../context';\nimport type { RadioProps } from './types';\n\nfunction UnforwardedRadio(\n\t{\n\t\tvalue,\n\t\tchildren,\n\t\t...props\n\t}: WordPressComponentProps< RadioProps, 'button', false >,\n\tref: React.ForwardedRef< any >\n) {\n\tconst { store, disabled } = useContext( RadioGroupContext );\n\n\tconst selectedValue = useStoreState( store, 'value' );\n\tconst isChecked = selectedValue !== undefined && selectedValue === value;\n\n\treturn (\n\t\t<Ariakit.Radio\n\t\t\tdisabled={ disabled }\n\t\t\tstore={ store }\n\t\t\tref={ ref }\n\t\t\tvalue={ value }\n\t\t\trender={\n\t\t\t\t<Button\n\t\t\t\t\tvariant={ isChecked ? 'primary' : 'secondary' }\n\t\t\t\t\t{ ...props }\n\t\t\t\t/>\n\t\t\t}\n\t\t>\n\t\t\t{ children || value }\n\t\t</Ariakit.Radio>\n\t);\n}\n\n/**\n * @deprecated Use `RadioControl` or `ToggleGroupControl` instead.\n */\nexport const Radio = forwardRef( UnforwardedRadio );\nexport default Radio;\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,UAAU,EAAEC,UAAU,QAAQ,oBAAoB;;AAE3D;AACA;AACA;AACA,OAAO,KAAKC,OAAO,MAAM,gBAAgB;AACzC,SAASC,aAAa,QAAQ,gBAAgB;;AAE9C;AACA;AACA;AACA,OAAOC,MAAM,MAAM,WAAW;AAC9B,SAASC,iBAAiB,QAAQ,WAAW;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAI9C,SAASC,gBAAgBA,CACxB;EACCC,KAAK;EACLC,QAAQ;EACR,GAAGC;AACoD,CAAC,EACzDC,GAA8B,EAC7B;EACD,MAAM;IAAEC,KAAK;IAAEC;EAAS,CAAC,GAAGb,UAAU,CAAEI,iBAAkB,CAAC;EAE3D,MAAMU,aAAa,GAAGZ,aAAa,CAAEU,KAAK,EAAE,OAAQ,CAAC;EACrD,MAAMG,SAAS,GAAGD,aAAa,KAAKE,SAAS,IAAIF,aAAa,KAAKN,KAAK;EAExE,oBACCF,IAAA,CAACL,OAAO,CAACgB,KAAK;IACbJ,QAAQ,EAAGA,QAAU;IACrBD,KAAK,EAAGA,KAAO;IACfD,GAAG,EAAGA,GAAK;IACXH,KAAK,EAAGA,KAAO;IACfU,MAAM,eACLZ,IAAA,CAACH,MAAM;MACNgB,OAAO,EAAGJ,SAAS,GAAG,SAAS,GAAG,WAAa;MAAA,GAC1CL;IAAK,CACV,CACD;IAAAD,QAAA,EAECA,QAAQ,IAAID;EAAK,CACL,CAAC;AAElB;;AAEA;AACA;AACA;AACA,OAAO,MAAMS,KAAK,GAAGlB,UAAU,CAAEQ,gBAAiB,CAAC;AACnD,eAAeU,KAAK","ignoreList":[]}
1
+ {"version":3,"names":["forwardRef","useContext","Ariakit","useStoreState","Button","RadioGroupContext","maybeWarnDeprecated36pxSize","jsx","_jsx","UnforwardedRadio","value","children","props","ref","store","disabled","selectedValue","isChecked","undefined","componentName","size","__next40pxDefaultSize","Radio","render","variant"],"sources":["@wordpress/components/src/radio-group/radio.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { forwardRef, useContext } from '@wordpress/element';\n\n/**\n * External dependencies\n */\nimport * as Ariakit from '@ariakit/react';\nimport { useStoreState } from '@ariakit/react';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport { RadioGroupContext } from './context';\nimport type { WordPressComponentProps } from '../context';\nimport type { RadioProps } from './types';\nimport { maybeWarnDeprecated36pxSize } from '../utils/deprecated-36px-size';\n\nfunction UnforwardedRadio(\n\t{\n\t\tvalue,\n\t\tchildren,\n\t\t...props\n\t}: WordPressComponentProps< RadioProps, 'button', false >,\n\tref: React.ForwardedRef< any >\n) {\n\tconst { store, disabled } = useContext( RadioGroupContext );\n\n\tconst selectedValue = useStoreState( store, 'value' );\n\tconst isChecked = selectedValue !== undefined && selectedValue === value;\n\n\tmaybeWarnDeprecated36pxSize( {\n\t\tcomponentName: 'Radio',\n\t\tsize: undefined,\n\t\t__next40pxDefaultSize: props.__next40pxDefaultSize,\n\t} );\n\n\treturn (\n\t\t<Ariakit.Radio\n\t\t\tdisabled={ disabled }\n\t\t\tstore={ store }\n\t\t\tref={ ref }\n\t\t\tvalue={ value }\n\t\t\trender={\n\t\t\t\t<Button\n\t\t\t\t\tvariant={ isChecked ? 'primary' : 'secondary' }\n\t\t\t\t\t{ ...props }\n\t\t\t\t/>\n\t\t\t}\n\t\t>\n\t\t\t{ children || value }\n\t\t</Ariakit.Radio>\n\t);\n}\n\n/**\n * @deprecated Use `RadioControl` or `ToggleGroupControl` instead.\n */\nexport const Radio = forwardRef( UnforwardedRadio );\nexport default Radio;\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,UAAU,EAAEC,UAAU,QAAQ,oBAAoB;;AAE3D;AACA;AACA;AACA,OAAO,KAAKC,OAAO,MAAM,gBAAgB;AACzC,SAASC,aAAa,QAAQ,gBAAgB;;AAE9C;AACA;AACA;AACA,OAAOC,MAAM,MAAM,WAAW;AAC9B,SAASC,iBAAiB,QAAQ,WAAW;AAG7C,SAASC,2BAA2B,QAAQ,+BAA+B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE5E,SAASC,gBAAgBA,CACxB;EACCC,KAAK;EACLC,QAAQ;EACR,GAAGC;AACoD,CAAC,EACzDC,GAA8B,EAC7B;EACD,MAAM;IAAEC,KAAK;IAAEC;EAAS,CAAC,GAAGd,UAAU,CAAEI,iBAAkB,CAAC;EAE3D,MAAMW,aAAa,GAAGb,aAAa,CAAEW,KAAK,EAAE,OAAQ,CAAC;EACrD,MAAMG,SAAS,GAAGD,aAAa,KAAKE,SAAS,IAAIF,aAAa,KAAKN,KAAK;EAExEJ,2BAA2B,CAAE;IAC5Ba,aAAa,EAAE,OAAO;IACtBC,IAAI,EAAEF,SAAS;IACfG,qBAAqB,EAAET,KAAK,CAACS;EAC9B,CAAE,CAAC;EAEH,oBACCb,IAAA,CAACN,OAAO,CAACoB,KAAK;IACbP,QAAQ,EAAGA,QAAU;IACrBD,KAAK,EAAGA,KAAO;IACfD,GAAG,EAAGA,GAAK;IACXH,KAAK,EAAGA,KAAO;IACfa,MAAM,eACLf,IAAA,CAACJ,MAAM;MACNoB,OAAO,EAAGP,SAAS,GAAG,SAAS,GAAG,WAAa;MAAA,GAC1CL;IAAK,CACV,CACD;IAAAD,QAAA,EAECA,QAAQ,IAAID;EAAK,CACL,CAAC;AAElB;;AAEA;AACA;AACA;AACA,OAAO,MAAMY,KAAK,GAAGtB,UAAU,CAAES,gBAAiB,CAAC;AACnD,eAAea,KAAK","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["@wordpress/components/src/radio-group/types.ts"],"sourcesContent":["export type RadioGroupProps = {\n\t/**\n\t * Accessible label for the radio group\n\t */\n\tlabel: string;\n\t/**\n\t * The `value` of the `Radio` element which should be selected.\n\t * Indicates controlled usage of the component.\n\t */\n\tchecked?: string | number;\n\t/**\n\t * The value of the radio element which is initially selected.\n\t */\n\tdefaultChecked?: string | number;\n\t/**\n\t * Whether the `RadioGroup` should be disabled.\n\t */\n\tdisabled?: boolean;\n\t/**\n\t * Called when a `Radio` element has been selected.\n\t * Receives the `value` of the selected element as an argument.\n\t */\n\tonChange?: ( value: string | number | undefined ) => void;\n\t/**\n\t * The children elements, which should be a series of `Radio` components.\n\t */\n\tchildren: React.ReactNode;\n};\n\nexport type RadioProps = {\n\t/**\n\t * The actual value of the radio element.\n\t */\n\tvalue: string | number;\n\t/**\n\t * Content displayed on the Radio element. If there aren't any children, `value` is displayed.\n\t */\n\tchildren?: React.ReactNode;\n};\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["@wordpress/components/src/radio-group/types.ts"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport type { ButtonProps } from '../button/types';\n\nexport type RadioGroupProps = {\n\t/**\n\t * Accessible label for the radio group\n\t */\n\tlabel: string;\n\t/**\n\t * The `value` of the `Radio` element which should be selected.\n\t * Indicates controlled usage of the component.\n\t */\n\tchecked?: string | number;\n\t/**\n\t * The value of the radio element which is initially selected.\n\t */\n\tdefaultChecked?: string | number;\n\t/**\n\t * Whether the `RadioGroup` should be disabled.\n\t */\n\tdisabled?: boolean;\n\t/**\n\t * Called when a `Radio` element has been selected.\n\t * Receives the `value` of the selected element as an argument.\n\t */\n\tonChange?: ( value: string | number | undefined ) => void;\n\t/**\n\t * The children elements, which should be a series of `Radio` components.\n\t */\n\tchildren: React.ReactNode;\n};\n\nexport type RadioProps = Pick< ButtonProps, '__next40pxDefaultSize' > & {\n\t/**\n\t * The actual value of the radio element.\n\t */\n\tvalue: string | number;\n\t/**\n\t * Content displayed on the Radio element. If there aren't any children, `value` is displayed.\n\t */\n\tchildren?: React.ReactNode;\n};\n"],"mappings":"","ignoreList":[]}
@@ -122,8 +122,9 @@ function UnforwardedSnackbar({
122
122
  url
123
123
  }, index) => {
124
124
  return /*#__PURE__*/_jsx(Button, {
125
+ __next40pxDefaultSize: true,
125
126
  href: url,
126
- variant: "tertiary",
127
+ variant: "link",
127
128
  onClick: event => onActionClick(event, onClick),
128
129
  className: "components-snackbar__action",
129
130
  children: label
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","speak","useEffect","useLayoutEffect","useRef","forwardRef","renderToString","__","warning","Button","jsx","_jsx","jsxs","_jsxs","NOTICE_TIMEOUT","useSpokenMessage","message","politeness","spokenMessage","UnforwardedSnackbar","className","children","actions","onRemove","icon","explicitDismiss","onDismiss","listRef","ref","dismissMe","event","preventDefault","current","focus","onActionClick","onClick","stopPropagation","callbacksRef","timeoutHandle","setTimeout","clearTimeout","classes","length","globalThis","SCRIPT_DEBUG","snackbarContentClassnames","undefined","tabIndex","role","onKeyPress","map","label","url","index","href","variant","Snackbar"],"sources":["@wordpress/components/src/snackbar/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ForwardedRef, KeyboardEvent, MouseEvent } from 'react';\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { speak } from '@wordpress/a11y';\nimport {\n\tuseEffect,\n\tuseLayoutEffect,\n\tuseRef,\n\tforwardRef,\n\trenderToString,\n} from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport warning from '@wordpress/warning';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport type { SnackbarProps } from './types';\nimport type { NoticeAction } from '../notice/types';\nimport type { WordPressComponentProps } from '../context';\n\nconst NOTICE_TIMEOUT = 10000;\n\n/**\n * Custom hook which announces the message with the given politeness, if a\n * valid message is provided.\n *\n * @param message Message to announce.\n * @param politeness Politeness to announce.\n */\nfunction useSpokenMessage(\n\tmessage: SnackbarProps[ 'spokenMessage' ],\n\tpoliteness: NonNullable< SnackbarProps[ 'politeness' ] >\n) {\n\tconst spokenMessage =\n\t\ttypeof message === 'string' ? message : renderToString( message );\n\n\tuseEffect( () => {\n\t\tif ( spokenMessage ) {\n\t\t\tspeak( spokenMessage, politeness );\n\t\t}\n\t}, [ spokenMessage, politeness ] );\n}\n\nfunction UnforwardedSnackbar(\n\t{\n\t\tclassName,\n\t\tchildren,\n\t\tspokenMessage = children,\n\t\tpoliteness = 'polite',\n\t\tactions = [],\n\t\tonRemove,\n\t\ticon = null,\n\t\texplicitDismiss = false,\n\t\t// onDismiss is a callback executed when the snackbar is dismissed.\n\t\t// It is distinct from onRemove, which _looks_ like a callback but is\n\t\t// actually the function to call to remove the snackbar from the UI.\n\t\tonDismiss,\n\t\tlistRef,\n\t}: WordPressComponentProps< SnackbarProps, 'div' >,\n\tref: ForwardedRef< any >\n) {\n\tfunction dismissMe( event: KeyboardEvent | MouseEvent ) {\n\t\tif ( event && event.preventDefault ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\n\t\t// Prevent focus loss by moving it to the list element.\n\t\tlistRef?.current?.focus();\n\n\t\tonDismiss?.();\n\t\tonRemove?.();\n\t}\n\n\tfunction onActionClick(\n\t\tevent: MouseEvent< HTMLButtonElement >,\n\t\tonClick: NoticeAction[ 'onClick' ]\n\t) {\n\t\tevent.stopPropagation();\n\n\t\tonRemove?.();\n\n\t\tif ( onClick ) {\n\t\t\tonClick( event );\n\t\t}\n\t}\n\n\tuseSpokenMessage( spokenMessage, politeness );\n\n\t// The `onDismiss/onRemove` can have unstable references,\n\t// trigger side-effect cleanup, and reset timers.\n\tconst callbacksRef = useRef( { onDismiss, onRemove } );\n\tuseLayoutEffect( () => {\n\t\tcallbacksRef.current = { onDismiss, onRemove };\n\t} );\n\n\tuseEffect( () => {\n\t\t// Only set up the timeout dismiss if we're not explicitly dismissing.\n\t\tconst timeoutHandle = setTimeout( () => {\n\t\t\tif ( ! explicitDismiss ) {\n\t\t\t\tcallbacksRef.current.onDismiss?.();\n\t\t\t\tcallbacksRef.current.onRemove?.();\n\t\t\t}\n\t\t}, NOTICE_TIMEOUT );\n\n\t\treturn () => clearTimeout( timeoutHandle );\n\t}, [ explicitDismiss ] );\n\n\tconst classes = clsx( className, 'components-snackbar', {\n\t\t'components-snackbar-explicit-dismiss': !! explicitDismiss,\n\t} );\n\tif ( actions && actions.length > 1 ) {\n\t\t// We need to inform developers that snackbar only accepts 1 action.\n\t\twarning(\n\t\t\t'Snackbar can only have one action. Use Notice if your message requires many actions.'\n\t\t);\n\t\t// return first element only while keeping it inside an array\n\t\tactions = [ actions[ 0 ] ];\n\t}\n\n\tconst snackbarContentClassnames = clsx( 'components-snackbar__content', {\n\t\t'components-snackbar__content-with-icon': !! icon,\n\t} );\n\n\treturn (\n\t\t<div\n\t\t\tref={ ref }\n\t\t\tclassName={ classes }\n\t\t\tonClick={ ! explicitDismiss ? dismissMe : undefined }\n\t\t\ttabIndex={ 0 }\n\t\t\trole={ ! explicitDismiss ? 'button' : undefined }\n\t\t\tonKeyPress={ ! explicitDismiss ? dismissMe : undefined }\n\t\t\taria-label={\n\t\t\t\t! explicitDismiss ? __( 'Dismiss this notice' ) : undefined\n\t\t\t}\n\t\t\tdata-testid=\"snackbar\"\n\t\t>\n\t\t\t<div className={ snackbarContentClassnames }>\n\t\t\t\t{ icon && (\n\t\t\t\t\t<div className=\"components-snackbar__icon\">{ icon }</div>\n\t\t\t\t) }\n\t\t\t\t{ children }\n\t\t\t\t{ actions.map( ( { label, onClick, url }, index ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tkey={ index }\n\t\t\t\t\t\t\thref={ url }\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ (\n\t\t\t\t\t\t\t\tevent: MouseEvent< HTMLButtonElement >\n\t\t\t\t\t\t\t) => onActionClick( event, onClick ) }\n\t\t\t\t\t\t\tclassName=\"components-snackbar__action\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ label }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t\t{ explicitDismiss && (\n\t\t\t\t\t<span\n\t\t\t\t\t\trole=\"button\"\n\t\t\t\t\t\taria-label={ __( 'Dismiss this notice' ) }\n\t\t\t\t\t\ttabIndex={ 0 }\n\t\t\t\t\t\tclassName=\"components-snackbar__dismiss-button\"\n\t\t\t\t\t\tonClick={ dismissMe }\n\t\t\t\t\t\tonKeyPress={ dismissMe }\n\t\t\t\t\t>\n\t\t\t\t\t\t&#x2715;\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\n/**\n * A Snackbar displays a succinct message that is cleared out after a small delay.\n *\n * It can also offer the user options, like viewing a published post.\n * But these options should also be available elsewhere in the UI.\n *\n * ```jsx\n * const MySnackbarNotice = () => (\n * <Snackbar>Post published successfully.</Snackbar>\n * );\n * ```\n */\nexport const Snackbar = forwardRef( UnforwardedSnackbar );\n\nexport default Snackbar;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","speak","useEffect","useLayoutEffect","useRef","forwardRef","renderToString","__","warning","Button","jsx","_jsx","jsxs","_jsxs","NOTICE_TIMEOUT","useSpokenMessage","message","politeness","spokenMessage","UnforwardedSnackbar","className","children","actions","onRemove","icon","explicitDismiss","onDismiss","listRef","ref","dismissMe","event","preventDefault","current","focus","onActionClick","onClick","stopPropagation","callbacksRef","timeoutHandle","setTimeout","clearTimeout","classes","length","globalThis","SCRIPT_DEBUG","snackbarContentClassnames","undefined","tabIndex","role","onKeyPress","map","label","url","index","__next40pxDefaultSize","href","variant","Snackbar"],"sources":["@wordpress/components/src/snackbar/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ForwardedRef, KeyboardEvent, MouseEvent } from 'react';\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { speak } from '@wordpress/a11y';\nimport {\n\tuseEffect,\n\tuseLayoutEffect,\n\tuseRef,\n\tforwardRef,\n\trenderToString,\n} from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport warning from '@wordpress/warning';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport type { SnackbarProps } from './types';\nimport type { NoticeAction } from '../notice/types';\nimport type { WordPressComponentProps } from '../context';\n\nconst NOTICE_TIMEOUT = 10000;\n\n/**\n * Custom hook which announces the message with the given politeness, if a\n * valid message is provided.\n *\n * @param message Message to announce.\n * @param politeness Politeness to announce.\n */\nfunction useSpokenMessage(\n\tmessage: SnackbarProps[ 'spokenMessage' ],\n\tpoliteness: NonNullable< SnackbarProps[ 'politeness' ] >\n) {\n\tconst spokenMessage =\n\t\ttypeof message === 'string' ? message : renderToString( message );\n\n\tuseEffect( () => {\n\t\tif ( spokenMessage ) {\n\t\t\tspeak( spokenMessage, politeness );\n\t\t}\n\t}, [ spokenMessage, politeness ] );\n}\n\nfunction UnforwardedSnackbar(\n\t{\n\t\tclassName,\n\t\tchildren,\n\t\tspokenMessage = children,\n\t\tpoliteness = 'polite',\n\t\tactions = [],\n\t\tonRemove,\n\t\ticon = null,\n\t\texplicitDismiss = false,\n\t\t// onDismiss is a callback executed when the snackbar is dismissed.\n\t\t// It is distinct from onRemove, which _looks_ like a callback but is\n\t\t// actually the function to call to remove the snackbar from the UI.\n\t\tonDismiss,\n\t\tlistRef,\n\t}: WordPressComponentProps< SnackbarProps, 'div' >,\n\tref: ForwardedRef< any >\n) {\n\tfunction dismissMe( event: KeyboardEvent | MouseEvent ) {\n\t\tif ( event && event.preventDefault ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\n\t\t// Prevent focus loss by moving it to the list element.\n\t\tlistRef?.current?.focus();\n\n\t\tonDismiss?.();\n\t\tonRemove?.();\n\t}\n\n\tfunction onActionClick(\n\t\tevent: MouseEvent< HTMLButtonElement >,\n\t\tonClick: NoticeAction[ 'onClick' ]\n\t) {\n\t\tevent.stopPropagation();\n\n\t\tonRemove?.();\n\n\t\tif ( onClick ) {\n\t\t\tonClick( event );\n\t\t}\n\t}\n\n\tuseSpokenMessage( spokenMessage, politeness );\n\n\t// The `onDismiss/onRemove` can have unstable references,\n\t// trigger side-effect cleanup, and reset timers.\n\tconst callbacksRef = useRef( { onDismiss, onRemove } );\n\tuseLayoutEffect( () => {\n\t\tcallbacksRef.current = { onDismiss, onRemove };\n\t} );\n\n\tuseEffect( () => {\n\t\t// Only set up the timeout dismiss if we're not explicitly dismissing.\n\t\tconst timeoutHandle = setTimeout( () => {\n\t\t\tif ( ! explicitDismiss ) {\n\t\t\t\tcallbacksRef.current.onDismiss?.();\n\t\t\t\tcallbacksRef.current.onRemove?.();\n\t\t\t}\n\t\t}, NOTICE_TIMEOUT );\n\n\t\treturn () => clearTimeout( timeoutHandle );\n\t}, [ explicitDismiss ] );\n\n\tconst classes = clsx( className, 'components-snackbar', {\n\t\t'components-snackbar-explicit-dismiss': !! explicitDismiss,\n\t} );\n\tif ( actions && actions.length > 1 ) {\n\t\t// We need to inform developers that snackbar only accepts 1 action.\n\t\twarning(\n\t\t\t'Snackbar can only have one action. Use Notice if your message requires many actions.'\n\t\t);\n\t\t// return first element only while keeping it inside an array\n\t\tactions = [ actions[ 0 ] ];\n\t}\n\n\tconst snackbarContentClassnames = clsx( 'components-snackbar__content', {\n\t\t'components-snackbar__content-with-icon': !! icon,\n\t} );\n\n\treturn (\n\t\t<div\n\t\t\tref={ ref }\n\t\t\tclassName={ classes }\n\t\t\tonClick={ ! explicitDismiss ? dismissMe : undefined }\n\t\t\ttabIndex={ 0 }\n\t\t\trole={ ! explicitDismiss ? 'button' : undefined }\n\t\t\tonKeyPress={ ! explicitDismiss ? dismissMe : undefined }\n\t\t\taria-label={\n\t\t\t\t! explicitDismiss ? __( 'Dismiss this notice' ) : undefined\n\t\t\t}\n\t\t\tdata-testid=\"snackbar\"\n\t\t>\n\t\t\t<div className={ snackbarContentClassnames }>\n\t\t\t\t{ icon && (\n\t\t\t\t\t<div className=\"components-snackbar__icon\">{ icon }</div>\n\t\t\t\t) }\n\t\t\t\t{ children }\n\t\t\t\t{ actions.map( ( { label, onClick, url }, index ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tkey={ index }\n\t\t\t\t\t\t\thref={ url }\n\t\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\t\tonClick={ (\n\t\t\t\t\t\t\t\tevent: MouseEvent< HTMLButtonElement >\n\t\t\t\t\t\t\t) => onActionClick( event, onClick ) }\n\t\t\t\t\t\t\tclassName=\"components-snackbar__action\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ label }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t\t{ explicitDismiss && (\n\t\t\t\t\t<span\n\t\t\t\t\t\trole=\"button\"\n\t\t\t\t\t\taria-label={ __( 'Dismiss this notice' ) }\n\t\t\t\t\t\ttabIndex={ 0 }\n\t\t\t\t\t\tclassName=\"components-snackbar__dismiss-button\"\n\t\t\t\t\t\tonClick={ dismissMe }\n\t\t\t\t\t\tonKeyPress={ dismissMe }\n\t\t\t\t\t>\n\t\t\t\t\t\t&#x2715;\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\n/**\n * A Snackbar displays a succinct message that is cleared out after a small delay.\n *\n * It can also offer the user options, like viewing a published post.\n * But these options should also be available elsewhere in the UI.\n *\n * ```jsx\n * const MySnackbarNotice = () => (\n * <Snackbar>Post published successfully.</Snackbar>\n * );\n * ```\n */\nexport const Snackbar = forwardRef( UnforwardedSnackbar );\n\nexport default Snackbar;\n"],"mappings":"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","ignoreList":[]}
@@ -47,10 +47,21 @@ function useScrollRectIntoView(parent, rect, {
47
47
  const childRightEdge = childLeft + childWidth;
48
48
  const rightOverflow = childRightEdge + margin - parentRightEdge;
49
49
  const leftOverflow = parentScroll - (childLeft - margin);
50
+ let scrollLeft = null;
50
51
  if (leftOverflow > 0) {
51
- parent.scrollLeft = parentScroll - leftOverflow;
52
+ scrollLeft = parentScroll - leftOverflow;
52
53
  } else if (rightOverflow > 0) {
53
- parent.scrollLeft = parentScroll + rightOverflow;
54
+ scrollLeft = parentScroll + rightOverflow;
55
+ }
56
+ if (scrollLeft !== null) {
57
+ /**
58
+ * The optional chaining is used here to avoid unit test failures.
59
+ * It can be removed when JSDOM supports `Element` scroll methods.
60
+ * See: https://github.com/WordPress/gutenberg/pull/66498#issuecomment-2441146096
61
+ */
62
+ parent.scroll?.({
63
+ left: scrollLeft
64
+ });
54
65
  }
55
66
  }, [margin, parent, rect]);
56
67
  }
@@ -1 +1 @@
1
- {"version":3,"names":["Ariakit","clsx","warning","forwardRef","useLayoutEffect","useState","useMergeRefs","useTabsContext","StyledTabList","useTrackElementOffsetRect","useTrackOverflow","useAnimatedOffsetRect","jsx","_jsx","DEFAULT_SCROLL_MARGIN","useScrollRectIntoView","parent","rect","margin","scrollLeft","parentScroll","parentWidth","getBoundingClientRect","width","left","childLeft","childWidth","parentRightEdge","childRightEdge","rightOverflow","leftOverflow","TabList","children","otherProps","ref","_useTabsContext","store","selectedId","useStoreState","activeId","selectOnMove","items","setParent","refs","selectedItem","item","renderedItems","selectedItemIndex","indexOf","selectedRect","element","overflow","first","at","last","prefix","dataAttribute","transitionEndFilter","event","pseudoElement","roundRect","onBlur","setActiveId","globalThis","SCRIPT_DEBUG","render","props","_props$tabIndex","tabIndex","className"],"sources":["@wordpress/components/src/tabs/tablist.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport * as Ariakit from '@ariakit/react';\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport warning from '@wordpress/warning';\nimport { forwardRef, useLayoutEffect, useState } from '@wordpress/element';\nimport { useMergeRefs } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport type { TabListProps } from './types';\nimport type { WordPressComponentProps } from '../context';\nimport type { ElementOffsetRect } from '../utils/element-rect';\nimport { useTabsContext } from './context';\nimport { StyledTabList } from './styles';\nimport { useTrackElementOffsetRect } from '../utils/element-rect';\nimport { useTrackOverflow } from './use-track-overflow';\nimport { useAnimatedOffsetRect } from '../utils/hooks/use-animated-offset-rect';\n\nconst DEFAULT_SCROLL_MARGIN = 24;\n\n/**\n * Scrolls a given parent element so that a given rect is visible.\n *\n * The scroll is updated initially and whenever the rect changes.\n */\nfunction useScrollRectIntoView(\n\tparent: HTMLElement | undefined,\n\trect: ElementOffsetRect,\n\t{ margin = DEFAULT_SCROLL_MARGIN } = {}\n) {\n\tuseLayoutEffect( () => {\n\t\tif ( ! parent || ! rect ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { scrollLeft: parentScroll } = parent;\n\t\tconst parentWidth = parent.getBoundingClientRect().width;\n\t\tconst { left: childLeft, width: childWidth } = rect;\n\n\t\tconst parentRightEdge = parentScroll + parentWidth;\n\t\tconst childRightEdge = childLeft + childWidth;\n\t\tconst rightOverflow = childRightEdge + margin - parentRightEdge;\n\t\tconst leftOverflow = parentScroll - ( childLeft - margin );\n\t\tif ( leftOverflow > 0 ) {\n\t\t\tparent.scrollLeft = parentScroll - leftOverflow;\n\t\t} else if ( rightOverflow > 0 ) {\n\t\t\tparent.scrollLeft = parentScroll + rightOverflow;\n\t\t}\n\t}, [ margin, parent, rect ] );\n}\n\nexport const TabList = forwardRef<\n\tHTMLDivElement,\n\tWordPressComponentProps< TabListProps, 'div', false >\n>( function TabList( { children, ...otherProps }, ref ) {\n\tconst { store } = useTabsContext() ?? {};\n\n\tconst selectedId = Ariakit.useStoreState( store, 'selectedId' );\n\tconst activeId = Ariakit.useStoreState( store, 'activeId' );\n\tconst selectOnMove = Ariakit.useStoreState( store, 'selectOnMove' );\n\tconst items = Ariakit.useStoreState( store, 'items' );\n\tconst [ parent, setParent ] = useState< HTMLElement >();\n\tconst refs = useMergeRefs( [ ref, setParent ] );\n\n\tconst selectedItem = store?.item( selectedId );\n\tconst renderedItems = Ariakit.useStoreState( store, 'renderedItems' );\n\n\tconst selectedItemIndex =\n\t\trenderedItems && selectedItem\n\t\t\t? renderedItems.indexOf( selectedItem )\n\t\t\t: -1;\n\t// Use selectedItemIndex as a dependency to force recalculation when the\n\t// selected item index changes (elements are swapped / added / removed).\n\tconst selectedRect = useTrackElementOffsetRect( selectedItem?.element, [\n\t\tselectedItemIndex,\n\t] );\n\n\t// Track overflow to show scroll hints.\n\tconst overflow = useTrackOverflow( parent, {\n\t\tfirst: items?.at( 0 )?.element,\n\t\tlast: items?.at( -1 )?.element,\n\t} );\n\n\t// Size, position, and animate the indicator.\n\tuseAnimatedOffsetRect( parent, 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\t// Make sure selected tab is scrolled into view.\n\tuseScrollRectIntoView( parent, selectedRect );\n\n\tconst onBlur = () => {\n\t\tif ( ! selectOnMove ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// When automatic tab selection is on, make sure that the active tab is up\n\t\t// to date with the selected tab when leaving the tablist. This makes sure\n\t\t// that the selected tab will receive keyboard focus when tabbing back into\n\t\t// the tablist.\n\t\tif ( selectedId !== activeId ) {\n\t\t\tstore?.setActiveId( selectedId );\n\t\t}\n\t};\n\n\tif ( ! store ) {\n\t\twarning( '`Tabs.TabList` must be wrapped in a `Tabs` component.' );\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<StyledTabList\n\t\t\tref={ refs }\n\t\t\tstore={ store }\n\t\t\trender={ ( props ) => (\n\t\t\t\t<div\n\t\t\t\t\t{ ...props }\n\t\t\t\t\t// Fallback to -1 to prevent browsers from making the tablist\n\t\t\t\t\t// tabbable when it is a scrolling container.\n\t\t\t\t\ttabIndex={ props.tabIndex ?? -1 }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\tonBlur={ onBlur }\n\t\t\tdata-select-on-move={ selectOnMove ? 'true' : 'false' }\n\t\t\t{ ...otherProps }\n\t\t\tclassName={ clsx(\n\t\t\t\toverflow.first && 'is-overflowing-first',\n\t\t\t\toverflow.last && 'is-overflowing-last',\n\t\t\t\totherProps.className\n\t\t\t) }\n\t\t>\n\t\t\t{ children }\n\t\t</StyledTabList>\n\t);\n} );\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Ariakit","clsx","warning","forwardRef","useLayoutEffect","useState","useMergeRefs","useTabsContext","StyledTabList","useTrackElementOffsetRect","useTrackOverflow","useAnimatedOffsetRect","jsx","_jsx","DEFAULT_SCROLL_MARGIN","useScrollRectIntoView","parent","rect","margin","scrollLeft","parentScroll","parentWidth","getBoundingClientRect","width","left","childLeft","childWidth","parentRightEdge","childRightEdge","rightOverflow","leftOverflow","scroll","TabList","children","otherProps","ref","_useTabsContext","store","selectedId","useStoreState","activeId","selectOnMove","items","setParent","refs","selectedItem","item","renderedItems","selectedItemIndex","indexOf","selectedRect","element","overflow","first","at","last","prefix","dataAttribute","transitionEndFilter","event","pseudoElement","roundRect","onBlur","setActiveId","globalThis","SCRIPT_DEBUG","render","props","_props$tabIndex","tabIndex","className"],"sources":["@wordpress/components/src/tabs/tablist.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport * as Ariakit from '@ariakit/react';\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport warning from '@wordpress/warning';\nimport { forwardRef, useLayoutEffect, useState } from '@wordpress/element';\nimport { useMergeRefs } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport type { TabListProps } from './types';\nimport type { WordPressComponentProps } from '../context';\nimport type { ElementOffsetRect } from '../utils/element-rect';\nimport { useTabsContext } from './context';\nimport { StyledTabList } from './styles';\nimport { useTrackElementOffsetRect } from '../utils/element-rect';\nimport { useTrackOverflow } from './use-track-overflow';\nimport { useAnimatedOffsetRect } from '../utils/hooks/use-animated-offset-rect';\n\nconst DEFAULT_SCROLL_MARGIN = 24;\n\n/**\n * Scrolls a given parent element so that a given rect is visible.\n *\n * The scroll is updated initially and whenever the rect changes.\n */\nfunction useScrollRectIntoView(\n\tparent: HTMLElement | undefined,\n\trect: ElementOffsetRect,\n\t{ margin = DEFAULT_SCROLL_MARGIN } = {}\n) {\n\tuseLayoutEffect( () => {\n\t\tif ( ! parent || ! rect ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { scrollLeft: parentScroll } = parent;\n\t\tconst parentWidth = parent.getBoundingClientRect().width;\n\t\tconst { left: childLeft, width: childWidth } = rect;\n\n\t\tconst parentRightEdge = parentScroll + parentWidth;\n\t\tconst childRightEdge = childLeft + childWidth;\n\t\tconst rightOverflow = childRightEdge + margin - parentRightEdge;\n\t\tconst leftOverflow = parentScroll - ( childLeft - margin );\n\n\t\tlet scrollLeft = null;\n\t\tif ( leftOverflow > 0 ) {\n\t\t\tscrollLeft = parentScroll - leftOverflow;\n\t\t} else if ( rightOverflow > 0 ) {\n\t\t\tscrollLeft = parentScroll + rightOverflow;\n\t\t}\n\n\t\tif ( scrollLeft !== null ) {\n\t\t\t/**\n\t\t\t * The optional chaining is used here to avoid unit test failures.\n\t\t\t * It can be removed when JSDOM supports `Element` scroll methods.\n\t\t\t * See: https://github.com/WordPress/gutenberg/pull/66498#issuecomment-2441146096\n\t\t\t */\n\t\t\tparent.scroll?.( { left: scrollLeft } );\n\t\t}\n\t}, [ margin, parent, rect ] );\n}\n\nexport const TabList = forwardRef<\n\tHTMLDivElement,\n\tWordPressComponentProps< TabListProps, 'div', false >\n>( function TabList( { children, ...otherProps }, ref ) {\n\tconst { store } = useTabsContext() ?? {};\n\n\tconst selectedId = Ariakit.useStoreState( store, 'selectedId' );\n\tconst activeId = Ariakit.useStoreState( store, 'activeId' );\n\tconst selectOnMove = Ariakit.useStoreState( store, 'selectOnMove' );\n\tconst items = Ariakit.useStoreState( store, 'items' );\n\tconst [ parent, setParent ] = useState< HTMLElement >();\n\tconst refs = useMergeRefs( [ ref, setParent ] );\n\n\tconst selectedItem = store?.item( selectedId );\n\tconst renderedItems = Ariakit.useStoreState( store, 'renderedItems' );\n\n\tconst selectedItemIndex =\n\t\trenderedItems && selectedItem\n\t\t\t? renderedItems.indexOf( selectedItem )\n\t\t\t: -1;\n\t// Use selectedItemIndex as a dependency to force recalculation when the\n\t// selected item index changes (elements are swapped / added / removed).\n\tconst selectedRect = useTrackElementOffsetRect( selectedItem?.element, [\n\t\tselectedItemIndex,\n\t] );\n\n\t// Track overflow to show scroll hints.\n\tconst overflow = useTrackOverflow( parent, {\n\t\tfirst: items?.at( 0 )?.element,\n\t\tlast: items?.at( -1 )?.element,\n\t} );\n\n\t// Size, position, and animate the indicator.\n\tuseAnimatedOffsetRect( parent, 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\t// Make sure selected tab is scrolled into view.\n\tuseScrollRectIntoView( parent, selectedRect );\n\n\tconst onBlur = () => {\n\t\tif ( ! selectOnMove ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// When automatic tab selection is on, make sure that the active tab is up\n\t\t// to date with the selected tab when leaving the tablist. This makes sure\n\t\t// that the selected tab will receive keyboard focus when tabbing back into\n\t\t// the tablist.\n\t\tif ( selectedId !== activeId ) {\n\t\t\tstore?.setActiveId( selectedId );\n\t\t}\n\t};\n\n\tif ( ! store ) {\n\t\twarning( '`Tabs.TabList` must be wrapped in a `Tabs` component.' );\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<StyledTabList\n\t\t\tref={ refs }\n\t\t\tstore={ store }\n\t\t\trender={ ( props ) => (\n\t\t\t\t<div\n\t\t\t\t\t{ ...props }\n\t\t\t\t\t// Fallback to -1 to prevent browsers from making the tablist\n\t\t\t\t\t// tabbable when it is a scrolling container.\n\t\t\t\t\ttabIndex={ props.tabIndex ?? -1 }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\tonBlur={ onBlur }\n\t\t\tdata-select-on-move={ selectOnMove ? 'true' : 'false' }\n\t\t\t{ ...otherProps }\n\t\t\tclassName={ clsx(\n\t\t\t\toverflow.first && 'is-overflowing-first',\n\t\t\t\toverflow.last && 'is-overflowing-last',\n\t\t\t\totherProps.className\n\t\t\t) }\n\t\t>\n\t\t\t{ children }\n\t\t</StyledTabList>\n\t);\n} );\n"],"mappings":"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","ignoreList":[]}
@@ -43,7 +43,7 @@ function UnconnectedToggleGroupControl(props, forwardedRef) {
43
43
  const [selectedElement, setSelectedElement] = useState();
44
44
  const [controlElement, setControlElement] = useState();
45
45
  const refs = useMergeRefs([setControlElement, forwardedRef]);
46
- const selectedRect = useTrackElementOffsetRect(value ? selectedElement : undefined);
46
+ const selectedRect = useTrackElementOffsetRect(value || value === 0 ? selectedElement : undefined);
47
47
  useAnimatedOffsetRect(controlElement, selectedRect, {
48
48
  prefix: 'selected',
49
49
  dataAttribute: 'indicator-animated',
@@ -1 +1 @@
1
- {"version":3,"names":["useMemo","useState","contextConnect","useContextSystem","useCx","BaseControl","VisualLabelWrapper","styles","ToggleGroupControlAsRadioGroup","ToggleGroupControlAsButtonGroup","useTrackElementOffsetRect","useMergeRefs","useAnimatedOffsetRect","jsx","_jsx","jsxs","_jsxs","UnconnectedToggleGroupControl","props","forwardedRef","__nextHasNoMarginBottom","__next40pxDefaultSize","className","isAdaptiveWidth","isBlock","isDeselectable","label","hideLabelFromVision","help","onChange","size","value","children","otherProps","normalizedSize","selectedElement","setSelectedElement","controlElement","setControlElement","refs","selectedRect","undefined","prefix","dataAttribute","transitionEndFilter","event","pseudoElement","roundRect","cx","classes","toggleGroupControl","block","MainControl","__associatedWPComponentName","VisualLabel","ref","ToggleGroupControl"],"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';\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\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 ? 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\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 * >\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":"AAAA;AACA;AACA;;AAGA;AACA;AACA;AACA,SAASA,OAAO,EAAEC,QAAQ,QAAQ,oBAAoB;;AAEtD;AACA;AACA;;AAEA,SAASC,cAAc,EAAEC,gBAAgB,QAAQ,eAAe;AAChE,SAASC,KAAK,QAAQ,mBAAmB;AACzC,OAAOC,WAAW,MAAM,oBAAoB;AAE5C,SAASC,kBAAkB,QAAQ,UAAU;AAC7C,OAAO,KAAKC,MAAM,MAAM,UAAU;AAClC,SAASC,8BAA8B,QAAQ,kBAAkB;AACjE,SAASC,+BAA+B,QAAQ,mBAAmB;AACnE,SAASC,yBAAyB,QAAQ,0BAA0B;AACpE,SAASC,YAAY,QAAQ,oBAAoB;AACjD,SAASC,qBAAqB,QAAQ,4CAA4C;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEnF,SAASC,6BAA6BA,CACrCC,KAAuE,EACvEC,YAAiC,EAChC;EACD,MAAM;IACLC,uBAAuB,GAAG,KAAK;IAC/BC,qBAAqB,GAAG,KAAK;IAC7BC,SAAS;IACTC,eAAe,GAAG,KAAK;IACvBC,OAAO,GAAG,KAAK;IACfC,cAAc,GAAG,KAAK;IACtBC,KAAK;IACLC,mBAAmB,GAAG,KAAK;IAC3BC,IAAI;IACJC,QAAQ;IACRC,IAAI,GAAG,SAAS;IAChBC,KAAK;IACLC,QAAQ;IACR,GAAGC;EACJ,CAAC,GAAG9B,gBAAgB,CAAEe,KAAK,EAAE,oBAAqB,CAAC;EAEnD,MAAMgB,cAAc,GACnBb,qBAAqB,IAAIS,IAAI,KAAK,SAAS,GAAG,kBAAkB,GAAGA,IAAI;EAExE,MAAM,CAAEK,eAAe,EAAEC,kBAAkB,CAAE,GAAGnC,QAAQ,CAAgB,CAAC;EACzE,MAAM,CAAEoC,cAAc,EAAEC,iBAAiB,CAAE,GAAGrC,QAAQ,CAAgB,CAAC;EACvE,MAAMsC,IAAI,GAAG5B,YAAY,CAAE,CAAE2B,iBAAiB,EAAEnB,YAAY,CAAG,CAAC;EAChE,MAAMqB,YAAY,GAAG9B,yBAAyB,CAC7CqB,KAAK,GAAGI,eAAe,GAAGM,SAC3B,CAAC;EACD7B,qBAAqB,CAAEyB,cAAc,EAAEG,YAAY,EAAE;IACpDE,MAAM,EAAE,UAAU;IAClBC,aAAa,EAAE,oBAAoB;IACnCC,mBAAmB,EAAIC,KAAK,IAAMA,KAAK,CAACC,aAAa,KAAK,UAAU;IACpEC,SAAS,EAAE;EACZ,CAAE,CAAC;EAEH,MAAMC,EAAE,GAAG5C,KAAK,CAAC,CAAC;EAElB,MAAM6C,OAAO,GAAGjD,OAAO,CACtB,MACCgD,EAAE,CACDzC,MAAM,CAAC2C,kBAAkB,CAAE;IAC1B1B,OAAO;IACPC,cAAc;IACdK,IAAI,EAAEI;EACP,CAAE,CAAC,EACHV,OAAO,IAAIjB,MAAM,CAAC4C,KAAK,EACvB7B,SACD,CAAC,EACF,CAAEA,SAAS,EAAE0B,EAAE,EAAExB,OAAO,EAAEC,cAAc,EAAES,cAAc,CACzD,CAAC;EAED,MAAMkB,WAAW,GAAG3B,cAAc,GAC/BhB,+BAA+B,GAC/BD,8BAA8B;EAEjC,oBACCQ,KAAA,CAACX,WAAW;IACXuB,IAAI,EAAGA,IAAM;IACbR,uBAAuB,EAAGA,uBAAyB;IACnDiC,2BAA2B,EAAC,oBAAoB;IAAArB,QAAA,GAE9C,CAAEL,mBAAmB,iBACtBb,IAAA,CAACR,kBAAkB;MAAA0B,QAAA,eAClBlB,IAAA,CAACT,WAAW,CAACiD,WAAW;QAAAtB,QAAA,EAAGN;MAAK,CAA2B;IAAC,CACzC,CACpB,eACDZ,IAAA,CAACsC,WAAW;MAAA,GACNnB,UAAU;MACfG,kBAAkB,EAAGA,kBAAoB;MACzCd,SAAS,EAAG2B,OAAS;MACrB1B,eAAe,EAAGA,eAAiB;MACnCG,KAAK,EAAGA,KAAO;MACfG,QAAQ,EAAGA,QAAU;MACrB0B,GAAG,EAAGhB,IAAM;MACZT,IAAI,EAAGI,cAAgB;MACvBH,KAAK,EAAGA,KAAO;MAAAC,QAAA,EAEbA;IAAQ,CACE,CAAC;EAAA,CACF,CAAC;AAEhB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMwB,kBAAkB,GAAGtD,cAAc,CAC/Ce,6BAA6B,EAC7B,oBACD,CAAC;AAED,eAAeuC,kBAAkB","ignoreList":[]}
1
+ {"version":3,"names":["useMemo","useState","contextConnect","useContextSystem","useCx","BaseControl","VisualLabelWrapper","styles","ToggleGroupControlAsRadioGroup","ToggleGroupControlAsButtonGroup","useTrackElementOffsetRect","useMergeRefs","useAnimatedOffsetRect","jsx","_jsx","jsxs","_jsxs","UnconnectedToggleGroupControl","props","forwardedRef","__nextHasNoMarginBottom","__next40pxDefaultSize","className","isAdaptiveWidth","isBlock","isDeselectable","label","hideLabelFromVision","help","onChange","size","value","children","otherProps","normalizedSize","selectedElement","setSelectedElement","controlElement","setControlElement","refs","selectedRect","undefined","prefix","dataAttribute","transitionEndFilter","event","pseudoElement","roundRect","cx","classes","toggleGroupControl","block","MainControl","__associatedWPComponentName","VisualLabel","ref","ToggleGroupControl"],"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';\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\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\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 * >\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":[]}
@@ -7,7 +7,7 @@ export function maybeWarnDeprecated36pxSize({
7
7
  __next40pxDefaultSize,
8
8
  size
9
9
  }) {
10
- if (__next40pxDefaultSize || size !== 'default') {
10
+ if (__next40pxDefaultSize || size !== undefined && size !== 'default') {
11
11
  return;
12
12
  }
13
13
  deprecated(`36px default size for wp.components.${componentName}`, {
@@ -1 +1 @@
1
- {"version":3,"names":["deprecated","maybeWarnDeprecated36pxSize","componentName","__next40pxDefaultSize","size","since","version","hint"],"sources":["@wordpress/components/src/utils/deprecated-36px-size.ts"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport deprecated from '@wordpress/deprecated';\n\nexport function maybeWarnDeprecated36pxSize( {\n\tcomponentName,\n\t__next40pxDefaultSize,\n\tsize,\n}: {\n\tcomponentName: string;\n\t__next40pxDefaultSize: boolean | undefined;\n\tsize: string;\n} ) {\n\tif ( __next40pxDefaultSize || size !== 'default' ) {\n\t\treturn;\n\t}\n\n\tdeprecated( `36px default size for wp.components.${ componentName }`, {\n\t\tsince: '6.8',\n\t\tversion: '7.1',\n\t\thint: 'Set the `__next40pxDefaultSize` prop to true to start opting into the new default size, which will become the default in a future version.',\n\t} );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,UAAU,MAAM,uBAAuB;AAE9C,OAAO,SAASC,2BAA2BA,CAAE;EAC5CC,aAAa;EACbC,qBAAqB;EACrBC;AAKD,CAAC,EAAG;EACH,IAAKD,qBAAqB,IAAIC,IAAI,KAAK,SAAS,EAAG;IAClD;EACD;EAEAJ,UAAU,CAAE,uCAAwCE,aAAa,EAAG,EAAE;IACrEG,KAAK,EAAE,KAAK;IACZC,OAAO,EAAE,KAAK;IACdC,IAAI,EAAE;EACP,CAAE,CAAC;AACJ","ignoreList":[]}
1
+ {"version":3,"names":["deprecated","maybeWarnDeprecated36pxSize","componentName","__next40pxDefaultSize","size","undefined","since","version","hint"],"sources":["@wordpress/components/src/utils/deprecated-36px-size.ts"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport deprecated from '@wordpress/deprecated';\n\nexport function maybeWarnDeprecated36pxSize( {\n\tcomponentName,\n\t__next40pxDefaultSize,\n\tsize,\n}: {\n\tcomponentName: string;\n\t__next40pxDefaultSize: boolean | undefined;\n\tsize: string | undefined;\n} ) {\n\tif (\n\t\t__next40pxDefaultSize ||\n\t\t( size !== undefined && size !== 'default' )\n\t) {\n\t\treturn;\n\t}\n\n\tdeprecated( `36px default size for wp.components.${ componentName }`, {\n\t\tsince: '6.8',\n\t\tversion: '7.1',\n\t\thint: 'Set the `__next40pxDefaultSize` prop to true to start opting into the new default size, which will become the default in a future version.',\n\t} );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,UAAU,MAAM,uBAAuB;AAE9C,OAAO,SAASC,2BAA2BA,CAAE;EAC5CC,aAAa;EACbC,qBAAqB;EACrBC;AAKD,CAAC,EAAG;EACH,IACCD,qBAAqB,IACnBC,IAAI,KAAKC,SAAS,IAAID,IAAI,KAAK,SAAW,EAC3C;IACD;EACD;EAEAJ,UAAU,CAAE,uCAAwCE,aAAa,EAAG,EAAE;IACrEI,KAAK,EAAE,KAAK;IACZC,OAAO,EAAE,KAAK;IACdC,IAAI,EAAE;EACP,CAAE,CAAC;AACJ","ignoreList":[]}
@@ -1520,6 +1520,8 @@ body.is-dragging-components-draggable {
1520
1520
  }
1521
1521
  .components-form-token-field__token.is-borderless .components-form-token-field__token-text {
1522
1522
  background: transparent;
1523
+ }
1524
+ .components-form-token-field__token.is-borderless:not(.is-disabled) .components-form-token-field__token-text {
1523
1525
  color: var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9));
1524
1526
  }
1525
1527
  .components-form-token-field__token.is-borderless .components-form-token-field__remove-token {
@@ -1528,7 +1530,6 @@ body.is-dragging-components-draggable {
1528
1530
  position: absolute;
1529
1531
  top: 1px;
1530
1532
  left: 0;
1531
- padding: 0;
1532
1533
  }
1533
1534
  .components-form-token-field__token.is-borderless.is-success .components-form-token-field__token-text {
1534
1535
  color: #4ab866;
@@ -1540,14 +1541,10 @@ body.is-dragging-components-draggable {
1540
1541
  .components-form-token-field__token.is-borderless.is-validating .components-form-token-field__token-text {
1541
1542
  color: #1e1e1e;
1542
1543
  }
1543
- .components-form-token-field__token.is-disabled .components-form-token-field__remove-token {
1544
- cursor: default;
1545
- }
1546
1544
 
1547
1545
  .components-form-token-field__token-text,
1548
1546
  .components-form-token-field__remove-token.components-button {
1549
1547
  display: inline-block;
1550
- line-height: 24px;
1551
1548
  height: auto;
1552
1549
  background: #ddd;
1553
1550
  min-width: unset;
@@ -1566,20 +1563,19 @@ body.is-dragging-components-draggable {
1566
1563
  .components-form-token-field__token-text {
1567
1564
  border-radius: 0 1px 1px 0;
1568
1565
  padding: 0 8px 0 0;
1566
+ line-height: 24px;
1569
1567
  white-space: nowrap;
1570
1568
  overflow: hidden;
1571
1569
  text-overflow: ellipsis;
1572
1570
  }
1573
1571
 
1574
1572
  .components-form-token-field__remove-token.components-button {
1575
- cursor: pointer;
1576
1573
  border-radius: 1px 0 0 1px;
1577
- padding: 0 2px;
1578
1574
  color: #1e1e1e;
1579
1575
  line-height: 10px;
1580
1576
  overflow: initial;
1581
1577
  }
1582
- .components-form-token-field__remove-token.components-button:hover {
1578
+ .components-form-token-field__remove-token.components-button:hover:not(:disabled) {
1583
1579
  color: #1e1e1e;
1584
1580
  }
1585
1581
 
@@ -1651,25 +1647,25 @@ body.is-dragging-components-draggable {
1651
1647
  .components-guide .components-modal__header .components-button:hover svg {
1652
1648
  fill: #fff;
1653
1649
  }
1654
- .components-guide__container {
1650
+ .components-guide .components-guide__container {
1655
1651
  display: flex;
1656
1652
  flex-direction: column;
1657
1653
  justify-content: space-between;
1658
1654
  margin-top: -60px;
1659
1655
  min-height: 100%;
1660
1656
  }
1661
- .components-guide__page {
1657
+ .components-guide .components-guide__page {
1662
1658
  display: flex;
1663
1659
  flex-direction: column;
1664
1660
  justify-content: center;
1665
1661
  position: relative;
1666
1662
  }
1667
1663
  @media (min-width: 600px) {
1668
- .components-guide__page {
1664
+ .components-guide .components-guide__page {
1669
1665
  min-height: 300px;
1670
1666
  }
1671
1667
  }
1672
- .components-guide__footer {
1668
+ .components-guide .components-guide__footer {
1673
1669
  align-content: center;
1674
1670
  display: flex;
1675
1671
  height: 36px;
@@ -1679,21 +1675,19 @@ body.is-dragging-components-draggable {
1679
1675
  position: relative;
1680
1676
  width: 100%;
1681
1677
  }
1682
- .components-guide__page-control {
1678
+ .components-guide .components-guide__page-control {
1683
1679
  margin: 0;
1684
1680
  text-align: center;
1685
1681
  }
1686
- .components-guide__page-control li {
1682
+ .components-guide .components-guide__page-control li {
1687
1683
  display: inline-block;
1688
1684
  margin: 0;
1689
1685
  }
1690
- .components-guide__page-control .components-button {
1691
- height: 30px;
1692
- min-width: 20px;
1686
+ .components-guide .components-guide__page-control .components-button {
1693
1687
  margin: -6px 0;
1694
1688
  color: #e0e0e0;
1695
1689
  }
1696
- .components-guide__page-control li[aria-current=step] .components-button {
1690
+ .components-guide .components-guide__page-control li[aria-current=step] .components-button {
1697
1691
  color: var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9));
1698
1692
  }
1699
1693
 
@@ -3052,23 +3046,15 @@ body.lockscroll {
3052
3046
  .components-snackbar__action.components-button {
3053
3047
  margin-right: 32px;
3054
3048
  color: #fff;
3055
- height: auto;
3056
3049
  flex-shrink: 0;
3057
- line-height: 1.4;
3058
- padding: 0;
3059
- }
3060
- .components-snackbar__action.components-button:not(:disabled):not([aria-disabled=true]):not(.is-secondary) {
3061
- text-decoration: underline;
3062
- background-color: transparent;
3063
3050
  }
3064
- .components-snackbar__action.components-button:not(:disabled):not([aria-disabled=true]):not(.is-secondary):focus {
3065
- color: #fff;
3051
+ .components-snackbar__action.components-button:focus {
3066
3052
  box-shadow: none;
3067
3053
  outline: 1px dotted #fff;
3068
3054
  }
3069
- .components-snackbar__action.components-button:not(:disabled):not([aria-disabled=true]):not(.is-secondary):hover {
3055
+ .components-snackbar__action.components-button:hover {
3070
3056
  text-decoration: none;
3071
- color: #fff;
3057
+ color: currentColor;
3072
3058
  }
3073
3059
 
3074
3060
  .components-snackbar__content {