@wordpress/block-editor 15.11.0 → 15.11.1-next.v.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 (268) hide show
  1. package/build/components/block-controls/index.cjs +1 -1
  2. package/build/components/block-controls/index.cjs.map +2 -2
  3. package/build/components/block-inspector/index.cjs +6 -19
  4. package/build/components/block-inspector/index.cjs.map +3 -3
  5. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.cjs +37 -13
  6. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.cjs.map +2 -2
  7. package/build/components/block-settings-menu-controls/index.cjs +1 -1
  8. package/build/components/block-settings-menu-controls/index.cjs.map +2 -2
  9. package/build/components/block-toolbar/index.cjs +1 -1
  10. package/build/components/block-toolbar/index.cjs.map +2 -2
  11. package/build/components/block-tools/index.cjs +2 -26
  12. package/build/components/block-tools/index.cjs.map +2 -2
  13. package/build/components/block-visibility/index.cjs +7 -9
  14. package/build/components/block-visibility/index.cjs.map +3 -3
  15. package/build/components/block-visibility/modal.cjs +13 -11
  16. package/build/components/block-visibility/modal.cjs.map +2 -2
  17. package/build/components/block-visibility/use-block-visibility.cjs +1 -1
  18. package/build/components/block-visibility/use-block-visibility.cjs.map +2 -2
  19. package/build/components/block-visibility/utils.cjs +5 -1
  20. package/build/components/block-visibility/utils.cjs.map +2 -2
  21. package/build/components/block-visibility/viewport-menu-item.cjs +11 -4
  22. package/build/components/block-visibility/viewport-menu-item.cjs.map +2 -2
  23. package/build/components/block-visibility/viewport-toolbar.cjs +4 -6
  24. package/build/components/block-visibility/viewport-toolbar.cjs.map +2 -2
  25. package/build/components/block-visibility/viewport-visibility-info.cjs +121 -0
  26. package/build/components/block-visibility/viewport-visibility-info.cjs.map +7 -0
  27. package/build/components/color-palette/with-color-context.cjs +1 -1
  28. package/build/components/color-palette/with-color-context.cjs.map +2 -2
  29. package/build/components/color-style-selector/index.cjs +1 -1
  30. package/build/components/color-style-selector/index.cjs.map +2 -2
  31. package/build/components/colors/with-colors.cjs +5 -3
  32. package/build/components/colors/with-colors.cjs.map +2 -2
  33. package/build/components/colors-gradients/dropdown.cjs +1 -1
  34. package/build/components/colors-gradients/dropdown.cjs.map +2 -2
  35. package/build/components/editable-text/index.cjs +5 -1
  36. package/build/components/editable-text/index.cjs.map +2 -2
  37. package/build/components/font-sizes/with-font-sizes.cjs +5 -3
  38. package/build/components/font-sizes/with-font-sizes.cjs.map +2 -2
  39. package/build/components/global-styles/advanced-panel.cjs +26 -13
  40. package/build/components/global-styles/advanced-panel.cjs.map +2 -2
  41. package/build/components/global-styles/filters-panel.cjs +1 -1
  42. package/build/components/global-styles/filters-panel.cjs.map +2 -2
  43. package/build/components/global-styles/shadow-panel-components.cjs +1 -1
  44. package/build/components/global-styles/shadow-panel-components.cjs.map +2 -2
  45. package/build/components/gradients/with-gradient.cjs +1 -1
  46. package/build/components/gradients/with-gradient.cjs.map +2 -2
  47. package/build/components/inspector-controls/fill.cjs +12 -2
  48. package/build/components/inspector-controls/fill.cjs.map +2 -2
  49. package/build/components/inspector-controls/index.cjs +1 -1
  50. package/build/components/inspector-controls/index.cjs.map +2 -2
  51. package/build/components/inspector-controls-tabs/index.cjs +1 -1
  52. package/build/components/inspector-controls-tabs/index.cjs.map +2 -2
  53. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.cjs +2 -2
  54. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.cjs.map +2 -2
  55. package/build/components/list-view/block-select-button.cjs +8 -16
  56. package/build/components/list-view/block-select-button.cjs.map +2 -2
  57. package/build/components/list-view/block.cjs +29 -34
  58. package/build/components/list-view/block.cjs.map +3 -3
  59. package/build/components/list-view/utils.cjs +3 -1
  60. package/build/components/list-view/utils.cjs.map +2 -2
  61. package/build/components/provider/index.cjs +7 -8
  62. package/build/components/provider/index.cjs.map +2 -2
  63. package/build/components/provider/with-registry-provider.cjs +1 -1
  64. package/build/components/provider/with-registry-provider.cjs.map +2 -2
  65. package/build/components/use-block-commands/index.cjs +2 -34
  66. package/build/components/use-block-commands/index.cjs.map +2 -2
  67. package/build/hooks/cross-origin-isolation.cjs +1 -1
  68. package/build/hooks/cross-origin-isolation.cjs.map +2 -2
  69. package/build/hooks/custom-css.cjs +141 -0
  70. package/build/hooks/custom-css.cjs.map +7 -0
  71. package/build/hooks/fit-text.cjs +14 -7
  72. package/build/hooks/fit-text.cjs.map +2 -2
  73. package/build/hooks/grid-visualizer.cjs +1 -1
  74. package/build/hooks/grid-visualizer.cjs.map +2 -2
  75. package/build/hooks/index.cjs +4 -0
  76. package/build/hooks/index.cjs.map +3 -3
  77. package/build/hooks/layout.cjs +10 -4
  78. package/build/hooks/layout.cjs.map +2 -2
  79. package/build/hooks/list-view.cjs +9 -5
  80. package/build/hooks/list-view.cjs.map +3 -3
  81. package/build/hooks/utils.cjs +2 -2
  82. package/build/hooks/utils.cjs.map +2 -2
  83. package/build/layouts/grid.cjs +12 -1
  84. package/build/layouts/grid.cjs.map +2 -2
  85. package/build/store/defaults.cjs +3 -0
  86. package/build/store/defaults.cjs.map +2 -2
  87. package/build/store/private-selectors.cjs +45 -37
  88. package/build/store/private-selectors.cjs.map +2 -2
  89. package/build/utils/fit-text-utils.cjs +5 -1
  90. package/build/utils/fit-text-utils.cjs.map +2 -2
  91. package/build-module/components/block-controls/index.mjs +1 -1
  92. package/build-module/components/block-controls/index.mjs.map +2 -2
  93. package/build-module/components/block-inspector/index.mjs +6 -19
  94. package/build-module/components/block-inspector/index.mjs.map +2 -2
  95. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.mjs +37 -13
  96. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.mjs.map +2 -2
  97. package/build-module/components/block-settings-menu-controls/index.mjs +2 -2
  98. package/build-module/components/block-settings-menu-controls/index.mjs.map +2 -2
  99. package/build-module/components/block-toolbar/index.mjs +2 -2
  100. package/build-module/components/block-toolbar/index.mjs.map +2 -2
  101. package/build-module/components/block-tools/index.mjs +2 -26
  102. package/build-module/components/block-tools/index.mjs.map +2 -2
  103. package/build-module/components/block-visibility/index.mjs +6 -9
  104. package/build-module/components/block-visibility/index.mjs.map +2 -2
  105. package/build-module/components/block-visibility/modal.mjs +13 -11
  106. package/build-module/components/block-visibility/modal.mjs.map +2 -2
  107. package/build-module/components/block-visibility/use-block-visibility.mjs +1 -1
  108. package/build-module/components/block-visibility/use-block-visibility.mjs.map +2 -2
  109. package/build-module/components/block-visibility/utils.mjs +5 -1
  110. package/build-module/components/block-visibility/utils.mjs.map +2 -2
  111. package/build-module/components/block-visibility/viewport-menu-item.mjs +11 -4
  112. package/build-module/components/block-visibility/viewport-menu-item.mjs.map +2 -2
  113. package/build-module/components/block-visibility/viewport-toolbar.mjs +4 -6
  114. package/build-module/components/block-visibility/viewport-toolbar.mjs.map +2 -2
  115. package/build-module/components/block-visibility/viewport-visibility-info.mjs +95 -0
  116. package/build-module/components/block-visibility/viewport-visibility-info.mjs.map +7 -0
  117. package/build-module/components/color-palette/with-color-context.mjs +1 -1
  118. package/build-module/components/color-palette/with-color-context.mjs.map +2 -2
  119. package/build-module/components/color-style-selector/index.mjs +1 -1
  120. package/build-module/components/color-style-selector/index.mjs.map +2 -2
  121. package/build-module/components/colors/with-colors.mjs +5 -3
  122. package/build-module/components/colors/with-colors.mjs.map +2 -2
  123. package/build-module/components/colors-gradients/dropdown.mjs +1 -1
  124. package/build-module/components/colors-gradients/dropdown.mjs.map +2 -2
  125. package/build-module/components/editable-text/index.mjs +5 -1
  126. package/build-module/components/editable-text/index.mjs.map +2 -2
  127. package/build-module/components/font-sizes/with-font-sizes.mjs +5 -3
  128. package/build-module/components/font-sizes/with-font-sizes.mjs.map +2 -2
  129. package/build-module/components/global-styles/advanced-panel.mjs +22 -13
  130. package/build-module/components/global-styles/advanced-panel.mjs.map +2 -2
  131. package/build-module/components/global-styles/filters-panel.mjs +1 -1
  132. package/build-module/components/global-styles/filters-panel.mjs.map +2 -2
  133. package/build-module/components/global-styles/shadow-panel-components.mjs +1 -1
  134. package/build-module/components/global-styles/shadow-panel-components.mjs.map +2 -2
  135. package/build-module/components/gradients/with-gradient.mjs +1 -1
  136. package/build-module/components/gradients/with-gradient.mjs.map +2 -2
  137. package/build-module/components/inspector-controls/fill.mjs +12 -2
  138. package/build-module/components/inspector-controls/fill.mjs.map +2 -2
  139. package/build-module/components/inspector-controls/index.mjs +1 -1
  140. package/build-module/components/inspector-controls/index.mjs.map +2 -2
  141. package/build-module/components/inspector-controls-tabs/index.mjs +1 -1
  142. package/build-module/components/inspector-controls-tabs/index.mjs.map +2 -2
  143. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.mjs +2 -2
  144. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.mjs.map +2 -2
  145. package/build-module/components/list-view/block-select-button.mjs +8 -16
  146. package/build-module/components/list-view/block-select-button.mjs.map +2 -2
  147. package/build-module/components/list-view/block.mjs +31 -36
  148. package/build-module/components/list-view/block.mjs.map +2 -2
  149. package/build-module/components/list-view/utils.mjs +3 -1
  150. package/build-module/components/list-view/utils.mjs.map +2 -2
  151. package/build-module/components/provider/index.mjs +7 -8
  152. package/build-module/components/provider/index.mjs.map +2 -2
  153. package/build-module/components/provider/with-registry-provider.mjs +1 -1
  154. package/build-module/components/provider/with-registry-provider.mjs.map +2 -2
  155. package/build-module/components/use-block-commands/index.mjs +3 -37
  156. package/build-module/components/use-block-commands/index.mjs.map +2 -2
  157. package/build-module/hooks/cross-origin-isolation.mjs +1 -1
  158. package/build-module/hooks/cross-origin-isolation.mjs.map +2 -2
  159. package/build-module/hooks/custom-css.mjs +112 -0
  160. package/build-module/hooks/custom-css.mjs.map +7 -0
  161. package/build-module/hooks/fit-text.mjs +14 -7
  162. package/build-module/hooks/fit-text.mjs.map +2 -2
  163. package/build-module/hooks/grid-visualizer.mjs +1 -1
  164. package/build-module/hooks/grid-visualizer.mjs.map +2 -2
  165. package/build-module/hooks/index.mjs +4 -0
  166. package/build-module/hooks/index.mjs.map +2 -2
  167. package/build-module/hooks/layout.mjs +10 -4
  168. package/build-module/hooks/layout.mjs.map +2 -2
  169. package/build-module/hooks/list-view.mjs +10 -6
  170. package/build-module/hooks/list-view.mjs.map +2 -2
  171. package/build-module/hooks/utils.mjs +2 -2
  172. package/build-module/hooks/utils.mjs.map +2 -2
  173. package/build-module/layouts/grid.mjs +12 -1
  174. package/build-module/layouts/grid.mjs.map +2 -2
  175. package/build-module/store/defaults.mjs +3 -0
  176. package/build-module/store/defaults.mjs.map +2 -2
  177. package/build-module/store/private-selectors.mjs +42 -40
  178. package/build-module/store/private-selectors.mjs.map +2 -2
  179. package/build-module/utils/fit-text-utils.mjs +5 -1
  180. package/build-module/utils/fit-text-utils.mjs.map +2 -2
  181. package/build-style/style-rtl.css +3 -0
  182. package/build-style/style.css +3 -0
  183. package/package.json +39 -39
  184. package/src/components/block-controls/index.js +1 -1
  185. package/src/components/block-controls/test/index.js +1 -0
  186. package/src/components/block-edit/test/edit.js +10 -0
  187. package/src/components/block-inspector/index.js +14 -32
  188. package/src/components/block-list/use-block-props/use-selected-block-event-handlers.js +49 -29
  189. package/src/components/block-preview/test/index.js +11 -7
  190. package/src/components/block-settings-menu-controls/index.js +2 -2
  191. package/src/components/block-switcher/test/index.js +2 -0
  192. package/src/components/block-switcher/test/use-transformed.patterns.js +2 -0
  193. package/src/components/block-switcher/test/utils.js +2 -0
  194. package/src/components/block-toolbar/index.js +2 -2
  195. package/src/components/block-tools/index.js +2 -29
  196. package/src/components/block-visibility/index.js +3 -19
  197. package/src/components/block-visibility/modal.js +16 -14
  198. package/src/components/block-visibility/test/use-block-visibility.js +27 -25
  199. package/src/components/block-visibility/test/utils.js +24 -8
  200. package/src/components/block-visibility/use-block-visibility.js +1 -4
  201. package/src/components/block-visibility/utils.js +9 -1
  202. package/src/components/block-visibility/viewport-menu-item.js +11 -5
  203. package/src/components/block-visibility/viewport-toolbar.js +5 -6
  204. package/src/components/block-visibility/viewport-visibility-info.js +131 -0
  205. package/src/components/color-palette/with-color-context.js +1 -1
  206. package/src/components/color-style-selector/index.js +2 -3
  207. package/src/components/colors/with-colors.js +23 -20
  208. package/src/components/colors-gradients/dropdown.js +2 -3
  209. package/src/components/editable-text/index.js +5 -1
  210. package/src/components/font-sizes/with-font-sizes.js +13 -10
  211. package/src/components/global-styles/advanced-panel.js +35 -16
  212. package/src/components/global-styles/filters-panel.js +2 -3
  213. package/src/components/global-styles/shadow-panel-components.js +1 -1
  214. package/src/components/global-styles/style.scss +9 -5
  215. package/src/components/gradients/with-gradient.js +7 -4
  216. package/src/components/inner-blocks/test/index.js +2 -0
  217. package/src/components/inspector-controls/fill.js +25 -5
  218. package/src/components/inspector-controls/index.js +1 -1
  219. package/src/components/inspector-controls-tabs/index.js +5 -1
  220. package/src/components/inspector-controls-tabs/use-inspector-controls-tabs.js +3 -4
  221. package/src/components/link-control/test/index.js +6 -1
  222. package/src/components/list-view/block-select-button.js +16 -25
  223. package/src/components/list-view/block.js +38 -43
  224. package/src/components/list-view/utils.js +4 -2
  225. package/src/components/media-replace-flow/test/index.js +13 -11
  226. package/src/components/provider/index.js +11 -10
  227. package/src/components/provider/test/use-block-sync.js +1 -0
  228. package/src/components/provider/with-registry-provider.js +1 -1
  229. package/src/components/use-block-commands/index.js +0 -41
  230. package/src/hooks/cross-origin-isolation.js +19 -18
  231. package/src/hooks/custom-css.js +176 -0
  232. package/src/hooks/fit-text.js +20 -5
  233. package/src/hooks/grid-visualizer.js +15 -14
  234. package/src/hooks/index.js +4 -0
  235. package/src/hooks/layout.js +55 -43
  236. package/src/hooks/list-view.js +10 -6
  237. package/src/hooks/test/align.js +1 -0
  238. package/src/hooks/test/allowed-blocks.js +8 -0
  239. package/src/hooks/test/auto-inspector-controls.js +4 -0
  240. package/src/hooks/test/font-size.js +1 -0
  241. package/src/hooks/test/metadata.js +4 -0
  242. package/src/hooks/test/text-align.js +1 -0
  243. package/src/hooks/utils.js +123 -119
  244. package/src/layouts/grid.js +19 -3
  245. package/src/layouts/test/grid.js +1 -1
  246. package/src/store/defaults.js +4 -0
  247. package/src/store/private-selectors.js +94 -63
  248. package/src/store/test/actions.js +7 -0
  249. package/src/store/test/private-selectors.js +116 -119
  250. package/src/store/test/reducer.js +4 -0
  251. package/src/store/test/registry-selectors.js +2 -0
  252. package/src/store/test/selectors.js +19 -0
  253. package/src/utils/fit-text-utils.js +12 -2
  254. package/build/components/block-visibility/block-visibility-info.cjs +0 -63
  255. package/build/components/block-visibility/block-visibility-info.cjs.map +0 -7
  256. package/build/components/block-visibility/menu-item.cjs +0 -109
  257. package/build/components/block-visibility/menu-item.cjs.map +0 -7
  258. package/build/components/block-visibility/toolbar.cjs +0 -92
  259. package/build/components/block-visibility/toolbar.cjs.map +0 -7
  260. package/build-module/components/block-visibility/block-visibility-info.mjs +0 -47
  261. package/build-module/components/block-visibility/block-visibility-info.mjs.map +0 -7
  262. package/build-module/components/block-visibility/menu-item.mjs +0 -88
  263. package/build-module/components/block-visibility/menu-item.mjs.map +0 -7
  264. package/build-module/components/block-visibility/toolbar.mjs +0 -71
  265. package/build-module/components/block-visibility/toolbar.mjs.map +0 -7
  266. package/src/components/block-visibility/block-visibility-info.js +0 -62
  267. package/src/components/block-visibility/menu-item.js +0 -96
  268. package/src/components/block-visibility/toolbar.js +0 -88
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/global-styles/filters-panel.js"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalHStack as HStack,\n\t__experimentalZStack as ZStack,\n\t__experimentalDropdownContentWrapper as DropdownContentWrapper,\n\tMenuGroup,\n\tColorIndicator,\n\tDuotonePicker,\n\tDuotoneSwatch,\n\tDropdown,\n\tFlex,\n\tFlexItem,\n\tButton,\n} from '@wordpress/components';\nimport { __, _x } from '@wordpress/i18n';\nimport { useCallback, useMemo, useRef } from '@wordpress/element';\nimport { reset as resetIcon } from '@wordpress/icons';\nimport { getValueFromVariable } from '@wordpress/global-styles-engine';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from './utils';\nimport { setImmutably } from '../../utils/object';\n\nconst EMPTY_ARRAY = [];\nfunction useMultiOriginColorPresets(\n\tsettings,\n\t{ presetSetting, defaultSetting }\n) {\n\tconst disableDefault = ! settings?.color?.[ defaultSetting ];\n\tconst userPresets =\n\t\tsettings?.color?.[ presetSetting ]?.custom || EMPTY_ARRAY;\n\tconst themePresets =\n\t\tsettings?.color?.[ presetSetting ]?.theme || EMPTY_ARRAY;\n\tconst defaultPresets =\n\t\tsettings?.color?.[ presetSetting ]?.default || EMPTY_ARRAY;\n\treturn useMemo(\n\t\t() => [\n\t\t\t...userPresets,\n\t\t\t...themePresets,\n\t\t\t...( disableDefault ? EMPTY_ARRAY : defaultPresets ),\n\t\t],\n\t\t[ disableDefault, userPresets, themePresets, defaultPresets ]\n\t);\n}\n\nexport function useHasFiltersPanel( settings ) {\n\treturn useHasDuotoneControl( settings );\n}\n\nfunction useHasDuotoneControl( settings ) {\n\treturn (\n\t\tsettings.color.customDuotone ||\n\t\tsettings.color.defaultDuotone ||\n\t\tsettings.color.duotone.length > 0\n\t);\n}\n\nfunction FiltersToolsPanel( {\n\tresetAllFilter,\n\tonChange,\n\tvalue,\n\tpanelId,\n\tchildren,\n} ) {\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\tconst resetAll = () => {\n\t\tconst updatedValue = resetAllFilter( value );\n\t\tonChange( updatedValue );\n\t};\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tlabel={ _x( 'Filters', 'Name for applying graphical effects' ) }\n\t\t\tresetAll={ resetAll }\n\t\t\tpanelId={ panelId }\n\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t>\n\t\t\t{ children }\n\t\t</ToolsPanel>\n\t);\n}\n\nconst DEFAULT_CONTROLS = {\n\tduotone: true,\n};\n\nconst popoverProps = {\n\tplacement: 'left-start',\n\toffset: 36,\n\tshift: true,\n\tclassName: 'block-editor-duotone-control__popover',\n\theaderTitle: __( 'Duotone' ),\n};\n\nconst LabeledColorIndicator = ( { indicator, label } ) => (\n\t<HStack justify=\"flex-start\">\n\t\t<ZStack isLayered={ false } offset={ -8 }>\n\t\t\t<Flex expanded={ false }>\n\t\t\t\t{ indicator === 'unset' || ! indicator ? (\n\t\t\t\t\t<ColorIndicator className=\"block-editor-duotone-control__unset-indicator\" />\n\t\t\t\t) : (\n\t\t\t\t\t<DuotoneSwatch values={ indicator } />\n\t\t\t\t) }\n\t\t\t</Flex>\n\t\t</ZStack>\n\t\t<FlexItem title={ label }>{ label }</FlexItem>\n\t</HStack>\n);\n\nconst renderToggle =\n\t( duotone, resetDuotone ) =>\n\t( { onToggle, isOpen } ) => {\n\t\tconst duotoneButtonRef = useRef( undefined );\n\n\t\tconst toggleProps = {\n\t\t\tonClick: onToggle,\n\t\t\tclassName: clsx(\n\t\t\t\t'block-editor-global-styles-filters-panel__dropdown-toggle',\n\t\t\t\t{ 'is-open': isOpen }\n\t\t\t),\n\t\t\t'aria-expanded': isOpen,\n\t\t\tref: duotoneButtonRef,\n\t\t};\n\n\t\tconst removeButtonProps = {\n\t\t\tonClick: () => {\n\t\t\t\tif ( isOpen ) {\n\t\t\t\t\tonToggle();\n\t\t\t\t}\n\t\t\t\tresetDuotone();\n\t\t\t\t// Return focus to parent button.\n\t\t\t\tduotoneButtonRef.current?.focus();\n\t\t\t},\n\t\t\tclassName: 'block-editor-panel-duotone-settings__reset',\n\t\t\tlabel: __( 'Reset' ),\n\t\t};\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Button __next40pxDefaultSize { ...toggleProps }>\n\t\t\t\t\t<LabeledColorIndicator\n\t\t\t\t\t\tindicator={ duotone }\n\t\t\t\t\t\tlabel={ __( 'Duotone' ) }\n\t\t\t\t\t/>\n\t\t\t\t</Button>\n\t\t\t\t{ duotone && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\ticon={ resetIcon }\n\t\t\t\t\t\t{ ...removeButtonProps }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t};\n\nexport default function FiltersPanel( {\n\tas: Wrapper = FiltersToolsPanel,\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tpanelId,\n\tdefaultControls = DEFAULT_CONTROLS,\n} ) {\n\tconst decodeValue = ( rawValue ) =>\n\t\tgetValueFromVariable( { settings }, '', rawValue );\n\n\t// Duotone\n\tconst hasDuotoneEnabled = useHasDuotoneControl( settings );\n\tconst duotonePalette = useMultiOriginColorPresets( settings, {\n\t\tpresetSetting: 'duotone',\n\t\tdefaultSetting: 'defaultDuotone',\n\t} );\n\tconst colorPalette = useMultiOriginColorPresets( settings, {\n\t\tpresetSetting: 'palette',\n\t\tdefaultSetting: 'defaultPalette',\n\t} );\n\tconst duotone = decodeValue( inheritedValue?.filter?.duotone );\n\tconst setDuotone = ( newValue ) => {\n\t\tconst duotonePreset = duotonePalette.find( ( { colors } ) => {\n\t\t\treturn colors === newValue;\n\t\t} );\n\t\tconst duotoneValue = duotonePreset\n\t\t\t? `var:preset|duotone|${ duotonePreset.slug }`\n\t\t\t: newValue;\n\t\tonChange(\n\t\t\tsetImmutably( value, [ 'filter', 'duotone' ], duotoneValue )\n\t\t);\n\t};\n\tconst hasDuotone = () => !! value?.filter?.duotone;\n\tconst resetDuotone = () => setDuotone( undefined );\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\tfilter: {\n\t\t\t\t...previousValue.filter,\n\t\t\t\tduotone: undefined,\n\t\t\t},\n\t\t};\n\t}, [] );\n\n\treturn (\n\t\t<Wrapper\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t{ hasDuotoneEnabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Duotone' ) }\n\t\t\t\t\thasValue={ hasDuotone }\n\t\t\t\t\tonDeselect={ resetDuotone }\n\t\t\t\t\tisShownByDefault={ defaultControls.duotone }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<Dropdown\n\t\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\t\tclassName=\"block-editor-global-styles-filters-panel__dropdown\"\n\t\t\t\t\t\trenderToggle={ renderToggle( duotone, resetDuotone ) }\n\t\t\t\t\t\trenderContent={ () => (\n\t\t\t\t\t\t\t<DropdownContentWrapper paddingSize=\"small\">\n\t\t\t\t\t\t\t\t<MenuGroup label={ __( 'Duotone' ) }>\n\t\t\t\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t'Create a two-tone color effect without losing your original image.'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t\t<DuotonePicker\n\t\t\t\t\t\t\t\t\t\tcolorPalette={ colorPalette }\n\t\t\t\t\t\t\t\t\t\tduotonePalette={ duotonePalette }\n\t\t\t\t\t\t\t\t\t\t// TODO: Re-enable both when custom colors are supported for block-level styles.\n\t\t\t\t\t\t\t\t\t\tdisableCustomColors\n\t\t\t\t\t\t\t\t\t\tdisableCustomDuotone\n\t\t\t\t\t\t\t\t\t\tvalue={ duotone }\n\t\t\t\t\t\t\t\t\t\tonChange={ setDuotone }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t</DropdownContentWrapper>\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t</Wrapper>\n\t);\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAiB;AAKjB,wBAcO;AACP,kBAAuB;AACvB,qBAA6C;AAC7C,mBAAmC;AACnC,kCAAqC;AAKrC,mBAA+C;AAC/C,oBAA6B;AAkD3B;AAhDF,IAAM,cAAc,CAAC;AACrB,SAAS,2BACR,UACA,EAAE,eAAe,eAAe,GAC/B;AACD,QAAM,iBAAiB,CAAE,UAAU,QAAS,cAAe;AAC3D,QAAM,cACL,UAAU,QAAS,aAAc,GAAG,UAAU;AAC/C,QAAM,eACL,UAAU,QAAS,aAAc,GAAG,SAAS;AAC9C,QAAM,iBACL,UAAU,QAAS,aAAc,GAAG,WAAW;AAChD,aAAO;AAAA,IACN,MAAM;AAAA,MACL,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAK,iBAAiB,cAAc;AAAA,IACrC;AAAA,IACA,CAAE,gBAAgB,aAAa,cAAc,cAAe;AAAA,EAC7D;AACD;AAEO,SAAS,mBAAoB,UAAW;AAC9C,SAAO,qBAAsB,QAAS;AACvC;AAEA,SAAS,qBAAsB,UAAW;AACzC,SACC,SAAS,MAAM,iBACf,SAAS,MAAM,kBACf,SAAS,MAAM,QAAQ,SAAS;AAElC;AAEA,SAAS,kBAAmB;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAAI;AACH,QAAM,wBAAoB,6CAA+B;AACzD,QAAM,WAAW,MAAM;AACtB,UAAM,eAAe,eAAgB,KAAM;AAC3C,aAAU,YAAa;AAAA,EACxB;AAEA,SACC;AAAA,IAAC,kBAAAA;AAAA,IAAA;AAAA,MACA,WAAQ,gBAAI,WAAW,qCAAsC;AAAA,MAC7D;AAAA,MACA;AAAA,MACA;AAAA,MAEE;AAAA;AAAA,EACH;AAEF;AAEA,IAAM,mBAAmB;AAAA,EACxB,SAAS;AACV;AAEA,IAAM,eAAe;AAAA,EACpB,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,WAAW;AAAA,EACX,iBAAa,gBAAI,SAAU;AAC5B;AAEA,IAAM,wBAAwB,CAAE,EAAE,WAAW,MAAM,MAClD,6CAAC,kBAAAC,sBAAA,EAAO,SAAQ,cACf;AAAA,8CAAC,kBAAAC,sBAAA,EAAO,WAAY,OAAQ,QAAS,IACpC,sDAAC,0BAAK,UAAW,OACd,wBAAc,WAAW,CAAE,YAC5B,4CAAC,oCAAe,WAAU,iDAAgD,IAE1E,4CAAC,mCAAc,QAAS,WAAY,GAEtC,GACD;AAAA,EACA,4CAAC,8BAAS,OAAQ,OAAU,iBAAO;AAAA,GACpC;AAGD,IAAM,eACL,CAAE,SAAS,iBACX,CAAE,EAAE,UAAU,OAAO,MAAO;AAC3B,QAAM,uBAAmB,uBAAQ,MAAU;AAE3C,QAAM,cAAc;AAAA,IACnB,SAAS;AAAA,IACT,eAAW,YAAAC;AAAA,MACV;AAAA,MACA,EAAE,WAAW,OAAO;AAAA,IACrB;AAAA,IACA,iBAAiB;AAAA,IACjB,KAAK;AAAA,EACN;AAEA,QAAM,oBAAoB;AAAA,IACzB,SAAS,MAAM;AACd,UAAK,QAAS;AACb,iBAAS;AAAA,MACV;AACA,mBAAa;AAEb,uBAAiB,SAAS,MAAM;AAAA,IACjC;AAAA,IACA,WAAW;AAAA,IACX,WAAO,gBAAI,OAAQ;AAAA,EACpB;AAEA,SACC,4EACC;AAAA,gDAAC,4BAAO,uBAAqB,MAAG,GAAG,aAClC;AAAA,MAAC;AAAA;AAAA,QACA,WAAY;AAAA,QACZ,WAAQ,gBAAI,SAAU;AAAA;AAAA,IACvB,GACD;AAAA,IACE,WACD;AAAA,MAAC;AAAA;AAAA,QACA,MAAK;AAAA,QACL,MAAO,aAAAC;AAAA,QACL,GAAG;AAAA;AAAA,IACN;AAAA,KAEF;AAEF;AAEc,SAAR,aAA+B;AAAA,EACrC,IAAI,UAAU;AAAA,EACd;AAAA,EACA;AAAA,EACA,iBAAiB;AAAA,EACjB;AAAA,EACA;AAAA,EACA,kBAAkB;AACnB,GAAI;AACH,QAAM,cAAc,CAAE,iBACrB,kDAAsB,EAAE,SAAS,GAAG,IAAI,QAAS;AAGlD,QAAM,oBAAoB,qBAAsB,QAAS;AACzD,QAAM,iBAAiB,2BAA4B,UAAU;AAAA,IAC5D,eAAe;AAAA,IACf,gBAAgB;AAAA,EACjB,CAAE;AACF,QAAM,eAAe,2BAA4B,UAAU;AAAA,IAC1D,eAAe;AAAA,IACf,gBAAgB;AAAA,EACjB,CAAE;AACF,QAAM,UAAU,YAAa,gBAAgB,QAAQ,OAAQ;AAC7D,QAAM,aAAa,CAAE,aAAc;AAClC,UAAM,gBAAgB,eAAe,KAAM,CAAE,EAAE,OAAO,MAAO;AAC5D,aAAO,WAAW;AAAA,IACnB,CAAE;AACF,UAAM,eAAe,gBAClB,sBAAuB,cAAc,IAAK,KAC1C;AACH;AAAA,UACC,4BAAc,OAAO,CAAE,UAAU,SAAU,GAAG,YAAa;AAAA,IAC5D;AAAA,EACD;AACA,QAAM,aAAa,MAAM,CAAC,CAAE,OAAO,QAAQ;AAC3C,QAAM,eAAe,MAAM,WAAY,MAAU;AAEjD,QAAM,qBAAiB,4BAAa,CAAE,kBAAmB;AACxD,WAAO;AAAA,MACN,GAAG;AAAA,MACH,QAAQ;AAAA,QACP,GAAG,cAAc;AAAA,QACjB,SAAS;AAAA,MACV;AAAA,IACD;AAAA,EACD,GAAG,CAAC,CAAE;AAEN,SACC;AAAA,IAAC;AAAA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MAEE,+BACD;AAAA,QAAC,kBAAAC;AAAA,QAAA;AAAA,UACA,WAAQ,gBAAI,SAAU;AAAA,UACtB,UAAW;AAAA,UACX,YAAa;AAAA,UACb,kBAAmB,gBAAgB;AAAA,UACnC;AAAA,UAEA;AAAA,YAAC;AAAA;AAAA,cACA;AAAA,cACA,WAAU;AAAA,cACV,cAAe,aAAc,SAAS,YAAa;AAAA,cACnD,eAAgB,MACf,4CAAC,kBAAAC,sCAAA,EAAuB,aAAY,SACnC,uDAAC,+BAAU,WAAQ,gBAAI,SAAU,GAChC;AAAA,4DAAC,OACE;AAAA,kBACD;AAAA,gBACD,GACD;AAAA,gBACA;AAAA,kBAAC;AAAA;AAAA,oBACA;AAAA,oBACA;AAAA,oBAEA,qBAAmB;AAAA,oBACnB,sBAAoB;AAAA,oBACpB,OAAQ;AAAA,oBACR,UAAW;AAAA;AAAA,gBACZ;AAAA,iBACD,GACD;AAAA;AAAA,UAEF;AAAA;AAAA,MACD;AAAA;AAAA,EAEF;AAEF;",
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalHStack as HStack,\n\t__experimentalZStack as ZStack,\n\t__experimentalDropdownContentWrapper as DropdownContentWrapper,\n\tMenuGroup,\n\tColorIndicator,\n\tDuotonePicker,\n\tDuotoneSwatch,\n\tDropdown,\n\tFlex,\n\tFlexItem,\n\tButton,\n} from '@wordpress/components';\nimport { __, _x } from '@wordpress/i18n';\nimport { useCallback, useMemo, useRef } from '@wordpress/element';\nimport { reset as resetIcon } from '@wordpress/icons';\nimport { getValueFromVariable } from '@wordpress/global-styles-engine';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from './utils';\nimport { setImmutably } from '../../utils/object';\n\nconst EMPTY_ARRAY = [];\nfunction useMultiOriginColorPresets(\n\tsettings,\n\t{ presetSetting, defaultSetting }\n) {\n\tconst disableDefault = ! settings?.color?.[ defaultSetting ];\n\tconst userPresets =\n\t\tsettings?.color?.[ presetSetting ]?.custom || EMPTY_ARRAY;\n\tconst themePresets =\n\t\tsettings?.color?.[ presetSetting ]?.theme || EMPTY_ARRAY;\n\tconst defaultPresets =\n\t\tsettings?.color?.[ presetSetting ]?.default || EMPTY_ARRAY;\n\treturn useMemo(\n\t\t() => [\n\t\t\t...userPresets,\n\t\t\t...themePresets,\n\t\t\t...( disableDefault ? EMPTY_ARRAY : defaultPresets ),\n\t\t],\n\t\t[ disableDefault, userPresets, themePresets, defaultPresets ]\n\t);\n}\n\nexport function useHasFiltersPanel( settings ) {\n\treturn useHasDuotoneControl( settings );\n}\n\nfunction useHasDuotoneControl( settings ) {\n\treturn (\n\t\tsettings.color.customDuotone ||\n\t\tsettings.color.defaultDuotone ||\n\t\tsettings.color.duotone.length > 0\n\t);\n}\n\nfunction FiltersToolsPanel( {\n\tresetAllFilter,\n\tonChange,\n\tvalue,\n\tpanelId,\n\tchildren,\n} ) {\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\tconst resetAll = () => {\n\t\tconst updatedValue = resetAllFilter( value );\n\t\tonChange( updatedValue );\n\t};\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tlabel={ _x( 'Filters', 'Name for applying graphical effects' ) }\n\t\t\tresetAll={ resetAll }\n\t\t\tpanelId={ panelId }\n\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t>\n\t\t\t{ children }\n\t\t</ToolsPanel>\n\t);\n}\n\nconst DEFAULT_CONTROLS = {\n\tduotone: true,\n};\n\nconst popoverProps = {\n\tplacement: 'left-start',\n\toffset: 36,\n\tshift: true,\n\tclassName: 'block-editor-duotone-control__popover',\n\theaderTitle: __( 'Duotone' ),\n};\n\nconst LabeledColorIndicator = ( { indicator, label } ) => (\n\t<HStack justify=\"flex-start\">\n\t\t<ZStack isLayered={ false } offset={ -8 }>\n\t\t\t<Flex expanded={ false }>\n\t\t\t\t{ indicator === 'unset' || ! indicator ? (\n\t\t\t\t\t<ColorIndicator className=\"block-editor-duotone-control__unset-indicator\" />\n\t\t\t\t) : (\n\t\t\t\t\t<DuotoneSwatch values={ indicator } />\n\t\t\t\t) }\n\t\t\t</Flex>\n\t\t</ZStack>\n\t\t<FlexItem title={ label }>{ label }</FlexItem>\n\t</HStack>\n);\n\nconst renderToggle = ( duotone, resetDuotone ) =>\n\tfunction Toggle( { onToggle, isOpen } ) {\n\t\tconst duotoneButtonRef = useRef( undefined );\n\n\t\tconst toggleProps = {\n\t\t\tonClick: onToggle,\n\t\t\tclassName: clsx(\n\t\t\t\t'block-editor-global-styles-filters-panel__dropdown-toggle',\n\t\t\t\t{ 'is-open': isOpen }\n\t\t\t),\n\t\t\t'aria-expanded': isOpen,\n\t\t\tref: duotoneButtonRef,\n\t\t};\n\n\t\tconst removeButtonProps = {\n\t\t\tonClick: () => {\n\t\t\t\tif ( isOpen ) {\n\t\t\t\t\tonToggle();\n\t\t\t\t}\n\t\t\t\tresetDuotone();\n\t\t\t\t// Return focus to parent button.\n\t\t\t\tduotoneButtonRef.current?.focus();\n\t\t\t},\n\t\t\tclassName: 'block-editor-panel-duotone-settings__reset',\n\t\t\tlabel: __( 'Reset' ),\n\t\t};\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Button __next40pxDefaultSize { ...toggleProps }>\n\t\t\t\t\t<LabeledColorIndicator\n\t\t\t\t\t\tindicator={ duotone }\n\t\t\t\t\t\tlabel={ __( 'Duotone' ) }\n\t\t\t\t\t/>\n\t\t\t\t</Button>\n\t\t\t\t{ duotone && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\ticon={ resetIcon }\n\t\t\t\t\t\t{ ...removeButtonProps }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t};\n\nexport default function FiltersPanel( {\n\tas: Wrapper = FiltersToolsPanel,\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tpanelId,\n\tdefaultControls = DEFAULT_CONTROLS,\n} ) {\n\tconst decodeValue = ( rawValue ) =>\n\t\tgetValueFromVariable( { settings }, '', rawValue );\n\n\t// Duotone\n\tconst hasDuotoneEnabled = useHasDuotoneControl( settings );\n\tconst duotonePalette = useMultiOriginColorPresets( settings, {\n\t\tpresetSetting: 'duotone',\n\t\tdefaultSetting: 'defaultDuotone',\n\t} );\n\tconst colorPalette = useMultiOriginColorPresets( settings, {\n\t\tpresetSetting: 'palette',\n\t\tdefaultSetting: 'defaultPalette',\n\t} );\n\tconst duotone = decodeValue( inheritedValue?.filter?.duotone );\n\tconst setDuotone = ( newValue ) => {\n\t\tconst duotonePreset = duotonePalette.find( ( { colors } ) => {\n\t\t\treturn colors === newValue;\n\t\t} );\n\t\tconst duotoneValue = duotonePreset\n\t\t\t? `var:preset|duotone|${ duotonePreset.slug }`\n\t\t\t: newValue;\n\t\tonChange(\n\t\t\tsetImmutably( value, [ 'filter', 'duotone' ], duotoneValue )\n\t\t);\n\t};\n\tconst hasDuotone = () => !! value?.filter?.duotone;\n\tconst resetDuotone = () => setDuotone( undefined );\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\tfilter: {\n\t\t\t\t...previousValue.filter,\n\t\t\t\tduotone: undefined,\n\t\t\t},\n\t\t};\n\t}, [] );\n\n\treturn (\n\t\t<Wrapper\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t{ hasDuotoneEnabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Duotone' ) }\n\t\t\t\t\thasValue={ hasDuotone }\n\t\t\t\t\tonDeselect={ resetDuotone }\n\t\t\t\t\tisShownByDefault={ defaultControls.duotone }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<Dropdown\n\t\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\t\tclassName=\"block-editor-global-styles-filters-panel__dropdown\"\n\t\t\t\t\t\trenderToggle={ renderToggle( duotone, resetDuotone ) }\n\t\t\t\t\t\trenderContent={ () => (\n\t\t\t\t\t\t\t<DropdownContentWrapper paddingSize=\"small\">\n\t\t\t\t\t\t\t\t<MenuGroup label={ __( 'Duotone' ) }>\n\t\t\t\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t'Create a two-tone color effect without losing your original image.'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t\t<DuotonePicker\n\t\t\t\t\t\t\t\t\t\tcolorPalette={ colorPalette }\n\t\t\t\t\t\t\t\t\t\tduotonePalette={ duotonePalette }\n\t\t\t\t\t\t\t\t\t\t// TODO: Re-enable both when custom colors are supported for block-level styles.\n\t\t\t\t\t\t\t\t\t\tdisableCustomColors\n\t\t\t\t\t\t\t\t\t\tdisableCustomDuotone\n\t\t\t\t\t\t\t\t\t\tvalue={ duotone }\n\t\t\t\t\t\t\t\t\t\tonChange={ setDuotone }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t</DropdownContentWrapper>\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t</Wrapper>\n\t);\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["ToolsPanel", "HStack", "ZStack", "clsx", "resetIcon", "ToolsPanelItem", "DropdownContentWrapper"]
7
7
  }
@@ -142,7 +142,7 @@ function ShadowPopover({ shadow, onShadowChange, settings }) {
142
142
  );
143
143
  }
144
144
  function renderShadowToggle(shadow, onShadowChange) {
145
- return ({ onToggle, isOpen }) => {
145
+ return function ShadowToggle({ onToggle, isOpen }) {
146
146
  const shadowButtonRef = (0, import_element.useRef)(void 0);
147
147
  const toggleProps = {
148
148
  onClick: onToggle,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/global-styles/shadow-panel-components.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalHeading as Heading,\n\t__experimentalHStack as HStack,\n\t__experimentalDropdownContentWrapper as DropdownContentWrapper,\n\tButton,\n\tFlexItem,\n\tDropdown,\n\tComposite,\n\tTooltip,\n} from '@wordpress/components';\nimport { useMemo, useRef } from '@wordpress/element';\nimport { shadow as shadowIcon, Icon, check, reset } from '@wordpress/icons';\n\n/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * Shared reference to an empty array for cases where it is important to avoid\n * returning a new array reference on every invocation.\n *\n * @type {Array}\n */\nconst EMPTY_ARRAY = [];\n\nexport function ShadowPopoverContainer( { shadow, onShadowChange, settings } ) {\n\tconst shadows = useShadowPresets( settings );\n\n\treturn (\n\t\t<div className=\"block-editor-global-styles__shadow-popover-container\">\n\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t<Heading level={ 5 }>{ __( 'Drop shadow' ) }</Heading>\n\t\t\t\t<ShadowPresets\n\t\t\t\t\tpresets={ shadows }\n\t\t\t\t\tactiveShadow={ shadow }\n\t\t\t\t\tonSelect={ onShadowChange }\n\t\t\t\t/>\n\t\t\t\t<div className=\"block-editor-global-styles__clear-shadow\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ () => onShadowChange( undefined ) }\n\t\t\t\t\t\tdisabled={ ! shadow }\n\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Clear' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t</VStack>\n\t\t</div>\n\t);\n}\n\nexport function ShadowPresets( { presets, activeShadow, onSelect } ) {\n\treturn ! presets ? null : (\n\t\t<Composite\n\t\t\trole=\"listbox\"\n\t\t\tclassName=\"block-editor-global-styles__shadow__list\"\n\t\t\taria-label={ __( 'Drop shadows' ) }\n\t\t>\n\t\t\t{ presets.map( ( { name, slug, shadow } ) => (\n\t\t\t\t<ShadowIndicator\n\t\t\t\t\tkey={ slug }\n\t\t\t\t\tlabel={ name }\n\t\t\t\t\tisActive={ shadow === activeShadow }\n\t\t\t\t\ttype={ slug === 'unset' ? 'unset' : 'preset' }\n\t\t\t\t\tonSelect={ () =>\n\t\t\t\t\t\tonSelect( shadow === activeShadow ? undefined : shadow )\n\t\t\t\t\t}\n\t\t\t\t\tshadow={ shadow }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</Composite>\n\t);\n}\n\nexport function ShadowIndicator( { type, label, isActive, onSelect, shadow } ) {\n\treturn (\n\t\t<Tooltip text={ label }>\n\t\t\t<Composite.Item\n\t\t\t\trole=\"option\"\n\t\t\t\taria-label={ label }\n\t\t\t\taria-selected={ isActive }\n\t\t\t\tclassName={ clsx( 'block-editor-global-styles__shadow__item', {\n\t\t\t\t\t'is-active': isActive,\n\t\t\t\t} ) }\n\t\t\t\trender={\n\t\t\t\t\t<button\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'block-editor-global-styles__shadow-indicator',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tunset: type === 'unset',\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tonClick={ onSelect }\n\t\t\t\t\t\tstyle={ { boxShadow: shadow } }\n\t\t\t\t\t\taria-label={ label }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ isActive && <Icon icon={ check } /> }\n\t\t\t\t\t</button>\n\t\t\t\t}\n\t\t\t/>\n\t\t</Tooltip>\n\t);\n}\n\nexport function ShadowPopover( { shadow, onShadowChange, settings } ) {\n\tconst popoverProps = {\n\t\tplacement: 'left-start',\n\t\toffset: 36,\n\t\tshift: true,\n\t};\n\n\treturn (\n\t\t<Dropdown\n\t\t\tpopoverProps={ popoverProps }\n\t\t\tclassName=\"block-editor-global-styles__shadow-dropdown\"\n\t\t\trenderToggle={ renderShadowToggle( shadow, onShadowChange ) }\n\t\t\trenderContent={ () => (\n\t\t\t\t<DropdownContentWrapper paddingSize=\"medium\">\n\t\t\t\t\t<ShadowPopoverContainer\n\t\t\t\t\t\tshadow={ shadow }\n\t\t\t\t\t\tonShadowChange={ onShadowChange }\n\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t/>\n\t\t\t\t</DropdownContentWrapper>\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nfunction renderShadowToggle( shadow, onShadowChange ) {\n\treturn ( { onToggle, isOpen } ) => {\n\t\tconst shadowButtonRef = useRef( undefined );\n\n\t\tconst toggleProps = {\n\t\t\tonClick: onToggle,\n\t\t\tclassName: clsx(\n\t\t\t\t'block-editor-global-styles__shadow-dropdown-toggle',\n\t\t\t\t{ 'is-open': isOpen }\n\t\t\t),\n\t\t\t'aria-expanded': isOpen,\n\t\t\tref: shadowButtonRef,\n\t\t};\n\n\t\tconst removeButtonProps = {\n\t\t\tonClick: () => {\n\t\t\t\tif ( isOpen ) {\n\t\t\t\t\tonToggle();\n\t\t\t\t}\n\t\t\t\tonShadowChange( undefined );\n\t\t\t\t// Return focus to parent button.\n\t\t\t\tshadowButtonRef.current?.focus();\n\t\t\t},\n\t\t\tclassName: clsx(\n\t\t\t\t'block-editor-global-styles__shadow-editor__remove-button',\n\t\t\t\t{ 'is-open': isOpen }\n\t\t\t),\n\t\t\tlabel: __( 'Remove' ),\n\t\t};\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Button __next40pxDefaultSize { ...toggleProps }>\n\t\t\t\t\t<HStack justify=\"flex-start\">\n\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\tclassName=\"block-editor-global-styles__toggle-icon\"\n\t\t\t\t\t\t\ticon={ shadowIcon }\n\t\t\t\t\t\t\tsize={ 24 }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<FlexItem>{ __( 'Drop shadow' ) }</FlexItem>\n\t\t\t\t\t</HStack>\n\t\t\t\t</Button>\n\t\t\t\t{ !! shadow && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\ticon={ reset }\n\t\t\t\t\t\t{ ...removeButtonProps }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t};\n}\n\nexport function useShadowPresets( settings ) {\n\treturn useMemo( () => {\n\t\tif ( ! settings?.shadow ) {\n\t\t\treturn EMPTY_ARRAY;\n\t\t}\n\n\t\tconst defaultPresetsEnabled = settings?.shadow?.defaultPresets;\n\t\tconst {\n\t\t\tdefault: defaultShadows,\n\t\t\ttheme: themeShadows,\n\t\t\tcustom: customShadows,\n\t\t} = settings?.shadow?.presets ?? {};\n\t\tconst unsetShadow = {\n\t\t\tname: __( 'Unset' ),\n\t\t\tslug: 'unset',\n\t\t\tshadow: 'none',\n\t\t};\n\n\t\tconst shadowPresets = [\n\t\t\t...( ( defaultPresetsEnabled && defaultShadows ) || EMPTY_ARRAY ),\n\t\t\t...( themeShadows || EMPTY_ARRAY ),\n\t\t\t...( customShadows || EMPTY_ARRAY ),\n\t\t];\n\t\tif ( shadowPresets.length ) {\n\t\t\tshadowPresets.unshift( unsetShadow );\n\t\t}\n\n\t\treturn shadowPresets;\n\t}, [ settings ] );\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalHeading as Heading,\n\t__experimentalHStack as HStack,\n\t__experimentalDropdownContentWrapper as DropdownContentWrapper,\n\tButton,\n\tFlexItem,\n\tDropdown,\n\tComposite,\n\tTooltip,\n} from '@wordpress/components';\nimport { useMemo, useRef } from '@wordpress/element';\nimport { shadow as shadowIcon, Icon, check, reset } from '@wordpress/icons';\n\n/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * Shared reference to an empty array for cases where it is important to avoid\n * returning a new array reference on every invocation.\n *\n * @type {Array}\n */\nconst EMPTY_ARRAY = [];\n\nexport function ShadowPopoverContainer( { shadow, onShadowChange, settings } ) {\n\tconst shadows = useShadowPresets( settings );\n\n\treturn (\n\t\t<div className=\"block-editor-global-styles__shadow-popover-container\">\n\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t<Heading level={ 5 }>{ __( 'Drop shadow' ) }</Heading>\n\t\t\t\t<ShadowPresets\n\t\t\t\t\tpresets={ shadows }\n\t\t\t\t\tactiveShadow={ shadow }\n\t\t\t\t\tonSelect={ onShadowChange }\n\t\t\t\t/>\n\t\t\t\t<div className=\"block-editor-global-styles__clear-shadow\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ () => onShadowChange( undefined ) }\n\t\t\t\t\t\tdisabled={ ! shadow }\n\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Clear' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t</VStack>\n\t\t</div>\n\t);\n}\n\nexport function ShadowPresets( { presets, activeShadow, onSelect } ) {\n\treturn ! presets ? null : (\n\t\t<Composite\n\t\t\trole=\"listbox\"\n\t\t\tclassName=\"block-editor-global-styles__shadow__list\"\n\t\t\taria-label={ __( 'Drop shadows' ) }\n\t\t>\n\t\t\t{ presets.map( ( { name, slug, shadow } ) => (\n\t\t\t\t<ShadowIndicator\n\t\t\t\t\tkey={ slug }\n\t\t\t\t\tlabel={ name }\n\t\t\t\t\tisActive={ shadow === activeShadow }\n\t\t\t\t\ttype={ slug === 'unset' ? 'unset' : 'preset' }\n\t\t\t\t\tonSelect={ () =>\n\t\t\t\t\t\tonSelect( shadow === activeShadow ? undefined : shadow )\n\t\t\t\t\t}\n\t\t\t\t\tshadow={ shadow }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</Composite>\n\t);\n}\n\nexport function ShadowIndicator( { type, label, isActive, onSelect, shadow } ) {\n\treturn (\n\t\t<Tooltip text={ label }>\n\t\t\t<Composite.Item\n\t\t\t\trole=\"option\"\n\t\t\t\taria-label={ label }\n\t\t\t\taria-selected={ isActive }\n\t\t\t\tclassName={ clsx( 'block-editor-global-styles__shadow__item', {\n\t\t\t\t\t'is-active': isActive,\n\t\t\t\t} ) }\n\t\t\t\trender={\n\t\t\t\t\t<button\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'block-editor-global-styles__shadow-indicator',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tunset: type === 'unset',\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tonClick={ onSelect }\n\t\t\t\t\t\tstyle={ { boxShadow: shadow } }\n\t\t\t\t\t\taria-label={ label }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ isActive && <Icon icon={ check } /> }\n\t\t\t\t\t</button>\n\t\t\t\t}\n\t\t\t/>\n\t\t</Tooltip>\n\t);\n}\n\nexport function ShadowPopover( { shadow, onShadowChange, settings } ) {\n\tconst popoverProps = {\n\t\tplacement: 'left-start',\n\t\toffset: 36,\n\t\tshift: true,\n\t};\n\n\treturn (\n\t\t<Dropdown\n\t\t\tpopoverProps={ popoverProps }\n\t\t\tclassName=\"block-editor-global-styles__shadow-dropdown\"\n\t\t\trenderToggle={ renderShadowToggle( shadow, onShadowChange ) }\n\t\t\trenderContent={ () => (\n\t\t\t\t<DropdownContentWrapper paddingSize=\"medium\">\n\t\t\t\t\t<ShadowPopoverContainer\n\t\t\t\t\t\tshadow={ shadow }\n\t\t\t\t\t\tonShadowChange={ onShadowChange }\n\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t/>\n\t\t\t\t</DropdownContentWrapper>\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nfunction renderShadowToggle( shadow, onShadowChange ) {\n\treturn function ShadowToggle( { onToggle, isOpen } ) {\n\t\tconst shadowButtonRef = useRef( undefined );\n\n\t\tconst toggleProps = {\n\t\t\tonClick: onToggle,\n\t\t\tclassName: clsx(\n\t\t\t\t'block-editor-global-styles__shadow-dropdown-toggle',\n\t\t\t\t{ 'is-open': isOpen }\n\t\t\t),\n\t\t\t'aria-expanded': isOpen,\n\t\t\tref: shadowButtonRef,\n\t\t};\n\n\t\tconst removeButtonProps = {\n\t\t\tonClick: () => {\n\t\t\t\tif ( isOpen ) {\n\t\t\t\t\tonToggle();\n\t\t\t\t}\n\t\t\t\tonShadowChange( undefined );\n\t\t\t\t// Return focus to parent button.\n\t\t\t\tshadowButtonRef.current?.focus();\n\t\t\t},\n\t\t\tclassName: clsx(\n\t\t\t\t'block-editor-global-styles__shadow-editor__remove-button',\n\t\t\t\t{ 'is-open': isOpen }\n\t\t\t),\n\t\t\tlabel: __( 'Remove' ),\n\t\t};\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Button __next40pxDefaultSize { ...toggleProps }>\n\t\t\t\t\t<HStack justify=\"flex-start\">\n\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\tclassName=\"block-editor-global-styles__toggle-icon\"\n\t\t\t\t\t\t\ticon={ shadowIcon }\n\t\t\t\t\t\t\tsize={ 24 }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<FlexItem>{ __( 'Drop shadow' ) }</FlexItem>\n\t\t\t\t\t</HStack>\n\t\t\t\t</Button>\n\t\t\t\t{ !! shadow && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\ticon={ reset }\n\t\t\t\t\t\t{ ...removeButtonProps }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t};\n}\n\nexport function useShadowPresets( settings ) {\n\treturn useMemo( () => {\n\t\tif ( ! settings?.shadow ) {\n\t\t\treturn EMPTY_ARRAY;\n\t\t}\n\n\t\tconst defaultPresetsEnabled = settings?.shadow?.defaultPresets;\n\t\tconst {\n\t\t\tdefault: defaultShadows,\n\t\t\ttheme: themeShadows,\n\t\t\tcustom: customShadows,\n\t\t} = settings?.shadow?.presets ?? {};\n\t\tconst unsetShadow = {\n\t\t\tname: __( 'Unset' ),\n\t\t\tslug: 'unset',\n\t\t\tshadow: 'none',\n\t\t};\n\n\t\tconst shadowPresets = [\n\t\t\t...( ( defaultPresetsEnabled && defaultShadows ) || EMPTY_ARRAY ),\n\t\t\t...( themeShadows || EMPTY_ARRAY ),\n\t\t\t...( customShadows || EMPTY_ARRAY ),\n\t\t];\n\t\tif ( shadowPresets.length ) {\n\t\t\tshadowPresets.unshift( unsetShadow );\n\t\t}\n\n\t\treturn shadowPresets;\n\t}, [ settings ] );\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["VStack", "Heading", "clsx", "DropdownContentWrapper", "HStack", "shadowIcon"]
7
7
  }
@@ -25,7 +25,7 @@ __export(with_gradient_exports, {
25
25
  module.exports = __toCommonJS(with_gradient_exports);
26
26
  var import_use_gradient = require("./use-gradient.cjs");
27
27
  var import_jsx_runtime = require("react/jsx-runtime");
28
- var withGradient = (WrappedComponent) => (props) => {
28
+ var withGradient = (WrappedComponent) => function WithGradient(props) {
29
29
  const { gradientValue } = (0, import_use_gradient.__experimentalUseGradient)();
30
30
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(WrappedComponent, { ...props, gradientValue });
31
31
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/gradients/with-gradient.js"],
4
- "sourcesContent": ["/**\n * Internal dependencies\n */\nimport { __experimentalUseGradient } from './use-gradient';\n\nexport const withGradient = ( WrappedComponent ) => ( props ) => {\n\tconst { gradientValue } = __experimentalUseGradient();\n\treturn <WrappedComponent { ...props } gradientValue={ gradientValue } />;\n};\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,0BAA0C;AAIlC;AAFD,IAAM,eAAe,CAAE,qBAAsB,CAAE,UAAW;AAChE,QAAM,EAAE,cAAc,QAAI,+CAA0B;AACpD,SAAO,4CAAC,oBAAmB,GAAG,OAAQ,eAAgC;AACvE;",
4
+ "sourcesContent": ["/**\n * Internal dependencies\n */\nimport { __experimentalUseGradient } from './use-gradient';\n\nexport const withGradient = ( WrappedComponent ) =>\n\tfunction WithGradient( props ) {\n\t\tconst { gradientValue } = __experimentalUseGradient();\n\t\treturn (\n\t\t\t<WrappedComponent { ...props } gradientValue={ gradientValue } />\n\t\t);\n\t};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,0BAA0C;AAMvC;AAJI,IAAM,eAAe,CAAE,qBAC7B,SAAS,aAAc,OAAQ;AAC9B,QAAM,EAAE,cAAc,QAAI,+CAA0B;AACpD,SACC,4CAAC,oBAAmB,GAAG,OAAQ,eAAgC;AAEjE;",
6
6
  "names": []
7
7
  }
@@ -40,6 +40,8 @@ var import_element = require("@wordpress/element");
40
40
  var import_context = require("../block-edit/context.cjs");
41
41
  var import_groups = __toESM(require("./groups.cjs"));
42
42
  var import_jsx_runtime = require("react/jsx-runtime");
43
+ var PATTERN_EDITING_GROUPS = ["content", "list"];
44
+ var TEMPLATE_PART_GROUPS = ["default", "settings", "advanced"];
43
45
  function InspectorControlsFill({
44
46
  children,
45
47
  group = "default",
@@ -63,8 +65,16 @@ function InspectorControlsFill({
63
65
  (0, import_warning.default)(`Unknown InspectorControls group "${group}" provided.`);
64
66
  return null;
65
67
  }
66
- const shouldDisplayForPatternEditing = context[import_context.mayDisplayPatternEditingControlsKey] && (group === "list" || group === "content");
67
- if (!context[import_context.mayDisplayControlsKey] && !shouldDisplayForPatternEditing) {
68
+ if (context[import_context.mayDisplayPatternEditingControlsKey]) {
69
+ const isTemplatePart = context.name === "core/template-part";
70
+ const isTemplatePartGroup = TEMPLATE_PART_GROUPS.includes(group);
71
+ const isPatternEditingGroup = PATTERN_EDITING_GROUPS.includes(group);
72
+ const canShowGroup = isTemplatePart && isTemplatePartGroup || isPatternEditingGroup;
73
+ if (!canShowGroup) {
74
+ return null;
75
+ }
76
+ }
77
+ if (!context[import_context.mayDisplayPatternEditingControlsKey] && !context[import_context.mayDisplayControlsKey]) {
68
78
  return null;
69
79
  }
70
80
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.__experimentalStyleProvider, { document, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Fill, { children: (fillProps) => {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/inspector-controls/fill.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalStyleProvider as StyleProvider,\n\t__experimentalToolsPanelContext as ToolsPanelContext,\n} from '@wordpress/components';\nimport warning from '@wordpress/warning';\nimport deprecated from '@wordpress/deprecated';\nimport { useEffect, useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport {\n\tuseBlockEditContext,\n\tmayDisplayControlsKey,\n\tmayDisplayPatternEditingControlsKey,\n} from '../block-edit/context';\nimport groups from './groups';\n\nexport default function InspectorControlsFill( {\n\tchildren,\n\tgroup = 'default',\n\t__experimentalGroup,\n\tresetAllFilter,\n} ) {\n\tif ( __experimentalGroup ) {\n\t\tdeprecated(\n\t\t\t'`__experimentalGroup` property in `InspectorControlsFill`',\n\t\t\t{\n\t\t\t\tsince: '6.2',\n\t\t\t\tversion: '6.4',\n\t\t\t\talternative: '`group`',\n\t\t\t}\n\t\t);\n\t\tgroup = __experimentalGroup;\n\t}\n\n\tconst context = useBlockEditContext();\n\tconst Fill = groups[ group ]?.Fill;\n\tif ( ! Fill ) {\n\t\twarning( `Unknown InspectorControls group \"${ group }\" provided.` );\n\t\treturn null;\n\t}\n\tconst shouldDisplayForPatternEditing =\n\t\tcontext[ mayDisplayPatternEditingControlsKey ] &&\n\t\t( group === 'list' || group === 'content' );\n\n\tif (\n\t\t! context[ mayDisplayControlsKey ] &&\n\t\t! shouldDisplayForPatternEditing\n\t) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<StyleProvider document={ document }>\n\t\t\t<Fill>\n\t\t\t\t{ ( fillProps ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<ToolsPanelInspectorControl\n\t\t\t\t\t\t\tfillProps={ fillProps }\n\t\t\t\t\t\t\tchildren={ children }\n\t\t\t\t\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} }\n\t\t\t</Fill>\n\t\t</StyleProvider>\n\t);\n}\n\nfunction RegisterResetAll( { resetAllFilter, children } ) {\n\tconst { registerResetAllFilter, deregisterResetAllFilter } =\n\t\tuseContext( ToolsPanelContext );\n\tuseEffect( () => {\n\t\tif (\n\t\t\tresetAllFilter &&\n\t\t\tregisterResetAllFilter &&\n\t\t\tderegisterResetAllFilter\n\t\t) {\n\t\t\tregisterResetAllFilter( resetAllFilter );\n\t\t\treturn () => {\n\t\t\t\tderegisterResetAllFilter( resetAllFilter );\n\t\t\t};\n\t\t}\n\t}, [ resetAllFilter, registerResetAllFilter, deregisterResetAllFilter ] );\n\treturn children;\n}\n\nfunction ToolsPanelInspectorControl( { children, resetAllFilter, fillProps } ) {\n\t// `fillProps.forwardedContext` is an array of context provider entries, provided by slot,\n\t// that should wrap the fill markup.\n\tconst { forwardedContext = [] } = fillProps;\n\n\t// Children passed to InspectorControlsFill will not have\n\t// access to any React Context whose Provider is part of\n\t// the InspectorControlsSlot tree. So we re-create the\n\t// Provider in this subtree.\n\tconst innerMarkup = (\n\t\t<RegisterResetAll resetAllFilter={ resetAllFilter }>\n\t\t\t{ children }\n\t\t</RegisterResetAll>\n\t);\n\treturn forwardedContext.reduce(\n\t\t( inner, [ Provider, props ] ) => (\n\t\t\t<Provider { ...props }>{ inner }</Provider>\n\t\t),\n\t\tinnerMarkup\n\t);\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,wBAGO;AACP,qBAAoB;AACpB,wBAAuB;AACvB,qBAAsC;AAKtC,qBAIO;AACP,oBAAmB;AA0Cb;AAxCS,SAAR,sBAAwC;AAAA,EAC9C;AAAA,EACA,QAAQ;AAAA,EACR;AAAA,EACA;AACD,GAAI;AACH,MAAK,qBAAsB;AAC1B,0BAAAA;AAAA,MACC;AAAA,MACA;AAAA,QACC,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACd;AAAA,IACD;AACA,YAAQ;AAAA,EACT;AAEA,QAAM,cAAU,oCAAoB;AACpC,QAAM,OAAO,cAAAC,QAAQ,KAAM,GAAG;AAC9B,MAAK,CAAE,MAAO;AACb,uBAAAC,SAAS,oCAAqC,KAAM,aAAc;AAClE,WAAO;AAAA,EACR;AACA,QAAM,iCACL,QAAS,kDAAoC,MAC3C,UAAU,UAAU,UAAU;AAEjC,MACC,CAAE,QAAS,oCAAsB,KACjC,CAAE,gCACD;AACD,WAAO;AAAA,EACR;AAEA,SACC,4CAAC,kBAAAC,6BAAA,EAAc,UACd,sDAAC,QACE,WAAE,cAAe;AAClB,WACC;AAAA,MAAC;AAAA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACD;AAAA,EAEF,GACD,GACD;AAEF;AAEA,SAAS,iBAAkB,EAAE,gBAAgB,SAAS,GAAI;AACzD,QAAM,EAAE,wBAAwB,yBAAyB,QACxD,2BAAY,kBAAAC,+BAAkB;AAC/B,gCAAW,MAAM;AAChB,QACC,kBACA,0BACA,0BACC;AACD,6BAAwB,cAAe;AACvC,aAAO,MAAM;AACZ,iCAA0B,cAAe;AAAA,MAC1C;AAAA,IACD;AAAA,EACD,GAAG,CAAE,gBAAgB,wBAAwB,wBAAyB,CAAE;AACxE,SAAO;AACR;AAEA,SAAS,2BAA4B,EAAE,UAAU,gBAAgB,UAAU,GAAI;AAG9E,QAAM,EAAE,mBAAmB,CAAC,EAAE,IAAI;AAMlC,QAAM,cACL,4CAAC,oBAAiB,gBACf,UACH;AAED,SAAO,iBAAiB;AAAA,IACvB,CAAE,OAAO,CAAE,UAAU,KAAM,MAC1B,4CAAC,YAAW,GAAG,OAAU,iBAAO;AAAA,IAEjC;AAAA,EACD;AACD;",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalStyleProvider as StyleProvider,\n\t__experimentalToolsPanelContext as ToolsPanelContext,\n} from '@wordpress/components';\nimport warning from '@wordpress/warning';\nimport deprecated from '@wordpress/deprecated';\nimport { useEffect, useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport {\n\tuseBlockEditContext,\n\tmayDisplayControlsKey,\n\tmayDisplayPatternEditingControlsKey,\n} from '../block-edit/context';\nimport groups from './groups';\n\nconst PATTERN_EDITING_GROUPS = [ 'content', 'list' ];\nconst TEMPLATE_PART_GROUPS = [ 'default', 'settings', 'advanced' ];\n\nexport default function InspectorControlsFill( {\n\tchildren,\n\tgroup = 'default',\n\t__experimentalGroup,\n\tresetAllFilter,\n} ) {\n\tif ( __experimentalGroup ) {\n\t\tdeprecated(\n\t\t\t'`__experimentalGroup` property in `InspectorControlsFill`',\n\t\t\t{\n\t\t\t\tsince: '6.2',\n\t\t\t\tversion: '6.4',\n\t\t\t\talternative: '`group`',\n\t\t\t}\n\t\t);\n\t\tgroup = __experimentalGroup;\n\t}\n\n\tconst context = useBlockEditContext();\n\tconst Fill = groups[ group ]?.Fill;\n\tif ( ! Fill ) {\n\t\twarning( `Unknown InspectorControls group \"${ group }\" provided.` );\n\t\treturn null;\n\t}\n\n\t// During pattern editing:\n\t// - All blocks can show pattern editing groups (content, list).\n\t// - Template parts can show a settings tab (default, settings, advanced groups).\n\t// - Other blocks cannot show a settings tab.\n\tif ( context[ mayDisplayPatternEditingControlsKey ] ) {\n\t\t// Template parts are allowed to show a settings tab to allow access to the\n\t\t// 'Design' and 'Advanced' panels.\n\t\tconst isTemplatePart = context.name === 'core/template-part';\n\t\tconst isTemplatePartGroup = TEMPLATE_PART_GROUPS.includes( group );\n\t\tconst isPatternEditingGroup = PATTERN_EDITING_GROUPS.includes( group );\n\n\t\tconst canShowGroup =\n\t\t\t( isTemplatePart && isTemplatePartGroup ) || isPatternEditingGroup;\n\n\t\tif ( ! canShowGroup ) {\n\t\t\treturn null;\n\t\t}\n\t}\n\n\t// Outside pattern editing, use the standard rules for displaying controls.\n\tif (\n\t\t! context[ mayDisplayPatternEditingControlsKey ] &&\n\t\t! context[ mayDisplayControlsKey ]\n\t) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<StyleProvider document={ document }>\n\t\t\t<Fill>\n\t\t\t\t{ ( fillProps ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<ToolsPanelInspectorControl\n\t\t\t\t\t\t\tfillProps={ fillProps }\n\t\t\t\t\t\t\tchildren={ children }\n\t\t\t\t\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} }\n\t\t\t</Fill>\n\t\t</StyleProvider>\n\t);\n}\n\nfunction RegisterResetAll( { resetAllFilter, children } ) {\n\tconst { registerResetAllFilter, deregisterResetAllFilter } =\n\t\tuseContext( ToolsPanelContext );\n\tuseEffect( () => {\n\t\tif (\n\t\t\tresetAllFilter &&\n\t\t\tregisterResetAllFilter &&\n\t\t\tderegisterResetAllFilter\n\t\t) {\n\t\t\tregisterResetAllFilter( resetAllFilter );\n\t\t\treturn () => {\n\t\t\t\tderegisterResetAllFilter( resetAllFilter );\n\t\t\t};\n\t\t}\n\t}, [ resetAllFilter, registerResetAllFilter, deregisterResetAllFilter ] );\n\treturn children;\n}\n\nfunction ToolsPanelInspectorControl( { children, resetAllFilter, fillProps } ) {\n\t// `fillProps.forwardedContext` is an array of context provider entries, provided by slot,\n\t// that should wrap the fill markup.\n\tconst { forwardedContext = [] } = fillProps;\n\n\t// Children passed to InspectorControlsFill will not have\n\t// access to any React Context whose Provider is part of\n\t// the InspectorControlsSlot tree. So we re-create the\n\t// Provider in this subtree.\n\tconst innerMarkup = (\n\t\t<RegisterResetAll resetAllFilter={ resetAllFilter }>\n\t\t\t{ children }\n\t\t</RegisterResetAll>\n\t);\n\treturn forwardedContext.reduce(\n\t\t( inner, [ Provider, props ] ) => (\n\t\t\t<Provider { ...props }>{ inner }</Provider>\n\t\t),\n\t\tinnerMarkup\n\t);\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,wBAGO;AACP,qBAAoB;AACpB,wBAAuB;AACvB,qBAAsC;AAKtC,qBAIO;AACP,oBAAmB;AA8Db;AA5DN,IAAM,yBAAyB,CAAE,WAAW,MAAO;AACnD,IAAM,uBAAuB,CAAE,WAAW,YAAY,UAAW;AAElD,SAAR,sBAAwC;AAAA,EAC9C;AAAA,EACA,QAAQ;AAAA,EACR;AAAA,EACA;AACD,GAAI;AACH,MAAK,qBAAsB;AAC1B,0BAAAA;AAAA,MACC;AAAA,MACA;AAAA,QACC,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACd;AAAA,IACD;AACA,YAAQ;AAAA,EACT;AAEA,QAAM,cAAU,oCAAoB;AACpC,QAAM,OAAO,cAAAC,QAAQ,KAAM,GAAG;AAC9B,MAAK,CAAE,MAAO;AACb,uBAAAC,SAAS,oCAAqC,KAAM,aAAc;AAClE,WAAO;AAAA,EACR;AAMA,MAAK,QAAS,kDAAoC,GAAI;AAGrD,UAAM,iBAAiB,QAAQ,SAAS;AACxC,UAAM,sBAAsB,qBAAqB,SAAU,KAAM;AACjE,UAAM,wBAAwB,uBAAuB,SAAU,KAAM;AAErE,UAAM,eACH,kBAAkB,uBAAyB;AAE9C,QAAK,CAAE,cAAe;AACrB,aAAO;AAAA,IACR;AAAA,EACD;AAGA,MACC,CAAE,QAAS,kDAAoC,KAC/C,CAAE,QAAS,oCAAsB,GAChC;AACD,WAAO;AAAA,EACR;AAEA,SACC,4CAAC,kBAAAC,6BAAA,EAAc,UACd,sDAAC,QACE,WAAE,cAAe;AAClB,WACC;AAAA,MAAC;AAAA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACD;AAAA,EAEF,GACD,GACD;AAEF;AAEA,SAAS,iBAAkB,EAAE,gBAAgB,SAAS,GAAI;AACzD,QAAM,EAAE,wBAAwB,yBAAyB,QACxD,2BAAY,kBAAAC,+BAAkB;AAC/B,gCAAW,MAAM;AAChB,QACC,kBACA,0BACA,0BACC;AACD,6BAAwB,cAAe;AACvC,aAAO,MAAM;AACZ,iCAA0B,cAAe;AAAA,MAC1C;AAAA,IACD;AAAA,EACD,GAAG,CAAE,gBAAgB,wBAAwB,wBAAyB,CAAE;AACxE,SAAO;AACR;AAEA,SAAS,2BAA4B,EAAE,UAAU,gBAAgB,UAAU,GAAI;AAG9E,QAAM,EAAE,mBAAmB,CAAC,EAAE,IAAI;AAMlC,QAAM,cACL,4CAAC,oBAAiB,gBACf,UACH;AAED,SAAO,iBAAiB;AAAA,IACvB,CAAE,OAAO,CAAE,UAAU,KAAM,MAC1B,4CAAC,YAAW,GAAG,OAAU,iBAAO;AAAA,IAEjC;AAAA,EACD;AACD;",
6
6
  "names": ["deprecated", "groups", "warning", "StyleProvider", "ToolsPanelContext"]
7
7
  }
@@ -42,7 +42,7 @@ InspectorControls.Slot = import_slot.default;
42
42
  var InspectorAdvancedControls = (props) => {
43
43
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_fill.default, { ...props, group: "advanced" });
44
44
  };
45
- InspectorAdvancedControls.Slot = (props) => {
45
+ InspectorAdvancedControls.Slot = function Slot(props) {
46
46
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_slot.default, { ...props, group: "advanced" });
47
47
  };
48
48
  InspectorAdvancedControls.slotName = "InspectorAdvancedControls";
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/inspector-controls/index.js"],
4
- "sourcesContent": ["/**\n * Internal dependencies\n */\nimport InspectorControlsFill from './fill';\nimport InspectorControlsSlot from './slot';\n\nconst InspectorControls = InspectorControlsFill;\n\nInspectorControls.Slot = InspectorControlsSlot;\n\n// This is just here for backward compatibility.\nexport const InspectorAdvancedControls = ( props ) => {\n\treturn <InspectorControlsFill { ...props } group=\"advanced\" />;\n};\nInspectorAdvancedControls.Slot = ( props ) => {\n\treturn <InspectorControlsSlot { ...props } group=\"advanced\" />;\n};\nInspectorAdvancedControls.slotName = 'InspectorAdvancedControls';\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/inspector-controls/README.md\n */\nexport default InspectorControls;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAkC;AAClC,kBAAkC;AAQ1B;AANR,IAAM,oBAAoB,YAAAA;AAE1B,kBAAkB,OAAO,YAAAC;AAGlB,IAAM,4BAA4B,CAAE,UAAW;AACrD,SAAO,4CAAC,YAAAD,SAAA,EAAwB,GAAG,OAAQ,OAAM,YAAW;AAC7D;AACA,0BAA0B,OAAO,CAAE,UAAW;AAC7C,SAAO,4CAAC,YAAAC,SAAA,EAAwB,GAAG,OAAQ,OAAM,YAAW;AAC7D;AACA,0BAA0B,WAAW;AAKrC,IAAO,6BAAQ;",
4
+ "sourcesContent": ["/**\n * Internal dependencies\n */\nimport InspectorControlsFill from './fill';\nimport InspectorControlsSlot from './slot';\n\nconst InspectorControls = InspectorControlsFill;\n\nInspectorControls.Slot = InspectorControlsSlot;\n\n// This is just here for backward compatibility.\nexport const InspectorAdvancedControls = ( props ) => {\n\treturn <InspectorControlsFill { ...props } group=\"advanced\" />;\n};\nInspectorAdvancedControls.Slot = function Slot( props ) {\n\treturn <InspectorControlsSlot { ...props } group=\"advanced\" />;\n};\nInspectorAdvancedControls.slotName = 'InspectorAdvancedControls';\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/inspector-controls/README.md\n */\nexport default InspectorControls;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAkC;AAClC,kBAAkC;AAQ1B;AANR,IAAM,oBAAoB,YAAAA;AAE1B,kBAAkB,OAAO,YAAAC;AAGlB,IAAM,4BAA4B,CAAE,UAAW;AACrD,SAAO,4CAAC,YAAAD,SAAA,EAAwB,GAAG,OAAQ,OAAM,YAAW;AAC7D;AACA,0BAA0B,OAAO,SAAS,KAAM,OAAQ;AACvD,SAAO,4CAAC,YAAAC,SAAA,EAAwB,GAAG,OAAQ,OAAM,YAAW;AAC7D;AACA,0BAA0B,WAAW;AAKrC,IAAO,6BAAQ;",
6
6
  "names": ["InspectorControlsFill", "InspectorControlsSlot"]
7
7
  }
@@ -62,7 +62,7 @@ function InspectorControlsTabs({
62
62
  hasUserSelectionRef.current = false;
63
63
  }, [clientId]);
64
64
  (0, import_element.useEffect)(() => {
65
- if (!tabs?.length || hasUserSelectionRef.current) {
65
+ if (!tabs?.length || hasUserSelectionRef.current && tabs.some((tab) => tab.name === selectedTabId)) {
66
66
  return;
67
67
  }
68
68
  const firstTabName = tabs[0]?.name;
@@ -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, useRef } 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 { 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\tconst [ selectedTabId, setSelectedTabId ] = useState( tabs[ 0 ]?.name );\n\tconst hasUserSelectionRef = useRef( false );\n\n\t// Reset when switching blocks\n\tuseEffect( () => {\n\t\thasUserSelectionRef.current = false;\n\t}, [ clientId ] );\n\n\t// Auto-select first available tab unless user has made a selection\n\tuseEffect( () => {\n\t\tif ( ! tabs?.length || hasUserSelectionRef.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst firstTabName = tabs[ 0 ]?.name;\n\t\tif ( selectedTabId !== firstTabName ) {\n\t\t\tsetSelectedTabId( firstTabName );\n\t\t}\n\t}, [ tabs, selectedTabId ] );\n\n\tconst handleTabSelect = ( tabId ) => {\n\t\tsetSelectedTabId( tabId );\n\t\thasUserSelectionRef.current = true;\n\t};\n\n\treturn (\n\t\t<div className=\"block-editor-block-inspector__tabs\">\n\t\t\t<Tabs\n\t\t\t\tselectedTabId={ selectedTabId }\n\t\t\t\tonSelect={ handleTabSelect }\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<InspectorControls.Slot group=\"content\" />\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,qBAA4C;AAC5C,yBAA0C;AAC1C,kBAA0B;AAK1B,mBAAqE;AACrE,0BAAwB;AACxB,wBAAsB;AACtB,yBAAuB;AACvB,gCAA8B;AAC9B,yBAAuB;AAmDhB;AAjDP,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;AAEN,QAAM,CAAE,eAAe,gBAAiB,QAAI,yBAAU,KAAM,CAAE,GAAG,IAAK;AACtE,QAAM,0BAAsB,uBAAQ,KAAM;AAG1C,gCAAW,MAAM;AAChB,wBAAoB,UAAU;AAAA,EAC/B,GAAG,CAAE,QAAS,CAAE;AAGhB,gCAAW,MAAM;AAChB,QAAK,CAAE,MAAM,UAAU,oBAAoB,SAAU;AACpD;AAAA,IACD;AAEA,UAAM,eAAe,KAAM,CAAE,GAAG;AAChC,QAAK,kBAAkB,cAAe;AACrC,uBAAkB,YAAa;AAAA,IAChC;AAAA,EACD,GAAG,CAAE,MAAM,aAAc,CAAE;AAE3B,QAAM,kBAAkB,CAAE,UAAW;AACpC,qBAAkB,KAAM;AACxB,wBAAoB,UAAU;AAAA,EAC/B;AAEA,SACC,4CAAC,SAAI,WAAU,sCACd;AAAA,IAAC;AAAA;AAAA,MACA;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,6CAAC,KAAK,UAAL,EAAc,OAAQ,yBAAY,MAAO,WAAY,OACrD;AAAA,sDAAC,0BAAAC,QAAkB,MAAlB,EAAuB,OAAM,WAAU;AAAA,UACxC,4CAAC,mBAAAC,SAAA,EAAW,kBAAsC;AAAA,WACnD;AAAA,QACA,4CAAC,KAAK,UAAL,EAAc,OAAQ,2BAAc,MAAO,WAAY,OACvD,sDAAC,0BAAAD,QAAkB,MAAlB,EAAuB,OAAM,QAAO,GACtC;AAAA;AAAA;AAAA,IAtCM;AAAA,EAuCP,GACD;AAEF;",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tIcon,\n\tTooltip,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { useEffect, useState, useRef } 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 { 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\tconst [ selectedTabId, setSelectedTabId ] = useState( tabs[ 0 ]?.name );\n\tconst hasUserSelectionRef = useRef( false );\n\n\t// Reset when switching blocks\n\tuseEffect( () => {\n\t\thasUserSelectionRef.current = false;\n\t}, [ clientId ] );\n\n\t// Auto-select first available tab unless user has made a selection\n\tuseEffect( () => {\n\t\tif (\n\t\t\t! tabs?.length ||\n\t\t\t( hasUserSelectionRef.current &&\n\t\t\t\ttabs.some( ( tab ) => tab.name === selectedTabId ) )\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst firstTabName = tabs[ 0 ]?.name;\n\t\tif ( selectedTabId !== firstTabName ) {\n\t\t\tsetSelectedTabId( firstTabName );\n\t\t}\n\t}, [ tabs, selectedTabId ] );\n\n\tconst handleTabSelect = ( tabId ) => {\n\t\tsetSelectedTabId( tabId );\n\t\thasUserSelectionRef.current = true;\n\t};\n\n\treturn (\n\t\t<div className=\"block-editor-block-inspector__tabs\">\n\t\t\t<Tabs\n\t\t\t\tselectedTabId={ selectedTabId }\n\t\t\t\tonSelect={ handleTabSelect }\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<InspectorControls.Slot group=\"content\" />\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,qBAA4C;AAC5C,yBAA0C;AAC1C,kBAA0B;AAK1B,mBAAqE;AACrE,0BAAwB;AACxB,wBAAsB;AACtB,yBAAuB;AACvB,gCAA8B;AAC9B,yBAAuB;AAuDhB;AArDP,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;AAEN,QAAM,CAAE,eAAe,gBAAiB,QAAI,yBAAU,KAAM,CAAE,GAAG,IAAK;AACtE,QAAM,0BAAsB,uBAAQ,KAAM;AAG1C,gCAAW,MAAM;AAChB,wBAAoB,UAAU;AAAA,EAC/B,GAAG,CAAE,QAAS,CAAE;AAGhB,gCAAW,MAAM;AAChB,QACC,CAAE,MAAM,UACN,oBAAoB,WACrB,KAAK,KAAM,CAAE,QAAS,IAAI,SAAS,aAAc,GACjD;AACD;AAAA,IACD;AAEA,UAAM,eAAe,KAAM,CAAE,GAAG;AAChC,QAAK,kBAAkB,cAAe;AACrC,uBAAkB,YAAa;AAAA,IAChC;AAAA,EACD,GAAG,CAAE,MAAM,aAAc,CAAE;AAE3B,QAAM,kBAAkB,CAAE,UAAW;AACpC,qBAAkB,KAAM;AACxB,wBAAoB,UAAU;AAAA,EAC/B;AAEA,SACC,4CAAC,SAAI,WAAU,sCACd;AAAA,IAAC;AAAA;AAAA,MACA;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,6CAAC,KAAK,UAAL,EAAc,OAAQ,yBAAY,MAAO,WAAY,OACrD;AAAA,sDAAC,0BAAAC,QAAkB,MAAlB,EAAuB,OAAM,WAAU;AAAA,UACxC,4CAAC,mBAAAC,SAAA,EAAW,kBAAsC;AAAA,WACnD;AAAA,QACA,4CAAC,KAAK,UAAL,EAAc,OAAQ,2BAAc,MAAO,WAAY,OACvD,sDAAC,0BAAAD,QAAkB,MAAlB,EAAuB,OAAM,QAAO,GACtC;AAAA;AAAA;AAAA,IAtCM;AAAA,EAuCP,GACD;AAEF;",
6
6
  "names": ["componentsPrivateApis", "preferencesStore", "SettingsTab", "StylesTab", "InspectorControls", "ContentTab"]
7
7
  }
@@ -94,8 +94,8 @@ function useInspectorControlsTabs(blockName, contentClientIds, isSectionBlock, h
94
94
  if (hasListFills) {
95
95
  tabs.push(import_utils.TAB_LIST_VIEW);
96
96
  }
97
- if ((settingsFills.length || // Advanded fills who up in settings tab if available or they blend into the default tab, if there's only one tab.
98
- advancedFills.length && (hasContentTab || hasListFills)) && !isSectionBlock) {
97
+ if (settingsFills.length || // Advanced fills show up in settings tab if available or they blend into the default tab, if there's only one tab.
98
+ advancedFills.length && (hasContentTab || hasListFills)) {
99
99
  tabs.push(import_utils.TAB_SETTINGS);
100
100
  }
101
101
  if (hasBlockStyles || hasStyleFills) {
@@ -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 { 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\tcontent: contentGroup,\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 listFills = useSlotFills( listGroup.name );\n\tconst hasListFills = !! listFills && listFills.length;\n\n\t// Content Tab: If there are any fills for the content group add that tab.\n\tconst contentFills = useSlotFills( contentGroup.name );\n\tconst hasContentFills = !! contentFills && contentFills.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\t// When the block fields experiment is active, only rely on `hasContentFills`\n\t// to determine whether the content tab to be shown. The tab purely uses slot\n\t// fills in this situation.\n\tconst shouldShowBlockFields =\n\t\twindow?.__experimentalContentOnlyInspectorFields;\n\tconst hasContentTab =\n\t\thasContentFills ||\n\t\t( ! shouldShowBlockFields && contentClientIds?.length );\n\n\tif ( hasContentTab ) {\n\t\ttabs.push( TAB_CONTENT );\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 ) {\n\t\ttabs.push( TAB_LIST_VIEW );\n\t}\n\n\tif (\n\t\t( settingsFills.length ||\n\t\t\t// Advanded fills who up in settings tab if available or they blend into the default tab, if there's only one tab.\n\t\t\t( advancedFills.length && ( hasContentTab || hasListFills ) ) ) &&\n\t\t! isSectionBlock\n\t) {\n\t\ttabs.push( TAB_SETTINGS );\n\t}\n\n\tif ( 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,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,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,gBAAY,kBAAAC,4BAAc,UAAU,IAAK;AAC/C,QAAM,eAAe,CAAC,CAAE,aAAa,UAAU;AAG/C,QAAM,mBAAe,kBAAAA,4BAAc,aAAa,IAAK;AACrD,QAAM,kBAAkB,CAAC,CAAE,gBAAgB,aAAa;AAIxD,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;AAKA,QAAM,wBACL,QAAQ;AACT,QAAM,gBACL,mBACE,CAAE,yBAAyB,kBAAkB;AAEhD,MAAK,eAAgB;AACpB,SAAK,KAAM,wBAAY;AAAA,EACxB;AAIA,MAAK,cAAe;AACnB,SAAK,KAAM,0BAAc;AAAA,EAC1B;AAEA,OACG,cAAc;AAAA,EAEb,cAAc,WAAY,iBAAiB,kBAC9C,CAAE,gBACD;AACD,SAAK,KAAM,yBAAa;AAAA,EACzB;AAEA,MAAK,kBAAkB,eAAgB;AACtC,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 { 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\tcontent: contentGroup,\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 listFills = useSlotFills( listGroup.name );\n\tconst hasListFills = !! listFills && listFills.length;\n\n\t// Content Tab: If there are any fills for the content group add that tab.\n\tconst contentFills = useSlotFills( contentGroup.name );\n\tconst hasContentFills = !! contentFills && contentFills.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\t// When the block fields experiment is active, only rely on `hasContentFills`\n\t// to determine whether the content tab to be shown. The tab purely uses slot\n\t// fills in this situation.\n\tconst shouldShowBlockFields =\n\t\twindow?.__experimentalContentOnlyInspectorFields;\n\tconst hasContentTab =\n\t\thasContentFills ||\n\t\t( ! shouldShowBlockFields && contentClientIds?.length );\n\n\tif ( hasContentTab ) {\n\t\ttabs.push( TAB_CONTENT );\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 ) {\n\t\ttabs.push( TAB_LIST_VIEW );\n\t}\n\n\tif (\n\t\tsettingsFills.length ||\n\t\t// Advanced fills show up in settings tab if available or they blend into the default tab, if there's only one tab.\n\t\t( advancedFills.length && ( hasContentTab || hasListFills ) )\n\t) {\n\t\ttabs.push( TAB_SETTINGS );\n\t}\n\n\tif ( 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,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,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,gBAAY,kBAAAC,4BAAc,UAAU,IAAK;AAC/C,QAAM,eAAe,CAAC,CAAE,aAAa,UAAU;AAG/C,QAAM,mBAAe,kBAAAA,4BAAc,aAAa,IAAK;AACrD,QAAM,kBAAkB,CAAC,CAAE,gBAAgB,aAAa;AAIxD,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;AAKA,QAAM,wBACL,QAAQ;AACT,QAAM,gBACL,mBACE,CAAE,yBAAyB,kBAAkB;AAEhD,MAAK,eAAgB;AACpB,SAAK,KAAM,wBAAY;AAAA,EACxB;AAIA,MAAK,cAAe;AACnB,SAAK,KAAM,0BAAc;AAAA,EAC1B;AAEA,MACC,cAAc;AAAA,EAEZ,cAAc,WAAY,iBAAiB,eAC5C;AACD,SAAK,KAAM,yBAAa;AAAA,EACzB;AAEA,MAAK,kBAAkB,eAAgB;AACtC,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", "useSlotFills", "blockEditorStore"]
7
7
  }
@@ -39,7 +39,6 @@ var import_element = require("@wordpress/element");
39
39
  var import_icons = require("@wordpress/icons");
40
40
  var import_keycodes = require("@wordpress/keycodes");
41
41
  var import_data = require("@wordpress/data");
42
- var import_blocks = require("@wordpress/blocks");
43
42
  var import_block_icon = __toESM(require("../block-icon/index.cjs"));
44
43
  var import_use_block_display_information = __toESM(require("../use-block-display-information/index.cjs"));
45
44
  var import_use_block_display_title = __toESM(require("../block-title/use-block-display-title.cjs"));
@@ -71,27 +70,20 @@ function ListViewBlockSelectButton({
71
70
  context: "list-view"
72
71
  });
73
72
  const { isLocked } = (0, import_block_lock.useBlockLock)(clientId);
74
- const { canToggleBlockVisibility, isBlockHidden, hasPatternName } = (0, import_data.useSelect)(
73
+ const { isBlockHidden, hasPatternName } = (0, import_data.useSelect)(
75
74
  (select) => {
76
- const { getBlockName, getBlockAttributes } = select(import_store.store);
77
- const { areBlocksHiddenAnywhere } = (0, import_lock_unlock.unlock)(
78
- select(import_store.store)
79
- );
80
- const blockAttributes = getBlockAttributes(clientId);
75
+ const {
76
+ isBlockHiddenAnywhere: _isBlockHidden,
77
+ getBlockAttributes
78
+ } = (0, import_lock_unlock.unlock)(select(import_store.store));
81
79
  return {
82
- canToggleBlockVisibility: (0, import_blocks.hasBlockSupport)(
83
- getBlockName(clientId),
84
- "visibility",
85
- true
86
- ),
87
- isBlockHidden: areBlocksHiddenAnywhere([clientId]),
88
- hasPatternName: !!blockAttributes?.metadata?.patternName
80
+ isBlockHidden: _isBlockHidden(clientId),
81
+ hasPatternName: !!getBlockAttributes(clientId)?.metadata?.patternName
89
82
  };
90
83
  },
91
84
  [clientId]
92
85
  );
93
86
  const shouldShowLockIcon = isLocked;
94
- const shouldShowBlockVisibilityIcon = canToggleBlockVisibility && isBlockHidden;
95
87
  const isSticky = blockInformation?.positionType === "sticky";
96
88
  const images = (0, import_use_list_view_images.default)({ clientId, isExpanded });
97
89
  const onDragStartHandler = (event) => {
@@ -163,7 +155,7 @@ function ListViewBlockSelectButton({
163
155
  ))
164
156
  }
165
157
  ) : null,
166
- shouldShowBlockVisibilityIcon && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "block-editor-list-view-block-select-button__block-visibility", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons.Icon, { icon: import_icons.unseen }) }),
158
+ isBlockHidden && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "block-editor-list-view-block-select-button__block-visibility", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons.Icon, { icon: import_icons.unseen }) }),
167
159
  shouldShowLockIcon && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "block-editor-list-view-block-select-button__lock", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons.Icon, { icon: import_icons.lockSmall }) })
168
160
  ]
169
161
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/list-view/block-select-button.js"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalTruncate as Truncate,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { forwardRef } from '@wordpress/element';\nimport {\n\tIcon,\n\tlockSmall as lock,\n\tpinSmall,\n\tunseen,\n\tsymbol,\n} from '@wordpress/icons';\nimport { SPACE, ENTER } from '@wordpress/keycodes';\nimport { useSelect } from '@wordpress/data';\nimport { hasBlockSupport } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport BlockIcon from '../block-icon';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport useBlockDisplayTitle from '../block-title/use-block-display-title';\nimport ListViewExpander from './expander';\nimport { useBlockLock } from '../block-lock';\nimport useListViewImages from './use-list-view-images';\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nconst { Badge } = unlock( componentsPrivateApis );\n\nfunction ListViewBlockSelectButton(\n\t{\n\t\tclassName,\n\t\tblock: { clientId },\n\t\tonClick,\n\t\tonContextMenu,\n\t\tonMouseDown,\n\t\tonToggleExpanded,\n\t\ttabIndex,\n\t\tonFocus,\n\t\tonDragStart,\n\t\tonDragEnd,\n\t\tdraggable,\n\t\tisExpanded,\n\t\tariaDescribedBy,\n\t},\n\tref\n) {\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst blockTitle = useBlockDisplayTitle( {\n\t\tclientId,\n\t\tcontext: 'list-view',\n\t} );\n\tconst { isLocked } = useBlockLock( clientId );\n\tconst { canToggleBlockVisibility, isBlockHidden, hasPatternName } =\n\t\tuseSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst { getBlockName, getBlockAttributes } =\n\t\t\t\t\tselect( blockEditorStore );\n\t\t\t\tconst { areBlocksHiddenAnywhere } = unlock(\n\t\t\t\t\tselect( blockEditorStore )\n\t\t\t\t);\n\t\t\t\tconst blockAttributes = getBlockAttributes( clientId );\n\t\t\t\treturn {\n\t\t\t\t\tcanToggleBlockVisibility: hasBlockSupport(\n\t\t\t\t\t\tgetBlockName( clientId ),\n\t\t\t\t\t\t'visibility',\n\t\t\t\t\t\ttrue\n\t\t\t\t\t),\n\t\t\t\t\tisBlockHidden: areBlocksHiddenAnywhere( [ clientId ] ),\n\t\t\t\t\thasPatternName: !! blockAttributes?.metadata?.patternName,\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ clientId ]\n\t\t);\n\tconst shouldShowLockIcon = isLocked;\n\tconst shouldShowBlockVisibilityIcon =\n\t\tcanToggleBlockVisibility && isBlockHidden;\n\tconst isSticky = blockInformation?.positionType === 'sticky';\n\tconst images = useListViewImages( { clientId, isExpanded } );\n\n\t// The `href` attribute triggers the browser's native HTML drag operations.\n\t// When the link is dragged, the element's outerHTML is set in DataTransfer object as text/html.\n\t// We need to clear any HTML drag data to prevent `pasteHandler` from firing\n\t// inside the `useOnBlockDrop` hook.\n\tconst onDragStartHandler = ( event ) => {\n\t\tevent.dataTransfer.clearData();\n\t\tonDragStart?.( event );\n\t};\n\n\t/**\n\t * @param {KeyboardEvent} event\n\t */\n\tfunction onKeyDown( event ) {\n\t\tif ( event.keyCode === ENTER || event.keyCode === SPACE ) {\n\t\t\tonClick( event );\n\t\t}\n\t}\n\n\treturn (\n\t\t<a\n\t\t\tclassName={ clsx(\n\t\t\t\t'block-editor-list-view-block-select-button',\n\t\t\t\tclassName\n\t\t\t) }\n\t\t\tonClick={ onClick }\n\t\t\tonContextMenu={ onContextMenu }\n\t\t\tonKeyDown={ onKeyDown }\n\t\t\tonMouseDown={ onMouseDown }\n\t\t\tref={ ref }\n\t\t\ttabIndex={ tabIndex }\n\t\t\tonFocus={ onFocus }\n\t\t\tonDragStart={ onDragStartHandler }\n\t\t\tonDragEnd={ onDragEnd }\n\t\t\tdraggable={ draggable }\n\t\t\thref={ `#block-${ clientId }` }\n\t\t\taria-describedby={ ariaDescribedBy }\n\t\t\taria-expanded={ isExpanded }\n\t\t>\n\t\t\t<ListViewExpander onClick={ onToggleExpanded } />\n\t\t\t<BlockIcon\n\t\t\t\ticon={ hasPatternName ? symbol : blockInformation?.icon }\n\t\t\t\tshowColors\n\t\t\t\tcontext=\"list-view\"\n\t\t\t/>\n\t\t\t<HStack\n\t\t\t\talignment=\"center\"\n\t\t\t\tclassName=\"block-editor-list-view-block-select-button__label-wrapper\"\n\t\t\t\tjustify=\"flex-start\"\n\t\t\t\tspacing={ 1 }\n\t\t\t>\n\t\t\t\t<span className=\"block-editor-list-view-block-select-button__title\">\n\t\t\t\t\t<Truncate ellipsizeMode=\"auto\">{ blockTitle }</Truncate>\n\t\t\t\t</span>\n\t\t\t\t{ blockInformation?.anchor && (\n\t\t\t\t\t<span className=\"block-editor-list-view-block-select-button__anchor-wrapper\">\n\t\t\t\t\t\t<Badge className=\"block-editor-list-view-block-select-button__anchor\">\n\t\t\t\t\t\t\t{ blockInformation.anchor }\n\t\t\t\t\t\t</Badge>\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t\t{ isSticky && (\n\t\t\t\t\t<span className=\"block-editor-list-view-block-select-button__sticky\">\n\t\t\t\t\t\t<Icon icon={ pinSmall } />\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t\t{ images.length ? (\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName=\"block-editor-list-view-block-select-button__images\"\n\t\t\t\t\t\taria-hidden\n\t\t\t\t\t>\n\t\t\t\t\t\t{ images.map( ( image, index ) => (\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tclassName=\"block-editor-list-view-block-select-button__image\"\n\t\t\t\t\t\t\t\tkey={ image.clientId }\n\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\tbackgroundImage: `url(${ image.url })`,\n\t\t\t\t\t\t\t\t\tzIndex: images.length - index, // Ensure the first image is on top, and subsequent images are behind.\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</span>\n\t\t\t\t) : null }\n\t\t\t\t{ shouldShowBlockVisibilityIcon && (\n\t\t\t\t\t<span className=\"block-editor-list-view-block-select-button__block-visibility\">\n\t\t\t\t\t\t<Icon icon={ unseen } />\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t\t{ shouldShowLockIcon && (\n\t\t\t\t\t<span className=\"block-editor-list-view-block-select-button__lock\">\n\t\t\t\t\t\t<Icon icon={ lock } />\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t</a>\n\t);\n}\n\nexport default forwardRef( ListViewBlockSelectButton );\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalTruncate as Truncate,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { forwardRef } from '@wordpress/element';\nimport {\n\tIcon,\n\tlockSmall as lock,\n\tpinSmall,\n\tunseen,\n\tsymbol,\n} from '@wordpress/icons';\nimport { SPACE, ENTER } from '@wordpress/keycodes';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport BlockIcon from '../block-icon';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport useBlockDisplayTitle from '../block-title/use-block-display-title';\nimport ListViewExpander from './expander';\nimport { useBlockLock } from '../block-lock';\nimport useListViewImages from './use-list-view-images';\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nconst { Badge } = unlock( componentsPrivateApis );\n\nfunction ListViewBlockSelectButton(\n\t{\n\t\tclassName,\n\t\tblock: { clientId },\n\t\tonClick,\n\t\tonContextMenu,\n\t\tonMouseDown,\n\t\tonToggleExpanded,\n\t\ttabIndex,\n\t\tonFocus,\n\t\tonDragStart,\n\t\tonDragEnd,\n\t\tdraggable,\n\t\tisExpanded,\n\t\tariaDescribedBy,\n\t},\n\tref\n) {\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst blockTitle = useBlockDisplayTitle( {\n\t\tclientId,\n\t\tcontext: 'list-view',\n\t} );\n\tconst { isLocked } = useBlockLock( clientId );\n\tconst { isBlockHidden, hasPatternName } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tisBlockHiddenAnywhere: _isBlockHidden,\n\t\t\t\tgetBlockAttributes,\n\t\t\t} = unlock( select( blockEditorStore ) );\n\t\t\treturn {\n\t\t\t\tisBlockHidden: _isBlockHidden( clientId ),\n\t\t\t\thasPatternName:\n\t\t\t\t\t!! getBlockAttributes( clientId )?.metadata?.patternName,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst shouldShowLockIcon = isLocked;\n\tconst isSticky = blockInformation?.positionType === 'sticky';\n\tconst images = useListViewImages( { clientId, isExpanded } );\n\n\t// The `href` attribute triggers the browser's native HTML drag operations.\n\t// When the link is dragged, the element's outerHTML is set in DataTransfer object as text/html.\n\t// We need to clear any HTML drag data to prevent `pasteHandler` from firing\n\t// inside the `useOnBlockDrop` hook.\n\tconst onDragStartHandler = ( event ) => {\n\t\tevent.dataTransfer.clearData();\n\t\tonDragStart?.( event );\n\t};\n\n\t/**\n\t * @param {KeyboardEvent} event\n\t */\n\tfunction onKeyDown( event ) {\n\t\tif ( event.keyCode === ENTER || event.keyCode === SPACE ) {\n\t\t\tonClick( event );\n\t\t}\n\t}\n\n\treturn (\n\t\t<a\n\t\t\tclassName={ clsx(\n\t\t\t\t'block-editor-list-view-block-select-button',\n\t\t\t\tclassName\n\t\t\t) }\n\t\t\tonClick={ onClick }\n\t\t\tonContextMenu={ onContextMenu }\n\t\t\tonKeyDown={ onKeyDown }\n\t\t\tonMouseDown={ onMouseDown }\n\t\t\tref={ ref }\n\t\t\ttabIndex={ tabIndex }\n\t\t\tonFocus={ onFocus }\n\t\t\tonDragStart={ onDragStartHandler }\n\t\t\tonDragEnd={ onDragEnd }\n\t\t\tdraggable={ draggable }\n\t\t\thref={ `#block-${ clientId }` }\n\t\t\taria-describedby={ ariaDescribedBy }\n\t\t\taria-expanded={ isExpanded }\n\t\t>\n\t\t\t<ListViewExpander onClick={ onToggleExpanded } />\n\t\t\t<BlockIcon\n\t\t\t\ticon={ hasPatternName ? symbol : blockInformation?.icon }\n\t\t\t\tshowColors\n\t\t\t\tcontext=\"list-view\"\n\t\t\t/>\n\t\t\t<HStack\n\t\t\t\talignment=\"center\"\n\t\t\t\tclassName=\"block-editor-list-view-block-select-button__label-wrapper\"\n\t\t\t\tjustify=\"flex-start\"\n\t\t\t\tspacing={ 1 }\n\t\t\t>\n\t\t\t\t<span className=\"block-editor-list-view-block-select-button__title\">\n\t\t\t\t\t<Truncate ellipsizeMode=\"auto\">{ blockTitle }</Truncate>\n\t\t\t\t</span>\n\t\t\t\t{ blockInformation?.anchor && (\n\t\t\t\t\t<span className=\"block-editor-list-view-block-select-button__anchor-wrapper\">\n\t\t\t\t\t\t<Badge className=\"block-editor-list-view-block-select-button__anchor\">\n\t\t\t\t\t\t\t{ blockInformation.anchor }\n\t\t\t\t\t\t</Badge>\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t\t{ isSticky && (\n\t\t\t\t\t<span className=\"block-editor-list-view-block-select-button__sticky\">\n\t\t\t\t\t\t<Icon icon={ pinSmall } />\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t\t{ images.length ? (\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName=\"block-editor-list-view-block-select-button__images\"\n\t\t\t\t\t\taria-hidden\n\t\t\t\t\t>\n\t\t\t\t\t\t{ images.map( ( image, index ) => (\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tclassName=\"block-editor-list-view-block-select-button__image\"\n\t\t\t\t\t\t\t\tkey={ image.clientId }\n\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\tbackgroundImage: `url(${ image.url })`,\n\t\t\t\t\t\t\t\t\tzIndex: images.length - index, // Ensure the first image is on top, and subsequent images are behind.\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</span>\n\t\t\t\t) : null }\n\t\t\t\t{ isBlockHidden && (\n\t\t\t\t\t<span className=\"block-editor-list-view-block-select-button__block-visibility\">\n\t\t\t\t\t\t<Icon icon={ unseen } />\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t\t{ shouldShowLockIcon && (\n\t\t\t\t\t<span className=\"block-editor-list-view-block-select-button__lock\">\n\t\t\t\t\t\t<Icon icon={ lock } />\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t</a>\n\t);\n}\n\nexport default forwardRef( ListViewBlockSelectButton );\n"],
5
+ "mappings": "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",
6
6
  "names": ["componentsPrivateApis", "useBlockDisplayInformation", "useBlockDisplayTitle", "blockEditorStore", "useListViewImages", "clsx", "ListViewExpander", "BlockIcon", "HStack", "Truncate", "lock"]
7
7
  }
@@ -57,8 +57,9 @@ var import_block_lock = require("../block-lock/index.cjs");
57
57
  var import_aria_referenced_text = __toESM(require("./aria-referenced-text.cjs"));
58
58
  var import_lock_unlock = require("../../lock-unlock.cjs");
59
59
  var import_use_paste_styles = __toESM(require("../use-paste-styles/index.cjs"));
60
- var import_utils2 = require("../../hooks/utils.cjs");
61
60
  var import_block_visibility = require("../block-visibility/index.cjs");
61
+ var import_private_keys = require("../../store/private-keys.cjs");
62
+ var import_constants = require("../block-visibility/constants.cjs");
62
63
  var import_jsx_runtime = require("react/jsx-runtime");
63
64
  function ListViewBlock({
64
65
  block: { clientId },
@@ -95,8 +96,7 @@ function ListViewBlock({
95
96
  replaceBlocks,
96
97
  removeBlocks,
97
98
  insertAfterBlock,
98
- insertBeforeBlock,
99
- updateBlockAttributes
99
+ insertBeforeBlock
100
100
  } = (0, import_lock_unlock.unlock)((0, import_data.useDispatch)(import_store.store));
101
101
  const debouncedToggleBlockHighlight = (0, import_compose.useDebounce)(
102
102
  toggleBlockHighlight,
@@ -118,25 +118,41 @@ function ListViewBlock({
118
118
  const { getGroupingBlockName } = (0, import_data.useSelect)(import_blocks.store);
119
119
  const blockInformation = (0, import_use_block_display_information.default)(clientId);
120
120
  const pasteStyles = (0, import_use_paste_styles.default)();
121
- const { block, blockName, allowRightClickOverrides, isBlockHidden } = (0, import_data.useSelect)(
121
+ const { block, blockName, allowRightClickOverrides, selectedDeviceType } = (0, import_data.useSelect)(
122
122
  (select) => {
123
- const {
124
- getBlock,
125
- getBlockName: _getBlockName,
126
- getSettings
127
- } = select(import_store.store);
128
- const { isBlockHidden: _isBlockHidden } = (0, import_lock_unlock.unlock)(
123
+ const { getBlock, getBlockName, getSettings } = (0, import_lock_unlock.unlock)(
129
124
  select(import_store.store)
130
125
  );
131
126
  return {
132
127
  block: getBlock(clientId),
133
- blockName: _getBlockName(clientId),
128
+ blockName: getBlockName(clientId),
134
129
  allowRightClickOverrides: getSettings().allowRightClickOverrides,
135
- isBlockHidden: _isBlockHidden(clientId)
130
+ selectedDeviceType: getSettings()?.[import_private_keys.deviceTypeKey]?.toLowerCase() || import_constants.BLOCK_VISIBILITY_VIEWPORTS.desktop.value
136
131
  };
137
132
  },
138
133
  [clientId]
139
134
  );
135
+ const { isBlockCurrentlyHidden, currentViewport } = (0, import_block_visibility.useBlockVisibility)({
136
+ blockVisibility: block?.attributes?.metadata?.blockVisibility,
137
+ deviceType: selectedDeviceType
138
+ });
139
+ const blockVisibilityDescription = (0, import_element.useMemo)(() => {
140
+ if (isBlockCurrentlyHidden) {
141
+ if (block?.attributes?.metadata?.blockVisibility === false) {
142
+ return (0, import_i18n.__)("Block is hidden");
143
+ }
144
+ return (0, import_i18n.sprintf)(
145
+ /* translators: %s: viewport name (Desktop, Tablet, Mobile) */
146
+ (0, import_i18n.__)("Block is hidden on %s"),
147
+ import_constants.BLOCK_VISIBILITY_VIEWPORTS[currentViewport]?.label || currentViewport
148
+ );
149
+ }
150
+ return null;
151
+ }, [
152
+ isBlockCurrentlyHidden,
153
+ block?.attributes?.metadata?.blockVisibility,
154
+ currentViewport
155
+ ]);
140
156
  const showBlockActions = (
141
157
  // When a block hides its toolbar it also hides the block settings menu,
142
158
  // since that menu is part of the toolbar in the editor canvas.
@@ -291,27 +307,7 @@ function ListViewBlock({
291
307
  if (!supportsBlockVisibility) {
292
308
  return;
293
309
  }
294
- if (window.__experimentalHideBlocksBasedOnScreenSize) {
295
- setVisibilityModalClientIds(blocksToUpdate);
296
- } else {
297
- const hasHiddenBlock = blocks.some(
298
- (blockToUpdate) => blockToUpdate.attributes.metadata?.blockVisibility === false
299
- );
300
- const attributesByClientId = Object.fromEntries(
301
- blocks.map(({ clientId: mapClientId, attributes }) => [
302
- mapClientId,
303
- {
304
- metadata: (0, import_utils2.cleanEmptyObject)({
305
- ...attributes?.metadata,
306
- blockVisibility: hasHiddenBlock ? void 0 : false
307
- })
308
- }
309
- ])
310
- );
311
- updateBlockAttributes(blocksToUpdate, attributesByClientId, {
312
- uniqueByBlock: true
313
- });
314
- }
310
+ setVisibilityModalClientIds(blocksToUpdate);
315
311
  }
316
312
  }
317
313
  const onMouseEnter = (0, import_element.useCallback)(() => {
@@ -406,7 +402,6 @@ function ListViewBlock({
406
402
  blockInformation,
407
403
  isLocked
408
404
  );
409
- const blockVisibilityDescription = isBlockHidden ? (0, import_i18n.__)("Block is hidden.") : null;
410
405
  const hasSiblings = siblingBlockCount > 0;
411
406
  const hasRenderedMovers = showBlockMovers && hasSiblings;
412
407
  const moverCellClassName = (0, import_clsx.default)(