@wordpress/block-editor 15.9.0 → 15.9.1-next.6deb34194.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 (144) hide show
  1. package/README.md +12 -0
  2. package/build/components/block-alignment-matrix-control/index.js +1 -8
  3. package/build/components/block-alignment-matrix-control/index.js.map +2 -2
  4. package/build/components/block-bindings/attribute-control.js +172 -0
  5. package/build/components/block-bindings/attribute-control.js.map +7 -0
  6. package/build/components/block-bindings/index.js +47 -0
  7. package/build/components/block-bindings/index.js.map +7 -0
  8. package/build/components/block-bindings/source-fields-list.js +135 -0
  9. package/build/components/block-bindings/source-fields-list.js.map +7 -0
  10. package/build/components/block-bindings/use-block-bindings-utils.js +66 -0
  11. package/build/components/block-bindings/use-block-bindings-utils.js.map +7 -0
  12. package/build/components/block-edit/edit.js +1 -3
  13. package/build/components/block-edit/edit.js.map +2 -2
  14. package/build/components/block-styles/preview-panel.js +3 -5
  15. package/build/components/block-styles/preview-panel.js.map +2 -2
  16. package/build/components/block-styles/use-styles-for-block.js +2 -2
  17. package/build/components/block-styles/use-styles-for-block.js.map +2 -2
  18. package/build/components/block-toolbar/index.js +1 -8
  19. package/build/components/block-toolbar/index.js.map +3 -3
  20. package/build/components/content-only-controls/index.js +2 -25
  21. package/build/components/content-only-controls/index.js.map +2 -2
  22. package/build/components/content-only-controls/link/index.js +3 -3
  23. package/build/components/content-only-controls/link/index.js.map +2 -2
  24. package/build/components/content-only-controls/media/index.js +3 -3
  25. package/build/components/content-only-controls/media/index.js.map +2 -2
  26. package/build/components/content-only-controls/rich-text/index.js +3 -2
  27. package/build/components/content-only-controls/rich-text/index.js.map +2 -2
  28. package/build/components/dimensions-tool/width-height-tool.js +4 -16
  29. package/build/components/dimensions-tool/width-height-tool.js.map +3 -3
  30. package/build/components/image-editor/cropper.js +3 -34
  31. package/build/components/image-editor/cropper.js.map +3 -3
  32. package/build/components/image-editor/index.js +9 -3
  33. package/build/components/image-editor/index.js.map +2 -2
  34. package/build/components/image-editor/use-transform-image.js +62 -32
  35. package/build/components/image-editor/use-transform-image.js.map +2 -2
  36. package/build/components/image-editor/zoom-dropdown.js +2 -2
  37. package/build/components/image-editor/zoom-dropdown.js.map +2 -2
  38. package/build/components/index.js +10 -3
  39. package/build/components/index.js.map +2 -2
  40. package/build/components/inserter-draggable-blocks/index.js +8 -4
  41. package/build/components/inserter-draggable-blocks/index.js.map +2 -2
  42. package/build/components/inspector-controls-tabs/content-tab.js +3 -2
  43. package/build/components/inspector-controls-tabs/content-tab.js.map +2 -2
  44. package/build/components/tool-selector/index.js +46 -0
  45. package/build/components/tool-selector/index.js.map +7 -0
  46. package/build/hooks/block-bindings.js +22 -260
  47. package/build/hooks/block-bindings.js.map +3 -3
  48. package/build/layouts/grid.js +23 -28
  49. package/build/layouts/grid.js.map +2 -2
  50. package/build/utils/block-bindings.js +2 -44
  51. package/build/utils/block-bindings.js.map +3 -3
  52. package/build/utils/index.js +2 -5
  53. package/build/utils/index.js.map +2 -2
  54. package/build-module/components/block-alignment-matrix-control/index.js +1 -8
  55. package/build-module/components/block-alignment-matrix-control/index.js.map +2 -2
  56. package/build-module/components/block-bindings/attribute-control.js +150 -0
  57. package/build-module/components/block-bindings/attribute-control.js.map +7 -0
  58. package/build-module/components/block-bindings/index.js +10 -0
  59. package/build-module/components/block-bindings/index.js.map +7 -0
  60. package/build-module/components/block-bindings/source-fields-list.js +104 -0
  61. package/build-module/components/block-bindings/source-fields-list.js.map +7 -0
  62. package/build-module/components/block-bindings/use-block-bindings-utils.js +45 -0
  63. package/build-module/components/block-bindings/use-block-bindings-utils.js.map +7 -0
  64. package/build-module/components/block-edit/edit.js +1 -3
  65. package/build-module/components/block-edit/edit.js.map +2 -2
  66. package/build-module/components/block-styles/preview-panel.js +3 -5
  67. package/build-module/components/block-styles/preview-panel.js.map +2 -2
  68. package/build-module/components/block-styles/use-styles-for-block.js +2 -2
  69. package/build-module/components/block-styles/use-styles-for-block.js.map +2 -2
  70. package/build-module/components/block-toolbar/index.js +1 -8
  71. package/build-module/components/block-toolbar/index.js.map +2 -2
  72. package/build-module/components/content-only-controls/index.js +2 -25
  73. package/build-module/components/content-only-controls/index.js.map +2 -2
  74. package/build-module/components/content-only-controls/link/index.js +3 -3
  75. package/build-module/components/content-only-controls/link/index.js.map +2 -2
  76. package/build-module/components/content-only-controls/media/index.js +3 -3
  77. package/build-module/components/content-only-controls/media/index.js.map +2 -2
  78. package/build-module/components/content-only-controls/rich-text/index.js +3 -2
  79. package/build-module/components/content-only-controls/rich-text/index.js.map +2 -2
  80. package/build-module/components/dimensions-tool/width-height-tool.js +4 -6
  81. package/build-module/components/dimensions-tool/width-height-tool.js.map +2 -2
  82. package/build-module/components/image-editor/cropper.js +3 -34
  83. package/build-module/components/image-editor/cropper.js.map +2 -2
  84. package/build-module/components/image-editor/index.js +9 -3
  85. package/build-module/components/image-editor/index.js.map +2 -2
  86. package/build-module/components/image-editor/use-transform-image.js +63 -33
  87. package/build-module/components/image-editor/use-transform-image.js.map +2 -2
  88. package/build-module/components/image-editor/zoom-dropdown.js +2 -2
  89. package/build-module/components/image-editor/zoom-dropdown.js.map +2 -2
  90. package/build-module/components/index.js +74 -66
  91. package/build-module/components/index.js.map +2 -2
  92. package/build-module/components/inserter-draggable-blocks/index.js +8 -4
  93. package/build-module/components/inserter-draggable-blocks/index.js.map +2 -2
  94. package/build-module/components/inspector-controls-tabs/content-tab.js +3 -2
  95. package/build-module/components/inspector-controls-tabs/content-tab.js.map +2 -2
  96. package/build-module/components/tool-selector/index.js +15 -0
  97. package/build-module/components/tool-selector/index.js.map +7 -0
  98. package/build-module/hooks/block-bindings.js +27 -270
  99. package/build-module/hooks/block-bindings.js.map +2 -2
  100. package/build-module/layouts/grid.js +23 -28
  101. package/build-module/layouts/grid.js.map +2 -2
  102. package/build-module/utils/block-bindings.js +1 -42
  103. package/build-module/utils/block-bindings.js.map +2 -2
  104. package/build-module/utils/index.js +1 -3
  105. package/build-module/utils/index.js.map +2 -2
  106. package/build-style/style-rtl.css +6 -6
  107. package/build-style/style.css +6 -6
  108. package/package.json +39 -40
  109. package/src/components/block-alignment-matrix-control/index.js +1 -5
  110. package/src/components/block-bindings/attribute-control.js +174 -0
  111. package/src/components/block-bindings/index.js +6 -0
  112. package/src/components/block-bindings/source-fields-list.js +130 -0
  113. package/src/components/block-bindings/use-block-bindings-utils.js +156 -0
  114. package/src/components/block-edit/edit.js +1 -3
  115. package/src/components/block-styles/preview-panel.js +3 -5
  116. package/src/components/block-styles/use-styles-for-block.js +2 -2
  117. package/src/components/block-toolbar/index.js +1 -6
  118. package/src/components/block-toolbar/style.scss +6 -6
  119. package/src/components/content-only-controls/index.js +2 -27
  120. package/src/components/content-only-controls/link/index.js +3 -3
  121. package/src/components/content-only-controls/media/index.js +3 -3
  122. package/src/components/content-only-controls/rich-text/index.js +3 -2
  123. package/src/components/dimensions-tool/width-height-tool.js +6 -13
  124. package/src/components/image-editor/cropper.js +3 -32
  125. package/src/components/image-editor/index.js +34 -29
  126. package/src/components/image-editor/use-transform-image.js +80 -34
  127. package/src/components/image-editor/zoom-dropdown.js +2 -2
  128. package/src/components/index.js +9 -1
  129. package/src/components/inserter/style.scss +1 -1
  130. package/src/components/inserter-draggable-blocks/index.js +19 -8
  131. package/src/components/inspector-controls-tabs/content-tab.js +6 -2
  132. package/src/components/tool-selector/index.js +19 -0
  133. package/src/hooks/block-bindings.js +27 -347
  134. package/src/layouts/grid.js +40 -72
  135. package/src/layouts/test/grid.js +14 -0
  136. package/src/utils/block-bindings.js +0 -157
  137. package/src/utils/index.js +0 -1
  138. package/tsconfig.json +1 -0
  139. package/build/components/block-toolbar/block-name-context.js +0 -30
  140. package/build/components/block-toolbar/block-name-context.js.map +0 -7
  141. package/build-module/components/block-toolbar/block-name-context.js +0 -9
  142. package/build-module/components/block-toolbar/block-name-context.js.map +0 -7
  143. package/src/components/block-toolbar/block-name-context.js +0 -9
  144. /package/src/{utils → components/block-bindings}/test/use-block-bindings-utils.js +0 -0
@@ -36,6 +36,8 @@ __export(components_exports, {
36
36
  Autocomplete: () => import_autocomplete.default,
37
37
  BlockAlignmentControl: () => import_block_alignment_control.BlockAlignmentControl,
38
38
  BlockAlignmentToolbar: () => import_block_alignment_control.BlockAlignmentToolbar,
39
+ BlockBindingsAttributeControl: () => import_block_bindings.BlockBindingsAttributeControl,
40
+ BlockBindingsSourceFieldsList: () => import_block_bindings.BlockBindingsSourceFieldsList,
39
41
  BlockBreadcrumb: () => import_block_breadcrumb.default,
40
42
  BlockCanvas: () => import_block_canvas.default,
41
43
  BlockColorsStyleSelector: () => import_color_style_selector.default,
@@ -92,6 +94,7 @@ __export(components_exports, {
92
94
  RichTextShortcut: () => import_rich_text.RichTextShortcut,
93
95
  RichTextToolbarButton: () => import_rich_text.RichTextToolbarButton,
94
96
  SkipToSelectedBlock: () => import_skip_to_selected_block.default,
97
+ ToolSelector: () => import_tool_selector.default,
95
98
  Typewriter: () => import_typewriter.default,
96
99
  URLInput: () => import_url_input.default,
97
100
  URLInputButton: () => import_button.default,
@@ -137,7 +140,6 @@ __export(components_exports, {
137
140
  __experimentalUseMultipleOriginColorsAndGradients: () => import_use_multiple_origin_colors_and_gradients.default,
138
141
  __experimentalUseResizeCanvas: () => import_use_resize_canvas.default,
139
142
  __experimentalWritingModeControl: () => import_writing_mode_control.default,
140
- __unstableBlockNameContext: () => import_block_name_context.default,
141
143
  __unstableBlockSettingsMenuFirstItem: () => import_block_settings_menu_first_item.default,
142
144
  __unstableBlockToolbarLastItem: () => import_block_toolbar_last_item.default,
143
145
  __unstableEditorStyles: () => import_editor_styles.default,
@@ -152,6 +154,7 @@ __export(components_exports, {
152
154
  getCustomValueFromPreset: () => import_utils.getCustomValueFromPreset,
153
155
  getSpacingPresetCssVar: () => import_utils.getSpacingPresetCssVar,
154
156
  isValueSpacingPreset: () => import_utils.isValueSpacingPreset,
157
+ useBlockBindingsUtils: () => import_block_bindings.useBlockBindingsUtils,
155
158
  useBlockCommands: () => import_use_block_commands.useBlockCommands,
156
159
  useBlockDisplayInformation: () => import_use_block_display_information.default,
157
160
  useBlockEditContext: () => import_block_edit.useBlockEditContext,
@@ -170,6 +173,7 @@ __reExport(components_exports, require("./font-sizes"), module.exports);
170
173
  var import_alignment_control = require("./alignment-control");
171
174
  var import_autocomplete = __toESM(require("./autocomplete"));
172
175
  var import_block_alignment_control = require("./block-alignment-control");
176
+ var import_block_bindings = require("./block-bindings");
173
177
  var import_block_full_height_alignment_control = __toESM(require("./block-full-height-alignment-control"));
174
178
  var import_block_alignment_matrix_control = __toESM(require("./block-alignment-matrix-control"));
175
179
  var import_block_breadcrumb = __toESM(require("./block-breadcrumb"));
@@ -234,7 +238,6 @@ var import_spacing_sizes_control = __toESM(require("./spacing-sizes-control"));
234
238
  var import_utils = require("./spacing-sizes-control/utils");
235
239
  var import_block_settings_menu_first_item = __toESM(require("./block-settings-menu/block-settings-menu-first-item"));
236
240
  var import_block_toolbar_last_item = __toESM(require("./block-toolbar/block-toolbar-last-item"));
237
- var import_block_name_context = __toESM(require("./block-toolbar/block-name-context"));
238
241
  var import_inserter_menu_extension = __toESM(require("./inserter-menu-extension"));
239
242
  var import_preview_options = __toESM(require("./preview-options"));
240
243
  var import_use_resize_canvas = __toESM(require("./use-resize-canvas"));
@@ -273,6 +276,7 @@ var import_block_editing_mode = require("./block-editing-mode");
273
276
  var import_provider = __toESM(require("./provider"));
274
277
  var import_use_settings = require("./use-settings");
275
278
  var import_use_block_commands = require("./use-block-commands");
279
+ var import_tool_selector = __toESM(require("./tool-selector"));
276
280
  // Annotate the CommonJS export names for ESM import in node:
277
281
  0 && (module.exports = {
278
282
  AlignmentControl,
@@ -280,6 +284,8 @@ var import_use_block_commands = require("./use-block-commands");
280
284
  Autocomplete,
281
285
  BlockAlignmentControl,
282
286
  BlockAlignmentToolbar,
287
+ BlockBindingsAttributeControl,
288
+ BlockBindingsSourceFieldsList,
283
289
  BlockBreadcrumb,
284
290
  BlockCanvas,
285
291
  BlockColorsStyleSelector,
@@ -336,6 +342,7 @@ var import_use_block_commands = require("./use-block-commands");
336
342
  RichTextShortcut,
337
343
  RichTextToolbarButton,
338
344
  SkipToSelectedBlock,
345
+ ToolSelector,
339
346
  Typewriter,
340
347
  URLInput,
341
348
  URLInputButton,
@@ -381,7 +388,6 @@ var import_use_block_commands = require("./use-block-commands");
381
388
  __experimentalUseMultipleOriginColorsAndGradients,
382
389
  __experimentalUseResizeCanvas,
383
390
  __experimentalWritingModeControl,
384
- __unstableBlockNameContext,
385
391
  __unstableBlockSettingsMenuFirstItem,
386
392
  __unstableBlockToolbarLastItem,
387
393
  __unstableEditorStyles,
@@ -396,6 +402,7 @@ var import_use_block_commands = require("./use-block-commands");
396
402
  getCustomValueFromPreset,
397
403
  getSpacingPresetCssVar,
398
404
  isValueSpacingPreset,
405
+ useBlockBindingsUtils,
399
406
  useBlockCommands,
400
407
  useBlockDisplayInformation,
401
408
  useBlockEditContext,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/components/index.js"],
4
- "sourcesContent": ["/*\n * Block Creation Components\n */\n\nexport * from './colors';\nexport * from './gradients';\nexport * from './font-sizes';\nexport { AlignmentControl, AlignmentToolbar } from './alignment-control';\nexport { default as Autocomplete } from './autocomplete';\nexport {\n\tBlockAlignmentControl,\n\tBlockAlignmentToolbar,\n} from './block-alignment-control';\nexport { default as __experimentalBlockFullHeightAligmentControl } from './block-full-height-alignment-control';\nexport { default as __experimentalBlockAlignmentMatrixControl } from './block-alignment-matrix-control';\nexport { default as BlockBreadcrumb } from './block-breadcrumb';\nexport { default as __experimentalUseBlockOverlayActive } from './block-content-overlay';\nexport { BlockContextProvider } from './block-context';\nexport { default as BlockCanvas } from './block-canvas';\nexport {\n\tdefault as BlockControls,\n\tBlockFormatControls,\n} from './block-controls';\nexport { default as BlockColorsStyleSelector } from './color-style-selector';\nexport { default as BlockEdit, useBlockEditContext } from './block-edit';\nexport { default as BlockIcon } from './block-icon';\nexport { default as BlockNavigationDropdown } from './block-navigation/dropdown';\nexport { default as BlockStyles } from './block-styles';\nexport { default as HeadingLevelDropdown } from './block-heading-level-dropdown';\nexport { default as __experimentalBlockVariationPicker } from './block-variation-picker';\nexport { default as __experimentalBlockPatternSetup } from './block-pattern-setup';\nexport { default as __experimentalBlockVariationTransforms } from './block-variation-transforms';\nexport {\n\tBlockVerticalAlignmentToolbar,\n\tBlockVerticalAlignmentControl,\n} from './block-vertical-alignment-control';\nexport { default as __experimentalBorderRadiusControl } from './border-radius-control';\nexport {\n\t// This is a typo, but kept here for back-compat.\n\tButtonBlockerAppender,\n\tdefault as ButtonBlockAppender,\n} from './button-block-appender';\nexport { default as ColorPalette } from './color-palette';\nexport { default as ColorPaletteControl } from './color-palette/control';\nexport { default as ContrastChecker } from './contrast-checker';\nexport { default as __experimentalDateFormatPicker } from './date-format-picker';\nexport { default as __experimentalDuotoneControl } from './duotone-control';\nexport { default as __experimentalFontAppearanceControl } from './font-appearance-control';\nexport { default as __experimentalFontFamilyControl } from './font-family';\nexport { default as __experimentalLetterSpacingControl } from './letter-spacing-control';\nexport { default as __experimentalTextDecorationControl } from './text-decoration-control';\nexport { default as __experimentalTextTransformControl } from './text-transform-control';\nexport { default as __experimentalWritingModeControl } from './writing-mode-control';\nexport { default as __experimentalColorGradientControl } from './colors-gradients/control';\nexport { default as __experimentalColorGradientSettingsDropdown } from './colors-gradients/dropdown';\nexport { default as __experimentalPanelColorGradientSettings } from './colors-gradients/panel-color-gradient-settings';\nexport { default as __experimentalUseMultipleOriginColorsAndGradients } from './colors-gradients/use-multiple-origin-colors-and-gradients';\nexport { default as HeightControl } from './height-control';\nexport { default as __experimentalImageEditor } from './image-editor';\nexport { default as __experimentalImageSizeControl } from './image-size-control';\nexport { default as InnerBlocks, useInnerBlocksProps } from './inner-blocks';\nexport {\n\tdefault as InspectorControls,\n\tInspectorAdvancedControls,\n} from './inspector-controls';\nexport {\n\tJustifyToolbar,\n\tJustifyContentControl,\n} from './justify-content-control';\nexport {\n\tdefault as LinkControl,\n\tDeprecatedExperimentalLinkControl as __experimentalLinkControl,\n} from './link-control';\nexport { __experimentalLinkControlSearchInput } from './link-control/search-input';\nexport { __experimentalLinkControlSearchResults } from './link-control/search-results';\nexport { __experimentalLinkControlSearchItem } from './link-control/search-item';\nexport { default as LineHeightControl } from './line-height-control';\nexport { default as __experimentalListView } from './list-view';\nexport { default as MediaReplaceFlow } from './media-replace-flow';\nexport { default as MediaPlaceholder } from './media-placeholder';\nexport { default as MediaUpload } from './media-upload';\nexport { default as MediaUploadCheck } from './media-upload/check';\nexport { default as PanelColorSettings } from './panel-color-settings';\nexport { default as PlainText } from './plain-text';\nexport { default as __experimentalResponsiveBlockControl } from './responsive-block-control';\nexport {\n\tdefault as RichText,\n\tRichTextShortcut,\n\tRichTextToolbarButton,\n\t__unstableRichTextInputEvent,\n} from './rich-text';\nexport { default as __experimentalUnitControl } from './unit-control';\nexport { default as URLInput } from './url-input';\nexport { default as URLInputButton } from './url-input/button';\nexport { default as URLPopover } from './url-popover';\nexport { __experimentalImageURLInputUI } from './url-popover/image-url-input-ui';\nexport { default as withColorContext } from './color-palette/with-color-context';\nexport { default as __experimentalSpacingSizesControl } from './spacing-sizes-control';\nexport {\n\tgetSpacingPresetCssVar,\n\tisValueSpacingPreset,\n\tgetCustomValueFromPreset,\n} from './spacing-sizes-control/utils';\n/*\n * Content Related Components\n */\n\nexport { default as __unstableBlockSettingsMenuFirstItem } from './block-settings-menu/block-settings-menu-first-item';\nexport { default as __unstableBlockToolbarLastItem } from './block-toolbar/block-toolbar-last-item';\nexport { default as __unstableBlockNameContext } from './block-toolbar/block-name-context';\nexport { default as __unstableInserterMenuExtension } from './inserter-menu-extension';\nexport { default as __experimentalPreviewOptions } from './preview-options';\nexport { default as __experimentalUseResizeCanvas } from './use-resize-canvas';\nexport { default as BlockInspector } from './block-inspector';\nexport { default as BlockList } from './block-list';\nexport { useBlockProps } from './block-list/use-block-props';\nexport { default as BlockMover } from './block-mover';\nexport {\n\tdefault as BlockPreview,\n\tuseBlockPreview as __experimentalUseBlockPreview,\n} from './block-preview';\nexport {\n\tdefault as BlockSelectionClearer,\n\tuseBlockSelectionClearer as __unstableUseBlockSelectionClearer,\n} from './block-selection-clearer';\nexport { default as BlockSettingsMenu } from './block-settings-menu';\nexport { default as BlockSettingsMenuControls } from './block-settings-menu-controls';\nexport { default as BlockTitle } from './block-title';\nexport { default as BlockToolbar } from './block-toolbar';\nexport { default as BlockTools } from './block-tools';\nexport {\n\tdefault as CopyHandler,\n\t__unstableUseClipboardHandler,\n} from './copy-handler';\nexport { default as DefaultBlockAppender } from './default-block-appender';\nexport { default as __unstableEditorStyles } from './editor-styles';\nexport { default as Inserter } from './inserter';\nexport { default as __experimentalLibrary } from './inserter/library';\nexport { default as BlockEditorKeyboardShortcuts } from './keyboard-shortcuts';\nexport { MultiSelectScrollIntoView } from './selection-scroll-into-view';\nexport { default as NavigableToolbar } from './navigable-toolbar';\nexport {\n\tdefault as ObserveTyping,\n\tuseTypingObserver as __unstableUseTypingObserver,\n\tuseMouseMoveTypingReset as __unstableUseMouseMoveTypingReset,\n} from './observe-typing';\nexport { default as SkipToSelectedBlock } from './skip-to-selected-block';\nexport {\n\tdefault as Typewriter,\n\tuseTypewriter as __unstableUseTypewriter,\n} from './typewriter';\nexport { default as Warning } from './warning';\nexport { default as WritingFlow } from './writing-flow';\nexport { default as useBlockDisplayInformation } from './use-block-display-information';\nexport { default as __unstableIframe } from './iframe';\nexport {\n\tRecursionProvider,\n\tDeprecatedExperimentalRecursionProvider as __experimentalRecursionProvider,\n\tuseHasRecursion,\n\tDeprecatedExperimentalUseHasRecursion as __experimentalUseHasRecursion,\n} from './recursion-provider';\nexport { default as __experimentalBlockPatternsList } from './block-patterns-list';\nexport { default as __experimentalPublishDateTimePicker } from './publish-date-time-picker';\nexport { default as __experimentalInspectorPopoverHeader } from './inspector-popover-header';\nexport { default as BlockPopover } from './block-popover';\nexport { useBlockEditingMode } from './block-editing-mode';\n\n/*\n * State Related Components\n */\n\nexport { default as BlockEditorProvider } from './provider';\nexport { useSettings, useSetting } from './use-settings';\nexport { useBlockCommands } from './use-block-commands';\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/*\n * Block Creation Components\n */\n\nexport * from './colors';\nexport * from './gradients';\nexport * from './font-sizes';\nexport { AlignmentControl, AlignmentToolbar } from './alignment-control';\nexport { default as Autocomplete } from './autocomplete';\nexport {\n\tBlockAlignmentControl,\n\tBlockAlignmentToolbar,\n} from './block-alignment-control';\nexport {\n\tBlockBindingsAttributeControl,\n\tBlockBindingsSourceFieldsList,\n\tuseBlockBindingsUtils,\n} from './block-bindings';\nexport { default as __experimentalBlockFullHeightAligmentControl } from './block-full-height-alignment-control';\nexport { default as __experimentalBlockAlignmentMatrixControl } from './block-alignment-matrix-control';\nexport { default as BlockBreadcrumb } from './block-breadcrumb';\nexport { default as __experimentalUseBlockOverlayActive } from './block-content-overlay';\nexport { BlockContextProvider } from './block-context';\nexport { default as BlockCanvas } from './block-canvas';\nexport {\n\tdefault as BlockControls,\n\tBlockFormatControls,\n} from './block-controls';\nexport { default as BlockColorsStyleSelector } from './color-style-selector';\nexport { default as BlockEdit, useBlockEditContext } from './block-edit';\nexport { default as BlockIcon } from './block-icon';\nexport { default as BlockNavigationDropdown } from './block-navigation/dropdown';\nexport { default as BlockStyles } from './block-styles';\nexport { default as HeadingLevelDropdown } from './block-heading-level-dropdown';\nexport { default as __experimentalBlockVariationPicker } from './block-variation-picker';\nexport { default as __experimentalBlockPatternSetup } from './block-pattern-setup';\nexport { default as __experimentalBlockVariationTransforms } from './block-variation-transforms';\nexport {\n\tBlockVerticalAlignmentToolbar,\n\tBlockVerticalAlignmentControl,\n} from './block-vertical-alignment-control';\nexport { default as __experimentalBorderRadiusControl } from './border-radius-control';\nexport {\n\t// This is a typo, but kept here for back-compat.\n\tButtonBlockerAppender,\n\tdefault as ButtonBlockAppender,\n} from './button-block-appender';\nexport { default as ColorPalette } from './color-palette';\nexport { default as ColorPaletteControl } from './color-palette/control';\nexport { default as ContrastChecker } from './contrast-checker';\nexport { default as __experimentalDateFormatPicker } from './date-format-picker';\nexport { default as __experimentalDuotoneControl } from './duotone-control';\nexport { default as __experimentalFontAppearanceControl } from './font-appearance-control';\nexport { default as __experimentalFontFamilyControl } from './font-family';\nexport { default as __experimentalLetterSpacingControl } from './letter-spacing-control';\nexport { default as __experimentalTextDecorationControl } from './text-decoration-control';\nexport { default as __experimentalTextTransformControl } from './text-transform-control';\nexport { default as __experimentalWritingModeControl } from './writing-mode-control';\nexport { default as __experimentalColorGradientControl } from './colors-gradients/control';\nexport { default as __experimentalColorGradientSettingsDropdown } from './colors-gradients/dropdown';\nexport { default as __experimentalPanelColorGradientSettings } from './colors-gradients/panel-color-gradient-settings';\nexport { default as __experimentalUseMultipleOriginColorsAndGradients } from './colors-gradients/use-multiple-origin-colors-and-gradients';\nexport { default as HeightControl } from './height-control';\nexport { default as __experimentalImageEditor } from './image-editor';\nexport { default as __experimentalImageSizeControl } from './image-size-control';\nexport { default as InnerBlocks, useInnerBlocksProps } from './inner-blocks';\nexport {\n\tdefault as InspectorControls,\n\tInspectorAdvancedControls,\n} from './inspector-controls';\nexport {\n\tJustifyToolbar,\n\tJustifyContentControl,\n} from './justify-content-control';\nexport {\n\tdefault as LinkControl,\n\tDeprecatedExperimentalLinkControl as __experimentalLinkControl,\n} from './link-control';\nexport { __experimentalLinkControlSearchInput } from './link-control/search-input';\nexport { __experimentalLinkControlSearchResults } from './link-control/search-results';\nexport { __experimentalLinkControlSearchItem } from './link-control/search-item';\nexport { default as LineHeightControl } from './line-height-control';\nexport { default as __experimentalListView } from './list-view';\nexport { default as MediaReplaceFlow } from './media-replace-flow';\nexport { default as MediaPlaceholder } from './media-placeholder';\nexport { default as MediaUpload } from './media-upload';\nexport { default as MediaUploadCheck } from './media-upload/check';\nexport { default as PanelColorSettings } from './panel-color-settings';\nexport { default as PlainText } from './plain-text';\nexport { default as __experimentalResponsiveBlockControl } from './responsive-block-control';\nexport {\n\tdefault as RichText,\n\tRichTextShortcut,\n\tRichTextToolbarButton,\n\t__unstableRichTextInputEvent,\n} from './rich-text';\nexport { default as __experimentalUnitControl } from './unit-control';\nexport { default as URLInput } from './url-input';\nexport { default as URLInputButton } from './url-input/button';\nexport { default as URLPopover } from './url-popover';\nexport { __experimentalImageURLInputUI } from './url-popover/image-url-input-ui';\nexport { default as withColorContext } from './color-palette/with-color-context';\nexport { default as __experimentalSpacingSizesControl } from './spacing-sizes-control';\nexport {\n\tgetSpacingPresetCssVar,\n\tisValueSpacingPreset,\n\tgetCustomValueFromPreset,\n} from './spacing-sizes-control/utils';\n/*\n * Content Related Components\n */\n\nexport { default as __unstableBlockSettingsMenuFirstItem } from './block-settings-menu/block-settings-menu-first-item';\nexport { default as __unstableBlockToolbarLastItem } from './block-toolbar/block-toolbar-last-item';\nexport { default as __unstableInserterMenuExtension } from './inserter-menu-extension';\nexport { default as __experimentalPreviewOptions } from './preview-options';\nexport { default as __experimentalUseResizeCanvas } from './use-resize-canvas';\nexport { default as BlockInspector } from './block-inspector';\nexport { default as BlockList } from './block-list';\nexport { useBlockProps } from './block-list/use-block-props';\nexport { default as BlockMover } from './block-mover';\nexport {\n\tdefault as BlockPreview,\n\tuseBlockPreview as __experimentalUseBlockPreview,\n} from './block-preview';\nexport {\n\tdefault as BlockSelectionClearer,\n\tuseBlockSelectionClearer as __unstableUseBlockSelectionClearer,\n} from './block-selection-clearer';\nexport { default as BlockSettingsMenu } from './block-settings-menu';\nexport { default as BlockSettingsMenuControls } from './block-settings-menu-controls';\nexport { default as BlockTitle } from './block-title';\nexport { default as BlockToolbar } from './block-toolbar';\nexport { default as BlockTools } from './block-tools';\nexport {\n\tdefault as CopyHandler,\n\t__unstableUseClipboardHandler,\n} from './copy-handler';\nexport { default as DefaultBlockAppender } from './default-block-appender';\nexport { default as __unstableEditorStyles } from './editor-styles';\nexport { default as Inserter } from './inserter';\nexport { default as __experimentalLibrary } from './inserter/library';\nexport { default as BlockEditorKeyboardShortcuts } from './keyboard-shortcuts';\nexport { MultiSelectScrollIntoView } from './selection-scroll-into-view';\nexport { default as NavigableToolbar } from './navigable-toolbar';\nexport {\n\tdefault as ObserveTyping,\n\tuseTypingObserver as __unstableUseTypingObserver,\n\tuseMouseMoveTypingReset as __unstableUseMouseMoveTypingReset,\n} from './observe-typing';\nexport { default as SkipToSelectedBlock } from './skip-to-selected-block';\nexport {\n\tdefault as Typewriter,\n\tuseTypewriter as __unstableUseTypewriter,\n} from './typewriter';\nexport { default as Warning } from './warning';\nexport { default as WritingFlow } from './writing-flow';\nexport { default as useBlockDisplayInformation } from './use-block-display-information';\nexport { default as __unstableIframe } from './iframe';\nexport {\n\tRecursionProvider,\n\tDeprecatedExperimentalRecursionProvider as __experimentalRecursionProvider,\n\tuseHasRecursion,\n\tDeprecatedExperimentalUseHasRecursion as __experimentalUseHasRecursion,\n} from './recursion-provider';\nexport { default as __experimentalBlockPatternsList } from './block-patterns-list';\nexport { default as __experimentalPublishDateTimePicker } from './publish-date-time-picker';\nexport { default as __experimentalInspectorPopoverHeader } from './inspector-popover-header';\nexport { default as BlockPopover } from './block-popover';\nexport { useBlockEditingMode } from './block-editing-mode';\n\n/*\n * State Related Components\n */\n\nexport { default as BlockEditorProvider } from './provider';\nexport { useSettings, useSetting } from './use-settings';\nexport { useBlockCommands } from './use-block-commands';\n\n// This component is no longer used in Gutenberg,\n// but kept for backwards compatibility.\nexport { default as ToolSelector } from './tool-selector';\n"],
5
+ "mappings": "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",
6
6
  "names": ["import_control", "import_dropdown"]
7
7
  }
@@ -49,12 +49,12 @@ var InserterDraggableBlocks = ({
49
49
  children,
50
50
  pattern
51
51
  }) => {
52
+ const blockName = blocks.length === 1 ? blocks[0].name : void 0;
52
53
  const blockTypeIcon = (0, import_data.useSelect)(
53
54
  (select) => {
54
- const { getBlockType } = select(import_blocks.store);
55
- return blocks.length === 1 && getBlockType(blocks[0].name)?.icon;
55
+ return blockName && select(import_blocks.store).getBlockType(blockName)?.icon;
56
56
  },
57
- [blocks]
57
+ [blockName]
58
58
  );
59
59
  const { startDragging, stopDragging } = (0, import_lock_unlock.unlock)(
60
60
  (0, import_data.useDispatch)(import_store.store)
@@ -77,9 +77,13 @@ var InserterDraggableBlocks = ({
77
77
  transferData: { type: "inserter", blocks: draggableBlocks },
78
78
  onDragStart: (event) => {
79
79
  startDragging();
80
+ const addedTypes = /* @__PURE__ */ new Set();
80
81
  for (const block of draggableBlocks) {
81
82
  const type = `wp-block:${block.name}`;
82
- event.dataTransfer.items.add("", type);
83
+ if (!addedTypes.has(type)) {
84
+ event.dataTransfer.items.add("", type);
85
+ addedTypes.add(type);
86
+ }
83
87
  }
84
88
  },
85
89
  onDragEnd: () => {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/inserter-draggable-blocks/index.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { Draggable } from '@wordpress/components';\nimport { createBlock, store as blocksStore } from '@wordpress/blocks';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport BlockDraggableChip from '../block-draggable/draggable-chip';\nimport { INSERTER_PATTERN_TYPES } from '../inserter/block-patterns-tab/utils';\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nconst InserterDraggableBlocks = ( {\n\tisEnabled,\n\tblocks,\n\ticon,\n\tchildren,\n\tpattern,\n} ) => {\n\tconst blockTypeIcon = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockType } = select( blocksStore );\n\t\t\treturn (\n\t\t\t\tblocks.length === 1 && getBlockType( blocks[ 0 ].name )?.icon\n\t\t\t);\n\t\t},\n\t\t[ blocks ]\n\t);\n\n\tconst { startDragging, stopDragging } = unlock(\n\t\tuseDispatch( blockEditorStore )\n\t);\n\n\tconst patternBlock = useMemo( () => {\n\t\treturn pattern?.type === INSERTER_PATTERN_TYPES.user &&\n\t\t\tpattern?.syncStatus !== 'unsynced'\n\t\t\t? [ createBlock( 'core/block', { ref: pattern.id } ) ]\n\t\t\t: undefined;\n\t}, [ pattern?.type, pattern?.syncStatus, pattern?.id ] );\n\n\tif ( ! isEnabled ) {\n\t\treturn children( {\n\t\t\tdraggable: false,\n\t\t\tonDragStart: undefined,\n\t\t\tonDragEnd: undefined,\n\t\t} );\n\t}\n\n\tconst draggableBlocks = patternBlock ?? blocks;\n\treturn (\n\t\t<Draggable\n\t\t\t__experimentalTransferDataType=\"wp-blocks\"\n\t\t\ttransferData={ { type: 'inserter', blocks: draggableBlocks } }\n\t\t\tonDragStart={ ( event ) => {\n\t\t\t\tstartDragging();\n\t\t\t\tfor ( const block of draggableBlocks ) {\n\t\t\t\t\tconst type = `wp-block:${ block.name }`;\n\t\t\t\t\t// This will fill in the dataTransfer.types array so that\n\t\t\t\t\t// the drop zone can check if the draggable is eligible.\n\t\t\t\t\t// Unfortuantely, on drag start, we don't have access to the\n\t\t\t\t\t// actual data, only the data keys/types.\n\t\t\t\t\tevent.dataTransfer.items.add( '', type );\n\t\t\t\t}\n\t\t\t} }\n\t\t\tonDragEnd={ () => {\n\t\t\t\tstopDragging();\n\t\t\t} }\n\t\t\t__experimentalDragComponent={\n\t\t\t\t<BlockDraggableChip\n\t\t\t\t\tcount={ blocks.length }\n\t\t\t\t\ticon={ icon || ( ! pattern && blockTypeIcon ) }\n\t\t\t\t\tisPattern={ !! pattern }\n\t\t\t\t/>\n\t\t\t}\n\t\t>\n\t\t\t{ ( { onDraggableStart, onDraggableEnd } ) => {\n\t\t\t\treturn children( {\n\t\t\t\t\tdraggable: true,\n\t\t\t\t\tonDragStart: onDraggableStart,\n\t\t\t\t\tonDragEnd: onDraggableEnd,\n\t\t\t\t} );\n\t\t\t} }\n\t\t</Draggable>\n\t);\n};\n\nexport default InserterDraggableBlocks;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,wBAA0B;AAC1B,oBAAkD;AAClD,kBAAuC;AACvC,qBAAwB;AAKxB,4BAA+B;AAC/B,mBAAuC;AACvC,mBAA0C;AAC1C,yBAAuB;AA0DnB;AAxDJ,IAAM,0BAA0B,CAAE;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,MAAO;AACN,QAAM,oBAAgB;AAAA,IACrB,CAAE,WAAY;AACb,YAAM,EAAE,aAAa,IAAI,OAAQ,cAAAA,KAAY;AAC7C,aACC,OAAO,WAAW,KAAK,aAAc,OAAQ,CAAE,EAAE,IAAK,GAAG;AAAA,IAE3D;AAAA,IACA,CAAE,MAAO;AAAA,EACV;AAEA,QAAM,EAAE,eAAe,aAAa,QAAI;AAAA,QACvC,yBAAa,aAAAC,KAAiB;AAAA,EAC/B;AAEA,QAAM,mBAAe,wBAAS,MAAM;AACnC,WAAO,SAAS,SAAS,oCAAuB,QAC/C,SAAS,eAAe,aACtB,KAAE,2BAAa,cAAc,EAAE,KAAK,QAAQ,GAAG,CAAE,CAAE,IACnD;AAAA,EACJ,GAAG,CAAE,SAAS,MAAM,SAAS,YAAY,SAAS,EAAG,CAAE;AAEvD,MAAK,CAAE,WAAY;AAClB,WAAO,SAAU;AAAA,MAChB,WAAW;AAAA,MACX,aAAa;AAAA,MACb,WAAW;AAAA,IACZ,CAAE;AAAA,EACH;AAEA,QAAM,kBAAkB,gBAAgB;AACxC,SACC;AAAA,IAAC;AAAA;AAAA,MACA,gCAA+B;AAAA,MAC/B,cAAe,EAAE,MAAM,YAAY,QAAQ,gBAAgB;AAAA,MAC3D,aAAc,CAAE,UAAW;AAC1B,sBAAc;AACd,mBAAY,SAAS,iBAAkB;AACtC,gBAAM,OAAO,YAAa,MAAM,IAAK;AAKrC,gBAAM,aAAa,MAAM,IAAK,IAAI,IAAK;AAAA,QACxC;AAAA,MACD;AAAA,MACA,WAAY,MAAM;AACjB,qBAAa;AAAA,MACd;AAAA,MACA,6BACC;AAAA,QAAC,sBAAAC;AAAA,QAAA;AAAA,UACA,OAAQ,OAAO;AAAA,UACf,MAAO,QAAU,CAAE,WAAW;AAAA,UAC9B,WAAY,CAAC,CAAE;AAAA;AAAA,MAChB;AAAA,MAGC,WAAE,EAAE,kBAAkB,eAAe,MAAO;AAC7C,eAAO,SAAU;AAAA,UAChB,WAAW;AAAA,UACX,aAAa;AAAA,UACb,WAAW;AAAA,QACZ,CAAE;AAAA,MACH;AAAA;AAAA,EACD;AAEF;AAEA,IAAO,oCAAQ;",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { Draggable } from '@wordpress/components';\nimport { createBlock, store as blocksStore } from '@wordpress/blocks';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport BlockDraggableChip from '../block-draggable/draggable-chip';\nimport { INSERTER_PATTERN_TYPES } from '../inserter/block-patterns-tab/utils';\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nconst InserterDraggableBlocks = ( {\n\tisEnabled,\n\tblocks,\n\ticon,\n\tchildren,\n\tpattern,\n} ) => {\n\tconst blockName = blocks.length === 1 ? blocks[ 0 ].name : undefined;\n\tconst blockTypeIcon = useSelect(\n\t\t( select ) => {\n\t\t\treturn (\n\t\t\t\tblockName &&\n\t\t\t\tselect( blocksStore ).getBlockType( blockName )?.icon\n\t\t\t);\n\t\t},\n\t\t[ blockName ]\n\t);\n\n\tconst { startDragging, stopDragging } = unlock(\n\t\tuseDispatch( blockEditorStore )\n\t);\n\n\tconst patternBlock = useMemo( () => {\n\t\treturn pattern?.type === INSERTER_PATTERN_TYPES.user &&\n\t\t\tpattern?.syncStatus !== 'unsynced'\n\t\t\t? [ createBlock( 'core/block', { ref: pattern.id } ) ]\n\t\t\t: undefined;\n\t}, [ pattern?.type, pattern?.syncStatus, pattern?.id ] );\n\n\tif ( ! isEnabled ) {\n\t\treturn children( {\n\t\t\tdraggable: false,\n\t\t\tonDragStart: undefined,\n\t\t\tonDragEnd: undefined,\n\t\t} );\n\t}\n\n\tconst draggableBlocks = patternBlock ?? blocks;\n\treturn (\n\t\t<Draggable\n\t\t\t__experimentalTransferDataType=\"wp-blocks\"\n\t\t\ttransferData={ { type: 'inserter', blocks: draggableBlocks } }\n\t\t\tonDragStart={ ( event ) => {\n\t\t\t\tstartDragging();\n\t\t\t\tconst addedTypes = new Set();\n\t\t\t\tfor ( const block of draggableBlocks ) {\n\t\t\t\t\tconst type = `wp-block:${ block.name }`;\n\t\t\t\t\t/*\n\t\t\t\t\t * Only add each block type once to avoid DataTransferItemList::add `NotSupportedError`\n\t\t\t\t\t * when patterns contain multiple blocks of the same type.\n\t\t\t\t\t */\n\t\t\t\t\tif ( ! addedTypes.has( type ) ) {\n\t\t\t\t\t\t/*\n\t\t\t\t\t\t * This will fill in the dataTransfer.types array so that\n\t\t\t\t\t\t * the drop zone can check if the draggable is eligible.\n\t\t\t\t\t\t * Unfortuantely, on drag start, we don't have access to the\n\t\t\t\t\t\t * actual data, only the data keys/types.\n\t\t\t\t\t\t */\n\t\t\t\t\t\tevent.dataTransfer.items.add( '', type );\n\t\t\t\t\t\taddedTypes.add( type );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} }\n\t\t\tonDragEnd={ () => {\n\t\t\t\tstopDragging();\n\t\t\t} }\n\t\t\t__experimentalDragComponent={\n\t\t\t\t<BlockDraggableChip\n\t\t\t\t\tcount={ blocks.length }\n\t\t\t\t\ticon={ icon || ( ! pattern && blockTypeIcon ) }\n\t\t\t\t\tisPattern={ !! pattern }\n\t\t\t\t/>\n\t\t\t}\n\t\t>\n\t\t\t{ ( { onDraggableStart, onDraggableEnd } ) => {\n\t\t\t\treturn children( {\n\t\t\t\t\tdraggable: true,\n\t\t\t\t\tonDragStart: onDraggableStart,\n\t\t\t\t\tonDragEnd: onDraggableEnd,\n\t\t\t\t} );\n\t\t\t} }\n\t\t</Draggable>\n\t);\n};\n\nexport default InserterDraggableBlocks;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,wBAA0B;AAC1B,oBAAkD;AAClD,kBAAuC;AACvC,qBAAwB;AAKxB,4BAA+B;AAC/B,mBAAuC;AACvC,mBAA0C;AAC1C,yBAAuB;AAqEnB;AAnEJ,IAAM,0BAA0B,CAAE;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,MAAO;AACN,QAAM,YAAY,OAAO,WAAW,IAAI,OAAQ,CAAE,EAAE,OAAO;AAC3D,QAAM,oBAAgB;AAAA,IACrB,CAAE,WAAY;AACb,aACC,aACA,OAAQ,cAAAA,KAAY,EAAE,aAAc,SAAU,GAAG;AAAA,IAEnD;AAAA,IACA,CAAE,SAAU;AAAA,EACb;AAEA,QAAM,EAAE,eAAe,aAAa,QAAI;AAAA,QACvC,yBAAa,aAAAC,KAAiB;AAAA,EAC/B;AAEA,QAAM,mBAAe,wBAAS,MAAM;AACnC,WAAO,SAAS,SAAS,oCAAuB,QAC/C,SAAS,eAAe,aACtB,KAAE,2BAAa,cAAc,EAAE,KAAK,QAAQ,GAAG,CAAE,CAAE,IACnD;AAAA,EACJ,GAAG,CAAE,SAAS,MAAM,SAAS,YAAY,SAAS,EAAG,CAAE;AAEvD,MAAK,CAAE,WAAY;AAClB,WAAO,SAAU;AAAA,MAChB,WAAW;AAAA,MACX,aAAa;AAAA,MACb,WAAW;AAAA,IACZ,CAAE;AAAA,EACH;AAEA,QAAM,kBAAkB,gBAAgB;AACxC,SACC;AAAA,IAAC;AAAA;AAAA,MACA,gCAA+B;AAAA,MAC/B,cAAe,EAAE,MAAM,YAAY,QAAQ,gBAAgB;AAAA,MAC3D,aAAc,CAAE,UAAW;AAC1B,sBAAc;AACd,cAAM,aAAa,oBAAI,IAAI;AAC3B,mBAAY,SAAS,iBAAkB;AACtC,gBAAM,OAAO,YAAa,MAAM,IAAK;AAKrC,cAAK,CAAE,WAAW,IAAK,IAAK,GAAI;AAO/B,kBAAM,aAAa,MAAM,IAAK,IAAI,IAAK;AACvC,uBAAW,IAAK,IAAK;AAAA,UACtB;AAAA,QACD;AAAA,MACD;AAAA,MACA,WAAY,MAAM;AACjB,qBAAa;AAAA,MACd;AAAA,MACA,6BACC;AAAA,QAAC,sBAAAC;AAAA,QAAA;AAAA,UACA,OAAQ,OAAO;AAAA,UACf,MAAO,QAAU,CAAE,WAAW;AAAA,UAC9B,WAAY,CAAC,CAAE;AAAA;AAAA,MAChB;AAAA,MAGC,WAAE,EAAE,kBAAkB,eAAe,MAAO;AAC7C,eAAO,SAAU;AAAA,UAChB,WAAW;AAAA,UACX,aAAa;AAAA,UACb,WAAW;AAAA,QACZ,CAAE;AAAA,MACH;AAAA;AAAA,EACD;AAEF;AAEA,IAAO,oCAAQ;",
6
6
  "names": ["blocksStore", "blockEditorStore", "BlockDraggableChip"]
7
7
  }
@@ -42,9 +42,10 @@ var ContentTab = ({ rootClientId, contentClientIds }) => {
42
42
  if (!contentClientIds || contentClientIds.length === 0) {
43
43
  return null;
44
44
  }
45
+ const shouldShowContentOnlyControls = window?.__experimentalContentOnlyPatternInsertion && window?.__experimentalContentOnlyInspectorFields;
45
46
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
46
- !window?.__experimentalContentOnlyPatternInsertion && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.PanelBody, { title: (0, import_i18n.__)("Content"), children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_block_quick_navigation.default, { clientIds: contentClientIds }) }),
47
- window?.__experimentalContentOnlyPatternInsertion && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_content_only_controls.default, { rootClientId })
47
+ !shouldShowContentOnlyControls && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.PanelBody, { title: (0, import_i18n.__)("Content"), children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_block_quick_navigation.default, { clientIds: contentClientIds }) }),
48
+ shouldShowContentOnlyControls && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_content_only_controls.default, { rootClientId })
48
49
  ] });
49
50
  };
50
51
  var content_tab_default = ContentTab;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/inspector-controls-tabs/content-tab.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { PanelBody } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BlockQuickNavigation from '../block-quick-navigation';\nimport ContentOnlyControls from '../content-only-controls';\n\nconst ContentTab = ( { rootClientId, contentClientIds } ) => {\n\tif ( ! contentClientIds || contentClientIds.length === 0 ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ ! window?.__experimentalContentOnlyPatternInsertion && (\n\t\t\t\t<PanelBody title={ __( 'Content' ) }>\n\t\t\t\t\t<BlockQuickNavigation clientIds={ contentClientIds } />\n\t\t\t\t</PanelBody>\n\t\t\t) }\n\t\t\t{ window?.__experimentalContentOnlyPatternInsertion && (\n\t\t\t\t<ContentOnlyControls rootClientId={ rootClientId } />\n\t\t\t) }\n\t\t</>\n\t);\n};\n\nexport default ContentTab;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,wBAA0B;AAC1B,kBAAmB;AAKnB,oCAAiC;AACjC,mCAAgC;AAQ9B;AANF,IAAM,aAAa,CAAE,EAAE,cAAc,iBAAiB,MAAO;AAC5D,MAAK,CAAE,oBAAoB,iBAAiB,WAAW,GAAI;AAC1D,WAAO;AAAA,EACR;AAEA,SACC,4EACG;AAAA,KAAE,QAAQ,6CACX,4CAAC,+BAAU,WAAQ,gBAAI,SAAU,GAChC,sDAAC,8BAAAA,SAAA,EAAqB,WAAY,kBAAmB,GACtD;AAAA,IAEC,QAAQ,6CACT,4CAAC,6BAAAC,SAAA,EAAoB,cAA8B;AAAA,KAErD;AAEF;AAEA,IAAO,sBAAQ;",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { PanelBody } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BlockQuickNavigation from '../block-quick-navigation';\nimport ContentOnlyControls from '../content-only-controls';\n\nconst ContentTab = ( { rootClientId, contentClientIds } ) => {\n\tif ( ! contentClientIds || contentClientIds.length === 0 ) {\n\t\treturn null;\n\t}\n\n\tconst shouldShowContentOnlyControls =\n\t\twindow?.__experimentalContentOnlyPatternInsertion &&\n\t\twindow?.__experimentalContentOnlyInspectorFields;\n\n\treturn (\n\t\t<>\n\t\t\t{ ! shouldShowContentOnlyControls && (\n\t\t\t\t<PanelBody title={ __( 'Content' ) }>\n\t\t\t\t\t<BlockQuickNavigation clientIds={ contentClientIds } />\n\t\t\t\t</PanelBody>\n\t\t\t) }\n\t\t\t{ shouldShowContentOnlyControls && (\n\t\t\t\t<ContentOnlyControls rootClientId={ rootClientId } />\n\t\t\t) }\n\t\t</>\n\t);\n};\n\nexport default ContentTab;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,wBAA0B;AAC1B,kBAAmB;AAKnB,oCAAiC;AACjC,mCAAgC;AAY9B;AAVF,IAAM,aAAa,CAAE,EAAE,cAAc,iBAAiB,MAAO;AAC5D,MAAK,CAAE,oBAAoB,iBAAiB,WAAW,GAAI;AAC1D,WAAO;AAAA,EACR;AAEA,QAAM,gCACL,QAAQ,6CACR,QAAQ;AAET,SACC,4EACG;AAAA,KAAE,iCACH,4CAAC,+BAAU,WAAQ,gBAAI,SAAU,GAChC,sDAAC,8BAAAA,SAAA,EAAqB,WAAY,kBAAmB,GACtD;AAAA,IAEC,iCACD,4CAAC,6BAAAC,SAAA,EAAoB,cAA8B;AAAA,KAErD;AAEF;AAEA,IAAO,sBAAQ;",
6
6
  "names": ["BlockQuickNavigation", "ContentOnlyControls"]
7
7
  }
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // packages/block-editor/src/components/tool-selector/index.js
31
+ var tool_selector_exports = {};
32
+ __export(tool_selector_exports, {
33
+ default: () => tool_selector_default
34
+ });
35
+ module.exports = __toCommonJS(tool_selector_exports);
36
+ var import_deprecated = __toESM(require("@wordpress/deprecated"));
37
+ var import_element = require("@wordpress/element");
38
+ function ToolSelector() {
39
+ (0, import_deprecated.default)("wp.blockEditor.ToolSelector", {
40
+ since: "6.9",
41
+ hint: "The ToolSelector component no longer renders anything."
42
+ });
43
+ return null;
44
+ }
45
+ var tool_selector_default = (0, import_element.forwardRef)(ToolSelector);
46
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/tool-selector/index.js"],
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport deprecated from '@wordpress/deprecated';\nimport { forwardRef } from '@wordpress/element';\n\nfunction ToolSelector() {\n\tdeprecated( 'wp.blockEditor.ToolSelector', {\n\t\tsince: '6.9',\n\t\thint: 'The ToolSelector component no longer renders anything.',\n\t} );\n\n\treturn null;\n}\n\n/**\n * This component has been deprecated and no longer renders anything.\n */\nexport default forwardRef( ToolSelector );\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,wBAAuB;AACvB,qBAA2B;AAE3B,SAAS,eAAe;AACvB,wBAAAA,SAAY,+BAA+B;AAAA,IAC1C,OAAO;AAAA,IACP,MAAM;AAAA,EACP,CAAE;AAEF,SAAO;AACR;AAKA,IAAO,4BAAQ,2BAAY,YAAa;",
6
+ "names": ["deprecated"]
7
+ }
@@ -34,25 +34,18 @@ __export(block_bindings_exports, {
34
34
  default: () => block_bindings_default
35
35
  });
36
36
  module.exports = __toCommonJS(block_bindings_exports);
37
- var import_es6 = __toESM(require("fast-deep-equal/es6"));
38
37
  var import_i18n = require("@wordpress/i18n");
39
38
  var import_blocks = require("@wordpress/blocks");
40
39
  var import_components = require("@wordpress/components");
41
40
  var import_data = require("@wordpress/data");
42
41
  var import_element = require("@wordpress/element");
43
42
  var import_compose = require("@wordpress/compose");
44
- var import_block_bindings = require("../utils/block-bindings");
43
+ var import_block_bindings = require("../components/block-bindings");
45
44
  var import_lock_unlock = require("../lock-unlock");
46
45
  var import_inspector_controls = __toESM(require("../components/inspector-controls"));
47
46
  var import_block_context = __toESM(require("../components/block-context"));
48
- var import_block_edit = require("../components/block-edit");
49
47
  var import_store = require("../store");
50
48
  var import_jsx_runtime = require("react/jsx-runtime");
51
- var { Menu } = (0, import_lock_unlock.unlock)(import_components.privateApis);
52
- var getAttributeType = (blockName, attribute) => {
53
- const _attributeType = (0, import_blocks.getBlockType)(blockName).attributes?.[attribute]?.type;
54
- return _attributeType === "rich-text" ? "string" : _attributeType;
55
- };
56
49
  var useToolsPanelDropdownMenuProps = () => {
57
50
  const isMobile = (0, import_compose.useViewportMatch)("medium", "<");
58
51
  return !isMobile ? {
@@ -63,241 +56,33 @@ var useToolsPanelDropdownMenuProps = () => {
63
56
  }
64
57
  } : {};
65
58
  };
66
- function BlockBindingsPanelMenuContent({ attribute, binding, sources }) {
67
- const { clientId } = (0, import_block_edit.useBlockEditContext)();
68
- const { updateBlockBindings } = (0, import_block_bindings.useBlockBindingsUtils)();
69
- const isMobile = (0, import_compose.useViewportMatch)("medium", "<");
70
- const blockContext = (0, import_element.useContext)(import_block_context.default);
71
- const { attributeType, select } = (0, import_data.useSelect)(
72
- (_select) => {
73
- const { name: blockName } = _select(import_store.store).getBlock(clientId);
74
- return {
75
- attributeType: getAttributeType(blockName, attribute),
76
- select: _select
77
- };
78
- },
79
- [clientId, attribute]
80
- );
81
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Menu, { placement: isMobile ? "bottom-start" : "left-start", children: Object.entries(sources).map(([sourceKey, data]) => {
82
- const sourceDataItems = data.filter(
83
- (item) => item.type === attributeType
84
- );
85
- const noItemsAvailable = !sourceDataItems || sourceDataItems.length === 0;
86
- if (noItemsAvailable) {
87
- return null;
88
- }
89
- const source = (0, import_blocks.getBlockBindingsSource)(sourceKey);
90
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
91
- Menu,
92
- {
93
- placement: isMobile ? "bottom-start" : "left-start",
94
- children: [
95
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Menu.SubmenuTriggerItem, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Menu.ItemLabel, { children: source.label }) }),
96
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Menu.Popover, { gutter: 8, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Menu.Group, { children: sourceDataItems.map((item) => {
97
- const itemBindings = {
98
- source: sourceKey,
99
- args: item.args || {
100
- key: item.key
101
- }
102
- };
103
- let values = {};
104
- try {
105
- values = source.getValues({
106
- select,
107
- context: blockContext,
108
- bindings: {
109
- [attribute]: itemBindings
110
- }
111
- });
112
- } catch (e) {
113
- }
114
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
115
- Menu.CheckboxItem,
116
- {
117
- onChange: () => {
118
- const isCurrentlySelected = (0, import_es6.default)(
119
- binding?.args,
120
- item.args
121
- ) ?? // Deprecate key dependency in 7.0.
122
- item.key === binding?.args?.key;
123
- if (isCurrentlySelected) {
124
- updateBlockBindings({
125
- [attribute]: void 0
126
- });
127
- } else {
128
- updateBlockBindings({
129
- [attribute]: itemBindings
130
- });
131
- }
132
- },
133
- name: attribute + "-binding",
134
- value: values[attribute],
135
- checked: (0, import_es6.default)(
136
- binding?.args,
137
- item.args
138
- ) ?? // Deprecate key dependency in 7.0.
139
- item.key === binding?.args?.key,
140
- children: [
141
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Menu.ItemLabel, { children: item.label }),
142
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Menu.ItemHelpText, { children: values[attribute] })
143
- ]
144
- },
145
- sourceKey + JSON.stringify(
146
- item.args
147
- ) || item.key
148
- );
149
- }) }) })
150
- ]
151
- },
152
- sourceKey
153
- );
154
- }) });
155
- }
156
- function BlockBindingsAttribute({ attribute, binding, sources, blockName }) {
157
- const { source: sourceName, args } = binding || {};
158
- const data = sources?.[sourceName];
159
- const source = (0, import_blocks.getBlockBindingsSource)(sourceName);
160
- let displayText;
161
- let isValid = true;
162
- const isNotBound = binding === void 0;
163
- if (isNotBound) {
164
- const attributeType = getAttributeType(blockName, attribute);
165
- const hasCompatibleSources = Object.values(sources).some(
166
- (items) => items.some((item) => item.type === attributeType)
167
- );
168
- if (!hasCompatibleSources) {
169
- displayText = (0, import_i18n.__)("No sources available");
170
- } else {
171
- displayText = (0, import_i18n.__)("Not connected");
172
- }
173
- isValid = true;
174
- } else if (!source) {
175
- isValid = false;
176
- displayText = (0, import_i18n.__)("Source not registered");
177
- } else {
178
- displayText = data?.find((item) => (0, import_es6.default)(item.args, args))?.label || source?.label || sourceName;
179
- }
180
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_components.__experimentalVStack, { className: "block-editor-bindings__item", spacing: 0, children: [
181
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.__experimentalText, { truncate: true, children: attribute }),
182
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
183
- import_components.__experimentalText,
184
- {
185
- truncate: true,
186
- variant: isValid ? "muted" : void 0,
187
- isDestructive: !isValid,
188
- children: displayText
189
- }
190
- )
191
- ] });
192
- }
193
- function ReadOnlyBlockBindingsPanelItem({
194
- attribute,
195
- binding,
196
- sources,
197
- blockName
198
- }) {
199
- const isMobile = (0, import_compose.useViewportMatch)("medium", "<");
200
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.__experimentalToolsPanelItem, { hasValue: () => !!binding, label: attribute, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Menu, { placement: isMobile ? "bottom-start" : "left-start", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Menu.TriggerButton, { render: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.__experimentalItem, {}), disabled: true, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
201
- BlockBindingsAttribute,
202
- {
203
- attribute,
204
- binding,
205
- sources,
206
- blockName
207
- }
208
- ) }) }) });
209
- }
210
- function EditableBlockBindingsPanelItem({
211
- attribute,
212
- binding,
213
- sources,
214
- blockName
215
- }) {
216
- const { updateBlockBindings } = (0, import_block_bindings.useBlockBindingsUtils)();
217
- const isMobile = (0, import_compose.useViewportMatch)("medium", "<");
218
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
219
- import_components.__experimentalToolsPanelItem,
220
- {
221
- hasValue: () => !!binding,
222
- label: attribute,
223
- onDeselect: () => {
224
- updateBlockBindings({
225
- [attribute]: void 0
226
- });
227
- },
228
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Menu, { placement: isMobile ? "bottom-start" : "left-start", children: [
229
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Menu.TriggerButton, { render: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.__experimentalItem, {}), children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
230
- BlockBindingsAttribute,
231
- {
232
- attribute,
233
- binding,
234
- sources,
235
- blockName
236
- }
237
- ) }),
238
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Menu.Popover, { gutter: isMobile ? 8 : 36, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
239
- BlockBindingsPanelMenuContent,
240
- {
241
- attribute,
242
- binding,
243
- sources
244
- }
245
- ) })
246
- ] })
247
- }
248
- );
249
- }
250
59
  var BlockBindingsPanel = ({ name: blockName, metadata }) => {
251
60
  const blockContext = (0, import_element.useContext)(import_block_context.default);
252
61
  const { removeAllBlockBindings } = (0, import_block_bindings.useBlockBindingsUtils)();
253
62
  const dropdownMenuProps = useToolsPanelDropdownMenuProps();
254
- const { canUpdateBlockBindings, bindableAttributes } = (0, import_data.useSelect)(
63
+ const { bindableAttributes, hasCompatibleFields } = (0, import_data.useSelect)(
255
64
  (select) => {
256
65
  const { __experimentalBlockBindingsSupportedAttributes } = select(import_store.store).getSettings();
66
+ const {
67
+ getAllBlockBindingsSources,
68
+ getBlockBindingsSourceFieldsList
69
+ } = (0, import_lock_unlock.unlock)(select(import_blocks.store));
257
70
  return {
258
- canUpdateBlockBindings: select(import_store.store).getSettings().canUpdateBlockBindings,
259
- bindableAttributes: __experimentalBlockBindingsSupportedAttributes?.[blockName]
71
+ bindableAttributes: __experimentalBlockBindingsSupportedAttributes?.[blockName],
72
+ hasCompatibleFields: Object.values(
73
+ getAllBlockBindingsSources()
74
+ ).some(
75
+ (source) => getBlockBindingsSourceFieldsList(source, blockContext)?.length > 0
76
+ )
260
77
  };
261
78
  },
262
- [blockName]
263
- );
264
- const sources = (0, import_data.useSelect)(
265
- (select) => {
266
- const { getAllBlockBindingsSources } = (0, import_lock_unlock.unlock)(
267
- select(import_blocks.store)
268
- );
269
- const data = {};
270
- Object.entries(getAllBlockBindingsSources()).forEach(
271
- ([sourceName, source]) => {
272
- if (!source.getFieldsList) {
273
- return;
274
- }
275
- const context = {};
276
- if (source.usesContext?.length) {
277
- for (const key of source.usesContext) {
278
- context[key] = blockContext[key];
279
- }
280
- }
281
- const items = source.getFieldsList({
282
- select,
283
- context
284
- });
285
- if (items?.length) {
286
- data[sourceName] = items;
287
- }
288
- }
289
- );
290
- return data;
291
- },
292
- [blockContext]
79
+ [blockName, blockContext]
293
80
  );
294
81
  if (!bindableAttributes || bindableAttributes.length === 0) {
295
82
  return null;
296
83
  }
297
84
  const { bindings } = metadata || {};
298
- const hasCompatibleData = Object.keys(sources).length > 0;
299
- const readOnly = !canUpdateBlockBindings || !hasCompatibleData;
300
- if (bindings === void 0 && !hasCompatibleData) {
85
+ if (bindings === void 0 && !hasCompatibleFields) {
301
86
  return null;
302
87
  }
303
88
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_inspector_controls.default, { group: "bindings", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
@@ -310,38 +95,15 @@ var BlockBindingsPanel = ({ name: blockName, metadata }) => {
310
95
  dropdownMenuProps,
311
96
  className: "block-editor-bindings__panel",
312
97
  children: [
313
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.__experimentalItemGroup, { isBordered: true, isSeparated: true, children: bindableAttributes.map((attribute) => {
314
- const binding = bindings?.[attribute];
315
- const attributeType = getAttributeType(
98
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.__experimentalItemGroup, { isBordered: true, isSeparated: true, children: bindableAttributes.map((attribute) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
99
+ import_block_bindings.BlockBindingsAttributeControl,
100
+ {
101
+ attribute,
316
102
  blockName,
317
- attribute
318
- );
319
- const hasCompatibleDataForAttribute = Object.values(
320
- sources
321
- ).some(
322
- (data) => data.some((item) => item.type === attributeType)
323
- );
324
- const isAttributeReadOnly = readOnly || !hasCompatibleDataForAttribute;
325
- return isAttributeReadOnly ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
326
- ReadOnlyBlockBindingsPanelItem,
327
- {
328
- attribute,
329
- binding,
330
- sources,
331
- blockName
332
- },
333
- attribute
334
- ) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
335
- EditableBlockBindingsPanelItem,
336
- {
337
- attribute,
338
- binding,
339
- sources,
340
- blockName
341
- },
342
- attribute
343
- );
344
- }) }),
103
+ binding: bindings?.[attribute]
104
+ },
105
+ attribute
106
+ )) }),
345
107
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.__experimentalText, { as: "div", variant: "muted", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { children: (0, import_i18n.__)(
346
108
  "Attributes connected to custom fields or other dynamic data."
347
109
  ) }) })