@wordpress/block-editor 12.3.3 → 12.3.5

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 (92) hide show
  1. package/README.md +4 -0
  2. package/build/components/block-edit/edit.js +25 -13
  3. package/build/components/block-edit/edit.js.map +1 -1
  4. package/build/components/block-mobile-toolbar/block-actions-menu.native.js +3 -6
  5. package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  6. package/build/components/block-parent-selector/index.js +8 -5
  7. package/build/components/block-parent-selector/index.js.map +1 -1
  8. package/build/components/block-removal-warning-modal/index.js +5 -2
  9. package/build/components/block-removal-warning-modal/index.js.map +1 -1
  10. package/build/components/block-tools/block-contextual-toolbar.js +7 -11
  11. package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
  12. package/build/components/global-styles/filters-panel.js +1 -1
  13. package/build/components/global-styles/filters-panel.js.map +1 -1
  14. package/build/components/index.js +10 -1
  15. package/build/components/index.js.map +1 -1
  16. package/build/components/inserter/block-patterns-explorer/patterns-list.js +2 -2
  17. package/build/components/inserter/block-patterns-explorer/patterns-list.js.map +1 -1
  18. package/build/components/inserter/block-patterns-tab.js +7 -35
  19. package/build/components/inserter/block-patterns-tab.js.map +1 -1
  20. package/build/components/inserter/hooks/use-block-types-state.js +3 -4
  21. package/build/components/inserter/hooks/use-block-types-state.js.map +1 -1
  22. package/build/components/inserter/hooks/use-patterns-state.js +9 -3
  23. package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
  24. package/build/components/inserter/reusable-block-rename-hint.js +62 -0
  25. package/build/components/inserter/reusable-block-rename-hint.js.map +1 -0
  26. package/build/components/inserter/reusable-blocks-tab.js +6 -2
  27. package/build/components/inserter/reusable-blocks-tab.js.map +1 -1
  28. package/build/components/list-view/use-list-view-client-ids.js +2 -2
  29. package/build/components/list-view/use-list-view-client-ids.js.map +1 -1
  30. package/build/store/private-selectors.js +5 -6
  31. package/build/store/private-selectors.js.map +1 -1
  32. package/build/store/selectors.js +33 -15
  33. package/build/store/selectors.js.map +1 -1
  34. package/build-module/components/block-edit/edit.js +27 -10
  35. package/build-module/components/block-edit/edit.js.map +1 -1
  36. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js +4 -6
  37. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  38. package/build-module/components/block-parent-selector/index.js +7 -5
  39. package/build-module/components/block-parent-selector/index.js.map +1 -1
  40. package/build-module/components/block-removal-warning-modal/index.js +6 -3
  41. package/build-module/components/block-removal-warning-modal/index.js.map +1 -1
  42. package/build-module/components/block-tools/block-contextual-toolbar.js +8 -11
  43. package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
  44. package/build-module/components/global-styles/filters-panel.js +2 -2
  45. package/build-module/components/global-styles/filters-panel.js.map +1 -1
  46. package/build-module/components/index.js +5 -0
  47. package/build-module/components/index.js.map +1 -1
  48. package/build-module/components/inserter/block-patterns-explorer/patterns-list.js +2 -2
  49. package/build-module/components/inserter/block-patterns-explorer/patterns-list.js.map +1 -1
  50. package/build-module/components/inserter/block-patterns-tab.js +7 -33
  51. package/build-module/components/inserter/block-patterns-tab.js.map +1 -1
  52. package/build-module/components/inserter/hooks/use-block-types-state.js +3 -4
  53. package/build-module/components/inserter/hooks/use-block-types-state.js.map +1 -1
  54. package/build-module/components/inserter/hooks/use-patterns-state.js +9 -3
  55. package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
  56. package/build-module/components/inserter/reusable-block-rename-hint.js +48 -0
  57. package/build-module/components/inserter/reusable-block-rename-hint.js.map +1 -0
  58. package/build-module/components/inserter/reusable-blocks-tab.js +5 -2
  59. package/build-module/components/inserter/reusable-blocks-tab.js.map +1 -1
  60. package/build-module/components/list-view/use-list-view-client-ids.js +2 -2
  61. package/build-module/components/list-view/use-list-view-client-ids.js.map +1 -1
  62. package/build-module/store/private-selectors.js +3 -3
  63. package/build-module/store/private-selectors.js.map +1 -1
  64. package/build-module/store/selectors.js +33 -15
  65. package/build-module/store/selectors.js.map +1 -1
  66. package/build-style/content-rtl.css +3 -0
  67. package/build-style/content.css +3 -0
  68. package/build-style/style-rtl.css +72 -22
  69. package/build-style/style.css +72 -22
  70. package/package.json +9 -9
  71. package/src/components/block-edit/edit.js +26 -9
  72. package/src/components/block-edit/test/edit.js +1 -1
  73. package/src/components/block-mobile-toolbar/block-actions-menu.native.js +4 -8
  74. package/src/components/block-parent-selector/index.js +13 -8
  75. package/src/components/block-removal-warning-modal/index.js +7 -6
  76. package/src/components/block-tools/block-contextual-toolbar.js +5 -11
  77. package/src/components/block-tools/style.scss +69 -26
  78. package/src/components/default-block-appender/content.scss +11 -0
  79. package/src/components/global-styles/filters-panel.js +2 -2
  80. package/src/components/index.js +5 -0
  81. package/src/components/inserter/block-patterns-explorer/patterns-list.js +8 -2
  82. package/src/components/inserter/block-patterns-tab.js +8 -56
  83. package/src/components/inserter/hooks/use-block-types-state.js +3 -4
  84. package/src/components/inserter/hooks/use-patterns-state.js +35 -19
  85. package/src/components/inserter/reusable-block-rename-hint.js +52 -0
  86. package/src/components/inserter/reusable-blocks-tab.js +5 -1
  87. package/src/components/inserter/style.scss +28 -0
  88. package/src/components/list-view/style.scss +1 -2
  89. package/src/components/list-view/use-list-view-client-ids.js +2 -2
  90. package/src/store/private-selectors.js +3 -6
  91. package/src/store/selectors.js +54 -20
  92. package/src/store/test/private-selectors.js +5 -5
@@ -116,4 +116,9 @@ export { default as __experimentalInspectorPopoverHeader } from './inspector-pop
116
116
 
117
117
  export { default as BlockEditorProvider } from './provider';
118
118
  export { default as useSetting } from './use-setting';
119
+ /*
120
+ * The following rename hint component can be removed in 6.4.
121
+ */
122
+
123
+ export { default as ReusableBlocksRenameHint } from './inserter/reusable-block-rename-hint';
119
124
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/index.js"],"names":["AlignmentControl","AlignmentToolbar","default","Autocomplete","BlockAlignmentControl","BlockAlignmentToolbar","__experimentalBlockFullHeightAligmentControl","__experimentalBlockAlignmentMatrixControl","BlockBreadcrumb","__experimentalUseBlockOverlayActive","BlockContextProvider","BlockControls","BlockFormatControls","BlockColorsStyleSelector","BlockEdit","useBlockEditContext","BlockIcon","BlockNavigationDropdown","BlockStyles","HeadingLevelDropdown","__experimentalBlockVariationPicker","__experimentalBlockPatternSetup","__experimentalBlockVariationTransforms","BlockVerticalAlignmentToolbar","BlockVerticalAlignmentControl","__experimentalBorderRadiusControl","ButtonBlockerAppender","ButtonBlockAppender","ColorPalette","ColorPaletteControl","ContrastChecker","__experimentalDateFormatPicker","__experimentalDuotoneControl","__experimentalFontAppearanceControl","__experimentalFontFamilyControl","__experimentalLetterSpacingControl","__experimentalTextDecorationControl","__experimentalTextTransformControl","__experimentalColorGradientControl","__experimentalColorGradientSettingsDropdown","__experimentalPanelColorGradientSettings","__experimentalUseMultipleOriginColorsAndGradients","HeightControl","__experimentalImageEditor","__experimentalImageSizeControl","InnerBlocks","useInnerBlocksProps","InspectorControls","InspectorAdvancedControls","JustifyToolbar","JustifyContentControl","__experimentalLinkControl","__experimentalLinkControlSearchInput","__experimentalLinkControlSearchResults","__experimentalLinkControlSearchItem","LineHeightControl","__experimentalListView","MediaReplaceFlow","MediaPlaceholder","MediaUpload","MediaUploadCheck","PanelColorSettings","PlainText","__experimentalResponsiveBlockControl","RichText","RichTextShortcut","RichTextToolbarButton","__unstableRichTextInputEvent","ToolSelector","__experimentalUnitControl","URLInput","URLInputButton","URLPopover","__experimentalImageURLInputUI","withColorContext","__experimentalSpacingSizesControl","getSpacingPresetCssVar","isValueSpacingPreset","getCustomValueFromPreset","__unstableBlockSettingsMenuFirstItem","__unstableBlockToolbarLastItem","__unstableBlockNameContext","__unstableInserterMenuExtension","__experimentalPreviewOptions","__experimentalUseResizeCanvas","BlockInspector","BlockList","useBlockProps","BlockMover","BlockPreview","useBlockPreview","__experimentalUseBlockPreview","BlockSelectionClearer","useBlockSelectionClearer","__unstableUseBlockSelectionClearer","BlockSettingsMenu","BlockSettingsMenuControls","BlockTitle","BlockToolbar","BlockTools","CopyHandler","useClipboardHandler","__unstableUseClipboardHandler","DefaultBlockAppender","__unstableEditorStyles","Inserter","__experimentalLibrary","BlockEditorKeyboardShortcuts","MultiSelectScrollIntoView","NavigableToolbar","ObserveTyping","useTypingObserver","__unstableUseTypingObserver","useMouseMoveTypingReset","__unstableUseMouseMoveTypingReset","SkipToSelectedBlock","Typewriter","useTypewriter","__unstableUseTypewriter","Warning","WritingFlow","useBlockDisplayInformation","__unstableIframe","RecursionProvider","__experimentalRecursionProvider","useHasRecursion","__experimentalUseHasRecursion","__experimentalBlockPatternsList","__experimentalPublishDateTimePicker","__experimentalInspectorPopoverHeader","BlockEditorProvider","useSetting"],"mappings":"AAAA;AACA;AACA;AAEA,cAAc,UAAd;AACA,cAAc,aAAd;AACA,cAAc,cAAd;AACA,cAAc,WAAd;AACA,SAASA,gBAAT,EAA2BC,gBAA3B,QAAmD,qBAAnD;AACA,SAASC,OAAO,IAAIC,YAApB,QAAwC,gBAAxC;AACA,SACCC,qBADD,EAECC,qBAFD,QAGO,2BAHP;AAIA,SAASH,OAAO,IAAII,4CAApB,QAAwE,uCAAxE;AACA,SAASJ,OAAO,IAAIK,yCAApB,QAAqE,kCAArE;AACA,SAASL,OAAO,IAAIM,eAApB,QAA2C,oBAA3C;AACA,SAASN,OAAO,IAAIO,mCAApB,QAA+D,yBAA/D;AACA,SAASC,oBAAT,QAAqC,iBAArC;AACA,SACCR,OAAO,IAAIS,aADZ,EAECC,mBAFD,QAGO,kBAHP;AAIA,SAASV,OAAO,IAAIW,wBAApB,QAAoD,wBAApD;AACA,SAASX,OAAO,IAAIY,SAApB,EAA+BC,mBAA/B,QAA0D,cAA1D;AACA,SAASb,OAAO,IAAIc,SAApB,QAAqC,cAArC;AACA,SAASd,OAAO,IAAIe,uBAApB,QAAmD,6BAAnD;AACA,SAASf,OAAO,IAAIgB,WAApB,QAAuC,gBAAvC;AACA,SAAShB,OAAO,IAAIiB,oBAApB,QAAgD,gCAAhD;AACA,SAASjB,OAAO,IAAIkB,kCAApB,QAA8D,0BAA9D;AACA,SAASlB,OAAO,IAAImB,+BAApB,QAA2D,uBAA3D;AACA,SAASnB,OAAO,IAAIoB,sCAApB,QAAkE,8BAAlE;AACA,SACCC,6BADD,EAECC,6BAFD,QAGO,oCAHP;AAIA,SAAStB,OAAO,IAAIuB,iCAApB,QAA6D,yBAA7D;AACA,SACC;AACAC,qBAFD,EAGCxB,OAAO,IAAIyB,mBAHZ,QAIO,yBAJP;AAKA,SAASzB,OAAO,IAAI0B,YAApB,QAAwC,iBAAxC;AACA,SAAS1B,OAAO,IAAI2B,mBAApB,QAA+C,yBAA/C;AACA,SAAS3B,OAAO,IAAI4B,eAApB,QAA2C,oBAA3C;AACA,SAAS5B,OAAO,IAAI6B,8BAApB,QAA0D,sBAA1D;AACA,SAAS7B,OAAO,IAAI8B,4BAApB,QAAwD,mBAAxD;AACA,SAAS9B,OAAO,IAAI+B,mCAApB,QAA+D,2BAA/D;AACA,SAAS/B,OAAO,IAAIgC,+BAApB,QAA2D,eAA3D;AACA,SAAShC,OAAO,IAAIiC,kCAApB,QAA8D,0BAA9D;AACA,SAASjC,OAAO,IAAIkC,mCAApB,QAA+D,2BAA/D;AACA,SAASlC,OAAO,IAAImC,kCAApB,QAA8D,0BAA9D;AACA,SAASnC,OAAO,IAAIoC,kCAApB,QAA8D,4BAA9D;AACA,SAASpC,OAAO,IAAIqC,2CAApB,QAAuE,6BAAvE;AACA,SAASrC,OAAO,IAAIsC,wCAApB,QAAoE,kDAApE;AACA,SAAStC,OAAO,IAAIuC,iDAApB,QAA6E,6DAA7E;AACA,SAASvC,OAAO,IAAIwC,aAApB,QAAyC,kBAAzC;AACA,SAASxC,OAAO,IAAIyC,yBAApB,QAAqD,gBAArD;AACA,SAASzC,OAAO,IAAI0C,8BAApB,QAA0D,sBAA1D;AACA,SAAS1C,OAAO,IAAI2C,WAApB,EAAiCC,mBAAjC,QAA4D,gBAA5D;AACA,SACC5C,OAAO,IAAI6C,iBADZ,EAECC,yBAFD,QAGO,sBAHP;AAIA,SACCC,cADD,EAECC,qBAFD,QAGO,2BAHP;AAIA,SAAShD,OAAO,IAAIiD,yBAApB,QAAqD,gBAArD;AACA,SAASjD,OAAO,IAAIkD,oCAApB,QAAgE,6BAAhE;AACA,SAASlD,OAAO,IAAImD,sCAApB,QAAkE,+BAAlE;AACA,SAASnD,OAAO,IAAIoD,mCAApB,QAA+D,4BAA/D;AACA,SAASpD,OAAO,IAAIqD,iBAApB,QAA6C,uBAA7C;AACA,SAASrD,OAAO,IAAIsD,sBAApB,QAAkD,aAAlD;AACA,SAAStD,OAAO,IAAIuD,gBAApB,QAA4C,sBAA5C;AACA,SAASvD,OAAO,IAAIwD,gBAApB,QAA4C,qBAA5C;AACA,SAASxD,OAAO,IAAIyD,WAApB,QAAuC,gBAAvC;AACA,SAASzD,OAAO,IAAI0D,gBAApB,QAA4C,sBAA5C;AACA,SAAS1D,OAAO,IAAI2D,kBAApB,QAA8C,wBAA9C;AACA,SAAS3D,OAAO,IAAI4D,SAApB,QAAqC,cAArC;AACA,SAAS5D,OAAO,IAAI6D,oCAApB,QAAgE,4BAAhE;AACA,SACC7D,OAAO,IAAI8D,QADZ,EAECC,gBAFD,EAGCC,qBAHD,EAICC,4BAJD,QAKO,aALP;AAMA,SAASjE,OAAO,IAAIkE,YAApB,QAAwC,iBAAxC;AACA,SAASlE,OAAO,IAAImE,yBAApB,QAAqD,gBAArD;AACA,SAASnE,OAAO,IAAIoE,QAApB,QAAoC,aAApC;AACA,SAASpE,OAAO,IAAIqE,cAApB,QAA0C,oBAA1C;AACA,SAASrE,OAAO,IAAIsE,UAApB,QAAsC,eAAtC;AACA,SAASC,6BAAT,QAA8C,kCAA9C;AACA,SAASvE,OAAO,IAAIwE,gBAApB,QAA4C,oCAA5C;AACA,SAASxE,OAAO,IAAIyE,iCAApB,QAA6D,yBAA7D;AACA,SACCC,sBADD,EAECC,oBAFD,EAGCC,wBAHD,QAIO,+BAJP;AAKA;AACA;AACA;;AAEA,SAAS5E,OAAO,IAAI6E,oCAApB,QAAgE,sDAAhE;AACA,SAAS7E,OAAO,IAAI8E,8BAApB,QAA0D,yCAA1D;AACA,SAAS9E,OAAO,IAAI+E,0BAApB,QAAsD,oCAAtD;AACA,SAAS/E,OAAO,IAAIgF,+BAApB,QAA2D,2BAA3D;AACA,SAAShF,OAAO,IAAIiF,4BAApB,QAAwD,mBAAxD;AACA,SAASjF,OAAO,IAAIkF,6BAApB,QAAyD,qBAAzD;AACA,SAASlF,OAAO,IAAImF,cAApB,QAA0C,mBAA1C;AACA,SAASnF,OAAO,IAAIoF,SAApB,QAAqC,cAArC;AACA,SAASC,aAAT,QAA8B,8BAA9B;AACA,SAASrF,OAAO,IAAIsF,UAApB,QAAsC,eAAtC;AACA,SACCtF,OAAO,IAAIuF,YADZ,EAECC,eAAe,IAAIC,6BAFpB,QAGO,iBAHP;AAIA,SACCzF,OAAO,IAAI0F,qBADZ,EAECC,wBAAwB,IAAIC,kCAF7B,QAGO,2BAHP;AAIA,SAAS5F,OAAO,IAAI6F,iBAApB,QAA6C,uBAA7C;AACA,SAAS7F,OAAO,IAAI8F,yBAApB,QAAqD,gCAArD;AACA,SAAS9F,OAAO,IAAI+F,UAApB,QAAsC,eAAtC;AACA,SAAS/F,OAAO,IAAIgG,YAApB,QAAwC,iBAAxC;AACA,SAAShG,OAAO,IAAIiG,UAApB,QAAsC,eAAtC;AACA,SACCjG,OAAO,IAAIkG,WADZ,EAECC,mBAAmB,IAAIC,6BAFxB,QAGO,gBAHP;AAIA,SAASpG,OAAO,IAAIqG,oBAApB,QAAgD,0BAAhD;AACA,SAASrG,OAAO,IAAIsG,sBAApB,QAAkD,iBAAlD;AACA,SAAStG,OAAO,IAAIuG,QAApB,QAAoC,YAApC;AACA,SAASvG,OAAO,IAAIwG,qBAApB,QAAiD,oBAAjD;AACA,SAASxG,OAAO,IAAIyG,4BAApB,QAAwD,sBAAxD;AACA,SAASC,yBAAT,QAA0C,8BAA1C;AACA,SAAS1G,OAAO,IAAI2G,gBAApB,QAA4C,qBAA5C;AACA,SACC3G,OAAO,IAAI4G,aADZ,EAECC,iBAAiB,IAAIC,2BAFtB,EAGCC,uBAAuB,IAAIC,iCAH5B,QAIO,kBAJP;AAKA,SAAShH,OAAO,IAAIiH,mBAApB,QAA+C,0BAA/C;AACA,SACCjH,OAAO,IAAIkH,UADZ,EAECC,aAAa,IAAIC,uBAFlB,QAGO,cAHP;AAIA,SAASpH,OAAO,IAAIqH,OAApB,QAAmC,WAAnC;AACA,SAASrH,OAAO,IAAIsH,WAApB,QAAuC,gBAAvC;AACA,SAAStH,OAAO,IAAIuH,0BAApB,QAAsD,iCAAtD;AACA,SAASvH,OAAO,IAAIwH,gBAApB,QAA4C,UAA5C;AACA,SACCC,iBAAiB,IAAIC,+BADtB,EAECC,eAAe,IAAIC,6BAFpB,QAGO,sBAHP;AAIA,SAAS5H,OAAO,IAAI6H,+BAApB,QAA2D,uBAA3D;AACA,SAAS7H,OAAO,IAAI8H,mCAApB,QAA+D,4BAA/D;AACA,SAAS9H,OAAO,IAAI+H,oCAApB,QAAgE,4BAAhE;AAEA;AACA;AACA;;AAEA,SAAS/H,OAAO,IAAIgI,mBAApB,QAA+C,YAA/C;AACA,SAAShI,OAAO,IAAIiI,UAApB,QAAsC,eAAtC","sourcesContent":["/*\n * Block Creation Components\n */\n\nexport * from './colors';\nexport * from './gradients';\nexport * from './font-sizes';\nexport * from './duotone';\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 {\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 __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 { default as __experimentalLinkControl } from './link-control';\nexport { default as __experimentalLinkControlSearchInput } from './link-control/search-input';\nexport { default as __experimentalLinkControlSearchResults } from './link-control/search-results';\nexport { default as __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 ToolSelector } from './tool-selector';\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\tuseClipboardHandler as __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 as __experimentalRecursionProvider,\n\tuseHasRecursion 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';\n\n/*\n * State Related Components\n */\n\nexport { default as BlockEditorProvider } from './provider';\nexport { default as useSetting } from './use-setting';\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/index.js"],"names":["AlignmentControl","AlignmentToolbar","default","Autocomplete","BlockAlignmentControl","BlockAlignmentToolbar","__experimentalBlockFullHeightAligmentControl","__experimentalBlockAlignmentMatrixControl","BlockBreadcrumb","__experimentalUseBlockOverlayActive","BlockContextProvider","BlockControls","BlockFormatControls","BlockColorsStyleSelector","BlockEdit","useBlockEditContext","BlockIcon","BlockNavigationDropdown","BlockStyles","HeadingLevelDropdown","__experimentalBlockVariationPicker","__experimentalBlockPatternSetup","__experimentalBlockVariationTransforms","BlockVerticalAlignmentToolbar","BlockVerticalAlignmentControl","__experimentalBorderRadiusControl","ButtonBlockerAppender","ButtonBlockAppender","ColorPalette","ColorPaletteControl","ContrastChecker","__experimentalDateFormatPicker","__experimentalDuotoneControl","__experimentalFontAppearanceControl","__experimentalFontFamilyControl","__experimentalLetterSpacingControl","__experimentalTextDecorationControl","__experimentalTextTransformControl","__experimentalColorGradientControl","__experimentalColorGradientSettingsDropdown","__experimentalPanelColorGradientSettings","__experimentalUseMultipleOriginColorsAndGradients","HeightControl","__experimentalImageEditor","__experimentalImageSizeControl","InnerBlocks","useInnerBlocksProps","InspectorControls","InspectorAdvancedControls","JustifyToolbar","JustifyContentControl","__experimentalLinkControl","__experimentalLinkControlSearchInput","__experimentalLinkControlSearchResults","__experimentalLinkControlSearchItem","LineHeightControl","__experimentalListView","MediaReplaceFlow","MediaPlaceholder","MediaUpload","MediaUploadCheck","PanelColorSettings","PlainText","__experimentalResponsiveBlockControl","RichText","RichTextShortcut","RichTextToolbarButton","__unstableRichTextInputEvent","ToolSelector","__experimentalUnitControl","URLInput","URLInputButton","URLPopover","__experimentalImageURLInputUI","withColorContext","__experimentalSpacingSizesControl","getSpacingPresetCssVar","isValueSpacingPreset","getCustomValueFromPreset","__unstableBlockSettingsMenuFirstItem","__unstableBlockToolbarLastItem","__unstableBlockNameContext","__unstableInserterMenuExtension","__experimentalPreviewOptions","__experimentalUseResizeCanvas","BlockInspector","BlockList","useBlockProps","BlockMover","BlockPreview","useBlockPreview","__experimentalUseBlockPreview","BlockSelectionClearer","useBlockSelectionClearer","__unstableUseBlockSelectionClearer","BlockSettingsMenu","BlockSettingsMenuControls","BlockTitle","BlockToolbar","BlockTools","CopyHandler","useClipboardHandler","__unstableUseClipboardHandler","DefaultBlockAppender","__unstableEditorStyles","Inserter","__experimentalLibrary","BlockEditorKeyboardShortcuts","MultiSelectScrollIntoView","NavigableToolbar","ObserveTyping","useTypingObserver","__unstableUseTypingObserver","useMouseMoveTypingReset","__unstableUseMouseMoveTypingReset","SkipToSelectedBlock","Typewriter","useTypewriter","__unstableUseTypewriter","Warning","WritingFlow","useBlockDisplayInformation","__unstableIframe","RecursionProvider","__experimentalRecursionProvider","useHasRecursion","__experimentalUseHasRecursion","__experimentalBlockPatternsList","__experimentalPublishDateTimePicker","__experimentalInspectorPopoverHeader","BlockEditorProvider","useSetting","ReusableBlocksRenameHint"],"mappings":"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","sourcesContent":["/*\n * Block Creation Components\n */\n\nexport * from './colors';\nexport * from './gradients';\nexport * from './font-sizes';\nexport * from './duotone';\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 {\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 __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 { default as __experimentalLinkControl } from './link-control';\nexport { default as __experimentalLinkControlSearchInput } from './link-control/search-input';\nexport { default as __experimentalLinkControlSearchResults } from './link-control/search-results';\nexport { default as __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 ToolSelector } from './tool-selector';\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\tuseClipboardHandler as __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 as __experimentalRecursionProvider,\n\tuseHasRecursion 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';\n\n/*\n * State Related Components\n */\n\nexport { default as BlockEditorProvider } from './provider';\nexport { default as useSetting } from './use-setting';\n\n/*\n * The following rename hint component can be removed in 6.4.\n */\nexport { default as ReusableBlocksRenameHint } from './inserter/reusable-block-rename-hint';\n"]}
@@ -54,7 +54,7 @@ function PatternList({
54
54
  }
55
55
 
56
56
  return searchItems(allPatterns, filterValue);
57
- }, [filterValue, selectedCategory, allPatterns]); // Announce search results on change.
57
+ }, [filterValue, allPatterns, selectedCategory, registeredPatternCategories]); // Announce search results on change.
58
58
 
59
59
  useEffect(() => {
60
60
  if (!filterValue) {
@@ -66,7 +66,7 @@ function PatternList({
66
66
  /* translators: %d: number of results. */
67
67
  _n('%d result found.', '%d results found.', count), count);
68
68
  debouncedSpeak(resultsFoundMessage);
69
- }, [filterValue, debouncedSpeak]);
69
+ }, [filterValue, debouncedSpeak, filteredBlockPatterns.length]);
70
70
  const currentShownPatterns = useAsyncList(filteredBlockPatterns, {
71
71
  step: INITIAL_INSERTER_RESULTS
72
72
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/block-patterns-explorer/patterns-list.js"],"names":["useMemo","useEffect","_n","sprintf","useDebounce","useAsyncList","__experimentalHeading","Heading","speak","BlockPatternsList","InserterNoResults","useInsertionPoint","usePatternsState","InserterListbox","searchItems","INITIAL_INSERTER_RESULTS","PatternsListHeader","filterValue","filteredBlockPatternsLength","PatternList","selectedCategory","patternCategories","debouncedSpeak","destinationRootClientId","onInsertBlocks","shouldFocusBlock","allPatterns","onSelectBlockPattern","registeredPatternCategories","map","patternCategory","name","filteredBlockPatterns","filter","pattern","categories","length","every","category","includes","count","resultsFoundMessage","currentShownPatterns","step","hasItems"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo, useEffect } from '@wordpress/element';\nimport { _n, sprintf } from '@wordpress/i18n';\nimport { useDebounce, useAsyncList } from '@wordpress/compose';\nimport { __experimentalHeading as Heading } from '@wordpress/components';\nimport { speak } from '@wordpress/a11y';\n\n/**\n * Internal dependencies\n */\nimport BlockPatternsList from '../../block-patterns-list';\nimport InserterNoResults from '../no-results';\nimport useInsertionPoint from '../hooks/use-insertion-point';\nimport usePatternsState from '../hooks/use-patterns-state';\nimport InserterListbox from '../../inserter-listbox';\nimport { searchItems } from '../search-items';\n\nconst INITIAL_INSERTER_RESULTS = 2;\n\nfunction PatternsListHeader( { filterValue, filteredBlockPatternsLength } ) {\n\tif ( ! filterValue ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<Heading\n\t\t\tlevel={ 2 }\n\t\t\tlineHeight={ '48px' }\n\t\t\tclassName=\"block-editor-block-patterns-explorer__search-results-count\"\n\t\t>\n\t\t\t{ sprintf(\n\t\t\t\t/* translators: %d: number of patterns. %s: block pattern search query */\n\t\t\t\t_n(\n\t\t\t\t\t'%1$d pattern found for \"%2$s\"',\n\t\t\t\t\t'%1$d patterns found for \"%2$s\"',\n\t\t\t\t\tfilteredBlockPatternsLength\n\t\t\t\t),\n\t\t\t\tfilteredBlockPatternsLength,\n\t\t\t\tfilterValue\n\t\t\t) }\n\t\t</Heading>\n\t);\n}\n\nfunction PatternList( { filterValue, selectedCategory, patternCategories } ) {\n\tconst debouncedSpeak = useDebounce( speak, 500 );\n\tconst [ destinationRootClientId, onInsertBlocks ] = useInsertionPoint( {\n\t\tshouldFocusBlock: true,\n\t} );\n\tconst [ allPatterns, , onSelectBlockPattern ] = usePatternsState(\n\t\tonInsertBlocks,\n\t\tdestinationRootClientId\n\t);\n\tconst registeredPatternCategories = useMemo(\n\t\t() =>\n\t\t\tpatternCategories.map(\n\t\t\t\t( patternCategory ) => patternCategory.name\n\t\t\t),\n\t\t[ patternCategories ]\n\t);\n\n\tconst filteredBlockPatterns = useMemo( () => {\n\t\tif ( ! filterValue ) {\n\t\t\treturn allPatterns.filter( ( pattern ) =>\n\t\t\t\tselectedCategory === 'uncategorized'\n\t\t\t\t\t? ! pattern.categories?.length ||\n\t\t\t\t\t pattern.categories.every(\n\t\t\t\t\t\t\t( category ) =>\n\t\t\t\t\t\t\t\t! registeredPatternCategories.includes(\n\t\t\t\t\t\t\t\t\tcategory\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t )\n\t\t\t\t\t: pattern.categories?.includes( selectedCategory )\n\t\t\t);\n\t\t}\n\t\treturn searchItems( allPatterns, filterValue );\n\t}, [ filterValue, selectedCategory, allPatterns ] );\n\n\t// Announce search results on change.\n\tuseEffect( () => {\n\t\tif ( ! filterValue ) {\n\t\t\treturn;\n\t\t}\n\t\tconst count = filteredBlockPatterns.length;\n\t\tconst resultsFoundMessage = sprintf(\n\t\t\t/* translators: %d: number of results. */\n\t\t\t_n( '%d result found.', '%d results found.', count ),\n\t\t\tcount\n\t\t);\n\t\tdebouncedSpeak( resultsFoundMessage );\n\t}, [ filterValue, debouncedSpeak ] );\n\n\tconst currentShownPatterns = useAsyncList( filteredBlockPatterns, {\n\t\tstep: INITIAL_INSERTER_RESULTS,\n\t} );\n\n\tconst hasItems = !! filteredBlockPatterns?.length;\n\treturn (\n\t\t<div className=\"block-editor-block-patterns-explorer__list\">\n\t\t\t{ hasItems && (\n\t\t\t\t<PatternsListHeader\n\t\t\t\t\tfilterValue={ filterValue }\n\t\t\t\t\tfilteredBlockPatternsLength={ filteredBlockPatterns.length }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<InserterListbox>\n\t\t\t\t{ ! hasItems && <InserterNoResults /> }\n\t\t\t\t{ hasItems && (\n\t\t\t\t\t<BlockPatternsList\n\t\t\t\t\t\tshownPatterns={ currentShownPatterns }\n\t\t\t\t\t\tblockPatterns={ filteredBlockPatterns }\n\t\t\t\t\t\tonClickPattern={ onSelectBlockPattern }\n\t\t\t\t\t\tisDraggable={ false }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</InserterListbox>\n\t\t</div>\n\t);\n}\n\nexport default PatternList;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/block-patterns-explorer/patterns-list.js"],"names":["useMemo","useEffect","_n","sprintf","useDebounce","useAsyncList","__experimentalHeading","Heading","speak","BlockPatternsList","InserterNoResults","useInsertionPoint","usePatternsState","InserterListbox","searchItems","INITIAL_INSERTER_RESULTS","PatternsListHeader","filterValue","filteredBlockPatternsLength","PatternList","selectedCategory","patternCategories","debouncedSpeak","destinationRootClientId","onInsertBlocks","shouldFocusBlock","allPatterns","onSelectBlockPattern","registeredPatternCategories","map","patternCategory","name","filteredBlockPatterns","filter","pattern","categories","length","every","category","includes","count","resultsFoundMessage","currentShownPatterns","step","hasItems"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo, useEffect } from '@wordpress/element';\nimport { _n, sprintf } from '@wordpress/i18n';\nimport { useDebounce, useAsyncList } from '@wordpress/compose';\nimport { __experimentalHeading as Heading } from '@wordpress/components';\nimport { speak } from '@wordpress/a11y';\n\n/**\n * Internal dependencies\n */\nimport BlockPatternsList from '../../block-patterns-list';\nimport InserterNoResults from '../no-results';\nimport useInsertionPoint from '../hooks/use-insertion-point';\nimport usePatternsState from '../hooks/use-patterns-state';\nimport InserterListbox from '../../inserter-listbox';\nimport { searchItems } from '../search-items';\n\nconst INITIAL_INSERTER_RESULTS = 2;\n\nfunction PatternsListHeader( { filterValue, filteredBlockPatternsLength } ) {\n\tif ( ! filterValue ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<Heading\n\t\t\tlevel={ 2 }\n\t\t\tlineHeight={ '48px' }\n\t\t\tclassName=\"block-editor-block-patterns-explorer__search-results-count\"\n\t\t>\n\t\t\t{ sprintf(\n\t\t\t\t/* translators: %d: number of patterns. %s: block pattern search query */\n\t\t\t\t_n(\n\t\t\t\t\t'%1$d pattern found for \"%2$s\"',\n\t\t\t\t\t'%1$d patterns found for \"%2$s\"',\n\t\t\t\t\tfilteredBlockPatternsLength\n\t\t\t\t),\n\t\t\t\tfilteredBlockPatternsLength,\n\t\t\t\tfilterValue\n\t\t\t) }\n\t\t</Heading>\n\t);\n}\n\nfunction PatternList( { filterValue, selectedCategory, patternCategories } ) {\n\tconst debouncedSpeak = useDebounce( speak, 500 );\n\tconst [ destinationRootClientId, onInsertBlocks ] = useInsertionPoint( {\n\t\tshouldFocusBlock: true,\n\t} );\n\tconst [ allPatterns, , onSelectBlockPattern ] = usePatternsState(\n\t\tonInsertBlocks,\n\t\tdestinationRootClientId\n\t);\n\n\tconst registeredPatternCategories = useMemo(\n\t\t() =>\n\t\t\tpatternCategories.map(\n\t\t\t\t( patternCategory ) => patternCategory.name\n\t\t\t),\n\t\t[ patternCategories ]\n\t);\n\n\tconst filteredBlockPatterns = useMemo( () => {\n\t\tif ( ! filterValue ) {\n\t\t\treturn allPatterns.filter( ( pattern ) =>\n\t\t\t\tselectedCategory === 'uncategorized'\n\t\t\t\t\t? ! pattern.categories?.length ||\n\t\t\t\t\t pattern.categories.every(\n\t\t\t\t\t\t\t( category ) =>\n\t\t\t\t\t\t\t\t! registeredPatternCategories.includes(\n\t\t\t\t\t\t\t\t\tcategory\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t )\n\t\t\t\t\t: pattern.categories?.includes( selectedCategory )\n\t\t\t);\n\t\t}\n\t\treturn searchItems( allPatterns, filterValue );\n\t}, [\n\t\tfilterValue,\n\t\tallPatterns,\n\t\tselectedCategory,\n\t\tregisteredPatternCategories,\n\t] );\n\n\t// Announce search results on change.\n\tuseEffect( () => {\n\t\tif ( ! filterValue ) {\n\t\t\treturn;\n\t\t}\n\t\tconst count = filteredBlockPatterns.length;\n\t\tconst resultsFoundMessage = sprintf(\n\t\t\t/* translators: %d: number of results. */\n\t\t\t_n( '%d result found.', '%d results found.', count ),\n\t\t\tcount\n\t\t);\n\t\tdebouncedSpeak( resultsFoundMessage );\n\t}, [ filterValue, debouncedSpeak, filteredBlockPatterns.length ] );\n\n\tconst currentShownPatterns = useAsyncList( filteredBlockPatterns, {\n\t\tstep: INITIAL_INSERTER_RESULTS,\n\t} );\n\n\tconst hasItems = !! filteredBlockPatterns?.length;\n\treturn (\n\t\t<div className=\"block-editor-block-patterns-explorer__list\">\n\t\t\t{ hasItems && (\n\t\t\t\t<PatternsListHeader\n\t\t\t\t\tfilterValue={ filterValue }\n\t\t\t\t\tfilteredBlockPatternsLength={ filteredBlockPatterns.length }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<InserterListbox>\n\t\t\t\t{ ! hasItems && <InserterNoResults /> }\n\t\t\t\t{ hasItems && (\n\t\t\t\t\t<BlockPatternsList\n\t\t\t\t\t\tshownPatterns={ currentShownPatterns }\n\t\t\t\t\t\tblockPatterns={ filteredBlockPatterns }\n\t\t\t\t\t\tonClickPattern={ onSelectBlockPattern }\n\t\t\t\t\t\tisDraggable={ false }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</InserterListbox>\n\t\t</div>\n\t);\n}\n\nexport default PatternList;\n"]}
@@ -8,7 +8,6 @@ import { _x, __, isRTL } from '@wordpress/i18n';
8
8
  import { useAsyncList, useViewportMatch } from '@wordpress/compose';
9
9
  import { __experimentalItemGroup as ItemGroup, __experimentalItem as Item, __experimentalHStack as HStack, FlexBlock, Button } from '@wordpress/components';
10
10
  import { Icon, chevronRight, chevronLeft } from '@wordpress/icons';
11
- import { parse } from '@wordpress/blocks';
12
11
  import { focus } from '@wordpress/dom';
13
12
  /**
14
13
  * Internal dependencies
@@ -18,22 +17,15 @@ import usePatternsState from './hooks/use-patterns-state';
18
17
  import BlockPatternList from '../block-patterns-list';
19
18
  import PatternsExplorerModal from './block-patterns-explorer/explorer';
20
19
  import MobileTabNavigation from './mobile-tab-navigation';
21
- import useBlockTypesState from './hooks/use-block-types-state';
22
20
 
23
21
  const noop = () => {}; // Preferred order of pattern categories. Any other categories should
24
22
  // be at the bottom without any re-ordering.
25
23
 
26
24
 
27
- const patternCategoriesOrder = ['featured', 'posts', 'text', 'gallery', 'call-to-action', 'banner', 'header', 'footer'];
25
+ const patternCategoriesOrder = ['custom', 'featured', 'posts', 'text', 'gallery', 'call-to-action', 'banner', 'header', 'footer'];
28
26
 
29
27
  function usePatternsCategories(rootClientId) {
30
28
  const [allPatterns, allCategories] = usePatternsState(undefined, rootClientId);
31
- const [unsyncedPatterns] = useBlockTypesState(rootClientId, undefined, 'unsynced');
32
- const filteredUnsyncedPatterns = useMemo(() => {
33
- return unsyncedPatterns.filter(({
34
- category: unsyncedPatternCategory
35
- }) => unsyncedPatternCategory === 'reusable');
36
- }, [unsyncedPatterns]);
37
29
  const hasRegisteredCategory = useCallback(pattern => {
38
30
  if (!pattern.categories || !pattern.categories.length) {
39
31
  return false;
@@ -64,15 +56,8 @@ function usePatternsCategories(rootClientId) {
64
56
  });
65
57
  }
66
58
 
67
- if (filteredUnsyncedPatterns.length > 0) {
68
- categories.push({
69
- name: 'reusable',
70
- label: _x('Custom patterns')
71
- });
72
- }
73
-
74
59
  return categories;
75
- }, [allCategories, allPatterns, filteredUnsyncedPatterns.length, hasRegisteredCategory]);
60
+ }, [allCategories, allPatterns, hasRegisteredCategory]);
76
61
  return populatedCategories;
77
62
  }
78
63
 
@@ -110,16 +95,6 @@ export function BlockPatternsCategoryPanel({
110
95
  showTitlesAsTooltip
111
96
  }) {
112
97
  const [allPatterns,, onClick] = usePatternsState(onInsert, rootClientId);
113
- const [unsyncedPatterns] = useBlockTypesState(rootClientId, onInsert, 'unsynced');
114
- const filteredUnsyncedPatterns = useMemo(() => {
115
- return unsyncedPatterns.filter(({
116
- category: unsyncedPatternCategory
117
- }) => unsyncedPatternCategory === 'reusable').map(syncedPattern => ({ ...syncedPattern,
118
- blocks: parse(syncedPattern.content, {
119
- __unstableSkipMigrationLogs: true
120
- })
121
- }));
122
- }, [unsyncedPatterns]);
123
98
  const availableCategories = usePatternsCategories(rootClientId);
124
99
  const currentCategoryPatterns = useMemo(() => allPatterns.filter(pattern => {
125
100
  var _pattern$categories$f;
@@ -132,13 +107,12 @@ export function BlockPatternsCategoryPanel({
132
107
 
133
108
  const availablePatternCategories = (_pattern$categories$f = pattern.categories?.filter(cat => availableCategories.find(availableCategory => availableCategory.name === cat))) !== null && _pattern$categories$f !== void 0 ? _pattern$categories$f : [];
134
109
  return availablePatternCategories.length === 0;
135
- }), [allPatterns, category]);
136
- const patterns = category.name === 'reusable' ? filteredUnsyncedPatterns : currentCategoryPatterns;
137
- const currentShownPatterns = useAsyncList(patterns); // Hide block pattern preview on unmount.
110
+ }), [allPatterns, availableCategories, category.name]);
111
+ const categoryPatternsList = useAsyncList(currentCategoryPatterns); // Hide block pattern preview on unmount.
138
112
 
139
113
  useEffect(() => () => onHover(null), []);
140
114
 
141
- if (!currentCategoryPatterns.length && !filteredUnsyncedPatterns.length) {
115
+ if (!currentCategoryPatterns.length) {
142
116
  return null;
143
117
  }
144
118
 
@@ -147,8 +121,8 @@ export function BlockPatternsCategoryPanel({
147
121
  }, createElement("div", {
148
122
  className: "block-editor-inserter__patterns-category-panel-title"
149
123
  }, category.label), createElement("p", null, category.description), createElement(BlockPatternList, {
150
- shownPatterns: currentShownPatterns,
151
- blockPatterns: patterns,
124
+ shownPatterns: categoryPatternsList,
125
+ blockPatterns: currentCategoryPatterns,
152
126
  onClickPattern: onClick,
153
127
  onHover: onHover,
154
128
  label: category.label,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/block-patterns-tab.js"],"names":["useMemo","useState","useCallback","useRef","useEffect","_x","__","isRTL","useAsyncList","useViewportMatch","__experimentalItemGroup","ItemGroup","__experimentalItem","Item","__experimentalHStack","HStack","FlexBlock","Button","Icon","chevronRight","chevronLeft","parse","focus","usePatternsState","BlockPatternList","PatternsExplorerModal","MobileTabNavigation","useBlockTypesState","noop","patternCategoriesOrder","usePatternsCategories","rootClientId","allPatterns","allCategories","undefined","unsyncedPatterns","filteredUnsyncedPatterns","filter","category","unsyncedPatternCategory","hasRegisteredCategory","pattern","categories","length","some","cat","name","populatedCategories","includes","sort","aName","bName","aIndex","indexOf","bIndex","find","push","label","BlockPatternsCategoryDialog","onInsert","onHover","showTitlesAsTooltip","container","timeout","setTimeout","firstTabbable","tabbable","current","clearTimeout","BlockPatternsCategoryPanel","onClick","map","syncedPattern","blocks","content","__unstableSkipMigrationLogs","availableCategories","currentCategoryPatterns","availablePatternCategories","availableCategory","patterns","currentShownPatterns","description","BlockPatternsTabs","onSelectCategory","selectedCategory","showPatternsExplorer","setShowPatternsExplorer","initialCategory","isMobile"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tuseMemo,\n\tuseState,\n\tuseCallback,\n\tuseRef,\n\tuseEffect,\n} from '@wordpress/element';\nimport { _x, __, isRTL } from '@wordpress/i18n';\nimport { useAsyncList, useViewportMatch } from '@wordpress/compose';\nimport {\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalItem as Item,\n\t__experimentalHStack as HStack,\n\tFlexBlock,\n\tButton,\n} from '@wordpress/components';\nimport { Icon, chevronRight, chevronLeft } from '@wordpress/icons';\nimport { parse } from '@wordpress/blocks';\nimport { focus } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport usePatternsState from './hooks/use-patterns-state';\nimport BlockPatternList from '../block-patterns-list';\nimport PatternsExplorerModal from './block-patterns-explorer/explorer';\nimport MobileTabNavigation from './mobile-tab-navigation';\nimport useBlockTypesState from './hooks/use-block-types-state';\n\nconst noop = () => {};\n\n// Preferred order of pattern categories. Any other categories should\n// be at the bottom without any re-ordering.\nconst patternCategoriesOrder = [\n\t'featured',\n\t'posts',\n\t'text',\n\t'gallery',\n\t'call-to-action',\n\t'banner',\n\t'header',\n\t'footer',\n];\n\nfunction usePatternsCategories( rootClientId ) {\n\tconst [ allPatterns, allCategories ] = usePatternsState(\n\t\tundefined,\n\t\trootClientId\n\t);\n\n\tconst [ unsyncedPatterns ] = useBlockTypesState(\n\t\trootClientId,\n\t\tundefined,\n\t\t'unsynced'\n\t);\n\n\tconst filteredUnsyncedPatterns = useMemo( () => {\n\t\treturn unsyncedPatterns.filter(\n\t\t\t( { category: unsyncedPatternCategory } ) =>\n\t\t\t\tunsyncedPatternCategory === 'reusable'\n\t\t);\n\t}, [ unsyncedPatterns ] );\n\tconst hasRegisteredCategory = useCallback(\n\t\t( pattern ) => {\n\t\t\tif ( ! pattern.categories || ! pattern.categories.length ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn pattern.categories.some( ( cat ) =>\n\t\t\t\tallCategories.some( ( category ) => category.name === cat )\n\t\t\t);\n\t\t},\n\t\t[ allCategories ]\n\t);\n\n\t// Remove any empty categories.\n\tconst populatedCategories = useMemo( () => {\n\t\tconst categories = allCategories\n\t\t\t.filter( ( category ) =>\n\t\t\t\tallPatterns.some( ( pattern ) =>\n\t\t\t\t\tpattern.categories?.includes( category.name )\n\t\t\t\t)\n\t\t\t)\n\t\t\t.sort( ( { name: aName }, { name: bName } ) => {\n\t\t\t\t// Sort categories according to `patternCategoriesOrder`.\n\t\t\t\tlet aIndex = patternCategoriesOrder.indexOf( aName );\n\t\t\t\tlet bIndex = patternCategoriesOrder.indexOf( bName );\n\t\t\t\t// All other categories should come after that.\n\t\t\t\tif ( aIndex < 0 ) aIndex = patternCategoriesOrder.length;\n\t\t\t\tif ( bIndex < 0 ) bIndex = patternCategoriesOrder.length;\n\t\t\t\treturn aIndex - bIndex;\n\t\t\t} );\n\n\t\tif (\n\t\t\tallPatterns.some(\n\t\t\t\t( pattern ) => ! hasRegisteredCategory( pattern )\n\t\t\t) &&\n\t\t\t! categories.find(\n\t\t\t\t( category ) => category.name === 'uncategorized'\n\t\t\t)\n\t\t) {\n\t\t\tcategories.push( {\n\t\t\t\tname: 'uncategorized',\n\t\t\t\tlabel: _x( 'Uncategorized' ),\n\t\t\t} );\n\t\t}\n\t\tif ( filteredUnsyncedPatterns.length > 0 ) {\n\t\t\tcategories.push( {\n\t\t\t\tname: 'reusable',\n\t\t\t\tlabel: _x( 'Custom patterns' ),\n\t\t\t} );\n\t\t}\n\n\t\treturn categories;\n\t}, [\n\t\tallCategories,\n\t\tallPatterns,\n\t\tfilteredUnsyncedPatterns.length,\n\t\thasRegisteredCategory,\n\t] );\n\n\treturn populatedCategories;\n}\n\nexport function BlockPatternsCategoryDialog( {\n\trootClientId,\n\tonInsert,\n\tonHover,\n\tcategory,\n\tshowTitlesAsTooltip,\n} ) {\n\tconst container = useRef();\n\n\tuseEffect( () => {\n\t\tconst timeout = setTimeout( () => {\n\t\t\tconst [ firstTabbable ] = focus.tabbable.find( container.current );\n\t\t\tfirstTabbable?.focus();\n\t\t} );\n\t\treturn () => clearTimeout( timeout );\n\t}, [ category ] );\n\n\treturn (\n\t\t<div\n\t\t\tref={ container }\n\t\t\tclassName=\"block-editor-inserter__patterns-category-dialog\"\n\t\t>\n\t\t\t<BlockPatternsCategoryPanel\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t\tonInsert={ onInsert }\n\t\t\t\tonHover={ onHover }\n\t\t\t\tcategory={ category }\n\t\t\t\tshowTitlesAsTooltip={ showTitlesAsTooltip }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nexport function BlockPatternsCategoryPanel( {\n\trootClientId,\n\tonInsert,\n\tonHover = noop,\n\tcategory,\n\tshowTitlesAsTooltip,\n} ) {\n\tconst [ allPatterns, , onClick ] = usePatternsState(\n\t\tonInsert,\n\t\trootClientId\n\t);\n\tconst [ unsyncedPatterns ] = useBlockTypesState(\n\t\trootClientId,\n\t\tonInsert,\n\t\t'unsynced'\n\t);\n\tconst filteredUnsyncedPatterns = useMemo( () => {\n\t\treturn unsyncedPatterns\n\t\t\t.filter(\n\t\t\t\t( { category: unsyncedPatternCategory } ) =>\n\t\t\t\t\tunsyncedPatternCategory === 'reusable'\n\t\t\t)\n\t\t\t.map( ( syncedPattern ) => ( {\n\t\t\t\t...syncedPattern,\n\t\t\t\tblocks: parse( syncedPattern.content, {\n\t\t\t\t\t__unstableSkipMigrationLogs: true,\n\t\t\t\t} ),\n\t\t\t} ) );\n\t}, [ unsyncedPatterns ] );\n\n\tconst availableCategories = usePatternsCategories( rootClientId );\n\tconst currentCategoryPatterns = useMemo(\n\t\t() =>\n\t\t\tallPatterns.filter( ( pattern ) => {\n\t\t\t\tif ( category.name !== 'uncategorized' ) {\n\t\t\t\t\treturn pattern.categories?.includes( category.name );\n\t\t\t\t}\n\n\t\t\t\t// The uncategorized category should show all the patterns without any category\n\t\t\t\t// or with no available category.\n\t\t\t\tconst availablePatternCategories =\n\t\t\t\t\tpattern.categories?.filter( ( cat ) =>\n\t\t\t\t\t\tavailableCategories.find(\n\t\t\t\t\t\t\t( availableCategory ) =>\n\t\t\t\t\t\t\t\tavailableCategory.name === cat\n\t\t\t\t\t\t)\n\t\t\t\t\t) ?? [];\n\n\t\t\t\treturn availablePatternCategories.length === 0;\n\t\t\t} ),\n\t\t[ allPatterns, category ]\n\t);\n\tconst patterns =\n\t\tcategory.name === 'reusable'\n\t\t\t? filteredUnsyncedPatterns\n\t\t\t: currentCategoryPatterns;\n\tconst currentShownPatterns = useAsyncList( patterns );\n\n\t// Hide block pattern preview on unmount.\n\tuseEffect( () => () => onHover( null ), [] );\n\n\tif (\n\t\t! currentCategoryPatterns.length &&\n\t\t! filteredUnsyncedPatterns.length\n\t) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div className=\"block-editor-inserter__patterns-category-panel\">\n\t\t\t<div className=\"block-editor-inserter__patterns-category-panel-title\">\n\t\t\t\t{ category.label }\n\t\t\t</div>\n\t\t\t<p>{ category.description }</p>\n\t\t\t<BlockPatternList\n\t\t\t\tshownPatterns={ currentShownPatterns }\n\t\t\t\tblockPatterns={ patterns }\n\t\t\t\tonClickPattern={ onClick }\n\t\t\t\tonHover={ onHover }\n\t\t\t\tlabel={ category.label }\n\t\t\t\torientation=\"vertical\"\n\t\t\t\tcategory={ category.label }\n\t\t\t\tisDraggable\n\t\t\t\tshowTitlesAsTooltip={ showTitlesAsTooltip }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nfunction BlockPatternsTabs( {\n\tonSelectCategory,\n\tselectedCategory,\n\tonInsert,\n\trootClientId,\n} ) {\n\tconst [ showPatternsExplorer, setShowPatternsExplorer ] = useState( false );\n\tconst categories = usePatternsCategories( rootClientId );\n\tconst initialCategory = selectedCategory || categories[ 0 ];\n\tconst isMobile = useViewportMatch( 'medium', '<' );\n\treturn (\n\t\t<>\n\t\t\t{ ! isMobile && (\n\t\t\t\t<div className=\"block-editor-inserter__block-patterns-tabs-container\">\n\t\t\t\t\t<nav aria-label={ __( 'Block pattern categories' ) }>\n\t\t\t\t\t\t<ItemGroup\n\t\t\t\t\t\t\trole=\"list\"\n\t\t\t\t\t\t\tclassName=\"block-editor-inserter__block-patterns-tabs\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ categories.map( ( category ) => (\n\t\t\t\t\t\t\t\t<Item\n\t\t\t\t\t\t\t\t\trole=\"listitem\"\n\t\t\t\t\t\t\t\t\tkey={ category.name }\n\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\tonSelectCategory( category )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\t\t\tcategory === selectedCategory\n\t\t\t\t\t\t\t\t\t\t\t? 'block-editor-inserter__patterns-category block-editor-inserter__patterns-selected-category'\n\t\t\t\t\t\t\t\t\t\t\t: 'block-editor-inserter__patterns-category'\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\taria-label={ category.label }\n\t\t\t\t\t\t\t\t\taria-current={\n\t\t\t\t\t\t\t\t\t\tcategory === selectedCategory\n\t\t\t\t\t\t\t\t\t\t\t? 'true'\n\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<HStack>\n\t\t\t\t\t\t\t\t\t\t<FlexBlock>\n\t\t\t\t\t\t\t\t\t\t\t{ category.label }\n\t\t\t\t\t\t\t\t\t\t</FlexBlock>\n\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\t\tisRTL()\n\t\t\t\t\t\t\t\t\t\t\t\t\t? chevronLeft\n\t\t\t\t\t\t\t\t\t\t\t\t\t: chevronRight\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t\t\t</Item>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t<div role=\"listitem\">\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tclassName=\"block-editor-inserter__patterns-explore-button\"\n\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\tsetShowPatternsExplorer( true )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Explore all patterns' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</ItemGroup>\n\t\t\t\t\t</nav>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ isMobile && (\n\t\t\t\t<MobileTabNavigation categories={ categories }>\n\t\t\t\t\t{ ( category ) => (\n\t\t\t\t\t\t<BlockPatternsCategoryPanel\n\t\t\t\t\t\t\tonInsert={ onInsert }\n\t\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\t\tcategory={ category }\n\t\t\t\t\t\t\tshowTitlesAsTooltip={ false }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</MobileTabNavigation>\n\t\t\t) }\n\t\t\t{ showPatternsExplorer && (\n\t\t\t\t<PatternsExplorerModal\n\t\t\t\t\tinitialCategory={ initialCategory }\n\t\t\t\t\tpatternCategories={ categories }\n\t\t\t\t\tonModalClose={ () => setShowPatternsExplorer( false ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default BlockPatternsTabs;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/block-patterns-tab.js"],"names":["useMemo","useState","useCallback","useRef","useEffect","_x","__","isRTL","useAsyncList","useViewportMatch","__experimentalItemGroup","ItemGroup","__experimentalItem","Item","__experimentalHStack","HStack","FlexBlock","Button","Icon","chevronRight","chevronLeft","focus","usePatternsState","BlockPatternList","PatternsExplorerModal","MobileTabNavigation","noop","patternCategoriesOrder","usePatternsCategories","rootClientId","allPatterns","allCategories","undefined","hasRegisteredCategory","pattern","categories","length","some","cat","category","name","populatedCategories","filter","includes","sort","aName","bName","aIndex","indexOf","bIndex","find","push","label","BlockPatternsCategoryDialog","onInsert","onHover","showTitlesAsTooltip","container","timeout","setTimeout","firstTabbable","tabbable","current","clearTimeout","BlockPatternsCategoryPanel","onClick","availableCategories","currentCategoryPatterns","availablePatternCategories","availableCategory","categoryPatternsList","description","BlockPatternsTabs","onSelectCategory","selectedCategory","showPatternsExplorer","setShowPatternsExplorer","initialCategory","isMobile","map"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tuseMemo,\n\tuseState,\n\tuseCallback,\n\tuseRef,\n\tuseEffect,\n} from '@wordpress/element';\nimport { _x, __, isRTL } from '@wordpress/i18n';\nimport { useAsyncList, useViewportMatch } from '@wordpress/compose';\nimport {\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalItem as Item,\n\t__experimentalHStack as HStack,\n\tFlexBlock,\n\tButton,\n} from '@wordpress/components';\nimport { Icon, chevronRight, chevronLeft } from '@wordpress/icons';\nimport { focus } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport usePatternsState from './hooks/use-patterns-state';\nimport BlockPatternList from '../block-patterns-list';\nimport PatternsExplorerModal from './block-patterns-explorer/explorer';\nimport MobileTabNavigation from './mobile-tab-navigation';\n\nconst noop = () => {};\n\n// Preferred order of pattern categories. Any other categories should\n// be at the bottom without any re-ordering.\nconst patternCategoriesOrder = [\n\t'custom',\n\t'featured',\n\t'posts',\n\t'text',\n\t'gallery',\n\t'call-to-action',\n\t'banner',\n\t'header',\n\t'footer',\n];\n\nfunction usePatternsCategories( rootClientId ) {\n\tconst [ allPatterns, allCategories ] = usePatternsState(\n\t\tundefined,\n\t\trootClientId\n\t);\n\n\tconst hasRegisteredCategory = useCallback(\n\t\t( pattern ) => {\n\t\t\tif ( ! pattern.categories || ! pattern.categories.length ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn pattern.categories.some( ( cat ) =>\n\t\t\t\tallCategories.some( ( category ) => category.name === cat )\n\t\t\t);\n\t\t},\n\t\t[ allCategories ]\n\t);\n\n\t// Remove any empty categories.\n\tconst populatedCategories = useMemo( () => {\n\t\tconst categories = allCategories\n\t\t\t.filter( ( category ) =>\n\t\t\t\tallPatterns.some( ( pattern ) =>\n\t\t\t\t\tpattern.categories?.includes( category.name )\n\t\t\t\t)\n\t\t\t)\n\t\t\t.sort( ( { name: aName }, { name: bName } ) => {\n\t\t\t\t// Sort categories according to `patternCategoriesOrder`.\n\t\t\t\tlet aIndex = patternCategoriesOrder.indexOf( aName );\n\t\t\t\tlet bIndex = patternCategoriesOrder.indexOf( bName );\n\t\t\t\t// All other categories should come after that.\n\t\t\t\tif ( aIndex < 0 ) aIndex = patternCategoriesOrder.length;\n\t\t\t\tif ( bIndex < 0 ) bIndex = patternCategoriesOrder.length;\n\t\t\t\treturn aIndex - bIndex;\n\t\t\t} );\n\n\t\tif (\n\t\t\tallPatterns.some(\n\t\t\t\t( pattern ) => ! hasRegisteredCategory( pattern )\n\t\t\t) &&\n\t\t\t! categories.find(\n\t\t\t\t( category ) => category.name === 'uncategorized'\n\t\t\t)\n\t\t) {\n\t\t\tcategories.push( {\n\t\t\t\tname: 'uncategorized',\n\t\t\t\tlabel: _x( 'Uncategorized' ),\n\t\t\t} );\n\t\t}\n\n\t\treturn categories;\n\t}, [ allCategories, allPatterns, hasRegisteredCategory ] );\n\n\treturn populatedCategories;\n}\n\nexport function BlockPatternsCategoryDialog( {\n\trootClientId,\n\tonInsert,\n\tonHover,\n\tcategory,\n\tshowTitlesAsTooltip,\n} ) {\n\tconst container = useRef();\n\n\tuseEffect( () => {\n\t\tconst timeout = setTimeout( () => {\n\t\t\tconst [ firstTabbable ] = focus.tabbable.find( container.current );\n\t\t\tfirstTabbable?.focus();\n\t\t} );\n\t\treturn () => clearTimeout( timeout );\n\t}, [ category ] );\n\n\treturn (\n\t\t<div\n\t\t\tref={ container }\n\t\t\tclassName=\"block-editor-inserter__patterns-category-dialog\"\n\t\t>\n\t\t\t<BlockPatternsCategoryPanel\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t\tonInsert={ onInsert }\n\t\t\t\tonHover={ onHover }\n\t\t\t\tcategory={ category }\n\t\t\t\tshowTitlesAsTooltip={ showTitlesAsTooltip }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nexport function BlockPatternsCategoryPanel( {\n\trootClientId,\n\tonInsert,\n\tonHover = noop,\n\tcategory,\n\tshowTitlesAsTooltip,\n} ) {\n\tconst [ allPatterns, , onClick ] = usePatternsState(\n\t\tonInsert,\n\t\trootClientId\n\t);\n\n\tconst availableCategories = usePatternsCategories( rootClientId );\n\tconst currentCategoryPatterns = useMemo(\n\t\t() =>\n\t\t\tallPatterns.filter( ( pattern ) => {\n\t\t\t\tif ( category.name !== 'uncategorized' ) {\n\t\t\t\t\treturn pattern.categories?.includes( category.name );\n\t\t\t\t}\n\n\t\t\t\t// The uncategorized category should show all the patterns without any category\n\t\t\t\t// or with no available category.\n\t\t\t\tconst availablePatternCategories =\n\t\t\t\t\tpattern.categories?.filter( ( cat ) =>\n\t\t\t\t\t\tavailableCategories.find(\n\t\t\t\t\t\t\t( availableCategory ) =>\n\t\t\t\t\t\t\t\tavailableCategory.name === cat\n\t\t\t\t\t\t)\n\t\t\t\t\t) ?? [];\n\n\t\t\t\treturn availablePatternCategories.length === 0;\n\t\t\t} ),\n\t\t[ allPatterns, availableCategories, category.name ]\n\t);\n\n\tconst categoryPatternsList = useAsyncList( currentCategoryPatterns );\n\n\t// Hide block pattern preview on unmount.\n\tuseEffect( () => () => onHover( null ), [] );\n\n\tif ( ! currentCategoryPatterns.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div className=\"block-editor-inserter__patterns-category-panel\">\n\t\t\t<div className=\"block-editor-inserter__patterns-category-panel-title\">\n\t\t\t\t{ category.label }\n\t\t\t</div>\n\t\t\t<p>{ category.description }</p>\n\t\t\t<BlockPatternList\n\t\t\t\tshownPatterns={ categoryPatternsList }\n\t\t\t\tblockPatterns={ currentCategoryPatterns }\n\t\t\t\tonClickPattern={ onClick }\n\t\t\t\tonHover={ onHover }\n\t\t\t\tlabel={ category.label }\n\t\t\t\torientation=\"vertical\"\n\t\t\t\tcategory={ category.label }\n\t\t\t\tisDraggable\n\t\t\t\tshowTitlesAsTooltip={ showTitlesAsTooltip }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nfunction BlockPatternsTabs( {\n\tonSelectCategory,\n\tselectedCategory,\n\tonInsert,\n\trootClientId,\n} ) {\n\tconst [ showPatternsExplorer, setShowPatternsExplorer ] = useState( false );\n\tconst categories = usePatternsCategories( rootClientId );\n\tconst initialCategory = selectedCategory || categories[ 0 ];\n\tconst isMobile = useViewportMatch( 'medium', '<' );\n\treturn (\n\t\t<>\n\t\t\t{ ! isMobile && (\n\t\t\t\t<div className=\"block-editor-inserter__block-patterns-tabs-container\">\n\t\t\t\t\t<nav aria-label={ __( 'Block pattern categories' ) }>\n\t\t\t\t\t\t<ItemGroup\n\t\t\t\t\t\t\trole=\"list\"\n\t\t\t\t\t\t\tclassName=\"block-editor-inserter__block-patterns-tabs\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ categories.map( ( category ) => (\n\t\t\t\t\t\t\t\t<Item\n\t\t\t\t\t\t\t\t\trole=\"listitem\"\n\t\t\t\t\t\t\t\t\tkey={ category.name }\n\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\tonSelectCategory( category )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\t\t\tcategory === selectedCategory\n\t\t\t\t\t\t\t\t\t\t\t? 'block-editor-inserter__patterns-category block-editor-inserter__patterns-selected-category'\n\t\t\t\t\t\t\t\t\t\t\t: 'block-editor-inserter__patterns-category'\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\taria-label={ category.label }\n\t\t\t\t\t\t\t\t\taria-current={\n\t\t\t\t\t\t\t\t\t\tcategory === selectedCategory\n\t\t\t\t\t\t\t\t\t\t\t? 'true'\n\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<HStack>\n\t\t\t\t\t\t\t\t\t\t<FlexBlock>\n\t\t\t\t\t\t\t\t\t\t\t{ category.label }\n\t\t\t\t\t\t\t\t\t\t</FlexBlock>\n\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\t\tisRTL()\n\t\t\t\t\t\t\t\t\t\t\t\t\t? chevronLeft\n\t\t\t\t\t\t\t\t\t\t\t\t\t: chevronRight\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t\t\t</Item>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t<div role=\"listitem\">\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tclassName=\"block-editor-inserter__patterns-explore-button\"\n\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\tsetShowPatternsExplorer( true )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Explore all patterns' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</ItemGroup>\n\t\t\t\t\t</nav>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ isMobile && (\n\t\t\t\t<MobileTabNavigation categories={ categories }>\n\t\t\t\t\t{ ( category ) => (\n\t\t\t\t\t\t<BlockPatternsCategoryPanel\n\t\t\t\t\t\t\tonInsert={ onInsert }\n\t\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\t\tcategory={ category }\n\t\t\t\t\t\t\tshowTitlesAsTooltip={ false }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</MobileTabNavigation>\n\t\t\t) }\n\t\t\t{ showPatternsExplorer && (\n\t\t\t\t<PatternsExplorerModal\n\t\t\t\t\tinitialCategory={ initialCategory }\n\t\t\t\t\tpatternCategories={ categories }\n\t\t\t\t\tonModalClose={ () => setShowPatternsExplorer( false ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default BlockPatternsTabs;\n"]}
@@ -14,11 +14,10 @@ import { store as blockEditorStore } from '../../../store';
14
14
  *
15
15
  * @param {string=} rootClientId Insertion's root client ID.
16
16
  * @param {Function} onInsert function called when inserter a list of blocks.
17
- * @param {?string} syncStatus Optional sync status to filter pattern blocks by.
18
17
  * @return {Array} Returns the block types state. (block types, categories, collections, onSelect handler)
19
18
  */
20
19
 
21
- const useBlockTypesState = (rootClientId, onInsert, syncStatus) => {
20
+ const useBlockTypesState = (rootClientId, onInsert) => {
22
21
  const {
23
22
  categories,
24
23
  collections,
@@ -34,9 +33,9 @@ const useBlockTypesState = (rootClientId, onInsert, syncStatus) => {
34
33
  return {
35
34
  categories: getCategories(),
36
35
  collections: getCollections(),
37
- items: getInserterItems(rootClientId, syncStatus)
36
+ items: getInserterItems(rootClientId)
38
37
  };
39
- }, [rootClientId, syncStatus]);
38
+ }, [rootClientId]);
40
39
  const onSelectItem = useCallback(({
41
40
  name,
42
41
  initialAttributes,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/hooks/use-block-types-state.js"],"names":["createBlock","createBlocksFromInnerBlocksTemplate","store","blocksStore","useSelect","useCallback","blockEditorStore","useBlockTypesState","rootClientId","onInsert","syncStatus","categories","collections","items","select","getInserterItems","getCategories","getCollections","onSelectItem","name","initialAttributes","innerBlocks","shouldFocusBlock","insertedBlock","undefined"],"mappings":"AAAA;AACA;AACA;AACA,SACCA,WADD,EAECC,mCAFD,EAGCC,KAAK,IAAIC,WAHV,QAIO,mBAJP;AAKA,SAASC,SAAT,QAA0B,iBAA1B;AACA,SAASC,WAAT,QAA4B,oBAA5B;AAEA;AACA;AACA;;AACA,SAASH,KAAK,IAAII,gBAAlB,QAA0C,gBAA1C;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,kBAAkB,GAAG,CAAEC,YAAF,EAAgBC,QAAhB,EAA0BC,UAA1B,KAA0C;AACpE,QAAM;AAAEC,IAAAA,UAAF;AAAcC,IAAAA,WAAd;AAA2BC,IAAAA;AAA3B,MAAqCT,SAAS,CACjDU,MAAF,IAAc;AACb,UAAM;AAAEC,MAAAA;AAAF,QAAuBD,MAAM,CAAER,gBAAF,CAAnC;AACA,UAAM;AAAEU,MAAAA,aAAF;AAAiBC,MAAAA;AAAjB,QAAoCH,MAAM,CAAEX,WAAF,CAAhD;AAEA,WAAO;AACNQ,MAAAA,UAAU,EAAEK,aAAa,EADnB;AAENJ,MAAAA,WAAW,EAAEK,cAAc,EAFrB;AAGNJ,MAAAA,KAAK,EAAEE,gBAAgB,CAAEP,YAAF,EAAgBE,UAAhB;AAHjB,KAAP;AAKA,GAVkD,EAWnD,CAAEF,YAAF,EAAgBE,UAAhB,CAXmD,CAApD;AAcA,QAAMQ,YAAY,GAAGb,WAAW,CAC/B,CAAE;AAAEc,IAAAA,IAAF;AAAQC,IAAAA,iBAAR;AAA2BC,IAAAA;AAA3B,GAAF,EAA4CC,gBAA5C,KAAkE;AACjE,UAAMC,aAAa,GAAGvB,WAAW,CAChCmB,IADgC,EAEhCC,iBAFgC,EAGhCnB,mCAAmC,CAAEoB,WAAF,CAHH,CAAjC;AAMAZ,IAAAA,QAAQ,CAAEc,aAAF,EAAiBC,SAAjB,EAA4BF,gBAA5B,CAAR;AACA,GAT8B,EAU/B,CAAEb,QAAF,CAV+B,CAAhC;AAaA,SAAO,CAAEI,KAAF,EAASF,UAAT,EAAqBC,WAArB,EAAkCM,YAAlC,CAAP;AACA,CA7BD;;AA+BA,eAAeX,kBAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tcreateBlock,\n\tcreateBlocksFromInnerBlocksTemplate,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\nimport { useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../../store';\n\n/**\n * Retrieves the block types inserter state.\n *\n * @param {string=} rootClientId Insertion's root client ID.\n * @param {Function} onInsert function called when inserter a list of blocks.\n * @param {?string} syncStatus Optional sync status to filter pattern blocks by.\n * @return {Array} Returns the block types state. (block types, categories, collections, onSelect handler)\n */\nconst useBlockTypesState = ( rootClientId, onInsert, syncStatus ) => {\n\tconst { categories, collections, items } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getInserterItems } = select( blockEditorStore );\n\t\t\tconst { getCategories, getCollections } = select( blocksStore );\n\n\t\t\treturn {\n\t\t\t\tcategories: getCategories(),\n\t\t\t\tcollections: getCollections(),\n\t\t\t\titems: getInserterItems( rootClientId, syncStatus ),\n\t\t\t};\n\t\t},\n\t\t[ rootClientId, syncStatus ]\n\t);\n\n\tconst onSelectItem = useCallback(\n\t\t( { name, initialAttributes, innerBlocks }, shouldFocusBlock ) => {\n\t\t\tconst insertedBlock = createBlock(\n\t\t\t\tname,\n\t\t\t\tinitialAttributes,\n\t\t\t\tcreateBlocksFromInnerBlocksTemplate( innerBlocks )\n\t\t\t);\n\n\t\t\tonInsert( insertedBlock, undefined, shouldFocusBlock );\n\t\t},\n\t\t[ onInsert ]\n\t);\n\n\treturn [ items, categories, collections, onSelectItem ];\n};\n\nexport default useBlockTypesState;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/hooks/use-block-types-state.js"],"names":["createBlock","createBlocksFromInnerBlocksTemplate","store","blocksStore","useSelect","useCallback","blockEditorStore","useBlockTypesState","rootClientId","onInsert","categories","collections","items","select","getInserterItems","getCategories","getCollections","onSelectItem","name","initialAttributes","innerBlocks","shouldFocusBlock","insertedBlock","undefined"],"mappings":"AAAA;AACA;AACA;AACA,SACCA,WADD,EAECC,mCAFD,EAGCC,KAAK,IAAIC,WAHV,QAIO,mBAJP;AAKA,SAASC,SAAT,QAA0B,iBAA1B;AACA,SAASC,WAAT,QAA4B,oBAA5B;AAEA;AACA;AACA;;AACA,SAASH,KAAK,IAAII,gBAAlB,QAA0C,gBAA1C;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,kBAAkB,GAAG,CAAEC,YAAF,EAAgBC,QAAhB,KAA8B;AACxD,QAAM;AAAEC,IAAAA,UAAF;AAAcC,IAAAA,WAAd;AAA2BC,IAAAA;AAA3B,MAAqCR,SAAS,CACjDS,MAAF,IAAc;AACb,UAAM;AAAEC,MAAAA;AAAF,QAAuBD,MAAM,CAAEP,gBAAF,CAAnC;AACA,UAAM;AAAES,MAAAA,aAAF;AAAiBC,MAAAA;AAAjB,QAAoCH,MAAM,CAAEV,WAAF,CAAhD;AAEA,WAAO;AACNO,MAAAA,UAAU,EAAEK,aAAa,EADnB;AAENJ,MAAAA,WAAW,EAAEK,cAAc,EAFrB;AAGNJ,MAAAA,KAAK,EAAEE,gBAAgB,CAAEN,YAAF;AAHjB,KAAP;AAKA,GAVkD,EAWnD,CAAEA,YAAF,CAXmD,CAApD;AAcA,QAAMS,YAAY,GAAGZ,WAAW,CAC/B,CAAE;AAAEa,IAAAA,IAAF;AAAQC,IAAAA,iBAAR;AAA2BC,IAAAA;AAA3B,GAAF,EAA4CC,gBAA5C,KAAkE;AACjE,UAAMC,aAAa,GAAGtB,WAAW,CAChCkB,IADgC,EAEhCC,iBAFgC,EAGhClB,mCAAmC,CAAEmB,WAAF,CAHH,CAAjC;AAMAX,IAAAA,QAAQ,CAAEa,aAAF,EAAiBC,SAAjB,EAA4BF,gBAA5B,CAAR;AACA,GAT8B,EAU/B,CAAEZ,QAAF,CAV+B,CAAhC;AAaA,SAAO,CAAEG,KAAF,EAASF,UAAT,EAAqBC,WAArB,EAAkCM,YAAlC,CAAP;AACA,CA7BD;;AA+BA,eAAeV,kBAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tcreateBlock,\n\tcreateBlocksFromInnerBlocksTemplate,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\nimport { useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../../store';\n\n/**\n * Retrieves the block types inserter state.\n *\n * @param {string=} rootClientId Insertion's root client ID.\n * @param {Function} onInsert function called when inserter a list of blocks.\n * @return {Array} Returns the block types state. (block types, categories, collections, onSelect handler)\n */\nconst useBlockTypesState = ( rootClientId, onInsert ) => {\n\tconst { categories, collections, items } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getInserterItems } = select( blockEditorStore );\n\t\t\tconst { getCategories, getCollections } = select( blocksStore );\n\n\t\t\treturn {\n\t\t\t\tcategories: getCategories(),\n\t\t\t\tcollections: getCollections(),\n\t\t\t\titems: getInserterItems( rootClientId ),\n\t\t\t};\n\t\t},\n\t\t[ rootClientId ]\n\t);\n\n\tconst onSelectItem = useCallback(\n\t\t( { name, initialAttributes, innerBlocks }, shouldFocusBlock ) => {\n\t\t\tconst insertedBlock = createBlock(\n\t\t\t\tname,\n\t\t\t\tinitialAttributes,\n\t\t\t\tcreateBlocksFromInnerBlocksTemplate( innerBlocks )\n\t\t\t);\n\n\t\t\tonInsert( insertedBlock, undefined, shouldFocusBlock );\n\t\t},\n\t\t[ onInsert ]\n\t);\n\n\treturn [ items, categories, collections, onSelectItem ];\n};\n\nexport default useBlockTypesState;\n"]}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { useCallback } from '@wordpress/element';
4
+ import { useCallback, useMemo } from '@wordpress/element';
5
5
  import { cloneBlock } from '@wordpress/blocks';
6
6
  import { useDispatch, useSelect } from '@wordpress/data';
7
7
  import { __, sprintf } from '@wordpress/i18n';
@@ -11,6 +11,11 @@ import { store as noticesStore } from '@wordpress/notices';
11
11
  */
12
12
 
13
13
  import { store as blockEditorStore } from '../../../store';
14
+ const CUSTOM_CATEGORY = {
15
+ name: 'custom',
16
+ label: __('My patterns'),
17
+ description: __('Custom patterns add by site users')
18
+ };
14
19
  /**
15
20
  * Retrieves the block patterns inserter state.
16
21
  *
@@ -34,6 +39,7 @@ const usePatternsState = (onInsert, rootClientId) => {
34
39
  patternCategories: getSettings().__experimentalBlockPatternCategories
35
40
  };
36
41
  }, [rootClientId]);
42
+ const allCategories = useMemo(() => [...patternCategories, CUSTOM_CATEGORY], [patternCategories]);
37
43
  const {
38
44
  createSuccessNotice
39
45
  } = useDispatch(noticesStore);
@@ -44,8 +50,8 @@ const usePatternsState = (onInsert, rootClientId) => {
44
50
  __('Block pattern "%s" inserted.'), pattern.title), {
45
51
  type: 'snackbar'
46
52
  });
47
- }, []);
48
- return [patterns, patternCategories, onClickPattern];
53
+ }, [createSuccessNotice, onInsert]);
54
+ return [patterns, allCategories, onClickPattern];
49
55
  };
50
56
 
51
57
  export default usePatternsState;
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/hooks/use-patterns-state.js"],"names":["useCallback","cloneBlock","useDispatch","useSelect","__","sprintf","store","noticesStore","blockEditorStore","usePatternsState","onInsert","rootClientId","patternCategories","patterns","select","__experimentalGetAllowedPatterns","getSettings","__experimentalBlockPatternCategories","createSuccessNotice","onClickPattern","pattern","blocks","map","block","name","title","type"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,WAAT,QAA4B,oBAA5B;AACA,SAASC,UAAT,QAA2B,mBAA3B;AACA,SAASC,WAAT,EAAsBC,SAAtB,QAAuC,iBAAvC;AACA,SAASC,EAAT,EAAaC,OAAb,QAA4B,iBAA5B;AACA,SAASC,KAAK,IAAIC,YAAlB,QAAsC,oBAAtC;AAEA;AACA;AACA;;AACA,SAASD,KAAK,IAAIE,gBAAlB,QAA0C,gBAA1C;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,gBAAgB,GAAG,CAAEC,QAAF,EAAYC,YAAZ,KAA8B;AACtD,QAAM;AAAEC,IAAAA,iBAAF;AAAqBC,IAAAA;AAArB,MAAkCV,SAAS,CAC9CW,MAAF,IAAc;AACb,UAAM;AAAEC,MAAAA,gCAAF;AAAoCC,MAAAA;AAApC,QACLF,MAAM,CAAEN,gBAAF,CADP;AAEA,WAAO;AACNK,MAAAA,QAAQ,EAAEE,gCAAgC,CAAEJ,YAAF,CADpC;AAENC,MAAAA,iBAAiB,EAChBI,WAAW,GAAGC;AAHT,KAAP;AAKA,GAT+C,EAUhD,CAAEN,YAAF,CAVgD,CAAjD;AAYA,QAAM;AAAEO,IAAAA;AAAF,MAA0BhB,WAAW,CAAEK,YAAF,CAA3C;AACA,QAAMY,cAAc,GAAGnB,WAAW,CAAE,CAAEoB,OAAF,EAAWC,MAAX,KAAuB;AAC1DX,IAAAA,QAAQ,CACP,CAAEW,MAAF,aAAEA,MAAF,cAAEA,MAAF,GAAY,EAAZ,EAAiBC,GAAjB,CAAwBC,KAAF,IAAatB,UAAU,CAAEsB,KAAF,CAA7C,CADO,EAEPH,OAAO,CAACI,IAFD,CAAR;AAIAN,IAAAA,mBAAmB,CAClBb,OAAO;AACN;AACAD,IAAAA,EAAE,CAAE,8BAAF,CAFI,EAGNgB,OAAO,CAACK,KAHF,CADW,EAMlB;AACCC,MAAAA,IAAI,EAAE;AADP,KANkB,CAAnB;AAUA,GAfiC,EAe/B,EAf+B,CAAlC;AAiBA,SAAO,CAAEb,QAAF,EAAYD,iBAAZ,EAA+BO,cAA/B,CAAP;AACA,CAhCD;;AAkCA,eAAeV,gBAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useCallback } from '@wordpress/element';\nimport { cloneBlock } from '@wordpress/blocks';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../../store';\n\n/**\n * Retrieves the block patterns inserter state.\n *\n * @param {Function} onInsert function called when inserter a list of blocks.\n * @param {string=} rootClientId Insertion's root client ID.\n *\n * @return {Array} Returns the patterns state. (patterns, categories, onSelect handler)\n */\nconst usePatternsState = ( onInsert, rootClientId ) => {\n\tconst { patternCategories, patterns } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { __experimentalGetAllowedPatterns, getSettings } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\treturn {\n\t\t\t\tpatterns: __experimentalGetAllowedPatterns( rootClientId ),\n\t\t\t\tpatternCategories:\n\t\t\t\t\tgetSettings().__experimentalBlockPatternCategories,\n\t\t\t};\n\t\t},\n\t\t[ rootClientId ]\n\t);\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\tconst onClickPattern = useCallback( ( pattern, blocks ) => {\n\t\tonInsert(\n\t\t\t( blocks ?? [] ).map( ( block ) => cloneBlock( block ) ),\n\t\t\tpattern.name\n\t\t);\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: block pattern title. */\n\t\t\t\t__( 'Block pattern \"%s\" inserted.' ),\n\t\t\t\tpattern.title\n\t\t\t),\n\t\t\t{\n\t\t\t\ttype: 'snackbar',\n\t\t\t}\n\t\t);\n\t}, [] );\n\n\treturn [ patterns, patternCategories, onClickPattern ];\n};\n\nexport default usePatternsState;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/hooks/use-patterns-state.js"],"names":["useCallback","useMemo","cloneBlock","useDispatch","useSelect","__","sprintf","store","noticesStore","blockEditorStore","CUSTOM_CATEGORY","name","label","description","usePatternsState","onInsert","rootClientId","patternCategories","patterns","select","__experimentalGetAllowedPatterns","getSettings","__experimentalBlockPatternCategories","allCategories","createSuccessNotice","onClickPattern","pattern","blocks","map","block","title","type"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,WAAT,EAAsBC,OAAtB,QAAqC,oBAArC;AACA,SAASC,UAAT,QAA2B,mBAA3B;AACA,SAASC,WAAT,EAAsBC,SAAtB,QAAuC,iBAAvC;AACA,SAASC,EAAT,EAAaC,OAAb,QAA4B,iBAA5B;AACA,SAASC,KAAK,IAAIC,YAAlB,QAAsC,oBAAtC;AAEA;AACA;AACA;;AACA,SAASD,KAAK,IAAIE,gBAAlB,QAA0C,gBAA1C;AAEA,MAAMC,eAAe,GAAG;AACvBC,EAAAA,IAAI,EAAE,QADiB;AAEvBC,EAAAA,KAAK,EAAEP,EAAE,CAAE,aAAF,CAFc;AAGvBQ,EAAAA,WAAW,EAAER,EAAE,CAAE,mCAAF;AAHQ,CAAxB;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMS,gBAAgB,GAAG,CAAEC,QAAF,EAAYC,YAAZ,KAA8B;AACtD,QAAM;AAAEC,IAAAA,iBAAF;AAAqBC,IAAAA;AAArB,MAAkCd,SAAS,CAC9Ce,MAAF,IAAc;AACb,UAAM;AAAEC,MAAAA,gCAAF;AAAoCC,MAAAA;AAApC,QACLF,MAAM,CAAEV,gBAAF,CADP;AAGA,WAAO;AACNS,MAAAA,QAAQ,EAAEE,gCAAgC,CAAEJ,YAAF,CADpC;AAENC,MAAAA,iBAAiB,EAChBI,WAAW,GAAGC;AAHT,KAAP;AAKA,GAV+C,EAWhD,CAAEN,YAAF,CAXgD,CAAjD;AAcA,QAAMO,aAAa,GAAGtB,OAAO,CAC5B,MAAM,CAAE,GAAGgB,iBAAL,EAAwBP,eAAxB,CADsB,EAE5B,CAAEO,iBAAF,CAF4B,CAA7B;AAKA,QAAM;AAAEO,IAAAA;AAAF,MAA0BrB,WAAW,CAAEK,YAAF,CAA3C;AACA,QAAMiB,cAAc,GAAGzB,WAAW,CACjC,CAAE0B,OAAF,EAAWC,MAAX,KAAuB;AACtBZ,IAAAA,QAAQ,CACP,CAAEY,MAAF,aAAEA,MAAF,cAAEA,MAAF,GAAY,EAAZ,EAAiBC,GAAjB,CAAwBC,KAAF,IAAa3B,UAAU,CAAE2B,KAAF,CAA7C,CADO,EAEPH,OAAO,CAACf,IAFD,CAAR;AAIAa,IAAAA,mBAAmB,CAClBlB,OAAO;AACN;AACAD,IAAAA,EAAE,CAAE,8BAAF,CAFI,EAGNqB,OAAO,CAACI,KAHF,CADW,EAMlB;AACCC,MAAAA,IAAI,EAAE;AADP,KANkB,CAAnB;AAUA,GAhBgC,EAiBjC,CAAEP,mBAAF,EAAuBT,QAAvB,CAjBiC,CAAlC;AAoBA,SAAO,CAAEG,QAAF,EAAYK,aAAZ,EAA2BE,cAA3B,CAAP;AACA,CA1CD;;AA4CA,eAAeX,gBAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useCallback, useMemo } from '@wordpress/element';\nimport { cloneBlock } from '@wordpress/blocks';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../../store';\n\nconst CUSTOM_CATEGORY = {\n\tname: 'custom',\n\tlabel: __( 'My patterns' ),\n\tdescription: __( 'Custom patterns add by site users' ),\n};\n\n/**\n * Retrieves the block patterns inserter state.\n *\n * @param {Function} onInsert function called when inserter a list of blocks.\n * @param {string=} rootClientId Insertion's root client ID.\n *\n * @return {Array} Returns the patterns state. (patterns, categories, onSelect handler)\n */\nconst usePatternsState = ( onInsert, rootClientId ) => {\n\tconst { patternCategories, patterns } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { __experimentalGetAllowedPatterns, getSettings } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\treturn {\n\t\t\t\tpatterns: __experimentalGetAllowedPatterns( rootClientId ),\n\t\t\t\tpatternCategories:\n\t\t\t\t\tgetSettings().__experimentalBlockPatternCategories,\n\t\t\t};\n\t\t},\n\t\t[ rootClientId ]\n\t);\n\n\tconst allCategories = useMemo(\n\t\t() => [ ...patternCategories, CUSTOM_CATEGORY ],\n\t\t[ patternCategories ]\n\t);\n\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\tconst onClickPattern = useCallback(\n\t\t( pattern, blocks ) => {\n\t\t\tonInsert(\n\t\t\t\t( blocks ?? [] ).map( ( block ) => cloneBlock( block ) ),\n\t\t\t\tpattern.name\n\t\t\t);\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: %s: block pattern title. */\n\t\t\t\t\t__( 'Block pattern \"%s\" inserted.' ),\n\t\t\t\t\tpattern.title\n\t\t\t\t),\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t}\n\t\t\t);\n\t\t},\n\t\t[ createSuccessNotice, onInsert ]\n\t);\n\n\treturn [ patterns, allCategories, onClickPattern ];\n};\n\nexport default usePatternsState;\n"]}
@@ -0,0 +1,48 @@
1
+ import { createElement } from "@wordpress/element";
2
+
3
+ /**
4
+ * WordPress dependencies
5
+ */
6
+ import { Button } from '@wordpress/components';
7
+ import { useDispatch, useSelect } from '@wordpress/data';
8
+ import { focus } from '@wordpress/dom';
9
+ import { useRef } from '@wordpress/element';
10
+ import { __ } from '@wordpress/i18n';
11
+ import { close } from '@wordpress/icons';
12
+ import { store as preferencesStore } from '@wordpress/preferences';
13
+ const PREFERENCE_NAME = 'isResuableBlocksrRenameHintVisible';
14
+ export default function ReusableBlocksRenameHint() {
15
+ const isReusableBlocksRenameHint = useSelect(select => {
16
+ var _select$get;
17
+
18
+ return (_select$get = select(preferencesStore).get('core', PREFERENCE_NAME)) !== null && _select$get !== void 0 ? _select$get : true;
19
+ }, []);
20
+ const ref = useRef();
21
+ const {
22
+ set: setPreference
23
+ } = useDispatch(preferencesStore);
24
+
25
+ if (!isReusableBlocksRenameHint) {
26
+ return null;
27
+ }
28
+
29
+ return createElement("div", {
30
+ ref: ref,
31
+ className: "reusable-blocks-menu-items__rename-hint"
32
+ }, createElement("div", {
33
+ className: "reusable-blocks-menu-items__rename-hint-content"
34
+ }, __('Reusable blocks are now called patterns. A synced pattern will behave in exactly the same way as a reusable block.')), createElement(Button, {
35
+ className: "reusable-blocks-menu-items__rename-hint-dismiss",
36
+ icon: close,
37
+ iconSize: "16",
38
+ label: __('Dismiss hint'),
39
+ onClick: () => {
40
+ // Retain focus when dismissing the element.
41
+ const previousElement = focus.tabbable.findPrevious(ref.current);
42
+ previousElement?.focus();
43
+ setPreference('core', PREFERENCE_NAME, false);
44
+ },
45
+ showTooltip: false
46
+ }));
47
+ }
48
+ //# sourceMappingURL=reusable-block-rename-hint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/reusable-block-rename-hint.js"],"names":["Button","useDispatch","useSelect","focus","useRef","__","close","store","preferencesStore","PREFERENCE_NAME","ReusableBlocksRenameHint","isReusableBlocksRenameHint","select","get","ref","set","setPreference","previousElement","tabbable","findPrevious","current"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,MAAT,QAAuB,uBAAvB;AACA,SAASC,WAAT,EAAsBC,SAAtB,QAAuC,iBAAvC;AACA,SAASC,KAAT,QAAsB,gBAAtB;AACA,SAASC,MAAT,QAAuB,oBAAvB;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,KAAT,QAAsB,kBAAtB;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,wBAA1C;AAEA,MAAMC,eAAe,GAAG,oCAAxB;AAEA,eAAe,SAASC,wBAAT,GAAoC;AAClD,QAAMC,0BAA0B,GAAGT,SAAS,CACzCU,MAAF;AAAA;;AAAA,0BACCA,MAAM,CAAEJ,gBAAF,CAAN,CAA2BK,GAA3B,CAAgC,MAAhC,EAAwCJ,eAAxC,CADD,qDAC8D,IAD9D;AAAA,GAD2C,EAG3C,EAH2C,CAA5C;AAMA,QAAMK,GAAG,GAAGV,MAAM,EAAlB;AAEA,QAAM;AAAEW,IAAAA,GAAG,EAAEC;AAAP,MAAyBf,WAAW,CAAEO,gBAAF,CAA1C;;AACA,MAAK,CAAEG,0BAAP,EAAoC;AACnC,WAAO,IAAP;AACA;;AAED,SACC;AAAK,IAAA,GAAG,EAAGG,GAAX;AAAiB,IAAA,SAAS,EAAC;AAA3B,KACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACGT,EAAE,CACH,oHADG,CADL,CADD,EAMC,cAAC,MAAD;AACC,IAAA,SAAS,EAAC,iDADX;AAEC,IAAA,IAAI,EAAGC,KAFR;AAGC,IAAA,QAAQ,EAAC,IAHV;AAIC,IAAA,KAAK,EAAGD,EAAE,CAAE,cAAF,CAJX;AAKC,IAAA,OAAO,EAAG,MAAM;AACf;AACA,YAAMY,eAAe,GAAGd,KAAK,CAACe,QAAN,CAAeC,YAAf,CACvBL,GAAG,CAACM,OADmB,CAAxB;AAGAH,MAAAA,eAAe,EAAEd,KAAjB;AACAa,MAAAA,aAAa,CAAE,MAAF,EAAUP,eAAV,EAA2B,KAA3B,CAAb;AACA,KAZF;AAaC,IAAA,WAAW,EAAG;AAbf,IAND,CADD;AAwBA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { focus } from '@wordpress/dom';\nimport { useRef } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { close } from '@wordpress/icons';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\nconst PREFERENCE_NAME = 'isResuableBlocksrRenameHintVisible';\n\nexport default function ReusableBlocksRenameHint() {\n\tconst isReusableBlocksRenameHint = useSelect(\n\t\t( select ) =>\n\t\t\tselect( preferencesStore ).get( 'core', PREFERENCE_NAME ) ?? true,\n\t\t[]\n\t);\n\n\tconst ref = useRef();\n\n\tconst { set: setPreference } = useDispatch( preferencesStore );\n\tif ( ! isReusableBlocksRenameHint ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div ref={ ref } className=\"reusable-blocks-menu-items__rename-hint\">\n\t\t\t<div className=\"reusable-blocks-menu-items__rename-hint-content\">\n\t\t\t\t{ __(\n\t\t\t\t\t'Reusable blocks are now called patterns. A synced pattern will behave in exactly the same way as a reusable block.'\n\t\t\t\t) }\n\t\t\t</div>\n\t\t\t<Button\n\t\t\t\tclassName=\"reusable-blocks-menu-items__rename-hint-dismiss\"\n\t\t\t\ticon={ close }\n\t\t\t\ticonSize=\"16\"\n\t\t\t\tlabel={ __( 'Dismiss hint' ) }\n\t\t\t\tonClick={ () => {\n\t\t\t\t\t// Retain focus when dismissing the element.\n\t\t\t\t\tconst previousElement = focus.tabbable.findPrevious(\n\t\t\t\t\t\tref.current\n\t\t\t\t\t);\n\t\t\t\t\tpreviousElement?.focus();\n\t\t\t\t\tsetPreference( 'core', PREFERENCE_NAME, false );\n\t\t\t\t} }\n\t\t\t\tshowTooltip={ false }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n"]}
@@ -15,6 +15,7 @@ import BlockTypesList from '../block-types-list';
15
15
  import InserterPanel from './panel';
16
16
  import InserterNoResults from './no-results';
17
17
  import useBlockTypesState from './hooks/use-block-types-state';
18
+ import ReusableBlocksRenameHint from './reusable-block-rename-hint';
18
19
 
19
20
  function ReusableBlocksList({
20
21
  onHover,
@@ -59,7 +60,9 @@ export function ReusableBlocksTab({
59
60
  onInsert,
60
61
  onHover
61
62
  }) {
62
- return createElement(Fragment, null, createElement(ReusableBlocksList, {
63
+ return createElement(Fragment, null, createElement("div", {
64
+ className: "block-editor-inserter__hint"
65
+ }, createElement(ReusableBlocksRenameHint, null)), createElement(ReusableBlocksList, {
63
66
  onHover: onHover,
64
67
  onInsert: onInsert,
65
68
  rootClientId: rootClientId
@@ -71,7 +74,7 @@ export function ReusableBlocksTab({
71
74
  href: addQueryArgs('edit.php', {
72
75
  post_type: 'wp_block'
73
76
  })
74
- }, __('Manage custom patterns'))));
77
+ }, __('Manage my patterns'))));
75
78
  }
76
79
  export default ReusableBlocksTab;
77
80
  //# sourceMappingURL=reusable-blocks-tab.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/reusable-blocks-tab.js"],"names":["useMemo","__","addQueryArgs","Button","BlockTypesList","InserterPanel","InserterNoResults","useBlockTypesState","ReusableBlocksList","onHover","onInsert","rootClientId","items","onSelectItem","filteredItems","filter","category","length","ReusableBlocksTab","post_type"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,OAAT,QAAwB,oBAAxB;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,YAAT,QAA6B,gBAA7B;AACA,SAASC,MAAT,QAAuB,uBAAvB;AAEA;AACA;AACA;;AACA,OAAOC,cAAP,MAA2B,qBAA3B;AACA,OAAOC,aAAP,MAA0B,SAA1B;AACA,OAAOC,iBAAP,MAA8B,cAA9B;AACA,OAAOC,kBAAP,MAA+B,+BAA/B;;AAEA,SAASC,kBAAT,CAA6B;AAAEC,EAAAA,OAAF;AAAWC,EAAAA,QAAX;AAAqBC,EAAAA;AAArB,CAA7B,EAAmE;AAClE,QAAM,CAAEC,KAAF,IAAaC,YAAb,IAA8BN,kBAAkB,CACrDI,YADqD,EAErDD,QAFqD,CAAtD;AAKA,QAAMI,aAAa,GAAGd,OAAO,CAAE,MAAM;AACpC,WAAOY,KAAK,CAACG,MAAN,CAAc,CAAE;AAAEC,MAAAA;AAAF,KAAF,KAAoBA,QAAQ,KAAK,UAA/C,CAAP;AACA,GAF4B,EAE1B,CAAEJ,KAAF,CAF0B,CAA7B;;AAIA,MAAKE,aAAa,CAACG,MAAd,KAAyB,CAA9B,EAAkC;AACjC,WAAO,cAAC,iBAAD,OAAP;AACA;;AAED,SACC,cAAC,aAAD;AAAe,IAAA,KAAK,EAAGhB,EAAE,CAAE,iBAAF;AAAzB,KACC,cAAC,cAAD;AACC,IAAA,KAAK,EAAGa,aADT;AAEC,IAAA,QAAQ,EAAGD,YAFZ;AAGC,IAAA,OAAO,EAAGJ,OAHX;AAIC,IAAA,KAAK,EAAGR,EAAE,CAAE,iBAAF;AAJX,IADD,CADD;AAUA,C,CAED;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,OAAO,SAASiB,iBAAT,CAA4B;AAAEP,EAAAA,YAAF;AAAgBD,EAAAA,QAAhB;AAA0BD,EAAAA;AAA1B,CAA5B,EAAkE;AACxE,SACC,8BACC,cAAC,kBAAD;AACC,IAAA,OAAO,EAAGA,OADX;AAEC,IAAA,QAAQ,EAAGC,QAFZ;AAGC,IAAA,YAAY,EAAGC;AAHhB,IADD,EAMC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC,cAAC,MAAD;AACC,IAAA,SAAS,EAAC,+CADX;AAEC,IAAA,OAAO,EAAC,WAFT;AAGC,IAAA,IAAI,EAAGT,YAAY,CAAE,UAAF,EAAc;AAChCiB,MAAAA,SAAS,EAAE;AADqB,KAAd;AAHpB,KAOGlB,EAAE,CAAE,wBAAF,CAPL,CADD,CAND,CADD;AAoBA;AAED,eAAeiB,iBAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { addQueryArgs } from '@wordpress/url';\nimport { Button } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport BlockTypesList from '../block-types-list';\nimport InserterPanel from './panel';\nimport InserterNoResults from './no-results';\nimport useBlockTypesState from './hooks/use-block-types-state';\n\nfunction ReusableBlocksList( { onHover, onInsert, rootClientId } ) {\n\tconst [ items, , , onSelectItem ] = useBlockTypesState(\n\t\trootClientId,\n\t\tonInsert\n\t);\n\n\tconst filteredItems = useMemo( () => {\n\t\treturn items.filter( ( { category } ) => category === 'reusable' );\n\t}, [ items ] );\n\n\tif ( filteredItems.length === 0 ) {\n\t\treturn <InserterNoResults />;\n\t}\n\n\treturn (\n\t\t<InserterPanel title={ __( 'Synced patterns' ) }>\n\t\t\t<BlockTypesList\n\t\t\t\titems={ filteredItems }\n\t\t\t\tonSelect={ onSelectItem }\n\t\t\t\tonHover={ onHover }\n\t\t\t\tlabel={ __( 'Synced patterns' ) }\n\t\t\t/>\n\t\t</InserterPanel>\n\t);\n}\n\n// The unwrapped component is only exported for use by unit tests.\n/**\n * List of reusable blocks shown in the \"Reusable\" tab of the inserter.\n *\n * @param {Object} props Component props.\n * @param {?string} props.rootClientId Client id of block to insert into.\n * @param {Function} props.onInsert Callback to run when item is inserted.\n * @param {Function} props.onHover Callback to run when item is hovered.\n *\n * @return {WPComponent} The component.\n */\nexport function ReusableBlocksTab( { rootClientId, onInsert, onHover } ) {\n\treturn (\n\t\t<>\n\t\t\t<ReusableBlocksList\n\t\t\t\tonHover={ onHover }\n\t\t\t\tonInsert={ onInsert }\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t/>\n\t\t\t<div className=\"block-editor-inserter__manage-reusable-blocks-container\">\n\t\t\t\t<Button\n\t\t\t\t\tclassName=\"block-editor-inserter__manage-reusable-blocks\"\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\thref={ addQueryArgs( 'edit.php', {\n\t\t\t\t\t\tpost_type: 'wp_block',\n\t\t\t\t\t} ) }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Manage custom patterns' ) }\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default ReusableBlocksTab;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/reusable-blocks-tab.js"],"names":["useMemo","__","addQueryArgs","Button","BlockTypesList","InserterPanel","InserterNoResults","useBlockTypesState","ReusableBlocksRenameHint","ReusableBlocksList","onHover","onInsert","rootClientId","items","onSelectItem","filteredItems","filter","category","length","ReusableBlocksTab","post_type"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,OAAT,QAAwB,oBAAxB;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,YAAT,QAA6B,gBAA7B;AACA,SAASC,MAAT,QAAuB,uBAAvB;AAEA;AACA;AACA;;AACA,OAAOC,cAAP,MAA2B,qBAA3B;AACA,OAAOC,aAAP,MAA0B,SAA1B;AACA,OAAOC,iBAAP,MAA8B,cAA9B;AACA,OAAOC,kBAAP,MAA+B,+BAA/B;AACA,OAAOC,wBAAP,MAAqC,8BAArC;;AAEA,SAASC,kBAAT,CAA6B;AAAEC,EAAAA,OAAF;AAAWC,EAAAA,QAAX;AAAqBC,EAAAA;AAArB,CAA7B,EAAmE;AAClE,QAAM,CAAEC,KAAF,IAAaC,YAAb,IAA8BP,kBAAkB,CACrDK,YADqD,EAErDD,QAFqD,CAAtD;AAKA,QAAMI,aAAa,GAAGf,OAAO,CAAE,MAAM;AACpC,WAAOa,KAAK,CAACG,MAAN,CAAc,CAAE;AAAEC,MAAAA;AAAF,KAAF,KAAoBA,QAAQ,KAAK,UAA/C,CAAP;AACA,GAF4B,EAE1B,CAAEJ,KAAF,CAF0B,CAA7B;;AAIA,MAAKE,aAAa,CAACG,MAAd,KAAyB,CAA9B,EAAkC;AACjC,WAAO,cAAC,iBAAD,OAAP;AACA;;AAED,SACC,cAAC,aAAD;AAAe,IAAA,KAAK,EAAGjB,EAAE,CAAE,iBAAF;AAAzB,KACC,cAAC,cAAD;AACC,IAAA,KAAK,EAAGc,aADT;AAEC,IAAA,QAAQ,EAAGD,YAFZ;AAGC,IAAA,OAAO,EAAGJ,OAHX;AAIC,IAAA,KAAK,EAAGT,EAAE,CAAE,iBAAF;AAJX,IADD,CADD;AAUA,C,CAED;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,OAAO,SAASkB,iBAAT,CAA4B;AAAEP,EAAAA,YAAF;AAAgBD,EAAAA,QAAhB;AAA0BD,EAAAA;AAA1B,CAA5B,EAAkE;AACxE,SACC,8BACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC,cAAC,wBAAD,OADD,CADD,EAIC,cAAC,kBAAD;AACC,IAAA,OAAO,EAAGA,OADX;AAEC,IAAA,QAAQ,EAAGC,QAFZ;AAGC,IAAA,YAAY,EAAGC;AAHhB,IAJD,EASC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC,cAAC,MAAD;AACC,IAAA,SAAS,EAAC,+CADX;AAEC,IAAA,OAAO,EAAC,WAFT;AAGC,IAAA,IAAI,EAAGV,YAAY,CAAE,UAAF,EAAc;AAChCkB,MAAAA,SAAS,EAAE;AADqB,KAAd;AAHpB,KAOGnB,EAAE,CAAE,oBAAF,CAPL,CADD,CATD,CADD;AAuBA;AAED,eAAekB,iBAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { addQueryArgs } from '@wordpress/url';\nimport { Button } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport BlockTypesList from '../block-types-list';\nimport InserterPanel from './panel';\nimport InserterNoResults from './no-results';\nimport useBlockTypesState from './hooks/use-block-types-state';\nimport ReusableBlocksRenameHint from './reusable-block-rename-hint';\n\nfunction ReusableBlocksList( { onHover, onInsert, rootClientId } ) {\n\tconst [ items, , , onSelectItem ] = useBlockTypesState(\n\t\trootClientId,\n\t\tonInsert\n\t);\n\n\tconst filteredItems = useMemo( () => {\n\t\treturn items.filter( ( { category } ) => category === 'reusable' );\n\t}, [ items ] );\n\n\tif ( filteredItems.length === 0 ) {\n\t\treturn <InserterNoResults />;\n\t}\n\n\treturn (\n\t\t<InserterPanel title={ __( 'Synced patterns' ) }>\n\t\t\t<BlockTypesList\n\t\t\t\titems={ filteredItems }\n\t\t\t\tonSelect={ onSelectItem }\n\t\t\t\tonHover={ onHover }\n\t\t\t\tlabel={ __( 'Synced patterns' ) }\n\t\t\t/>\n\t\t</InserterPanel>\n\t);\n}\n\n// The unwrapped component is only exported for use by unit tests.\n/**\n * List of reusable blocks shown in the \"Reusable\" tab of the inserter.\n *\n * @param {Object} props Component props.\n * @param {?string} props.rootClientId Client id of block to insert into.\n * @param {Function} props.onInsert Callback to run when item is inserted.\n * @param {Function} props.onHover Callback to run when item is hovered.\n *\n * @return {WPComponent} The component.\n */\nexport function ReusableBlocksTab( { rootClientId, onInsert, onHover } ) {\n\treturn (\n\t\t<>\n\t\t\t<div className=\"block-editor-inserter__hint\">\n\t\t\t\t<ReusableBlocksRenameHint />\n\t\t\t</div>\n\t\t\t<ReusableBlocksList\n\t\t\t\tonHover={ onHover }\n\t\t\t\tonInsert={ onInsert }\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t/>\n\t\t\t<div className=\"block-editor-inserter__manage-reusable-blocks-container\">\n\t\t\t\t<Button\n\t\t\t\t\tclassName=\"block-editor-inserter__manage-reusable-blocks\"\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\thref={ addQueryArgs( 'edit.php', {\n\t\t\t\t\t\tpost_type: 'wp_block',\n\t\t\t\t\t} ) }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Manage my patterns' ) }\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default ReusableBlocksTab;\n"]}
@@ -16,12 +16,12 @@ export default function useListViewClientIds({
16
16
  const {
17
17
  getDraggedBlockClientIds,
18
18
  getSelectedBlockClientIds,
19
- getListViewClientIdsTree
19
+ getEnabledClientIdsTree
20
20
  } = unlock(select(blockEditorStore));
21
21
  return {
22
22
  selectedClientIds: getSelectedBlockClientIds(),
23
23
  draggedClientIds: getDraggedBlockClientIds(),
24
- clientIdsTree: blocks !== null && blocks !== void 0 ? blocks : getListViewClientIdsTree(rootClientId)
24
+ clientIdsTree: blocks !== null && blocks !== void 0 ? blocks : getEnabledClientIdsTree(rootClientId)
25
25
  };
26
26
  }, [blocks, rootClientId]);
27
27
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/list-view/use-list-view-client-ids.js"],"names":["useSelect","store","blockEditorStore","unlock","useListViewClientIds","blocks","rootClientId","select","getDraggedBlockClientIds","getSelectedBlockClientIds","getListViewClientIdsTree","selectedClientIds","draggedClientIds","clientIdsTree"],"mappings":"AAAA;AACA;AACA;AAEA,SAASA,SAAT,QAA0B,iBAA1B;AAEA;AACA;AACA;;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AACA,SAASC,MAAT,QAAuB,mBAAvB;AAEA,eAAe,SAASC,oBAAT,CAA+B;AAAEC,EAAAA,MAAF;AAAUC,EAAAA;AAAV,CAA/B,EAA0D;AACxE,SAAON,SAAS,CACbO,MAAF,IAAc;AACb,UAAM;AACLC,MAAAA,wBADK;AAELC,MAAAA,yBAFK;AAGLC,MAAAA;AAHK,QAIFP,MAAM,CAAEI,MAAM,CAAEL,gBAAF,CAAR,CAJV;AAMA,WAAO;AACNS,MAAAA,iBAAiB,EAAEF,yBAAyB,EADtC;AAENG,MAAAA,gBAAgB,EAAEJ,wBAAwB,EAFpC;AAGNK,MAAAA,aAAa,EACZR,MADY,aACZA,MADY,cACZA,MADY,GACFK,wBAAwB,CAAEJ,YAAF;AAJ7B,KAAP;AAMA,GAdc,EAef,CAAED,MAAF,EAAUC,YAAV,CAfe,CAAhB;AAiBA","sourcesContent":["/**\n * WordPress dependencies\n */\n\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nexport default function useListViewClientIds( { blocks, rootClientId } ) {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetDraggedBlockClientIds,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\tgetListViewClientIdsTree,\n\t\t\t} = unlock( select( blockEditorStore ) );\n\n\t\t\treturn {\n\t\t\t\tselectedClientIds: getSelectedBlockClientIds(),\n\t\t\t\tdraggedClientIds: getDraggedBlockClientIds(),\n\t\t\t\tclientIdsTree:\n\t\t\t\t\tblocks ?? getListViewClientIdsTree( rootClientId ),\n\t\t\t};\n\t\t},\n\t\t[ blocks, rootClientId ]\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/list-view/use-list-view-client-ids.js"],"names":["useSelect","store","blockEditorStore","unlock","useListViewClientIds","blocks","rootClientId","select","getDraggedBlockClientIds","getSelectedBlockClientIds","getEnabledClientIdsTree","selectedClientIds","draggedClientIds","clientIdsTree"],"mappings":"AAAA;AACA;AACA;AAEA,SAASA,SAAT,QAA0B,iBAA1B;AAEA;AACA;AACA;;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AACA,SAASC,MAAT,QAAuB,mBAAvB;AAEA,eAAe,SAASC,oBAAT,CAA+B;AAAEC,EAAAA,MAAF;AAAUC,EAAAA;AAAV,CAA/B,EAA0D;AACxE,SAAON,SAAS,CACbO,MAAF,IAAc;AACb,UAAM;AACLC,MAAAA,wBADK;AAELC,MAAAA,yBAFK;AAGLC,MAAAA;AAHK,QAIFP,MAAM,CAAEI,MAAM,CAAEL,gBAAF,CAAR,CAJV;AAMA,WAAO;AACNS,MAAAA,iBAAiB,EAAEF,yBAAyB,EADtC;AAENG,MAAAA,gBAAgB,EAAEJ,wBAAwB,EAFpC;AAGNK,MAAAA,aAAa,EACZR,MADY,aACZA,MADY,cACZA,MADY,GACFK,uBAAuB,CAAEJ,YAAF;AAJ5B,KAAP;AAMA,GAdc,EAef,CAAED,MAAF,EAAUC,YAAV,CAfe,CAAhB;AAiBA","sourcesContent":["/**\n * WordPress dependencies\n */\n\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nexport default function useListViewClientIds( { blocks, rootClientId } ) {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetDraggedBlockClientIds,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\tgetEnabledClientIdsTree,\n\t\t\t} = unlock( select( blockEditorStore ) );\n\n\t\t\treturn {\n\t\t\t\tselectedClientIds: getSelectedBlockClientIds(),\n\t\t\t\tdraggedClientIds: getDraggedBlockClientIds(),\n\t\t\t\tclientIdsTree:\n\t\t\t\t\tblocks ?? getEnabledClientIdsTree( rootClientId ),\n\t\t\t};\n\t\t},\n\t\t[ blocks, rootClientId ]\n\t);\n}\n"]}