{
  "version": 3,
  "sources": ["../src/block-preview-panel.tsx"],
  "sourcesContent": ["/**\n * WordPress dependencies\n */\n// @ts-expect-error: Not typed yet.\nimport { BlockPreview } from '@wordpress/block-editor';\nimport { getBlockType, getBlockFromExample } from '@wordpress/blocks';\nimport { __experimentalSpacer as Spacer } from '@wordpress/components';\nimport { useMemo } from '@wordpress/element';\nimport { __unstableGeneratePreviewStateStyles as generatePreviewStateStyles } from '@wordpress/global-styles-engine';\n\n/**\n * Internal dependencies\n */\nimport { getVariationClassName } from './utils';\n\ninterface BlockPreviewPanelProps {\n\tname: string;\n\tvariation?: string;\n\tselectedViewport?: string;\n\tselectedState?: string;\n\tstateStyles?: any;\n}\n\n// Keep in sync with responsive breakpoint media queries in the global styles engine.\nconst PREVIEW_WIDTH_BY_VIEWPORT: Record< string, number > = {\n\tdefault: 783,\n\t'@tablet': 600,\n\t'@mobile': 480,\n};\n\nconst BlockPreviewPanel = ( {\n\tname,\n\tvariation = '',\n\tselectedViewport = 'default',\n\tselectedState = 'default',\n\tstateStyles,\n}: BlockPreviewPanelProps ) => {\n\tconst blockExample = getBlockType( name )?.example;\n\tconst blocks = useMemo( () => {\n\t\tif ( ! blockExample ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst example = {\n\t\t\t...blockExample,\n\t\t\tattributes: {\n\t\t\t\t...blockExample.attributes,\n\t\t\t\tstyle: undefined,\n\t\t\t\tclassName: variation\n\t\t\t\t\t? getVariationClassName( variation )\n\t\t\t\t\t: blockExample.attributes?.className,\n\t\t\t},\n\t\t};\n\n\t\treturn getBlockFromExample( name, example );\n\t}, [ name, blockExample, variation ] );\n\n\t// Generate CSS for the selected state.\n\tconst stateCSS = useMemo( () => {\n\t\tif ( selectedState === 'default' || ! stateStyles ) {\n\t\t\treturn '';\n\t\t}\n\n\t\treturn generatePreviewStateStyles( stateStyles, name );\n\t}, [ selectedState, stateStyles, name ] );\n\n\tif ( ! blockExample ) {\n\t\treturn null;\n\t}\n\n\tconst viewportWidth =\n\t\tPREVIEW_WIDTH_BY_VIEWPORT[ selectedViewport ] ??\n\t\tblockExample.viewportWidth ??\n\t\t500;\n\tconst normalizedViewportWidth = blockExample.viewportWidth ?? 500;\n\tconst previewScale = Math.max( viewportWidth / normalizedViewportWidth, 1 );\n\tconst previewPadding = 24 * previewScale;\n\t// Same as height of InserterPreviewPanel.\n\tconst previewHeight = 144;\n\tconst sidebarWidth = 235;\n\tconst scale = sidebarWidth / viewportWidth;\n\tconst minHeight =\n\t\tscale !== 0 && scale < 1 && previewHeight\n\t\t\t? previewHeight / scale\n\t\t\t: previewHeight;\n\n\treturn (\n\t\t<Spacer marginX={ 4 } marginBottom={ 4 }>\n\t\t\t<div\n\t\t\t\tclassName=\"global-styles-ui__block-preview-panel\"\n\t\t\t\tstyle={ { maxHeight: previewHeight, boxSizing: 'initial' } }\n\t\t\t>\n\t\t\t\t<BlockPreview\n\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\tviewportWidth={ viewportWidth }\n\t\t\t\t\tminHeight={ previewHeight }\n\t\t\t\t\tadditionalStyles={\n\t\t\t\t\t\t//We want this CSS to be in sync with the one in InserterPreviewPanel.\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tcss: `\n\t\t\t\t\t\t\t\tbody{\n\t\t\t\t\t\t\t\t\tpadding: ${ previewPadding }px;\n\t\t\t\t\t\t\t\t\tmin-height:${ Math.round( minHeight ) }px;\n\t\t\t\t\t\t\t\t\tdisplay:flex;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t.is-root-container {\n\t\t\t\t\t\t\t\t\twidth: ${ 100 / previewScale }%;\n\t\t\t\t\t\t\t\t\ttransform: scale(${ previewScale });\n\t\t\t\t\t\t\t\t\ttransform-origin: top left;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t${ stateCSS }\n\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t]\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</Spacer>\n\t);\n};\n\nexport default BlockPreviewPanel;\n"],
  "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,0BAA6B;AAC7B,oBAAkD;AAClD,wBAA+C;AAC/C,qBAAwB;AACxB,kCAAmF;AAKnF,mBAAsC;AA+ElC;AApEJ,IAAM,4BAAsD;AAAA,EAC3D,SAAS;AAAA,EACT,WAAW;AAAA,EACX,WAAW;AACZ;AAEA,IAAM,oBAAoB,CAAE;AAAA,EAC3B;AAAA,EACA,YAAY;AAAA,EACZ,mBAAmB;AAAA,EACnB,gBAAgB;AAAA,EAChB;AACD,MAA+B;AAC9B,QAAM,mBAAe,4BAAc,IAAK,GAAG;AAC3C,QAAM,aAAS,wBAAS,MAAM;AAC7B,QAAK,CAAE,cAAe;AACrB,aAAO;AAAA,IACR;AAEA,UAAM,UAAU;AAAA,MACf,GAAG;AAAA,MACH,YAAY;AAAA,QACX,GAAG,aAAa;AAAA,QAChB,OAAO;AAAA,QACP,WAAW,gBACR,oCAAuB,SAAU,IACjC,aAAa,YAAY;AAAA,MAC7B;AAAA,IACD;AAEA,eAAO,mCAAqB,MAAM,OAAQ;AAAA,EAC3C,GAAG,CAAE,MAAM,cAAc,SAAU,CAAE;AAGrC,QAAM,eAAW,wBAAS,MAAM;AAC/B,QAAK,kBAAkB,aAAa,CAAE,aAAc;AACnD,aAAO;AAAA,IACR;AAEA,eAAO,4BAAAA,sCAA4B,aAAa,IAAK;AAAA,EACtD,GAAG,CAAE,eAAe,aAAa,IAAK,CAAE;AAExC,MAAK,CAAE,cAAe;AACrB,WAAO;AAAA,EACR;AAEA,QAAM,gBACL,0BAA2B,gBAAiB,KAC5C,aAAa,iBACb;AACD,QAAM,0BAA0B,aAAa,iBAAiB;AAC9D,QAAM,eAAe,KAAK,IAAK,gBAAgB,yBAAyB,CAAE;AAC1E,QAAM,iBAAiB,KAAK;AAE5B,QAAM,gBAAgB;AACtB,QAAM,eAAe;AACrB,QAAM,QAAQ,eAAe;AAC7B,QAAM,YACL,UAAU,KAAK,QAAQ,KAAK,gBACzB,gBAAgB,QAChB;AAEJ,SACC,4CAAC,kBAAAC,sBAAA,EAAO,SAAU,GAAI,cAAe,GACpC;AAAA,IAAC;AAAA;AAAA,MACA,WAAU;AAAA,MACV,OAAQ,EAAE,WAAW,eAAe,WAAW,UAAU;AAAA,MAEzD;AAAA,QAAC;AAAA;AAAA,UACA;AAAA,UACA;AAAA,UACA,WAAY;AAAA,UACZ;AAAA;AAAA,YAEC;AAAA,cACC;AAAA,gBACC,KAAK;AAAA;AAAA,oBAEQ,cAAe;AAAA,sBACb,KAAK,MAAO,SAAU,CAAE;AAAA;AAAA;AAAA;AAAA,kBAI5B,MAAM,YAAa;AAAA,4BACT,YAAa;AAAA;AAAA;AAAA,UAG/B,QAAS;AAAA;AAAA,cAEb;AAAA,YACD;AAAA;AAAA;AAAA,MAEF;AAAA;AAAA,EACD,GACD;AAEF;AAEA,IAAO,8BAAQ;",
  "names": ["generatePreviewStateStyles", "Spacer"]
}
