@wordpress/block-editor 15.4.1-next.f56bd8138.0 → 15.5.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 (106) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/background-image-control/index.js +51 -24
  3. package/build/components/background-image-control/index.js.map +1 -1
  4. package/build/components/block-edit/edit.js +13 -5
  5. package/build/components/block-edit/edit.js.map +1 -1
  6. package/build/components/block-list/block.js +14 -4
  7. package/build/components/block-list/block.js.map +1 -1
  8. package/build/components/block-list/use-block-props/index.js +5 -4
  9. package/build/components/block-list/use-block-props/index.js.map +1 -1
  10. package/build/components/block-settings-menu-controls/index.js +10 -2
  11. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  12. package/build/components/block-toolbar/index.js +5 -0
  13. package/build/components/block-toolbar/index.js.map +1 -1
  14. package/build/components/block-visibility/index.js +21 -0
  15. package/build/components/block-visibility/index.js.map +1 -0
  16. package/build/components/block-visibility/menu-item.js +52 -0
  17. package/build/components/block-visibility/menu-item.js.map +1 -0
  18. package/build/components/block-visibility/toolbar.js +88 -0
  19. package/build/components/block-visibility/toolbar.js.map +1 -0
  20. package/build/components/inspector-controls-tabs/index.js +23 -0
  21. package/build/components/inspector-controls-tabs/index.js.map +1 -1
  22. package/build/components/link-control/index.js +1 -1
  23. package/build/components/link-control/index.js.map +1 -1
  24. package/build/components/list-view/block-select-button.js +23 -4
  25. package/build/components/list-view/block-select-button.js.map +1 -1
  26. package/build/components/list-view/block.js +9 -3
  27. package/build/components/list-view/block.js.map +1 -1
  28. package/build/components/rich-text/index.js +4 -2
  29. package/build/components/rich-text/index.js.map +1 -1
  30. package/build/components/use-block-drop-zone/index.js +5 -1
  31. package/build/components/use-block-drop-zone/index.js.map +1 -1
  32. package/build/hooks/block-bindings.js +9 -4
  33. package/build/hooks/block-bindings.js.map +1 -1
  34. package/build/store/private-selectors.js +19 -1
  35. package/build/store/private-selectors.js.map +1 -1
  36. package/build/store/reducer.js +1 -5
  37. package/build/store/reducer.js.map +1 -1
  38. package/build/utils/block-bindings.js +3 -48
  39. package/build/utils/block-bindings.js.map +1 -1
  40. package/build-module/components/background-image-control/index.js +52 -25
  41. package/build-module/components/background-image-control/index.js.map +1 -1
  42. package/build-module/components/block-edit/edit.js +14 -6
  43. package/build-module/components/block-edit/edit.js.map +1 -1
  44. package/build-module/components/block-list/block.js +14 -4
  45. package/build-module/components/block-list/block.js.map +1 -1
  46. package/build-module/components/block-list/use-block-props/index.js +5 -4
  47. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  48. package/build-module/components/block-settings-menu-controls/index.js +10 -2
  49. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  50. package/build-module/components/block-toolbar/index.js +5 -0
  51. package/build-module/components/block-toolbar/index.js.map +1 -1
  52. package/build-module/components/block-visibility/index.js +3 -0
  53. package/build-module/components/block-visibility/index.js.map +1 -0
  54. package/build-module/components/block-visibility/menu-item.js +45 -0
  55. package/build-module/components/block-visibility/menu-item.js.map +1 -0
  56. package/build-module/components/block-visibility/toolbar.js +81 -0
  57. package/build-module/components/block-visibility/toolbar.js.map +1 -0
  58. package/build-module/components/inspector-controls-tabs/index.js +23 -0
  59. package/build-module/components/inspector-controls-tabs/index.js.map +1 -1
  60. package/build-module/components/link-control/index.js +1 -1
  61. package/build-module/components/link-control/index.js.map +1 -1
  62. package/build-module/components/list-view/block-select-button.js +24 -5
  63. package/build-module/components/list-view/block-select-button.js.map +1 -1
  64. package/build-module/components/list-view/block.js +9 -3
  65. package/build-module/components/list-view/block.js.map +1 -1
  66. package/build-module/components/rich-text/index.js +4 -2
  67. package/build-module/components/rich-text/index.js.map +1 -1
  68. package/build-module/components/use-block-drop-zone/index.js +6 -2
  69. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  70. package/build-module/hooks/block-bindings.js +10 -5
  71. package/build-module/hooks/block-bindings.js.map +1 -1
  72. package/build-module/store/private-selectors.js +18 -1
  73. package/build-module/store/private-selectors.js.map +1 -1
  74. package/build-module/store/reducer.js +1 -5
  75. package/build-module/store/reducer.js.map +1 -1
  76. package/build-module/utils/block-bindings.js +3 -45
  77. package/build-module/utils/block-bindings.js.map +1 -1
  78. package/build-style/content-rtl.css +13 -0
  79. package/build-style/content.css +13 -0
  80. package/build-style/style-rtl.css +27 -0
  81. package/build-style/style.css +27 -0
  82. package/package.json +34 -34
  83. package/src/components/background-image-control/index.js +54 -27
  84. package/src/components/background-image-control/style.scss +28 -0
  85. package/src/components/block-edit/edit.js +23 -5
  86. package/src/components/block-list/block.js +16 -0
  87. package/src/components/block-list/content.scss +19 -0
  88. package/src/components/block-list/use-block-props/index.js +9 -9
  89. package/src/components/block-settings-menu-controls/index.js +21 -1
  90. package/src/components/block-toolbar/index.js +9 -0
  91. package/src/components/block-visibility/index.js +2 -0
  92. package/src/components/block-visibility/menu-item.js +53 -0
  93. package/src/components/block-visibility/toolbar.js +88 -0
  94. package/src/components/inspector-controls-tabs/index.js +33 -1
  95. package/src/components/link-control/index.js +1 -1
  96. package/src/components/link-control/test/index.js +4 -4
  97. package/src/components/list-view/block-select-button.js +32 -9
  98. package/src/components/list-view/block.js +24 -14
  99. package/src/components/list-view/style.scss +1 -0
  100. package/src/components/media-replace-flow/test/index.js +1 -1
  101. package/src/components/rich-text/index.js +6 -2
  102. package/src/components/use-block-drop-zone/index.js +14 -1
  103. package/src/hooks/block-bindings.js +49 -43
  104. package/src/store/private-selectors.js +21 -1
  105. package/src/store/reducer.js +1 -6
  106. package/src/utils/block-bindings.js +6 -48
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","__experimentalHStack","HStack","__experimentalTruncate","Truncate","privateApis","componentsPrivateApis","forwardRef","Icon","lockSmall","lock","pinSmall","SPACE","ENTER","useSelect","BlockIcon","useBlockDisplayInformation","useBlockDisplayTitle","ListViewExpander","useBlockLock","useListViewImages","store","blockEditorStore","unlock","jsx","_jsx","jsxs","_jsxs","Badge","ListViewBlockSelectButton","className","block","clientId","onClick","onContextMenu","onMouseDown","onToggleExpanded","tabIndex","onFocus","onDragStart","onDragEnd","draggable","isExpanded","ariaDescribedBy","ref","blockInformation","blockTitle","context","isLocked","isContentOnly","select","getBlockEditingMode","shouldShowLockIcon","isSticky","positionType","images","onDragStartHandler","event","dataTransfer","clearData","onKeyDown","keyCode","href","children","icon","showColors","alignment","justify","spacing","ellipsizeMode","anchor","length","map","image","index","style","backgroundImage","url","zIndex"],"sources":["@wordpress/block-editor/src/components/list-view/block-select-button.js"],"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 { Icon, lockSmall as lock, pinSmall } 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';\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 { isContentOnly } = useSelect(\n\t\t( select ) => ( {\n\t\t\tisContentOnly:\n\t\t\t\tselect( blockEditorStore ).getBlockEditingMode( clientId ) ===\n\t\t\t\t'contentOnly',\n\t\t} ),\n\t\t[ clientId ]\n\t);\n\tconst shouldShowLockIcon = isLocked && ! isContentOnly;\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={ 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{ 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"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","__experimentalHStack","HStack","__experimentalTruncate","Truncate","privateApis","componentsPrivateApis","forwardRef","Icon","lockSmall","lock","pinSmall","unseen","SPACE","ENTER","useSelect","hasBlockSupport","BlockIcon","useBlockDisplayInformation","useBlockDisplayTitle","ListViewExpander","useBlockLock","useListViewImages","store","blockEditorStore","unlock","jsx","_jsx","jsxs","_jsxs","Badge","ListViewBlockSelectButton","className","block","clientId","onClick","onContextMenu","onMouseDown","onToggleExpanded","tabIndex","onFocus","onDragStart","onDragEnd","draggable","isExpanded","ariaDescribedBy","ref","blockInformation","blockTitle","context","isLocked","canToggleBlockVisibility","isBlockHidden","isContentOnly","select","getBlockName","_isBlockHidden","getBlockEditingMode","shouldShowLockIcon","shouldShowBlockVisibilityIcon","isSticky","positionType","images","onDragStartHandler","event","dataTransfer","clearData","onKeyDown","keyCode","href","children","icon","showColors","alignment","justify","spacing","ellipsizeMode","anchor","length","map","image","index","style","backgroundImage","url","zIndex"],"sources":["@wordpress/block-editor/src/components/list-view/block-select-button.js"],"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 { Icon, lockSmall as lock, pinSmall, unseen } 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, isContentOnly } =\n\t\tuseSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst { getBlockName } = select( blockEditorStore );\n\t\t\t\tconst { isBlockHidden: _isBlockHidden } = unlock(\n\t\t\t\t\tselect( blockEditorStore )\n\t\t\t\t);\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'blockVisibility',\n\t\t\t\t\t\ttrue\n\t\t\t\t\t),\n\t\t\t\t\tisBlockHidden: _isBlockHidden( clientId ),\n\t\t\t\t\tisContentOnly:\n\t\t\t\t\t\tselect( blockEditorStore ).getBlockEditingMode(\n\t\t\t\t\t\t\tclientId\n\t\t\t\t\t\t) === 'contentOnly',\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ clientId ]\n\t\t);\n\tconst shouldShowLockIcon = isLocked && ! isContentOnly;\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={ 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"],"mappings":"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","ignoreList":[]}
@@ -97,17 +97,22 @@ function ListViewBlock({
97
97
  const {
98
98
  block,
99
99
  blockName,
100
- allowRightClickOverrides
100
+ allowRightClickOverrides,
101
+ isBlockHidden
101
102
  } = useSelect(select => {
102
103
  const {
103
104
  getBlock,
104
105
  getBlockName,
105
106
  getSettings
106
107
  } = select(blockEditorStore);
108
+ const {
109
+ isBlockHidden: _isBlockHidden
110
+ } = unlock(select(blockEditorStore));
107
111
  return {
108
112
  block: getBlock(clientId),
109
113
  blockName: getBlockName(clientId),
110
- allowRightClickOverrides: getSettings().allowRightClickOverrides
114
+ allowRightClickOverrides: getSettings().allowRightClickOverrides,
115
+ isBlockHidden: _isBlockHidden(clientId)
111
116
  };
112
117
  }, [clientId]);
113
118
  const showBlockActions =
@@ -385,6 +390,7 @@ function ListViewBlock({
385
390
  }
386
391
  const blockPositionDescription = getBlockPositionDescription(position, siblingBlockCount, level);
387
392
  const blockPropertiesDescription = getBlockPropertiesDescription(blockInformation, isLocked);
393
+ const blockVisibilityDescription = isBlockHidden ? __('Block is hidden.') : null;
388
394
  const hasSiblings = siblingBlockCount > 0;
389
395
  const hasRenderedMovers = showBlockMovers && hasSiblings;
390
396
  const moverCellClassName = clsx('block-editor-list-view-block__mover-cell', {
@@ -469,7 +475,7 @@ function ListViewBlock({
469
475
  ariaDescribedBy: descriptionId
470
476
  }), /*#__PURE__*/_jsx(AriaReferencedText, {
471
477
  id: descriptionId,
472
- children: [blockPositionDescription, blockPropertiesDescription].filter(Boolean).join(' ')
478
+ children: [blockPositionDescription, blockPropertiesDescription, blockVisibilityDescription].filter(Boolean).join(' ')
473
479
  })]
474
480
  })
475
481
  }), hasRenderedMovers && /*#__PURE__*/_jsx(_Fragment, {
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","hasBlockSupport","switchToBlockType","store","blocksStore","__experimentalTreeGridCell","TreeGridCell","__experimentalTreeGridItem","TreeGridItem","useInstanceId","useDebounce","moreVertical","useCallback","useMemo","useState","useRef","memo","useDispatch","useSelect","__","BACKSPACE","DELETE","isShallowEqual","__unstableUseShortcutEventMatch","useShortcutEventMatch","speak","ListViewLeaf","useListViewScrollIntoView","BlockMoverUpButton","BlockMoverDownButton","ListViewBlockContents","useListViewContext","getBlockPositionDescription","getBlockPropertiesDescription","focusListItem","blockEditorStore","useBlockDisplayInformation","useBlockLock","AriaReferencedText","unlock","usePasteStyles","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","ListViewBlock","block","clientId","displacement","isAfterDraggedBlocks","isDragged","isNesting","isSelected","isBranchSelected","selectBlock","position","level","rowCount","siblingBlockCount","showBlockMovers","path","isExpanded","selectedClientIds","isSyncedBranch","cellRef","rowRef","settingsRef","isHovered","setIsHovered","settingsAnchorRect","setSettingsAnchorRect","isLocked","canEdit","canMove","isFirstSelectedBlock","isLastSelectedBlock","length","toggleBlockHighlight","duplicateBlocks","multiSelect","replaceBlocks","removeBlocks","insertAfterBlock","insertBeforeBlock","setOpenedBlockSettingsMenu","debouncedToggleBlockHighlight","canInsertBlockType","getSelectedBlockClientIds","getPreviousBlockClientId","getBlockRootClientId","getBlockOrder","getBlockParents","getBlocksByClientId","canRemoveBlocks","isGroupable","getGroupingBlockName","blockInformation","pasteStyles","blockName","allowRightClickOverrides","select","getBlock","getBlockName","getSettings","showBlockActions","instanceId","descriptionId","expand","collapse","collapseAll","BlockSettingsMenu","listViewInstanceId","expandedState","setInsertedBlock","treeGridElementRef","rootClientId","isMatch","getBlocksToUpdate","selectedBlockClientIds","isUpdatingSelectedBlocks","includes","firstBlockClientId","firstBlockRootClientId","blocksToUpdate","onKeyDown","event","defaultPrevented","target","closest","isDeleteKey","keyCode","stopPropagation","preventDefault","undefined","_getPreviousBlockClie","blocksToDelete","blockToFocus","shouldUpdateSelection","updateFocusAndSelection","blocks","canDuplicate","every","blockToUpdate","name","updatedBlocks","newlySelectedBlocks","at","blockClientIds","blockParents","groupingBlockName","newBlocks","onMouseEnter","onMouseLeave","selectEditorBlock","focusClientId","shouldSelectBlock","current","toggleExpanded","onContextMenu","click","window","DOMRect","clientX","clientY","onMouseDown","button","settingsPopoverAnchor","ownerDocument","getBoundingClientRect","clearSettingsAnchorRect","rowItemRef","blockPositionDescription","blockPropertiesDescription","hasSiblings","hasRenderedMovers","moverCellClassName","listViewBlockSettingsClassName","colSpan","classes","isSynced","dropdownClientIds","currentlyEditingBlockInCanvas","className","onFocus","onBlur","id","ref","children","tabIndex","onClick","onToggleExpanded","ariaDescribedBy","filter","Boolean","join","withoutGridItem","orientation","clientIds","icon","label","popoverProps","anchor","toggleProps","size","disableOpenOnArrowDown","__experimentalSelectBlock"],"sources":["@wordpress/block-editor/src/components/list-view/block.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\thasBlockSupport,\n\tswitchToBlockType,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport {\n\t__experimentalTreeGridCell as TreeGridCell,\n\t__experimentalTreeGridItem as TreeGridItem,\n} from '@wordpress/components';\nimport { useInstanceId, useDebounce } from '@wordpress/compose';\nimport { moreVertical } from '@wordpress/icons';\nimport {\n\tuseCallback,\n\tuseMemo,\n\tuseState,\n\tuseRef,\n\tmemo,\n} from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { BACKSPACE, DELETE } from '@wordpress/keycodes';\nimport isShallowEqual from '@wordpress/is-shallow-equal';\nimport { __unstableUseShortcutEventMatch as useShortcutEventMatch } from '@wordpress/keyboard-shortcuts';\nimport { speak } from '@wordpress/a11y';\n\n/**\n * Internal dependencies\n */\nimport ListViewLeaf from './leaf';\nimport useListViewScrollIntoView from './use-list-view-scroll-into-view';\nimport {\n\tBlockMoverUpButton,\n\tBlockMoverDownButton,\n} from '../block-mover/button';\nimport ListViewBlockContents from './block-contents';\nimport { useListViewContext } from './context';\nimport {\n\tgetBlockPositionDescription,\n\tgetBlockPropertiesDescription,\n\tfocusListItem,\n} from './utils';\nimport { store as blockEditorStore } from '../../store';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { useBlockLock } from '../block-lock';\nimport AriaReferencedText from './aria-referenced-text';\nimport { unlock } from '../../lock-unlock';\nimport usePasteStyles from '../use-paste-styles';\n\nfunction ListViewBlock( {\n\tblock: { clientId },\n\tdisplacement,\n\tisAfterDraggedBlocks,\n\tisDragged,\n\tisNesting,\n\tisSelected,\n\tisBranchSelected,\n\tselectBlock,\n\tposition,\n\tlevel,\n\trowCount,\n\tsiblingBlockCount,\n\tshowBlockMovers,\n\tpath,\n\tisExpanded,\n\tselectedClientIds,\n\tisSyncedBranch,\n} ) {\n\tconst cellRef = useRef( null );\n\tconst rowRef = useRef( null );\n\tconst settingsRef = useRef( null );\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\tconst [ settingsAnchorRect, setSettingsAnchorRect ] = useState();\n\n\tconst { isLocked, canEdit, canMove } = useBlockLock( clientId );\n\n\tconst isFirstSelectedBlock =\n\t\tisSelected && selectedClientIds[ 0 ] === clientId;\n\tconst isLastSelectedBlock =\n\t\tisSelected &&\n\t\tselectedClientIds[ selectedClientIds.length - 1 ] === clientId;\n\n\tconst {\n\t\ttoggleBlockHighlight,\n\t\tduplicateBlocks,\n\t\tmultiSelect,\n\t\treplaceBlocks,\n\t\tremoveBlocks,\n\t\tinsertAfterBlock,\n\t\tinsertBeforeBlock,\n\t\tsetOpenedBlockSettingsMenu,\n\t} = unlock( useDispatch( blockEditorStore ) );\n\tconst debouncedToggleBlockHighlight = useDebounce(\n\t\ttoggleBlockHighlight,\n\t\t50\n\t);\n\n\tconst {\n\t\tcanInsertBlockType,\n\t\tgetSelectedBlockClientIds,\n\t\tgetPreviousBlockClientId,\n\t\tgetBlockRootClientId,\n\t\tgetBlockOrder,\n\t\tgetBlockParents,\n\t\tgetBlocksByClientId,\n\t\tcanRemoveBlocks,\n\t\tisGroupable,\n\t} = useSelect( blockEditorStore );\n\tconst { getGroupingBlockName } = useSelect( blocksStore );\n\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\n\tconst pasteStyles = usePasteStyles();\n\n\tconst { block, blockName, allowRightClickOverrides } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlock, getBlockName, getSettings } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\treturn {\n\t\t\t\tblock: getBlock( clientId ),\n\t\t\t\tblockName: getBlockName( clientId ),\n\t\t\t\tallowRightClickOverrides:\n\t\t\t\t\tgetSettings().allowRightClickOverrides,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst showBlockActions =\n\t\t// When a block hides its toolbar it also hides the block settings menu,\n\t\t// since that menu is part of the toolbar in the editor canvas.\n\t\t// List View respects this by also hiding the block settings menu.\n\t\thasBlockSupport( blockName, '__experimentalToolbar', true );\n\tconst instanceId = useInstanceId( ListViewBlock );\n\tconst descriptionId = `list-view-block-select-button__description-${ instanceId }`;\n\n\tconst {\n\t\texpand,\n\t\tcollapse,\n\t\tcollapseAll,\n\t\tBlockSettingsMenu,\n\t\tlistViewInstanceId,\n\t\texpandedState,\n\t\tsetInsertedBlock,\n\t\ttreeGridElementRef,\n\t\trootClientId,\n\t} = useListViewContext();\n\tconst isMatch = useShortcutEventMatch();\n\n\t// Determine which blocks to update:\n\t// If the current (focused) block is part of the block selection, use the whole selection.\n\t// If the focused block is not part of the block selection, only update the focused block.\n\tfunction getBlocksToUpdate() {\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\t\tconst isUpdatingSelectedBlocks =\n\t\t\tselectedBlockClientIds.includes( clientId );\n\t\tconst firstBlockClientId = isUpdatingSelectedBlocks\n\t\t\t? selectedBlockClientIds[ 0 ]\n\t\t\t: clientId;\n\t\tconst firstBlockRootClientId =\n\t\t\tgetBlockRootClientId( firstBlockClientId );\n\n\t\tconst blocksToUpdate = isUpdatingSelectedBlocks\n\t\t\t? selectedBlockClientIds\n\t\t\t: [ clientId ];\n\n\t\treturn {\n\t\t\tblocksToUpdate,\n\t\t\tfirstBlockClientId,\n\t\t\tfirstBlockRootClientId,\n\t\t\tselectedBlockClientIds,\n\t\t};\n\t}\n\n\t/**\n\t * @param {KeyboardEvent} event\n\t */\n\tasync function onKeyDown( event ) {\n\t\tif ( event.defaultPrevented ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Do not handle events if it comes from modals;\n\t\t// retain the default behavior for these keys.\n\t\tif ( event.target.closest( '[role=dialog]' ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst isDeleteKey = [ BACKSPACE, DELETE ].includes( event.keyCode );\n\n\t\t// If multiple blocks are selected, deselect all blocks when the user\n\t\t// presses the escape key.\n\t\tif (\n\t\t\tisMatch( 'core/block-editor/unselect', event ) &&\n\t\t\tselectedClientIds.length > 0\n\t\t) {\n\t\t\tevent.stopPropagation();\n\t\t\tevent.preventDefault();\n\t\t\tselectBlock( event, undefined );\n\t\t} else if (\n\t\t\tisDeleteKey ||\n\t\t\tisMatch( 'core/block-editor/remove', event )\n\t\t) {\n\t\t\tconst {\n\t\t\t\tblocksToUpdate: blocksToDelete,\n\t\t\t\tfirstBlockClientId,\n\t\t\t\tfirstBlockRootClientId,\n\t\t\t\tselectedBlockClientIds,\n\t\t\t} = getBlocksToUpdate();\n\n\t\t\t// Don't update the selection if the blocks cannot be deleted.\n\t\t\tif ( ! canRemoveBlocks( blocksToDelete ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet blockToFocus =\n\t\t\t\tgetPreviousBlockClientId( firstBlockClientId ) ??\n\t\t\t\t// If the previous block is not found (when the first block is deleted),\n\t\t\t\t// fallback to focus the parent block.\n\t\t\t\tfirstBlockRootClientId;\n\n\t\t\tremoveBlocks( blocksToDelete, false );\n\n\t\t\t// Update the selection if the original selection has been removed.\n\t\t\tconst shouldUpdateSelection =\n\t\t\t\tselectedBlockClientIds.length > 0 &&\n\t\t\t\tgetSelectedBlockClientIds().length === 0;\n\n\t\t\t// If there's no previous block nor parent block, focus the first block.\n\t\t\tif ( ! blockToFocus ) {\n\t\t\t\tblockToFocus = getBlockOrder()[ 0 ];\n\t\t\t}\n\n\t\t\tupdateFocusAndSelection( blockToFocus, shouldUpdateSelection );\n\t\t} else if ( isMatch( 'core/block-editor/paste-styles', event ) ) {\n\t\t\tevent.preventDefault();\n\n\t\t\tconst { blocksToUpdate } = getBlocksToUpdate();\n\t\t\tconst blocks = getBlocksByClientId( blocksToUpdate );\n\n\t\t\tpasteStyles( blocks );\n\t\t} else if ( isMatch( 'core/block-editor/duplicate', event ) ) {\n\t\t\tevent.preventDefault();\n\n\t\t\tconst { blocksToUpdate, firstBlockRootClientId } =\n\t\t\t\tgetBlocksToUpdate();\n\n\t\t\tconst canDuplicate = getBlocksByClientId( blocksToUpdate ).every(\n\t\t\t\t( blockToUpdate ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t!! blockToUpdate &&\n\t\t\t\t\t\thasBlockSupport(\n\t\t\t\t\t\t\tblockToUpdate.name,\n\t\t\t\t\t\t\t'multiple',\n\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t) &&\n\t\t\t\t\t\tcanInsertBlockType(\n\t\t\t\t\t\t\tblockToUpdate.name,\n\t\t\t\t\t\t\tfirstBlockRootClientId\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tif ( canDuplicate ) {\n\t\t\t\tconst updatedBlocks = await duplicateBlocks(\n\t\t\t\t\tblocksToUpdate,\n\t\t\t\t\tfalse\n\t\t\t\t);\n\n\t\t\t\tif ( updatedBlocks?.length ) {\n\t\t\t\t\t// If blocks have been duplicated, focus the first duplicated block.\n\t\t\t\t\tupdateFocusAndSelection( updatedBlocks[ 0 ], false );\n\t\t\t\t}\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/insert-before', event ) ) {\n\t\t\tevent.preventDefault();\n\n\t\t\tconst { blocksToUpdate } = getBlocksToUpdate();\n\t\t\tawait insertBeforeBlock( blocksToUpdate[ 0 ] );\n\t\t\tconst newlySelectedBlocks = getSelectedBlockClientIds();\n\n\t\t\t// Focus the first block of the newly inserted blocks, to keep focus within the list view.\n\t\t\tsetOpenedBlockSettingsMenu( undefined );\n\t\t\tupdateFocusAndSelection( newlySelectedBlocks[ 0 ], false );\n\t\t} else if ( isMatch( 'core/block-editor/insert-after', event ) ) {\n\t\t\tevent.preventDefault();\n\n\t\t\tconst { blocksToUpdate } = getBlocksToUpdate();\n\t\t\tawait insertAfterBlock( blocksToUpdate.at( -1 ) );\n\t\t\tconst newlySelectedBlocks = getSelectedBlockClientIds();\n\n\t\t\t// Focus the first block of the newly inserted blocks, to keep focus within the list view.\n\t\t\tsetOpenedBlockSettingsMenu( undefined );\n\t\t\tupdateFocusAndSelection( newlySelectedBlocks[ 0 ], false );\n\t\t} else if ( isMatch( 'core/block-editor/select-all', event ) ) {\n\t\t\tevent.preventDefault();\n\n\t\t\tconst { firstBlockRootClientId, selectedBlockClientIds } =\n\t\t\t\tgetBlocksToUpdate();\n\t\t\tconst blockClientIds = getBlockOrder( firstBlockRootClientId );\n\t\t\tif ( ! blockClientIds.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If we have selected all sibling nested blocks, try selecting up a level.\n\t\t\t// This is a similar implementation to that used by `useSelectAll`.\n\t\t\t// `isShallowEqual` is used for the list view instead of a length check,\n\t\t\t// as the array of siblings of the currently focused block may be a different\n\t\t\t// set of blocks from the current block selection if the user is focused\n\t\t\t// on a different part of the list view from the block selection.\n\t\t\tif ( isShallowEqual( selectedBlockClientIds, blockClientIds ) ) {\n\t\t\t\t// Only select up a level if the first block is not the root block.\n\t\t\t\t// This ensures that the block selection can't break out of the root block\n\t\t\t\t// used by the list view, if the list view is only showing a partial hierarchy.\n\t\t\t\tif (\n\t\t\t\t\tfirstBlockRootClientId &&\n\t\t\t\t\tfirstBlockRootClientId !== rootClientId\n\t\t\t\t) {\n\t\t\t\t\tupdateFocusAndSelection( firstBlockRootClientId, true );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Select all while passing `null` to skip focusing to the editor canvas,\n\t\t\t// and retain focus within the list view.\n\t\t\tmultiSelect(\n\t\t\t\tblockClientIds[ 0 ],\n\t\t\t\tblockClientIds[ blockClientIds.length - 1 ],\n\t\t\t\tnull\n\t\t\t);\n\t\t} else if ( isMatch( 'core/block-editor/collapse-list-view', event ) ) {\n\t\t\tevent.preventDefault();\n\t\t\tconst { firstBlockClientId } = getBlocksToUpdate();\n\t\t\tconst blockParents = getBlockParents( firstBlockClientId, false );\n\t\t\t// Collapse all blocks.\n\t\t\tcollapseAll();\n\t\t\t// Expand all parents of the current block.\n\t\t\texpand( blockParents );\n\t\t} else if ( isMatch( 'core/block-editor/group', event ) ) {\n\t\t\tconst { blocksToUpdate } = getBlocksToUpdate();\n\t\t\tif ( blocksToUpdate.length > 1 && isGroupable( blocksToUpdate ) ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst blocks = getBlocksByClientId( blocksToUpdate );\n\t\t\t\tconst groupingBlockName = getGroupingBlockName();\n\t\t\t\tconst newBlocks = switchToBlockType(\n\t\t\t\t\tblocks,\n\t\t\t\t\tgroupingBlockName\n\t\t\t\t);\n\t\t\t\treplaceBlocks( blocksToUpdate, newBlocks );\n\t\t\t\tspeak( __( 'Selected blocks are grouped.' ) );\n\t\t\t\tconst newlySelectedBlocks = getSelectedBlockClientIds();\n\t\t\t\t// Focus the first block of the newly inserted blocks, to keep focus within the list view.\n\t\t\t\tsetOpenedBlockSettingsMenu( undefined );\n\t\t\t\tupdateFocusAndSelection( newlySelectedBlocks[ 0 ], false );\n\t\t\t}\n\t\t}\n\t}\n\n\tconst onMouseEnter = useCallback( () => {\n\t\tsetIsHovered( true );\n\t\tdebouncedToggleBlockHighlight( clientId, true );\n\t}, [ clientId, setIsHovered, debouncedToggleBlockHighlight ] );\n\tconst onMouseLeave = useCallback( () => {\n\t\tsetIsHovered( false );\n\t\tdebouncedToggleBlockHighlight( clientId, false );\n\t}, [ clientId, setIsHovered, debouncedToggleBlockHighlight ] );\n\n\tconst selectEditorBlock = useCallback(\n\t\t( event ) => {\n\t\t\tselectBlock( event, clientId );\n\t\t\tevent.preventDefault();\n\t\t},\n\t\t[ clientId, selectBlock ]\n\t);\n\n\tconst updateFocusAndSelection = useCallback(\n\t\t( focusClientId, shouldSelectBlock ) => {\n\t\t\tif ( shouldSelectBlock ) {\n\t\t\t\tselectBlock( undefined, focusClientId, null, null );\n\t\t\t}\n\n\t\t\tfocusListItem( focusClientId, treeGridElementRef?.current );\n\t\t},\n\t\t[ selectBlock, treeGridElementRef ]\n\t);\n\n\tconst toggleExpanded = useCallback(\n\t\t( event ) => {\n\t\t\t// Prevent shift+click from opening link in a new window when toggling.\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tif ( isExpanded === true ) {\n\t\t\t\tcollapse( clientId );\n\t\t\t} else if ( isExpanded === false ) {\n\t\t\t\texpand( clientId );\n\t\t\t}\n\t\t},\n\t\t[ clientId, expand, collapse, isExpanded ]\n\t);\n\n\t// Allow right-clicking an item in the List View to open up the block settings dropdown.\n\tconst onContextMenu = useCallback(\n\t\t( event ) => {\n\t\t\tif ( showBlockActions && allowRightClickOverrides ) {\n\t\t\t\tsettingsRef.current?.click();\n\t\t\t\t// Ensure the position of the settings dropdown is at the cursor.\n\t\t\t\tsetSettingsAnchorRect(\n\t\t\t\t\tnew window.DOMRect( event.clientX, event.clientY, 0, 0 )\n\t\t\t\t);\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t},\n\t\t[ allowRightClickOverrides, settingsRef, showBlockActions ]\n\t);\n\n\tconst onMouseDown = useCallback(\n\t\t( event ) => {\n\t\t\t// Prevent right-click from focusing the block,\n\t\t\t// because focus will be handled when opening the block settings dropdown.\n\t\t\tif ( allowRightClickOverrides && event.button === 2 ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t},\n\t\t[ allowRightClickOverrides ]\n\t);\n\n\tconst settingsPopoverAnchor = useMemo( () => {\n\t\tconst { ownerDocument } = rowRef?.current || {};\n\n\t\t// If no custom position is set, the settings dropdown will be anchored to the\n\t\t// DropdownMenu toggle button.\n\t\tif ( ! settingsAnchorRect || ! ownerDocument ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\t// Position the settings dropdown at the cursor when right-clicking a block.\n\t\treturn {\n\t\t\townerDocument,\n\t\t\tgetBoundingClientRect() {\n\t\t\t\treturn settingsAnchorRect;\n\t\t\t},\n\t\t};\n\t}, [ settingsAnchorRect ] );\n\n\tconst clearSettingsAnchorRect = useCallback( () => {\n\t\t// Clear the custom position for the settings dropdown so that it is restored back\n\t\t// to being anchored to the DropdownMenu toggle button.\n\t\tsetSettingsAnchorRect( undefined );\n\t}, [ setSettingsAnchorRect ] );\n\n\t// Pass in a ref to the row, so that it can be scrolled\n\t// into view when selected. For long lists, the placeholder for the\n\t// selected block is also observed, within ListViewLeafPlaceholder.\n\tuseListViewScrollIntoView( {\n\t\tisSelected,\n\t\trowItemRef: rowRef,\n\t\tselectedClientIds,\n\t} );\n\n\t// When switching between rendering modes (such as template preview and content only),\n\t// it is possible for a block to temporarily be unavailable. In this case, we should not\n\t// render the leaf, to avoid errors further down the tree.\n\tif ( ! block ) {\n\t\treturn null;\n\t}\n\n\tconst blockPositionDescription = getBlockPositionDescription(\n\t\tposition,\n\t\tsiblingBlockCount,\n\t\tlevel\n\t);\n\n\tconst blockPropertiesDescription = getBlockPropertiesDescription(\n\t\tblockInformation,\n\t\tisLocked\n\t);\n\n\tconst hasSiblings = siblingBlockCount > 0;\n\tconst hasRenderedMovers = showBlockMovers && hasSiblings;\n\tconst moverCellClassName = clsx(\n\t\t'block-editor-list-view-block__mover-cell',\n\t\t{ 'is-visible': isHovered || isSelected }\n\t);\n\n\tconst listViewBlockSettingsClassName = clsx(\n\t\t'block-editor-list-view-block__menu-cell',\n\t\t{ 'is-visible': isHovered || isFirstSelectedBlock }\n\t);\n\n\tlet colSpan;\n\tif ( hasRenderedMovers ) {\n\t\tcolSpan = 2;\n\t} else if ( ! showBlockActions ) {\n\t\tcolSpan = 3;\n\t}\n\n\tconst classes = clsx( {\n\t\t'is-selected': isSelected,\n\t\t'is-first-selected': isFirstSelectedBlock,\n\t\t'is-last-selected': isLastSelectedBlock,\n\t\t'is-branch-selected': isBranchSelected,\n\t\t'is-synced-branch': isSyncedBranch,\n\t\t'is-dragging': isDragged,\n\t\t'has-single-cell': ! showBlockActions,\n\t\t'is-synced': blockInformation?.isSynced,\n\t\t'is-draggable': canMove,\n\t\t'is-displacement-normal': displacement === 'normal',\n\t\t'is-displacement-up': displacement === 'up',\n\t\t'is-displacement-down': displacement === 'down',\n\t\t'is-after-dragged-blocks': isAfterDraggedBlocks,\n\t\t'is-nesting': isNesting,\n\t} );\n\n\t// Only include all selected blocks if the currently clicked on block\n\t// is one of the selected blocks. This ensures that if a user attempts\n\t// to alter a block that isn't part of the selection, they're still able\n\t// to do so.\n\tconst dropdownClientIds = selectedClientIds.includes( clientId )\n\t\t? selectedClientIds\n\t\t: [ clientId ];\n\n\t// Detect if there is a block in the canvas currently being edited and multi-selection is not happening.\n\tconst currentlyEditingBlockInCanvas =\n\t\tisSelected && selectedClientIds.length === 1;\n\n\treturn (\n\t\t<ListViewLeaf\n\t\t\tclassName={ classes }\n\t\t\tisDragged={ isDragged }\n\t\t\tonKeyDown={ onKeyDown }\n\t\t\tonMouseEnter={ onMouseEnter }\n\t\t\tonMouseLeave={ onMouseLeave }\n\t\t\tonFocus={ onMouseEnter }\n\t\t\tonBlur={ onMouseLeave }\n\t\t\tlevel={ level }\n\t\t\tposition={ position }\n\t\t\trowCount={ rowCount }\n\t\t\tpath={ path }\n\t\t\tid={ `list-view-${ listViewInstanceId }-block-${ clientId }` }\n\t\t\tdata-block={ clientId }\n\t\t\tdata-expanded={ canEdit ? isExpanded : undefined }\n\t\t\tref={ rowRef }\n\t\t>\n\t\t\t<TreeGridCell\n\t\t\t\tclassName=\"block-editor-list-view-block__contents-cell\"\n\t\t\t\tcolSpan={ colSpan }\n\t\t\t\tref={ cellRef }\n\t\t\t\taria-selected={ !! isSelected }\n\t\t\t>\n\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t<div className=\"block-editor-list-view-block__contents-container\">\n\t\t\t\t\t\t<ListViewBlockContents\n\t\t\t\t\t\t\tblock={ block }\n\t\t\t\t\t\t\tonClick={ selectEditorBlock }\n\t\t\t\t\t\t\tonContextMenu={ onContextMenu }\n\t\t\t\t\t\t\tonMouseDown={ onMouseDown }\n\t\t\t\t\t\t\tonToggleExpanded={ toggleExpanded }\n\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\tposition={ position }\n\t\t\t\t\t\t\tsiblingBlockCount={ siblingBlockCount }\n\t\t\t\t\t\t\tlevel={ level }\n\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\ttabIndex={\n\t\t\t\t\t\t\t\tcurrentlyEditingBlockInCanvas ? 0 : tabIndex\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\tisExpanded={ canEdit ? isExpanded : undefined }\n\t\t\t\t\t\t\tselectedClientIds={ selectedClientIds }\n\t\t\t\t\t\t\tariaDescribedBy={ descriptionId }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<AriaReferencedText id={ descriptionId }>\n\t\t\t\t\t\t\t{ [\n\t\t\t\t\t\t\t\tblockPositionDescription,\n\t\t\t\t\t\t\t\tblockPropertiesDescription,\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t.filter( Boolean )\n\t\t\t\t\t\t\t\t.join( ' ' ) }\n\t\t\t\t\t\t</AriaReferencedText>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</TreeGridCell>\n\t\t\t{ hasRenderedMovers && (\n\t\t\t\t<>\n\t\t\t\t\t<TreeGridCell\n\t\t\t\t\t\tclassName={ moverCellClassName }\n\t\t\t\t\t\twithoutGridItem\n\t\t\t\t\t>\n\t\t\t\t\t\t<TreeGridItem>\n\t\t\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t\t\t<BlockMoverUpButton\n\t\t\t\t\t\t\t\t\torientation=\"vertical\"\n\t\t\t\t\t\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</TreeGridItem>\n\t\t\t\t\t\t<TreeGridItem>\n\t\t\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t\t\t<BlockMoverDownButton\n\t\t\t\t\t\t\t\t\torientation=\"vertical\"\n\t\t\t\t\t\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</TreeGridItem>\n\t\t\t\t\t</TreeGridCell>\n\t\t\t\t</>\n\t\t\t) }\n\n\t\t\t{ showBlockActions && BlockSettingsMenu && (\n\t\t\t\t<TreeGridCell\n\t\t\t\t\tclassName={ listViewBlockSettingsClassName }\n\t\t\t\t\taria-selected={ !! isSelected }\n\t\t\t\t\tref={ settingsRef }\n\t\t\t\t>\n\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t<BlockSettingsMenu\n\t\t\t\t\t\t\tclientIds={ dropdownClientIds }\n\t\t\t\t\t\t\tblock={ block }\n\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\tlabel={ __( 'Options' ) }\n\t\t\t\t\t\t\tpopoverProps={ {\n\t\t\t\t\t\t\t\tanchor: settingsPopoverAnchor, // Used to position the settings at the cursor on right-click.\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\t\t\tref,\n\t\t\t\t\t\t\t\tclassName: 'block-editor-list-view-block__menu',\n\t\t\t\t\t\t\t\ttabIndex,\n\t\t\t\t\t\t\t\tonClick: clearSettingsAnchorRect,\n\t\t\t\t\t\t\t\tonFocus,\n\t\t\t\t\t\t\t\tsize: 'small',\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tdisableOpenOnArrowDown\n\t\t\t\t\t\t\texpand={ expand }\n\t\t\t\t\t\t\texpandedState={ expandedState }\n\t\t\t\t\t\t\tsetInsertedBlock={ setInsertedBlock }\n\t\t\t\t\t\t\t__experimentalSelectBlock={\n\t\t\t\t\t\t\t\tupdateFocusAndSelection\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</TreeGridCell>\n\t\t\t) }\n\t\t</ListViewLeaf>\n\t);\n}\n\nexport default memo( ListViewBlock );\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","hasBlockSupport","switchToBlockType","store","blocksStore","__experimentalTreeGridCell","TreeGridCell","__experimentalTreeGridItem","TreeGridItem","useInstanceId","useDebounce","moreVertical","useCallback","useMemo","useState","useRef","memo","useDispatch","useSelect","__","BACKSPACE","DELETE","isShallowEqual","__unstableUseShortcutEventMatch","useShortcutEventMatch","speak","ListViewLeaf","useListViewScrollIntoView","BlockMoverUpButton","BlockMoverDownButton","ListViewBlockContents","useListViewContext","getBlockPositionDescription","getBlockPropertiesDescription","focusListItem","blockEditorStore","useBlockDisplayInformation","useBlockLock","AriaReferencedText","unlock","usePasteStyles","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","ListViewBlock","block","clientId","displacement","isAfterDraggedBlocks","isDragged","isNesting","isSelected","isBranchSelected","selectBlock","position","level","rowCount","siblingBlockCount","showBlockMovers","path","isExpanded","selectedClientIds","isSyncedBranch","cellRef","rowRef","settingsRef","isHovered","setIsHovered","settingsAnchorRect","setSettingsAnchorRect","isLocked","canEdit","canMove","isFirstSelectedBlock","isLastSelectedBlock","length","toggleBlockHighlight","duplicateBlocks","multiSelect","replaceBlocks","removeBlocks","insertAfterBlock","insertBeforeBlock","setOpenedBlockSettingsMenu","debouncedToggleBlockHighlight","canInsertBlockType","getSelectedBlockClientIds","getPreviousBlockClientId","getBlockRootClientId","getBlockOrder","getBlockParents","getBlocksByClientId","canRemoveBlocks","isGroupable","getGroupingBlockName","blockInformation","pasteStyles","blockName","allowRightClickOverrides","isBlockHidden","select","getBlock","getBlockName","getSettings","_isBlockHidden","showBlockActions","instanceId","descriptionId","expand","collapse","collapseAll","BlockSettingsMenu","listViewInstanceId","expandedState","setInsertedBlock","treeGridElementRef","rootClientId","isMatch","getBlocksToUpdate","selectedBlockClientIds","isUpdatingSelectedBlocks","includes","firstBlockClientId","firstBlockRootClientId","blocksToUpdate","onKeyDown","event","defaultPrevented","target","closest","isDeleteKey","keyCode","stopPropagation","preventDefault","undefined","_getPreviousBlockClie","blocksToDelete","blockToFocus","shouldUpdateSelection","updateFocusAndSelection","blocks","canDuplicate","every","blockToUpdate","name","updatedBlocks","newlySelectedBlocks","at","blockClientIds","blockParents","groupingBlockName","newBlocks","onMouseEnter","onMouseLeave","selectEditorBlock","focusClientId","shouldSelectBlock","current","toggleExpanded","onContextMenu","click","window","DOMRect","clientX","clientY","onMouseDown","button","settingsPopoverAnchor","ownerDocument","getBoundingClientRect","clearSettingsAnchorRect","rowItemRef","blockPositionDescription","blockPropertiesDescription","blockVisibilityDescription","hasSiblings","hasRenderedMovers","moverCellClassName","listViewBlockSettingsClassName","colSpan","classes","isSynced","dropdownClientIds","currentlyEditingBlockInCanvas","className","onFocus","onBlur","id","ref","children","tabIndex","onClick","onToggleExpanded","ariaDescribedBy","filter","Boolean","join","withoutGridItem","orientation","clientIds","icon","label","popoverProps","anchor","toggleProps","size","disableOpenOnArrowDown","__experimentalSelectBlock"],"sources":["@wordpress/block-editor/src/components/list-view/block.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\thasBlockSupport,\n\tswitchToBlockType,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport {\n\t__experimentalTreeGridCell as TreeGridCell,\n\t__experimentalTreeGridItem as TreeGridItem,\n} from '@wordpress/components';\nimport { useInstanceId, useDebounce } from '@wordpress/compose';\nimport { moreVertical } from '@wordpress/icons';\nimport {\n\tuseCallback,\n\tuseMemo,\n\tuseState,\n\tuseRef,\n\tmemo,\n} from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { BACKSPACE, DELETE } from '@wordpress/keycodes';\nimport isShallowEqual from '@wordpress/is-shallow-equal';\nimport { __unstableUseShortcutEventMatch as useShortcutEventMatch } from '@wordpress/keyboard-shortcuts';\nimport { speak } from '@wordpress/a11y';\n\n/**\n * Internal dependencies\n */\nimport ListViewLeaf from './leaf';\nimport useListViewScrollIntoView from './use-list-view-scroll-into-view';\nimport {\n\tBlockMoverUpButton,\n\tBlockMoverDownButton,\n} from '../block-mover/button';\nimport ListViewBlockContents from './block-contents';\nimport { useListViewContext } from './context';\nimport {\n\tgetBlockPositionDescription,\n\tgetBlockPropertiesDescription,\n\tfocusListItem,\n} from './utils';\nimport { store as blockEditorStore } from '../../store';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { useBlockLock } from '../block-lock';\nimport AriaReferencedText from './aria-referenced-text';\nimport { unlock } from '../../lock-unlock';\nimport usePasteStyles from '../use-paste-styles';\n\nfunction ListViewBlock( {\n\tblock: { clientId },\n\tdisplacement,\n\tisAfterDraggedBlocks,\n\tisDragged,\n\tisNesting,\n\tisSelected,\n\tisBranchSelected,\n\tselectBlock,\n\tposition,\n\tlevel,\n\trowCount,\n\tsiblingBlockCount,\n\tshowBlockMovers,\n\tpath,\n\tisExpanded,\n\tselectedClientIds,\n\tisSyncedBranch,\n} ) {\n\tconst cellRef = useRef( null );\n\tconst rowRef = useRef( null );\n\tconst settingsRef = useRef( null );\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\tconst [ settingsAnchorRect, setSettingsAnchorRect ] = useState();\n\n\tconst { isLocked, canEdit, canMove } = useBlockLock( clientId );\n\n\tconst isFirstSelectedBlock =\n\t\tisSelected && selectedClientIds[ 0 ] === clientId;\n\tconst isLastSelectedBlock =\n\t\tisSelected &&\n\t\tselectedClientIds[ selectedClientIds.length - 1 ] === clientId;\n\n\tconst {\n\t\ttoggleBlockHighlight,\n\t\tduplicateBlocks,\n\t\tmultiSelect,\n\t\treplaceBlocks,\n\t\tremoveBlocks,\n\t\tinsertAfterBlock,\n\t\tinsertBeforeBlock,\n\t\tsetOpenedBlockSettingsMenu,\n\t} = unlock( useDispatch( blockEditorStore ) );\n\tconst debouncedToggleBlockHighlight = useDebounce(\n\t\ttoggleBlockHighlight,\n\t\t50\n\t);\n\n\tconst {\n\t\tcanInsertBlockType,\n\t\tgetSelectedBlockClientIds,\n\t\tgetPreviousBlockClientId,\n\t\tgetBlockRootClientId,\n\t\tgetBlockOrder,\n\t\tgetBlockParents,\n\t\tgetBlocksByClientId,\n\t\tcanRemoveBlocks,\n\t\tisGroupable,\n\t} = useSelect( blockEditorStore );\n\tconst { getGroupingBlockName } = useSelect( blocksStore );\n\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\n\tconst pasteStyles = usePasteStyles();\n\n\tconst { block, blockName, allowRightClickOverrides, isBlockHidden } =\n\t\tuseSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst { getBlock, getBlockName, getSettings } =\n\t\t\t\t\tselect( blockEditorStore );\n\t\t\t\tconst { isBlockHidden: _isBlockHidden } = unlock(\n\t\t\t\t\tselect( blockEditorStore )\n\t\t\t\t);\n\n\t\t\t\treturn {\n\t\t\t\t\tblock: getBlock( clientId ),\n\t\t\t\t\tblockName: getBlockName( clientId ),\n\t\t\t\t\tallowRightClickOverrides:\n\t\t\t\t\t\tgetSettings().allowRightClickOverrides,\n\t\t\t\t\tisBlockHidden: _isBlockHidden( clientId ),\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ clientId ]\n\t\t);\n\n\tconst showBlockActions =\n\t\t// When a block hides its toolbar it also hides the block settings menu,\n\t\t// since that menu is part of the toolbar in the editor canvas.\n\t\t// List View respects this by also hiding the block settings menu.\n\t\thasBlockSupport( blockName, '__experimentalToolbar', true );\n\tconst instanceId = useInstanceId( ListViewBlock );\n\tconst descriptionId = `list-view-block-select-button__description-${ instanceId }`;\n\n\tconst {\n\t\texpand,\n\t\tcollapse,\n\t\tcollapseAll,\n\t\tBlockSettingsMenu,\n\t\tlistViewInstanceId,\n\t\texpandedState,\n\t\tsetInsertedBlock,\n\t\ttreeGridElementRef,\n\t\trootClientId,\n\t} = useListViewContext();\n\tconst isMatch = useShortcutEventMatch();\n\n\t// Determine which blocks to update:\n\t// If the current (focused) block is part of the block selection, use the whole selection.\n\t// If the focused block is not part of the block selection, only update the focused block.\n\tfunction getBlocksToUpdate() {\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\t\tconst isUpdatingSelectedBlocks =\n\t\t\tselectedBlockClientIds.includes( clientId );\n\t\tconst firstBlockClientId = isUpdatingSelectedBlocks\n\t\t\t? selectedBlockClientIds[ 0 ]\n\t\t\t: clientId;\n\t\tconst firstBlockRootClientId =\n\t\t\tgetBlockRootClientId( firstBlockClientId );\n\n\t\tconst blocksToUpdate = isUpdatingSelectedBlocks\n\t\t\t? selectedBlockClientIds\n\t\t\t: [ clientId ];\n\n\t\treturn {\n\t\t\tblocksToUpdate,\n\t\t\tfirstBlockClientId,\n\t\t\tfirstBlockRootClientId,\n\t\t\tselectedBlockClientIds,\n\t\t};\n\t}\n\n\t/**\n\t * @param {KeyboardEvent} event\n\t */\n\tasync function onKeyDown( event ) {\n\t\tif ( event.defaultPrevented ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Do not handle events if it comes from modals;\n\t\t// retain the default behavior for these keys.\n\t\tif ( event.target.closest( '[role=dialog]' ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst isDeleteKey = [ BACKSPACE, DELETE ].includes( event.keyCode );\n\n\t\t// If multiple blocks are selected, deselect all blocks when the user\n\t\t// presses the escape key.\n\t\tif (\n\t\t\tisMatch( 'core/block-editor/unselect', event ) &&\n\t\t\tselectedClientIds.length > 0\n\t\t) {\n\t\t\tevent.stopPropagation();\n\t\t\tevent.preventDefault();\n\t\t\tselectBlock( event, undefined );\n\t\t} else if (\n\t\t\tisDeleteKey ||\n\t\t\tisMatch( 'core/block-editor/remove', event )\n\t\t) {\n\t\t\tconst {\n\t\t\t\tblocksToUpdate: blocksToDelete,\n\t\t\t\tfirstBlockClientId,\n\t\t\t\tfirstBlockRootClientId,\n\t\t\t\tselectedBlockClientIds,\n\t\t\t} = getBlocksToUpdate();\n\n\t\t\t// Don't update the selection if the blocks cannot be deleted.\n\t\t\tif ( ! canRemoveBlocks( blocksToDelete ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet blockToFocus =\n\t\t\t\tgetPreviousBlockClientId( firstBlockClientId ) ??\n\t\t\t\t// If the previous block is not found (when the first block is deleted),\n\t\t\t\t// fallback to focus the parent block.\n\t\t\t\tfirstBlockRootClientId;\n\n\t\t\tremoveBlocks( blocksToDelete, false );\n\n\t\t\t// Update the selection if the original selection has been removed.\n\t\t\tconst shouldUpdateSelection =\n\t\t\t\tselectedBlockClientIds.length > 0 &&\n\t\t\t\tgetSelectedBlockClientIds().length === 0;\n\n\t\t\t// If there's no previous block nor parent block, focus the first block.\n\t\t\tif ( ! blockToFocus ) {\n\t\t\t\tblockToFocus = getBlockOrder()[ 0 ];\n\t\t\t}\n\n\t\t\tupdateFocusAndSelection( blockToFocus, shouldUpdateSelection );\n\t\t} else if ( isMatch( 'core/block-editor/paste-styles', event ) ) {\n\t\t\tevent.preventDefault();\n\n\t\t\tconst { blocksToUpdate } = getBlocksToUpdate();\n\t\t\tconst blocks = getBlocksByClientId( blocksToUpdate );\n\n\t\t\tpasteStyles( blocks );\n\t\t} else if ( isMatch( 'core/block-editor/duplicate', event ) ) {\n\t\t\tevent.preventDefault();\n\n\t\t\tconst { blocksToUpdate, firstBlockRootClientId } =\n\t\t\t\tgetBlocksToUpdate();\n\n\t\t\tconst canDuplicate = getBlocksByClientId( blocksToUpdate ).every(\n\t\t\t\t( blockToUpdate ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t!! blockToUpdate &&\n\t\t\t\t\t\thasBlockSupport(\n\t\t\t\t\t\t\tblockToUpdate.name,\n\t\t\t\t\t\t\t'multiple',\n\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t) &&\n\t\t\t\t\t\tcanInsertBlockType(\n\t\t\t\t\t\t\tblockToUpdate.name,\n\t\t\t\t\t\t\tfirstBlockRootClientId\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tif ( canDuplicate ) {\n\t\t\t\tconst updatedBlocks = await duplicateBlocks(\n\t\t\t\t\tblocksToUpdate,\n\t\t\t\t\tfalse\n\t\t\t\t);\n\n\t\t\t\tif ( updatedBlocks?.length ) {\n\t\t\t\t\t// If blocks have been duplicated, focus the first duplicated block.\n\t\t\t\t\tupdateFocusAndSelection( updatedBlocks[ 0 ], false );\n\t\t\t\t}\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/insert-before', event ) ) {\n\t\t\tevent.preventDefault();\n\n\t\t\tconst { blocksToUpdate } = getBlocksToUpdate();\n\t\t\tawait insertBeforeBlock( blocksToUpdate[ 0 ] );\n\t\t\tconst newlySelectedBlocks = getSelectedBlockClientIds();\n\n\t\t\t// Focus the first block of the newly inserted blocks, to keep focus within the list view.\n\t\t\tsetOpenedBlockSettingsMenu( undefined );\n\t\t\tupdateFocusAndSelection( newlySelectedBlocks[ 0 ], false );\n\t\t} else if ( isMatch( 'core/block-editor/insert-after', event ) ) {\n\t\t\tevent.preventDefault();\n\n\t\t\tconst { blocksToUpdate } = getBlocksToUpdate();\n\t\t\tawait insertAfterBlock( blocksToUpdate.at( -1 ) );\n\t\t\tconst newlySelectedBlocks = getSelectedBlockClientIds();\n\n\t\t\t// Focus the first block of the newly inserted blocks, to keep focus within the list view.\n\t\t\tsetOpenedBlockSettingsMenu( undefined );\n\t\t\tupdateFocusAndSelection( newlySelectedBlocks[ 0 ], false );\n\t\t} else if ( isMatch( 'core/block-editor/select-all', event ) ) {\n\t\t\tevent.preventDefault();\n\n\t\t\tconst { firstBlockRootClientId, selectedBlockClientIds } =\n\t\t\t\tgetBlocksToUpdate();\n\t\t\tconst blockClientIds = getBlockOrder( firstBlockRootClientId );\n\t\t\tif ( ! blockClientIds.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If we have selected all sibling nested blocks, try selecting up a level.\n\t\t\t// This is a similar implementation to that used by `useSelectAll`.\n\t\t\t// `isShallowEqual` is used for the list view instead of a length check,\n\t\t\t// as the array of siblings of the currently focused block may be a different\n\t\t\t// set of blocks from the current block selection if the user is focused\n\t\t\t// on a different part of the list view from the block selection.\n\t\t\tif ( isShallowEqual( selectedBlockClientIds, blockClientIds ) ) {\n\t\t\t\t// Only select up a level if the first block is not the root block.\n\t\t\t\t// This ensures that the block selection can't break out of the root block\n\t\t\t\t// used by the list view, if the list view is only showing a partial hierarchy.\n\t\t\t\tif (\n\t\t\t\t\tfirstBlockRootClientId &&\n\t\t\t\t\tfirstBlockRootClientId !== rootClientId\n\t\t\t\t) {\n\t\t\t\t\tupdateFocusAndSelection( firstBlockRootClientId, true );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Select all while passing `null` to skip focusing to the editor canvas,\n\t\t\t// and retain focus within the list view.\n\t\t\tmultiSelect(\n\t\t\t\tblockClientIds[ 0 ],\n\t\t\t\tblockClientIds[ blockClientIds.length - 1 ],\n\t\t\t\tnull\n\t\t\t);\n\t\t} else if ( isMatch( 'core/block-editor/collapse-list-view', event ) ) {\n\t\t\tevent.preventDefault();\n\t\t\tconst { firstBlockClientId } = getBlocksToUpdate();\n\t\t\tconst blockParents = getBlockParents( firstBlockClientId, false );\n\t\t\t// Collapse all blocks.\n\t\t\tcollapseAll();\n\t\t\t// Expand all parents of the current block.\n\t\t\texpand( blockParents );\n\t\t} else if ( isMatch( 'core/block-editor/group', event ) ) {\n\t\t\tconst { blocksToUpdate } = getBlocksToUpdate();\n\t\t\tif ( blocksToUpdate.length > 1 && isGroupable( blocksToUpdate ) ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst blocks = getBlocksByClientId( blocksToUpdate );\n\t\t\t\tconst groupingBlockName = getGroupingBlockName();\n\t\t\t\tconst newBlocks = switchToBlockType(\n\t\t\t\t\tblocks,\n\t\t\t\t\tgroupingBlockName\n\t\t\t\t);\n\t\t\t\treplaceBlocks( blocksToUpdate, newBlocks );\n\t\t\t\tspeak( __( 'Selected blocks are grouped.' ) );\n\t\t\t\tconst newlySelectedBlocks = getSelectedBlockClientIds();\n\t\t\t\t// Focus the first block of the newly inserted blocks, to keep focus within the list view.\n\t\t\t\tsetOpenedBlockSettingsMenu( undefined );\n\t\t\t\tupdateFocusAndSelection( newlySelectedBlocks[ 0 ], false );\n\t\t\t}\n\t\t}\n\t}\n\n\tconst onMouseEnter = useCallback( () => {\n\t\tsetIsHovered( true );\n\t\tdebouncedToggleBlockHighlight( clientId, true );\n\t}, [ clientId, setIsHovered, debouncedToggleBlockHighlight ] );\n\tconst onMouseLeave = useCallback( () => {\n\t\tsetIsHovered( false );\n\t\tdebouncedToggleBlockHighlight( clientId, false );\n\t}, [ clientId, setIsHovered, debouncedToggleBlockHighlight ] );\n\n\tconst selectEditorBlock = useCallback(\n\t\t( event ) => {\n\t\t\tselectBlock( event, clientId );\n\t\t\tevent.preventDefault();\n\t\t},\n\t\t[ clientId, selectBlock ]\n\t);\n\n\tconst updateFocusAndSelection = useCallback(\n\t\t( focusClientId, shouldSelectBlock ) => {\n\t\t\tif ( shouldSelectBlock ) {\n\t\t\t\tselectBlock( undefined, focusClientId, null, null );\n\t\t\t}\n\n\t\t\tfocusListItem( focusClientId, treeGridElementRef?.current );\n\t\t},\n\t\t[ selectBlock, treeGridElementRef ]\n\t);\n\n\tconst toggleExpanded = useCallback(\n\t\t( event ) => {\n\t\t\t// Prevent shift+click from opening link in a new window when toggling.\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tif ( isExpanded === true ) {\n\t\t\t\tcollapse( clientId );\n\t\t\t} else if ( isExpanded === false ) {\n\t\t\t\texpand( clientId );\n\t\t\t}\n\t\t},\n\t\t[ clientId, expand, collapse, isExpanded ]\n\t);\n\n\t// Allow right-clicking an item in the List View to open up the block settings dropdown.\n\tconst onContextMenu = useCallback(\n\t\t( event ) => {\n\t\t\tif ( showBlockActions && allowRightClickOverrides ) {\n\t\t\t\tsettingsRef.current?.click();\n\t\t\t\t// Ensure the position of the settings dropdown is at the cursor.\n\t\t\t\tsetSettingsAnchorRect(\n\t\t\t\t\tnew window.DOMRect( event.clientX, event.clientY, 0, 0 )\n\t\t\t\t);\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t},\n\t\t[ allowRightClickOverrides, settingsRef, showBlockActions ]\n\t);\n\n\tconst onMouseDown = useCallback(\n\t\t( event ) => {\n\t\t\t// Prevent right-click from focusing the block,\n\t\t\t// because focus will be handled when opening the block settings dropdown.\n\t\t\tif ( allowRightClickOverrides && event.button === 2 ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t},\n\t\t[ allowRightClickOverrides ]\n\t);\n\n\tconst settingsPopoverAnchor = useMemo( () => {\n\t\tconst { ownerDocument } = rowRef?.current || {};\n\n\t\t// If no custom position is set, the settings dropdown will be anchored to the\n\t\t// DropdownMenu toggle button.\n\t\tif ( ! settingsAnchorRect || ! ownerDocument ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\t// Position the settings dropdown at the cursor when right-clicking a block.\n\t\treturn {\n\t\t\townerDocument,\n\t\t\tgetBoundingClientRect() {\n\t\t\t\treturn settingsAnchorRect;\n\t\t\t},\n\t\t};\n\t}, [ settingsAnchorRect ] );\n\n\tconst clearSettingsAnchorRect = useCallback( () => {\n\t\t// Clear the custom position for the settings dropdown so that it is restored back\n\t\t// to being anchored to the DropdownMenu toggle button.\n\t\tsetSettingsAnchorRect( undefined );\n\t}, [ setSettingsAnchorRect ] );\n\n\t// Pass in a ref to the row, so that it can be scrolled\n\t// into view when selected. For long lists, the placeholder for the\n\t// selected block is also observed, within ListViewLeafPlaceholder.\n\tuseListViewScrollIntoView( {\n\t\tisSelected,\n\t\trowItemRef: rowRef,\n\t\tselectedClientIds,\n\t} );\n\n\t// When switching between rendering modes (such as template preview and content only),\n\t// it is possible for a block to temporarily be unavailable. In this case, we should not\n\t// render the leaf, to avoid errors further down the tree.\n\tif ( ! block ) {\n\t\treturn null;\n\t}\n\n\tconst blockPositionDescription = getBlockPositionDescription(\n\t\tposition,\n\t\tsiblingBlockCount,\n\t\tlevel\n\t);\n\n\tconst blockPropertiesDescription = getBlockPropertiesDescription(\n\t\tblockInformation,\n\t\tisLocked\n\t);\n\n\tconst blockVisibilityDescription = isBlockHidden\n\t\t? __( 'Block is hidden.' )\n\t\t: null;\n\n\tconst hasSiblings = siblingBlockCount > 0;\n\tconst hasRenderedMovers = showBlockMovers && hasSiblings;\n\tconst moverCellClassName = clsx(\n\t\t'block-editor-list-view-block__mover-cell',\n\t\t{ 'is-visible': isHovered || isSelected }\n\t);\n\n\tconst listViewBlockSettingsClassName = clsx(\n\t\t'block-editor-list-view-block__menu-cell',\n\t\t{ 'is-visible': isHovered || isFirstSelectedBlock }\n\t);\n\n\tlet colSpan;\n\tif ( hasRenderedMovers ) {\n\t\tcolSpan = 2;\n\t} else if ( ! showBlockActions ) {\n\t\tcolSpan = 3;\n\t}\n\n\tconst classes = clsx( {\n\t\t'is-selected': isSelected,\n\t\t'is-first-selected': isFirstSelectedBlock,\n\t\t'is-last-selected': isLastSelectedBlock,\n\t\t'is-branch-selected': isBranchSelected,\n\t\t'is-synced-branch': isSyncedBranch,\n\t\t'is-dragging': isDragged,\n\t\t'has-single-cell': ! showBlockActions,\n\t\t'is-synced': blockInformation?.isSynced,\n\t\t'is-draggable': canMove,\n\t\t'is-displacement-normal': displacement === 'normal',\n\t\t'is-displacement-up': displacement === 'up',\n\t\t'is-displacement-down': displacement === 'down',\n\t\t'is-after-dragged-blocks': isAfterDraggedBlocks,\n\t\t'is-nesting': isNesting,\n\t} );\n\n\t// Only include all selected blocks if the currently clicked on block\n\t// is one of the selected blocks. This ensures that if a user attempts\n\t// to alter a block that isn't part of the selection, they're still able\n\t// to do so.\n\tconst dropdownClientIds = selectedClientIds.includes( clientId )\n\t\t? selectedClientIds\n\t\t: [ clientId ];\n\n\t// Detect if there is a block in the canvas currently being edited and multi-selection is not happening.\n\tconst currentlyEditingBlockInCanvas =\n\t\tisSelected && selectedClientIds.length === 1;\n\n\treturn (\n\t\t<ListViewLeaf\n\t\t\tclassName={ classes }\n\t\t\tisDragged={ isDragged }\n\t\t\tonKeyDown={ onKeyDown }\n\t\t\tonMouseEnter={ onMouseEnter }\n\t\t\tonMouseLeave={ onMouseLeave }\n\t\t\tonFocus={ onMouseEnter }\n\t\t\tonBlur={ onMouseLeave }\n\t\t\tlevel={ level }\n\t\t\tposition={ position }\n\t\t\trowCount={ rowCount }\n\t\t\tpath={ path }\n\t\t\tid={ `list-view-${ listViewInstanceId }-block-${ clientId }` }\n\t\t\tdata-block={ clientId }\n\t\t\tdata-expanded={ canEdit ? isExpanded : undefined }\n\t\t\tref={ rowRef }\n\t\t>\n\t\t\t<TreeGridCell\n\t\t\t\tclassName=\"block-editor-list-view-block__contents-cell\"\n\t\t\t\tcolSpan={ colSpan }\n\t\t\t\tref={ cellRef }\n\t\t\t\taria-selected={ !! isSelected }\n\t\t\t>\n\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t<div className=\"block-editor-list-view-block__contents-container\">\n\t\t\t\t\t\t<ListViewBlockContents\n\t\t\t\t\t\t\tblock={ block }\n\t\t\t\t\t\t\tonClick={ selectEditorBlock }\n\t\t\t\t\t\t\tonContextMenu={ onContextMenu }\n\t\t\t\t\t\t\tonMouseDown={ onMouseDown }\n\t\t\t\t\t\t\tonToggleExpanded={ toggleExpanded }\n\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\tposition={ position }\n\t\t\t\t\t\t\tsiblingBlockCount={ siblingBlockCount }\n\t\t\t\t\t\t\tlevel={ level }\n\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\ttabIndex={\n\t\t\t\t\t\t\t\tcurrentlyEditingBlockInCanvas ? 0 : tabIndex\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\tisExpanded={ canEdit ? isExpanded : undefined }\n\t\t\t\t\t\t\tselectedClientIds={ selectedClientIds }\n\t\t\t\t\t\t\tariaDescribedBy={ descriptionId }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<AriaReferencedText id={ descriptionId }>\n\t\t\t\t\t\t\t{ [\n\t\t\t\t\t\t\t\tblockPositionDescription,\n\t\t\t\t\t\t\t\tblockPropertiesDescription,\n\t\t\t\t\t\t\t\tblockVisibilityDescription,\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t.filter( Boolean )\n\t\t\t\t\t\t\t\t.join( ' ' ) }\n\t\t\t\t\t\t</AriaReferencedText>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</TreeGridCell>\n\t\t\t{ hasRenderedMovers && (\n\t\t\t\t<>\n\t\t\t\t\t<TreeGridCell\n\t\t\t\t\t\tclassName={ moverCellClassName }\n\t\t\t\t\t\twithoutGridItem\n\t\t\t\t\t>\n\t\t\t\t\t\t<TreeGridItem>\n\t\t\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t\t\t<BlockMoverUpButton\n\t\t\t\t\t\t\t\t\torientation=\"vertical\"\n\t\t\t\t\t\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</TreeGridItem>\n\t\t\t\t\t\t<TreeGridItem>\n\t\t\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t\t\t<BlockMoverDownButton\n\t\t\t\t\t\t\t\t\torientation=\"vertical\"\n\t\t\t\t\t\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</TreeGridItem>\n\t\t\t\t\t</TreeGridCell>\n\t\t\t\t</>\n\t\t\t) }\n\n\t\t\t{ showBlockActions && BlockSettingsMenu && (\n\t\t\t\t<TreeGridCell\n\t\t\t\t\tclassName={ listViewBlockSettingsClassName }\n\t\t\t\t\taria-selected={ !! isSelected }\n\t\t\t\t\tref={ settingsRef }\n\t\t\t\t>\n\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t<BlockSettingsMenu\n\t\t\t\t\t\t\tclientIds={ dropdownClientIds }\n\t\t\t\t\t\t\tblock={ block }\n\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\tlabel={ __( 'Options' ) }\n\t\t\t\t\t\t\tpopoverProps={ {\n\t\t\t\t\t\t\t\tanchor: settingsPopoverAnchor, // Used to position the settings at the cursor on right-click.\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\t\t\tref,\n\t\t\t\t\t\t\t\tclassName: 'block-editor-list-view-block__menu',\n\t\t\t\t\t\t\t\ttabIndex,\n\t\t\t\t\t\t\t\tonClick: clearSettingsAnchorRect,\n\t\t\t\t\t\t\t\tonFocus,\n\t\t\t\t\t\t\t\tsize: 'small',\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tdisableOpenOnArrowDown\n\t\t\t\t\t\t\texpand={ expand }\n\t\t\t\t\t\t\texpandedState={ expandedState }\n\t\t\t\t\t\t\tsetInsertedBlock={ setInsertedBlock }\n\t\t\t\t\t\t\t__experimentalSelectBlock={\n\t\t\t\t\t\t\t\tupdateFocusAndSelection\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</TreeGridCell>\n\t\t\t) }\n\t\t</ListViewLeaf>\n\t);\n}\n\nexport default memo( ListViewBlock );\n"],"mappings":"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","ignoreList":[]}
@@ -30,7 +30,6 @@ import FormatEdit from './format-edit';
30
30
  import { getAllowedFormats } from './utils';
31
31
  import { Content, valueToHTMLString } from './content';
32
32
  import { withDeprecations } from './with-deprecations';
33
- import { canBindBlock } from '../../utils/block-bindings';
34
33
  import BlockContext from '../block-context';
35
34
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
36
35
  export const keyboardShortcutContext = createContext();
@@ -156,7 +155,10 @@ export function RichTextWrapper({
156
155
  bindingsLabel
157
156
  } = useSelect(select => {
158
157
  var _fieldsList$relatedBi;
159
- if (!blockBindings?.[identifier] || !canBindBlock(blockName)) {
158
+ const {
159
+ __experimentalBlockBindingsSupportedAttributes
160
+ } = select(blockEditorStore).getSettings();
161
+ if (!blockBindings?.[identifier] || !(blockName in __experimentalBlockBindingsSupportedAttributes)) {
160
162
  return {};
161
163
  }
162
164
  const relatedBinding = blockBindings[identifier];
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","useRef","useCallback","forwardRef","createContext","useContext","useDispatch","useRegistry","useSelect","useMergeRefs","useInstanceId","__unstableUseRichText","useRichText","removeFormat","Popover","getBlockBindingsSource","deprecated","__","sprintf","useBlockEditorAutocompleteProps","useBlockEditContext","blockBindingsKey","isPreviewModeKey","FormatToolbarContainer","store","blockEditorStore","useMarkPersistent","useFormatTypes","useEventListeners","FormatEdit","getAllowedFormats","Content","valueToHTMLString","withDeprecations","canBindBlock","BlockContext","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","keyboardShortcutContext","displayName","inputEventContext","instanceIdKey","Symbol","removeNativeProps","props","__unstableMobileNoFocusOnMount","deleteEnter","placeholderTextColor","textAlign","selectionColor","tagsToEliminate","disableEditingMenu","fontSize","fontFamily","fontWeight","fontStyle","minWidth","maxWidth","disableSuggestions","disableAutocorrection","restProps","RichTextWrapper","children","tagName","value","adjustedValue","onChange","adjustedOnChange","isSelected","originalIsSelected","multiline","inlineToolbar","wrapperClassName","autocompleters","onReplace","placeholder","allowedFormats","withoutInteractiveFormatting","onRemove","onMerge","onSplit","__unstableOnSplitAtEnd","onSplitAtEnd","__unstableOnSplitAtDoubleLineEnd","onSplitAtDoubleLineEnd","identifier","preserveWhiteSpace","__unstablePastePlainText","pastePlainText","__unstableEmbedURLOnPaste","__unstableDisableFormats","disableFormats","disableLineBreaks","__unstableAllowPrefixTransformations","readOnly","forwardedRef","since","alternative","instanceId","anchorRef","context","clientId","isBlockSelected","name","blockName","blockBindings","blockContext","registry","selector","select","getSelectionStart","getSelectionEnd","getBlockEditingMode","isNavigationMode","selectionStart","selectionEnd","undefined","attributeKey","offset","isContentOnlyWriteMode","disableBoundBlock","bindingsPlaceholder","bindingsLabel","_fieldsList$relatedBi","relatedBinding","blockBindingsSource","source","blockBindingsContext","usesContext","length","key","_disableBoundBlock","canUserEditValue","args","getBlockAttributes","blockAttributes","fieldsList","getFieldsList","bindingKey","label","_bindingsPlaceholder","_bindingsLabel","isInsidePatternOverrides","hasOverrideEnabled","__default","shouldDisableForPattern","shouldDisableEditing","getBlockRootClientId","selectionChange","adjustedAllowedFormats","hasFormats","onSelectionChange","start","end","selection","unset","baseSelection","formatTypes","prepareHandlers","valueHandlers","changeHandlers","dependencies","disableNoneEssentialFormatting","addEditorOnlyFormats","reduce","accumulator","fn","text","formats","removeEditorOnlyFormats","forEach","formatType","__experimentalCreatePrepareEditableTree","addInvisibleFormats","getValue","ref","richTextRef","html","__unstableFormats","__unstableText","Object","values","changeHandler","__unstableIsSelected","__unstableDependencies","__unstableAfterParse","__unstableBeforeSerialize","__unstableAddInvisibleFormats","autocompleteProps","completers","record","keyboardShortcuts","Set","inputEvents","onFocus","current","focus","TagName","Provider","__unstableSlotNameProvider","inline","editableContentElement","role","draggable","contentEditable","suppressContentEditableWarning","className","tabIndex","PrivateRichText","isEmpty","PublicForwardedRichTextContainer","isPreviewMode","Tag","contentProps","dangerouslySetInnerHTML","__html","RichTextShortcut","RichTextToolbarButton","__unstableRichTextInputEvent"],"sources":["@wordpress/block-editor/src/components/rich-text/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseRef,\n\tuseCallback,\n\tforwardRef,\n\tcreateContext,\n\tuseContext,\n} from '@wordpress/element';\nimport { useDispatch, useRegistry, useSelect } from '@wordpress/data';\nimport { useMergeRefs, useInstanceId } from '@wordpress/compose';\nimport {\n\t__unstableUseRichText as useRichText,\n\tremoveFormat,\n} from '@wordpress/rich-text';\nimport { Popover } from '@wordpress/components';\nimport { getBlockBindingsSource } from '@wordpress/blocks';\nimport deprecated from '@wordpress/deprecated';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { useBlockEditorAutocompleteProps } from '../autocomplete';\nimport { useBlockEditContext } from '../block-edit';\nimport { blockBindingsKey, isPreviewModeKey } from '../block-edit/context';\nimport FormatToolbarContainer from './format-toolbar-container';\nimport { store as blockEditorStore } from '../../store';\nimport { useMarkPersistent } from './use-mark-persistent';\nimport { useFormatTypes } from './use-format-types';\nimport { useEventListeners } from './event-listeners';\nimport FormatEdit from './format-edit';\nimport { getAllowedFormats } from './utils';\nimport { Content, valueToHTMLString } from './content';\nimport { withDeprecations } from './with-deprecations';\nimport { canBindBlock } from '../../utils/block-bindings';\nimport BlockContext from '../block-context';\n\nexport const keyboardShortcutContext = createContext();\nkeyboardShortcutContext.displayName = 'keyboardShortcutContext';\n\nexport const inputEventContext = createContext();\ninputEventContext.displayName = 'inputEventContext';\n\nconst instanceIdKey = Symbol( 'instanceId' );\n\n/**\n * Removes props used for the native version of RichText so that they are not\n * passed to the DOM element and log warnings.\n *\n * @param {Object} props Props to filter.\n *\n * @return {Object} Filtered props.\n */\nfunction removeNativeProps( props ) {\n\tconst {\n\t\t__unstableMobileNoFocusOnMount,\n\t\tdeleteEnter,\n\t\tplaceholderTextColor,\n\t\ttextAlign,\n\t\tselectionColor,\n\t\ttagsToEliminate,\n\t\tdisableEditingMenu,\n\t\tfontSize,\n\t\tfontFamily,\n\t\tfontWeight,\n\t\tfontStyle,\n\t\tminWidth,\n\t\tmaxWidth,\n\t\tdisableSuggestions,\n\t\tdisableAutocorrection,\n\t\t...restProps\n\t} = props;\n\treturn restProps;\n}\n\nexport function RichTextWrapper(\n\t{\n\t\tchildren,\n\t\ttagName = 'div',\n\t\tvalue: adjustedValue = '',\n\t\tonChange: adjustedOnChange,\n\t\tisSelected: originalIsSelected,\n\t\tmultiline,\n\t\tinlineToolbar,\n\t\twrapperClassName,\n\t\tautocompleters,\n\t\tonReplace,\n\t\tplaceholder,\n\t\tallowedFormats,\n\t\twithoutInteractiveFormatting,\n\t\tonRemove,\n\t\tonMerge,\n\t\tonSplit,\n\t\t__unstableOnSplitAtEnd: onSplitAtEnd,\n\t\t__unstableOnSplitAtDoubleLineEnd: onSplitAtDoubleLineEnd,\n\t\tidentifier,\n\t\tpreserveWhiteSpace,\n\t\t__unstablePastePlainText: pastePlainText,\n\t\t__unstableEmbedURLOnPaste,\n\t\t__unstableDisableFormats: disableFormats,\n\t\tdisableLineBreaks,\n\t\t__unstableAllowPrefixTransformations,\n\t\treadOnly,\n\t\t...props\n\t},\n\tforwardedRef\n) {\n\tprops = removeNativeProps( props );\n\n\tif ( onSplit ) {\n\t\tdeprecated( 'wp.blockEditor.RichText onSplit prop', {\n\t\t\tsince: '6.4',\n\t\t\talternative: 'block.json support key: \"splitting\"',\n\t\t} );\n\t}\n\n\tconst instanceId = useInstanceId( RichTextWrapper );\n\tconst anchorRef = useRef();\n\tconst context = useBlockEditContext();\n\tconst { clientId, isSelected: isBlockSelected, name: blockName } = context;\n\tconst blockBindings = context[ blockBindingsKey ];\n\tconst blockContext = useContext( BlockContext );\n\tconst registry = useRegistry();\n\tconst selector = ( select ) => {\n\t\t// Avoid subscribing to the block editor store if the block is not\n\t\t// selected.\n\t\tif ( ! isBlockSelected ) {\n\t\t\treturn { isSelected: false };\n\t\t}\n\n\t\tconst {\n\t\t\tgetSelectionStart,\n\t\t\tgetSelectionEnd,\n\t\t\tgetBlockEditingMode,\n\t\t\tisNavigationMode,\n\t\t} = select( blockEditorStore );\n\t\tconst selectionStart = getSelectionStart();\n\t\tconst selectionEnd = getSelectionEnd();\n\n\t\tlet isSelected;\n\n\t\tif ( originalIsSelected === undefined ) {\n\t\t\tisSelected =\n\t\t\t\tselectionStart.clientId === clientId &&\n\t\t\t\tselectionEnd.clientId === clientId &&\n\t\t\t\t( identifier\n\t\t\t\t\t? selectionStart.attributeKey === identifier\n\t\t\t\t\t: selectionStart[ instanceIdKey ] === instanceId );\n\t\t} else if ( originalIsSelected ) {\n\t\t\tisSelected = selectionStart.clientId === clientId;\n\t\t}\n\n\t\treturn {\n\t\t\tselectionStart: isSelected ? selectionStart.offset : undefined,\n\t\t\tselectionEnd: isSelected ? selectionEnd.offset : undefined,\n\t\t\tisSelected,\n\t\t\tisContentOnlyWriteMode:\n\t\t\t\tisNavigationMode() &&\n\t\t\t\tgetBlockEditingMode( clientId ) === 'contentOnly',\n\t\t};\n\t};\n\tconst { selectionStart, selectionEnd, isSelected, isContentOnlyWriteMode } =\n\t\tuseSelect( selector, [\n\t\t\tclientId,\n\t\t\tidentifier,\n\t\t\tinstanceId,\n\t\t\toriginalIsSelected,\n\t\t\tisBlockSelected,\n\t\t] );\n\n\tconst { disableBoundBlock, bindingsPlaceholder, bindingsLabel } = useSelect(\n\t\t( select ) => {\n\t\t\tif (\n\t\t\t\t! blockBindings?.[ identifier ] ||\n\t\t\t\t! canBindBlock( blockName )\n\t\t\t) {\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\tconst relatedBinding = blockBindings[ identifier ];\n\t\t\tconst blockBindingsSource = getBlockBindingsSource(\n\t\t\t\trelatedBinding.source\n\t\t\t);\n\t\t\tconst blockBindingsContext = {};\n\t\t\tif ( blockBindingsSource?.usesContext?.length ) {\n\t\t\t\tfor ( const key of blockBindingsSource.usesContext ) {\n\t\t\t\t\tblockBindingsContext[ key ] = blockContext[ key ];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst _disableBoundBlock =\n\t\t\t\t! blockBindingsSource?.canUserEditValue?.( {\n\t\t\t\t\tselect,\n\t\t\t\t\tcontext: blockBindingsContext,\n\t\t\t\t\targs: relatedBinding.args,\n\t\t\t\t} );\n\n\t\t\t// Don't modify placeholders if value is not empty.\n\t\t\tif ( adjustedValue.length > 0 ) {\n\t\t\t\treturn {\n\t\t\t\t\tdisableBoundBlock: _disableBoundBlock,\n\t\t\t\t\t// Null values will make them fall back to the default behavior.\n\t\t\t\t\tbindingsPlaceholder: null,\n\t\t\t\t\tbindingsLabel: null,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst { getBlockAttributes } = select( blockEditorStore );\n\t\t\tconst blockAttributes = getBlockAttributes( clientId );\n\t\t\tconst fieldsList = blockBindingsSource?.getFieldsList?.( {\n\t\t\t\tselect,\n\t\t\t\tcontext: blockBindingsContext,\n\t\t\t} );\n\t\t\tconst bindingKey =\n\t\t\t\tfieldsList?.[ relatedBinding?.args?.key ]?.label ??\n\t\t\t\tblockBindingsSource?.label;\n\n\t\t\tconst _bindingsPlaceholder = _disableBoundBlock\n\t\t\t\t? bindingKey\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t/* translators: %s: connected field label or source label */\n\t\t\t\t\t\t__( 'Add %s' ),\n\t\t\t\t\t\tbindingKey\n\t\t\t\t );\n\t\t\tconst _bindingsLabel = _disableBoundBlock\n\t\t\t\t? relatedBinding?.args?.key || blockBindingsSource?.label\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t/* translators: %s: source label or key */\n\t\t\t\t\t\t__( 'Empty %s; start writing to edit its value' ),\n\t\t\t\t\t\trelatedBinding?.args?.key || blockBindingsSource?.label\n\t\t\t\t );\n\n\t\t\treturn {\n\t\t\t\tdisableBoundBlock: _disableBoundBlock,\n\t\t\t\tbindingsPlaceholder:\n\t\t\t\t\tblockAttributes?.placeholder || _bindingsPlaceholder,\n\t\t\t\tbindingsLabel: _bindingsLabel,\n\t\t\t};\n\t\t},\n\t\t[\n\t\t\tblockBindings,\n\t\t\tidentifier,\n\t\t\tblockName,\n\t\t\tadjustedValue,\n\t\t\tclientId,\n\t\t\tblockContext,\n\t\t]\n\t);\n\tconst isInsidePatternOverrides = !! blockContext?.[ 'pattern/overrides' ];\n\tconst hasOverrideEnabled =\n\t\tblockBindings?.__default?.source === 'core/pattern-overrides';\n\n\tconst shouldDisableForPattern =\n\t\tisInsidePatternOverrides && ! hasOverrideEnabled;\n\n\tconst shouldDisableEditing =\n\t\treadOnly || disableBoundBlock || shouldDisableForPattern;\n\n\tconst { getSelectionStart, getSelectionEnd, getBlockRootClientId } =\n\t\tuseSelect( blockEditorStore );\n\tconst { selectionChange } = useDispatch( blockEditorStore );\n\tconst adjustedAllowedFormats = getAllowedFormats( {\n\t\tallowedFormats,\n\t\tdisableFormats,\n\t} );\n\tconst hasFormats =\n\t\t! adjustedAllowedFormats || adjustedAllowedFormats.length > 0;\n\n\tconst onSelectionChange = useCallback(\n\t\t( start, end ) => {\n\t\t\tconst selection = {};\n\t\t\tconst unset = start === undefined && end === undefined;\n\n\t\t\tconst baseSelection = {\n\t\t\t\tclientId,\n\t\t\t\t[ identifier ? 'attributeKey' : instanceIdKey ]: identifier\n\t\t\t\t\t? identifier\n\t\t\t\t\t: instanceId,\n\t\t\t};\n\n\t\t\tif ( typeof start === 'number' || unset ) {\n\t\t\t\t// If we are only setting the start (or the end below), which\n\t\t\t\t// means a partial selection, and we're not updating a selection\n\t\t\t\t// with the same client ID, abort. This means the selected block\n\t\t\t\t// is a parent block.\n\t\t\t\tif (\n\t\t\t\t\tend === undefined &&\n\t\t\t\t\tgetBlockRootClientId( clientId ) !==\n\t\t\t\t\t\tgetBlockRootClientId( getSelectionEnd().clientId )\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tselection.start = {\n\t\t\t\t\t...baseSelection,\n\t\t\t\t\toffset: start,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif ( typeof end === 'number' || unset ) {\n\t\t\t\tif (\n\t\t\t\t\tstart === undefined &&\n\t\t\t\t\tgetBlockRootClientId( clientId ) !==\n\t\t\t\t\t\tgetBlockRootClientId( getSelectionStart().clientId )\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tselection.end = {\n\t\t\t\t\t...baseSelection,\n\t\t\t\t\toffset: end,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tselectionChange( selection );\n\t\t},\n\t\t[\n\t\t\tclientId,\n\t\t\tgetBlockRootClientId,\n\t\t\tgetSelectionEnd,\n\t\t\tgetSelectionStart,\n\t\t\tidentifier,\n\t\t\tinstanceId,\n\t\t\tselectionChange,\n\t\t]\n\t);\n\n\tconst {\n\t\tformatTypes,\n\t\tprepareHandlers,\n\t\tvalueHandlers,\n\t\tchangeHandlers,\n\t\tdependencies,\n\t} = useFormatTypes( {\n\t\tclientId,\n\t\tidentifier,\n\t\tallowedFormats: adjustedAllowedFormats,\n\t\twithoutInteractiveFormatting,\n\t\tdisableNoneEssentialFormatting: isContentOnlyWriteMode,\n\t} );\n\n\tfunction addEditorOnlyFormats( value ) {\n\t\treturn valueHandlers.reduce(\n\t\t\t( accumulator, fn ) => fn( accumulator, value.text ),\n\t\t\tvalue.formats\n\t\t);\n\t}\n\n\tfunction removeEditorOnlyFormats( value ) {\n\t\tformatTypes.forEach( ( formatType ) => {\n\t\t\t// Remove formats created by prepareEditableTree, because they are editor only.\n\t\t\tif ( formatType.__experimentalCreatePrepareEditableTree ) {\n\t\t\t\tvalue = removeFormat(\n\t\t\t\t\tvalue,\n\t\t\t\t\tformatType.name,\n\t\t\t\t\t0,\n\t\t\t\t\tvalue.text.length\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t\treturn value.formats;\n\t}\n\n\tfunction addInvisibleFormats( value ) {\n\t\treturn prepareHandlers.reduce(\n\t\t\t( accumulator, fn ) => fn( accumulator, value.text ),\n\t\t\tvalue.formats\n\t\t);\n\t}\n\n\tconst {\n\t\tvalue,\n\t\tgetValue,\n\t\tonChange,\n\t\tref: richTextRef,\n\t} = useRichText( {\n\t\tvalue: adjustedValue,\n\t\tonChange( html, { __unstableFormats, __unstableText } ) {\n\t\t\tadjustedOnChange( html );\n\t\t\tObject.values( changeHandlers ).forEach( ( changeHandler ) => {\n\t\t\t\tchangeHandler( __unstableFormats, __unstableText );\n\t\t\t} );\n\t\t},\n\t\tselectionStart,\n\t\tselectionEnd,\n\t\tonSelectionChange,\n\t\tplaceholder: bindingsPlaceholder || placeholder,\n\t\t__unstableIsSelected: isSelected,\n\t\t__unstableDisableFormats: disableFormats,\n\t\tpreserveWhiteSpace,\n\t\t__unstableDependencies: [ ...dependencies, tagName ],\n\t\t__unstableAfterParse: addEditorOnlyFormats,\n\t\t__unstableBeforeSerialize: removeEditorOnlyFormats,\n\t\t__unstableAddInvisibleFormats: addInvisibleFormats,\n\t} );\n\tconst autocompleteProps = useBlockEditorAutocompleteProps( {\n\t\tonReplace,\n\t\tcompleters: autocompleters,\n\t\trecord: value,\n\t\tonChange,\n\t} );\n\n\tuseMarkPersistent( { html: adjustedValue, value } );\n\n\tconst keyboardShortcuts = useRef( new Set() );\n\tconst inputEvents = useRef( new Set() );\n\n\tfunction onFocus() {\n\t\tanchorRef.current?.focus();\n\t}\n\n\tconst TagName = tagName;\n\treturn (\n\t\t<>\n\t\t\t{ isSelected && (\n\t\t\t\t<keyboardShortcutContext.Provider value={ keyboardShortcuts }>\n\t\t\t\t\t<inputEventContext.Provider value={ inputEvents }>\n\t\t\t\t\t\t<Popover.__unstableSlotNameProvider value=\"__unstable-block-tools-after\">\n\t\t\t\t\t\t\t{ children &&\n\t\t\t\t\t\t\t\tchildren( { value, onChange, onFocus } ) }\n\n\t\t\t\t\t\t\t<FormatEdit\n\t\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\tformatTypes={ formatTypes }\n\t\t\t\t\t\t\t\tforwardedRef={ anchorRef }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Popover.__unstableSlotNameProvider>\n\t\t\t\t\t</inputEventContext.Provider>\n\t\t\t\t</keyboardShortcutContext.Provider>\n\t\t\t) }\n\t\t\t{ isSelected && hasFormats && (\n\t\t\t\t<FormatToolbarContainer\n\t\t\t\t\tinline={ inlineToolbar }\n\t\t\t\t\teditableContentElement={ anchorRef.current }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<TagName\n\t\t\t\t// Overridable props.\n\t\t\t\trole=\"textbox\"\n\t\t\t\taria-multiline={ ! disableLineBreaks }\n\t\t\t\taria-readonly={ shouldDisableEditing }\n\t\t\t\t{ ...props }\n\t\t\t\t// Unset draggable (coming from block props) for contentEditable\n\t\t\t\t// elements because it will interfere with multi block selection\n\t\t\t\t// when the contentEditable and draggable elements are the same\n\t\t\t\t// element.\n\t\t\t\tdraggable={ undefined }\n\t\t\t\taria-label={\n\t\t\t\t\tbindingsLabel || props[ 'aria-label' ] || placeholder\n\t\t\t\t}\n\t\t\t\t{ ...autocompleteProps }\n\t\t\t\tref={ useMergeRefs( [\n\t\t\t\t\t// Rich text ref must be first because its focus listener\n\t\t\t\t\t// must be set up before any other ref calls .focus() on\n\t\t\t\t\t// mount.\n\t\t\t\t\trichTextRef,\n\t\t\t\t\tforwardedRef,\n\t\t\t\t\tautocompleteProps.ref,\n\t\t\t\t\tprops.ref,\n\t\t\t\t\tuseEventListeners( {\n\t\t\t\t\t\tregistry,\n\t\t\t\t\t\tgetValue,\n\t\t\t\t\t\tonChange,\n\t\t\t\t\t\t__unstableAllowPrefixTransformations,\n\t\t\t\t\t\tformatTypes,\n\t\t\t\t\t\tonReplace,\n\t\t\t\t\t\tselectionChange,\n\t\t\t\t\t\tisSelected,\n\t\t\t\t\t\tdisableFormats,\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\ttagName,\n\t\t\t\t\t\tonSplit,\n\t\t\t\t\t\t__unstableEmbedURLOnPaste,\n\t\t\t\t\t\tpastePlainText,\n\t\t\t\t\t\tonMerge,\n\t\t\t\t\t\tonRemove,\n\t\t\t\t\t\tremoveEditorOnlyFormats,\n\t\t\t\t\t\tdisableLineBreaks,\n\t\t\t\t\t\tonSplitAtEnd,\n\t\t\t\t\t\tonSplitAtDoubleLineEnd,\n\t\t\t\t\t\tkeyboardShortcuts,\n\t\t\t\t\t\tinputEvents,\n\t\t\t\t\t} ),\n\t\t\t\t\tanchorRef,\n\t\t\t\t] ) }\n\t\t\t\tcontentEditable={ ! shouldDisableEditing }\n\t\t\t\tsuppressContentEditableWarning\n\t\t\t\tclassName={ clsx(\n\t\t\t\t\t'block-editor-rich-text__editable',\n\t\t\t\t\tprops.className,\n\t\t\t\t\t'rich-text'\n\t\t\t\t) }\n\t\t\t\t// Setting tabIndex to 0 is unnecessary, the element is already\n\t\t\t\t// focusable because it's contentEditable. This also fixes a\n\t\t\t\t// Safari bug where it's not possible to Shift+Click multi\n\t\t\t\t// select blocks when Shift Clicking into an element with\n\t\t\t\t// tabIndex because Safari will focus the element. However,\n\t\t\t\t// Safari will correctly ignore nested contentEditable elements.\n\t\t\t\ttabIndex={\n\t\t\t\t\tprops.tabIndex === 0 && ! shouldDisableEditing\n\t\t\t\t\t\t? null\n\t\t\t\t\t\t: props.tabIndex\n\t\t\t\t}\n\t\t\t\tdata-wp-block-attribute-key={ identifier }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\n// This is the private API for the RichText component.\n// It allows access to all props, not just the public ones.\nexport const PrivateRichText = withDeprecations(\n\tforwardRef( RichTextWrapper )\n);\n\nPrivateRichText.Content = Content;\nPrivateRichText.isEmpty = ( value ) => {\n\treturn ! value || value.length === 0;\n};\n\n// This is the public API for the RichText component.\n// We wrap the PrivateRichText component to hide some props from the public API.\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/rich-text/README.md\n */\nconst PublicForwardedRichTextContainer = forwardRef( ( props, ref ) => {\n\tconst context = useBlockEditContext();\n\tconst isPreviewMode = context[ isPreviewModeKey ];\n\n\tif ( isPreviewMode ) {\n\t\t// Remove all non-content props.\n\t\tconst {\n\t\t\tchildren,\n\t\t\ttagName: Tag = 'div',\n\t\t\tvalue,\n\t\t\tonChange,\n\t\t\tisSelected,\n\t\t\tmultiline,\n\t\t\tinlineToolbar,\n\t\t\twrapperClassName,\n\t\t\tautocompleters,\n\t\t\tonReplace,\n\t\t\tplaceholder,\n\t\t\tallowedFormats,\n\t\t\twithoutInteractiveFormatting,\n\t\t\tonRemove,\n\t\t\tonMerge,\n\t\t\tonSplit,\n\t\t\t__unstableOnSplitAtEnd,\n\t\t\t__unstableOnSplitAtDoubleLineEnd,\n\t\t\tidentifier,\n\t\t\tpreserveWhiteSpace,\n\t\t\t__unstablePastePlainText,\n\t\t\t__unstableEmbedURLOnPaste,\n\t\t\t__unstableDisableFormats,\n\t\t\tdisableLineBreaks,\n\t\t\t__unstableAllowPrefixTransformations,\n\t\t\treadOnly,\n\t\t\t...contentProps\n\t\t} = removeNativeProps( props );\n\t\treturn (\n\t\t\t<Tag\n\t\t\t\t{ ...contentProps }\n\t\t\t\tdangerouslySetInnerHTML={ {\n\t\t\t\t\t__html: valueToHTMLString( value, multiline ),\n\t\t\t\t} }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn <PrivateRichText ref={ ref } { ...props } readOnly={ false } />;\n} );\n\nPublicForwardedRichTextContainer.Content = Content;\nPublicForwardedRichTextContainer.isEmpty = ( value ) => {\n\treturn ! value || value.length === 0;\n};\n\nexport default PublicForwardedRichTextContainer;\nexport { RichTextShortcut } from './shortcut';\nexport { RichTextToolbarButton } from './toolbar-button';\nexport { __unstableRichTextInputEvent } from './input-event';\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","useRef","useCallback","forwardRef","createContext","useContext","useDispatch","useRegistry","useSelect","useMergeRefs","useInstanceId","__unstableUseRichText","useRichText","removeFormat","Popover","getBlockBindingsSource","deprecated","__","sprintf","useBlockEditorAutocompleteProps","useBlockEditContext","blockBindingsKey","isPreviewModeKey","FormatToolbarContainer","store","blockEditorStore","useMarkPersistent","useFormatTypes","useEventListeners","FormatEdit","getAllowedFormats","Content","valueToHTMLString","withDeprecations","BlockContext","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","keyboardShortcutContext","displayName","inputEventContext","instanceIdKey","Symbol","removeNativeProps","props","__unstableMobileNoFocusOnMount","deleteEnter","placeholderTextColor","textAlign","selectionColor","tagsToEliminate","disableEditingMenu","fontSize","fontFamily","fontWeight","fontStyle","minWidth","maxWidth","disableSuggestions","disableAutocorrection","restProps","RichTextWrapper","children","tagName","value","adjustedValue","onChange","adjustedOnChange","isSelected","originalIsSelected","multiline","inlineToolbar","wrapperClassName","autocompleters","onReplace","placeholder","allowedFormats","withoutInteractiveFormatting","onRemove","onMerge","onSplit","__unstableOnSplitAtEnd","onSplitAtEnd","__unstableOnSplitAtDoubleLineEnd","onSplitAtDoubleLineEnd","identifier","preserveWhiteSpace","__unstablePastePlainText","pastePlainText","__unstableEmbedURLOnPaste","__unstableDisableFormats","disableFormats","disableLineBreaks","__unstableAllowPrefixTransformations","readOnly","forwardedRef","since","alternative","instanceId","anchorRef","context","clientId","isBlockSelected","name","blockName","blockBindings","blockContext","registry","selector","select","getSelectionStart","getSelectionEnd","getBlockEditingMode","isNavigationMode","selectionStart","selectionEnd","undefined","attributeKey","offset","isContentOnlyWriteMode","disableBoundBlock","bindingsPlaceholder","bindingsLabel","_fieldsList$relatedBi","__experimentalBlockBindingsSupportedAttributes","getSettings","relatedBinding","blockBindingsSource","source","blockBindingsContext","usesContext","length","key","_disableBoundBlock","canUserEditValue","args","getBlockAttributes","blockAttributes","fieldsList","getFieldsList","bindingKey","label","_bindingsPlaceholder","_bindingsLabel","isInsidePatternOverrides","hasOverrideEnabled","__default","shouldDisableForPattern","shouldDisableEditing","getBlockRootClientId","selectionChange","adjustedAllowedFormats","hasFormats","onSelectionChange","start","end","selection","unset","baseSelection","formatTypes","prepareHandlers","valueHandlers","changeHandlers","dependencies","disableNoneEssentialFormatting","addEditorOnlyFormats","reduce","accumulator","fn","text","formats","removeEditorOnlyFormats","forEach","formatType","__experimentalCreatePrepareEditableTree","addInvisibleFormats","getValue","ref","richTextRef","html","__unstableFormats","__unstableText","Object","values","changeHandler","__unstableIsSelected","__unstableDependencies","__unstableAfterParse","__unstableBeforeSerialize","__unstableAddInvisibleFormats","autocompleteProps","completers","record","keyboardShortcuts","Set","inputEvents","onFocus","current","focus","TagName","Provider","__unstableSlotNameProvider","inline","editableContentElement","role","draggable","contentEditable","suppressContentEditableWarning","className","tabIndex","PrivateRichText","isEmpty","PublicForwardedRichTextContainer","isPreviewMode","Tag","contentProps","dangerouslySetInnerHTML","__html","RichTextShortcut","RichTextToolbarButton","__unstableRichTextInputEvent"],"sources":["@wordpress/block-editor/src/components/rich-text/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseRef,\n\tuseCallback,\n\tforwardRef,\n\tcreateContext,\n\tuseContext,\n} from '@wordpress/element';\nimport { useDispatch, useRegistry, useSelect } from '@wordpress/data';\nimport { useMergeRefs, useInstanceId } from '@wordpress/compose';\nimport {\n\t__unstableUseRichText as useRichText,\n\tremoveFormat,\n} from '@wordpress/rich-text';\nimport { Popover } from '@wordpress/components';\nimport { getBlockBindingsSource } from '@wordpress/blocks';\nimport deprecated from '@wordpress/deprecated';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { useBlockEditorAutocompleteProps } from '../autocomplete';\nimport { useBlockEditContext } from '../block-edit';\nimport { blockBindingsKey, isPreviewModeKey } from '../block-edit/context';\nimport FormatToolbarContainer from './format-toolbar-container';\nimport { store as blockEditorStore } from '../../store';\nimport { useMarkPersistent } from './use-mark-persistent';\nimport { useFormatTypes } from './use-format-types';\nimport { useEventListeners } from './event-listeners';\nimport FormatEdit from './format-edit';\nimport { getAllowedFormats } from './utils';\nimport { Content, valueToHTMLString } from './content';\nimport { withDeprecations } from './with-deprecations';\nimport BlockContext from '../block-context';\n\nexport const keyboardShortcutContext = createContext();\nkeyboardShortcutContext.displayName = 'keyboardShortcutContext';\n\nexport const inputEventContext = createContext();\ninputEventContext.displayName = 'inputEventContext';\n\nconst instanceIdKey = Symbol( 'instanceId' );\n\n/**\n * Removes props used for the native version of RichText so that they are not\n * passed to the DOM element and log warnings.\n *\n * @param {Object} props Props to filter.\n *\n * @return {Object} Filtered props.\n */\nfunction removeNativeProps( props ) {\n\tconst {\n\t\t__unstableMobileNoFocusOnMount,\n\t\tdeleteEnter,\n\t\tplaceholderTextColor,\n\t\ttextAlign,\n\t\tselectionColor,\n\t\ttagsToEliminate,\n\t\tdisableEditingMenu,\n\t\tfontSize,\n\t\tfontFamily,\n\t\tfontWeight,\n\t\tfontStyle,\n\t\tminWidth,\n\t\tmaxWidth,\n\t\tdisableSuggestions,\n\t\tdisableAutocorrection,\n\t\t...restProps\n\t} = props;\n\treturn restProps;\n}\n\nexport function RichTextWrapper(\n\t{\n\t\tchildren,\n\t\ttagName = 'div',\n\t\tvalue: adjustedValue = '',\n\t\tonChange: adjustedOnChange,\n\t\tisSelected: originalIsSelected,\n\t\tmultiline,\n\t\tinlineToolbar,\n\t\twrapperClassName,\n\t\tautocompleters,\n\t\tonReplace,\n\t\tplaceholder,\n\t\tallowedFormats,\n\t\twithoutInteractiveFormatting,\n\t\tonRemove,\n\t\tonMerge,\n\t\tonSplit,\n\t\t__unstableOnSplitAtEnd: onSplitAtEnd,\n\t\t__unstableOnSplitAtDoubleLineEnd: onSplitAtDoubleLineEnd,\n\t\tidentifier,\n\t\tpreserveWhiteSpace,\n\t\t__unstablePastePlainText: pastePlainText,\n\t\t__unstableEmbedURLOnPaste,\n\t\t__unstableDisableFormats: disableFormats,\n\t\tdisableLineBreaks,\n\t\t__unstableAllowPrefixTransformations,\n\t\treadOnly,\n\t\t...props\n\t},\n\tforwardedRef\n) {\n\tprops = removeNativeProps( props );\n\n\tif ( onSplit ) {\n\t\tdeprecated( 'wp.blockEditor.RichText onSplit prop', {\n\t\t\tsince: '6.4',\n\t\t\talternative: 'block.json support key: \"splitting\"',\n\t\t} );\n\t}\n\n\tconst instanceId = useInstanceId( RichTextWrapper );\n\tconst anchorRef = useRef();\n\tconst context = useBlockEditContext();\n\tconst { clientId, isSelected: isBlockSelected, name: blockName } = context;\n\tconst blockBindings = context[ blockBindingsKey ];\n\tconst blockContext = useContext( BlockContext );\n\tconst registry = useRegistry();\n\tconst selector = ( select ) => {\n\t\t// Avoid subscribing to the block editor store if the block is not\n\t\t// selected.\n\t\tif ( ! isBlockSelected ) {\n\t\t\treturn { isSelected: false };\n\t\t}\n\n\t\tconst {\n\t\t\tgetSelectionStart,\n\t\t\tgetSelectionEnd,\n\t\t\tgetBlockEditingMode,\n\t\t\tisNavigationMode,\n\t\t} = select( blockEditorStore );\n\t\tconst selectionStart = getSelectionStart();\n\t\tconst selectionEnd = getSelectionEnd();\n\n\t\tlet isSelected;\n\n\t\tif ( originalIsSelected === undefined ) {\n\t\t\tisSelected =\n\t\t\t\tselectionStart.clientId === clientId &&\n\t\t\t\tselectionEnd.clientId === clientId &&\n\t\t\t\t( identifier\n\t\t\t\t\t? selectionStart.attributeKey === identifier\n\t\t\t\t\t: selectionStart[ instanceIdKey ] === instanceId );\n\t\t} else if ( originalIsSelected ) {\n\t\t\tisSelected = selectionStart.clientId === clientId;\n\t\t}\n\n\t\treturn {\n\t\t\tselectionStart: isSelected ? selectionStart.offset : undefined,\n\t\t\tselectionEnd: isSelected ? selectionEnd.offset : undefined,\n\t\t\tisSelected,\n\t\t\tisContentOnlyWriteMode:\n\t\t\t\tisNavigationMode() &&\n\t\t\t\tgetBlockEditingMode( clientId ) === 'contentOnly',\n\t\t};\n\t};\n\tconst { selectionStart, selectionEnd, isSelected, isContentOnlyWriteMode } =\n\t\tuseSelect( selector, [\n\t\t\tclientId,\n\t\t\tidentifier,\n\t\t\tinstanceId,\n\t\t\toriginalIsSelected,\n\t\t\tisBlockSelected,\n\t\t] );\n\n\tconst { disableBoundBlock, bindingsPlaceholder, bindingsLabel } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { __experimentalBlockBindingsSupportedAttributes } =\n\t\t\t\tselect( blockEditorStore ).getSettings();\n\n\t\t\tif (\n\t\t\t\t! blockBindings?.[ identifier ] ||\n\t\t\t\t! (\n\t\t\t\t\tblockName in __experimentalBlockBindingsSupportedAttributes\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\tconst relatedBinding = blockBindings[ identifier ];\n\t\t\tconst blockBindingsSource = getBlockBindingsSource(\n\t\t\t\trelatedBinding.source\n\t\t\t);\n\t\t\tconst blockBindingsContext = {};\n\t\t\tif ( blockBindingsSource?.usesContext?.length ) {\n\t\t\t\tfor ( const key of blockBindingsSource.usesContext ) {\n\t\t\t\t\tblockBindingsContext[ key ] = blockContext[ key ];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst _disableBoundBlock =\n\t\t\t\t! blockBindingsSource?.canUserEditValue?.( {\n\t\t\t\t\tselect,\n\t\t\t\t\tcontext: blockBindingsContext,\n\t\t\t\t\targs: relatedBinding.args,\n\t\t\t\t} );\n\n\t\t\t// Don't modify placeholders if value is not empty.\n\t\t\tif ( adjustedValue.length > 0 ) {\n\t\t\t\treturn {\n\t\t\t\t\tdisableBoundBlock: _disableBoundBlock,\n\t\t\t\t\t// Null values will make them fall back to the default behavior.\n\t\t\t\t\tbindingsPlaceholder: null,\n\t\t\t\t\tbindingsLabel: null,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst { getBlockAttributes } = select( blockEditorStore );\n\t\t\tconst blockAttributes = getBlockAttributes( clientId );\n\t\t\tconst fieldsList = blockBindingsSource?.getFieldsList?.( {\n\t\t\t\tselect,\n\t\t\t\tcontext: blockBindingsContext,\n\t\t\t} );\n\t\t\tconst bindingKey =\n\t\t\t\tfieldsList?.[ relatedBinding?.args?.key ]?.label ??\n\t\t\t\tblockBindingsSource?.label;\n\n\t\t\tconst _bindingsPlaceholder = _disableBoundBlock\n\t\t\t\t? bindingKey\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t/* translators: %s: connected field label or source label */\n\t\t\t\t\t\t__( 'Add %s' ),\n\t\t\t\t\t\tbindingKey\n\t\t\t\t );\n\t\t\tconst _bindingsLabel = _disableBoundBlock\n\t\t\t\t? relatedBinding?.args?.key || blockBindingsSource?.label\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t/* translators: %s: source label or key */\n\t\t\t\t\t\t__( 'Empty %s; start writing to edit its value' ),\n\t\t\t\t\t\trelatedBinding?.args?.key || blockBindingsSource?.label\n\t\t\t\t );\n\n\t\t\treturn {\n\t\t\t\tdisableBoundBlock: _disableBoundBlock,\n\t\t\t\tbindingsPlaceholder:\n\t\t\t\t\tblockAttributes?.placeholder || _bindingsPlaceholder,\n\t\t\t\tbindingsLabel: _bindingsLabel,\n\t\t\t};\n\t\t},\n\t\t[\n\t\t\tblockBindings,\n\t\t\tidentifier,\n\t\t\tblockName,\n\t\t\tadjustedValue,\n\t\t\tclientId,\n\t\t\tblockContext,\n\t\t]\n\t);\n\tconst isInsidePatternOverrides = !! blockContext?.[ 'pattern/overrides' ];\n\tconst hasOverrideEnabled =\n\t\tblockBindings?.__default?.source === 'core/pattern-overrides';\n\n\tconst shouldDisableForPattern =\n\t\tisInsidePatternOverrides && ! hasOverrideEnabled;\n\n\tconst shouldDisableEditing =\n\t\treadOnly || disableBoundBlock || shouldDisableForPattern;\n\n\tconst { getSelectionStart, getSelectionEnd, getBlockRootClientId } =\n\t\tuseSelect( blockEditorStore );\n\tconst { selectionChange } = useDispatch( blockEditorStore );\n\tconst adjustedAllowedFormats = getAllowedFormats( {\n\t\tallowedFormats,\n\t\tdisableFormats,\n\t} );\n\tconst hasFormats =\n\t\t! adjustedAllowedFormats || adjustedAllowedFormats.length > 0;\n\n\tconst onSelectionChange = useCallback(\n\t\t( start, end ) => {\n\t\t\tconst selection = {};\n\t\t\tconst unset = start === undefined && end === undefined;\n\n\t\t\tconst baseSelection = {\n\t\t\t\tclientId,\n\t\t\t\t[ identifier ? 'attributeKey' : instanceIdKey ]: identifier\n\t\t\t\t\t? identifier\n\t\t\t\t\t: instanceId,\n\t\t\t};\n\n\t\t\tif ( typeof start === 'number' || unset ) {\n\t\t\t\t// If we are only setting the start (or the end below), which\n\t\t\t\t// means a partial selection, and we're not updating a selection\n\t\t\t\t// with the same client ID, abort. This means the selected block\n\t\t\t\t// is a parent block.\n\t\t\t\tif (\n\t\t\t\t\tend === undefined &&\n\t\t\t\t\tgetBlockRootClientId( clientId ) !==\n\t\t\t\t\t\tgetBlockRootClientId( getSelectionEnd().clientId )\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tselection.start = {\n\t\t\t\t\t...baseSelection,\n\t\t\t\t\toffset: start,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif ( typeof end === 'number' || unset ) {\n\t\t\t\tif (\n\t\t\t\t\tstart === undefined &&\n\t\t\t\t\tgetBlockRootClientId( clientId ) !==\n\t\t\t\t\t\tgetBlockRootClientId( getSelectionStart().clientId )\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tselection.end = {\n\t\t\t\t\t...baseSelection,\n\t\t\t\t\toffset: end,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tselectionChange( selection );\n\t\t},\n\t\t[\n\t\t\tclientId,\n\t\t\tgetBlockRootClientId,\n\t\t\tgetSelectionEnd,\n\t\t\tgetSelectionStart,\n\t\t\tidentifier,\n\t\t\tinstanceId,\n\t\t\tselectionChange,\n\t\t]\n\t);\n\n\tconst {\n\t\tformatTypes,\n\t\tprepareHandlers,\n\t\tvalueHandlers,\n\t\tchangeHandlers,\n\t\tdependencies,\n\t} = useFormatTypes( {\n\t\tclientId,\n\t\tidentifier,\n\t\tallowedFormats: adjustedAllowedFormats,\n\t\twithoutInteractiveFormatting,\n\t\tdisableNoneEssentialFormatting: isContentOnlyWriteMode,\n\t} );\n\n\tfunction addEditorOnlyFormats( value ) {\n\t\treturn valueHandlers.reduce(\n\t\t\t( accumulator, fn ) => fn( accumulator, value.text ),\n\t\t\tvalue.formats\n\t\t);\n\t}\n\n\tfunction removeEditorOnlyFormats( value ) {\n\t\tformatTypes.forEach( ( formatType ) => {\n\t\t\t// Remove formats created by prepareEditableTree, because they are editor only.\n\t\t\tif ( formatType.__experimentalCreatePrepareEditableTree ) {\n\t\t\t\tvalue = removeFormat(\n\t\t\t\t\tvalue,\n\t\t\t\t\tformatType.name,\n\t\t\t\t\t0,\n\t\t\t\t\tvalue.text.length\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t\treturn value.formats;\n\t}\n\n\tfunction addInvisibleFormats( value ) {\n\t\treturn prepareHandlers.reduce(\n\t\t\t( accumulator, fn ) => fn( accumulator, value.text ),\n\t\t\tvalue.formats\n\t\t);\n\t}\n\n\tconst {\n\t\tvalue,\n\t\tgetValue,\n\t\tonChange,\n\t\tref: richTextRef,\n\t} = useRichText( {\n\t\tvalue: adjustedValue,\n\t\tonChange( html, { __unstableFormats, __unstableText } ) {\n\t\t\tadjustedOnChange( html );\n\t\t\tObject.values( changeHandlers ).forEach( ( changeHandler ) => {\n\t\t\t\tchangeHandler( __unstableFormats, __unstableText );\n\t\t\t} );\n\t\t},\n\t\tselectionStart,\n\t\tselectionEnd,\n\t\tonSelectionChange,\n\t\tplaceholder: bindingsPlaceholder || placeholder,\n\t\t__unstableIsSelected: isSelected,\n\t\t__unstableDisableFormats: disableFormats,\n\t\tpreserveWhiteSpace,\n\t\t__unstableDependencies: [ ...dependencies, tagName ],\n\t\t__unstableAfterParse: addEditorOnlyFormats,\n\t\t__unstableBeforeSerialize: removeEditorOnlyFormats,\n\t\t__unstableAddInvisibleFormats: addInvisibleFormats,\n\t} );\n\tconst autocompleteProps = useBlockEditorAutocompleteProps( {\n\t\tonReplace,\n\t\tcompleters: autocompleters,\n\t\trecord: value,\n\t\tonChange,\n\t} );\n\n\tuseMarkPersistent( { html: adjustedValue, value } );\n\n\tconst keyboardShortcuts = useRef( new Set() );\n\tconst inputEvents = useRef( new Set() );\n\n\tfunction onFocus() {\n\t\tanchorRef.current?.focus();\n\t}\n\n\tconst TagName = tagName;\n\treturn (\n\t\t<>\n\t\t\t{ isSelected && (\n\t\t\t\t<keyboardShortcutContext.Provider value={ keyboardShortcuts }>\n\t\t\t\t\t<inputEventContext.Provider value={ inputEvents }>\n\t\t\t\t\t\t<Popover.__unstableSlotNameProvider value=\"__unstable-block-tools-after\">\n\t\t\t\t\t\t\t{ children &&\n\t\t\t\t\t\t\t\tchildren( { value, onChange, onFocus } ) }\n\n\t\t\t\t\t\t\t<FormatEdit\n\t\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\tformatTypes={ formatTypes }\n\t\t\t\t\t\t\t\tforwardedRef={ anchorRef }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Popover.__unstableSlotNameProvider>\n\t\t\t\t\t</inputEventContext.Provider>\n\t\t\t\t</keyboardShortcutContext.Provider>\n\t\t\t) }\n\t\t\t{ isSelected && hasFormats && (\n\t\t\t\t<FormatToolbarContainer\n\t\t\t\t\tinline={ inlineToolbar }\n\t\t\t\t\teditableContentElement={ anchorRef.current }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<TagName\n\t\t\t\t// Overridable props.\n\t\t\t\trole=\"textbox\"\n\t\t\t\taria-multiline={ ! disableLineBreaks }\n\t\t\t\taria-readonly={ shouldDisableEditing }\n\t\t\t\t{ ...props }\n\t\t\t\t// Unset draggable (coming from block props) for contentEditable\n\t\t\t\t// elements because it will interfere with multi block selection\n\t\t\t\t// when the contentEditable and draggable elements are the same\n\t\t\t\t// element.\n\t\t\t\tdraggable={ undefined }\n\t\t\t\taria-label={\n\t\t\t\t\tbindingsLabel || props[ 'aria-label' ] || placeholder\n\t\t\t\t}\n\t\t\t\t{ ...autocompleteProps }\n\t\t\t\tref={ useMergeRefs( [\n\t\t\t\t\t// Rich text ref must be first because its focus listener\n\t\t\t\t\t// must be set up before any other ref calls .focus() on\n\t\t\t\t\t// mount.\n\t\t\t\t\trichTextRef,\n\t\t\t\t\tforwardedRef,\n\t\t\t\t\tautocompleteProps.ref,\n\t\t\t\t\tprops.ref,\n\t\t\t\t\tuseEventListeners( {\n\t\t\t\t\t\tregistry,\n\t\t\t\t\t\tgetValue,\n\t\t\t\t\t\tonChange,\n\t\t\t\t\t\t__unstableAllowPrefixTransformations,\n\t\t\t\t\t\tformatTypes,\n\t\t\t\t\t\tonReplace,\n\t\t\t\t\t\tselectionChange,\n\t\t\t\t\t\tisSelected,\n\t\t\t\t\t\tdisableFormats,\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\ttagName,\n\t\t\t\t\t\tonSplit,\n\t\t\t\t\t\t__unstableEmbedURLOnPaste,\n\t\t\t\t\t\tpastePlainText,\n\t\t\t\t\t\tonMerge,\n\t\t\t\t\t\tonRemove,\n\t\t\t\t\t\tremoveEditorOnlyFormats,\n\t\t\t\t\t\tdisableLineBreaks,\n\t\t\t\t\t\tonSplitAtEnd,\n\t\t\t\t\t\tonSplitAtDoubleLineEnd,\n\t\t\t\t\t\tkeyboardShortcuts,\n\t\t\t\t\t\tinputEvents,\n\t\t\t\t\t} ),\n\t\t\t\t\tanchorRef,\n\t\t\t\t] ) }\n\t\t\t\tcontentEditable={ ! shouldDisableEditing }\n\t\t\t\tsuppressContentEditableWarning\n\t\t\t\tclassName={ clsx(\n\t\t\t\t\t'block-editor-rich-text__editable',\n\t\t\t\t\tprops.className,\n\t\t\t\t\t'rich-text'\n\t\t\t\t) }\n\t\t\t\t// Setting tabIndex to 0 is unnecessary, the element is already\n\t\t\t\t// focusable because it's contentEditable. This also fixes a\n\t\t\t\t// Safari bug where it's not possible to Shift+Click multi\n\t\t\t\t// select blocks when Shift Clicking into an element with\n\t\t\t\t// tabIndex because Safari will focus the element. However,\n\t\t\t\t// Safari will correctly ignore nested contentEditable elements.\n\t\t\t\ttabIndex={\n\t\t\t\t\tprops.tabIndex === 0 && ! shouldDisableEditing\n\t\t\t\t\t\t? null\n\t\t\t\t\t\t: props.tabIndex\n\t\t\t\t}\n\t\t\t\tdata-wp-block-attribute-key={ identifier }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\n// This is the private API for the RichText component.\n// It allows access to all props, not just the public ones.\nexport const PrivateRichText = withDeprecations(\n\tforwardRef( RichTextWrapper )\n);\n\nPrivateRichText.Content = Content;\nPrivateRichText.isEmpty = ( value ) => {\n\treturn ! value || value.length === 0;\n};\n\n// This is the public API for the RichText component.\n// We wrap the PrivateRichText component to hide some props from the public API.\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/rich-text/README.md\n */\nconst PublicForwardedRichTextContainer = forwardRef( ( props, ref ) => {\n\tconst context = useBlockEditContext();\n\tconst isPreviewMode = context[ isPreviewModeKey ];\n\n\tif ( isPreviewMode ) {\n\t\t// Remove all non-content props.\n\t\tconst {\n\t\t\tchildren,\n\t\t\ttagName: Tag = 'div',\n\t\t\tvalue,\n\t\t\tonChange,\n\t\t\tisSelected,\n\t\t\tmultiline,\n\t\t\tinlineToolbar,\n\t\t\twrapperClassName,\n\t\t\tautocompleters,\n\t\t\tonReplace,\n\t\t\tplaceholder,\n\t\t\tallowedFormats,\n\t\t\twithoutInteractiveFormatting,\n\t\t\tonRemove,\n\t\t\tonMerge,\n\t\t\tonSplit,\n\t\t\t__unstableOnSplitAtEnd,\n\t\t\t__unstableOnSplitAtDoubleLineEnd,\n\t\t\tidentifier,\n\t\t\tpreserveWhiteSpace,\n\t\t\t__unstablePastePlainText,\n\t\t\t__unstableEmbedURLOnPaste,\n\t\t\t__unstableDisableFormats,\n\t\t\tdisableLineBreaks,\n\t\t\t__unstableAllowPrefixTransformations,\n\t\t\treadOnly,\n\t\t\t...contentProps\n\t\t} = removeNativeProps( props );\n\t\treturn (\n\t\t\t<Tag\n\t\t\t\t{ ...contentProps }\n\t\t\t\tdangerouslySetInnerHTML={ {\n\t\t\t\t\t__html: valueToHTMLString( value, multiline ),\n\t\t\t\t} }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn <PrivateRichText ref={ ref } { ...props } readOnly={ false } />;\n} );\n\nPublicForwardedRichTextContainer.Content = Content;\nPublicForwardedRichTextContainer.isEmpty = ( value ) => {\n\treturn ! value || value.length === 0;\n};\n\nexport default PublicForwardedRichTextContainer;\nexport { RichTextShortcut } from './shortcut';\nexport { RichTextToolbarButton } from './toolbar-button';\nexport { __unstableRichTextInputEvent } from './input-event';\n"],"mappings":"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","ignoreList":[]}
@@ -5,7 +5,7 @@ import { useDispatch, useSelect, useRegistry } from '@wordpress/data';
5
5
  import { useCallback, useState } from '@wordpress/element';
6
6
  import { useThrottle, __experimentalUseDropZone as useDropZone } from '@wordpress/compose';
7
7
  import { isRTL } from '@wordpress/i18n';
8
- import { isUnmodifiedDefaultBlock as getIsUnmodifiedDefaultBlock, store as blocksStore } from '@wordpress/blocks';
8
+ import { hasBlockSupport, isUnmodifiedDefaultBlock as getIsUnmodifiedDefaultBlock, store as blocksStore } from '@wordpress/blocks';
9
9
 
10
10
  /**
11
11
  * Internal dependencies
@@ -284,7 +284,11 @@ export default function useBlockDropZone({
284
284
  if (isZoomOut() && sectionRootClientId !== targetRootClientId) {
285
285
  return;
286
286
  }
287
- const blocks = getBlocks(targetRootClientId);
287
+ const blocks = getBlocks(targetRootClientId)
288
+ // Filter out blocks that are hidden
289
+ .filter(block => {
290
+ return !(hasBlockSupport(block.name, 'blockVisibility', true) && block.attributes?.metadata?.blockVisibility === false);
291
+ });
288
292
 
289
293
  // The block list is empty, don't show the insertion point but still allow dropping.
290
294
  if (blocks.length === 0) {