@wordpress/edit-site 6.25.0 → 6.26.1-next.719a03cbe.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 (43) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/add-new-template/add-custom-generic-template-modal-content.js +13 -6
  3. package/build/components/add-new-template/add-custom-generic-template-modal-content.js.map +1 -1
  4. package/build/components/add-new-template/add-custom-template-modal-content.js +37 -1
  5. package/build/components/add-new-template/add-custom-template-modal-content.js.map +1 -1
  6. package/build/components/add-new-template/index.js +16 -3
  7. package/build/components/add-new-template/index.js.map +1 -1
  8. package/build/components/add-new-template/utils.js +1 -1
  9. package/build/components/add-new-template/utils.js.map +1 -1
  10. package/build/components/global-styles/font-sizes/font-sizes.js +1 -2
  11. package/build/components/global-styles/font-sizes/font-sizes.js.map +1 -1
  12. package/build/components/global-styles/shadows-edit-panel.js +3 -7
  13. package/build/components/global-styles/shadows-edit-panel.js.map +1 -1
  14. package/build/components/style-book/index.js +61 -13
  15. package/build/components/style-book/index.js.map +1 -1
  16. package/build-module/components/add-new-template/add-custom-generic-template-modal-content.js +14 -7
  17. package/build-module/components/add-new-template/add-custom-generic-template-modal-content.js.map +1 -1
  18. package/build-module/components/add-new-template/add-custom-template-modal-content.js +37 -1
  19. package/build-module/components/add-new-template/add-custom-template-modal-content.js.map +1 -1
  20. package/build-module/components/add-new-template/index.js +17 -4
  21. package/build-module/components/add-new-template/index.js.map +1 -1
  22. package/build-module/components/add-new-template/utils.js +1 -1
  23. package/build-module/components/add-new-template/utils.js.map +1 -1
  24. package/build-module/components/global-styles/font-sizes/font-sizes.js +1 -2
  25. package/build-module/components/global-styles/font-sizes/font-sizes.js.map +1 -1
  26. package/build-module/components/global-styles/shadows-edit-panel.js +3 -7
  27. package/build-module/components/global-styles/shadows-edit-panel.js.map +1 -1
  28. package/build-module/components/style-book/index.js +61 -13
  29. package/build-module/components/style-book/index.js.map +1 -1
  30. package/build-style/posts-rtl.css +313 -19
  31. package/build-style/posts.css +313 -19
  32. package/build-style/style-rtl.css +315 -20
  33. package/build-style/style.css +315 -20
  34. package/package.json +42 -42
  35. package/src/components/add-new-template/add-custom-generic-template-modal-content.js +14 -6
  36. package/src/components/add-new-template/add-custom-template-modal-content.js +45 -1
  37. package/src/components/add-new-template/index.js +25 -3
  38. package/src/components/add-new-template/utils.js +1 -1
  39. package/src/components/global-styles/font-sizes/font-sizes.js +2 -2
  40. package/src/components/global-styles/shadows-edit-panel.js +1 -6
  41. package/src/components/global-styles/style.scss +2 -1
  42. package/src/components/style-book/index.js +76 -13
  43. package/tsconfig.tsbuildinfo +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","__experimentalHStack","HStack","__experimentalVStack","VStack","__experimentalSpacer","Spacer","__experimentalItemGroup","ItemGroup","__experimentalInputControl","InputControl","__experimentalUnitControl","UnitControl","__experimentalGrid","Grid","__experimentalDropdownContentWrapper","DropdownContentWrapper","useNavigator","__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOption","ToggleGroupControlOption","__experimentalConfirmDialog","ConfirmDialog","Dropdown","Button","Flex","FlexItem","ColorPalette","Modal","privateApis","componentsPrivateApis","__","sprintf","blockEditorPrivateApis","plus","shadow","shadowIcon","reset","moreVertical","useState","useMemo","useEffect","useRef","unlock","Subtitle","ScreenHeader","defaultShadow","getShadowParts","shadowStringToObject","shadowObjectToString","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","useGlobalSetting","Menu","customShadowMenuItems","label","action","presetShadowMenuItems","ShadowsEditPanel","goBack","params","category","slug","shadows","setShadows","hasCurrentShadow","some","baseShadows","undefined","selectedShadow","setSelectedShadow","find","baseSelectedShadow","b","isConfirmDialogVisible","setIsConfirmDialogVisible","isRenameModalVisible","setIsRenameModalVisible","shadowName","setShadowName","name","onShadowChange","updatedShadows","map","s","onMenuClick","handleShadowDelete","filter","handleShadowRename","newName","title","children","justify","marginTop","marginBottom","paddingX","TriggerButton","render","size","icon","Popover","item","Item","onClick","disabled","ItemLabel","className","ShadowsPreview","ShadowEditor","onChange","isOpen","onConfirm","onCancel","confirmButtonText","onRequestClose","onSubmit","event","preventDefault","__next40pxDefaultSize","autoComplete","placeholder","value","expanded","variant","type","shadowStyle","boxShadow","align","style","addShadowButtonRef","shadowParts","onChangeShadowPart","index","part","newShadowParts","join","onAddShadowPart","onRemoveShadowPart","p","i","current","focus","spacing","level","ref","isBordered","isSeparated","ShadowItem","canRemove","length","onRemove","popoverProps","placement","offset","shift","shadowObj","newShadow","renderToggle","onToggle","toggleProps","removeButtonProps","inset","renderContent","paddingSize","ShadowPopover","__experimentalIsRenderedInSidebar","enableAlpha","key","clearable","color","__nextHasNoMarginBottom","isBlock","hideLabelFromVision","columns","gap","ShadowInputControl","x","y","blur","spread","onValueChange","next","isNumeric","isNaN","parseFloat","nextValue"],"sources":["@wordpress/edit-site/src/components/global-styles/shadows-edit-panel.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalSpacer as Spacer,\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalInputControl as InputControl,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalGrid as Grid,\n\t__experimentalDropdownContentWrapper as DropdownContentWrapper,\n\tuseNavigator,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalConfirmDialog as ConfirmDialog,\n\tDropdown,\n\tButton,\n\tFlex,\n\tFlexItem,\n\tColorPalette,\n\tModal,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport {\n\tplus,\n\tshadow as shadowIcon,\n\treset,\n\tmoreVertical,\n} from '@wordpress/icons';\nimport { useState, useMemo, useEffect, useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport Subtitle from './subtitle';\nimport ScreenHeader from './header';\nimport { defaultShadow } from './shadows-panel';\nimport {\n\tgetShadowParts,\n\tshadowStringToObject,\n\tshadowObjectToString,\n} from './shadow-utils';\n\nconst { useGlobalSetting } = unlock( blockEditorPrivateApis );\nconst { Menu } = unlock( componentsPrivateApis );\n\nconst customShadowMenuItems = [\n\t{\n\t\tlabel: __( 'Rename' ),\n\t\taction: 'rename',\n\t},\n\t{\n\t\tlabel: __( 'Delete' ),\n\t\taction: 'delete',\n\t},\n];\n\nconst presetShadowMenuItems = [\n\t{\n\t\tlabel: __( 'Reset' ),\n\t\taction: 'reset',\n\t},\n];\n\nexport default function ShadowsEditPanel() {\n\tconst {\n\t\tgoBack,\n\t\tparams: { category, slug },\n\t} = useNavigator();\n\tconst [ shadows, setShadows ] = useGlobalSetting(\n\t\t`shadow.presets.${ category }`\n\t);\n\n\tuseEffect( () => {\n\t\tconst hasCurrentShadow = shadows?.some(\n\t\t\t( shadow ) => shadow.slug === slug\n\t\t);\n\t\t// If the shadow being edited doesn't exist anymore in the global styles setting, navigate back\n\t\t// to prevent the user from editing a non-existent shadow entry.\n\t\t// This can happen, for example:\n\t\t// - when the user deletes the shadow\n\t\t// - when the user resets the styles while editing a custom shadow\n\t\t//\n\t\t// The check on the slug is necessary to prevent a double back navigation when the user triggers\n\t\t// a backward navigation by interacting with the screen's UI.\n\t\tif ( !! slug && ! hasCurrentShadow ) {\n\t\t\tgoBack();\n\t\t}\n\t}, [ shadows, slug, goBack ] );\n\n\tconst [ baseShadows ] = useGlobalSetting(\n\t\t`shadow.presets.${ category }`,\n\t\tundefined,\n\t\t'base'\n\t);\n\tconst [ selectedShadow, setSelectedShadow ] = useState( () =>\n\t\t( shadows || [] ).find( ( shadow ) => shadow.slug === slug )\n\t);\n\tconst baseSelectedShadow = useMemo(\n\t\t() => ( baseShadows || [] ).find( ( b ) => b.slug === slug ),\n\t\t[ baseShadows, slug ]\n\t);\n\tconst [ isConfirmDialogVisible, setIsConfirmDialogVisible ] =\n\t\tuseState( false );\n\tconst [ isRenameModalVisible, setIsRenameModalVisible ] = useState( false );\n\tconst [ shadowName, setShadowName ] = useState( selectedShadow.name );\n\n\tif ( ! category || ! slug ) {\n\t\treturn null;\n\t}\n\n\tconst onShadowChange = ( shadow ) => {\n\t\tsetSelectedShadow( { ...selectedShadow, shadow } );\n\t\tconst updatedShadows = shadows.map( ( s ) =>\n\t\t\ts.slug === slug ? { ...selectedShadow, shadow } : s\n\t\t);\n\t\tsetShadows( updatedShadows );\n\t};\n\n\tconst onMenuClick = ( action ) => {\n\t\tif ( action === 'reset' ) {\n\t\t\tconst updatedShadows = shadows.map( ( s ) =>\n\t\t\t\ts.slug === slug ? baseSelectedShadow : s\n\t\t\t);\n\t\t\tsetSelectedShadow( baseSelectedShadow );\n\t\t\tsetShadows( updatedShadows );\n\t\t} else if ( action === 'delete' ) {\n\t\t\tsetIsConfirmDialogVisible( true );\n\t\t} else if ( action === 'rename' ) {\n\t\t\tsetIsRenameModalVisible( true );\n\t\t}\n\t};\n\n\tconst handleShadowDelete = () => {\n\t\tsetShadows( shadows.filter( ( s ) => s.slug !== slug ) );\n\t};\n\n\tconst handleShadowRename = ( newName ) => {\n\t\tif ( ! newName ) {\n\t\t\treturn;\n\t\t}\n\t\tconst updatedShadows = shadows.map( ( s ) =>\n\t\t\ts.slug === slug ? { ...selectedShadow, name: newName } : s\n\t\t);\n\t\tsetSelectedShadow( { ...selectedShadow, name: newName } );\n\t\tsetShadows( updatedShadows );\n\t};\n\n\treturn ! selectedShadow ? (\n\t\t<ScreenHeader title=\"\" />\n\t) : (\n\t\t<>\n\t\t\t<HStack justify=\"space-between\">\n\t\t\t\t<ScreenHeader title={ selectedShadow.name } />\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<Spacer marginTop={ 2 } marginBottom={ 0 } paddingX={ 4 }>\n\t\t\t\t\t\t<Menu>\n\t\t\t\t\t\t\t<Menu.TriggerButton\n\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Menu' ) }\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<Menu.Popover>\n\t\t\t\t\t\t\t\t{ ( category === 'custom'\n\t\t\t\t\t\t\t\t\t? customShadowMenuItems\n\t\t\t\t\t\t\t\t\t: presetShadowMenuItems\n\t\t\t\t\t\t\t\t).map( ( item ) => (\n\t\t\t\t\t\t\t\t\t<Menu.Item\n\t\t\t\t\t\t\t\t\t\tkey={ item.action }\n\t\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\t\tonMenuClick( item.action )\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\t\t\t\titem.action === 'reset' &&\n\t\t\t\t\t\t\t\t\t\t\tselectedShadow.shadow ===\n\t\t\t\t\t\t\t\t\t\t\t\tbaseSelectedShadow.shadow\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<Menu.ItemLabel>\n\t\t\t\t\t\t\t\t\t\t\t{ item.label }\n\t\t\t\t\t\t\t\t\t\t</Menu.ItemLabel>\n\t\t\t\t\t\t\t\t\t</Menu.Item>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t</Menu.Popover>\n\t\t\t\t\t\t</Menu>\n\t\t\t\t\t</Spacer>\n\t\t\t\t</FlexItem>\n\t\t\t</HStack>\n\t\t\t<div className=\"edit-site-global-styles-screen\">\n\t\t\t\t<ShadowsPreview shadow={ selectedShadow.shadow } />\n\t\t\t\t<ShadowEditor\n\t\t\t\t\tshadow={ selectedShadow.shadow }\n\t\t\t\t\tonChange={ onShadowChange }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t{ isConfirmDialogVisible && (\n\t\t\t\t<ConfirmDialog\n\t\t\t\t\tisOpen\n\t\t\t\t\tonConfirm={ () => {\n\t\t\t\t\t\thandleShadowDelete();\n\t\t\t\t\t\tsetIsConfirmDialogVisible( false );\n\t\t\t\t\t} }\n\t\t\t\t\tonCancel={ () => {\n\t\t\t\t\t\tsetIsConfirmDialogVisible( false );\n\t\t\t\t\t} }\n\t\t\t\t\tconfirmButtonText={ __( 'Delete' ) }\n\t\t\t\t\tsize=\"medium\"\n\t\t\t\t>\n\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t/* translators: %s: Name of the shadow preset. */\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Are you sure you want to delete \"%s\" shadow preset?'\n\t\t\t\t\t\t),\n\t\t\t\t\t\tselectedShadow.name\n\t\t\t\t\t) }\n\t\t\t\t</ConfirmDialog>\n\t\t\t) }\n\t\t\t{ isRenameModalVisible && (\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={ __( 'Rename' ) }\n\t\t\t\t\tonRequestClose={ () => setIsRenameModalVisible( false ) }\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t>\n\t\t\t\t\t<form\n\t\t\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\thandleShadowRename( shadowName );\n\t\t\t\t\t\t\tsetIsRenameModalVisible( false );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<InputControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\t\tplaceholder={ __( 'Shadow name' ) }\n\t\t\t\t\t\t\tvalue={ shadowName }\n\t\t\t\t\t\t\tonChange={ ( value ) => setShadowName( value ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Spacer marginBottom={ 6 } />\n\t\t\t\t\t\t<Flex\n\t\t\t\t\t\t\tclassName=\"block-editor-shadow-edit-modal__actions\"\n\t\t\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\t\t\texpanded={ false }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\tsetIsRenameModalVisible( false )\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\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t</Flex>\n\t\t\t\t\t</form>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction ShadowsPreview( { shadow } ) {\n\tconst shadowStyle = {\n\t\tboxShadow: shadow,\n\t};\n\n\treturn (\n\t\t<Spacer marginBottom={ 4 } marginTop={ -2 }>\n\t\t\t<HStack\n\t\t\t\talign=\"center\"\n\t\t\t\tjustify=\"center\"\n\t\t\t\tclassName=\"edit-site-global-styles__shadow-preview-panel\"\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"edit-site-global-styles__shadow-preview-block\"\n\t\t\t\t\tstyle={ shadowStyle }\n\t\t\t\t/>\n\t\t\t</HStack>\n\t\t</Spacer>\n\t);\n}\n\nfunction ShadowEditor( { shadow, onChange } ) {\n\tconst addShadowButtonRef = useRef();\n\tconst shadowParts = useMemo( () => getShadowParts( shadow ), [ shadow ] );\n\n\tconst onChangeShadowPart = ( index, part ) => {\n\t\tconst newShadowParts = [ ...shadowParts ];\n\t\tnewShadowParts[ index ] = part;\n\t\tonChange( newShadowParts.join( ', ' ) );\n\t};\n\n\tconst onAddShadowPart = () => {\n\t\tonChange( [ ...shadowParts, defaultShadow ].join( ', ' ) );\n\t};\n\n\tconst onRemoveShadowPart = ( index ) => {\n\t\tonChange( shadowParts.filter( ( p, i ) => i !== index ).join( ', ' ) );\n\t\taddShadowButtonRef.current.focus();\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<VStack spacing={ 2 }>\n\t\t\t\t<HStack justify=\"space-between\">\n\t\t\t\t\t<Flex\n\t\t\t\t\t\talign=\"center\"\n\t\t\t\t\t\tclassName=\"edit-site-global-styles__shadows-panel__title\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<Subtitle level={ 3 }>{ __( 'Shadows' ) }</Subtitle>\n\t\t\t\t\t</Flex>\n\t\t\t\t\t<FlexItem className=\"edit-site-global-styles__shadows-panel__options-container\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\ticon={ plus }\n\t\t\t\t\t\t\tlabel={ __( 'Add shadow' ) }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tonAddShadowPart();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tref={ addShadowButtonRef }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t\t<Spacer />\n\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t{ shadowParts.map( ( part, index ) => (\n\t\t\t\t\t<ShadowItem\n\t\t\t\t\t\tkey={ index }\n\t\t\t\t\t\tshadow={ part }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tonChangeShadowPart( index, value )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcanRemove={ shadowParts.length > 1 }\n\t\t\t\t\t\tonRemove={ () => onRemoveShadowPart( index ) }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</ItemGroup>\n\t\t</>\n\t);\n}\n\nfunction ShadowItem( { shadow, onChange, canRemove, onRemove } ) {\n\tconst popoverProps = {\n\t\tplacement: 'left-start',\n\t\toffset: 36,\n\t\tshift: true,\n\t};\n\tconst shadowObj = useMemo(\n\t\t() => shadowStringToObject( shadow ),\n\t\t[ shadow ]\n\t);\n\tconst onShadowChange = ( newShadow ) => {\n\t\tonChange( shadowObjectToString( newShadow ) );\n\t};\n\n\treturn (\n\t\t<Dropdown\n\t\t\tpopoverProps={ popoverProps }\n\t\t\tclassName=\"edit-site-global-styles__shadow-editor__dropdown\"\n\t\t\trenderToggle={ ( { onToggle, isOpen } ) => {\n\t\t\t\tconst toggleProps = {\n\t\t\t\t\tonClick: onToggle,\n\t\t\t\t\tclassName: clsx(\n\t\t\t\t\t\t'edit-site-global-styles__shadow-editor__dropdown-toggle',\n\t\t\t\t\t\t{ 'is-open': isOpen }\n\t\t\t\t\t),\n\t\t\t\t\t'aria-expanded': isOpen,\n\t\t\t\t};\n\t\t\t\tconst removeButtonProps = {\n\t\t\t\t\tonClick: () => {\n\t\t\t\t\t\tif ( isOpen ) {\n\t\t\t\t\t\t\tonToggle();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonRemove();\n\t\t\t\t\t},\n\t\t\t\t\tclassName: clsx(\n\t\t\t\t\t\t'edit-site-global-styles__shadow-editor__remove-button',\n\t\t\t\t\t\t{ 'is-open': isOpen }\n\t\t\t\t\t),\n\t\t\t\t\tlabel: __( 'Remove shadow' ),\n\t\t\t\t};\n\n\t\t\t\treturn (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\ticon={ shadowIcon }\n\t\t\t\t\t\t\t{ ...toggleProps }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ shadowObj.inset\n\t\t\t\t\t\t\t\t? __( 'Inner shadow' )\n\t\t\t\t\t\t\t\t: __( 'Drop shadow' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t{ canRemove && (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\ticon={ reset }\n\t\t\t\t\t\t\t\t{ ...removeButtonProps }\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} }\n\t\t\trenderContent={ () => (\n\t\t\t\t<DropdownContentWrapper\n\t\t\t\t\tpaddingSize=\"medium\"\n\t\t\t\t\tclassName=\"edit-site-global-styles__shadow-editor__dropdown-content\"\n\t\t\t\t>\n\t\t\t\t\t<ShadowPopover\n\t\t\t\t\t\tshadowObj={ shadowObj }\n\t\t\t\t\t\tonChange={ onShadowChange }\n\t\t\t\t\t/>\n\t\t\t\t</DropdownContentWrapper>\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nfunction ShadowPopover( { shadowObj, onChange } ) {\n\tconst __experimentalIsRenderedInSidebar = true;\n\tconst enableAlpha = true;\n\n\tconst onShadowChange = ( key, value ) => {\n\t\tconst newShadow = {\n\t\t\t...shadowObj,\n\t\t\t[ key ]: value,\n\t\t};\n\t\tonChange( newShadow );\n\t};\n\n\treturn (\n\t\t<VStack\n\t\t\tspacing={ 4 }\n\t\t\tclassName=\"edit-site-global-styles__shadow-editor-panel\"\n\t\t>\n\t\t\t<ColorPalette\n\t\t\t\tclearable={ false }\n\t\t\t\tenableAlpha={ enableAlpha }\n\t\t\t\t__experimentalIsRenderedInSidebar={\n\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t}\n\t\t\t\tvalue={ shadowObj.color }\n\t\t\t\tonChange={ ( value ) => onShadowChange( 'color', value ) }\n\t\t\t/>\n\t\t\t<ToggleGroupControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tvalue={ shadowObj.inset ? 'inset' : 'outset' }\n\t\t\t\tisBlock\n\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\tonShadowChange( 'inset', value === 'inset' )\n\t\t\t\t}\n\t\t\t\thideLabelFromVision\n\t\t\t\t__next40pxDefaultSize\n\t\t\t>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tvalue=\"outset\"\n\t\t\t\t\tlabel={ __( 'Outset' ) }\n\t\t\t\t/>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tvalue=\"inset\"\n\t\t\t\t\tlabel={ __( 'Inset' ) }\n\t\t\t\t/>\n\t\t\t</ToggleGroupControl>\n\t\t\t<Grid columns={ 2 } gap={ 4 }>\n\t\t\t\t<ShadowInputControl\n\t\t\t\t\tlabel={ __( 'X Position' ) }\n\t\t\t\t\tvalue={ shadowObj.x }\n\t\t\t\t\tonChange={ ( value ) => onShadowChange( 'x', value ) }\n\t\t\t\t/>\n\t\t\t\t<ShadowInputControl\n\t\t\t\t\tlabel={ __( 'Y Position' ) }\n\t\t\t\t\tvalue={ shadowObj.y }\n\t\t\t\t\tonChange={ ( value ) => onShadowChange( 'y', value ) }\n\t\t\t\t/>\n\t\t\t\t<ShadowInputControl\n\t\t\t\t\tlabel={ __( 'Blur' ) }\n\t\t\t\t\tvalue={ shadowObj.blur }\n\t\t\t\t\tonChange={ ( value ) => onShadowChange( 'blur', value ) }\n\t\t\t\t/>\n\t\t\t\t<ShadowInputControl\n\t\t\t\t\tlabel={ __( 'Spread' ) }\n\t\t\t\t\tvalue={ shadowObj.spread }\n\t\t\t\t\tonChange={ ( value ) => onShadowChange( 'spread', value ) }\n\t\t\t\t/>\n\t\t\t</Grid>\n\t\t</VStack>\n\t);\n}\n\nfunction ShadowInputControl( { label, value, onChange } ) {\n\tconst onValueChange = ( next ) => {\n\t\tconst isNumeric = next !== undefined && ! isNaN( parseFloat( next ) );\n\t\tconst nextValue = isNumeric ? next : '0px';\n\t\tonChange( nextValue );\n\t};\n\n\treturn (\n\t\t<UnitControl\n\t\t\tlabel={ label }\n\t\t\t__next40pxDefaultSize\n\t\t\tvalue={ value }\n\t\t\tonChange={ onValueChange }\n\t\t/>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","__experimentalHStack","HStack","__experimentalVStack","VStack","__experimentalSpacer","Spacer","__experimentalItemGroup","ItemGroup","__experimentalInputControl","InputControl","__experimentalUnitControl","UnitControl","__experimentalGrid","Grid","__experimentalDropdownContentWrapper","DropdownContentWrapper","useNavigator","__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOption","ToggleGroupControlOption","__experimentalConfirmDialog","ConfirmDialog","Dropdown","Button","Flex","FlexItem","ColorPalette","Modal","privateApis","componentsPrivateApis","__","sprintf","blockEditorPrivateApis","plus","shadow","shadowIcon","reset","moreVertical","useState","useMemo","useEffect","useRef","unlock","Subtitle","ScreenHeader","defaultShadow","getShadowParts","shadowStringToObject","shadowObjectToString","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","useGlobalSetting","Menu","customShadowMenuItems","label","action","presetShadowMenuItems","ShadowsEditPanel","goBack","params","category","slug","shadows","setShadows","hasCurrentShadow","some","baseShadows","undefined","selectedShadow","setSelectedShadow","find","baseSelectedShadow","b","isConfirmDialogVisible","setIsConfirmDialogVisible","isRenameModalVisible","setIsRenameModalVisible","shadowName","setShadowName","name","onShadowChange","updatedShadows","map","s","onMenuClick","handleShadowDelete","filter","handleShadowRename","newName","title","children","justify","marginTop","marginBottom","paddingX","TriggerButton","render","size","icon","Popover","item","Item","onClick","disabled","ItemLabel","className","ShadowsPreview","ShadowEditor","onChange","isOpen","onConfirm","onCancel","confirmButtonText","onRequestClose","onSubmit","event","preventDefault","__next40pxDefaultSize","autoComplete","placeholder","value","expanded","variant","type","shadowStyle","boxShadow","align","style","addShadowButtonRef","shadowParts","onChangeShadowPart","index","part","newShadowParts","join","onAddShadowPart","onRemoveShadowPart","p","i","current","focus","spacing","level","ref","isBordered","isSeparated","ShadowItem","canRemove","length","onRemove","popoverProps","placement","offset","shift","shadowObj","newShadow","renderToggle","onToggle","toggleProps","removeButtonProps","inset","renderContent","paddingSize","ShadowPopover","__experimentalIsRenderedInSidebar","enableAlpha","key","clearable","color","__nextHasNoMarginBottom","isBlock","hideLabelFromVision","columns","gap","ShadowInputControl","x","y","blur","spread","onValueChange","next","isNumeric","isNaN","parseFloat","nextValue"],"sources":["@wordpress/edit-site/src/components/global-styles/shadows-edit-panel.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalSpacer as Spacer,\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalInputControl as InputControl,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalGrid as Grid,\n\t__experimentalDropdownContentWrapper as DropdownContentWrapper,\n\tuseNavigator,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalConfirmDialog as ConfirmDialog,\n\tDropdown,\n\tButton,\n\tFlex,\n\tFlexItem,\n\tColorPalette,\n\tModal,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport {\n\tplus,\n\tshadow as shadowIcon,\n\treset,\n\tmoreVertical,\n} from '@wordpress/icons';\nimport { useState, useMemo, useEffect, useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport Subtitle from './subtitle';\nimport ScreenHeader from './header';\nimport { defaultShadow } from './shadows-panel';\nimport {\n\tgetShadowParts,\n\tshadowStringToObject,\n\tshadowObjectToString,\n} from './shadow-utils';\n\nconst { useGlobalSetting } = unlock( blockEditorPrivateApis );\nconst { Menu } = unlock( componentsPrivateApis );\n\nconst customShadowMenuItems = [\n\t{\n\t\tlabel: __( 'Rename' ),\n\t\taction: 'rename',\n\t},\n\t{\n\t\tlabel: __( 'Delete' ),\n\t\taction: 'delete',\n\t},\n];\n\nconst presetShadowMenuItems = [\n\t{\n\t\tlabel: __( 'Reset' ),\n\t\taction: 'reset',\n\t},\n];\n\nexport default function ShadowsEditPanel() {\n\tconst {\n\t\tgoBack,\n\t\tparams: { category, slug },\n\t} = useNavigator();\n\tconst [ shadows, setShadows ] = useGlobalSetting(\n\t\t`shadow.presets.${ category }`\n\t);\n\n\tuseEffect( () => {\n\t\tconst hasCurrentShadow = shadows?.some(\n\t\t\t( shadow ) => shadow.slug === slug\n\t\t);\n\t\t// If the shadow being edited doesn't exist anymore in the global styles setting, navigate back\n\t\t// to prevent the user from editing a non-existent shadow entry.\n\t\t// This can happen, for example:\n\t\t// - when the user deletes the shadow\n\t\t// - when the user resets the styles while editing a custom shadow\n\t\t//\n\t\t// The check on the slug is necessary to prevent a double back navigation when the user triggers\n\t\t// a backward navigation by interacting with the screen's UI.\n\t\tif ( !! slug && ! hasCurrentShadow ) {\n\t\t\tgoBack();\n\t\t}\n\t}, [ shadows, slug, goBack ] );\n\n\tconst [ baseShadows ] = useGlobalSetting(\n\t\t`shadow.presets.${ category }`,\n\t\tundefined,\n\t\t'base'\n\t);\n\tconst [ selectedShadow, setSelectedShadow ] = useState( () =>\n\t\t( shadows || [] ).find( ( shadow ) => shadow.slug === slug )\n\t);\n\tconst baseSelectedShadow = useMemo(\n\t\t() => ( baseShadows || [] ).find( ( b ) => b.slug === slug ),\n\t\t[ baseShadows, slug ]\n\t);\n\tconst [ isConfirmDialogVisible, setIsConfirmDialogVisible ] =\n\t\tuseState( false );\n\tconst [ isRenameModalVisible, setIsRenameModalVisible ] = useState( false );\n\tconst [ shadowName, setShadowName ] = useState( selectedShadow.name );\n\n\tif ( ! category || ! slug ) {\n\t\treturn null;\n\t}\n\n\tconst onShadowChange = ( shadow ) => {\n\t\tsetSelectedShadow( { ...selectedShadow, shadow } );\n\t\tconst updatedShadows = shadows.map( ( s ) =>\n\t\t\ts.slug === slug ? { ...selectedShadow, shadow } : s\n\t\t);\n\t\tsetShadows( updatedShadows );\n\t};\n\n\tconst onMenuClick = ( action ) => {\n\t\tif ( action === 'reset' ) {\n\t\t\tconst updatedShadows = shadows.map( ( s ) =>\n\t\t\t\ts.slug === slug ? baseSelectedShadow : s\n\t\t\t);\n\t\t\tsetSelectedShadow( baseSelectedShadow );\n\t\t\tsetShadows( updatedShadows );\n\t\t} else if ( action === 'delete' ) {\n\t\t\tsetIsConfirmDialogVisible( true );\n\t\t} else if ( action === 'rename' ) {\n\t\t\tsetIsRenameModalVisible( true );\n\t\t}\n\t};\n\n\tconst handleShadowDelete = () => {\n\t\tsetShadows( shadows.filter( ( s ) => s.slug !== slug ) );\n\t};\n\n\tconst handleShadowRename = ( newName ) => {\n\t\tif ( ! newName ) {\n\t\t\treturn;\n\t\t}\n\t\tconst updatedShadows = shadows.map( ( s ) =>\n\t\t\ts.slug === slug ? { ...selectedShadow, name: newName } : s\n\t\t);\n\t\tsetSelectedShadow( { ...selectedShadow, name: newName } );\n\t\tsetShadows( updatedShadows );\n\t};\n\n\treturn ! selectedShadow ? (\n\t\t<ScreenHeader title=\"\" />\n\t) : (\n\t\t<>\n\t\t\t<HStack justify=\"space-between\">\n\t\t\t\t<ScreenHeader title={ selectedShadow.name } />\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<Spacer marginTop={ 2 } marginBottom={ 0 } paddingX={ 4 }>\n\t\t\t\t\t\t<Menu>\n\t\t\t\t\t\t\t<Menu.TriggerButton\n\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Menu' ) }\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<Menu.Popover>\n\t\t\t\t\t\t\t\t{ ( category === 'custom'\n\t\t\t\t\t\t\t\t\t? customShadowMenuItems\n\t\t\t\t\t\t\t\t\t: presetShadowMenuItems\n\t\t\t\t\t\t\t\t).map( ( item ) => (\n\t\t\t\t\t\t\t\t\t<Menu.Item\n\t\t\t\t\t\t\t\t\t\tkey={ item.action }\n\t\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\t\tonMenuClick( item.action )\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\t\t\t\titem.action === 'reset' &&\n\t\t\t\t\t\t\t\t\t\t\tselectedShadow.shadow ===\n\t\t\t\t\t\t\t\t\t\t\t\tbaseSelectedShadow.shadow\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<Menu.ItemLabel>\n\t\t\t\t\t\t\t\t\t\t\t{ item.label }\n\t\t\t\t\t\t\t\t\t\t</Menu.ItemLabel>\n\t\t\t\t\t\t\t\t\t</Menu.Item>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t</Menu.Popover>\n\t\t\t\t\t\t</Menu>\n\t\t\t\t\t</Spacer>\n\t\t\t\t</FlexItem>\n\t\t\t</HStack>\n\t\t\t<div className=\"edit-site-global-styles-screen\">\n\t\t\t\t<ShadowsPreview shadow={ selectedShadow.shadow } />\n\t\t\t\t<ShadowEditor\n\t\t\t\t\tshadow={ selectedShadow.shadow }\n\t\t\t\t\tonChange={ onShadowChange }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t{ isConfirmDialogVisible && (\n\t\t\t\t<ConfirmDialog\n\t\t\t\t\tisOpen\n\t\t\t\t\tonConfirm={ () => {\n\t\t\t\t\t\thandleShadowDelete();\n\t\t\t\t\t\tsetIsConfirmDialogVisible( false );\n\t\t\t\t\t} }\n\t\t\t\t\tonCancel={ () => {\n\t\t\t\t\t\tsetIsConfirmDialogVisible( false );\n\t\t\t\t\t} }\n\t\t\t\t\tconfirmButtonText={ __( 'Delete' ) }\n\t\t\t\t\tsize=\"medium\"\n\t\t\t\t>\n\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t/* translators: %s: Name of the shadow preset. */\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Are you sure you want to delete \"%s\" shadow preset?'\n\t\t\t\t\t\t),\n\t\t\t\t\t\tselectedShadow.name\n\t\t\t\t\t) }\n\t\t\t\t</ConfirmDialog>\n\t\t\t) }\n\t\t\t{ isRenameModalVisible && (\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={ __( 'Rename' ) }\n\t\t\t\t\tonRequestClose={ () => setIsRenameModalVisible( false ) }\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t>\n\t\t\t\t\t<form\n\t\t\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\thandleShadowRename( shadowName );\n\t\t\t\t\t\t\tsetIsRenameModalVisible( false );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<InputControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\t\tplaceholder={ __( 'Shadow name' ) }\n\t\t\t\t\t\t\tvalue={ shadowName }\n\t\t\t\t\t\t\tonChange={ ( value ) => setShadowName( value ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Spacer marginBottom={ 6 } />\n\t\t\t\t\t\t<Flex\n\t\t\t\t\t\t\tclassName=\"block-editor-shadow-edit-modal__actions\"\n\t\t\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\t\t\texpanded={ false }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\tsetIsRenameModalVisible( false )\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\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t</Flex>\n\t\t\t\t\t</form>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction ShadowsPreview( { shadow } ) {\n\tconst shadowStyle = {\n\t\tboxShadow: shadow,\n\t};\n\n\treturn (\n\t\t<Spacer marginBottom={ 4 } marginTop={ -2 }>\n\t\t\t<HStack\n\t\t\t\talign=\"center\"\n\t\t\t\tjustify=\"center\"\n\t\t\t\tclassName=\"edit-site-global-styles__shadow-preview-panel\"\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"edit-site-global-styles__shadow-preview-block\"\n\t\t\t\t\tstyle={ shadowStyle }\n\t\t\t\t/>\n\t\t\t</HStack>\n\t\t</Spacer>\n\t);\n}\n\nfunction ShadowEditor( { shadow, onChange } ) {\n\tconst addShadowButtonRef = useRef();\n\tconst shadowParts = useMemo( () => getShadowParts( shadow ), [ shadow ] );\n\n\tconst onChangeShadowPart = ( index, part ) => {\n\t\tconst newShadowParts = [ ...shadowParts ];\n\t\tnewShadowParts[ index ] = part;\n\t\tonChange( newShadowParts.join( ', ' ) );\n\t};\n\n\tconst onAddShadowPart = () => {\n\t\tonChange( [ ...shadowParts, defaultShadow ].join( ', ' ) );\n\t};\n\n\tconst onRemoveShadowPart = ( index ) => {\n\t\tonChange( shadowParts.filter( ( p, i ) => i !== index ).join( ', ' ) );\n\t\taddShadowButtonRef.current.focus();\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<VStack spacing={ 2 }>\n\t\t\t\t<HStack justify=\"space-between\">\n\t\t\t\t\t<Subtitle level={ 3 }>{ __( 'Shadows' ) }</Subtitle>\n\t\t\t\t\t<FlexItem className=\"edit-site-global-styles__shadows-panel__options-container\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\ticon={ plus }\n\t\t\t\t\t\t\tlabel={ __( 'Add shadow' ) }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tonAddShadowPart();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tref={ addShadowButtonRef }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t\t<Spacer />\n\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t{ shadowParts.map( ( part, index ) => (\n\t\t\t\t\t<ShadowItem\n\t\t\t\t\t\tkey={ index }\n\t\t\t\t\t\tshadow={ part }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tonChangeShadowPart( index, value )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcanRemove={ shadowParts.length > 1 }\n\t\t\t\t\t\tonRemove={ () => onRemoveShadowPart( index ) }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</ItemGroup>\n\t\t</>\n\t);\n}\n\nfunction ShadowItem( { shadow, onChange, canRemove, onRemove } ) {\n\tconst popoverProps = {\n\t\tplacement: 'left-start',\n\t\toffset: 36,\n\t\tshift: true,\n\t};\n\tconst shadowObj = useMemo(\n\t\t() => shadowStringToObject( shadow ),\n\t\t[ shadow ]\n\t);\n\tconst onShadowChange = ( newShadow ) => {\n\t\tonChange( shadowObjectToString( newShadow ) );\n\t};\n\n\treturn (\n\t\t<Dropdown\n\t\t\tpopoverProps={ popoverProps }\n\t\t\tclassName=\"edit-site-global-styles__shadow-editor__dropdown\"\n\t\t\trenderToggle={ ( { onToggle, isOpen } ) => {\n\t\t\t\tconst toggleProps = {\n\t\t\t\t\tonClick: onToggle,\n\t\t\t\t\tclassName: clsx(\n\t\t\t\t\t\t'edit-site-global-styles__shadow-editor__dropdown-toggle',\n\t\t\t\t\t\t{ 'is-open': isOpen }\n\t\t\t\t\t),\n\t\t\t\t\t'aria-expanded': isOpen,\n\t\t\t\t};\n\t\t\t\tconst removeButtonProps = {\n\t\t\t\t\tonClick: () => {\n\t\t\t\t\t\tif ( isOpen ) {\n\t\t\t\t\t\t\tonToggle();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonRemove();\n\t\t\t\t\t},\n\t\t\t\t\tclassName: clsx(\n\t\t\t\t\t\t'edit-site-global-styles__shadow-editor__remove-button',\n\t\t\t\t\t\t{ 'is-open': isOpen }\n\t\t\t\t\t),\n\t\t\t\t\tlabel: __( 'Remove shadow' ),\n\t\t\t\t};\n\n\t\t\t\treturn (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\ticon={ shadowIcon }\n\t\t\t\t\t\t\t{ ...toggleProps }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ shadowObj.inset\n\t\t\t\t\t\t\t\t? __( 'Inner shadow' )\n\t\t\t\t\t\t\t\t: __( 'Drop shadow' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t{ canRemove && (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\ticon={ reset }\n\t\t\t\t\t\t\t\t{ ...removeButtonProps }\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} }\n\t\t\trenderContent={ () => (\n\t\t\t\t<DropdownContentWrapper\n\t\t\t\t\tpaddingSize=\"medium\"\n\t\t\t\t\tclassName=\"edit-site-global-styles__shadow-editor__dropdown-content\"\n\t\t\t\t>\n\t\t\t\t\t<ShadowPopover\n\t\t\t\t\t\tshadowObj={ shadowObj }\n\t\t\t\t\t\tonChange={ onShadowChange }\n\t\t\t\t\t/>\n\t\t\t\t</DropdownContentWrapper>\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nfunction ShadowPopover( { shadowObj, onChange } ) {\n\tconst __experimentalIsRenderedInSidebar = true;\n\tconst enableAlpha = true;\n\n\tconst onShadowChange = ( key, value ) => {\n\t\tconst newShadow = {\n\t\t\t...shadowObj,\n\t\t\t[ key ]: value,\n\t\t};\n\t\tonChange( newShadow );\n\t};\n\n\treturn (\n\t\t<VStack\n\t\t\tspacing={ 4 }\n\t\t\tclassName=\"edit-site-global-styles__shadow-editor-panel\"\n\t\t>\n\t\t\t<ColorPalette\n\t\t\t\tclearable={ false }\n\t\t\t\tenableAlpha={ enableAlpha }\n\t\t\t\t__experimentalIsRenderedInSidebar={\n\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t}\n\t\t\t\tvalue={ shadowObj.color }\n\t\t\t\tonChange={ ( value ) => onShadowChange( 'color', value ) }\n\t\t\t/>\n\t\t\t<ToggleGroupControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tvalue={ shadowObj.inset ? 'inset' : 'outset' }\n\t\t\t\tisBlock\n\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\tonShadowChange( 'inset', value === 'inset' )\n\t\t\t\t}\n\t\t\t\thideLabelFromVision\n\t\t\t\t__next40pxDefaultSize\n\t\t\t>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tvalue=\"outset\"\n\t\t\t\t\tlabel={ __( 'Outset' ) }\n\t\t\t\t/>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tvalue=\"inset\"\n\t\t\t\t\tlabel={ __( 'Inset' ) }\n\t\t\t\t/>\n\t\t\t</ToggleGroupControl>\n\t\t\t<Grid columns={ 2 } gap={ 4 }>\n\t\t\t\t<ShadowInputControl\n\t\t\t\t\tlabel={ __( 'X Position' ) }\n\t\t\t\t\tvalue={ shadowObj.x }\n\t\t\t\t\tonChange={ ( value ) => onShadowChange( 'x', value ) }\n\t\t\t\t/>\n\t\t\t\t<ShadowInputControl\n\t\t\t\t\tlabel={ __( 'Y Position' ) }\n\t\t\t\t\tvalue={ shadowObj.y }\n\t\t\t\t\tonChange={ ( value ) => onShadowChange( 'y', value ) }\n\t\t\t\t/>\n\t\t\t\t<ShadowInputControl\n\t\t\t\t\tlabel={ __( 'Blur' ) }\n\t\t\t\t\tvalue={ shadowObj.blur }\n\t\t\t\t\tonChange={ ( value ) => onShadowChange( 'blur', value ) }\n\t\t\t\t/>\n\t\t\t\t<ShadowInputControl\n\t\t\t\t\tlabel={ __( 'Spread' ) }\n\t\t\t\t\tvalue={ shadowObj.spread }\n\t\t\t\t\tonChange={ ( value ) => onShadowChange( 'spread', value ) }\n\t\t\t\t/>\n\t\t\t</Grid>\n\t\t</VStack>\n\t);\n}\n\nfunction ShadowInputControl( { label, value, onChange } ) {\n\tconst onValueChange = ( next ) => {\n\t\tconst isNumeric = next !== undefined && ! isNaN( parseFloat( next ) );\n\t\tconst nextValue = isNumeric ? next : '0px';\n\t\tonChange( nextValue );\n\t};\n\n\treturn (\n\t\t<UnitControl\n\t\t\tlabel={ label }\n\t\t\t__next40pxDefaultSize\n\t\t\tvalue={ value }\n\t\t\tonChange={ onValueChange }\n\t\t/>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -27,6 +27,7 @@ import { getExamples } from './examples';
27
27
  import { store as siteEditorStore } from '../../store';
28
28
  import { useSection } from '../sidebar-global-styles-wrapper';
29
29
  import { GlobalStylesRenderer } from '../global-styles-renderer';
30
+ import { getVariationClassName } from '../global-styles/utils';
30
31
  import { STYLE_BOOK_COLOR_GROUPS, STYLE_BOOK_PREVIEW_CATEGORIES } from '../style-book/constants';
31
32
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
32
33
  const {
@@ -145,6 +146,31 @@ export function getExamplesForSinglePageUse(examples) {
145
146
  examplesForSinglePageUse.push(...otherExamples);
146
147
  return examplesForSinglePageUse;
147
148
  }
149
+
150
+ /**
151
+ * Applies a block variation to each example by updating its attributes.
152
+ *
153
+ * @param {Array} examples Array of examples
154
+ * @param {string} variation Block variation name.
155
+ * @return {Array} Updated examples with variation applied.
156
+ */
157
+ function applyBlockVariationsToExamples(examples, variation) {
158
+ if (!variation) {
159
+ return examples;
160
+ }
161
+ return examples.map(example => ({
162
+ ...example,
163
+ variation,
164
+ blocks: {
165
+ ...example.blocks,
166
+ attributes: {
167
+ ...example.blocks.attributes,
168
+ style: undefined,
169
+ className: getVariationClassName(variation)
170
+ }
171
+ }
172
+ }));
173
+ }
148
174
  function StyleBook({
149
175
  enableResizing = true,
150
176
  isSelected,
@@ -269,7 +295,7 @@ export const StyleBookPreview = ({
269
295
  // '/blocks/core%2Fbuttons'.
270
296
  return section === `/blocks/${encodeURIComponent(blockName)}` || section.startsWith(`/blocks/${encodeURIComponent(blockName)}/`);
271
297
  };
272
- const onSelect = blockName => {
298
+ const onSelect = (blockName, isBlockVariation = false) => {
273
299
  if (STYLE_BOOK_COLOR_GROUPS.find(group => group.slug === blockName)) {
274
300
  // Go to color palettes Global Styles.
275
301
  onChangeSection('/colors/palette');
@@ -280,6 +306,9 @@ export const StyleBookPreview = ({
280
306
  onChangeSection('/typography');
281
307
  return;
282
308
  }
309
+ if (isBlockVariation) {
310
+ return;
311
+ }
283
312
 
284
313
  // Now go to the selected block.
285
314
  onChangeSection(`/blocks/${encodeURIComponent(blockName)}`);
@@ -288,13 +317,19 @@ export const StyleBookPreview = ({
288
317
  const examples = getExamples(colors);
289
318
  const examplesForSinglePageUse = getExamplesForSinglePageUse(examples);
290
319
  let previewCategory = null;
320
+ let blockVariation = null;
291
321
  if (section.includes('/colors')) {
292
322
  previewCategory = 'colors';
293
323
  } else if (section.includes('/typography')) {
294
324
  previewCategory = 'text';
295
325
  } else if (section.includes('/blocks')) {
296
326
  previewCategory = 'blocks';
297
- const blockName = decodeURIComponent(section).split('/blocks/')[1];
327
+ let blockName = decodeURIComponent(section).split('/blocks/')[1];
328
+
329
+ // The blockName can contain variations, if so, extract the variation.
330
+ if (blockName?.includes('/variations')) {
331
+ [blockName, blockVariation] = blockName.split('/variations/');
332
+ }
298
333
  if (blockName && examples.find(example => example.name === blockName)) {
299
334
  previewCategory = blockName;
300
335
  }
@@ -302,16 +337,29 @@ export const StyleBookPreview = ({
302
337
  previewCategory = 'overview';
303
338
  }
304
339
  const categoryDefinition = STYLE_BOOK_PREVIEW_CATEGORIES.find(category => category.slug === previewCategory);
305
-
306
- // If there's no category definition there may be a single block.
307
- const filteredExamples = categoryDefinition ? getExamplesByCategory(categoryDefinition, examples) : {
308
- examples: [examples.find(example => example.name === previewCategory)]
309
- };
310
-
311
- // If there's no preview category, show all examples.
312
- const displayedExamples = previewCategory ? filteredExamples : {
313
- examples: examplesForSinglePageUse
314
- };
340
+ const filteredExamples = useMemo(() => {
341
+ // If there's no category definition there may be a single block.
342
+ if (!categoryDefinition) {
343
+ return {
344
+ examples: [examples.find(example => example.name === previewCategory)]
345
+ };
346
+ }
347
+ return getExamplesByCategory(categoryDefinition, examples);
348
+ }, [categoryDefinition, examples, previewCategory]);
349
+ const displayedExamples = useMemo(() => {
350
+ // If there's no preview category, show all examples.
351
+ if (!previewCategory) {
352
+ return {
353
+ examples: examplesForSinglePageUse
354
+ };
355
+ }
356
+ if (blockVariation) {
357
+ return {
358
+ examples: applyBlockVariationsToExamples(filteredExamples.examples, blockVariation)
359
+ };
360
+ }
361
+ return filteredExamples;
362
+ }, [previewCategory, examplesForSinglePageUse, blockVariation, filteredExamples]);
315
363
  const {
316
364
  base: baseConfig
317
365
  } = useContext(GlobalStylesContext);
@@ -436,7 +484,7 @@ const Examples = memo(({
436
484
  content: example.content,
437
485
  blocks: example.blocks,
438
486
  isSelected: isSelected?.(example.name),
439
- onClick: !!onSelect ? () => onSelect(example.name) : null
487
+ onClick: !!onSelect ? () => onSelect(example.name, !!example.variation) : null
440
488
  }, example.name)), !!filteredExamples?.subcategories?.length && filteredExamples.subcategories.map(subcategory => /*#__PURE__*/_jsxs(Composite.Group, {
441
489
  className: "edit-site-style-book__subcategory",
442
490
  children: [/*#__PURE__*/_jsx(Composite.GroupLabel, {
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","Disabled","Composite","privateApis","componentsPrivateApis","__","_x","sprintf","BlockList","blockEditorPrivateApis","store","blockEditorStore","useSettings","BlockEditorProvider","__unstableEditorStyles","EditorStyles","__unstableIframe","Iframe","__experimentalUseMultipleOriginColorsAndGradients","useMultipleOriginColorsAndGradients","editorPrivateApis","useSelect","dispatch","useMemo","useState","memo","useContext","useRef","useLayoutEffect","useEffect","ENTER","SPACE","uploadMedia","coreStore","unlock","EditorCanvasContainer","STYLE_BOOK_IFRAME_STYLES","getExamplesByCategory","getTopLevelStyleBookCategories","getExamples","siteEditorStore","useSection","GlobalStylesRenderer","STYLE_BOOK_COLOR_GROUPS","STYLE_BOOK_PREVIEW_CATEGORIES","jsx","_jsx","jsxs","_jsxs","ExperimentalBlockEditorProvider","useGlobalStyle","GlobalStylesContext","useGlobalStylesOutputWithConfig","mergeBaseAndUserConfigs","Tabs","isObjectEmpty","object","Object","keys","length","scrollToSection","anchorId","iframe","contentDocument","element","body","getElementById","scrollIntoView","behavior","getStyleBookNavigationFromPath","path","startsWith","top","useMultiOriginPalettes","colors","gradients","shouldDisplayDefaultDuotones","customDuotones","themeDuotones","defaultDuotones","palettes","result","duotones","push","name","slug","getExamplesForSinglePageUse","examples","examplesForSinglePageUse","overviewCategoryExamples","otherExamples","filter","example","category","find","overviewExample","StyleBook","enableResizing","isSelected","onClick","onSelect","showCloseButton","onClose","showTabs","userConfig","textColor","backgroundColor","tabs","some","base","baseConfig","goTo","mergedConfig","originalSettings","select","getSettings","globalStyles","settings","styles","isPreviewMode","closeButtonLabel","children","className","style","color","background","TabList","map","tab","Tab","tabId","title","categoryDefinition","_category","filteredExamples","TabPanel","focusable","StyleBookBody","StyleBookPreview","isStatic","siteEditorSettings","canUserUploadMedia","canUser","kind","updateSettings","mediaUpload","undefined","section","onChangeSection","blockName","encodeURIComponent","group","previewCategory","includes","decodeURIComponent","split","displayedExamples","disableRootPadding","isFocused","setIsFocused","hasIframeLoaded","setHasIframeLoaded","iframeRef","buttonModeProps","role","onFocus","onBlur","onKeyDown","event","defaultPrevented","keyCode","preventDefault","readonly","handleLoad","current","onLoad","ref","tabIndex","Examples","label","orientation","Example","id","content","blocks","subcategories","subcategory","Group","GroupLabel","Subcategory","disabledExamples","focusMode","renderedBlocks","Array","isArray","disabledProps","disabled","accessibleWhenDisabled","Item","render","value","renderAppender"],"sources":["@wordpress/edit-site/src/components/style-book/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tDisabled,\n\tComposite,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport {\n\tBlockList,\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n\tuseSettings,\n\tBlockEditorProvider,\n\t__unstableEditorStyles as EditorStyles,\n\t__unstableIframe as Iframe,\n\t__experimentalUseMultipleOriginColorsAndGradients as useMultipleOriginColorsAndGradients,\n} from '@wordpress/block-editor';\nimport { privateApis as editorPrivateApis } from '@wordpress/editor';\nimport { useSelect, dispatch } from '@wordpress/data';\nimport {\n\tuseMemo,\n\tuseState,\n\tmemo,\n\tuseContext,\n\tuseRef,\n\tuseLayoutEffect,\n\tuseEffect,\n} from '@wordpress/element';\nimport { ENTER, SPACE } from '@wordpress/keycodes';\nimport { uploadMedia } from '@wordpress/media-utils';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport EditorCanvasContainer from '../editor-canvas-container';\nimport { STYLE_BOOK_IFRAME_STYLES } from './constants';\nimport {\n\tgetExamplesByCategory,\n\tgetTopLevelStyleBookCategories,\n} from './categories';\nimport { getExamples } from './examples';\nimport { store as siteEditorStore } from '../../store';\nimport { useSection } from '../sidebar-global-styles-wrapper';\nimport { GlobalStylesRenderer } from '../global-styles-renderer';\nimport {\n\tSTYLE_BOOK_COLOR_GROUPS,\n\tSTYLE_BOOK_PREVIEW_CATEGORIES,\n} from '../style-book/constants';\n\nconst {\n\tExperimentalBlockEditorProvider,\n\tuseGlobalStyle,\n\tGlobalStylesContext,\n\tuseGlobalStylesOutputWithConfig,\n} = unlock( blockEditorPrivateApis );\nconst { mergeBaseAndUserConfigs } = unlock( editorPrivateApis );\n\nconst { Tabs } = unlock( componentsPrivateApis );\n\nfunction isObjectEmpty( object ) {\n\treturn ! object || Object.keys( object ).length === 0;\n}\n\n/**\n * Scrolls to a section within an iframe.\n *\n * @param {string} anchorId The id of the element to scroll to.\n * @param {HTMLIFrameElement} iframe The target iframe.\n */\nconst scrollToSection = ( anchorId, iframe ) => {\n\tif ( ! anchorId || ! iframe || ! iframe?.contentDocument ) {\n\t\treturn;\n\t}\n\n\tconst element =\n\t\tanchorId === 'top'\n\t\t\t? iframe.contentDocument.body\n\t\t\t: iframe.contentDocument.getElementById( anchorId );\n\tif ( element ) {\n\t\telement.scrollIntoView( {\n\t\t\tbehavior: 'smooth',\n\t\t} );\n\t}\n};\n\n/**\n * Parses a Block Editor navigation path to build a style book navigation path.\n * The object can be extended to include a category, representing a style book tab/section.\n *\n * @param {string} path An internal Block Editor navigation path.\n * @return {null|{block: string}} An object containing the example to navigate to.\n */\nconst getStyleBookNavigationFromPath = ( path ) => {\n\tif ( path && typeof path === 'string' ) {\n\t\tif (\n\t\t\tpath === '/' ||\n\t\t\tpath.startsWith( '/typography' ) ||\n\t\t\tpath.startsWith( '/colors' ) ||\n\t\t\tpath.startsWith( '/blocks' )\n\t\t) {\n\t\t\treturn {\n\t\t\t\ttop: true,\n\t\t\t};\n\t\t}\n\t}\n\treturn null;\n};\n\n/**\n * Retrieves colors, gradients, and duotone filters from Global Styles.\n * The inclusion of default (Core) palettes is controlled by the relevant\n * theme.json property e.g. defaultPalette, defaultGradients, defaultDuotone.\n *\n * @return {Object} Object containing properties for each type of palette.\n */\nfunction useMultiOriginPalettes() {\n\tconst { colors, gradients } = useMultipleOriginColorsAndGradients();\n\n\t// Add duotone filters to the palettes data.\n\tconst [\n\t\tshouldDisplayDefaultDuotones,\n\t\tcustomDuotones,\n\t\tthemeDuotones,\n\t\tdefaultDuotones,\n\t] = useSettings(\n\t\t'color.defaultDuotone',\n\t\t'color.duotone.custom',\n\t\t'color.duotone.theme',\n\t\t'color.duotone.default'\n\t);\n\n\tconst palettes = useMemo( () => {\n\t\tconst result = { colors, gradients, duotones: [] };\n\n\t\tif ( themeDuotones && themeDuotones.length ) {\n\t\t\tresult.duotones.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Theme',\n\t\t\t\t\t'Indicates these duotone filters come from the theme.'\n\t\t\t\t),\n\t\t\t\tslug: 'theme',\n\t\t\t\tduotones: themeDuotones,\n\t\t\t} );\n\t\t}\n\n\t\tif (\n\t\t\tshouldDisplayDefaultDuotones &&\n\t\t\tdefaultDuotones &&\n\t\t\tdefaultDuotones.length\n\t\t) {\n\t\t\tresult.duotones.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Default',\n\t\t\t\t\t'Indicates these duotone filters come from WordPress.'\n\t\t\t\t),\n\t\t\t\tslug: 'default',\n\t\t\t\tduotones: defaultDuotones,\n\t\t\t} );\n\t\t}\n\t\tif ( customDuotones && customDuotones.length ) {\n\t\t\tresult.duotones.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Custom',\n\t\t\t\t\t'Indicates these doutone filters are created by the user.'\n\t\t\t\t),\n\t\t\t\tslug: 'custom',\n\t\t\t\tduotones: customDuotones,\n\t\t\t} );\n\t\t}\n\n\t\treturn result;\n\t}, [\n\t\tcolors,\n\t\tgradients,\n\t\tcustomDuotones,\n\t\tthemeDuotones,\n\t\tdefaultDuotones,\n\t\tshouldDisplayDefaultDuotones,\n\t] );\n\n\treturn palettes;\n}\n\n/**\n * Get deduped examples for single page stylebook.\n * @param {Array} examples Array of examples.\n * @return {Array} Deduped examples.\n */\nexport function getExamplesForSinglePageUse( examples ) {\n\tconst examplesForSinglePageUse = [];\n\tconst overviewCategoryExamples = getExamplesByCategory(\n\t\t{ slug: 'overview' },\n\t\texamples\n\t);\n\texamplesForSinglePageUse.push( ...overviewCategoryExamples.examples );\n\tconst otherExamples = examples.filter( ( example ) => {\n\t\treturn (\n\t\t\texample.category !== 'overview' &&\n\t\t\t! overviewCategoryExamples.examples.find(\n\t\t\t\t( overviewExample ) => overviewExample.name === example.name\n\t\t\t)\n\t\t);\n\t} );\n\texamplesForSinglePageUse.push( ...otherExamples );\n\n\treturn examplesForSinglePageUse;\n}\n\nfunction StyleBook( {\n\tenableResizing = true,\n\tisSelected,\n\tonClick,\n\tonSelect,\n\tshowCloseButton = true,\n\tonClose,\n\tshowTabs = true,\n\tuserConfig = {},\n\tpath = '',\n} ) {\n\tconst [ textColor ] = useGlobalStyle( 'color.text' );\n\tconst [ backgroundColor ] = useGlobalStyle( 'color.background' );\n\tconst colors = useMultiOriginPalettes();\n\tconst examples = useMemo( () => getExamples( colors ), [ colors ] );\n\tconst tabs = useMemo(\n\t\t() =>\n\t\t\tgetTopLevelStyleBookCategories().filter( ( category ) =>\n\t\t\t\texamples.some(\n\t\t\t\t\t( example ) => example.category === category.slug\n\t\t\t\t)\n\t\t\t),\n\t\t[ examples ]\n\t);\n\n\tconst examplesForSinglePageUse = getExamplesForSinglePageUse( examples );\n\n\tconst { base: baseConfig } = useContext( GlobalStylesContext );\n\tconst goTo = getStyleBookNavigationFromPath( path );\n\n\tconst mergedConfig = useMemo( () => {\n\t\tif ( ! isObjectEmpty( userConfig ) && ! isObjectEmpty( baseConfig ) ) {\n\t\t\treturn mergeBaseAndUserConfigs( baseConfig, userConfig );\n\t\t}\n\t\treturn {};\n\t}, [ baseConfig, userConfig ] );\n\n\t// Copied from packages/edit-site/src/components/revisions/index.js\n\t// could we create a shared hook?\n\tconst originalSettings = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings(),\n\t\t[]\n\t);\n\tconst [ globalStyles ] = useGlobalStylesOutputWithConfig( mergedConfig );\n\n\tconst settings = useMemo(\n\t\t() => ( {\n\t\t\t...originalSettings,\n\t\t\tstyles:\n\t\t\t\t! isObjectEmpty( globalStyles ) && ! isObjectEmpty( userConfig )\n\t\t\t\t\t? globalStyles\n\t\t\t\t\t: originalSettings.styles,\n\t\t\tisPreviewMode: true,\n\t\t} ),\n\t\t[ globalStyles, originalSettings, userConfig ]\n\t);\n\n\treturn (\n\t\t<EditorCanvasContainer\n\t\t\tonClose={ onClose }\n\t\t\tenableResizing={ enableResizing }\n\t\t\tcloseButtonLabel={ showCloseButton ? __( 'Close' ) : null }\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={ clsx( 'edit-site-style-book', {\n\t\t\t\t\t'is-button': !! onClick,\n\t\t\t\t} ) }\n\t\t\t\tstyle={ {\n\t\t\t\t\tcolor: textColor,\n\t\t\t\t\tbackground: backgroundColor,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ showTabs ? (\n\t\t\t\t\t<Tabs>\n\t\t\t\t\t\t<div className=\"edit-site-style-book__tablist-container\">\n\t\t\t\t\t\t\t<Tabs.TabList>\n\t\t\t\t\t\t\t\t{ tabs.map( ( tab ) => (\n\t\t\t\t\t\t\t\t\t<Tabs.Tab\n\t\t\t\t\t\t\t\t\t\ttabId={ tab.slug }\n\t\t\t\t\t\t\t\t\t\tkey={ tab.slug }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ tab.title }\n\t\t\t\t\t\t\t\t\t</Tabs.Tab>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t</Tabs.TabList>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{ tabs.map( ( tab ) => {\n\t\t\t\t\t\t\tconst categoryDefinition = tab.slug\n\t\t\t\t\t\t\t\t? getTopLevelStyleBookCategories().find(\n\t\t\t\t\t\t\t\t\t\t( _category ) =>\n\t\t\t\t\t\t\t\t\t\t\t_category.slug === tab.slug\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: null;\n\t\t\t\t\t\t\tconst filteredExamples = categoryDefinition\n\t\t\t\t\t\t\t\t? getExamplesByCategory(\n\t\t\t\t\t\t\t\t\t\tcategoryDefinition,\n\t\t\t\t\t\t\t\t\t\texamples\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: { examples };\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<Tabs.TabPanel\n\t\t\t\t\t\t\t\t\tkey={ tab.slug }\n\t\t\t\t\t\t\t\t\ttabId={ tab.slug }\n\t\t\t\t\t\t\t\t\tfocusable={ false }\n\t\t\t\t\t\t\t\t\tclassName=\"edit-site-style-book__tabpanel\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<StyleBookBody\n\t\t\t\t\t\t\t\t\t\tcategory={ tab.slug }\n\t\t\t\t\t\t\t\t\t\texamples={ filteredExamples }\n\t\t\t\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\t\t\t\t\ttitle={ tab.title }\n\t\t\t\t\t\t\t\t\t\tgoTo={ goTo }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t</Tabs>\n\t\t\t\t) : (\n\t\t\t\t\t<StyleBookBody\n\t\t\t\t\t\texamples={ { examples: examplesForSinglePageUse } }\n\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\tgoTo={ goTo }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</EditorCanvasContainer>\n\t);\n}\n\n/**\n * Style Book Preview component renders the stylebook without the Editor dependency.\n *\n * @param {Object} props Component props.\n * @param {Object} props.userConfig User configuration.\n * @param {boolean} props.isStatic Whether the stylebook is static or clickable.\n * @return {Object} Style Book Preview component.\n */\nexport const StyleBookPreview = ( { userConfig = {}, isStatic = false } ) => {\n\tconst siteEditorSettings = useSelect(\n\t\t( select ) => select( siteEditorStore ).getSettings(),\n\t\t[]\n\t);\n\n\tconst canUserUploadMedia = useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).canUser( 'create', {\n\t\t\t\tkind: 'root',\n\t\t\t\tname: 'media',\n\t\t\t} ),\n\t\t[]\n\t);\n\n\t// Update block editor settings because useMultipleOriginColorsAndGradients fetch colours from there.\n\tuseEffect( () => {\n\t\tdispatch( blockEditorStore ).updateSettings( {\n\t\t\t...siteEditorSettings,\n\t\t\tmediaUpload: canUserUploadMedia ? uploadMedia : undefined,\n\t\t} );\n\t}, [ siteEditorSettings, canUserUploadMedia ] );\n\n\tconst [ section, onChangeSection ] = useSection();\n\n\tconst isSelected = ( blockName ) => {\n\t\t// Match '/blocks/core%2Fbutton' and\n\t\t// '/blocks/core%2Fbutton/typography', but not\n\t\t// '/blocks/core%2Fbuttons'.\n\t\treturn (\n\t\t\tsection === `/blocks/${ encodeURIComponent( blockName ) }` ||\n\t\t\tsection.startsWith(\n\t\t\t\t`/blocks/${ encodeURIComponent( blockName ) }/`\n\t\t\t)\n\t\t);\n\t};\n\n\tconst onSelect = ( blockName ) => {\n\t\tif (\n\t\t\tSTYLE_BOOK_COLOR_GROUPS.find(\n\t\t\t\t( group ) => group.slug === blockName\n\t\t\t)\n\t\t) {\n\t\t\t// Go to color palettes Global Styles.\n\t\t\tonChangeSection( '/colors/palette' );\n\t\t\treturn;\n\t\t}\n\t\tif ( blockName === 'typography' ) {\n\t\t\t// Go to typography Global Styles.\n\t\t\tonChangeSection( '/typography' );\n\t\t\treturn;\n\t\t}\n\n\t\t// Now go to the selected block.\n\t\tonChangeSection( `/blocks/${ encodeURIComponent( blockName ) }` );\n\t};\n\n\tconst colors = useMultiOriginPalettes();\n\tconst examples = getExamples( colors );\n\tconst examplesForSinglePageUse = getExamplesForSinglePageUse( examples );\n\n\tlet previewCategory = null;\n\tif ( section.includes( '/colors' ) ) {\n\t\tpreviewCategory = 'colors';\n\t} else if ( section.includes( '/typography' ) ) {\n\t\tpreviewCategory = 'text';\n\t} else if ( section.includes( '/blocks' ) ) {\n\t\tpreviewCategory = 'blocks';\n\t\tconst blockName =\n\t\t\tdecodeURIComponent( section ).split( '/blocks/' )[ 1 ];\n\t\tif (\n\t\t\tblockName &&\n\t\t\texamples.find( ( example ) => example.name === blockName )\n\t\t) {\n\t\t\tpreviewCategory = blockName;\n\t\t}\n\t} else if ( ! isStatic ) {\n\t\tpreviewCategory = 'overview';\n\t}\n\tconst categoryDefinition = STYLE_BOOK_PREVIEW_CATEGORIES.find(\n\t\t( category ) => category.slug === previewCategory\n\t);\n\n\t// If there's no category definition there may be a single block.\n\tconst filteredExamples = categoryDefinition\n\t\t? getExamplesByCategory( categoryDefinition, examples )\n\t\t: {\n\t\t\t\texamples: [\n\t\t\t\t\texamples.find(\n\t\t\t\t\t\t( example ) => example.name === previewCategory\n\t\t\t\t\t),\n\t\t\t\t],\n\t\t };\n\n\t// If there's no preview category, show all examples.\n\tconst displayedExamples = previewCategory\n\t\t? filteredExamples\n\t\t: { examples: examplesForSinglePageUse };\n\n\tconst { base: baseConfig } = useContext( GlobalStylesContext );\n\tconst goTo = getStyleBookNavigationFromPath( section );\n\n\tconst mergedConfig = useMemo( () => {\n\t\tif ( ! isObjectEmpty( userConfig ) && ! isObjectEmpty( baseConfig ) ) {\n\t\t\treturn mergeBaseAndUserConfigs( baseConfig, userConfig );\n\t\t}\n\t\treturn {};\n\t}, [ baseConfig, userConfig ] );\n\n\tconst [ globalStyles ] = useGlobalStylesOutputWithConfig( mergedConfig );\n\n\tconst settings = useMemo(\n\t\t() => ( {\n\t\t\t...siteEditorSettings,\n\t\t\tstyles:\n\t\t\t\t! isObjectEmpty( globalStyles ) && ! isObjectEmpty( userConfig )\n\t\t\t\t\t? globalStyles\n\t\t\t\t\t: siteEditorSettings.styles,\n\t\t\tisPreviewMode: true,\n\t\t} ),\n\t\t[ globalStyles, siteEditorSettings, userConfig ]\n\t);\n\n\treturn (\n\t\t<div className=\"edit-site-style-book\">\n\t\t\t<BlockEditorProvider settings={ settings }>\n\t\t\t\t<GlobalStylesRenderer disableRootPadding />\n\t\t\t\t<StyleBookBody\n\t\t\t\t\texamples={ displayedExamples }\n\t\t\t\t\tsettings={ settings }\n\t\t\t\t\tgoTo={ goTo }\n\t\t\t\t\tisSelected={ ! isStatic ? isSelected : null }\n\t\t\t\t\tonSelect={ ! isStatic ? onSelect : null }\n\t\t\t\t/>\n\t\t\t</BlockEditorProvider>\n\t\t</div>\n\t);\n};\n\nexport const StyleBookBody = ( {\n\texamples,\n\tisSelected,\n\tonClick,\n\tonSelect,\n\tsettings,\n\ttitle,\n\tgoTo,\n} ) => {\n\tconst [ isFocused, setIsFocused ] = useState( false );\n\tconst [ hasIframeLoaded, setHasIframeLoaded ] = useState( false );\n\tconst iframeRef = useRef( null );\n\t// The presence of an `onClick` prop indicates that the Style Book is being used as a button.\n\t// In this case, add additional props to the iframe to make it behave like a button.\n\tconst buttonModeProps = {\n\t\trole: 'button',\n\t\tonFocus: () => setIsFocused( true ),\n\t\tonBlur: () => setIsFocused( false ),\n\t\tonKeyDown: ( event ) => {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst { keyCode } = event;\n\t\t\tif ( onClick && ( keyCode === ENTER || keyCode === SPACE ) ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tonClick( event );\n\t\t\t}\n\t\t},\n\t\tonClick: ( event ) => {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( onClick ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tonClick( event );\n\t\t\t}\n\t\t},\n\t\treadonly: true,\n\t};\n\n\tconst handleLoad = () => setHasIframeLoaded( true );\n\tuseLayoutEffect( () => {\n\t\tif ( hasIframeLoaded && iframeRef?.current ) {\n\t\t\tif ( goTo?.top ) {\n\t\t\t\tscrollToSection( 'top', iframeRef?.current );\n\t\t\t}\n\t\t}\n\t}, [ iframeRef?.current, goTo, scrollToSection, hasIframeLoaded ] );\n\n\treturn (\n\t\t<Iframe\n\t\t\tonLoad={ handleLoad }\n\t\t\tref={ iframeRef }\n\t\t\tclassName={ clsx( 'edit-site-style-book__iframe', {\n\t\t\t\t'is-focused': isFocused && !! onClick,\n\t\t\t\t'is-button': !! onClick,\n\t\t\t} ) }\n\t\t\tname=\"style-book-canvas\"\n\t\t\ttabIndex={ 0 }\n\t\t\t{ ...( onClick ? buttonModeProps : {} ) }\n\t\t>\n\t\t\t<EditorStyles styles={ settings.styles } />\n\t\t\t<style>\n\t\t\t\t{ STYLE_BOOK_IFRAME_STYLES }\n\t\t\t\t{ !! onClick &&\n\t\t\t\t\t'body { cursor: pointer; } body * { pointer-events: none; }' }\n\t\t\t</style>\n\t\t\t<Examples\n\t\t\t\tclassName=\"edit-site-style-book__examples\"\n\t\t\t\tfilteredExamples={ examples }\n\t\t\t\tlabel={\n\t\t\t\t\ttitle\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: Category of blocks, e.g. Text.\n\t\t\t\t\t\t\t\t__( 'Examples of blocks in the %s category' ),\n\t\t\t\t\t\t\t\ttitle\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: __( 'Examples of blocks' )\n\t\t\t\t}\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tonSelect={ onSelect }\n\t\t\t\tkey={ title }\n\t\t\t/>\n\t\t</Iframe>\n\t);\n};\n\nconst Examples = memo(\n\t( { className, filteredExamples, label, isSelected, onSelect } ) => {\n\t\treturn (\n\t\t\t<Composite\n\t\t\t\torientation=\"vertical\"\n\t\t\t\tclassName={ className }\n\t\t\t\taria-label={ label }\n\t\t\t\trole=\"grid\"\n\t\t\t>\n\t\t\t\t{ !! filteredExamples?.examples?.length &&\n\t\t\t\t\tfilteredExamples.examples.map( ( example ) => (\n\t\t\t\t\t\t<Example\n\t\t\t\t\t\t\tkey={ example.name }\n\t\t\t\t\t\t\tid={ `example-${ example.name }` }\n\t\t\t\t\t\t\ttitle={ example.title }\n\t\t\t\t\t\t\tcontent={ example.content }\n\t\t\t\t\t\t\tblocks={ example.blocks }\n\t\t\t\t\t\t\tisSelected={ isSelected?.( example.name ) }\n\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\t!! onSelect\n\t\t\t\t\t\t\t\t\t? () => onSelect( example.name )\n\t\t\t\t\t\t\t\t\t: null\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{ !! filteredExamples?.subcategories?.length &&\n\t\t\t\t\tfilteredExamples.subcategories.map( ( subcategory ) => (\n\t\t\t\t\t\t<Composite.Group\n\t\t\t\t\t\t\tclassName=\"edit-site-style-book__subcategory\"\n\t\t\t\t\t\t\tkey={ `subcategory-${ subcategory.slug }` }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Composite.GroupLabel>\n\t\t\t\t\t\t\t\t<h2 className=\"edit-site-style-book__subcategory-title\">\n\t\t\t\t\t\t\t\t\t{ subcategory.title }\n\t\t\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t\t</Composite.GroupLabel>\n\t\t\t\t\t\t\t<Subcategory\n\t\t\t\t\t\t\t\texamples={ subcategory.examples }\n\t\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Composite.Group>\n\t\t\t\t\t) ) }\n\t\t\t</Composite>\n\t\t);\n\t}\n);\n\nconst Subcategory = ( { examples, isSelected, onSelect } ) => {\n\treturn (\n\t\t!! examples?.length &&\n\t\texamples.map( ( example ) => (\n\t\t\t<Example\n\t\t\t\tkey={ example.name }\n\t\t\t\tid={ `example-${ example.name }` }\n\t\t\t\ttitle={ example.title }\n\t\t\t\tcontent={ example.content }\n\t\t\t\tblocks={ example.blocks }\n\t\t\t\tisSelected={ isSelected?.( example.name ) }\n\t\t\t\tonClick={ !! onSelect ? () => onSelect( example.name ) : null }\n\t\t\t/>\n\t\t) )\n\t);\n};\n\nconst disabledExamples = [ 'example-duotones' ];\n\nconst Example = ( { id, title, blocks, isSelected, onClick, content } ) => {\n\tconst originalSettings = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings(),\n\t\t[]\n\t);\n\tconst settings = useMemo(\n\t\t() => ( {\n\t\t\t...originalSettings,\n\t\t\tfocusMode: false, // Disable \"Spotlight mode\".\n\t\t\tisPreviewMode: true,\n\t\t} ),\n\t\t[ originalSettings ]\n\t);\n\n\t// Cache the list of blocks to avoid additional processing when the component is re-rendered.\n\tconst renderedBlocks = useMemo(\n\t\t() => ( Array.isArray( blocks ) ? blocks : [ blocks ] ),\n\t\t[ blocks ]\n\t);\n\n\tconst disabledProps =\n\t\tdisabledExamples.includes( id ) || ! onClick\n\t\t\t? {\n\t\t\t\t\tdisabled: true,\n\t\t\t\t\taccessibleWhenDisabled: !! onClick,\n\t\t\t }\n\t\t\t: {};\n\n\treturn (\n\t\t<div role=\"row\">\n\t\t\t<div role=\"gridcell\">\n\t\t\t\t<Composite.Item\n\t\t\t\t\tclassName={ clsx( 'edit-site-style-book__example', {\n\t\t\t\t\t\t'is-selected': isSelected,\n\t\t\t\t\t\t'is-disabled-example': !! disabledProps?.disabled,\n\t\t\t\t\t} ) }\n\t\t\t\t\tid={ id }\n\t\t\t\t\taria-label={\n\t\t\t\t\t\t!! onClick\n\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t// translators: %s: Title of a block, e.g. Heading.\n\t\t\t\t\t\t\t\t\t__( 'Open %s styles in Styles panel' ),\n\t\t\t\t\t\t\t\t\ttitle\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t\trender={ <div /> }\n\t\t\t\t\trole={ !! onClick ? 'button' : null }\n\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\t{ ...disabledProps }\n\t\t\t\t>\n\t\t\t\t\t<span className=\"edit-site-style-book__example-title\">\n\t\t\t\t\t\t{ title }\n\t\t\t\t\t</span>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName=\"edit-site-style-book__example-preview\"\n\t\t\t\t\t\taria-hidden\n\t\t\t\t\t>\n\t\t\t\t\t\t<Disabled className=\"edit-site-style-book__example-preview__content\">\n\t\t\t\t\t\t\t{ content ? (\n\t\t\t\t\t\t\t\tcontent\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<ExperimentalBlockEditorProvider\n\t\t\t\t\t\t\t\t\tvalue={ renderedBlocks }\n\t\t\t\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<EditorStyles />\n\t\t\t\t\t\t\t\t\t<BlockList renderAppender={ false } />\n\t\t\t\t\t\t\t\t</ExperimentalBlockEditorProvider>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</Disabled>\n\t\t\t\t\t</div>\n\t\t\t\t</Composite.Item>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default StyleBook;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","Disabled","Composite","privateApis","componentsPrivateApis","__","_x","sprintf","BlockList","blockEditorPrivateApis","store","blockEditorStore","useSettings","BlockEditorProvider","__unstableEditorStyles","EditorStyles","__unstableIframe","Iframe","__experimentalUseMultipleOriginColorsAndGradients","useMultipleOriginColorsAndGradients","editorPrivateApis","useSelect","dispatch","useMemo","useState","memo","useContext","useRef","useLayoutEffect","useEffect","ENTER","SPACE","uploadMedia","coreStore","unlock","EditorCanvasContainer","STYLE_BOOK_IFRAME_STYLES","getExamplesByCategory","getTopLevelStyleBookCategories","getExamples","siteEditorStore","useSection","GlobalStylesRenderer","getVariationClassName","STYLE_BOOK_COLOR_GROUPS","STYLE_BOOK_PREVIEW_CATEGORIES","jsx","_jsx","jsxs","_jsxs","ExperimentalBlockEditorProvider","useGlobalStyle","GlobalStylesContext","useGlobalStylesOutputWithConfig","mergeBaseAndUserConfigs","Tabs","isObjectEmpty","object","Object","keys","length","scrollToSection","anchorId","iframe","contentDocument","element","body","getElementById","scrollIntoView","behavior","getStyleBookNavigationFromPath","path","startsWith","top","useMultiOriginPalettes","colors","gradients","shouldDisplayDefaultDuotones","customDuotones","themeDuotones","defaultDuotones","palettes","result","duotones","push","name","slug","getExamplesForSinglePageUse","examples","examplesForSinglePageUse","overviewCategoryExamples","otherExamples","filter","example","category","find","overviewExample","applyBlockVariationsToExamples","variation","map","blocks","attributes","style","undefined","className","StyleBook","enableResizing","isSelected","onClick","onSelect","showCloseButton","onClose","showTabs","userConfig","textColor","backgroundColor","tabs","some","base","baseConfig","goTo","mergedConfig","originalSettings","select","getSettings","globalStyles","settings","styles","isPreviewMode","closeButtonLabel","children","color","background","TabList","tab","Tab","tabId","title","categoryDefinition","_category","filteredExamples","TabPanel","focusable","StyleBookBody","StyleBookPreview","isStatic","siteEditorSettings","canUserUploadMedia","canUser","kind","updateSettings","mediaUpload","section","onChangeSection","blockName","encodeURIComponent","isBlockVariation","group","previewCategory","blockVariation","includes","decodeURIComponent","split","displayedExamples","disableRootPadding","isFocused","setIsFocused","hasIframeLoaded","setHasIframeLoaded","iframeRef","buttonModeProps","role","onFocus","onBlur","onKeyDown","event","defaultPrevented","keyCode","preventDefault","readonly","handleLoad","current","onLoad","ref","tabIndex","Examples","label","orientation","Example","id","content","subcategories","subcategory","Group","GroupLabel","Subcategory","disabledExamples","focusMode","renderedBlocks","Array","isArray","disabledProps","disabled","accessibleWhenDisabled","Item","render","value","renderAppender"],"sources":["@wordpress/edit-site/src/components/style-book/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tDisabled,\n\tComposite,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport {\n\tBlockList,\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n\tuseSettings,\n\tBlockEditorProvider,\n\t__unstableEditorStyles as EditorStyles,\n\t__unstableIframe as Iframe,\n\t__experimentalUseMultipleOriginColorsAndGradients as useMultipleOriginColorsAndGradients,\n} from '@wordpress/block-editor';\nimport { privateApis as editorPrivateApis } from '@wordpress/editor';\nimport { useSelect, dispatch } from '@wordpress/data';\nimport {\n\tuseMemo,\n\tuseState,\n\tmemo,\n\tuseContext,\n\tuseRef,\n\tuseLayoutEffect,\n\tuseEffect,\n} from '@wordpress/element';\nimport { ENTER, SPACE } from '@wordpress/keycodes';\nimport { uploadMedia } from '@wordpress/media-utils';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport EditorCanvasContainer from '../editor-canvas-container';\nimport { STYLE_BOOK_IFRAME_STYLES } from './constants';\nimport {\n\tgetExamplesByCategory,\n\tgetTopLevelStyleBookCategories,\n} from './categories';\nimport { getExamples } from './examples';\nimport { store as siteEditorStore } from '../../store';\nimport { useSection } from '../sidebar-global-styles-wrapper';\nimport { GlobalStylesRenderer } from '../global-styles-renderer';\nimport { getVariationClassName } from '../global-styles/utils';\nimport {\n\tSTYLE_BOOK_COLOR_GROUPS,\n\tSTYLE_BOOK_PREVIEW_CATEGORIES,\n} from '../style-book/constants';\n\nconst {\n\tExperimentalBlockEditorProvider,\n\tuseGlobalStyle,\n\tGlobalStylesContext,\n\tuseGlobalStylesOutputWithConfig,\n} = unlock( blockEditorPrivateApis );\nconst { mergeBaseAndUserConfigs } = unlock( editorPrivateApis );\n\nconst { Tabs } = unlock( componentsPrivateApis );\n\nfunction isObjectEmpty( object ) {\n\treturn ! object || Object.keys( object ).length === 0;\n}\n\n/**\n * Scrolls to a section within an iframe.\n *\n * @param {string} anchorId The id of the element to scroll to.\n * @param {HTMLIFrameElement} iframe The target iframe.\n */\nconst scrollToSection = ( anchorId, iframe ) => {\n\tif ( ! anchorId || ! iframe || ! iframe?.contentDocument ) {\n\t\treturn;\n\t}\n\n\tconst element =\n\t\tanchorId === 'top'\n\t\t\t? iframe.contentDocument.body\n\t\t\t: iframe.contentDocument.getElementById( anchorId );\n\tif ( element ) {\n\t\telement.scrollIntoView( {\n\t\t\tbehavior: 'smooth',\n\t\t} );\n\t}\n};\n\n/**\n * Parses a Block Editor navigation path to build a style book navigation path.\n * The object can be extended to include a category, representing a style book tab/section.\n *\n * @param {string} path An internal Block Editor navigation path.\n * @return {null|{block: string}} An object containing the example to navigate to.\n */\nconst getStyleBookNavigationFromPath = ( path ) => {\n\tif ( path && typeof path === 'string' ) {\n\t\tif (\n\t\t\tpath === '/' ||\n\t\t\tpath.startsWith( '/typography' ) ||\n\t\t\tpath.startsWith( '/colors' ) ||\n\t\t\tpath.startsWith( '/blocks' )\n\t\t) {\n\t\t\treturn {\n\t\t\t\ttop: true,\n\t\t\t};\n\t\t}\n\t}\n\treturn null;\n};\n\n/**\n * Retrieves colors, gradients, and duotone filters from Global Styles.\n * The inclusion of default (Core) palettes is controlled by the relevant\n * theme.json property e.g. defaultPalette, defaultGradients, defaultDuotone.\n *\n * @return {Object} Object containing properties for each type of palette.\n */\nfunction useMultiOriginPalettes() {\n\tconst { colors, gradients } = useMultipleOriginColorsAndGradients();\n\n\t// Add duotone filters to the palettes data.\n\tconst [\n\t\tshouldDisplayDefaultDuotones,\n\t\tcustomDuotones,\n\t\tthemeDuotones,\n\t\tdefaultDuotones,\n\t] = useSettings(\n\t\t'color.defaultDuotone',\n\t\t'color.duotone.custom',\n\t\t'color.duotone.theme',\n\t\t'color.duotone.default'\n\t);\n\n\tconst palettes = useMemo( () => {\n\t\tconst result = { colors, gradients, duotones: [] };\n\n\t\tif ( themeDuotones && themeDuotones.length ) {\n\t\t\tresult.duotones.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Theme',\n\t\t\t\t\t'Indicates these duotone filters come from the theme.'\n\t\t\t\t),\n\t\t\t\tslug: 'theme',\n\t\t\t\tduotones: themeDuotones,\n\t\t\t} );\n\t\t}\n\n\t\tif (\n\t\t\tshouldDisplayDefaultDuotones &&\n\t\t\tdefaultDuotones &&\n\t\t\tdefaultDuotones.length\n\t\t) {\n\t\t\tresult.duotones.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Default',\n\t\t\t\t\t'Indicates these duotone filters come from WordPress.'\n\t\t\t\t),\n\t\t\t\tslug: 'default',\n\t\t\t\tduotones: defaultDuotones,\n\t\t\t} );\n\t\t}\n\t\tif ( customDuotones && customDuotones.length ) {\n\t\t\tresult.duotones.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Custom',\n\t\t\t\t\t'Indicates these doutone filters are created by the user.'\n\t\t\t\t),\n\t\t\t\tslug: 'custom',\n\t\t\t\tduotones: customDuotones,\n\t\t\t} );\n\t\t}\n\n\t\treturn result;\n\t}, [\n\t\tcolors,\n\t\tgradients,\n\t\tcustomDuotones,\n\t\tthemeDuotones,\n\t\tdefaultDuotones,\n\t\tshouldDisplayDefaultDuotones,\n\t] );\n\n\treturn palettes;\n}\n\n/**\n * Get deduped examples for single page stylebook.\n * @param {Array} examples Array of examples.\n * @return {Array} Deduped examples.\n */\nexport function getExamplesForSinglePageUse( examples ) {\n\tconst examplesForSinglePageUse = [];\n\tconst overviewCategoryExamples = getExamplesByCategory(\n\t\t{ slug: 'overview' },\n\t\texamples\n\t);\n\texamplesForSinglePageUse.push( ...overviewCategoryExamples.examples );\n\tconst otherExamples = examples.filter( ( example ) => {\n\t\treturn (\n\t\t\texample.category !== 'overview' &&\n\t\t\t! overviewCategoryExamples.examples.find(\n\t\t\t\t( overviewExample ) => overviewExample.name === example.name\n\t\t\t)\n\t\t);\n\t} );\n\texamplesForSinglePageUse.push( ...otherExamples );\n\n\treturn examplesForSinglePageUse;\n}\n\n/**\n * Applies a block variation to each example by updating its attributes.\n *\n * @param {Array} examples Array of examples\n * @param {string} variation Block variation name.\n * @return {Array} Updated examples with variation applied.\n */\nfunction applyBlockVariationsToExamples( examples, variation ) {\n\tif ( ! variation ) {\n\t\treturn examples;\n\t}\n\n\treturn examples.map( ( example ) => ( {\n\t\t...example,\n\t\tvariation,\n\t\tblocks: {\n\t\t\t...example.blocks,\n\t\t\tattributes: {\n\t\t\t\t...example.blocks.attributes,\n\t\t\t\tstyle: undefined,\n\t\t\t\tclassName: getVariationClassName( variation ),\n\t\t\t},\n\t\t},\n\t} ) );\n}\n\nfunction StyleBook( {\n\tenableResizing = true,\n\tisSelected,\n\tonClick,\n\tonSelect,\n\tshowCloseButton = true,\n\tonClose,\n\tshowTabs = true,\n\tuserConfig = {},\n\tpath = '',\n} ) {\n\tconst [ textColor ] = useGlobalStyle( 'color.text' );\n\tconst [ backgroundColor ] = useGlobalStyle( 'color.background' );\n\tconst colors = useMultiOriginPalettes();\n\tconst examples = useMemo( () => getExamples( colors ), [ colors ] );\n\tconst tabs = useMemo(\n\t\t() =>\n\t\t\tgetTopLevelStyleBookCategories().filter( ( category ) =>\n\t\t\t\texamples.some(\n\t\t\t\t\t( example ) => example.category === category.slug\n\t\t\t\t)\n\t\t\t),\n\t\t[ examples ]\n\t);\n\n\tconst examplesForSinglePageUse = getExamplesForSinglePageUse( examples );\n\n\tconst { base: baseConfig } = useContext( GlobalStylesContext );\n\tconst goTo = getStyleBookNavigationFromPath( path );\n\n\tconst mergedConfig = useMemo( () => {\n\t\tif ( ! isObjectEmpty( userConfig ) && ! isObjectEmpty( baseConfig ) ) {\n\t\t\treturn mergeBaseAndUserConfigs( baseConfig, userConfig );\n\t\t}\n\t\treturn {};\n\t}, [ baseConfig, userConfig ] );\n\n\t// Copied from packages/edit-site/src/components/revisions/index.js\n\t// could we create a shared hook?\n\tconst originalSettings = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings(),\n\t\t[]\n\t);\n\tconst [ globalStyles ] = useGlobalStylesOutputWithConfig( mergedConfig );\n\n\tconst settings = useMemo(\n\t\t() => ( {\n\t\t\t...originalSettings,\n\t\t\tstyles:\n\t\t\t\t! isObjectEmpty( globalStyles ) && ! isObjectEmpty( userConfig )\n\t\t\t\t\t? globalStyles\n\t\t\t\t\t: originalSettings.styles,\n\t\t\tisPreviewMode: true,\n\t\t} ),\n\t\t[ globalStyles, originalSettings, userConfig ]\n\t);\n\n\treturn (\n\t\t<EditorCanvasContainer\n\t\t\tonClose={ onClose }\n\t\t\tenableResizing={ enableResizing }\n\t\t\tcloseButtonLabel={ showCloseButton ? __( 'Close' ) : null }\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={ clsx( 'edit-site-style-book', {\n\t\t\t\t\t'is-button': !! onClick,\n\t\t\t\t} ) }\n\t\t\t\tstyle={ {\n\t\t\t\t\tcolor: textColor,\n\t\t\t\t\tbackground: backgroundColor,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ showTabs ? (\n\t\t\t\t\t<Tabs>\n\t\t\t\t\t\t<div className=\"edit-site-style-book__tablist-container\">\n\t\t\t\t\t\t\t<Tabs.TabList>\n\t\t\t\t\t\t\t\t{ tabs.map( ( tab ) => (\n\t\t\t\t\t\t\t\t\t<Tabs.Tab\n\t\t\t\t\t\t\t\t\t\ttabId={ tab.slug }\n\t\t\t\t\t\t\t\t\t\tkey={ tab.slug }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ tab.title }\n\t\t\t\t\t\t\t\t\t</Tabs.Tab>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t</Tabs.TabList>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{ tabs.map( ( tab ) => {\n\t\t\t\t\t\t\tconst categoryDefinition = tab.slug\n\t\t\t\t\t\t\t\t? getTopLevelStyleBookCategories().find(\n\t\t\t\t\t\t\t\t\t\t( _category ) =>\n\t\t\t\t\t\t\t\t\t\t\t_category.slug === tab.slug\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: null;\n\t\t\t\t\t\t\tconst filteredExamples = categoryDefinition\n\t\t\t\t\t\t\t\t? getExamplesByCategory(\n\t\t\t\t\t\t\t\t\t\tcategoryDefinition,\n\t\t\t\t\t\t\t\t\t\texamples\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: { examples };\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<Tabs.TabPanel\n\t\t\t\t\t\t\t\t\tkey={ tab.slug }\n\t\t\t\t\t\t\t\t\ttabId={ tab.slug }\n\t\t\t\t\t\t\t\t\tfocusable={ false }\n\t\t\t\t\t\t\t\t\tclassName=\"edit-site-style-book__tabpanel\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<StyleBookBody\n\t\t\t\t\t\t\t\t\t\tcategory={ tab.slug }\n\t\t\t\t\t\t\t\t\t\texamples={ filteredExamples }\n\t\t\t\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\t\t\t\t\ttitle={ tab.title }\n\t\t\t\t\t\t\t\t\t\tgoTo={ goTo }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t</Tabs>\n\t\t\t\t) : (\n\t\t\t\t\t<StyleBookBody\n\t\t\t\t\t\texamples={ { examples: examplesForSinglePageUse } }\n\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\tgoTo={ goTo }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</EditorCanvasContainer>\n\t);\n}\n\n/**\n * Style Book Preview component renders the stylebook without the Editor dependency.\n *\n * @param {Object} props Component props.\n * @param {Object} props.userConfig User configuration.\n * @param {boolean} props.isStatic Whether the stylebook is static or clickable.\n * @return {Object} Style Book Preview component.\n */\nexport const StyleBookPreview = ( { userConfig = {}, isStatic = false } ) => {\n\tconst siteEditorSettings = useSelect(\n\t\t( select ) => select( siteEditorStore ).getSettings(),\n\t\t[]\n\t);\n\n\tconst canUserUploadMedia = useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).canUser( 'create', {\n\t\t\t\tkind: 'root',\n\t\t\t\tname: 'media',\n\t\t\t} ),\n\t\t[]\n\t);\n\n\t// Update block editor settings because useMultipleOriginColorsAndGradients fetch colours from there.\n\tuseEffect( () => {\n\t\tdispatch( blockEditorStore ).updateSettings( {\n\t\t\t...siteEditorSettings,\n\t\t\tmediaUpload: canUserUploadMedia ? uploadMedia : undefined,\n\t\t} );\n\t}, [ siteEditorSettings, canUserUploadMedia ] );\n\n\tconst [ section, onChangeSection ] = useSection();\n\n\tconst isSelected = ( blockName ) => {\n\t\t// Match '/blocks/core%2Fbutton' and\n\t\t// '/blocks/core%2Fbutton/typography', but not\n\t\t// '/blocks/core%2Fbuttons'.\n\t\treturn (\n\t\t\tsection === `/blocks/${ encodeURIComponent( blockName ) }` ||\n\t\t\tsection.startsWith(\n\t\t\t\t`/blocks/${ encodeURIComponent( blockName ) }/`\n\t\t\t)\n\t\t);\n\t};\n\n\tconst onSelect = ( blockName, isBlockVariation = false ) => {\n\t\tif (\n\t\t\tSTYLE_BOOK_COLOR_GROUPS.find(\n\t\t\t\t( group ) => group.slug === blockName\n\t\t\t)\n\t\t) {\n\t\t\t// Go to color palettes Global Styles.\n\t\t\tonChangeSection( '/colors/palette' );\n\t\t\treturn;\n\t\t}\n\t\tif ( blockName === 'typography' ) {\n\t\t\t// Go to typography Global Styles.\n\t\t\tonChangeSection( '/typography' );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlockVariation ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Now go to the selected block.\n\t\tonChangeSection( `/blocks/${ encodeURIComponent( blockName ) }` );\n\t};\n\n\tconst colors = useMultiOriginPalettes();\n\tconst examples = getExamples( colors );\n\tconst examplesForSinglePageUse = getExamplesForSinglePageUse( examples );\n\n\tlet previewCategory = null;\n\tlet blockVariation = null;\n\tif ( section.includes( '/colors' ) ) {\n\t\tpreviewCategory = 'colors';\n\t} else if ( section.includes( '/typography' ) ) {\n\t\tpreviewCategory = 'text';\n\t} else if ( section.includes( '/blocks' ) ) {\n\t\tpreviewCategory = 'blocks';\n\t\tlet blockName = decodeURIComponent( section ).split( '/blocks/' )[ 1 ];\n\n\t\t// The blockName can contain variations, if so, extract the variation.\n\t\tif ( blockName?.includes( '/variations' ) ) {\n\t\t\t[ blockName, blockVariation ] = blockName.split( '/variations/' );\n\t\t}\n\n\t\tif (\n\t\t\tblockName &&\n\t\t\texamples.find( ( example ) => example.name === blockName )\n\t\t) {\n\t\t\tpreviewCategory = blockName;\n\t\t}\n\t} else if ( ! isStatic ) {\n\t\tpreviewCategory = 'overview';\n\t}\n\tconst categoryDefinition = STYLE_BOOK_PREVIEW_CATEGORIES.find(\n\t\t( category ) => category.slug === previewCategory\n\t);\n\n\tconst filteredExamples = useMemo( () => {\n\t\t// If there's no category definition there may be a single block.\n\t\tif ( ! categoryDefinition ) {\n\t\t\treturn {\n\t\t\t\texamples: [\n\t\t\t\t\texamples.find(\n\t\t\t\t\t\t( example ) => example.name === previewCategory\n\t\t\t\t\t),\n\t\t\t\t],\n\t\t\t};\n\t\t}\n\n\t\treturn getExamplesByCategory( categoryDefinition, examples );\n\t}, [ categoryDefinition, examples, previewCategory ] );\n\n\tconst displayedExamples = useMemo( () => {\n\t\t// If there's no preview category, show all examples.\n\t\tif ( ! previewCategory ) {\n\t\t\treturn { examples: examplesForSinglePageUse };\n\t\t}\n\n\t\tif ( blockVariation ) {\n\t\t\treturn {\n\t\t\t\texamples: applyBlockVariationsToExamples(\n\t\t\t\t\tfilteredExamples.examples,\n\t\t\t\t\tblockVariation\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\treturn filteredExamples;\n\t}, [\n\t\tpreviewCategory,\n\t\texamplesForSinglePageUse,\n\t\tblockVariation,\n\t\tfilteredExamples,\n\t] );\n\n\tconst { base: baseConfig } = useContext( GlobalStylesContext );\n\tconst goTo = getStyleBookNavigationFromPath( section );\n\n\tconst mergedConfig = useMemo( () => {\n\t\tif ( ! isObjectEmpty( userConfig ) && ! isObjectEmpty( baseConfig ) ) {\n\t\t\treturn mergeBaseAndUserConfigs( baseConfig, userConfig );\n\t\t}\n\t\treturn {};\n\t}, [ baseConfig, userConfig ] );\n\n\tconst [ globalStyles ] = useGlobalStylesOutputWithConfig( mergedConfig );\n\n\tconst settings = useMemo(\n\t\t() => ( {\n\t\t\t...siteEditorSettings,\n\t\t\tstyles:\n\t\t\t\t! isObjectEmpty( globalStyles ) && ! isObjectEmpty( userConfig )\n\t\t\t\t\t? globalStyles\n\t\t\t\t\t: siteEditorSettings.styles,\n\t\t\tisPreviewMode: true,\n\t\t} ),\n\t\t[ globalStyles, siteEditorSettings, userConfig ]\n\t);\n\n\treturn (\n\t\t<div className=\"edit-site-style-book\">\n\t\t\t<BlockEditorProvider settings={ settings }>\n\t\t\t\t<GlobalStylesRenderer disableRootPadding />\n\t\t\t\t<StyleBookBody\n\t\t\t\t\texamples={ displayedExamples }\n\t\t\t\t\tsettings={ settings }\n\t\t\t\t\tgoTo={ goTo }\n\t\t\t\t\tisSelected={ ! isStatic ? isSelected : null }\n\t\t\t\t\tonSelect={ ! isStatic ? onSelect : null }\n\t\t\t\t/>\n\t\t\t</BlockEditorProvider>\n\t\t</div>\n\t);\n};\n\nexport const StyleBookBody = ( {\n\texamples,\n\tisSelected,\n\tonClick,\n\tonSelect,\n\tsettings,\n\ttitle,\n\tgoTo,\n} ) => {\n\tconst [ isFocused, setIsFocused ] = useState( false );\n\tconst [ hasIframeLoaded, setHasIframeLoaded ] = useState( false );\n\tconst iframeRef = useRef( null );\n\t// The presence of an `onClick` prop indicates that the Style Book is being used as a button.\n\t// In this case, add additional props to the iframe to make it behave like a button.\n\tconst buttonModeProps = {\n\t\trole: 'button',\n\t\tonFocus: () => setIsFocused( true ),\n\t\tonBlur: () => setIsFocused( false ),\n\t\tonKeyDown: ( event ) => {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst { keyCode } = event;\n\t\t\tif ( onClick && ( keyCode === ENTER || keyCode === SPACE ) ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tonClick( event );\n\t\t\t}\n\t\t},\n\t\tonClick: ( event ) => {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( onClick ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tonClick( event );\n\t\t\t}\n\t\t},\n\t\treadonly: true,\n\t};\n\n\tconst handleLoad = () => setHasIframeLoaded( true );\n\tuseLayoutEffect( () => {\n\t\tif ( hasIframeLoaded && iframeRef?.current ) {\n\t\t\tif ( goTo?.top ) {\n\t\t\t\tscrollToSection( 'top', iframeRef?.current );\n\t\t\t}\n\t\t}\n\t}, [ iframeRef?.current, goTo, scrollToSection, hasIframeLoaded ] );\n\n\treturn (\n\t\t<Iframe\n\t\t\tonLoad={ handleLoad }\n\t\t\tref={ iframeRef }\n\t\t\tclassName={ clsx( 'edit-site-style-book__iframe', {\n\t\t\t\t'is-focused': isFocused && !! onClick,\n\t\t\t\t'is-button': !! onClick,\n\t\t\t} ) }\n\t\t\tname=\"style-book-canvas\"\n\t\t\ttabIndex={ 0 }\n\t\t\t{ ...( onClick ? buttonModeProps : {} ) }\n\t\t>\n\t\t\t<EditorStyles styles={ settings.styles } />\n\t\t\t<style>\n\t\t\t\t{ STYLE_BOOK_IFRAME_STYLES }\n\t\t\t\t{ !! onClick &&\n\t\t\t\t\t'body { cursor: pointer; } body * { pointer-events: none; }' }\n\t\t\t</style>\n\t\t\t<Examples\n\t\t\t\tclassName=\"edit-site-style-book__examples\"\n\t\t\t\tfilteredExamples={ examples }\n\t\t\t\tlabel={\n\t\t\t\t\ttitle\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: Category of blocks, e.g. Text.\n\t\t\t\t\t\t\t\t__( 'Examples of blocks in the %s category' ),\n\t\t\t\t\t\t\t\ttitle\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: __( 'Examples of blocks' )\n\t\t\t\t}\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tonSelect={ onSelect }\n\t\t\t\tkey={ title }\n\t\t\t/>\n\t\t</Iframe>\n\t);\n};\n\nconst Examples = memo(\n\t( { className, filteredExamples, label, isSelected, onSelect } ) => {\n\t\treturn (\n\t\t\t<Composite\n\t\t\t\torientation=\"vertical\"\n\t\t\t\tclassName={ className }\n\t\t\t\taria-label={ label }\n\t\t\t\trole=\"grid\"\n\t\t\t>\n\t\t\t\t{ !! filteredExamples?.examples?.length &&\n\t\t\t\t\tfilteredExamples.examples.map( ( example ) => (\n\t\t\t\t\t\t<Example\n\t\t\t\t\t\t\tkey={ example.name }\n\t\t\t\t\t\t\tid={ `example-${ example.name }` }\n\t\t\t\t\t\t\ttitle={ example.title }\n\t\t\t\t\t\t\tcontent={ example.content }\n\t\t\t\t\t\t\tblocks={ example.blocks }\n\t\t\t\t\t\t\tisSelected={ isSelected?.( example.name ) }\n\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\t!! onSelect\n\t\t\t\t\t\t\t\t\t? () =>\n\t\t\t\t\t\t\t\t\t\t\tonSelect(\n\t\t\t\t\t\t\t\t\t\t\t\texample.name,\n\t\t\t\t\t\t\t\t\t\t\t\t!! example.variation\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t: null\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{ !! filteredExamples?.subcategories?.length &&\n\t\t\t\t\tfilteredExamples.subcategories.map( ( subcategory ) => (\n\t\t\t\t\t\t<Composite.Group\n\t\t\t\t\t\t\tclassName=\"edit-site-style-book__subcategory\"\n\t\t\t\t\t\t\tkey={ `subcategory-${ subcategory.slug }` }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Composite.GroupLabel>\n\t\t\t\t\t\t\t\t<h2 className=\"edit-site-style-book__subcategory-title\">\n\t\t\t\t\t\t\t\t\t{ subcategory.title }\n\t\t\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t\t</Composite.GroupLabel>\n\t\t\t\t\t\t\t<Subcategory\n\t\t\t\t\t\t\t\texamples={ subcategory.examples }\n\t\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Composite.Group>\n\t\t\t\t\t) ) }\n\t\t\t</Composite>\n\t\t);\n\t}\n);\n\nconst Subcategory = ( { examples, isSelected, onSelect } ) => {\n\treturn (\n\t\t!! examples?.length &&\n\t\texamples.map( ( example ) => (\n\t\t\t<Example\n\t\t\t\tkey={ example.name }\n\t\t\t\tid={ `example-${ example.name }` }\n\t\t\t\ttitle={ example.title }\n\t\t\t\tcontent={ example.content }\n\t\t\t\tblocks={ example.blocks }\n\t\t\t\tisSelected={ isSelected?.( example.name ) }\n\t\t\t\tonClick={ !! onSelect ? () => onSelect( example.name ) : null }\n\t\t\t/>\n\t\t) )\n\t);\n};\n\nconst disabledExamples = [ 'example-duotones' ];\n\nconst Example = ( { id, title, blocks, isSelected, onClick, content } ) => {\n\tconst originalSettings = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings(),\n\t\t[]\n\t);\n\tconst settings = useMemo(\n\t\t() => ( {\n\t\t\t...originalSettings,\n\t\t\tfocusMode: false, // Disable \"Spotlight mode\".\n\t\t\tisPreviewMode: true,\n\t\t} ),\n\t\t[ originalSettings ]\n\t);\n\n\t// Cache the list of blocks to avoid additional processing when the component is re-rendered.\n\tconst renderedBlocks = useMemo(\n\t\t() => ( Array.isArray( blocks ) ? blocks : [ blocks ] ),\n\t\t[ blocks ]\n\t);\n\n\tconst disabledProps =\n\t\tdisabledExamples.includes( id ) || ! onClick\n\t\t\t? {\n\t\t\t\t\tdisabled: true,\n\t\t\t\t\taccessibleWhenDisabled: !! onClick,\n\t\t\t }\n\t\t\t: {};\n\n\treturn (\n\t\t<div role=\"row\">\n\t\t\t<div role=\"gridcell\">\n\t\t\t\t<Composite.Item\n\t\t\t\t\tclassName={ clsx( 'edit-site-style-book__example', {\n\t\t\t\t\t\t'is-selected': isSelected,\n\t\t\t\t\t\t'is-disabled-example': !! disabledProps?.disabled,\n\t\t\t\t\t} ) }\n\t\t\t\t\tid={ id }\n\t\t\t\t\taria-label={\n\t\t\t\t\t\t!! onClick\n\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t// translators: %s: Title of a block, e.g. Heading.\n\t\t\t\t\t\t\t\t\t__( 'Open %s styles in Styles panel' ),\n\t\t\t\t\t\t\t\t\ttitle\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t\trender={ <div /> }\n\t\t\t\t\trole={ !! onClick ? 'button' : null }\n\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\t{ ...disabledProps }\n\t\t\t\t>\n\t\t\t\t\t<span className=\"edit-site-style-book__example-title\">\n\t\t\t\t\t\t{ title }\n\t\t\t\t\t</span>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName=\"edit-site-style-book__example-preview\"\n\t\t\t\t\t\taria-hidden\n\t\t\t\t\t>\n\t\t\t\t\t\t<Disabled className=\"edit-site-style-book__example-preview__content\">\n\t\t\t\t\t\t\t{ content ? (\n\t\t\t\t\t\t\t\tcontent\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<ExperimentalBlockEditorProvider\n\t\t\t\t\t\t\t\t\tvalue={ renderedBlocks }\n\t\t\t\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<EditorStyles />\n\t\t\t\t\t\t\t\t\t<BlockList renderAppender={ false } />\n\t\t\t\t\t\t\t\t</ExperimentalBlockEditorProvider>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</Disabled>\n\t\t\t\t\t</div>\n\t\t\t\t</Composite.Item>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default StyleBook;\n"],"mappings":"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","ignoreList":[]}