efficient-web-builder 1.0.0 → 2.0.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 (340) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/README.md +2 -1
  3. package/dist/components/AddBlockRow.d.ts +1 -7
  4. package/dist/components/AddBlockRow.js +1 -1
  5. package/dist/components/AddChildRow.d.ts +1 -6
  6. package/dist/components/AddChildRow.js +1 -1
  7. package/dist/components/AddSidePanel.d.ts +2 -39
  8. package/dist/components/AddSidePanel.js +1 -1
  9. package/dist/components/BlockGapField.js +1 -1
  10. package/dist/components/BlogPostSource.js +1 -1
  11. package/dist/components/CardShadowField.js +1 -1
  12. package/dist/components/ChatSettingsPanel.js +1 -1
  13. package/dist/components/CornersField.d.ts +0 -1
  14. package/dist/components/CornersField.js +1 -1
  15. package/dist/components/DuplicateToPageMenu.js +1 -1
  16. package/dist/components/EditorScreenMount.d.ts +1 -0
  17. package/dist/components/EditorScreenMount.js +1 -0
  18. package/dist/components/EditorStoreProvider.d.ts +1 -0
  19. package/dist/components/EditorStoreProvider.js +1 -0
  20. package/dist/components/HeroImageField.js +1 -1
  21. package/dist/components/HeroSection.d.ts +2 -6
  22. package/dist/components/HeroSection.js +4 -4
  23. package/dist/components/HoverEffectField.js +1 -1
  24. package/dist/components/ImageFocusRow.js +1 -1
  25. package/dist/components/KeepHint.d.ts +5 -0
  26. package/dist/components/KeepHint.js +1 -0
  27. package/dist/components/LocationsGroupedField.js +1 -1
  28. package/dist/components/MediaSidePanel.d.ts +1 -6
  29. package/dist/components/MediaSidePanel.js +1 -1
  30. package/dist/components/MediaUploadField.js +1 -1
  31. package/dist/components/MultiSelectField.d.ts +4 -1
  32. package/dist/components/MultiSelectField.js +1 -1
  33. package/dist/components/NodeContextMenu.d.ts +2 -96
  34. package/dist/components/NodeContextMenu.js +1 -1
  35. package/dist/components/PageEditGuardNotices.d.ts +1 -1
  36. package/dist/components/PageEditGuardNotices.js +1 -1
  37. package/dist/components/PanelToggleIcon.d.ts +1 -3
  38. package/dist/components/PanelToggleIcon.js +1 -1
  39. package/dist/components/PartSettingsPanel.d.ts +5 -0
  40. package/dist/components/PartSettingsPanel.js +1 -1
  41. package/dist/components/PhotographyField.js +1 -1
  42. package/dist/components/PreviewDeviceContext.d.ts +2 -4
  43. package/dist/components/PreviewDeviceContext.js +1 -1
  44. package/dist/components/PreviewPartsContext.d.ts +1 -3
  45. package/dist/components/PreviewPartsContext.js +1 -1
  46. package/dist/components/SearchSelectField.d.ts +3 -1
  47. package/dist/components/SearchSelectField.js +1 -1
  48. package/dist/components/SectionEditor.d.ts +2 -5
  49. package/dist/components/SectionEditor.js +1 -1
  50. package/dist/components/SectionEditorShell.d.ts +1 -1
  51. package/dist/components/SectionEditorShell.js +1 -1
  52. package/dist/components/SectionThemePicker.d.ts +3 -1
  53. package/dist/components/SectionThemePicker.js +1 -1
  54. package/dist/components/ShadowColourField.js +1 -1
  55. package/dist/components/SidePanelHead.d.ts +1 -23
  56. package/dist/components/SidePanelHead.js +1 -1
  57. package/dist/components/SideSpaceField.d.ts +0 -1
  58. package/dist/components/SideSpaceField.js +1 -1
  59. package/dist/components/SiteEditorProvider.d.ts +3 -10
  60. package/dist/components/SiteEditorProvider.js +1 -1
  61. package/dist/components/SiteWidthField.d.ts +0 -1
  62. package/dist/components/SiteWidthField.js +1 -1
  63. package/dist/components/SlotChildActionsContext.d.ts +2 -13
  64. package/dist/components/SlotChildActionsContext.js +1 -1
  65. package/dist/components/SocialLinksPanel.js +1 -1
  66. package/dist/components/SourceStatus.js +1 -1
  67. package/dist/components/StandaloneSectionEditor.d.ts +1 -0
  68. package/dist/components/StandaloneSectionEditor.js +1 -1
  69. package/dist/components/StorefrontDocumentContext.d.ts +2 -67
  70. package/dist/components/StorefrontDocumentContext.js +1 -1
  71. package/dist/components/StorefrontEditor.d.ts +1 -0
  72. package/dist/components/StorefrontEditor.js +1 -1
  73. package/dist/components/StorefrontEditorChrome.d.ts +1 -1
  74. package/dist/components/StorefrontEditorChrome.js +1 -1
  75. package/dist/components/StorefrontLinkField.d.ts +9 -0
  76. package/dist/components/StorefrontLinkField.js +1 -1
  77. package/dist/components/ThemeField.js +1 -1
  78. package/dist/components/TickerSettingsPanel.js +1 -1
  79. package/dist/components/UiIcon.d.ts +2 -10
  80. package/dist/components/UiIcon.js +1 -1
  81. package/dist/components/WebsiteScreenParts.d.ts +2 -0
  82. package/dist/components/WebsiteScreenParts.js +1 -0
  83. package/dist/components/WidthFollowField.js +1 -1
  84. package/dist/components/panel-widths.d.ts +2 -12
  85. package/dist/components/panel-widths.js +1 -1
  86. package/dist/components/storefront-editor.css +125 -986
  87. package/dist/components/useFooterFocus.d.ts +2 -0
  88. package/dist/components/useFooterFocus.js +1 -0
  89. package/dist/components/useLocationsTree.d.ts +6 -0
  90. package/dist/components/useLocationsTree.js +1 -0
  91. package/dist/components/usePartBridge.d.ts +1 -9
  92. package/dist/components/usePartBridge.js +1 -1
  93. package/dist/components/usePinnedChromeSeed.d.ts +2 -0
  94. package/dist/components/usePinnedChromeSeed.js +1 -0
  95. package/dist/components/useSocialSettings.js +1 -1
  96. package/dist/components/useStorefrontBlogPosts.js +1 -1
  97. package/dist/lib/client-only.d.ts +1 -0
  98. package/dist/lib/client-only.js +1 -0
  99. package/dist/lib/content/view-tiers.d.ts +2 -6
  100. package/dist/lib/content/view-tiers.js +1 -1
  101. package/dist/lib/editor-admin-bridge.d.ts +2 -29
  102. package/dist/lib/editor-admin-bridge.js +1 -1
  103. package/dist/lib/editor-backend-error.d.ts +2 -0
  104. package/dist/lib/editor-backend-error.js +1 -0
  105. package/dist/lib/editor-blocks.d.ts +2 -2
  106. package/dist/lib/editor-chrome.d.ts +2 -52
  107. package/dist/lib/editor-chrome.js +1 -1
  108. package/dist/lib/editor-document-adapter.d.ts +3 -51
  109. package/dist/lib/editor-document-adapter.js +1 -1
  110. package/dist/lib/editor-document-addressing.d.ts +2 -0
  111. package/dist/lib/editor-document-addressing.js +1 -0
  112. package/dist/lib/editor-document-contract.d.ts +1 -0
  113. package/dist/lib/editor-document-contract.js +0 -0
  114. package/dist/lib/editor-document-hooks.d.ts +1 -15
  115. package/dist/lib/editor-document-switch.d.ts +2 -0
  116. package/dist/lib/editor-document-switch.js +1 -0
  117. package/dist/lib/editor-failure.d.ts +1 -4
  118. package/dist/lib/editor-failure.js +1 -1
  119. package/dist/lib/editor-host-inbound.d.ts +1 -1
  120. package/dist/lib/editor-host-inbound.js +1 -1
  121. package/dist/lib/editor-host.d.ts +2 -135
  122. package/dist/lib/editor-host.js +1 -1
  123. package/dist/lib/editor-key-scope.d.ts +1 -3
  124. package/dist/lib/editor-key-scope.js +1 -1
  125. package/dist/lib/editor-load-error.d.ts +1 -4
  126. package/dist/lib/editor-load-error.js +1 -1
  127. package/dist/lib/editor-media-panel.d.ts +2 -23
  128. package/dist/lib/editor-media-panel.js +1 -1
  129. package/dist/lib/editor-media-picker.d.ts +2 -12
  130. package/dist/lib/editor-media-picker.js +1 -1
  131. package/dist/lib/editor-page-lock.d.ts +1 -1
  132. package/dist/lib/editor-page-lock.js +1 -1
  133. package/dist/lib/editor-screen.d.ts +2 -0
  134. package/dist/lib/editor-screen.js +1 -0
  135. package/dist/lib/editor-section-templates.d.ts +1 -2
  136. package/dist/lib/editor-section-templates.js +1 -1
  137. package/dist/lib/editor-session-context.d.ts +1 -7
  138. package/dist/lib/editor-session-context.js +1 -1
  139. package/dist/lib/editor-session.d.ts +2 -45
  140. package/dist/lib/editor-session.js +1 -1
  141. package/dist/lib/editor-site-slug.js +1 -1
  142. package/dist/lib/editor-theme.d.ts +1 -1
  143. package/dist/lib/editor-theme.js +1 -1
  144. package/dist/lib/hero-arrows.d.ts +1 -1
  145. package/dist/lib/links/link-filters.d.ts +1 -0
  146. package/dist/lib/links/link-filters.js +0 -0
  147. package/dist/lib/links/link-picker-setup.d.ts +29 -0
  148. package/dist/lib/links/link-picker-setup.js +1 -0
  149. package/dist/lib/puck/ColourControl.d.ts +4 -1
  150. package/dist/lib/puck/ColourControl.js +1 -1
  151. package/dist/lib/puck/add-palette.d.ts +3 -9
  152. package/dist/lib/puck/add-palette.js +1 -1
  153. package/dist/lib/puck/add-target-types.d.ts +1 -0
  154. package/dist/lib/puck/add-target-types.js +0 -0
  155. package/dist/lib/puck/add-target.d.ts +2 -9
  156. package/dist/lib/puck/block-choice.d.ts +2 -0
  157. package/dist/lib/puck/block-choice.js +1 -0
  158. package/dist/lib/puck/block-offer.js +1 -1
  159. package/dist/lib/puck/block-types-in.d.ts +1 -1
  160. package/dist/lib/puck/block-types-in.js +1 -1
  161. package/dist/lib/puck/blocks/general/index.d.ts +2 -2
  162. package/dist/lib/puck/content-tree.d.ts +2 -43
  163. package/dist/lib/puck/content-tree.js +1 -1
  164. package/dist/lib/puck/controls.d.ts +11 -22
  165. package/dist/lib/puck/controls.js +1 -1
  166. package/dist/lib/puck/device-fields.d.ts +2 -24
  167. package/dist/lib/puck/device-fields.js +1 -1
  168. package/dist/lib/puck/field-buckets.d.ts +2 -0
  169. package/dist/lib/puck/field-buckets.js +1 -0
  170. package/dist/lib/puck/field-groups.d.ts +3 -3
  171. package/dist/lib/puck/field-groups.js +1 -1
  172. package/dist/lib/puck/field-markers.d.ts +2 -16
  173. package/dist/lib/puck/field-markers.js +1 -1
  174. package/dist/lib/puck/footer-block-row-name.d.ts +4 -0
  175. package/dist/lib/puck/footer-block-row-name.js +1 -0
  176. package/dist/lib/puck/footer-blocks.d.ts +2 -10
  177. package/dist/lib/puck/footer-blocks.js +1 -1
  178. package/dist/lib/puck/hidable.d.ts +2 -9
  179. package/dist/lib/puck/hidable.js +1 -1
  180. package/dist/lib/puck/palette-sections.d.ts +2 -0
  181. package/dist/lib/puck/palette-sections.js +1 -0
  182. package/dist/lib/puck/panel-fields.d.ts +2 -12
  183. package/dist/lib/puck/panel-fields.js +1 -1
  184. package/dist/lib/puck/panel-no-control-mark.d.ts +2 -7
  185. package/dist/lib/puck/panel-no-control-mark.js +1 -1
  186. package/dist/lib/puck/part-id.d.ts +1 -0
  187. package/dist/lib/puck/part-id.js +1 -0
  188. package/dist/lib/puck/pinned-seed-gate.d.ts +2 -12
  189. package/dist/lib/puck/pinned-seed-gate.js +1 -1
  190. package/dist/lib/puck/preview-click.d.ts +1 -2
  191. package/dist/lib/puck/preview-click.js +1 -1
  192. package/dist/lib/puck/preview-dom.d.ts +1 -6
  193. package/dist/lib/puck/preview-dom.js +1 -1
  194. package/dist/lib/puck/preview-events.d.ts +2 -0
  195. package/dist/lib/puck/preview-events.js +1 -0
  196. package/dist/lib/puck/preview-selection-context.d.ts +2 -19
  197. package/dist/lib/puck/preview-selection-context.js +1 -1
  198. package/dist/lib/puck/section-doc.d.ts +1 -5
  199. package/dist/lib/puck/section-doc.js +1 -1
  200. package/dist/lib/puck/section-groups.d.ts +1 -1
  201. package/dist/lib/puck/slot-child-name.d.ts +2 -8
  202. package/dist/lib/puck/slot-child-name.js +1 -1
  203. package/dist/lib/puck/slot-heal.d.ts +1 -2
  204. package/dist/lib/puck/slot-heal.js +1 -1
  205. package/dist/lib/puck/slot-section-spec.d.ts +1 -0
  206. package/dist/lib/puck/slot-section-spec.js +0 -0
  207. package/dist/lib/puck/slot-specs.d.ts +2 -13
  208. package/dist/lib/puck/style-clipboard.d.ts +1 -19
  209. package/dist/lib/puck/style-clipboard.js +1 -1
  210. package/dist/lib/puck/text-control-kinds.d.ts +2 -13
  211. package/dist/lib/puck/text-control-kinds.js +1 -1
  212. package/dist/lib/puck/text-parts.d.ts +2 -5
  213. package/dist/lib/puck/text-parts.js +1 -1
  214. package/dist/lib/puck/tree-reveal.d.ts +1 -11
  215. package/dist/lib/puck/tree-reveal.js +1 -1
  216. package/dist/lib/puck/use-section-ops.d.ts +2 -25
  217. package/dist/lib/puck/use-section-ops.js +1 -1
  218. package/dist/lib/reel.d.ts +1 -1
  219. package/dist/lib/section-template-types.d.ts +1 -21
  220. package/dist/lib/sections/new-section-node.d.ts +2 -0
  221. package/dist/lib/sections/new-section-node.js +1 -0
  222. package/dist/lib/source-rules/accent-token-name.d.ts +20 -0
  223. package/dist/lib/source-rules/accent-token-name.js +4 -0
  224. package/dist/lib/source-rules/button-corners.d.ts +13 -0
  225. package/dist/lib/source-rules/button-corners.js +2 -0
  226. package/dist/lib/source-rules/editor-chrome-note.d.ts +16 -0
  227. package/dist/lib/source-rules/editor-chrome-note.js +13 -0
  228. package/dist/lib/source-rules/editor-context-menu.d.ts +5 -0
  229. package/dist/lib/source-rules/editor-context-menu.js +4 -0
  230. package/dist/lib/source-rules/editor-puck-drag-off.d.ts +8 -0
  231. package/dist/lib/source-rules/editor-puck-drag-off.js +4 -0
  232. package/dist/lib/source-rules/efficient-easel-version.d.ts +9 -0
  233. package/dist/lib/source-rules/efficient-easel-version.js +2 -0
  234. package/dist/lib/source-rules/every-button-follows-the-button-colour.d.ts +12 -0
  235. package/dist/lib/source-rules/every-button-follows-the-button-colour.js +7 -0
  236. package/dist/lib/source-rules/flat-theme-palette.d.ts +10 -0
  237. package/dist/lib/source-rules/flat-theme-palette.js +8 -0
  238. package/dist/lib/source-rules/full-width-means-full.d.ts +8 -0
  239. package/dist/lib/source-rules/full-width-means-full.js +2 -0
  240. package/dist/lib/source-rules/heading-ceiling-sweep.d.ts +11 -0
  241. package/dist/lib/source-rules/heading-ceiling-sweep.js +8 -0
  242. package/dist/lib/source-rules/label-hints.d.ts +7 -0
  243. package/dist/lib/source-rules/label-hints.js +5 -0
  244. package/dist/lib/source-rules/label-vocabulary.d.ts +14 -0
  245. package/dist/lib/source-rules/label-vocabulary.js +5 -0
  246. package/dist/lib/source-rules/mirrored-rows-agree.d.ts +19 -0
  247. package/dist/lib/source-rules/mirrored-rows-agree.js +10 -0
  248. package/dist/lib/source-rules/no-comment-in-jsx.d.ts +9 -0
  249. package/dist/lib/source-rules/no-comment-in-jsx.js +7 -0
  250. package/dist/lib/source-rules/no-glyph-rows.d.ts +15 -0
  251. package/dist/lib/source-rules/no-glyph-rows.js +4 -0
  252. package/dist/lib/source-rules/one-colour-control.d.ts +7 -0
  253. package/dist/lib/source-rules/one-colour-control.js +2 -0
  254. package/dist/lib/source-rules/one-dropdown.d.ts +10 -0
  255. package/dist/lib/source-rules/one-dropdown.js +4 -0
  256. package/dist/lib/source-rules/one-editable-list.d.ts +16 -0
  257. package/dist/lib/source-rules/one-editable-list.js +6 -0
  258. package/dist/lib/source-rules/one-editor-list.d.ts +7 -0
  259. package/dist/lib/source-rules/one-editor-list.js +3 -0
  260. package/dist/lib/source-rules/one-right-click.d.ts +10 -0
  261. package/dist/lib/source-rules/one-right-click.js +2 -0
  262. package/dist/lib/source-rules/one-switch.d.ts +9 -0
  263. package/dist/lib/source-rules/one-switch.js +7 -0
  264. package/dist/lib/source-rules/one-up-level-link.d.ts +16 -0
  265. package/dist/lib/source-rules/one-up-level-link.js +18 -0
  266. package/dist/lib/source-rules/panel-colour-tokens.d.ts +48 -0
  267. package/dist/lib/source-rules/panel-colour-tokens.js +20 -0
  268. package/dist/lib/source-rules/panel-no-divider-lines.d.ts +14 -0
  269. package/dist/lib/source-rules/panel-no-divider-lines.js +10 -0
  270. package/dist/lib/source-rules/panel-one-arrow.d.ts +21 -0
  271. package/dist/lib/source-rules/panel-one-arrow.js +1 -0
  272. package/dist/lib/source-rules/panel-one-hover.d.ts +8 -0
  273. package/dist/lib/source-rules/panel-one-hover.js +2 -0
  274. package/dist/lib/source-rules/panel-rows-use-the-shared-row.d.ts +23 -0
  275. package/dist/lib/source-rules/panel-rows-use-the-shared-row.js +22 -0
  276. package/dist/lib/source-rules/part-slider-fills-row.d.ts +11 -0
  277. package/dist/lib/source-rules/part-slider-fills-row.js +29 -0
  278. package/dist/lib/source-rules/part-style-naming.d.ts +10 -0
  279. package/dist/lib/source-rules/part-style-naming.js +2 -0
  280. package/dist/lib/source-rules/puck-document-surfaces.d.ts +16 -0
  281. package/dist/lib/source-rules/puck-document-surfaces.js +8 -0
  282. package/dist/lib/source-rules/reduced-motion.d.ts +26 -0
  283. package/dist/lib/source-rules/reduced-motion.js +9 -0
  284. package/dist/lib/source-rules/route-content-width.d.ts +22 -0
  285. package/dist/lib/source-rules/route-content-width.js +5 -0
  286. package/dist/lib/source-rules/rule.d.ts +21 -0
  287. package/dist/lib/source-rules/rule.js +1 -0
  288. package/dist/lib/source-rules/section-theme-preview.d.ts +9 -0
  289. package/dist/lib/source-rules/section-theme-preview.js +8 -0
  290. package/dist/lib/source-rules/site-gutter.d.ts +6 -0
  291. package/dist/lib/source-rules/site-gutter.js +4 -0
  292. package/dist/lib/source-rules/site-square-by-default.d.ts +17 -0
  293. package/dist/lib/source-rules/site-square-by-default.js +3 -0
  294. package/dist/lib/source-rules/site-width.d.ts +11 -0
  295. package/dist/lib/source-rules/site-width.js +7 -0
  296. package/dist/lib/source-rules/size-token-paints.d.ts +8 -0
  297. package/dist/lib/source-rules/size-token-paints.js +11 -0
  298. package/dist/lib/source-rules/social-icons-import.d.ts +6 -0
  299. package/dist/lib/source-rules/social-icons-import.js +6 -0
  300. package/dist/lib/source-rules/source-status-is-shared.d.ts +7 -0
  301. package/dist/lib/source-rules/source-status-is-shared.js +1 -0
  302. package/dist/lib/source-rules/style-face-matches-size.d.ts +10 -0
  303. package/dist/lib/source-rules/style-face-matches-size.js +4 -0
  304. package/dist/lib/source-rules/support/accent-rename-bytes.d.ts +5 -0
  305. package/dist/lib/source-rules/support/accent-rename-bytes.js +1 -0
  306. package/dist/lib/source-rules/support/css-box-model.d.ts +5 -0
  307. package/dist/lib/source-rules/support/css-box-model.js +1 -0
  308. package/dist/lib/source-rules/support/css-length.d.ts +2 -0
  309. package/dist/lib/source-rules/support/css-length.js +1 -0
  310. package/dist/lib/source-rules/support/css-rules.d.ts +12 -0
  311. package/dist/lib/source-rules/support/css-rules.js +1 -0
  312. package/dist/lib/source-rules/support/css-source.d.ts +2 -0
  313. package/dist/lib/source-rules/support/css-source.js +3 -0
  314. package/dist/lib/source-rules/support/label-extraction.d.ts +14 -0
  315. package/dist/lib/source-rules/support/label-extraction.js +5 -0
  316. package/dist/lib/source-rules/support/panel-select-cascade.d.ts +72 -0
  317. package/dist/lib/source-rules/support/panel-select-cascade.js +2 -0
  318. package/dist/lib/source-rules/support/part-slider-call-sites.d.ts +9 -0
  319. package/dist/lib/source-rules/support/part-slider-call-sites.js +17 -0
  320. package/dist/lib/source-rules/support/registry-source.d.ts +14 -0
  321. package/dist/lib/source-rules/support/registry-source.js +3 -0
  322. package/dist/lib/source-rules/support/ts-source.d.ts +2 -0
  323. package/dist/lib/source-rules/support/ts-source.js +3 -0
  324. package/dist/lib/source-rules/theme-mode-controls-gone.d.ts +10 -0
  325. package/dist/lib/source-rules/theme-mode-controls-gone.js +5 -0
  326. package/dist/lib/source-rules/upload-intake-guard.d.ts +11 -0
  327. package/dist/lib/source-rules/upload-intake-guard.js +6 -0
  328. package/dist/lib/source-rules/word-styles.d.ts +8 -0
  329. package/dist/lib/source-rules/word-styles.js +4 -0
  330. package/dist/lib/theme-row-persist.js +1 -1
  331. package/dist/lib/theme-save-message.js +1 -1
  332. package/dist/lib/web-backend.d.ts +4 -59
  333. package/dist/lib/web-backend.js +1 -1
  334. package/dist/lib/website-document-addressing.d.ts +2 -0
  335. package/dist/lib/website-document-addressing.js +1 -0
  336. package/dist/lib/website-host-inbound.d.ts +1 -0
  337. package/dist/lib/website-host-inbound.js +1 -0
  338. package/dist/lib/website-session.d.ts +5 -0
  339. package/dist/lib/website-session.js +1 -0
  340. package/package.json +15 -5
@@ -1,2 +1 @@
1
- import type { SectionTemplateStore } from "./section-template-types.js";
2
- export declare const sectionTemplates: SectionTemplateStore;
1
+ export { sectionTemplates } from "efficient-easel/screen/lib/section-templates";
@@ -1 +1 @@
1
- import{backendOf as n}from"./editor-session.js";import{WebsiteBackendError as a}from"./web-backend.js";const o=()=>Promise.reject(new a("unavailable","This editor's backend keeps no section templates.")),m={list:()=>Promise.resolve([]),get:()=>Promise.resolve(null),ensure:o,save:o,update:o,rename:o,remove:o},t=()=>n().sectionTemplates??m,c={list:()=>t().list(),get:e=>t().get(e),ensure:(e,s,r)=>t().ensure(e,s,r),save:(e,s)=>t().save(e,s),update:(e,s)=>t().update(e,s),rename:(e,s)=>t().rename(e,s),remove:e=>t().remove(e)};export{c as sectionTemplates};
1
+ import{sectionTemplates as t}from"efficient-easel/screen/lib/section-templates";export{t as sectionTemplates};
@@ -1,7 +1 @@
1
- import { type ReactNode } from "react";
2
- import { type EditorSession } from "./editor-session.js";
3
- export declare function EditorSessionProvider({ session, children }: {
4
- session: EditorSession;
5
- children: ReactNode;
6
- }): import("react").JSX.Element;
7
- export declare function useEditorSession(): EditorSession;
1
+ export { EaselSessionProvider as EditorSessionProvider, useEaselSession as useEditorSession } from "efficient-easel/screen/lib/session-context";
@@ -1 +1 @@
1
- "use client";import{jsx as i}from"react/jsx-runtime";import{createContext as n,useContext as u,useEffect as c}from"react";import{activateEditorSession as r,currentEditorSession as d,deactivateEditorSession as s}from"./editor-session.js";const e=n(null);function E({session:t,children:o}){return r(t),c(()=>(r(t),()=>s(t)),[t]),i(e.Provider,{value:t,children:o})}function m(){return u(e)??d()}export{E as EditorSessionProvider,m as useEditorSession};
1
+ "use client";import{EaselSessionProvider as o,useEaselSession as i}from"efficient-easel/screen/lib/session-context";export{o as EditorSessionProvider,i as useEditorSession};
@@ -1,45 +1,2 @@
1
- import type { Config } from "efficient-easel/blocks";
2
- import type { EditorBlocks } from "./editor-blocks.js";
3
- import type { EditorChrome } from "./editor-chrome.js";
4
- import type { EditorDocumentHooks } from "./editor-document-hooks.js";
5
- import type { WebsiteBackend } from "./web-backend.js";
6
- export declare const EFFICIENT_BACKEND: unique symbol;
7
- export declare function isEfficientBackend(backend: WebsiteBackend | null | undefined): boolean;
8
- export interface EditorSession {
9
- readonly hostBackend: WebsiteBackend | null;
10
- readonly usesBridgedToken: boolean;
11
- readonly blocks: EditorBlocks | null;
12
- readonly registry: Config | null;
13
- readonly chrome: EditorChrome | null;
14
- readonly documentHooks: EditorDocumentHooks | null;
15
- readonly auth: {
16
- token: string | null;
17
- brandId: string | null;
18
- };
19
- readonly site: {
20
- documentId: string | null;
21
- bridgedId: string | null;
22
- };
23
- siteId(): string | null;
24
- cache<T>(key: string, make: () => T): T;
25
- forget(key?: string): void;
26
- }
27
- type DefaultBackend = (session: EditorSession) => WebsiteBackend;
28
- export declare function provideDefaultBackend(make: DefaultBackend): void;
29
- export declare function backendOf(session?: EditorSession): WebsiteBackend;
30
- export declare function sessionRegistry(session: EditorSession): Config;
31
- export declare function createEditorSession(options?: {
32
- backend?: WebsiteBackend | null;
33
- blocks?: EditorBlocks | null;
34
- registry?: Config | null;
35
- chrome?: EditorChrome | null;
36
- documentHooks?: EditorDocumentHooks | null;
37
- }): EditorSession;
38
- export declare function setSessionDocumentSite(session: EditorSession, siteId: string | null | undefined): void;
39
- export declare function setSessionBridgedSite(session: EditorSession, siteId: string | null | undefined): void;
40
- export declare function currentEditorSession(): EditorSession;
41
- export declare function activateEditorSession(session: EditorSession): void;
42
- export declare function deactivateEditorSession(session: EditorSession): void;
43
- export declare function efficientClientOpen(): boolean;
44
- export declare function resetAmbientEditorSession(): void;
45
- export {};
1
+ export { activateEaselSession as activateEditorSession, backendOf, createEaselSession as createEditorSession, currentEaselSession as currentEditorSession, deactivateEaselSession as deactivateEditorSession, EFFICIENT_BACKEND, efficientClientOpen, isEfficientBackend, provideDefaultBackend, resetAmbientEaselSession as resetAmbientEditorSession, sessionRegistry, setSessionBridgedSite, setSessionDocumentSite } from "efficient-easel/screen/lib/session";
2
+ export type { EaselSession as EditorSession, SessionBackend, SessionBlocks } from "efficient-easel/screen/lib/session";
@@ -1 +1 @@
1
- const g=Symbol.for("efficient-web.efficient-backend");function h(e){return!!e&&e[g]===!0}function u(e){return e?.trim()||null}let d=null;const l=new WeakMap;function m(e){d=e}function p(e=a()){if(e.hostBackend)return e.hostBackend;let t=l.get(e);if(!t){if(!d)throw new Error("efficient-web-builder: this editor was given no backend, and its host named no default one. Pass `backend`, or load the host's default backend first (the storefront's is lib/efficient-backend).");t=d(e),l.set(e,t)}return t}function w(e){if(!e.registry)throw new Error("efficient-web-builder: this editor was mounted with no block registry. Pass `registry` to createEditorSession (the storefront's is lib/puck/config).");return e.registry}function s(e={}){const t=e.backend??null,r=new Map,b={token:null,brandId:null},o={documentId:null,bridgedId:null};return{hostBackend:t,usesBridgedToken:t===null||h(t),blocks:e.blocks??null,registry:e.registry??null,chrome:e.chrome??null,documentHooks:e.documentHooks??null,auth:b,site:o,siteId:()=>o.documentId??o.bridgedId,cache(n,k){return r.has(n)||r.set(n,k()),r.get(n)},forget(n){n===void 0?r.clear():r.delete(n)}}}function x(e,t){e.site.documentId=u(t)}function E(e,t){e.site.bridgedId=u(t)}let f=s(),i=null;const c=new Set;function a(){return i??f}function S(e){c.delete(e),i=e}function B(e){c.add(e),queueMicrotask(()=>{c.delete(e)&&i===e&&(i=null)})}function I(){return a().usesBridgedToken}function v(){f=s()}export{g as EFFICIENT_BACKEND,S as activateEditorSession,p as backendOf,s as createEditorSession,a as currentEditorSession,B as deactivateEditorSession,I as efficientClientOpen,h as isEfficientBackend,m as provideDefaultBackend,v as resetAmbientEditorSession,w as sessionRegistry,E as setSessionBridgedSite,x as setSessionDocumentSite};
1
+ import{activateEaselSession as i,backendOf as t,createEaselSession as n,currentEaselSession as a,deactivateEaselSession as o,EFFICIENT_BACKEND as r,efficientClientOpen as c,isEfficientBackend as E,provideDefaultBackend as S,resetAmbientEaselSession as d,sessionRegistry as f,setSessionBridgedSite as l,setSessionDocumentSite as v}from"efficient-easel/screen/lib/session";export{r as EFFICIENT_BACKEND,i as activateEditorSession,t as backendOf,n as createEditorSession,a as currentEditorSession,o as deactivateEditorSession,c as efficientClientOpen,E as isEfficientBackend,S as provideDefaultBackend,d as resetAmbientEditorSession,f as sessionRegistry,l as setSessionBridgedSite,v as setSessionDocumentSite};
@@ -1 +1 @@
1
- import{backendOf as o}from"./editor-session.js";const r=new Map;async function n(l,t){try{return(await o().site.get({siteId:t})).slug?.trim()||null}catch(e){return console.warn("[editor-site-slug] could not resolve the site slug",e),null}}function c(l,t){let e=r.get(t);return e||(e=n(l,t),r.set(t,e),e.catch(()=>{r.get(t)===e&&r.delete(t)})),e}function u(l){l?r.delete(l):r.clear()}export{u as clearEditorSiteSlugCache,c as loadEditorSiteSlug};
1
+ import{backendOf as o}from"./website-session.js";const r=new Map;async function n(l,t){try{return(await o().site.get({siteId:t})).slug?.trim()||null}catch(e){return console.warn("[editor-site-slug] could not resolve the site slug",e),null}}function c(l,t){let e=r.get(t);return e||(e=n(l,t),r.set(t,e),e.catch(()=>{r.get(t)===e&&r.delete(t)})),e}function u(l){l?r.delete(l):r.clear()}export{u as clearEditorSiteSlugCache,c as loadEditorSiteSlug};
@@ -1 +1 @@
1
- export declare function applyEditorChromeTheme(theme: string | null | undefined): void;
1
+ export { applyEaselChromeTheme as applyEditorChromeTheme } from "efficient-easel/screen/lib/chrome-theme";
@@ -1 +1 @@
1
- const e="data-editor-theme";function n(t){typeof document>"u"||document.documentElement.setAttribute(e,"light")}export{n as applyEditorChromeTheme};
1
+ import{applyEaselChromeTheme as o}from"efficient-easel/screen/lib/chrome-theme";export{o as applyEditorChromeTheme};
@@ -1,7 +1,7 @@
1
1
  import { type HeroGroupPlacement } from "./hero-group-placement.js";
2
2
  export declare const HERO_ARROWS_PLACEMENTS: readonly ["top-left", "top-center", "top-right", "left", "center", "right", "bottom-left", "bottom-center", "bottom-right"];
3
3
  export type HeroArrowsPlacement = HeroGroupPlacement;
4
- export declare const HERO_ARROWS_PLACEMENT_LABELS: Readonly<Record<"left" | "right" | "top-left" | "top-center" | "top-right" | "center" | "bottom-left" | "bottom-center" | "bottom-right", string>>;
4
+ export declare const HERO_ARROWS_PLACEMENT_LABELS: Readonly<Record<"left" | "center" | "top-left" | "top-center" | "top-right" | "right" | "bottom-left" | "bottom-center" | "bottom-right", string>>;
5
5
  export declare const HERO_ARROWS_PLACEMENT_DEFAULT: HeroArrowsPlacement;
6
6
  export declare const HERO_ARROW_SHAPES: readonly ["outline", "solid", "square", "bare"];
7
7
  export type HeroArrowShape = (typeof HERO_ARROW_SHAPES)[number];
@@ -0,0 +1 @@
1
+ export type { LinkFilters, LinkPickerPage } from "efficient-easel/screen/lib/links/link-filters";
File without changes
@@ -0,0 +1,29 @@
1
+ import type { LinkFilterField, LinkKindChoice, LinkRules } from "efficient-easel/fields";
2
+ import type { LinkFilters, LinkPickerPage } from "./link-filters.js";
3
+ import { type LinkKind } from "./page-link-rules.js";
4
+ export type { LinkFilters, LinkPickerPage };
5
+ export type LinkPickerSetupInput = {
6
+ pages: readonly LinkPickerPage[];
7
+ posts: readonly {
8
+ slug: string;
9
+ title: string;
10
+ }[];
11
+ products: readonly {
12
+ href: string;
13
+ name: string;
14
+ }[];
15
+ offers: {
16
+ offersCommerce: boolean;
17
+ offersService: boolean;
18
+ };
19
+ };
20
+ export type LinkPickerSetup = {
21
+ kinds: LinkKindChoice[];
22
+ rules: LinkRules;
23
+ filtersFor?: (target: string) => readonly LinkFilterField[] | null;
24
+ };
25
+ export declare function inferLinkKind(url: string, pagePaths: readonly string[], listing?: {
26
+ listingPaths: readonly string[];
27
+ targetOf: (url: string) => string;
28
+ }): LinkKind;
29
+ export declare function linkPickerSetup(input: LinkPickerSetupInput, filters?: LinkFilters | null): LinkPickerSetup;
@@ -0,0 +1 @@
1
+ import{anchorPath as d,isSafeLink as u,linkKindsFor as f,pageAnchors as P,pagePath as m,postPath as v}from"./page-link-rules.js";const r={choosePage:"Choose a page",chooseSection:"Choose a section",noSections:"No section anchors yet",sectionHint:"Jumps to a section on that page.",choosePost:"Choose a post",chooseProduct:"Choose a product"};function p(t,o,a){if(!t)return"page";if(t.startsWith("/journal/"))return"blog";if(t.startsWith("/wheels/"))return"product";if(t.includes("#")){const n=t.slice(0,t.indexOf("#"));if(n===""||n==="/"||o.includes(n))return"anchor"}return t==="/"||o.includes(t)||a&&a.listingPaths.includes(a.targetOf(t))?"page":"custom"}function O(t,o){const a=t.pages.map(e=>({value:m(e.slug),label:e.title})),n=o?.pageOptions?o.pageOptions(a):a,i=n.map(e=>e.value),c=t.pages.map(e=>({label:e.title,options:P(...e.docs).map(s=>({value:d(e.slug,s.slug),label:s.name}))})).filter(e=>e.options.length>0),g=e=>{switch(e){case"page":return{type:"select",options:n,placeholder:r.choosePage};case"anchor":return{type:"groups",groups:c,placeholder:c.length?r.chooseSection:r.noSections};case"blog":return{type:"select",options:t.posts.map(s=>({value:v(s.slug),label:s.title||s.slug})),placeholder:r.choosePost};case"product":return{type:"select",options:t.products.map(s=>({value:s.href,label:s.name||s.href})),placeholder:r.chooseProduct};case"custom":return{type:"text"}}},l=f(t.offers).map(e=>({value:e.value,label:e.label,target:g(e.value),...e.value==="anchor"?{hint:r.sectionHint}:{},...e.value==="blog"||e.value==="product"?{hideWhenEmpty:!0}:{}}));if(!o)return{kinds:l,rules:{kindOf:e=>p(e,i),targetOf:e=>e,readFilter:()=>null,withFilter:e=>e,isSafe:u}};const h=e=>{const s=o.withFilter(e,null);return o.listingPaths.includes(s)?s:e};return{kinds:l,rules:{kindOf:e=>p(e,i,{listingPaths:o.listingPaths,targetOf:h}),targetOf:h,readFilter:o.readFilter,withFilter:o.withFilter,isSafe:u},filtersFor:e=>o.listingPaths.includes(e)?o.filtersFor(e):null}}export{p as inferLinkKind,O as linkPickerSetup};
@@ -1,8 +1,11 @@
1
- export declare function ColourControl({ value, onChange, label, id, caption, ariaLabel, }: {
1
+ import type { ReactNode } from "react";
2
+ export declare function ColourControl({ value, onChange, label, id, caption, inherited, after, ariaLabel, }: {
2
3
  value: string;
3
4
  onChange: (next: string) => void;
4
5
  label: string;
5
6
  id?: string;
6
7
  caption?: string;
8
+ inherited?: string;
9
+ after?: ReactNode;
7
10
  ariaLabel?: string;
8
11
  }): import("react").JSX.Element;
@@ -1 +1 @@
1
- "use client";import{jsx as a}from"react/jsx-runtime";import{ColourPicker as l}from"efficient-easel/pick";import{usePreviewHeader as m}from"../../components/PreviewHeaderContext.js";import{themeSwatches as u}from"./theme-swatches.js";function C({value:e,onChange:o,label:r,id:t,caption:i,ariaLabel:n}){return a(c,{value:e,onChange:o,label:n??r,id:t,caption:i})}function c({value:e,onChange:o,label:r,id:t,caption:i}){const{theme:n}=m();return a(l,{value:e,onChange:o,label:r,id:t,caption:i,theme:u(n)})}export{C as ColourControl};
1
+ "use client";import{jsx as m}from"react/jsx-runtime";import{ColourPicker as u}from"efficient-easel/pick";import{usePreviewHeader as c}from"../../components/PreviewHeaderContext.js";import{themeSwatches as f}from"./theme-swatches.js";function v({value:e,onChange:r,label:o,id:t,caption:i,inherited:n,after:a,ariaLabel:l}){return m(h,{value:e,onChange:r,label:l??o,id:t,caption:i,inherited:n,after:a})}function h({value:e,onChange:r,label:o,id:t,caption:i,inherited:n,after:a}){const{theme:l}=c();return m(u,{value:e,onChange:r,label:o,id:t,caption:i,inherited:n,after:a,theme:f(l)})}export{v as ColourControl};
@@ -1,20 +1,14 @@
1
1
  import type { Config } from "efficient-easel/blocks";
2
+ import { type PaletteSection } from "./palette-sections.js";
3
+ export { matchesQuery, type PaletteSection } from "./palette-sections.js";
2
4
  export declare const CATEGORY_META: Record<string, {
3
5
  label: string;
4
6
  icon: string;
5
7
  }>;
6
- export type PaletteSection = {
7
- type: string;
8
- cat: string;
9
- name: string;
10
- desc: string;
11
- catLabel: string;
12
- alias?: string;
13
- };
8
+ export declare function categoryShortLabel(id: string): string | undefined;
14
9
  export declare function buildPaletteSections(config: Config, descriptions?: Record<string, string>): PaletteSection[];
15
10
  export declare function categoryLabel(config: Config, id: string): string;
16
11
  export declare function categoryIcon(id: string): string;
17
- export declare function matchesQuery(s: PaletteSection, q: string): boolean;
18
12
  export declare const PINNED_SECTION_TYPE = "Flex";
19
13
  export declare function pinnedSection(sections: PaletteSection[]): PaletteSection | null;
20
14
  export declare function paletteWithoutPinned(sections: PaletteSection[]): PaletteSection[];
@@ -1 +1 @@
1
- import{labelAtLevel as f,LEVEL_NAMED_TYPE as g}from"./section-catalog.js";const i={openers:{label:"Hero & intros",icon:"image"},shop:{label:"Shop & galleries",icon:"bag"},product:{label:"Product page",icon:"box"},checkout:{label:"Checkout & ordering",icon:"bag"},about:{label:"About & brand story",icon:"book"},content:{label:"Text & content",icon:"type"},proof:{label:"Stats & social proof",icon:"star"},promo:{label:"Promotions & sign-ups",icon:"sparkles"},blog:{label:"Blog & journal",icon:"newspaper"},navigation:{label:"Navigation & wayfinding",icon:"bookmark"},legal:{label:"Legal & documents",icon:"file"},contact:{label:"Contact, FAQ & forms",icon:"mail"},structure:{label:"Layout, structure & embeds",icon:"grid"}};function y(e,o={}){const u=e.categories??{},p=e.components,a=[];for(const[c,b]of Object.entries(u))for(const t of b?.components??[]){const r=p[t];if(!r)continue;const n=r.label??t,l=f(t,"section",n);a.push({type:t,cat:c,catLabel:m(e,c),name:l,desc:o[t]??"",...l===n?{}:{alias:n}})}return a}function m(e,o){return i[o]?.label??e.categories?.[o]?.title??o}function x(e){return i[e]?.icon??"layers"}function E(e,o){return o?`${e.name} ${e.alias??""} ${e.desc} ${e.type} ${e.catLabel}`.toLowerCase().includes(o):!0}const s=g;function L(e){return e.find(o=>o.type===s)??null}function h(e){return e.filter(o=>o.type!==s)}export{i as CATEGORY_META,s as PINNED_SECTION_TYPE,y as buildPaletteSections,x as categoryIcon,m as categoryLabel,E as matchesQuery,h as paletteWithoutPinned,L as pinnedSection};
1
+ import{buildPaletteSections as r,categoryLabel as l,paletteWithoutPinned as i,pinnedSection as c}from"./palette-sections.js";import{labelAtLevel as b,LEVEL_NAMED_TYPE as u}from"./section-catalog.js";import{matchesQuery as S}from"./palette-sections.js";const t={openers:{label:"Hero & intros",icon:"image"},shop:{label:"Shop & galleries",icon:"bag"},product:{label:"Product page",icon:"box"},checkout:{label:"Checkout & ordering",icon:"bag"},about:{label:"About & brand story",icon:"book"},content:{label:"Text & content",icon:"type"},proof:{label:"Stats & social proof",icon:"star"},promo:{label:"Promotions & sign-ups",icon:"sparkles"},blog:{label:"Blog & journal",icon:"newspaper"},navigation:{label:"Navigation & wayfinding",icon:"bookmark"},legal:{label:"Legal & documents",icon:"file"},contact:{label:"Contact, FAQ & forms",icon:"mail"},structure:{label:"Layout, structure & embeds",icon:"grid"}};function n(o){return t[o]?.label}function d(o,e={}){return r(o,{labelAtLevel:b,categoryLabel:n,descriptions:e})}function f(o,e){return l(o,e,n)}function m(o){return t[o]?.icon??"layers"}const a=u;function y(o){return c(o,a)}function x(o){return i(o,a)}export{t as CATEGORY_META,a as PINNED_SECTION_TYPE,d as buildPaletteSections,m as categoryIcon,f as categoryLabel,n as categoryShortLabel,S as matchesQuery,x as paletteWithoutPinned,y as pinnedSection};
@@ -0,0 +1 @@
1
+ export type { AddTarget, AddTargetSource } from "efficient-easel/screen/lib/puck/add-target-types";
File without changes
@@ -1,10 +1,3 @@
1
- import { type BlockChoice } from "./footer-blocks.js";
2
- import { type SlotSectionSpec } from "./slot-specs.js";
3
- export type AddTargetSource = "section" | "footer" | "container";
4
- export interface AddTarget {
5
- source: AddTargetSource;
6
- slot: string;
7
- choices: BlockChoice[] | null;
8
- spec: SlotSectionSpec | null;
9
- }
1
+ import type { AddTarget } from "./add-target-types.js";
2
+ export type { AddTarget, AddTargetSource } from "./add-target-types.js";
10
3
  export declare function canAddTo(nodeType: string, nestDepth?: number): AddTarget | null;
@@ -0,0 +1,2 @@
1
+ export { blockRuns } from "efficient-easel/screen/lib/puck/block-choice";
2
+ export type { BlockChoice, BlockChoiceRun } from "efficient-easel/screen/lib/puck/block-choice";
@@ -0,0 +1 @@
1
+ import{blockRuns as b}from"efficient-easel/screen/lib/puck/block-choice";export{b as blockRuns};
@@ -1 +1 @@
1
- import{offeredSets as S}from"../editor-blocks.js";import{currentEditorSession as l}from"../editor-session.js";import{presetFor as p}from"../sections/section-presets.js";import{blockTypesIn as a}from"./block-types-in.js";import{blockSetOf as O}from"./section-catalog.js";import{SLOT_SECTION_SPECS as h}from"./slot-specs.js";const w=()=>({}),m=new Map;function E(e){const t=m.get(e);if(t)return t;const o=new Set,f=h[e];if(f)for(const r of f.seeds(w))for(const s of a({type:f.childType,props:r}))o.add(s);const i=p(e);if(i){let r=0;for(const s of a(i(w,n=>`${n}-${r+=1}`)))o.add(s)}o.delete(e);const u=[...o].sort();return m.set(e,u),u}function T(e){if(!e||!e.sets&&!e.allow&&!e.deny?.length)return null;const t=S(e),o=e.allow?new Set(e.allow):null,f=new Set(e.deny??[]),i=new Set(Object.keys(e.host??{})),u=n=>{if(f.has(n))return!1;if(i.has(n))return!0;const c=O(n);return!c||!t[c]?!1:o?o.has(n):!0},r=new Map,s=n=>{const c=r.get(n);if(c!==void 0)return c;r.set(n,!1);const d=u(n)&&E(n).every(s);return r.set(n,d),d};return{sets:t,offers:s}}const x="block-offer";function F(e=l()){return e.cache(x,()=>T(e.blocks))}function v(e,t=l()){const o=F(t);return o?o.offers(e):!0}export{v as blockIsOffered,F as blockOfferOf,E as blocksLaidDownBy,T as resolveBlockOffer};
1
+ import{offeredSets as S}from"../editor-blocks.js";import{currentEditorSession as l}from"../editor-session.js";import{blocksOf as p}from"../website-session.js";import{presetFor as O}from"../sections/section-presets.js";import{blockTypesIn as a}from"./block-types-in.js";import{blockSetOf as h}from"./section-catalog.js";import{SLOT_SECTION_SPECS as E}from"./slot-specs.js";const w=()=>({}),m=new Map;function T(e){const n=m.get(e);if(n)return n;const t=new Set,f=E[e];if(f)for(const r of f.seeds(w))for(const s of a({type:f.childType,props:r}))t.add(s);const i=O(e);if(i){let r=0;for(const s of a(i(w,o=>`${o}-${r+=1}`)))t.add(s)}t.delete(e);const u=[...t].sort();return m.set(e,u),u}function x(e){if(!e||!e.sets&&!e.allow&&!e.deny?.length)return null;const n=S(e),t=e.allow?new Set(e.allow):null,f=new Set(e.deny??[]),i=new Set(Object.keys(e.host??{})),u=o=>{if(f.has(o))return!1;if(i.has(o))return!0;const c=h(o);return!c||!n[c]?!1:t?t.has(o):!0},r=new Map,s=o=>{const c=r.get(o);if(c!==void 0)return c;r.set(o,!1);const d=u(o)&&T(o).every(s);return r.set(o,d),d};return{sets:n,offers:s}}const F="block-offer";function _(e=l()){return e.cache(F,()=>x(p(e)))}function C(e,n=l()){const t=_(n);return t?t.offers(e):!0}export{C as blockIsOffered,_ as blockOfferOf,T as blocksLaidDownBy,x as resolveBlockOffer};
@@ -1 +1 @@
1
- export declare function blockTypesIn(layout: unknown): string[];
1
+ export { blockTypesIn } from "efficient-easel/screen/lib/puck/block-types-in";
@@ -1 +1 @@
1
- const i=r=>typeof r=="object"&&r!==null&&!Array.isArray(r);function s(r){return i(r)&&typeof r.type=="string"&&r.type!==""&&i(r.props)}function e(r,f,t){if(Array.isArray(r))for(const o of r)s(o)?c(o,f,t):i(o)&&typeof o.type=="string"&&o.type!==""&&f.add(o.type)}function n(r,f,t){if(Array.isArray(r)){if(t.has(r))return;t.add(r);for(const o of r)s(o)?c(o,f,t):n(o,f,t);return}if(!(!i(r)||t.has(r))){t.add(r);for(const o of Object.values(r))n(o,f,t)}}function c(r,f,t){if(!t.has(r)){t.add(r),f.add(r.type);for(const o of Object.values(r.props))n(o,f,t)}}function p(r){const f=new Set,t=new Set;if(s(r))c(r,f,t);else if(i(r)){if(e(r.content,f,t),i(r.zones))for(const o of Object.values(r.zones))e(o,f,t);i(r.root)&&n(r.root,f,t)}return[...f].sort()}export{p as blockTypesIn};
1
+ import{blockTypesIn as p}from"efficient-easel/screen/lib/puck/block-types-in";export{p as blockTypesIn};
@@ -1,2 +1,2 @@
1
- export declare const generalBlocks: Record<"Hero" | "HeroSingle" | "IntroBleed" | "SpecStrip" | "ProcessSteps" | "OrderSummary" | "PaymentBadges" | "Manifesto" | "Timeline" | "TimelineTrack" | "Footprint" | "Prose" | "ParagraphsA" | "Split" | "Cards" | "KeyFeatures" | "Stats" | "StatsParagraph" | "Chart" | "Mockup" | "Testimonials" | "Logos" | "Banner" | "TitleWithButtons" | "Ticker" | "Masthead" | "FeaturedCover" | "LongRead" | "Series" | "Breadcrumb" | "CategoryBar" | "DocTabs" | "DocMasthead" | "DocBody" | "DocMetaCards" | "FAQ" | "ContactLocations" | "SectionHeader" | "Flex" | "Spacer" | "Divider" | "CustomHTML" | "Grid" | "Heading" | "Text" | "Eyebrow" | "ImageBlock" | "LogoBlock" | "ButtonBlock" | "PostCard" | "HeroSlide" | "HeroGroup" | "Integrations", import("efficient-easel/blocks").ComponentConfig<any, any, Omit<import("efficient-easel/blocks").ComponentData<any, string, Record<string, import("efficient-easel/blocks").DefaultComponentProps>>, "type">>>;
2
- export declare const assembleGeneralBlocks: () => Record<"Hero" | "HeroSingle" | "IntroBleed" | "SpecStrip" | "ProcessSteps" | "OrderSummary" | "PaymentBadges" | "Manifesto" | "Timeline" | "TimelineTrack" | "Footprint" | "Prose" | "ParagraphsA" | "Split" | "Cards" | "KeyFeatures" | "Stats" | "StatsParagraph" | "Chart" | "Mockup" | "Testimonials" | "Logos" | "Banner" | "TitleWithButtons" | "Ticker" | "Masthead" | "FeaturedCover" | "LongRead" | "Series" | "Breadcrumb" | "CategoryBar" | "DocTabs" | "DocMasthead" | "DocBody" | "DocMetaCards" | "FAQ" | "ContactLocations" | "SectionHeader" | "Flex" | "Spacer" | "Divider" | "CustomHTML" | "Grid" | "Heading" | "Text" | "Eyebrow" | "ImageBlock" | "LogoBlock" | "ButtonBlock" | "PostCard" | "HeroSlide" | "HeroGroup" | "Integrations", import("efficient-easel/blocks").ComponentConfig<any, any, Omit<import("efficient-easel/blocks").ComponentData<any, string, Record<string, import("efficient-easel/blocks").DefaultComponentProps>>, "type">>>;
1
+ export declare const generalBlocks: Record<"Text" | "Divider" | "Flex" | "LogoBlock" | "Hero" | "HeroSingle" | "IntroBleed" | "SpecStrip" | "ProcessSteps" | "OrderSummary" | "PaymentBadges" | "Manifesto" | "Timeline" | "TimelineTrack" | "Footprint" | "Prose" | "ParagraphsA" | "Split" | "Cards" | "KeyFeatures" | "Stats" | "StatsParagraph" | "Chart" | "Mockup" | "Testimonials" | "Logos" | "Banner" | "TitleWithButtons" | "Ticker" | "Masthead" | "FeaturedCover" | "LongRead" | "Series" | "Breadcrumb" | "CategoryBar" | "DocTabs" | "DocMasthead" | "DocBody" | "DocMetaCards" | "FAQ" | "ContactLocations" | "SectionHeader" | "Spacer" | "CustomHTML" | "Grid" | "Heading" | "Eyebrow" | "ImageBlock" | "ButtonBlock" | "PostCard" | "HeroSlide" | "HeroGroup" | "Integrations", import("efficient-easel/blocks").ComponentConfig<any, any, Omit<import("efficient-easel/blocks").ComponentData<any, string, Record<string, import("efficient-easel/blocks").DefaultComponentProps>>, "type">>>;
2
+ export declare const assembleGeneralBlocks: () => Record<"Text" | "Divider" | "Flex" | "LogoBlock" | "Hero" | "HeroSingle" | "IntroBleed" | "SpecStrip" | "ProcessSteps" | "OrderSummary" | "PaymentBadges" | "Manifesto" | "Timeline" | "TimelineTrack" | "Footprint" | "Prose" | "ParagraphsA" | "Split" | "Cards" | "KeyFeatures" | "Stats" | "StatsParagraph" | "Chart" | "Mockup" | "Testimonials" | "Logos" | "Banner" | "TitleWithButtons" | "Ticker" | "Masthead" | "FeaturedCover" | "LongRead" | "Series" | "Breadcrumb" | "CategoryBar" | "DocTabs" | "DocMasthead" | "DocBody" | "DocMetaCards" | "FAQ" | "ContactLocations" | "SectionHeader" | "Spacer" | "CustomHTML" | "Grid" | "Heading" | "Eyebrow" | "ImageBlock" | "ButtonBlock" | "PostCard" | "HeroSlide" | "HeroGroup" | "Integrations", import("efficient-easel/blocks").ComponentConfig<any, any, Omit<import("efficient-easel/blocks").ComponentData<any, string, Record<string, import("efficient-easel/blocks").DefaultComponentProps>>, "type">>>;
@@ -1,43 +1,2 @@
1
- export type TreeItem = {
2
- type: string;
3
- props: {
4
- id: string;
5
- [key: string]: unknown;
6
- };
7
- };
8
- export type SlotConfigView = {
9
- components?: Record<string, unknown>;
10
- };
11
- export declare function slotFieldsOf(config: SlotConfigView, type: string): string[];
12
- export type SlotChild = {
13
- child: TreeItem;
14
- zone: string;
15
- index: number;
16
- };
17
- export declare function childSlotsOf(config: SlotConfigView, item: TreeItem): SlotChild[];
18
- export type NodeLocation = {
19
- item: TreeItem;
20
- zone: string;
21
- index: number;
22
- };
23
- export declare function locateNode(config: SlotConfigView, content: ReadonlyArray<TreeItem>, id: string): NodeLocation | null;
24
- export declare const TREE_MAX_DEPTH = 6;
25
- export declare function nestsInTree(config: SlotConfigView, type: string, depth: number): boolean;
26
- export declare const newNodeId: (type: string) => string;
27
- export declare const HEADER_TYPE = "Header";
28
- export declare const FOOTER_TYPE = "Footer";
29
- export declare const ROOT_ZONE = "root:default-zone";
30
- export declare function pinnedDuplicateIndices(content: ReadonlyArray<{
31
- type?: string;
32
- }>): number[];
33
- export declare function pinnedDuplicateIds(content: ReadonlyArray<{
34
- type?: string;
35
- props?: {
36
- id?: unknown;
37
- };
38
- }>): string[];
39
- export declare function missingPinnedTypes(live: ReadonlyArray<{
40
- type?: string;
41
- }>, persisted: ReadonlyArray<{
42
- type?: string;
43
- }>): string[];
1
+ export { childSlotsOf, FOOTER_TYPE, HEADER_TYPE, locateNode, missingPinnedTypes, nestsInTree, newNodeId, pinnedDuplicateIds, pinnedDuplicateIndices, ROOT_ZONE, slotFieldsOf, TREE_MAX_DEPTH } from "efficient-easel/screen/lib/puck/content-tree";
2
+ export type { NodeLocation, SlotChild, SlotConfigView, TreeItem } from "efficient-easel/screen/lib/puck/content-tree";
@@ -1 +1 @@
1
- function i(r,n){const t=r.components?.[n]?.fields??{};return Object.keys(t).filter(s=>t[s]?.type==="slot")}function x(r,n){return i(r,n.type).flatMap(t=>(Array.isArray(n.props[t])?n.props[t]:[]).map((e,o)=>({child:e,zone:`${n.props.id}:${t}`,index:o})))}function I(r,n,t){const s=(e,o,f,p)=>{if(!e||typeof e!="object"||!e.props)return null;if(e.props.id===t)return{item:e,zone:o,index:f};if(p>=12)return null;for(const{child:l,zone:d,index:a}of x(r,e)){const c=s(l,d,a,p+1);if(c)return c}return null};for(let e=0;e<n.length;e+=1){const o=s(n[e],T,e,0);if(o)return o}return null}const h=6;function D(r,n,t){return t<h&&i(r,n).length>0}const P=r=>`${r}-${crypto.randomUUID()}`,E="Header",y="Footer",T="root:default-zone",u=[E,y];function O(r){const n=new Set,t=[];return r.forEach((s,e)=>{const o=s?.type;o===void 0||!u.includes(o)||(n.has(o)?t.push(e):n.add(o))}),t}function _(r){return O(r).map(n=>r[n]?.props?.id).filter(n=>typeof n=="string")}function N(r,n){const t=(s,e)=>s.some(o=>o?.type===e);return u.filter(s=>!t(r,s)&&!t(n,s))}export{y as FOOTER_TYPE,E as HEADER_TYPE,T as ROOT_ZONE,h as TREE_MAX_DEPTH,x as childSlotsOf,I as locateNode,N as missingPinnedTypes,D as nestsInTree,P as newNodeId,_ as pinnedDuplicateIds,O as pinnedDuplicateIndices,i as slotFieldsOf};
1
+ import{childSlotsOf as d,FOOTER_TYPE as i,HEADER_TYPE as s,locateNode as E,missingPinnedTypes as T,nestsInTree as l,newNodeId as o,pinnedDuplicateIds as t,pinnedDuplicateIndices as O,ROOT_ZONE as p,slotFieldsOf as c,TREE_MAX_DEPTH as _}from"efficient-easel/screen/lib/puck/content-tree";export{i as FOOTER_TYPE,s as HEADER_TYPE,p as ROOT_ZONE,_ as TREE_MAX_DEPTH,d as childSlotsOf,E as locateNode,T as missingPinnedTypes,l as nestsInTree,o as newNodeId,t as pinnedDuplicateIds,O as pinnedDuplicateIndices,c as slotFieldsOf};
@@ -1,7 +1,7 @@
1
1
  import { type ReactElement, type ReactNode } from "react";
2
2
  import { readHidable, hidableText, type HidableValue } from "./hidable.js";
3
3
  import { FOCAL_DEFAULT } from "../image-focus.js";
4
- import { LINK_FIELD_MARKER, SCAFFOLD_FIELD_MARKER, TEXT_FIELD_MARKER, type EdgeCell, type TextFieldMeta, type TextListRendering } from "./field-markers.js";
4
+ import { FOLD_FIELD_MARKER, LINK_FIELD_MARKER, MEDIA_FIELD_MARKER, SCAFFOLD_FIELD_MARKER, TEXT_FIELD_MARKER, foldMetaOf, textFieldIdentifier, type EdgeCell, type FoldFieldMeta, type TextFieldMeta, type TextListRendering } from "./field-markers.js";
5
5
  import { type HeroGroupPlacement } from "../hero-group-placement.js";
6
6
  import type { GeocodeState } from "../content/contact.js";
7
7
  import { type DirectionContainer } from "../content/container-direction.js";
@@ -40,29 +40,24 @@ export declare function Label({ children }: {
40
40
  export declare function noGlyph(reason: string): ReactElement;
41
41
  export declare function isNoGlyph(icon: ReactElement): boolean;
42
42
  export declare function iconOf(icon: ReactElement): ReactElement | undefined;
43
- export declare function InheritBadge({ inherited, source, detail, onReset, onOptOut, optOutTitle, label, }: {
44
- inherited: boolean;
45
- source: string;
46
- detail?: string;
47
- onReset: () => void;
48
- onOptOut?: () => void;
49
- optOutTitle?: string;
50
- label: string;
51
- }): import("react").JSX.Element;
43
+ export declare function backTo(value: string, from: string): string;
44
+ type MarkProps = {
45
+ changed?: boolean;
46
+ onReset?: () => void;
47
+ };
52
48
  export declare function usePageWidthDetail(): string;
53
49
  export declare function useSiteGapDetail(): string;
54
- export declare function SiteGapInheritBadge({ inherited, onReset, label, }: {
50
+ export declare function SiteGapDefaultReset({ inherited, onReset, label, }: {
55
51
  inherited: boolean;
56
52
  onReset: () => void;
57
53
  label: string;
58
54
  }): import("react").JSX.Element;
59
- export declare function WidthInheritBadge({ inherited, onReset, label, }: {
55
+ export declare function WidthDefaultReset({ inherited, onReset, label, }: {
60
56
  inherited: boolean;
61
57
  onReset: () => void;
62
58
  label: string;
63
59
  }): import("react").JSX.Element;
64
60
  export { readHidable, hidableText, type HidableValue };
65
- export declare function TypeGlyph(): import("react").JSX.Element;
66
61
  export declare function HidableTextField({ value, onChange, label, placeholder, hint, multiline, hideable, markup, }: {
67
62
  value: HidableValue;
68
63
  onChange: (v: HidableValue) => void;
@@ -74,11 +69,12 @@ export declare function HidableTextField({ value, onChange, label, placeholder,
74
69
  markup?: boolean;
75
70
  }): import("react").JSX.Element;
76
71
  export { TEXT_FIELD_MARKER, LINK_FIELD_MARKER, SCAFFOLD_FIELD_MARKER };
72
+ export { MEDIA_FIELD_MARKER, FOLD_FIELD_MARKER, foldMetaOf, textFieldIdentifier };
73
+ export type { FoldFieldMeta };
77
74
  export declare function withScaffold<F extends object>(field: F, scaffold: unknown): F;
78
75
  export declare function withOffPage<F extends object>(field: F): F;
79
76
  export declare function textFieldOffPage(field: unknown): boolean;
80
77
  export declare function withIdentifier<F extends object>(field: F): F;
81
- export declare function textFieldIdentifier(field: unknown): boolean;
82
78
  export { TEXT_CONTROL_KINDS, SCALAR_TEXT_CONTROLS, type TextControlKind, type ScalarTextControlKind, } from "./text-control-kinds.js";
83
79
  export type { TextFieldMeta };
84
80
  export declare const BOUND_TO_POST_NOTE = "Everything else on this block comes from the linked post. Unlink it to edit by hand.";
@@ -98,12 +94,6 @@ export declare function entriesHiddenForTab(buckets: readonly Bucket[], active:
98
94
  export declare function SectionHeading({ label }: {
99
95
  label: string;
100
96
  }): import("react").JSX.Element;
101
- export declare const FOLD_FIELD_MARKER: "__fold";
102
- export type FoldFieldMeta = {
103
- label: string;
104
- level: 1 | 2;
105
- };
106
- export declare function foldMetaOf(field: unknown): FoldFieldMeta | null;
107
97
  export declare function group(label: string): CustomField<undefined>;
108
98
  export declare function panelNote(text: string): CustomField<undefined>;
109
99
  export declare function PanelNoteLine({ text }: {
@@ -154,7 +144,7 @@ export declare function pxField(label: string, opts: {
154
144
  unsetLabel?: string;
155
145
  hint?: ReactNode;
156
146
  restAtSite?: boolean;
157
- unsetMark?: ReactElement;
147
+ unsetMark?: ReactElement<MarkProps>;
158
148
  restTrack?: (p: {
159
149
  min: number;
160
150
  max: number;
@@ -294,7 +284,6 @@ export declare function segmented<V>(label: string, icon: ReactElement, options:
294
284
  label: string;
295
285
  value: V;
296
286
  }[], fallback: V): CustomField<V>;
297
- export declare const MEDIA_FIELD_MARKER: "__media";
298
287
  export declare function upload(label: string, accept: string, placeholder?: string): CustomField<string>;
299
288
  export declare const CUSTOM_FIELD_MEDIA: Record<string, string[]>;
300
289
  export declare function CoordsField({ value, onChange, label, }: {