{
  "version": 3,
  "sources": ["../../../src/components/resizable-frame/index.jsx"],
  "sourcesContent": ["import clsx from 'clsx';\nimport { useState, useRef } from '@wordpress/element';\nimport {\n\tResizableBox,\n\t__unstableMotion as motion,\n} from '@wordpress/components';\nimport { useInstanceId, useReducedMotion } from '@wordpress/compose';\nimport { __, isRTL } from '@wordpress/i18n';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { addQueryArgs } from '@wordpress/url';\nimport { Tooltip } from '@wordpress/ui';\nimport { unlock } from '../../lock-unlock';\n\nconst { useLocation, useHistory } = unlock( routerPrivateApis );\n\n// Removes the inline styles in the drag handles.\nconst HANDLE_STYLES_OVERRIDE = {\n\tposition: undefined,\n\tuserSelect: undefined,\n\tcursor: undefined,\n\twidth: undefined,\n\theight: undefined,\n\ttop: undefined,\n\tright: undefined,\n\tbottom: undefined,\n\tleft: undefined,\n};\n\n// The minimum width of the frame (in px) while resizing.\nconst FRAME_MIN_WIDTH = 320;\n// The reference width of the frame (in px) used to calculate the aspect ratio.\nconst FRAME_REFERENCE_WIDTH = 1300;\n// 9 : 19.5 is the target aspect ratio enforced (when possible) while resizing.\nconst FRAME_TARGET_ASPECT_RATIO = 9 / 19.5;\n// The minimum distance (in px) between the frame resize handle and the\n// viewport's edge. If the frame is resized to be closer to the viewport's edge\n// than this distance, then \"canvas mode\" will be enabled.\nconst SNAP_TO_EDIT_CANVAS_MODE_THRESHOLD = 200;\n// Default size for the `frameSize` state.\nconst INITIAL_FRAME_SIZE = { width: '100%', height: '100%' };\n\nfunction calculateNewHeight( width, initialAspectRatio ) {\n\tconst lerp = ( a, b, amount ) => {\n\t\treturn a + ( b - a ) * amount;\n\t};\n\n\t// Calculate the intermediate aspect ratio based on the current width.\n\tconst lerpFactor =\n\t\t1 -\n\t\tMath.max(\n\t\t\t0,\n\t\t\tMath.min(\n\t\t\t\t1,\n\t\t\t\t( width - FRAME_MIN_WIDTH ) /\n\t\t\t\t\t( FRAME_REFERENCE_WIDTH - FRAME_MIN_WIDTH )\n\t\t\t)\n\t\t);\n\n\t// Calculate the height based on the intermediate aspect ratio\n\t// ensuring the frame arrives at the target aspect ratio.\n\tconst intermediateAspectRatio = lerp(\n\t\tinitialAspectRatio,\n\t\tFRAME_TARGET_ASPECT_RATIO,\n\t\tlerpFactor\n\t);\n\n\treturn width / intermediateAspectRatio;\n}\n\nfunction ResizableFrame( {\n\tisFullWidth,\n\tisOversized,\n\tsetIsOversized,\n\tisReady,\n\tchildren,\n\t/** The default (unresized) width/height of the frame, based on the space available in the viewport. */\n\tdefaultSize,\n\tinnerContentStyle,\n} ) {\n\tconst history = useHistory();\n\tconst { path, query } = useLocation();\n\tconst { canvas = 'view' } = query;\n\tconst disableMotion = useReducedMotion();\n\tconst [ frameSize, setFrameSize ] = useState( INITIAL_FRAME_SIZE );\n\t// The width of the resizable frame when a new resize gesture starts.\n\tconst [ startingWidth, setStartingWidth ] = useState();\n\tconst [ isResizing, setIsResizing ] = useState( false );\n\tconst [ shouldShowHandle, setShouldShowHandle ] = useState( false );\n\tconst [ resizeRatio, setResizeRatio ] = useState( 1 );\n\n\tconst FRAME_TRANSITION = { type: 'tween', duration: isResizing ? 0 : 0.5 };\n\tconst frameRef = useRef( null );\n\tconst resizableHandleHelpId = useInstanceId(\n\t\tResizableFrame,\n\t\t'edit-site-resizable-frame-handle-help'\n\t);\n\tconst defaultAspectRatio = defaultSize.width / defaultSize.height;\n\tconst isBlockTheme = useSelect( ( select ) => {\n\t\tconst { getCurrentTheme } = select( coreStore );\n\t\treturn getCurrentTheme()?.is_block_theme;\n\t}, [] );\n\n\tconst handleResizeStart = ( _event, _direction, ref ) => {\n\t\t// Remember the starting width so we don't have to get `ref.offsetWidth` on\n\t\t// every resize event thereafter, which will cause layout thrashing.\n\t\tsetStartingWidth( ref.offsetWidth );\n\t\tsetIsResizing( true );\n\t};\n\n\t// Calculate the frame size based on the window width as its resized.\n\tconst handleResize = ( _event, _direction, _ref, delta ) => {\n\t\tconst normalizedDelta = delta.width / resizeRatio;\n\t\tconst deltaAbs = Math.abs( normalizedDelta );\n\t\tconst maxDoubledDelta =\n\t\t\tdelta.width < 0 // is shrinking\n\t\t\t\t? deltaAbs\n\t\t\t\t: ( defaultSize.width - startingWidth ) / 2;\n\t\tconst deltaToDouble = Math.min( deltaAbs, maxDoubledDelta );\n\t\tconst doubleSegment = deltaAbs === 0 ? 0 : deltaToDouble / deltaAbs;\n\t\tconst singleSegment = 1 - doubleSegment;\n\n\t\tsetResizeRatio( singleSegment + doubleSegment * 2 );\n\n\t\tconst updatedWidth = startingWidth + delta.width;\n\n\t\tsetIsOversized( updatedWidth > defaultSize.width );\n\n\t\t// Width will be controlled by the library (via `resizeRatio`),\n\t\t// so we only need to update the height.\n\t\tsetFrameSize( {\n\t\t\theight: isOversized\n\t\t\t\t? '100%'\n\t\t\t\t: calculateNewHeight( updatedWidth, defaultAspectRatio ),\n\t\t} );\n\t};\n\n\tconst handleResizeStop = ( _event, _direction, ref ) => {\n\t\tsetIsResizing( false );\n\n\t\tif ( ! isOversized ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetIsOversized( false );\n\n\t\tconst remainingWidth =\n\t\t\tref.ownerDocument.documentElement.offsetWidth - ref.offsetWidth;\n\n\t\tif (\n\t\t\tremainingWidth > SNAP_TO_EDIT_CANVAS_MODE_THRESHOLD ||\n\t\t\t! isBlockTheme\n\t\t) {\n\t\t\t// Reset the initial aspect ratio if the frame is resized slightly\n\t\t\t// above the sidebar but not far enough to trigger full screen.\n\t\t\tsetFrameSize( INITIAL_FRAME_SIZE );\n\t\t} else {\n\t\t\t// Trigger full screen if the frame is resized far enough to the left.\n\t\t\thistory.navigate(\n\t\t\t\taddQueryArgs( path, {\n\t\t\t\t\tcanvas: 'edit',\n\t\t\t\t} ),\n\t\t\t\t{\n\t\t\t\t\ttransition: 'canvas-mode-edit-transition',\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t};\n\n\t// Handle resize by arrow keys\n\tconst handleResizableHandleKeyDown = ( event ) => {\n\t\tif ( ! [ 'ArrowLeft', 'ArrowRight' ].includes( event.key ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tevent.preventDefault();\n\n\t\tconst step = 20 * ( event.shiftKey ? 5 : 1 );\n\t\tconst delta =\n\t\t\tstep *\n\t\t\t( event.key === 'ArrowLeft' ? 1 : -1 ) *\n\t\t\t( isRTL() ? -1 : 1 );\n\t\tconst newWidth = Math.min(\n\t\t\tMath.max(\n\t\t\t\tFRAME_MIN_WIDTH,\n\t\t\t\tframeRef.current.resizable.offsetWidth + delta\n\t\t\t),\n\t\t\tdefaultSize.width\n\t\t);\n\n\t\tsetFrameSize( {\n\t\t\twidth: newWidth,\n\t\t\theight: calculateNewHeight( newWidth, defaultAspectRatio ),\n\t\t} );\n\t};\n\n\tconst frameAnimationVariants = {\n\t\tdefault: {\n\t\t\tflexGrow: 0,\n\t\t\theight: frameSize.height,\n\t\t},\n\t\tfullWidth: {\n\t\t\tflexGrow: 1,\n\t\t\theight: frameSize.height,\n\t\t},\n\t};\n\n\tconst resizeHandleVariants = {\n\t\thidden: {\n\t\t\topacity: 0,\n\t\t\t...( isRTL() ? { right: 0 } : { left: 0 } ),\n\t\t},\n\t\tvisible: {\n\t\t\topacity: 1,\n\t\t\t// Account for the handle's width.\n\t\t\t...( isRTL() ? { right: -14 } : { left: -14 } ),\n\t\t},\n\t\tactive: {\n\t\t\topacity: 1,\n\t\t\t// Account for the handle's width.\n\t\t\t...( isRTL() ? { right: -14 } : { left: -14 } ),\n\t\t\tscaleY: 1.3,\n\t\t},\n\t};\n\tconst currentResizeHandleVariant = ( () => {\n\t\tif ( isResizing ) {\n\t\t\treturn 'active';\n\t\t}\n\t\treturn shouldShowHandle ? 'visible' : 'hidden';\n\t} )();\n\n\treturn (\n\t\t<ResizableBox\n\t\t\tas={ motion.div }\n\t\t\tref={ frameRef }\n\t\t\tinitial={ false }\n\t\t\tvariants={ frameAnimationVariants }\n\t\t\tanimate={ isFullWidth ? 'fullWidth' : 'default' }\n\t\t\tonAnimationComplete={ ( definition ) => {\n\t\t\t\tif ( definition === 'fullWidth' ) {\n\t\t\t\t\tsetFrameSize( { width: '100%', height: '100%' } );\n\t\t\t\t}\n\t\t\t} }\n\t\t\twhileHover={\n\t\t\t\tcanvas === 'view' && isBlockTheme\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tscale: 1.005,\n\t\t\t\t\t\t\ttransition: {\n\t\t\t\t\t\t\t\tduration: disableMotion ? 0 : 0.5,\n\t\t\t\t\t\t\t\tease: 'easeOut',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t  }\n\t\t\t\t\t: {}\n\t\t\t}\n\t\t\ttransition={ FRAME_TRANSITION }\n\t\t\tsize={ frameSize }\n\t\t\tenable={ {\n\t\t\t\ttop: false,\n\t\t\t\tbottom: false,\n\t\t\t\t// Resizing will be disabled until the editor content is loaded.\n\t\t\t\t...( isRTL()\n\t\t\t\t\t? { right: isReady, left: false }\n\t\t\t\t\t: { left: isReady, right: false } ),\n\t\t\t\ttopRight: false,\n\t\t\t\tbottomRight: false,\n\t\t\t\tbottomLeft: false,\n\t\t\t\ttopLeft: false,\n\t\t\t} }\n\t\t\tresizeRatio={ resizeRatio }\n\t\t\thandleClasses={ undefined }\n\t\t\thandleStyles={ {\n\t\t\t\tleft: HANDLE_STYLES_OVERRIDE,\n\t\t\t\tright: HANDLE_STYLES_OVERRIDE,\n\t\t\t} }\n\t\t\tminWidth={ FRAME_MIN_WIDTH }\n\t\t\tmaxWidth={ isFullWidth ? '100%' : '150%' }\n\t\t\tmaxHeight=\"100%\"\n\t\t\tonFocus={ () => setShouldShowHandle( true ) }\n\t\t\tonBlur={ () => setShouldShowHandle( false ) }\n\t\t\tonMouseOver={ () => setShouldShowHandle( true ) }\n\t\t\tonMouseOut={ () => setShouldShowHandle( false ) }\n\t\t\thandleComponent={ {\n\t\t\t\t[ isRTL() ? 'right' : 'left' ]: canvas === 'view' && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<Tooltip.Root>\n\t\t\t\t\t\t\t<Tooltip.Trigger\n\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\t<motion.button\n\t\t\t\t\t\t\t\t\t\tkey=\"handle\"\n\t\t\t\t\t\t\t\t\t\trole=\"separator\"\n\t\t\t\t\t\t\t\t\t\taria-orientation=\"vertical\"\n\t\t\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t\t\t'edit-site-resizable-frame__handle',\n\t\t\t\t\t\t\t\t\t\t\t{ 'is-resizing': isResizing }\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tvariants={ resizeHandleVariants }\n\t\t\t\t\t\t\t\t\t\tanimate={ currentResizeHandleVariant }\n\t\t\t\t\t\t\t\t\t\taria-label={ __( 'Drag to resize' ) }\n\t\t\t\t\t\t\t\t\t\taria-describedby={\n\t\t\t\t\t\t\t\t\t\t\tresizableHandleHelpId\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\taria-valuenow={\n\t\t\t\t\t\t\t\t\t\t\tframeRef.current?.resizable\n\t\t\t\t\t\t\t\t\t\t\t\t?.offsetWidth || undefined\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\taria-valuemin={ FRAME_MIN_WIDTH }\n\t\t\t\t\t\t\t\t\t\taria-valuemax={ defaultSize.width }\n\t\t\t\t\t\t\t\t\t\tonKeyDown={\n\t\t\t\t\t\t\t\t\t\t\thandleResizableHandleKeyDown\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tinitial=\"hidden\"\n\t\t\t\t\t\t\t\t\t\texit=\"hidden\"\n\t\t\t\t\t\t\t\t\t\twhileFocus=\"active\"\n\t\t\t\t\t\t\t\t\t\twhileHover=\"active\"\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<Tooltip.Popup>\n\t\t\t\t\t\t\t\t{ __( 'Drag to resize' ) }\n\t\t\t\t\t\t\t</Tooltip.Popup>\n\t\t\t\t\t\t</Tooltip.Root>\n\t\t\t\t\t\t<div hidden id={ resizableHandleHelpId }>\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'Use left and right arrow keys to resize the canvas. Hold shift to resize in larger increments.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</>\n\t\t\t\t),\n\t\t\t} }\n\t\t\tonResizeStart={ handleResizeStart }\n\t\t\tonResize={ handleResize }\n\t\t\tonResizeStop={ handleResizeStop }\n\t\t\tclassName={ clsx( 'edit-site-resizable-frame__inner', {\n\t\t\t\t'is-resizing': isResizing,\n\t\t\t} ) }\n\t\t\tshowHandle={ false } // Do not show the default handle, as we're using a custom one.\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName=\"edit-site-resizable-frame__inner-content\"\n\t\t\t\tstyle={ innerContentStyle }\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</div>\n\t\t</ResizableBox>\n\t);\n}\n\nexport default ResizableFrame;\n"],
  "mappings": "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",
  "names": []
}
