@endora-commerce/cms-components 0.100.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 (300) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +59 -0
  3. package/dist/cms-components.css +2 -0
  4. package/dist/components/Accordion.d.ts +43 -0
  5. package/dist/components/Accordion.d.ts.map +1 -0
  6. package/dist/components/Accordion.js +81 -0
  7. package/dist/components/Accordion.js.map +1 -0
  8. package/dist/components/AnnouncementBar.d.ts +43 -0
  9. package/dist/components/AnnouncementBar.d.ts.map +1 -0
  10. package/dist/components/AnnouncementBar.js +27 -0
  11. package/dist/components/AnnouncementBar.js.map +1 -0
  12. package/dist/components/Button.d.ts +43 -0
  13. package/dist/components/Button.d.ts.map +1 -0
  14. package/dist/components/Button.js +122 -0
  15. package/dist/components/Button.js.map +1 -0
  16. package/dist/components/CategoryGrid.d.ts +43 -0
  17. package/dist/components/CategoryGrid.d.ts.map +1 -0
  18. package/dist/components/CategoryGrid.js +117 -0
  19. package/dist/components/CategoryGrid.js.map +1 -0
  20. package/dist/components/CategoryList.d.ts +43 -0
  21. package/dist/components/CategoryList.d.ts.map +1 -0
  22. package/dist/components/CategoryList.js +96 -0
  23. package/dist/components/CategoryList.js.map +1 -0
  24. package/dist/components/CmsPageContainer.d.ts +12 -0
  25. package/dist/components/CmsPageContainer.d.ts.map +1 -0
  26. package/dist/components/CmsPageContainer.js +19 -0
  27. package/dist/components/CmsPageContainer.js.map +1 -0
  28. package/dist/components/CmsProductCard.d.ts +35 -0
  29. package/dist/components/CmsProductCard.d.ts.map +1 -0
  30. package/dist/components/CmsProductCard.js +101 -0
  31. package/dist/components/CmsProductCard.js.map +1 -0
  32. package/dist/components/Column.d.ts +50 -0
  33. package/dist/components/Column.d.ts.map +1 -0
  34. package/dist/components/Column.js +127 -0
  35. package/dist/components/Column.js.map +1 -0
  36. package/dist/components/ContactFormEmbed.d.ts +43 -0
  37. package/dist/components/ContactFormEmbed.d.ts.map +1 -0
  38. package/dist/components/ContactFormEmbed.js +37 -0
  39. package/dist/components/ContactFormEmbed.js.map +1 -0
  40. package/dist/components/ContentSlider.d.ts +43 -0
  41. package/dist/components/ContentSlider.d.ts.map +1 -0
  42. package/dist/components/ContentSlider.js +96 -0
  43. package/dist/components/ContentSlider.js.map +1 -0
  44. package/dist/components/FeatureList.d.ts +43 -0
  45. package/dist/components/FeatureList.d.ts.map +1 -0
  46. package/dist/components/FeatureList.js +89 -0
  47. package/dist/components/FeatureList.js.map +1 -0
  48. package/dist/components/Heading.d.ts +43 -0
  49. package/dist/components/Heading.d.ts.map +1 -0
  50. package/dist/components/Heading.js +116 -0
  51. package/dist/components/Heading.js.map +1 -0
  52. package/dist/components/Hero.d.ts +43 -0
  53. package/dist/components/Hero.d.ts.map +1 -0
  54. package/dist/components/Hero.js +186 -0
  55. package/dist/components/Hero.js.map +1 -0
  56. package/dist/components/IconPickerField.d.ts +3 -0
  57. package/dist/components/IconPickerField.d.ts.map +1 -0
  58. package/dist/components/IconPickerField.js +30 -0
  59. package/dist/components/IconPickerField.js.map +1 -0
  60. package/dist/components/Icons.d.ts +43 -0
  61. package/dist/components/Icons.d.ts.map +1 -0
  62. package/dist/components/Icons.js +62 -0
  63. package/dist/components/Icons.js.map +1 -0
  64. package/dist/components/Image.d.ts +43 -0
  65. package/dist/components/Image.d.ts.map +1 -0
  66. package/dist/components/Image.js +179 -0
  67. package/dist/components/Image.js.map +1 -0
  68. package/dist/components/ImageSlider.d.ts +44 -0
  69. package/dist/components/ImageSlider.d.ts.map +1 -0
  70. package/dist/components/ImageSlider.js +186 -0
  71. package/dist/components/ImageSlider.js.map +1 -0
  72. package/dist/components/InsertBlock.d.ts +4 -0
  73. package/dist/components/InsertBlock.d.ts.map +1 -0
  74. package/dist/components/InsertBlock.js +30 -0
  75. package/dist/components/InsertBlock.js.map +1 -0
  76. package/dist/components/InsertTemplate.d.ts +4 -0
  77. package/dist/components/InsertTemplate.d.ts.map +1 -0
  78. package/dist/components/InsertTemplate.js +30 -0
  79. package/dist/components/InsertTemplate.js.map +1 -0
  80. package/dist/components/LogoStrip.d.ts +43 -0
  81. package/dist/components/LogoStrip.d.ts.map +1 -0
  82. package/dist/components/LogoStrip.js +155 -0
  83. package/dist/components/LogoStrip.js.map +1 -0
  84. package/dist/components/Map.d.ts +43 -0
  85. package/dist/components/Map.d.ts.map +1 -0
  86. package/dist/components/Map.js +165 -0
  87. package/dist/components/Map.js.map +1 -0
  88. package/dist/components/MissingComponentPlaceholder.d.ts +27 -0
  89. package/dist/components/MissingComponentPlaceholder.d.ts.map +1 -0
  90. package/dist/components/MissingComponentPlaceholder.js +24 -0
  91. package/dist/components/MissingComponentPlaceholder.js.map +1 -0
  92. package/dist/components/NewsletterSignup.d.ts +43 -0
  93. package/dist/components/NewsletterSignup.d.ts.map +1 -0
  94. package/dist/components/NewsletterSignup.js +43 -0
  95. package/dist/components/NewsletterSignup.js.map +1 -0
  96. package/dist/components/ProductCard.d.ts +43 -0
  97. package/dist/components/ProductCard.d.ts.map +1 -0
  98. package/dist/components/ProductCard.js +96 -0
  99. package/dist/components/ProductCard.js.map +1 -0
  100. package/dist/components/ProductGrid.d.ts +43 -0
  101. package/dist/components/ProductGrid.d.ts.map +1 -0
  102. package/dist/components/ProductGrid.js +138 -0
  103. package/dist/components/ProductGrid.js.map +1 -0
  104. package/dist/components/ProductSlider.d.ts +43 -0
  105. package/dist/components/ProductSlider.d.ts.map +1 -0
  106. package/dist/components/ProductSlider.js +134 -0
  107. package/dist/components/ProductSlider.js.map +1 -0
  108. package/dist/components/RawHtml.d.ts +43 -0
  109. package/dist/components/RawHtml.d.ts.map +1 -0
  110. package/dist/components/RawHtml.js +38 -0
  111. package/dist/components/RawHtml.js.map +1 -0
  112. package/dist/components/RawJs.d.ts +43 -0
  113. package/dist/components/RawJs.d.ts.map +1 -0
  114. package/dist/components/RawJs.js +53 -0
  115. package/dist/components/RawJs.js.map +1 -0
  116. package/dist/components/RichContent.d.ts +4 -0
  117. package/dist/components/RichContent.d.ts.map +1 -0
  118. package/dist/components/RichContent.js +48 -0
  119. package/dist/components/RichContent.js.map +1 -0
  120. package/dist/components/RichContentEditorField.d.ts +10 -0
  121. package/dist/components/RichContentEditorField.d.ts.map +1 -0
  122. package/dist/components/RichContentEditorField.js +130 -0
  123. package/dist/components/RichContentEditorField.js.map +1 -0
  124. package/dist/components/RichContentPublished.d.ts +5 -0
  125. package/dist/components/RichContentPublished.d.ts.map +1 -0
  126. package/dist/components/RichContentPublished.js +22 -0
  127. package/dist/components/RichContentPublished.js.map +1 -0
  128. package/dist/components/Row.d.ts +43 -0
  129. package/dist/components/Row.d.ts.map +1 -0
  130. package/dist/components/Row.js +305 -0
  131. package/dist/components/Row.js.map +1 -0
  132. package/dist/components/SimpleTable.d.ts +43 -0
  133. package/dist/components/SimpleTable.d.ts.map +1 -0
  134. package/dist/components/SimpleTable.js +155 -0
  135. package/dist/components/SimpleTable.js.map +1 -0
  136. package/dist/components/Slide.d.ts +44 -0
  137. package/dist/components/Slide.d.ts.map +1 -0
  138. package/dist/components/Slide.js +36 -0
  139. package/dist/components/Slide.js.map +1 -0
  140. package/dist/components/Social.d.ts +43 -0
  141. package/dist/components/Social.d.ts.map +1 -0
  142. package/dist/components/Social.js +110 -0
  143. package/dist/components/Social.js.map +1 -0
  144. package/dist/components/Spacer.d.ts +43 -0
  145. package/dist/components/Spacer.d.ts.map +1 -0
  146. package/dist/components/Spacer.js +48 -0
  147. package/dist/components/Spacer.js.map +1 -0
  148. package/dist/components/Stats.d.ts +43 -0
  149. package/dist/components/Stats.d.ts.map +1 -0
  150. package/dist/components/Stats.js +71 -0
  151. package/dist/components/Stats.js.map +1 -0
  152. package/dist/components/Tabs.d.ts +43 -0
  153. package/dist/components/Tabs.d.ts.map +1 -0
  154. package/dist/components/Tabs.js +70 -0
  155. package/dist/components/Tabs.js.map +1 -0
  156. package/dist/components/Testimonial.d.ts +43 -0
  157. package/dist/components/Testimonial.d.ts.map +1 -0
  158. package/dist/components/Testimonial.js +74 -0
  159. package/dist/components/Testimonial.js.map +1 -0
  160. package/dist/components/Text.d.ts +43 -0
  161. package/dist/components/Text.d.ts.map +1 -0
  162. package/dist/components/Text.js +87 -0
  163. package/dist/components/Text.js.map +1 -0
  164. package/dist/components/Video.d.ts +43 -0
  165. package/dist/components/Video.d.ts.map +1 -0
  166. package/dist/components/Video.js +98 -0
  167. package/dist/components/Video.js.map +1 -0
  168. package/dist/components/box-styles.d.ts +19 -0
  169. package/dist/components/box-styles.d.ts.map +1 -0
  170. package/dist/components/box-styles.js +66 -0
  171. package/dist/components/box-styles.js.map +1 -0
  172. package/dist/components/button-link.d.ts +7 -0
  173. package/dist/components/button-link.d.ts.map +1 -0
  174. package/dist/components/button-link.js +15 -0
  175. package/dist/components/button-link.js.map +1 -0
  176. package/dist/components/carousel/CarouselShell.d.ts +27 -0
  177. package/dist/components/carousel/CarouselShell.d.ts.map +1 -0
  178. package/dist/components/carousel/CarouselShell.js +210 -0
  179. package/dist/components/carousel/CarouselShell.js.map +1 -0
  180. package/dist/components/catalog/CatalogSkeletons.d.ts +27 -0
  181. package/dist/components/catalog/CatalogSkeletons.d.ts.map +1 -0
  182. package/dist/components/catalog/CatalogSkeletons.js +38 -0
  183. package/dist/components/catalog/CatalogSkeletons.js.map +1 -0
  184. package/dist/components/catalog-preview-context.d.ts +9 -0
  185. package/dist/components/catalog-preview-context.d.ts.map +1 -0
  186. package/dist/components/catalog-preview-context.js +18 -0
  187. package/dist/components/catalog-preview-context.js.map +1 -0
  188. package/dist/components/icon-catalog.d.ts +139 -0
  189. package/dist/components/icon-catalog.d.ts.map +1 -0
  190. package/dist/components/icon-catalog.js +148 -0
  191. package/dist/components/icon-catalog.js.map +1 -0
  192. package/dist/components/image-fields.d.ts +6 -0
  193. package/dist/components/image-fields.d.ts.map +1 -0
  194. package/dist/components/image-fields.js +11 -0
  195. package/dist/components/image-fields.js.map +1 -0
  196. package/dist/components/image-slider-item.d.ts +7 -0
  197. package/dist/components/image-slider-item.d.ts.map +1 -0
  198. package/dist/components/image-slider-item.js +45 -0
  199. package/dist/components/image-slider-item.js.map +1 -0
  200. package/dist/components/render-context.d.ts +29 -0
  201. package/dist/components/render-context.d.ts.map +1 -0
  202. package/dist/components/render-context.js +21 -0
  203. package/dist/components/render-context.js.map +1 -0
  204. package/dist/components/rich-content-shared.d.ts +11 -0
  205. package/dist/components/rich-content-shared.d.ts.map +1 -0
  206. package/dist/components/rich-content-shared.js +132 -0
  207. package/dist/components/rich-content-shared.js.map +1 -0
  208. package/dist/components/social-networks.d.ts +10 -0
  209. package/dist/components/social-networks.d.ts.map +1 -0
  210. package/dist/components/social-networks.js +43 -0
  211. package/dist/components/social-networks.js.map +1 -0
  212. package/dist/components/styles.d.ts +2 -0
  213. package/dist/components/styles.d.ts.map +1 -0
  214. package/dist/components/styles.js +9 -0
  215. package/dist/components/styles.js.map +1 -0
  216. package/dist/components/text-content.d.ts +13 -0
  217. package/dist/components/text-content.d.ts.map +1 -0
  218. package/dist/components/text-content.js +64 -0
  219. package/dist/components/text-content.js.map +1 -0
  220. package/dist/components/typography.d.ts +26 -0
  221. package/dist/components/typography.d.ts.map +1 -0
  222. package/dist/components/typography.js +52 -0
  223. package/dist/components/typography.js.map +1 -0
  224. package/dist/editor/row-layout-presets.d.ts +34 -0
  225. package/dist/editor/row-layout-presets.d.ts.map +1 -0
  226. package/dist/editor/row-layout-presets.js +175 -0
  227. package/dist/editor/row-layout-presets.js.map +1 -0
  228. package/dist/editor/slot-edit-props.d.ts +16 -0
  229. package/dist/editor/slot-edit-props.d.ts.map +1 -0
  230. package/dist/editor/slot-edit-props.js +25 -0
  231. package/dist/editor/slot-edit-props.js.map +1 -0
  232. package/dist/fields/catalog-data-fields.d.ts +7 -0
  233. package/dist/fields/catalog-data-fields.d.ts.map +1 -0
  234. package/dist/fields/catalog-data-fields.js +4 -0
  235. package/dist/fields/catalog-data-fields.js.map +1 -0
  236. package/dist/fields/catalog-fallback-fields.d.ts +4 -0
  237. package/dist/fields/catalog-fallback-fields.d.ts.map +1 -0
  238. package/dist/fields/catalog-fallback-fields.js +34 -0
  239. package/dist/fields/catalog-fallback-fields.js.map +1 -0
  240. package/dist/fields/catalog-resolve-fields.d.ts +5 -0
  241. package/dist/fields/catalog-resolve-fields.d.ts.map +1 -0
  242. package/dist/fields/catalog-resolve-fields.js +40 -0
  243. package/dist/fields/catalog-resolve-fields.js.map +1 -0
  244. package/dist/fields/shared-fields.d.ts +176 -0
  245. package/dist/fields/shared-fields.d.ts.map +1 -0
  246. package/dist/fields/shared-fields.js +142 -0
  247. package/dist/fields/shared-fields.js.map +1 -0
  248. package/dist/hooks/use-viewport-breakpoint-tier.d.ts +4 -0
  249. package/dist/hooks/use-viewport-breakpoint-tier.d.ts.map +1 -0
  250. package/dist/hooks/use-viewport-breakpoint-tier.js +21 -0
  251. package/dist/hooks/use-viewport-breakpoint-tier.js.map +1 -0
  252. package/dist/index.d.ts +127 -0
  253. package/dist/index.d.ts.map +1 -0
  254. package/dist/index.js +377 -0
  255. package/dist/index.js.map +1 -0
  256. package/dist/schema/catalog-types.d.ts +22 -0
  257. package/dist/schema/catalog-types.d.ts.map +1 -0
  258. package/dist/schema/catalog-types.js +2 -0
  259. package/dist/schema/catalog-types.js.map +1 -0
  260. package/dist/schema/component-types.d.ts +419 -0
  261. package/dist/schema/component-types.d.ts.map +1 -0
  262. package/dist/schema/component-types.js +2 -0
  263. package/dist/schema/component-types.js.map +1 -0
  264. package/dist/schema/envelope.d.ts +21 -0
  265. package/dist/schema/envelope.d.ts.map +1 -0
  266. package/dist/schema/envelope.js +19 -0
  267. package/dist/schema/envelope.js.map +1 -0
  268. package/dist/utils/catalog-fetch.d.ts +29 -0
  269. package/dist/utils/catalog-fetch.d.ts.map +1 -0
  270. package/dist/utils/catalog-fetch.js +88 -0
  271. package/dist/utils/catalog-fetch.js.map +1 -0
  272. package/dist/utils/catalog-load.d.ts +4 -0
  273. package/dist/utils/catalog-load.d.ts.map +1 -0
  274. package/dist/utils/catalog-load.js +11 -0
  275. package/dist/utils/catalog-load.js.map +1 -0
  276. package/dist/utils/catalog-preview-bridge.d.ts +13 -0
  277. package/dist/utils/catalog-preview-bridge.d.ts.map +1 -0
  278. package/dist/utils/catalog-preview-bridge.js +8 -0
  279. package/dist/utils/catalog-preview-bridge.js.map +1 -0
  280. package/dist/utils/catalog-skeleton-estimate.d.ts +7 -0
  281. package/dist/utils/catalog-skeleton-estimate.d.ts.map +1 -0
  282. package/dist/utils/catalog-skeleton-estimate.js +42 -0
  283. package/dist/utils/catalog-skeleton-estimate.js.map +1 -0
  284. package/dist/utils/resolve-image-url.d.ts +20 -0
  285. package/dist/utils/resolve-image-url.d.ts.map +1 -0
  286. package/dist/utils/resolve-image-url.js +24 -0
  287. package/dist/utils/resolve-image-url.js.map +1 -0
  288. package/dist/utils/sanitize-html.d.ts +6 -0
  289. package/dist/utils/sanitize-html.d.ts.map +1 -0
  290. package/dist/utils/sanitize-html.js +81 -0
  291. package/dist/utils/sanitize-html.js.map +1 -0
  292. package/dist/utils/video-embed.d.ts +11 -0
  293. package/dist/utils/video-embed.d.ts.map +1 -0
  294. package/dist/utils/video-embed.js +61 -0
  295. package/dist/utils/video-embed.js.map +1 -0
  296. package/dist/utils/walk-asset-ids.d.ts +3 -0
  297. package/dist/utils/walk-asset-ids.d.ts.map +1 -0
  298. package/dist/utils/walk-asset-ids.js +23 -0
  299. package/dist/utils/walk-asset-ids.js.map +1 -0
  300. package/package.json +117 -0
package/dist/index.js ADDED
@@ -0,0 +1,377 @@
1
+ // @endora-commerce/cms-components — shared Page Builder components for the CMS module
2
+ // (feature 014).
3
+ import { definePageBuilderComponent, ownerOf, withHideOn } from '@endora-commerce/page-builder-core';
4
+ import { Accordion } from './components/Accordion.js';
5
+ import { AnnouncementBar } from './components/AnnouncementBar.js';
6
+ import { Button } from './components/Button.js';
7
+ import { CategoryGrid } from './components/CategoryGrid.js';
8
+ import { CategoryList } from './components/CategoryList.js';
9
+ import { Column } from './components/Column.js';
10
+ import { ContactFormEmbed } from './components/ContactFormEmbed.js';
11
+ import { ContentSlider } from './components/ContentSlider.js';
12
+ import { FeatureList } from './components/FeatureList.js';
13
+ import { Heading } from './components/Heading.js';
14
+ import { Hero } from './components/Hero.js';
15
+ import { Icons } from './components/Icons.js';
16
+ import { Image } from './components/Image.js';
17
+ import { ImageSlider } from './components/ImageSlider.js';
18
+ import { InsertBlock } from './components/InsertBlock.js';
19
+ import { InsertTemplate } from './components/InsertTemplate.js';
20
+ import { LogoStrip } from './components/LogoStrip.js';
21
+ import { Map } from './components/Map.js';
22
+ import { MissingComponentPlaceholder } from './components/MissingComponentPlaceholder.js';
23
+ import { NewsletterSignup } from './components/NewsletterSignup.js';
24
+ import { ProductCard } from './components/ProductCard.js';
25
+ import { ProductGrid } from './components/ProductGrid.js';
26
+ import { ProductSlider } from './components/ProductSlider.js';
27
+ import { RawHtml } from './components/RawHtml.js';
28
+ import { RawJs } from './components/RawJs.js';
29
+ import { RichContent } from './components/RichContent.js';
30
+ import { Row } from './components/Row.js';
31
+ import { SimpleTable } from './components/SimpleTable.js';
32
+ import { Slide } from './components/Slide.js';
33
+ import { Social } from './components/Social.js';
34
+ import { Spacer } from './components/Spacer.js';
35
+ import { Stats } from './components/Stats.js';
36
+ import { Tabs } from './components/Tabs.js';
37
+ import { Testimonial } from './components/Testimonial.js';
38
+ import { Text } from './components/Text.js';
39
+ import { Video } from './components/Video.js';
40
+ export * from './components/Accordion.js';
41
+ export * from './components/AnnouncementBar.js';
42
+ export * from './components/Button.js';
43
+ export * from './components/CategoryGrid.js';
44
+ export * from './components/CategoryList.js';
45
+ export * from './components/Column.js';
46
+ export * from './components/ContactFormEmbed.js';
47
+ export * from './components/ContentSlider.js';
48
+ export * from './components/FeatureList.js';
49
+ export * from './components/Heading.js';
50
+ export * from './components/Hero.js';
51
+ export * from './components/Icons.js';
52
+ export * from './components/icon-catalog.js';
53
+ export * from './components/IconPickerField.js';
54
+ export * from './components/Image.js';
55
+ export * from './components/ImageSlider.js';
56
+ export * from './components/InsertBlock.js';
57
+ export * from './components/InsertTemplate.js';
58
+ export * from './components/LogoStrip.js';
59
+ export * from './components/Map.js';
60
+ export * from './components/MissingComponentPlaceholder.js';
61
+ export * from './components/NewsletterSignup.js';
62
+ export * from './components/ProductCard.js';
63
+ export * from './components/ProductGrid.js';
64
+ export * from './components/ProductSlider.js';
65
+ export * from './components/RawHtml.js';
66
+ export * from './components/RawJs.js';
67
+ export * from './components/RichContent.js';
68
+ export { RichContentEditorField } from './components/RichContentEditorField.js';
69
+ export { coerceRichContentProps, defaultRichContent, htmlFromTiptap, richContentExtensions, sanitizeRichHtml, } from './components/rich-content-shared.js';
70
+ export * from './components/Row.js';
71
+ export * from './components/SimpleTable.js';
72
+ export * from './components/Slide.js';
73
+ export * from './components/Social.js';
74
+ export * from './components/social-networks.js';
75
+ export * from './components/Spacer.js';
76
+ export * from './components/Stats.js';
77
+ export * from './components/Tabs.js';
78
+ export * from './components/Testimonial.js';
79
+ export * from './components/Text.js';
80
+ export * from './components/Video.js';
81
+ export * from './components/CmsPageContainer.js';
82
+ export * from './components/render-context.js';
83
+ export * from './components/catalog-preview-context.js';
84
+ export * from './components/box-styles.js';
85
+ export * from './schema/component-types.js';
86
+ export * from './schema/catalog-types.js';
87
+ export * from './utils/walk-asset-ids.js';
88
+ /**
89
+ * The CMS renderer map — **the React half only**, keyed by namespaced block name
90
+ * (feature 096, T301; `contracts/block-definition.md` §4.3).
91
+ *
92
+ * **The `categories` block is gone and nothing in this package replaces it.**
93
+ * A section is declared by the module whose blocks occupy it and is served,
94
+ * merged across the present modules, by
95
+ * `GET /api/v1/admin/cms/page-builder/config` — so a module contributing a
96
+ * block into a section no longer has to edit a map in a package it does not
97
+ * own, which is FR-009 and the shape feature 091 removed from the admin. The
98
+ * eight CMS sections it listed are `cms`' `blockCategories`, and the five
99
+ * Catalog entries are `catalog`'s.
100
+ *
101
+ * `defaultExpanded` went with it and no schema field replaces it (D-11).
102
+ * Measured on Puck `0.20.2`: `ComponentList` reads `{ expanded = true }`, so
103
+ * `defaultExpanded: true` — which is what all four sections wrote — is
104
+ * indistinguishable from omitting the field. Deleting it is behaviour-preserving.
105
+ */
106
+ export const defaultPageBuilderConfig = {
107
+ components: {
108
+ 'cms.Row': definePageBuilderComponent({
109
+ ...Row,
110
+ contexts: ['cms'],
111
+ responsiveFields: [
112
+ 'contentMaxWidth',
113
+ 'customMaxWidthPx',
114
+ 'contentPosition',
115
+ 'minHeight',
116
+ 'gap',
117
+ 'rowGap',
118
+ 'verticalAlign',
119
+ 'margin',
120
+ 'padding',
121
+ 'border',
122
+ ],
123
+ }),
124
+ 'cms.Column': definePageBuilderComponent({
125
+ ...Column,
126
+ contexts: ['cms'],
127
+ responsiveFields: ['span', 'margin', 'padding', 'border'],
128
+ }),
129
+ 'cms.Text': definePageBuilderComponent({
130
+ ...Text,
131
+ contexts: ['cms'],
132
+ responsiveFields: ['fontSize', 'fontWeight', 'textAlign', 'lineHeight', 'margin', 'padding', 'border'],
133
+ }),
134
+ 'cms.RichContent': definePageBuilderComponent({
135
+ ...withHideOn(RichContent),
136
+ contexts: ['cms'],
137
+ responsiveFields: ['margin', 'padding', 'border'],
138
+ }),
139
+ 'cms.Heading': definePageBuilderComponent({
140
+ ...Heading,
141
+ contexts: ['cms'],
142
+ responsiveFields: ['fontSize', 'fontWeight', 'textAlign', 'lineHeight', 'margin', 'padding', 'border'],
143
+ }),
144
+ 'cms.Button': definePageBuilderComponent({
145
+ ...Button,
146
+ contexts: ['cms'],
147
+ responsiveFields: ['variant', 'margin', 'padding', 'border'],
148
+ }),
149
+ 'cms.Image': definePageBuilderComponent({
150
+ ...Image,
151
+ contexts: ['cms'],
152
+ responsiveFields: ['widthMode', 'widthPx', 'align', 'margin', 'padding', 'border'],
153
+ }),
154
+ 'cms.Icons': definePageBuilderComponent({
155
+ ...Icons,
156
+ contexts: ['cms'],
157
+ responsiveFields: ['align', 'margin', 'padding', 'border'],
158
+ }),
159
+ 'cms.Social': definePageBuilderComponent({
160
+ ...Social,
161
+ contexts: ['cms'],
162
+ responsiveFields: ['align', 'margin', 'padding', 'border'],
163
+ }),
164
+ 'cms.Spacer': definePageBuilderComponent({
165
+ ...Spacer,
166
+ contexts: ['cms'],
167
+ responsiveFields: ['heightPx'],
168
+ }),
169
+ 'cms.FeatureList': definePageBuilderComponent({
170
+ ...FeatureList,
171
+ contexts: ['cms'],
172
+ responsiveFields: ['columns', 'gap', 'margin', 'padding', 'border'],
173
+ }),
174
+ 'cms.Hero': definePageBuilderComponent({
175
+ ...Hero,
176
+ contexts: ['cms'],
177
+ responsiveFields: ['minHeightPx', 'margin', 'padding', 'border'],
178
+ }),
179
+ 'cms.LogoStrip': definePageBuilderComponent({
180
+ ...LogoStrip,
181
+ contexts: ['cms'],
182
+ responsiveFields: ['margin', 'padding', 'border'],
183
+ }),
184
+ 'cms.Testimonial': definePageBuilderComponent({
185
+ ...Testimonial,
186
+ contexts: ['cms'],
187
+ responsiveFields: ['margin', 'padding', 'border'],
188
+ }),
189
+ 'cms.Stats': definePageBuilderComponent({
190
+ ...Stats,
191
+ contexts: ['cms'],
192
+ responsiveFields: ['columns', 'margin', 'padding', 'border'],
193
+ }),
194
+ 'cms.AnnouncementBar': definePageBuilderComponent({
195
+ ...AnnouncementBar,
196
+ contexts: ['cms'],
197
+ }),
198
+ 'cms.SimpleTable': definePageBuilderComponent({
199
+ ...SimpleTable,
200
+ contexts: ['cms'],
201
+ responsiveFields: ['margin', 'padding', 'border'],
202
+ }),
203
+ 'cms.NewsletterSignup': definePageBuilderComponent({
204
+ ...NewsletterSignup,
205
+ contexts: ['cms'],
206
+ responsiveFields: ['margin', 'padding', 'border'],
207
+ }),
208
+ 'cms.ContactFormEmbed': definePageBuilderComponent({
209
+ ...ContactFormEmbed,
210
+ contexts: ['cms'],
211
+ responsiveFields: ['margin', 'padding', 'border'],
212
+ }),
213
+ 'cms.Video': definePageBuilderComponent({
214
+ ...Video,
215
+ contexts: ['cms'],
216
+ responsiveFields: ['maxWidth', 'align', 'margin', 'padding', 'border'],
217
+ }),
218
+ 'cms.Map': definePageBuilderComponent({
219
+ ...Map,
220
+ contexts: ['cms'],
221
+ responsiveFields: ['height', 'margin', 'padding', 'border'],
222
+ }),
223
+ 'catalog.ProductCard': definePageBuilderComponent({
224
+ ...ProductCard,
225
+ contexts: ['cms'],
226
+ responsiveFields: ['maxWidthPx', 'imageHeightPx', 'margin', 'padding', 'border'],
227
+ }),
228
+ 'catalog.ProductGrid': definePageBuilderComponent({
229
+ ...ProductGrid,
230
+ contexts: ['cms'],
231
+ responsiveFields: ['columns', 'gap', 'view', 'margin', 'padding', 'border'],
232
+ }),
233
+ 'catalog.ProductSlider': definePageBuilderComponent({
234
+ ...ProductSlider,
235
+ contexts: ['cms'],
236
+ responsiveFields: ['slidesPerView', 'gap', 'margin', 'padding', 'border'],
237
+ }),
238
+ 'catalog.CategoryList': definePageBuilderComponent({
239
+ ...CategoryList,
240
+ contexts: ['cms'],
241
+ responsiveFields: ['margin', 'padding', 'border'],
242
+ }),
243
+ 'catalog.CategoryGrid': definePageBuilderComponent({
244
+ ...CategoryGrid,
245
+ contexts: ['cms'],
246
+ responsiveFields: ['columns', 'gap', 'margin', 'padding', 'border'],
247
+ }),
248
+ 'cms.ContentSlider': definePageBuilderComponent({
249
+ ...ContentSlider,
250
+ contexts: ['cms'],
251
+ responsiveFields: ['slidesPerView', 'gap', 'margin', 'padding', 'border'],
252
+ }),
253
+ 'cms.Slide': definePageBuilderComponent({
254
+ ...Slide,
255
+ contexts: ['cms'],
256
+ responsiveFields: ['margin', 'padding', 'border'],
257
+ }),
258
+ 'cms.ImageSlider': definePageBuilderComponent({
259
+ ...ImageSlider,
260
+ contexts: ['cms'],
261
+ responsiveFields: ['slidesPerView', 'gap', 'margin', 'padding', 'border'],
262
+ }),
263
+ 'cms.Tabs': definePageBuilderComponent({
264
+ ...Tabs,
265
+ contexts: ['cms'],
266
+ responsiveFields: ['margin', 'padding', 'border'],
267
+ }),
268
+ 'cms.Accordion': definePageBuilderComponent({
269
+ ...Accordion,
270
+ contexts: ['cms'],
271
+ responsiveFields: ['margin', 'padding', 'border'],
272
+ }),
273
+ 'cms.RawHtml': definePageBuilderComponent({
274
+ ...RawHtml,
275
+ contexts: ['cms'],
276
+ responsiveFields: ['margin', 'padding', 'border'],
277
+ }),
278
+ 'cms.RawJs': definePageBuilderComponent({
279
+ ...RawJs,
280
+ contexts: ['cms'],
281
+ responsiveFields: ['margin', 'padding', 'border'],
282
+ }),
283
+ 'cms.InsertBlock': definePageBuilderComponent({
284
+ ...withHideOn(InsertBlock),
285
+ contexts: ['cms'],
286
+ }),
287
+ 'cms.InsertTemplate': definePageBuilderComponent({
288
+ ...withHideOn(InsertTemplate),
289
+ contexts: ['cms'],
290
+ }),
291
+ },
292
+ };
293
+ /**
294
+ * Builds a per-name placeholder ComponentConfig for a Page Builder
295
+ * component whose React renderer this bundle does not carry — because the
296
+ * descriptor declares a block no local renderer answers, because the owning
297
+ * module is switched off or not installed, or because the name is one the
298
+ * block-name migration did not recognise and left alone. FR-020 says those are
299
+ * one path, and this is it.
300
+ *
301
+ * `visible` is the surface's answer, not the placeholder's. On an editing
302
+ * surface an operator has to be told **why** a block vanished, so the
303
+ * placeholder renders its note; on a customer-facing one it renders an empty
304
+ * span, which is what `MissingComponentPlaceholder` decides for itself from the
305
+ * `?cms_admin=1` preview parameter when nothing says otherwise. Passing it
306
+ * explicitly is what makes the admin case work at all: nothing in this
307
+ * repository has ever set that query parameter, so every placeholder the editor
308
+ * merged before feature 096's T602 rendered as nothing — a block that has lost
309
+ * its module and a block that has been deleted looked identical on the canvas.
310
+ */
311
+ export function makeMissingComponentConfig(componentName, ownerModule, options = {}) {
312
+ const forced = options.visible === true ? { isAdminPreview: true } : {};
313
+ return {
314
+ label: `${componentName} (missing renderer)`,
315
+ fields: MissingComponentPlaceholder.fields,
316
+ defaultProps: { componentName, ownerModule, ...forced },
317
+ render: (props) => MissingComponentPlaceholder.render({
318
+ componentName,
319
+ ownerModule,
320
+ ...props,
321
+ ...forced,
322
+ }),
323
+ };
324
+ }
325
+ /**
326
+ * The editor's degradation merge — feature 096, T602 (FR-019, FR-020).
327
+ *
328
+ * Give every one of `storedNames` that `config` cannot render a visible,
329
+ * data-preserving placeholder, and change nothing else.
330
+ *
331
+ * ## Why the stored document is a source of names at all
332
+ *
333
+ * The editor already merged a placeholder for a name the *descriptor* declares
334
+ * with no local renderer. That population does not contain the case
335
+ * Constitution XVII produces: a switched-off module's blocks are filtered out
336
+ * of the descriptor (FR-010), so after a deactivation the name on an operator's
337
+ * page is in neither the renderer map nor the descriptor and the merge saw it
338
+ * nowhere. The document is the one place it is still written down — which is
339
+ * the whole point of namespacing the persisted name in the first place.
340
+ *
341
+ * ## It takes names, not the document
342
+ *
343
+ * The caller walks the document with `countBlockNames`, which is the one
344
+ * structural walk this repository has. That is not ceremony: a React caller
345
+ * needs a **stable** memo key, and the set of names a document carries changes
346
+ * far less often than the document does — a keystroke inside a text block moves
347
+ * the document and not the names, and a merge keyed on the document would
348
+ * rebuild the whole Puck config on every one.
349
+ *
350
+ * ## What it deliberately does not do
351
+ *
352
+ * It adds **no category entry**. A degraded block must stay visible and
353
+ * editable where it already is; it is not a block anyone may insert, and the
354
+ * palette is the surface that answers the second question.
355
+ *
356
+ * It does not decide **presence**. Which names this config keys is the caller's
357
+ * answer, arrived at from the descriptor; this function only says what happens
358
+ * to a stored name that answer does not cover — which is why one unknown name
359
+ * behaves identically whatever made it unknown.
360
+ */
361
+ export function withMissingBlockPlaceholders(config, storedNames) {
362
+ const components = (config.components ?? {});
363
+ const missing = [...new Set(storedNames)].filter((name) => !(name in components));
364
+ if (missing.length === 0)
365
+ return config;
366
+ const merged = { ...components };
367
+ for (const name of missing) {
368
+ // `ownerOf` answers `null` for a name that states no owner — an
369
+ // unrecognised one the migration left byte-identical. The placeholder then
370
+ // names the block and has no module to name, which is the one thing that
371
+ // differs between FR-020's three causes and is a property of the name
372
+ // rather than of the path it took.
373
+ merged[name] = makeMissingComponentConfig(name, ownerOf(name) ?? '', { visible: true });
374
+ }
375
+ return { ...config, components: merged };
376
+ }
377
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /** Minimal catalog shapes for CMS storefront fetch — avoids @endora-commerce/contracts in this package. */
2
+ export interface CmsProductSummary {
3
+ id: string;
4
+ slug: string;
5
+ name: string;
6
+ sku: string;
7
+ primaryAssetUrl: string | null;
8
+ price: {
9
+ amount: number;
10
+ currency: string;
11
+ } | null;
12
+ stockLevel: number | null;
13
+ }
14
+ export interface CmsCategoryNode {
15
+ id: string;
16
+ name: string;
17
+ slug: string;
18
+ sortOrder: number;
19
+ productCount: number;
20
+ children: CmsCategoryNode[];
21
+ }
22
+ //# sourceMappingURL=catalog-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog-types.d.ts","sourceRoot":"","sources":["../../src/schema/catalog-types.ts"],"names":[],"mappings":"AAAA,2GAA2G;AAC3G,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACnD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,eAAe,EAAE,CAAC;CAC7B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=catalog-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog-types.js","sourceRoot":"","sources":["../../src/schema/catalog-types.ts"],"names":[],"mappings":""}