@wordpress/block-editor 15.7.1-next.2f1c7c01b.0 → 15.8.1-next.16d95556a.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 (195) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/block-card/index.js +76 -34
  3. package/build/components/block-card/index.js.map +2 -2
  4. package/build/components/block-inspector/edit-contents.js +72 -0
  5. package/build/components/block-inspector/edit-contents.js.map +7 -0
  6. package/build/components/block-inspector/index.js +32 -9
  7. package/build/components/block-inspector/index.js.map +3 -3
  8. package/build/components/block-list/index.js +9 -9
  9. package/build/components/block-list/index.js.map +2 -2
  10. package/build/components/block-switcher/index.js +24 -123
  11. package/build/components/block-switcher/index.js.map +3 -3
  12. package/build/components/block-toolbar/block-toolbar-icon.js +175 -0
  13. package/build/components/block-toolbar/block-toolbar-icon.js.map +7 -0
  14. package/build/components/block-toolbar/index.js +51 -53
  15. package/build/components/block-toolbar/index.js.map +3 -3
  16. package/build/components/block-toolbar/pattern-overrides-dropdown.js +93 -0
  17. package/build/components/block-toolbar/pattern-overrides-dropdown.js.map +7 -0
  18. package/build/components/block-tools/index.js +10 -3
  19. package/build/components/block-tools/index.js.map +2 -2
  20. package/build/components/border-radius-control/utils.js +7 -3
  21. package/build/components/border-radius-control/utils.js.map +2 -2
  22. package/build/components/content-lock/modify-content-lock-menu-item.js +3 -3
  23. package/build/components/content-lock/modify-content-lock-menu-item.js.map +2 -2
  24. package/build/components/global-styles/border-panel.js +11 -7
  25. package/build/components/global-styles/border-panel.js.map +2 -2
  26. package/build/components/global-styles/color-panel.js +35 -27
  27. package/build/components/global-styles/color-panel.js.map +2 -2
  28. package/build/components/global-styles/typography-panel.js +19 -12
  29. package/build/components/global-styles/typography-panel.js.map +2 -2
  30. package/build/components/inserter/media-tab/media-tab.js +2 -1
  31. package/build/components/inserter/media-tab/media-tab.js.map +2 -2
  32. package/build/components/inspector-controls-tabs/index.js +2 -1
  33. package/build/components/inspector-controls-tabs/index.js.map +2 -2
  34. package/build/components/inspector-controls-tabs/styles-tab.js +55 -1
  35. package/build/components/inspector-controls-tabs/styles-tab.js.map +3 -3
  36. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js +1 -1
  37. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +2 -2
  38. package/build/components/keyboard-shortcuts/index.js +8 -0
  39. package/build/components/keyboard-shortcuts/index.js.map +2 -2
  40. package/build/components/rich-text/format-edit.js +9 -1
  41. package/build/components/rich-text/format-edit.js.map +2 -2
  42. package/build/components/rich-text/index.js +1 -0
  43. package/build/components/rich-text/index.js.map +2 -2
  44. package/build/hooks/border.js +10 -5
  45. package/build/hooks/border.js.map +3 -3
  46. package/build/hooks/color.js +31 -9
  47. package/build/hooks/color.js.map +3 -3
  48. package/build/hooks/content-lock-ui.js +4 -5
  49. package/build/hooks/content-lock-ui.js.map +2 -2
  50. package/build/hooks/dimensions.js +9 -4
  51. package/build/hooks/dimensions.js.map +2 -2
  52. package/build/hooks/fit-text.js +19 -75
  53. package/build/hooks/fit-text.js.map +3 -3
  54. package/build/hooks/font-size.js +5 -2
  55. package/build/hooks/font-size.js.map +2 -2
  56. package/build/hooks/layout.js +4 -1
  57. package/build/hooks/layout.js.map +2 -2
  58. package/build/hooks/spacing-visualizer.js +5 -0
  59. package/build/hooks/spacing-visualizer.js.map +2 -2
  60. package/build/hooks/typography.js +23 -14
  61. package/build/hooks/typography.js.map +3 -3
  62. package/build/store/private-selectors.js +21 -1
  63. package/build/store/private-selectors.js.map +2 -2
  64. package/build/store/reducer.js +4 -0
  65. package/build/store/reducer.js.map +2 -2
  66. package/build/store/selectors.js +12 -3
  67. package/build/store/selectors.js.map +2 -2
  68. package/build/utils/fit-text-frontend.js +1 -0
  69. package/build/utils/fit-text-frontend.js.map +2 -2
  70. package/build/utils/fit-text-utils.js +1 -1
  71. package/build/utils/fit-text-utils.js.map +1 -1
  72. package/build-module/components/block-card/index.js +82 -32
  73. package/build-module/components/block-card/index.js.map +2 -2
  74. package/build-module/components/block-inspector/edit-contents.js +51 -0
  75. package/build-module/components/block-inspector/edit-contents.js.map +7 -0
  76. package/build-module/components/block-inspector/index.js +32 -9
  77. package/build-module/components/block-inspector/index.js.map +2 -2
  78. package/build-module/components/block-list/index.js +11 -11
  79. package/build-module/components/block-list/index.js.map +2 -2
  80. package/build-module/components/block-switcher/index.js +24 -124
  81. package/build-module/components/block-switcher/index.js.map +2 -2
  82. package/build-module/components/block-toolbar/block-toolbar-icon.js +144 -0
  83. package/build-module/components/block-toolbar/block-toolbar-icon.js.map +7 -0
  84. package/build-module/components/block-toolbar/index.js +51 -53
  85. package/build-module/components/block-toolbar/index.js.map +2 -2
  86. package/build-module/components/block-toolbar/pattern-overrides-dropdown.js +76 -0
  87. package/build-module/components/block-toolbar/pattern-overrides-dropdown.js.map +7 -0
  88. package/build-module/components/block-tools/index.js +10 -3
  89. package/build-module/components/block-tools/index.js.map +2 -2
  90. package/build-module/components/border-radius-control/utils.js +7 -3
  91. package/build-module/components/border-radius-control/utils.js.map +2 -2
  92. package/build-module/components/content-lock/modify-content-lock-menu-item.js +3 -3
  93. package/build-module/components/content-lock/modify-content-lock-menu-item.js.map +2 -2
  94. package/build-module/components/global-styles/border-panel.js +11 -7
  95. package/build-module/components/global-styles/border-panel.js.map +2 -2
  96. package/build-module/components/global-styles/color-panel.js +34 -27
  97. package/build-module/components/global-styles/color-panel.js.map +2 -2
  98. package/build-module/components/global-styles/typography-panel.js +21 -13
  99. package/build-module/components/global-styles/typography-panel.js.map +2 -2
  100. package/build-module/components/inserter/media-tab/media-tab.js +2 -1
  101. package/build-module/components/inserter/media-tab/media-tab.js.map +2 -2
  102. package/build-module/components/inspector-controls-tabs/index.js +2 -1
  103. package/build-module/components/inspector-controls-tabs/index.js.map +2 -2
  104. package/build-module/components/inspector-controls-tabs/styles-tab.js +55 -1
  105. package/build-module/components/inspector-controls-tabs/styles-tab.js.map +2 -2
  106. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js +1 -1
  107. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +2 -2
  108. package/build-module/components/keyboard-shortcuts/index.js +8 -0
  109. package/build-module/components/keyboard-shortcuts/index.js.map +2 -2
  110. package/build-module/components/rich-text/format-edit.js +9 -1
  111. package/build-module/components/rich-text/format-edit.js.map +2 -2
  112. package/build-module/components/rich-text/index.js +1 -0
  113. package/build-module/components/rich-text/index.js.map +2 -2
  114. package/build-module/hooks/border.js +10 -5
  115. package/build-module/hooks/border.js.map +3 -3
  116. package/build-module/hooks/color.js +31 -9
  117. package/build-module/hooks/color.js.map +3 -3
  118. package/build-module/hooks/content-lock-ui.js +4 -5
  119. package/build-module/hooks/content-lock-ui.js.map +2 -2
  120. package/build-module/hooks/dimensions.js +9 -4
  121. package/build-module/hooks/dimensions.js.map +2 -2
  122. package/build-module/hooks/fit-text.js +18 -66
  123. package/build-module/hooks/fit-text.js.map +2 -2
  124. package/build-module/hooks/font-size.js +5 -2
  125. package/build-module/hooks/font-size.js.map +2 -2
  126. package/build-module/hooks/layout.js +4 -1
  127. package/build-module/hooks/layout.js.map +2 -2
  128. package/build-module/hooks/spacing-visualizer.js +5 -0
  129. package/build-module/hooks/spacing-visualizer.js.map +2 -2
  130. package/build-module/hooks/typography.js +23 -14
  131. package/build-module/hooks/typography.js.map +3 -3
  132. package/build-module/store/private-selectors.js +20 -1
  133. package/build-module/store/private-selectors.js.map +2 -2
  134. package/build-module/store/reducer.js +4 -0
  135. package/build-module/store/reducer.js.map +2 -2
  136. package/build-module/store/selectors.js +12 -3
  137. package/build-module/store/selectors.js.map +2 -2
  138. package/build-module/utils/fit-text-frontend.js +1 -0
  139. package/build-module/utils/fit-text-frontend.js.map +2 -2
  140. package/build-module/utils/fit-text-utils.js +1 -1
  141. package/build-module/utils/fit-text-utils.js.map +1 -1
  142. package/build-style/style-rtl.css +31 -71
  143. package/build-style/style.css +31 -71
  144. package/package.json +37 -37
  145. package/src/components/block-card/index.js +95 -38
  146. package/src/components/block-card/style.scss +17 -1
  147. package/src/components/block-inspector/edit-contents.js +64 -0
  148. package/src/components/block-inspector/index.js +35 -13
  149. package/src/components/block-inspector/style.scss +6 -3
  150. package/src/components/block-list/index.js +11 -9
  151. package/src/components/block-switcher/block-transformations-menu.native.js +0 -1
  152. package/src/components/block-switcher/index.js +51 -180
  153. package/src/components/block-switcher/style.scss +0 -70
  154. package/src/components/block-switcher/test/index.js +17 -18
  155. package/src/components/block-toolbar/block-toolbar-icon.js +173 -0
  156. package/src/components/block-toolbar/index.js +50 -52
  157. package/src/components/block-toolbar/pattern-overrides-dropdown.js +99 -0
  158. package/src/components/block-toolbar/style.scss +21 -21
  159. package/src/components/block-toolbar/test/__snapshots__/block-toolbar-menu.native.js.snap +6 -4
  160. package/src/components/block-toolbar/test/block-toolbar-icon.js +182 -0
  161. package/src/components/block-toolbar/test/block-toolbar-menu.native.js +2 -2
  162. package/src/components/block-tools/index.js +11 -1
  163. package/src/components/border-radius-control/test/utils.js +90 -0
  164. package/src/components/border-radius-control/utils.js +7 -3
  165. package/src/components/content-lock/modify-content-lock-menu-item.js +9 -3
  166. package/src/components/global-styles/border-panel.js +11 -7
  167. package/src/components/global-styles/color-panel.js +32 -26
  168. package/src/components/global-styles/typography-panel.js +14 -1
  169. package/src/components/inserter/media-tab/media-tab.js +7 -1
  170. package/src/components/inspector-controls-tabs/index.js +1 -0
  171. package/src/components/inspector-controls-tabs/styles-tab.js +58 -0
  172. package/src/components/inspector-controls-tabs/use-inspector-controls-tabs.js +5 -1
  173. package/src/components/keyboard-shortcuts/index.js +9 -0
  174. package/src/components/rich-text/format-edit.js +9 -1
  175. package/src/components/rich-text/index.js +1 -0
  176. package/src/hooks/border.js +12 -6
  177. package/src/hooks/color.js +40 -13
  178. package/src/hooks/content-lock-ui.js +9 -6
  179. package/src/hooks/dimensions.js +25 -17
  180. package/src/hooks/fit-text.js +23 -84
  181. package/src/hooks/font-size.js +7 -2
  182. package/src/hooks/layout.js +11 -7
  183. package/src/hooks/spacing-visualizer.js +9 -1
  184. package/src/hooks/typography.js +24 -18
  185. package/src/store/private-selectors.js +26 -1
  186. package/src/store/reducer.js +6 -0
  187. package/src/store/selectors.js +24 -3
  188. package/src/utils/fit-text-frontend.js +1 -0
  189. package/src/utils/fit-text-utils.js +1 -1
  190. package/tsconfig.tsbuildinfo +1 -1
  191. package/build/components/block-inspector/edit-contents-button.js +0 -61
  192. package/build/components/block-inspector/edit-contents-button.js.map +0 -7
  193. package/build-module/components/block-inspector/edit-contents-button.js +0 -40
  194. package/build-module/components/block-inspector/edit-contents-button.js.map +0 -7
  195. package/src/components/block-inspector/edit-contents-button.js +0 -46
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/inspector-controls-tabs/index.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tIcon,\n\tTooltip,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { useEffect, useState } from '@wordpress/element';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { TAB_SETTINGS, TAB_STYLES, TAB_LIST_VIEW, TAB_CONTENT } from './utils';\nimport SettingsTab from './settings-tab';\nimport StylesTab from './styles-tab';\nimport ContentTab from './content-tab';\nimport InspectorControls from '../inspector-controls';\nimport useIsListViewTabDisabled from './use-is-list-view-tab-disabled';\nimport { unlock } from '../../lock-unlock';\n\nconst { Tabs } = unlock( componentsPrivateApis );\n\nexport default function InspectorControlsTabs( {\n\tblockName,\n\tclientId,\n\thasBlockStyles,\n\ttabs,\n\tisSectionBlock,\n\tcontentClientIds,\n} ) {\n\tconst showIconLabels = useSelect( ( select ) => {\n\t\treturn select( preferencesStore ).get( 'core', 'showIconLabels' );\n\t}, [] );\n\n\t// The tabs panel will mount before fills are rendered to the list view\n\t// slot. This means the list view tab isn't initially included in the\n\t// available tabs so the panel defaults selection to the settings tab\n\t// which at the time is the first tab. This check allows blocks known to\n\t// include the list view tab to set it as the tab selected by default.\n\tconst initialTabName = ! useIsListViewTabDisabled( blockName )\n\t\t? TAB_LIST_VIEW.name\n\t\t: undefined;\n\n\tconst [ selectedTabId, setSelectedTabId ] = useState(\n\t\tinitialTabName ?? tabs[ 0 ]?.name\n\t);\n\n\t// When the active tab is not amongst the available `tabs`, it indicates\n\t// the list of tabs was changed dynamically with the active one being\n\t// removed. Set the active tab back to the first tab.\n\tuseEffect( () => {\n\t\t// Skip this behavior if `initialTabName` is supplied. In the navigation\n\t\t// block, the list view tab isn't present in `tabs` initially. The early\n\t\t// return here prevents the dynamic behavior that follows from overriding\n\t\t// `initialTabName`.\n\t\tif ( initialTabName ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( tabs?.length && selectedTabId ) {\n\t\t\tconst activeTab = tabs.find(\n\t\t\t\t( tab ) => tab.name === selectedTabId\n\t\t\t);\n\t\t\tif ( ! activeTab ) {\n\t\t\t\tsetSelectedTabId( tabs[ 0 ].name );\n\t\t\t}\n\t\t}\n\t}, [ tabs, selectedTabId, initialTabName ] );\n\n\treturn (\n\t\t<div className=\"block-editor-block-inspector__tabs\">\n\t\t\t<Tabs\n\t\t\t\tdefaultTabId={ initialTabName }\n\t\t\t\tselectedTabId={ selectedTabId }\n\t\t\t\tonSelect={ setSelectedTabId }\n\t\t\t\tkey={ clientId }\n\t\t\t>\n\t\t\t\t<Tabs.TabList>\n\t\t\t\t\t{ tabs.map( ( tab ) =>\n\t\t\t\t\t\tshowIconLabels ? (\n\t\t\t\t\t\t\t<Tabs.Tab key={ tab.name } tabId={ tab.name }>\n\t\t\t\t\t\t\t\t{ tab.title }\n\t\t\t\t\t\t\t</Tabs.Tab>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<Tooltip text={ tab.title } key={ tab.name }>\n\t\t\t\t\t\t\t\t<Tabs.Tab\n\t\t\t\t\t\t\t\t\ttabId={ tab.name }\n\t\t\t\t\t\t\t\t\taria-label={ tab.title }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<Icon icon={ tab.icon } />\n\t\t\t\t\t\t\t\t</Tabs.Tab>\n\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t)\n\t\t\t\t\t) }\n\t\t\t\t</Tabs.TabList>\n\t\t\t\t<Tabs.TabPanel tabId={ TAB_SETTINGS.name } focusable={ false }>\n\t\t\t\t\t<SettingsTab showAdvancedControls={ !! blockName } />\n\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t<Tabs.TabPanel tabId={ TAB_STYLES.name } focusable={ false }>\n\t\t\t\t\t<StylesTab\n\t\t\t\t\t\tblockName={ blockName }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\thasBlockStyles={ hasBlockStyles }\n\t\t\t\t\t\tisSectionBlock={ isSectionBlock }\n\t\t\t\t\t/>\n\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t<Tabs.TabPanel tabId={ TAB_CONTENT.name } focusable={ false }>\n\t\t\t\t\t<ContentTab contentClientIds={ contentClientIds } />\n\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t<Tabs.TabPanel tabId={ TAB_LIST_VIEW.name } focusable={ false }>\n\t\t\t\t\t<InspectorControls.Slot group=\"list\" />\n\t\t\t\t</Tabs.TabPanel>\n\t\t\t</Tabs>\n\t\t</div>\n\t);\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,wBAIO;AACP,qBAAoC;AACpC,yBAA0C;AAC1C,kBAA0B;AAK1B,mBAAqE;AACrE,0BAAwB;AACxB,wBAAsB;AACtB,yBAAuB;AACvB,gCAA8B;AAC9B,2CAAqC;AACrC,yBAAuB;AAqDpB;AAnDH,IAAM,EAAE,KAAK,QAAI,2BAAQ,kBAAAA,WAAsB;AAEhC,SAAR,sBAAwC;AAAA,EAC9C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAAI;AACH,QAAM,qBAAiB,uBAAW,CAAE,WAAY;AAC/C,WAAO,OAAQ,mBAAAC,KAAiB,EAAE,IAAK,QAAQ,gBAAiB;AAAA,EACjE,GAAG,CAAC,CAAE;AAON,QAAM,iBAAiB,KAAE,qCAAAC,SAA0B,SAAU,IAC1D,2BAAc,OACd;AAEH,QAAM,CAAE,eAAe,gBAAiB,QAAI;AAAA,IAC3C,kBAAkB,KAAM,CAAE,GAAG;AAAA,EAC9B;AAKA,gCAAW,MAAM;AAKhB,QAAK,gBAAiB;AACrB;AAAA,IACD;AAEA,QAAK,MAAM,UAAU,eAAgB;AACpC,YAAM,YAAY,KAAK;AAAA,QACtB,CAAE,QAAS,IAAI,SAAS;AAAA,MACzB;AACA,UAAK,CAAE,WAAY;AAClB,yBAAkB,KAAM,CAAE,EAAE,IAAK;AAAA,MAClC;AAAA,IACD;AAAA,EACD,GAAG,CAAE,MAAM,eAAe,cAAe,CAAE;AAE3C,SACC,4CAAC,SAAI,WAAU,sCACd;AAAA,IAAC;AAAA;AAAA,MACA,cAAe;AAAA,MACf;AAAA,MACA,UAAW;AAAA,MAGX;AAAA,oDAAC,KAAK,SAAL,EACE,eAAK;AAAA,UAAK,CAAE,QACb,iBACC,4CAAC,KAAK,KAAL,EAA0B,OAAQ,IAAI,MACpC,cAAI,SADS,IAAI,IAEpB,IAEA,4CAAC,6BAAQ,MAAO,IAAI,OACnB;AAAA,YAAC,KAAK;AAAA,YAAL;AAAA,cACA,OAAQ,IAAI;AAAA,cACZ,cAAa,IAAI;AAAA,cAEjB,sDAAC,0BAAK,MAAO,IAAI,MAAO;AAAA;AAAA,UACzB,KANiC,IAAI,IAOtC;AAAA,QAEF,GACD;AAAA,QACA,4CAAC,KAAK,UAAL,EAAc,OAAQ,0BAAa,MAAO,WAAY,OACtD,sDAAC,oBAAAC,SAAA,EAAY,sBAAuB,CAAC,CAAE,WAAY,GACpD;AAAA,QACA,4CAAC,KAAK,UAAL,EAAc,OAAQ,wBAAW,MAAO,WAAY,OACpD;AAAA,UAAC,kBAAAC;AAAA,UAAA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA;AAAA,QACD,GACD;AAAA,QACA,4CAAC,KAAK,UAAL,EAAc,OAAQ,yBAAY,MAAO,WAAY,OACrD,sDAAC,mBAAAC,SAAA,EAAW,kBAAsC,GACnD;AAAA,QACA,4CAAC,KAAK,UAAL,EAAc,OAAQ,2BAAc,MAAO,WAAY,OACvD,sDAAC,0BAAAC,QAAkB,MAAlB,EAAuB,OAAM,QAAO,GACtC;AAAA;AAAA;AAAA,IApCM;AAAA,EAqCP,GACD;AAEF;",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tIcon,\n\tTooltip,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { useEffect, useState } from '@wordpress/element';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { TAB_SETTINGS, TAB_STYLES, TAB_LIST_VIEW, TAB_CONTENT } from './utils';\nimport SettingsTab from './settings-tab';\nimport StylesTab from './styles-tab';\nimport ContentTab from './content-tab';\nimport InspectorControls from '../inspector-controls';\nimport useIsListViewTabDisabled from './use-is-list-view-tab-disabled';\nimport { unlock } from '../../lock-unlock';\n\nconst { Tabs } = unlock( componentsPrivateApis );\n\nexport default function InspectorControlsTabs( {\n\tblockName,\n\tclientId,\n\thasBlockStyles,\n\ttabs,\n\tisSectionBlock,\n\tcontentClientIds,\n} ) {\n\tconst showIconLabels = useSelect( ( select ) => {\n\t\treturn select( preferencesStore ).get( 'core', 'showIconLabels' );\n\t}, [] );\n\n\t// The tabs panel will mount before fills are rendered to the list view\n\t// slot. This means the list view tab isn't initially included in the\n\t// available tabs so the panel defaults selection to the settings tab\n\t// which at the time is the first tab. This check allows blocks known to\n\t// include the list view tab to set it as the tab selected by default.\n\tconst initialTabName = ! useIsListViewTabDisabled( blockName )\n\t\t? TAB_LIST_VIEW.name\n\t\t: undefined;\n\n\tconst [ selectedTabId, setSelectedTabId ] = useState(\n\t\tinitialTabName ?? tabs[ 0 ]?.name\n\t);\n\n\t// When the active tab is not amongst the available `tabs`, it indicates\n\t// the list of tabs was changed dynamically with the active one being\n\t// removed. Set the active tab back to the first tab.\n\tuseEffect( () => {\n\t\t// Skip this behavior if `initialTabName` is supplied. In the navigation\n\t\t// block, the list view tab isn't present in `tabs` initially. The early\n\t\t// return here prevents the dynamic behavior that follows from overriding\n\t\t// `initialTabName`.\n\t\tif ( initialTabName ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( tabs?.length && selectedTabId ) {\n\t\t\tconst activeTab = tabs.find(\n\t\t\t\t( tab ) => tab.name === selectedTabId\n\t\t\t);\n\t\t\tif ( ! activeTab ) {\n\t\t\t\tsetSelectedTabId( tabs[ 0 ].name );\n\t\t\t}\n\t\t}\n\t}, [ tabs, selectedTabId, initialTabName ] );\n\n\treturn (\n\t\t<div className=\"block-editor-block-inspector__tabs\">\n\t\t\t<Tabs\n\t\t\t\tdefaultTabId={ initialTabName }\n\t\t\t\tselectedTabId={ selectedTabId }\n\t\t\t\tonSelect={ setSelectedTabId }\n\t\t\t\tkey={ clientId }\n\t\t\t>\n\t\t\t\t<Tabs.TabList>\n\t\t\t\t\t{ tabs.map( ( tab ) =>\n\t\t\t\t\t\tshowIconLabels ? (\n\t\t\t\t\t\t\t<Tabs.Tab key={ tab.name } tabId={ tab.name }>\n\t\t\t\t\t\t\t\t{ tab.title }\n\t\t\t\t\t\t\t</Tabs.Tab>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<Tooltip text={ tab.title } key={ tab.name }>\n\t\t\t\t\t\t\t\t<Tabs.Tab\n\t\t\t\t\t\t\t\t\ttabId={ tab.name }\n\t\t\t\t\t\t\t\t\taria-label={ tab.title }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<Icon icon={ tab.icon } />\n\t\t\t\t\t\t\t\t</Tabs.Tab>\n\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t)\n\t\t\t\t\t) }\n\t\t\t\t</Tabs.TabList>\n\t\t\t\t<Tabs.TabPanel tabId={ TAB_SETTINGS.name } focusable={ false }>\n\t\t\t\t\t<SettingsTab showAdvancedControls={ !! blockName } />\n\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t<Tabs.TabPanel tabId={ TAB_STYLES.name } focusable={ false }>\n\t\t\t\t\t<StylesTab\n\t\t\t\t\t\tblockName={ blockName }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\thasBlockStyles={ hasBlockStyles }\n\t\t\t\t\t\tisSectionBlock={ isSectionBlock }\n\t\t\t\t\t\tcontentClientIds={ contentClientIds }\n\t\t\t\t\t/>\n\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t<Tabs.TabPanel tabId={ TAB_CONTENT.name } focusable={ false }>\n\t\t\t\t\t<ContentTab contentClientIds={ contentClientIds } />\n\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t<Tabs.TabPanel tabId={ TAB_LIST_VIEW.name } focusable={ false }>\n\t\t\t\t\t<InspectorControls.Slot group=\"list\" />\n\t\t\t\t</Tabs.TabPanel>\n\t\t\t</Tabs>\n\t\t</div>\n\t);\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,wBAIO;AACP,qBAAoC;AACpC,yBAA0C;AAC1C,kBAA0B;AAK1B,mBAAqE;AACrE,0BAAwB;AACxB,wBAAsB;AACtB,yBAAuB;AACvB,gCAA8B;AAC9B,2CAAqC;AACrC,yBAAuB;AAqDpB;AAnDH,IAAM,EAAE,KAAK,QAAI,2BAAQ,kBAAAA,WAAsB;AAEhC,SAAR,sBAAwC;AAAA,EAC9C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAAI;AACH,QAAM,qBAAiB,uBAAW,CAAE,WAAY;AAC/C,WAAO,OAAQ,mBAAAC,KAAiB,EAAE,IAAK,QAAQ,gBAAiB;AAAA,EACjE,GAAG,CAAC,CAAE;AAON,QAAM,iBAAiB,KAAE,qCAAAC,SAA0B,SAAU,IAC1D,2BAAc,OACd;AAEH,QAAM,CAAE,eAAe,gBAAiB,QAAI;AAAA,IAC3C,kBAAkB,KAAM,CAAE,GAAG;AAAA,EAC9B;AAKA,gCAAW,MAAM;AAKhB,QAAK,gBAAiB;AACrB;AAAA,IACD;AAEA,QAAK,MAAM,UAAU,eAAgB;AACpC,YAAM,YAAY,KAAK;AAAA,QACtB,CAAE,QAAS,IAAI,SAAS;AAAA,MACzB;AACA,UAAK,CAAE,WAAY;AAClB,yBAAkB,KAAM,CAAE,EAAE,IAAK;AAAA,MAClC;AAAA,IACD;AAAA,EACD,GAAG,CAAE,MAAM,eAAe,cAAe,CAAE;AAE3C,SACC,4CAAC,SAAI,WAAU,sCACd;AAAA,IAAC;AAAA;AAAA,MACA,cAAe;AAAA,MACf;AAAA,MACA,UAAW;AAAA,MAGX;AAAA,oDAAC,KAAK,SAAL,EACE,eAAK;AAAA,UAAK,CAAE,QACb,iBACC,4CAAC,KAAK,KAAL,EAA0B,OAAQ,IAAI,MACpC,cAAI,SADS,IAAI,IAEpB,IAEA,4CAAC,6BAAQ,MAAO,IAAI,OACnB;AAAA,YAAC,KAAK;AAAA,YAAL;AAAA,cACA,OAAQ,IAAI;AAAA,cACZ,cAAa,IAAI;AAAA,cAEjB,sDAAC,0BAAK,MAAO,IAAI,MAAO;AAAA;AAAA,UACzB,KANiC,IAAI,IAOtC;AAAA,QAEF,GACD;AAAA,QACA,4CAAC,KAAK,UAAL,EAAc,OAAQ,0BAAa,MAAO,WAAY,OACtD,sDAAC,oBAAAC,SAAA,EAAY,sBAAuB,CAAC,CAAE,WAAY,GACpD;AAAA,QACA,4CAAC,KAAK,UAAL,EAAc,OAAQ,wBAAW,MAAO,WAAY,OACpD;AAAA,UAAC,kBAAAC;AAAA,UAAA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA;AAAA,QACD,GACD;AAAA,QACA,4CAAC,KAAK,UAAL,EAAc,OAAQ,yBAAY,MAAO,WAAY,OACrD,sDAAC,mBAAAC,SAAA,EAAW,kBAAsC,GACnD;AAAA,QACA,4CAAC,KAAK,UAAL,EAAc,OAAQ,2BAAc,MAAO,WAAY,OACvD,sDAAC,0BAAAC,QAAkB,MAAlB,EAAuB,OAAM,QAAO,GACtC;AAAA;AAAA;AAAA,IArCM;AAAA,EAsCP,GACD;AAEF;",
6
6
  "names": ["componentsPrivateApis", "preferencesStore", "useIsListViewTabDisabled", "SettingsTab", "StylesTab", "ContentTab", "InspectorControls"]
7
7
  }
@@ -35,19 +35,73 @@ __export(styles_tab_exports, {
35
35
  module.exports = __toCommonJS(styles_tab_exports);
36
36
  var import_components = require("@wordpress/components");
37
37
  var import_i18n = require("@wordpress/i18n");
38
+ var import_data = require("@wordpress/data");
38
39
  var import_block_styles = __toESM(require("../block-styles"));
39
40
  var import_inspector_controls = __toESM(require("../inspector-controls"));
40
41
  var import_border = require("../../hooks/border");
42
+ var import_utils = require("../../hooks/utils");
43
+ var import_store = require("../../store");
44
+ var import_color = require("../../hooks/color");
45
+ var import_color_panel = require("../global-styles/color-panel");
41
46
  var import_jsx_runtime = require("react/jsx-runtime");
47
+ function SectionBlockColorControls({
48
+ blockName,
49
+ clientId,
50
+ contentClientIds
51
+ }) {
52
+ const settings = (0, import_utils.useBlockSettings)(blockName);
53
+ const { updateBlockAttributes } = (0, import_data.useDispatch)(import_store.store);
54
+ const { hasButton, hasHeading } = (0, import_data.useSelect)(
55
+ (select) => {
56
+ const blockNames = select(import_store.store).getBlockNamesByClientId(
57
+ contentClientIds
58
+ );
59
+ return {
60
+ hasButton: blockNames.includes("core/button"),
61
+ hasHeading: blockNames.includes("core/heading")
62
+ };
63
+ },
64
+ [contentClientIds]
65
+ );
66
+ const setAttributes = (newAttributes) => {
67
+ updateBlockAttributes(clientId, newAttributes);
68
+ };
69
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
70
+ import_color.ColorEdit,
71
+ {
72
+ clientId,
73
+ name: blockName,
74
+ settings,
75
+ setAttributes,
76
+ asWrapper: import_color_panel.ColorToolsPanel,
77
+ label: (0, import_i18n.__)("Color"),
78
+ defaultControls: {
79
+ text: true,
80
+ background: true,
81
+ button: hasButton,
82
+ heading: hasHeading
83
+ }
84
+ }
85
+ );
86
+ }
42
87
  var StylesTab = ({
43
88
  blockName,
44
89
  clientId,
45
90
  hasBlockStyles,
46
- isSectionBlock
91
+ isSectionBlock,
92
+ contentClientIds
47
93
  }) => {
48
94
  const borderPanelLabel = (0, import_border.useBorderPanelLabel)({ blockName });
49
95
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
50
96
  hasBlockStyles && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.PanelBody, { title: (0, import_i18n.__)("Styles"), children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_block_styles.default, { clientId }) }) }),
97
+ isSectionBlock && window?.__experimentalContentOnlyPatternInsertion && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
98
+ SectionBlockColorControls,
99
+ {
100
+ blockName,
101
+ clientId,
102
+ contentClientIds
103
+ }
104
+ ),
51
105
  !isSectionBlock && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
52
106
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
53
107
  import_inspector_controls.default.Slot,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/inspector-controls-tabs/styles-tab.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { PanelBody } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BlockStyles from '../block-styles';\nimport InspectorControls from '../inspector-controls';\nimport { useBorderPanelLabel } from '../../hooks/border';\n\nconst StylesTab = ( {\n\tblockName,\n\tclientId,\n\thasBlockStyles,\n\tisSectionBlock,\n} ) => {\n\tconst borderPanelLabel = useBorderPanelLabel( { blockName } );\n\n\treturn (\n\t\t<>\n\t\t\t{ hasBlockStyles && (\n\t\t\t\t<div>\n\t\t\t\t\t<PanelBody title={ __( 'Styles' ) }>\n\t\t\t\t\t\t<BlockStyles clientId={ clientId } />\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ ! isSectionBlock && (\n\t\t\t\t<>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"color\"\n\t\t\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"background\"\n\t\t\t\t\t\tlabel={ __( 'Background image' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot group=\"filter\" />\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"typography\"\n\t\t\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"dimensions\"\n\t\t\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"border\"\n\t\t\t\t\t\tlabel={ borderPanelLabel }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot group=\"styles\" />\n\t\t\t\t</>\n\t\t\t) }\n\t\t</>\n\t);\n};\n\nexport default StylesTab;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,wBAA0B;AAC1B,kBAAmB;AAKnB,0BAAwB;AACxB,gCAA8B;AAC9B,oBAAoC;AAe9B;AAbN,IAAM,YAAY,CAAE;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,MAAO;AACN,QAAM,uBAAmB,mCAAqB,EAAE,UAAU,CAAE;AAE5D,SACC,4EACG;AAAA,sBACD,4CAAC,SACA,sDAAC,+BAAU,WAAQ,gBAAI,QAAS,GAC/B,sDAAC,oBAAAA,SAAA,EAAY,UAAsB,GACpC,GACD;AAAA,IAEC,CAAE,kBACH,4EACC;AAAA;AAAA,QAAC,0BAAAC,QAAkB;AAAA,QAAlB;AAAA,UACA,OAAM;AAAA,UACN,WAAQ,gBAAI,OAAQ;AAAA,UACpB,WAAU;AAAA;AAAA,MACX;AAAA,MACA;AAAA,QAAC,0BAAAA,QAAkB;AAAA,QAAlB;AAAA,UACA,OAAM;AAAA,UACN,WAAQ,gBAAI,kBAAmB;AAAA;AAAA,MAChC;AAAA,MACA,4CAAC,0BAAAA,QAAkB,MAAlB,EAAuB,OAAM,UAAS;AAAA,MACvC;AAAA,QAAC,0BAAAA,QAAkB;AAAA,QAAlB;AAAA,UACA,OAAM;AAAA,UACN,WAAQ,gBAAI,YAAa;AAAA;AAAA,MAC1B;AAAA,MACA;AAAA,QAAC,0BAAAA,QAAkB;AAAA,QAAlB;AAAA,UACA,OAAM;AAAA,UACN,WAAQ,gBAAI,YAAa;AAAA;AAAA,MAC1B;AAAA,MACA;AAAA,QAAC,0BAAAA,QAAkB;AAAA,QAAlB;AAAA,UACA,OAAM;AAAA,UACN,OAAQ;AAAA;AAAA,MACT;AAAA,MACA,4CAAC,0BAAAA,QAAkB,MAAlB,EAAuB,OAAM,UAAS;AAAA,OACxC;AAAA,KAEF;AAEF;AAEA,IAAO,qBAAQ;",
6
- "names": ["BlockStyles", "InspectorControls"]
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { PanelBody } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch, useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport BlockStyles from '../block-styles';\nimport InspectorControls from '../inspector-controls';\nimport { useBorderPanelLabel } from '../../hooks/border';\nimport { useBlockSettings } from '../../hooks/utils';\nimport { store as blockEditorStore } from '../../store';\nimport { ColorEdit } from '../../hooks/color';\nimport { ColorToolsPanel } from '../global-styles/color-panel';\n\nfunction SectionBlockColorControls( {\n\tblockName,\n\tclientId,\n\tcontentClientIds,\n} ) {\n\tconst settings = useBlockSettings( blockName );\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\n\tconst { hasButton, hasHeading } = useSelect(\n\t\t( select ) => {\n\t\t\tconst blockNames =\n\t\t\t\tselect( blockEditorStore ).getBlockNamesByClientId(\n\t\t\t\t\tcontentClientIds\n\t\t\t\t);\n\t\t\treturn {\n\t\t\t\thasButton: blockNames.includes( 'core/button' ),\n\t\t\t\thasHeading: blockNames.includes( 'core/heading' ),\n\t\t\t};\n\t\t},\n\t\t[ contentClientIds ]\n\t);\n\n\tconst setAttributes = ( newAttributes ) => {\n\t\tupdateBlockAttributes( clientId, newAttributes );\n\t};\n\n\treturn (\n\t\t<ColorEdit\n\t\t\tclientId={ clientId }\n\t\t\tname={ blockName }\n\t\t\tsettings={ settings }\n\t\t\tsetAttributes={ setAttributes }\n\t\t\tasWrapper={ ColorToolsPanel }\n\t\t\tlabel={ __( 'Color' ) }\n\t\t\tdefaultControls={ {\n\t\t\t\ttext: true,\n\t\t\t\tbackground: true,\n\t\t\t\tbutton: hasButton,\n\t\t\t\theading: hasHeading,\n\t\t\t} }\n\t\t/>\n\t);\n}\n\nconst StylesTab = ( {\n\tblockName,\n\tclientId,\n\thasBlockStyles,\n\tisSectionBlock,\n\tcontentClientIds,\n} ) => {\n\tconst borderPanelLabel = useBorderPanelLabel( { blockName } );\n\n\treturn (\n\t\t<>\n\t\t\t{ hasBlockStyles && (\n\t\t\t\t<div>\n\t\t\t\t\t<PanelBody title={ __( 'Styles' ) }>\n\t\t\t\t\t\t<BlockStyles clientId={ clientId } />\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ isSectionBlock &&\n\t\t\t\twindow?.__experimentalContentOnlyPatternInsertion && (\n\t\t\t\t\t<SectionBlockColorControls\n\t\t\t\t\t\tblockName={ blockName }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\tcontentClientIds={ contentClientIds }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t{ ! isSectionBlock && (\n\t\t\t\t<>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"color\"\n\t\t\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"background\"\n\t\t\t\t\t\tlabel={ __( 'Background image' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot group=\"filter\" />\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"typography\"\n\t\t\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"dimensions\"\n\t\t\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"border\"\n\t\t\t\t\t\tlabel={ borderPanelLabel }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot group=\"styles\" />\n\t\t\t\t</>\n\t\t\t) }\n\t\t</>\n\t);\n};\n\nexport default StylesTab;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,wBAA0B;AAC1B,kBAAmB;AACnB,kBAAuC;AAKvC,0BAAwB;AACxB,gCAA8B;AAC9B,oBAAoC;AACpC,mBAAiC;AACjC,mBAA0C;AAC1C,mBAA0B;AAC1B,yBAAgC;AA6B9B;AA3BF,SAAS,0BAA2B;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AACD,GAAI;AACH,QAAM,eAAW,+BAAkB,SAAU;AAC7C,QAAM,EAAE,sBAAsB,QAAI,yBAAa,aAAAA,KAAiB;AAEhE,QAAM,EAAE,WAAW,WAAW,QAAI;AAAA,IACjC,CAAE,WAAY;AACb,YAAM,aACL,OAAQ,aAAAA,KAAiB,EAAE;AAAA,QAC1B;AAAA,MACD;AACD,aAAO;AAAA,QACN,WAAW,WAAW,SAAU,aAAc;AAAA,QAC9C,YAAY,WAAW,SAAU,cAAe;AAAA,MACjD;AAAA,IACD;AAAA,IACA,CAAE,gBAAiB;AAAA,EACpB;AAEA,QAAM,gBAAgB,CAAE,kBAAmB;AAC1C,0BAAuB,UAAU,aAAc;AAAA,EAChD;AAEA,SACC;AAAA,IAAC;AAAA;AAAA,MACA;AAAA,MACA,MAAO;AAAA,MACP;AAAA,MACA;AAAA,MACA,WAAY;AAAA,MACZ,WAAQ,gBAAI,OAAQ;AAAA,MACpB,iBAAkB;AAAA,QACjB,MAAM;AAAA,QACN,YAAY;AAAA,QACZ,QAAQ;AAAA,QACR,SAAS;AAAA,MACV;AAAA;AAAA,EACD;AAEF;AAEA,IAAM,YAAY,CAAE;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,MAAO;AACN,QAAM,uBAAmB,mCAAqB,EAAE,UAAU,CAAE;AAE5D,SACC,4EACG;AAAA,sBACD,4CAAC,SACA,sDAAC,+BAAU,WAAQ,gBAAI,QAAS,GAC/B,sDAAC,oBAAAC,SAAA,EAAY,UAAsB,GACpC,GACD;AAAA,IAEC,kBACD,QAAQ,6CACP;AAAA,MAAC;AAAA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACD;AAAA,IAEA,CAAE,kBACH,4EACC;AAAA;AAAA,QAAC,0BAAAC,QAAkB;AAAA,QAAlB;AAAA,UACA,OAAM;AAAA,UACN,WAAQ,gBAAI,OAAQ;AAAA,UACpB,WAAU;AAAA;AAAA,MACX;AAAA,MACA;AAAA,QAAC,0BAAAA,QAAkB;AAAA,QAAlB;AAAA,UACA,OAAM;AAAA,UACN,WAAQ,gBAAI,kBAAmB;AAAA;AAAA,MAChC;AAAA,MACA,4CAAC,0BAAAA,QAAkB,MAAlB,EAAuB,OAAM,UAAS;AAAA,MACvC;AAAA,QAAC,0BAAAA,QAAkB;AAAA,QAAlB;AAAA,UACA,OAAM;AAAA,UACN,WAAQ,gBAAI,YAAa;AAAA;AAAA,MAC1B;AAAA,MACA;AAAA,QAAC,0BAAAA,QAAkB;AAAA,QAAlB;AAAA,UACA,OAAM;AAAA,UACN,WAAQ,gBAAI,YAAa;AAAA;AAAA,MAC1B;AAAA,MACA;AAAA,QAAC,0BAAAA,QAAkB;AAAA,QAAlB;AAAA,UACA,OAAM;AAAA,UACN,OAAQ;AAAA;AAAA,MACT;AAAA,MACA,4CAAC,0BAAAA,QAAkB,MAAlB,EAAuB,OAAM,UAAS;AAAA,OACxC;AAAA,KAEF;AAEF;AAEA,IAAO,qBAAQ;",
6
+ "names": ["blockEditorStore", "BlockStyles", "InspectorControls"]
7
7
  }
@@ -95,7 +95,7 @@ function useInspectorControlsTabs(blockName, contentClientIds, isSectionBlock, h
95
95
  if (settingsFills.length && !isSectionBlock) {
96
96
  tabs.push(import_utils.TAB_SETTINGS);
97
97
  }
98
- if (isSectionBlock ? hasBlockStyles : hasStyleFills) {
98
+ if (hasBlockStyles || hasStyleFills || window?.__experimentalContentOnlyPatternInsertion) {
99
99
  tabs.push(import_utils.TAB_STYLES);
100
100
  }
101
101
  const tabSettings = (0, import_data.useSelect)((select) => {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/inspector-controls-tabs/use-inspector-controls-tabs.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __experimentalUseSlotFills as useSlotFills } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport InspectorControlsGroups from '../inspector-controls/groups';\nimport useIsListViewTabDisabled from './use-is-list-view-tab-disabled';\nimport { InspectorAdvancedControls } from '../inspector-controls';\nimport { TAB_LIST_VIEW, TAB_SETTINGS, TAB_STYLES, TAB_CONTENT } from './utils';\nimport { store as blockEditorStore } from '../../store';\n\nconst EMPTY_ARRAY = [];\n\nfunction getShowTabs( blockName, tabSettings = {} ) {\n\t// Block specific setting takes precedence over generic default.\n\tif ( tabSettings[ blockName ] !== undefined ) {\n\t\treturn tabSettings[ blockName ];\n\t}\n\n\t// Use generic default if set over the Gutenberg experiment option.\n\tif ( tabSettings.default !== undefined ) {\n\t\treturn tabSettings.default;\n\t}\n\n\treturn true;\n}\n\nexport default function useInspectorControlsTabs(\n\tblockName,\n\tcontentClientIds,\n\tisSectionBlock,\n\thasBlockStyles\n) {\n\tconst tabs = [];\n\tconst {\n\t\tbindings: bindingsGroup,\n\t\tborder: borderGroup,\n\t\tcolor: colorGroup,\n\t\tdefault: defaultGroup,\n\t\tdimensions: dimensionsGroup,\n\t\tlist: listGroup,\n\t\tposition: positionGroup,\n\t\tstyles: stylesGroup,\n\t\ttypography: typographyGroup,\n\t\teffects: effectsGroup,\n\t} = InspectorControlsGroups;\n\n\t// List View Tab: If there are any fills for the list group add that tab.\n\tconst listViewDisabled = useIsListViewTabDisabled( blockName );\n\tconst listFills = useSlotFills( listGroup.name );\n\tconst hasListFills = ! listViewDisabled && !! listFills && listFills.length;\n\n\t// Styles Tab: Add this tab if there are any fills for block supports\n\t// e.g. border, color, spacing, typography, etc.\n\tconst styleFills = [\n\t\t...( useSlotFills( borderGroup.name ) || [] ),\n\t\t...( useSlotFills( colorGroup.name ) || [] ),\n\t\t...( useSlotFills( dimensionsGroup.name ) || [] ),\n\t\t...( useSlotFills( stylesGroup.name ) || [] ),\n\t\t...( useSlotFills( typographyGroup.name ) || [] ),\n\t\t...( useSlotFills( effectsGroup.name ) || [] ),\n\t];\n\tconst hasStyleFills = styleFills.length;\n\n\t// Settings Tab: If we don't have multiple tabs to display\n\t// (i.e. both list view and styles), check only the default and position\n\t// InspectorControls slots. If we have multiple tabs, we'll need to check\n\t// the advanced controls slot as well to ensure they are rendered.\n\tconst advancedFills = [\n\t\t...( useSlotFills( InspectorAdvancedControls.slotName ) || [] ),\n\t\t...( useSlotFills( bindingsGroup.name ) || [] ),\n\t];\n\n\tconst settingsFills = [\n\t\t...( useSlotFills( defaultGroup.name ) || [] ),\n\t\t...( useSlotFills( positionGroup.name ) || [] ),\n\t\t...( hasListFills && hasStyleFills > 1 ? advancedFills : [] ),\n\t];\n\n\tconst hasContentTab = !! (\n\t\tcontentClientIds && contentClientIds.length > 0\n\t);\n\n\t// Add the tabs in the order that they will default to if available.\n\t// List View > Content > Settings > Styles.\n\tif ( hasListFills && ! isSectionBlock ) {\n\t\ttabs.push( TAB_LIST_VIEW );\n\t}\n\n\tif ( hasContentTab ) {\n\t\ttabs.push( TAB_CONTENT );\n\t}\n\n\tif ( settingsFills.length && ! isSectionBlock ) {\n\t\ttabs.push( TAB_SETTINGS );\n\t}\n\n\tif ( isSectionBlock ? hasBlockStyles : hasStyleFills ) {\n\t\ttabs.push( TAB_STYLES );\n\t}\n\n\tconst tabSettings = useSelect( ( select ) => {\n\t\treturn select( blockEditorStore ).getSettings().blockInspectorTabs;\n\t}, [] );\n\n\tconst showTabs = getShowTabs( blockName, tabSettings );\n\treturn showTabs ? tabs : EMPTY_ARRAY;\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,wBAA2D;AAC3D,kBAA0B;AAK1B,oBAAoC;AACpC,2CAAqC;AACrC,gCAA0C;AAC1C,mBAAqE;AACrE,mBAA0C;AAE1C,IAAM,cAAc,CAAC;AAErB,SAAS,YAAa,WAAW,cAAc,CAAC,GAAI;AAEnD,MAAK,YAAa,SAAU,MAAM,QAAY;AAC7C,WAAO,YAAa,SAAU;AAAA,EAC/B;AAGA,MAAK,YAAY,YAAY,QAAY;AACxC,WAAO,YAAY;AAAA,EACpB;AAEA,SAAO;AACR;AAEe,SAAR,yBACN,WACA,kBACA,gBACA,gBACC;AACD,QAAM,OAAO,CAAC;AACd,QAAM;AAAA,IACL,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,SAAS;AAAA,EACV,IAAI,cAAAA;AAGJ,QAAM,uBAAmB,qCAAAC,SAA0B,SAAU;AAC7D,QAAM,gBAAY,kBAAAC,4BAAc,UAAU,IAAK;AAC/C,QAAM,eAAe,CAAE,oBAAoB,CAAC,CAAE,aAAa,UAAU;AAIrE,QAAM,aAAa;AAAA,IAClB,OAAK,kBAAAA,4BAAc,YAAY,IAAK,KAAK,CAAC;AAAA,IAC1C,OAAK,kBAAAA,4BAAc,WAAW,IAAK,KAAK,CAAC;AAAA,IACzC,OAAK,kBAAAA,4BAAc,gBAAgB,IAAK,KAAK,CAAC;AAAA,IAC9C,OAAK,kBAAAA,4BAAc,YAAY,IAAK,KAAK,CAAC;AAAA,IAC1C,OAAK,kBAAAA,4BAAc,gBAAgB,IAAK,KAAK,CAAC;AAAA,IAC9C,OAAK,kBAAAA,4BAAc,aAAa,IAAK,KAAK,CAAC;AAAA,EAC5C;AACA,QAAM,gBAAgB,WAAW;AAMjC,QAAM,gBAAgB;AAAA,IACrB,OAAK,kBAAAA,4BAAc,oDAA0B,QAAS,KAAK,CAAC;AAAA,IAC5D,OAAK,kBAAAA,4BAAc,cAAc,IAAK,KAAK,CAAC;AAAA,EAC7C;AAEA,QAAM,gBAAgB;AAAA,IACrB,OAAK,kBAAAA,4BAAc,aAAa,IAAK,KAAK,CAAC;AAAA,IAC3C,OAAK,kBAAAA,4BAAc,cAAc,IAAK,KAAK,CAAC;AAAA,IAC5C,GAAK,gBAAgB,gBAAgB,IAAI,gBAAgB,CAAC;AAAA,EAC3D;AAEA,QAAM,gBAAgB,CAAC,EACtB,oBAAoB,iBAAiB,SAAS;AAK/C,MAAK,gBAAgB,CAAE,gBAAiB;AACvC,SAAK,KAAM,0BAAc;AAAA,EAC1B;AAEA,MAAK,eAAgB;AACpB,SAAK,KAAM,wBAAY;AAAA,EACxB;AAEA,MAAK,cAAc,UAAU,CAAE,gBAAiB;AAC/C,SAAK,KAAM,yBAAa;AAAA,EACzB;AAEA,MAAK,iBAAiB,iBAAiB,eAAgB;AACtD,SAAK,KAAM,uBAAW;AAAA,EACvB;AAEA,QAAM,kBAAc,uBAAW,CAAE,WAAY;AAC5C,WAAO,OAAQ,aAAAC,KAAiB,EAAE,YAAY,EAAE;AAAA,EACjD,GAAG,CAAC,CAAE;AAEN,QAAM,WAAW,YAAa,WAAW,WAAY;AACrD,SAAO,WAAW,OAAO;AAC1B;",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __experimentalUseSlotFills as useSlotFills } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport InspectorControlsGroups from '../inspector-controls/groups';\nimport useIsListViewTabDisabled from './use-is-list-view-tab-disabled';\nimport { InspectorAdvancedControls } from '../inspector-controls';\nimport { TAB_LIST_VIEW, TAB_SETTINGS, TAB_STYLES, TAB_CONTENT } from './utils';\nimport { store as blockEditorStore } from '../../store';\n\nconst EMPTY_ARRAY = [];\n\nfunction getShowTabs( blockName, tabSettings = {} ) {\n\t// Block specific setting takes precedence over generic default.\n\tif ( tabSettings[ blockName ] !== undefined ) {\n\t\treturn tabSettings[ blockName ];\n\t}\n\n\t// Use generic default if set over the Gutenberg experiment option.\n\tif ( tabSettings.default !== undefined ) {\n\t\treturn tabSettings.default;\n\t}\n\n\treturn true;\n}\n\nexport default function useInspectorControlsTabs(\n\tblockName,\n\tcontentClientIds,\n\tisSectionBlock,\n\thasBlockStyles\n) {\n\tconst tabs = [];\n\tconst {\n\t\tbindings: bindingsGroup,\n\t\tborder: borderGroup,\n\t\tcolor: colorGroup,\n\t\tdefault: defaultGroup,\n\t\tdimensions: dimensionsGroup,\n\t\tlist: listGroup,\n\t\tposition: positionGroup,\n\t\tstyles: stylesGroup,\n\t\ttypography: typographyGroup,\n\t\teffects: effectsGroup,\n\t} = InspectorControlsGroups;\n\n\t// List View Tab: If there are any fills for the list group add that tab.\n\tconst listViewDisabled = useIsListViewTabDisabled( blockName );\n\tconst listFills = useSlotFills( listGroup.name );\n\tconst hasListFills = ! listViewDisabled && !! listFills && listFills.length;\n\n\t// Styles Tab: Add this tab if there are any fills for block supports\n\t// e.g. border, color, spacing, typography, etc.\n\tconst styleFills = [\n\t\t...( useSlotFills( borderGroup.name ) || [] ),\n\t\t...( useSlotFills( colorGroup.name ) || [] ),\n\t\t...( useSlotFills( dimensionsGroup.name ) || [] ),\n\t\t...( useSlotFills( stylesGroup.name ) || [] ),\n\t\t...( useSlotFills( typographyGroup.name ) || [] ),\n\t\t...( useSlotFills( effectsGroup.name ) || [] ),\n\t];\n\tconst hasStyleFills = styleFills.length;\n\n\t// Settings Tab: If we don't have multiple tabs to display\n\t// (i.e. both list view and styles), check only the default and position\n\t// InspectorControls slots. If we have multiple tabs, we'll need to check\n\t// the advanced controls slot as well to ensure they are rendered.\n\tconst advancedFills = [\n\t\t...( useSlotFills( InspectorAdvancedControls.slotName ) || [] ),\n\t\t...( useSlotFills( bindingsGroup.name ) || [] ),\n\t];\n\n\tconst settingsFills = [\n\t\t...( useSlotFills( defaultGroup.name ) || [] ),\n\t\t...( useSlotFills( positionGroup.name ) || [] ),\n\t\t...( hasListFills && hasStyleFills > 1 ? advancedFills : [] ),\n\t];\n\n\tconst hasContentTab = !! (\n\t\tcontentClientIds && contentClientIds.length > 0\n\t);\n\n\t// Add the tabs in the order that they will default to if available.\n\t// List View > Content > Settings > Styles.\n\tif ( hasListFills && ! isSectionBlock ) {\n\t\ttabs.push( TAB_LIST_VIEW );\n\t}\n\n\tif ( hasContentTab ) {\n\t\ttabs.push( TAB_CONTENT );\n\t}\n\n\tif ( settingsFills.length && ! isSectionBlock ) {\n\t\ttabs.push( TAB_SETTINGS );\n\t}\n\n\tif (\n\t\thasBlockStyles ||\n\t\thasStyleFills ||\n\t\twindow?.__experimentalContentOnlyPatternInsertion\n\t) {\n\t\ttabs.push( TAB_STYLES );\n\t}\n\n\tconst tabSettings = useSelect( ( select ) => {\n\t\treturn select( blockEditorStore ).getSettings().blockInspectorTabs;\n\t}, [] );\n\n\tconst showTabs = getShowTabs( blockName, tabSettings );\n\treturn showTabs ? tabs : EMPTY_ARRAY;\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,wBAA2D;AAC3D,kBAA0B;AAK1B,oBAAoC;AACpC,2CAAqC;AACrC,gCAA0C;AAC1C,mBAAqE;AACrE,mBAA0C;AAE1C,IAAM,cAAc,CAAC;AAErB,SAAS,YAAa,WAAW,cAAc,CAAC,GAAI;AAEnD,MAAK,YAAa,SAAU,MAAM,QAAY;AAC7C,WAAO,YAAa,SAAU;AAAA,EAC/B;AAGA,MAAK,YAAY,YAAY,QAAY;AACxC,WAAO,YAAY;AAAA,EACpB;AAEA,SAAO;AACR;AAEe,SAAR,yBACN,WACA,kBACA,gBACA,gBACC;AACD,QAAM,OAAO,CAAC;AACd,QAAM;AAAA,IACL,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,SAAS;AAAA,EACV,IAAI,cAAAA;AAGJ,QAAM,uBAAmB,qCAAAC,SAA0B,SAAU;AAC7D,QAAM,gBAAY,kBAAAC,4BAAc,UAAU,IAAK;AAC/C,QAAM,eAAe,CAAE,oBAAoB,CAAC,CAAE,aAAa,UAAU;AAIrE,QAAM,aAAa;AAAA,IAClB,OAAK,kBAAAA,4BAAc,YAAY,IAAK,KAAK,CAAC;AAAA,IAC1C,OAAK,kBAAAA,4BAAc,WAAW,IAAK,KAAK,CAAC;AAAA,IACzC,OAAK,kBAAAA,4BAAc,gBAAgB,IAAK,KAAK,CAAC;AAAA,IAC9C,OAAK,kBAAAA,4BAAc,YAAY,IAAK,KAAK,CAAC;AAAA,IAC1C,OAAK,kBAAAA,4BAAc,gBAAgB,IAAK,KAAK,CAAC;AAAA,IAC9C,OAAK,kBAAAA,4BAAc,aAAa,IAAK,KAAK,CAAC;AAAA,EAC5C;AACA,QAAM,gBAAgB,WAAW;AAMjC,QAAM,gBAAgB;AAAA,IACrB,OAAK,kBAAAA,4BAAc,oDAA0B,QAAS,KAAK,CAAC;AAAA,IAC5D,OAAK,kBAAAA,4BAAc,cAAc,IAAK,KAAK,CAAC;AAAA,EAC7C;AAEA,QAAM,gBAAgB;AAAA,IACrB,OAAK,kBAAAA,4BAAc,aAAa,IAAK,KAAK,CAAC;AAAA,IAC3C,OAAK,kBAAAA,4BAAc,cAAc,IAAK,KAAK,CAAC;AAAA,IAC5C,GAAK,gBAAgB,gBAAgB,IAAI,gBAAgB,CAAC;AAAA,EAC3D;AAEA,QAAM,gBAAgB,CAAC,EACtB,oBAAoB,iBAAiB,SAAS;AAK/C,MAAK,gBAAgB,CAAE,gBAAiB;AACvC,SAAK,KAAM,0BAAc;AAAA,EAC1B;AAEA,MAAK,eAAgB;AACpB,SAAK,KAAM,wBAAY;AAAA,EACxB;AAEA,MAAK,cAAc,UAAU,CAAE,gBAAiB;AAC/C,SAAK,KAAM,yBAAa;AAAA,EACzB;AAEA,MACC,kBACA,iBACA,QAAQ,2CACP;AACD,SAAK,KAAM,uBAAW;AAAA,EACvB;AAEA,QAAM,kBAAc,uBAAW,CAAE,WAAY;AAC5C,WAAO,OAAQ,aAAAC,KAAiB,EAAE,YAAY,EAAE;AAAA,EACjD,GAAG,CAAC,CAAE;AAEN,QAAM,WAAW,YAAa,WAAW,WAAY;AACrD,SAAO,WAAW,OAAO;AAC1B;",
6
6
  "names": ["InspectorControlsGroups", "useIsListViewTabDisabled", "useSlotFills", "blockEditorStore"]
7
7
  }
@@ -124,6 +124,14 @@ function KeyboardShortcutsRegister() {
124
124
  }
125
125
  ]
126
126
  });
127
+ registerShortcut({
128
+ name: "core/block-editor/stop-editing-as-blocks",
129
+ category: "block",
130
+ description: (0, import_i18n.__)("Finish editing a design."),
131
+ keyCombination: {
132
+ character: "escape"
133
+ }
134
+ });
127
135
  registerShortcut({
128
136
  name: "core/block-editor/select-all",
129
137
  category: "selection",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/keyboard-shortcuts/index.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useEffect } from '@wordpress/element';\nimport { useDispatch } from '@wordpress/data';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { __ } from '@wordpress/i18n';\n\nfunction KeyboardShortcuts() {\n\treturn null;\n}\n\nfunction KeyboardShortcutsRegister() {\n\t// Registering the shortcuts.\n\tconst { registerShortcut } = useDispatch( keyboardShortcutsStore );\n\tuseEffect( () => {\n\t\tregisterShortcut( {\n\t\t\tname: 'core/block-editor/copy',\n\t\t\tcategory: 'block',\n\t\t\tdescription: __( 'Copy the selected block(s).' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'primary',\n\t\t\t\tcharacter: 'c',\n\t\t\t},\n\t\t} );\n\n\t\tregisterShortcut( {\n\t\t\tname: 'core/block-editor/cut',\n\t\t\tcategory: 'block',\n\t\t\tdescription: __( 'Cut the selected block(s).' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'primary',\n\t\t\t\tcharacter: 'x',\n\t\t\t},\n\t\t} );\n\n\t\tregisterShortcut( {\n\t\t\tname: 'core/block-editor/paste',\n\t\t\tcategory: 'block',\n\t\t\tdescription: __( 'Paste the selected block(s).' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'primary',\n\t\t\t\tcharacter: 'v',\n\t\t\t},\n\t\t} );\n\n\t\tregisterShortcut( {\n\t\t\tname: 'core/block-editor/duplicate',\n\t\t\tcategory: 'block',\n\t\t\tdescription: __( 'Duplicate the selected block(s).' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'primaryShift',\n\t\t\t\tcharacter: 'd',\n\t\t\t},\n\t\t} );\n\n\t\tregisterShortcut( {\n\t\t\tname: 'core/block-editor/remove',\n\t\t\tcategory: 'block',\n\t\t\tdescription: __( 'Remove the selected block(s).' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'access',\n\t\t\t\tcharacter: 'z',\n\t\t\t},\n\t\t} );\n\n\t\tregisterShortcut( {\n\t\t\tname: 'core/block-editor/paste-styles',\n\t\t\tcategory: 'block',\n\t\t\tdescription: __(\n\t\t\t\t'Paste the copied style to the selected block(s).'\n\t\t\t),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'primaryAlt',\n\t\t\t\tcharacter: 'v',\n\t\t\t},\n\t\t} );\n\n\t\tregisterShortcut( {\n\t\t\tname: 'core/block-editor/insert-before',\n\t\t\tcategory: 'block',\n\t\t\tdescription: __(\n\t\t\t\t'Insert a new block before the selected block(s).'\n\t\t\t),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'primaryAlt',\n\t\t\t\tcharacter: 't',\n\t\t\t},\n\t\t} );\n\n\t\tregisterShortcut( {\n\t\t\tname: 'core/block-editor/insert-after',\n\t\t\tcategory: 'block',\n\t\t\tdescription: __(\n\t\t\t\t'Insert a new block after the selected block(s).'\n\t\t\t),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'primaryAlt',\n\t\t\t\tcharacter: 'y',\n\t\t\t},\n\t\t} );\n\n\t\tregisterShortcut( {\n\t\t\tname: 'core/block-editor/delete-multi-selection',\n\t\t\tcategory: 'block',\n\t\t\tdescription: __( 'Delete selection.' ),\n\t\t\tkeyCombination: {\n\t\t\t\tcharacter: 'del',\n\t\t\t},\n\t\t\taliases: [\n\t\t\t\t{\n\t\t\t\t\tcharacter: 'backspace',\n\t\t\t\t},\n\t\t\t],\n\t\t} );\n\n\t\tregisterShortcut( {\n\t\t\tname: 'core/block-editor/select-all',\n\t\t\tcategory: 'selection',\n\t\t\tdescription: __(\n\t\t\t\t'Select all text when typing. Press again to select all blocks.'\n\t\t\t),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'primary',\n\t\t\t\tcharacter: 'a',\n\t\t\t},\n\t\t} );\n\n\t\tregisterShortcut( {\n\t\t\tname: 'core/block-editor/unselect',\n\t\t\tcategory: 'selection',\n\t\t\tdescription: __( 'Clear selection.' ),\n\t\t\tkeyCombination: {\n\t\t\t\tcharacter: 'escape',\n\t\t\t},\n\t\t} );\n\n\t\tregisterShortcut( {\n\t\t\tname: 'core/block-editor/multi-text-selection',\n\t\t\tcategory: 'selection',\n\t\t\tdescription: __( 'Select text across multiple blocks.' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'shift',\n\t\t\t\tcharacter: 'arrow',\n\t\t\t},\n\t\t} );\n\n\t\tregisterShortcut( {\n\t\t\tname: 'core/block-editor/focus-toolbar',\n\t\t\tcategory: 'global',\n\t\t\tdescription: __( 'Navigate to the nearest toolbar.' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'alt',\n\t\t\t\tcharacter: 'F10',\n\t\t\t},\n\t\t} );\n\n\t\tregisterShortcut( {\n\t\t\tname: 'core/block-editor/move-up',\n\t\t\tcategory: 'block',\n\t\t\tdescription: __( 'Move the selected block(s) up.' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'secondary',\n\t\t\t\tcharacter: 't',\n\t\t\t},\n\t\t} );\n\n\t\tregisterShortcut( {\n\t\t\tname: 'core/block-editor/move-down',\n\t\t\tcategory: 'block',\n\t\t\tdescription: __( 'Move the selected block(s) down.' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'secondary',\n\t\t\t\tcharacter: 'y',\n\t\t\t},\n\t\t} );\n\n\t\t// List view shortcuts.\n\t\tregisterShortcut( {\n\t\t\tname: 'core/block-editor/collapse-list-view',\n\t\t\tcategory: 'list-view',\n\t\t\tdescription: __( 'Collapse all other items.' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'alt',\n\t\t\t\tcharacter: 'l',\n\t\t\t},\n\t\t} );\n\n\t\tregisterShortcut( {\n\t\t\tname: 'core/block-editor/group',\n\t\t\tcategory: 'block',\n\t\t\tdescription: __(\n\t\t\t\t'Create a group block from the selected multiple blocks.'\n\t\t\t),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'primary',\n\t\t\t\tcharacter: 'g',\n\t\t\t},\n\t\t} );\n\n\t\tregisterShortcut( {\n\t\t\tname: 'core/block-editor/toggle-block-visibility',\n\t\t\tcategory: 'block',\n\t\t\tdescription: __( 'Show or hide the selected block(s).' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'primaryShift',\n\t\t\t\tcharacter: 'h',\n\t\t\t},\n\t\t} );\n\t}, [ registerShortcut ] );\n\n\treturn null;\n}\n\nKeyboardShortcuts.Register = KeyboardShortcutsRegister;\n\nexport default KeyboardShortcuts;\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useEffect } from '@wordpress/element';\nimport { useDispatch } from '@wordpress/data';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { __ } from '@wordpress/i18n';\n\nfunction KeyboardShortcuts() {\n\treturn null;\n}\n\nfunction KeyboardShortcutsRegister() {\n\t// Registering the shortcuts.\n\tconst { registerShortcut } = useDispatch( keyboardShortcutsStore );\n\tuseEffect( () => {\n\t\tregisterShortcut( {\n\t\t\tname: 'core/block-editor/copy',\n\t\t\tcategory: 'block',\n\t\t\tdescription: __( 'Copy the selected block(s).' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'primary',\n\t\t\t\tcharacter: 'c',\n\t\t\t},\n\t\t} );\n\n\t\tregisterShortcut( {\n\t\t\tname: 'core/block-editor/cut',\n\t\t\tcategory: 'block',\n\t\t\tdescription: __( 'Cut the selected block(s).' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'primary',\n\t\t\t\tcharacter: 'x',\n\t\t\t},\n\t\t} );\n\n\t\tregisterShortcut( {\n\t\t\tname: 'core/block-editor/paste',\n\t\t\tcategory: 'block',\n\t\t\tdescription: __( 'Paste the selected block(s).' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'primary',\n\t\t\t\tcharacter: 'v',\n\t\t\t},\n\t\t} );\n\n\t\tregisterShortcut( {\n\t\t\tname: 'core/block-editor/duplicate',\n\t\t\tcategory: 'block',\n\t\t\tdescription: __( 'Duplicate the selected block(s).' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'primaryShift',\n\t\t\t\tcharacter: 'd',\n\t\t\t},\n\t\t} );\n\n\t\tregisterShortcut( {\n\t\t\tname: 'core/block-editor/remove',\n\t\t\tcategory: 'block',\n\t\t\tdescription: __( 'Remove the selected block(s).' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'access',\n\t\t\t\tcharacter: 'z',\n\t\t\t},\n\t\t} );\n\n\t\tregisterShortcut( {\n\t\t\tname: 'core/block-editor/paste-styles',\n\t\t\tcategory: 'block',\n\t\t\tdescription: __(\n\t\t\t\t'Paste the copied style to the selected block(s).'\n\t\t\t),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'primaryAlt',\n\t\t\t\tcharacter: 'v',\n\t\t\t},\n\t\t} );\n\n\t\tregisterShortcut( {\n\t\t\tname: 'core/block-editor/insert-before',\n\t\t\tcategory: 'block',\n\t\t\tdescription: __(\n\t\t\t\t'Insert a new block before the selected block(s).'\n\t\t\t),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'primaryAlt',\n\t\t\t\tcharacter: 't',\n\t\t\t},\n\t\t} );\n\n\t\tregisterShortcut( {\n\t\t\tname: 'core/block-editor/insert-after',\n\t\t\tcategory: 'block',\n\t\t\tdescription: __(\n\t\t\t\t'Insert a new block after the selected block(s).'\n\t\t\t),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'primaryAlt',\n\t\t\t\tcharacter: 'y',\n\t\t\t},\n\t\t} );\n\n\t\tregisterShortcut( {\n\t\t\tname: 'core/block-editor/delete-multi-selection',\n\t\t\tcategory: 'block',\n\t\t\tdescription: __( 'Delete selection.' ),\n\t\t\tkeyCombination: {\n\t\t\t\tcharacter: 'del',\n\t\t\t},\n\t\t\taliases: [\n\t\t\t\t{\n\t\t\t\t\tcharacter: 'backspace',\n\t\t\t\t},\n\t\t\t],\n\t\t} );\n\n\t\tregisterShortcut( {\n\t\t\tname: 'core/block-editor/stop-editing-as-blocks',\n\t\t\tcategory: 'block',\n\t\t\tdescription: __( 'Finish editing a design.' ),\n\t\t\tkeyCombination: {\n\t\t\t\tcharacter: 'escape',\n\t\t\t},\n\t\t} );\n\n\t\tregisterShortcut( {\n\t\t\tname: 'core/block-editor/select-all',\n\t\t\tcategory: 'selection',\n\t\t\tdescription: __(\n\t\t\t\t'Select all text when typing. Press again to select all blocks.'\n\t\t\t),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'primary',\n\t\t\t\tcharacter: 'a',\n\t\t\t},\n\t\t} );\n\n\t\tregisterShortcut( {\n\t\t\tname: 'core/block-editor/unselect',\n\t\t\tcategory: 'selection',\n\t\t\tdescription: __( 'Clear selection.' ),\n\t\t\tkeyCombination: {\n\t\t\t\tcharacter: 'escape',\n\t\t\t},\n\t\t} );\n\n\t\tregisterShortcut( {\n\t\t\tname: 'core/block-editor/multi-text-selection',\n\t\t\tcategory: 'selection',\n\t\t\tdescription: __( 'Select text across multiple blocks.' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'shift',\n\t\t\t\tcharacter: 'arrow',\n\t\t\t},\n\t\t} );\n\n\t\tregisterShortcut( {\n\t\t\tname: 'core/block-editor/focus-toolbar',\n\t\t\tcategory: 'global',\n\t\t\tdescription: __( 'Navigate to the nearest toolbar.' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'alt',\n\t\t\t\tcharacter: 'F10',\n\t\t\t},\n\t\t} );\n\n\t\tregisterShortcut( {\n\t\t\tname: 'core/block-editor/move-up',\n\t\t\tcategory: 'block',\n\t\t\tdescription: __( 'Move the selected block(s) up.' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'secondary',\n\t\t\t\tcharacter: 't',\n\t\t\t},\n\t\t} );\n\n\t\tregisterShortcut( {\n\t\t\tname: 'core/block-editor/move-down',\n\t\t\tcategory: 'block',\n\t\t\tdescription: __( 'Move the selected block(s) down.' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'secondary',\n\t\t\t\tcharacter: 'y',\n\t\t\t},\n\t\t} );\n\n\t\t// List view shortcuts.\n\t\tregisterShortcut( {\n\t\t\tname: 'core/block-editor/collapse-list-view',\n\t\t\tcategory: 'list-view',\n\t\t\tdescription: __( 'Collapse all other items.' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'alt',\n\t\t\t\tcharacter: 'l',\n\t\t\t},\n\t\t} );\n\n\t\tregisterShortcut( {\n\t\t\tname: 'core/block-editor/group',\n\t\t\tcategory: 'block',\n\t\t\tdescription: __(\n\t\t\t\t'Create a group block from the selected multiple blocks.'\n\t\t\t),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'primary',\n\t\t\t\tcharacter: 'g',\n\t\t\t},\n\t\t} );\n\n\t\tregisterShortcut( {\n\t\t\tname: 'core/block-editor/toggle-block-visibility',\n\t\t\tcategory: 'block',\n\t\t\tdescription: __( 'Show or hide the selected block(s).' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'primaryShift',\n\t\t\t\tcharacter: 'h',\n\t\t\t},\n\t\t} );\n\t}, [ registerShortcut ] );\n\n\treturn null;\n}\n\nKeyboardShortcuts.Register = KeyboardShortcutsRegister;\n\nexport default KeyboardShortcuts;\n"],
5
+ "mappings": "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",
6
6
  "names": ["keyboardShortcutsStore"]
7
7
  }
@@ -41,7 +41,14 @@ var import_jsx_runtime = require("react/jsx-runtime");
41
41
  var import_react = require("react");
42
42
  var DEFAULT_BLOCK_CONTEXT = {};
43
43
  var usesContextKey = Symbol("usesContext");
44
- function Edit({ onChange, onFocus, value, forwardedRef, settings }) {
44
+ function Edit({
45
+ onChange,
46
+ onFocus,
47
+ value,
48
+ forwardedRef,
49
+ settings,
50
+ isVisible
51
+ }) {
45
52
  const {
46
53
  name,
47
54
  edit: EditFunction,
@@ -66,6 +73,7 @@ function Edit({ onChange, onFocus, value, forwardedRef, settings }) {
66
73
  EditFunction,
67
74
  {
68
75
  isActive,
76
+ isVisible,
69
77
  activeAttributes: isActive ? activeFormat.attributes || {} : {},
70
78
  isObjectActive,
71
79
  activeObjectAttributes: isObjectActive ? activeObject.attributes || {} : {},
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/rich-text/format-edit.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { getActiveFormat, getActiveObject } from '@wordpress/rich-text';\nimport { useContext, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport BlockContext from '../block-context';\n\nconst DEFAULT_BLOCK_CONTEXT = {};\n\nexport const usesContextKey = Symbol( 'usesContext' );\n\nfunction Edit( { onChange, onFocus, value, forwardedRef, settings } ) {\n\tconst {\n\t\tname,\n\t\tedit: EditFunction,\n\t\t[ usesContextKey ]: usesContext,\n\t} = settings;\n\n\tconst blockContext = useContext( BlockContext );\n\n\t// Assign context values using the block type's declared context needs.\n\tconst context = useMemo( () => {\n\t\treturn usesContext\n\t\t\t? Object.fromEntries(\n\t\t\t\t\tObject.entries( blockContext ).filter( ( [ key ] ) =>\n\t\t\t\t\t\tusesContext.includes( key )\n\t\t\t\t\t)\n\t\t\t )\n\t\t\t: DEFAULT_BLOCK_CONTEXT;\n\t}, [ usesContext, blockContext ] );\n\n\tif ( ! EditFunction ) {\n\t\treturn null;\n\t}\n\n\tconst activeFormat = getActiveFormat( value, name );\n\tconst isActive = activeFormat !== undefined;\n\tconst activeObject = getActiveObject( value );\n\tconst isObjectActive =\n\t\tactiveObject !== undefined && activeObject.type === name;\n\n\treturn (\n\t\t<EditFunction\n\t\t\tkey={ name }\n\t\t\tisActive={ isActive }\n\t\t\tactiveAttributes={ isActive ? activeFormat.attributes || {} : {} }\n\t\t\tisObjectActive={ isObjectActive }\n\t\t\tactiveObjectAttributes={\n\t\t\t\tisObjectActive ? activeObject.attributes || {} : {}\n\t\t\t}\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tonFocus={ onFocus }\n\t\t\tcontentRef={ forwardedRef }\n\t\t\tcontext={ context }\n\t\t/>\n\t);\n}\n\nexport default function FormatEdit( { formatTypes, ...props } ) {\n\treturn formatTypes.map( ( settings ) => (\n\t\t<Edit settings={ settings } { ...props } key={ settings.name } />\n\t) );\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,uBAAiD;AACjD,qBAAoC;AAKpC,2BAAyB;AAqCvB;AAmBA;AAtDF,IAAM,wBAAwB,CAAC;AAExB,IAAM,iBAAiB,OAAQ,aAAc;AAEpD,SAAS,KAAM,EAAE,UAAU,SAAS,OAAO,cAAc,SAAS,GAAI;AACrE,QAAM;AAAA,IACL;AAAA,IACA,MAAM;AAAA,IACN,CAAE,cAAe,GAAG;AAAA,EACrB,IAAI;AAEJ,QAAM,mBAAe,2BAAY,qBAAAA,OAAa;AAG9C,QAAM,cAAU,wBAAS,MAAM;AAC9B,WAAO,cACJ,OAAO;AAAA,MACP,OAAO,QAAS,YAAa,EAAE;AAAA,QAAQ,CAAE,CAAE,GAAI,MAC9C,YAAY,SAAU,GAAI;AAAA,MAC3B;AAAA,IACA,IACA;AAAA,EACJ,GAAG,CAAE,aAAa,YAAa,CAAE;AAEjC,MAAK,CAAE,cAAe;AACrB,WAAO;AAAA,EACR;AAEA,QAAM,mBAAe,kCAAiB,OAAO,IAAK;AAClD,QAAM,WAAW,iBAAiB;AAClC,QAAM,mBAAe,kCAAiB,KAAM;AAC5C,QAAM,iBACL,iBAAiB,UAAa,aAAa,SAAS;AAErD,SACC;AAAA,IAAC;AAAA;AAAA,MAEA;AAAA,MACA,kBAAmB,WAAW,aAAa,cAAc,CAAC,IAAI,CAAC;AAAA,MAC/D;AAAA,MACA,wBACC,iBAAiB,aAAa,cAAc,CAAC,IAAI,CAAC;AAAA,MAEnD;AAAA,MACA;AAAA,MACA;AAAA,MACA,YAAa;AAAA,MACb;AAAA;AAAA,IAXM;AAAA,EAYP;AAEF;AAEe,SAAR,WAA6B,EAAE,aAAa,GAAG,MAAM,GAAI;AAC/D,SAAO,YAAY,IAAK,CAAE,aACzB,gDAAC,QAAK,UAAwB,GAAG,OAAQ,KAAM,SAAS,MAAO,CAC9D;AACH;",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { getActiveFormat, getActiveObject } from '@wordpress/rich-text';\nimport { useContext, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport BlockContext from '../block-context';\n\nconst DEFAULT_BLOCK_CONTEXT = {};\n\nexport const usesContextKey = Symbol( 'usesContext' );\n\nfunction Edit( {\n\tonChange,\n\tonFocus,\n\tvalue,\n\tforwardedRef,\n\tsettings,\n\tisVisible,\n} ) {\n\tconst {\n\t\tname,\n\t\tedit: EditFunction,\n\t\t[ usesContextKey ]: usesContext,\n\t} = settings;\n\n\tconst blockContext = useContext( BlockContext );\n\n\t// Assign context values using the block type's declared context needs.\n\tconst context = useMemo( () => {\n\t\treturn usesContext\n\t\t\t? Object.fromEntries(\n\t\t\t\t\tObject.entries( blockContext ).filter( ( [ key ] ) =>\n\t\t\t\t\t\tusesContext.includes( key )\n\t\t\t\t\t)\n\t\t\t )\n\t\t\t: DEFAULT_BLOCK_CONTEXT;\n\t}, [ usesContext, blockContext ] );\n\n\tif ( ! EditFunction ) {\n\t\treturn null;\n\t}\n\n\tconst activeFormat = getActiveFormat( value, name );\n\tconst isActive = activeFormat !== undefined;\n\tconst activeObject = getActiveObject( value );\n\tconst isObjectActive =\n\t\tactiveObject !== undefined && activeObject.type === name;\n\n\treturn (\n\t\t<EditFunction\n\t\t\tkey={ name }\n\t\t\tisActive={ isActive }\n\t\t\tisVisible={ isVisible }\n\t\t\tactiveAttributes={ isActive ? activeFormat.attributes || {} : {} }\n\t\t\tisObjectActive={ isObjectActive }\n\t\t\tactiveObjectAttributes={\n\t\t\t\tisObjectActive ? activeObject.attributes || {} : {}\n\t\t\t}\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tonFocus={ onFocus }\n\t\t\tcontentRef={ forwardedRef }\n\t\t\tcontext={ context }\n\t\t/>\n\t);\n}\n\nexport default function FormatEdit( { formatTypes, ...props } ) {\n\treturn formatTypes.map( ( settings ) => (\n\t\t<Edit settings={ settings } { ...props } key={ settings.name } />\n\t) );\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,uBAAiD;AACjD,qBAAoC;AAKpC,2BAAyB;AA4CvB;AAoBA;AA9DF,IAAM,wBAAwB,CAAC;AAExB,IAAM,iBAAiB,OAAQ,aAAc;AAEpD,SAAS,KAAM;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAAI;AACH,QAAM;AAAA,IACL;AAAA,IACA,MAAM;AAAA,IACN,CAAE,cAAe,GAAG;AAAA,EACrB,IAAI;AAEJ,QAAM,mBAAe,2BAAY,qBAAAA,OAAa;AAG9C,QAAM,cAAU,wBAAS,MAAM;AAC9B,WAAO,cACJ,OAAO;AAAA,MACP,OAAO,QAAS,YAAa,EAAE;AAAA,QAAQ,CAAE,CAAE,GAAI,MAC9C,YAAY,SAAU,GAAI;AAAA,MAC3B;AAAA,IACA,IACA;AAAA,EACJ,GAAG,CAAE,aAAa,YAAa,CAAE;AAEjC,MAAK,CAAE,cAAe;AACrB,WAAO;AAAA,EACR;AAEA,QAAM,mBAAe,kCAAiB,OAAO,IAAK;AAClD,QAAM,WAAW,iBAAiB;AAClC,QAAM,mBAAe,kCAAiB,KAAM;AAC5C,QAAM,iBACL,iBAAiB,UAAa,aAAa,SAAS;AAErD,SACC;AAAA,IAAC;AAAA;AAAA,MAEA;AAAA,MACA;AAAA,MACA,kBAAmB,WAAW,aAAa,cAAc,CAAC,IAAI,CAAC;AAAA,MAC/D;AAAA,MACA,wBACC,iBAAiB,aAAa,cAAc,CAAC,IAAI,CAAC;AAAA,MAEnD;AAAA,MACA;AAAA,MACA;AAAA,MACA,YAAa;AAAA,MACb;AAAA;AAAA,IAZM;AAAA,EAaP;AAEF;AAEe,SAAR,WAA6B,EAAE,aAAa,GAAG,MAAM,GAAI;AAC/D,SAAO,YAAY,IAAK,CAAE,aACzB,gDAAC,QAAK,UAAwB,GAAG,OAAQ,KAAM,SAAS,MAAO,CAC9D;AACH;",
6
6
  "names": ["BlockContext"]
7
7
  }
@@ -477,6 +477,7 @@ var PublicForwardedRichTextContainer = (0, import_element.forwardRef)((props, re
477
477
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
478
478
  Tag,
479
479
  {
480
+ ref,
480
481
  ...contentProps,
481
482
  dangerouslySetInnerHTML: {
482
483
  __html: (0, import_content.valueToHTMLString)(value, multiline)
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/rich-text/index.js"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\nimport fastDeepEqual from 'fast-deep-equal/es6';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseRef,\n\tuseCallback,\n\tforwardRef,\n\tcreateContext,\n\tuseContext,\n} from '@wordpress/element';\nimport { useDispatch, useRegistry, useSelect } from '@wordpress/data';\nimport { useMergeRefs, useInstanceId } from '@wordpress/compose';\nimport {\n\t__unstableUseRichText as useRichText,\n\tremoveFormat,\n} from '@wordpress/rich-text';\nimport { Popover } from '@wordpress/components';\nimport { getBlockBindingsSource } from '@wordpress/blocks';\nimport deprecated from '@wordpress/deprecated';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { useBlockEditorAutocompleteProps } from '../autocomplete';\nimport { useBlockEditContext } from '../block-edit';\nimport { blockBindingsKey, isPreviewModeKey } from '../block-edit/context';\nimport FormatToolbarContainer from './format-toolbar-container';\nimport { store as blockEditorStore } from '../../store';\nimport { useMarkPersistent } from './use-mark-persistent';\nimport { useFormatTypes } from './use-format-types';\nimport { useEventListeners } from './event-listeners';\nimport FormatEdit from './format-edit';\nimport { getAllowedFormats } from './utils';\nimport { Content, valueToHTMLString } from './content';\nimport { withDeprecations } from './with-deprecations';\nimport BlockContext from '../block-context';\nimport { PrivateBlockContext } from '../block-list/private-block-context';\n\nexport const keyboardShortcutContext = createContext();\nkeyboardShortcutContext.displayName = 'keyboardShortcutContext';\n\nexport const inputEventContext = createContext();\ninputEventContext.displayName = 'inputEventContext';\n\nconst instanceIdKey = Symbol( 'instanceId' );\n\n/**\n * Removes props used for the native version of RichText so that they are not\n * passed to the DOM element and log warnings.\n *\n * @param {Object} props Props to filter.\n *\n * @return {Object} Filtered props.\n */\nfunction removeNativeProps( props ) {\n\tconst {\n\t\t__unstableMobileNoFocusOnMount,\n\t\tdeleteEnter,\n\t\tplaceholderTextColor,\n\t\ttextAlign,\n\t\tselectionColor,\n\t\ttagsToEliminate,\n\t\tdisableEditingMenu,\n\t\tfontSize,\n\t\tfontFamily,\n\t\tfontWeight,\n\t\tfontStyle,\n\t\tminWidth,\n\t\tmaxWidth,\n\t\tdisableSuggestions,\n\t\tdisableAutocorrection,\n\t\t...restProps\n\t} = props;\n\treturn restProps;\n}\n\nexport function RichTextWrapper(\n\t{\n\t\tchildren,\n\t\ttagName = 'div',\n\t\tvalue: adjustedValue = '',\n\t\tonChange: adjustedOnChange,\n\t\tisSelected: originalIsSelected,\n\t\tmultiline,\n\t\tinlineToolbar,\n\t\twrapperClassName,\n\t\tautocompleters,\n\t\tonReplace,\n\t\tplaceholder,\n\t\tallowedFormats,\n\t\twithoutInteractiveFormatting,\n\t\tonRemove,\n\t\tonMerge,\n\t\tonSplit,\n\t\t__unstableOnSplitAtEnd: onSplitAtEnd,\n\t\t__unstableOnSplitAtDoubleLineEnd: onSplitAtDoubleLineEnd,\n\t\tidentifier,\n\t\tpreserveWhiteSpace,\n\t\t__unstablePastePlainText: pastePlainText,\n\t\t__unstableEmbedURLOnPaste,\n\t\t__unstableDisableFormats: disableFormats,\n\t\tdisableLineBreaks,\n\t\t__unstableAllowPrefixTransformations,\n\t\treadOnly,\n\t\t...props\n\t},\n\tforwardedRef\n) {\n\tprops = removeNativeProps( props );\n\n\tif ( onSplit ) {\n\t\tdeprecated( 'wp.blockEditor.RichText onSplit prop', {\n\t\t\tsince: '6.4',\n\t\t\talternative: 'block.json support key: \"splitting\"',\n\t\t} );\n\t}\n\n\tconst instanceId = useInstanceId( RichTextWrapper );\n\tconst anchorRef = useRef();\n\tconst context = useBlockEditContext();\n\tconst { clientId, isSelected: isBlockSelected } = context;\n\tconst blockBindings = context[ blockBindingsKey ];\n\tconst blockContext = useContext( BlockContext );\n\tconst { bindableAttributes } = useContext( PrivateBlockContext );\n\tconst registry = useRegistry();\n\tconst selector = ( select ) => {\n\t\t// Avoid subscribing to the block editor store if the block is not\n\t\t// selected.\n\t\tif ( ! isBlockSelected ) {\n\t\t\treturn { isSelected: false };\n\t\t}\n\n\t\tconst { getSelectionStart, getSelectionEnd, getBlockEditingMode } =\n\t\t\tselect( blockEditorStore );\n\t\tconst selectionStart = getSelectionStart();\n\t\tconst selectionEnd = getSelectionEnd();\n\n\t\tlet isSelected;\n\n\t\tif ( originalIsSelected === undefined ) {\n\t\t\tisSelected =\n\t\t\t\tselectionStart.clientId === clientId &&\n\t\t\t\tselectionEnd.clientId === clientId &&\n\t\t\t\t( identifier\n\t\t\t\t\t? selectionStart.attributeKey === identifier\n\t\t\t\t\t: selectionStart[ instanceIdKey ] === instanceId );\n\t\t} else if ( originalIsSelected ) {\n\t\t\tisSelected = selectionStart.clientId === clientId;\n\t\t}\n\n\t\treturn {\n\t\t\tselectionStart: isSelected ? selectionStart.offset : undefined,\n\t\t\tselectionEnd: isSelected ? selectionEnd.offset : undefined,\n\t\t\tisSelected,\n\t\t\tisContentOnly: getBlockEditingMode( clientId ) === 'contentOnly',\n\t\t};\n\t};\n\tconst { selectionStart, selectionEnd, isSelected, isContentOnly } =\n\t\tuseSelect( selector, [\n\t\t\tclientId,\n\t\t\tidentifier,\n\t\t\tinstanceId,\n\t\t\toriginalIsSelected,\n\t\t\tisBlockSelected,\n\t\t] );\n\n\tconst { disableBoundBlock, bindingsPlaceholder, bindingsLabel } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! blockBindings?.[ identifier ] || ! bindableAttributes ) {\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\tconst relatedBinding = blockBindings[ identifier ];\n\t\t\tconst blockBindingsSource = getBlockBindingsSource(\n\t\t\t\trelatedBinding.source\n\t\t\t);\n\t\t\tconst blockBindingsContext = {};\n\t\t\tif ( blockBindingsSource?.usesContext?.length ) {\n\t\t\t\tfor ( const key of blockBindingsSource.usesContext ) {\n\t\t\t\t\tblockBindingsContext[ key ] = blockContext[ key ];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst _disableBoundBlock =\n\t\t\t\t! blockBindingsSource?.canUserEditValue?.( {\n\t\t\t\t\tselect,\n\t\t\t\t\tcontext: blockBindingsContext,\n\t\t\t\t\targs: relatedBinding.args,\n\t\t\t\t} );\n\n\t\t\t// Don't modify placeholders if value is not empty.\n\t\t\tif ( adjustedValue.length > 0 ) {\n\t\t\t\treturn {\n\t\t\t\t\tdisableBoundBlock: _disableBoundBlock,\n\t\t\t\t\t// Null values will make them fall back to the default behavior.\n\t\t\t\t\tbindingsPlaceholder: null,\n\t\t\t\t\tbindingsLabel: null,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst { getBlockAttributes } = select( blockEditorStore );\n\t\t\tconst blockAttributes = getBlockAttributes( clientId );\n\t\t\tlet clientSideFieldLabel = null;\n\t\t\tif ( blockBindingsSource?.getFieldsList ) {\n\t\t\t\tconst fieldsItems = blockBindingsSource.getFieldsList( {\n\t\t\t\t\tselect,\n\t\t\t\t\tcontext: blockBindingsContext,\n\t\t\t\t} );\n\t\t\t\tclientSideFieldLabel = fieldsItems?.find( ( item ) =>\n\t\t\t\t\tfastDeepEqual( item.args, relatedBinding?.args )\n\t\t\t\t)?.label;\n\t\t\t}\n\n\t\t\tconst bindingKey =\n\t\t\t\tclientSideFieldLabel ?? blockBindingsSource?.label;\n\n\t\t\tconst _bindingsPlaceholder = _disableBoundBlock\n\t\t\t\t? bindingKey\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t/* translators: %s: connected field label or source label */\n\t\t\t\t\t\t__( 'Add %s' ),\n\t\t\t\t\t\tbindingKey\n\t\t\t\t );\n\t\t\tconst _bindingsLabel = _disableBoundBlock\n\t\t\t\t? relatedBinding?.args?.key || blockBindingsSource?.label\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t/* translators: %s: source label or key */\n\t\t\t\t\t\t__( 'Empty %s; start writing to edit its value' ),\n\t\t\t\t\t\trelatedBinding?.args?.key || blockBindingsSource?.label\n\t\t\t\t );\n\n\t\t\treturn {\n\t\t\t\tdisableBoundBlock: _disableBoundBlock,\n\t\t\t\tbindingsPlaceholder:\n\t\t\t\t\tblockAttributes?.placeholder || _bindingsPlaceholder,\n\t\t\t\tbindingsLabel: _bindingsLabel,\n\t\t\t};\n\t\t},\n\t\t[\n\t\t\tblockBindings,\n\t\t\tidentifier,\n\t\t\tbindableAttributes,\n\t\t\tadjustedValue,\n\t\t\tclientId,\n\t\t\tblockContext,\n\t\t]\n\t);\n\tconst isInsidePatternOverrides = !! blockContext?.[ 'pattern/overrides' ];\n\tconst hasOverrideEnabled =\n\t\tblockBindings?.__default?.source === 'core/pattern-overrides';\n\n\tconst shouldDisableForPattern =\n\t\tisInsidePatternOverrides && ! hasOverrideEnabled;\n\n\tconst shouldDisableEditing =\n\t\treadOnly || disableBoundBlock || shouldDisableForPattern;\n\n\tconst { getSelectionStart, getSelectionEnd, getBlockRootClientId } =\n\t\tuseSelect( blockEditorStore );\n\tconst { selectionChange } = useDispatch( blockEditorStore );\n\tconst adjustedAllowedFormats = getAllowedFormats( {\n\t\tallowedFormats,\n\t\tdisableFormats,\n\t} );\n\tconst hasFormats =\n\t\t! adjustedAllowedFormats || adjustedAllowedFormats.length > 0;\n\n\tconst onSelectionChange = useCallback(\n\t\t( start, end ) => {\n\t\t\tconst selection = {};\n\t\t\tconst unset = start === undefined && end === undefined;\n\n\t\t\tconst baseSelection = {\n\t\t\t\tclientId,\n\t\t\t\t[ identifier ? 'attributeKey' : instanceIdKey ]: identifier\n\t\t\t\t\t? identifier\n\t\t\t\t\t: instanceId,\n\t\t\t};\n\n\t\t\tif ( typeof start === 'number' || unset ) {\n\t\t\t\t// If we are only setting the start (or the end below), which\n\t\t\t\t// means a partial selection, and we're not updating a selection\n\t\t\t\t// with the same client ID, abort. This means the selected block\n\t\t\t\t// is a parent block.\n\t\t\t\tif (\n\t\t\t\t\tend === undefined &&\n\t\t\t\t\tgetBlockRootClientId( clientId ) !==\n\t\t\t\t\t\tgetBlockRootClientId( getSelectionEnd().clientId )\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tselection.start = {\n\t\t\t\t\t...baseSelection,\n\t\t\t\t\toffset: start,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif ( typeof end === 'number' || unset ) {\n\t\t\t\tif (\n\t\t\t\t\tstart === undefined &&\n\t\t\t\t\tgetBlockRootClientId( clientId ) !==\n\t\t\t\t\t\tgetBlockRootClientId( getSelectionStart().clientId )\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tselection.end = {\n\t\t\t\t\t...baseSelection,\n\t\t\t\t\toffset: end,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tselectionChange( selection );\n\t\t},\n\t\t[\n\t\t\tclientId,\n\t\t\tgetBlockRootClientId,\n\t\t\tgetSelectionEnd,\n\t\t\tgetSelectionStart,\n\t\t\tidentifier,\n\t\t\tinstanceId,\n\t\t\tselectionChange,\n\t\t]\n\t);\n\n\tconst {\n\t\tformatTypes,\n\t\tprepareHandlers,\n\t\tvalueHandlers,\n\t\tchangeHandlers,\n\t\tdependencies,\n\t} = useFormatTypes( {\n\t\tclientId,\n\t\tidentifier,\n\t\tallowedFormats: adjustedAllowedFormats,\n\t\twithoutInteractiveFormatting,\n\t\tdisableNoneEssentialFormatting: isContentOnly,\n\t} );\n\n\tfunction addEditorOnlyFormats( value ) {\n\t\treturn valueHandlers.reduce(\n\t\t\t( accumulator, fn ) => fn( accumulator, value.text ),\n\t\t\tvalue.formats\n\t\t);\n\t}\n\n\tfunction removeEditorOnlyFormats( value ) {\n\t\tformatTypes.forEach( ( formatType ) => {\n\t\t\t// Remove formats created by prepareEditableTree, because they are editor only.\n\t\t\tif ( formatType.__experimentalCreatePrepareEditableTree ) {\n\t\t\t\tvalue = removeFormat(\n\t\t\t\t\tvalue,\n\t\t\t\t\tformatType.name,\n\t\t\t\t\t0,\n\t\t\t\t\tvalue.text.length\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t\treturn value.formats;\n\t}\n\n\tfunction addInvisibleFormats( value ) {\n\t\treturn prepareHandlers.reduce(\n\t\t\t( accumulator, fn ) => fn( accumulator, value.text ),\n\t\t\tvalue.formats\n\t\t);\n\t}\n\n\tconst {\n\t\tvalue,\n\t\tgetValue,\n\t\tonChange,\n\t\tref: richTextRef,\n\t} = useRichText( {\n\t\tvalue: adjustedValue,\n\t\tonChange( html, { __unstableFormats, __unstableText } ) {\n\t\t\tadjustedOnChange( html );\n\t\t\tObject.values( changeHandlers ).forEach( ( changeHandler ) => {\n\t\t\t\tchangeHandler( __unstableFormats, __unstableText );\n\t\t\t} );\n\t\t},\n\t\tselectionStart,\n\t\tselectionEnd,\n\t\tonSelectionChange,\n\t\tplaceholder: bindingsPlaceholder || placeholder,\n\t\t__unstableIsSelected: isSelected,\n\t\t__unstableDisableFormats: disableFormats,\n\t\tpreserveWhiteSpace,\n\t\t__unstableDependencies: [ ...dependencies, tagName ],\n\t\t__unstableAfterParse: addEditorOnlyFormats,\n\t\t__unstableBeforeSerialize: removeEditorOnlyFormats,\n\t\t__unstableAddInvisibleFormats: addInvisibleFormats,\n\t} );\n\tconst autocompleteProps = useBlockEditorAutocompleteProps( {\n\t\tonReplace,\n\t\tcompleters: autocompleters,\n\t\trecord: value,\n\t\tonChange,\n\t} );\n\n\tuseMarkPersistent( { html: adjustedValue, value } );\n\n\tconst keyboardShortcuts = useRef( new Set() );\n\tconst inputEvents = useRef( new Set() );\n\n\tfunction onFocus() {\n\t\tanchorRef.current?.focus();\n\t}\n\n\tconst TagName = tagName;\n\treturn (\n\t\t<>\n\t\t\t{ isSelected && (\n\t\t\t\t<keyboardShortcutContext.Provider value={ keyboardShortcuts }>\n\t\t\t\t\t<inputEventContext.Provider value={ inputEvents }>\n\t\t\t\t\t\t<Popover.__unstableSlotNameProvider value=\"__unstable-block-tools-after\">\n\t\t\t\t\t\t\t{ children &&\n\t\t\t\t\t\t\t\tchildren( { value, onChange, onFocus } ) }\n\n\t\t\t\t\t\t\t<FormatEdit\n\t\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\tformatTypes={ formatTypes }\n\t\t\t\t\t\t\t\tforwardedRef={ anchorRef }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Popover.__unstableSlotNameProvider>\n\t\t\t\t\t</inputEventContext.Provider>\n\t\t\t\t</keyboardShortcutContext.Provider>\n\t\t\t) }\n\t\t\t{ isSelected && hasFormats && (\n\t\t\t\t<FormatToolbarContainer\n\t\t\t\t\tinline={ inlineToolbar }\n\t\t\t\t\teditableContentElement={ anchorRef.current }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<TagName\n\t\t\t\t// Overridable props.\n\t\t\t\trole=\"textbox\"\n\t\t\t\taria-multiline={ ! disableLineBreaks }\n\t\t\t\taria-readonly={ shouldDisableEditing }\n\t\t\t\t{ ...props }\n\t\t\t\t// Unset draggable (coming from block props) for contentEditable\n\t\t\t\t// elements because it will interfere with multi block selection\n\t\t\t\t// when the contentEditable and draggable elements are the same\n\t\t\t\t// element.\n\t\t\t\tdraggable={ undefined }\n\t\t\t\taria-label={\n\t\t\t\t\tbindingsLabel || props[ 'aria-label' ] || placeholder\n\t\t\t\t}\n\t\t\t\t{ ...autocompleteProps }\n\t\t\t\tref={ useMergeRefs( [\n\t\t\t\t\t// Rich text ref must be first because its focus listener\n\t\t\t\t\t// must be set up before any other ref calls .focus() on\n\t\t\t\t\t// mount.\n\t\t\t\t\trichTextRef,\n\t\t\t\t\tforwardedRef,\n\t\t\t\t\tautocompleteProps.ref,\n\t\t\t\t\tprops.ref,\n\t\t\t\t\tuseEventListeners( {\n\t\t\t\t\t\tregistry,\n\t\t\t\t\t\tgetValue,\n\t\t\t\t\t\tonChange,\n\t\t\t\t\t\t__unstableAllowPrefixTransformations,\n\t\t\t\t\t\tformatTypes,\n\t\t\t\t\t\tonReplace,\n\t\t\t\t\t\tselectionChange,\n\t\t\t\t\t\tisSelected,\n\t\t\t\t\t\tdisableFormats,\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\ttagName,\n\t\t\t\t\t\tonSplit,\n\t\t\t\t\t\t__unstableEmbedURLOnPaste,\n\t\t\t\t\t\tpastePlainText,\n\t\t\t\t\t\tonMerge,\n\t\t\t\t\t\tonRemove,\n\t\t\t\t\t\tremoveEditorOnlyFormats,\n\t\t\t\t\t\tdisableLineBreaks,\n\t\t\t\t\t\tonSplitAtEnd,\n\t\t\t\t\t\tonSplitAtDoubleLineEnd,\n\t\t\t\t\t\tkeyboardShortcuts,\n\t\t\t\t\t\tinputEvents,\n\t\t\t\t\t} ),\n\t\t\t\t\tanchorRef,\n\t\t\t\t] ) }\n\t\t\t\tcontentEditable={ ! shouldDisableEditing }\n\t\t\t\tsuppressContentEditableWarning\n\t\t\t\tclassName={ clsx(\n\t\t\t\t\t'block-editor-rich-text__editable',\n\t\t\t\t\tprops.className,\n\t\t\t\t\t'rich-text'\n\t\t\t\t) }\n\t\t\t\t// Setting tabIndex to 0 is unnecessary, the element is already\n\t\t\t\t// focusable because it's contentEditable. This also fixes a\n\t\t\t\t// Safari bug where it's not possible to Shift+Click multi\n\t\t\t\t// select blocks when Shift Clicking into an element with\n\t\t\t\t// tabIndex because Safari will focus the element. However,\n\t\t\t\t// Safari will correctly ignore nested contentEditable elements.\n\t\t\t\ttabIndex={\n\t\t\t\t\tprops.tabIndex === 0 && ! shouldDisableEditing\n\t\t\t\t\t\t? null\n\t\t\t\t\t\t: props.tabIndex\n\t\t\t\t}\n\t\t\t\tdata-wp-block-attribute-key={ identifier }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\n// This is the private API for the RichText component.\n// It allows access to all props, not just the public ones.\nexport const PrivateRichText = withDeprecations(\n\tforwardRef( RichTextWrapper )\n);\n\nPrivateRichText.Content = Content;\nPrivateRichText.isEmpty = ( value ) => {\n\treturn ! value || value.length === 0;\n};\n\n// This is the public API for the RichText component.\n// We wrap the PrivateRichText component to hide some props from the public API.\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/rich-text/README.md\n */\nconst PublicForwardedRichTextContainer = forwardRef( ( props, ref ) => {\n\tconst context = useBlockEditContext();\n\tconst isPreviewMode = context[ isPreviewModeKey ];\n\n\tif ( isPreviewMode ) {\n\t\t// Remove all non-content props.\n\t\tconst {\n\t\t\tchildren,\n\t\t\ttagName: Tag = 'div',\n\t\t\tvalue,\n\t\t\tonChange,\n\t\t\tisSelected,\n\t\t\tmultiline,\n\t\t\tinlineToolbar,\n\t\t\twrapperClassName,\n\t\t\tautocompleters,\n\t\t\tonReplace,\n\t\t\tplaceholder,\n\t\t\tallowedFormats,\n\t\t\twithoutInteractiveFormatting,\n\t\t\tonRemove,\n\t\t\tonMerge,\n\t\t\tonSplit,\n\t\t\t__unstableOnSplitAtEnd,\n\t\t\t__unstableOnSplitAtDoubleLineEnd,\n\t\t\tidentifier,\n\t\t\tpreserveWhiteSpace,\n\t\t\t__unstablePastePlainText,\n\t\t\t__unstableEmbedURLOnPaste,\n\t\t\t__unstableDisableFormats,\n\t\t\tdisableLineBreaks,\n\t\t\t__unstableAllowPrefixTransformations,\n\t\t\treadOnly,\n\t\t\t...contentProps\n\t\t} = removeNativeProps( props );\n\t\treturn (\n\t\t\t<Tag\n\t\t\t\t{ ...contentProps }\n\t\t\t\tdangerouslySetInnerHTML={ {\n\t\t\t\t\t__html: valueToHTMLString( value, multiline ),\n\t\t\t\t} }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn <PrivateRichText ref={ ref } { ...props } readOnly={ false } />;\n} );\n\nPublicForwardedRichTextContainer.Content = Content;\nPublicForwardedRichTextContainer.isEmpty = ( value ) => {\n\treturn ! value || value.length === 0;\n};\n\nexport default PublicForwardedRichTextContainer;\nexport { RichTextShortcut } from './shortcut';\nexport { RichTextToolbarButton } from './toolbar-button';\nexport { __unstableRichTextInputEvent } from './input-event';\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\nimport fastDeepEqual from 'fast-deep-equal/es6';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseRef,\n\tuseCallback,\n\tforwardRef,\n\tcreateContext,\n\tuseContext,\n} from '@wordpress/element';\nimport { useDispatch, useRegistry, useSelect } from '@wordpress/data';\nimport { useMergeRefs, useInstanceId } from '@wordpress/compose';\nimport {\n\t__unstableUseRichText as useRichText,\n\tremoveFormat,\n} from '@wordpress/rich-text';\nimport { Popover } from '@wordpress/components';\nimport { getBlockBindingsSource } from '@wordpress/blocks';\nimport deprecated from '@wordpress/deprecated';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { useBlockEditorAutocompleteProps } from '../autocomplete';\nimport { useBlockEditContext } from '../block-edit';\nimport { blockBindingsKey, isPreviewModeKey } from '../block-edit/context';\nimport FormatToolbarContainer from './format-toolbar-container';\nimport { store as blockEditorStore } from '../../store';\nimport { useMarkPersistent } from './use-mark-persistent';\nimport { useFormatTypes } from './use-format-types';\nimport { useEventListeners } from './event-listeners';\nimport FormatEdit from './format-edit';\nimport { getAllowedFormats } from './utils';\nimport { Content, valueToHTMLString } from './content';\nimport { withDeprecations } from './with-deprecations';\nimport BlockContext from '../block-context';\nimport { PrivateBlockContext } from '../block-list/private-block-context';\n\nexport const keyboardShortcutContext = createContext();\nkeyboardShortcutContext.displayName = 'keyboardShortcutContext';\n\nexport const inputEventContext = createContext();\ninputEventContext.displayName = 'inputEventContext';\n\nconst instanceIdKey = Symbol( 'instanceId' );\n\n/**\n * Removes props used for the native version of RichText so that they are not\n * passed to the DOM element and log warnings.\n *\n * @param {Object} props Props to filter.\n *\n * @return {Object} Filtered props.\n */\nfunction removeNativeProps( props ) {\n\tconst {\n\t\t__unstableMobileNoFocusOnMount,\n\t\tdeleteEnter,\n\t\tplaceholderTextColor,\n\t\ttextAlign,\n\t\tselectionColor,\n\t\ttagsToEliminate,\n\t\tdisableEditingMenu,\n\t\tfontSize,\n\t\tfontFamily,\n\t\tfontWeight,\n\t\tfontStyle,\n\t\tminWidth,\n\t\tmaxWidth,\n\t\tdisableSuggestions,\n\t\tdisableAutocorrection,\n\t\t...restProps\n\t} = props;\n\treturn restProps;\n}\n\nexport function RichTextWrapper(\n\t{\n\t\tchildren,\n\t\ttagName = 'div',\n\t\tvalue: adjustedValue = '',\n\t\tonChange: adjustedOnChange,\n\t\tisSelected: originalIsSelected,\n\t\tmultiline,\n\t\tinlineToolbar,\n\t\twrapperClassName,\n\t\tautocompleters,\n\t\tonReplace,\n\t\tplaceholder,\n\t\tallowedFormats,\n\t\twithoutInteractiveFormatting,\n\t\tonRemove,\n\t\tonMerge,\n\t\tonSplit,\n\t\t__unstableOnSplitAtEnd: onSplitAtEnd,\n\t\t__unstableOnSplitAtDoubleLineEnd: onSplitAtDoubleLineEnd,\n\t\tidentifier,\n\t\tpreserveWhiteSpace,\n\t\t__unstablePastePlainText: pastePlainText,\n\t\t__unstableEmbedURLOnPaste,\n\t\t__unstableDisableFormats: disableFormats,\n\t\tdisableLineBreaks,\n\t\t__unstableAllowPrefixTransformations,\n\t\treadOnly,\n\t\t...props\n\t},\n\tforwardedRef\n) {\n\tprops = removeNativeProps( props );\n\n\tif ( onSplit ) {\n\t\tdeprecated( 'wp.blockEditor.RichText onSplit prop', {\n\t\t\tsince: '6.4',\n\t\t\talternative: 'block.json support key: \"splitting\"',\n\t\t} );\n\t}\n\n\tconst instanceId = useInstanceId( RichTextWrapper );\n\tconst anchorRef = useRef();\n\tconst context = useBlockEditContext();\n\tconst { clientId, isSelected: isBlockSelected } = context;\n\tconst blockBindings = context[ blockBindingsKey ];\n\tconst blockContext = useContext( BlockContext );\n\tconst { bindableAttributes } = useContext( PrivateBlockContext );\n\tconst registry = useRegistry();\n\tconst selector = ( select ) => {\n\t\t// Avoid subscribing to the block editor store if the block is not\n\t\t// selected.\n\t\tif ( ! isBlockSelected ) {\n\t\t\treturn { isSelected: false };\n\t\t}\n\n\t\tconst { getSelectionStart, getSelectionEnd, getBlockEditingMode } =\n\t\t\tselect( blockEditorStore );\n\t\tconst selectionStart = getSelectionStart();\n\t\tconst selectionEnd = getSelectionEnd();\n\n\t\tlet isSelected;\n\n\t\tif ( originalIsSelected === undefined ) {\n\t\t\tisSelected =\n\t\t\t\tselectionStart.clientId === clientId &&\n\t\t\t\tselectionEnd.clientId === clientId &&\n\t\t\t\t( identifier\n\t\t\t\t\t? selectionStart.attributeKey === identifier\n\t\t\t\t\t: selectionStart[ instanceIdKey ] === instanceId );\n\t\t} else if ( originalIsSelected ) {\n\t\t\tisSelected = selectionStart.clientId === clientId;\n\t\t}\n\n\t\treturn {\n\t\t\tselectionStart: isSelected ? selectionStart.offset : undefined,\n\t\t\tselectionEnd: isSelected ? selectionEnd.offset : undefined,\n\t\t\tisSelected,\n\t\t\tisContentOnly: getBlockEditingMode( clientId ) === 'contentOnly',\n\t\t};\n\t};\n\tconst { selectionStart, selectionEnd, isSelected, isContentOnly } =\n\t\tuseSelect( selector, [\n\t\t\tclientId,\n\t\t\tidentifier,\n\t\t\tinstanceId,\n\t\t\toriginalIsSelected,\n\t\t\tisBlockSelected,\n\t\t] );\n\n\tconst { disableBoundBlock, bindingsPlaceholder, bindingsLabel } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! blockBindings?.[ identifier ] || ! bindableAttributes ) {\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\tconst relatedBinding = blockBindings[ identifier ];\n\t\t\tconst blockBindingsSource = getBlockBindingsSource(\n\t\t\t\trelatedBinding.source\n\t\t\t);\n\t\t\tconst blockBindingsContext = {};\n\t\t\tif ( blockBindingsSource?.usesContext?.length ) {\n\t\t\t\tfor ( const key of blockBindingsSource.usesContext ) {\n\t\t\t\t\tblockBindingsContext[ key ] = blockContext[ key ];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst _disableBoundBlock =\n\t\t\t\t! blockBindingsSource?.canUserEditValue?.( {\n\t\t\t\t\tselect,\n\t\t\t\t\tcontext: blockBindingsContext,\n\t\t\t\t\targs: relatedBinding.args,\n\t\t\t\t} );\n\n\t\t\t// Don't modify placeholders if value is not empty.\n\t\t\tif ( adjustedValue.length > 0 ) {\n\t\t\t\treturn {\n\t\t\t\t\tdisableBoundBlock: _disableBoundBlock,\n\t\t\t\t\t// Null values will make them fall back to the default behavior.\n\t\t\t\t\tbindingsPlaceholder: null,\n\t\t\t\t\tbindingsLabel: null,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst { getBlockAttributes } = select( blockEditorStore );\n\t\t\tconst blockAttributes = getBlockAttributes( clientId );\n\t\t\tlet clientSideFieldLabel = null;\n\t\t\tif ( blockBindingsSource?.getFieldsList ) {\n\t\t\t\tconst fieldsItems = blockBindingsSource.getFieldsList( {\n\t\t\t\t\tselect,\n\t\t\t\t\tcontext: blockBindingsContext,\n\t\t\t\t} );\n\t\t\t\tclientSideFieldLabel = fieldsItems?.find( ( item ) =>\n\t\t\t\t\tfastDeepEqual( item.args, relatedBinding?.args )\n\t\t\t\t)?.label;\n\t\t\t}\n\n\t\t\tconst bindingKey =\n\t\t\t\tclientSideFieldLabel ?? blockBindingsSource?.label;\n\n\t\t\tconst _bindingsPlaceholder = _disableBoundBlock\n\t\t\t\t? bindingKey\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t/* translators: %s: connected field label or source label */\n\t\t\t\t\t\t__( 'Add %s' ),\n\t\t\t\t\t\tbindingKey\n\t\t\t\t );\n\t\t\tconst _bindingsLabel = _disableBoundBlock\n\t\t\t\t? relatedBinding?.args?.key || blockBindingsSource?.label\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t/* translators: %s: source label or key */\n\t\t\t\t\t\t__( 'Empty %s; start writing to edit its value' ),\n\t\t\t\t\t\trelatedBinding?.args?.key || blockBindingsSource?.label\n\t\t\t\t );\n\n\t\t\treturn {\n\t\t\t\tdisableBoundBlock: _disableBoundBlock,\n\t\t\t\tbindingsPlaceholder:\n\t\t\t\t\tblockAttributes?.placeholder || _bindingsPlaceholder,\n\t\t\t\tbindingsLabel: _bindingsLabel,\n\t\t\t};\n\t\t},\n\t\t[\n\t\t\tblockBindings,\n\t\t\tidentifier,\n\t\t\tbindableAttributes,\n\t\t\tadjustedValue,\n\t\t\tclientId,\n\t\t\tblockContext,\n\t\t]\n\t);\n\tconst isInsidePatternOverrides = !! blockContext?.[ 'pattern/overrides' ];\n\tconst hasOverrideEnabled =\n\t\tblockBindings?.__default?.source === 'core/pattern-overrides';\n\n\tconst shouldDisableForPattern =\n\t\tisInsidePatternOverrides && ! hasOverrideEnabled;\n\n\tconst shouldDisableEditing =\n\t\treadOnly || disableBoundBlock || shouldDisableForPattern;\n\n\tconst { getSelectionStart, getSelectionEnd, getBlockRootClientId } =\n\t\tuseSelect( blockEditorStore );\n\tconst { selectionChange } = useDispatch( blockEditorStore );\n\tconst adjustedAllowedFormats = getAllowedFormats( {\n\t\tallowedFormats,\n\t\tdisableFormats,\n\t} );\n\tconst hasFormats =\n\t\t! adjustedAllowedFormats || adjustedAllowedFormats.length > 0;\n\n\tconst onSelectionChange = useCallback(\n\t\t( start, end ) => {\n\t\t\tconst selection = {};\n\t\t\tconst unset = start === undefined && end === undefined;\n\n\t\t\tconst baseSelection = {\n\t\t\t\tclientId,\n\t\t\t\t[ identifier ? 'attributeKey' : instanceIdKey ]: identifier\n\t\t\t\t\t? identifier\n\t\t\t\t\t: instanceId,\n\t\t\t};\n\n\t\t\tif ( typeof start === 'number' || unset ) {\n\t\t\t\t// If we are only setting the start (or the end below), which\n\t\t\t\t// means a partial selection, and we're not updating a selection\n\t\t\t\t// with the same client ID, abort. This means the selected block\n\t\t\t\t// is a parent block.\n\t\t\t\tif (\n\t\t\t\t\tend === undefined &&\n\t\t\t\t\tgetBlockRootClientId( clientId ) !==\n\t\t\t\t\t\tgetBlockRootClientId( getSelectionEnd().clientId )\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tselection.start = {\n\t\t\t\t\t...baseSelection,\n\t\t\t\t\toffset: start,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif ( typeof end === 'number' || unset ) {\n\t\t\t\tif (\n\t\t\t\t\tstart === undefined &&\n\t\t\t\t\tgetBlockRootClientId( clientId ) !==\n\t\t\t\t\t\tgetBlockRootClientId( getSelectionStart().clientId )\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tselection.end = {\n\t\t\t\t\t...baseSelection,\n\t\t\t\t\toffset: end,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tselectionChange( selection );\n\t\t},\n\t\t[\n\t\t\tclientId,\n\t\t\tgetBlockRootClientId,\n\t\t\tgetSelectionEnd,\n\t\t\tgetSelectionStart,\n\t\t\tidentifier,\n\t\t\tinstanceId,\n\t\t\tselectionChange,\n\t\t]\n\t);\n\n\tconst {\n\t\tformatTypes,\n\t\tprepareHandlers,\n\t\tvalueHandlers,\n\t\tchangeHandlers,\n\t\tdependencies,\n\t} = useFormatTypes( {\n\t\tclientId,\n\t\tidentifier,\n\t\tallowedFormats: adjustedAllowedFormats,\n\t\twithoutInteractiveFormatting,\n\t\tdisableNoneEssentialFormatting: isContentOnly,\n\t} );\n\n\tfunction addEditorOnlyFormats( value ) {\n\t\treturn valueHandlers.reduce(\n\t\t\t( accumulator, fn ) => fn( accumulator, value.text ),\n\t\t\tvalue.formats\n\t\t);\n\t}\n\n\tfunction removeEditorOnlyFormats( value ) {\n\t\tformatTypes.forEach( ( formatType ) => {\n\t\t\t// Remove formats created by prepareEditableTree, because they are editor only.\n\t\t\tif ( formatType.__experimentalCreatePrepareEditableTree ) {\n\t\t\t\tvalue = removeFormat(\n\t\t\t\t\tvalue,\n\t\t\t\t\tformatType.name,\n\t\t\t\t\t0,\n\t\t\t\t\tvalue.text.length\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t\treturn value.formats;\n\t}\n\n\tfunction addInvisibleFormats( value ) {\n\t\treturn prepareHandlers.reduce(\n\t\t\t( accumulator, fn ) => fn( accumulator, value.text ),\n\t\t\tvalue.formats\n\t\t);\n\t}\n\n\tconst {\n\t\tvalue,\n\t\tgetValue,\n\t\tonChange,\n\t\tref: richTextRef,\n\t} = useRichText( {\n\t\tvalue: adjustedValue,\n\t\tonChange( html, { __unstableFormats, __unstableText } ) {\n\t\t\tadjustedOnChange( html );\n\t\t\tObject.values( changeHandlers ).forEach( ( changeHandler ) => {\n\t\t\t\tchangeHandler( __unstableFormats, __unstableText );\n\t\t\t} );\n\t\t},\n\t\tselectionStart,\n\t\tselectionEnd,\n\t\tonSelectionChange,\n\t\tplaceholder: bindingsPlaceholder || placeholder,\n\t\t__unstableIsSelected: isSelected,\n\t\t__unstableDisableFormats: disableFormats,\n\t\tpreserveWhiteSpace,\n\t\t__unstableDependencies: [ ...dependencies, tagName ],\n\t\t__unstableAfterParse: addEditorOnlyFormats,\n\t\t__unstableBeforeSerialize: removeEditorOnlyFormats,\n\t\t__unstableAddInvisibleFormats: addInvisibleFormats,\n\t} );\n\tconst autocompleteProps = useBlockEditorAutocompleteProps( {\n\t\tonReplace,\n\t\tcompleters: autocompleters,\n\t\trecord: value,\n\t\tonChange,\n\t} );\n\n\tuseMarkPersistent( { html: adjustedValue, value } );\n\n\tconst keyboardShortcuts = useRef( new Set() );\n\tconst inputEvents = useRef( new Set() );\n\n\tfunction onFocus() {\n\t\tanchorRef.current?.focus();\n\t}\n\n\tconst TagName = tagName;\n\treturn (\n\t\t<>\n\t\t\t{ isSelected && (\n\t\t\t\t<keyboardShortcutContext.Provider value={ keyboardShortcuts }>\n\t\t\t\t\t<inputEventContext.Provider value={ inputEvents }>\n\t\t\t\t\t\t<Popover.__unstableSlotNameProvider value=\"__unstable-block-tools-after\">\n\t\t\t\t\t\t\t{ children &&\n\t\t\t\t\t\t\t\tchildren( { value, onChange, onFocus } ) }\n\n\t\t\t\t\t\t\t<FormatEdit\n\t\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\tformatTypes={ formatTypes }\n\t\t\t\t\t\t\t\tforwardedRef={ anchorRef }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Popover.__unstableSlotNameProvider>\n\t\t\t\t\t</inputEventContext.Provider>\n\t\t\t\t</keyboardShortcutContext.Provider>\n\t\t\t) }\n\t\t\t{ isSelected && hasFormats && (\n\t\t\t\t<FormatToolbarContainer\n\t\t\t\t\tinline={ inlineToolbar }\n\t\t\t\t\teditableContentElement={ anchorRef.current }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<TagName\n\t\t\t\t// Overridable props.\n\t\t\t\trole=\"textbox\"\n\t\t\t\taria-multiline={ ! disableLineBreaks }\n\t\t\t\taria-readonly={ shouldDisableEditing }\n\t\t\t\t{ ...props }\n\t\t\t\t// Unset draggable (coming from block props) for contentEditable\n\t\t\t\t// elements because it will interfere with multi block selection\n\t\t\t\t// when the contentEditable and draggable elements are the same\n\t\t\t\t// element.\n\t\t\t\tdraggable={ undefined }\n\t\t\t\taria-label={\n\t\t\t\t\tbindingsLabel || props[ 'aria-label' ] || placeholder\n\t\t\t\t}\n\t\t\t\t{ ...autocompleteProps }\n\t\t\t\tref={ useMergeRefs( [\n\t\t\t\t\t// Rich text ref must be first because its focus listener\n\t\t\t\t\t// must be set up before any other ref calls .focus() on\n\t\t\t\t\t// mount.\n\t\t\t\t\trichTextRef,\n\t\t\t\t\tforwardedRef,\n\t\t\t\t\tautocompleteProps.ref,\n\t\t\t\t\tprops.ref,\n\t\t\t\t\tuseEventListeners( {\n\t\t\t\t\t\tregistry,\n\t\t\t\t\t\tgetValue,\n\t\t\t\t\t\tonChange,\n\t\t\t\t\t\t__unstableAllowPrefixTransformations,\n\t\t\t\t\t\tformatTypes,\n\t\t\t\t\t\tonReplace,\n\t\t\t\t\t\tselectionChange,\n\t\t\t\t\t\tisSelected,\n\t\t\t\t\t\tdisableFormats,\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\ttagName,\n\t\t\t\t\t\tonSplit,\n\t\t\t\t\t\t__unstableEmbedURLOnPaste,\n\t\t\t\t\t\tpastePlainText,\n\t\t\t\t\t\tonMerge,\n\t\t\t\t\t\tonRemove,\n\t\t\t\t\t\tremoveEditorOnlyFormats,\n\t\t\t\t\t\tdisableLineBreaks,\n\t\t\t\t\t\tonSplitAtEnd,\n\t\t\t\t\t\tonSplitAtDoubleLineEnd,\n\t\t\t\t\t\tkeyboardShortcuts,\n\t\t\t\t\t\tinputEvents,\n\t\t\t\t\t} ),\n\t\t\t\t\tanchorRef,\n\t\t\t\t] ) }\n\t\t\t\tcontentEditable={ ! shouldDisableEditing }\n\t\t\t\tsuppressContentEditableWarning\n\t\t\t\tclassName={ clsx(\n\t\t\t\t\t'block-editor-rich-text__editable',\n\t\t\t\t\tprops.className,\n\t\t\t\t\t'rich-text'\n\t\t\t\t) }\n\t\t\t\t// Setting tabIndex to 0 is unnecessary, the element is already\n\t\t\t\t// focusable because it's contentEditable. This also fixes a\n\t\t\t\t// Safari bug where it's not possible to Shift+Click multi\n\t\t\t\t// select blocks when Shift Clicking into an element with\n\t\t\t\t// tabIndex because Safari will focus the element. However,\n\t\t\t\t// Safari will correctly ignore nested contentEditable elements.\n\t\t\t\ttabIndex={\n\t\t\t\t\tprops.tabIndex === 0 && ! shouldDisableEditing\n\t\t\t\t\t\t? null\n\t\t\t\t\t\t: props.tabIndex\n\t\t\t\t}\n\t\t\t\tdata-wp-block-attribute-key={ identifier }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\n// This is the private API for the RichText component.\n// It allows access to all props, not just the public ones.\nexport const PrivateRichText = withDeprecations(\n\tforwardRef( RichTextWrapper )\n);\n\nPrivateRichText.Content = Content;\nPrivateRichText.isEmpty = ( value ) => {\n\treturn ! value || value.length === 0;\n};\n\n// This is the public API for the RichText component.\n// We wrap the PrivateRichText component to hide some props from the public API.\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/rich-text/README.md\n */\nconst PublicForwardedRichTextContainer = forwardRef( ( props, ref ) => {\n\tconst context = useBlockEditContext();\n\tconst isPreviewMode = context[ isPreviewModeKey ];\n\n\tif ( isPreviewMode ) {\n\t\t// Remove all non-content props.\n\t\tconst {\n\t\t\tchildren,\n\t\t\ttagName: Tag = 'div',\n\t\t\tvalue,\n\t\t\tonChange,\n\t\t\tisSelected,\n\t\t\tmultiline,\n\t\t\tinlineToolbar,\n\t\t\twrapperClassName,\n\t\t\tautocompleters,\n\t\t\tonReplace,\n\t\t\tplaceholder,\n\t\t\tallowedFormats,\n\t\t\twithoutInteractiveFormatting,\n\t\t\tonRemove,\n\t\t\tonMerge,\n\t\t\tonSplit,\n\t\t\t__unstableOnSplitAtEnd,\n\t\t\t__unstableOnSplitAtDoubleLineEnd,\n\t\t\tidentifier,\n\t\t\tpreserveWhiteSpace,\n\t\t\t__unstablePastePlainText,\n\t\t\t__unstableEmbedURLOnPaste,\n\t\t\t__unstableDisableFormats,\n\t\t\tdisableLineBreaks,\n\t\t\t__unstableAllowPrefixTransformations,\n\t\t\treadOnly,\n\t\t\t...contentProps\n\t\t} = removeNativeProps( props );\n\t\treturn (\n\t\t\t<Tag\n\t\t\t\tref={ ref }\n\t\t\t\t{ ...contentProps }\n\t\t\t\tdangerouslySetInnerHTML={ {\n\t\t\t\t\t__html: valueToHTMLString( value, multiline ),\n\t\t\t\t} }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn <PrivateRichText ref={ ref } { ...props } readOnly={ false } />;\n} );\n\nPublicForwardedRichTextContainer.Content = Content;\nPublicForwardedRichTextContainer.isEmpty = ( value ) => {\n\treturn ! value || value.length === 0;\n};\n\nexport default PublicForwardedRichTextContainer;\nexport { RichTextShortcut } from './shortcut';\nexport { RichTextToolbarButton } from './toolbar-button';\nexport { __unstableRichTextInputEvent } from './input-event';\n"],
5
+ "mappings": "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",
6
6
  "names": ["deprecated", "BlockContext", "getSelectionStart", "getSelectionEnd", "blockEditorStore", "selectionStart", "selectionEnd", "isSelected", "fastDeepEqual", "value", "useRichText", "FormatEdit", "FormatToolbarContainer", "clsx"]
7
7
  }
@@ -146,11 +146,16 @@ function BordersInspectorControl({ label, children, resetAllFilter }) {
146
146
  }
147
147
  function BorderPanel({ clientId, name, setAttributes, settings }) {
148
148
  const isEnabled = (0, import_global_styles.useHasBorderPanel)(settings);
149
- function selector(select) {
150
- const { style: style2, borderColor: borderColor2 } = select(import_store.store).getBlockAttributes(clientId) || {};
151
- return { style: style2, borderColor: borderColor2 };
152
- }
153
- const { style, borderColor } = (0, import_data.useSelect)(selector, [clientId]);
149
+ const { style, borderColor } = (0, import_data.useSelect)(
150
+ (select) => {
151
+ if (!isEnabled) {
152
+ return {};
153
+ }
154
+ const { style: _style, borderColor: _borderColor } = select(import_store.store).getBlockAttributes(clientId) || {};
155
+ return { style: _style, borderColor: _borderColor };
156
+ },
157
+ [clientId, isEnabled]
158
+ );
154
159
  const value = (0, import_element.useMemo)(() => {
155
160
  return attributesToStyle({ style, borderColor });
156
161
  }, [style, borderColor]);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/hooks/border.js"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { hasBlockSupport, getBlockSupport } from '@wordpress/blocks';\nimport { __experimentalHasSplitBorders as hasSplitBorders } from '@wordpress/components';\nimport { Platform, useCallback, useMemo } from '@wordpress/element';\nimport { addFilter } from '@wordpress/hooks';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { getColorClassName } from '../components/colors';\nimport InspectorControls from '../components/inspector-controls';\nimport useMultipleOriginColorsAndGradients from '../components/colors-gradients/use-multiple-origin-colors-and-gradients';\nimport {\n\tcleanEmptyObject,\n\tshouldSkipSerialization,\n\tuseBlockSettings,\n} from './utils';\nimport {\n\tuseHasBorderPanel,\n\tuseHasBorderPanelControls,\n\tBorderPanel as StylesBorderPanel,\n} from '../components/global-styles';\nimport { store as blockEditorStore } from '../store';\nimport { __ } from '@wordpress/i18n';\n\nexport const BORDER_SUPPORT_KEY = '__experimentalBorder';\nexport const SHADOW_SUPPORT_KEY = 'shadow';\n\nconst getColorByProperty = ( colors, property, value ) => {\n\tlet matchedColor;\n\n\tcolors.some( ( origin ) =>\n\t\torigin.colors.some( ( color ) => {\n\t\t\tif ( color[ property ] === value ) {\n\t\t\t\tmatchedColor = color;\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\treturn false;\n\t\t} )\n\t);\n\n\treturn matchedColor;\n};\n\nexport const getMultiOriginColor = ( { colors, namedColor, customColor } ) => {\n\t// Search each origin (default, theme, or user) for matching color by name.\n\tif ( namedColor ) {\n\t\tconst colorObject = getColorByProperty( colors, 'slug', namedColor );\n\t\tif ( colorObject ) {\n\t\t\treturn colorObject;\n\t\t}\n\t}\n\n\t// Skip if no custom color or matching named color.\n\tif ( ! customColor ) {\n\t\treturn { color: undefined };\n\t}\n\n\t// Attempt to find color via custom color value or build new object.\n\tconst colorObject = getColorByProperty( colors, 'color', customColor );\n\treturn colorObject ? colorObject : { color: customColor };\n};\n\nfunction getColorSlugFromVariable( value ) {\n\tconst namedColor = /var:preset\\|color\\|(.+)/.exec( value );\n\tif ( namedColor && namedColor[ 1 ] ) {\n\t\treturn namedColor[ 1 ];\n\t}\n\treturn null;\n}\n\nfunction styleToAttributes( style ) {\n\tif ( hasSplitBorders( style?.border ) ) {\n\t\treturn {\n\t\t\tstyle,\n\t\t\tborderColor: undefined,\n\t\t};\n\t}\n\n\tconst borderColorValue = style?.border?.color;\n\tconst borderColorSlug = borderColorValue?.startsWith( 'var:preset|color|' )\n\t\t? borderColorValue.substring( 'var:preset|color|'.length )\n\t\t: undefined;\n\tconst updatedStyle = { ...style };\n\tupdatedStyle.border = {\n\t\t...updatedStyle.border,\n\t\tcolor: borderColorSlug ? undefined : borderColorValue,\n\t};\n\treturn {\n\t\tstyle: cleanEmptyObject( updatedStyle ),\n\t\tborderColor: borderColorSlug,\n\t};\n}\n\nfunction attributesToStyle( attributes ) {\n\tif ( hasSplitBorders( attributes.style?.border ) ) {\n\t\treturn attributes.style;\n\t}\n\treturn {\n\t\t...attributes.style,\n\t\tborder: {\n\t\t\t...attributes.style?.border,\n\t\t\tcolor: attributes.borderColor\n\t\t\t\t? 'var:preset|color|' + attributes.borderColor\n\t\t\t\t: attributes.style?.border?.color,\n\t\t},\n\t};\n}\n\nfunction BordersInspectorControl( { label, children, resetAllFilter } ) {\n\tconst attributesResetAllFilter = useCallback(\n\t\t( attributes ) => {\n\t\t\tconst existingStyle = attributesToStyle( attributes );\n\t\t\tconst updatedStyle = resetAllFilter( existingStyle );\n\t\t\treturn {\n\t\t\t\t...attributes,\n\t\t\t\t...styleToAttributes( updatedStyle ),\n\t\t\t};\n\t\t},\n\t\t[ resetAllFilter ]\n\t);\n\n\treturn (\n\t\t<InspectorControls\n\t\t\tgroup=\"border\"\n\t\t\tresetAllFilter={ attributesResetAllFilter }\n\t\t\tlabel={ label }\n\t\t>\n\t\t\t{ children }\n\t\t</InspectorControls>\n\t);\n}\n\nexport function BorderPanel( { clientId, name, setAttributes, settings } ) {\n\tconst isEnabled = useHasBorderPanel( settings );\n\tfunction selector( select ) {\n\t\tconst { style, borderColor } =\n\t\t\tselect( blockEditorStore ).getBlockAttributes( clientId ) || {};\n\t\treturn { style, borderColor };\n\t}\n\tconst { style, borderColor } = useSelect( selector, [ clientId ] );\n\tconst value = useMemo( () => {\n\t\treturn attributesToStyle( { style, borderColor } );\n\t}, [ style, borderColor ] );\n\n\tconst onChange = ( newStyle ) => {\n\t\tsetAttributes( styleToAttributes( newStyle ) );\n\t};\n\n\tif ( ! isEnabled ) {\n\t\treturn null;\n\t}\n\n\tconst defaultControls = {\n\t\t...getBlockSupport( name, [\n\t\t\tBORDER_SUPPORT_KEY,\n\t\t\t'__experimentalDefaultControls',\n\t\t] ),\n\t\t...getBlockSupport( name, [\n\t\t\tSHADOW_SUPPORT_KEY,\n\t\t\t'__experimentalDefaultControls',\n\t\t] ),\n\t};\n\n\treturn (\n\t\t<StylesBorderPanel\n\t\t\tas={ BordersInspectorControl }\n\t\t\tpanelId={ clientId }\n\t\t\tsettings={ settings }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tdefaultControls={ defaultControls }\n\t\t/>\n\t);\n}\n\n/**\n * Determine whether there is block support for border properties.\n *\n * @param {string} blockName Block name.\n * @param {string} feature Border feature to check support for.\n *\n * @return {boolean} Whether there is support.\n */\nexport function hasBorderSupport( blockName, feature = 'any' ) {\n\tif ( Platform.OS !== 'web' ) {\n\t\treturn false;\n\t}\n\n\tconst support = getBlockSupport( blockName, BORDER_SUPPORT_KEY );\n\n\tif ( support === true ) {\n\t\treturn true;\n\t}\n\n\tif ( feature === 'any' ) {\n\t\treturn !! (\n\t\t\tsupport?.color ||\n\t\t\tsupport?.radius ||\n\t\t\tsupport?.width ||\n\t\t\tsupport?.style\n\t\t);\n\t}\n\n\treturn !! support?.[ feature ];\n}\n\n/**\n * Determine whether there is block support for shadow properties.\n *\n * @param {string} blockName Block name.\n *\n * @return {boolean} Whether there is support.\n */\nexport function hasShadowSupport( blockName ) {\n\treturn hasBlockSupport( blockName, SHADOW_SUPPORT_KEY );\n}\n\nexport function useBorderPanelLabel( {\n\tblockName,\n\thasBorderControl,\n\thasShadowControl,\n} = {} ) {\n\tconst settings = useBlockSettings( blockName );\n\tconst controls = useHasBorderPanelControls( settings );\n\n\tif ( ! hasBorderControl && ! hasShadowControl && blockName ) {\n\t\thasBorderControl =\n\t\t\tcontrols?.hasBorderColor ||\n\t\t\tcontrols?.hasBorderStyle ||\n\t\t\tcontrols?.hasBorderWidth ||\n\t\t\tcontrols?.hasBorderRadius;\n\t\thasShadowControl = controls?.hasShadow;\n\t}\n\n\tif ( hasBorderControl && hasShadowControl ) {\n\t\treturn __( 'Border & Shadow' );\n\t}\n\n\tif ( hasShadowControl ) {\n\t\treturn __( 'Shadow' );\n\t}\n\n\treturn __( 'Border' );\n}\n\n/**\n * Returns a new style object where the specified border attribute has been\n * removed.\n *\n * @param {Object} style Styles from block attributes.\n * @param {string} attribute The border style attribute to clear.\n *\n * @return {Object} Style object with the specified attribute removed.\n */\nexport function removeBorderAttribute( style, attribute ) {\n\treturn cleanEmptyObject( {\n\t\t...style,\n\t\tborder: {\n\t\t\t...style?.border,\n\t\t\t[ attribute ]: undefined,\n\t\t},\n\t} );\n}\n\n/**\n * Filters registered block settings, extending attributes to include\n * `borderColor` if needed.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Updated block settings.\n */\nfunction addAttributes( settings ) {\n\tif ( ! hasBorderSupport( settings, 'color' ) ) {\n\t\treturn settings;\n\t}\n\n\t// Allow blocks to specify default value if needed.\n\tif ( settings.attributes.borderColor ) {\n\t\treturn settings;\n\t}\n\n\t// Add new borderColor attribute to block settings.\n\treturn {\n\t\t...settings,\n\t\tattributes: {\n\t\t\t...settings.attributes,\n\t\t\tborderColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t},\n\t};\n}\n\n/**\n * Override props assigned to save component to inject border color.\n *\n * @param {Object} props Additional props applied to save element.\n * @param {Object|string} blockNameOrType Block type definition.\n * @param {Object} attributes Block's attributes.\n *\n * @return {Object} Filtered props to apply to save element.\n */\nfunction addSaveProps( props, blockNameOrType, attributes ) {\n\tif (\n\t\t! hasBorderSupport( blockNameOrType, 'color' ) ||\n\t\tshouldSkipSerialization( blockNameOrType, BORDER_SUPPORT_KEY, 'color' )\n\t) {\n\t\treturn props;\n\t}\n\n\tconst borderClasses = getBorderClasses( attributes );\n\tconst newClassName = clsx( props.className, borderClasses );\n\n\t// If we are clearing the last of the previous classes in `className`\n\t// set it to `undefined` to avoid rendering empty DOM attributes.\n\tprops.className = newClassName ? newClassName : undefined;\n\n\treturn props;\n}\n\n/**\n * Generates a CSS class name consisting of all the applicable border color\n * classes given the current block attributes.\n *\n * @param {Object} attributes Block's attributes.\n *\n * @return {string} CSS class name.\n */\nexport function getBorderClasses( attributes ) {\n\tconst { borderColor, style } = attributes;\n\tconst borderColorClass = getColorClassName( 'border-color', borderColor );\n\n\treturn clsx( {\n\t\t'has-border-color': borderColor || style?.border?.color,\n\t\t[ borderColorClass ]: !! borderColorClass,\n\t} );\n}\n\nfunction useBlockProps( { name, borderColor, style } ) {\n\tconst { colors } = useMultipleOriginColorsAndGradients();\n\n\tif (\n\t\t! hasBorderSupport( name, 'color' ) ||\n\t\tshouldSkipSerialization( name, BORDER_SUPPORT_KEY, 'color' )\n\t) {\n\t\treturn {};\n\t}\n\n\tconst { color: borderColorValue } = getMultiOriginColor( {\n\t\tcolors,\n\t\tnamedColor: borderColor,\n\t} );\n\tconst { color: borderTopColor } = getMultiOriginColor( {\n\t\tcolors,\n\t\tnamedColor: getColorSlugFromVariable( style?.border?.top?.color ),\n\t} );\n\tconst { color: borderRightColor } = getMultiOriginColor( {\n\t\tcolors,\n\t\tnamedColor: getColorSlugFromVariable( style?.border?.right?.color ),\n\t} );\n\n\tconst { color: borderBottomColor } = getMultiOriginColor( {\n\t\tcolors,\n\t\tnamedColor: getColorSlugFromVariable( style?.border?.bottom?.color ),\n\t} );\n\tconst { color: borderLeftColor } = getMultiOriginColor( {\n\t\tcolors,\n\t\tnamedColor: getColorSlugFromVariable( style?.border?.left?.color ),\n\t} );\n\n\tconst extraStyles = {\n\t\tborderTopColor: borderTopColor || borderColorValue,\n\t\tborderRightColor: borderRightColor || borderColorValue,\n\t\tborderBottomColor: borderBottomColor || borderColorValue,\n\t\tborderLeftColor: borderLeftColor || borderColorValue,\n\t};\n\n\treturn addSaveProps(\n\t\t{ style: cleanEmptyObject( extraStyles ) || {} },\n\t\tname,\n\t\t{ borderColor, style }\n\t);\n}\n\nexport default {\n\tuseBlockProps,\n\taddSaveProps,\n\tattributeKeys: [ 'borderColor', 'style' ],\n\thasSupport( name ) {\n\t\treturn hasBorderSupport( name, 'color' );\n\t},\n};\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/border/addAttributes',\n\taddAttributes\n);\n"],
5
- "mappings": "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",
6
- "names": ["colorObject", "hasSplitBorders", "InspectorControls", "style", "borderColor", "blockEditorStore", "StylesBorderPanel", "clsx", "useMultipleOriginColorsAndGradients"]
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { hasBlockSupport, getBlockSupport } from '@wordpress/blocks';\nimport { __experimentalHasSplitBorders as hasSplitBorders } from '@wordpress/components';\nimport { Platform, useCallback, useMemo } from '@wordpress/element';\nimport { addFilter } from '@wordpress/hooks';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { getColorClassName } from '../components/colors';\nimport InspectorControls from '../components/inspector-controls';\nimport useMultipleOriginColorsAndGradients from '../components/colors-gradients/use-multiple-origin-colors-and-gradients';\nimport {\n\tcleanEmptyObject,\n\tshouldSkipSerialization,\n\tuseBlockSettings,\n} from './utils';\nimport {\n\tuseHasBorderPanel,\n\tuseHasBorderPanelControls,\n\tBorderPanel as StylesBorderPanel,\n} from '../components/global-styles';\nimport { store as blockEditorStore } from '../store';\nimport { __ } from '@wordpress/i18n';\n\nexport const BORDER_SUPPORT_KEY = '__experimentalBorder';\nexport const SHADOW_SUPPORT_KEY = 'shadow';\n\nconst getColorByProperty = ( colors, property, value ) => {\n\tlet matchedColor;\n\n\tcolors.some( ( origin ) =>\n\t\torigin.colors.some( ( color ) => {\n\t\t\tif ( color[ property ] === value ) {\n\t\t\t\tmatchedColor = color;\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\treturn false;\n\t\t} )\n\t);\n\n\treturn matchedColor;\n};\n\nexport const getMultiOriginColor = ( { colors, namedColor, customColor } ) => {\n\t// Search each origin (default, theme, or user) for matching color by name.\n\tif ( namedColor ) {\n\t\tconst colorObject = getColorByProperty( colors, 'slug', namedColor );\n\t\tif ( colorObject ) {\n\t\t\treturn colorObject;\n\t\t}\n\t}\n\n\t// Skip if no custom color or matching named color.\n\tif ( ! customColor ) {\n\t\treturn { color: undefined };\n\t}\n\n\t// Attempt to find color via custom color value or build new object.\n\tconst colorObject = getColorByProperty( colors, 'color', customColor );\n\treturn colorObject ? colorObject : { color: customColor };\n};\n\nfunction getColorSlugFromVariable( value ) {\n\tconst namedColor = /var:preset\\|color\\|(.+)/.exec( value );\n\tif ( namedColor && namedColor[ 1 ] ) {\n\t\treturn namedColor[ 1 ];\n\t}\n\treturn null;\n}\n\nfunction styleToAttributes( style ) {\n\tif ( hasSplitBorders( style?.border ) ) {\n\t\treturn {\n\t\t\tstyle,\n\t\t\tborderColor: undefined,\n\t\t};\n\t}\n\n\tconst borderColorValue = style?.border?.color;\n\tconst borderColorSlug = borderColorValue?.startsWith( 'var:preset|color|' )\n\t\t? borderColorValue.substring( 'var:preset|color|'.length )\n\t\t: undefined;\n\tconst updatedStyle = { ...style };\n\tupdatedStyle.border = {\n\t\t...updatedStyle.border,\n\t\tcolor: borderColorSlug ? undefined : borderColorValue,\n\t};\n\treturn {\n\t\tstyle: cleanEmptyObject( updatedStyle ),\n\t\tborderColor: borderColorSlug,\n\t};\n}\n\nfunction attributesToStyle( attributes ) {\n\tif ( hasSplitBorders( attributes.style?.border ) ) {\n\t\treturn attributes.style;\n\t}\n\treturn {\n\t\t...attributes.style,\n\t\tborder: {\n\t\t\t...attributes.style?.border,\n\t\t\tcolor: attributes.borderColor\n\t\t\t\t? 'var:preset|color|' + attributes.borderColor\n\t\t\t\t: attributes.style?.border?.color,\n\t\t},\n\t};\n}\n\nfunction BordersInspectorControl( { label, children, resetAllFilter } ) {\n\tconst attributesResetAllFilter = useCallback(\n\t\t( attributes ) => {\n\t\t\tconst existingStyle = attributesToStyle( attributes );\n\t\t\tconst updatedStyle = resetAllFilter( existingStyle );\n\t\t\treturn {\n\t\t\t\t...attributes,\n\t\t\t\t...styleToAttributes( updatedStyle ),\n\t\t\t};\n\t\t},\n\t\t[ resetAllFilter ]\n\t);\n\n\treturn (\n\t\t<InspectorControls\n\t\t\tgroup=\"border\"\n\t\t\tresetAllFilter={ attributesResetAllFilter }\n\t\t\tlabel={ label }\n\t\t>\n\t\t\t{ children }\n\t\t</InspectorControls>\n\t);\n}\n\nexport function BorderPanel( { clientId, name, setAttributes, settings } ) {\n\tconst isEnabled = useHasBorderPanel( settings );\n\tconst { style, borderColor } = useSelect(\n\t\t( select ) => {\n\t\t\t// Early return to avoid subscription when disabled\n\t\t\tif ( ! isEnabled ) {\n\t\t\t\treturn {};\n\t\t\t}\n\t\t\tconst { style: _style, borderColor: _borderColor } =\n\t\t\t\tselect( blockEditorStore ).getBlockAttributes( clientId ) || {};\n\t\t\treturn { style: _style, borderColor: _borderColor };\n\t\t},\n\t\t[ clientId, isEnabled ]\n\t);\n\tconst value = useMemo( () => {\n\t\treturn attributesToStyle( { style, borderColor } );\n\t}, [ style, borderColor ] );\n\n\tconst onChange = ( newStyle ) => {\n\t\tsetAttributes( styleToAttributes( newStyle ) );\n\t};\n\n\tif ( ! isEnabled ) {\n\t\treturn null;\n\t}\n\n\tconst defaultControls = {\n\t\t...getBlockSupport( name, [\n\t\t\tBORDER_SUPPORT_KEY,\n\t\t\t'__experimentalDefaultControls',\n\t\t] ),\n\t\t...getBlockSupport( name, [\n\t\t\tSHADOW_SUPPORT_KEY,\n\t\t\t'__experimentalDefaultControls',\n\t\t] ),\n\t};\n\n\treturn (\n\t\t<StylesBorderPanel\n\t\t\tas={ BordersInspectorControl }\n\t\t\tpanelId={ clientId }\n\t\t\tsettings={ settings }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tdefaultControls={ defaultControls }\n\t\t/>\n\t);\n}\n\n/**\n * Determine whether there is block support for border properties.\n *\n * @param {string} blockName Block name.\n * @param {string} feature Border feature to check support for.\n *\n * @return {boolean} Whether there is support.\n */\nexport function hasBorderSupport( blockName, feature = 'any' ) {\n\tif ( Platform.OS !== 'web' ) {\n\t\treturn false;\n\t}\n\n\tconst support = getBlockSupport( blockName, BORDER_SUPPORT_KEY );\n\n\tif ( support === true ) {\n\t\treturn true;\n\t}\n\n\tif ( feature === 'any' ) {\n\t\treturn !! (\n\t\t\tsupport?.color ||\n\t\t\tsupport?.radius ||\n\t\t\tsupport?.width ||\n\t\t\tsupport?.style\n\t\t);\n\t}\n\n\treturn !! support?.[ feature ];\n}\n\n/**\n * Determine whether there is block support for shadow properties.\n *\n * @param {string} blockName Block name.\n *\n * @return {boolean} Whether there is support.\n */\nexport function hasShadowSupport( blockName ) {\n\treturn hasBlockSupport( blockName, SHADOW_SUPPORT_KEY );\n}\n\nexport function useBorderPanelLabel( {\n\tblockName,\n\thasBorderControl,\n\thasShadowControl,\n} = {} ) {\n\tconst settings = useBlockSettings( blockName );\n\tconst controls = useHasBorderPanelControls( settings );\n\n\tif ( ! hasBorderControl && ! hasShadowControl && blockName ) {\n\t\thasBorderControl =\n\t\t\tcontrols?.hasBorderColor ||\n\t\t\tcontrols?.hasBorderStyle ||\n\t\t\tcontrols?.hasBorderWidth ||\n\t\t\tcontrols?.hasBorderRadius;\n\t\thasShadowControl = controls?.hasShadow;\n\t}\n\n\tif ( hasBorderControl && hasShadowControl ) {\n\t\treturn __( 'Border & Shadow' );\n\t}\n\n\tif ( hasShadowControl ) {\n\t\treturn __( 'Shadow' );\n\t}\n\n\treturn __( 'Border' );\n}\n\n/**\n * Returns a new style object where the specified border attribute has been\n * removed.\n *\n * @param {Object} style Styles from block attributes.\n * @param {string} attribute The border style attribute to clear.\n *\n * @return {Object} Style object with the specified attribute removed.\n */\nexport function removeBorderAttribute( style, attribute ) {\n\treturn cleanEmptyObject( {\n\t\t...style,\n\t\tborder: {\n\t\t\t...style?.border,\n\t\t\t[ attribute ]: undefined,\n\t\t},\n\t} );\n}\n\n/**\n * Filters registered block settings, extending attributes to include\n * `borderColor` if needed.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Updated block settings.\n */\nfunction addAttributes( settings ) {\n\tif ( ! hasBorderSupport( settings, 'color' ) ) {\n\t\treturn settings;\n\t}\n\n\t// Allow blocks to specify default value if needed.\n\tif ( settings.attributes.borderColor ) {\n\t\treturn settings;\n\t}\n\n\t// Add new borderColor attribute to block settings.\n\treturn {\n\t\t...settings,\n\t\tattributes: {\n\t\t\t...settings.attributes,\n\t\t\tborderColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t},\n\t};\n}\n\n/**\n * Override props assigned to save component to inject border color.\n *\n * @param {Object} props Additional props applied to save element.\n * @param {Object|string} blockNameOrType Block type definition.\n * @param {Object} attributes Block's attributes.\n *\n * @return {Object} Filtered props to apply to save element.\n */\nfunction addSaveProps( props, blockNameOrType, attributes ) {\n\tif (\n\t\t! hasBorderSupport( blockNameOrType, 'color' ) ||\n\t\tshouldSkipSerialization( blockNameOrType, BORDER_SUPPORT_KEY, 'color' )\n\t) {\n\t\treturn props;\n\t}\n\n\tconst borderClasses = getBorderClasses( attributes );\n\tconst newClassName = clsx( props.className, borderClasses );\n\n\t// If we are clearing the last of the previous classes in `className`\n\t// set it to `undefined` to avoid rendering empty DOM attributes.\n\tprops.className = newClassName ? newClassName : undefined;\n\n\treturn props;\n}\n\n/**\n * Generates a CSS class name consisting of all the applicable border color\n * classes given the current block attributes.\n *\n * @param {Object} attributes Block's attributes.\n *\n * @return {string} CSS class name.\n */\nexport function getBorderClasses( attributes ) {\n\tconst { borderColor, style } = attributes;\n\tconst borderColorClass = getColorClassName( 'border-color', borderColor );\n\n\treturn clsx( {\n\t\t'has-border-color': borderColor || style?.border?.color,\n\t\t[ borderColorClass ]: !! borderColorClass,\n\t} );\n}\n\nfunction useBlockProps( { name, borderColor, style } ) {\n\tconst { colors } = useMultipleOriginColorsAndGradients();\n\n\tif (\n\t\t! hasBorderSupport( name, 'color' ) ||\n\t\tshouldSkipSerialization( name, BORDER_SUPPORT_KEY, 'color' )\n\t) {\n\t\treturn {};\n\t}\n\n\tconst { color: borderColorValue } = getMultiOriginColor( {\n\t\tcolors,\n\t\tnamedColor: borderColor,\n\t} );\n\tconst { color: borderTopColor } = getMultiOriginColor( {\n\t\tcolors,\n\t\tnamedColor: getColorSlugFromVariable( style?.border?.top?.color ),\n\t} );\n\tconst { color: borderRightColor } = getMultiOriginColor( {\n\t\tcolors,\n\t\tnamedColor: getColorSlugFromVariable( style?.border?.right?.color ),\n\t} );\n\n\tconst { color: borderBottomColor } = getMultiOriginColor( {\n\t\tcolors,\n\t\tnamedColor: getColorSlugFromVariable( style?.border?.bottom?.color ),\n\t} );\n\tconst { color: borderLeftColor } = getMultiOriginColor( {\n\t\tcolors,\n\t\tnamedColor: getColorSlugFromVariable( style?.border?.left?.color ),\n\t} );\n\n\tconst extraStyles = {\n\t\tborderTopColor: borderTopColor || borderColorValue,\n\t\tborderRightColor: borderRightColor || borderColorValue,\n\t\tborderBottomColor: borderBottomColor || borderColorValue,\n\t\tborderLeftColor: borderLeftColor || borderColorValue,\n\t};\n\n\treturn addSaveProps(\n\t\t{ style: cleanEmptyObject( extraStyles ) || {} },\n\t\tname,\n\t\t{ borderColor, style }\n\t);\n}\n\nexport default {\n\tuseBlockProps,\n\taddSaveProps,\n\tattributeKeys: [ 'borderColor', 'style' ],\n\thasSupport( name ) {\n\t\treturn hasBorderSupport( name, 'color' );\n\t},\n};\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/border/addAttributes',\n\taddAttributes\n);\n"],
5
+ "mappings": "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",
6
+ "names": ["colorObject", "hasSplitBorders", "InspectorControls", "blockEditorStore", "StylesBorderPanel", "clsx", "useMultipleOriginColorsAndGradients"]
7
7
  }