@wordpress/block-editor 12.19.3 → 12.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/block-canvas/index.js +2 -0
  3. package/build/components/block-canvas/index.js.map +1 -1
  4. package/build/components/block-heading-level-dropdown/index.js +14 -17
  5. package/build/components/block-heading-level-dropdown/index.js.map +1 -1
  6. package/build/components/block-inspector/index.js +0 -3
  7. package/build/components/block-inspector/index.js.map +1 -1
  8. package/build/components/block-list/index.js +9 -9
  9. package/build/components/block-list/index.js.map +1 -1
  10. package/build/components/block-preview/index.js +4 -0
  11. package/build/components/block-preview/index.js.map +1 -1
  12. package/build/components/block-settings-menu/block-parent-selector-menu-item.js +54 -0
  13. package/build/components/block-settings-menu/block-parent-selector-menu-item.js.map +1 -0
  14. package/build/components/block-settings-menu/block-settings-dropdown.js +9 -37
  15. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  16. package/build/components/child-layout-control/index.js +37 -5
  17. package/build/components/child-layout-control/index.js.map +1 -1
  18. package/build/components/date-format-picker/index.js +0 -1
  19. package/build/components/date-format-picker/index.js.map +1 -1
  20. package/build/components/font-appearance-control/index.js +1 -2
  21. package/build/components/font-appearance-control/index.js.map +1 -1
  22. package/build/components/global-styles/dimensions-panel.js +30 -19
  23. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  24. package/build/components/inspector-controls-tabs/styles-tab.js +0 -4
  25. package/build/components/inspector-controls-tabs/styles-tab.js.map +1 -1
  26. package/build/components/observe-typing/index.js +5 -10
  27. package/build/components/observe-typing/index.js.map +1 -1
  28. package/build/components/rich-text/format-toolbar-container.js +1 -31
  29. package/build/components/rich-text/format-toolbar-container.js.map +1 -1
  30. package/build/components/rich-text/index.js +1 -2
  31. package/build/components/rich-text/index.js.map +1 -1
  32. package/build/components/skip-to-selected-block/index.js +7 -14
  33. package/build/components/skip-to-selected-block/index.js.map +1 -1
  34. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +0 -1
  35. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  36. package/build/components/url-input/index.js +5 -8
  37. package/build/components/url-input/index.js.map +1 -1
  38. package/build/hooks/layout-child.js +50 -1
  39. package/build/hooks/layout-child.js.map +1 -1
  40. package/build/hooks/position.js +0 -1
  41. package/build/hooks/position.js.map +1 -1
  42. package/build/layouts/grid.js +105 -12
  43. package/build/layouts/grid.js.map +1 -1
  44. package/build/store/actions.js +2 -30
  45. package/build/store/actions.js.map +1 -1
  46. package/build-module/components/block-canvas/index.js +2 -0
  47. package/build-module/components/block-canvas/index.js.map +1 -1
  48. package/build-module/components/block-heading-level-dropdown/index.js +14 -17
  49. package/build-module/components/block-heading-level-dropdown/index.js.map +1 -1
  50. package/build-module/components/block-inspector/index.js +1 -4
  51. package/build-module/components/block-inspector/index.js.map +1 -1
  52. package/build-module/components/block-list/index.js +9 -9
  53. package/build-module/components/block-list/index.js.map +1 -1
  54. package/build-module/components/block-preview/index.js +4 -0
  55. package/build-module/components/block-preview/index.js.map +1 -1
  56. package/build-module/components/block-settings-menu/block-parent-selector-menu-item.js +46 -0
  57. package/build-module/components/block-settings-menu/block-parent-selector-menu-item.js.map +1 -0
  58. package/build-module/components/block-settings-menu/block-settings-dropdown.js +12 -40
  59. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  60. package/build-module/components/child-layout-control/index.js +38 -6
  61. package/build-module/components/child-layout-control/index.js.map +1 -1
  62. package/build-module/components/date-format-picker/index.js +0 -1
  63. package/build-module/components/date-format-picker/index.js.map +1 -1
  64. package/build-module/components/font-appearance-control/index.js +1 -2
  65. package/build-module/components/font-appearance-control/index.js.map +1 -1
  66. package/build-module/components/global-styles/dimensions-panel.js +30 -19
  67. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  68. package/build-module/components/inspector-controls-tabs/styles-tab.js +0 -4
  69. package/build-module/components/inspector-controls-tabs/styles-tab.js.map +1 -1
  70. package/build-module/components/observe-typing/index.js +5 -10
  71. package/build-module/components/observe-typing/index.js.map +1 -1
  72. package/build-module/components/rich-text/format-toolbar-container.js +1 -31
  73. package/build-module/components/rich-text/format-toolbar-container.js.map +1 -1
  74. package/build-module/components/rich-text/index.js +1 -2
  75. package/build-module/components/rich-text/index.js.map +1 -1
  76. package/build-module/components/skip-to-selected-block/index.js +8 -14
  77. package/build-module/components/skip-to-selected-block/index.js.map +1 -1
  78. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +0 -1
  79. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  80. package/build-module/components/url-input/index.js +5 -8
  81. package/build-module/components/url-input/index.js.map +1 -1
  82. package/build-module/hooks/layout-child.js +50 -1
  83. package/build-module/hooks/layout-child.js.map +1 -1
  84. package/build-module/hooks/position.js +0 -1
  85. package/build-module/hooks/position.js.map +1 -1
  86. package/build-module/layouts/grid.js +107 -14
  87. package/build-module/layouts/grid.js.map +1 -1
  88. package/build-module/store/actions.js +2 -30
  89. package/build-module/store/actions.js.map +1 -1
  90. package/build-style/style-rtl.css +12 -17
  91. package/build-style/style.css +12 -17
  92. package/package.json +31 -32
  93. package/src/components/block-canvas/index.js +2 -0
  94. package/src/components/block-heading-level-dropdown/index.js +17 -25
  95. package/src/components/block-inspector/index.js +0 -11
  96. package/src/components/block-list/index.js +55 -55
  97. package/src/components/block-preview/index.js +6 -1
  98. package/src/components/block-settings-menu/block-parent-selector-menu-item.js +50 -0
  99. package/src/components/block-settings-menu/block-settings-dropdown.js +9 -50
  100. package/src/components/block-styles/style.scss +0 -4
  101. package/src/components/block-toolbar/style.scss +11 -6
  102. package/src/components/child-layout-control/index.js +85 -44
  103. package/src/components/date-format-picker/index.js +0 -1
  104. package/src/components/font-appearance-control/index.js +0 -1
  105. package/src/components/global-styles/dimensions-panel.js +36 -24
  106. package/src/components/global-styles/test/use-global-styles-output.js +3 -2
  107. package/src/components/inspector-controls-tabs/styles-tab.js +0 -7
  108. package/src/components/observe-typing/index.js +7 -10
  109. package/src/components/rich-text/format-toolbar-container.js +1 -48
  110. package/src/components/rich-text/index.js +0 -1
  111. package/src/components/skip-to-selected-block/index.js +10 -13
  112. package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +0 -1
  113. package/src/components/url-input/index.js +6 -15
  114. package/src/hooks/anchor.scss +1 -1
  115. package/src/hooks/layout-child.js +53 -1
  116. package/src/hooks/position.js +0 -1
  117. package/src/layouts/grid.js +131 -52
  118. package/src/layouts/test/grid.js +16 -2
  119. package/src/store/actions.js +2 -38
  120. package/src/store/test/actions.js +0 -101
  121. package/src/style.scss +0 -1
  122. package/build/components/default-style-picker/index.js +0 -70
  123. package/build/components/default-style-picker/index.js.map +0 -1
  124. package/build-module/components/default-style-picker/index.js +0 -63
  125. package/build-module/components/default-style-picker/index.js.map +0 -1
  126. package/src/components/block-settings-menu/style.scss +0 -3
  127. package/src/components/default-style-picker/index.js +0 -70
@@ -1 +1 @@
1
- {"version":3,"names":["hasBlockSupport","PanelBody","__","BlockStyles","DefaultStylePicker","InspectorControls","getBorderPanelLabel","StylesTab","blockName","clientId","hasBlockStyles","borderPanelLabel","createElement","Fragment","title","Slot","group","label","className"],"sources":["@wordpress/block-editor/src/components/inspector-controls-tabs/styles-tab.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { hasBlockSupport } from '@wordpress/blocks';\nimport { PanelBody } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BlockStyles from '../block-styles';\nimport DefaultStylePicker from '../default-style-picker';\nimport InspectorControls from '../inspector-controls';\nimport { getBorderPanelLabel } from '../../hooks/border';\n\nconst StylesTab = ( { blockName, clientId, hasBlockStyles } ) => {\n\tconst borderPanelLabel = getBorderPanelLabel( { blockName } );\n\n\treturn (\n\t\t<>\n\t\t\t{ hasBlockStyles && (\n\t\t\t\t<div>\n\t\t\t\t\t<PanelBody title={ __( 'Styles' ) }>\n\t\t\t\t\t\t<BlockStyles clientId={ clientId } />\n\t\t\t\t\t\t{ hasBlockSupport(\n\t\t\t\t\t\t\tblockName,\n\t\t\t\t\t\t\t'defaultStylePicker',\n\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t) && <DefaultStylePicker blockName={ blockName } /> }\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t<InspectorControls.Slot\n\t\t\t\tgroup=\"color\"\n\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t/>\n\t\t\t<InspectorControls.Slot\n\t\t\t\tgroup=\"background\"\n\t\t\t\tlabel={ __( 'Background' ) }\n\t\t\t/>\n\t\t\t<InspectorControls.Slot group=\"filter\" />\n\t\t\t<InspectorControls.Slot\n\t\t\t\tgroup=\"typography\"\n\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t/>\n\t\t\t<InspectorControls.Slot\n\t\t\t\tgroup=\"dimensions\"\n\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t/>\n\t\t\t<InspectorControls.Slot group=\"border\" label={ borderPanelLabel } />\n\t\t\t<InspectorControls.Slot group=\"styles\" />\n\t\t</>\n\t);\n};\n\nexport default StylesTab;\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,eAAe,QAAQ,mBAAmB;AACnD,SAASC,SAAS,QAAQ,uBAAuB;AACjD,SAASC,EAAE,QAAQ,iBAAiB;;AAEpC;AACA;AACA;AACA,OAAOC,WAAW,MAAM,iBAAiB;AACzC,OAAOC,kBAAkB,MAAM,yBAAyB;AACxD,OAAOC,iBAAiB,MAAM,uBAAuB;AACrD,SAASC,mBAAmB,QAAQ,oBAAoB;AAExD,MAAMC,SAAS,GAAGA,CAAE;EAAEC,SAAS;EAAEC,QAAQ;EAAEC;AAAe,CAAC,KAAM;EAChE,MAAMC,gBAAgB,GAAGL,mBAAmB,CAAE;IAAEE;EAAU,CAAE,CAAC;EAE7D,OACCI,aAAA,CAAAC,QAAA,QACGH,cAAc,IACfE,aAAA,cACCA,aAAA,CAACX,SAAS;IAACa,KAAK,EAAGZ,EAAE,CAAE,QAAS;EAAG,GAClCU,aAAA,CAACT,WAAW;IAACM,QAAQ,EAAGA;EAAU,CAAE,CAAC,EACnCT,eAAe,CAChBQ,SAAS,EACT,oBAAoB,EACpB,IACD,CAAC,IAAII,aAAA,CAACR,kBAAkB;IAACI,SAAS,EAAGA;EAAW,CAAE,CACxC,CACP,CACL,EACDI,aAAA,CAACP,iBAAiB,CAACU,IAAI;IACtBC,KAAK,EAAC,OAAO;IACbC,KAAK,EAAGf,EAAE,CAAE,OAAQ,CAAG;IACvBgB,SAAS,EAAC;EAA0C,CACpD,CAAC,EACFN,aAAA,CAACP,iBAAiB,CAACU,IAAI;IACtBC,KAAK,EAAC,YAAY;IAClBC,KAAK,EAAGf,EAAE,CAAE,YAAa;EAAG,CAC5B,CAAC,EACFU,aAAA,CAACP,iBAAiB,CAACU,IAAI;IAACC,KAAK,EAAC;EAAQ,CAAE,CAAC,EACzCJ,aAAA,CAACP,iBAAiB,CAACU,IAAI;IACtBC,KAAK,EAAC,YAAY;IAClBC,KAAK,EAAGf,EAAE,CAAE,YAAa;EAAG,CAC5B,CAAC,EACFU,aAAA,CAACP,iBAAiB,CAACU,IAAI;IACtBC,KAAK,EAAC,YAAY;IAClBC,KAAK,EAAGf,EAAE,CAAE,YAAa;EAAG,CAC5B,CAAC,EACFU,aAAA,CAACP,iBAAiB,CAACU,IAAI;IAACC,KAAK,EAAC,QAAQ;IAACC,KAAK,EAAGN;EAAkB,CAAE,CAAC,EACpEC,aAAA,CAACP,iBAAiB,CAACU,IAAI;IAACC,KAAK,EAAC;EAAQ,CAAE,CACvC,CAAC;AAEL,CAAC;AAED,eAAeT,SAAS"}
1
+ {"version":3,"names":["PanelBody","__","BlockStyles","InspectorControls","getBorderPanelLabel","StylesTab","blockName","clientId","hasBlockStyles","borderPanelLabel","createElement","Fragment","title","Slot","group","label","className"],"sources":["@wordpress/block-editor/src/components/inspector-controls-tabs/styles-tab.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { PanelBody } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BlockStyles from '../block-styles';\nimport InspectorControls from '../inspector-controls';\nimport { getBorderPanelLabel } from '../../hooks/border';\n\nconst StylesTab = ( { blockName, clientId, hasBlockStyles } ) => {\n\tconst borderPanelLabel = getBorderPanelLabel( { blockName } );\n\n\treturn (\n\t\t<>\n\t\t\t{ hasBlockStyles && (\n\t\t\t\t<div>\n\t\t\t\t\t<PanelBody title={ __( 'Styles' ) }>\n\t\t\t\t\t\t<BlockStyles clientId={ clientId } />\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t<InspectorControls.Slot\n\t\t\t\tgroup=\"color\"\n\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t/>\n\t\t\t<InspectorControls.Slot\n\t\t\t\tgroup=\"background\"\n\t\t\t\tlabel={ __( 'Background' ) }\n\t\t\t/>\n\t\t\t<InspectorControls.Slot group=\"filter\" />\n\t\t\t<InspectorControls.Slot\n\t\t\t\tgroup=\"typography\"\n\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t/>\n\t\t\t<InspectorControls.Slot\n\t\t\t\tgroup=\"dimensions\"\n\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t/>\n\t\t\t<InspectorControls.Slot group=\"border\" label={ borderPanelLabel } />\n\t\t\t<InspectorControls.Slot group=\"styles\" />\n\t\t</>\n\t);\n};\n\nexport default StylesTab;\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,SAAS,QAAQ,uBAAuB;AACjD,SAASC,EAAE,QAAQ,iBAAiB;;AAEpC;AACA;AACA;AACA,OAAOC,WAAW,MAAM,iBAAiB;AACzC,OAAOC,iBAAiB,MAAM,uBAAuB;AACrD,SAASC,mBAAmB,QAAQ,oBAAoB;AAExD,MAAMC,SAAS,GAAGA,CAAE;EAAEC,SAAS;EAAEC,QAAQ;EAAEC;AAAe,CAAC,KAAM;EAChE,MAAMC,gBAAgB,GAAGL,mBAAmB,CAAE;IAAEE;EAAU,CAAE,CAAC;EAE7D,OACCI,aAAA,CAAAC,QAAA,QACGH,cAAc,IACfE,aAAA,cACCA,aAAA,CAACV,SAAS;IAACY,KAAK,EAAGX,EAAE,CAAE,QAAS;EAAG,GAClCS,aAAA,CAACR,WAAW;IAACK,QAAQ,EAAGA;EAAU,CAAE,CAC1B,CACP,CACL,EACDG,aAAA,CAACP,iBAAiB,CAACU,IAAI;IACtBC,KAAK,EAAC,OAAO;IACbC,KAAK,EAAGd,EAAE,CAAE,OAAQ,CAAG;IACvBe,SAAS,EAAC;EAA0C,CACpD,CAAC,EACFN,aAAA,CAACP,iBAAiB,CAACU,IAAI;IACtBC,KAAK,EAAC,YAAY;IAClBC,KAAK,EAAGd,EAAE,CAAE,YAAa;EAAG,CAC5B,CAAC,EACFS,aAAA,CAACP,iBAAiB,CAACU,IAAI;IAACC,KAAK,EAAC;EAAQ,CAAE,CAAC,EACzCJ,aAAA,CAACP,iBAAiB,CAACU,IAAI;IACtBC,KAAK,EAAC,YAAY;IAClBC,KAAK,EAAGd,EAAE,CAAE,YAAa;EAAG,CAC5B,CAAC,EACFS,aAAA,CAACP,iBAAiB,CAACU,IAAI;IACtBC,KAAK,EAAC,YAAY;IAClBC,KAAK,EAAGd,EAAE,CAAE,YAAa;EAAG,CAC5B,CAAC,EACFS,aAAA,CAACP,iBAAiB,CAACU,IAAI;IAACC,KAAK,EAAC,QAAQ;IAACC,KAAK,EAAGN;EAAkB,CAAE,CAAC,EACpEC,aAAA,CAACP,iBAAiB,CAACU,IAAI;IAACC,KAAK,EAAC;EAAQ,CAAE,CACvC,CAAC;AAEL,CAAC;AAED,eAAeT,SAAS"}
@@ -90,16 +90,13 @@ export function useMouseMoveTypingReset() {
90
90
  */
91
91
  export function useTypingObserver() {
92
92
  const {
93
- isTyping,
94
- hasInlineToolbar
93
+ isTyping
95
94
  } = useSelect(select => {
96
95
  const {
97
- isTyping: _isTyping,
98
- getSettings
96
+ isTyping: _isTyping
99
97
  } = select(blockEditorStore);
100
98
  return {
101
- isTyping: _isTyping(),
102
- hasInlineToolbar: getSettings().hasInlineToolbar
99
+ isTyping: _isTyping()
103
100
  };
104
101
  }, []);
105
102
  const {
@@ -169,9 +166,7 @@ export function useTypingObserver() {
169
166
  }
170
167
  node.addEventListener('focus', stopTypingOnNonTextField);
171
168
  node.addEventListener('keydown', stopTypingOnEscapeKey);
172
- if (!hasInlineToolbar) {
173
- ownerDocument.addEventListener('selectionchange', stopTypingOnSelectionUncollapse);
174
- }
169
+ ownerDocument.addEventListener('selectionchange', stopTypingOnSelectionUncollapse);
175
170
  return () => {
176
171
  defaultView.clearTimeout(timerId);
177
172
  node.removeEventListener('focus', stopTypingOnNonTextField);
@@ -214,7 +209,7 @@ export function useTypingObserver() {
214
209
  node.removeEventListener('keypress', startTypingInTextField);
215
210
  node.removeEventListener('keydown', startTypingInTextField);
216
211
  };
217
- }, [isTyping, hasInlineToolbar, startTyping, stopTyping]);
212
+ }, [isTyping, startTyping, stopTyping]);
218
213
  return useMergeRefs([ref1, ref2]);
219
214
  }
220
215
  function ObserveTyping({
@@ -1 +1 @@
1
- {"version":3,"names":["useRefEffect","useMergeRefs","useSelect","useDispatch","isTextField","UP","RIGHT","DOWN","LEFT","ENTER","BACKSPACE","ESCAPE","TAB","store","blockEditorStore","KEY_DOWN_ELIGIBLE_KEY_CODES","Set","isKeyDownEligibleForStartTyping","event","keyCode","shiftKey","has","useMouseMoveTypingReset","isTyping","select","stopTyping","node","ownerDocument","lastClientX","lastClientY","stopTypingOnMouseMove","clientX","clientY","addEventListener","removeEventListener","useTypingObserver","hasInlineToolbar","_isTyping","getSettings","startTyping","ref1","ref2","defaultView","selection","getSelection","timerId","stopTypingOnNonTextField","target","setTimeout","stopTypingOnEscapeKey","stopTypingOnSelectionUncollapse","isCollapsed","clearTimeout","startTypingInTextField","type","contains","ObserveTyping","children","createElement","ref"],"sources":["@wordpress/block-editor/src/components/observe-typing/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useRefEffect, useMergeRefs } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { isTextField } from '@wordpress/dom';\nimport {\n\tUP,\n\tRIGHT,\n\tDOWN,\n\tLEFT,\n\tENTER,\n\tBACKSPACE,\n\tESCAPE,\n\tTAB,\n} from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\n/**\n * Set of key codes upon which typing is to be initiated on a keydown event.\n *\n * @type {Set<number>}\n */\nconst KEY_DOWN_ELIGIBLE_KEY_CODES = new Set( [\n\tUP,\n\tRIGHT,\n\tDOWN,\n\tLEFT,\n\tENTER,\n\tBACKSPACE,\n] );\n\n/**\n * Returns true if a given keydown event can be inferred as intent to start\n * typing, or false otherwise. A keydown is considered eligible if it is a\n * text navigation without shift active.\n *\n * @param {KeyboardEvent} event Keydown event to test.\n *\n * @return {boolean} Whether event is eligible to start typing.\n */\nfunction isKeyDownEligibleForStartTyping( event ) {\n\tconst { keyCode, shiftKey } = event;\n\treturn ! shiftKey && KEY_DOWN_ELIGIBLE_KEY_CODES.has( keyCode );\n}\n\n/**\n * Removes the `isTyping` flag when the mouse moves in the document of the given\n * element.\n */\nexport function useMouseMoveTypingReset() {\n\tconst isTyping = useSelect(\n\t\t( select ) => select( blockEditorStore ).isTyping(),\n\t\t[]\n\t);\n\tconst { stopTyping } = useDispatch( blockEditorStore );\n\n\treturn useRefEffect(\n\t\t( node ) => {\n\t\t\tif ( ! isTyping ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst { ownerDocument } = node;\n\t\t\tlet lastClientX;\n\t\t\tlet lastClientY;\n\n\t\t\t/**\n\t\t\t * On mouse move, unset typing flag if user has moved cursor.\n\t\t\t *\n\t\t\t * @param {MouseEvent} event Mousemove event.\n\t\t\t */\n\t\t\tfunction stopTypingOnMouseMove( event ) {\n\t\t\t\tconst { clientX, clientY } = event;\n\n\t\t\t\t// We need to check that the mouse really moved because Safari\n\t\t\t\t// triggers mousemove events when shift or ctrl are pressed.\n\t\t\t\tif (\n\t\t\t\t\tlastClientX &&\n\t\t\t\t\tlastClientY &&\n\t\t\t\t\t( lastClientX !== clientX || lastClientY !== clientY )\n\t\t\t\t) {\n\t\t\t\t\tstopTyping();\n\t\t\t\t}\n\n\t\t\t\tlastClientX = clientX;\n\t\t\t\tlastClientY = clientY;\n\t\t\t}\n\n\t\t\townerDocument.addEventListener(\n\t\t\t\t'mousemove',\n\t\t\t\tstopTypingOnMouseMove\n\t\t\t);\n\n\t\t\treturn () => {\n\t\t\t\townerDocument.removeEventListener(\n\t\t\t\t\t'mousemove',\n\t\t\t\t\tstopTypingOnMouseMove\n\t\t\t\t);\n\t\t\t};\n\t\t},\n\t\t[ isTyping, stopTyping ]\n\t);\n}\n\n/**\n * Sets and removes the `isTyping` flag based on user actions:\n *\n * - Sets the flag if the user types within the given element.\n * - Removes the flag when the user selects some text, focusses a non-text\n * field, presses ESC or TAB, or moves the mouse in the document.\n */\nexport function useTypingObserver() {\n\tconst { isTyping, hasInlineToolbar } = useSelect( ( select ) => {\n\t\tconst { isTyping: _isTyping, getSettings } = select( blockEditorStore );\n\t\treturn {\n\t\t\tisTyping: _isTyping(),\n\t\t\thasInlineToolbar: getSettings().hasInlineToolbar,\n\t\t};\n\t}, [] );\n\tconst { startTyping, stopTyping } = useDispatch( blockEditorStore );\n\n\tconst ref1 = useMouseMoveTypingReset();\n\tconst ref2 = useRefEffect(\n\t\t( node ) => {\n\t\t\tconst { ownerDocument } = node;\n\t\t\tconst { defaultView } = ownerDocument;\n\t\t\tconst selection = defaultView.getSelection();\n\n\t\t\t// Listeners to stop typing should only be added when typing.\n\t\t\t// Listeners to start typing should only be added when not typing.\n\t\t\tif ( isTyping ) {\n\t\t\t\tlet timerId;\n\n\t\t\t\t/**\n\t\t\t\t * Stops typing when focus transitions to a non-text field element.\n\t\t\t\t *\n\t\t\t\t * @param {FocusEvent} event Focus event.\n\t\t\t\t */\n\t\t\t\tfunction stopTypingOnNonTextField( event ) {\n\t\t\t\t\tconst { target } = event;\n\n\t\t\t\t\t// Since focus to a non-text field via arrow key will trigger\n\t\t\t\t\t// before the keydown event, wait until after current stack\n\t\t\t\t\t// before evaluating whether typing is to be stopped. Otherwise,\n\t\t\t\t\t// typing will re-start.\n\t\t\t\t\ttimerId = defaultView.setTimeout( () => {\n\t\t\t\t\t\tif ( ! isTextField( target ) ) {\n\t\t\t\t\t\t\tstopTyping();\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Unsets typing flag if user presses Escape while typing flag is\n\t\t\t\t * active.\n\t\t\t\t *\n\t\t\t\t * @param {KeyboardEvent} event Keypress or keydown event to\n\t\t\t\t * interpret.\n\t\t\t\t */\n\t\t\t\tfunction stopTypingOnEscapeKey( event ) {\n\t\t\t\t\tconst { keyCode } = event;\n\n\t\t\t\t\tif ( keyCode === ESCAPE || keyCode === TAB ) {\n\t\t\t\t\t\tstopTyping();\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * On selection change, unset typing flag if user has made an\n\t\t\t\t * uncollapsed (shift) selection.\n\t\t\t\t */\n\t\t\t\tfunction stopTypingOnSelectionUncollapse() {\n\t\t\t\t\tif ( ! selection.isCollapsed ) {\n\t\t\t\t\t\tstopTyping();\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tnode.addEventListener( 'focus', stopTypingOnNonTextField );\n\t\t\t\tnode.addEventListener( 'keydown', stopTypingOnEscapeKey );\n\n\t\t\t\tif ( ! hasInlineToolbar ) {\n\t\t\t\t\townerDocument.addEventListener(\n\t\t\t\t\t\t'selectionchange',\n\t\t\t\t\t\tstopTypingOnSelectionUncollapse\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn () => {\n\t\t\t\t\tdefaultView.clearTimeout( timerId );\n\t\t\t\t\tnode.removeEventListener(\n\t\t\t\t\t\t'focus',\n\t\t\t\t\t\tstopTypingOnNonTextField\n\t\t\t\t\t);\n\t\t\t\t\tnode.removeEventListener(\n\t\t\t\t\t\t'keydown',\n\t\t\t\t\t\tstopTypingOnEscapeKey\n\t\t\t\t\t);\n\t\t\t\t\townerDocument.removeEventListener(\n\t\t\t\t\t\t'selectionchange',\n\t\t\t\t\t\tstopTypingOnSelectionUncollapse\n\t\t\t\t\t);\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Handles a keypress or keydown event to infer intention to start\n\t\t\t * typing.\n\t\t\t *\n\t\t\t * @param {KeyboardEvent} event Keypress or keydown event to interpret.\n\t\t\t */\n\t\t\tfunction startTypingInTextField( event ) {\n\t\t\t\tconst { type, target } = event;\n\n\t\t\t\t// Abort early if already typing, or key press is incurred outside a\n\t\t\t\t// text field (e.g. arrow-ing through toolbar buttons).\n\t\t\t\t// Ignore typing if outside the current DOM container\n\t\t\t\tif ( ! isTextField( target ) || ! node.contains( target ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Special-case keydown because certain keys do not emit a keypress\n\t\t\t\t// event. Conversely avoid keydown as the canonical event since\n\t\t\t\t// there are many keydown which are explicitly not targeted for\n\t\t\t\t// typing.\n\t\t\t\tif (\n\t\t\t\t\ttype === 'keydown' &&\n\t\t\t\t\t! isKeyDownEligibleForStartTyping( event )\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tstartTyping();\n\t\t\t}\n\n\t\t\tnode.addEventListener( 'keypress', startTypingInTextField );\n\t\t\tnode.addEventListener( 'keydown', startTypingInTextField );\n\n\t\t\treturn () => {\n\t\t\t\tnode.removeEventListener( 'keypress', startTypingInTextField );\n\t\t\t\tnode.removeEventListener( 'keydown', startTypingInTextField );\n\t\t\t};\n\t\t},\n\t\t[ isTyping, hasInlineToolbar, startTyping, stopTyping ]\n\t);\n\n\treturn useMergeRefs( [ ref1, ref2 ] );\n}\n\nfunction ObserveTyping( { children } ) {\n\treturn <div ref={ useTypingObserver() }>{ children }</div>;\n}\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/observe-typing/README.md\n */\nexport default ObserveTyping;\n"],"mappings":"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"}
1
+ {"version":3,"names":["useRefEffect","useMergeRefs","useSelect","useDispatch","isTextField","UP","RIGHT","DOWN","LEFT","ENTER","BACKSPACE","ESCAPE","TAB","store","blockEditorStore","KEY_DOWN_ELIGIBLE_KEY_CODES","Set","isKeyDownEligibleForStartTyping","event","keyCode","shiftKey","has","useMouseMoveTypingReset","isTyping","select","stopTyping","node","ownerDocument","lastClientX","lastClientY","stopTypingOnMouseMove","clientX","clientY","addEventListener","removeEventListener","useTypingObserver","_isTyping","startTyping","ref1","ref2","defaultView","selection","getSelection","timerId","stopTypingOnNonTextField","target","setTimeout","stopTypingOnEscapeKey","stopTypingOnSelectionUncollapse","isCollapsed","clearTimeout","startTypingInTextField","type","contains","ObserveTyping","children","createElement","ref"],"sources":["@wordpress/block-editor/src/components/observe-typing/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useRefEffect, useMergeRefs } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { isTextField } from '@wordpress/dom';\nimport {\n\tUP,\n\tRIGHT,\n\tDOWN,\n\tLEFT,\n\tENTER,\n\tBACKSPACE,\n\tESCAPE,\n\tTAB,\n} from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\n/**\n * Set of key codes upon which typing is to be initiated on a keydown event.\n *\n * @type {Set<number>}\n */\nconst KEY_DOWN_ELIGIBLE_KEY_CODES = new Set( [\n\tUP,\n\tRIGHT,\n\tDOWN,\n\tLEFT,\n\tENTER,\n\tBACKSPACE,\n] );\n\n/**\n * Returns true if a given keydown event can be inferred as intent to start\n * typing, or false otherwise. A keydown is considered eligible if it is a\n * text navigation without shift active.\n *\n * @param {KeyboardEvent} event Keydown event to test.\n *\n * @return {boolean} Whether event is eligible to start typing.\n */\nfunction isKeyDownEligibleForStartTyping( event ) {\n\tconst { keyCode, shiftKey } = event;\n\treturn ! shiftKey && KEY_DOWN_ELIGIBLE_KEY_CODES.has( keyCode );\n}\n\n/**\n * Removes the `isTyping` flag when the mouse moves in the document of the given\n * element.\n */\nexport function useMouseMoveTypingReset() {\n\tconst isTyping = useSelect(\n\t\t( select ) => select( blockEditorStore ).isTyping(),\n\t\t[]\n\t);\n\tconst { stopTyping } = useDispatch( blockEditorStore );\n\n\treturn useRefEffect(\n\t\t( node ) => {\n\t\t\tif ( ! isTyping ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst { ownerDocument } = node;\n\t\t\tlet lastClientX;\n\t\t\tlet lastClientY;\n\n\t\t\t/**\n\t\t\t * On mouse move, unset typing flag if user has moved cursor.\n\t\t\t *\n\t\t\t * @param {MouseEvent} event Mousemove event.\n\t\t\t */\n\t\t\tfunction stopTypingOnMouseMove( event ) {\n\t\t\t\tconst { clientX, clientY } = event;\n\n\t\t\t\t// We need to check that the mouse really moved because Safari\n\t\t\t\t// triggers mousemove events when shift or ctrl are pressed.\n\t\t\t\tif (\n\t\t\t\t\tlastClientX &&\n\t\t\t\t\tlastClientY &&\n\t\t\t\t\t( lastClientX !== clientX || lastClientY !== clientY )\n\t\t\t\t) {\n\t\t\t\t\tstopTyping();\n\t\t\t\t}\n\n\t\t\t\tlastClientX = clientX;\n\t\t\t\tlastClientY = clientY;\n\t\t\t}\n\n\t\t\townerDocument.addEventListener(\n\t\t\t\t'mousemove',\n\t\t\t\tstopTypingOnMouseMove\n\t\t\t);\n\n\t\t\treturn () => {\n\t\t\t\townerDocument.removeEventListener(\n\t\t\t\t\t'mousemove',\n\t\t\t\t\tstopTypingOnMouseMove\n\t\t\t\t);\n\t\t\t};\n\t\t},\n\t\t[ isTyping, stopTyping ]\n\t);\n}\n\n/**\n * Sets and removes the `isTyping` flag based on user actions:\n *\n * - Sets the flag if the user types within the given element.\n * - Removes the flag when the user selects some text, focusses a non-text\n * field, presses ESC or TAB, or moves the mouse in the document.\n */\nexport function useTypingObserver() {\n\tconst { isTyping } = useSelect( ( select ) => {\n\t\tconst { isTyping: _isTyping } = select( blockEditorStore );\n\t\treturn {\n\t\t\tisTyping: _isTyping(),\n\t\t};\n\t}, [] );\n\tconst { startTyping, stopTyping } = useDispatch( blockEditorStore );\n\n\tconst ref1 = useMouseMoveTypingReset();\n\tconst ref2 = useRefEffect(\n\t\t( node ) => {\n\t\t\tconst { ownerDocument } = node;\n\t\t\tconst { defaultView } = ownerDocument;\n\t\t\tconst selection = defaultView.getSelection();\n\n\t\t\t// Listeners to stop typing should only be added when typing.\n\t\t\t// Listeners to start typing should only be added when not typing.\n\t\t\tif ( isTyping ) {\n\t\t\t\tlet timerId;\n\n\t\t\t\t/**\n\t\t\t\t * Stops typing when focus transitions to a non-text field element.\n\t\t\t\t *\n\t\t\t\t * @param {FocusEvent} event Focus event.\n\t\t\t\t */\n\t\t\t\tfunction stopTypingOnNonTextField( event ) {\n\t\t\t\t\tconst { target } = event;\n\n\t\t\t\t\t// Since focus to a non-text field via arrow key will trigger\n\t\t\t\t\t// before the keydown event, wait until after current stack\n\t\t\t\t\t// before evaluating whether typing is to be stopped. Otherwise,\n\t\t\t\t\t// typing will re-start.\n\t\t\t\t\ttimerId = defaultView.setTimeout( () => {\n\t\t\t\t\t\tif ( ! isTextField( target ) ) {\n\t\t\t\t\t\t\tstopTyping();\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Unsets typing flag if user presses Escape while typing flag is\n\t\t\t\t * active.\n\t\t\t\t *\n\t\t\t\t * @param {KeyboardEvent} event Keypress or keydown event to\n\t\t\t\t * interpret.\n\t\t\t\t */\n\t\t\t\tfunction stopTypingOnEscapeKey( event ) {\n\t\t\t\t\tconst { keyCode } = event;\n\n\t\t\t\t\tif ( keyCode === ESCAPE || keyCode === TAB ) {\n\t\t\t\t\t\tstopTyping();\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * On selection change, unset typing flag if user has made an\n\t\t\t\t * uncollapsed (shift) selection.\n\t\t\t\t */\n\t\t\t\tfunction stopTypingOnSelectionUncollapse() {\n\t\t\t\t\tif ( ! selection.isCollapsed ) {\n\t\t\t\t\t\tstopTyping();\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tnode.addEventListener( 'focus', stopTypingOnNonTextField );\n\t\t\t\tnode.addEventListener( 'keydown', stopTypingOnEscapeKey );\n\n\t\t\t\townerDocument.addEventListener(\n\t\t\t\t\t'selectionchange',\n\t\t\t\t\tstopTypingOnSelectionUncollapse\n\t\t\t\t);\n\n\t\t\t\treturn () => {\n\t\t\t\t\tdefaultView.clearTimeout( timerId );\n\t\t\t\t\tnode.removeEventListener(\n\t\t\t\t\t\t'focus',\n\t\t\t\t\t\tstopTypingOnNonTextField\n\t\t\t\t\t);\n\t\t\t\t\tnode.removeEventListener(\n\t\t\t\t\t\t'keydown',\n\t\t\t\t\t\tstopTypingOnEscapeKey\n\t\t\t\t\t);\n\t\t\t\t\townerDocument.removeEventListener(\n\t\t\t\t\t\t'selectionchange',\n\t\t\t\t\t\tstopTypingOnSelectionUncollapse\n\t\t\t\t\t);\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Handles a keypress or keydown event to infer intention to start\n\t\t\t * typing.\n\t\t\t *\n\t\t\t * @param {KeyboardEvent} event Keypress or keydown event to interpret.\n\t\t\t */\n\t\t\tfunction startTypingInTextField( event ) {\n\t\t\t\tconst { type, target } = event;\n\n\t\t\t\t// Abort early if already typing, or key press is incurred outside a\n\t\t\t\t// text field (e.g. arrow-ing through toolbar buttons).\n\t\t\t\t// Ignore typing if outside the current DOM container\n\t\t\t\tif ( ! isTextField( target ) || ! node.contains( target ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Special-case keydown because certain keys do not emit a keypress\n\t\t\t\t// event. Conversely avoid keydown as the canonical event since\n\t\t\t\t// there are many keydown which are explicitly not targeted for\n\t\t\t\t// typing.\n\t\t\t\tif (\n\t\t\t\t\ttype === 'keydown' &&\n\t\t\t\t\t! isKeyDownEligibleForStartTyping( event )\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tstartTyping();\n\t\t\t}\n\n\t\t\tnode.addEventListener( 'keypress', startTypingInTextField );\n\t\t\tnode.addEventListener( 'keydown', startTypingInTextField );\n\n\t\t\treturn () => {\n\t\t\t\tnode.removeEventListener( 'keypress', startTypingInTextField );\n\t\t\t\tnode.removeEventListener( 'keydown', startTypingInTextField );\n\t\t\t};\n\t\t},\n\t\t[ isTyping, startTyping, stopTyping ]\n\t);\n\n\treturn useMergeRefs( [ ref1, ref2 ] );\n}\n\nfunction ObserveTyping( { children } ) {\n\treturn <div ref={ useTypingObserver() }>{ children }</div>;\n}\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/observe-typing/README.md\n */\nexport default ObserveTyping;\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,YAAY,EAAEC,YAAY,QAAQ,oBAAoB;AAC/D,SAASC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASC,WAAW,QAAQ,gBAAgB;AAC5C,SACCC,EAAE,EACFC,KAAK,EACLC,IAAI,EACJC,IAAI,EACJC,KAAK,EACLC,SAAS,EACTC,MAAM,EACNC,GAAG,QACG,qBAAqB;;AAE5B;AACA;AACA;AACA,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,aAAa;;AAEvD;AACA;AACA;AACA;AACA;AACA,MAAMC,2BAA2B,GAAG,IAAIC,GAAG,CAAE,CAC5CX,EAAE,EACFC,KAAK,EACLC,IAAI,EACJC,IAAI,EACJC,KAAK,EACLC,SAAS,CACR,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASO,+BAA+BA,CAAEC,KAAK,EAAG;EACjD,MAAM;IAAEC,OAAO;IAAEC;EAAS,CAAC,GAAGF,KAAK;EACnC,OAAO,CAAEE,QAAQ,IAAIL,2BAA2B,CAACM,GAAG,CAAEF,OAAQ,CAAC;AAChE;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASG,uBAAuBA,CAAA,EAAG;EACzC,MAAMC,QAAQ,GAAGrB,SAAS,CACvBsB,MAAM,IAAMA,MAAM,CAAEV,gBAAiB,CAAC,CAACS,QAAQ,CAAC,CAAC,EACnD,EACD,CAAC;EACD,MAAM;IAAEE;EAAW,CAAC,GAAGtB,WAAW,CAAEW,gBAAiB,CAAC;EAEtD,OAAOd,YAAY,CAChB0B,IAAI,IAAM;IACX,IAAK,CAAEH,QAAQ,EAAG;MACjB;IACD;IAEA,MAAM;MAAEI;IAAc,CAAC,GAAGD,IAAI;IAC9B,IAAIE,WAAW;IACf,IAAIC,WAAW;;IAEf;AACH;AACA;AACA;AACA;IACG,SAASC,qBAAqBA,CAAEZ,KAAK,EAAG;MACvC,MAAM;QAAEa,OAAO;QAAEC;MAAQ,CAAC,GAAGd,KAAK;;MAElC;MACA;MACA,IACCU,WAAW,IACXC,WAAW,KACTD,WAAW,KAAKG,OAAO,IAAIF,WAAW,KAAKG,OAAO,CAAE,EACrD;QACDP,UAAU,CAAC,CAAC;MACb;MAEAG,WAAW,GAAGG,OAAO;MACrBF,WAAW,GAAGG,OAAO;IACtB;IAEAL,aAAa,CAACM,gBAAgB,CAC7B,WAAW,EACXH,qBACD,CAAC;IAED,OAAO,MAAM;MACZH,aAAa,CAACO,mBAAmB,CAChC,WAAW,EACXJ,qBACD,CAAC;IACF,CAAC;EACF,CAAC,EACD,CAAEP,QAAQ,EAAEE,UAAU,CACvB,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASU,iBAAiBA,CAAA,EAAG;EACnC,MAAM;IAAEZ;EAAS,CAAC,GAAGrB,SAAS,CAAIsB,MAAM,IAAM;IAC7C,MAAM;MAAED,QAAQ,EAAEa;IAAU,CAAC,GAAGZ,MAAM,CAAEV,gBAAiB,CAAC;IAC1D,OAAO;MACNS,QAAQ,EAAEa,SAAS,CAAC;IACrB,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EACP,MAAM;IAAEC,WAAW;IAAEZ;EAAW,CAAC,GAAGtB,WAAW,CAAEW,gBAAiB,CAAC;EAEnE,MAAMwB,IAAI,GAAGhB,uBAAuB,CAAC,CAAC;EACtC,MAAMiB,IAAI,GAAGvC,YAAY,CACtB0B,IAAI,IAAM;IACX,MAAM;MAAEC;IAAc,CAAC,GAAGD,IAAI;IAC9B,MAAM;MAAEc;IAAY,CAAC,GAAGb,aAAa;IACrC,MAAMc,SAAS,GAAGD,WAAW,CAACE,YAAY,CAAC,CAAC;;IAE5C;IACA;IACA,IAAKnB,QAAQ,EAAG;MACf,IAAIoB,OAAO;;MAEX;AACJ;AACA;AACA;AACA;MACI,SAASC,wBAAwBA,CAAE1B,KAAK,EAAG;QAC1C,MAAM;UAAE2B;QAAO,CAAC,GAAG3B,KAAK;;QAExB;QACA;QACA;QACA;QACAyB,OAAO,GAAGH,WAAW,CAACM,UAAU,CAAE,MAAM;UACvC,IAAK,CAAE1C,WAAW,CAAEyC,MAAO,CAAC,EAAG;YAC9BpB,UAAU,CAAC,CAAC;UACb;QACD,CAAE,CAAC;MACJ;;MAEA;AACJ;AACA;AACA;AACA;AACA;AACA;MACI,SAASsB,qBAAqBA,CAAE7B,KAAK,EAAG;QACvC,MAAM;UAAEC;QAAQ,CAAC,GAAGD,KAAK;QAEzB,IAAKC,OAAO,KAAKR,MAAM,IAAIQ,OAAO,KAAKP,GAAG,EAAG;UAC5Ca,UAAU,CAAC,CAAC;QACb;MACD;;MAEA;AACJ;AACA;AACA;MACI,SAASuB,+BAA+BA,CAAA,EAAG;QAC1C,IAAK,CAAEP,SAAS,CAACQ,WAAW,EAAG;UAC9BxB,UAAU,CAAC,CAAC;QACb;MACD;MAEAC,IAAI,CAACO,gBAAgB,CAAE,OAAO,EAAEW,wBAAyB,CAAC;MAC1DlB,IAAI,CAACO,gBAAgB,CAAE,SAAS,EAAEc,qBAAsB,CAAC;MAEzDpB,aAAa,CAACM,gBAAgB,CAC7B,iBAAiB,EACjBe,+BACD,CAAC;MAED,OAAO,MAAM;QACZR,WAAW,CAACU,YAAY,CAAEP,OAAQ,CAAC;QACnCjB,IAAI,CAACQ,mBAAmB,CACvB,OAAO,EACPU,wBACD,CAAC;QACDlB,IAAI,CAACQ,mBAAmB,CACvB,SAAS,EACTa,qBACD,CAAC;QACDpB,aAAa,CAACO,mBAAmB,CAChC,iBAAiB,EACjBc,+BACD,CAAC;MACF,CAAC;IACF;;IAEA;AACH;AACA;AACA;AACA;AACA;IACG,SAASG,sBAAsBA,CAAEjC,KAAK,EAAG;MACxC,MAAM;QAAEkC,IAAI;QAAEP;MAAO,CAAC,GAAG3B,KAAK;;MAE9B;MACA;MACA;MACA,IAAK,CAAEd,WAAW,CAAEyC,MAAO,CAAC,IAAI,CAAEnB,IAAI,CAAC2B,QAAQ,CAAER,MAAO,CAAC,EAAG;QAC3D;MACD;;MAEA;MACA;MACA;MACA;MACA,IACCO,IAAI,KAAK,SAAS,IAClB,CAAEnC,+BAA+B,CAAEC,KAAM,CAAC,EACzC;QACD;MACD;MAEAmB,WAAW,CAAC,CAAC;IACd;IAEAX,IAAI,CAACO,gBAAgB,CAAE,UAAU,EAAEkB,sBAAuB,CAAC;IAC3DzB,IAAI,CAACO,gBAAgB,CAAE,SAAS,EAAEkB,sBAAuB,CAAC;IAE1D,OAAO,MAAM;MACZzB,IAAI,CAACQ,mBAAmB,CAAE,UAAU,EAAEiB,sBAAuB,CAAC;MAC9DzB,IAAI,CAACQ,mBAAmB,CAAE,SAAS,EAAEiB,sBAAuB,CAAC;IAC9D,CAAC;EACF,CAAC,EACD,CAAE5B,QAAQ,EAAEc,WAAW,EAAEZ,UAAU,CACpC,CAAC;EAED,OAAOxB,YAAY,CAAE,CAAEqC,IAAI,EAAEC,IAAI,CAAG,CAAC;AACtC;AAEA,SAASe,aAAaA,CAAE;EAAEC;AAAS,CAAC,EAAG;EACtC,OAAOC,aAAA;IAAKC,GAAG,EAAGtB,iBAAiB,CAAC;EAAG,GAAGoB,QAAe,CAAC;AAC3D;;AAEA;AACA;AACA;AACA,eAAeD,aAAa"}
@@ -4,8 +4,6 @@ import { createElement } from "react";
4
4
  */
5
5
  import { __ } from '@wordpress/i18n';
6
6
  import { Popover, ToolbarGroup } from '@wordpress/components';
7
- import { useSelect } from '@wordpress/data';
8
- import { isCollapsed, getActiveFormats, useAnchor, store as richTextStore } from '@wordpress/rich-text';
9
7
 
10
8
  /**
11
9
  * Internal dependencies
@@ -13,22 +11,6 @@ import { isCollapsed, getActiveFormats, useAnchor, store as richTextStore } from
13
11
  import BlockControls from '../block-controls';
14
12
  import FormatToolbar from './format-toolbar';
15
13
  import NavigableToolbar from '../navigable-toolbar';
16
- import { store as blockEditorStore } from '../../store';
17
- function InlineSelectionToolbar({
18
- editableContentElement,
19
- activeFormats
20
- }) {
21
- const lastFormat = activeFormats[activeFormats.length - 1];
22
- const lastFormatType = lastFormat?.type;
23
- const settings = useSelect(select => select(richTextStore).getFormatType(lastFormatType), [lastFormatType]);
24
- const popoverAnchor = useAnchor({
25
- editableContentElement,
26
- settings
27
- });
28
- return createElement(InlineToolbar, {
29
- popoverAnchor: popoverAnchor
30
- });
31
- }
32
14
  function InlineToolbar({
33
15
  popoverAnchor
34
16
  }) {
@@ -46,25 +28,13 @@ function InlineToolbar({
46
28
  }
47
29
  const FormatToolbarContainer = ({
48
30
  inline,
49
- editableContentElement,
50
- value
31
+ editableContentElement
51
32
  }) => {
52
- const hasInlineToolbar = useSelect(select => select(blockEditorStore).getSettings().hasInlineToolbar, []);
53
33
  if (inline) {
54
34
  return createElement(InlineToolbar, {
55
35
  popoverAnchor: editableContentElement
56
36
  });
57
37
  }
58
- if (hasInlineToolbar) {
59
- const activeFormats = getActiveFormats(value);
60
- if (isCollapsed(value) && !activeFormats.length) {
61
- return null;
62
- }
63
- return createElement(InlineSelectionToolbar, {
64
- editableContentElement: editableContentElement,
65
- activeFormats: activeFormats
66
- });
67
- }
68
38
 
69
39
  // Render regular toolbar.
70
40
  return createElement(BlockControls, {
@@ -1 +1 @@
1
- {"version":3,"names":["__","Popover","ToolbarGroup","useSelect","isCollapsed","getActiveFormats","useAnchor","store","richTextStore","BlockControls","FormatToolbar","NavigableToolbar","blockEditorStore","InlineSelectionToolbar","editableContentElement","activeFormats","lastFormat","length","lastFormatType","type","settings","select","getFormatType","popoverAnchor","createElement","InlineToolbar","placement","focusOnMount","anchor","className","__unstableSlotName","FormatToolbarContainer","inline","value","hasInlineToolbar","getSettings","group"],"sources":["@wordpress/block-editor/src/components/rich-text/format-toolbar-container.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Popover, ToolbarGroup } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport {\n\tisCollapsed,\n\tgetActiveFormats,\n\tuseAnchor,\n\tstore as richTextStore,\n} from '@wordpress/rich-text';\n\n/**\n * Internal dependencies\n */\nimport BlockControls from '../block-controls';\nimport FormatToolbar from './format-toolbar';\nimport NavigableToolbar from '../navigable-toolbar';\nimport { store as blockEditorStore } from '../../store';\n\nfunction InlineSelectionToolbar( { editableContentElement, activeFormats } ) {\n\tconst lastFormat = activeFormats[ activeFormats.length - 1 ];\n\tconst lastFormatType = lastFormat?.type;\n\tconst settings = useSelect(\n\t\t( select ) => select( richTextStore ).getFormatType( lastFormatType ),\n\t\t[ lastFormatType ]\n\t);\n\tconst popoverAnchor = useAnchor( {\n\t\teditableContentElement,\n\t\tsettings,\n\t} );\n\n\treturn <InlineToolbar popoverAnchor={ popoverAnchor } />;\n}\n\nfunction InlineToolbar( { popoverAnchor } ) {\n\treturn (\n\t\t<Popover\n\t\t\tplacement=\"top\"\n\t\t\tfocusOnMount={ false }\n\t\t\tanchor={ popoverAnchor }\n\t\t\tclassName=\"block-editor-rich-text__inline-format-toolbar\"\n\t\t\t__unstableSlotName=\"block-toolbar\"\n\t\t>\n\t\t\t<NavigableToolbar\n\t\t\t\tclassName=\"block-editor-rich-text__inline-format-toolbar-group\"\n\t\t\t\t/* translators: accessibility text for the inline format toolbar */\n\t\t\t\taria-label={ __( 'Format tools' ) }\n\t\t\t>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<FormatToolbar />\n\t\t\t\t</ToolbarGroup>\n\t\t\t</NavigableToolbar>\n\t\t</Popover>\n\t);\n}\n\nconst FormatToolbarContainer = ( {\n\tinline,\n\teditableContentElement,\n\tvalue,\n} ) => {\n\tconst hasInlineToolbar = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings().hasInlineToolbar,\n\t\t[]\n\t);\n\n\tif ( inline ) {\n\t\treturn <InlineToolbar popoverAnchor={ editableContentElement } />;\n\t}\n\n\tif ( hasInlineToolbar ) {\n\t\tconst activeFormats = getActiveFormats( value );\n\n\t\tif ( isCollapsed( value ) && ! activeFormats.length ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn (\n\t\t\t<InlineSelectionToolbar\n\t\t\t\teditableContentElement={ editableContentElement }\n\t\t\t\tactiveFormats={ activeFormats }\n\t\t\t/>\n\t\t);\n\t}\n\n\t// Render regular toolbar.\n\treturn (\n\t\t<BlockControls group=\"inline\">\n\t\t\t<FormatToolbar />\n\t\t</BlockControls>\n\t);\n};\n\nexport default FormatToolbarContainer;\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,OAAO,EAAEC,YAAY,QAAQ,uBAAuB;AAC7D,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SACCC,WAAW,EACXC,gBAAgB,EAChBC,SAAS,EACTC,KAAK,IAAIC,aAAa,QAChB,sBAAsB;;AAE7B;AACA;AACA;AACA,OAAOC,aAAa,MAAM,mBAAmB;AAC7C,OAAOC,aAAa,MAAM,kBAAkB;AAC5C,OAAOC,gBAAgB,MAAM,sBAAsB;AACnD,SAASJ,KAAK,IAAIK,gBAAgB,QAAQ,aAAa;AAEvD,SAASC,sBAAsBA,CAAE;EAAEC,sBAAsB;EAAEC;AAAc,CAAC,EAAG;EAC5E,MAAMC,UAAU,GAAGD,aAAa,CAAEA,aAAa,CAACE,MAAM,GAAG,CAAC,CAAE;EAC5D,MAAMC,cAAc,GAAGF,UAAU,EAAEG,IAAI;EACvC,MAAMC,QAAQ,GAAGjB,SAAS,CACvBkB,MAAM,IAAMA,MAAM,CAAEb,aAAc,CAAC,CAACc,aAAa,CAAEJ,cAAe,CAAC,EACrE,CAAEA,cAAc,CACjB,CAAC;EACD,MAAMK,aAAa,GAAGjB,SAAS,CAAE;IAChCQ,sBAAsB;IACtBM;EACD,CAAE,CAAC;EAEH,OAAOI,aAAA,CAACC,aAAa;IAACF,aAAa,EAAGA;EAAe,CAAE,CAAC;AACzD;AAEA,SAASE,aAAaA,CAAE;EAAEF;AAAc,CAAC,EAAG;EAC3C,OACCC,aAAA,CAACvB,OAAO;IACPyB,SAAS,EAAC,KAAK;IACfC,YAAY,EAAG,KAAO;IACtBC,MAAM,EAAGL,aAAe;IACxBM,SAAS,EAAC,+CAA+C;IACzDC,kBAAkB,EAAC;EAAe,GAElCN,aAAA,CAACb,gBAAgB;IAChBkB,SAAS,EAAC;IACV;IACA,cAAa7B,EAAE,CAAE,cAAe;EAAG,GAEnCwB,aAAA,CAACtB,YAAY,QACZsB,aAAA,CAACd,aAAa,MAAE,CACH,CACG,CACV,CAAC;AAEZ;AAEA,MAAMqB,sBAAsB,GAAGA,CAAE;EAChCC,MAAM;EACNlB,sBAAsB;EACtBmB;AACD,CAAC,KAAM;EACN,MAAMC,gBAAgB,GAAG/B,SAAS,CAC/BkB,MAAM,IAAMA,MAAM,CAAET,gBAAiB,CAAC,CAACuB,WAAW,CAAC,CAAC,CAACD,gBAAgB,EACvE,EACD,CAAC;EAED,IAAKF,MAAM,EAAG;IACb,OAAOR,aAAA,CAACC,aAAa;MAACF,aAAa,EAAGT;IAAwB,CAAE,CAAC;EAClE;EAEA,IAAKoB,gBAAgB,EAAG;IACvB,MAAMnB,aAAa,GAAGV,gBAAgB,CAAE4B,KAAM,CAAC;IAE/C,IAAK7B,WAAW,CAAE6B,KAAM,CAAC,IAAI,CAAElB,aAAa,CAACE,MAAM,EAAG;MACrD,OAAO,IAAI;IACZ;IAEA,OACCO,aAAA,CAACX,sBAAsB;MACtBC,sBAAsB,EAAGA,sBAAwB;MACjDC,aAAa,EAAGA;IAAe,CAC/B,CAAC;EAEJ;;EAEA;EACA,OACCS,aAAA,CAACf,aAAa;IAAC2B,KAAK,EAAC;EAAQ,GAC5BZ,aAAA,CAACd,aAAa,MAAE,CACF,CAAC;AAElB,CAAC;AAED,eAAeqB,sBAAsB"}
1
+ {"version":3,"names":["__","Popover","ToolbarGroup","BlockControls","FormatToolbar","NavigableToolbar","InlineToolbar","popoverAnchor","createElement","placement","focusOnMount","anchor","className","__unstableSlotName","FormatToolbarContainer","inline","editableContentElement","group"],"sources":["@wordpress/block-editor/src/components/rich-text/format-toolbar-container.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Popover, ToolbarGroup } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport BlockControls from '../block-controls';\nimport FormatToolbar from './format-toolbar';\nimport NavigableToolbar from '../navigable-toolbar';\n\nfunction InlineToolbar( { popoverAnchor } ) {\n\treturn (\n\t\t<Popover\n\t\t\tplacement=\"top\"\n\t\t\tfocusOnMount={ false }\n\t\t\tanchor={ popoverAnchor }\n\t\t\tclassName=\"block-editor-rich-text__inline-format-toolbar\"\n\t\t\t__unstableSlotName=\"block-toolbar\"\n\t\t>\n\t\t\t<NavigableToolbar\n\t\t\t\tclassName=\"block-editor-rich-text__inline-format-toolbar-group\"\n\t\t\t\t/* translators: accessibility text for the inline format toolbar */\n\t\t\t\taria-label={ __( 'Format tools' ) }\n\t\t\t>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<FormatToolbar />\n\t\t\t\t</ToolbarGroup>\n\t\t\t</NavigableToolbar>\n\t\t</Popover>\n\t);\n}\n\nconst FormatToolbarContainer = ( { inline, editableContentElement } ) => {\n\tif ( inline ) {\n\t\treturn <InlineToolbar popoverAnchor={ editableContentElement } />;\n\t}\n\n\t// Render regular toolbar.\n\treturn (\n\t\t<BlockControls group=\"inline\">\n\t\t\t<FormatToolbar />\n\t\t</BlockControls>\n\t);\n};\n\nexport default FormatToolbarContainer;\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,OAAO,EAAEC,YAAY,QAAQ,uBAAuB;;AAE7D;AACA;AACA;AACA,OAAOC,aAAa,MAAM,mBAAmB;AAC7C,OAAOC,aAAa,MAAM,kBAAkB;AAC5C,OAAOC,gBAAgB,MAAM,sBAAsB;AAEnD,SAASC,aAAaA,CAAE;EAAEC;AAAc,CAAC,EAAG;EAC3C,OACCC,aAAA,CAACP,OAAO;IACPQ,SAAS,EAAC,KAAK;IACfC,YAAY,EAAG,KAAO;IACtBC,MAAM,EAAGJ,aAAe;IACxBK,SAAS,EAAC,+CAA+C;IACzDC,kBAAkB,EAAC;EAAe,GAElCL,aAAA,CAACH,gBAAgB;IAChBO,SAAS,EAAC;IACV;IACA,cAAaZ,EAAE,CAAE,cAAe;EAAG,GAEnCQ,aAAA,CAACN,YAAY,QACZM,aAAA,CAACJ,aAAa,MAAE,CACH,CACG,CACV,CAAC;AAEZ;AAEA,MAAMU,sBAAsB,GAAGA,CAAE;EAAEC,MAAM;EAAEC;AAAuB,CAAC,KAAM;EACxE,IAAKD,MAAM,EAAG;IACb,OAAOP,aAAA,CAACF,aAAa;MAACC,aAAa,EAAGS;IAAwB,CAAE,CAAC;EAClE;;EAEA;EACA,OACCR,aAAA,CAACL,aAAa;IAACc,KAAK,EAAC;EAAQ,GAC5BT,aAAA,CAACJ,aAAa,MAAE,CACF,CAAC;AAElB,CAAC;AAED,eAAeU,sBAAsB"}
@@ -295,8 +295,7 @@ export function RichTextWrapper({
295
295
  forwardedRef: anchorRef
296
296
  })))), isSelected && hasFormats && createElement(FormatToolbarContainer, {
297
297
  inline: inlineToolbar,
298
- editableContentElement: anchorRef.current,
299
- value: value
298
+ editableContentElement: anchorRef.current
300
299
  }), createElement(TagName
301
300
  // Overridable props.
302
301
  , {
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","useRef","useCallback","forwardRef","createContext","useDispatch","useSelect","useMergeRefs","__unstableUseRichText","useRichText","removeFormat","Popover","getBlockType","useBlockEditorAutocompleteProps","useBlockEditContext","FormatToolbarContainer","store","blockEditorStore","useUndoAutomaticChange","useMarkPersistent","usePasteHandler","useBeforeInputRules","useInputRules","useDelete","useEnter","useFormatTypes","useRemoveBrowserShortcuts","useShortcuts","useInputEvents","useInsertReplacementText","useFirefoxCompat","FormatEdit","getAllowedFormats","Content","withDeprecations","unlock","BLOCK_BINDINGS_ALLOWED_BLOCKS","keyboardShortcutContext","inputEventContext","removeNativeProps","props","__unstableMobileNoFocusOnMount","deleteEnter","placeholderTextColor","textAlign","selectionColor","tagsToEliminate","disableEditingMenu","fontSize","fontFamily","fontWeight","fontStyle","minWidth","maxWidth","setRef","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","forwardedRef","anchorRef","clientId","isBlockSelected","name","blockName","selector","select","getSelectionStart","getSelectionEnd","getBlockAttributes","selectionStart","selectionEnd","blockBindings","metadata","bindings","undefined","attributeKey","shouldDisableEditing","blockTypeAttributes","attributes","getBlockBindingsSource","attribute","args","Object","entries","source","blockBindingsSource","lockAttributesEditing","offset","getBlockRootClientId","selectionChange","adjustedAllowedFormats","hasFormats","length","onSelectionChange","start","end","selection","unset","formatTypes","prepareHandlers","valueHandlers","changeHandlers","dependencies","addEditorOnlyFormats","reduce","accumulator","fn","text","formats","removeEditorOnlyFormats","forEach","formatType","__experimentalCreatePrepareEditableTree","addInvisibleFormats","getValue","ref","richTextRef","html","__unstableFormats","__unstableText","values","changeHandler","__unstableIsSelected","__unstableDependencies","__unstableAfterParse","__unstableBeforeSerialize","__unstableAddInvisibleFormats","autocompleteProps","completers","record","keyboardShortcuts","Set","inputEvents","onFocus","current","focus","TagName","createElement","Fragment","Provider","__unstableSlotNameProvider","inline","editableContentElement","role","contentEditable","suppressContentEditableWarning","className","tabIndex","ForwardedRichTextContainer","isEmpty","RichTextShortcut","RichTextToolbarButton","__unstableRichTextInputEvent"],"sources":["@wordpress/block-editor/src/components/rich-text/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseRef,\n\tuseCallback,\n\tforwardRef,\n\tcreateContext,\n} from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useMergeRefs } from '@wordpress/compose';\nimport {\n\t__unstableUseRichText as useRichText,\n\tremoveFormat,\n} from '@wordpress/rich-text';\nimport { Popover } from '@wordpress/components';\nimport { getBlockType } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { useBlockEditorAutocompleteProps } from '../autocomplete';\nimport { useBlockEditContext } from '../block-edit';\nimport FormatToolbarContainer from './format-toolbar-container';\nimport { store as blockEditorStore } from '../../store';\nimport { useUndoAutomaticChange } from './use-undo-automatic-change';\nimport { useMarkPersistent } from './use-mark-persistent';\nimport { usePasteHandler } from './use-paste-handler';\nimport { useBeforeInputRules } from './use-before-input-rules';\nimport { useInputRules } from './use-input-rules';\nimport { useDelete } from './use-delete';\nimport { useEnter } from './use-enter';\nimport { useFormatTypes } from './use-format-types';\nimport { useRemoveBrowserShortcuts } from './use-remove-browser-shortcuts';\nimport { useShortcuts } from './use-shortcuts';\nimport { useInputEvents } from './use-input-events';\nimport { useInsertReplacementText } from './use-insert-replacement-text';\nimport { useFirefoxCompat } from './use-firefox-compat';\nimport FormatEdit from './format-edit';\nimport { getAllowedFormats } from './utils';\nimport { Content } from './content';\nimport { withDeprecations } from './with-deprecations';\nimport { unlock } from '../../lock-unlock';\nimport { BLOCK_BINDINGS_ALLOWED_BLOCKS } from '../../hooks/use-bindings-attributes';\n\nexport const keyboardShortcutContext = createContext();\nexport const inputEventContext = createContext();\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\tsetRef,\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\t...props\n\t},\n\tforwardedRef\n) {\n\tprops = removeNativeProps( props );\n\n\tconst anchorRef = useRef();\n\tconst {\n\t\tclientId,\n\t\tisSelected: isBlockSelected,\n\t\tname: blockName,\n\t} = useBlockEditContext();\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, getBlockAttributes } =\n\t\t\tselect( blockEditorStore );\n\t\tconst selectionStart = getSelectionStart();\n\t\tconst selectionEnd = getSelectionEnd();\n\t\tconst blockBindings =\n\t\t\tgetBlockAttributes( clientId )?.metadata?.bindings;\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\tselectionStart.attributeKey === identifier;\n\t\t} else if ( originalIsSelected ) {\n\t\t\tisSelected = selectionStart.clientId === clientId;\n\t\t}\n\n\t\t// Disable Rich Text editing if block bindings specify that.\n\t\tlet shouldDisableEditing = false;\n\t\tif ( blockBindings && blockName in BLOCK_BINDINGS_ALLOWED_BLOCKS ) {\n\t\t\tconst blockTypeAttributes = getBlockType( blockName ).attributes;\n\t\t\tconst { getBlockBindingsSource } = unlock(\n\t\t\t\tselect( blockEditorStore )\n\t\t\t);\n\t\t\tfor ( const [ attribute, args ] of Object.entries(\n\t\t\t\tblockBindings\n\t\t\t) ) {\n\t\t\t\tif (\n\t\t\t\t\tblockTypeAttributes?.[ attribute ]?.source !== 'rich-text'\n\t\t\t\t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\t// If the source is not defined, or if its value of `lockAttributesEditing` is `true`, disable it.\n\t\t\t\tconst blockBindingsSource = getBlockBindingsSource(\n\t\t\t\t\targs.source\n\t\t\t\t);\n\t\t\t\tif (\n\t\t\t\t\t! blockBindingsSource ||\n\t\t\t\t\tblockBindingsSource.lockAttributesEditing\n\t\t\t\t) {\n\t\t\t\t\tshouldDisableEditing = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\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\tshouldDisableEditing,\n\t\t};\n\t};\n\tconst { selectionStart, selectionEnd, isSelected, shouldDisableEditing } =\n\t\tuseSelect( selector, [\n\t\t\tclientId,\n\t\t\tidentifier,\n\t\t\toriginalIsSelected,\n\t\t\tisBlockSelected,\n\t\t] );\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\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\tclientId,\n\t\t\t\t\tattributeKey: identifier,\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\tclientId,\n\t\t\t\t\tattributeKey: identifier,\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[ clientId, identifier ]\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,\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\tvalue={ value }\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-label={ placeholder }\n\t\t\t\taria-readonly={ shouldDisableEditing }\n\t\t\t\t{ ...props }\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\tuseBeforeInputRules( { value, onChange } ),\n\t\t\t\t\tuseInputRules( {\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} ),\n\t\t\t\t\tuseInsertReplacementText(),\n\t\t\t\t\tuseRemoveBrowserShortcuts(),\n\t\t\t\t\tuseShortcuts( keyboardShortcuts ),\n\t\t\t\t\tuseInputEvents( inputEvents ),\n\t\t\t\t\tuseUndoAutomaticChange(),\n\t\t\t\t\tusePasteHandler( {\n\t\t\t\t\t\tisSelected,\n\t\t\t\t\t\tdisableFormats,\n\t\t\t\t\t\tonChange,\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\tformatTypes,\n\t\t\t\t\t\ttagName,\n\t\t\t\t\t\tonReplace,\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} ),\n\t\t\t\t\tuseDelete( {\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\tonMerge,\n\t\t\t\t\t\tonRemove,\n\t\t\t\t\t} ),\n\t\t\t\t\tuseEnter( {\n\t\t\t\t\t\tremoveEditorOnlyFormats,\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\tonReplace,\n\t\t\t\t\t\tonSplit,\n\t\t\t\t\t\tonChange,\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} ),\n\t\t\t\t\tuseFirefoxCompat(),\n\t\t\t\t\tanchorRef,\n\t\t\t\t] ) }\n\t\t\t\tcontentEditable={ ! shouldDisableEditing }\n\t\t\t\tsuppressContentEditableWarning={ true }\n\t\t\t\tclassName={ classnames(\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\nconst ForwardedRichTextContainer = withDeprecations(\n\tforwardRef( RichTextWrapper )\n);\n\nForwardedRichTextContainer.Content = Content;\nForwardedRichTextContainer.isEmpty = ( value ) => {\n\treturn ! value || value.length === 0;\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/rich-text/README.md\n */\nexport default ForwardedRichTextContainer;\nexport { RichTextShortcut } from './shortcut';\nexport { RichTextToolbarButton } from './toolbar-button';\nexport { __unstableRichTextInputEvent } from './input-event';\n"],"mappings":"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"}
1
+ {"version":3,"names":["classnames","useRef","useCallback","forwardRef","createContext","useDispatch","useSelect","useMergeRefs","__unstableUseRichText","useRichText","removeFormat","Popover","getBlockType","useBlockEditorAutocompleteProps","useBlockEditContext","FormatToolbarContainer","store","blockEditorStore","useUndoAutomaticChange","useMarkPersistent","usePasteHandler","useBeforeInputRules","useInputRules","useDelete","useEnter","useFormatTypes","useRemoveBrowserShortcuts","useShortcuts","useInputEvents","useInsertReplacementText","useFirefoxCompat","FormatEdit","getAllowedFormats","Content","withDeprecations","unlock","BLOCK_BINDINGS_ALLOWED_BLOCKS","keyboardShortcutContext","inputEventContext","removeNativeProps","props","__unstableMobileNoFocusOnMount","deleteEnter","placeholderTextColor","textAlign","selectionColor","tagsToEliminate","disableEditingMenu","fontSize","fontFamily","fontWeight","fontStyle","minWidth","maxWidth","setRef","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","forwardedRef","anchorRef","clientId","isBlockSelected","name","blockName","selector","select","getSelectionStart","getSelectionEnd","getBlockAttributes","selectionStart","selectionEnd","blockBindings","metadata","bindings","undefined","attributeKey","shouldDisableEditing","blockTypeAttributes","attributes","getBlockBindingsSource","attribute","args","Object","entries","source","blockBindingsSource","lockAttributesEditing","offset","getBlockRootClientId","selectionChange","adjustedAllowedFormats","hasFormats","length","onSelectionChange","start","end","selection","unset","formatTypes","prepareHandlers","valueHandlers","changeHandlers","dependencies","addEditorOnlyFormats","reduce","accumulator","fn","text","formats","removeEditorOnlyFormats","forEach","formatType","__experimentalCreatePrepareEditableTree","addInvisibleFormats","getValue","ref","richTextRef","html","__unstableFormats","__unstableText","values","changeHandler","__unstableIsSelected","__unstableDependencies","__unstableAfterParse","__unstableBeforeSerialize","__unstableAddInvisibleFormats","autocompleteProps","completers","record","keyboardShortcuts","Set","inputEvents","onFocus","current","focus","TagName","createElement","Fragment","Provider","__unstableSlotNameProvider","inline","editableContentElement","role","contentEditable","suppressContentEditableWarning","className","tabIndex","ForwardedRichTextContainer","isEmpty","RichTextShortcut","RichTextToolbarButton","__unstableRichTextInputEvent"],"sources":["@wordpress/block-editor/src/components/rich-text/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseRef,\n\tuseCallback,\n\tforwardRef,\n\tcreateContext,\n} from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useMergeRefs } from '@wordpress/compose';\nimport {\n\t__unstableUseRichText as useRichText,\n\tremoveFormat,\n} from '@wordpress/rich-text';\nimport { Popover } from '@wordpress/components';\nimport { getBlockType } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { useBlockEditorAutocompleteProps } from '../autocomplete';\nimport { useBlockEditContext } from '../block-edit';\nimport FormatToolbarContainer from './format-toolbar-container';\nimport { store as blockEditorStore } from '../../store';\nimport { useUndoAutomaticChange } from './use-undo-automatic-change';\nimport { useMarkPersistent } from './use-mark-persistent';\nimport { usePasteHandler } from './use-paste-handler';\nimport { useBeforeInputRules } from './use-before-input-rules';\nimport { useInputRules } from './use-input-rules';\nimport { useDelete } from './use-delete';\nimport { useEnter } from './use-enter';\nimport { useFormatTypes } from './use-format-types';\nimport { useRemoveBrowserShortcuts } from './use-remove-browser-shortcuts';\nimport { useShortcuts } from './use-shortcuts';\nimport { useInputEvents } from './use-input-events';\nimport { useInsertReplacementText } from './use-insert-replacement-text';\nimport { useFirefoxCompat } from './use-firefox-compat';\nimport FormatEdit from './format-edit';\nimport { getAllowedFormats } from './utils';\nimport { Content } from './content';\nimport { withDeprecations } from './with-deprecations';\nimport { unlock } from '../../lock-unlock';\nimport { BLOCK_BINDINGS_ALLOWED_BLOCKS } from '../../hooks/use-bindings-attributes';\n\nexport const keyboardShortcutContext = createContext();\nexport const inputEventContext = createContext();\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\tsetRef,\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\t...props\n\t},\n\tforwardedRef\n) {\n\tprops = removeNativeProps( props );\n\n\tconst anchorRef = useRef();\n\tconst {\n\t\tclientId,\n\t\tisSelected: isBlockSelected,\n\t\tname: blockName,\n\t} = useBlockEditContext();\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, getBlockAttributes } =\n\t\t\tselect( blockEditorStore );\n\t\tconst selectionStart = getSelectionStart();\n\t\tconst selectionEnd = getSelectionEnd();\n\t\tconst blockBindings =\n\t\t\tgetBlockAttributes( clientId )?.metadata?.bindings;\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\tselectionStart.attributeKey === identifier;\n\t\t} else if ( originalIsSelected ) {\n\t\t\tisSelected = selectionStart.clientId === clientId;\n\t\t}\n\n\t\t// Disable Rich Text editing if block bindings specify that.\n\t\tlet shouldDisableEditing = false;\n\t\tif ( blockBindings && blockName in BLOCK_BINDINGS_ALLOWED_BLOCKS ) {\n\t\t\tconst blockTypeAttributes = getBlockType( blockName ).attributes;\n\t\t\tconst { getBlockBindingsSource } = unlock(\n\t\t\t\tselect( blockEditorStore )\n\t\t\t);\n\t\t\tfor ( const [ attribute, args ] of Object.entries(\n\t\t\t\tblockBindings\n\t\t\t) ) {\n\t\t\t\tif (\n\t\t\t\t\tblockTypeAttributes?.[ attribute ]?.source !== 'rich-text'\n\t\t\t\t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\t// If the source is not defined, or if its value of `lockAttributesEditing` is `true`, disable it.\n\t\t\t\tconst blockBindingsSource = getBlockBindingsSource(\n\t\t\t\t\targs.source\n\t\t\t\t);\n\t\t\t\tif (\n\t\t\t\t\t! blockBindingsSource ||\n\t\t\t\t\tblockBindingsSource.lockAttributesEditing\n\t\t\t\t) {\n\t\t\t\t\tshouldDisableEditing = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\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\tshouldDisableEditing,\n\t\t};\n\t};\n\tconst { selectionStart, selectionEnd, isSelected, shouldDisableEditing } =\n\t\tuseSelect( selector, [\n\t\t\tclientId,\n\t\t\tidentifier,\n\t\t\toriginalIsSelected,\n\t\t\tisBlockSelected,\n\t\t] );\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\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\tclientId,\n\t\t\t\t\tattributeKey: identifier,\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\tclientId,\n\t\t\t\t\tattributeKey: identifier,\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[ clientId, identifier ]\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,\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-label={ placeholder }\n\t\t\t\taria-readonly={ shouldDisableEditing }\n\t\t\t\t{ ...props }\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\tuseBeforeInputRules( { value, onChange } ),\n\t\t\t\t\tuseInputRules( {\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} ),\n\t\t\t\t\tuseInsertReplacementText(),\n\t\t\t\t\tuseRemoveBrowserShortcuts(),\n\t\t\t\t\tuseShortcuts( keyboardShortcuts ),\n\t\t\t\t\tuseInputEvents( inputEvents ),\n\t\t\t\t\tuseUndoAutomaticChange(),\n\t\t\t\t\tusePasteHandler( {\n\t\t\t\t\t\tisSelected,\n\t\t\t\t\t\tdisableFormats,\n\t\t\t\t\t\tonChange,\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\tformatTypes,\n\t\t\t\t\t\ttagName,\n\t\t\t\t\t\tonReplace,\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} ),\n\t\t\t\t\tuseDelete( {\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\tonMerge,\n\t\t\t\t\t\tonRemove,\n\t\t\t\t\t} ),\n\t\t\t\t\tuseEnter( {\n\t\t\t\t\t\tremoveEditorOnlyFormats,\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\tonReplace,\n\t\t\t\t\t\tonSplit,\n\t\t\t\t\t\tonChange,\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} ),\n\t\t\t\t\tuseFirefoxCompat(),\n\t\t\t\t\tanchorRef,\n\t\t\t\t] ) }\n\t\t\t\tcontentEditable={ ! shouldDisableEditing }\n\t\t\t\tsuppressContentEditableWarning={ true }\n\t\t\t\tclassName={ classnames(\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\nconst ForwardedRichTextContainer = withDeprecations(\n\tforwardRef( RichTextWrapper )\n);\n\nForwardedRichTextContainer.Content = Content;\nForwardedRichTextContainer.isEmpty = ( value ) => {\n\treturn ! value || value.length === 0;\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/rich-text/README.md\n */\nexport default ForwardedRichTextContainer;\nexport { RichTextShortcut } from './shortcut';\nexport { RichTextToolbarButton } from './toolbar-button';\nexport { __unstableRichTextInputEvent } from './input-event';\n"],"mappings":"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"}
@@ -2,7 +2,7 @@ import { createElement } from "react";
2
2
  /**
3
3
  * WordPress dependencies
4
4
  */
5
- import { withSelect } from '@wordpress/data';
5
+ import { useSelect } from '@wordpress/data';
6
6
  import { __ } from '@wordpress/i18n';
7
7
  import { Button } from '@wordpress/components';
8
8
 
@@ -11,9 +11,12 @@ import { Button } from '@wordpress/components';
11
11
  */
12
12
  import { store as blockEditorStore } from '../../store';
13
13
  import { __unstableUseBlockRef as useBlockRef } from '../block-list/use-block-props/use-block-refs';
14
- const SkipToSelectedBlock = ({
15
- selectedBlockClientId
16
- }) => {
14
+
15
+ /**
16
+ * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/skip-to-selected-block/README.md
17
+ */
18
+ export default function SkipToSelectedBlock() {
19
+ const selectedBlockClientId = useSelect(select => select(blockEditorStore).getBlockSelectionStart(), []);
17
20
  const ref = useBlockRef(selectedBlockClientId);
18
21
  const onClick = () => {
19
22
  ref.current.focus();
@@ -23,14 +26,5 @@ const SkipToSelectedBlock = ({
23
26
  className: "block-editor-skip-to-selected-block",
24
27
  onClick: onClick
25
28
  }, __('Skip to the selected block')) : null;
26
- };
27
-
28
- /**
29
- * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/skip-to-selected-block/README.md
30
- */
31
- export default withSelect(select => {
32
- return {
33
- selectedBlockClientId: select(blockEditorStore).getBlockSelectionStart()
34
- };
35
- })(SkipToSelectedBlock);
29
+ }
36
30
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["withSelect","__","Button","store","blockEditorStore","__unstableUseBlockRef","useBlockRef","SkipToSelectedBlock","selectedBlockClientId","ref","onClick","current","focus","createElement","variant","className","select","getBlockSelectionStart"],"sources":["@wordpress/block-editor/src/components/skip-to-selected-block/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { withSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { Button } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { __unstableUseBlockRef as useBlockRef } from '../block-list/use-block-props/use-block-refs';\n\nconst SkipToSelectedBlock = ( { selectedBlockClientId } ) => {\n\tconst ref = useBlockRef( selectedBlockClientId );\n\tconst onClick = () => {\n\t\tref.current.focus();\n\t};\n\n\treturn selectedBlockClientId ? (\n\t\t<Button\n\t\t\tvariant=\"secondary\"\n\t\t\tclassName=\"block-editor-skip-to-selected-block\"\n\t\t\tonClick={ onClick }\n\t\t>\n\t\t\t{ __( 'Skip to the selected block' ) }\n\t\t</Button>\n\t) : null;\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/skip-to-selected-block/README.md\n */\nexport default withSelect( ( select ) => {\n\treturn {\n\t\tselectedBlockClientId:\n\t\t\tselect( blockEditorStore ).getBlockSelectionStart(),\n\t};\n} )( SkipToSelectedBlock );\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,UAAU,QAAQ,iBAAiB;AAC5C,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,MAAM,QAAQ,uBAAuB;;AAE9C;AACA;AACA;AACA,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,aAAa;AACvD,SAASC,qBAAqB,IAAIC,WAAW,QAAQ,8CAA8C;AAEnG,MAAMC,mBAAmB,GAAGA,CAAE;EAAEC;AAAsB,CAAC,KAAM;EAC5D,MAAMC,GAAG,GAAGH,WAAW,CAAEE,qBAAsB,CAAC;EAChD,MAAME,OAAO,GAAGA,CAAA,KAAM;IACrBD,GAAG,CAACE,OAAO,CAACC,KAAK,CAAC,CAAC;EACpB,CAAC;EAED,OAAOJ,qBAAqB,GAC3BK,aAAA,CAACX,MAAM;IACNY,OAAO,EAAC,WAAW;IACnBC,SAAS,EAAC,qCAAqC;IAC/CL,OAAO,EAAGA;EAAS,GAEjBT,EAAE,CAAE,4BAA6B,CAC5B,CAAC,GACN,IAAI;AACT,CAAC;;AAED;AACA;AACA;AACA,eAAeD,UAAU,CAAIgB,MAAM,IAAM;EACxC,OAAO;IACNR,qBAAqB,EACpBQ,MAAM,CAAEZ,gBAAiB,CAAC,CAACa,sBAAsB,CAAC;EACpD,CAAC;AACF,CAAE,CAAC,CAAEV,mBAAoB,CAAC"}
1
+ {"version":3,"names":["useSelect","__","Button","store","blockEditorStore","__unstableUseBlockRef","useBlockRef","SkipToSelectedBlock","selectedBlockClientId","select","getBlockSelectionStart","ref","onClick","current","focus","createElement","variant","className"],"sources":["@wordpress/block-editor/src/components/skip-to-selected-block/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { Button } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { __unstableUseBlockRef as useBlockRef } from '../block-list/use-block-props/use-block-refs';\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/skip-to-selected-block/README.md\n */\nexport default function SkipToSelectedBlock() {\n\tconst selectedBlockClientId = useSelect(\n\t\t( select ) => select( blockEditorStore ).getBlockSelectionStart(),\n\t\t[]\n\t);\n\tconst ref = useBlockRef( selectedBlockClientId );\n\tconst onClick = () => {\n\t\tref.current.focus();\n\t};\n\n\treturn selectedBlockClientId ? (\n\t\t<Button\n\t\t\tvariant=\"secondary\"\n\t\t\tclassName=\"block-editor-skip-to-selected-block\"\n\t\t\tonClick={ onClick }\n\t\t>\n\t\t\t{ __( 'Skip to the selected block' ) }\n\t\t</Button>\n\t) : null;\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,MAAM,QAAQ,uBAAuB;;AAE9C;AACA;AACA;AACA,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,aAAa;AACvD,SAASC,qBAAqB,IAAIC,WAAW,QAAQ,8CAA8C;;AAEnG;AACA;AACA;AACA,eAAe,SAASC,mBAAmBA,CAAA,EAAG;EAC7C,MAAMC,qBAAqB,GAAGR,SAAS,CACpCS,MAAM,IAAMA,MAAM,CAAEL,gBAAiB,CAAC,CAACM,sBAAsB,CAAC,CAAC,EACjE,EACD,CAAC;EACD,MAAMC,GAAG,GAAGL,WAAW,CAAEE,qBAAsB,CAAC;EAChD,MAAMI,OAAO,GAAGA,CAAA,KAAM;IACrBD,GAAG,CAACE,OAAO,CAACC,KAAK,CAAC,CAAC;EACpB,CAAC;EAED,OAAON,qBAAqB,GAC3BO,aAAA,CAACb,MAAM;IACNc,OAAO,EAAC,WAAW;IACnBC,SAAS,EAAC,qCAAqC;IAC/CL,OAAO,EAAGA;EAAS,GAEjBX,EAAE,CAAE,4BAA6B,CAC5B,CAAC,GACN,IAAI;AACT"}
@@ -287,7 +287,6 @@ export default function SpacingInputControl({
287
287
  options: options,
288
288
  label: ariaLabel,
289
289
  hideLabelFromVision: true,
290
- __nextUnconstrainedWidth: true,
291
290
  size: '__unstable-large',
292
291
  onMouseOver: onMouseOver,
293
292
  onMouseOut: onMouseOut,
@@ -1 +1 @@
1
- {"version":3,"names":["Button","CustomSelectControl","Icon","RangeControl","__experimentalHStack","HStack","__experimentalUnitControl","UnitControl","__experimentalUseCustomUnits","useCustomUnits","__experimentalParseQuantityAndUnitFromRawValue","parseQuantityAndUnitFromRawValue","useSelect","useState","useMemo","usePrevious","__","sprintf","settings","useSettings","store","blockEditorStore","ALL_SIDES","LABELS","getSliderValueFromPreset","getCustomValueFromPreset","getPresetValueFromCustomValue","isValueSpacingPreset","CUSTOM_VALUE_SETTINGS","px","max","steps","vw","vh","em","rm","svw","lvw","dvw","svh","lvh","dvh","vi","svi","lvi","dvi","vb","svb","lvb","dvb","vmin","svmin","lvmin","dvmin","vmax","svmax","lvmax","dvmax","SpacingInputControl","icon","isMixed","minimumCustomValue","onChange","onMouseOut","onMouseOver","showSideInLabel","side","spacingSizes","type","value","_CUSTOM_VALUE_SETTING","_CUSTOM_VALUE_SETTING2","selectListSizes","showRangeControl","length","disableCustomSpacingSizes","select","editorSettings","getSettings","showCustomValueControl","setShowCustomValueControl","undefined","previousValue","availableUnits","units","currentValue","showCustomValueInSelectList","name","slug","size","selectedUnit","setInitialValue","customTooltipContent","newValue","customRangeValue","parseFloat","getNewCustomValue","newSize","isNumeric","isNaN","nextValue","getNewPresetValue","controlType","parseInt","handleCustomValueSliderChange","next","join","allPlaceholder","options","map","index","key","marks","_newValue","label","sideLabel","includes","typeLabel","toLowerCase","ariaLabel","trim","createElement","className","Fragment","onFocus","onBlur","min","placeholder","disableUnits","hideLabelFromVision","step","withInputField","__nextHasNoMarginBottom","onMouseDown","event","nativeEvent","offsetX","renderTooltipContent","find","option","selection","selectedItem","__nextUnconstrainedWidth","onClick","isPressed","iconSize"],"sources":["@wordpress/block-editor/src/components/spacing-sizes-control/input-controls/spacing-input-control.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tCustomSelectControl,\n\tIcon,\n\tRangeControl,\n\t__experimentalHStack as HStack,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalParseQuantityAndUnitFromRawValue as parseQuantityAndUnitFromRawValue,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { useState, useMemo } from '@wordpress/element';\nimport { usePrevious } from '@wordpress/compose';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { settings } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { useSettings } from '../../use-settings';\nimport { store as blockEditorStore } from '../../../store';\nimport {\n\tALL_SIDES,\n\tLABELS,\n\tgetSliderValueFromPreset,\n\tgetCustomValueFromPreset,\n\tgetPresetValueFromCustomValue,\n\tisValueSpacingPreset,\n} from '../utils';\n\nconst CUSTOM_VALUE_SETTINGS = {\n\tpx: { max: 300, steps: 1 },\n\t'%': { max: 100, steps: 1 },\n\tvw: { max: 100, steps: 1 },\n\tvh: { max: 100, steps: 1 },\n\tem: { max: 10, steps: 0.1 },\n\trm: { max: 10, steps: 0.1 },\n\tsvw: { max: 100, steps: 1 },\n\tlvw: { max: 100, steps: 1 },\n\tdvw: { max: 100, steps: 1 },\n\tsvh: { max: 100, steps: 1 },\n\tlvh: { max: 100, steps: 1 },\n\tdvh: { max: 100, steps: 1 },\n\tvi: { max: 100, steps: 1 },\n\tsvi: { max: 100, steps: 1 },\n\tlvi: { max: 100, steps: 1 },\n\tdvi: { max: 100, steps: 1 },\n\tvb: { max: 100, steps: 1 },\n\tsvb: { max: 100, steps: 1 },\n\tlvb: { max: 100, steps: 1 },\n\tdvb: { max: 100, steps: 1 },\n\tvmin: { max: 100, steps: 1 },\n\tsvmin: { max: 100, steps: 1 },\n\tlvmin: { max: 100, steps: 1 },\n\tdvmin: { max: 100, steps: 1 },\n\tvmax: { max: 100, steps: 1 },\n\tsvmax: { max: 100, steps: 1 },\n\tlvmax: { max: 100, steps: 1 },\n\tdvmax: { max: 100, steps: 1 },\n};\n\nexport default function SpacingInputControl( {\n\ticon,\n\tisMixed = false,\n\tminimumCustomValue,\n\tonChange,\n\tonMouseOut,\n\tonMouseOver,\n\tshowSideInLabel = true,\n\tside,\n\tspacingSizes,\n\ttype,\n\tvalue,\n} ) {\n\t// Treat value as a preset value if the passed in value matches the value of one of the spacingSizes.\n\tvalue = getPresetValueFromCustomValue( value, spacingSizes );\n\n\tlet selectListSizes = spacingSizes;\n\tconst showRangeControl = spacingSizes.length <= 8;\n\n\tconst disableCustomSpacingSizes = useSelect( ( select ) => {\n\t\tconst editorSettings = select( blockEditorStore ).getSettings();\n\t\treturn editorSettings?.disableCustomSpacingSizes;\n\t} );\n\n\tconst [ showCustomValueControl, setShowCustomValueControl ] = useState(\n\t\t! disableCustomSpacingSizes &&\n\t\t\tvalue !== undefined &&\n\t\t\t! isValueSpacingPreset( value )\n\t);\n\n\tconst previousValue = usePrevious( value );\n\tif (\n\t\t!! value &&\n\t\tpreviousValue !== value &&\n\t\t! isValueSpacingPreset( value ) &&\n\t\tshowCustomValueControl !== true\n\t) {\n\t\tsetShowCustomValueControl( true );\n\t}\n\n\tconst [ availableUnits ] = useSettings( 'spacing.units' );\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: availableUnits || [ 'px', 'em', 'rem' ],\n\t} );\n\n\tlet currentValue = null;\n\n\tconst showCustomValueInSelectList =\n\t\t! showRangeControl &&\n\t\t! showCustomValueControl &&\n\t\tvalue !== undefined &&\n\t\t( ! isValueSpacingPreset( value ) ||\n\t\t\t( isValueSpacingPreset( value ) && isMixed ) );\n\n\tif ( showCustomValueInSelectList ) {\n\t\tselectListSizes = [\n\t\t\t...spacingSizes,\n\t\t\t{\n\t\t\t\tname: ! isMixed\n\t\t\t\t\t? // translators: A custom measurement, eg. a number followed by a unit like 12px.\n\t\t\t\t\t sprintf( __( 'Custom (%s)' ), value )\n\t\t\t\t\t: __( 'Mixed' ),\n\t\t\t\tslug: 'custom',\n\t\t\t\tsize: value,\n\t\t\t},\n\t\t];\n\t\tcurrentValue = selectListSizes.length - 1;\n\t} else if ( ! isMixed ) {\n\t\tcurrentValue = ! showCustomValueControl\n\t\t\t? getSliderValueFromPreset( value, spacingSizes )\n\t\t\t: getCustomValueFromPreset( value, spacingSizes );\n\t}\n\n\tconst selectedUnit =\n\t\tuseMemo(\n\t\t\t() => parseQuantityAndUnitFromRawValue( currentValue ),\n\t\t\t[ currentValue ]\n\t\t)[ 1 ] || units[ 0 ]?.value;\n\n\tconst setInitialValue = () => {\n\t\tif ( value === undefined ) {\n\t\t\tonChange( '0' );\n\t\t}\n\t};\n\n\tconst customTooltipContent = ( newValue ) =>\n\t\tvalue === undefined ? undefined : spacingSizes[ newValue ]?.name;\n\n\tconst customRangeValue = parseFloat( currentValue, 10 );\n\n\tconst getNewCustomValue = ( newSize ) => {\n\t\tconst isNumeric = ! isNaN( parseFloat( newSize ) );\n\t\tconst nextValue = isNumeric ? newSize : undefined;\n\t\treturn nextValue;\n\t};\n\n\tconst getNewPresetValue = ( newSize, controlType ) => {\n\t\tconst size = parseInt( newSize, 10 );\n\n\t\tif ( controlType === 'selectList' ) {\n\t\t\tif ( size === 0 ) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\tif ( size === 1 ) {\n\t\t\t\treturn '0';\n\t\t\t}\n\t\t} else if ( size === 0 ) {\n\t\t\treturn '0';\n\t\t}\n\t\treturn `var:preset|spacing|${ spacingSizes[ newSize ]?.slug }`;\n\t};\n\n\tconst handleCustomValueSliderChange = ( next ) => {\n\t\tonChange( [ next, selectedUnit ].join( '' ) );\n\t};\n\n\tconst allPlaceholder = isMixed ? __( 'Mixed' ) : null;\n\n\tconst options = selectListSizes.map( ( size, index ) => ( {\n\t\tkey: index,\n\t\tname: size.name,\n\t} ) );\n\n\tconst marks = spacingSizes.map( ( _newValue, index ) => ( {\n\t\tvalue: index,\n\t\tlabel: undefined,\n\t} ) );\n\n\tconst sideLabel =\n\t\tALL_SIDES.includes( side ) && showSideInLabel ? LABELS[ side ] : '';\n\tconst typeLabel = showSideInLabel ? type?.toLowerCase() : type;\n\n\tconst ariaLabel = sprintf(\n\t\t// translators: 1: The side of the block being modified (top, bottom, left, All sides etc.). 2. Type of spacing being modified (Padding, margin, etc)\n\t\t__( '%1$s %2$s' ),\n\t\tsideLabel,\n\t\ttypeLabel\n\t).trim();\n\n\treturn (\n\t\t<HStack className=\"spacing-sizes-control__wrapper\">\n\t\t\t{ icon && (\n\t\t\t\t<Icon\n\t\t\t\t\tclassName=\"spacing-sizes-control__icon\"\n\t\t\t\t\ticon={ icon }\n\t\t\t\t\tsize={ 24 }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ showCustomValueControl && (\n\t\t\t\t<>\n\t\t\t\t\t<UnitControl\n\t\t\t\t\t\tonMouseOver={ onMouseOver }\n\t\t\t\t\t\tonMouseOut={ onMouseOut }\n\t\t\t\t\t\tonFocus={ onMouseOver }\n\t\t\t\t\t\tonBlur={ onMouseOut }\n\t\t\t\t\t\tonChange={ ( newSize ) =>\n\t\t\t\t\t\t\tonChange( getNewCustomValue( newSize ) )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvalue={ currentValue }\n\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\tmin={ minimumCustomValue }\n\t\t\t\t\t\tplaceholder={ allPlaceholder }\n\t\t\t\t\t\tdisableUnits={ isMixed }\n\t\t\t\t\t\tlabel={ ariaLabel }\n\t\t\t\t\t\thideLabelFromVision={ true }\n\t\t\t\t\t\tclassName=\"spacing-sizes-control__custom-value-input\"\n\t\t\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\t\t/>\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\tonMouseOver={ onMouseOver }\n\t\t\t\t\t\tonMouseOut={ onMouseOut }\n\t\t\t\t\t\tonFocus={ onMouseOver }\n\t\t\t\t\t\tonBlur={ onMouseOut }\n\t\t\t\t\t\tvalue={ customRangeValue }\n\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\tmax={ CUSTOM_VALUE_SETTINGS[ selectedUnit ]?.max ?? 10 }\n\t\t\t\t\t\tstep={\n\t\t\t\t\t\t\tCUSTOM_VALUE_SETTINGS[ selectedUnit ]?.steps ?? 0.1\n\t\t\t\t\t\t}\n\t\t\t\t\t\twithInputField={ false }\n\t\t\t\t\t\tonChange={ handleCustomValueSliderChange }\n\t\t\t\t\t\tclassName=\"spacing-sizes-control__custom-value-range\"\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t{ showRangeControl && ! showCustomValueControl && (\n\t\t\t\t<RangeControl\n\t\t\t\t\tonMouseOver={ onMouseOver }\n\t\t\t\t\tonMouseOut={ onMouseOut }\n\t\t\t\t\tclassName=\"spacing-sizes-control__range-control\"\n\t\t\t\t\tvalue={ currentValue }\n\t\t\t\t\tonChange={ ( newSize ) =>\n\t\t\t\t\t\tonChange( getNewPresetValue( newSize ) )\n\t\t\t\t\t}\n\t\t\t\t\tonMouseDown={ ( event ) => {\n\t\t\t\t\t\t// If mouse down is near start of range set initial value to 0, which\n\t\t\t\t\t\t// prevents the user have to drag right then left to get 0 setting.\n\t\t\t\t\t\tif ( event?.nativeEvent?.offsetX < 35 ) {\n\t\t\t\t\t\t\tsetInitialValue();\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t\twithInputField={ false }\n\t\t\t\t\taria-valuenow={ currentValue }\n\t\t\t\t\taria-valuetext={ spacingSizes[ currentValue ]?.name }\n\t\t\t\t\trenderTooltipContent={ customTooltipContent }\n\t\t\t\t\tmin={ 0 }\n\t\t\t\t\tmax={ spacingSizes.length - 1 }\n\t\t\t\t\tmarks={ marks }\n\t\t\t\t\tlabel={ ariaLabel }\n\t\t\t\t\thideLabelFromVision={ true }\n\t\t\t\t\t__nextHasNoMarginBottom={ true }\n\t\t\t\t\tonFocus={ onMouseOver }\n\t\t\t\t\tonBlur={ onMouseOut }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! showRangeControl && ! showCustomValueControl && (\n\t\t\t\t<CustomSelectControl\n\t\t\t\t\tclassName=\"spacing-sizes-control__custom-select-control\"\n\t\t\t\t\tvalue={\n\t\t\t\t\t\toptions.find(\n\t\t\t\t\t\t\t( option ) => option.key === currentValue\n\t\t\t\t\t\t) || '' // passing undefined here causes a downshift controlled/uncontrolled warning\n\t\t\t\t\t}\n\t\t\t\t\tonChange={ ( selection ) => {\n\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\tgetNewPresetValue(\n\t\t\t\t\t\t\t\tselection.selectedItem.key,\n\t\t\t\t\t\t\t\t'selectList'\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} }\n\t\t\t\t\toptions={ options }\n\t\t\t\t\tlabel={ ariaLabel }\n\t\t\t\t\thideLabelFromVision={ true }\n\t\t\t\t\t__nextUnconstrainedWidth={ true }\n\t\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\t\tonMouseOver={ onMouseOver }\n\t\t\t\t\tonMouseOut={ onMouseOut }\n\t\t\t\t\tonFocus={ onMouseOver }\n\t\t\t\t\tonBlur={ onMouseOut }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! disableCustomSpacingSizes && (\n\t\t\t\t<Button\n\t\t\t\t\tlabel={\n\t\t\t\t\t\tshowCustomValueControl\n\t\t\t\t\t\t\t? __( 'Use size preset' )\n\t\t\t\t\t\t\t: __( 'Set custom size' )\n\t\t\t\t\t}\n\t\t\t\t\ticon={ settings }\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tsetShowCustomValueControl( ! showCustomValueControl );\n\t\t\t\t\t} }\n\t\t\t\t\tisPressed={ showCustomValueControl }\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\tclassName=\"spacing-sizes-control__custom-toggle\"\n\t\t\t\t\ticonSize={ 24 }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</HStack>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["Button","CustomSelectControl","Icon","RangeControl","__experimentalHStack","HStack","__experimentalUnitControl","UnitControl","__experimentalUseCustomUnits","useCustomUnits","__experimentalParseQuantityAndUnitFromRawValue","parseQuantityAndUnitFromRawValue","useSelect","useState","useMemo","usePrevious","__","sprintf","settings","useSettings","store","blockEditorStore","ALL_SIDES","LABELS","getSliderValueFromPreset","getCustomValueFromPreset","getPresetValueFromCustomValue","isValueSpacingPreset","CUSTOM_VALUE_SETTINGS","px","max","steps","vw","vh","em","rm","svw","lvw","dvw","svh","lvh","dvh","vi","svi","lvi","dvi","vb","svb","lvb","dvb","vmin","svmin","lvmin","dvmin","vmax","svmax","lvmax","dvmax","SpacingInputControl","icon","isMixed","minimumCustomValue","onChange","onMouseOut","onMouseOver","showSideInLabel","side","spacingSizes","type","value","_CUSTOM_VALUE_SETTING","_CUSTOM_VALUE_SETTING2","selectListSizes","showRangeControl","length","disableCustomSpacingSizes","select","editorSettings","getSettings","showCustomValueControl","setShowCustomValueControl","undefined","previousValue","availableUnits","units","currentValue","showCustomValueInSelectList","name","slug","size","selectedUnit","setInitialValue","customTooltipContent","newValue","customRangeValue","parseFloat","getNewCustomValue","newSize","isNumeric","isNaN","nextValue","getNewPresetValue","controlType","parseInt","handleCustomValueSliderChange","next","join","allPlaceholder","options","map","index","key","marks","_newValue","label","sideLabel","includes","typeLabel","toLowerCase","ariaLabel","trim","createElement","className","Fragment","onFocus","onBlur","min","placeholder","disableUnits","hideLabelFromVision","step","withInputField","__nextHasNoMarginBottom","onMouseDown","event","nativeEvent","offsetX","renderTooltipContent","find","option","selection","selectedItem","onClick","isPressed","iconSize"],"sources":["@wordpress/block-editor/src/components/spacing-sizes-control/input-controls/spacing-input-control.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tCustomSelectControl,\n\tIcon,\n\tRangeControl,\n\t__experimentalHStack as HStack,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalParseQuantityAndUnitFromRawValue as parseQuantityAndUnitFromRawValue,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { useState, useMemo } from '@wordpress/element';\nimport { usePrevious } from '@wordpress/compose';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { settings } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { useSettings } from '../../use-settings';\nimport { store as blockEditorStore } from '../../../store';\nimport {\n\tALL_SIDES,\n\tLABELS,\n\tgetSliderValueFromPreset,\n\tgetCustomValueFromPreset,\n\tgetPresetValueFromCustomValue,\n\tisValueSpacingPreset,\n} from '../utils';\n\nconst CUSTOM_VALUE_SETTINGS = {\n\tpx: { max: 300, steps: 1 },\n\t'%': { max: 100, steps: 1 },\n\tvw: { max: 100, steps: 1 },\n\tvh: { max: 100, steps: 1 },\n\tem: { max: 10, steps: 0.1 },\n\trm: { max: 10, steps: 0.1 },\n\tsvw: { max: 100, steps: 1 },\n\tlvw: { max: 100, steps: 1 },\n\tdvw: { max: 100, steps: 1 },\n\tsvh: { max: 100, steps: 1 },\n\tlvh: { max: 100, steps: 1 },\n\tdvh: { max: 100, steps: 1 },\n\tvi: { max: 100, steps: 1 },\n\tsvi: { max: 100, steps: 1 },\n\tlvi: { max: 100, steps: 1 },\n\tdvi: { max: 100, steps: 1 },\n\tvb: { max: 100, steps: 1 },\n\tsvb: { max: 100, steps: 1 },\n\tlvb: { max: 100, steps: 1 },\n\tdvb: { max: 100, steps: 1 },\n\tvmin: { max: 100, steps: 1 },\n\tsvmin: { max: 100, steps: 1 },\n\tlvmin: { max: 100, steps: 1 },\n\tdvmin: { max: 100, steps: 1 },\n\tvmax: { max: 100, steps: 1 },\n\tsvmax: { max: 100, steps: 1 },\n\tlvmax: { max: 100, steps: 1 },\n\tdvmax: { max: 100, steps: 1 },\n};\n\nexport default function SpacingInputControl( {\n\ticon,\n\tisMixed = false,\n\tminimumCustomValue,\n\tonChange,\n\tonMouseOut,\n\tonMouseOver,\n\tshowSideInLabel = true,\n\tside,\n\tspacingSizes,\n\ttype,\n\tvalue,\n} ) {\n\t// Treat value as a preset value if the passed in value matches the value of one of the spacingSizes.\n\tvalue = getPresetValueFromCustomValue( value, spacingSizes );\n\n\tlet selectListSizes = spacingSizes;\n\tconst showRangeControl = spacingSizes.length <= 8;\n\n\tconst disableCustomSpacingSizes = useSelect( ( select ) => {\n\t\tconst editorSettings = select( blockEditorStore ).getSettings();\n\t\treturn editorSettings?.disableCustomSpacingSizes;\n\t} );\n\n\tconst [ showCustomValueControl, setShowCustomValueControl ] = useState(\n\t\t! disableCustomSpacingSizes &&\n\t\t\tvalue !== undefined &&\n\t\t\t! isValueSpacingPreset( value )\n\t);\n\n\tconst previousValue = usePrevious( value );\n\tif (\n\t\t!! value &&\n\t\tpreviousValue !== value &&\n\t\t! isValueSpacingPreset( value ) &&\n\t\tshowCustomValueControl !== true\n\t) {\n\t\tsetShowCustomValueControl( true );\n\t}\n\n\tconst [ availableUnits ] = useSettings( 'spacing.units' );\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: availableUnits || [ 'px', 'em', 'rem' ],\n\t} );\n\n\tlet currentValue = null;\n\n\tconst showCustomValueInSelectList =\n\t\t! showRangeControl &&\n\t\t! showCustomValueControl &&\n\t\tvalue !== undefined &&\n\t\t( ! isValueSpacingPreset( value ) ||\n\t\t\t( isValueSpacingPreset( value ) && isMixed ) );\n\n\tif ( showCustomValueInSelectList ) {\n\t\tselectListSizes = [\n\t\t\t...spacingSizes,\n\t\t\t{\n\t\t\t\tname: ! isMixed\n\t\t\t\t\t? // translators: A custom measurement, eg. a number followed by a unit like 12px.\n\t\t\t\t\t sprintf( __( 'Custom (%s)' ), value )\n\t\t\t\t\t: __( 'Mixed' ),\n\t\t\t\tslug: 'custom',\n\t\t\t\tsize: value,\n\t\t\t},\n\t\t];\n\t\tcurrentValue = selectListSizes.length - 1;\n\t} else if ( ! isMixed ) {\n\t\tcurrentValue = ! showCustomValueControl\n\t\t\t? getSliderValueFromPreset( value, spacingSizes )\n\t\t\t: getCustomValueFromPreset( value, spacingSizes );\n\t}\n\n\tconst selectedUnit =\n\t\tuseMemo(\n\t\t\t() => parseQuantityAndUnitFromRawValue( currentValue ),\n\t\t\t[ currentValue ]\n\t\t)[ 1 ] || units[ 0 ]?.value;\n\n\tconst setInitialValue = () => {\n\t\tif ( value === undefined ) {\n\t\t\tonChange( '0' );\n\t\t}\n\t};\n\n\tconst customTooltipContent = ( newValue ) =>\n\t\tvalue === undefined ? undefined : spacingSizes[ newValue ]?.name;\n\n\tconst customRangeValue = parseFloat( currentValue, 10 );\n\n\tconst getNewCustomValue = ( newSize ) => {\n\t\tconst isNumeric = ! isNaN( parseFloat( newSize ) );\n\t\tconst nextValue = isNumeric ? newSize : undefined;\n\t\treturn nextValue;\n\t};\n\n\tconst getNewPresetValue = ( newSize, controlType ) => {\n\t\tconst size = parseInt( newSize, 10 );\n\n\t\tif ( controlType === 'selectList' ) {\n\t\t\tif ( size === 0 ) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\tif ( size === 1 ) {\n\t\t\t\treturn '0';\n\t\t\t}\n\t\t} else if ( size === 0 ) {\n\t\t\treturn '0';\n\t\t}\n\t\treturn `var:preset|spacing|${ spacingSizes[ newSize ]?.slug }`;\n\t};\n\n\tconst handleCustomValueSliderChange = ( next ) => {\n\t\tonChange( [ next, selectedUnit ].join( '' ) );\n\t};\n\n\tconst allPlaceholder = isMixed ? __( 'Mixed' ) : null;\n\n\tconst options = selectListSizes.map( ( size, index ) => ( {\n\t\tkey: index,\n\t\tname: size.name,\n\t} ) );\n\n\tconst marks = spacingSizes.map( ( _newValue, index ) => ( {\n\t\tvalue: index,\n\t\tlabel: undefined,\n\t} ) );\n\n\tconst sideLabel =\n\t\tALL_SIDES.includes( side ) && showSideInLabel ? LABELS[ side ] : '';\n\tconst typeLabel = showSideInLabel ? type?.toLowerCase() : type;\n\n\tconst ariaLabel = sprintf(\n\t\t// translators: 1: The side of the block being modified (top, bottom, left, All sides etc.). 2. Type of spacing being modified (Padding, margin, etc)\n\t\t__( '%1$s %2$s' ),\n\t\tsideLabel,\n\t\ttypeLabel\n\t).trim();\n\n\treturn (\n\t\t<HStack className=\"spacing-sizes-control__wrapper\">\n\t\t\t{ icon && (\n\t\t\t\t<Icon\n\t\t\t\t\tclassName=\"spacing-sizes-control__icon\"\n\t\t\t\t\ticon={ icon }\n\t\t\t\t\tsize={ 24 }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ showCustomValueControl && (\n\t\t\t\t<>\n\t\t\t\t\t<UnitControl\n\t\t\t\t\t\tonMouseOver={ onMouseOver }\n\t\t\t\t\t\tonMouseOut={ onMouseOut }\n\t\t\t\t\t\tonFocus={ onMouseOver }\n\t\t\t\t\t\tonBlur={ onMouseOut }\n\t\t\t\t\t\tonChange={ ( newSize ) =>\n\t\t\t\t\t\t\tonChange( getNewCustomValue( newSize ) )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvalue={ currentValue }\n\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\tmin={ minimumCustomValue }\n\t\t\t\t\t\tplaceholder={ allPlaceholder }\n\t\t\t\t\t\tdisableUnits={ isMixed }\n\t\t\t\t\t\tlabel={ ariaLabel }\n\t\t\t\t\t\thideLabelFromVision={ true }\n\t\t\t\t\t\tclassName=\"spacing-sizes-control__custom-value-input\"\n\t\t\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\t\t/>\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\tonMouseOver={ onMouseOver }\n\t\t\t\t\t\tonMouseOut={ onMouseOut }\n\t\t\t\t\t\tonFocus={ onMouseOver }\n\t\t\t\t\t\tonBlur={ onMouseOut }\n\t\t\t\t\t\tvalue={ customRangeValue }\n\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\tmax={ CUSTOM_VALUE_SETTINGS[ selectedUnit ]?.max ?? 10 }\n\t\t\t\t\t\tstep={\n\t\t\t\t\t\t\tCUSTOM_VALUE_SETTINGS[ selectedUnit ]?.steps ?? 0.1\n\t\t\t\t\t\t}\n\t\t\t\t\t\twithInputField={ false }\n\t\t\t\t\t\tonChange={ handleCustomValueSliderChange }\n\t\t\t\t\t\tclassName=\"spacing-sizes-control__custom-value-range\"\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t{ showRangeControl && ! showCustomValueControl && (\n\t\t\t\t<RangeControl\n\t\t\t\t\tonMouseOver={ onMouseOver }\n\t\t\t\t\tonMouseOut={ onMouseOut }\n\t\t\t\t\tclassName=\"spacing-sizes-control__range-control\"\n\t\t\t\t\tvalue={ currentValue }\n\t\t\t\t\tonChange={ ( newSize ) =>\n\t\t\t\t\t\tonChange( getNewPresetValue( newSize ) )\n\t\t\t\t\t}\n\t\t\t\t\tonMouseDown={ ( event ) => {\n\t\t\t\t\t\t// If mouse down is near start of range set initial value to 0, which\n\t\t\t\t\t\t// prevents the user have to drag right then left to get 0 setting.\n\t\t\t\t\t\tif ( event?.nativeEvent?.offsetX < 35 ) {\n\t\t\t\t\t\t\tsetInitialValue();\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t\twithInputField={ false }\n\t\t\t\t\taria-valuenow={ currentValue }\n\t\t\t\t\taria-valuetext={ spacingSizes[ currentValue ]?.name }\n\t\t\t\t\trenderTooltipContent={ customTooltipContent }\n\t\t\t\t\tmin={ 0 }\n\t\t\t\t\tmax={ spacingSizes.length - 1 }\n\t\t\t\t\tmarks={ marks }\n\t\t\t\t\tlabel={ ariaLabel }\n\t\t\t\t\thideLabelFromVision={ true }\n\t\t\t\t\t__nextHasNoMarginBottom={ true }\n\t\t\t\t\tonFocus={ onMouseOver }\n\t\t\t\t\tonBlur={ onMouseOut }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! showRangeControl && ! showCustomValueControl && (\n\t\t\t\t<CustomSelectControl\n\t\t\t\t\tclassName=\"spacing-sizes-control__custom-select-control\"\n\t\t\t\t\tvalue={\n\t\t\t\t\t\toptions.find(\n\t\t\t\t\t\t\t( option ) => option.key === currentValue\n\t\t\t\t\t\t) || '' // passing undefined here causes a downshift controlled/uncontrolled warning\n\t\t\t\t\t}\n\t\t\t\t\tonChange={ ( selection ) => {\n\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\tgetNewPresetValue(\n\t\t\t\t\t\t\t\tselection.selectedItem.key,\n\t\t\t\t\t\t\t\t'selectList'\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} }\n\t\t\t\t\toptions={ options }\n\t\t\t\t\tlabel={ ariaLabel }\n\t\t\t\t\thideLabelFromVision={ true }\n\t\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\t\tonMouseOver={ onMouseOver }\n\t\t\t\t\tonMouseOut={ onMouseOut }\n\t\t\t\t\tonFocus={ onMouseOver }\n\t\t\t\t\tonBlur={ onMouseOut }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! disableCustomSpacingSizes && (\n\t\t\t\t<Button\n\t\t\t\t\tlabel={\n\t\t\t\t\t\tshowCustomValueControl\n\t\t\t\t\t\t\t? __( 'Use size preset' )\n\t\t\t\t\t\t\t: __( 'Set custom size' )\n\t\t\t\t\t}\n\t\t\t\t\ticon={ settings }\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tsetShowCustomValueControl( ! showCustomValueControl );\n\t\t\t\t\t} }\n\t\t\t\t\tisPressed={ showCustomValueControl }\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\tclassName=\"spacing-sizes-control__custom-toggle\"\n\t\t\t\t\ticonSize={ 24 }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</HStack>\n\t);\n}\n"],"mappings":"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"}
@@ -3,7 +3,6 @@ import { createElement, Fragment } from "react";
3
3
  * External dependencies
4
4
  */
5
5
  import classnames from 'classnames';
6
- import scrollIntoView from 'dom-scroll-into-view';
7
6
 
8
7
  /**
9
8
  * WordPress dependencies
@@ -66,14 +65,12 @@ class URLInput extends Component {
66
65
 
67
66
  // Only have to worry about scrolling selected suggestion into view
68
67
  // when already expanded.
69
- if (showSuggestions && selectedSuggestion !== null && this.suggestionNodes[selectedSuggestion] && !this.scrollingIntoView) {
70
- this.scrollingIntoView = true;
71
- scrollIntoView(this.suggestionNodes[selectedSuggestion], this.autocompleteRef.current, {
72
- onlyScrollIfNeeded: true
68
+ if (showSuggestions && selectedSuggestion !== null && this.suggestionNodes[selectedSuggestion]) {
69
+ this.suggestionNodes[selectedSuggestion].scrollIntoView({
70
+ behavior: 'instant',
71
+ block: 'nearest',
72
+ inline: 'nearest'
73
73
  });
74
- this.props.setTimeout(() => {
75
- this.scrollingIntoView = false;
76
- }, 100);
77
74
  }
78
75
 
79
76
  // Update suggestions when the value changes.