efficient-web-builder 44.0.0 → 45.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 (368) hide show
  1. package/README.md +8 -0
  2. package/dist/editor/components/BlogPostSource.js +1 -1
  3. package/dist/editor/components/CanvasPartsBridge.js +1 -1
  4. package/dist/editor/components/CardShadowField.js +1 -1
  5. package/dist/editor/components/ChatSettingsPanel.js +1 -1
  6. package/dist/editor/components/FieldGlyph.js +1 -1
  7. package/dist/editor/components/LocationsGroupedField.js +1 -1
  8. package/dist/editor/components/PartInkControl.js +1 -1
  9. package/dist/editor/components/PartSettingsPanel.d.ts +0 -2
  10. package/dist/editor/components/PartSettingsPanel.js +1 -1
  11. package/dist/editor/components/PartTextBox.d.ts +6 -3
  12. package/dist/editor/components/PartTextBox.js +1 -1
  13. package/dist/editor/components/PreviewChatContext.d.ts +1 -2
  14. package/dist/editor/components/PreviewChatContext.js +1 -1
  15. package/dist/editor/components/PreviewPartAnchors.js +1 -1
  16. package/dist/editor/components/SectionIcon.js +1 -1
  17. package/dist/editor/components/SectionThemePicker.js +1 -1
  18. package/dist/editor/components/SectionWidthRows.d.ts +6 -13
  19. package/dist/editor/components/SectionWidthRows.js +1 -1
  20. package/dist/editor/components/SourceStatus.d.ts +2 -1
  21. package/dist/editor/components/SourceStatus.js +1 -1
  22. package/dist/editor/components/ThemeCard.js +1 -1
  23. package/dist/editor/components/ThemeColourField.js +1 -1
  24. package/dist/editor/components/ThemeField.js +1 -1
  25. package/dist/editor/components/TickerSettingsPanel.js +1 -1
  26. package/dist/editor/components/WebsiteScreenParts.js +1 -1
  27. package/dist/editor/components/WebsiteSettingsPanel.js +1 -1
  28. package/dist/editor/components/storefront-editor.css +90 -359
  29. package/dist/editor/components/useHostDocumentBridge.js +1 -1
  30. package/dist/editor/components/useLocationsTree.js +1 -1
  31. package/dist/editor/lib/animation/AnimationDurationRow.d.ts +3 -0
  32. package/dist/editor/lib/animation/AnimationDurationRow.js +1 -0
  33. package/dist/editor/lib/animation/entrance-fields.d.ts +4 -0
  34. package/dist/editor/lib/animation/entrance-fields.js +1 -0
  35. package/dist/editor/lib/animation/fields.d.ts +2 -0
  36. package/dist/editor/lib/animation/fields.js +1 -0
  37. package/dist/editor/lib/animation/loop-fields.d.ts +2 -0
  38. package/dist/editor/lib/animation/loop-fields.js +1 -0
  39. package/dist/editor/lib/document/ColourControl.js +1 -1
  40. package/dist/editor/lib/document/add-palette.js +1 -1
  41. package/dist/editor/lib/document/block-offer.js +1 -1
  42. package/dist/editor/lib/document/block-source-fields.d.ts +1 -1
  43. package/dist/editor/lib/document/block-source-fields.js +1 -1
  44. package/dist/editor/lib/document/blocks/general/Banner/fields.js +1 -1
  45. package/dist/editor/lib/document/blocks/general/Breadcrumb/fields.js +1 -1
  46. package/dist/editor/lib/document/blocks/general/ButtonBlock/fields.js +1 -1
  47. package/dist/editor/lib/document/blocks/general/Cards/fields.js +1 -1
  48. package/dist/editor/lib/document/blocks/general/CategoryBar/fields.js +1 -1
  49. package/dist/editor/lib/document/blocks/general/Chart/fields.js +1 -1
  50. package/dist/editor/lib/document/blocks/general/Divider/fields.js +1 -1
  51. package/dist/editor/lib/document/blocks/general/DocBody/fields.js +1 -1
  52. package/dist/editor/lib/document/blocks/general/DocMasthead/fields.js +1 -1
  53. package/dist/editor/lib/document/blocks/general/DocTabs/fields.js +1 -1
  54. package/dist/editor/lib/document/blocks/general/Eyebrow/fields.js +1 -1
  55. package/dist/editor/lib/document/blocks/general/FAQ/fields.js +1 -1
  56. package/dist/editor/lib/document/blocks/general/FeaturedCover/fields.js +1 -1
  57. package/dist/editor/lib/document/blocks/general/Flex/fields.js +1 -1
  58. package/dist/editor/lib/document/blocks/general/Footprint/fields.js +1 -1
  59. package/dist/editor/lib/document/blocks/general/Grid/fields.js +1 -1
  60. package/dist/editor/lib/document/blocks/general/Heading/fields.js +1 -1
  61. package/dist/editor/lib/document/blocks/general/Hero/fields.js +1 -1
  62. package/dist/editor/lib/document/blocks/general/HeroGroup/fields.js +1 -1
  63. package/dist/editor/lib/document/blocks/general/HeroSingle/fields.js +1 -1
  64. package/dist/editor/lib/document/blocks/general/HeroSlide/fields.js +1 -1
  65. package/dist/editor/lib/document/blocks/general/ImageBlock/fields.js +1 -1
  66. package/dist/editor/lib/document/blocks/general/Integrations/fields.js +2 -2
  67. package/dist/editor/lib/document/blocks/general/IntroBleed/fields.js +1 -1
  68. package/dist/editor/lib/document/blocks/general/KeyFeatures/fields.js +1 -1
  69. package/dist/editor/lib/document/blocks/general/LocationMap/fields.d.ts +10 -0
  70. package/dist/editor/lib/document/blocks/general/LocationMap/fields.js +1 -0
  71. package/dist/editor/lib/document/blocks/general/LogoBlock/fields.js +1 -1
  72. package/dist/editor/lib/document/blocks/general/Logos/fields.js +1 -1
  73. package/dist/editor/lib/document/blocks/general/LongRead/fields.js +1 -1
  74. package/dist/editor/lib/document/blocks/general/Manifesto/fields.js +2 -2
  75. package/dist/editor/lib/document/blocks/general/Masthead/fields.js +1 -1
  76. package/dist/editor/lib/document/blocks/general/Mockup/fields.js +2 -2
  77. package/dist/editor/lib/document/blocks/general/OrderSummary/fields.js +1 -1
  78. package/dist/editor/lib/document/blocks/general/ParagraphsA/fields.js +1 -1
  79. package/dist/editor/lib/document/blocks/general/PaymentBadges/fields.js +1 -1
  80. package/dist/editor/lib/document/blocks/general/PostCard/fields.js +1 -1
  81. package/dist/editor/lib/document/blocks/general/ProcessSteps/fields.js +1 -1
  82. package/dist/editor/lib/document/blocks/general/Prose/fields.js +1 -1
  83. package/dist/editor/lib/document/blocks/general/SectionHeader/fields.js +1 -1
  84. package/dist/editor/lib/document/blocks/general/Series/fields.js +1 -1
  85. package/dist/editor/lib/document/blocks/general/SpecStrip/fields.js +1 -1
  86. package/dist/editor/lib/document/blocks/general/Split/fields.js +1 -1
  87. package/dist/editor/lib/document/blocks/general/Stats/fields.js +1 -1
  88. package/dist/editor/lib/document/blocks/general/StatsParagraph/fields.js +1 -1
  89. package/dist/editor/lib/document/blocks/general/Testimonials/fields.js +1 -1
  90. package/dist/editor/lib/document/blocks/general/Text/fields.js +1 -1
  91. package/dist/editor/lib/document/blocks/general/Ticker/fields.js +1 -1
  92. package/dist/editor/lib/document/blocks/general/Timeline/fields.js +1 -1
  93. package/dist/editor/lib/document/blocks/general/TimelineTrack/fields.js +1 -1
  94. package/dist/editor/lib/document/blocks/general/TitleWithButtons/fields.js +1 -1
  95. package/dist/editor/lib/document/blocks/general/index.d.ts +2 -2
  96. package/dist/editor/lib/document/blocks/general/index.js +1 -1
  97. package/dist/editor/lib/document/blocks/shared-fields.d.ts +3 -4
  98. package/dist/editor/lib/document/blocks/shared-fields.js +1 -1
  99. package/dist/editor/lib/document/box-fields.d.ts +32 -0
  100. package/dist/editor/lib/document/box-fields.js +1 -0
  101. package/dist/editor/lib/document/box-gutter-field.d.ts +1 -0
  102. package/dist/editor/lib/document/box-gutter-field.js +1 -0
  103. package/dist/editor/lib/document/card-row-fields.d.ts +1 -1
  104. package/dist/editor/lib/document/card-row-fields.js +1 -1
  105. package/dist/editor/lib/document/consent-words-field.d.ts +2 -3
  106. package/dist/editor/lib/document/consent-words-field.js +1 -1
  107. package/dist/editor/lib/document/controls.d.ts +34 -94
  108. package/dist/editor/lib/document/controls.js +1 -1
  109. package/dist/editor/lib/document/enclosing-section.d.ts +5 -1
  110. package/dist/editor/lib/document/enclosing-section.js +1 -1
  111. package/dist/editor/lib/document/field-groups.js +1 -1
  112. package/dist/editor/lib/document/general-registry.js +1 -1
  113. package/dist/editor/lib/document/overrides.js +1 -1
  114. package/dist/editor/lib/document/page-root-fields.d.ts +1 -1
  115. package/dist/editor/lib/document/page-root-fields.js +1 -1
  116. package/dist/editor/lib/document/page-root.d.ts +2 -7
  117. package/dist/editor/lib/document/page-root.js +2 -2
  118. package/dist/editor/lib/document/part-anchors.d.ts +0 -1
  119. package/dist/editor/lib/document/part-anchors.js +1 -1
  120. package/dist/editor/lib/document/part-panel-rows.d.ts +75 -0
  121. package/dist/editor/lib/document/part-panel-rows.js +1 -0
  122. package/dist/editor/lib/document/passes/inspector.js +1 -1
  123. package/dist/editor/lib/document/separator-field.d.ts +10 -0
  124. package/dist/editor/lib/document/separator-field.js +1 -0
  125. package/dist/editor/lib/document/shell-glyph.d.ts +2 -0
  126. package/dist/editor/lib/document/shell-glyph.js +1 -0
  127. package/dist/{format → editor}/lib/host-document-bridge.d.ts +1 -3
  128. package/dist/editor/lib/host-document-bridge.js +1 -0
  129. package/dist/editor/lib/pinned-chrome-doc.js +1 -1
  130. package/dist/editor/lib/sections/new-section-node.js +1 -1
  131. package/dist/editor/lib/sections/section-dry-run.d.ts +13 -2
  132. package/dist/editor/lib/sections/section-dry-run.js +2 -2
  133. package/dist/editor/lib/sections/text-layouts.d.ts +6 -0
  134. package/dist/editor/lib/sections/text-layouts.js +1 -0
  135. package/dist/editor/lib/source-rules/part-slider-fills-row.d.ts +1 -0
  136. package/dist/editor/lib/source-rules/part-slider-fills-row.js +5 -5
  137. package/dist/format/lib/animation/index.d.ts +1 -0
  138. package/dist/format/lib/animation/index.js +1 -0
  139. package/dist/format/lib/animation/loop.d.ts +29 -0
  140. package/dist/format/lib/animation/loop.js +1 -0
  141. package/dist/format/lib/content/block-size.d.ts +59 -0
  142. package/dist/format/lib/content/block-size.js +1 -0
  143. package/dist/format/lib/content/box-background.js +1 -1
  144. package/dist/format/lib/content/box-layout.d.ts +16 -37
  145. package/dist/format/lib/content/box-layout.js +1 -1
  146. package/dist/format/lib/content/box-link.d.ts +13 -0
  147. package/dist/format/lib/content/box-link.js +13 -0
  148. package/dist/format/lib/content/box-separator.d.ts +10 -0
  149. package/dist/format/lib/content/box-separator.js +1 -0
  150. package/dist/format/lib/content/box-shape.d.ts +10 -0
  151. package/dist/format/lib/content/box-shape.js +1 -0
  152. package/dist/format/lib/content/button-icon.d.ts +1 -0
  153. package/dist/format/lib/content/button-icon.js +1 -1
  154. package/dist/format/lib/content/card-corners.d.ts +0 -3
  155. package/dist/format/lib/content/card-corners.js +1 -1
  156. package/dist/format/lib/content/card-template.d.ts +2 -0
  157. package/dist/format/lib/content/card-template.js +1 -1
  158. package/dist/format/lib/content/cart-drawer.d.ts +7 -0
  159. package/dist/format/lib/content/cart-drawer.js +1 -1
  160. package/dist/format/lib/content/chat-launcher.js +1 -1
  161. package/dist/format/lib/content/container-gap.d.ts +9 -1
  162. package/dist/format/lib/content/container-gap.js +1 -1
  163. package/dist/format/lib/content/gallery-card-layout.js +1 -1
  164. package/dist/format/lib/content/gallery-layout.d.ts +1 -0
  165. package/dist/format/lib/content/gallery-layout.js +1 -1
  166. package/dist/format/lib/content/page-background.js +1 -1
  167. package/dist/format/lib/content/post-date.d.ts +1 -0
  168. package/dist/format/lib/content/post-date.js +1 -0
  169. package/dist/format/lib/content/scrim.d.ts +1 -0
  170. package/dist/format/lib/content/scrim.js +1 -0
  171. package/dist/format/lib/content/section-min-height.d.ts +4 -0
  172. package/dist/format/lib/content/section-min-height.js +1 -1
  173. package/dist/format/lib/content/section-width.d.ts +2 -18
  174. package/dist/format/lib/content/section-width.js +1 -1
  175. package/dist/format/lib/content/site-gutter.d.ts +11 -1
  176. package/dist/format/lib/content/site-gutter.js +1 -1
  177. package/dist/format/lib/content/tint.d.ts +1 -0
  178. package/dist/format/lib/content/tint.js +1 -0
  179. package/dist/format/lib/document/blocks/block-types.d.ts +0 -1
  180. package/dist/format/lib/document/blocks/general/HeroSingle/meta.js +1 -1
  181. package/dist/format/lib/document/blocks/general/HeroSlide/meta.js +1 -1
  182. package/dist/format/lib/document/blocks/general/IntroBleed/meta.js +1 -1
  183. package/dist/format/lib/document/blocks/general/LocationMap/meta.d.ts +2 -0
  184. package/dist/format/lib/document/blocks/general/LocationMap/meta.js +1 -0
  185. package/dist/format/lib/document/blocks/general/SpecStrip/meta.d.ts +5 -0
  186. package/dist/format/lib/document/blocks/general/SpecStrip/meta.js +1 -1
  187. package/dist/format/lib/document/blocks/general/Ticker/meta.js +1 -1
  188. package/dist/format/lib/document/blocks/general/metas.d.ts +1 -0
  189. package/dist/format/lib/document/blocks/general/metas.js +1 -1
  190. package/dist/format/lib/document/blocks/general/text-part-shapes.json +30 -0
  191. package/dist/format/lib/document/box-footer.d.ts +1 -0
  192. package/dist/format/lib/document/box-footer.js +1 -1
  193. package/dist/format/lib/document/cap-hero-groups.js +1 -1
  194. package/dist/format/lib/document/container-blocks.js +1 -1
  195. package/dist/format/lib/document/editor-site-widths.d.ts +2 -0
  196. package/dist/format/lib/document/editor-site-widths.js +1 -0
  197. package/dist/format/lib/document/general-order.d.ts +1 -1
  198. package/dist/format/lib/document/general-order.js +1 -1
  199. package/dist/format/lib/document/media-manifest.json +3 -2
  200. package/dist/format/lib/document/part-inks.js +1 -1
  201. package/dist/format/lib/document/passes/document-position.js +1 -1
  202. package/dist/format/lib/document/passes/settings-groups.js +1 -1
  203. package/dist/format/lib/document/passes/types.d.ts +10 -5
  204. package/dist/format/lib/document/renamed-props.js +1 -1
  205. package/dist/format/lib/document/section-catalog.js +2 -2
  206. package/dist/format/lib/editor-words-catalogue.d.ts +32 -31
  207. package/dist/format/lib/editor-words-catalogue.js +6 -6
  208. package/dist/format/lib/fit-words.js +77 -18
  209. package/dist/format/lib/fonts.d.ts +1 -0
  210. package/dist/format/lib/fonts.js +1 -1
  211. package/dist/format/lib/hero-group-placement.js +1 -1
  212. package/dist/format/lib/hero-texture.d.ts +1 -1
  213. package/dist/format/lib/hero-texture.js +1 -1
  214. package/dist/format/lib/locations-grid.d.ts +1 -0
  215. package/dist/format/lib/locations-grid.js +1 -1
  216. package/dist/format/lib/map-styles.d.ts +0 -1
  217. package/dist/format/lib/map-styles.js +1 -1
  218. package/dist/format/lib/popup/look.js +1 -1
  219. package/dist/format/lib/popup/text-kinds.d.ts +0 -1
  220. package/dist/format/lib/popup/text-kinds.js +1 -1
  221. package/dist/format/lib/sections/hero-overlay.d.ts +1 -1
  222. package/dist/format/lib/sections/hero-overlay.js +1 -1
  223. package/dist/format/lib/sections/section-head-placement.d.ts +0 -4
  224. package/dist/format/lib/sections/section-head-placement.js +1 -1
  225. package/dist/format/lib/sections/section-presets.js +1 -1
  226. package/dist/format/lib/sections/strip-shape.d.ts +16 -0
  227. package/dist/format/lib/sections/strip-shape.js +1 -0
  228. package/dist/format/lib/sections/timeline-year-shape.d.ts +4 -0
  229. package/dist/format/lib/sections/timeline-year-shape.js +1 -0
  230. package/dist/format/lib/source-rules/box-fields-from-easel.d.ts +4 -0
  231. package/dist/format/lib/source-rules/box-fields-from-easel.js +8 -0
  232. package/dist/format/lib/source-rules/editor-chrome-note.js +1 -1
  233. package/dist/format/lib/source-rules/editor-words.js +2 -2
  234. package/dist/format/lib/source-rules/no-glyph-rows.d.ts +0 -4
  235. package/dist/format/lib/source-rules/no-glyph-rows.js +4 -4
  236. package/dist/format/lib/source-rules/one-loop-module.d.ts +7 -0
  237. package/dist/format/lib/source-rules/one-loop-module.js +6 -0
  238. package/dist/format/lib/source-rules/one-node-list.d.ts +2 -0
  239. package/dist/format/lib/source-rules/one-node-list.js +1 -0
  240. package/dist/format/lib/source-rules/one-page-theme-reader.d.ts +6 -0
  241. package/dist/format/lib/source-rules/one-page-theme-reader.js +6 -0
  242. package/dist/format/lib/source-rules/part-style-naming.js +1 -1
  243. package/dist/format/lib/source-rules/shell-width-token-not-colour.d.ts +5 -0
  244. package/dist/format/lib/source-rules/shell-width-token-not-colour.js +2 -0
  245. package/dist/format/lib/source-rules/site-square-by-default.js +3 -3
  246. package/dist/format/lib/source-rules/support/panel-select-cascade.js +2 -2
  247. package/dist/format/lib/theme.d.ts +3 -0
  248. package/dist/format/lib/theme.js +4 -4
  249. package/dist/render/components/Banner.js +1 -1
  250. package/dist/render/components/ButtonBlock.d.ts +1 -0
  251. package/dist/render/components/ButtonBlock.js +1 -1
  252. package/dist/render/components/CardRowContext.d.ts +4 -4
  253. package/dist/render/components/CardRowContext.js +1 -1
  254. package/dist/render/components/Cards.d.ts +1 -0
  255. package/dist/render/components/Cards.js +1 -1
  256. package/dist/render/components/ContactLocations.js +2 -14
  257. package/dist/render/components/FeaturedCover.js +1 -1
  258. package/dist/render/components/Flex.d.ts +19 -1
  259. package/dist/render/components/Flex.js +1 -1
  260. package/dist/render/components/Grid.js +1 -1
  261. package/dist/render/components/Heading.d.ts +1 -0
  262. package/dist/render/components/Heading.js +1 -1
  263. package/dist/render/components/HeroSection.js +1 -1
  264. package/dist/render/components/HeroSingle.js +1 -1
  265. package/dist/render/components/HeroSlide.js +1 -1
  266. package/dist/render/components/HeroVideoPlay.js +1 -1
  267. package/dist/render/components/ImageBlock.d.ts +1 -2
  268. package/dist/render/components/ImageBlock.js +1 -1
  269. package/dist/render/components/InBoxContext.d.ts +2 -0
  270. package/dist/render/components/InBoxContext.js +1 -0
  271. package/dist/render/components/KeyFeatures.js +1 -1
  272. package/dist/render/components/LocationMap.d.ts +23 -0
  273. package/dist/render/components/LocationMap.js +1 -0
  274. package/dist/render/components/Logo.js +1 -1
  275. package/dist/render/components/LongRead.js +1 -1
  276. package/dist/render/components/Manifesto.d.ts +2 -1
  277. package/dist/render/components/Manifesto.js +1 -1
  278. package/dist/render/components/PreviewHeaderContext.d.ts +1 -4
  279. package/dist/render/components/PreviewHeaderContext.js +1 -1
  280. package/dist/render/components/PreviewLocationPartContext.d.ts +1 -1
  281. package/dist/render/components/PreviewLocationPartContext.js +1 -1
  282. package/dist/render/components/ProcessSteps.js +1 -1
  283. package/dist/render/components/SectionAnimation.d.ts +16 -3
  284. package/dist/render/components/SectionAnimation.js +1 -1
  285. package/dist/render/components/SiteGutterFrame.d.ts +7 -1
  286. package/dist/render/components/SiteGutterFrame.js +1 -1
  287. package/dist/render/components/SiteMap.js +1 -1
  288. package/dist/render/components/SpecStrip.d.ts +2 -4
  289. package/dist/render/components/SpecStrip.js +1 -1
  290. package/dist/render/components/Split.d.ts +2 -1
  291. package/dist/render/components/Split.js +1 -1
  292. package/dist/render/components/Text.d.ts +2 -0
  293. package/dist/render/components/Text.js +1 -1
  294. package/dist/render/components/Ticker.d.ts +5 -4
  295. package/dist/render/components/Ticker.js +1 -1
  296. package/dist/render/components/TickerSection.d.ts +5 -4
  297. package/dist/render/components/TickerSection.js +1 -1
  298. package/dist/render/components/Timeline.js +1 -1
  299. package/dist/render/components/TimelineRail.d.ts +55 -0
  300. package/dist/render/components/TimelineRail.js +1 -0
  301. package/dist/render/components/TimelineTrack.js +1 -1
  302. package/dist/render/components/goldPhrases.js +1 -1
  303. package/dist/render/lib/animation/LoopTrack.d.ts +14 -0
  304. package/dist/render/lib/animation/LoopTrack.js +1 -0
  305. package/dist/render/lib/animation/entrance.d.ts +18 -0
  306. package/dist/render/lib/animation/entrance.js +1 -0
  307. package/dist/render/lib/document/blocks/general/ButtonBlock/render.js +1 -1
  308. package/dist/render/lib/document/blocks/general/Flex/render.js +1 -1
  309. package/dist/render/lib/document/blocks/general/ImageBlock/render.js +1 -1
  310. package/dist/render/lib/document/blocks/general/LocationMap/render.d.ts +2 -0
  311. package/dist/render/lib/document/blocks/general/LocationMap/render.js +1 -0
  312. package/dist/render/lib/document/blocks/general/Manifesto/render.js +1 -1
  313. package/dist/render/lib/document/blocks/general/SectionHeader/render.js +1 -1
  314. package/dist/render/lib/document/blocks/general/Split/render.js +1 -1
  315. package/dist/render/lib/document/blocks/general/Text/render.js +1 -1
  316. package/dist/render/lib/document/blocks/general/Ticker/render.js +1 -1
  317. package/dist/render/lib/document/blocks/general/renders.d.ts +1 -0
  318. package/dist/render/lib/document/blocks/general/renders.js +1 -1
  319. package/dist/render/lib/document/blocks/general/section-head-looks.d.ts +9 -0
  320. package/dist/render/lib/document/blocks/general/section-head-looks.js +2 -0
  321. package/dist/render/lib/document/blocks/general/section-to-box-row-parts.d.ts +9 -1
  322. package/dist/render/lib/document/blocks/general/section-to-box-row-parts.js +1 -1
  323. package/dist/render/lib/document/blocks/general/section-to-box-rows-cards.d.ts +2 -0
  324. package/dist/render/lib/document/blocks/general/section-to-box-rows-cards.js +1 -0
  325. package/dist/render/lib/document/blocks/general/section-to-box-rows-head.d.ts +4 -0
  326. package/dist/render/lib/document/blocks/general/section-to-box-rows-head.js +1 -0
  327. package/dist/render/lib/document/blocks/general/section-to-box-rows-locations.d.ts +2 -0
  328. package/dist/render/lib/document/blocks/general/section-to-box-rows-locations.js +1 -0
  329. package/dist/render/lib/document/blocks/general/section-to-box-rows-logos.js +1 -1
  330. package/dist/render/lib/document/blocks/general/section-to-box-rows-stats.js +1 -1
  331. package/dist/render/lib/document/blocks/general/section-to-box-rows-strip.d.ts +2 -0
  332. package/dist/render/lib/document/blocks/general/section-to-box-rows-strip.js +1 -0
  333. package/dist/render/lib/document/blocks/general/section-to-box-rows-timeline.d.ts +2 -0
  334. package/dist/render/lib/document/blocks/general/section-to-box-rows-timeline.js +3 -0
  335. package/dist/render/lib/document/blocks/general/section-to-box-rows.js +1 -1
  336. package/dist/render/lib/document/page-frame.d.ts +3 -21
  337. package/dist/render/lib/document/page-frame.js +1 -1
  338. package/dist/render/lib/document/part-styles.d.ts +14 -13
  339. package/dist/render/lib/document/part-styles.js +2 -2
  340. package/dist/render/lib/document/passes/block-size.d.ts +3 -0
  341. package/dist/render/lib/document/passes/block-size.js +1 -0
  342. package/dist/render/lib/document/passes/cell-width.d.ts +1 -0
  343. package/dist/render/lib/document/passes/cell-width.js +1 -1
  344. package/dist/render/lib/document/passes/clickable-parts.js +1 -1
  345. package/dist/render/lib/document/passes/corners.js +1 -1
  346. package/dist/render/lib/document/passes/index.js +1 -1
  347. package/dist/render/lib/document/passes/section-anchor.d.ts +1 -0
  348. package/dist/render/lib/document/passes/section-anchor.js +1 -1
  349. package/dist/render/lib/document/passes/section-animation.d.ts +1 -0
  350. package/dist/render/lib/document/passes/section-animation.js +1 -1
  351. package/dist/render/lib/document/passes/section-padding.js +1 -1
  352. package/dist/render/lib/document/passes/section-width.d.ts +1 -4
  353. package/dist/render/lib/document/passes/section-width.js +1 -1
  354. package/dist/render/lib/sections/section-to-box.d.ts +28 -7
  355. package/dist/render/lib/sections/section-to-box.js +1 -1
  356. package/dist/render/lib/text-styles/site-text-styles.js +2 -2
  357. package/package.json +5 -5
  358. package/dist/editor/components/PartResetDot.d.ts +0 -5
  359. package/dist/editor/components/PartResetDot.js +0 -1
  360. package/dist/editor/lib/document/section-width-fields.d.ts +0 -2
  361. package/dist/editor/lib/document/section-width-fields.js +0 -1
  362. package/dist/format/lib/content/image-width.d.ts +0 -9
  363. package/dist/format/lib/content/image-width.js +0 -1
  364. package/dist/format/lib/content/section-animation.d.ts +0 -13
  365. package/dist/format/lib/content/section-animation.js +0 -1
  366. package/dist/format/lib/host-document-bridge.js +0 -1
  367. package/dist/format/lib/sections/ticker-scroll.d.ts +0 -11
  368. package/dist/format/lib/sections/ticker-scroll.js +0 -1
@@ -1 +1 @@
1
- "use client";import{jsx as r,jsxs as m,Fragment as xe}from"react/jsx-runtime";import{Fragment as Q,useEffect as V,useRef as z}from"react";import{useTreeDrag as X}from"efficient-easel/drag";import{GlobeIcon as ve,ImageIcon as fe,LocationIcon as ke,MapIcon as Le,TextLinesIcon as Ie,TrashIcon as Z}from"efficient-easel/icons";import{Subtree as b,TreeRow as P,TreeRowAction as ee,TreeSeam as oe}from"efficient-easel/tree";import{useEaselStrings as Se}from"efficient-easel/strings";import{decodeLocationPartId as Pe,encodeLocationPartId as he,usePreviewLocationPart as we}from"../../render/components/PreviewLocationPartContext.js";import{isSelectionMode as Ce}from"efficient-easel/screen/lib/screen-parts";import{say as p,sayCount as ne}from"../../format/lib/editor-words.js";import{useLocationsFocus as $e,setLocationsFocus as i}from"../lib/document/locations-focus.js";import{bucketsOf as te,moveGroup as re,moveCity as ce,addCity as Te,addGroup as De,deleteGroup as Fe,deleteCity as Ge,absCityIndex as le,groupLabelOf as Oe,cardKey as se}from"../../format/lib/document/locations-tree.js";const ae="ContactLocations",T=x=>({parentId:`locations-${x}`,slot:"groups"}),A=(x,y)=>({parentId:`locations-${x}`,slot:`cities:${y}`});function We(x,y){const{readOnly:h,selected:w}=y,k=Se().tree,v=y.data?.content??[],ie=Ce(x),D=z(null);V(()=>{const o=w?.type===ae?String(w.props.id):null;o&&o!==D.current&&i({level:"groups"}),D.current=o},[w?.props.id]);const{selectedLocationPartId:de,setSelectedLocationPartId:R,setSelectHandler:N}=we(),c=$e(),u=(o,e)=>{const t=v[o];t&&y.replace(o,{type:t.type,props:{...t.props,locations:e}})},L=o=>{const e=v[o]?.props?.locations;return Array.isArray(e)?e:[]},_=X({keyOf:o=>`group:${o.si}:${o.index}`,readOnly:!!h,canDrop:(o,e)=>e.parentId===T(o.si).parentId&&e.slot==="groups",onDrop:(o,e)=>{u(o.si,re(L(o.si),o.index,e.index)),c.level==="city"&&i({level:"groups"})},onStep:(o,e)=>{u(o.si,re(L(o.si),o.index,e<0?o.index-1:o.index+2)),c.level==="city"&&i({level:"groups"})}}),F=X({keyOf:o=>`city:${o.si}:${o.group}:${o.index}`,readOnly:!!h,canDrop:(o,e)=>e.parentId===T(o.si).parentId&&e.slot.startsWith("cities:"),onDrop:(o,e)=>{const t=e.slot.slice(7);u(o.si,ce(L(o.si),o.group,o.index,t,e.index)),i({level:"group",key:t})},onStep:(o,e)=>{u(o.si,ce(L(o.si),o.group,o.index,o.group,e<0?o.index-1:o.index+2)),c.level==="city"&&i({level:"group",key:o.group})}}),j=z(v);j.current=v;const E=z(()=>{});V(()=>{N(o=>{const e=Pe(o);if(!e)return;const t=j.current.findIndex(C=>C.props?.id===e.nodeId);t<0||E.current(t,{level:e.part,index:e.index})})},[N]);const l=(o,e)=>{D.current=v[o]?.props?.id??null,y.select(o),i(e),x.reveal();const t=v[o]?.props?.id;typeof t=="string"&&(e.level==="image"||e.level==="map")?R(he(t,e.index,e.level)):R(null),typeof t=="string"&&y.scrollTo(t)};return E.current=l,{renderLocationTree:(o,e,{rowClick:t,isCollapsed:C,toggleCollapse:M})=>{const f=L(e),pe=te(f),I=String(o.props.id),S=ie&&w?.props.id===I,B=n=>r(oe,{...h?{}:_.seam({place:{...T(e),index:n}})},`seam:${I}:groups:${n}`),H=(n,d)=>r(oe,{...h?{}:F.seam({place:{...A(e,n),index:d}})},`seam:${I}:cities:${n}:${d}`);return m(xe,{children:[r(P,{icon:r(Ie,{size:13}),name:p("Texts"),words:k,onSelect:()=>l(e,{level:"texts"}),selected:S&&c.level==="texts",rowProps:{onClick:t(()=>l(e,{level:"texts"}))}}),pe.map((n,d)=>{const G=`${I}::grp::${n.key}`,K=C(G),ue=S&&c.level==="group"&&c.key===n.key,U=n.name||n.key?Oe(n.key,n.name):p("Ungrouped"),W={...A(e,n.key),index:n.cards.length},Y=F.row({item:{si:e,group:n.key,index:-1},place:W,into:W,canDrag:!1},{onClick:t(()=>l(e,{level:"group",key:n.key}))}),$=_.row({item:{si:e,index:d},place:{...T(e),index:d}},Y.rowProps);return m(Q,{children:[d===0&&B(0),r(P,{icon:r(ve,{size:13}),name:U,words:k,onSelect:()=>l(e,{level:"group",key:n.key}),selected:ue,draggable:$.draggable,dragging:$.dragging,drop:$.drop??Y.drop,fold:{open:!K,label:p("group"),onToggle:()=>M(G)},actions:r(ee,{kind:"delete",label:ne("Delete {label} group ({n} city)","Delete {label} group ({n} cities)",n.cards.length,{label:U}),onClick:()=>{u(e,Fe(f,n.key)),i({level:"groups"})},children:r(Z,{size:15})}),rowProps:$.rowProps,count:n.cards.length,countLabel:ne("{n} city","{n} cities",n.cards.length)}),!K&&m(b,{children:[n.cards.map((g,a)=>{const s=le(f,n.key,a),ye=S&&c.level==="city"&&c.index===s,O=String(g?.name??"")||p("City"),q=`${I}::city::${se(g)}`,J=C(q),{rowProps:ge,...me}=F.row({item:{si:e,group:n.key,index:a},place:{...A(e,n.key),index:a}},{onClick:t(()=>l(e,{level:"city",index:s}))});return m(Q,{children:[a===0&&H(n.key,0),r(P,{icon:r(ke,{size:13}),name:O,words:k,onSelect:()=>l(e,{level:"city",index:s}),selected:ye,...me,fold:{open:!J,label:O,onToggle:()=>M(q)},actions:r(ee,{kind:"delete",label:p("Delete {name}",{name:O}),onClick:()=>{u(e,Ge(f,n.key,a)),i({level:"group",key:n.key})},children:r(Z,{size:15})}),rowProps:ge}),!J&&m(b,{children:[r(P,{icon:r(fe,{size:13}),name:p("Image"),words:k,onSelect:()=>l(e,{level:"image",index:s}),selected:S&&c.level==="image"&&c.index===s,rowProps:{onClick:t(()=>l(e,{level:"image",index:s}))}}),r(P,{icon:r(Le,{size:13}),name:p("Map"),words:k,onSelect:()=>l(e,{level:"map",index:s}),selected:S&&c.level==="map"&&c.index===s,rowProps:{onClick:t(()=>l(e,{level:"map",index:s}))}})]}),H(n.key,a+1)]},se(g))}),m("button",{type:"button",className:"sf-add-card",onClick:()=>{const g=Te(f,n.key);u(e,g);const a=te(g).find(s=>s.key===n.key);i(a&&a.cards.length?{level:"city",index:le(g,n.key,a.cards.length-1)}:{level:"group",key:n.key})},children:[r("span",{className:"sf-plus sf-plus--sm",children:"+"}),p("Add city")]})]}),B(d+1)]},G)}),m("button",{type:"button",className:"sf-add-card",onClick:()=>{const{cards:n,key:d}=De(f);u(e,n),l(e,{level:"group",key:d})},children:[r("span",{className:"sf-plus sf-plus--sm",children:"+"}),p("Add group")]})]})},sectionPressed:o=>{o?.type===ae&&i({level:"groups"})}}}export{ae as LOCATIONS_TYPE,We as useLocationsTree};
1
+ "use client";import{jsx as r,jsxs as m,Fragment as xe}from"react/jsx-runtime";import{Fragment as Q,useEffect as V,useRef as z}from"react";import{useTreeDrag as X}from"efficient-easel/drag";import{GlobeIcon as ve,ImageIcon as ke,LocationIcon as fe,MapIcon as Le,TextLinesIcon as Ie,TrashIcon as Z}from"efficient-easel/icons";import{Subtree as b,TreeRow as P,TreeRowAction as ee,TreeSeam as oe}from"efficient-easel/tree";import{useEaselStrings as Se}from"efficient-easel/strings";import{decodeLocationPartId as Pe,encodeLocationPartId as he,usePreviewLocationPart as we}from"../../render/components/PreviewLocationPartContext.js";import{isSelectionMode as Ce}from"efficient-easel/screen/lib/screen-parts";import{say as p,sayCount as ne}from"../../format/lib/editor-words.js";import{useLocationsFocus as $e,setLocationsFocus as i}from"../lib/document/locations-focus.js";import{bucketsOf as te,moveGroup as re,moveCity as ce,addCity as Te,addGroup as De,deleteGroup as Fe,deleteCity as Ge,absCityIndex as le,groupLabelOf as Oe,cardKey as se}from"../../format/lib/document/locations-tree.js";const ae="ContactLocations",T=x=>({parentId:`locations-${x}`,slot:"groups"}),A=(x,y)=>({parentId:`locations-${x}`,slot:`cities:${y}`});function We(x,y){const{readOnly:h,selected:w}=y,f=Se().tree,v=y.data?.content??[],ie=Ce(x),D=z(null);V(()=>{const o=w?.type===ae?String(w.props.id):null;o&&o!==D.current&&i({level:"groups"}),D.current=o},[w?.props.id]);const{selectedLocationPartId:de,setSelectedLocationPartId:R,setSelectHandler:N}=we(),c=$e(),u=(o,e)=>{const t=v[o];t&&y.replace(o,{type:t.type,props:{...t.props,locations:e}})},L=o=>{const e=v[o]?.props?.locations;return Array.isArray(e)?e:[]},_=X({keyOf:o=>`group:${o.si}:${o.index}`,readOnly:!!h,canDrop:(o,e)=>e.parentId===T(o.si).parentId&&e.slot==="groups",onDrop:(o,e)=>{u(o.si,re(L(o.si),o.index,e.index)),c.level==="city"&&i({level:"groups"})},onStep:(o,e)=>{u(o.si,re(L(o.si),o.index,e<0?o.index-1:o.index+2)),c.level==="city"&&i({level:"groups"})}}),F=X({keyOf:o=>`city:${o.si}:${o.group}:${o.index}`,readOnly:!!h,canDrop:(o,e)=>e.parentId===T(o.si).parentId&&e.slot.startsWith("cities:"),onDrop:(o,e)=>{const t=e.slot.slice(7);u(o.si,ce(L(o.si),o.group,o.index,t,e.index)),i({level:"group",key:t})},onStep:(o,e)=>{u(o.si,ce(L(o.si),o.group,o.index,o.group,e<0?o.index-1:o.index+2)),c.level==="city"&&i({level:"group",key:o.group})}}),j=z(v);j.current=v;const E=z(()=>{});V(()=>{N(o=>{const e=Pe(o);if(!e)return;const t=j.current.findIndex(C=>C.props?.id===e.nodeId);t<0||E.current(t,{level:e.part,index:e.index})})},[N]);const l=(o,e)=>{D.current=v[o]?.props?.id??null,y.select(o),i(e),x.reveal();const t=v[o]?.props?.id;typeof t=="string"&&(e.level==="city"||e.level==="image"||e.level==="map")?R(he(t,e.index,e.level)):R(null),typeof t=="string"&&y.scrollTo(t)};return E.current=l,{renderLocationTree:(o,e,{rowClick:t,isCollapsed:C,toggleCollapse:M})=>{const k=L(e),pe=te(k),I=String(o.props.id),S=ie&&w?.props.id===I,B=n=>r(oe,{...h?{}:_.seam({place:{...T(e),index:n}})},`seam:${I}:groups:${n}`),H=(n,d)=>r(oe,{...h?{}:F.seam({place:{...A(e,n),index:d}})},`seam:${I}:cities:${n}:${d}`);return m(xe,{children:[r(P,{icon:r(Ie,{size:13}),name:p("Texts"),words:f,onSelect:()=>l(e,{level:"texts"}),selected:S&&c.level==="texts",rowProps:{onClick:t(()=>l(e,{level:"texts"}))}}),pe.map((n,d)=>{const G=`${I}::grp::${n.key}`,K=C(G),ue=S&&c.level==="group"&&c.key===n.key,U=n.name||n.key?Oe(n.key,n.name):p("Ungrouped"),W={...A(e,n.key),index:n.cards.length},Y=F.row({item:{si:e,group:n.key,index:-1},place:W,into:W,canDrag:!1},{onClick:t(()=>l(e,{level:"group",key:n.key}))}),$=_.row({item:{si:e,index:d},place:{...T(e),index:d}},Y.rowProps);return m(Q,{children:[d===0&&B(0),r(P,{icon:r(ve,{size:13}),name:U,words:f,onSelect:()=>l(e,{level:"group",key:n.key}),selected:ue,draggable:$.draggable,dragging:$.dragging,drop:$.drop??Y.drop,fold:{open:!K,label:p("group"),onToggle:()=>M(G)},actions:r(ee,{kind:"delete",label:ne("Delete {label} group ({n} city)","Delete {label} group ({n} cities)",n.cards.length,{label:U}),onClick:()=>{u(e,Fe(k,n.key)),i({level:"groups"})},children:r(Z,{size:15})}),rowProps:$.rowProps,count:n.cards.length,countLabel:ne("{n} city","{n} cities",n.cards.length)}),!K&&m(b,{children:[n.cards.map((g,a)=>{const s=le(k,n.key,a),ye=S&&c.level==="city"&&c.index===s,O=String(g?.name??"")||p("City"),q=`${I}::city::${se(g)}`,J=C(q),{rowProps:ge,...me}=F.row({item:{si:e,group:n.key,index:a},place:{...A(e,n.key),index:a}},{onClick:t(()=>l(e,{level:"city",index:s}))});return m(Q,{children:[a===0&&H(n.key,0),r(P,{icon:r(fe,{size:13}),name:O,words:f,onSelect:()=>l(e,{level:"city",index:s}),selected:ye,...me,fold:{open:!J,label:O,onToggle:()=>M(q)},actions:r(ee,{kind:"delete",label:p("Delete {name}",{name:O}),onClick:()=>{u(e,Ge(k,n.key,a)),i({level:"group",key:n.key})},children:r(Z,{size:15})}),rowProps:ge}),!J&&m(b,{children:[r(P,{icon:r(ke,{size:13}),name:p("Image"),words:f,onSelect:()=>l(e,{level:"image",index:s}),selected:S&&c.level==="image"&&c.index===s,rowProps:{onClick:t(()=>l(e,{level:"image",index:s}))}}),r(P,{icon:r(Le,{size:13}),name:p("Map"),words:f,onSelect:()=>l(e,{level:"map",index:s}),selected:S&&c.level==="map"&&c.index===s,rowProps:{onClick:t(()=>l(e,{level:"map",index:s}))}})]}),H(n.key,a+1)]},se(g))}),m("button",{type:"button",className:"sf-add-card",onClick:()=>{const g=Te(k,n.key);u(e,g);const a=te(g).find(s=>s.key===n.key);i(a&&a.cards.length?{level:"city",index:le(g,n.key,a.cards.length-1)}:{level:"group",key:n.key})},children:[r("span",{className:"sf-plus sf-plus--sm",children:"+"}),p("Add city")]})]}),B(d+1)]},G)}),m("button",{type:"button",className:"sf-add-card",onClick:()=>{const{cards:n,key:d}=De(k);u(e,n),l(e,{level:"group",key:d})},children:[r("span",{className:"sf-plus sf-plus--sm",children:"+"}),p("Add group")]})]})},sectionPressed:o=>{o?.type===ae&&i({level:"groups"})}}}export{ae as LOCATIONS_TYPE,We as useLocationsTree};
@@ -0,0 +1,3 @@
1
+ import { type TimedMotionGroup } from "efficient-shell/format";
2
+ export declare function animationDurationField(group: TimedMotionGroup): import("efficient-easel/screen/lib/document/box-fields").BoxField<number>;
3
+ export declare function animationDelayField(group: TimedMotionGroup): import("efficient-easel/screen/lib/document/box-fields").BoxField<number>;
@@ -0,0 +1 @@
1
+ import{jsx as a}from"react/jsx-runtime";import{ClockIcon as s,DurationIcon as u}from"efficient-easel/icons";import{MOTION_TIMING as e}from"efficient-shell/format";import{slider as m}from"../document/box-fields.js";function d(t){const{min:o,max:n,step:i,default:r}=e[t].duration;return m("Duration",a(u,{}),o,n,i,r,"s")}function x(t){const{min:o,max:n,step:i,default:r}=e[t].delay;return m("Delay",a(s,{}),o,n,i,r,"s")}export{x as animationDelayField,d as animationDurationField};
@@ -0,0 +1,4 @@
1
+ import type { ReactElement } from "react";
2
+ import { type EntranceKind } from "efficient-shell/format";
3
+ export declare const ENTRANCE_PICTURE: Readonly<Record<EntranceKind, ReactElement>>;
4
+ export declare function entranceFields(): Record<string, unknown>;
@@ -0,0 +1 @@
1
+ import{jsx as e,jsxs as c}from"react/jsx-runtime";import{phoneKey as s}from"efficient-easel/draw";import{SettingsDefaultReset as L,SettingsField as N}from"efficient-easel/panel";import{AnimationIcon as R,ClockIcon as T,DirectionDownIcon as S,DirectionIcon as g,DirectionLeftIcon as P,DirectionRightIcon as B,DirectionUpIcon as j,DurationIcon as G}from"efficient-easel/icons";import{deviceField as p}from"efficient-easel/screen/lib/document/device-fields";import{NoControlMark as U,noControlField as W}from"efficient-easel/screen/lib/document/panel-no-control-mark";import{describedAs as I,group as H}from"efficient-easel/screen/lib/document/box-fields";import{ENTRANCE_FROM as v,ENTRANCE_FROM_DEFAULT as u,ENTRANCE_KINDS as f,ENTRANCE_KINDS_WITH_FROM as _,MOTION_TIMING as Y,entranceAttrs as z,playEntrance as V,readEntrance as q}from"efficient-shell/format";import{IconPicker as J}from"efficient-shell/ui";import{segmented as Q}from"../document/box-fields.js";import{phoneChoiceField as X,phoneOverrideField as D,useSelectedProps as b}from"../document/controls.js";import{withRowRules as Z}from"../../../format/lib/document/show-when-attach.js";import{editorEaselWords as $,say as a}from"../../../format/lib/editor-words.js";import{animationDelayField as ee,animationDurationField as ne}from"./AnimationDurationRow.js";import{ENTRANCE_KEYS as o,LEGACY_ENTRANCE_KEY as C,entranceOf as x}from"../../../render/lib/animation/entrance.js";const m={none:"None",fade:"Fade",rise:"Rise",scale:"Scale",glide:"Glide",bounce:"Bounce",flip:"Flip",reveal:"Reveal",spin:"Spin"},oe={top:"Top",bottom:"Bottom",left:"Left",right:"Right"},te={top:()=>e(S,{}),bottom:()=>e(j,{}),left:()=>e(B,{}),right:()=>e(P,{})},y="Entrance",F=f.filter(n=>n!=="none"),k=n=>({any:[{field:o.kind,in:n},{all:[{field:o.kind,set:!1},{field:C,in:n}]}]}),M=n=>({any:[{field:s(o.kind),in:n},{all:[{field:s(o.kind),set:!1},k(n)]}]}),ie=[[[o.from],k(_)],[[s(o.from)],M(_)],[[o.duration,o.delay],k(F)],[[s(o.duration),s(o.delay)],M(F)]],d=({children:n})=>e("svg",{viewBox:"0 0 40 40",width:"40",height:"40",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:n}),r=({x:n=12,y:t=12,o:i=1})=>e("rect",{x:n,y:t,width:"16",height:"16",rx:"2",opacity:i}),re={none:e(d,{children:e(r,{})}),fade:c(d,{children:[e(r,{x:6,o:.3}),e(r,{x:18})]}),rise:c(d,{children:[e(r,{y:20,o:.3}),e(r,{y:8}),e("path",{d:"M20 36v-5m-2 2 2-2 2 2"})]}),scale:c(d,{children:[e("rect",{x:"16",y:"16",width:"8",height:"8",rx:"1",opacity:".35"}),e(r,{}),e("path",{d:"M6 6l4 4M34 34l-4-4"})]}),glide:c(d,{children:[e(r,{x:2,o:.3}),e(r,{x:20}),e("path",{d:"M4 33h12m-2-2 2 2-2 2"})]}),bounce:c(d,{children:[e(r,{y:6}),e("path",{d:"M8 34c3-6 5-6 8 0s5 6 8 0 5-6 8 0"})]}),flip:c(d,{children:[e("path",{d:"M12 12l16 4v8l-16 4z",opacity:".35"}),e(r,{}),e("path",{d:"M20 4v32",strokeDasharray:"2 2"})]}),reveal:c(d,{children:[e("rect",{x:"12",y:"12",width:"16",height:"16",rx:"2",strokeDasharray:"2 2",opacity:".5"}),e("path",{d:"M12 22h16v4a2 2 0 0 1-2 2H14a2 2 0 0 1-2-2z",fill:"currentColor",opacity:".35"}),e("path",{d:"M20 36v-5m-2 2 2-2 2 2"})]}),spin:c(d,{children:[e(r,{}),e("path",{d:"M33 14a14 14 0 0 1 0 12m0 0-3-1m3 1 1-3"})]})};function ae({kind:n}){const{attrs:t}=z(q(n,u));return c("span",{className:"sf-entrance-pic",children:[e("span",{className:"sf-entrance-stage",children:e("i",{...t,children:re[n]})}),e("span",{className:"sf-entrance-cap",children:a(m[n])})]})}const le=(n,t)=>{const i=t.querySelector(".sf-entrance-stage > i");i&&V(i)},ce={width:"3.5rem",height:"4.25rem"};function K({value:n,onChange:t}){return e(J,{label:a(y),value:n,emptyValue:"none",columns:3,cell:ce,onChange:t,onPreview:le,tooltips:!1,options:f.map(i=>({value:i,label:a(m[i]),icon:e(ae,{kind:i})}))})}const E="Effect";function se({value:n,onChange:t}){const i=b(),l=x({...i,[o.kind]:n},"desktop").kind;return e(N,{label:a(E),icon:e(R,{}),value:a(m[l]),children:e(K,{value:l,onChange:t})})}function de({value:n,onChange:t}){const i=b(),l=typeof n=="string"&&f.includes(n),h=x(i,"desktop").kind;return e(N,{label:a(E),icon:e(R,{}),value:a(m[l?n:h]),changed:l,action:e(L,{words:$()?.panel,label:a(E),changed:l,detail:a("{value} on desktop",{value:a(m[h])}),onReset:()=>t(void 0)}),children:e(K,{value:l?n:h,onChange:t})})}const O={type:"select",label:y,options:f.map(n=>({value:n,label:m[n]}))},pe=()=>I({type:"custom",render:({value:n,onChange:t})=>e(se,{value:n,onChange:t})},O),me=()=>I({type:"custom",render:({value:n,onChange:t})=>e(de,{value:n,onChange:t})},O),w=v.map(n=>({label:oe[n],value:n,picture:te[n]()})),A=n=>v.includes(n)?n:void 0;function xe(){const{duration:n,delay:t}=Y.entrance,i={_gEntrance:H(y),[o.kind]:p("desktop",pe()),[C]:W({type:"custom",render:()=>e(U,{})},"always"),[s(o.kind)]:p("mobile",me()),[o.from]:p("desktop",Q("From",e(g,{}),w,u)),[s(o.from)]:p("mobile",X({label:"From",icon:e(g,{}),options:w,desktopKey:o.from,resolve:(l,h)=>A(l)??A(h)??u})),[o.duration]:p("desktop",ne("entrance")),[s(o.duration)]:p("mobile",D({label:"Duration",desktopKey:o.duration,icon:e(G,{}),min:n.min,max:n.max,step:n.step,fallback:n.default,unit:"s"})),[o.delay]:p("desktop",ee("entrance")),[s(o.delay)]:p("mobile",D({label:"Delay",desktopKey:o.delay,icon:e(T,{}),min:t.min,max:t.max,step:t.step,fallback:t.default,unit:"s"}))};return Z(i,ie)}export{re as ENTRANCE_PICTURE,xe as entranceFields};
@@ -0,0 +1,2 @@
1
+ export type AnimationTabKind = "section" | "block" | "box" | "marquee";
2
+ export declare function animationTabFields(kind: AnimationTabKind): Record<string, unknown>;
@@ -0,0 +1 @@
1
+ import{animationDelayField as e,animationDurationField as r}from"./AnimationDurationRow.js";import{entranceFields as o}from"./entrance-fields.js";import{loopDirectionField as n,loopFields as t}from"./loop-fields.js";function m(i){switch(i){case"section":case"block":return o();case"box":return{...o(),...t()};case"marquee":return{...o(),scrollDirection:n(),loopDuration:r("loop"),loopDelay:e("loop")}}}export{m as animationTabFields};
@@ -0,0 +1,2 @@
1
+ export declare function loopDirectionField(): import("../document/controls.js").CustomField<string>;
2
+ export declare function loopFields(): Record<string, unknown>;
@@ -0,0 +1 @@
1
+ import{jsx as i}from"react/jsx-runtime";import{DirectionIcon as n,LoopIcon as t}from"efficient-easel/icons";import{select as e}from"../document/box-fields.js";import{EDGE_ARROWS as l,edgePad as O}from"../document/controls.js";import{withShowWhen as o}from"../../../format/lib/document/show-when-attach.js";import{animationDelayField as p,animationDurationField as m}from"./AnimationDurationRow.js";import{DEFAULT_LOOP_DIRECTION as a,LOOP_DIRECTION_OPTIONS as c,LOOP_NONE as D,LOOP_OPTIONS as s,LOOP_SCROLLS as r}from"../../../format/lib/animation/loop.js";function L(){return O("Scroll direction",c,a,"A marquee cannot run diagonally, so the corners are not answers.",i(n,{}),l)}function E(){return{loop:e("Loop",i(t,{}),s,D),scrollDirection:o(L(),r),loopDuration:o(m("loop"),r),loopDelay:o(p("loop"),r)}}export{L as loopDirectionField,E as loopFields};
@@ -1 +1 @@
1
- "use client";import{jsx as s,jsxs as g}from"react/jsx-runtime";import{ColorPicker as m,HexInput as w}from"efficient-shell/ui";import{SettingsDefaultReset as C,SettingsField as b}from"efficient-easel/panel";import{typedHex as p}from"efficient-easel/pick";import{usePreviewHeader as N}from"../../../render/components/PreviewHeaderContext.js";import{editorEaselWords as S,say as h}from"../../../format/lib/editor-words.js";import{themeSwatches as j}from"./theme-swatches.js";function k({value:e,onChange:n,label:o,id:r,caption:t,inherited:a,ariaLabel:d,opacity:i,onOpacityChange:c}){return s(H,{value:e,onChange:n,label:h(d??o),id:r,caption:t,inherited:a,...c?{opacity:i,onOpacityChange:c}:{}})}function z(){const{theme:e}=N();return j(e).map(n=>({value:n.value,label:n.name}))}function H({value:e,onChange:n,label:o,id:r,caption:t,inherited:a,opacity:d,onOpacityChange:i}){const c=z(),l=e?null:p(a??""),f=t!==void 0&&(!e||p(t)!==p(e))?t:null,u=x=>{x!==e&&n(x)};return i?s("div",{className:"sf-colour",children:s(m,{id:r,value:e,onChange:u,label:o,presets:c,fallback:l??void 0,size:"md",align:"start",showHexInput:!0,opacity:d,onOpacityChange:i})}):g("div",{className:"sf-colour",children:[s(m,{id:r,value:e,onChange:u,label:o,presets:c,fallback:l??void 0,size:"md",align:"start"}),f!==null?s("span",{className:"sf-colour-caption",children:f}):s("span",{className:"sf-colour-hexwrap",children:s(w,{value:e||l||"",onChange:u,label:h("{label} hex code",{label:o}),placeholder:e||l?void 0:h("Not set"),className:l?"sf-colour-hex is-inherited":"sf-colour-hex",size:"md"})})]})}function _({value:e,onChange:n,label:o}){return s(m,{value:e,onChange:r=>{r&&r!==e&&n(r)},label:h(o),size:"sm",align:"end"})}function P({label:e,icon:n,changed:o,hint:r,onReset:t,resetTo:a,children:d,...i}){return g(b,{label:e,icon:n,htmlFor:i.id,changed:o,hint:r,action:t?s(C,{words:S()?.panel,label:e,changed:!!o,detail:a,onReset:t}):void 0,children:[k({...i,label:e}),d]})}function A({label:e,icon:n,value:o,inherited:r,resetTo:t,onChange:a,onReset:d,hint:i,opacity:c,onOpacityChange:l,changed:f}){const u=!!o;return s(P,{label:e,icon:n,value:o,inherited:u?void 0:r,onChange:a,changed:f??u,onReset:d,resetTo:t,hint:i,...l?{opacity:c,onOpacityChange:l}:{}})}export{_ as AnyColourSwatch,k as ColourControl,P as ColourRow,A as InheritedColourRow};
1
+ "use client";import{jsx as s,jsxs as g}from"react/jsx-runtime";import{ColorPicker as h,HexInput as w}from"efficient-shell/ui";import{SettingsDefaultReset as C,SettingsField as b}from"efficient-easel/panel";import{typedHex as p}from"efficient-easel/pick";import{usePreviewHeader as S}from"../../../render/components/PreviewHeaderContext.js";import{editorEaselWords as N,say as m}from"../../../format/lib/editor-words.js";import{themeSwatches as E}from"./theme-swatches.js";import{SITE_STYLE_UNSET_LABEL as T}from"../../../format/components/SiteStyleUnset.js";function _({value:e,onChange:n,label:o,id:r,caption:t,inherited:a,ariaLabel:d,opacity:i,onOpacityChange:c}){return s(k,{value:e,onChange:n,label:m(d??o),id:r,caption:t,inherited:a,...c?{opacity:i,onOpacityChange:c}:{}})}function j(){const{theme:e}=S();return E(e).map(n=>({value:n.value,label:n.name}))}function k({value:e,onChange:n,label:o,id:r,caption:t,inherited:a,opacity:d,onOpacityChange:i}){const c=j(),l=e?null:p(a??""),f=t!==void 0&&(!e||p(t)!==p(e))?t:null,u=x=>{x!==e&&n(x)};return i?s("div",{className:"sf-colour",children:s(h,{id:r,value:e,onChange:u,label:o,presets:c,fallback:l??void 0,size:"md",align:"start",showHexInput:!0,opacity:d,onOpacityChange:i})}):g("div",{className:"sf-colour",children:[s(h,{id:r,value:e,onChange:u,label:o,presets:c,fallback:l??void 0,size:"md",align:"start"}),f!==null?s("span",{className:"sf-colour-caption",children:f}):s("span",{className:"sf-colour-hexwrap",children:s(w,{value:e||l||"",onChange:u,label:m("{label} hex code",{label:o}),placeholder:e||l?void 0:m(T),className:l?"sf-colour-hex is-inherited":"sf-colour-hex",size:"md"})})]})}function A({value:e,onChange:n,label:o}){return s(h,{value:e,onChange:r=>{r&&r!==e&&n(r)},label:m(o),size:"sm",align:"end"})}function z({label:e,icon:n,changed:o,hint:r,onReset:t,resetTo:a,children:d,...i}){return g(b,{label:e,icon:n,htmlFor:i.id,changed:o,hint:r,action:t?s(C,{words:N()?.panel,label:e,changed:!!o,detail:a,onReset:t}):void 0,children:[_({...i,label:e}),d]})}function F({label:e,icon:n,value:o,inherited:r,resetTo:t,onChange:a,onReset:d,hint:i,opacity:c,onOpacityChange:l,changed:f}){const u=!!o;return s(z,{label:e,icon:n,value:o,inherited:u?void 0:r,onChange:a,changed:f??u,onReset:d,resetTo:t,hint:i,...l?{opacity:c,onOpacityChange:l}:{}})}export{A as AnyColourSwatch,_ as ColourControl,z as ColourRow,F as InheritedColourRow};
@@ -1 +1 @@
1
- import{buildPaletteSections as a,categoryLabel as l,paletteWithoutPinned as i,pinnedSection as r}from"efficient-easel/screen/lib/document/palette-sections";import{labelAtLevel as c,LEVEL_NAMED_TYPE as b}from"../../../format/lib/document/section-catalog.js";const u={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 t(o){return u[o]?.label}function d(o,e={}){return a(o,{labelAtLevel:c,categoryLabel:t,descriptions:e})}function f(o,e){return l(o,e,t)}const n=b;function m(o){return r(o,n)}function L(o){return i(o,n)}export{u as CATEGORY_META,n as PINNED_SECTION_TYPE,d as buildPaletteSections,f as categoryLabel,t as categoryShortLabel,L as paletteWithoutPinned,m as pinnedSection};
1
+ import{buildPaletteSections as a,categoryLabel as l,paletteWithoutPinned as i,pinnedSection as r}from"efficient-easel/screen/lib/document/palette-sections";import{labelAtLevel as c,LEVEL_NAMED_TYPE as b}from"../../../format/lib/document/section-catalog.js";const s={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"},layouts:{label:"Layouts",icon:"layers"}};function t(o){return s[o]?.label}function d(o,e={}){return a(o,{labelAtLevel:c,categoryLabel:t,descriptions:e})}function f(o,e){return l(o,e,t)}const n=b;function m(o){return r(o,n)}function y(o){return i(o,n)}export{s as CATEGORY_META,n as PINNED_SECTION_TYPE,d as buildPaletteSections,f as categoryLabel,t as categoryShortLabel,y as paletteWithoutPinned,m as pinnedSection};
@@ -1 +1 @@
1
- import{offeredSets as S}from"../editor-blocks.js";import{currentEaselSession as l}from"efficient-easel/screen/lib/session";import{blocksOf as p}from"../website-session.js";import{presetFor as O}from"../../../format/lib/sections/section-presets.js";import{blockTypesIn as a}from"efficient-easel/screen/lib/document/block-types-in";import{blockSetOf as h}from"../../../format/lib/document/section-catalog.js";import{SLOT_SECTION_SPECS as E}from"../../../render/lib/document/slot-specs.js";const w=()=>({}),m=new Map;function T(e){const r=m.get(e);if(r)return r;const n=new Set,f=E[e];if(f)for(const t of f.seeds(w))for(const s of a({type:f.childType,props:t}))n.add(s);const i=O(e);if(i){let t=0;for(const s of a(i(w,o=>`${o}-${t+=1}`)))n.add(s)}n.delete(e);const u=[...n].sort();return m.set(e,u),u}function x(e){if(!e||!e.sets&&!e.allow&&!e.deny?.length)return null;const r=S(e),n=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||!r[c]?!1:n?n.has(o):!0},t=new Map,s=o=>{const c=t.get(o);if(c!==void 0)return c;t.set(o,!1);const d=u(o)&&T(o).every(s);return t.set(o,d),d};return{sets:r,offers:s}}const F="block-offer";function _(e=l()){return e.cache(F,()=>x(p(e)))}function C(e,r=l()){const n=_(r);return n?n.offers(e):!0}export{C as blockIsOffered,_ as blockOfferOf,T as blocksLaidDownBy,x as resolveBlockOffer};
1
+ import{offeredSets as S}from"../editor-blocks.js";import{currentEaselSession as a}from"efficient-easel/screen/lib/session";import{blocksOf as O}from"../website-session.js";import{layoutPresetFor as p}from"../sections/text-layouts.js";import{blockTypesIn as d}from"efficient-easel/screen/lib/document/block-types-in";import{blockSetOf as h}from"../../../format/lib/document/section-catalog.js";import{SLOT_SECTION_SPECS as E}from"../../../render/lib/document/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 d({type:f.childType,props:r}))t.add(s);const i=p(e);if(i){let r=0;for(const s of d(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 l=u(o)&&T(o).every(s);return r.set(o,l),l};return{sets:n,offers:s}}const F="block-offer";function _(e=a()){return e.cache(F,()=>x(O(e)))}function C(e,n=a()){const t=_(n);return t?t.offers(e):!0}export{C as blockIsOffered,_ as blockOfferOf,T as blocksLaidDownBy,x as resolveBlockOffer};
@@ -1,4 +1,4 @@
1
- import { type SelectField } from "./controls.js";
1
+ import { type SelectField } from "efficient-easel/screen/lib/document/box-fields";
2
2
  import { type ShowWhenRule } from "../../../render/lib/document/show-when.js";
3
3
  export declare function blockSourceField(label: string, own: string): SelectField;
4
4
  export declare const NO_BLOCK_SOURCE: ShowWhenRule;
@@ -1 +1 @@
1
- import{jsx as x}from"react/jsx-runtime";import{ListIcon as y}from"efficient-easel/icons";import{BLOCK_SOURCE_PROP as p,blockSources as S,blockSourcesRevision as w,declaredBlockSource as $}from"../../../format/lib/content/block-sources.js";import{select as j}from"./controls.js";import{withShowWhen as M}from"../../../render/lib/document/show-when.js";function E(s,e){return j(s,x(y,{}),[{label:e,value:""}],"")}const b=new WeakMap;let h=-1,m={};const g=new WeakMap;function _(s,e,i){h!==w()&&(h=w(),m={});let t=b.get(e);(!t||g.get(t)!==m)&&(t=new Map,g.set(t,m),b.set(e,t));const c=S(s),n=i&&!c.some(o=>o.key===i)?i:"",l=`${s}\0${n}`;let r=t.get(l);return r||(r={...e,options:[...e.options,...c.map(o=>({label:o.label,value:o.key})),...n?[{label:n,value:n}]:[]]},t.set(l,r)),r}const O=new WeakMap,C={not:{field:p,set:!0}};function F(s,e,i,t={}){const c=e[p];if(!c)return e;const n=$(i),l=S(s).length>0||n!=="",r=l?_(s,c,n):null;let o=O.get(e);o||O.set(e,o=new Map);const k=`${w()}\0${l?"1":"0"}\0${n}\0${(t.hides??[]).join(",")}`,v=o.get(k);if(v)return v;const R=new Set(t.hides??[]),a={};for(const[u,f]of Object.entries(e))u===p?r&&(a[u]=r):a[u]=R.has(u)&&f&&typeof f=="object"?M(f,C):f;return o.set(k,a),a}export{C as NO_BLOCK_SOURCE,E as blockSourceField,F as blockSourceFields};
1
+ import{jsx as x}from"react/jsx-runtime";import{ListIcon as y}from"efficient-easel/icons";import{BLOCK_SOURCE_PROP as p,blockSources as S,blockSourcesRevision as w,declaredBlockSource as $}from"../../../format/lib/content/block-sources.js";import{select as j}from"./box-fields.js";import{withShowWhen as M}from"../../../render/lib/document/show-when.js";function E(s,e){return j(s,x(y,{}),[{label:e,value:""}],"")}const b=new WeakMap;let h=-1,m={};const g=new WeakMap;function _(s,e,i){h!==w()&&(h=w(),m={});let t=b.get(e);(!t||g.get(t)!==m)&&(t=new Map,g.set(t,m),b.set(e,t));const c=S(s),n=i&&!c.some(o=>o.key===i)?i:"",l=`${s}\0${n}`;let r=t.get(l);return r||(r={...e,options:[...e.options,...c.map(o=>({label:o.label,value:o.key})),...n?[{label:n,value:n}]:[]]},t.set(l,r)),r}const O=new WeakMap,C={not:{field:p,set:!0}};function F(s,e,i,t={}){const c=e[p];if(!c)return e;const n=$(i),l=S(s).length>0||n!=="",r=l?_(s,c,n):null;let o=O.get(e);o||O.set(e,o=new Map);const k=`${w()}\0${l?"1":"0"}\0${n}\0${(t.hides??[]).join(",")}`,v=o.get(k);if(v)return v;const R=new Set(t.hides??[]),a={};for(const[u,f]of Object.entries(e))u===p?r&&(a[u]=r):a[u]=R.has(u)&&f&&typeof f=="object"?M(f,C):f;return o.set(k,a),a}export{C as NO_BLOCK_SOURCE,E as blockSourceField,F as blockSourceFields};
@@ -1 +1 @@
1
- import{jsx as t}from"react/jsx-runtime";import{OpacityIcon as r}from"efficient-easel/icons";import{group as o,slider as a,text as i,textarea as e,upload as n}from"../../../controls.js";import{ctaField as g}from"../../shared-fields.js";const y={fields:{_gContent:o("Content"),eyebrow:i("Eyebrow","Limited release"),title:e("Heading","Banner headline"),body:e("Body","A line or two of supporting copy."),_gBackground:o("Background image"),imageSrc:n("Image","image/*"),overlay:a("Overlay",t(r,{}),0,100,5,60,"%"),_gButton:o("Button"),...g,_gLayout:o("Layout")}};export{y as BannerFields};
1
+ import{jsx as t}from"react/jsx-runtime";import{OpacityIcon as r}from"efficient-easel/icons";import{text as a,textarea as e,upload as i}from"../../../controls.js";import{group as o}from"efficient-easel/screen/lib/document/box-fields";import{slider as n}from"../../../box-fields.js";import{ctaField as m}from"../../shared-fields.js";const u={fields:{_gContent:o("Content"),eyebrow:a("Eyebrow","Limited release"),title:e("Heading","Banner headline"),body:e("Body","A line or two of supporting copy."),_gBackground:o("Background image"),imageSrc:i("Image","image/*"),overlay:n("Overlay",t(r,{}),0,100,5,60,"%"),_gButton:o("Button"),...m,_gLayout:o("Layout")}};export{u as BannerFields};
@@ -1 +1 @@
1
- import{group as r,plainText as e,text as a,withOffPage as m}from"../../../controls.js";import{BREADCRUMB_PH as l}from"../../../../../../format/lib/document/blocks/general/Breadcrumb/meta.js";const n={fields:{_gContent:r("Content"),items:{type:"array",label:"Crumbs",arrayFields:{label:e("Label"),href:m(e("Link"))},getItemSummary:t=>t?.label||"Crumb"},meta:a("Trailing note",l.meta)}};export{n as BreadcrumbFields};
1
+ import{plainText as e,text as r,withOffPage as a}from"../../../controls.js";import{group as m}from"efficient-easel/screen/lib/document/box-fields";import{BREADCRUMB_PH as i}from"../../../../../../format/lib/document/blocks/general/Breadcrumb/meta.js";const b={fields:{_gContent:m("Content"),items:{type:"array",label:"Crumbs",arrayFields:{label:e("Label"),href:a(e("Link"))},getItemSummary:t=>t?.label||"Crumb"},meta:r("Trailing note",i.meta)}};export{b as BreadcrumbFields};
@@ -1 +1 @@
1
- import{jsx as t,jsxs as I}from"react/jsx-runtime";import{ButtonIcon as F,ButtonIconIcon as g,GroundIcon as x,IconAfterTextIcon as T,IconBeforeTextIcon as y,TextColorIcon as C,WidthIcon as _}from"efficient-easel/icons";import*as B from"efficient-easel/icons";import{SettingsField as O}from"efficient-easel/panel";import{useSelectedFields as d}from"efficient-easel/easel";import{IconPicker as S,Segmented as k}from"efficient-shell/ui";import{StorefrontTextLinkField as w}from"../../../../../components/StorefrontLinkField.js";import{BUTTON_ICONS as L,buttonIconChoice as N,buttonIconSide as v,buttonWidth as W}from"../../../../../../format/lib/content/button-icon.js";import{BUTTON_PAD_BUILT_IN as z,BUTTON_PAD_KEYS as P,buttonLook as A}from"../../../../../../render/lib/content/button-look.js";import{say as n}from"../../../../../../format/lib/editor-words.js";import{FOLLOWS_SITE_BUTTON as U,FOLLOWS_SITE_BUTTON_INK as R,buttonBorderField as j,buttonWordsEntryField as E,colorInput as u,group as f,inOwnBox as D,linkField as K,plainText as G,section as m,segmented as Y,sidesPaddingFields as M}from"../../../controls.js";import{NoControlMark as V,noControlField as $}from"efficient-easel/screen/lib/document/panel-no-control-mark";import{alignField as q}from"../../shared-fields.js";import{CARD_ROW_FACTS as H,cardRowField as p,cardRowFields as J}from"../../../card-row-fields.js";import{consentWordsKept as Q,withConsentWordsRow as X}from"../../../consent-words-field.js";const c=o=>({...$({type:"custom",render:()=>t(V,{})},"always"),reachedBy:o});function h(o){const e=(o==="none"?"no-symbol":o).replace(/(^|-)([a-z])/g,(r,s,a)=>a.toUpperCase()),l=B[`${e}Icon`];return l?t(l,{size:16}):null}const Z=L.map(o=>({value:o,icon:h(o)}));function oo({value:o,onChange:i}){const e=d(),l=e.values.href,r=typeof o=="string"?o:o&&typeof o=="object"&&"text"in o?String(o.text??""):"";return t(w,{label:"Button",icon:t(F,{size:18}),text:r,onTextChange:i,link:typeof l=="string"?l:"",onLinkChange:s=>e.onChange("href",s)})}function to({value:o,onChange:i}){const e=d(),l=N(o,e.values.arrow),r=v(e.values.iconPosition),s=W(e.values.widthFit)==="fill",a=h("icon-at-end");return t(O,{label:n("Icon"),icon:t(g,{size:18}),children:I("div",{className:"flex items-center gap-2",children:[t(S,{label:n("Icon"),value:l,emptyValue:"none",options:Z,onChange:i}),l!=="none"&&t(k,{size:"sm",block:!0,label:n("Icon position"),value:r==="end"&&!s?"after":r,onChange:b=>e.onChange("iconPosition",b),options:[{value:"before",icon:t(y,{size:16}),label:t("span",{className:"sr-only",children:n("Icon before text")}),title:n("Icon before text")},{value:"after",icon:t(T,{size:16}),label:t("span",{className:"sr-only",children:n("Icon after text")}),title:n("Icon after text")},...s?[{value:"end",icon:a,label:t("span",{className:"sr-only",children:n("Icon at the far end")}),title:n("Icon at the far end")}]:[]]})]})})}const eo={key:"buttonFillOpacity",unsetFrom:"variant",unset:o=>A({variant:o}).fillOpacity},Fo={fields:{label:D(G("Button"),o=>t(oo,{value:o.value,onChange:o.onChange})),labelText:E("label"),href:{...K("Button link"),...c("label")},consentWords:Q("label"),_gButton:f("Button"),rowField:p("Shows","text"),rowLinkField:p("Link from","link"),_dSize:m("Size"),widthFit:Y("Width",t(_,{}),[{label:"Fit content",value:"fit"},{label:"Fill",value:"fill"}],"fit"),...M({keys:P,fallback:z,group:!1}),_gStyle:f("Style"),variant:c("buttonColor"),icon:{type:"custom",render:o=>t(to,{value:o.value,onChange:o.onChange})},iconPosition:c("icon"),arrow:c("icon"),buttonColor:u("Fill color",U,t(x,{}),eo),buttonFillOpacity:c("buttonColor"),buttonBorder:j(),buttonTextColor:u("Text color",R,t(C,{})),_dLayout:m("Layout"),align:q()},resolveFields:(o,i)=>X(J(i.fields,o,i),o.props,"label",["href"]),showWhenFacts:H};export{Fo as ButtonBlockFields};
1
+ import{jsx as t,jsxs as I}from"react/jsx-runtime";import{ButtonIcon as x,ButtonIconIcon as T,GroundIcon as F,IconAfterTextIcon as g,IconBeforeTextIcon as y,TextColorIcon as B}from"efficient-easel/icons";import{SettingsField as C}from"efficient-easel/panel";import{useSelectedFields as a}from"efficient-easel/easel";import{IconPicker as O,Segmented as _}from"efficient-shell/ui";import{shellGlyphOf as S}from"../../../shell-glyph.js";import{StorefrontTextLinkField as k}from"../../../../../components/StorefrontLinkField.js";import{BUTTON_ICONS as L,buttonIconChoice as N,buttonIconSide as w,buttonWidth as v}from"../../../../../../format/lib/content/button-icon.js";import{BUTTON_PAD_BUILT_IN as P,BUTTON_PAD_KEYS as W,buttonLook as z}from"../../../../../../render/lib/content/button-look.js";import{say as n}from"../../../../../../format/lib/editor-words.js";import{FOLLOWS_SITE_BUTTON as A,FOLLOWS_SITE_BUTTON_INK as R,buttonBorderField as U,buttonWordsEntryField as j,colorInput as d,inOwnBox as E,keptBy as r,linkField as D,plainText as K}from"../../../controls.js";import{group as f,section as u}from"efficient-easel/screen/lib/document/box-fields";import{sidesPaddingFields as G}from"../../../box-fields.js";import{alignField as Y}from"../../shared-fields.js";import{CARD_ROW_FACTS as V,cardRowField as m,cardRowFields as q}from"../../../card-row-fields.js";import{consentWordsKept as H,withConsentWordsRow as J}from"../../../consent-words-field.js";const p=o=>S(o==="none"?"no-symbol":o),M=L.map(o=>({value:o,icon:p(o)}));function Q({value:o,onChange:i}){const e=a(),l=e.values.href,s=typeof o=="string"?o:o&&typeof o=="object"&&"text"in o?String(o.text??""):"";return t(k,{label:"Button",icon:t(x,{size:18}),text:s,onTextChange:i,link:typeof l=="string"?l:"",onLinkChange:c=>e.onChange("href",c)})}function X({value:o,onChange:i}){const e=a(),l=N(o,e.values.arrow),s=w(e.values.iconPosition),c=v(e.values.widthFit)==="fill",b=p("icon-at-end");return t(C,{label:n("Icon"),icon:t(T,{size:18}),children:I("div",{className:"flex items-center gap-2",children:[t(O,{label:n("Icon"),value:l,emptyValue:"none",options:M,onChange:i}),l!=="none"&&t(_,{size:"sm",block:!0,label:n("Icon position"),value:s==="end"&&!c?"after":s,onChange:h=>e.onChange("iconPosition",h),options:[{value:"before",icon:t(y,{size:16}),label:t("span",{className:"sr-only",children:n("Icon before text")}),title:n("Icon before text")},{value:"after",icon:t(g,{size:16}),label:t("span",{className:"sr-only",children:n("Icon after text")}),title:n("Icon after text")},...c?[{value:"end",icon:b,label:t("span",{className:"sr-only",children:n("Icon at the far end")}),title:n("Icon at the far end")}]:[]]})]})})}const Z={key:"buttonFillOpacity",unsetFrom:"variant",unset:o=>z({variant:o}).fillOpacity},ho={fields:{label:E(K("Button"),o=>t(Q,{value:o.value,onChange:o.onChange})),labelText:j("label"),href:{...D("Button link"),...r("label")},consentWords:H("label"),_gButton:f("Button"),rowField:m("Shows","text"),rowLinkField:m("Link from","link"),_dSize:u("Size"),...G({keys:W,fallback:P,group:!1}),_gStyle:f("Style"),variant:r("buttonColor"),icon:{type:"custom",render:o=>t(X,{value:o.value,onChange:o.onChange})},iconPosition:r("icon"),arrow:r("icon"),buttonColor:d("Fill color",A,t(F,{}),Z),buttonFillOpacity:r("buttonColor"),buttonBorder:U(),buttonTextColor:d("Text color",R,t(B,{})),_dLayout:u("Layout"),align:Y()},resolveFields:(o,i)=>J(q(i.fields,o,i),o.props,"label",["href"]),showWhenFacts:V};export{ho as ButtonBlockFields};
@@ -1 +1 @@
1
- import{jsx as o}from"react/jsx-runtime";import{ColumnsIcon as p,StylesIcon as a}from"efficient-easel/icons";import{copyText as s,group as i,plainText as c,plainTextarea as f,select as d,slider as C,text as S,textarea as u,withOffPage as F}from"../../../controls.js";import{SPLITTABLE_SECTIONS as w,headFieldsForPlacement as L,widthFieldsForParent as T}from"../../../../../../format/lib/sections/section-head-placement.js";import{SECTION_EYEBROW_LOOK_OPTIONS as _,eyebrowLookFor as y}from"../../../../../../format/lib/sections/section-eyebrow-look.js";import{WIDTH_ROW_KEYS as k}from"../../shared-fields.js";import{blockSourceField as I,blockSourceFields as O}from"../../../block-source-fields.js";import{CARDS_PH as m}from"../../../../../../format/lib/document/blocks/general/Cards/meta.js";const K={fields:{_gContent:i("Content"),eyebrow:S("Eyebrow",m.eyebrow),eyebrowLook:d("Eyebrow style",o(a,{}),[..._],y("Cards")),title:u("Heading",m.title),dataSource:I("Cards from","Typed here"),items:{type:"array",label:"Cards",arrayFields:{title:s("Card title"),body:f("Card body")},defaultItemProps:{title:"",body:""},getItemSummary:e=>e?.title||e?.body||"Card"},_gStyle:i("Style"),cardStyle:d("Card style",o(a,{}),[{label:"Cards",value:"cards"},{label:"Label only",value:"label-only"}],"cards"),columns:C("Columns",o(p,{}),2,4,1,3)},resolveFields:(e,{fields:n,parent:b})=>{const r=L(T(O("Cards",n,e.props,{hides:["items"]}),b,k),e.props.headPlacement,w.Cards.headRows);if(e.props.cardStyle!=="label-only")return r;const t=r.items,l=r.eyebrowLook;return{...r,...t?{items:{...t,arrayFields:{title:s("Feature label"),href:F(c("Link"))}}}:{},...l?{eyebrowLook:{...l,fallback:y("KeyFeatures")}}:{}}}};export{K as CardsFields};
1
+ import{jsx as o}from"react/jsx-runtime";import{ColumnsIcon as b,StylesIcon as a}from"efficient-easel/icons";import{copyText as s,plainText as p,plainTextarea as c,text as f,textarea as C,withOffPage as u}from"../../../controls.js";import{group as i}from"efficient-easel/screen/lib/document/box-fields";import{select as d,slider as S}from"../../../box-fields.js";import{SPLITTABLE_SECTIONS as w,headFieldsForPlacement as F}from"../../../../../../format/lib/sections/section-head-placement.js";import{SECTION_EYEBROW_LOOK_OPTIONS as L,eyebrowLookFor as m}from"../../../../../../format/lib/sections/section-eyebrow-look.js";import{blockSourceField as k,blockSourceFields as T}from"../../../block-source-fields.js";import{CARDS_PH as y}from"../../../../../../format/lib/document/blocks/general/Cards/meta.js";const N={fields:{_gContent:i("Content"),eyebrow:f("Eyebrow",y.eyebrow),eyebrowLook:d("Eyebrow style",o(a,{}),[...L],m("Cards")),title:C("Heading",y.title),dataSource:k("Cards from","Typed here"),items:{type:"array",label:"Cards",arrayFields:{title:s("Card title"),body:c("Card body")},defaultItemProps:{title:"",body:""},getItemSummary:e=>e?.title||e?.body||"Card"},_gStyle:i("Style"),cardStyle:d("Card style",o(a,{}),[{label:"Cards",value:"cards"},{label:"Label only",value:"label-only"}],"cards"),columns:S("Columns",o(b,{}),2,4,1,3)},resolveFields:(e,{fields:n})=>{const r=F(T("Cards",n,e.props,{hides:["items"]}),e.props.headPlacement,w.Cards.headRows);if(e.props.cardStyle!=="label-only")return r;const t=r.items,l=r.eyebrowLook;return{...r,...t?{items:{...t,arrayFields:{title:s("Feature label"),href:u(p("Link"))}}}:{},...l?{eyebrowLook:{...l,fallback:m("KeyFeatures")}}:{}}}};export{N as CardsFields};
@@ -1 +1 @@
1
- import{jsx as r}from"react/jsx-runtime";import{StickyIcon as i}from"efficient-easel/icons";import{group as t,plainText as l,toggle as o,withOffPage as e,withPanelOnly as n}from"../../../controls.js";const c={fields:{tabs:{type:"array",label:"Tabs",arrayFields:{label:l("Label"),count:l("Count")},getItemSummary:a=>a?.label?`${a.label}${a.count?` · ${a.count}`:""}`:"Tab"},activeTab:n(e(l("Active tab","All"))),_gLinks:t("Links"),links:{type:"array",label:"Right links",arrayFields:{label:l("Label"),href:e(l("Link"))},getItemSummary:a=>a?.label||"Link"},_gStyle:t("Style"),sticky:o("Stick to top",!0,r(i,{}))}};export{c as CategoryBarFields};
1
+ import{jsx as r}from"react/jsx-runtime";import{StickyIcon as i}from"efficient-easel/icons";import{plainText as t,toggle as o,withOffPage as l,withPanelOnly as n}from"../../../controls.js";import{group as e}from"efficient-easel/screen/lib/document/box-fields";const c={fields:{tabs:{type:"array",label:"Tabs",arrayFields:{label:t("Label"),count:t("Count")},getItemSummary:a=>a?.label?`${a.label}${a.count?` · ${a.count}`:""}`:"Tab"},activeTab:n(l(t("Active tab","All"))),_gLinks:e("Links"),links:{type:"array",label:"Right links",arrayFields:{label:t("Label"),href:l(t("Link"))},getItemSummary:a=>a?.label||"Link"},_gStyle:e("Style"),sticky:o("Stick to top",!0,r(i,{}))}};export{c as CategoryBarFields};
@@ -1 +1 @@
1
- import{jsx as r}from"react/jsx-runtime";import{StylesIcon as i}from"efficient-easel/icons";import{copyText as n,group as t,plainText as s,select as u,text as e,textarea as a,withPanelOnly as p}from"../../../controls.js";import{CHART_PH as o}from"../../../../../../format/lib/document/blocks/general/Chart/meta.js";const x={fields:{_gContent:t("Content"),eyebrow:e("Chip label",o.eyebrow),title:a("Heading",o.title),body:a("Body",""),items:{type:"array",label:"Data points",arrayFields:{label:n("Label"),value:s("Value")},defaultItemProps:{label:"",value:""},getItemSummary:l=>[l?.label,l?.value].filter(Boolean).join(" · ")||"Point"},caption:e("Caption","Illustrative example"),_gStyle:t("Style"),chartStyle:u("Chart style",r(i,{}),[{label:"Bars (comparison / funnel)",value:"bars"},{label:"Line (trend)",value:"line"},{label:"Donut (split of a whole)",value:"donut"}],"bars"),valueSuffix:p(e("Value suffix","%"))}};export{x as ChartFields};
1
+ import{jsx as r}from"react/jsx-runtime";import{StylesIcon as i}from"efficient-easel/icons";import{copyText as n,plainText as s,text as e,textarea as t,withPanelOnly as p}from"../../../controls.js";import{group as a}from"efficient-easel/screen/lib/document/box-fields";import{select as m}from"../../../box-fields.js";import{CHART_PH as o}from"../../../../../../format/lib/document/blocks/general/Chart/meta.js";const v={fields:{_gContent:a("Content"),eyebrow:e("Chip label",o.eyebrow),title:t("Heading",o.title),body:t("Body",""),items:{type:"array",label:"Data points",arrayFields:{label:n("Label"),value:s("Value")},defaultItemProps:{label:"",value:""},getItemSummary:l=>[l?.label,l?.value].filter(Boolean).join(" · ")||"Point"},caption:e("Caption","Illustrative example"),_gStyle:a("Style"),chartStyle:m("Chart style",r(i,{}),[{label:"Bars (comparison / funnel)",value:"bars"},{label:"Line (trend)",value:"line"},{label:"Donut (split of a whole)",value:"donut"}],"bars"),valueSuffix:p(e("Value suffix","%"))}};export{v as ChartFields};
@@ -1 +1 @@
1
- import{jsx as e}from"react/jsx-runtime";import{EyeOffIcon as r,StylesIcon as d,WeightIcon as c,WidthIcon as p}from"efficient-easel/icons";import{deviceField as a}from"efficient-easel/screen/lib/document/device-fields";import{NoControlMark as m,noControlField as f}from"efficient-easel/screen/lib/document/panel-no-control-mark";import{select as g,sidesPaddingFields as I,slider as i,swapPadding as h,toggle as y}from"../../../controls.js";import{DEFAULT_DIVIDER_STYLE as s,DIVIDER_SPACE_PX as D,DIVIDER_STYLE_OPTIONS as E,parseDividerSpacing as _}from"../../../../../../format/lib/sections/divider-style.js";import{withRowRules as S}from"../../../../../../render/lib/document/show-when.js";const P={any:[{field:"style",set:!1},{field:"style",is:s}]},R={not:{field:"style",is:"none"}},v={fields:S({style:g("Style",e(d,{}),E,s),spacing:{...f({type:"custom",render:()=>e(m,{})},"always"),reachedBy:"sectionPaddingTop"},thickness:i("Thickness",e(c,{}),1,8,1,1,"px"),lengthPct:i("Length",e(p,{}),10,100,1,100,"%"),hideOnMobile:a("mobile",y("Hide",!1,e(r,{})))},[[["thickness"],P],[["lengthPct"],R]]),resolveFields:(t,{fields:n})=>{const o=D[_(t.props.spacing)],l=I({fallback:{top:o,bottom:o}});return h(n,l)}};export{v as DividerFields};
1
+ import{jsx as e}from"react/jsx-runtime";import{EyeOffIcon as d,StylesIcon as r,WeightIcon as c,WidthIcon as p}from"efficient-easel/icons";import{deviceField as f}from"efficient-easel/screen/lib/document/device-fields";import{keptBy as m,swapPadding as a,toggle as g}from"../../../controls.js";import{select as I,sidesPaddingFields as D,slider as s}from"../../../box-fields.js";import{DEFAULT_DIVIDER_STYLE as t,DIVIDER_SPACE_PX as E,DIVIDER_STYLE_OPTIONS as _,parseDividerSpacing as h}from"../../../../../../format/lib/sections/divider-style.js";import{withRowRules as y}from"../../../../../../render/lib/document/show-when.js";const S={any:[{field:"style",set:!1},{field:"style",is:t}]},P={not:{field:"style",is:"none"}},b={fields:y({style:I("Style",e(r,{}),_,t),spacing:m("sectionPaddingTop"),thickness:s("Thickness",e(c,{}),1,8,1,1,"px"),lengthPct:s("Length",e(p,{}),10,100,1,100,"%"),hideOnMobile:f("mobile",g("Hide",!1,e(d,{})))},[[["thickness"],S],[["lengthPct"],P]]),resolveFields:(o,{fields:n})=>{const i=E[h(o.props.spacing)],l=D({fallback:{top:i,bottom:i}});return a(n,l)}};export{b as DividerFields};
@@ -1 +1 @@
1
- import{copyText as t,group as o,plainTextarea as n,text as a}from"../../../controls.js";import{DOC_BODY_PH as l}from"../../../../../../format/lib/document/blocks/general/DocBody/meta.js";const s={fields:{_gContent:o("Contents"),tocTitle:a("Contents heading",l.toc),_gSections:o("Sections"),sections:{type:"array",label:"Sections",arrayFields:{label:t("Contents label"),heading:t("Title"),body:n("Body")},defaultItemProps:{label:"",heading:"",body:""},getItemSummary:e=>e?.label||e?.heading||"Section"}}};export{s as DocBodyFields};
1
+ import{copyText as t,plainTextarea as n,text as a}from"../../../controls.js";import{group as o}from"efficient-easel/screen/lib/document/box-fields";import{DOC_BODY_PH as i}from"../../../../../../format/lib/document/blocks/general/DocBody/meta.js";const d={fields:{_gContent:o("Contents"),tocTitle:a("Contents heading",i.toc),_gSections:o("Sections"),sections:{type:"array",label:"Sections",arrayFields:{label:t("Contents label"),heading:t("Title"),body:n("Body")},defaultItemProps:{label:"",heading:"",body:""},getItemSummary:e=>e?.label||e?.heading||"Section"}}};export{d as DocBodyFields};
@@ -1 +1 @@
1
- import{copyText as t,group as a,text as o,textarea as l}from"../../../controls.js";import{DOC_MASTHEAD_PH as e}from"../../../../../../format/lib/document/blocks/general/DocMasthead/meta.js";const i={fields:{_gContent:a("Content"),eyebrow:o("Eyebrow",e.eyebrow),title:l("Heading",e.title),deck:l("Deck / standfirst",e.deck),_gMeta:a("Metadata"),meta:{type:"array",label:"Metadata rows",arrayFields:{label:t("Label"),value:t("Value")},defaultItemProps:{label:"Label",value:""},getItemSummary:r=>r?.label||"Row"}}};export{i as DocMastheadFields};
1
+ import{copyText as t,text as o,textarea as a}from"../../../controls.js";import{group as r}from"efficient-easel/screen/lib/document/box-fields";import{DOC_MASTHEAD_PH as e}from"../../../../../../format/lib/document/blocks/general/DocMasthead/meta.js";const b={fields:{_gContent:r("Content"),eyebrow:o("Eyebrow",e.eyebrow),title:a("Heading",e.title),deck:a("Deck / standfirst",e.deck),_gMeta:r("Metadata"),meta:{type:"array",label:"Metadata rows",arrayFields:{label:t("Label"),value:t("Value")},defaultItemProps:{label:"Label",value:""},getItemSummary:l=>l?.label||"Row"}}};export{b as DocMastheadFields};
@@ -1 +1 @@
1
- import{jsx as t}from"react/jsx-runtime";import{PageIcon as r}from"efficient-easel/icons";import{group as o,linkField as m,plainText as b,text as e,toggle as s}from"../../../controls.js";import{DOC_TABS_PH as a}from"../../../../../../format/lib/document/blocks/general/DocTabs/meta.js";const u={fields:{tabs:{type:"array",label:"Tabs",arrayFields:{label:b("Tab label"),href:m("Links to"),current:s("Current page",!1,t(r,{}))},defaultItemProps:{label:"Tab",href:"",current:!1},getItemSummary:l=>l?.label||"Tab"},_gNote:o("Trailing note"),metaLabel:e("Note label",a.metaLabel),metaValue:e("Note value",a.metaValue)}};export{u as DocTabsFields};
1
+ import{jsx as l}from"react/jsx-runtime";import{PageIcon as r}from"efficient-easel/icons";import{linkField as o,plainText as m,text as e,toggle as b}from"../../../controls.js";import{group as i}from"efficient-easel/screen/lib/document/box-fields";import{DOC_TABS_PH as a}from"../../../../../../format/lib/document/blocks/general/DocTabs/meta.js";const g={fields:{tabs:{type:"array",label:"Tabs",arrayFields:{label:m("Tab label"),href:o("Links to"),current:b("Current page",!1,l(r,{}))},defaultItemProps:{label:"Tab",href:"",current:!1},getItemSummary:t=>t?.label||"Tab"},_gNote:i("Trailing note"),metaLabel:e("Note label",a.metaLabel),metaValue:e("Note value",a.metaValue)}};export{g as DocTabsFields};
@@ -1 +1 @@
1
- import{jsx as o}from"react/jsx-runtime";import{StylesIcon as r}from"efficient-easel/icons";import{select as e,text as m}from"../../../controls.js";import{SECTION_EYEBROW_LOOK_OPTIONS as t,DEFAULT_EYEBROW_BLOCK_LOOK as i}from"../../../../../../format/lib/sections/section-eyebrow-look.js";import{PH as O}from"../../../../../../format/lib/document/blocks/placeholders.js";import{alignField as s}from"../../shared-fields.js";const L={fields:{eyebrow:m("Eyebrow",O.eyebrow),align:s(),eyebrowLook:e("Look",o(r,{}),t,i)}};export{L as EyebrowFields};
1
+ import{jsx as o}from"react/jsx-runtime";import{StylesIcon as r}from"efficient-easel/icons";import{text as e}from"../../../controls.js";import{select as m}from"../../../box-fields.js";import{SECTION_EYEBROW_LOOK_OPTIONS as t,DEFAULT_EYEBROW_BLOCK_LOOK as i}from"../../../../../../format/lib/sections/section-eyebrow-look.js";import{PH as O}from"../../../../../../format/lib/document/blocks/placeholders.js";import{alignField as f}from"../../shared-fields.js";const b={fields:{eyebrow:e("Eyebrow",O.eyebrow),align:f(),eyebrowLook:m("Look",o(r,{}),t,i)}};export{b as EyebrowFields};
@@ -1 +1 @@
1
- import{jsx as s}from"react/jsx-runtime";import{ChevronIcon as a}from"efficient-easel/icons";import{copyText as l,group as t,linkField as m,plainTextarea as u,text as r,textarea as p,toggle as d}from"../../../controls.js";import{SPLITTABLE_SECTIONS as f,headFieldsForPlacement as F,widthFieldsForParent as g}from"../../../../../../format/lib/sections/section-head-placement.js";import{WIDTH_ROW_KEYS as x}from"../../shared-fields.js";import{FAQ_PH as o}from"../../../../../../format/lib/document/blocks/general/FAQ/meta.js";const k={fields:{_gContent:t("Content"),num:r("Number",o.num),title:p("Heading",o.title),linkText:r("Button",o.link),linkHref:m("Link"),_gQuestions:t("Questions"),items:{type:"array",label:"Questions",arrayFields:{question:l("Question"),answer:u("Answer")},getItemSummary:e=>e.question||"Question"},_gLayout:t("Layout"),defaultOpen:d("Open first answer",!0,s(a,{}))},resolveFields:(e,{fields:i,parent:n})=>F(g(i,n,x),e.props.headPlacement,f.FAQ.headRows)};export{k as FAQFields};
1
+ import{jsx as n}from"react/jsx-runtime";import{ChevronIcon as s}from"efficient-easel/icons";import{copyText as a,linkField as l,plainTextarea as m,text as r,textarea as u,toggle as p}from"../../../controls.js";import{group as t}from"efficient-easel/screen/lib/document/box-fields";import{SPLITTABLE_SECTIONS as d,headFieldsForPlacement as f}from"../../../../../../format/lib/sections/section-head-placement.js";import{FAQ_PH as o}from"../../../../../../format/lib/document/blocks/general/FAQ/meta.js";const _={fields:{_gContent:t("Content"),num:r("Number",o.num),title:u("Heading",o.title),linkText:r("Button",o.link),linkHref:l("Link"),_gQuestions:t("Questions"),items:{type:"array",label:"Questions",arrayFields:{question:a("Question"),answer:m("Answer")},getItemSummary:e=>e.question||"Question"},_gLayout:t("Layout"),defaultOpen:p("Open first answer",!0,n(s,{}))},resolveFields:(e,{fields:i})=>f(i,e.props.headPlacement,d.FAQ.headRows)};export{_ as FAQFields};
@@ -1 +1 @@
1
- import o from"../../../../../components/BlogPostSource.js";import{BOUND_TO_POST as i,BOUND_TO_POST_NOTE as r,NOT_BOUND_TO_POST as d,group as g,linkField as m,panelNote as n,sourceField as O,text as t,textarea as a,upload as l}from"../../../controls.js";import{withRowsShownWhen as _,withShowWhen as D}from"../../../../../../render/lib/document/show-when.js";import{FEATUREDCOVER_PH as e}from"../../../../../../format/lib/document/blocks/general/FeaturedCover/meta.js";const T=["image","imageDate","date","title","dek","ctaHref"],B={fields:_({source:O(o),_nBound:D(n(r),i),image:l("Cover image","image/*"),badge:t("Badge",e.badge),imageDate:t("Image date",e.imageDate),_gContent:g("Content"),category:t("Category",e.category),readLabel:t("Read time",e.readLabel),date:t("Date",e.date),title:a("Heading",e.title),dek:a("Dek",e.dek),ctaText:t("Button",e.ctaText),ctaHref:m("Link")},T,d)};export{B as FeaturedCoverFields};
1
+ import o from"../../../../../components/BlogPostSource.js";import{BOUND_TO_POST as r,BOUND_TO_POST_NOTE as i,NOT_BOUND_TO_POST as d,linkField as m,panelNote as g,sourceField as n,text as t,textarea as a,upload as O}from"../../../controls.js";import{group as l}from"efficient-easel/screen/lib/document/box-fields";import{withRowsShownWhen as _,withShowWhen as D}from"../../../../../../render/lib/document/show-when.js";import{FEATUREDCOVER_PH as e}from"../../../../../../format/lib/document/blocks/general/FeaturedCover/meta.js";const T=["image","imageDate","date","title","dek","ctaHref"],B={fields:_({source:n(o),_nBound:D(g(i),r),image:O("Cover image","image/*"),badge:t("Badge",e.badge),imageDate:t("Image date",e.imageDate),_gContent:l("Content"),category:t("Category",e.category),readLabel:t("Read time",e.readLabel),date:t("Date",e.date),title:a("Heading",e.title),dek:a("Dek",e.dek),ctaText:t("Button",e.ctaText),ctaHref:m("Link")},T,d)};export{B as FeaturedCoverFields};
@@ -1 +1 @@
1
- import{jsx as t}from"react/jsx-runtime";import{BOX_CARD_PAD as a,BOX_DARKEN as o,BOX_DARKEN_STYLES as l,isBackgroundBox as S}from"../../../../../../format/lib/content/box-background.js";import{containerDirectionPoints as f}from"../../../../../../format/lib/content/container-direction.js";import{BOX_TAB_SHAPES as k,REEL_SHAPE_LABELS as h}from"../../../../../../format/lib/reel.js";import{deviceField as r}from"efficient-easel/screen/lib/document/device-fields";import{OpacityIcon as x,ShadowIcon as F,StylesIcon as p}from"efficient-easel/icons";import{boxAlignField as _,boxBlockSpacingField as u,boxJustifyField as y,boxPhoneRowField as B,boxShareField as w,boxWrapField as A,gapField as I,group as i,placementField as P,plainText as R,select as s,sidesPaddingFields as d,slider as D,swapPadding as m,toggle as E,upload as g,withPanelOnly as O}from"../../../controls.js";import{withRowRules as L}from"../../../../../../render/lib/document/show-when.js";import{FlexSlots as T}from"../../../../../../format/lib/document/blocks/general/Flex/meta.js";const C={field:"bgImage",set:!0},X={field:"direction",is:"tabs"},Y={fields:L({_gContent:i("Content"),content:T.content,_gLayout:i("Layout"),direction:{type:"radio",options:f("Flex")},tabShape:s("Tab shape",t(p,{}),k.map(e=>({label:h[e],value:e})),"tabs"),label:O(R("Tab name")),gap:I("Flex"),justify:y(),align:_(),wrap:A(),share:w(),phoneRow:B(),blockSpacing:u(),_gShadow:i("Shadow"),shadow:E("Shadow",!1,t(F,{})),_gBackground:i("Background image"),bgImage:r("desktop",g("Image","image/*")),bgImagePhone:r("mobile",g("Image","image/*")),darken:D("Darken",t(x,{}),o.min,o.max,o.step,o.fallback,o.unit),darkenStyle:s("Darken style",t(p,{}),l,l[0].value),placement:P("Content position",{stacking:!1})},[[["darken","darkenStyle","placement"],C],[["tabShape"],X]]),resolveFields:(e,{fields:n})=>{const c=e.props;if(S(c.bgImage)){const b=d({fallback:{top:a.desktop,bottom:a.desktop,left:a.side,right:a.side}});return m(n,b)}return e.props.padV2!==!0?m(n,d({fallback:{top:24,bottom:24}})):n}};export{Y as FlexFields};
1
+ import{jsx as e}from"react/jsx-runtime";import{phoneKey as i}from"efficient-easel/draw";import{BOX_CARD_PAD as r,BOX_DARKEN as a,BOX_DARKEN_STYLES as d,isBackgroundBox as u}from"../../../../../../format/lib/content/box-background.js";import{containerDirectionPoints as O}from"../../../../../../format/lib/content/container-direction.js";import{CONTAINER_GAP as c}from"../../../../../../format/lib/content/container-gap.js";import{BOX_TAB_SHAPES as A,REEL_SHAPE_LABELS as F}from"../../../../../../format/lib/reel.js";import{deviceField as n}from"efficient-easel/screen/lib/document/device-fields";import{ClockIcon as I,CropIcon as m,LineBetweenIcon as E,LineSolidIcon as P,OpacityIcon as w,ShadowIcon as L,StylesIcon as h,TargetIcon as B}from"efficient-easel/icons";import{boxBlockSpacingField as y,boxFillField as T,boxPhoneRowField as H,boxShareField as R,boxSharePhoneField as N,containerGapField as C,containerGapPhoneField as D,linkField as j,phoneChoiceField as G,plainText as K,swapPadding as g,toggle as s,upload as f,withPanelOnly as X}from"../../../controls.js";import{BOX_SHAPE_OPTIONS as S,boxShapeOf as W}from"../../../../../../format/lib/content/box-shape.js";import{group as l}from"efficient-easel/screen/lib/document/box-fields";import{boxAlignField as v,boxJustifyField as M,boxWrapField as U,placementField as V,select as p,sidesPaddingFields as b,slider as z}from"../../../box-fields.js";import{withRowRules as J}from"../../../../../../render/lib/document/show-when.js";import{separatorField as Y}from"../../../separator-field.js";import{LOOP_SCROLLS as q}from"../../../../../../format/lib/animation/index.js";import{FlexSlots as Q}from"../../../../../../format/lib/document/blocks/general/Flex/meta.js";const Z={field:"bgImage",set:!0},$={field:"phoneRow",in:[2,3]},ee={not:{field:"gap",in:Array.from({length:-c.min},(o,t)=>c.min+t)}},oe={field:"direction",is:"tabs"},te={field:"line",in:[!0,!1]},ie={field:"anchor",set:!0},_=["fixed","screen"],ne={not:{any:[{field:"sectionHeightMode",in:_},{field:"sectionHeightModePhone",in:_}]}},ae={context:"parent.line",is:!0},le={field:"direction",is:"row",default:"row"},re={not:q},Ie={fields:J({_gContent:l("Content"),content:Q.content,_gLayout:l("Layout"),direction:{type:"radio",options:O("Flex")},tabShape:p("Tab shape",e(h,{}),A.map(o=>({label:F[o],value:o})),"tabs"),label:X(K("Tab name")),gap:n("desktop",C("Flex")),[i("gap")]:D("Flex"),justify:M(),align:v(),wrap:U(),boxShape:n("desktop",p("Box shape",e(m,{}),[...S],"auto")),[i("boxShape")]:n("mobile",G({label:"Box shape",icon:e(m,{}),options:[...S],desktopKey:"boxShape",resolve:(o,t)=>W(t)})),separator:Y(e(E,{size:18}),"none"),share:n("desktop",R()),[i("share")]:N(),phoneRow:H(),blockSpacing:y(),line:s("Line",!1,e(P,{}),"A line across the blocks, with a dot on each."),upcoming:s("Upcoming",!1,e(I,{}),"Still to come: a hollow dot, and the gold line stops before it."),_gShadow:l("Shadow"),shadow:s("Shadow",!1,e(L,{})),fillColor:T(),_gBackground:l("Background image"),bgImage:n("desktop",f("Image","image/*")),bgImagePhone:n("mobile",f("Image","image/*")),darken:z("Darken",e(w,{}),a.min,a.max,a.step,a.fallback,a.unit),darkenStyle:p("Darken style",e(h,{}),d,d[0].value),placement:V("Content position"),_gLink:l("Link"),link:j("Link to"),jumpHighlight:s("Highlight when a link jumps here",!1,e(B,{}),"When a link lands on this Box's anchor, the Box gets an accent outline and its first block turns accent.")},[[["darken","darkenStyle","placement"],Z],[[i("share")],$],[[i("gap")],ee],[["tabShape"],oe],[["separator"],le],[["justify","wrap"],re],[["line"],te],[["upcoming"],ae],[["jumpHighlight"],ie],[["boxShape",i("boxShape")],ne]]),resolveFields:(o,{fields:t})=>{const k=o.props;if(u(k.bgImage)){const x=b({fallback:{top:r.desktop,bottom:r.desktop,left:r.side,right:r.side}});return g(t,x)}return o.props.padV2!==!0?g(t,b({fallback:{top:24,bottom:24}})):t}};export{Ie as FlexFields};
@@ -1 +1 @@
1
- import{jsx as i}from"react/jsx-runtime";import{FOOTPRINT_DEFAULTS as _}from"../../../../../../format/lib/content/footprint.js";import{HeadquartersIcon as L,LayoutIcon as E,LocationIcon as I,SearchIcon as P,StoreIcon as k,ThemeIcon as C}from"efficient-easel/icons";import{CoordsField as D,copyText as x,group as l,plainText as a,section as N,segmented as u,sourceField as A,text as f,textarea as S,toggle as d}from"../../../controls.js";import{withShowWhen as n}from"../../../../../../render/lib/document/show-when.js";import{needsGeocodeWork as H,resolveGeocodeRows as W}from"../../../geocode-resolve.js";import{SPLITTABLE_SECTIONS as B,headFieldsForPlacement as M,widthFieldsForParent as U}from"../../../../../../format/lib/sections/section-head-placement.js";import{innerSpacingFields as j,WIDTH_ROW_KEYS as q}from"../../shared-fields.js";import{BLOCK_SOURCE_PROP as g,blockSources as z,blockSourcesRevision as w}from"../../../../../../format/lib/content/block-sources.js";import{FOOTPRINT_PH as m}from"../../../../../../format/lib/document/blocks/general/Footprint/meta.js";const G={field:"source",is:"typed",default:"typed"},c={field:"source",is:"dealers",default:"typed"},b={all:[c,{field:"search",is:!0,default:!1}]},y=[{label:"Typed in",value:"typed"},{label:"Dealers",value:"dealers"}],K=new Set(y.map(e=>e.value)),R=e=>u("Source",i(k,{}),e,"typed");function v(e){const t=typeof e=="string"?e.trim():"";return t&&!K.has(t)&&/^[a-z][a-z0-9]*(-[a-z0-9]+)*$/.test(t)?t:""}const h=new Map;let F=-1;function Y(e){const t=z("Footprint"),o=e&&!t.some(s=>s.key===e)?e:"";if(!t.length&&!o)return null;F!==w()&&(F=w(),h.clear());let r=h.get(o);return r||(r=R([...y,...t.map(s=>({label:s.label,value:s.key})),...o?[{label:o,value:o}]:[]]),h.set(o,r)),r}const T=new WeakMap;function Q(e,t){const o=Y(t);if(!o)return e;let r=T.get(e);r||T.set(e,r=new Map);let s=r.get(o);return s||(s={...e,source:o},r.set(o,s)),s}const ie={fields:{_gContent:l("Section"),sectionNumber:f("Section number",m.sectionNumber),heading:S("Heading",m.heading),tagline:S("Body",m.tagline),_gOffices:l("Offices"),source:R(y),offices:n({type:"array",label:"Offices",arrayFields:{role:a("Role"),city:a("City"),country:a("Region · country"),address:x("Address"),group:a("Group"),hq:d("HQ",!1,i(L,{})),geocode:A(D,{label:"Coordinates"})},defaultItemProps:{role:"Sales & Distribution",city:"City",country:"Country",address:"",group:"",hq:!1,lat:0,lng:0},getItemSummary:e=>e?.city||"Office"},G),mapTheme:u("Map theme",i(C,{}),[{label:"Auto",value:"auto"},{label:"Dark",value:"dark"},{label:"Light",value:"light"}],_.mapTheme),_gSearch:l("Search"),search:n(d("Show",!1,i(P,{})),c),searchHint:n(f("Hint","Type a postcode or address"),b),noMatchText:n(f("No match","No place found. Try another postcode."),b),_gList:l("List"),listPosition:n(u("Position",i(E,{}),[{label:"Left",value:"left"},{label:"Right",value:"right"},{label:"Below",value:"below"}],"below"),c),showDistance:n(d("Distance",!0,i(I,{})),c),_dLayout:N("Layout"),...j("Footprint")},resolveData:async e=>{const t=v(e.props.source);(e.props[g]??"")!==t&&(e={...e,props:{...e.props,[g]:t}});const o=e.props,r=o.offices??[];if(!H(r))return e;const s=await W(r,p=>[p.address,p.city,p.country].map(O=>String(O??"").replace(/\*/g,"").trim()).filter(Boolean).join(", "));return{...e,props:{...o,offices:s}}},resolveFields:(e,{fields:t,parent:o})=>M(U(Q(t,v(e.props.source)),o,q),e.props.headPlacement,B.Footprint.headRows)};export{ie as FootprintFields,v as footprintBlockSource};
1
+ import{jsx as i}from"react/jsx-runtime";import{FOOTPRINT_DEFAULTS as O}from"../../../../../../format/lib/content/footprint.js";import{HeadquartersIcon as _,LayoutIcon as E,LocationIcon as I,SearchIcon as P,StoreIcon as k,ThemeIcon as C}from"efficient-easel/icons";import{CoordsField as x,copyText as D,plainText as l,sourceField as N,text as u,textarea as S,toggle as f}from"../../../controls.js";import{group as a,section as A}from"efficient-easel/screen/lib/document/box-fields";import{segmented as m}from"../../../box-fields.js";import{withShowWhen as n}from"../../../../../../render/lib/document/show-when.js";import{needsGeocodeWork as H,resolveGeocodeRows as B}from"../../../geocode-resolve.js";import{SPLITTABLE_SECTIONS as M,headFieldsForPlacement as W}from"../../../../../../format/lib/sections/section-head-placement.js";import{innerSpacingFields as U}from"../../shared-fields.js";import{BLOCK_SOURCE_PROP as g,blockSources as j,blockSourcesRevision as w}from"../../../../../../format/lib/content/block-sources.js";import{FOOTPRINT_PH as d}from"../../../../../../format/lib/document/blocks/general/Footprint/meta.js";const q={field:"source",is:"typed",default:"typed"},c={field:"source",is:"dealers",default:"typed"},b={all:[c,{field:"search",is:!0,default:!1}]},y=[{label:"Typed in",value:"typed"},{label:"Dealers",value:"dealers"}],z=new Set(y.map(e=>e.value)),R=e=>m("Source",i(k,{}),e,"typed");function v(e){const o=typeof e=="string"?e.trim():"";return o&&!z.has(o)&&/^[a-z][a-z0-9]*(-[a-z0-9]+)*$/.test(o)?o:""}const h=new Map;let T=-1;function G(e){const o=j("Footprint"),t=e&&!o.some(s=>s.key===e)?e:"";if(!o.length&&!t)return null;T!==w()&&(T=w(),h.clear());let r=h.get(t);return r||(r=R([...y,...o.map(s=>({label:s.label,value:s.key})),...t?[{label:t,value:t}]:[]]),h.set(t,r)),r}const F=new WeakMap;function K(e,o){const t=G(o);if(!t)return e;let r=F.get(e);r||F.set(e,r=new Map);let s=r.get(t);return s||(s={...e,source:t},r.set(t,s)),s}const ie={fields:{_gContent:a("Section"),sectionNumber:u("Section number",d.sectionNumber),heading:S("Heading",d.heading),tagline:S("Body",d.tagline),_gOffices:a("Offices"),source:R(y),offices:n({type:"array",label:"Offices",arrayFields:{role:l("Role"),city:l("City"),country:l("Region · country"),address:D("Address"),group:l("Group"),hq:f("HQ",!1,i(_,{})),geocode:N(x,{label:"Coordinates"})},defaultItemProps:{role:"Sales & Distribution",city:"City",country:"Country",address:"",group:"",hq:!1,lat:0,lng:0},getItemSummary:e=>e?.city||"Office"},q),mapTheme:m("Map theme",i(C,{}),[{label:"Auto",value:"auto"},{label:"Dark",value:"dark"},{label:"Light",value:"light"}],O.mapTheme),_gSearch:a("Search"),search:n(f("Show",!1,i(P,{})),c),searchHint:n(u("Hint","Type a postcode or address"),b),noMatchText:n(u("No match","No place found. Try another postcode."),b),_gList:a("List"),listPosition:n(m("Position",i(E,{}),[{label:"Left",value:"left"},{label:"Right",value:"right"},{label:"Below",value:"below"}],"below"),c),showDistance:n(f("Distance",!0,i(I,{})),c),_dLayout:A("Layout"),...U("Footprint")},resolveData:async e=>{const o=v(e.props.source);(e.props[g]??"")!==o&&(e={...e,props:{...e.props,[g]:o}});const t=e.props,r=t.offices??[];if(!H(r))return e;const s=await B(r,p=>[p.address,p.city,p.country].map(L=>String(L??"").replace(/\*/g,"").trim()).filter(Boolean).join(", "));return{...e,props:{...t,offices:s}}},resolveFields:(e,{fields:o})=>W(K(o,v(e.props.source)),e.props.headPlacement,M.Footprint.headRows)};export{ie as FootprintFields,v as footprintBlockSource};
@@ -1 +1 @@
1
- import{jsx as o}from"react/jsx-runtime";import{GRID_COLUMNS_FALLBACK as t,GRID_MAX_COLUMNS as e,GRID_MOBILE_MAX_COLUMNS as l,GRID_MOBILE_MIN_COLUMNS as m}from"../../../../../../format/lib/content/grid-span.js";import{ColumnsIcon as i}from"efficient-easel/icons";import{deviceField as r}from"efficient-easel/screen/lib/document/device-fields";import{gapField as n,slider as s}from"../../../controls.js";import{GridSlots as _}from"../../../../../../format/lib/document/blocks/general/Grid/meta.js";const f={fields:{columns:r("desktop",s("Columns",o(i,{}),1,e,1,t)),mobileColumns:r("mobile",s("Columns",o(i,{}),m,l,1,m)),gap:n("Grid"),content:_.content}};export{f as GridFields};
1
+ import{jsx as o}from"react/jsx-runtime";import{GRID_COLUMNS_FALLBACK as e,GRID_MAX_COLUMNS as s,GRID_MOBILE_MAX_COLUMNS as l,GRID_MOBILE_MIN_COLUMNS as m}from"../../../../../../format/lib/content/grid-span.js";import{ColumnsIcon as r}from"efficient-easel/icons";import{deviceField as i}from"efficient-easel/screen/lib/document/device-fields";import{slider as t}from"../../../box-fields.js";import{containerGapField as n}from"../../../controls.js";import{GridSlots as p}from"../../../../../../format/lib/document/blocks/general/Grid/meta.js";const L={fields:{columns:i("desktop",t("Columns",o(r,{}),1,s,1,e)),mobileColumns:i("mobile",t("Columns",o(r,{}),m,l,1,m)),gap:n("Grid"),content:p.content}};export{L as GridFields};
@@ -1 +1 @@
1
- import{jsx as e}from"react/jsx-runtime";import{FieldGlyph as l}from"../../../../../components/FieldGlyph.js";import{select as a,textarea as i}from"../../../controls.js";import{PH as o}from"../../../../../../format/lib/document/blocks/placeholders.js";import{alignField as r}from"../../shared-fields.js";const v={fields:{text:i("Heading",o.heading),level:a("Level",e(l,{noun:"heading"}),[{label:"H1",value:"1"},{label:"H2",value:"2"},{label:"H3",value:"3"},{label:"H4",value:"4"},{label:"H5",value:"5"},{label:"H6",value:"6"}],"2"),align:r()}};export{v as HeadingFields};
1
+ import{jsx as e}from"react/jsx-runtime";import{FieldGlyph as l}from"../../../../../components/FieldGlyph.js";import{textarea as a}from"../../../controls.js";import{select as i}from"../../../box-fields.js";import{PH as o}from"../../../../../../format/lib/document/blocks/placeholders.js";import{alignField as r}from"../../shared-fields.js";const v={fields:{text:a("Heading",o.heading),level:i("Level",e(l,{noun:"heading"}),[{label:"H1",value:"1"},{label:"H2",value:"2"},{label:"H3",value:"3"},{label:"H4",value:"4"},{label:"H5",value:"5"},{label:"H6",value:"6"}],"2"),align:r()}};export{v as HeadingFields};
@@ -1 +1 @@
1
- import{jsx as e}from"react/jsx-runtime";import{REEL_PLACEMENT_DEFAULT as S,REEL_SHAPE_DEFAULT as p,HERO_REEL_SHAPES as d,REEL_SHAPE_LABELS as A,REEL_SHOWN_DEFAULT as m}from"../../../../../../format/lib/reel.js";import{HERO_TEXTURE_COLOUR_DEFAULT as R,HERO_TEXTURE_SHOWN_DEFAULT as O}from"../../../../../../format/lib/hero-texture.js";import{HERO_ARROW_SHAPE_DEFAULT as P,HERO_ARROW_SHAPE_LABELS as L,HERO_ARROW_SHAPES as H,HERO_ARROWS_PLACEMENT_DEFAULT as u,HERO_ARROWS_SHOWN_DEFAULT as h}from"../../../../../../format/lib/hero-arrows.js";import{ClockIcon as T,EyeIcon as l,OpacityIcon as w,PhoneIcon as E,PlayIcon as I,SlideArrowsBareIcon as k,SlideArrowsRoundIcon as g,SlideArrowsSquareIcon as D,SlidePickerBarIcon as U,SlidePickerCardsIcon as f,SlidePickerDotsIcon as F,SlidePickerNumbersIcon as y,SlidePickerSquaresIcon as b,SquareIcon as c}from"efficient-easel/icons";import{SlideArrowsRoundSolidIcon as N}from"efficient-shell/icons/efficient-looks";const W=N,x={cards:e(f,{}),dots:e(F,{}),numbers:e(y,{}),bar:e(U,{}),squares:e(b,{})},C={outline:e(g,{}),solid:e(W,{}),square:e(D,{}),bare:e(k,{})};import{colorInput as B,group as o,placementField as n,segmented as i,slider as _,toggle as t}from"../../../controls.js";import{deviceField as s,deviceNote as q}from"efficient-easel/screen/lib/document/device-fields";import{HERO_PHONE_SIDEWAYS_DEFAULT as M,HERO_PHONE_SIDEWAYS_LABEL as j,HERO_PHONE_UPDOWN_DEFAULT as X,HERO_PHONE_UPDOWN_LABEL as Y,phoneSidewaysPoints as v,phoneUpDownPoints as K}from"../../../../../../format/lib/hero-phone-stack.js";import{heightField as a,alignField as z}from"../../shared-fields.js";import{HeroSlots as G}from"../../../../../../format/lib/document/blocks/general/Hero/meta.js";const se={fields:{_dDevice:q(),_gContent:o("Content"),slides:G.slides,_gStyle:o("Style"),alignment:z(),_gTexture:o("Texture"),showTexture:t("Show texture",O,e(l,{})),textureColor:B("Texture color",R),textureOpacity:_("Texture opacity",e(w,{}),0,100,1,40,"%"),_gLayout:o("Layout"),heightDesktop:a("desktop"),heightMobile:a("mobile"),_gAutoplay:o("Auto-slide"),autoplay:t("Auto-advance slides",!1,e(I,{})),autoplayInterval:_("Still time per slide",e(T,{}),2,15,1,6,"s"),_gPicker:o("Slide picker"),showPicker:t("Show slide picker",m,e(l,{})),pickerShape:i("Slide picker shape",e(c,{}),d.map(r=>({label:A[r],value:r,picture:x[r]})),p),pickerPlacement:n("Slide picker placement",{stacking:!1,fallback:S}),_gArrows:o("Arrows"),showArrows:t("Show arrows",h,e(l,{})),arrowsShape:i("Arrows shape",e(c,{}),H.map(r=>({label:L[r],value:r,picture:C[r]})),P),arrowsPlacement:n("Arrows placement",{stacking:!1,fallback:u}),_gPhone:s("mobile",o("On a phone")),phoneUpDown:s("mobile",i(Y,e(E,{}),K(),X)),phoneSideways:s("mobile",i(j,e(E,{}),v(),M))}};export{se as HeroFields};
1
+ import{jsx as e}from"react/jsx-runtime";import{REEL_PLACEMENT_DEFAULT as a,REEL_SHAPE_DEFAULT as m,HERO_REEL_SHAPES as d,REEL_SHAPE_LABELS as A,REEL_SHOWN_DEFAULT as R}from"../../../../../../format/lib/reel.js";import{DEFAULT_TINT as P}from"../../../../../../format/lib/content/tint.js";import{HERO_TEXTURE_SHOWN_DEFAULT as O}from"../../../../../../format/lib/hero-texture.js";import{HERO_ARROW_SHAPE_DEFAULT as L,HERO_ARROW_SHAPE_LABELS as u,HERO_ARROW_SHAPES as H,HERO_ARROWS_PLACEMENT_DEFAULT as h,HERO_ARROWS_SHOWN_DEFAULT as w}from"../../../../../../format/lib/hero-arrows.js";import{ClockIcon as I,EyeIcon as t,OpacityIcon as T,PhoneIcon as s,PlayIcon as k,SlideArrowsBareIcon as D,SlideArrowsRoundIcon as f,SlideArrowsSquareIcon as g,SlidePickerBarIcon as U,SlidePickerCardsIcon as F,SlidePickerDotsIcon as y,SlidePickerNumbersIcon as N,SlidePickerSquaresIcon as b,SquareIcon as E}from"efficient-easel/icons";import{SlideArrowsRoundSolidIcon as W}from"efficient-shell/icons/efficient-looks";const x=W,C={cards:e(F,{}),dots:e(y,{}),numbers:e(N,{}),bar:e(U,{}),squares:e(b,{})},B={outline:e(f,{}),solid:e(x,{}),square:e(g,{}),bare:e(D,{})};import{colorInput as q,toggle as i}from"../../../controls.js";import{group as o}from"efficient-easel/screen/lib/document/box-fields";import{iconPickerRow as c,placementField as n,segmented as _,slider as p}from"../../../box-fields.js";import{deviceField as l,deviceNote as M}from"efficient-easel/screen/lib/document/device-fields";import{HERO_PHONE_SIDEWAYS_DEFAULT as j,HERO_PHONE_SIDEWAYS_LABEL as Y,HERO_PHONE_UPDOWN_DEFAULT as v,HERO_PHONE_UPDOWN_LABEL as K,phoneSidewaysPoints as X,phoneUpDownPoints as z}from"../../../../../../format/lib/hero-phone-stack.js";import{heightField as S,alignField as G}from"../../shared-fields.js";import{HeroSlots as J}from"../../../../../../format/lib/document/blocks/general/Hero/meta.js";const _e={fields:{_dDevice:M(),_gContent:o("Content"),slides:J.slides,_gStyle:o("Style"),alignment:G(),_gTexture:o("Texture"),showTexture:i("Show texture",O,e(t,{})),textureColor:q("Texture color",P),textureOpacity:p("Texture opacity",e(T,{}),0,100,1,40,"%"),_gLayout:o("Layout"),heightDesktop:S("desktop"),heightMobile:S("mobile"),_gAutoplay:o("Auto-slide"),autoplay:i("Auto-advance slides",!1,e(k,{})),autoplayInterval:p("Still time per slide",e(I,{}),2,15,1,6,"s"),_gPicker:o("Slide picker"),showPicker:i("Show slide picker",R,e(t,{})),pickerShape:c("Slide picker shape",e(E,{}),d.map(r=>({label:A[r],value:r,picture:C[r]})),m),pickerPlacement:n("Slide picker placement",{fallback:a}),_gArrows:o("Arrows"),showArrows:i("Show arrows",w,e(t,{})),arrowsShape:c("Arrows shape",e(E,{}),H.map(r=>({label:u[r],value:r,picture:B[r]})),L),arrowsPlacement:n("Arrows placement",{fallback:h}),_gPhone:l("mobile",o("On a phone")),phoneUpDown:l("mobile",_(K,e(s,{}),z(),v)),phoneSideways:l("mobile",_(Y,e(s,{}),X(),j))}};export{_e as HeroFields};
@@ -1 +1 @@
1
- import{jsx as r}from"react/jsx-runtime";import{HERO_GROUP_NUDGE_LIMIT as n,HERO_GROUP_WIDTH_DEFAULT as u,HERO_GROUP_WIDTH_MAX as p,HERO_GROUP_WIDTH_MIN as d,HERO_GROUP_WIDTH_NESTED_DEFAULT as _,heroGroupNestDepth as g}from"../../../../../../format/lib/hero-group-placement.js";import{WidthIcon as l}from"efficient-easel/icons";import{boxAlignField as f,boxJustifyField as c,boxWrapField as H,directionField as h,gapField as x,group as e,placementField as F,plainText as G,positionFields as O,sidesPaddingFields as R,slider as s,withIdentifier as D,withOffPage as E,withPanelOnly as P}from"../../../controls.js";import{PH as I}from"../../../../../../format/lib/document/blocks/placeholders.js";import{withRowRules as T}from"../../../../../../render/lib/document/show-when.js";import{HeroGroupSlots as w}from"../../../../../../format/lib/document/blocks/general/HeroGroup/meta.js";const j={fields:T({_gContent:e("Content"),name:P(D(E(G("Box name",I.boxName)))),content:w.content,_gLayout:e("Layout"),placement:F("Placement",{stacking:!0}),width:s("Width",r(l,{}),d,p,5,u,"%"),direction:h("HeroGroup"),gap:x("HeroGroup"),justify:c(),align:f(),wrap:H(),_gNudge:e("Nudge"),...O({keys:{x:"nudgeX",y:"nudgeY"},min:-n,max:n,label:null}),...R()},[[["placement"],{context:"heroGroupDepth",is:0}]]),resolveFields:(o,{fields:t,appState:m})=>{const a=typeof o.props.id=="string"?o.props.id:"";if(g(m?.data,a)===0)return t;const i={...t};return i.width=s("Width",r(l,{}),d,p,5,_,"%"),i}};export{j as HeroGroupFields};
1
+ import{jsx as r}from"react/jsx-runtime";import{HERO_GROUP_NUDGE_LIMIT as n,HERO_GROUP_WIDTH_DEFAULT as u,HERO_GROUP_WIDTH_MAX as p,HERO_GROUP_WIDTH_MIN as d,HERO_GROUP_WIDTH_NESTED_DEFAULT as _,heroGroupNestDepth as f}from"../../../../../../format/lib/hero-group-placement.js";import{WidthIcon as l}from"efficient-easel/icons";import{containerDirectionField as c,containerGapField as g,heroGroupPlacementPoints as h,plainText as G,withIdentifier as H,withOffPage as F,withPanelOnly as x}from"../../../controls.js";import{group as o}from"efficient-easel/screen/lib/document/box-fields";import{boxAlignField as O,boxJustifyField as P,boxWrapField as R,placementField as D,positionFields as E,sidesPaddingFields as I,slider as m}from"../../../box-fields.js";import{PH as T}from"../../../../../../format/lib/document/blocks/placeholders.js";import{withRowRules as w}from"../../../../../../render/lib/document/show-when.js";import{HeroGroupSlots as y}from"../../../../../../format/lib/document/blocks/general/HeroGroup/meta.js";const S={fields:w({_gContent:o("Content"),name:x(H(F(G("Box name",T.boxName)))),content:y.content,_gLayout:o("Layout"),placement:D("Placement",{pointsFor:h}),width:m("Width",r(l,{}),d,p,5,u,"%"),direction:c("HeroGroup"),gap:g("HeroGroup"),justify:P(),align:O(),wrap:R(),_gNudge:o("Nudge"),...E({keys:{x:"nudgeX",y:"nudgeY"},min:-n,max:n,label:null}),...I()},[[["placement"],{context:"heroGroupDepth",is:0}]]),resolveFields:(e,{fields:t,appState:s})=>{const a=typeof e.props.id=="string"?e.props.id:"";if(f(s?.data,a)===0)return t;const i={...t};return i.width=m("Width",r(l,{}),d,p,5,_,"%"),i}};export{S as HeroGroupFields};
@@ -1 +1 @@
1
- import{jsx as o}from"react/jsx-runtime";import{ImageIcon as O,ImagesIcon as n,MediaIcon as _,MediaLayoutSideBySideIcon as E,MediaLayoutStackedIcon as P,OpacityIcon as m,PlacementIcon as S,PlayIcon as A,UploadIcon as F}from"efficient-easel/icons";import{colorInput as d,edgePad as T,focusKeptField as i,group as a,MEDIA_TYPE_OPTIONS as b,phoneChoiceField as h,plainText as f,segmented as t,slider as c,upload as l}from"../../../controls.js";import{MEDIA_LAYOUT_DEFAULT as D,MEDIA_LAYOUT_LABELS as g,MEDIA_LAYOUTS as p,resolvePhoneLayout as U}from"../../../../../../format/lib/hero-media-layout.js";import{deviceNote as v}from"efficient-easel/screen/lib/document/device-fields";import{DEFAULT_OVERLAY_COLOR as C,DEFAULT_OVERLAY_POSITION as V,OVERLAY_POSITION_OPTIONS as k}from"../../../../../../format/lib/sections/hero-overlay.js";import{heightField as y,slotNoticeField as M}from"../../shared-fields.js";import{forMediaType as s,heroMediaFields as Y,VIDEO_FILE_LABEL as B,VIDEO_FILE_PROMPT as x}from"../../../../../../render/lib/document/hero-media-parts.js";import{VIDEO_PLAYBACK_DEFAULT as N,VIDEO_PLAYBACK_LABELS as R,VIDEO_PLAYBACKS as K,VIDEO_SOURCE_DEFAULT as r,VIDEO_SOURCE_LABELS as w,VIDEO_SOURCES as H}from"../../../../../../format/lib/hero-video.js";const u=s("video","image"),I=s("image","image"),L={one:o(O,{}),side:o(E,{}),stacked:o(P,{})};import{HeroSingleSlots as j}from"../../../../../../format/lib/document/blocks/general/HeroSingle/meta.js";const oe={fields:Y({_dDevice:v(),boxNotice:M("HeroSingle"),boxes:j.boxes,_gStyle:a("Style"),overlay:c("Overlay",o(m,{}),0,100,5,100,"%"),overlayColor:d("Overlay color",C),overlayPosition:T("Overlay position",k,V,"A corner would need a diagonal ramp, which this overlay does not draw.",o(S,{})),_gLayout:a("Layout"),heightDesktop:y("desktop"),heightMobile:y("mobile"),_gMedia:a("Media"),mediaType:t("Type",o(_,{}),b,"image"),mediaLayout:t("Layout",o(n,{}),p.map(e=>({label:g[e],value:e,picture:L[e]})),D),mediaLayoutPhone:h({label:"Layout",icon:o(n,{}),options:p.map(e=>({label:g[e],value:e,picture:L[e]})),desktopKey:"mediaLayout",resolve:U}),mediaImage:l("Background image","image/*","Upload a background image",{focus:"imageFocal"}),imageFocal:i(),imageFocalPhone:i(),videoSource:t("Source",o(F,{}),H.map(e=>({label:w[e],value:e})),r),mediaVideo:l(B,"video/*",x),youtubeUrl:f("YouTube link","https://youtu.be/…"),videoPlayback:t("Playback",o(A,{}),K.map(e=>({label:R[e],value:e})),N),poster:l("Video poster","image/*","Upload a poster still"),_gTint:a("Image tint"),tintColor:d("Tint color","#000000"),tintOpacity:c("Tint opacity",o(m,{}),0,100,5,0,"%"),mediaImage2:l("Background image","image/*","Upload a background image",{focus:"imageFocal2"}),imageFocal2:i(),imageFocal2Phone:i(),tintColor2:d("Tint color","#000000"),tintOpacity2:c("Tint opacity",o(m,{}),0,100,5,0,"%")},{parts:{media:["mediaType","mediaLayout","mediaLayoutPhone","videoSource","mediaVideo","youtubeUrl","videoPlayback","poster"],image:["mediaImage","imageFocal","imageFocalPhone","tintColor","tintOpacity"],image2:["mediaImage2","imageFocal2","imageFocal2Phone","tintColor2","tintOpacity2"]},onlyFor:{image:["mediaImage","imageFocal","imageFocalPhone","_gTint","tintColor","tintOpacity","mediaImage2","imageFocal2","imageFocal2Phone","tintColor2","tintOpacity2"],video:["videoSource","videoPlayback","poster"]},rules:{mediaVideo:{all:[u,{field:"videoSource",is:"upload",default:r}]},youtubeUrl:{all:[u,{field:"videoSource",is:"youtube",default:r}]},mediaLayout:{all:[I,{not:{context:"device",is:"mobile"}}]},mediaLayoutPhone:{all:[I,{context:"device",is:"mobile"}]}},fallback:"image"})};export{oe as HeroSingleFields};
1
+ import{jsx as e}from"react/jsx-runtime";import{ImageIcon as _,ImagesIcon as g,MediaIcon as E,MediaLayoutSideBySideIcon as T,MediaLayoutStackedIcon as P,OpacityIcon as m,PlacementIcon as S,PlayIcon as F,UploadIcon as A}from"efficient-easel/icons";import{colorInput as d,edgePad as b,focusKeptField as i,MEDIA_TYPE_OPTIONS as f,phoneChoiceField as h,plainText as D,upload as a}from"../../../controls.js";import{group as t}from"efficient-easel/screen/lib/document/box-fields";import{segmented as l,slider as r}from"../../../box-fields.js";import{MEDIA_LAYOUT_DEFAULT as U,MEDIA_LAYOUT_LABELS as p,MEDIA_LAYOUTS as y,resolvePhoneLayout as v}from"../../../../../../format/lib/hero-media-layout.js";import{deviceNote as k}from"efficient-easel/screen/lib/document/device-fields";import{DEFAULT_OVERLAY_POSITION as C,OVERLAY_POSITION_OPTIONS as V}from"../../../../../../format/lib/sections/hero-overlay.js";import{heightField as s,slotNoticeField as M}from"../../shared-fields.js";import{forMediaType as u,heroMediaFields as Y,VIDEO_FILE_LABEL as B,VIDEO_FILE_PROMPT as N}from"../../../../../../render/lib/document/hero-media-parts.js";import{VIDEO_PLAYBACK_DEFAULT as x,VIDEO_PLAYBACK_LABELS as R,VIDEO_PLAYBACKS as K,VIDEO_SOURCE_DEFAULT as c,VIDEO_SOURCE_LABELS as w,VIDEO_SOURCES as H}from"../../../../../../format/lib/hero-video.js";const I=u("video","image"),L=u("image","image"),O={one:e(_,{}),side:e(T,{}),stacked:e(P,{})};import{HeroSingleSlots as j}from"../../../../../../format/lib/document/blocks/general/HeroSingle/meta.js";import{DEFAULT_TINT as n}from"../../../../../../format/lib/content/tint.js";const to={fields:Y({_dDevice:k(),boxNotice:M("HeroSingle"),boxes:j.boxes,_gStyle:t("Style"),overlay:r("Overlay",e(m,{}),0,100,5,100,"%"),overlayColor:d("Overlay color",n),overlayPosition:b("Overlay position",V,C,"A corner would need a diagonal ramp, which this overlay does not draw.",e(S,{})),_gLayout:t("Layout"),heightDesktop:s("desktop"),heightMobile:s("mobile"),_gMedia:t("Media"),mediaType:l("Type",e(E,{}),f,"image"),mediaLayout:l("Layout",e(g,{}),y.map(o=>({label:p[o],value:o,picture:O[o]})),U),mediaLayoutPhone:h({label:"Layout",icon:e(g,{}),options:y.map(o=>({label:p[o],value:o,picture:O[o]})),desktopKey:"mediaLayout",resolve:v}),mediaImage:a("Background image","image/*","Upload a background image",{focus:"imageFocal"}),imageFocal:i(),imageFocalPhone:i(),videoSource:l("Source",e(A,{}),H.map(o=>({label:w[o],value:o})),c),mediaVideo:a(B,"video/*",N),youtubeUrl:D("YouTube link","https://youtu.be/…"),videoPlayback:l("Playback",e(F,{}),K.map(o=>({label:R[o],value:o})),x),poster:a("Video poster","image/*","Upload a poster still"),_gTint:t("Image tint"),tintColor:d("Tint color",n),tintOpacity:r("Tint opacity",e(m,{}),0,100,5,0,"%"),mediaImage2:a("Background image","image/*","Upload a background image",{focus:"imageFocal2"}),imageFocal2:i(),imageFocal2Phone:i(),tintColor2:d("Tint color",n),tintOpacity2:r("Tint opacity",e(m,{}),0,100,5,0,"%")},{parts:{media:["mediaType","mediaLayout","mediaLayoutPhone","videoSource","mediaVideo","youtubeUrl","videoPlayback","poster"],image:["mediaImage","imageFocal","imageFocalPhone","tintColor","tintOpacity"],image2:["mediaImage2","imageFocal2","imageFocal2Phone","tintColor2","tintOpacity2"]},onlyFor:{image:["mediaImage","imageFocal","imageFocalPhone","_gTint","tintColor","tintOpacity","mediaImage2","imageFocal2","imageFocal2Phone","tintColor2","tintOpacity2"],video:["videoSource","videoPlayback","poster"]},rules:{mediaVideo:{all:[I,{field:"videoSource",is:"upload",default:c}]},youtubeUrl:{all:[I,{field:"videoSource",is:"youtube",default:c}]},mediaLayout:{all:[L,{not:{context:"device",is:"mobile"}}]},mediaLayoutPhone:{all:[L,{context:"device",is:"mobile"}]}},fallback:"image"})};export{to as HeroSingleFields};
@@ -1 +1 @@
1
- import{jsx as e}from"react/jsx-runtime";import{BlockVideoIcon as m,ClockIcon as r,ImageIcon as t,MediaIcon as n,OpacityIcon as g,PlayIcon as p}from"efficient-easel/icons";import{colorInput as s,focusKeptField as o,group as i,loadingShowsField as c,MEDIA_TYPE_OPTIONS as I,plainText as f,segmented as F,slider as l,text as v,upload as a,withIdentifier as S,withPanelOnly as d}from"../../../controls.js";import{LOADING_SHOWS_IMAGE as _}from"../../../../../../format/lib/hero-video.js";import{PH as u}from"../../../../../../format/lib/document/blocks/placeholders.js";import{slotNoticeField as h}from"../../shared-fields.js";import{heroMediaFields as y,VIDEO_FILE_LABEL as O,VIDEO_FILE_PROMPT as P}from"../../../../../../render/lib/document/hero-media-parts.js";import{HeroSlideSlots as T}from"../../../../../../format/lib/document/blocks/general/HeroSlide/meta.js";const H={fields:y({_gContent:i("Content"),name:d(S(f("Slide name",u.slideName))),process:d(v("Reel label","Label")),groupNotice:h("HeroSlide"),groups:T.groups,_gMedia:i("Media"),mediaType:F("Type",e(n,{}),I,"video"),mediaVideo:a(O,"video/*",P,{frame:"videoFrame"}),videoSpeed:l("Playback speed",e(p,{}),25,100,5,100,"%"),loadingShows:c("Show while loading",e(r,{}),{frame:e(m,{}),image:e(t,{})}),videoFrame:o(),mediaImage:a("Background image","image/*","Upload a background image",{focus:"imageFocal"}),imageFocal:o(),imageFocalPhone:o(),poster:a("Image","image/*","Choose an image"),_gTint:i("Image tint"),tintColor:s("Tint color","#000000"),overlay:l("Overlay",e(g,{}),0,100,5,0,"%")},{onlyFor:{image:["mediaImage","imageFocal","imageFocalPhone","_gTint","tintColor","overlay"],video:["mediaVideo","videoSpeed","loadingShows","videoFrame"]},fallback:"video",rules:{poster:{all:[{field:"mediaType",is:"video",default:"video"},_]}}})};export{H as HeroSlideFields};
1
+ import{jsx as e}from"react/jsx-runtime";import{BlockVideoIcon as r,ClockIcon as d,ImageIcon as t,MediaIcon as n,OpacityIcon as g,PlayIcon as p}from"efficient-easel/icons";import{colorInput as s,focusKeptField as o,loadingShowsField as c,MEDIA_TYPE_OPTIONS as I,plainText as f,text as F,upload as i,withIdentifier as v,withPanelOnly as m}from"../../../controls.js";import{group as a}from"efficient-easel/screen/lib/document/box-fields";import{segmented as S,slider as l}from"../../../box-fields.js";import{LOADING_SHOWS_IMAGE as _}from"../../../../../../format/lib/hero-video.js";import{PH as T}from"../../../../../../format/lib/document/blocks/placeholders.js";import{slotNoticeField as u}from"../../shared-fields.js";import{heroMediaFields as h,VIDEO_FILE_LABEL as y,VIDEO_FILE_PROMPT as O}from"../../../../../../render/lib/document/hero-media-parts.js";import{DEFAULT_TINT as P}from"../../../../../../format/lib/content/tint.js";import{HeroSlideSlots as E}from"../../../../../../format/lib/document/blocks/general/HeroSlide/meta.js";const V={fields:h({_gContent:a("Content"),name:m(v(f("Slide name",T.slideName))),process:m(F("Reel label","Label")),groupNotice:u("HeroSlide"),groups:E.groups,_gMedia:a("Media"),mediaType:S("Type",e(n,{}),I,"video"),mediaVideo:i(y,"video/*",O,{frame:"videoFrame"}),videoSpeed:l("Playback speed",e(p,{}),25,100,5,100,"%"),loadingShows:c("Show while loading",e(d,{}),{frame:e(r,{}),image:e(t,{})}),videoFrame:o(),mediaImage:i("Background image","image/*","Upload a background image",{focus:"imageFocal"}),imageFocal:o(),imageFocalPhone:o(),poster:i("Image","image/*","Choose an image"),_gTint:a("Image tint"),tintColor:s("Tint color",P),overlay:l("Overlay",e(g,{}),0,100,5,0,"%")},{onlyFor:{image:["mediaImage","imageFocal","imageFocalPhone","_gTint","tintColor","overlay"],video:["mediaVideo","videoSpeed","loadingShows","videoFrame"]},fallback:"video",rules:{poster:{all:[{field:"mediaType",is:"video",default:"video"},_]}}})};export{V as HeroSlideFields};
@@ -1 +1 @@
1
- import{jsx as i}from"react/jsx-runtime";import{IMAGE_FIT_ROW_LABEL as t,imageFitOptions as r,imageIsCropped as s,parseImageFit as c}from"../../../../../../format/lib/content/image-fit.js";import{ImageIcon as m}from"efficient-easel/icons";import{focusKeptField as a,group as l,imageCornersField as p,linkField as d,plainText as g,cornerSidesField as f,select as n,upload as F,withPanelOnly as u}from"../../../controls.js";import{photographyToggle as h}from"../../shared-fields.js";import{CARD_ROW_FACTS as I,cardRowField as _,cardRowFields as v}from"../../../card-row-fields.js";const R={fields:{_gImage:l("Image"),src:F("Image","image/*",void 0,{focus:"focal",focusWhen:e=>s(e.aspect,c(e.fit,"cover"))}),alt:u(g("Alt text")),rowField:_("Shows","image"),aspect:{type:"select",label:"Aspect ratio",options:[{label:"Auto",value:"auto"},{label:"21 : 9",value:"21/9"},{label:"16 : 9",value:"16/9"},{label:"4 : 3",value:"4/3"},{label:"1 : 1",value:"1/1"}]},fit:n(t,i(m,{}),r(),"cover"),focal:a(),focalPhone:a(),href:d("Link"),_gStyle:l("Style"),grayscale:h(),_gShape:l("Shape"),corners:p(),cornerSides:f()},resolveFields:(e,o)=>v(o.fields,e,o),showWhenFacts:I};export{R as ImageBlockFields};
1
+ import{jsx as i}from"react/jsx-runtime";import{IMAGE_FIT_ROW_LABEL as r,imageFitOptions as t,imageIsCropped as s,parseImageFit as m}from"../../../../../../format/lib/content/image-fit.js";import{ImageIcon as c}from"efficient-easel/icons";import{focusKeptField as a,imageCornersField as p,linkField as f,plainText as d,cornerSidesField as g,upload as n,withPanelOnly as F}from"../../../controls.js";import{group as o}from"efficient-easel/screen/lib/document/box-fields";import{select as u}from"../../../box-fields.js";import{photographyToggle as h}from"../../shared-fields.js";import{CARD_ROW_FACTS as I,cardRowField as _,cardRowFields as v}from"../../../card-row-fields.js";const O={fields:{_gImage:o("Image"),src:n("Image","image/*",void 0,{focus:"focal",focusWhen:e=>s(e.aspect,m(e.fit,"cover"))}),alt:F(d("Alt text")),rowField:_("Shows","image"),aspect:{type:"select",label:"Aspect ratio",options:[{label:"Auto",value:"auto"},{label:"21 : 9",value:"21/9"},{label:"16 : 9",value:"16/9"},{label:"4 : 3",value:"4/3"},{label:"1 : 1",value:"1/1"}]},fit:u(r,i(c,{}),t(),"cover"),focal:a(),focalPhone:a(),href:f("Link"),_gStyle:o("Style"),grayscale:h(),_gShape:o("Shape"),corners:p(),cornerSides:g()},resolveFields:(e,l)=>v(l.fields,e,l),showWhenFacts:I};export{O as ImageBlockFields};
@@ -1,2 +1,2 @@
1
- import{jsx as a}from"react/jsx-runtime";import{FieldGlyph as i}from"../../../../../components/FieldGlyph.js";import{group as e,text as t,textarea as o,textList as n}from"../../../controls.js";const l={fields:{_gContent:e("Content"),eyebrow:t("Chip label","Integrations"),title:o("Heading",`Plays well with
2
- *your favourite apps.*`),body:o("Body",""),apps:n("App chips",a(i,{noun:"tag"}),"App name","verbatim"),_gStat:e("Stat & note"),statValue:t("Big stat","100s"),statLabel:t("Stat label",""),note:t("Footnote","")}};export{l as IntegrationsFields};
1
+ import{jsx as a}from"react/jsx-runtime";import{FieldGlyph as i}from"../../../../../components/FieldGlyph.js";import{text as t,textarea as e,textList as n}from"../../../controls.js";import{group as o}from"efficient-easel/screen/lib/document/box-fields";const m={fields:{_gContent:o("Content"),eyebrow:t("Chip label","Integrations"),title:e("Heading",`Plays well with
2
+ *your favourite apps.*`),body:e("Body",""),apps:n("App chips",a(i,{noun:"tag"}),"App name","verbatim"),_gStat:o("Stat & note"),statValue:t("Big stat","100s"),statLabel:t("Stat label",""),note:t("Footnote","")}};export{m as IntegrationsFields};
@@ -1 +1 @@
1
- import{jsx as t}from"react/jsx-runtime";import{CaseIcon as g,OpacityIcon as b,PlacementIcon as y,StickyIcon as u,TextLinesIcon as a}from"efficient-easel/icons";import{colorInput as d,group as i,select as k,sizeField as l,slider as r,text as h,textarea as s,toggle as m,upload as p}from"../../../controls.js";import{NoControlMark as _,noControlField as x}from"efficient-easel/screen/lib/document/panel-no-control-mark";import{deviceField as e,deviceNote as T}from"efficient-easel/screen/lib/document/device-fields";import{DEFAULT_INTRO_BLEED_LAYOUT as f,INTRO_BLEED_COPY_SHARE as o,INTRO_BLEED_LAYOUT_OPTIONS as S}from"../../../../../../format/lib/sections/intro-bleed-layout.js";import{heightField as c,ctaField as B}from"../../shared-fields.js";import{INTRO_PH as n}from"../../../../../../format/lib/document/blocks/general/IntroBleed/meta.js";const M={fields:{_dDevice:T(),_gContent:i("Content"),eyebrow:h("Eyebrow",n.eyebrow),title:s("Heading",n.title),body:s("Subtitle",n.body),uppercase:m("Uppercase heading",!1,t(g,{})),_gBackground:i("Background images"),imageSrc:e("desktop",p("Background image","image/*")),imageSrcMobile:e("mobile",p("Background image","image/*")),_gLayout:i("Layout"),layout:k("Text position",t(y,{}),S,f),heightDesktop:c("desktop"),heightMobile:c("mobile"),copyShareDesktop:e("desktop",r("Text height",t(a,{}),o.min,o.max,o.step,o.desktop,"%")),copyShareMobile:e("mobile",r("Text height",t(a,{}),o.min,o.max,o.step,o.mobile,"%")),sticky:m("Stick to top",!0,t(u,{})),fullWidth:{...x({type:"custom",render:()=>t(_,{})},"always"),reachedBy:"contentWidth"},overlay:r("Overlay",t(b,{}),0,100,5,60,"%"),_gTextDesktop:e("desktop",i("Text style")),titleSizeDesktop:e("desktop",l("Heading font size",32,120,1,96,"heading")),bodySizeDesktop:e("desktop",l("Subtitle font size",12,28,1,17,"body")),_gTextMobile:e("mobile",i("Text style")),titleSizeMobile:e("mobile",l("Heading font size",24,72,1,44,"heading")),bodySizeMobile:e("mobile",l("Subtitle font size",12,22,1,16,"body")),_gButton:i("Button"),...B,buttonColor:d("Button color","#C9A461"),buttonTextColor:d("Button text color","#000000")}};export{M as IntroBleedFields};
1
+ import{jsx as t}from"react/jsx-runtime";import{CaseIcon as c,OpacityIcon as b,PlacementIcon as u,StickyIcon as y,TextLinesIcon as m}from"efficient-easel/icons";import{colorInput as n,sizeField as r,text as k,textarea as s,toggle as p,upload as d}from"../../../controls.js";import{group as i}from"efficient-easel/screen/lib/document/box-fields";import{select as _,slider as l}from"../../../box-fields.js";import{deviceField as e,deviceNote as x}from"efficient-easel/screen/lib/document/device-fields";import{DEFAULT_INTRO_BLEED_LAYOUT as T,INTRO_BLEED_COPY_SHARE as o,INTRO_BLEED_LAYOUT_OPTIONS as f}from"../../../../../../format/lib/sections/intro-bleed-layout.js";import{heightField as g,ctaField as h}from"../../shared-fields.js";import{INTRO_PH as a}from"../../../../../../format/lib/document/blocks/general/IntroBleed/meta.js";const F={fields:{_dDevice:x(),_gContent:i("Content"),eyebrow:k("Eyebrow",a.eyebrow),title:s("Heading",a.title),body:s("Subtitle",a.body),uppercase:p("Uppercase heading",!1,t(c,{})),_gBackground:i("Background images"),imageSrc:e("desktop",d("Background image","image/*")),imageSrcMobile:e("mobile",d("Background image","image/*")),_gLayout:i("Layout"),layout:_("Text position",t(u,{}),f,T),heightDesktop:g("desktop"),heightMobile:g("mobile"),copyShareDesktop:e("desktop",l("Text height",t(m,{}),o.min,o.max,o.step,o.desktop,"%")),copyShareMobile:e("mobile",l("Text height",t(m,{}),o.min,o.max,o.step,o.mobile,"%")),sticky:p("Stick to top",!0,t(y,{})),overlay:l("Overlay",t(b,{}),0,100,5,60,"%"),_gTextDesktop:e("desktop",i("Text style")),titleSizeDesktop:e("desktop",r("Heading font size",32,120,1,96,"heading")),bodySizeDesktop:e("desktop",r("Subtitle font size",12,28,1,17,"body")),_gTextMobile:e("mobile",i("Text style")),titleSizeMobile:e("mobile",r("Heading font size",24,72,1,44,"heading")),bodySizeMobile:e("mobile",r("Subtitle font size",12,22,1,16,"body")),_gButton:i("Button"),...h,buttonColor:n("Button color","#C9A461"),buttonTextColor:n("Button text color","#000000")}};export{F as IntroBleedFields};
@@ -1 +1 @@
1
- import{jsx as e}from"react/jsx-runtime";import{ColumnsIcon as l,StylesIcon as a}from"efficient-easel/icons";import{copyText as s,group as t,plainText as m,select as y,slider as i,text as n,textarea as b,withOffPage as f}from"../../../controls.js";import{SECTION_EYEBROW_LOOK_OPTIONS as p,eyebrowLookFor as u}from"../../../../../../format/lib/sections/section-eyebrow-look.js";import{KEY_FEATURES_PH as r}from"../../../../../../format/lib/document/blocks/general/KeyFeatures/meta.js";const O={fields:{_gContent:t("Content"),eyebrow:n("Eyebrow",r.eyebrow),eyebrowLook:y("Eyebrow style",e(a,{}),[...p],u("KeyFeatures")),title:b("Heading",r.title),items:{type:"array",label:"Features",arrayFields:{label:s("Feature label"),href:f(m("Link"))},defaultItemProps:{label:"",href:""},getItemSummary:o=>o?.label||"Feature"},_gStyle:t("Style"),columns:i("Columns",e(l,{}),2,4,1,3)}};export{O as KeyFeaturesFields};
1
+ import{jsx as e}from"react/jsx-runtime";import{ColumnsIcon as l,StylesIcon as a}from"efficient-easel/icons";import{copyText as m,plainText as s,text as i,textarea as y,withOffPage as f}from"../../../controls.js";import{group as t}from"efficient-easel/screen/lib/document/box-fields";import{select as n,slider as p}from"../../../box-fields.js";import{SECTION_EYEBROW_LOOK_OPTIONS as b,eyebrowLookFor as u}from"../../../../../../format/lib/sections/section-eyebrow-look.js";import{KEY_FEATURES_PH as r}from"../../../../../../format/lib/document/blocks/general/KeyFeatures/meta.js";const c={fields:{_gContent:t("Content"),eyebrow:i("Eyebrow",r.eyebrow),eyebrowLook:n("Eyebrow style",e(a,{}),[...b],u("KeyFeatures")),title:y("Heading",r.title),items:{type:"array",label:"Features",arrayFields:{label:m("Feature label"),href:f(s("Link"))},defaultItemProps:{label:"",href:""},getItemSummary:o=>o?.label||"Feature"},_gStyle:t("Style"),columns:p("Columns",e(l,{}),2,4,1,3)}};export{c as KeyFeaturesFields};
@@ -0,0 +1,10 @@
1
+ import type { BlockFields } from "../../../../../../format/lib/document/blocks/block-types.js";
2
+ type QueryProps = {
3
+ address?: unknown;
4
+ name?: unknown;
5
+ state?: unknown;
6
+ country?: unknown;
7
+ };
8
+ export declare function locationMapGeocodeQuery(props: QueryProps): string;
9
+ export declare const LocationMapFields: BlockFields;
10
+ export {};
@@ -0,0 +1 @@
1
+ import{jsx as s}from"react/jsx-runtime";import{readHidable as i}from"efficient-easel/draw";import{ThemeIcon as m}from"efficient-easel/icons";import{CoordsField as c,plainText as r,sourceField as d,textarea as p}from"../../../controls.js";import{group as n}from"efficient-easel/screen/lib/document/box-fields";import{segmented as u}from"../../../box-fields.js";import{needsGeocodeWork as g,resolveGeocodeRows as f}from"../../../geocode-resolve.js";const t=e=>i(e).text;function b(e){return[t(e.address).replace(/\s*\n+\s*/g,", "),t(e.name),t(e.state),t(e.country)].map(o=>o.trim()).filter(Boolean).join(", ")}const j={fields:{_gMap:n("Map"),name:r("Location name"),state:r("State / Province"),country:r("Country"),address:p("Address"),geocode:d(c,{label:"Coordinates"}),mapsUrl:r("Directions link"),_gStyle:n("Style"),mapTheme:u("Map theme",s(m,{}),[{label:"Auto",value:"auto"},{label:"Dark",value:"dark"},{label:"Light",value:"light"}],"auto")},resolveData:async e=>{const o=e.props,l={...o,lat:Number(o.lat)||0,lng:Number(o.lng)||0};if(!g([l]))return e;const[a]=await f([l],b);return{...e,props:{...e.props,lat:a.lat,lng:a.lng,geocode:a.geocode}}}};export{j as LocationMapFields,b as locationMapGeocodeQuery};
@@ -1 +1 @@
1
- import{jsx as i}from"react/jsx-runtime";import{FOOTER_LOGO_PX as o,HEADER_LOGO_PX_MIN as t,LOGO_BLOCK_PX_MAX as e}from"../../../../../../render/components/Logo.js";import{HeightIcon as r}from"efficient-easel/icons";import{linkField as l,plainText as a,slider as m,upload as n,withPanelOnly as O}from"../../../controls.js";import{alignField as p}from"../../shared-fields.js";import{withRowRules as f}from"../../../../../../render/lib/document/show-when.js";import{LOGO_COLOR_FIELDS as s}from"../../../logo-color-fields.js";const R={fields:f({src:n("Logo image","image/*"),alt:O(a("Alt text","Brand name","Read out in place of the picture, and shown if it can’t load.")),href:l("Link"),heightPx:m("Height",i(r,{}),t,e,1,o,"px"),align:p(),...s},[[["alt"],{field:"src",set:!0}]])};export{R as LogoBlockFields};
1
+ import{jsx as i}from"react/jsx-runtime";import{FOOTER_LOGO_PX as o,HEADER_LOGO_PX_MIN as t,LOGO_BLOCK_PX_MAX as e}from"../../../../../../render/components/Logo.js";import{HeightIcon as r}from"efficient-easel/icons";import{linkField as l,plainText as m,upload as a,withPanelOnly as n}from"../../../controls.js";import{slider as p}from"../../../box-fields.js";import{alignField as O}from"../../shared-fields.js";import{withRowRules as f}from"../../../../../../render/lib/document/show-when.js";import{LOGO_COLOR_FIELDS as s}from"../../../logo-color-fields.js";const u={fields:f({src:a("Logo image","image/*"),alt:n(m("Alt text","Brand name","Read out in place of the picture, and shown if it can’t load.")),href:l("Link"),heightPx:p("Height",i(r,{}),t,e,1,o,"px"),align:O(),...s},[[["alt"],{field:"src",set:!0}]])};export{u as LogoBlockFields};
@@ -1 +1 @@
1
- import{jsx as o}from"react/jsx-runtime";import{BlackAndWhiteIcon as a,ColumnsIcon as s,HeightIcon as n,PaddingYIcon as r,StylesIcon as g}from"efficient-easel/icons";import{group as l,plainText as i,select as m,slider as e,textarea as d,toggle as O,upload as _,withPanelOnly as c}from"../../../controls.js";import{DEFAULT_LOGO_LOOK as p,LOGO_LOOK_OPTIONS as S}from"../../../../../../format/lib/sections/logo-look.js";import{HEAD_ROWS_SHOW_WHEN as y,OWN_BOX_ROWS_SHOW_WHEN as L}from"../../../../../../format/lib/sections/section-head-placement.js";import{withRowRules as h}from"../../../../../../render/lib/document/show-when.js";import{LogosSlots as W}from"../../../../../../format/lib/document/blocks/general/Logos/meta.js";const u=["items","heading","bandPadding"],H=["look"],E={fields:h({_gContent:l("Content"),heading:d("Heading","Trusted by *teams worldwide*"),items:{type:"array",label:"Logos",arrayFields:{src:_("Image","image/*"),alt:c(i("Name / alt"))},getItemSummary:t=>t.alt||t.src||"logo"},logos:W.logos,_gStyle:l("Style"),columns:e("Columns",o(s,{}),3,6,1,5),logoHeight:e("Logo height",o(n,{}),20,72,2,28,"px"),bandPadding:e("Space above and below",o(r,{}),16,120,4,40,"px"),grayscale:O("Black and white logos",!0,o(a,{})),look:m("Logo style",o(g,{}),S,p)},[[u,y],[H,L]])};export{E as LogosFields};
1
+ import{jsx as o}from"react/jsx-runtime";import{BlackAndWhiteIcon as a,ColumnsIcon as r,HeightIcon as s,PaddingYIcon as i,StylesIcon as m}from"efficient-easel/icons";import{plainText as n,textarea as g,toggle as d,upload as O,withPanelOnly as _}from"../../../controls.js";import{group as l}from"efficient-easel/screen/lib/document/box-fields";import{select as p,slider as t}from"../../../box-fields.js";import{DEFAULT_LOGO_LOOK as c,LOGO_LOOK_OPTIONS as S}from"../../../../../../format/lib/sections/logo-look.js";import{HEAD_ROWS_SHOW_WHEN as y,OWN_BOX_ROWS_SHOW_WHEN as L}from"../../../../../../format/lib/sections/section-head-placement.js";import{withRowRules as f}from"../../../../../../render/lib/document/show-when.js";import{LogosSlots as h}from"../../../../../../format/lib/document/blocks/general/Logos/meta.js";const W=["items","heading","bandPadding"],u=["look"],k={fields:f({_gContent:l("Content"),heading:g("Heading","Trusted by *teams worldwide*"),items:{type:"array",label:"Logos",arrayFields:{src:O("Image","image/*"),alt:_(n("Name / alt"))},getItemSummary:e=>e.alt||e.src||"logo"},logos:h.logos,_gStyle:l("Style"),columns:t("Columns",o(r,{}),3,6,1,5),logoHeight:t("Logo height",o(s,{}),20,72,2,28,"px"),bandPadding:t("Space above and below",o(i,{}),16,120,4,40,"px"),grayscale:d("Black and white logos",!0,o(a,{})),look:p("Logo style",o(m,{}),S,c)},[[W,y],[u,L]])};export{k as LogosFields};