@plaudit/gutenberg-api-extensions 2.79.0 → 2.80.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (489) hide show
  1. package/dist/blocks/MoveError.js +10 -0
  2. package/dist/blocks/MoveError.js.map +1 -0
  3. package/{build → dist}/blocks/PathError.js +7 -3
  4. package/dist/blocks/PathError.js.map +1 -0
  5. package/{build → dist}/blocks/SNPFlexibleItemsListComponent.d.ts +1 -1
  6. package/dist/blocks/SNPFlexibleItemsListComponent.js +18 -0
  7. package/dist/blocks/SNPFlexibleItemsListComponent.js.map +1 -0
  8. package/{build → dist}/blocks/SNPGroupComponent.d.ts +2 -2
  9. package/dist/blocks/SNPGroupComponent.js +20 -0
  10. package/dist/blocks/SNPGroupComponent.js.map +1 -0
  11. package/{build → dist}/blocks/SNPListComponent.d.ts +1 -1
  12. package/dist/blocks/SNPListComponent.js +18 -0
  13. package/dist/blocks/SNPListComponent.js.map +1 -0
  14. package/dist/blocks/SNPTreeContext.js +14 -0
  15. package/dist/blocks/SNPTreeContext.js.map +1 -0
  16. package/dist/blocks/basic-custom-block-bindings-support.js +157 -0
  17. package/dist/blocks/basic-custom-block-bindings-support.js.map +1 -0
  18. package/dist/blocks/common-native-property-constructors.d.ts +13 -0
  19. package/{build → dist}/blocks/common-native-property-constructors.js +105 -151
  20. package/dist/blocks/common-native-property-constructors.js.map +1 -0
  21. package/{build → dist}/blocks/conditions.js +12 -7
  22. package/dist/blocks/conditions.js.map +1 -0
  23. package/dist/blocks/csnp-api.d.ts +166 -0
  24. package/dist/blocks/csnp-api.js +74 -0
  25. package/dist/blocks/csnp-api.js.map +1 -0
  26. package/{build → dist}/blocks/data-controller-manager.js +4 -1
  27. package/dist/blocks/data-controller-manager.js.map +1 -0
  28. package/{build → dist}/blocks/data-controller.js +74 -70
  29. package/dist/blocks/data-controller.js.map +1 -0
  30. package/{build → dist}/blocks/hooks/built-in-suspendable-option-protocols/select.js +14 -11
  31. package/dist/blocks/hooks/built-in-suspendable-option-protocols/select.js.map +1 -0
  32. package/{build → dist}/blocks/hooks/built-in-suspendable-option-protocols/settings.js +9 -6
  33. package/dist/blocks/hooks/built-in-suspendable-option-protocols/settings.js.map +1 -0
  34. package/{build → dist}/blocks/hooks/useSuspendableOptions.d.ts +1 -1
  35. package/{build → dist}/blocks/hooks/useSuspendableOptions.js +30 -23
  36. package/dist/blocks/hooks/useSuspendableOptions.js.map +1 -0
  37. package/dist/blocks/index.js +35 -0
  38. package/dist/blocks/index.js.map +1 -0
  39. package/{build → dist}/blocks/layered-styles-api.d.ts +2 -2
  40. package/{build → dist}/blocks/layered-styles-api.js +10 -6
  41. package/dist/blocks/layered-styles-api.js.map +1 -0
  42. package/{build → dist}/blocks/layered-styles-impl.js +14 -9
  43. package/dist/blocks/layered-styles-impl.js.map +1 -0
  44. package/{build → dist}/blocks/layout/LaidOutProperty.d.ts +1 -2
  45. package/dist/blocks/layout/LaidOutProperty.js +47 -0
  46. package/dist/blocks/layout/LaidOutProperty.js.map +1 -0
  47. package/dist/blocks/layout/LaidOutPropertyRow.js +15 -0
  48. package/dist/blocks/layout/LaidOutPropertyRow.js.map +1 -0
  49. package/{build → dist}/blocks/layout/NodeContext.d.ts +2 -2
  50. package/dist/blocks/layout/NodeContext.js +44 -0
  51. package/dist/blocks/layout/NodeContext.js.map +1 -0
  52. package/dist/blocks/layout/PanelRoot.js +29 -0
  53. package/dist/blocks/layout/PanelRoot.js.map +1 -0
  54. package/{build → dist}/blocks/layout/TabsRoot.js +16 -13
  55. package/dist/blocks/layout/TabsRoot.js.map +1 -0
  56. package/dist/blocks/layout/ToolsPanelContext.js +23 -0
  57. package/dist/blocks/layout/ToolsPanelContext.js.map +1 -0
  58. package/dist/blocks/shared-exportable-types.js +3 -0
  59. package/dist/blocks/shared-internal-types.js +3 -0
  60. package/{build → dist}/blocks/simple-block.d.ts +1 -1
  61. package/dist/blocks/simple-block.js +45 -0
  62. package/dist/blocks/simple-block.js.map +1 -0
  63. package/{build → dist}/blocks/simple-native-property-api.d.ts +1 -1
  64. package/{build → dist}/blocks/simple-native-property-api.js +16 -10
  65. package/dist/blocks/simple-native-property-api.js.map +1 -0
  66. package/{build → dist}/blocks/simple-native-property-impl.js +60 -55
  67. package/dist/blocks/simple-native-property-impl.js.map +1 -0
  68. package/{build → dist}/blocks/simple-native-property-internal-shared.js +6 -2
  69. package/dist/blocks/simple-native-property-internal-shared.js.map +1 -0
  70. package/{build → dist}/blocks/snp-api.d.ts +1 -0
  71. package/dist/blocks/snp-api.js +7 -0
  72. package/dist/blocks/snp-api.js.map +1 -0
  73. package/{build → dist}/blocks/snp-data-store.js +8 -4
  74. package/dist/blocks/snp-data-store.js.map +1 -0
  75. package/{build → dist}/blocks/utilities.d.ts +1 -1
  76. package/dist/blocks/utilities.js +79 -0
  77. package/dist/blocks/utilities.js.map +1 -0
  78. package/{build → dist}/controls/AsynchronousFormTokenField.d.ts +1 -1
  79. package/dist/controls/AsynchronousFormTokenField.js +36 -0
  80. package/dist/controls/AsynchronousFormTokenField.js.map +1 -0
  81. package/{build → dist}/controls/BaseSortableItemsControl.d.ts +3 -3
  82. package/dist/controls/BaseSortableItemsControl.js +25 -0
  83. package/dist/controls/BaseSortableItemsControl.js.map +1 -0
  84. package/{build → dist}/controls/ExtendedFormTokenField.d.ts +3 -3
  85. package/dist/controls/ExtendedFormTokenField.js +64 -0
  86. package/dist/controls/ExtendedFormTokenField.js.map +1 -0
  87. package/dist/controls/ExtendedPostPicker.js +28 -0
  88. package/dist/controls/ExtendedPostPicker.js.map +1 -0
  89. package/dist/controls/ExtendedRadioControl.d.ts +12 -0
  90. package/dist/controls/ExtendedRadioControl.js +33 -0
  91. package/dist/controls/ExtendedRadioControl.js.map +1 -0
  92. package/{build → dist}/controls/ExtendedTaxonomyPicker.d.ts +1 -1
  93. package/dist/controls/ExtendedTaxonomyPicker.js +71 -0
  94. package/dist/controls/ExtendedTaxonomyPicker.js.map +1 -0
  95. package/{build → dist}/controls/ExtendedTermPicker.d.ts +1 -1
  96. package/dist/controls/ExtendedTermPicker.js +33 -0
  97. package/dist/controls/ExtendedTermPicker.js.map +1 -0
  98. package/dist/controls/ExtendedTextareaControl.d.ts +12 -0
  99. package/{build → dist}/controls/ExtendedTextareaControl.js +15 -12
  100. package/dist/controls/ExtendedTextareaControl.js.map +1 -0
  101. package/dist/controls/ExtendedUserPicker.js +28 -0
  102. package/dist/controls/ExtendedUserPicker.js.map +1 -0
  103. package/{build → dist}/controls/FullSizeToggleControl.d.ts +6 -4
  104. package/dist/controls/FullSizeToggleControl.js +110 -0
  105. package/dist/controls/FullSizeToggleControl.js.map +1 -0
  106. package/{build → dist}/controls/ImageControl.d.ts +1 -1
  107. package/dist/controls/ImageControl.js +81 -0
  108. package/dist/controls/ImageControl.js.map +1 -0
  109. package/{build → dist}/controls/InspectorPanel.d.ts +4 -3
  110. package/dist/controls/InspectorPanel.js +29 -0
  111. package/dist/controls/InspectorPanel.js.map +1 -0
  112. package/{build → dist}/controls/LazySuggestionsComboboxControl.d.ts +5 -1
  113. package/dist/controls/LazySuggestionsComboboxControl.js +32 -0
  114. package/dist/controls/LazySuggestionsComboboxControl.js.map +1 -0
  115. package/{build → dist}/controls/MultiSelectControl.d.ts +1 -1
  116. package/dist/controls/MultiSelectControl.js +33 -0
  117. package/dist/controls/MultiSelectControl.js.map +1 -0
  118. package/{build → dist}/controls/PickOne.d.ts +1 -1
  119. package/dist/controls/PickOne.js +54 -0
  120. package/dist/controls/PickOne.js.map +1 -0
  121. package/{build → dist}/controls/PromisableComponent.d.ts +2 -2
  122. package/{build → dist}/controls/PromisableComponent.js +14 -11
  123. package/dist/controls/PromisableComponent.js.map +1 -0
  124. package/{build → dist}/controls/ProperLinkControl.d.ts +1 -1
  125. package/dist/controls/ProperLinkControl.js +59 -0
  126. package/dist/controls/ProperLinkControl.js.map +1 -0
  127. package/dist/controls/SimpleToggle.js +11 -0
  128. package/dist/controls/SimpleToggle.js.map +1 -0
  129. package/dist/controls/SortableFlexibleItemsControl.js +18 -0
  130. package/dist/controls/SortableFlexibleItemsControl.js.map +1 -0
  131. package/dist/controls/SortableItemsControl.js +15 -0
  132. package/dist/controls/SortableItemsControl.js.map +1 -0
  133. package/{build → dist}/controls/basicNumericallyIdedItemPicker.d.ts +1 -1
  134. package/dist/controls/basicNumericallyIdedItemPicker.js +37 -0
  135. package/dist/controls/basicNumericallyIdedItemPicker.js.map +1 -0
  136. package/{build → dist}/controls/hooks/useImprovedTokenManager.d.ts +7 -5
  137. package/{build → dist}/controls/hooks/useImprovedTokenManager.js +21 -15
  138. package/dist/controls/hooks/useImprovedTokenManager.js.map +1 -0
  139. package/{build → dist}/controls/hooks/useMultiSingleConversionLayer.d.ts +1 -1
  140. package/dist/controls/hooks/useMultiSingleConversionLayer.js +14 -0
  141. package/dist/controls/hooks/useMultiSingleConversionLayer.js.map +1 -0
  142. package/dist/controls/hooks/useNonRenderingCounter.js +9 -0
  143. package/dist/controls/hooks/useNonRenderingCounter.js.map +1 -0
  144. package/{build → dist}/controls/hooks/useOutputMemoizingFilter.js +7 -4
  145. package/dist/controls/hooks/useOutputMemoizingFilter.js.map +1 -0
  146. package/{build → dist}/controls/hooks/useSortableItemsModel.js +14 -11
  147. package/dist/controls/hooks/useSortableItemsModel.js.map +1 -0
  148. package/{build → dist}/controls/hooks/useSuggestions.js +16 -13
  149. package/dist/controls/hooks/useSuggestions.js.map +1 -0
  150. package/{build → dist}/controls/hooks/useTokenManager.d.ts +5 -3
  151. package/{build → dist}/controls/hooks/useTokenManager.js +37 -34
  152. package/dist/controls/hooks/useTokenManager.js.map +1 -0
  153. package/dist/controls/index.js +41 -0
  154. package/dist/controls/index.js.map +1 -0
  155. package/{build → dist}/controls/shared.js +18 -8
  156. package/dist/controls/shared.js.map +1 -0
  157. package/dist/controls/types.js +3 -0
  158. package/dist/editor/post-featured-image.js +125 -0
  159. package/dist/editor/post-featured-image.js.map +1 -0
  160. package/dist/editor/simple-gutenberg-endpoints-api.js +26 -0
  161. package/dist/editor/simple-gutenberg-endpoints-api.js.map +1 -0
  162. package/{build → dist}/editor/simple-gutenberg-endpoints-impl.js +24 -17
  163. package/dist/editor/simple-gutenberg-endpoints-impl.js.map +1 -0
  164. package/dist/index.js +39 -0
  165. package/dist/index.js.map +1 -0
  166. package/dist/lib/gutenberg-api-extensions-state/custom-block-bindings-support-logic.js +27 -0
  167. package/dist/lib/gutenberg-api-extensions-state/custom-block-bindings-support-logic.js.map +1 -0
  168. package/{build → dist}/lib/gutenberg-api-extensions-state/general-logic.js +12 -8
  169. package/dist/lib/gutenberg-api-extensions-state/general-logic.js.map +1 -0
  170. package/{build → dist}/lib/gutenberg-api-extensions-state/layered-block-styles-logic.js +10 -6
  171. package/dist/lib/gutenberg-api-extensions-state/layered-block-styles-logic.js.map +1 -0
  172. package/{build → dist}/lib/gutenberg-api-extensions-state/snp-logic.js +33 -26
  173. package/dist/lib/gutenberg-api-extensions-state/snp-logic.js.map +1 -0
  174. package/{build → dist}/lib/gutenberg-api-extensions-state.d.ts +2 -2
  175. package/dist/lib/gutenberg-api-extensions-state.js +52 -0
  176. package/dist/lib/gutenberg-api-extensions-state.js.map +1 -0
  177. package/{build → dist}/lib/helpers.d.ts +3 -3
  178. package/{build → dist}/lib/helpers.js +13 -6
  179. package/dist/lib/helpers.js.map +1 -0
  180. package/dist/lib/plaudit-icons/column-1.js +6 -0
  181. package/dist/lib/plaudit-icons/column-1.js.map +1 -0
  182. package/dist/lib/plaudit-icons/column-2.js +6 -0
  183. package/dist/lib/plaudit-icons/column-2.js.map +1 -0
  184. package/dist/lib/plaudit-icons/column-3.js +6 -0
  185. package/dist/lib/plaudit-icons/column-3.js.map +1 -0
  186. package/dist/lib/plaudit-icons/placement-center.js +6 -0
  187. package/dist/lib/plaudit-icons/placement-center.js.map +1 -0
  188. package/dist/lib/plaudit-icons/placement-end.js +6 -0
  189. package/dist/lib/plaudit-icons/placement-end.js.map +1 -0
  190. package/dist/lib/plaudit-icons/placement-start.js +6 -0
  191. package/dist/lib/plaudit-icons/placement-start.js.map +1 -0
  192. package/dist/lib/plaudit-icons/placement-stretch.js +6 -0
  193. package/dist/lib/plaudit-icons/placement-stretch.js.map +1 -0
  194. package/dist/lib/plaudit-icons/plaudit-icon.js +6 -0
  195. package/dist/lib/plaudit-icons/plaudit-icon.js.map +1 -0
  196. package/dist/lib/plaudit-icons/reusable-block-marker.js +6 -0
  197. package/{build → dist}/lib/plaudit-icons/reusable-block-marker.js.map +1 -1
  198. package/dist/lib/plaudit-icons.js +29 -0
  199. package/dist/lib/plaudit-icons.js.map +1 -0
  200. package/{build → dist}/lib/suspense/promise-handlers.js +16 -7
  201. package/dist/lib/suspense/promise-handlers.js.map +1 -0
  202. package/{build → dist}/lib/suspense.d.ts +2 -2
  203. package/dist/lib/suspense.js +31 -0
  204. package/dist/lib/suspense.js.map +1 -0
  205. package/{build → dist}/lib/useful-types.d.ts +4 -1
  206. package/dist/lib/useful-types.js +11 -0
  207. package/dist/lib/useful-types.js.map +1 -0
  208. package/package.json +22 -30
  209. package/src/blocks/MoveError.ts +7 -0
  210. package/src/blocks/PathError.ts +18 -0
  211. package/src/blocks/SNPFlexibleItemsListComponent.tsx +30 -0
  212. package/src/blocks/SNPGroupComponent.tsx +38 -0
  213. package/src/blocks/SNPListComponent.tsx +25 -0
  214. package/src/blocks/SNPTreeContext.tsx +13 -0
  215. package/src/blocks/basic-custom-block-bindings-support.tsx +243 -0
  216. package/src/blocks/common-native-property-constructors.tsx +877 -0
  217. package/src/blocks/conditions.ts +260 -0
  218. package/src/blocks/csnp-api.ts +214 -0
  219. package/src/blocks/data-controller-manager.ts +50 -0
  220. package/src/blocks/data-controller.ts +736 -0
  221. package/src/blocks/hooks/built-in-suspendable-option-protocols/select.ts +51 -0
  222. package/src/blocks/hooks/built-in-suspendable-option-protocols/settings.ts +70 -0
  223. package/src/blocks/hooks/useSuspendableOptions.ts +123 -0
  224. package/src/blocks/index.ts +20 -0
  225. package/src/blocks/layered-styles-api.ts +142 -0
  226. package/src/blocks/layered-styles-impl.ts +94 -0
  227. package/src/blocks/layout/LaidOutProperty.tsx +72 -0
  228. package/src/blocks/layout/LaidOutPropertyRow.tsx +22 -0
  229. package/src/blocks/layout/NodeContext.tsx +54 -0
  230. package/src/blocks/layout/PanelRoot.tsx +33 -0
  231. package/src/blocks/layout/TabsRoot.tsx +56 -0
  232. package/src/blocks/layout/ToolsPanelContext.tsx +22 -0
  233. package/src/blocks/shared-exportable-types.ts +6 -0
  234. package/src/blocks/shared-internal-types.ts +18 -0
  235. package/src/blocks/simple-block.tsx +74 -0
  236. package/src/blocks/simple-native-property-api.ts +170 -0
  237. package/src/blocks/simple-native-property-impl.tsx +329 -0
  238. package/src/blocks/simple-native-property-internal-shared.ts +46 -0
  239. package/src/blocks/snp-api.ts +5 -0
  240. package/src/blocks/snp-data-store.ts +66 -0
  241. package/src/blocks/utilities.ts +80 -0
  242. package/src/controls/AsynchronousFormTokenField.tsx +85 -0
  243. package/src/controls/BaseSortableItemsControl.tsx +84 -0
  244. package/src/controls/ExtendedFormTokenField.tsx +121 -0
  245. package/src/controls/ExtendedPostPicker.ts +57 -0
  246. package/src/controls/ExtendedRadioControl.tsx +107 -0
  247. package/src/controls/ExtendedTaxonomyPicker.tsx +100 -0
  248. package/src/controls/ExtendedTermPicker.tsx +62 -0
  249. package/src/controls/ExtendedTextareaControl.tsx +65 -0
  250. package/src/controls/ExtendedUserPicker.ts +56 -0
  251. package/src/controls/FullSizeToggleControl.tsx +94 -0
  252. package/src/controls/ImageControl.tsx +143 -0
  253. package/src/controls/InspectorPanel.tsx +37 -0
  254. package/src/controls/LazySuggestionsComboboxControl.tsx +62 -0
  255. package/src/controls/MultiSelectControl.tsx +59 -0
  256. package/src/controls/PickOne.tsx +84 -0
  257. package/src/controls/PromisableComponent.tsx +56 -0
  258. package/src/controls/ProperLinkControl.tsx +93 -0
  259. package/src/controls/SimpleToggle.tsx +9 -0
  260. package/src/controls/SortableFlexibleItemsControl.tsx +35 -0
  261. package/src/controls/SortableItemsControl.tsx +18 -0
  262. package/src/controls/basicNumericallyIdedItemPicker.tsx +76 -0
  263. package/src/controls/hooks/useImprovedTokenManager.ts +157 -0
  264. package/src/controls/hooks/useMultiSingleConversionLayer.ts +17 -0
  265. package/src/controls/hooks/useNonRenderingCounter.ts +6 -0
  266. package/src/controls/hooks/useOutputMemoizingFilter.ts +16 -0
  267. package/src/controls/hooks/useSortableItemsModel.ts +196 -0
  268. package/src/controls/hooks/useSuggestions.ts +91 -0
  269. package/src/controls/hooks/useTokenManager.ts +177 -0
  270. package/{build/controls/index.js → src/controls/index.ts} +3 -2
  271. package/src/controls/shared.ts +50 -0
  272. package/src/controls/types.ts +18 -0
  273. package/src/editor/post-featured-image.tsx +161 -0
  274. package/src/editor/simple-gutenberg-endpoints-api.ts +31 -0
  275. package/src/editor/simple-gutenberg-endpoints-impl.ts +119 -0
  276. package/src/index.ts +32 -0
  277. package/src/lib/gutenberg-api-extensions-state/custom-block-bindings-support-logic.ts +34 -0
  278. package/src/lib/gutenberg-api-extensions-state/general-logic.ts +41 -0
  279. package/src/lib/gutenberg-api-extensions-state/layered-block-styles-logic.ts +42 -0
  280. package/src/lib/gutenberg-api-extensions-state/snp-logic.ts +240 -0
  281. package/src/lib/gutenberg-api-extensions-state.ts +69 -0
  282. package/src/lib/helpers.ts +114 -0
  283. package/src/lib/plaudit-icons/column-1.tsx +6 -0
  284. package/src/lib/plaudit-icons/column-2.tsx +6 -0
  285. package/src/lib/plaudit-icons/column-3.tsx +6 -0
  286. package/src/lib/plaudit-icons/placement-center.tsx +3 -0
  287. package/src/lib/plaudit-icons/placement-end.tsx +3 -0
  288. package/src/lib/plaudit-icons/placement-start.tsx +3 -0
  289. package/src/lib/plaudit-icons/placement-stretch.tsx +3 -0
  290. package/src/lib/plaudit-icons/plaudit-icon.tsx +4 -0
  291. package/src/lib/plaudit-icons/reusable-block-marker.tsx +3 -0
  292. package/{build/lib/plaudit-icons.js → src/lib/plaudit-icons.ts} +1 -1
  293. package/src/lib/suspense/promise-handlers.ts +72 -0
  294. package/src/lib/suspense.tsx +18 -0
  295. package/src/lib/useful-types.ts +65 -0
  296. package/build/blocks/MoveError.js +0 -6
  297. package/build/blocks/MoveError.js.map +0 -1
  298. package/build/blocks/PathError.js.map +0 -1
  299. package/build/blocks/SNPFlexibleItemsListComponent.js +0 -15
  300. package/build/blocks/SNPFlexibleItemsListComponent.js.map +0 -1
  301. package/build/blocks/SNPGroupComponent.js +0 -17
  302. package/build/blocks/SNPGroupComponent.js.map +0 -1
  303. package/build/blocks/SNPListComponent.js +0 -15
  304. package/build/blocks/SNPListComponent.js.map +0 -1
  305. package/build/blocks/SNPTreeContext.js +0 -10
  306. package/build/blocks/SNPTreeContext.js.map +0 -1
  307. package/build/blocks/basic-custom-block-bindings-support.js +0 -150
  308. package/build/blocks/basic-custom-block-bindings-support.js.map +0 -1
  309. package/build/blocks/common-native-property-constructors.d.ts +0 -208
  310. package/build/blocks/common-native-property-constructors.js.map +0 -1
  311. package/build/blocks/conditions.js.map +0 -1
  312. package/build/blocks/data-controller-manager.js.map +0 -1
  313. package/build/blocks/data-controller.js.map +0 -1
  314. package/build/blocks/hooks/built-in-suspendable-option-protocols/select.js.map +0 -1
  315. package/build/blocks/hooks/built-in-suspendable-option-protocols/settings.js.map +0 -1
  316. package/build/blocks/hooks/useSuspendableOptions.js.map +0 -1
  317. package/build/blocks/index.js +0 -15
  318. package/build/blocks/index.js.map +0 -1
  319. package/build/blocks/layered-styles-api.js.map +0 -1
  320. package/build/blocks/layered-styles-impl.js.map +0 -1
  321. package/build/blocks/layout/LaidOutProperty.js +0 -44
  322. package/build/blocks/layout/LaidOutProperty.js.map +0 -1
  323. package/build/blocks/layout/LaidOutPropertyRow.js +0 -12
  324. package/build/blocks/layout/LaidOutPropertyRow.js.map +0 -1
  325. package/build/blocks/layout/NodeContext.js +0 -37
  326. package/build/blocks/layout/NodeContext.js.map +0 -1
  327. package/build/blocks/layout/PanelRoot.js +0 -26
  328. package/build/blocks/layout/PanelRoot.js.map +0 -1
  329. package/build/blocks/layout/TabsRoot.js.map +0 -1
  330. package/build/blocks/layout/ToolsPanelContext.js +0 -18
  331. package/build/blocks/layout/ToolsPanelContext.js.map +0 -1
  332. package/build/blocks/shared-exportable-types.js +0 -2
  333. package/build/blocks/shared-internal-types.js +0 -2
  334. package/build/blocks/simple-block.js +0 -41
  335. package/build/blocks/simple-block.js.map +0 -1
  336. package/build/blocks/simple-native-property-api.js.map +0 -1
  337. package/build/blocks/simple-native-property-impl.js.map +0 -1
  338. package/build/blocks/simple-native-property-internal-shared.js.map +0 -1
  339. package/build/blocks/snp-api.js +0 -2
  340. package/build/blocks/snp-api.js.map +0 -1
  341. package/build/blocks/snp-data-store.js.map +0 -1
  342. package/build/blocks/utilities.js +0 -67
  343. package/build/blocks/utilities.js.map +0 -1
  344. package/build/controls/AsynchronousFormTokenField.js +0 -32
  345. package/build/controls/AsynchronousFormTokenField.js.map +0 -1
  346. package/build/controls/BaseSortableItemsControl.js +0 -22
  347. package/build/controls/BaseSortableItemsControl.js.map +0 -1
  348. package/build/controls/ExtendedFormTokenField.js +0 -58
  349. package/build/controls/ExtendedFormTokenField.js.map +0 -1
  350. package/build/controls/ExtendedPostPicker.js +0 -22
  351. package/build/controls/ExtendedPostPicker.js.map +0 -1
  352. package/build/controls/ExtendedRadioControl.d.ts +0 -10
  353. package/build/controls/ExtendedRadioControl.js +0 -30
  354. package/build/controls/ExtendedRadioControl.js.map +0 -1
  355. package/build/controls/ExtendedTaxonomyPicker.js +0 -68
  356. package/build/controls/ExtendedTaxonomyPicker.js.map +0 -1
  357. package/build/controls/ExtendedTermPicker.js +0 -27
  358. package/build/controls/ExtendedTermPicker.js.map +0 -1
  359. package/build/controls/ExtendedTextareaControl.d.ts +0 -14
  360. package/build/controls/ExtendedTextareaControl.js.map +0 -1
  361. package/build/controls/ExtendedUserPicker.js +0 -22
  362. package/build/controls/ExtendedUserPicker.js.map +0 -1
  363. package/build/controls/FullSizeToggleControl.js +0 -70
  364. package/build/controls/FullSizeToggleControl.js.map +0 -1
  365. package/build/controls/ImageControl.js +0 -76
  366. package/build/controls/ImageControl.js.map +0 -1
  367. package/build/controls/InspectorPanel.js +0 -26
  368. package/build/controls/InspectorPanel.js.map +0 -1
  369. package/build/controls/LazySuggestionsComboboxControl.js +0 -29
  370. package/build/controls/LazySuggestionsComboboxControl.js.map +0 -1
  371. package/build/controls/MultiSelectControl.js +0 -30
  372. package/build/controls/MultiSelectControl.js.map +0 -1
  373. package/build/controls/PickOne.js +0 -48
  374. package/build/controls/PickOne.js.map +0 -1
  375. package/build/controls/PromisableComponent.js.map +0 -1
  376. package/build/controls/ProperLinkControl.js +0 -56
  377. package/build/controls/ProperLinkControl.js.map +0 -1
  378. package/build/controls/SimpleToggle.js +0 -8
  379. package/build/controls/SimpleToggle.js.map +0 -1
  380. package/build/controls/SortableFlexibleItemsControl.js +0 -15
  381. package/build/controls/SortableFlexibleItemsControl.js.map +0 -1
  382. package/build/controls/SortableItemsControl.js +0 -12
  383. package/build/controls/SortableItemsControl.js.map +0 -1
  384. package/build/controls/basicNumericallyIdedItemPicker.js +0 -34
  385. package/build/controls/basicNumericallyIdedItemPicker.js.map +0 -1
  386. package/build/controls/hooks/useImprovedTokenManager.js.map +0 -1
  387. package/build/controls/hooks/useMultiSingleConversionLayer.js +0 -11
  388. package/build/controls/hooks/useMultiSingleConversionLayer.js.map +0 -1
  389. package/build/controls/hooks/useNonRenderingCounter.js +0 -6
  390. package/build/controls/hooks/useNonRenderingCounter.js.map +0 -1
  391. package/build/controls/hooks/useOutputMemoizingFilter.js.map +0 -1
  392. package/build/controls/hooks/useSortableItemsModel.js.map +0 -1
  393. package/build/controls/hooks/useSuggestions.js.map +0 -1
  394. package/build/controls/hooks/useTokenManager.js.map +0 -1
  395. package/build/controls/index.js.map +0 -1
  396. package/build/controls/shared.js.map +0 -1
  397. package/build/controls/types.js +0 -2
  398. package/build/editor/post-featured-image.js +0 -122
  399. package/build/editor/post-featured-image.js.map +0 -1
  400. package/build/editor/simple-gutenberg-endpoints-api.js +0 -22
  401. package/build/editor/simple-gutenberg-endpoints-api.js.map +0 -1
  402. package/build/editor/simple-gutenberg-endpoints-impl.js.map +0 -1
  403. package/build/index.js +0 -22
  404. package/build/index.js.map +0 -1
  405. package/build/lib/gutenberg-api-extensions-state/custom-block-bindings-support-logic.js +0 -23
  406. package/build/lib/gutenberg-api-extensions-state/custom-block-bindings-support-logic.js.map +0 -1
  407. package/build/lib/gutenberg-api-extensions-state/general-logic.js.map +0 -1
  408. package/build/lib/gutenberg-api-extensions-state/layered-block-styles-logic.js.map +0 -1
  409. package/build/lib/gutenberg-api-extensions-state/snp-logic.js.map +0 -1
  410. package/build/lib/gutenberg-api-extensions-state.js +0 -48
  411. package/build/lib/gutenberg-api-extensions-state.js.map +0 -1
  412. package/build/lib/helpers.js.map +0 -1
  413. package/build/lib/plaudit-icons/column-1.js +0 -3
  414. package/build/lib/plaudit-icons/column-1.js.map +0 -1
  415. package/build/lib/plaudit-icons/column-2.js +0 -3
  416. package/build/lib/plaudit-icons/column-2.js.map +0 -1
  417. package/build/lib/plaudit-icons/column-3.js +0 -3
  418. package/build/lib/plaudit-icons/column-3.js.map +0 -1
  419. package/build/lib/plaudit-icons/placement-center.js +0 -3
  420. package/build/lib/plaudit-icons/placement-center.js.map +0 -1
  421. package/build/lib/plaudit-icons/placement-end.js +0 -3
  422. package/build/lib/plaudit-icons/placement-end.js.map +0 -1
  423. package/build/lib/plaudit-icons/placement-start.js +0 -3
  424. package/build/lib/plaudit-icons/placement-start.js.map +0 -1
  425. package/build/lib/plaudit-icons/placement-stretch.js +0 -3
  426. package/build/lib/plaudit-icons/placement-stretch.js.map +0 -1
  427. package/build/lib/plaudit-icons/plaudit-icon.js +0 -3
  428. package/build/lib/plaudit-icons/plaudit-icon.js.map +0 -1
  429. package/build/lib/plaudit-icons/reusable-block-marker.js +0 -3
  430. package/build/lib/plaudit-icons.js.map +0 -1
  431. package/build/lib/suspense/promise-handlers.js.map +0 -1
  432. package/build/lib/suspense.js +0 -14
  433. package/build/lib/suspense.js.map +0 -1
  434. package/build/lib/useful-types.js +0 -7
  435. package/build/lib/useful-types.js.map +0 -1
  436. /package/{build → dist}/blocks/MoveError.d.ts +0 -0
  437. /package/{build → dist}/blocks/PathError.d.ts +0 -0
  438. /package/{build → dist}/blocks/SNPTreeContext.d.ts +0 -0
  439. /package/{build → dist}/blocks/basic-custom-block-bindings-support.d.ts +0 -0
  440. /package/{build → dist}/blocks/conditions.d.ts +0 -0
  441. /package/{build → dist}/blocks/data-controller-manager.d.ts +0 -0
  442. /package/{build → dist}/blocks/data-controller.d.ts +0 -0
  443. /package/{build → dist}/blocks/hooks/built-in-suspendable-option-protocols/select.d.ts +0 -0
  444. /package/{build → dist}/blocks/hooks/built-in-suspendable-option-protocols/settings.d.ts +0 -0
  445. /package/{build → dist}/blocks/index.d.ts +0 -0
  446. /package/{build → dist}/blocks/layered-styles-impl.d.ts +0 -0
  447. /package/{build → dist}/blocks/layout/LaidOutPropertyRow.d.ts +0 -0
  448. /package/{build → dist}/blocks/layout/PanelRoot.d.ts +0 -0
  449. /package/{build → dist}/blocks/layout/TabsRoot.d.ts +0 -0
  450. /package/{build → dist}/blocks/layout/ToolsPanelContext.d.ts +0 -0
  451. /package/{build → dist}/blocks/shared-exportable-types.d.ts +0 -0
  452. /package/{build → dist}/blocks/shared-exportable-types.js.map +0 -0
  453. /package/{build → dist}/blocks/shared-internal-types.d.ts +0 -0
  454. /package/{build → dist}/blocks/shared-internal-types.js.map +0 -0
  455. /package/{build → dist}/blocks/simple-native-property-impl.d.ts +0 -0
  456. /package/{build → dist}/blocks/simple-native-property-internal-shared.d.ts +0 -0
  457. /package/{build → dist}/blocks/snp-data-store.d.ts +0 -0
  458. /package/{build → dist}/controls/ExtendedPostPicker.d.ts +0 -0
  459. /package/{build → dist}/controls/ExtendedUserPicker.d.ts +0 -0
  460. /package/{build → dist}/controls/SimpleToggle.d.ts +0 -0
  461. /package/{build → dist}/controls/SortableFlexibleItemsControl.d.ts +0 -0
  462. /package/{build → dist}/controls/SortableItemsControl.d.ts +0 -0
  463. /package/{build → dist}/controls/hooks/useNonRenderingCounter.d.ts +0 -0
  464. /package/{build → dist}/controls/hooks/useOutputMemoizingFilter.d.ts +0 -0
  465. /package/{build → dist}/controls/hooks/useSortableItemsModel.d.ts +0 -0
  466. /package/{build → dist}/controls/hooks/useSuggestions.d.ts +0 -0
  467. /package/{build → dist}/controls/index.d.ts +0 -0
  468. /package/{build → dist}/controls/shared.d.ts +0 -0
  469. /package/{build → dist}/controls/types.d.ts +0 -0
  470. /package/{build → dist}/controls/types.js.map +0 -0
  471. /package/{build → dist}/editor/post-featured-image.d.ts +0 -0
  472. /package/{build → dist}/editor/simple-gutenberg-endpoints-api.d.ts +0 -0
  473. /package/{build → dist}/editor/simple-gutenberg-endpoints-impl.d.ts +0 -0
  474. /package/{build → dist}/index.d.ts +0 -0
  475. /package/{build → dist}/lib/gutenberg-api-extensions-state/custom-block-bindings-support-logic.d.ts +0 -0
  476. /package/{build → dist}/lib/gutenberg-api-extensions-state/general-logic.d.ts +0 -0
  477. /package/{build → dist}/lib/gutenberg-api-extensions-state/layered-block-styles-logic.d.ts +0 -0
  478. /package/{build → dist}/lib/gutenberg-api-extensions-state/snp-logic.d.ts +0 -0
  479. /package/{build → dist}/lib/plaudit-icons/column-1.d.ts +0 -0
  480. /package/{build → dist}/lib/plaudit-icons/column-2.d.ts +0 -0
  481. /package/{build → dist}/lib/plaudit-icons/column-3.d.ts +0 -0
  482. /package/{build → dist}/lib/plaudit-icons/placement-center.d.ts +0 -0
  483. /package/{build → dist}/lib/plaudit-icons/placement-end.d.ts +0 -0
  484. /package/{build → dist}/lib/plaudit-icons/placement-start.d.ts +0 -0
  485. /package/{build → dist}/lib/plaudit-icons/placement-stretch.d.ts +0 -0
  486. /package/{build → dist}/lib/plaudit-icons/plaudit-icon.d.ts +0 -0
  487. /package/{build → dist}/lib/plaudit-icons/reusable-block-marker.d.ts +0 -0
  488. /package/{build → dist}/lib/plaudit-icons.d.ts +0 -0
  489. /package/{build → dist}/lib/suspense/promise-handlers.d.ts +0 -0
@@ -1,8 +1,17 @@
1
- export function isWrappedPromise(promise) {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isWrappedPromise = isWrappedPromise;
4
+ exports.use = use;
5
+ exports.useImmediately = useImmediately;
6
+ exports.useToPromise = useToPromise;
7
+ exports.wrapPromise = wrapPromise;
8
+ exports.getPromiseState = getPromiseState;
9
+ exports.isPromise = isPromise;
10
+ function isWrappedPromise(promise) {
2
11
  return 'status' in promise
3
12
  && (promise.status === 'pending' || (promise.status === 'fulfilled' && 'value' in promise) || (promise.status === 'rejected' && 'reason' in promise));
4
13
  }
5
- export function use(promise) {
14
+ function use(promise) {
6
15
  switch (promise.status) {
7
16
  case "pending":
8
17
  throw promise;
@@ -14,7 +23,7 @@ export function use(promise) {
14
23
  return use(actuallyWrapPromise(promise));
15
24
  }
16
25
  }
17
- export function useImmediately(promise) {
26
+ function useImmediately(promise) {
18
27
  switch (promise.status) {
19
28
  case "pending":
20
29
  return undefined;
@@ -26,7 +35,7 @@ export function useImmediately(promise) {
26
35
  return useImmediately(actuallyWrapPromise(promise));
27
36
  }
28
37
  }
29
- export function useToPromise(promise) {
38
+ function useToPromise(promise) {
30
39
  switch (promise.status) {
31
40
  case "pending":
32
41
  throw promise;
@@ -38,7 +47,7 @@ export function useToPromise(promise) {
38
47
  return useToPromise(actuallyWrapPromise(promise));
39
48
  }
40
49
  }
41
- export function wrapPromise(promise) {
50
+ function wrapPromise(promise) {
42
51
  return isWrappedPromise(promise) ? promise : actuallyWrapPromise(promise);
43
52
  }
44
53
  function actuallyWrapPromise(promise) {
@@ -52,10 +61,10 @@ function actuallyWrapPromise(promise) {
52
61
  });
53
62
  return promise;
54
63
  }
55
- export function getPromiseState(promise) {
64
+ function getPromiseState(promise) {
56
65
  return wrapPromise(promise).status;
57
66
  }
58
- export function isPromise(value) {
67
+ function isPromise(value) {
59
68
  return typeof value === 'object' && !!value && ('then' in value) && typeof value['then'] === 'function';
60
69
  }
61
70
  //# sourceMappingURL=promise-handlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promise-handlers.js","sourceRoot":"","sources":["../../../src/lib/suspense/promise-handlers.ts"],"names":[],"mappings":";;AAGA,4CAGC;AAED,kBAWC;AAED,wCAWC;AAED,oCAWC;AAED,kCAEC;AAgBD,0CAEC;AAED,8BAEC;AApED,SAAgB,gBAAgB,CAAI,OAAmB;IACtD,OAAO,QAAQ,IAAI,OAAO;WACtB,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,WAAW,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,UAAU,IAAI,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC;AACxJ,CAAC;AAED,SAAgB,GAAG,CAAI,OAAmC;IACzD,QAAQ,OAAO,CAAC,MAAM,EAAE,CAAC;QACxB,KAAK,SAAS;YACb,MAAM,OAAO,CAAC;QACf,KAAK,WAAW;YACf,OAAO,OAAO,CAAC,KAAK,CAAC;QACtB,KAAK,UAAU;YACd,MAAM,OAAO,CAAC,MAAM,CAAC;QACtB;YACC,OAAO,GAAG,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3C,CAAC;AACF,CAAC;AAED,SAAgB,cAAc,CAAI,OAAmC;IACpE,QAAQ,OAAO,CAAC,MAAM,EAAE,CAAC;QACxB,KAAK,SAAS;YACb,OAAO,SAAS,CAAC;QAClB,KAAK,WAAW;YACf,OAAO,OAAO,CAAC,KAAK,CAAC;QACtB,KAAK,UAAU;YACd,MAAM,OAAO,CAAC,MAAM,CAAC;QACtB;YACC,OAAO,cAAc,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;IACtD,CAAC;AACF,CAAC;AAED,SAAgB,YAAY,CAAI,OAAmC;IAClE,QAAQ,OAAO,CAAC,MAAM,EAAE,CAAC;QACxB,KAAK,SAAS;YACb,MAAM,OAAO,CAAC;QACf,KAAK,WAAW;YACf,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACvC,KAAK,UAAU;YACd,MAAM,OAAO,CAAC,MAAM,CAAC;QACtB;YACC,OAAO,YAAY,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;IACpD,CAAC;AACF,CAAC;AAED,SAAgB,WAAW,CAAI,OAAmC;IACjE,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC3E,CAAC;AACD,SAAS,mBAAmB,CAAI,OAAmC;IAClE,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAC3B,OAAO,CAAC,IAAI,CACX,KAAK,CAAC,EAAE;QACN,OAAsC,CAAC,MAAM,GAAG,WAAW,CAAC;QAC5D,OAAe,CAAC,KAAK,GAAG,KAAK,CAAC;IAChC,CAAC,EACD,MAAM,CAAC,EAAE;QACP,OAAsC,CAAC,MAAM,GAAG,UAAU,CAAC;QAC3D,OAAe,CAAC,MAAM,GAAG,MAAM,CAAC;IAClC,CAAC,CACD,CAAC;IACF,OAAO,OAA4B,CAAC;AACrC,CAAC;AAED,SAAgB,eAAe,CAAC,OAAqC;IACpE,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;AACpC,CAAC;AAED,SAAgB,SAAS,CAAI,KAAU;IACtC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,UAAU,CAAC;AACzG,CAAC"}
@@ -1,7 +1,7 @@
1
1
  export * from "./suspense/promise-handlers";
2
- import React, { type ReactNode, type SuspenseProps } from "react";
2
+ import { type ReactNode, type SuspenseProps } from "react";
3
3
  type OptionallySuspensefulProps = Omit<SuspenseProps, 'children'> & {
4
4
  children: ReactNode | (() => ReactNode);
5
5
  hasSuspensefulOptions: (() => boolean) | boolean;
6
6
  };
7
- export declare function OptionallySuspenseful({ children: Children, hasSuspensefulOptions, ...props }: OptionallySuspensefulProps): string | number | boolean | Iterable<React.ReactNode> | import("react/jsx-runtime").JSX.Element | null | undefined;
7
+ export declare function OptionallySuspenseful({ children: Children, hasSuspensefulOptions, ...props }: OptionallySuspensefulProps): string | number | boolean | Iterable<ReactNode> | import("react/jsx-runtime").JSX.Element | null | undefined;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.OptionallySuspenseful = OptionallySuspenseful;
18
+ const jsx_runtime_1 = require("react/jsx-runtime");
19
+ const components_1 = require("@wordpress/components");
20
+ const controls_1 = require("../controls");
21
+ __exportStar(require("./suspense/promise-handlers"), exports);
22
+ const react_1 = require("react");
23
+ function OptionallySuspenseful({ children: Children, hasSuspensefulOptions, ...props }) {
24
+ if (typeof hasSuspensefulOptions === 'function' ? hasSuspensefulOptions() : hasSuspensefulOptions) {
25
+ return (0, jsx_runtime_1.jsx)(react_1.Suspense, { fallback: (0, jsx_runtime_1.jsxs)(controls_1.InspectorPanel, { opened: true, initialOpen: true, children: [(0, jsx_runtime_1.jsx)(components_1.Spinner, {}), " Loading options"] }), ...props, children: typeof Children === 'function' ? (0, jsx_runtime_1.jsx)(Children, {}) : Children });
26
+ }
27
+ else {
28
+ return typeof Children === 'function' ? (0, jsx_runtime_1.jsx)(Children, {}) : Children;
29
+ }
30
+ }
31
+ //# sourceMappingURL=suspense.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"suspense.js","sourceRoot":"","sources":["../../src/lib/suspense.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;AASA,sDAQC;;AAjBD,sDAA8C;AAE9C,0CAA2C;AAE3C,8DAA4C;AAE5C,iCAAmE;AAGnE,SAAgB,qBAAqB,CAAC,EAAC,QAAQ,EAAE,QAAQ,EAAE,qBAAqB,EAAE,GAAG,KAAK,EAA6B;IACtH,IAAI,OAAO,qBAAqB,KAAK,UAAU,CAAC,CAAC,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC,qBAAqB,EAAE,CAAC;QACnG,OAAO,uBAAC,gBAAQ,IAAC,QAAQ,EAAE,wBAAC,yBAAc,IAAC,MAAM,QAAC,WAAW,mBAAC,uBAAC,oBAAO,KAAE,wBAAiC,KAAM,KAAK,YACnH,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,uBAAC,QAAQ,KAAE,CAAC,CAAC,CAAC,QAAQ,GAC5C,CAAC;IACd,CAAC;SAAM,CAAC;QACP,OAAO,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,uBAAC,QAAQ,KAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;IAChE,CAAC;AACF,CAAC"}
@@ -1,7 +1,10 @@
1
1
  import { Block, BlockSupports } from "@wordpress/blocks";
2
2
  import { dispatch, select, StoreDescriptor } from "@wordpress/data";
3
- import type * as MetaActions from "@wordpress/data/build-types/redux-store/metadata/actions";
3
+ import { FormTokenField } from '@wordpress/components';
4
+ import type * as MetaActions from "@wordpress/data/redux-store/metadata/actions";
5
+ import type { ComponentProps } from "react";
4
6
  import type { PropertiesParameter } from "../blocks";
7
+ export type TokenItem = Exclude<NonNullable<ComponentProps<typeof FormTokenField>['value']>[number], string>;
5
8
  export type NormalizedReduxActionExtractor<V> = V extends {
6
9
  [key in string]: (...args: any[]) => infer R;
7
10
  } ? NormalizedReduxActionExtractor<R> : V extends {
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isBlockJsonNativePropsConfig = isBlockJsonNativePropsConfig;
4
+ exports.arrayIsNotEmpty = arrayIsNotEmpty;
5
+ function isBlockJsonNativePropsConfig(thing) {
6
+ return typeof thing === 'object' && thing !== null && 'type' in thing && thing.type === "native";
7
+ }
8
+ function arrayIsNotEmpty(arr) {
9
+ return !!arr && arr.length > 0;
10
+ }
11
+ //# sourceMappingURL=useful-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useful-types.js","sourceRoot":"","sources":["../../src/lib/useful-types.ts"],"names":[],"mappings":";;AAuCA,oEAEC;AAGD,0CAEC;AAPD,SAAgB,4BAA4B,CAAC,KAAc;IAC1D,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;AAClG,CAAC;AAGD,SAAgB,eAAe,CAAI,GAAuB;IACzD,OAAO,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;AAChC,CAAC"}
package/package.json CHANGED
@@ -1,47 +1,39 @@
1
1
  {
2
2
  "name": "@plaudit/gutenberg-api-extensions",
3
- "version": "2.79.0",
3
+ "version": "2.80.0",
4
4
  "license": "SEE LICENSE IN LICENSE.md",
5
5
  "files": [
6
- "./build",
7
- "./styles"
6
+ "./dist",
7
+ "./styles",
8
+ "./src"
8
9
  ],
9
10
  "sideEffects": false,
10
11
  "exports": {
11
- ".": {
12
- "default": "./build/index.js"
13
- },
14
- "./lib/plaudit-icons": {
15
- "default": "./build/lib/plaudit-icons.js"
16
- },
17
- "./blocks": {
18
- "default": "./build/blocks/index.js"
19
- },
20
- "./blocks/snp-api": {
21
- "default": "./build/blocks/snp-api.js"
22
- },
23
- "./controls": {
24
- "default": "./build/controls/index.js"
25
- }
12
+ ".": "./dist/index.js",
13
+ "./lib/plaudit-icons": "./dist/lib/plaudit-icons.js",
14
+ "./blocks": "./dist/blocks/index.js",
15
+ "./blocks/csnp-api": "./dist/blocks/csnp-api.js",
16
+ "./blocks/snp-api": "./dist/blocks/snp-api.js",
17
+ "./controls": "./dist/controls/index.js"
26
18
  },
27
19
  "dependencies": {
28
20
  "@reduxjs/toolkit": "^1.9.7",
29
21
  "@types/react": "^18.3.26",
30
22
  "@types/wordpress__block-editor": "^14.21.2",
31
23
  "@types/wordpress__blocks": "^12.5.18",
32
- "@wordpress/block-editor": "^14.21.0",
33
- "@wordpress/blocks": "^14.15.0",
34
- "@wordpress/components": "^29.12.0",
35
- "@wordpress/compose": "^7.34.0",
36
- "@wordpress/core-data": "^7.34.0",
37
- "@wordpress/data": "^10.34.0",
38
- "@wordpress/editor": "^14.34.0",
39
- "@wordpress/element": "^6.34.0",
40
- "@wordpress/hooks": "^4.34.0",
41
- "@wordpress/i18n": "^5.26.0",
42
- "@wordpress/icons": "^10.32.0",
24
+ "@wordpress/block-editor": "^15.8.0",
25
+ "@wordpress/blocks": "^15.8.0",
26
+ "@wordpress/components": "^30.8.0",
27
+ "@wordpress/compose": "^7.35.0",
28
+ "@wordpress/core-data": "^7.35.0",
29
+ "@wordpress/data": "^10.35.0",
30
+ "@wordpress/editor": "^14.35.0",
31
+ "@wordpress/element": "^6.35.0",
32
+ "@wordpress/hooks": "^4.35.0",
33
+ "@wordpress/i18n": "^6.8.0",
34
+ "@wordpress/icons": "^11.2.0",
43
35
  "framer-motion": "^12.23.24",
44
- "html-react-parser": "^5.2.8",
36
+ "html-react-parser": "^5.2.9",
45
37
  "immer": "^9.0.21",
46
38
  "react": "^18.3.1",
47
39
  "react-dom": "^18.3.1",
@@ -0,0 +1,7 @@
1
+ import type {RawPath} from "./simple-native-property-api";
2
+
3
+ export class MoveError extends Error {
4
+ constructor(message: string, path: RawPath, {from, to}: {from: number, to: number}|{from: string, to: string}) {
5
+ super(`${message}: ${path.join(".")}.{${from} => ${to}}`);
6
+ }
7
+ }
@@ -0,0 +1,18 @@
1
+ import type {RawPath} from "./simple-native-property-api";
2
+
3
+ export enum PathErrorType {
4
+ UNKNOWN,
5
+ UNEXPECTED_LEAF,
6
+ INSUFFICIENT_LENGTH
7
+ }
8
+
9
+ export class PathError extends Error {
10
+ constructor(
11
+ message: string,
12
+ public readonly path: RawPath,
13
+ public readonly errorIndex: number = path.length - 1,
14
+ public readonly errorType = PathErrorType.UNKNOWN
15
+ ) {
16
+ super(`${message} Full Path: ${path.join('.')}; Error Path: ${path.slice(0, errorIndex + 1).join('.')}`);
17
+ }
18
+ }
@@ -0,0 +1,30 @@
1
+ import {useCallback} from "@wordpress/element";
2
+
3
+ import type {FlexibleItemsListPropertyConfig} from "./csnp-api";
4
+ import {type FlexibleItem, SortableFlexibleItemsControl} from "../controls";
5
+ import {LaidOutPropertyRow} from "./layout/LaidOutPropertyRow";
6
+ import {NodeContextWrapper, useNodeContext} from "./layout/NodeContext";
7
+ import type {NonEmptyArray} from "../lib/useful-types";
8
+ import type {CSNPControlComponentProps} from "./shared-internal-types";
9
+ import type {HydratedSimpleNativeProperty, SNPControlSlots} from "./simple-native-property-api";
10
+
11
+ export type SNPFlexibleItemsListComponent<T extends string> = CSNPControlComponentProps<FlexibleItemsListPropertyConfig<T>, FlexibleItem<T>[], {
12
+ availableTypes: NonEmptyArray<{value: T, label: string}>, emptyValues: {[key in T]?: FlexibleItem<T>}
13
+ hydratedProperties: {[key in T]: (HydratedSimpleNativeProperty|HydratedSimpleNativeProperty[])[]}
14
+ }>&SNPControlSlots;
15
+ export function SNPFlexibleItemsListComponent(
16
+ {config, availableTypes, emptyValues, hydratedProperties, value, Label, Messages}: SNPFlexibleItemsListComponent<string>
17
+ ) {
18
+ const context = useNodeContext("build a SNP List");
19
+ const onReorder = useCallback((oldIndex: number, newIndex: number) => context.moveNode({from: oldIndex, to: newIndex}), [context]);
20
+ const emptyValueBuilder = useCallback((type: string) => ({...emptyValues[type], type}), [emptyValues]);
21
+ const childRenderer = useCallback((datum: FlexibleItem, onDatumChange: (datum: FlexibleItem) => void, index: number) => {
22
+ return <NodeContextWrapper nodeName={index} children={hydratedProperties[datum.type]?.map(property => <LaidOutPropertyRow property={property} />)} />
23
+ }, [hydratedProperties]);
24
+
25
+ return <SortableFlexibleItemsControl
26
+ availableTypes={availableTypes} emptyValueBuilder={emptyValueBuilder}
27
+ value={value} min={config.min} max={config.max} Label={Label} Messages={Messages} help={config.help}
28
+ {...config.component} onAdd={context.addNode} onRemove={context.removeNode} onReorder={onReorder} children={childRenderer}
29
+ />;
30
+ }
@@ -0,0 +1,38 @@
1
+ import {__experimentalToolsPanel as ToolsPanel} from "@wordpress/components";
2
+ import {useCallback} from "@wordpress/element";
3
+
4
+ import type {GroupPropertyCSNPConfig} from "./csnp-api";
5
+ import type {Dict} from "../controls";
6
+ import {LaidOutPropertyRow} from "./layout/LaidOutPropertyRow";
7
+ import {useNodeContext} from "./layout/NodeContext";
8
+ import type {CSNPControlComponentProps} from "./shared-internal-types";
9
+ import type {SNPControlSlots} from "./simple-native-property-api";
10
+ import type {HydratedLaidOutProperties} from "./simple-native-property-internal-shared";
11
+
12
+ export type SNPGroupComponentProps = CSNPControlComponentProps<GroupPropertyCSNPConfig, Dict<any>, {hydratedProperties: HydratedLaidOutProperties}>&SNPControlSlots;
13
+ export function SNPGroupComponent({config, hydratedProperties, Label, Messages}: SNPGroupComponentProps) {
14
+ if (config.interface === 'toolsPanel') {
15
+ const {value, setValue} = useNodeContext("render a toolsPanel");
16
+ return <>
17
+ <ToolsPanel
18
+ {...config.component}
19
+ className={config.component?.className ? `plaudit-snp-group-component ${config.component.className}` : "plaudit-snp-group-component"}
20
+ label={config.label}
21
+ resetAll={useCallback(resetAllFilters => {
22
+ setValue((resetAllFilters ?? []).reduce((q: any, filter: (t: any) => any) => filter(q), value))
23
+ }, [value, setValue])}
24
+ >
25
+ {...hydratedProperties.map(property => <LaidOutPropertyRow property={property} inToolsPanel={true} />)}
26
+ </ToolsPanel>
27
+ <Messages/>
28
+ </>;
29
+ } else {
30
+ return <fieldset {...config.component} className={config.component?.className ? `plaudit-snp-group-component ${config.component.className}` : "plaudit-snp-group-component"}>
31
+ <legend><Label/></legend>
32
+ <div className="plaudit-snp-laid-out-properties-wrapper">
33
+ {...hydratedProperties.map(property => <LaidOutPropertyRow property={property}/>)}
34
+ </div>
35
+ <Messages/>
36
+ </fieldset>;
37
+ }
38
+ }
@@ -0,0 +1,25 @@
1
+ import {useCallback, useMemo} from "@wordpress/element";
2
+
3
+ import type {ObjectListPropertyConfig} from "./csnp-api";
4
+ import {type Dict, SortableItemsControl} from "../controls";
5
+ import {LaidOutPropertyRow} from "./layout/LaidOutPropertyRow";
6
+ import {NodeContextWrapper, useNodeContext} from "./layout/NodeContext";
7
+ import type {CSNPControlComponentProps} from "./shared-internal-types";
8
+ import type {HydratedSimpleNativeProperty, SNPControlSlots} from "./simple-native-property-api";
9
+
10
+ export type SNPListComponentProps = CSNPControlComponentProps<ObjectListPropertyConfig, Dict<any>[], {
11
+ hydratedProperties: (HydratedSimpleNativeProperty|HydratedSimpleNativeProperty[])[]
12
+ }>&SNPControlSlots;
13
+ export function SNPListComponent({config, hydratedProperties, value, Label, Messages}: SNPListComponentProps) {
14
+ const context = useNodeContext("build a SNP List");
15
+ const onReorder = useCallback((oldIndex: number, newIndex: number) => context.moveNode({from: oldIndex, to: newIndex}), [context]);
16
+ const emptyValue = useMemo(() => config.emptyValue ?? {}, [config.emptyValue]);
17
+ const childRenderer = useCallback((datum: Dict<any>, onDatumChange: (datum: Dict<any>) => void, index: number) => {
18
+ return <NodeContextWrapper nodeName={index} children={hydratedProperties.map(property => <LaidOutPropertyRow property={property} />)} />
19
+ }, [hydratedProperties]);
20
+
21
+ return <SortableItemsControl
22
+ value={value} min={config.min} max={config.max} Label={Label} Messages={Messages} help={config.help} emptyValue={emptyValue}
23
+ {...config.component} onAdd={context.addNode} onRemove={context.removeNode} onReorder={onReorder} onChange={context.setValue} children={childRenderer}
24
+ />;
25
+ }
@@ -0,0 +1,13 @@
1
+ import {createContext, useContext} from "@wordpress/element";
2
+
3
+ import type {DataController} from "./simple-native-property-api";
4
+
5
+ export const SNPTreeContext = createContext<DataController|undefined>(undefined);
6
+
7
+ export function useSNPTreeContext(action: string) {
8
+ const SNPTreeContextValue = useContext(SNPTreeContext);
9
+ if (SNPTreeContextValue === undefined) {
10
+ throw new Error(`Cannot ${action} outside of a SNPTreeContext`);
11
+ }
12
+ return SNPTreeContextValue;
13
+ }
@@ -0,0 +1,243 @@
1
+ import apiFetch from "@wordpress/api-fetch"
2
+ import {getBlockBindingsSources, type registerBlockBindingsSource} from "@wordpress/blocks";
3
+ import {InspectorAdvancedControls, useBlockBindingsUtils} from "@wordpress/block-editor";
4
+ import {
5
+ __experimentalToolsPanel as ToolsPanel,
6
+ __experimentalToolsPanelItem as ToolsPanelItem,
7
+ SelectControl, Spinner, TextControl, Tooltip
8
+ } from '@wordpress/components';
9
+ import {createHigherOrderComponent} from "@wordpress/compose";
10
+ import {dispatch, select, useSuspenseSelect} from "@wordpress/data";
11
+ import {store as editorStore} from "@wordpress/editor";
12
+ import {memo, useMemo} from "@wordpress/element";
13
+ import {addFilter} from "@wordpress/hooks";
14
+
15
+ import {registerSimpleGutenbergApiEndpoint} from "../editor/simple-gutenberg-endpoints-api";
16
+ import {store as endpointsStore} from "../editor/simple-gutenberg-endpoints-impl";
17
+ import {store as apiExtensionsStore} from "../lib/gutenberg-api-extensions-state";
18
+ import type {ActualBlockEditProps, BlockName} from "../lib/useful-types";
19
+
20
+ import {type ReactElement, Suspense} from "react";
21
+ import {ErrorBoundary, FallbackProps} from "react-error-boundary";
22
+
23
+ const BLOCK_BINDINGS_ALLOWED_BLOCKS: {[key: BlockName]: string[]} = {
24
+ 'core/paragraph': ['content'],
25
+ 'core/heading': ['content'],
26
+ 'core/image': ['id', 'url', 'title', 'alt'],
27
+ 'core/button': ['url', 'text', 'linkTarget', 'rel']
28
+ };
29
+
30
+ export type DbSource = {label: string, value: string, help?: string};
31
+ type CBBParams = {dbSources?: DbSource[]/*, supportsContext?: boolean*/};
32
+ export function registerCustomBlockBindingsSource(args: Parameters<typeof registerBlockBindingsSource>[0]&CBBParams) {
33
+ installCustomBlockBindingsSupport();
34
+ dispatch('plaudit/gutenberg-api-extensions').registerCustomBlockBindingsSource(args);
35
+ }
36
+
37
+ export function installCustomBlockBindingsSupport() {
38
+ if (installCustomBlockBindingsSupport.called) {
39
+ return;
40
+ }
41
+ installCustomBlockBindingsSupport.called = true;
42
+
43
+ registerSimpleGutenbergApiEndpoint(
44
+ "plaudit-base.custom-bindings.source.options",
45
+ data => apiFetch<Array<{id: number, title: string, type: string}>>({data, method: 'POST', path: "/plaudit/base/v1/custom-bindings/source/options"}),
46
+ {maxCachedResults: 20}
47
+ );
48
+
49
+ addFilter('editor.BlockEdit', 'plaudit/gutenberg-api-extensions/basic-custom-block-bindings-support',
50
+ createHigherOrderComponent(BlockEdit => (blockEditProps: ActualBlockEditProps) => {
51
+ const availableBindingsList = BLOCK_BINDINGS_ALLOWED_BLOCKS[blockEditProps.name];
52
+ if (!availableBindingsList?.length) {
53
+ return <BlockEdit {...blockEditProps} />;
54
+ }
55
+ const {removeAllBlockBindings, updateBlockBindings} = useBlockBindingsUtils();
56
+ const currentPost = select(editorStore).getCurrentPost();
57
+ const bindingConfigs = useMemo(
58
+ () => {
59
+ return availableBindingsList.map((binding): [Parameters<typeof ToolsPanelItem>[0], BlockBindingToolProps] => {
60
+ return [
61
+ {
62
+ label: binding,
63
+ hasValue() {
64
+ return blockEditProps.attributes['metadata']?.['bindings']?.[binding] !== undefined;
65
+ },
66
+ onDeselect() {
67
+ updateBlockBindings({[binding]: undefined});
68
+ }
69
+ },
70
+ {
71
+ label: binding,
72
+ value: blockEditProps.attributes['metadata']?.['bindings']?.[binding],
73
+ currentPost,
74
+ binding
75
+ }
76
+ ];
77
+ });
78
+ }, [blockEditProps.attributes, currentPost, availableBindingsList, updateBlockBindings]);
79
+ return <>
80
+ <BlockEdit {...blockEditProps} />
81
+ <InspectorAdvancedControls>
82
+ <ToolsPanel
83
+ label="Custom Block Bindings" resetAll={removeAllBlockBindings}
84
+ children={bindingConfigs.map(([bindingConfig, bbtConfig]) => (
85
+ <ToolsPanelItem key={bindingConfig.label} {...bindingConfig}>
86
+ <BlockBindingTool {...bbtConfig} />
87
+ </ToolsPanelItem>
88
+ ))}
89
+ />
90
+ </InspectorAdvancedControls>
91
+ </>;
92
+ }, 'plauditGutenbergApiExtensionsBasicBlockBindingsSupport')
93
+ );
94
+
95
+ type BlockBindingToolProps = {
96
+ value: { source: string, args?: { [key: string]: any } } | undefined,
97
+ currentPost: any,
98
+ label: string,
99
+ binding: string
100
+ };
101
+
102
+ type SelectableOptions = Array<{ label: string, value: string, subfields: 'custom' | { label: string, value: string }[] }>;
103
+ type GetSelectableOptionsResponse = Array<{
104
+ label: string,
105
+ value: string,
106
+ subfields: 'custom' | { label: string, value: string }[],
107
+ disabled?: string | boolean,
108
+ binding: string
109
+ }>;
110
+ const BlockBindingTool = memo(({label, value, binding, currentPost}: BlockBindingToolProps) => {
111
+ const bindingSources = Object.entries(getBlockBindingsSources())
112
+ .filter(([key]) => key !== 'core/pattern-overrides' && key !== 'core/post-meta')
113
+ .map(([key, {label}]) => ({label, value: key}));
114
+ const {updateBlockBindings} = useBlockBindingsUtils();
115
+
116
+ return <fieldset className="custom-bindings-configuration-chain" style={{border: "revert", padding: "revert", margin: "revert"}}>
117
+ <legend>{label}</legend>
118
+ <SelectControl
119
+ key="source"
120
+ label="Source"
121
+ __nextHasNoMarginBottom={true}
122
+ onChange={source => updateBlockBindings({[binding]: {source}})}
123
+ options={[
124
+ {
125
+ disabled: true,
126
+ label: "Select a Binding Source",
127
+ value: ''
128
+ },
129
+ ...bindingSources
130
+ ]}
131
+ value={value?.source ?? ''}
132
+ />
133
+ <ErrorBoundary FallbackComponent={Fallback} onError={console.error}>
134
+ <Suspense fallback={<p><Spinner/> Loading Binding Options</p>}>
135
+ <SourceSubconfig value={value} currentPost={currentPost} binding={binding} />
136
+ </Suspense>
137
+ </ErrorBoundary>
138
+ </fieldset>
139
+ });
140
+ const SourceSubconfig = memo(({currentPost, value, binding}: Omit<BlockBindingToolProps, 'label'>) => {
141
+ const [selectableOptions, {dbSources/*, supportsContext*/}] = useSuspenseSelect((select): [NonNullable<Parameters<typeof SelectControl>[0]['options']>, CBBParams] => {
142
+ if (value?.source) {
143
+ const sourceQueryArgs = {current_post: currentPost, source: value.source};
144
+ const sourceOptions = select(endpointsStore).get("plaudit-base.custom-bindings.source.options", sourceQueryArgs) as GetSelectableOptionsResponse;
145
+ return [
146
+ sourceOptions.map(option => {
147
+ return typeof option.disabled === 'string'
148
+ ? {...option, label: `${option.label} (${option.disabled})`, disabled: true}
149
+ : {...option, disabled: !!option.disabled};
150
+ }),
151
+ select(apiExtensionsStore).customBlockBindingsSource(value.source) ?? {}
152
+ ];
153
+ } else {
154
+ return [[], {}];
155
+ }
156
+ }, [currentPost, value?.source]);
157
+ const {updateBlockBindings} = useBlockBindingsUtils();
158
+
159
+ const subfieldKeys = useMemo<SelectableOptions[number]['subfields']>(() => {
160
+ if (Array.isArray(selectableOptions)) {
161
+ const key = value?.args?.['key'];
162
+ return key ? selectableOptions.find(option => option.value === key)?.subfields ?? [] : [];
163
+ }
164
+ return [];
165
+ }, [selectableOptions, value?.args?.['key']]);
166
+
167
+ const controls: ReactElement[] = [];
168
+ if (selectableOptions.length) {
169
+ controls.push(<SelectControl
170
+ key="field"
171
+ label="Field"
172
+ __nextHasNoMarginBottom={true}
173
+ // We exclude subfield from this update because we need to reset it when the selected field changes
174
+ onChange={key => updateBlockBindings({[binding]: (value ? {...value, args: {key}} : undefined)})}
175
+ options={[
176
+ {
177
+ disabled: true,
178
+ label: "Select a Field",
179
+ value: ''
180
+ },
181
+ ...selectableOptions
182
+ ]}
183
+ value={value?.args?.['key'] ?? ''}
184
+ />);
185
+
186
+ if (subfieldKeys.length) {
187
+ if (subfieldKeys === 'custom') {
188
+ controls.push(<TextControl
189
+ key="subfield"
190
+ label="Subfield"
191
+ __nextHasNoMarginBottom={true}
192
+ onChange={subfield => updateBlockBindings({[binding]: (value ? {...value, args: {...value.args, subfield}} : undefined)})}
193
+ value={value?.args?.['subfield'] ?? ''}
194
+ help="Please enter the name of a subfield. You may need to inspect the raw data from this binding to determine the subfield."
195
+ />);
196
+ } else {
197
+ controls.push(<SelectControl
198
+ key="subfield"
199
+ label="Subfield"
200
+ __nextHasNoMarginBottom={true}
201
+ onChange={subfield => updateBlockBindings({[binding]: (value ? {...value, args: {...value.args, subfield}} : undefined)})}
202
+ options={[
203
+ {
204
+ disabled: true,
205
+ label: "Select a Subfield",
206
+ value: ''
207
+ },
208
+ ...subfieldKeys
209
+ ]}
210
+ value={value?.args?.['subfield'] ?? ''}
211
+ />);
212
+ }
213
+ }
214
+
215
+ if (value?.args?.['key'] && dbSources?.length) {
216
+ controls.push(<SelectControl
217
+ key="db-source"
218
+ label="DB Source"
219
+ __nextHasNoMarginBottom={true}
220
+ onChange={db_source => updateBlockBindings({[binding]: (value ? {...value, args: {...value.args, db_source}} : undefined)})}
221
+ options={dbSources}
222
+ value={value?.args?.['db_source'] ?? dbSources[0]!.value}
223
+ help={dbSources.find(dbs => dbs.value === value?.args?.['db_source'])?.help}
224
+ />);
225
+ } else if (value?.args?.['db_source']) {
226
+ const {db_source, ...updatedArgs} = value.args;
227
+ updateBlockBindings({[binding]: {...value, args: updatedArgs}});
228
+ }
229
+ }
230
+ if (controls.length === 0) {
231
+ controls.push(<p>No Options Found</p>);
232
+ }
233
+ return controls;
234
+ });
235
+ }
236
+ export namespace installCustomBlockBindingsSupport {
237
+ export let called: boolean = false;
238
+ }
239
+
240
+ function Fallback({error}: FallbackProps) {
241
+ const baseDisplay = <p style={{color: '#CC1818'}}>An error occurred while loading binding options</p>;
242
+ return typeof error.message === 'string' ? <Tooltip text={error.message}>{baseDisplay}</Tooltip> : baseDisplay;
243
+ }