{
  "version": 3,
  "sources": ["../../src/breadcrumbs/index.tsx", "../../../style-runtime/src/index.ts", "../../src/breadcrumbs/style.module.css"],
  "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { Link as RouterLink } from '@wordpress/route';\nimport { __ } from '@wordpress/i18n';\nimport { Link, Stack, Text } from '@wordpress/ui';\n\n/**\n * Internal dependencies\n */\nimport type { BreadcrumbsProps } from './types';\nimport styles from './style.module.css';\n\n/**\n * Renders a breadcrumb navigation trail.\n *\n * All items except the last one must provide a `to` prop for navigation.\n * In development mode, an error is thrown when a non-last item is missing `to`.\n * The last item represents the current page and its `to` prop is optional.\n * Only the last item (when it has no `to` prop) is rendered as an `h1`.\n *\n * @param props\n * @param props.items The breadcrumb items to display.\n *\n * @example\n * ```jsx\n * <Breadcrumbs\n *   items={ [\n *     { label: 'Home', to: '/' },\n *     { label: 'Settings', to: '/settings' },\n *     { label: 'General' },\n *   ] }\n * />\n * ```\n */\nexport const Breadcrumbs = ( { items }: BreadcrumbsProps ) => {\n\tif ( ! items.length ) {\n\t\treturn null;\n\t}\n\n\tconst precedingItems = items.slice( 0, -1 );\n\tconst lastItem = items[ items.length - 1 ];\n\n\tif ( process.env.NODE_ENV !== 'production' ) {\n\t\tconst invalidItem = precedingItems.find( ( item ) => ! item.to );\n\t\tif ( invalidItem ) {\n\t\t\tthrow new Error(\n\t\t\t\t`Breadcrumbs: item \"${ invalidItem.label }\" is missing a \\`to\\` prop. All items except the last one must have a \\`to\\` prop.`\n\t\t\t);\n\t\t}\n\t}\n\n\treturn (\n\t\t<nav aria-label={ __( 'Breadcrumbs' ) }>\n\t\t\t<Stack\n\t\t\t\trender={ <ul /> }\n\t\t\t\tdirection=\"row\"\n\t\t\t\talign=\"center\"\n\t\t\t\tclassName={ styles.list }\n\t\t\t>\n\t\t\t\t{ precedingItems.map( ( item, index ) => (\n\t\t\t\t\t<li key={ index }>\n\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\tvariant=\"body-lg\"\n\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t<Link\n\t\t\t\t\t\t\t\t\ttone=\"neutral\"\n\t\t\t\t\t\t\t\t\trender={ <RouterLink to={ item.to } /> }\n\t\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\t\t{ item.label }\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\tvariant=\"body-lg\"\n\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\tclassName={ styles.separator }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t/\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</li>\n\t\t\t\t) ) }\n\t\t\t\t<li>\n\t\t\t\t\t{ lastItem.to ? (\n\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\tvariant=\"body-lg\"\n\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t<Link\n\t\t\t\t\t\t\t\t\ttone=\"neutral\"\n\t\t\t\t\t\t\t\t\trender={ <RouterLink to={ lastItem.to } /> }\n\t\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\t\t{ lastItem.label }\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\tvariant=\"heading-lg\"\n\t\t\t\t\t\t\trender={ <h1 /> }\n\t\t\t\t\t\t\tclassName={ styles.current }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ lastItem.label }\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t) }\n\t\t\t\t</li>\n\t\t\t</Stack>\n\t\t</nav>\n\t);\n};\n\nexport default Breadcrumbs;\n", "type GlobalScopeWithStyleRuntime = typeof globalThis & {\n\t// This global is shared by separately bundled copies of this package.\n\t// Keep its shape backward compatible after release.\n\t__wpStyleRuntime?: {\n\t\tdocuments: Map< Document, number >;\n\t\tstyles: Map< string, string >;\n\t\tinjectedStyles: WeakMap< Document, Set< string > >;\n\t};\n};\n\nconst STYLE_HASH_ATTRIBUTE = 'data-wp-hash';\n\n/**\n * Returns the shared style runtime registry.\n *\n * The registry is stored on `globalThis` so separately bundled copies of this\n * package can coordinate through the same document and style maps.\n *\n * @return The shared runtime registry.\n */\nfunction getRuntime() {\n\tconst globalScope = globalThis as GlobalScopeWithStyleRuntime;\n\n\tif ( globalScope.__wpStyleRuntime ) {\n\t\treturn globalScope.__wpStyleRuntime;\n\t}\n\n\tglobalScope.__wpStyleRuntime = {\n\t\tdocuments: new Map(),\n\t\tstyles: new Map(),\n\t\tinjectedStyles: new WeakMap(),\n\t};\n\n\tif ( typeof document !== 'undefined' ) {\n\t\tregisterDocument( document );\n\t}\n\n\treturn globalScope.__wpStyleRuntime;\n}\n\n/**\n * Checks whether a document already contains a style tag for a hash.\n *\n * @param targetDocument Document to inspect.\n * @param hash           Stable hash for the transformed CSS.\n *\n * @return Whether the style hash already exists in the document.\n */\nfunction documentContainsStyleHash(\n\ttargetDocument: Document,\n\thash: string\n): boolean {\n\tif ( ! targetDocument.head ) {\n\t\treturn false;\n\t}\n\n\tfor ( const style of targetDocument.head.querySelectorAll(\n\t\t`style[${ STYLE_HASH_ATTRIBUTE }]`\n\t) ) {\n\t\tif ( style.getAttribute( STYLE_HASH_ATTRIBUTE ) === hash ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\treturn false;\n}\n\n/**\n * Injects a registered style into a document, unless that document already\n * contains a style tag for the same hash.\n *\n * @param targetDocument Document to inject the style into.\n * @param hash           Stable hash for the transformed CSS.\n * @param css            CSS text to inject.\n */\nfunction injectStyle( targetDocument: Document, hash: string, css: string ) {\n\tif ( ! targetDocument.head ) {\n\t\treturn;\n\t}\n\n\tconst runtime = getRuntime();\n\tlet injectedStyles = runtime.injectedStyles.get( targetDocument );\n\n\tif ( ! injectedStyles ) {\n\t\tinjectedStyles = new Set();\n\t\truntime.injectedStyles.set( targetDocument, injectedStyles );\n\t}\n\n\tif ( injectedStyles.has( hash ) ) {\n\t\treturn;\n\t}\n\n\t// Older generated CSS module output can still inject matching style tags\n\t// after this document's cache is created, so keep the DOM as the fallback\n\t// source of truth on cache misses.\n\tif ( documentContainsStyleHash( targetDocument, hash ) ) {\n\t\tinjectedStyles.add( hash );\n\t\treturn;\n\t}\n\n\tconst style = targetDocument.createElement( 'style' );\n\tstyle.setAttribute( STYLE_HASH_ATTRIBUTE, hash );\n\tstyle.appendChild( targetDocument.createTextNode( css ) );\n\ttargetDocument.head.appendChild( style );\n\tinjectedStyles.add( hash );\n}\n\n/**\n * Registers a document as a style injection target.\n *\n * Existing registered styles are replayed into the document immediately.\n * Documents are reference-counted so multiple providers can safely register the\n * same document without one cleanup removing it while another registration is\n * still active.\n *\n * @param targetDocument Document to receive registered styles.\n * @return Cleanup function that unregisters this document registration.\n */\nexport function registerDocument( targetDocument: Document ) {\n\tconst runtime = getRuntime();\n\n\truntime.documents.set(\n\t\ttargetDocument,\n\t\t( runtime.documents.get( targetDocument ) ?? 0 ) + 1\n\t);\n\n\tfor ( const [ hash, css ] of runtime.styles ) {\n\t\tinjectStyle( targetDocument, hash, css );\n\t}\n\n\treturn () => {\n\t\tconst count = runtime.documents.get( targetDocument );\n\n\t\tif ( count === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( count <= 1 ) {\n\t\t\truntime.documents.delete( targetDocument );\n\t\t\treturn;\n\t\t}\n\n\t\truntime.documents.set( targetDocument, count - 1 );\n\t};\n}\n\n/**\n * Registers a style and injects it into all registered documents.\n *\n * The hash is used as the deduplication key, so calling this repeatedly with\n * the same hash will not add duplicate style tags to a document.\n * Registered styles are retained for the lifetime of the page so they can be\n * replayed into documents that are registered later.\n *\n * @param hash Stable hash for the transformed CSS.\n * @param css  CSS text to inject.\n */\nexport function registerStyle( hash: string, css: string ) {\n\tconst runtime = getRuntime();\n\n\truntime.styles.set( hash, css );\n\n\tfor ( const targetDocument of runtime.documents.keys() ) {\n\t\tinjectStyle( targetDocument, hash, css );\n\t}\n}\n", "import { registerStyle } from '@wordpress/style-runtime';\nif (typeof process === 'undefined' || process.env.NODE_ENV !== 'test') {\n\tregisterStyle(\"846edc217c\", \"._5f4053eba32ce092__list{list-style:none;margin:0;padding:0}._5f4053eba32ce092__list>li{flex-shrink:0}._5f4053eba32ce092__list>li:last-child{flex-shrink:1;min-width:0}.d1978551971a3360__current{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._6d9152063d443376__separator{color:var(--wpds-color-stroke-surface-neutral,#dbdbdb);margin:0 var(--wpds-dimension-gap-sm,8px);user-select:none}\");\n}\nexport default {\"list\":\"_5f4053eba32ce092__list\",\"current\":\"d1978551971a3360__current\",\"separator\":\"_6d9152063d443376__separator\"};\n"],
  "mappings": "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",
  "names": ["RouterLink"]
}
