@riverbankcms/sdk 0.78.2 → 0.80.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (230) hide show
  1. package/README.md +80 -0
  2. package/dist/PreviewEditorSidebar-QZG37QIF.mjs +2655 -0
  3. package/dist/{PreviewEditorUI-CS5P4N3P.mjs → PreviewEditorUI-AXIKSMZA.mjs} +27 -4
  4. package/dist/SdkPreviewModeRuntime-XE5M4UKM.mjs +8 -0
  5. package/dist/_dts/ai/src/contracts/proposals.d.ts +56 -0
  6. package/dist/_dts/api/src/endpoints.d.ts +79 -0
  7. package/dist/_dts/api/src/index.d.ts +6 -4
  8. package/dist/_dts/api/src/media.d.ts +8 -1
  9. package/dist/_dts/api/src/navigation/dashboardSettingsNav.d.ts +1 -1
  10. package/dist/_dts/api/src/navigation/dashboardSiteNav.d.ts +8 -8
  11. package/dist/_dts/api/src/navigation/identity.d.ts +59 -0
  12. package/dist/_dts/api/src/navigation.d.ts +2 -0
  13. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +4 -0
  14. package/dist/_dts/api/src/sdkContracts.d.ts +1 -0
  15. package/dist/_dts/api/src/siteIcons.d.ts +128 -0
  16. package/dist/_dts/api/src/siteInfrastructure.d.ts +124 -0
  17. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +16 -0
  18. package/dist/_dts/api/src/siteOnboarding.d.ts +13 -0
  19. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +17 -1
  20. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +6 -1
  21. package/dist/_dts/api/src/types.d.ts +1 -1
  22. package/dist/_dts/api/src/webhooks.d.ts +239 -0
  23. package/dist/_dts/block-form/src/client/index.d.ts +2 -0
  24. package/dist/_dts/block-form/src/index.d.ts +2 -0
  25. package/dist/_dts/block-form/src/utils/evaluateVisibility.d.ts +2 -1
  26. package/dist/_dts/blocks/src/client/header.d.ts +1 -1
  27. package/dist/_dts/blocks/src/client.d.ts +12 -12
  28. package/dist/_dts/blocks/src/index.d.ts +5 -1
  29. package/dist/_dts/blocks/src/system/blocks/appointment-booking.d.ts +288 -288
  30. package/dist/_dts/blocks/src/system/blocks/blog-listing.d.ts +288 -288
  31. package/dist/_dts/blocks/src/system/blocks/cart.d.ts +288 -288
  32. package/dist/_dts/blocks/src/system/blocks/checkout.d.ts +288 -288
  33. package/dist/_dts/blocks/src/system/blocks/collection.d.ts +288 -288
  34. package/dist/_dts/blocks/src/system/blocks/events/event-listing.d.ts +2 -2
  35. package/dist/_dts/blocks/src/system/blocks/events/event-spotlight.d.ts +2 -1
  36. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +4 -1
  37. package/dist/_dts/blocks/src/system/blocks/faq.d.ts +294 -289
  38. package/dist/_dts/blocks/src/system/blocks/feature-card-icons.d.ts +57 -0
  39. package/dist/_dts/blocks/src/system/blocks/feature-cards.d.ts +4 -0
  40. package/dist/_dts/blocks/src/system/blocks/gifting.d.ts +288 -288
  41. package/dist/_dts/blocks/src/system/blocks/index.d.ts +1 -0
  42. package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +1 -1
  43. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +22 -22
  44. package/dist/_dts/blocks/src/system/blocks/product-detail.d.ts +288 -288
  45. package/dist/_dts/blocks/src/system/blocks/product-list.d.ts +288 -288
  46. package/dist/_dts/blocks/src/system/blocks/shop.d.ts +288 -288
  47. package/dist/_dts/blocks/src/system/blocks/testimonials.d.ts +13 -1
  48. package/dist/_dts/blocks/src/system/customize/backgrounds.d.ts +179 -0
  49. package/dist/_dts/blocks/src/system/fields/boxStyles.d.ts +4 -2
  50. package/dist/_dts/blocks/src/system/fragments/library/faqHeading.d.ts +1 -0
  51. package/dist/_dts/blocks/src/system/fragments/library/testimonialsCarousel.d.ts +10 -0
  52. package/dist/_dts/blocks/src/system/helpers/resolveBackground.d.ts +3 -1
  53. package/dist/_dts/blocks/src/system/icons/ids.d.ts +13 -0
  54. package/dist/_dts/blocks/src/system/icons/index.d.ts +6 -0
  55. package/dist/_dts/blocks/src/system/icons/presets.d.ts +4 -0
  56. package/dist/_dts/blocks/src/system/icons/registry.d.ts +18 -0
  57. package/dist/_dts/blocks/src/system/icons/semantic.d.ts +239 -0
  58. package/dist/_dts/blocks/src/system/icons/value.d.ts +94 -0
  59. package/dist/_dts/blocks/src/system/index.d.ts +1 -0
  60. package/dist/_dts/blocks/src/system/manifest/fieldValidation/index.d.ts +4 -1
  61. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +23 -0
  62. package/dist/_dts/blocks/src/system/node/fragments/headingDecoration.d.ts +1 -4
  63. package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +1 -1
  64. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +7 -7
  65. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +3 -3
  66. package/dist/_dts/blocks/src/system/runtime/header/enhanceHeaderSection.d.ts +10 -2
  67. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventListing.interactive.d.ts +5 -5
  68. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventListing.server.d.ts +2 -2
  69. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventSpotlight.d.ts +2 -2
  70. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventCard.d.ts +2 -2
  71. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventDetailModal.d.ts +2 -2
  72. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventModals.d.ts +2 -2
  73. package/dist/_dts/blocks/src/system/runtime/nodes/feature-card-icon.d.ts +13 -0
  74. package/dist/_dts/blocks/src/system/runtime/nodes/header-section.client.d.ts +2 -2
  75. package/dist/_dts/blocks/src/system/transforms/registry/boxStyles.d.ts +3 -0
  76. package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +9 -0
  77. package/dist/_dts/blocks/src/system/transforms/typed.d.ts +14 -1
  78. package/dist/_dts/content-model/src/contentManifest.d.ts +3 -1
  79. package/dist/_dts/core/src/branded.d.ts +6 -0
  80. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +200 -3
  81. package/dist/_dts/editor-blocks/src/block-editor/BlockCard.d.ts +8 -1
  82. package/dist/_dts/editor-blocks/src/block-editor/BlockCardBody.d.ts +8 -1
  83. package/dist/_dts/editor-blocks/src/block-editor/BlockCardHeader.d.ts +8 -2
  84. package/dist/_dts/editor-blocks/src/block-editor/FeatureCardIconsPanel.d.ts +17 -0
  85. package/dist/_dts/editor-blocks/src/block-editor/GeneratedIconSetDialog.d.ts +42 -0
  86. package/dist/_dts/editor-blocks/src/block-editor/SortableBlockItem.d.ts +7 -1
  87. package/dist/_dts/editor-blocks/src/block-editor/featureCardIconActions.d.ts +82 -0
  88. package/dist/_dts/editor-blocks/src/index.d.ts +2 -0
  89. package/dist/_dts/editor-blocks/src/widgets/icon-picker/IconPickerField.d.ts +1 -1
  90. package/dist/_dts/media-core/src/fileDomain.d.ts +8 -1
  91. package/dist/_dts/media-editor/src/MediaEditor.d.ts +3 -2
  92. package/dist/_dts/media-react/src/components/MediaLibrary.d.ts +2 -1
  93. package/dist/_dts/media-react/src/components/MediaPickerMini.d.ts +2 -1
  94. package/dist/_dts/preview-next/src/client/blocks/BlockToolbar.d.ts +5 -1
  95. package/dist/_dts/preview-next/src/client/blocks/previewCustomizeActions.d.ts +17 -0
  96. package/dist/_dts/preview-next/src/client/blocks/previewCustomizeControlPlan.d.ts +24 -0
  97. package/dist/_dts/preview-next/src/client/blocks/useBlockCustomizeControls.d.ts +34 -0
  98. package/dist/_dts/preview-next/src/client/preview/PageBlockEditorPanel.d.ts +2 -5
  99. package/dist/_dts/preview-next/src/client/preview/PageDesignEditorStateContext.d.ts +8 -1
  100. package/dist/_dts/preview-next/src/client/preview/PreviewBlockCustomizeSelectionContext.d.ts +20 -0
  101. package/dist/_dts/preview-next/src/client/preview/PreviewOpenEditorButton.d.ts +2 -0
  102. package/dist/_dts/preview-next/src/client/preview/SelectedBlockCustomizePanel.d.ts +13 -0
  103. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +3 -2
  104. package/dist/_dts/preview-next/src/client/preview/previewCustomizeEditorDraftPatch.d.ts +13 -0
  105. package/dist/_dts/preview-next/src/client/preview/previewCustomizeHistory.d.ts +6 -0
  106. package/dist/_dts/preview-next/src/client/preview/previewCustomizeRuntimePatch.d.ts +2 -0
  107. package/dist/_dts/preview-next/src/client/preview/storeTypes.d.ts +4 -0
  108. package/dist/_dts/preview-next/src/client/widgets/widgetOverrides.d.ts +3 -1
  109. package/dist/_dts/sdk/src/cli/commands/webhooks.d.ts +44 -0
  110. package/dist/_dts/sdk/src/cli/navigationIdentity.d.ts +11 -0
  111. package/dist/_dts/sdk/src/cli/site-commands/navigationCommands.d.ts +4 -0
  112. package/dist/_dts/sdk/src/cli/site-commands/oneOffCommands.d.ts +1 -0
  113. package/dist/_dts/sdk/src/cli/sync/diff.d.ts +9 -0
  114. package/dist/_dts/sdk/src/client/management/index.d.ts +1 -1
  115. package/dist/_dts/sdk/src/client/management/types.d.ts +58 -0
  116. package/dist/_dts/sdk/src/client/management/webhooks.d.ts +3 -0
  117. package/dist/_dts/sdk/src/config/field-definitions.d.ts +3 -1
  118. package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
  119. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +24 -4
  120. package/dist/_dts/sdk/src/next/index.d.ts +1 -1
  121. package/dist/_dts/sdk/src/next/revalidate.d.ts +26 -5
  122. package/dist/_dts/sdk/src/next/static-params.d.ts +28 -3
  123. package/dist/_dts/sdk/src/public-api/contracts.d.ts +5 -1
  124. package/dist/_dts/sdk/src/public-api/runtime.d.ts +1 -1
  125. package/dist/_dts/sdk/src/version.d.ts +1 -1
  126. package/dist/_dts/sdk/src/webhooks/index.d.ts +1 -1
  127. package/dist/_dts/sdk/src/webhooks/verify.d.ts +6 -102
  128. package/dist/_dts/site-commands/src/commands.d.ts +3 -0
  129. package/dist/_dts/theme-core/src/accordions/siteStyleDefaults.d.ts +220 -0
  130. package/dist/_dts/theme-core/src/accordions/types.d.ts +45 -2
  131. package/dist/_dts/theme-core/src/blockOverrides.d.ts +8 -0
  132. package/dist/_dts/theme-core/src/blocks/types.d.ts +1 -1
  133. package/dist/_dts/theme-core/src/blocks/vars/testimonials.d.ts +4 -1
  134. package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +1 -1
  135. package/dist/_dts/theme-core/src/cards/core.d.ts +20 -0
  136. package/dist/_dts/theme-core/src/cards/generateDefaultCardSystem.d.ts +6 -3
  137. package/dist/_dts/theme-core/src/cards/siteStyleDefaults.d.ts +105 -0
  138. package/dist/_dts/theme-core/src/cards/types.d.ts +177 -0
  139. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  140. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +159 -21
  141. package/dist/_dts/theme-core/src/palette/variants/index.d.ts +15 -0
  142. package/dist/_dts/theme-core/src/palette/variants/soft-natural.d.ts +16 -0
  143. package/dist/_dts/theme-core/src/palette/variants/types.d.ts +1 -1
  144. package/dist/_dts/theme-core/src/schema.d.ts +451 -57
  145. package/dist/_dts/theme-core/src/site-styles/appearancePresetCatalog.d.ts +86 -17
  146. package/dist/_dts/theme-core/src/site-styles/appearancePresetTypes.d.ts +2 -3
  147. package/dist/_dts/theme-core/src/site-styles/blockAppearancePresets.d.ts +86 -17
  148. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +135 -3
  149. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +5 -5
  150. package/dist/_dts/theme-core/src/site-styles/footerLooks.d.ts +20 -1
  151. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +8 -2
  152. package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +286 -6
  153. package/dist/_dts/theme-core/src/site-styles/index.d.ts +2 -0
  154. package/dist/_dts/theme-core/src/site-styles/logoBranding.d.ts +193 -0
  155. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +6 -12
  156. package/dist/_dts/theme-core/src/site-styles/rawStyleFields.d.ts +2 -0
  157. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +10 -7
  158. package/dist/_dts/theme-core/src/site-styles/siteStyleThemeCompiler.d.ts +11 -0
  159. package/dist/_dts/theme-core/src/site-styles/sourceCatalogs.d.ts +2 -2
  160. package/dist/_dts/theme-core/src/site-styles/styleTags.d.ts +1 -1
  161. package/dist/_dts/theme-core/src/site-styles/testimonialQuotePresets.d.ts +15 -0
  162. package/dist/_dts/theme-core/src/site-styles/tokenRecipes.d.ts +1 -1
  163. package/dist/_dts/theme-core/src/site-styles/types.d.ts +7 -29
  164. package/dist/_dts/theme-core/src/tokens/themeColorTokens.d.ts +2 -0
  165. package/dist/_dts/ui/src/combobox.d.ts +1 -0
  166. package/dist/{PreviewEditorSidebar-4DXLYX2V.mjs → chunk-5NZGBSJF.mjs} +2215 -2566
  167. package/dist/{chunk-RGTOD4AJ.mjs → chunk-7PCYG6YV.mjs} +621 -108
  168. package/dist/{chunk-CR5HKAGU.mjs → chunk-BBLZSQEY.mjs} +79 -0
  169. package/dist/{chunk-MCRQMPET.mjs → chunk-GYXKAUFV.mjs} +4500 -912
  170. package/dist/{chunk-6HYXHRAI.mjs → chunk-HTB4BMKD.mjs} +267 -49
  171. package/dist/{chunk-OKMBEAXY.mjs → chunk-MPBNEVPB.mjs} +1 -1
  172. package/dist/cli/index.mjs +3255 -702
  173. package/dist/cli/init-docs/content/workflow-editor-workflows.md +2 -0
  174. package/dist/cli/init-docs/content/workflow-isr-revalidation.md +150 -0
  175. package/dist/client/{accordion-PLYNJIIM.mjs → accordion-QFZMNB7O.mjs} +1 -1
  176. package/dist/client/{bookingForm-BXAP6AO7.mjs → bookingForm-NCIXFWIG.mjs} +3 -3
  177. package/dist/client/bookings.mjs +1246 -323
  178. package/dist/client/{carousel-TRBXDHGF.mjs → carousel-EO4BJMWD.mjs} +2 -2
  179. package/dist/client/{cart-Z7H3HJRS.mjs → cart-FTYCLYUW.mjs} +5 -5
  180. package/dist/client/{checkout-WAFCUBIX.mjs → checkout-NFGLVCOX.mjs} +5 -5
  181. package/dist/client/{chunk-CWGTG37I.mjs → chunk-4W66ALYT.mjs} +1 -1
  182. package/dist/client/{chunk-JRDUHZCT.mjs → chunk-6GVVWSPU.mjs} +4 -4
  183. package/dist/client/{chunk-75OUS5MT.mjs → chunk-IWFZSQNZ.mjs} +1 -1
  184. package/dist/client/{chunk-JGXPTEI2.mjs → chunk-PUOELU4O.mjs} +95 -8
  185. package/dist/client/{chunk-FUXW6VW2.mjs → chunk-PYRBIURC.mjs} +4 -4
  186. package/dist/client/{chunk-ZI3LLBPZ.mjs → chunk-T6UIP6UZ.mjs} +1 -1
  187. package/dist/client/{chunk-DNRGY432.mjs → chunk-VDS5YFLX.mjs} +1 -1
  188. package/dist/client/{chunk-UVQEJJTN.mjs → chunk-Y37KDO7P.mjs} +1 -1
  189. package/dist/client/client.mjs +24277 -20796
  190. package/dist/client/{courseRegistration-AHFQHWIJ.mjs → courseRegistration-2EORROPS.mjs} +3 -3
  191. package/dist/client/{eventCalendar-LDXTV5R7.mjs → eventCalendar-WZI4VL6N.mjs} +5 -5
  192. package/dist/client/{eventCombined-A4JGTNJO.mjs → eventCombined-QCB2TCNL.mjs} +5 -5
  193. package/dist/client/{eventDetails-4YXTZ7EG.mjs → eventDetails-TFTATAPH.mjs} +5 -5
  194. package/dist/client/{eventListing-P72TPFFM.mjs → eventListing-A2CQEHEQ.mjs} +5 -5
  195. package/dist/client/{eventRegistration-LSYJHGMT.mjs → eventRegistration-OELPVLUY.mjs} +5 -5
  196. package/dist/client/{form-AOPYOKOW.mjs → form-NTIFD6WQ.mjs} +1 -1
  197. package/dist/client/{headerSection-5TFYDFVQ.mjs → headerSection-7TBNKCLA.mjs} +65 -24
  198. package/dist/client/hooks.mjs +3687 -2024
  199. package/dist/client/{locationMap-QSZ3ZVAZ.mjs → locationMap-LRLB5A3H.mjs} +1 -1
  200. package/dist/client/{newsletterForm-KTRHZY52.mjs → newsletterForm-XI52RZSN.mjs} +1 -1
  201. package/dist/client/{productDetail-N4E775RG.mjs → productDetail-GSNKBFLY.mjs} +5 -5
  202. package/dist/client/{productList-UGUQ2S45.mjs → productList-BGCGT4KZ.mjs} +5 -5
  203. package/dist/client/rendering/client.mjs +5274 -3030
  204. package/dist/client/rendering/islands.mjs +18 -18
  205. package/dist/client/rendering.mjs +6271 -2790
  206. package/dist/client/{shop-VHSZEEQ2.mjs → shop-RQHUCLNY.mjs} +5 -5
  207. package/dist/preview-next/before-render.mjs +79 -0
  208. package/dist/preview-next/client/runtime.mjs +5 -5
  209. package/dist/preview-next/middleware.mjs +79 -0
  210. package/dist/{sdk-runtime-WHPJEF5G.mjs → sdk-runtime-A4LHT2RS.mjs} +6 -6
  211. package/dist/server/components.mjs +6215 -3057
  212. package/dist/server/config-validation.mjs +3858 -2194
  213. package/dist/server/config.mjs +3858 -2194
  214. package/dist/server/data.mjs +3687 -2024
  215. package/dist/server/index.mjs +88 -1
  216. package/dist/server/next/revalidate.mjs +229 -34
  217. package/dist/server/next.mjs +6295 -3036
  218. package/dist/server/page-converter.mjs +3055 -1883
  219. package/dist/server/prebuild.mjs +1 -1
  220. package/dist/server/rendering/server.mjs +6220 -3062
  221. package/dist/server/rendering.mjs +6233 -3075
  222. package/dist/server/routing.mjs +4251 -2137
  223. package/dist/server/server.mjs +3705 -2042
  224. package/dist/server/theme-bridge.mjs +1617 -329
  225. package/dist/server/theme.mjs +411 -221
  226. package/dist/server/webhooks.mjs +129 -25
  227. package/dist/styles/index.css +355 -33
  228. package/package.json +2 -1
  229. package/dist/SdkPreviewModeRuntime-IJDHTW4W.mjs +0 -8
  230. package/dist/chunk-4QEGTLK6.mjs +0 -1175
@@ -10,6 +10,8 @@ export declare const testimonialsManifest: import("..").DefinedBlockManifest<imp
10
10
  readonly variants: {
11
11
  readonly carousel: NodeDefinition;
12
12
  readonly grid: NodeDefinition;
13
+ readonly 'split-grid': NodeDefinition;
14
+ readonly highlight: NodeDefinition;
13
15
  };
14
16
  readonly defaultVariant: "carousel";
15
17
  readonly variantOptions: {
@@ -23,6 +25,16 @@ export declare const testimonialsManifest: import("..").DefinedBlockManifest<imp
23
25
  readonly description: "Responsive grid layout";
24
26
  readonly icon: "Grid";
25
27
  };
28
+ readonly 'split-grid': {
29
+ readonly label: "Split grid";
30
+ readonly description: "Heading on the left with testimonial cards on the right";
31
+ readonly icon: "PanelLeft";
32
+ };
33
+ readonly highlight: {
34
+ readonly label: "Highlight";
35
+ readonly description: "A single, centered testimonial with no carousel";
36
+ readonly icon: "Quote";
37
+ };
26
38
  };
27
39
  readonly additionalFields: import("../../../../block-form/src/backend/index").FieldDefinition[];
28
40
  readonly description: "Display customer testimonials in carousel or grid layouts.";
@@ -41,7 +53,7 @@ export declare const testimonialsManifest: import("..").DefinedBlockManifest<imp
41
53
  };
42
54
  }>>;
43
55
  export type TestimonialsBlockContent = {
44
- variant?: 'carousel' | 'grid' | null;
56
+ variant?: 'carousel' | 'grid' | 'split-grid' | 'highlight' | null;
45
57
  heading?: string | null;
46
58
  subheading?: string | null;
47
59
  avatarLayout?: 'above-centered' | 'inline-left' | 'hidden' | null;
@@ -0,0 +1,179 @@
1
+ import { type MediaAssetId } from '../../../../core/src/index';
2
+ import { type AppearancePresetId, type LayoutVariantKey } from '../../../../theme-core/src/site-styles/index';
3
+ import { type ThemeColorToken } from '../../../../theme-core/src/tokens/index';
4
+ export type BackgroundMode = 'default' | 'color' | 'gradient' | 'image';
5
+ export type BackgroundModeCycleDirection = 'prev' | 'next';
6
+ export type BackgroundColorToken = ThemeColorToken & {
7
+ readonly __backgroundColorTokenBrand: 'BackgroundColorToken';
8
+ };
9
+ export type GradientPresetId = string & {
10
+ readonly __brand: 'GradientPresetId';
11
+ };
12
+ export type BackgroundOverride = Readonly<{
13
+ kind: 'default';
14
+ }> | Readonly<{
15
+ kind: 'color';
16
+ token: BackgroundColorToken;
17
+ }> | Readonly<{
18
+ kind: 'gradient';
19
+ gradientId: GradientPresetId;
20
+ }> | Readonly<{
21
+ kind: 'image';
22
+ mediaId: MediaAssetId;
23
+ }>;
24
+ export type LegacyBackgroundReason = 'unsupported-shape' | 'unsupported-mode' | 'invalid-color-token' | 'arbitrary-gradient-css' | 'missing-gradient-preset-id' | 'invalid-gradient-preset-id' | 'missing-image-media-id' | 'invalid-image-media-id' | 'video-background';
25
+ export type ParsedBackgroundOverride = Readonly<{
26
+ kind: 'supported';
27
+ override: BackgroundOverride;
28
+ }> | Readonly<{
29
+ kind: 'legacy';
30
+ reason: LegacyBackgroundReason;
31
+ background: Readonly<Record<string, unknown>>;
32
+ }>;
33
+ export type BackgroundImagePoolSource = 'current' | 'generated-ambient' | 'previous-background' | 'general-media';
34
+ export type BackgroundImagePoolItem = Readonly<{
35
+ mediaId: MediaAssetId;
36
+ source: BackgroundImagePoolSource;
37
+ label?: string;
38
+ rank?: number;
39
+ }>;
40
+ export type BackgroundContrastTreatment = Readonly<{
41
+ kind: 'theme-foreground';
42
+ minContrastRatio: 4.5;
43
+ }> | Readonly<{
44
+ kind: 'look-owned-image-overlay';
45
+ minContrastRatio: 4.5;
46
+ minOverlayOpacity: 0.64;
47
+ }>;
48
+ export type BackgroundModeCapability = Readonly<{
49
+ kind: 'default';
50
+ }> | Readonly<{
51
+ kind: 'color';
52
+ recommendedTokens: readonly BackgroundColorToken[];
53
+ advancedTokens: readonly BackgroundColorToken[];
54
+ selectableTokens: readonly BackgroundColorToken[];
55
+ treatment: BackgroundContrastTreatment;
56
+ }> | Readonly<{
57
+ kind: 'gradient';
58
+ gradientIds: readonly GradientPresetId[];
59
+ treatment: BackgroundContrastTreatment;
60
+ }> | Readonly<{
61
+ kind: 'image';
62
+ imagePool: readonly BackgroundImagePoolItem[];
63
+ treatment: BackgroundContrastTreatment;
64
+ }>;
65
+ export type BackgroundCapability = Readonly<{
66
+ modeCapabilities: readonly BackgroundModeCapability[];
67
+ modes: readonly BackgroundMode[];
68
+ recommendedColorTokens?: readonly BackgroundColorToken[];
69
+ advancedColorTokens?: readonly BackgroundColorToken[];
70
+ colorTokens?: readonly BackgroundColorToken[];
71
+ gradientIds?: readonly GradientPresetId[];
72
+ imagePool?: readonly BackgroundImagePoolItem[];
73
+ colorTreatment?: BackgroundContrastTreatment;
74
+ gradientTreatment?: BackgroundContrastTreatment;
75
+ imageTreatment?: BackgroundContrastTreatment;
76
+ }>;
77
+ export type BackgroundTransitionAction = Readonly<{
78
+ kind: 'cycle-mode';
79
+ direction: BackgroundModeCycleDirection;
80
+ }> | Readonly<{
81
+ kind: 'cycle-value';
82
+ direction: BackgroundModeCycleDirection;
83
+ }> | Readonly<{
84
+ kind: 'choose-color';
85
+ token: BackgroundColorToken;
86
+ }> | Readonly<{
87
+ kind: 'choose-gradient';
88
+ gradientId: GradientPresetId;
89
+ }> | Readonly<{
90
+ kind: 'choose-image';
91
+ mediaId: MediaAssetId;
92
+ }> | Readonly<{
93
+ kind: 'clear-default';
94
+ }>;
95
+ export type BackgroundPersistenceSideEffect = Readonly<{
96
+ kind: 'mark-background-used';
97
+ mediaId: MediaAssetId;
98
+ }>;
99
+ export type BackgroundTransitionPlan = Readonly<{
100
+ kind: 'apply';
101
+ override: BackgroundOverride;
102
+ sideEffects: readonly BackgroundPersistenceSideEffect[];
103
+ }> | Readonly<{
104
+ kind: 'blocked';
105
+ reason: BackgroundTransitionBlockedReason;
106
+ }>;
107
+ export type BackgroundTransitionBlockedReason = 'mode-unavailable' | 'value-unavailable' | 'empty-image-pool' | 'current-value-not-cycleable';
108
+ export type BackgroundOverridePlan = Readonly<{
109
+ kind: 'apply';
110
+ override: BackgroundOverride;
111
+ fromOverride: BackgroundOverride;
112
+ sideEffects: readonly BackgroundPersistenceSideEffect[];
113
+ }> | Readonly<{
114
+ kind: 'unchanged';
115
+ override: BackgroundOverride;
116
+ }> | Readonly<{
117
+ kind: 'blocked';
118
+ reason: BackgroundOverrideBlockedReason;
119
+ }>;
120
+ export type BackgroundOverrideBlockedReason = 'mode-unavailable' | 'value-unavailable' | 'legacy-current-background';
121
+ export type BackgroundCustomizeContent = Record<string, unknown>;
122
+ export type BackgroundCapabilityBlock = Readonly<{
123
+ blockKind: string;
124
+ layout: Readonly<{
125
+ effectiveValue: LayoutVariantKey;
126
+ }> | null;
127
+ availableLayouts: readonly BackgroundCapabilityLayoutOption[];
128
+ look: Readonly<{
129
+ effectiveValue: AppearancePresetId | null;
130
+ }>;
131
+ availableLooks: readonly BackgroundCapabilityLookOption[];
132
+ }>;
133
+ export type BackgroundCapabilityLayoutOption = Readonly<{
134
+ id: LayoutVariantKey;
135
+ profile: Readonly<{
136
+ layoutFamily: string;
137
+ }>;
138
+ }>;
139
+ export type BackgroundCapabilityLookOption = Readonly<{
140
+ id: AppearancePresetId;
141
+ design: Readonly<{
142
+ sectionSurface: string;
143
+ }>;
144
+ }>;
145
+ export type ResolveBackgroundCapabilityInput = Readonly<{
146
+ block: BackgroundCapabilityBlock;
147
+ imagePool?: readonly BackgroundImagePoolItem[];
148
+ palette?: BackgroundColorPalette | null;
149
+ }>;
150
+ export declare const BACKGROUND_MODES: readonly ["default", "color", "gradient", "image"];
151
+ export declare const DEFAULT_BACKGROUND_OVERRIDE: BackgroundOverride;
152
+ export declare const BACKGROUND_CUSTOMIZABLE_BLOCK_KINDS: readonly ["block.hero", "block.testimonials", "block.cta-full", "block.form"];
153
+ export declare const BACKGROUND_RICH_LAYOUT_FAMILIES: readonly ["split"];
154
+ export declare const BACKGROUND_RICH_SECTION_SURFACES: readonly ["hero-image"];
155
+ export declare function isBackgroundCustomizableBlockKind(blockKind: string): boolean;
156
+ export type BackgroundColorPalette = Readonly<Record<string, string | null | undefined>>;
157
+ export declare const backgroundColorTokens: readonly BackgroundColorToken[];
158
+ export declare const recommendedBackgroundColorTokens: readonly BackgroundColorToken[];
159
+ export declare const advancedBackgroundColorTokens: BackgroundColorToken[];
160
+ export declare function parseBackgroundColorToken(value: unknown): BackgroundColorToken | null;
161
+ export declare function isBackgroundColorToken(value: unknown): value is BackgroundColorToken;
162
+ export declare function foregroundTokenForBackgroundColorToken(token: BackgroundColorToken): string;
163
+ export declare function dedupeBackgroundColorTokensByPalette(tokens: readonly BackgroundColorToken[], palette: BackgroundColorPalette): readonly BackgroundColorToken[];
164
+ export declare function parseGradientPresetId(value: unknown): GradientPresetId | null;
165
+ export declare function isGradientPresetId(value: unknown): value is GradientPresetId;
166
+ export declare function backgroundModeForOverride(override: BackgroundOverride): BackgroundMode;
167
+ export declare function backgroundOverrideEquals(left: BackgroundOverride, right: BackgroundOverride): boolean;
168
+ export declare function imagePoolForOverride(override: BackgroundOverride): readonly BackgroundImagePoolItem[];
169
+ export declare function defaultBackgroundOverrideForMode(mode: BackgroundMode, capability: BackgroundCapability): BackgroundOverride;
170
+ export declare function resolveBackgroundCapability(input: ResolveBackgroundCapabilityInput): BackgroundCapability;
171
+ export declare function backgroundCapabilityFromModes(modeCapabilities: readonly BackgroundModeCapability[]): BackgroundCapability;
172
+ export declare function parseBackgroundOverrideFromContent(content: BackgroundCustomizeContent): ParsedBackgroundOverride;
173
+ export declare function parseBackgroundOverride(value: unknown): ParsedBackgroundOverride;
174
+ export declare function serializeBackgroundOverride(override: BackgroundOverride): Record<string, unknown> | null;
175
+ export declare function applyBackgroundOverrideContentPatch(content: BackgroundCustomizeContent, override: BackgroundOverride): BackgroundCustomizeContent;
176
+ export declare function planBackgroundTransition(current: BackgroundOverride, capability: BackgroundCapability, action: BackgroundTransitionAction): BackgroundTransitionPlan;
177
+ export declare function planBackgroundOverride(current: ParsedBackgroundOverride, capability: BackgroundCapability, override: BackgroundOverride): BackgroundOverridePlan;
178
+ export declare function rankBackgroundImagePoolItems(items: readonly BackgroundImagePoolItem[]): readonly BackgroundImagePoolItem[];
179
+ export declare function enabledBackgroundModes(capability: BackgroundCapability): readonly BackgroundMode[];
@@ -1,5 +1,5 @@
1
1
  import type { ModalFieldDefinition } from '../manifest/schema';
2
- import type { AccordionIconTreatment, EyebrowTreatment, EventListTreatment, HeadingDecoration, HeadingDecorationOverride, TileTreatment } from '../../../../theme-core/src/site-styles/index';
2
+ import type { AccordionIconTreatment, EyebrowTreatment, EventListTreatment, HeadingDecorationOverride, PageDesignEditorBackgroundOverrideOwner, TileTreatment } from '../../../../theme-core/src/site-styles/index';
3
3
  import type { Media } from '../../lib/media';
4
4
  /**
5
5
  * Options for customizing a section styles field.
@@ -59,9 +59,12 @@ type CardStylesOptions = {
59
59
  export type SectionStylesContent = {
60
60
  background?: {
61
61
  type?: 'color' | 'gradient' | 'image';
62
+ contentOwner?: PageDesignEditorBackgroundOverrideOwner | null;
62
63
  color?: string | null;
63
64
  /** CSS gradient string (e.g., "linear-gradient(...)") */
64
65
  gradient?: string | null;
66
+ /** Curated gradient preset identifier. */
67
+ gradientPresetId?: string | null;
65
68
  image?: Media | null;
66
69
  objectFit?: 'fill' | 'fit' | 'original' | 'custom' | null;
67
70
  scale?: string | null;
@@ -84,7 +87,6 @@ export type SectionStylesContent = {
84
87
  tileTreatment?: TileTreatment | null;
85
88
  eventListTreatment?: EventListTreatment | null;
86
89
  eyebrowTreatment?: EyebrowTreatment | null;
87
- headingDecoration?: HeadingDecoration | null;
88
90
  headingDecorationOverride?: HeadingDecorationOverride | null;
89
91
  accordionIconTreatment?: AccordionIconTreatment | null;
90
92
  } | null;
@@ -22,3 +22,4 @@ export declare const faqHeadingFragment: import("..").DefinedFragment<{
22
22
  };
23
23
  }];
24
24
  }>;
25
+ export declare const decoratedFaqHeadingLayout: import("../..").NodeDefinition;
@@ -20,6 +20,16 @@ export declare function buildCarouselLayout(): NodeDefinition;
20
20
  * Renders testimonials in a responsive grid with configurable columns.
21
21
  */
22
22
  export declare function buildGridLayout(): NodeDefinition;
23
+ /**
24
+ * Build the highlight layout: a single, centered testimonial with no carousel.
25
+ * Renders only the first entry regardless of how many are configured.
26
+ */
27
+ export declare function buildHighlightLayout(): NodeDefinition;
28
+ /**
29
+ * Build just the responsive testimonial card grid, for variants that place
30
+ * heading copy in a sibling column instead of above the cards.
31
+ */
32
+ export declare function buildGridCardsLayout(className: string): NodeDefinition;
23
33
  /**
24
34
  * Fragment definition for testimonials carousel.
25
35
  * Provides field definitions and data loader configuration.
@@ -6,7 +6,7 @@
6
6
  * behavior of the default declarative block system.
7
7
  */
8
8
  import * as React from "react";
9
- import type { ThemeTokens } from "../theme";
9
+ import { type ThemeTokens } from "../theme";
10
10
  import type { Media } from "../../lib/media";
11
11
  import { type BackgroundMedia } from "./backgroundMedia";
12
12
  import { type ResolveImageUrlContext } from "../runtime/nodes/media";
@@ -19,6 +19,8 @@ export type BackgroundInput = {
19
19
  color?: string | null;
20
20
  /** CSS gradient string */
21
21
  gradient?: string | null;
22
+ /** Curated gradient preset identifier. Used for Customize-mode backgrounds. */
23
+ gradientPresetId?: string | null;
22
24
  /** Background image or decorative video media object */
23
25
  image?: Media | null;
24
26
  /** Whether decorative background video should play on mobile. Defaults to false. */
@@ -0,0 +1,13 @@
1
+ import type { Brand } from '../../../../core/src/index';
2
+ export type GeneratedIconSetId = Brand<string, 'GeneratedIconSetId'>;
3
+ export type GeneratedIconAssetId = Brand<string, 'GeneratedIconAssetId'>;
4
+ export type SiteIconStyleGuideVersionId = Brand<string, 'SiteIconStyleGuideVersionId'>;
5
+ export type ApprovedIconExampleSetId = Brand<string, 'ApprovedIconExampleSetId'>;
6
+ export declare function unsafeAsGeneratedIconSetId(value: string): GeneratedIconSetId;
7
+ export declare function unsafeAsGeneratedIconAssetId(value: string): GeneratedIconAssetId;
8
+ export declare function unsafeAsSiteIconStyleGuideVersionId(value: string): SiteIconStyleGuideVersionId;
9
+ export declare function unsafeAsApprovedIconExampleSetId(value: string): ApprovedIconExampleSetId;
10
+ export declare function parseGeneratedIconSetId(value: unknown): GeneratedIconSetId | null;
11
+ export declare function parseGeneratedIconAssetId(value: unknown): GeneratedIconAssetId | null;
12
+ export declare function parseSiteIconStyleGuideVersionId(value: unknown): SiteIconStyleGuideVersionId | null;
13
+ export declare function parseApprovedIconExampleSetId(value: unknown): ApprovedIconExampleSetId | null;
@@ -0,0 +1,6 @@
1
+ export * from './cta';
2
+ export * from './ids';
3
+ export * from './presets';
4
+ export * from './semantic';
5
+ export * from './registry';
6
+ export * from './value';
@@ -0,0 +1,4 @@
1
+ export declare const ICON_PICKER_PRESETS: readonly ["cta", "feature"];
2
+ export type IconPickerPreset = (typeof ICON_PICKER_PRESETS)[number];
3
+ export declare function isIconPickerPreset(value: unknown): value is IconPickerPreset;
4
+ export declare function resolveIconPickerPreset(value: unknown): IconPickerPreset;
@@ -0,0 +1,18 @@
1
+ import type { LucideIcon } from 'lucide-react';
2
+ import { type CtaIconName } from './cta';
3
+ import { type SemanticIconId } from './semantic';
4
+ import { type IconPickerPreset } from './presets';
5
+ export type IconName = CtaIconName | SemanticIconId;
6
+ export type IconIdForPreset<Preset extends IconPickerPreset> = Preset extends 'cta' ? CtaIconName : Preset extends 'feature' ? SemanticIconId : never;
7
+ export type IconPickerOption<Preset extends IconPickerPreset = IconPickerPreset> = {
8
+ id: IconIdForPreset<Preset>;
9
+ label: string;
10
+ searchText: string;
11
+ preset: Preset;
12
+ };
13
+ export declare function getIconPickerOptionsForPreset(preset: 'cta'): readonly IconPickerOption<'cta'>[];
14
+ export declare function getIconPickerOptionsForPreset(preset: 'feature'): readonly IconPickerOption<'feature'>[];
15
+ export declare function getIconPickerOptionsForPreset(preset: IconPickerPreset): readonly IconPickerOption[];
16
+ export declare function getIconPickerOptionsForUnknownPreset(value: unknown): readonly IconPickerOption[];
17
+ export declare function isKnownIconName(value: unknown): value is IconName;
18
+ export declare function getIconComponent(name: unknown): LucideIcon | null;
@@ -0,0 +1,239 @@
1
+ import type { LucideIcon } from 'lucide-react';
2
+ import type { IconPickerPreset } from './presets';
3
+ export declare const ICON_DOMAINS: readonly ["wellbeing", "coaching", "community", "education", "commerce", "events", "services", "hospitality", "creative", "technology"];
4
+ export type IconDomain = (typeof ICON_DOMAINS)[number];
5
+ export declare const ICON_TONES: readonly ["warm", "human", "calm", "trustworthy", "practical", "playful", "premium"];
6
+ export type IconTone = (typeof ICON_TONES)[number];
7
+ export declare const SEMANTIC_ICON_IDS: readonly ["protection-trust", "confidentiality", "care-support", "partnership", "warmth", "community", "personal-guidance", "conversation", "friendly-welcome", "insight-learning", "natural-wellbeing", "growth", "gentle-care", "special-touch", "ideas", "direction", "focus", "quality", "highlight", "verified-quality", "learning", "training", "programmes-dates", "place", "products", "packages", "time", "practical-service", "at-home", "worldwide", "professional-service"];
8
+ export type SemanticIconId = (typeof SEMANTIC_ICON_IDS)[number];
9
+ export type SemanticIconDefinition = {
10
+ id: SemanticIconId;
11
+ label: string;
12
+ tags: readonly string[];
13
+ domains: readonly IconDomain[];
14
+ tone: readonly IconTone[];
15
+ presets: readonly IconPickerPreset[];
16
+ };
17
+ export declare const SEMANTIC_ICON_COMPONENTS: Record<SemanticIconId, LucideIcon>;
18
+ export declare const SEMANTIC_ICON_DEFINITIONS: readonly [{
19
+ readonly id: "protection-trust";
20
+ readonly label: "Protection and trust";
21
+ readonly tags: readonly ["safe", "safety", "security", "trust", "privacy", "confidence"];
22
+ readonly domains: readonly ["wellbeing", "services", "technology"];
23
+ readonly tone: readonly ["trustworthy", "practical"];
24
+ readonly presets: readonly ["feature"];
25
+ }, {
26
+ readonly id: "confidentiality";
27
+ readonly label: "Confidentiality";
28
+ readonly tags: readonly ["confidential", "privacy", "secure", "protected", "private"];
29
+ readonly domains: readonly ["wellbeing", "coaching", "services", "technology"];
30
+ readonly tone: readonly ["trustworthy", "calm"];
31
+ readonly presets: readonly ["feature"];
32
+ }, {
33
+ readonly id: "care-support";
34
+ readonly label: "Care and support";
35
+ readonly tags: readonly ["care", "support", "therapy", "kindness", "help", "compassion"];
36
+ readonly domains: readonly ["wellbeing", "coaching", "community"];
37
+ readonly tone: readonly ["warm", "human"];
38
+ readonly presets: readonly ["feature"];
39
+ }, {
40
+ readonly id: "partnership";
41
+ readonly label: "Partnership";
42
+ readonly tags: readonly ["partnership", "together", "support", "relationship", "collaboration"];
43
+ readonly domains: readonly ["coaching", "community", "services"];
44
+ readonly tone: readonly ["warm", "human", "trustworthy"];
45
+ readonly presets: readonly ["feature"];
46
+ }, {
47
+ readonly id: "warmth";
48
+ readonly label: "Warmth";
49
+ readonly tags: readonly ["heart", "warmth", "care", "love", "wellbeing", "personal"];
50
+ readonly domains: readonly ["wellbeing", "community", "hospitality"];
51
+ readonly tone: readonly ["warm", "human"];
52
+ readonly presets: readonly ["feature"];
53
+ }, {
54
+ readonly id: "community";
55
+ readonly label: "Community";
56
+ readonly tags: readonly ["community", "group", "people", "team", "members", "belonging"];
57
+ readonly domains: readonly ["community", "education", "events"];
58
+ readonly tone: readonly ["human", "warm"];
59
+ readonly presets: readonly ["feature"];
60
+ }, {
61
+ readonly id: "personal-guidance";
62
+ readonly label: "Personal guidance";
63
+ readonly tags: readonly ["guidance", "personal", "coach", "expert", "one to one", "trusted"];
64
+ readonly domains: readonly ["coaching", "services", "education"];
65
+ readonly tone: readonly ["trustworthy", "human"];
66
+ readonly presets: readonly ["feature"];
67
+ }, {
68
+ readonly id: "conversation";
69
+ readonly label: "Conversation";
70
+ readonly tags: readonly ["conversation", "talk", "chat", "communication", "support"];
71
+ readonly domains: readonly ["coaching", "community", "services"];
72
+ readonly tone: readonly ["human", "warm"];
73
+ readonly presets: readonly ["feature"];
74
+ }, {
75
+ readonly id: "friendly-welcome";
76
+ readonly label: "Friendly welcome";
77
+ readonly tags: readonly ["friendly", "welcome", "positive", "happy", "approachable"];
78
+ readonly domains: readonly ["hospitality", "community", "services"];
79
+ readonly tone: readonly ["warm", "playful", "human"];
80
+ readonly presets: readonly ["feature"];
81
+ }, {
82
+ readonly id: "insight-learning";
83
+ readonly label: "Insight and learning";
84
+ readonly tags: readonly ["mind", "insight", "learning", "clarity", "thinking", "therapy"];
85
+ readonly domains: readonly ["wellbeing", "coaching", "education"];
86
+ readonly tone: readonly ["calm", "practical"];
87
+ readonly presets: readonly ["feature"];
88
+ }, {
89
+ readonly id: "natural-wellbeing";
90
+ readonly label: "Natural wellbeing";
91
+ readonly tags: readonly ["natural", "wellbeing", "growth", "eco", "calm", "organic"];
92
+ readonly domains: readonly ["wellbeing", "hospitality", "creative"];
93
+ readonly tone: readonly ["calm", "warm"];
94
+ readonly presets: readonly ["feature"];
95
+ }, {
96
+ readonly id: "growth";
97
+ readonly label: "Growth";
98
+ readonly tags: readonly ["growth", "new", "progress", "development", "nurture"];
99
+ readonly domains: readonly ["wellbeing", "coaching", "education", "community"];
100
+ readonly tone: readonly ["warm", "calm"];
101
+ readonly presets: readonly ["feature"];
102
+ }, {
103
+ readonly id: "gentle-care";
104
+ readonly label: "Gentle care";
105
+ readonly tags: readonly ["gentle", "soft", "care", "wellbeing", "beauty", "calm"];
106
+ readonly domains: readonly ["wellbeing", "creative", "hospitality"];
107
+ readonly tone: readonly ["warm", "calm", "premium"];
108
+ readonly presets: readonly ["feature"];
109
+ }, {
110
+ readonly id: "special-touch";
111
+ readonly label: "Special touch";
112
+ readonly tags: readonly ["special", "sparkle", "magic", "polish", "delight", "creative"];
113
+ readonly domains: readonly ["creative", "commerce", "hospitality"];
114
+ readonly tone: readonly ["playful", "premium"];
115
+ readonly presets: readonly ["feature"];
116
+ }, {
117
+ readonly id: "ideas";
118
+ readonly label: "Ideas";
119
+ readonly tags: readonly ["idea", "innovation", "clarity", "creative", "strategy"];
120
+ readonly domains: readonly ["coaching", "education", "creative", "technology"];
121
+ readonly tone: readonly ["practical", "playful"];
122
+ readonly presets: readonly ["feature"];
123
+ }, {
124
+ readonly id: "direction";
125
+ readonly label: "Direction";
126
+ readonly tags: readonly ["direction", "navigation", "path", "journey", "guidance"];
127
+ readonly domains: readonly ["coaching", "education", "services"];
128
+ readonly tone: readonly ["trustworthy", "practical"];
129
+ readonly presets: readonly ["feature"];
130
+ }, {
131
+ readonly id: "focus";
132
+ readonly label: "Focus";
133
+ readonly tags: readonly ["focus", "goal", "outcome", "aim", "strategy"];
134
+ readonly domains: readonly ["coaching", "services", "technology"];
135
+ readonly tone: readonly ["practical"];
136
+ readonly presets: readonly ["feature"];
137
+ }, {
138
+ readonly id: "quality";
139
+ readonly label: "Quality";
140
+ readonly tags: readonly ["quality", "award", "standard", "achievement", "premium"];
141
+ readonly domains: readonly ["services", "education", "commerce"];
142
+ readonly tone: readonly ["premium", "trustworthy"];
143
+ readonly presets: readonly ["feature"];
144
+ }, {
145
+ readonly id: "highlight";
146
+ readonly label: "Highlight";
147
+ readonly tags: readonly ["highlight", "featured", "favorite", "quality", "special"];
148
+ readonly domains: readonly ["creative", "commerce", "services"];
149
+ readonly tone: readonly ["playful", "premium"];
150
+ readonly presets: readonly ["feature"];
151
+ }, {
152
+ readonly id: "verified-quality";
153
+ readonly label: "Verified quality";
154
+ readonly tags: readonly ["verified", "quality", "approved", "trusted", "check"];
155
+ readonly domains: readonly ["services", "commerce", "education"];
156
+ readonly tone: readonly ["trustworthy", "practical"];
157
+ readonly presets: readonly ["feature"];
158
+ }, {
159
+ readonly id: "learning";
160
+ readonly label: "Learning";
161
+ readonly tags: readonly ["learning", "book", "course", "knowledge", "education"];
162
+ readonly domains: readonly ["education", "coaching", "community"];
163
+ readonly tone: readonly ["calm", "practical"];
164
+ readonly presets: readonly ["feature"];
165
+ }, {
166
+ readonly id: "training";
167
+ readonly label: "Training";
168
+ readonly tags: readonly ["training", "course", "qualification", "school", "education"];
169
+ readonly domains: readonly ["education", "coaching"];
170
+ readonly tone: readonly ["trustworthy", "practical"];
171
+ readonly presets: readonly ["feature"];
172
+ }, {
173
+ readonly id: "programmes-dates";
174
+ readonly label: "Programmes and dates";
175
+ readonly tags: readonly ["calendar", "dates", "schedule", "events", "programme", "classes"];
176
+ readonly domains: readonly ["events", "education", "community"];
177
+ readonly tone: readonly ["practical"];
178
+ readonly presets: readonly ["feature"];
179
+ }, {
180
+ readonly id: "place";
181
+ readonly label: "Place";
182
+ readonly tags: readonly ["place", "location", "local", "venue", "destination"];
183
+ readonly domains: readonly ["events", "hospitality", "services"];
184
+ readonly tone: readonly ["practical"];
185
+ readonly presets: readonly ["feature"];
186
+ }, {
187
+ readonly id: "products";
188
+ readonly label: "Products";
189
+ readonly tags: readonly ["products", "shop", "store", "retail", "commerce"];
190
+ readonly domains: readonly ["commerce"];
191
+ readonly tone: readonly ["practical", "premium"];
192
+ readonly presets: readonly ["feature"];
193
+ }, {
194
+ readonly id: "packages";
195
+ readonly label: "Packages";
196
+ readonly tags: readonly ["package", "bundle", "delivery", "offer", "product"];
197
+ readonly domains: readonly ["commerce", "services"];
198
+ readonly tone: readonly ["practical"];
199
+ readonly presets: readonly ["feature"];
200
+ }, {
201
+ readonly id: "time";
202
+ readonly label: "Time";
203
+ readonly tags: readonly ["time", "duration", "schedule", "availability", "appointment"];
204
+ readonly domains: readonly ["events", "services", "wellbeing"];
205
+ readonly tone: readonly ["practical", "calm"];
206
+ readonly presets: readonly ["feature"];
207
+ }, {
208
+ readonly id: "practical-service";
209
+ readonly label: "Practical service";
210
+ readonly tags: readonly ["service", "repair", "setup", "practical", "tools", "support"];
211
+ readonly domains: readonly ["services", "technology"];
212
+ readonly tone: readonly ["practical"];
213
+ readonly presets: readonly ["feature"];
214
+ }, {
215
+ readonly id: "at-home";
216
+ readonly label: "At home";
217
+ readonly tags: readonly ["home", "domestic", "comfort", "local", "space"];
218
+ readonly domains: readonly ["hospitality", "services", "community"];
219
+ readonly tone: readonly ["warm", "calm"];
220
+ readonly presets: readonly ["feature"];
221
+ }, {
222
+ readonly id: "worldwide";
223
+ readonly label: "Worldwide";
224
+ readonly tags: readonly ["global", "online", "worldwide", "remote", "international"];
225
+ readonly domains: readonly ["technology", "education", "services"];
226
+ readonly tone: readonly ["practical"];
227
+ readonly presets: readonly ["feature"];
228
+ }, {
229
+ readonly id: "professional-service";
230
+ readonly label: "Professional service";
231
+ readonly tags: readonly ["business", "professional", "consulting", "service", "work"];
232
+ readonly domains: readonly ["services", "technology", "coaching"];
233
+ readonly tone: readonly ["practical", "trustworthy"];
234
+ readonly presets: readonly ["feature"];
235
+ }];
236
+ export type SemanticIconOption = Pick<SemanticIconDefinition, 'id' | 'label'>;
237
+ export declare const SEMANTIC_ICON_OPTIONS: SemanticIconOption[];
238
+ export declare function isSemanticIconId(value: unknown): value is SemanticIconId;
239
+ export declare function getSemanticIconComponent(name: unknown): LucideIcon | null;