@wordpress/editor
Version:
Enhanced block editor for WordPress posts.
8 lines (7 loc) • 5.02 kB
Source Map (JSON)
{
"version": 3,
"sources": ["../../../src/components/styles-canvas/style-book.js"],
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useMemo, forwardRef } from '@wordpress/element';\nimport { useGlobalStylesRevisions } from '@wordpress/global-styles-ui';\n\n/**\n * Internal dependencies\n */\nimport StyleBook from '../style-book';\nimport { STYLE_BOOK_COLOR_GROUPS } from '../style-book/constants';\nimport { useGlobalStyles } from '../global-styles/hooks';\n\nfunction StyleBookWithNavigation( {\n\tpath,\n\tonPathChange,\n\tuserConfig,\n\tforwardedRef,\n} ) {\n\treturn (\n\t\t<StyleBook\n\t\t\tref={ forwardedRef }\n\t\t\tpath={ path }\n\t\t\tuserConfig={ userConfig }\n\t\t\tisSelected={ ( blockName ) =>\n\t\t\t\t// Match '/blocks/core%2Fbutton' and\n\t\t\t\t// '/blocks/core%2Fbutton/typography', but not\n\t\t\t\t// '/blocks/core%2Fbuttons'.\n\t\t\t\tpath === `/blocks/${ encodeURIComponent( blockName ) }` ||\n\t\t\t\tpath?.startsWith(\n\t\t\t\t\t`/blocks/${ encodeURIComponent( blockName ) }/`\n\t\t\t\t)\n\t\t\t}\n\t\t\tonSelect={ ( blockName ) => {\n\t\t\t\tif (\n\t\t\t\t\tSTYLE_BOOK_COLOR_GROUPS.find(\n\t\t\t\t\t\t( group ) => group.slug === blockName\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\t// Go to color palettes Global Styles.\n\t\t\t\t\tonPathChange?.( '/colors/palette' );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif ( blockName === 'typography' ) {\n\t\t\t\t\t// Go to typography Global Styles.\n\t\t\t\t\tonPathChange?.( '/typography' );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Now go to the selected block.\n\t\t\t\tonPathChange?.( '/blocks/' + encodeURIComponent( blockName ) );\n\t\t\t} }\n\t\t/>\n\t);\n}\n\nfunction StylesCanvasRevisionStyleBook( { path, onPathChange, forwardedRef } ) {\n\tconst { user: userConfig } = useGlobalStyles();\n\tconst { revisions, isLoading } = useGlobalStylesRevisions();\n\n\tconst revisionId = useMemo( () => {\n\t\tconst match = path?.match( /^\\/revisions\\/(.+)$/ );\n\t\treturn match ? match[ 1 ] : null;\n\t}, [ path ] );\n\n\tconst selectedRevision = useMemo( () => {\n\t\tif ( ! revisionId || ! revisions.length ) {\n\t\t\treturn null;\n\t\t}\n\t\treturn revisions.find(\n\t\t\t( revision ) => String( revision.id ) === String( revisionId )\n\t\t);\n\t}, [ revisionId, revisions ] );\n\n\tif ( isLoading ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<StyleBookWithNavigation\n\t\t\tforwardedRef={ forwardedRef }\n\t\t\tpath={ path }\n\t\t\tonPathChange={ onPathChange }\n\t\t\tuserConfig={ selectedRevision || userConfig }\n\t\t/>\n\t);\n}\n\n/**\n * Style Book content component for global styles.\n * Provides the business logic for StyleBook behavior in the global styles context.\n *\n * @param {Object} props Component props.\n * @param {string} props.path Current path in global styles.\n * @param {Function} props.onPathChange Callback when the path changes.\n * @param {React.ForwardedRef} ref Ref to the Style Book component.\n * @return {React.JSX.Element} The Style Book component.\n */\nfunction StylesCanvasStyleBook( { path, onPathChange }, ref ) {\n\tif ( path?.startsWith( '/revisions' ) ) {\n\t\treturn (\n\t\t\t<StylesCanvasRevisionStyleBook\n\t\t\t\tforwardedRef={ ref }\n\t\t\t\tpath={ path }\n\t\t\t\tonPathChange={ onPathChange }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn (\n\t\t<StyleBookWithNavigation\n\t\t\tforwardedRef={ ref }\n\t\t\tpath={ path }\n\t\t\tonPathChange={ onPathChange }\n\t\t/>\n\t);\n}\n\nexport default forwardRef( StylesCanvasStyleBook );\n"],
"mappings": ";AAGA,SAAS,SAAS,kBAAkB;AACpC,SAAS,gCAAgC;AAKzC,OAAO,eAAe;AACtB,SAAS,+BAA+B;AACxC,SAAS,uBAAuB;AAS9B;AAPF,SAAS,wBAAyB;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAAI;AACH,SACC;AAAA,IAAC;AAAA;AAAA,MACA,KAAM;AAAA,MACN;AAAA,MACA;AAAA,MACA,YAAa,CAAE;AAAA;AAAA;AAAA;AAAA,QAId,SAAS,WAAY,mBAAoB,SAAU,CAAE,MACrD,MAAM;AAAA,UACL,WAAY,mBAAoB,SAAU,CAAE;AAAA,QAC7C;AAAA;AAAA,MAED,UAAW,CAAE,cAAe;AAC3B,YACC,wBAAwB;AAAA,UACvB,CAAE,UAAW,MAAM,SAAS;AAAA,QAC7B,GACC;AAED,yBAAgB,iBAAkB;AAClC;AAAA,QACD;AACA,YAAK,cAAc,cAAe;AAEjC,yBAAgB,aAAc;AAC9B;AAAA,QACD;AAGA,uBAAgB,aAAa,mBAAoB,SAAU,CAAE;AAAA,MAC9D;AAAA;AAAA,EACD;AAEF;AAEA,SAAS,8BAA+B,EAAE,MAAM,cAAc,aAAa,GAAI;AAC9E,QAAM,EAAE,MAAM,WAAW,IAAI,gBAAgB;AAC7C,QAAM,EAAE,WAAW,UAAU,IAAI,yBAAyB;AAE1D,QAAM,aAAa,QAAS,MAAM;AACjC,UAAM,QAAQ,MAAM,MAAO,qBAAsB;AACjD,WAAO,QAAQ,MAAO,CAAE,IAAI;AAAA,EAC7B,GAAG,CAAE,IAAK,CAAE;AAEZ,QAAM,mBAAmB,QAAS,MAAM;AACvC,QAAK,CAAE,cAAc,CAAE,UAAU,QAAS;AACzC,aAAO;AAAA,IACR;AACA,WAAO,UAAU;AAAA,MAChB,CAAE,aAAc,OAAQ,SAAS,EAAG,MAAM,OAAQ,UAAW;AAAA,IAC9D;AAAA,EACD,GAAG,CAAE,YAAY,SAAU,CAAE;AAE7B,MAAK,WAAY;AAChB,WAAO;AAAA,EACR;AAEA,SACC;AAAA,IAAC;AAAA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,YAAa,oBAAoB;AAAA;AAAA,EAClC;AAEF;AAYA,SAAS,sBAAuB,EAAE,MAAM,aAAa,GAAG,KAAM;AAC7D,MAAK,MAAM,WAAY,YAAa,GAAI;AACvC,WACC;AAAA,MAAC;AAAA;AAAA,QACA,cAAe;AAAA,QACf;AAAA,QACA;AAAA;AAAA,IACD;AAAA,EAEF;AAEA,SACC;AAAA,IAAC;AAAA;AAAA,MACA,cAAe;AAAA,MACf;AAAA,MACA;AAAA;AAAA,EACD;AAEF;AAEA,IAAO,qBAAQ,WAAY,qBAAsB;",
"names": []
}