@wordpress/block-editor 14.3.1 → 14.3.3

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 (137) hide show
  1. package/README.md +2 -2
  2. package/build/components/block-heading-level-dropdown/index.js +3 -1
  3. package/build/components/block-heading-level-dropdown/index.js.map +1 -1
  4. package/build/components/block-list/block.js +27 -4
  5. package/build/components/block-list/block.js.map +1 -1
  6. package/build/components/block-list/use-block-props/use-focus-first-element.js +0 -1
  7. package/build/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  8. package/build/components/block-list/use-block-props/use-zoom-out-mode-exit.js +9 -4
  9. package/build/components/block-list/use-block-props/use-zoom-out-mode-exit.js.map +1 -1
  10. package/build/components/block-list/zoom-out-separator.js +18 -1
  11. package/build/components/block-list/zoom-out-separator.js.map +1 -1
  12. package/build/components/block-switcher/utils.js +1 -1
  13. package/build/components/block-switcher/utils.js.map +1 -1
  14. package/build/components/block-tools/zoom-out-toolbar.js +5 -2
  15. package/build/components/block-tools/zoom-out-toolbar.js.map +1 -1
  16. package/build/components/block-variation-transforms/index.js +12 -6
  17. package/build/components/block-variation-transforms/index.js.map +1 -1
  18. package/build/components/rich-text/event-listeners/paste-handler.js +2 -13
  19. package/build/components/rich-text/event-listeners/paste-handler.js.map +1 -1
  20. package/build/components/rich-text/index.js +34 -20
  21. package/build/components/rich-text/index.js.map +1 -1
  22. package/build/components/tool-selector/index.js +2 -1
  23. package/build/components/tool-selector/index.js.map +1 -1
  24. package/build/components/writing-flow/index.js +1 -2
  25. package/build/components/writing-flow/index.js.map +1 -1
  26. package/build/components/writing-flow/use-arrow-nav.js +1 -4
  27. package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
  28. package/build/components/writing-flow/use-input.js +1 -31
  29. package/build/components/writing-flow/use-input.js.map +1 -1
  30. package/build/components/writing-flow/use-select-all.js +1 -14
  31. package/build/components/writing-flow/use-select-all.js.map +1 -1
  32. package/build/components/writing-flow/use-selection-observer.js +2 -6
  33. package/build/components/writing-flow/use-selection-observer.js.map +1 -1
  34. package/build/components/writing-flow/utils.js +0 -27
  35. package/build/components/writing-flow/utils.js.map +1 -1
  36. package/build/hooks/layout.js +12 -8
  37. package/build/hooks/layout.js.map +1 -1
  38. package/build/hooks/use-bindings-attributes.js +22 -28
  39. package/build/hooks/use-bindings-attributes.js.map +1 -1
  40. package/build/hooks/use-zoom-out.js +20 -23
  41. package/build/hooks/use-zoom-out.js.map +1 -1
  42. package/build/store/private-actions.js +25 -0
  43. package/build/store/private-actions.js.map +1 -1
  44. package/build/store/private-selectors.js +22 -0
  45. package/build/store/private-selectors.js.map +1 -1
  46. package/build/store/reducer.js +21 -1
  47. package/build/store/reducer.js.map +1 -1
  48. package/build/store/selectors.js +12 -5
  49. package/build/store/selectors.js.map +1 -1
  50. package/build-module/components/block-heading-level-dropdown/index.js +3 -1
  51. package/build-module/components/block-heading-level-dropdown/index.js.map +1 -1
  52. package/build-module/components/block-list/block.js +28 -7
  53. package/build-module/components/block-list/block.js.map +1 -1
  54. package/build-module/components/block-list/use-block-props/use-focus-first-element.js +0 -1
  55. package/build-module/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  56. package/build-module/components/block-list/use-block-props/use-zoom-out-mode-exit.js +9 -4
  57. package/build-module/components/block-list/use-block-props/use-zoom-out-mode-exit.js.map +1 -1
  58. package/build-module/components/block-list/zoom-out-separator.js +18 -1
  59. package/build-module/components/block-list/zoom-out-separator.js.map +1 -1
  60. package/build-module/components/block-switcher/utils.js +1 -1
  61. package/build-module/components/block-switcher/utils.js.map +1 -1
  62. package/build-module/components/block-tools/zoom-out-toolbar.js +5 -2
  63. package/build-module/components/block-tools/zoom-out-toolbar.js.map +1 -1
  64. package/build-module/components/block-variation-transforms/index.js +12 -6
  65. package/build-module/components/block-variation-transforms/index.js.map +1 -1
  66. package/build-module/components/rich-text/event-listeners/paste-handler.js +2 -13
  67. package/build-module/components/rich-text/event-listeners/paste-handler.js.map +1 -1
  68. package/build-module/components/rich-text/index.js +34 -20
  69. package/build-module/components/rich-text/index.js.map +1 -1
  70. package/build-module/components/tool-selector/index.js +2 -1
  71. package/build-module/components/tool-selector/index.js.map +1 -1
  72. package/build-module/components/writing-flow/index.js +1 -2
  73. package/build-module/components/writing-flow/index.js.map +1 -1
  74. package/build-module/components/writing-flow/use-arrow-nav.js +1 -4
  75. package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
  76. package/build-module/components/writing-flow/use-input.js +1 -31
  77. package/build-module/components/writing-flow/use-input.js.map +1 -1
  78. package/build-module/components/writing-flow/use-select-all.js +1 -14
  79. package/build-module/components/writing-flow/use-select-all.js.map +1 -1
  80. package/build-module/components/writing-flow/use-selection-observer.js +2 -6
  81. package/build-module/components/writing-flow/use-selection-observer.js.map +1 -1
  82. package/build-module/components/writing-flow/utils.js +0 -26
  83. package/build-module/components/writing-flow/utils.js.map +1 -1
  84. package/build-module/hooks/layout.js +13 -9
  85. package/build-module/hooks/layout.js.map +1 -1
  86. package/build-module/hooks/use-bindings-attributes.js +22 -28
  87. package/build-module/hooks/use-bindings-attributes.js.map +1 -1
  88. package/build-module/hooks/use-zoom-out.js +20 -23
  89. package/build-module/hooks/use-zoom-out.js.map +1 -1
  90. package/build-module/store/private-actions.js +23 -0
  91. package/build-module/store/private-actions.js.map +1 -1
  92. package/build-module/store/private-selectors.js +20 -0
  93. package/build-module/store/private-selectors.js.map +1 -1
  94. package/build-module/store/reducer.js +20 -1
  95. package/build-module/store/reducer.js.map +1 -1
  96. package/build-module/store/selectors.js +12 -5
  97. package/build-module/store/selectors.js.map +1 -1
  98. package/build-style/content-rtl.css +10 -0
  99. package/build-style/content.css +10 -0
  100. package/build-style/style-rtl.css +4 -0
  101. package/build-style/style.css +4 -0
  102. package/package.json +20 -20
  103. package/src/components/block-heading-level-dropdown/index.js +7 -1
  104. package/src/components/block-list/block.js +47 -11
  105. package/src/components/block-list/content.scss +12 -0
  106. package/src/components/block-list/use-block-props/use-focus-first-element.js +0 -1
  107. package/src/components/block-list/use-block-props/use-zoom-out-mode-exit.js +7 -3
  108. package/src/components/block-list/zoom-out-separator.js +14 -1
  109. package/src/components/block-switcher/test/use-transformed.patterns.js +3 -3
  110. package/src/components/block-switcher/test/utils.js +3 -3
  111. package/src/components/block-switcher/utils.js +1 -1
  112. package/src/components/block-toolbar/style.scss +7 -0
  113. package/src/components/block-tools/zoom-out-toolbar.js +5 -2
  114. package/src/components/block-variation-transforms/index.js +13 -4
  115. package/src/components/rich-text/event-listeners/paste-handler.js +2 -7
  116. package/src/components/rich-text/index.js +36 -23
  117. package/src/components/tool-selector/index.js +4 -1
  118. package/src/components/writing-flow/index.js +0 -2
  119. package/src/components/writing-flow/use-arrow-nav.js +2 -9
  120. package/src/components/writing-flow/use-input.js +1 -36
  121. package/src/components/writing-flow/use-select-all.js +1 -18
  122. package/src/components/writing-flow/use-selection-observer.js +3 -14
  123. package/src/components/writing-flow/utils.js +0 -30
  124. package/src/hooks/layout.js +17 -12
  125. package/src/hooks/use-bindings-attributes.js +26 -32
  126. package/src/hooks/use-zoom-out.js +21 -27
  127. package/src/store/private-actions.js +23 -0
  128. package/src/store/private-selectors.js +20 -0
  129. package/src/store/reducer.js +20 -0
  130. package/src/store/selectors.js +13 -8
  131. package/src/store/test/private-selectors.js +2 -2
  132. package/src/store/test/selectors.js +10 -6
  133. package/build/components/writing-flow/use-event-redirect.js +0 -66
  134. package/build/components/writing-flow/use-event-redirect.js.map +0 -1
  135. package/build-module/components/writing-flow/use-event-redirect.js +0 -60
  136. package/build-module/components/writing-flow/use-event-redirect.js.map +0 -1
  137. package/src/components/writing-flow/use-event-redirect.js +0 -72
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_icons","_components","_data","_blocks","_i18n","_store","_blockDraggable","_blockMover","_shuffle","_navigableToolbar","_jsxRuntime","ZoomOutToolbar","clientId","__unstableContentRef","selected","useSelect","select","getBlock","hasBlockMovingClientId","getNextBlockClientId","getPreviousBlockClientId","canRemoveBlock","canMoveBlock","getSettings","blockEditorStore","__experimentalSetIsInserterOpened","setIsInserterOpened","getBlockType","blocksStore","name","blockType","isBlockTemplatePart","isNextBlockTemplatePart","nextClientId","nextName","nextBlockType","isPrevBlockTemplatePart","prevClientId","prevName","prevBlockType","blockMovingMode","canRemove","canMove","removeBlock","__unstableSetEditorMode","useDispatch","classNames","clsx","showBlockDraggable","jsxs","default","className","__","variant","orientation","children","jsx","clientIds","draggableProps","Button","icon","dragHandle","label","iconSize","size","tabIndex","hideDragHandle","isBlockMoverUpButtonDisabled","isBlockMoverDownButtonDisabled","as","ToolbarButton","edit","onClick","current","focus","trash"],"sources":["@wordpress/block-editor/src/components/block-tools/zoom-out-toolbar.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { dragHandle, trash, edit } from '@wordpress/icons';\nimport { Button, ToolbarButton } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport BlockDraggable from '../block-draggable';\nimport BlockMover from '../block-mover';\nimport Shuffle from '../block-toolbar/shuffle';\nimport NavigableToolbar from '../navigable-toolbar';\n\nexport default function ZoomOutToolbar( { clientId, __unstableContentRef } ) {\n\tconst selected = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlock,\n\t\t\t\thasBlockMovingClientId,\n\t\t\t\tgetNextBlockClientId,\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tcanRemoveBlock,\n\t\t\t\tcanMoveBlock,\n\t\t\t\tgetSettings,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst { __experimentalSetIsInserterOpened: setIsInserterOpened } =\n\t\t\t\tgetSettings();\n\n\t\t\tconst { getBlockType } = select( blocksStore );\n\t\t\tconst { name } = getBlock( clientId );\n\t\t\tconst blockType = getBlockType( name );\n\t\t\tconst isBlockTemplatePart =\n\t\t\t\tblockType?.name === 'core/template-part';\n\n\t\t\tlet isNextBlockTemplatePart = false;\n\t\t\tconst nextClientId = getNextBlockClientId();\n\t\t\tif ( nextClientId ) {\n\t\t\t\tconst { name: nextName } = getBlock( nextClientId );\n\t\t\t\tconst nextBlockType = getBlockType( nextName );\n\t\t\t\tisNextBlockTemplatePart =\n\t\t\t\t\tnextBlockType?.name === 'core/template-part';\n\t\t\t}\n\n\t\t\tlet isPrevBlockTemplatePart = false;\n\t\t\tconst prevClientId = getPreviousBlockClientId();\n\t\t\tif ( prevClientId ) {\n\t\t\t\tconst { name: prevName } = getBlock( prevClientId );\n\t\t\t\tconst prevBlockType = getBlockType( prevName );\n\t\t\t\tisPrevBlockTemplatePart =\n\t\t\t\t\tprevBlockType?.name === 'core/template-part';\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tblockMovingMode: hasBlockMovingClientId(),\n\t\t\t\tisBlockTemplatePart,\n\t\t\t\tisNextBlockTemplatePart,\n\t\t\t\tisPrevBlockTemplatePart,\n\t\t\t\tcanRemove: canRemoveBlock( clientId ),\n\t\t\t\tcanMove: canMoveBlock( clientId ),\n\t\t\t\tsetIsInserterOpened,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst {\n\t\tblockMovingMode,\n\t\tisBlockTemplatePart,\n\t\tisNextBlockTemplatePart,\n\t\tisPrevBlockTemplatePart,\n\t\tcanRemove,\n\t\tcanMove,\n\t\tsetIsInserterOpened,\n\t} = selected;\n\n\tconst { removeBlock, __unstableSetEditorMode } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst classNames = clsx( 'zoom-out-toolbar', {\n\t\t'is-block-moving-mode': !! blockMovingMode,\n\t} );\n\n\tconst showBlockDraggable = canMove && ! isBlockTemplatePart;\n\n\treturn (\n\t\t<NavigableToolbar\n\t\t\tclassName={ classNames }\n\t\t\t/* translators: accessibility text for the block toolbar */\n\t\t\taria-label={ __( 'Block tools' ) }\n\t\t\t// The variant is applied as \"toolbar\" when undefined, which is the black border style of the dropdown from the toolbar popover.\n\t\t\tvariant=\"unstyled\"\n\t\t\torientation=\"vertical\"\n\t\t>\n\t\t\t{ showBlockDraggable && (\n\t\t\t\t<BlockDraggable clientIds={ [ clientId ] }>\n\t\t\t\t\t{ ( draggableProps ) => (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ticon={ dragHandle }\n\t\t\t\t\t\t\tclassName=\"block-selection-button_drag-handle zoom-out-toolbar-button\"\n\t\t\t\t\t\t\tlabel={ __( 'Drag' ) }\n\t\t\t\t\t\t\ticonSize={ 24 }\n\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t// Should not be able to tab to drag handle as this\n\t\t\t\t\t\t\t// button can only be used with a pointer device.\n\t\t\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t\t\t{ ...draggableProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</BlockDraggable>\n\t\t\t) }\n\t\t\t{ ! isBlockTemplatePart && (\n\t\t\t\t<BlockMover\n\t\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\t\thideDragHandle\n\t\t\t\t\tisBlockMoverUpButtonDisabled={ isPrevBlockTemplatePart }\n\t\t\t\t\tisBlockMoverDownButtonDisabled={ isNextBlockTemplatePart }\n\t\t\t\t\ticonSize={ 24 }\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ canMove && canRemove && (\n\t\t\t\t<Shuffle clientId={ clientId } as={ ToolbarButton } />\n\t\t\t) }\n\n\t\t\t{ ! isBlockTemplatePart && (\n\t\t\t\t<ToolbarButton\n\t\t\t\t\tclassName=\"zoom-out-toolbar-button\"\n\t\t\t\t\ticon={ edit }\n\t\t\t\t\tlabel={ __( 'Edit' ) }\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t// Setting may be undefined.\n\t\t\t\t\t\tif ( typeof setIsInserterOpened === 'function' ) {\n\t\t\t\t\t\t\tsetIsInserterOpened( false );\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__unstableSetEditorMode( 'edit' );\n\t\t\t\t\t\t__unstableContentRef.current?.focus();\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t{ canRemove && ! isBlockTemplatePart && (\n\t\t\t\t<ToolbarButton\n\t\t\t\t\tclassName=\"zoom-out-toolbar-button\"\n\t\t\t\t\ticon={ trash }\n\t\t\t\t\tlabel={ __( 'Delete' ) }\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tremoveBlock( clientId );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</NavigableToolbar>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_icons","_components","_data","_blocks","_i18n","_store","_blockDraggable","_blockMover","_shuffle","_navigableToolbar","_lockUnlock","_jsxRuntime","ZoomOutToolbar","clientId","__unstableContentRef","selected","useSelect","select","getBlock","hasBlockMovingClientId","getNextBlockClientId","getPreviousBlockClientId","canRemoveBlock","canMoveBlock","getSettings","blockEditorStore","__experimentalSetIsInserterOpened","setIsInserterOpened","getBlockType","blocksStore","name","blockType","isBlockTemplatePart","isNextBlockTemplatePart","nextClientId","nextName","nextBlockType","isPrevBlockTemplatePart","prevClientId","prevName","prevBlockType","blockMovingMode","canRemove","canMove","removeBlock","__unstableSetEditorMode","resetZoomLevel","unlock","useDispatch","classNames","clsx","showBlockDraggable","jsxs","default","className","__","variant","orientation","children","jsx","clientIds","draggableProps","Button","icon","dragHandle","label","iconSize","size","tabIndex","hideDragHandle","isBlockMoverUpButtonDisabled","isBlockMoverDownButtonDisabled","as","ToolbarButton","edit","onClick","current","focus","trash"],"sources":["@wordpress/block-editor/src/components/block-tools/zoom-out-toolbar.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { dragHandle, trash, edit } from '@wordpress/icons';\nimport { Button, ToolbarButton } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport BlockDraggable from '../block-draggable';\nimport BlockMover from '../block-mover';\nimport Shuffle from '../block-toolbar/shuffle';\nimport NavigableToolbar from '../navigable-toolbar';\nimport { unlock } from '../../lock-unlock';\n\nexport default function ZoomOutToolbar( { clientId, __unstableContentRef } ) {\n\tconst selected = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlock,\n\t\t\t\thasBlockMovingClientId,\n\t\t\t\tgetNextBlockClientId,\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tcanRemoveBlock,\n\t\t\t\tcanMoveBlock,\n\t\t\t\tgetSettings,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst { __experimentalSetIsInserterOpened: setIsInserterOpened } =\n\t\t\t\tgetSettings();\n\n\t\t\tconst { getBlockType } = select( blocksStore );\n\t\t\tconst { name } = getBlock( clientId );\n\t\t\tconst blockType = getBlockType( name );\n\t\t\tconst isBlockTemplatePart =\n\t\t\t\tblockType?.name === 'core/template-part';\n\n\t\t\tlet isNextBlockTemplatePart = false;\n\t\t\tconst nextClientId = getNextBlockClientId();\n\t\t\tif ( nextClientId ) {\n\t\t\t\tconst { name: nextName } = getBlock( nextClientId );\n\t\t\t\tconst nextBlockType = getBlockType( nextName );\n\t\t\t\tisNextBlockTemplatePart =\n\t\t\t\t\tnextBlockType?.name === 'core/template-part';\n\t\t\t}\n\n\t\t\tlet isPrevBlockTemplatePart = false;\n\t\t\tconst prevClientId = getPreviousBlockClientId();\n\t\t\tif ( prevClientId ) {\n\t\t\t\tconst { name: prevName } = getBlock( prevClientId );\n\t\t\t\tconst prevBlockType = getBlockType( prevName );\n\t\t\t\tisPrevBlockTemplatePart =\n\t\t\t\t\tprevBlockType?.name === 'core/template-part';\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tblockMovingMode: hasBlockMovingClientId(),\n\t\t\t\tisBlockTemplatePart,\n\t\t\t\tisNextBlockTemplatePart,\n\t\t\t\tisPrevBlockTemplatePart,\n\t\t\t\tcanRemove: canRemoveBlock( clientId ),\n\t\t\t\tcanMove: canMoveBlock( clientId ),\n\t\t\t\tsetIsInserterOpened,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst {\n\t\tblockMovingMode,\n\t\tisBlockTemplatePart,\n\t\tisNextBlockTemplatePart,\n\t\tisPrevBlockTemplatePart,\n\t\tcanRemove,\n\t\tcanMove,\n\t\tsetIsInserterOpened,\n\t} = selected;\n\n\tconst { removeBlock, __unstableSetEditorMode, resetZoomLevel } = unlock(\n\t\tuseDispatch( blockEditorStore )\n\t);\n\n\tconst classNames = clsx( 'zoom-out-toolbar', {\n\t\t'is-block-moving-mode': !! blockMovingMode,\n\t} );\n\n\tconst showBlockDraggable = canMove && ! isBlockTemplatePart;\n\n\treturn (\n\t\t<NavigableToolbar\n\t\t\tclassName={ classNames }\n\t\t\t/* translators: accessibility text for the block toolbar */\n\t\t\taria-label={ __( 'Block tools' ) }\n\t\t\t// The variant is applied as \"toolbar\" when undefined, which is the black border style of the dropdown from the toolbar popover.\n\t\t\tvariant=\"unstyled\"\n\t\t\torientation=\"vertical\"\n\t\t>\n\t\t\t{ showBlockDraggable && (\n\t\t\t\t<BlockDraggable clientIds={ [ clientId ] }>\n\t\t\t\t\t{ ( draggableProps ) => (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ticon={ dragHandle }\n\t\t\t\t\t\t\tclassName=\"block-selection-button_drag-handle zoom-out-toolbar-button\"\n\t\t\t\t\t\t\tlabel={ __( 'Drag' ) }\n\t\t\t\t\t\t\ticonSize={ 24 }\n\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t// Should not be able to tab to drag handle as this\n\t\t\t\t\t\t\t// button can only be used with a pointer device.\n\t\t\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t\t\t{ ...draggableProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</BlockDraggable>\n\t\t\t) }\n\t\t\t{ ! isBlockTemplatePart && (\n\t\t\t\t<BlockMover\n\t\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\t\thideDragHandle\n\t\t\t\t\tisBlockMoverUpButtonDisabled={ isPrevBlockTemplatePart }\n\t\t\t\t\tisBlockMoverDownButtonDisabled={ isNextBlockTemplatePart }\n\t\t\t\t\ticonSize={ 24 }\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ canMove && canRemove && (\n\t\t\t\t<Shuffle clientId={ clientId } as={ ToolbarButton } />\n\t\t\t) }\n\n\t\t\t{ ! isBlockTemplatePart && (\n\t\t\t\t<ToolbarButton\n\t\t\t\t\tclassName=\"zoom-out-toolbar-button\"\n\t\t\t\t\ticon={ edit }\n\t\t\t\t\tlabel={ __( 'Edit' ) }\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t// Setting may be undefined.\n\t\t\t\t\t\tif ( typeof setIsInserterOpened === 'function' ) {\n\t\t\t\t\t\t\tsetIsInserterOpened( false );\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__unstableSetEditorMode( 'edit' );\n\t\t\t\t\t\tresetZoomLevel();\n\t\t\t\t\t\t__unstableContentRef.current?.focus();\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t{ canRemove && ! isBlockTemplatePart && (\n\t\t\t\t<ToolbarButton\n\t\t\t\t\tclassName=\"zoom-out-toolbar-button\"\n\t\t\t\t\ticon={ trash }\n\t\t\t\t\tlabel={ __( 'Delete' ) }\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tremoveBlock( clientId );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</NavigableToolbar>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -13,6 +13,7 @@ var _element = require("@wordpress/element");
13
13
  var _icons = require("@wordpress/icons");
14
14
  var _blockIcon = _interopRequireDefault(require("../block-icon"));
15
15
  var _store = require("../../store");
16
+ var _lockUnlock = require("../../lock-unlock");
16
17
  var _jsxRuntime = require("react/jsx-runtime");
17
18
  /**
18
19
  * WordPress dependencies
@@ -124,7 +125,8 @@ function __experimentalBlockVariationTransforms({
124
125
  } = (0, _data.useDispatch)(_store.store);
125
126
  const {
126
127
  activeBlockVariation,
127
- variations
128
+ variations,
129
+ isContentOnly
128
130
  } = (0, _data.useSelect)(select => {
129
131
  const {
130
132
  getActiveBlockVariation,
@@ -132,12 +134,18 @@ function __experimentalBlockVariationTransforms({
132
134
  } = select(_blocks.store);
133
135
  const {
134
136
  getBlockName,
135
- getBlockAttributes
137
+ getBlockAttributes,
138
+ getBlockEditingMode
136
139
  } = select(_store.store);
137
140
  const name = blockClientId && getBlockName(blockClientId);
141
+ const {
142
+ hasContentRoleAttribute
143
+ } = (0, _lockUnlock.unlock)(select(_blocks.store));
144
+ const isContentBlock = hasContentRoleAttribute(name);
138
145
  return {
139
146
  activeBlockVariation: getActiveBlockVariation(name, getBlockAttributes(blockClientId)),
140
- variations: name && getBlockVariations(name, 'transform')
147
+ variations: name && getBlockVariations(name, 'transform'),
148
+ isContentOnly: getBlockEditingMode(blockClientId) === 'contentOnly' && !isContentBlock
141
149
  };
142
150
  }, [blockClientId]);
143
151
  const selectedValue = activeBlockVariation?.name;
@@ -162,9 +170,7 @@ function __experimentalBlockVariationTransforms({
162
170
  }) => name === variationName).attributes
163
171
  });
164
172
  };
165
-
166
- // Skip rendering if there are no variations
167
- if (!variations?.length) {
173
+ if (!variations?.length || isContentOnly) {
168
174
  return null;
169
175
  }
170
176
  const baseClass = 'block-editor-block-variation-transforms';
@@ -1 +1 @@
1
- {"version":3,"names":["_blocks","require","_i18n","_components","_data","_element","_icons","_blockIcon","_interopRequireDefault","_store","_jsxRuntime","VariationsButtons","className","onSelectVariation","selectedValue","variations","jsxs","children","jsx","VisuallyHidden","as","__","map","variation","Button","__next40pxDefaultSize","icon","default","showColors","isPressed","name","label","title","sprintf","onClick","showTooltip","VariationsDropdown","selectOptions","description","value","info","DropdownMenu","text","popoverProps","position","chevronDown","toggleProps","iconPosition","MenuGroup","MenuItemsChoice","choices","onSelect","VariationsToggleGroupControl","__experimentalToggleGroupControl","hideLabelFromVision","onChange","__nextHasNoMarginBottom","__experimentalToggleGroupControlOptionIcon","__experimentalBlockVariationTransforms","blockClientId","updateBlockAttributes","useDispatch","blockEditorStore","activeBlockVariation","useSelect","select","getActiveBlockVariation","getBlockVariations","blocksStore","getBlockName","getBlockAttributes","hasUniqueIcons","useMemo","variationIcons","Set","forEach","add","src","size","length","variationName","find","attributes","baseClass","showButtons","ButtonComponent","Component","_default","exports"],"sources":["@wordpress/block-editor/src/components/block-variation-transforms/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tButton,\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItemsChoice,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOptionIcon as ToggleGroupControlOptionIcon,\n\tVisuallyHidden,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\nimport { chevronDown } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport BlockIcon from '../block-icon';\nimport { store as blockEditorStore } from '../../store';\n\nfunction VariationsButtons( {\n\tclassName,\n\tonSelectVariation,\n\tselectedValue,\n\tvariations,\n} ) {\n\treturn (\n\t\t<fieldset className={ className }>\n\t\t\t<VisuallyHidden as=\"legend\">\n\t\t\t\t{ __( 'Transform to variation' ) }\n\t\t\t</VisuallyHidden>\n\t\t\t{ variations.map( ( variation ) => (\n\t\t\t\t<Button\n\t\t\t\t\t// TODO: Switch to `true` (40px size) if possible\n\t\t\t\t\t__next40pxDefaultSize={ false }\n\t\t\t\t\tkey={ variation.name }\n\t\t\t\t\ticon={ <BlockIcon icon={ variation.icon } showColors /> }\n\t\t\t\t\tisPressed={ selectedValue === variation.name }\n\t\t\t\t\tlabel={\n\t\t\t\t\t\tselectedValue === variation.name\n\t\t\t\t\t\t\t? variation.title\n\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %s: Name of the block variation */\n\t\t\t\t\t\t\t\t\t__( 'Transform to %s' ),\n\t\t\t\t\t\t\t\t\tvariation.title\n\t\t\t\t\t\t\t )\n\t\t\t\t\t}\n\t\t\t\t\tonClick={ () => onSelectVariation( variation.name ) }\n\t\t\t\t\taria-label={ variation.title }\n\t\t\t\t\tshowTooltip\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</fieldset>\n\t);\n}\n\nfunction VariationsDropdown( {\n\tclassName,\n\tonSelectVariation,\n\tselectedValue,\n\tvariations,\n} ) {\n\tconst selectOptions = variations.map(\n\t\t( { name, title, description } ) => ( {\n\t\t\tvalue: name,\n\t\t\tlabel: title,\n\t\t\tinfo: description,\n\t\t} )\n\t);\n\n\treturn (\n\t\t<DropdownMenu\n\t\t\tclassName={ className }\n\t\t\tlabel={ __( 'Transform to variation' ) }\n\t\t\ttext={ __( 'Transform to variation' ) }\n\t\t\tpopoverProps={ {\n\t\t\t\tposition: 'bottom center',\n\t\t\t\tclassName: `${ className }__popover`,\n\t\t\t} }\n\t\t\ticon={ chevronDown }\n\t\t\ttoggleProps={ { iconPosition: 'right' } }\n\t\t>\n\t\t\t{ () => (\n\t\t\t\t<div className={ `${ className }__container` }>\n\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t<MenuItemsChoice\n\t\t\t\t\t\t\tchoices={ selectOptions }\n\t\t\t\t\t\t\tvalue={ selectedValue }\n\t\t\t\t\t\t\tonSelect={ onSelectVariation }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</MenuGroup>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n}\n\nfunction VariationsToggleGroupControl( {\n\tclassName,\n\tonSelectVariation,\n\tselectedValue,\n\tvariations,\n} ) {\n\treturn (\n\t\t<div className={ className }>\n\t\t\t<ToggleGroupControl\n\t\t\t\tlabel={ __( 'Transform to variation' ) }\n\t\t\t\tvalue={ selectedValue }\n\t\t\t\thideLabelFromVision\n\t\t\t\tonChange={ onSelectVariation }\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t>\n\t\t\t\t{ variations.map( ( variation ) => (\n\t\t\t\t\t<ToggleGroupControlOptionIcon\n\t\t\t\t\t\tkey={ variation.name }\n\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t<BlockIcon icon={ variation.icon } showColors />\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvalue={ variation.name }\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tselectedValue === variation.name\n\t\t\t\t\t\t\t\t? variation.title\n\t\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: %s: Name of the block variation */\n\t\t\t\t\t\t\t\t\t\t__( 'Transform to %s' ),\n\t\t\t\t\t\t\t\t\t\tvariation.title\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</ToggleGroupControl>\n\t\t</div>\n\t);\n}\n\nfunction __experimentalBlockVariationTransforms( { blockClientId } ) {\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\tconst { activeBlockVariation, variations } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getActiveBlockVariation, getBlockVariations } =\n\t\t\t\tselect( blocksStore );\n\t\t\tconst { getBlockName, getBlockAttributes } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst name = blockClientId && getBlockName( blockClientId );\n\t\t\treturn {\n\t\t\t\tactiveBlockVariation: getActiveBlockVariation(\n\t\t\t\t\tname,\n\t\t\t\t\tgetBlockAttributes( blockClientId )\n\t\t\t\t),\n\t\t\t\tvariations: name && getBlockVariations( name, 'transform' ),\n\t\t\t};\n\t\t},\n\t\t[ blockClientId ]\n\t);\n\n\tconst selectedValue = activeBlockVariation?.name;\n\n\t// Check if each variation has a unique icon.\n\tconst hasUniqueIcons = useMemo( () => {\n\t\tconst variationIcons = new Set();\n\t\tif ( ! variations ) {\n\t\t\treturn false;\n\t\t}\n\t\tvariations.forEach( ( variation ) => {\n\t\t\tif ( variation.icon ) {\n\t\t\t\tvariationIcons.add( variation.icon?.src || variation.icon );\n\t\t\t}\n\t\t} );\n\t\treturn variationIcons.size === variations.length;\n\t}, [ variations ] );\n\n\tconst onSelectVariation = ( variationName ) => {\n\t\tupdateBlockAttributes( blockClientId, {\n\t\t\t...variations.find( ( { name } ) => name === variationName )\n\t\t\t\t.attributes,\n\t\t} );\n\t};\n\n\t// Skip rendering if there are no variations\n\tif ( ! variations?.length ) {\n\t\treturn null;\n\t}\n\n\tconst baseClass = 'block-editor-block-variation-transforms';\n\n\t// Show buttons if there are more than 5 variations because the ToggleGroupControl does not wrap\n\tconst showButtons = variations.length > 5;\n\n\tconst ButtonComponent = showButtons\n\t\t? VariationsButtons\n\t\t: VariationsToggleGroupControl;\n\n\tconst Component = hasUniqueIcons ? ButtonComponent : VariationsDropdown;\n\n\treturn (\n\t\t<Component\n\t\t\tclassName={ baseClass }\n\t\t\tonSelectVariation={ onSelectVariation }\n\t\t\tselectedValue={ selectedValue }\n\t\t\tvariations={ variations }\n\t\t/>\n\t);\n}\n\nexport default __experimentalBlockVariationTransforms;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_blocks","require","_i18n","_components","_data","_element","_icons","_blockIcon","_interopRequireDefault","_store","_lockUnlock","_jsxRuntime","VariationsButtons","className","onSelectVariation","selectedValue","variations","jsxs","children","jsx","VisuallyHidden","as","__","map","variation","Button","__next40pxDefaultSize","icon","default","showColors","isPressed","name","label","title","sprintf","onClick","showTooltip","VariationsDropdown","selectOptions","description","value","info","DropdownMenu","text","popoverProps","position","chevronDown","toggleProps","iconPosition","MenuGroup","MenuItemsChoice","choices","onSelect","VariationsToggleGroupControl","__experimentalToggleGroupControl","hideLabelFromVision","onChange","__nextHasNoMarginBottom","__experimentalToggleGroupControlOptionIcon","__experimentalBlockVariationTransforms","blockClientId","updateBlockAttributes","useDispatch","blockEditorStore","activeBlockVariation","isContentOnly","useSelect","select","getActiveBlockVariation","getBlockVariations","blocksStore","getBlockName","getBlockAttributes","getBlockEditingMode","hasContentRoleAttribute","unlock","isContentBlock","hasUniqueIcons","useMemo","variationIcons","Set","forEach","add","src","size","length","variationName","find","attributes","baseClass","showButtons","ButtonComponent","Component","_default","exports"],"sources":["@wordpress/block-editor/src/components/block-variation-transforms/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tButton,\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItemsChoice,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOptionIcon as ToggleGroupControlOptionIcon,\n\tVisuallyHidden,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\nimport { chevronDown } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport BlockIcon from '../block-icon';\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nfunction VariationsButtons( {\n\tclassName,\n\tonSelectVariation,\n\tselectedValue,\n\tvariations,\n} ) {\n\treturn (\n\t\t<fieldset className={ className }>\n\t\t\t<VisuallyHidden as=\"legend\">\n\t\t\t\t{ __( 'Transform to variation' ) }\n\t\t\t</VisuallyHidden>\n\t\t\t{ variations.map( ( variation ) => (\n\t\t\t\t<Button\n\t\t\t\t\t// TODO: Switch to `true` (40px size) if possible\n\t\t\t\t\t__next40pxDefaultSize={ false }\n\t\t\t\t\tkey={ variation.name }\n\t\t\t\t\ticon={ <BlockIcon icon={ variation.icon } showColors /> }\n\t\t\t\t\tisPressed={ selectedValue === variation.name }\n\t\t\t\t\tlabel={\n\t\t\t\t\t\tselectedValue === variation.name\n\t\t\t\t\t\t\t? variation.title\n\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %s: Name of the block variation */\n\t\t\t\t\t\t\t\t\t__( 'Transform to %s' ),\n\t\t\t\t\t\t\t\t\tvariation.title\n\t\t\t\t\t\t\t )\n\t\t\t\t\t}\n\t\t\t\t\tonClick={ () => onSelectVariation( variation.name ) }\n\t\t\t\t\taria-label={ variation.title }\n\t\t\t\t\tshowTooltip\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</fieldset>\n\t);\n}\n\nfunction VariationsDropdown( {\n\tclassName,\n\tonSelectVariation,\n\tselectedValue,\n\tvariations,\n} ) {\n\tconst selectOptions = variations.map(\n\t\t( { name, title, description } ) => ( {\n\t\t\tvalue: name,\n\t\t\tlabel: title,\n\t\t\tinfo: description,\n\t\t} )\n\t);\n\n\treturn (\n\t\t<DropdownMenu\n\t\t\tclassName={ className }\n\t\t\tlabel={ __( 'Transform to variation' ) }\n\t\t\ttext={ __( 'Transform to variation' ) }\n\t\t\tpopoverProps={ {\n\t\t\t\tposition: 'bottom center',\n\t\t\t\tclassName: `${ className }__popover`,\n\t\t\t} }\n\t\t\ticon={ chevronDown }\n\t\t\ttoggleProps={ { iconPosition: 'right' } }\n\t\t>\n\t\t\t{ () => (\n\t\t\t\t<div className={ `${ className }__container` }>\n\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t<MenuItemsChoice\n\t\t\t\t\t\t\tchoices={ selectOptions }\n\t\t\t\t\t\t\tvalue={ selectedValue }\n\t\t\t\t\t\t\tonSelect={ onSelectVariation }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</MenuGroup>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n}\n\nfunction VariationsToggleGroupControl( {\n\tclassName,\n\tonSelectVariation,\n\tselectedValue,\n\tvariations,\n} ) {\n\treturn (\n\t\t<div className={ className }>\n\t\t\t<ToggleGroupControl\n\t\t\t\tlabel={ __( 'Transform to variation' ) }\n\t\t\t\tvalue={ selectedValue }\n\t\t\t\thideLabelFromVision\n\t\t\t\tonChange={ onSelectVariation }\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t>\n\t\t\t\t{ variations.map( ( variation ) => (\n\t\t\t\t\t<ToggleGroupControlOptionIcon\n\t\t\t\t\t\tkey={ variation.name }\n\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t<BlockIcon icon={ variation.icon } showColors />\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvalue={ variation.name }\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tselectedValue === variation.name\n\t\t\t\t\t\t\t\t? variation.title\n\t\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: %s: Name of the block variation */\n\t\t\t\t\t\t\t\t\t\t__( 'Transform to %s' ),\n\t\t\t\t\t\t\t\t\t\tvariation.title\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</ToggleGroupControl>\n\t\t</div>\n\t);\n}\n\nfunction __experimentalBlockVariationTransforms( { blockClientId } ) {\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\tconst { activeBlockVariation, variations, isContentOnly } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getActiveBlockVariation, getBlockVariations } =\n\t\t\t\tselect( blocksStore );\n\n\t\t\tconst { getBlockName, getBlockAttributes, getBlockEditingMode } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\tconst name = blockClientId && getBlockName( blockClientId );\n\n\t\t\tconst { hasContentRoleAttribute } = unlock( select( blocksStore ) );\n\t\t\tconst isContentBlock = hasContentRoleAttribute( name );\n\n\t\t\treturn {\n\t\t\t\tactiveBlockVariation: getActiveBlockVariation(\n\t\t\t\t\tname,\n\t\t\t\t\tgetBlockAttributes( blockClientId )\n\t\t\t\t),\n\t\t\t\tvariations: name && getBlockVariations( name, 'transform' ),\n\t\t\t\tisContentOnly:\n\t\t\t\t\tgetBlockEditingMode( blockClientId ) === 'contentOnly' &&\n\t\t\t\t\t! isContentBlock,\n\t\t\t};\n\t\t},\n\t\t[ blockClientId ]\n\t);\n\n\tconst selectedValue = activeBlockVariation?.name;\n\n\t// Check if each variation has a unique icon.\n\tconst hasUniqueIcons = useMemo( () => {\n\t\tconst variationIcons = new Set();\n\t\tif ( ! variations ) {\n\t\t\treturn false;\n\t\t}\n\t\tvariations.forEach( ( variation ) => {\n\t\t\tif ( variation.icon ) {\n\t\t\t\tvariationIcons.add( variation.icon?.src || variation.icon );\n\t\t\t}\n\t\t} );\n\t\treturn variationIcons.size === variations.length;\n\t}, [ variations ] );\n\n\tconst onSelectVariation = ( variationName ) => {\n\t\tupdateBlockAttributes( blockClientId, {\n\t\t\t...variations.find( ( { name } ) => name === variationName )\n\t\t\t\t.attributes,\n\t\t} );\n\t};\n\n\tif ( ! variations?.length || isContentOnly ) {\n\t\treturn null;\n\t}\n\n\tconst baseClass = 'block-editor-block-variation-transforms';\n\n\t// Show buttons if there are more than 5 variations because the ToggleGroupControl does not wrap\n\tconst showButtons = variations.length > 5;\n\n\tconst ButtonComponent = showButtons\n\t\t? VariationsButtons\n\t\t: VariationsToggleGroupControl;\n\n\tconst Component = hasUniqueIcons ? ButtonComponent : VariationsDropdown;\n\n\treturn (\n\t\t<Component\n\t\t\tclassName={ baseClass }\n\t\t\tonSelectVariation={ onSelectVariation }\n\t\t\tselectedValue={ selectedValue }\n\t\t\tvariations={ variations }\n\t\t/>\n\t);\n}\n\nexport default __experimentalBlockVariationTransforms;\n"],"mappings":"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","ignoreList":[]}
@@ -29,21 +29,10 @@ var _default = props => element => {
29
29
  preserveWhiteSpace,
30
30
  pastePlainText
31
31
  } = props.current;
32
- const {
33
- ownerDocument
34
- } = element;
35
- const {
36
- defaultView
37
- } = ownerDocument;
38
- const {
39
- anchorNode,
40
- focusNode
41
- } = defaultView.getSelection();
42
- const containsSelection = element.contains(anchorNode) && element.contains(focusNode);
43
32
 
44
33
  // The event listener is attached to the window, so we need to check if
45
- // the target is the element.
46
- if (!containsSelection) {
34
+ // the target is the element or inside the element.
35
+ if (!element.contains(event.target)) {
47
36
  return;
48
37
  }
49
38
  if (event.defaultPrevented) {
@@ -1 +1 @@
1
- {"version":3,"names":["_blocks","require","_richText","_url","_utils","_pasting","_default","props","element","_onPaste","event","disableFormats","onChange","value","formatTypes","tagName","onReplace","__unstableEmbedURLOnPaste","preserveWhiteSpace","pastePlainText","current","ownerDocument","defaultView","anchorNode","focusNode","getSelection","containsSelection","contains","defaultPrevented","plainText","html","getPasteEventData","preventDefault","window","console","log","insert","isInternal","clipboardData","getData","pasteInline","content","transformed","reduce","accumulator","__unstablePasteRule","valueToInsert","create","addActiveFormats","activeFormats","text","mode","trimmedPlainText","trim","isEmpty","isURL","test","pasteHandler","HTML","length","addEventListener","removeEventListener","exports","default"],"sources":["@wordpress/block-editor/src/components/rich-text/event-listeners/paste-handler.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { pasteHandler } from '@wordpress/blocks';\nimport { isEmpty, insert, create } from '@wordpress/rich-text';\nimport { isURL } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport { addActiveFormats } from '../utils';\nimport { getPasteEventData } from '../../../utils/pasting';\n\n/** @typedef {import('@wordpress/rich-text').RichTextValue} RichTextValue */\n\nexport default ( props ) => ( element ) => {\n\tfunction _onPaste( event ) {\n\t\tconst {\n\t\t\tdisableFormats,\n\t\t\tonChange,\n\t\t\tvalue,\n\t\t\tformatTypes,\n\t\t\ttagName,\n\t\t\tonReplace,\n\t\t\t__unstableEmbedURLOnPaste,\n\t\t\tpreserveWhiteSpace,\n\t\t\tpastePlainText,\n\t\t} = props.current;\n\t\tconst { ownerDocument } = element;\n\t\tconst { defaultView } = ownerDocument;\n\t\tconst { anchorNode, focusNode } = defaultView.getSelection();\n\t\tconst containsSelection =\n\t\t\telement.contains( anchorNode ) && element.contains( focusNode );\n\n\t\t// The event listener is attached to the window, so we need to check if\n\t\t// the target is the element.\n\t\tif ( ! containsSelection ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( event.defaultPrevented ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { plainText, html } = getPasteEventData( event );\n\n\t\tevent.preventDefault();\n\n\t\t// Allows us to ask for this information when we get a report.\n\t\twindow.console.log( 'Received HTML:\\n\\n', html );\n\t\twindow.console.log( 'Received plain text:\\n\\n', plainText );\n\n\t\tif ( disableFormats ) {\n\t\t\tonChange( insert( value, plainText ) );\n\t\t\treturn;\n\t\t}\n\n\t\tconst isInternal =\n\t\t\tevent.clipboardData.getData( 'rich-text' ) === 'true';\n\n\t\tfunction pasteInline( content ) {\n\t\t\tconst transformed = formatTypes.reduce(\n\t\t\t\t( accumulator, { __unstablePasteRule } ) => {\n\t\t\t\t\t// Only allow one transform.\n\t\t\t\t\tif ( __unstablePasteRule && accumulator === value ) {\n\t\t\t\t\t\taccumulator = __unstablePasteRule( value, {\n\t\t\t\t\t\t\thtml,\n\t\t\t\t\t\t\tplainText,\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\n\t\t\t\t\treturn accumulator;\n\t\t\t\t},\n\t\t\t\tvalue\n\t\t\t);\n\t\t\tif ( transformed !== value ) {\n\t\t\t\tonChange( transformed );\n\t\t\t} else {\n\t\t\t\tconst valueToInsert = create( { html: content } );\n\t\t\t\taddActiveFormats( valueToInsert, value.activeFormats );\n\t\t\t\tonChange( insert( value, valueToInsert ) );\n\t\t\t}\n\t\t}\n\n\t\t// If the data comes from a rich text instance, we can directly use it\n\t\t// without filtering the data. The filters are only meant for externally\n\t\t// pasted content and remove inline styles.\n\t\tif ( isInternal ) {\n\t\t\tpasteInline( html );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( pastePlainText ) {\n\t\t\tonChange( insert( value, create( { text: plainText } ) ) );\n\t\t\treturn;\n\t\t}\n\n\t\tlet mode = 'INLINE';\n\n\t\tconst trimmedPlainText = plainText.trim();\n\n\t\tif (\n\t\t\t__unstableEmbedURLOnPaste &&\n\t\t\tisEmpty( value ) &&\n\t\t\tisURL( trimmedPlainText ) &&\n\t\t\t// For the link pasting feature, allow only http(s) protocols.\n\t\t\t/^https?:/.test( trimmedPlainText )\n\t\t) {\n\t\t\tmode = 'BLOCKS';\n\t\t}\n\n\t\tconst content = pasteHandler( {\n\t\t\tHTML: html,\n\t\t\tplainText,\n\t\t\tmode,\n\t\t\ttagName,\n\t\t\tpreserveWhiteSpace,\n\t\t} );\n\n\t\tif ( typeof content === 'string' ) {\n\t\t\tpasteInline( content );\n\t\t} else if ( content.length > 0 ) {\n\t\t\tif ( onReplace && isEmpty( value ) ) {\n\t\t\t\tonReplace( content, content.length - 1, -1 );\n\t\t\t}\n\t\t}\n\t}\n\n\tconst { defaultView } = element.ownerDocument;\n\n\t// Attach the listener to the window so parent elements have the chance to\n\t// prevent the default behavior.\n\tdefaultView.addEventListener( 'paste', _onPaste );\n\treturn () => {\n\t\tdefaultView.removeEventListener( 'paste', _onPaste );\n\t};\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_blocks","require","_richText","_url","_utils","_pasting","_default","props","element","_onPaste","event","disableFormats","onChange","value","formatTypes","tagName","onReplace","__unstableEmbedURLOnPaste","preserveWhiteSpace","pastePlainText","current","contains","target","defaultPrevented","plainText","html","getPasteEventData","preventDefault","window","console","log","insert","isInternal","clipboardData","getData","pasteInline","content","transformed","reduce","accumulator","__unstablePasteRule","valueToInsert","create","addActiveFormats","activeFormats","text","mode","trimmedPlainText","trim","isEmpty","isURL","test","pasteHandler","HTML","length","defaultView","ownerDocument","addEventListener","removeEventListener","exports","default"],"sources":["@wordpress/block-editor/src/components/rich-text/event-listeners/paste-handler.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { pasteHandler } from '@wordpress/blocks';\nimport { isEmpty, insert, create } from '@wordpress/rich-text';\nimport { isURL } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport { addActiveFormats } from '../utils';\nimport { getPasteEventData } from '../../../utils/pasting';\n\n/** @typedef {import('@wordpress/rich-text').RichTextValue} RichTextValue */\n\nexport default ( props ) => ( element ) => {\n\tfunction _onPaste( event ) {\n\t\tconst {\n\t\t\tdisableFormats,\n\t\t\tonChange,\n\t\t\tvalue,\n\t\t\tformatTypes,\n\t\t\ttagName,\n\t\t\tonReplace,\n\t\t\t__unstableEmbedURLOnPaste,\n\t\t\tpreserveWhiteSpace,\n\t\t\tpastePlainText,\n\t\t} = props.current;\n\n\t\t// The event listener is attached to the window, so we need to check if\n\t\t// the target is the element or inside the element.\n\t\tif ( ! element.contains( event.target ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( event.defaultPrevented ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { plainText, html } = getPasteEventData( event );\n\n\t\tevent.preventDefault();\n\n\t\t// Allows us to ask for this information when we get a report.\n\t\twindow.console.log( 'Received HTML:\\n\\n', html );\n\t\twindow.console.log( 'Received plain text:\\n\\n', plainText );\n\n\t\tif ( disableFormats ) {\n\t\t\tonChange( insert( value, plainText ) );\n\t\t\treturn;\n\t\t}\n\n\t\tconst isInternal =\n\t\t\tevent.clipboardData.getData( 'rich-text' ) === 'true';\n\n\t\tfunction pasteInline( content ) {\n\t\t\tconst transformed = formatTypes.reduce(\n\t\t\t\t( accumulator, { __unstablePasteRule } ) => {\n\t\t\t\t\t// Only allow one transform.\n\t\t\t\t\tif ( __unstablePasteRule && accumulator === value ) {\n\t\t\t\t\t\taccumulator = __unstablePasteRule( value, {\n\t\t\t\t\t\t\thtml,\n\t\t\t\t\t\t\tplainText,\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\n\t\t\t\t\treturn accumulator;\n\t\t\t\t},\n\t\t\t\tvalue\n\t\t\t);\n\t\t\tif ( transformed !== value ) {\n\t\t\t\tonChange( transformed );\n\t\t\t} else {\n\t\t\t\tconst valueToInsert = create( { html: content } );\n\t\t\t\taddActiveFormats( valueToInsert, value.activeFormats );\n\t\t\t\tonChange( insert( value, valueToInsert ) );\n\t\t\t}\n\t\t}\n\n\t\t// If the data comes from a rich text instance, we can directly use it\n\t\t// without filtering the data. The filters are only meant for externally\n\t\t// pasted content and remove inline styles.\n\t\tif ( isInternal ) {\n\t\t\tpasteInline( html );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( pastePlainText ) {\n\t\t\tonChange( insert( value, create( { text: plainText } ) ) );\n\t\t\treturn;\n\t\t}\n\n\t\tlet mode = 'INLINE';\n\n\t\tconst trimmedPlainText = plainText.trim();\n\n\t\tif (\n\t\t\t__unstableEmbedURLOnPaste &&\n\t\t\tisEmpty( value ) &&\n\t\t\tisURL( trimmedPlainText ) &&\n\t\t\t// For the link pasting feature, allow only http(s) protocols.\n\t\t\t/^https?:/.test( trimmedPlainText )\n\t\t) {\n\t\t\tmode = 'BLOCKS';\n\t\t}\n\n\t\tconst content = pasteHandler( {\n\t\t\tHTML: html,\n\t\t\tplainText,\n\t\t\tmode,\n\t\t\ttagName,\n\t\t\tpreserveWhiteSpace,\n\t\t} );\n\n\t\tif ( typeof content === 'string' ) {\n\t\t\tpasteInline( content );\n\t\t} else if ( content.length > 0 ) {\n\t\t\tif ( onReplace && isEmpty( value ) ) {\n\t\t\t\tonReplace( content, content.length - 1, -1 );\n\t\t\t}\n\t\t}\n\t}\n\n\tconst { defaultView } = element.ownerDocument;\n\n\t// Attach the listener to the window so parent elements have the chance to\n\t// prevent the default behavior.\n\tdefaultView.addEventListener( 'paste', _onPaste );\n\treturn () => {\n\t\tdefaultView.removeEventListener( 'paste', _onPaste );\n\t};\n};\n"],"mappings":"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","ignoreList":[]}
@@ -178,7 +178,8 @@ function RichTextWrapper({
178
178
  } = (0, _data.useSelect)(selector, [clientId, identifier, instanceId, originalIsSelected, isBlockSelected]);
179
179
  const {
180
180
  disableBoundBlock,
181
- bindingsPlaceholder
181
+ bindingsPlaceholder,
182
+ bindingsLabel
182
183
  } = (0, _data.useSelect)(select => {
183
184
  var _fieldsList$relatedBi;
184
185
  if (!blockBindings?.[identifier] || !(0, _useBindingsAttributes.canBindBlock)(blockName)) {
@@ -189,21 +190,44 @@ function RichTextWrapper({
189
190
  getBlockBindingsSource
190
191
  } = (0, _lockUnlock.unlock)(select(_blocks.store));
191
192
  const blockBindingsSource = getBlockBindingsSource(relatedBinding.source);
192
- const fieldsList = blockBindingsSource?.getFieldsList?.({
193
- registry,
194
- context: blockContext
195
- });
193
+ const blockBindingsContext = {};
194
+ if (blockBindingsSource?.usesContext?.length) {
195
+ for (const key of blockBindingsSource.usesContext) {
196
+ blockBindingsContext[key] = blockContext[key];
197
+ }
198
+ }
196
199
  const _disableBoundBlock = !blockBindingsSource?.canUserEditValue?.({
197
- select,
198
- context: blockContext,
200
+ registry,
201
+ context: blockBindingsContext,
199
202
  args: relatedBinding.args
200
203
  });
204
+
205
+ // Don't modify placeholders if value is not empty.
206
+ if (adjustedValue.length > 0) {
207
+ return {
208
+ disableBoundBlock: _disableBoundBlock,
209
+ // Null values will make them fall back to the default behavior.
210
+ bindingsPlaceholder: null,
211
+ bindingsLabel: null
212
+ };
213
+ }
214
+ const {
215
+ getBlockAttributes
216
+ } = select(_store.store);
217
+ const blockAttributes = getBlockAttributes(clientId);
218
+ const fieldsList = blockBindingsSource?.getFieldsList?.({
219
+ registry,
220
+ context: blockBindingsContext
221
+ });
201
222
  const bindingKey = (_fieldsList$relatedBi = fieldsList?.[relatedBinding?.args?.key]?.label) !== null && _fieldsList$relatedBi !== void 0 ? _fieldsList$relatedBi : blockBindingsSource?.label;
202
223
  const _bindingsPlaceholder = _disableBoundBlock ? bindingKey : (0, _i18n.sprintf)( /* translators: %s: connected field label or source label */
203
224
  (0, _i18n.__)('Add %s'), bindingKey);
225
+ const _bindingsLabel = _disableBoundBlock ? relatedBinding?.args?.key || blockBindingsSource?.label : (0, _i18n.sprintf)( /* translators: %s: source label or key */
226
+ (0, _i18n.__)('Empty %s; start writing to edit its value'), relatedBinding?.args?.key || blockBindingsSource?.label);
204
227
  return {
205
228
  disableBoundBlock: _disableBoundBlock,
206
- bindingsPlaceholder: (!adjustedValue || adjustedValue.length === 0) && _bindingsPlaceholder
229
+ bindingsPlaceholder: blockAttributes?.placeholder || _bindingsPlaceholder,
230
+ bindingsLabel: _bindingsLabel
207
231
  };
208
232
  }, [blockBindings, identifier, blockName, blockContext, registry, adjustedValue]);
209
233
  const shouldDisableEditing = readOnly || disableBoundBlock;
@@ -319,17 +343,7 @@ function RichTextWrapper({
319
343
  const keyboardShortcuts = (0, _element.useRef)(new Set());
320
344
  const inputEvents = (0, _element.useRef)(new Set());
321
345
  function onFocus() {
322
- let element = anchorRef.current;
323
- if (!element) {
324
- return;
325
- }
326
-
327
- // Writing flow might be editable, so we should make sure focus goes to
328
- // the root editable element.
329
- while (element.parentElement?.isContentEditable) {
330
- element = element.parentElement;
331
- }
332
- element.focus();
346
+ anchorRef.current?.focus();
333
347
  }
334
348
  const TagName = tagName;
335
349
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
@@ -362,7 +376,7 @@ function RichTextWrapper({
362
376
  "aria-multiline": !disableLineBreaks,
363
377
  "aria-readonly": shouldDisableEditing,
364
378
  ...props,
365
- "aria-label": bindingsPlaceholder || props['aria-label'] || placeholder,
379
+ "aria-label": bindingsLabel || props['aria-label'] || placeholder,
366
380
  ...autocompleteProps,
367
381
  ref: (0, _compose.useMergeRefs)([
368
382
  // Rich text ref must be first because its focus listener
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_element","_data","_compose","_richText","_components","_blocks","_deprecated","_i18n","_autocomplete","_blockEdit","_context","_formatToolbarContainer","_store","_useMarkPersistent","_useFormatTypes","_eventListeners","_formatEdit","_utils","_content","_withDeprecations","_lockUnlock","_useBindingsAttributes","_blockContext","_jsxRuntime","_shortcut","_toolbarButton","_inputEvent","keyboardShortcutContext","exports","createContext","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","deprecated","since","alternative","instanceId","useInstanceId","anchorRef","useRef","context","useBlockEditContext","clientId","isBlockSelected","name","blockName","blockBindings","blockBindingsKey","blockContext","useContext","BlockContext","registry","useRegistry","selector","select","getSelectionStart","getSelectionEnd","blockEditorStore","selectionStart","selectionEnd","undefined","attributeKey","offset","useSelect","disableBoundBlock","bindingsPlaceholder","_fieldsList$relatedBi","canBindBlock","relatedBinding","getBlockBindingsSource","unlock","blocksStore","blockBindingsSource","source","fieldsList","getFieldsList","_disableBoundBlock","canUserEditValue","args","bindingKey","key","label","_bindingsPlaceholder","sprintf","__","length","shouldDisableEditing","getBlockRootClientId","selectionChange","useDispatch","adjustedAllowedFormats","getAllowedFormats","hasFormats","onSelectionChange","useCallback","start","end","selection","unset","baseSelection","formatTypes","prepareHandlers","valueHandlers","changeHandlers","dependencies","useFormatTypes","addEditorOnlyFormats","reduce","accumulator","fn","text","formats","removeEditorOnlyFormats","forEach","formatType","__experimentalCreatePrepareEditableTree","removeFormat","addInvisibleFormats","getValue","ref","richTextRef","useRichText","html","__unstableFormats","__unstableText","Object","values","changeHandler","__unstableIsSelected","__unstableDependencies","__unstableAfterParse","__unstableBeforeSerialize","__unstableAddInvisibleFormats","autocompleteProps","useBlockEditorAutocompleteProps","completers","record","useMarkPersistent","keyboardShortcuts","Set","inputEvents","onFocus","element","current","parentElement","isContentEditable","focus","TagName","jsxs","Fragment","jsx","Provider","Popover","__unstableSlotNameProvider","default","inline","editableContentElement","role","useMergeRefs","useEventListeners","contentEditable","suppressContentEditableWarning","className","clsx","tabIndex","PrivateRichText","withDeprecations","forwardRef","Content","isEmpty","PublicForwardedRichTextContainer","isPreviewMode","isPreviewModeKey","Tag","contentProps","dangerouslySetInnerHTML","__html","valueToHTMLString","_default"],"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 { store as blocksStore } 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 { unlock } from '../../lock-unlock';\nimport { canBindBlock } from '../../hooks/use-bindings-attributes';\nimport BlockContext from '../block-context';\n\nexport const keyboardShortcutContext = createContext();\nexport const inputEventContext = createContext();\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 { getSelectionStart, getSelectionEnd } =\n\t\t\tselect( blockEditorStore );\n\t\tconst selectionStart = getSelectionStart();\n\t\tconst selectionEnd = getSelectionEnd();\n\n\t\tlet isSelected;\n\n\t\tif ( originalIsSelected === undefined ) {\n\t\t\tisSelected =\n\t\t\t\tselectionStart.clientId === clientId &&\n\t\t\t\tselectionEnd.clientId === clientId &&\n\t\t\t\t( identifier\n\t\t\t\t\t? selectionStart.attributeKey === identifier\n\t\t\t\t\t: selectionStart[ instanceIdKey ] === instanceId );\n\t\t} else if ( originalIsSelected ) {\n\t\t\tisSelected = selectionStart.clientId === clientId;\n\t\t}\n\n\t\treturn {\n\t\t\tselectionStart: isSelected ? selectionStart.offset : undefined,\n\t\t\tselectionEnd: isSelected ? selectionEnd.offset : undefined,\n\t\t\tisSelected,\n\t\t};\n\t};\n\tconst { selectionStart, selectionEnd, isSelected } = useSelect( selector, [\n\t\tclientId,\n\t\tidentifier,\n\t\tinstanceId,\n\t\toriginalIsSelected,\n\t\tisBlockSelected,\n\t] );\n\n\tconst { disableBoundBlock, bindingsPlaceholder } = 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 { getBlockBindingsSource } = unlock( select( blocksStore ) );\n\t\t\tconst blockBindingsSource = getBlockBindingsSource(\n\t\t\t\trelatedBinding.source\n\t\t\t);\n\t\t\tconst fieldsList = blockBindingsSource?.getFieldsList?.( {\n\t\t\t\tregistry,\n\t\t\t\tcontext: blockContext,\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: blockContext,\n\t\t\t\t\targs: relatedBinding.args,\n\t\t\t\t} );\n\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\n\t\t\treturn {\n\t\t\t\tdisableBoundBlock: _disableBoundBlock,\n\t\t\t\tbindingsPlaceholder:\n\t\t\t\t\t( ! adjustedValue || adjustedValue.length === 0 ) &&\n\t\t\t\t\t_bindingsPlaceholder,\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\tblockContext,\n\t\t\tregistry,\n\t\t\tadjustedValue,\n\t\t]\n\t);\n\n\tconst shouldDisableEditing = readOnly || disableBoundBlock;\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\twithoutInteractiveFormatting,\n\t\tallowedFormats: adjustedAllowedFormats,\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\tlet element = anchorRef.current;\n\n\t\tif ( ! element ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Writing flow might be editable, so we should make sure focus goes to\n\t\t// the root editable element.\n\t\twhile ( element.parentElement?.isContentEditable ) {\n\t\t\telement = element.parentElement;\n\t\t}\n\n\t\telement.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\taria-label={\n\t\t\t\t\tbindingsPlaceholder || 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","_interopRequireDefault","require","_element","_data","_compose","_richText","_components","_blocks","_deprecated","_i18n","_autocomplete","_blockEdit","_context","_formatToolbarContainer","_store","_useMarkPersistent","_useFormatTypes","_eventListeners","_formatEdit","_utils","_content","_withDeprecations","_lockUnlock","_useBindingsAttributes","_blockContext","_jsxRuntime","_shortcut","_toolbarButton","_inputEvent","keyboardShortcutContext","exports","createContext","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","deprecated","since","alternative","instanceId","useInstanceId","anchorRef","useRef","context","useBlockEditContext","clientId","isBlockSelected","name","blockName","blockBindings","blockBindingsKey","blockContext","useContext","BlockContext","registry","useRegistry","selector","select","getSelectionStart","getSelectionEnd","blockEditorStore","selectionStart","selectionEnd","undefined","attributeKey","offset","useSelect","disableBoundBlock","bindingsPlaceholder","bindingsLabel","_fieldsList$relatedBi","canBindBlock","relatedBinding","getBlockBindingsSource","unlock","blocksStore","blockBindingsSource","source","blockBindingsContext","usesContext","length","key","_disableBoundBlock","canUserEditValue","args","getBlockAttributes","blockAttributes","fieldsList","getFieldsList","bindingKey","label","_bindingsPlaceholder","sprintf","__","_bindingsLabel","shouldDisableEditing","getBlockRootClientId","selectionChange","useDispatch","adjustedAllowedFormats","getAllowedFormats","hasFormats","onSelectionChange","useCallback","start","end","selection","unset","baseSelection","formatTypes","prepareHandlers","valueHandlers","changeHandlers","dependencies","useFormatTypes","addEditorOnlyFormats","reduce","accumulator","fn","text","formats","removeEditorOnlyFormats","forEach","formatType","__experimentalCreatePrepareEditableTree","removeFormat","addInvisibleFormats","getValue","ref","richTextRef","useRichText","html","__unstableFormats","__unstableText","Object","values","changeHandler","__unstableIsSelected","__unstableDependencies","__unstableAfterParse","__unstableBeforeSerialize","__unstableAddInvisibleFormats","autocompleteProps","useBlockEditorAutocompleteProps","completers","record","useMarkPersistent","keyboardShortcuts","Set","inputEvents","onFocus","current","focus","TagName","jsxs","Fragment","jsx","Provider","Popover","__unstableSlotNameProvider","default","inline","editableContentElement","role","useMergeRefs","useEventListeners","contentEditable","suppressContentEditableWarning","className","clsx","tabIndex","PrivateRichText","withDeprecations","forwardRef","Content","isEmpty","PublicForwardedRichTextContainer","isPreviewMode","isPreviewModeKey","Tag","contentProps","dangerouslySetInnerHTML","__html","valueToHTMLString","_default"],"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 { store as blocksStore } 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 { unlock } from '../../lock-unlock';\nimport { canBindBlock } from '../../hooks/use-bindings-attributes';\nimport BlockContext from '../block-context';\n\nexport const keyboardShortcutContext = createContext();\nexport const inputEventContext = createContext();\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 { getSelectionStart, getSelectionEnd } =\n\t\t\tselect( blockEditorStore );\n\t\tconst selectionStart = getSelectionStart();\n\t\tconst selectionEnd = getSelectionEnd();\n\n\t\tlet isSelected;\n\n\t\tif ( originalIsSelected === undefined ) {\n\t\t\tisSelected =\n\t\t\t\tselectionStart.clientId === clientId &&\n\t\t\t\tselectionEnd.clientId === clientId &&\n\t\t\t\t( identifier\n\t\t\t\t\t? selectionStart.attributeKey === identifier\n\t\t\t\t\t: selectionStart[ instanceIdKey ] === instanceId );\n\t\t} else if ( originalIsSelected ) {\n\t\t\tisSelected = selectionStart.clientId === clientId;\n\t\t}\n\n\t\treturn {\n\t\t\tselectionStart: isSelected ? selectionStart.offset : undefined,\n\t\t\tselectionEnd: isSelected ? selectionEnd.offset : undefined,\n\t\t\tisSelected,\n\t\t};\n\t};\n\tconst { selectionStart, selectionEnd, isSelected } = useSelect( selector, [\n\t\tclientId,\n\t\tidentifier,\n\t\tinstanceId,\n\t\toriginalIsSelected,\n\t\tisBlockSelected,\n\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 { getBlockBindingsSource } = unlock( select( blocksStore ) );\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\tregistry,\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\tregistry,\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\tblockContext,\n\t\t\tregistry,\n\t\t\tadjustedValue,\n\t\t]\n\t);\n\n\tconst shouldDisableEditing = readOnly || disableBoundBlock;\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\twithoutInteractiveFormatting,\n\t\tallowedFormats: adjustedAllowedFormats,\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\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":[]}
@@ -10,6 +10,7 @@ var _data = require("@wordpress/data");
10
10
  var _element = require("@wordpress/element");
11
11
  var _icons = require("@wordpress/icons");
12
12
  var _store = require("../../store");
13
+ var _lockUnlock = require("../../lock-unlock");
13
14
  var _jsxRuntime = require("react/jsx-runtime");
14
15
  /**
15
16
  * WordPress dependencies
@@ -32,7 +33,7 @@ function ToolSelector(props, ref) {
32
33
  const mode = (0, _data.useSelect)(select => select(_store.store).__unstableGetEditorMode(), []);
33
34
  const {
34
35
  __unstableSetEditorMode
35
- } = (0, _data.useDispatch)(_store.store);
36
+ } = (0, _lockUnlock.unlock)((0, _data.useDispatch)(_store.store));
36
37
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Dropdown, {
37
38
  renderToggle: ({
38
39
  isOpen,
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_i18n","_data","_element","_icons","_store","_jsxRuntime","selectIcon","jsx","SVG","xmlns","width","height","viewBox","children","Path","d","ToolSelector","props","ref","mode","useSelect","select","blockEditorStore","__unstableGetEditorMode","__unstableSetEditorMode","useDispatch","Dropdown","renderToggle","isOpen","onToggle","Button","__next40pxDefaultSize","icon","editIcon","onClick","label","__","popoverProps","placement","renderContent","jsxs","Fragment","NavigableMenu","role","MenuItemsChoice","value","onSelect","choices","Icon","className","_default","exports","default","forwardRef"],"sources":["@wordpress/block-editor/src/components/tool-selector/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tDropdown,\n\tButton,\n\tMenuItemsChoice,\n\tSVG,\n\tPath,\n\tNavigableMenu,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { forwardRef } from '@wordpress/element';\nimport { Icon, edit as editIcon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\nconst selectIcon = (\n\t<SVG\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\twidth=\"24\"\n\t\theight=\"24\"\n\t\tviewBox=\"0 0 24 24\"\n\t>\n\t\t<Path d=\"M9.4 20.5L5.2 3.8l14.6 9-2 .3c-.2 0-.4.1-.7.1-.9.2-1.6.3-2.2.5-.8.3-1.4.5-1.8.8-.4.3-.8.8-1.3 1.5-.4.5-.8 1.2-1.2 2l-.3.6-.9 1.9zM7.6 7.1l2.4 9.3c.2-.4.5-.8.7-1.1.6-.8 1.1-1.4 1.6-1.8.5-.4 1.3-.8 2.2-1.1l1.2-.3-8.1-5z\" />\n\t</SVG>\n);\n\nfunction ToolSelector( props, ref ) {\n\tconst mode = useSelect(\n\t\t( select ) => select( blockEditorStore ).__unstableGetEditorMode(),\n\t\t[]\n\t);\n\tconst { __unstableSetEditorMode } = useDispatch( blockEditorStore );\n\n\treturn (\n\t\t<Dropdown\n\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t<Button\n\t\t\t\t\t// TODO: Switch to `true` (40px size) if possible\n\t\t\t\t\t__next40pxDefaultSize={ false }\n\t\t\t\t\t{ ...props }\n\t\t\t\t\tref={ ref }\n\t\t\t\t\ticon={ mode === 'navigation' ? selectIcon : editIcon }\n\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t/* translators: button label text should, if possible, be under 16 characters. */\n\t\t\t\t\tlabel={ __( 'Tools' ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\tpopoverProps={ { placement: 'bottom-start' } }\n\t\t\trenderContent={ () => (\n\t\t\t\t<>\n\t\t\t\t\t<NavigableMenu role=\"menu\" aria-label={ __( 'Tools' ) }>\n\t\t\t\t\t\t<MenuItemsChoice\n\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\tmode === 'navigation' ? 'navigation' : 'edit'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonSelect={ __unstableSetEditorMode }\n\t\t\t\t\t\t\tchoices={ [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tvalue: 'edit',\n\t\t\t\t\t\t\t\t\tlabel: (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<Icon icon={ editIcon } />\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Edit' ) }\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tvalue: 'navigation',\n\t\t\t\t\t\t\t\t\tlabel: (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t{ selectIcon }\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Select' ) }\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</NavigableMenu>\n\t\t\t\t\t<div className=\"block-editor-tool-selector__help\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Tools provide different interactions for selecting, navigating, and editing blocks. Toggle between select and edit by pressing Escape and Enter.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</div>\n\t\t\t\t</>\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nexport default forwardRef( ToolSelector );\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_components","require","_i18n","_data","_element","_icons","_store","_lockUnlock","_jsxRuntime","selectIcon","jsx","SVG","xmlns","width","height","viewBox","children","Path","d","ToolSelector","props","ref","mode","useSelect","select","blockEditorStore","__unstableGetEditorMode","__unstableSetEditorMode","unlock","useDispatch","Dropdown","renderToggle","isOpen","onToggle","Button","__next40pxDefaultSize","icon","editIcon","onClick","label","__","popoverProps","placement","renderContent","jsxs","Fragment","NavigableMenu","role","MenuItemsChoice","value","onSelect","choices","Icon","className","_default","exports","default","forwardRef"],"sources":["@wordpress/block-editor/src/components/tool-selector/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tDropdown,\n\tButton,\n\tMenuItemsChoice,\n\tSVG,\n\tPath,\n\tNavigableMenu,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { forwardRef } from '@wordpress/element';\nimport { Icon, edit as editIcon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nconst selectIcon = (\n\t<SVG\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\twidth=\"24\"\n\t\theight=\"24\"\n\t\tviewBox=\"0 0 24 24\"\n\t>\n\t\t<Path d=\"M9.4 20.5L5.2 3.8l14.6 9-2 .3c-.2 0-.4.1-.7.1-.9.2-1.6.3-2.2.5-.8.3-1.4.5-1.8.8-.4.3-.8.8-1.3 1.5-.4.5-.8 1.2-1.2 2l-.3.6-.9 1.9zM7.6 7.1l2.4 9.3c.2-.4.5-.8.7-1.1.6-.8 1.1-1.4 1.6-1.8.5-.4 1.3-.8 2.2-1.1l1.2-.3-8.1-5z\" />\n\t</SVG>\n);\n\nfunction ToolSelector( props, ref ) {\n\tconst mode = useSelect(\n\t\t( select ) => select( blockEditorStore ).__unstableGetEditorMode(),\n\t\t[]\n\t);\n\tconst { __unstableSetEditorMode } = unlock(\n\t\tuseDispatch( blockEditorStore )\n\t);\n\n\treturn (\n\t\t<Dropdown\n\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t<Button\n\t\t\t\t\t// TODO: Switch to `true` (40px size) if possible\n\t\t\t\t\t__next40pxDefaultSize={ false }\n\t\t\t\t\t{ ...props }\n\t\t\t\t\tref={ ref }\n\t\t\t\t\ticon={ mode === 'navigation' ? selectIcon : editIcon }\n\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t/* translators: button label text should, if possible, be under 16 characters. */\n\t\t\t\t\tlabel={ __( 'Tools' ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\tpopoverProps={ { placement: 'bottom-start' } }\n\t\t\trenderContent={ () => (\n\t\t\t\t<>\n\t\t\t\t\t<NavigableMenu role=\"menu\" aria-label={ __( 'Tools' ) }>\n\t\t\t\t\t\t<MenuItemsChoice\n\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\tmode === 'navigation' ? 'navigation' : 'edit'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonSelect={ __unstableSetEditorMode }\n\t\t\t\t\t\t\tchoices={ [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tvalue: 'edit',\n\t\t\t\t\t\t\t\t\tlabel: (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<Icon icon={ editIcon } />\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Edit' ) }\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tvalue: 'navigation',\n\t\t\t\t\t\t\t\t\tlabel: (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t{ selectIcon }\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Select' ) }\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</NavigableMenu>\n\t\t\t\t\t<div className=\"block-editor-tool-selector__help\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Tools provide different interactions for selecting, navigating, and editing blocks. Toggle between select and edit by pressing Escape and Enter.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</div>\n\t\t\t\t</>\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nexport default forwardRef( ToolSelector );\n"],"mappings":"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","ignoreList":[]}
@@ -20,7 +20,6 @@ var _useSelectionObserver = _interopRequireDefault(require("./use-selection-obse
20
20
  var _useClickSelection = _interopRequireDefault(require("./use-click-selection"));
21
21
  var _useInput = _interopRequireDefault(require("./use-input"));
22
22
  var _useClipboardHandler = _interopRequireDefault(require("./use-clipboard-handler"));
23
- var _useEventRedirect = _interopRequireDefault(require("./use-event-redirect"));
24
23
  var _store = require("../../store");
25
24
  var _jsxRuntime = require("react/jsx-runtime");
26
25
  /**
@@ -49,7 +48,7 @@ function useWritingFlow() {
49
48
  node.classList.remove('has-multi-selection');
50
49
  node.removeAttribute('aria-label');
51
50
  };
52
- }, [hasMultiSelection]), (0, _useEventRedirect.default)()]), after];
51
+ }, [hasMultiSelection])]), after];
53
52
  }
54
53
  function WritingFlow({
55
54
  children,
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_data","_i18n","_compose","_element","_useMultiSelection","_useTabNav","_useArrowNav","_useSelectAll","_useDragSelection","_useSelectionObserver","_useClickSelection","_useInput","_useClipboardHandler","_useEventRedirect","_store","_jsxRuntime","useWritingFlow","before","ref","after","useTabNav","hasMultiSelection","useSelect","select","blockEditorStore","useMergeRefs","useClipboardHandler","useInput","useDragSelection","useSelectionObserver","useClickSelection","useMultiSelection","useSelectAll","useArrowNav","useRefEffect","node","tabIndex","classList","add","setAttribute","__","remove","removeAttribute","useEventRedirect","WritingFlow","children","props","forwardedRef","jsxs","Fragment","jsx","className","clsx","_default","exports","default","forwardRef"],"sources":["@wordpress/block-editor/src/components/writing-flow/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { useMergeRefs, useRefEffect } from '@wordpress/compose';\nimport { forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport useMultiSelection from './use-multi-selection';\nimport useTabNav from './use-tab-nav';\nimport useArrowNav from './use-arrow-nav';\nimport useSelectAll from './use-select-all';\nimport useDragSelection from './use-drag-selection';\nimport useSelectionObserver from './use-selection-observer';\nimport useClickSelection from './use-click-selection';\nimport useInput from './use-input';\nimport useClipboardHandler from './use-clipboard-handler';\nimport useEventRedirect from './use-event-redirect';\nimport { store as blockEditorStore } from '../../store';\n\nexport function useWritingFlow() {\n\tconst [ before, ref, after ] = useTabNav();\n\tconst hasMultiSelection = useSelect(\n\t\t( select ) => select( blockEditorStore ).hasMultiSelection(),\n\t\t[]\n\t);\n\n\treturn [\n\t\tbefore,\n\t\tuseMergeRefs( [\n\t\t\tref,\n\t\t\tuseClipboardHandler(),\n\t\t\tuseInput(),\n\t\t\tuseDragSelection(),\n\t\t\tuseSelectionObserver(),\n\t\t\tuseClickSelection(),\n\t\t\tuseMultiSelection(),\n\t\t\tuseSelectAll(),\n\t\t\tuseArrowNav(),\n\t\t\tuseRefEffect(\n\t\t\t\t( node ) => {\n\t\t\t\t\tnode.tabIndex = 0;\n\n\t\t\t\t\tif ( ! hasMultiSelection ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tnode.classList.add( 'has-multi-selection' );\n\t\t\t\t\tnode.setAttribute(\n\t\t\t\t\t\t'aria-label',\n\t\t\t\t\t\t__( 'Multiple selected blocks' )\n\t\t\t\t\t);\n\n\t\t\t\t\treturn () => {\n\t\t\t\t\t\tnode.classList.remove( 'has-multi-selection' );\n\t\t\t\t\t\tnode.removeAttribute( 'aria-label' );\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\t[ hasMultiSelection ]\n\t\t\t),\n\t\t\tuseEventRedirect(),\n\t\t] ),\n\t\tafter,\n\t];\n}\n\nfunction WritingFlow( { children, ...props }, forwardedRef ) {\n\tconst [ before, ref, after ] = useWritingFlow();\n\treturn (\n\t\t<>\n\t\t\t{ before }\n\t\t\t<div\n\t\t\t\t{ ...props }\n\t\t\t\tref={ useMergeRefs( [ ref, forwardedRef ] ) }\n\t\t\t\tclassName={ clsx(\n\t\t\t\t\tprops.className,\n\t\t\t\t\t'block-editor-writing-flow'\n\t\t\t\t) }\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</div>\n\t\t\t{ after }\n\t\t</>\n\t);\n}\n\n/**\n * Handles selection and navigation across blocks. This component should be\n * wrapped around BlockList.\n *\n * @param {Object} props Component properties.\n * @param {Element} props.children Children to be rendered.\n */\nexport default forwardRef( WritingFlow );\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_data","_i18n","_compose","_element","_useMultiSelection","_useTabNav","_useArrowNav","_useSelectAll","_useDragSelection","_useSelectionObserver","_useClickSelection","_useInput","_useClipboardHandler","_store","_jsxRuntime","useWritingFlow","before","ref","after","useTabNav","hasMultiSelection","useSelect","select","blockEditorStore","useMergeRefs","useClipboardHandler","useInput","useDragSelection","useSelectionObserver","useClickSelection","useMultiSelection","useSelectAll","useArrowNav","useRefEffect","node","tabIndex","classList","add","setAttribute","__","remove","removeAttribute","WritingFlow","children","props","forwardedRef","jsxs","Fragment","jsx","className","clsx","_default","exports","default","forwardRef"],"sources":["@wordpress/block-editor/src/components/writing-flow/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { useMergeRefs, useRefEffect } from '@wordpress/compose';\nimport { forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport useMultiSelection from './use-multi-selection';\nimport useTabNav from './use-tab-nav';\nimport useArrowNav from './use-arrow-nav';\nimport useSelectAll from './use-select-all';\nimport useDragSelection from './use-drag-selection';\nimport useSelectionObserver from './use-selection-observer';\nimport useClickSelection from './use-click-selection';\nimport useInput from './use-input';\nimport useClipboardHandler from './use-clipboard-handler';\nimport { store as blockEditorStore } from '../../store';\n\nexport function useWritingFlow() {\n\tconst [ before, ref, after ] = useTabNav();\n\tconst hasMultiSelection = useSelect(\n\t\t( select ) => select( blockEditorStore ).hasMultiSelection(),\n\t\t[]\n\t);\n\n\treturn [\n\t\tbefore,\n\t\tuseMergeRefs( [\n\t\t\tref,\n\t\t\tuseClipboardHandler(),\n\t\t\tuseInput(),\n\t\t\tuseDragSelection(),\n\t\t\tuseSelectionObserver(),\n\t\t\tuseClickSelection(),\n\t\t\tuseMultiSelection(),\n\t\t\tuseSelectAll(),\n\t\t\tuseArrowNav(),\n\t\t\tuseRefEffect(\n\t\t\t\t( node ) => {\n\t\t\t\t\tnode.tabIndex = 0;\n\n\t\t\t\t\tif ( ! hasMultiSelection ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tnode.classList.add( 'has-multi-selection' );\n\t\t\t\t\tnode.setAttribute(\n\t\t\t\t\t\t'aria-label',\n\t\t\t\t\t\t__( 'Multiple selected blocks' )\n\t\t\t\t\t);\n\n\t\t\t\t\treturn () => {\n\t\t\t\t\t\tnode.classList.remove( 'has-multi-selection' );\n\t\t\t\t\t\tnode.removeAttribute( 'aria-label' );\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\t[ hasMultiSelection ]\n\t\t\t),\n\t\t] ),\n\t\tafter,\n\t];\n}\n\nfunction WritingFlow( { children, ...props }, forwardedRef ) {\n\tconst [ before, ref, after ] = useWritingFlow();\n\treturn (\n\t\t<>\n\t\t\t{ before }\n\t\t\t<div\n\t\t\t\t{ ...props }\n\t\t\t\tref={ useMergeRefs( [ ref, forwardedRef ] ) }\n\t\t\t\tclassName={ clsx(\n\t\t\t\t\tprops.className,\n\t\t\t\t\t'block-editor-writing-flow'\n\t\t\t\t) }\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</div>\n\t\t\t{ after }\n\t\t</>\n\t);\n}\n\n/**\n * Handles selection and navigation across blocks. This component should be\n * wrapped around BlockList.\n *\n * @param {Object} props Component properties.\n * @param {Element} props.children Children to be rendered.\n */\nexport default forwardRef( WritingFlow );\n"],"mappings":"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","ignoreList":[]}