@riverbankcms/sdk 0.94.0 → 0.96.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 (189) hide show
  1. package/README.md +30 -4
  2. package/dist/{PreviewEditorSidebar-D3PAF7NW.mjs → PreviewEditorSidebar-46VT4QVU.mjs} +3 -3
  3. package/dist/{PreviewEditorUI-G5JVJEIJ.mjs → PreviewEditorUI-JD75GE5F.mjs} +3 -3
  4. package/dist/SdkPreviewModeRuntime-MJUSYUFB.mjs +8 -0
  5. package/dist/_dts/ai/src/contracts/proposals.d.ts +10 -10
  6. package/dist/_dts/api/src/bookingOperations.d.ts +7 -0
  7. package/dist/_dts/api/src/bookingRecords.d.ts +3 -0
  8. package/dist/_dts/api/src/cache-tags.d.ts +4 -0
  9. package/dist/_dts/api/src/contentRuntime.d.ts +14 -0
  10. package/dist/_dts/api/src/endpoints.d.ts +8 -0
  11. package/dist/_dts/api/src/event-presentation.d.ts +15 -0
  12. package/dist/_dts/api/src/index.d.ts +1 -1
  13. package/dist/_dts/api/src/public/endpoints.d.ts +1 -1
  14. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +17 -4
  15. package/dist/_dts/api/src/shared-contracts.d.ts +19 -9
  16. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +6 -1
  17. package/dist/_dts/block-form/src/client/index.d.ts +1 -1
  18. package/dist/_dts/block-form/src/fields/types.d.ts +9 -1
  19. package/dist/_dts/block-form/src/registry/schemas.d.ts +4 -0
  20. package/dist/_dts/block-form/src/registry/widgets.d.ts +1 -0
  21. package/dist/_dts/block-form/src/widgets/InlineTextField/InlineTextField.d.ts +4 -0
  22. package/dist/_dts/block-form/src/widgets/InlineTextField/index.d.ts +3 -0
  23. package/dist/_dts/block-form/src/widgets/InlineTextField/inlineTextFieldDefaults.d.ts +2 -0
  24. package/dist/_dts/block-form/src/widgets/InlineTextField/inlineTextFieldSchema.d.ts +3 -0
  25. package/dist/_dts/blocks/src/bindings/index.d.ts +1 -0
  26. package/dist/_dts/blocks/src/bindings/types.d.ts +1 -0
  27. package/dist/_dts/blocks/src/index.d.ts +2 -0
  28. package/dist/_dts/blocks/src/portal/types.d.ts +7 -0
  29. package/dist/_dts/blocks/src/system/blocks/appointment-booking.d.ts +2 -29631
  30. package/dist/_dts/blocks/src/system/blocks/blog-listing.d.ts +2 -29614
  31. package/dist/_dts/blocks/src/system/blocks/cart.d.ts +2 -29634
  32. package/dist/_dts/blocks/src/system/blocks/checkout.d.ts +2 -29627
  33. package/dist/_dts/blocks/src/system/blocks/collection.d.ts +2 -29585
  34. package/dist/_dts/blocks/src/system/blocks/faq.d.ts +2 -29677
  35. package/dist/_dts/blocks/src/system/blocks/gifting.d.ts +2 -29655
  36. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +220 -0
  37. package/dist/_dts/blocks/src/system/blocks/product-detail.d.ts +2 -29655
  38. package/dist/_dts/blocks/src/system/blocks/product-list.d.ts +2 -29685
  39. package/dist/_dts/blocks/src/system/blocks/shop.d.ts +2 -29761
  40. package/dist/_dts/blocks/src/system/fragments/library/heroCopy.d.ts +9 -0
  41. package/dist/_dts/blocks/src/system/inlineText.d.ts +78 -0
  42. package/dist/_dts/blocks/src/system/manifest/derivedContent.d.ts +3 -1
  43. package/dist/_dts/blocks/src/system/manifest/fieldValidation/index.d.ts +15 -3
  44. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +188 -7
  45. package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -1
  46. package/dist/_dts/blocks/src/system/runtime/api/types.d.ts +21 -6
  47. package/dist/_dts/blocks/src/system/runtime/nodes/basic.d.ts +2 -1
  48. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/TicketSelectionStep.d.ts +5 -3
  49. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +5 -1
  50. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/hooks.d.ts +2 -2
  51. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/sessionStorage.d.ts +9 -6
  52. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/ticketSelectionLines.d.ts +36 -0
  53. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +7 -1
  54. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationStripeReturn.d.ts +2 -2
  55. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +2 -3
  56. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +19 -4
  57. package/dist/_dts/blocks/src/system/runtime/nodes/renderInlineText.d.ts +3 -0
  58. package/dist/_dts/content-editor/src/index.d.ts +1 -0
  59. package/dist/_dts/content-editor/src/primitives/PreviewInlineTextEditor.d.ts +9 -0
  60. package/dist/_dts/content-model/src/entry-slots/types.d.ts +6 -0
  61. package/dist/_dts/content-model/src/templates/bindingTypeCompatibility.d.ts +1 -1
  62. package/dist/_dts/content-model/src/templates/defaults.d.ts +30 -0
  63. package/dist/_dts/content-model/src/templates/types.d.ts +1 -0
  64. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +163 -2
  65. package/dist/_dts/editor/src/inline/FloatingToolbar.d.ts +18 -0
  66. package/dist/_dts/editor/src/inline/InlineTextEditor.d.ts +18 -1
  67. package/dist/_dts/editor/src/inline/InlineTextEditorStyles.d.ts +1 -0
  68. package/dist/_dts/editor/src/inline/domParse.d.ts +3 -0
  69. package/dist/_dts/editor/src/inline/presentation.d.ts +48 -0
  70. package/dist/_dts/editor/src/inline/selection.d.ts +12 -0
  71. package/dist/_dts/editor-blocks/src/widgets/index.d.ts +1 -0
  72. package/dist/_dts/editor-blocks/src/widgets/inline-text/InlineTextField.d.ts +3 -0
  73. package/dist/_dts/editor-blocks/src/widgets/inline-text/index.d.ts +1 -0
  74. package/dist/_dts/media-core/src/assetsInUseSummary.d.ts +7 -0
  75. package/dist/_dts/media-core/src/mediaUsageProjection.d.ts +29 -1
  76. package/dist/_dts/path-utils/src/index.d.ts +1 -0
  77. package/dist/_dts/preview-next/src/client/widgets/widgetOverrides.d.ts +1 -0
  78. package/dist/_dts/sdk/src/cli/commands/content.d.ts +56 -0
  79. package/dist/_dts/sdk/src/cli/commands/push/options.d.ts +4 -0
  80. package/dist/_dts/sdk/src/cli/commands/push/scopes/commandBackedDatedOfferingScope.d.ts +2 -6
  81. package/dist/_dts/sdk/src/cli/commands/push/scopes/types.d.ts +2 -0
  82. package/dist/_dts/sdk/src/cli/commands/push/verification.d.ts +56 -0
  83. package/dist/_dts/sdk/src/cli/commands/push-execute.d.ts +2 -1
  84. package/dist/_dts/sdk/src/cli/content/edit/format.d.ts +2 -0
  85. package/dist/_dts/sdk/src/cli/content/edit/path.d.ts +14 -0
  86. package/dist/_dts/sdk/src/cli/content/edit/planner.d.ts +46 -0
  87. package/dist/_dts/sdk/src/cli/content/fs-utils.d.ts +4 -0
  88. package/dist/_dts/sdk/src/cli/content/writer.d.ts +2 -0
  89. package/dist/_dts/sdk/src/cli/merge-remote/mergeFieldChanges.d.ts +22 -0
  90. package/dist/_dts/sdk/src/cli/merge-remote/pageLocal.d.ts +3 -0
  91. package/dist/_dts/sdk/src/cli/merge-remote/pageMerge.d.ts +78 -0
  92. package/dist/_dts/sdk/src/cli/merge-remote/pageMergePlan.d.ts +36 -0
  93. package/dist/_dts/sdk/src/cli/merge-remote/pageMergePush.d.ts +21 -0
  94. package/dist/_dts/sdk/src/cli/merge-remote/pageMergeReport.d.ts +29 -0
  95. package/dist/_dts/sdk/src/cli/merge-remote/pageSnapshots.d.ts +48 -0
  96. package/dist/_dts/sdk/src/cli/sync/diff.d.ts +3 -6
  97. package/dist/_dts/sdk/src/cli/sync/field-diff.d.ts +39 -0
  98. package/dist/_dts/sdk/src/cli/sync/index.d.ts +1 -0
  99. package/dist/_dts/sdk/src/client/types.d.ts +7 -2
  100. package/dist/_dts/sdk/src/config/field-definitions.d.ts +8 -3
  101. package/dist/_dts/sdk/src/config/typed-entries.d.ts +5 -3
  102. package/dist/_dts/sdk/src/contracts/bindings.d.ts +1 -0
  103. package/dist/_dts/sdk/src/contracts/content.d.ts +18 -0
  104. package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
  105. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +3 -2
  106. package/dist/_dts/sdk/src/next/middleware.d.ts +1 -0
  107. package/dist/_dts/sdk/src/next/redirect-destination.d.ts +3 -0
  108. package/dist/_dts/sdk/src/next/route-outcome-proxy.d.ts +22 -0
  109. package/dist/_dts/sdk/src/public-api/contracts.d.ts +20 -1
  110. package/dist/_dts/sdk/src/public-api/runtime.d.ts +1 -1
  111. package/dist/_dts/sdk/src/rendering/helpers/bindings.d.ts +1 -0
  112. package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +9 -1
  113. package/dist/_dts/sdk/src/version.d.ts +1 -1
  114. package/dist/_dts/theme-core/src/accordions/types.d.ts +1 -1
  115. package/dist/_dts/theme-core/src/buttons/types.d.ts +1 -1
  116. package/dist/_dts/theme-core/src/cards/types.d.ts +15 -15
  117. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  118. package/dist/_dts/theme-core/src/inputs/types.d.ts +1 -1
  119. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +42 -42
  120. package/dist/_dts/theme-core/src/palette/variants/types.d.ts +2 -2
  121. package/dist/_dts/theme-core/src/schema.d.ts +44 -44
  122. package/dist/_dts/theme-core/src/site-styles/backgroundAppearance.d.ts +2 -2
  123. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +16 -16
  124. package/dist/_dts/theme-core/src/site-styles/pageDesignIntent.d.ts +4 -4
  125. package/dist/_dts/theme-core/src/site-styles/tokenRecipes.d.ts +1 -1
  126. package/dist/_dts/theme-core/src/tokens/themeColorTokens.d.ts +1 -1
  127. package/dist/{chunk-AQ6RT6LZ.mjs → chunk-4TLTV7OB.mjs} +2 -2
  128. package/dist/{chunk-NT76QGIJ.mjs → chunk-7ED5UNHL.mjs} +14 -0
  129. package/dist/{chunk-XIK2HYI3.mjs → chunk-EL55VV6Q.mjs} +49 -9
  130. package/dist/{chunk-A63UXN3P.mjs → chunk-VHIMXQ7Z.mjs} +106 -4
  131. package/dist/{chunk-AJZGT6YG.mjs → chunk-VTPPVAOL.mjs} +1 -1
  132. package/dist/{chunk-PCNCETBI.mjs → chunk-XMATDBXO.mjs} +2082 -408
  133. package/dist/cli/index.mjs +2809 -787
  134. package/dist/cli/init-docs/content/cli-reference.md +43 -4
  135. package/dist/cli/init-docs/content/content-management.md +22 -0
  136. package/dist/client/{accordion-RNQIPG55.mjs → accordion-GUNXIIZR.mjs} +1 -1
  137. package/dist/client/{bookingForm-HYEEVRLP.mjs → bookingForm-AOU4VHP5.mjs} +3 -3
  138. package/dist/client/bookings.mjs +211 -105
  139. package/dist/client/{carousel-W7DQ3YPU.mjs → carousel-4QSX2JPC.mjs} +1 -1
  140. package/dist/client/{cart-PXJ3SXXO.mjs → cart-JKN6C4ZB.mjs} +4 -4
  141. package/dist/client/{checkout-X3JYSOXI.mjs → checkout-YY6YMITW.mjs} +4 -4
  142. package/dist/client/{chunk-PICR3NTQ.mjs → chunk-6H27K6AA.mjs} +1 -1
  143. package/dist/client/{chunk-J6TMMMXW.mjs → chunk-A3YN7M3G.mjs} +1 -1
  144. package/dist/client/{chunk-YYVGSYBO.mjs → chunk-BFCJZODD.mjs} +3 -3
  145. package/dist/client/{chunk-IXDSXF2D.mjs → chunk-CPKMJVBD.mjs} +353 -187
  146. package/dist/client/{chunk-6SYGVVWA.mjs → chunk-GWCRCJLB.mjs} +9 -0
  147. package/dist/client/{chunk-Q47XGAGS.mjs → chunk-H7A6PUGM.mjs} +1 -1
  148. package/dist/client/{chunk-WERRJXNJ.mjs → chunk-SY543WZ3.mjs} +1 -1
  149. package/dist/client/{chunk-DUOHLWLF.mjs → chunk-VJROUYOQ.mjs} +2 -2
  150. package/dist/client/client.mjs +4495 -3855
  151. package/dist/client/{courseRegistration-QZ67PVHO.mjs → courseRegistration-UU2KMPSQ.mjs} +3 -3
  152. package/dist/client/{eventCalendar-V3BDHQNT.mjs → eventCalendar-WIVNS2TM.mjs} +6 -6
  153. package/dist/client/{eventCombined-XYFRN2RG.mjs → eventCombined-P3G5MW4J.mjs} +6 -6
  154. package/dist/client/{eventDetails-TFE5TWKV.mjs → eventDetails-2VHJ2RDG.mjs} +6 -6
  155. package/dist/client/{eventListing-IQ6AGWZ6.mjs → eventListing-TGO6JI3R.mjs} +6 -6
  156. package/dist/client/{eventRegistration-WGJVFKQJ.mjs → eventRegistration-B46HEJES.mjs} +6 -6
  157. package/dist/client/{form-6UZY6RUA.mjs → form-VKRTFUNQ.mjs} +1 -1
  158. package/dist/client/{headerSection-RSFXY6V3.mjs → headerSection-XUX4ZJLO.mjs} +2 -2
  159. package/dist/client/hooks.mjs +34 -3
  160. package/dist/client/{locationMap-24FH67I4.mjs → locationMap-NQFI5MJO.mjs} +2 -2
  161. package/dist/client/{newsletterForm-QVL3MLTN.mjs → newsletterForm-P2GETCQK.mjs} +1 -1
  162. package/dist/client/{productDetail-ZDYN3G4T.mjs → productDetail-7NQ7O5IF.mjs} +4 -4
  163. package/dist/client/{productList-4BMJLQHZ.mjs → productList-RX6ZJ7BL.mjs} +4 -4
  164. package/dist/client/rendering/client.mjs +4170 -3768
  165. package/dist/client/rendering/islands.mjs +18 -18
  166. package/dist/client/rendering.mjs +1700 -1065
  167. package/dist/client/{shop-U5C634FF.mjs → shop-BHN5AKY6.mjs} +4 -4
  168. package/dist/preview-next/before-render.mjs +14 -0
  169. package/dist/preview-next/client/runtime.mjs +5 -5
  170. package/dist/preview-next/middleware.mjs +14 -0
  171. package/dist/{sdk-runtime-VGV46WVB.mjs → sdk-runtime-X2LXQ5IC.mjs} +6 -6
  172. package/dist/server/components.mjs +3255 -2827
  173. package/dist/server/config-template-validation.mjs +29 -20
  174. package/dist/server/config-validation.mjs +36 -4
  175. package/dist/server/config.mjs +36 -4
  176. package/dist/server/data.mjs +34 -3
  177. package/dist/server/index.mjs +44 -1
  178. package/dist/server/next/middleware.mjs +120 -0
  179. package/dist/server/next.mjs +3405 -2859
  180. package/dist/server/page-converter.mjs +20 -3
  181. package/dist/server/prebuild.mjs +1 -1
  182. package/dist/server/rendering/server.mjs +3264 -2837
  183. package/dist/server/rendering.mjs +3295 -2844
  184. package/dist/server/routing.mjs +35 -4
  185. package/dist/server/server.mjs +2358 -2188
  186. package/dist/server/theme-bridge.mjs +140 -0
  187. package/dist/styles/index.css +139 -0
  188. package/package.json +5 -1
  189. package/dist/SdkPreviewModeRuntime-NHTLRNQD.mjs +0 -8
@@ -9,8 +9,17 @@ export declare const heroCopyFragment: import("..").DefinedFragment<{
9
9
  readonly id: "headline";
10
10
  readonly type: "text";
11
11
  readonly label: "Headline";
12
+ readonly maxLength: 120;
13
+ readonly ui: {
14
+ readonly hidden: true;
15
+ };
16
+ }, {
17
+ readonly id: "headlineInline";
18
+ readonly type: "inlineText";
19
+ readonly label: "Headline";
12
20
  readonly required: true;
13
21
  readonly maxLength: 120;
22
+ readonly plainTextField: "headline";
14
23
  }, {
15
24
  readonly id: "subheadline";
16
25
  readonly type: "text";
@@ -0,0 +1,78 @@
1
+ import { z } from 'zod';
2
+ export declare const inlineTextAccentTones: readonly ["accent", "brand", "contrast"];
3
+ export declare const inlineTextHighlightTones: readonly ["soft", "accent", "brand"];
4
+ export type InlineTextAccentTone = (typeof inlineTextAccentTones)[number];
5
+ export type InlineTextHighlightTone = (typeof inlineTextHighlightTones)[number];
6
+ export type InlineTextMark = Readonly<{
7
+ kind: 'strong';
8
+ }> | Readonly<{
9
+ kind: 'emphasis';
10
+ }> | Readonly<{
11
+ kind: 'accent';
12
+ tone: InlineTextAccentTone;
13
+ }> | Readonly<{
14
+ kind: 'highlight';
15
+ tone: InlineTextHighlightTone;
16
+ }>;
17
+ export type InlineTextRun = Readonly<{
18
+ text: string;
19
+ marks?: readonly InlineTextMark[];
20
+ }>;
21
+ export type InlineText = readonly InlineTextRun[];
22
+ export type InlineTextParseError = Readonly<{
23
+ kind: 'not-array';
24
+ }> | Readonly<{
25
+ kind: 'invalid-run';
26
+ index: number;
27
+ }>;
28
+ export type InlineTextParseResult = Readonly<{
29
+ ok: true;
30
+ value: InlineText;
31
+ }> | Readonly<{
32
+ ok: false;
33
+ error: InlineTextParseError;
34
+ }>;
35
+ export declare const inlineTextSchema: z.ZodArray<z.ZodObject<{
36
+ text: z.ZodString;
37
+ marks: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
38
+ kind: z.ZodLiteral<"strong">;
39
+ }, z.core.$strip>, z.ZodObject<{
40
+ kind: z.ZodLiteral<"emphasis">;
41
+ }, z.core.$strip>, z.ZodObject<{
42
+ kind: z.ZodLiteral<"accent">;
43
+ tone: z.ZodEnum<{
44
+ accent: "accent";
45
+ brand: "brand";
46
+ contrast: "contrast";
47
+ }>;
48
+ }, z.core.$strip>, z.ZodObject<{
49
+ kind: z.ZodLiteral<"highlight">;
50
+ tone: z.ZodEnum<{
51
+ accent: "accent";
52
+ brand: "brand";
53
+ soft: "soft";
54
+ }>;
55
+ }, z.core.$strip>], "kind">>>;
56
+ }, z.core.$strip>>;
57
+ export declare function plainTextToInlineText(value: string): InlineText;
58
+ export declare function inlineTextToPlainText(value: InlineText): string;
59
+ export declare function isInlineTextEmpty(value: InlineText): boolean;
60
+ export declare function coerceInlineTextWithFallback(value: unknown, fallbackPlainText: string | null | undefined): InlineText;
61
+ export declare function parseInlineTextFromUnknown(value: unknown): InlineTextParseResult;
62
+ export declare function normalizeInlineText(value: InlineText): InlineText;
63
+ export declare function normalizeInlineTextMarks(marks: readonly InlineTextMark[]): readonly InlineTextMark[];
64
+ export declare function inlineTextMarksEqual(left: readonly InlineTextMark[], right: readonly InlineTextMark[]): boolean;
65
+ export declare function inlineTextEqual(left: InlineText, right: InlineText): boolean;
66
+ export declare function applyInlineTextMarkToRange(value: InlineText, range: Readonly<{
67
+ start: number;
68
+ end: number;
69
+ }>, mark: InlineTextMark): InlineText;
70
+ export declare function removeInlineTextMarkFromRange(value: InlineText, range: Readonly<{
71
+ start: number;
72
+ end: number;
73
+ }>, kind: InlineTextMark['kind']): InlineText;
74
+ export declare function replaceInlineTextRange(value: InlineText, range: Readonly<{
75
+ start: number;
76
+ end: number;
77
+ }>, replacement: InlineText): InlineText;
78
+ export declare function truncateInlineText(value: InlineText, maxLength: number | undefined): InlineText;
@@ -35,6 +35,7 @@ import type { BlockConfigInputOf } from '../defineBlock';
35
35
  import type { FragmentConfigInputOf } from '../fragments';
36
36
  import type { ContainerStylesContent, SectionStylesContent, CardStylesContent } from '../fields/boxStyles';
37
37
  import type { LinkValue } from '../types/link';
38
+ import type { InlineText } from '../inlineText';
38
39
  import type { RichTextDoc } from './richTextSchema';
39
40
  /**
40
41
  * Structural minimum a manifest field must satisfy for derivation. The full
@@ -67,6 +68,7 @@ export interface DerivableField {
67
68
  /** Repeater item groups with this flag are flattened at runtime. */
68
69
  ui?: {
69
70
  flattenInRepeater?: boolean;
71
+ hidden?: boolean;
70
72
  };
71
73
  /** Phantom marker carried by style field factories. */
72
74
  readonly __boxStyleType?: 'section' | 'container' | 'card';
@@ -98,7 +100,7 @@ type FieldToValue<F extends DerivableField> = F extends {
98
100
  readonly __boxStyleType?: 'container';
99
101
  } ? ContainerStylesContent : F extends {
100
102
  readonly __boxStyleType?: 'card';
101
- } ? CardStylesContent : F['type'] extends 'text' | 'slug' | 'url' | 'reference' | 'date' | 'time' | 'datetime' ? string : F['type'] extends 'number' ? number : F['type'] extends 'boolean' ? boolean : F['type'] extends 'richText' ? RichTextDoc : F['type'] extends 'media' | 'file' ? Media : F['type'] extends 'link' ? LinkValue : F['type'] extends 'select' ? SelectValue<F> : F['type'] extends 'group' | 'modal' | 'tabGroup' ? CompositeValue<F> : F['type'] extends 'repeater' ? ReadonlyArray<RepeaterItemValue<F>> : F['type'] extends 'presetOrCustom' | 'contentTypeSelect' | 'entryPicker' ? unknown : never;
103
+ } ? CardStylesContent : F['type'] extends 'text' | 'slug' | 'url' | 'reference' | 'date' | 'time' | 'datetime' ? string : F['type'] extends 'number' ? number : F['type'] extends 'boolean' ? boolean : F['type'] extends 'richText' ? RichTextDoc : F['type'] extends 'inlineText' ? InlineText : F['type'] extends 'media' | 'file' ? Media : F['type'] extends 'link' ? LinkValue : F['type'] extends 'select' ? SelectValue<F> : F['type'] extends 'group' | 'modal' | 'tabGroup' ? CompositeValue<F> : F['type'] extends 'repeater' ? ReadonlyArray<RepeaterItemValue<F>> : F['type'] extends 'presetOrCustom' | 'contentTypeSelect' | 'entryPicker' ? unknown : never;
102
104
  /**
103
105
  * Select-field value type.
104
106
  *
@@ -85,6 +85,13 @@ type MaxItemsConstraint = Readonly<{
85
85
  type RichTextDocConstraint = Readonly<{
86
86
  kind: "richTextDoc";
87
87
  }>;
88
+ type InlineTextConstraint = Readonly<{
89
+ kind: "inlineText";
90
+ }>;
91
+ type MaxPlainTextLengthConstraint = Readonly<{
92
+ kind: "maxPlainTextLength";
93
+ maximum: number;
94
+ }>;
88
95
  type MediaObjectConstraint = Readonly<{
89
96
  kind: "mediaObject";
90
97
  }>;
@@ -101,9 +108,10 @@ type StringConstraint = RequiredConstraint | TextTypeConstraint | MaxLengthConst
101
108
  type NumberConstraint = RequiredConstraint | NumberTypeConstraint | NumberMinConstraint | NumberMaxConstraint;
102
109
  type SelectConstraint = RequiredConstraint | SelectOptionConstraint;
103
110
  type ArrayConstraint = RequiredConstraint | ArrayTypeConstraint | MinItemsConstraint | MaxItemsConstraint;
111
+ type InlineTextPlanConstraint = RequiredConstraint | InlineTextConstraint | MaxPlainTextLengthConstraint;
104
112
  type ObjectConstraint = RequiredConstraint | RichTextDocConstraint | MediaObjectConstraint | LinkObjectConstraint;
105
113
  type BooleanConstraint = RequiredConstraint;
106
- export type FieldConstraint = StringConstraint | NumberConstraint | SelectConstraint | ArrayConstraint | ObjectConstraint | BooleanConstraint;
114
+ export type FieldConstraint = StringConstraint | NumberConstraint | SelectConstraint | ArrayConstraint | InlineTextPlanConstraint | ObjectConstraint | BooleanConstraint;
107
115
  export type SelectConstraintSource = Readonly<{
108
116
  kind: "static";
109
117
  values: readonly string[];
@@ -127,7 +135,7 @@ export type FieldValidationIssue = BaseIssue<"required", {
127
135
  }> | BaseIssue<"tooManyItems", {
128
136
  maximum: number;
129
137
  itemLabel: string;
130
- }> | BaseIssue<"invalidRichText"> | BaseIssue<"invalidMedia"> | BaseIssue<"invalidLink"> | BaseIssue<"invalidReference">;
138
+ }> | BaseIssue<"invalidRichText"> | BaseIssue<"invalidInlineText"> | BaseIssue<"invalidMedia"> | BaseIssue<"invalidLink"> | BaseIssue<"invalidReference">;
131
139
  type BaseIssue<K extends string, Extra extends object = Record<never, never>> = Readonly<{
132
140
  kind: K;
133
141
  path: FieldPath;
@@ -187,6 +195,10 @@ export type BooleanFieldValidationPlan = PlanBase<"boolean", "boolean", BooleanC
187
195
  export type RichTextFieldValidationPlan = PlanBase<"richText", "object", ObjectConstraint> & Readonly<{
188
196
  fieldType: "richText";
189
197
  }>;
198
+ export type InlineTextFieldValidationPlan = PlanBase<"inlineText", "array", InlineTextPlanConstraint> & Readonly<{
199
+ fieldType: "inlineText";
200
+ plainTextFallbackPath?: FieldPath;
201
+ }>;
190
202
  export type MediaFieldValidationPlan = PlanBase<"media", "object", ObjectConstraint> & Readonly<{
191
203
  fieldType: "media" | "file";
192
204
  legacyStringType: string;
@@ -210,7 +222,7 @@ export type GroupFieldValidationPlan = PlanBase<"group", "object", ObjectConstra
210
222
  export type PassthroughFieldValidationPlan = PlanBase<"passthrough", "unknown", RequiredConstraint> & Readonly<{
211
223
  fieldType: "presetOrCustom" | "contentTypeSelect" | "entryPicker";
212
224
  }>;
213
- export type FieldValidationPlan = StringFieldValidationPlan | NumberFieldValidationPlan | BooleanFieldValidationPlan | RichTextFieldValidationPlan | MediaFieldValidationPlan | LinkFieldValidationPlan | SelectFieldValidationPlan | RepeaterFieldValidationPlan | GroupFieldValidationPlan | PassthroughFieldValidationPlan;
225
+ export type FieldValidationPlan = StringFieldValidationPlan | NumberFieldValidationPlan | BooleanFieldValidationPlan | RichTextFieldValidationPlan | InlineTextFieldValidationPlan | MediaFieldValidationPlan | LinkFieldValidationPlan | SelectFieldValidationPlan | RepeaterFieldValidationPlan | GroupFieldValidationPlan | PassthroughFieldValidationPlan;
214
226
  export type FieldPresence = Readonly<{
215
227
  kind: "required";
216
228
  }> | Readonly<{
@@ -743,6 +743,185 @@ declare const richTextFieldSchema: z.ZodObject<{
743
743
  }, z.core.$strip>>;
744
744
  type: z.ZodLiteral<"richText">;
745
745
  }, z.core.$strip>;
746
+ declare const inlineTextFieldSchema: z.ZodObject<{
747
+ id: z.ZodString;
748
+ label: z.ZodString;
749
+ description: z.ZodOptional<z.ZodString>;
750
+ visibleRoles: z.ZodOptional<z.ZodArray<z.ZodEnum<{
751
+ admin: "admin";
752
+ designer: "designer";
753
+ author: "author";
754
+ }>>>;
755
+ defaultValue: z.ZodOptional<z.ZodAny>;
756
+ required: z.ZodDefault<z.ZodBoolean>;
757
+ ui: z.ZodOptional<z.ZodObject<{
758
+ widget: z.ZodOptional<z.ZodOptional<z.ZodString>>;
759
+ preset: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
760
+ disclosure: "disclosure";
761
+ }>>>;
762
+ flattenInRepeater: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
763
+ hidden: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
764
+ hideLabel: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
765
+ hideDescription: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
766
+ showCharCount: z.ZodOptional<z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
767
+ max: z.ZodNumber;
768
+ }, z.core.$strip>]>>>;
769
+ showSlugPreview: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
770
+ variant: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
771
+ full: "full";
772
+ inline: "inline";
773
+ limited: "limited";
774
+ media: "media";
775
+ notes: "notes";
776
+ }>>>;
777
+ richTextVariant: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
778
+ full: "full";
779
+ inline: "inline";
780
+ limited: "limited";
781
+ media: "media";
782
+ notes: "notes";
783
+ }>>>;
784
+ cropEditorMode: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
785
+ inline: "inline";
786
+ dialog: "dialog";
787
+ }>>>;
788
+ cropEditorAutoOpen: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
789
+ mediaPickerAutoOpen: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
790
+ showMediaPreview: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
791
+ showMediaOverlayActions: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
792
+ mediaPreviewMaxWidth: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
793
+ none: "none";
794
+ sm: "sm";
795
+ md: "md";
796
+ xs: "xs";
797
+ }>>>;
798
+ preventMediaPreviewUpscale: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
799
+ mediaDelivery: z.ZodOptional<z.ZodOptional<z.ZodObject<{
800
+ sizes: z.ZodOptional<z.ZodString>;
801
+ widthCandidates: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
802
+ maxCssWidth: z.ZodOptional<z.ZodNumber>;
803
+ maxCssHeight: z.ZodOptional<z.ZodNumber>;
804
+ strategy: z.ZodOptional<z.ZodEnum<{
805
+ default: "default";
806
+ columnsAuto: "columnsAuto";
807
+ imageGalleryVariant: "imageGalleryVariant";
808
+ }>>;
809
+ strategyOptions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
810
+ }, z.core.$strip>>>;
811
+ mediaDeliveryByVariant: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
812
+ sizes: z.ZodOptional<z.ZodString>;
813
+ widthCandidates: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
814
+ maxCssWidth: z.ZodOptional<z.ZodNumber>;
815
+ maxCssHeight: z.ZodOptional<z.ZodNumber>;
816
+ strategy: z.ZodOptional<z.ZodEnum<{
817
+ default: "default";
818
+ columnsAuto: "columnsAuto";
819
+ imageGalleryVariant: "imageGalleryVariant";
820
+ }>>;
821
+ strategyOptions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
822
+ }, z.core.$strip>>>>;
823
+ inputType: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
824
+ number: "number";
825
+ email: "email";
826
+ text: "text";
827
+ tel: "tel";
828
+ }>>>;
829
+ min: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
830
+ max: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
831
+ step: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
832
+ showValue: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
833
+ pattern: z.ZodOptional<z.ZodOptional<z.ZodString>>;
834
+ placeholder: z.ZodOptional<z.ZodOptional<z.ZodString>>;
835
+ visibleWhen: z.ZodOptional<z.ZodOptional<z.ZodType<FieldVisibleWhen, unknown, z.core.$ZodTypeInternals<FieldVisibleWhen, unknown>>>>;
836
+ modalConfig: z.ZodOptional<z.ZodOptional<z.ZodObject<{
837
+ buttonLabel: z.ZodOptional<z.ZodString>;
838
+ description: z.ZodOptional<z.ZodString>;
839
+ buttonVariant: z.ZodOptional<z.ZodEnum<{
840
+ outline: "outline";
841
+ default: "default";
842
+ }>>;
843
+ showCustomizedIndicator: z.ZodOptional<z.ZodBoolean>;
844
+ maxWidth: z.ZodOptional<z.ZodString>;
845
+ }, z.core.$strip>>>;
846
+ allowedTypes: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodEnum<{
847
+ image: "image";
848
+ color: "color";
849
+ gradient: "gradient";
850
+ }>>>>;
851
+ fullWidth: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
852
+ row: z.ZodOptional<z.ZodOptional<z.ZodString>>;
853
+ colSpan: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
854
+ layout: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
855
+ grid: "grid";
856
+ stack: "stack";
857
+ }>>>;
858
+ columns: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
859
+ gridColsPreset: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
860
+ simple2: "simple2";
861
+ simple3: "simple3";
862
+ simple4: "simple4";
863
+ buttonCtaRow: "buttonCtaRow";
864
+ }>>>;
865
+ gridColumns: z.ZodOptional<z.ZodOptional<z.ZodObject<{
866
+ base: z.ZodOptional<z.ZodNumber>;
867
+ sm: z.ZodOptional<z.ZodNumber>;
868
+ md: z.ZodOptional<z.ZodNumber>;
869
+ lg: z.ZodOptional<z.ZodNumber>;
870
+ xl: z.ZodOptional<z.ZodNumber>;
871
+ }, z.core.$strip>>>;
872
+ gridColsClassName: z.ZodOptional<z.ZodOptional<z.ZodString>>;
873
+ repeaterPreset: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
874
+ thumbnailGrid: "thumbnailGrid";
875
+ layoutGrid: "layoutGrid";
876
+ }>>>;
877
+ thumbnailField: z.ZodOptional<z.ZodOptional<z.ZodString>>;
878
+ thumbnailAltField: z.ZodOptional<z.ZodOptional<z.ZodString>>;
879
+ thumbnailLabelField: z.ZodOptional<z.ZodOptional<z.ZodString>>;
880
+ thumbnailAspectRatio: z.ZodOptional<z.ZodOptional<z.ZodString>>;
881
+ thumbnailCardDensity: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
882
+ compact: "compact";
883
+ comfortable: "comfortable";
884
+ }>>>;
885
+ layoutGridColumnsFields: z.ZodOptional<z.ZodOptional<z.ZodObject<{
886
+ base: z.ZodOptional<z.ZodString>;
887
+ sm: z.ZodOptional<z.ZodString>;
888
+ md: z.ZodOptional<z.ZodString>;
889
+ lg: z.ZodString;
890
+ xl: z.ZodOptional<z.ZodString>;
891
+ }, z.core.$strip>>>;
892
+ layoutGridSpanField: z.ZodOptional<z.ZodOptional<z.ZodString>>;
893
+ layoutGridRowField: z.ZodOptional<z.ZodOptional<z.ZodString>>;
894
+ layoutGridColumnField: z.ZodOptional<z.ZodOptional<z.ZodString>>;
895
+ layoutGridMaxRows: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
896
+ iconPickerPreset: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
897
+ cta: "cta";
898
+ feature: "feature";
899
+ }>>>;
900
+ contentTypeField: z.ZodOptional<z.ZodOptional<z.ZodString>>;
901
+ fixedContentType: z.ZodOptional<z.ZodOptional<z.ZodString>>;
902
+ valueFrom: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
903
+ id: "id";
904
+ identifier: "identifier";
905
+ slug: "slug";
906
+ }>>>;
907
+ siteOptionSource: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
908
+ venues: "venues";
909
+ eventCategories: "eventCategories";
910
+ staffMembers: "staffMembers";
911
+ }>>>;
912
+ searchThreshold: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
913
+ renderInHeader: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
914
+ intent: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
915
+ style: "style";
916
+ display: "display";
917
+ content: "content";
918
+ behavior: "behavior";
919
+ }>>>;
920
+ }, z.core.$strip>>;
921
+ type: z.ZodLiteral<"inlineText">;
922
+ maxLength: z.ZodOptional<z.ZodNumber>;
923
+ plainTextField: z.ZodOptional<z.ZodString>;
924
+ }, z.core.$strip>;
746
925
  declare const mediaFieldSchema: z.ZodObject<{
747
926
  id: z.ZodString;
748
927
  label: z.ZodString;
@@ -4219,6 +4398,7 @@ declare const entryPickerFieldSchema: z.ZodObject<{
4219
4398
  type FieldSchemaMembers = readonly [
4220
4399
  typeof textFieldSchema,
4221
4400
  typeof richTextFieldSchema,
4401
+ typeof inlineTextFieldSchema,
4222
4402
  typeof mediaFieldSchema,
4223
4403
  typeof fileFieldSchema,
4224
4404
  typeof booleanFieldSchema,
@@ -4252,6 +4432,7 @@ type SelectFieldBaseInput = Omit<z.input<typeof baseFieldSchema>, 'type' | 'ui'>
4252
4432
  };
4253
4433
  export type TextFieldDefinition = z.output<typeof textFieldSchema>;
4254
4434
  export type RichTextFieldDefinition = z.output<typeof richTextFieldSchema>;
4435
+ export type InlineTextFieldDefinition = z.output<typeof inlineTextFieldSchema>;
4255
4436
  export type MediaFieldDefinition = z.output<typeof mediaFieldSchema>;
4256
4437
  export type FileFieldDefinition = z.output<typeof fileFieldSchema>;
4257
4438
  export type BooleanFieldDefinition = z.output<typeof booleanFieldSchema>;
@@ -4321,7 +4502,7 @@ export type PresetOption = {
4321
4502
  export type PresetOrCustomFieldDefinition = z.output<typeof presetOrCustomFieldSchema>;
4322
4503
  export type ContentTypeSelectFieldDefinition = z.output<typeof contentTypeSelectFieldSchema>;
4323
4504
  export type EntryPickerFieldDefinition = z.output<typeof entryPickerFieldSchema>;
4324
- export type FieldDefinition = TextFieldDefinition | RichTextFieldDefinition | MediaFieldDefinition | FileFieldDefinition | BooleanFieldDefinition | NumberFieldDefinition | DateFieldDefinition | TimeFieldDefinition | DateTimeFieldDefinition | SlugFieldDefinition | UrlFieldDefinition | LinkFieldDefinition | SelectFieldDefinition | ReferenceFieldDefinition | RepeaterFieldDefinition | GroupFieldDefinition | ModalFieldDefinition | TabGroupFieldDefinition | PresetOrCustomFieldDefinition | ContentTypeSelectFieldDefinition | EntryPickerFieldDefinition;
4505
+ export type FieldDefinition = TextFieldDefinition | RichTextFieldDefinition | InlineTextFieldDefinition | MediaFieldDefinition | FileFieldDefinition | BooleanFieldDefinition | NumberFieldDefinition | DateFieldDefinition | TimeFieldDefinition | DateTimeFieldDefinition | SlugFieldDefinition | UrlFieldDefinition | LinkFieldDefinition | SelectFieldDefinition | ReferenceFieldDefinition | RepeaterFieldDefinition | GroupFieldDefinition | ModalFieldDefinition | TabGroupFieldDefinition | PresetOrCustomFieldDefinition | ContentTypeSelectFieldDefinition | EntryPickerFieldDefinition;
4325
4506
  /**
4326
4507
  * FieldDefinition input type (pre-defaults).
4327
4508
  *
@@ -4360,23 +4541,23 @@ export type SlotDefinition = z.infer<typeof slotSchema>;
4360
4541
  export declare const styleTokenSchema: z.ZodObject<{
4361
4542
  background: z.ZodOptional<z.ZodEnum<{
4362
4543
  surface: "surface";
4544
+ accent: "accent";
4363
4545
  background: "background";
4364
4546
  foreground: "foreground";
4365
- accent: "accent";
4366
4547
  muted: "muted";
4367
4548
  }>>;
4368
4549
  foreground: z.ZodOptional<z.ZodEnum<{
4369
4550
  surface: "surface";
4551
+ accent: "accent";
4370
4552
  background: "background";
4371
4553
  foreground: "foreground";
4372
- accent: "accent";
4373
4554
  muted: "muted";
4374
4555
  }>>;
4375
4556
  border: z.ZodOptional<z.ZodEnum<{
4376
4557
  surface: "surface";
4558
+ accent: "accent";
4377
4559
  background: "background";
4378
4560
  foreground: "foreground";
4379
- accent: "accent";
4380
4561
  muted: "muted";
4381
4562
  }>>;
4382
4563
  typography: z.ZodOptional<z.ZodEnum<{
@@ -4448,23 +4629,23 @@ export declare const manifestSchema: z.ZodObject<{
4448
4629
  styleTokens: z.ZodOptional<z.ZodObject<{
4449
4630
  background: z.ZodOptional<z.ZodEnum<{
4450
4631
  surface: "surface";
4632
+ accent: "accent";
4451
4633
  background: "background";
4452
4634
  foreground: "foreground";
4453
- accent: "accent";
4454
4635
  muted: "muted";
4455
4636
  }>>;
4456
4637
  foreground: z.ZodOptional<z.ZodEnum<{
4457
4638
  surface: "surface";
4639
+ accent: "accent";
4458
4640
  background: "background";
4459
4641
  foreground: "foreground";
4460
- accent: "accent";
4461
4642
  muted: "muted";
4462
4643
  }>>;
4463
4644
  border: z.ZodOptional<z.ZodEnum<{
4464
4645
  surface: "surface";
4646
+ accent: "accent";
4465
4647
  background: "background";
4466
4648
  foreground: "foreground";
4467
- accent: "accent";
4468
4649
  muted: "muted";
4469
4650
  }>>;
4470
4651
  typography: z.ZodOptional<z.ZodEnum<{
@@ -43,7 +43,7 @@ export { createBlockApi, BlockApiError } from './client';
43
43
  export type { BlockApiClient } from './client';
44
44
  export { BlockApiProvider, useBlockApi, useBlockApiOptional } from './context';
45
45
  export type { BlockApiProviderProps } from './context';
46
- export type { BlockApiConfig, BlockApiAuth, ApiKeyAuth, BearerAuth, NoAuth, ApiResponse, ApiSuccessResponse, ApiErrorResponse, FormSubmitRequest, FormSubmitResponse, FormConfigResponse, FormField, BookingSubmitRequest, BookingSubmitResponse, AppointmentBookingStatusRequest, AppointmentBookingStatusResponse, AvailableSlotsRequest, AvailableSlotsResponse, TimeSlot, AvailableDatesRequest, AvailableDatesResponse, BookingService, BookingServicesRequest, BookingServicesResponse, BookingServiceResponse, BookingResource, BookingResourcesRequest, BookingResourcesResponse, PublicEvent, PublicEventsRequest, PublicEventsResponse, EventVenue, PricingType, AccessRestriction, EventFilterCategory, EventFilterStaffMember, EventFilterVenue, EventFiltersResponse, EventRegisterRequest, EventRegisterResponse, EventCheckoutRequest, EventCheckoutResponse, PaymentMethod, EligibilityCheckRequest, EligibilityCheckResponse, EligiblePass, EligibleMembership, AvailablePass, AvailableMembership, CoursePaymentMethod, CourseEnrollRequest, CourseEnrollResponse, CourseEnrollSuccessResponse, CourseWaitlistResponse, CourseCheckoutRequest, CourseCheckoutResponse, DiscountContext, DiscountsAvailableRequest, DiscountsAvailableResponse, DiscountApplyLine, DiscountApplyRequest, DiscountApplyRejectedReason, DiscountApplyResponse, ShopCheckoutRequest, ShopCheckoutResponse, ShopDuplicateMembershipWarning, CustomerProfile, CustomerOrder, CustomerOrderInstalmentPlan, CustomerOrderInstalmentPlanStatus, CustomerOrderInstalmentRow, CustomerOrderInstalmentStatus, CustomerOrderPaymentState, EnabledModules, PortalMeResponse, PortalMeUpdateRequest, CustomerPass, CustomerPassCreditHistoryEntry, CustomerMembership, CustomerEventRegistration, PortalEventTicket, CustomerAppointment, AppointmentBookingQuestionsTaskDetail, BookingQuestionsTaskDetail, BookingQuestionsAnswerValue, BookingQuestionsField, BookingQuestionsFieldOption, BookingQuestionsSection, BeforeYouComeTaskSummary, CustomerCourseEnrollment, EventGuest, PortalCredit, PortalCreditSummary, PortalCreditTransaction, PortalCreditResponse, PortalOrderCheckoutRequest, PortalOrderCheckoutResponse, PortalDigitalProduct, PortalDigitalProductFile, PortalDigitalProductsResponse, PortalDigitalProductAccessResponse, PortalDigitalProductDownloadUrlResponse, PortalAppointmentBookingQuestionsResponse, PortalCreateAppointmentBookingQuestionsUploadUrlRequest, PortalCreateAppointmentBookingQuestionsUploadUrlResponse, PortalFinalizeAppointmentBookingQuestionsUploadRequest, PortalFinalizeAppointmentBookingQuestionsUploadResponse, PortalUpdateAppointmentBookingQuestionsRequest, PortalUpdateAppointmentBookingQuestionsResponse, PortalEventBookingQuestionsResponse, PortalCreateEventBookingQuestionsUploadUrlRequest, PortalCreateEventBookingQuestionsUploadUrlResponse, PortalFinalizeEventBookingQuestionsUploadRequest, PortalFinalizeEventBookingQuestionsUploadResponse, PortalUpdateEventBookingQuestionsRequest, PortalUpdateEventBookingQuestionsResponse, PortalCourseBookingQuestionsResponse, PortalCreateCourseBookingQuestionsUploadUrlRequest, PortalCreateCourseBookingQuestionsUploadUrlResponse, PortalFinalizeCourseBookingQuestionsUploadRequest, PortalFinalizeCourseBookingQuestionsUploadResponse, PortalUpdateCourseBookingQuestionsRequest, PortalUpdateCourseBookingQuestionsResponse, UpdateEventGuestsRequest, EventGuestsResponse, PortalCancelCourseEnrollmentRequest, PortalCancelCourseEnrollmentResult, PortalCancelAppointmentRequest, PortalCancelAppointmentResult, PortalCancelEventRegistrationRequest, PortalRefundInfo, PortalCancelEventRegistrationResult, PortalTransferEventRegistrationRequest, PortalTransferEventRegistrationResult, PortalRescheduleAppointmentRequest, PortalRescheduleAppointmentResponse, PortalCancelMembershipAtPeriodEndResult, MagicLinkRequest, } from './types';
46
+ export type { BlockApiConfig, BlockApiAuth, ApiKeyAuth, BearerAuth, NoAuth, ApiResponse, ApiSuccessResponse, ApiErrorResponse, FormSubmitRequest, FormSubmitResponse, FormConfigResponse, FormField, BookingSubmitRequest, BookingSubmitResponse, AppointmentBookingStatusRequest, AppointmentBookingStatusResponse, AvailableSlotsRequest, AvailableSlotsResponse, TimeSlot, AvailableDatesRequest, AvailableDatesResponse, BookingService, BookingServicesRequest, BookingServicesResponse, BookingServiceResponse, BookingResource, BookingResourcesRequest, BookingResourcesResponse, PublicEvent, PublicEventsRequest, PublicEventsResponse, EventVenue, PricingType, AccessRestriction, EventFilterCategory, EventFilterStaffMember, EventFilterVenue, EventFiltersResponse, EventRegisterRequest, EventRegisterResponse, EventCheckoutRequest, EventCheckoutResponse, PaymentMethod, EligibilityCheckRequest, EligibilityCheckResponse, EligiblePass, EligibleMembership, AvailablePass, AvailableMembership, CoursePaymentMethod, CourseEnrollRequest, CourseEnrollResponse, CourseEnrollSuccessResponse, CourseWaitlistResponse, CourseCheckoutRequest, CourseCheckoutResponse, DiscountContext, DiscountsAvailableRequest, DiscountsAvailableResponse, DiscountApplyLine, DiscountApplyRequest, DiscountApplyRejectedReason, DiscountApplyResponse, ShopCheckoutRequest, ShopCheckoutResponse, ShopDuplicateMembershipWarning, CustomerProfile, CustomerOrder, CustomerOrderInstalmentPlan, CustomerOrderInstalmentPlanStatus, CustomerOrderInstalmentRow, CustomerOrderInstalmentStatus, CustomerOrderPaymentState, EnabledModules, PortalMeResponse, PortalMeUpdateRequest, CustomerPass, CustomerPassCreditHistoryEntry, CustomerMembership, EventTicketBreakdownLine, CustomerEventRegistration, PortalEventTicket, CustomerAppointment, AppointmentBookingQuestionsTaskDetail, BookingQuestionsTaskDetail, BookingQuestionsAnswerValue, BookingQuestionsField, BookingQuestionsFieldOption, BookingQuestionsSection, BeforeYouComeTaskSummary, CustomerCourseEnrollment, EventGuest, PortalCredit, PortalCreditSummary, PortalCreditTransaction, PortalCreditResponse, PortalOrderCheckoutRequest, PortalOrderCheckoutResponse, PortalDigitalProduct, PortalDigitalProductFile, PortalDigitalProductsResponse, PortalDigitalProductAccessResponse, PortalDigitalProductDownloadUrlResponse, PortalAppointmentBookingQuestionsResponse, PortalCreateAppointmentBookingQuestionsUploadUrlRequest, PortalCreateAppointmentBookingQuestionsUploadUrlResponse, PortalFinalizeAppointmentBookingQuestionsUploadRequest, PortalFinalizeAppointmentBookingQuestionsUploadResponse, PortalUpdateAppointmentBookingQuestionsRequest, PortalUpdateAppointmentBookingQuestionsResponse, PortalEventBookingQuestionsResponse, PortalCreateEventBookingQuestionsUploadUrlRequest, PortalCreateEventBookingQuestionsUploadUrlResponse, PortalFinalizeEventBookingQuestionsUploadRequest, PortalFinalizeEventBookingQuestionsUploadResponse, PortalUpdateEventBookingQuestionsRequest, PortalUpdateEventBookingQuestionsResponse, PortalCourseBookingQuestionsResponse, PortalCreateCourseBookingQuestionsUploadUrlRequest, PortalCreateCourseBookingQuestionsUploadUrlResponse, PortalFinalizeCourseBookingQuestionsUploadRequest, PortalFinalizeCourseBookingQuestionsUploadResponse, PortalUpdateCourseBookingQuestionsRequest, PortalUpdateCourseBookingQuestionsResponse, UpdateEventGuestsRequest, EventGuestsResponse, PortalCancelCourseEnrollmentRequest, PortalCancelCourseEnrollmentResult, PortalCancelAppointmentRequest, PortalCancelAppointmentResult, PortalCancelEventRegistrationRequest, PortalRefundInfo, PortalCancelEventRegistrationResult, PortalTransferEventRegistrationRequest, PortalTransferEventRegistrationResult, PortalRescheduleAppointmentRequest, PortalRescheduleAppointmentResponse, PortalCancelMembershipAtPeriodEndResult, MagicLinkRequest, } from './types';
47
47
  export { discountAvailabilityAllowsManualEntry, discountAvailabilityHasDiscounts, getAutoAppliedDiscountPreview, } from './types';
48
48
  export type { BookingQuestionsDocumentAnswerValue } from '../../../portal/types';
49
49
  export { deriveCreditProductLabels, getCreditProductCreditUnit, getCreditProductTypeLabel, getPortalCreditProductCreditNoun, } from './creditProducts';
@@ -336,15 +336,27 @@ export interface EventRegisterGuest {
336
336
  email?: string | null;
337
337
  phone?: string | null;
338
338
  }
339
+ export interface EventTicketSelectionRequest {
340
+ ticketTypeId?: string | null;
341
+ quantity: number;
342
+ }
343
+ export interface EventTicketLineSummary {
344
+ ticketTypeId: string | null;
345
+ label: string;
346
+ description: string | null;
347
+ quantity: number;
348
+ unitPriceCents: number;
349
+ subtotalCents: number;
350
+ currency: string;
351
+ }
339
352
  export interface EventRegisterRequest {
340
353
  siteId: string;
341
354
  occurrenceId: string;
342
355
  attendanceMode?: 'in_person' | 'online';
343
- ticketTypeId?: string;
356
+ ticketSelections: EventTicketSelectionRequest[];
344
357
  selectedSlidingAmount?: number;
345
358
  email: string;
346
359
  name: string;
347
- ticketsCount: number;
348
360
  phone?: string;
349
361
  notes?: string;
350
362
  altchaSolution?: string | null;
@@ -366,6 +378,7 @@ export type EventRegisterResponse = {
366
378
  pendingPayment: boolean;
367
379
  passCreditsUsed?: number;
368
380
  alreadyRegistered?: boolean;
381
+ ticketLines: EventTicketLineSummary[];
369
382
  message?: string;
370
383
  } | {
371
384
  success: boolean;
@@ -426,10 +439,9 @@ export interface EligibilityCheckRequest {
426
439
  siteId: string;
427
440
  occurrenceId: string;
428
441
  attendanceMode?: 'in_person' | 'online';
429
- ticketTypeId?: string;
442
+ ticketSelections: EventTicketSelectionRequest[];
430
443
  selectedSlidingAmount?: number;
431
444
  email: string;
432
- ticketsCount: number;
433
445
  }
434
446
  export interface EligibilityCheckResponse {
435
447
  customerExists: boolean;
@@ -442,6 +454,7 @@ export interface EligibilityCheckResponse {
442
454
  requiresPayment: boolean;
443
455
  pricingMode?: "single" | "ticket_types" | "sliding_scale";
444
456
  selectedTicketTypeId?: string | null;
457
+ ticketLines: EventTicketLineSummary[];
445
458
  ticketTypes?: EligibilityEventTicketType[];
446
459
  eventPrice: number | null;
447
460
  eventPriceCurrency: string | null;
@@ -846,8 +859,8 @@ export interface ClaimGiftCardResponse {
846
859
  amountCents: number;
847
860
  currency: string;
848
861
  }
849
- export type { AppointmentBookingQuestionsTaskDetail, BookingQuestionsTaskDetail, BookingQuestionsAnswerValue, BookingQuestionsDocumentAnswerValue, BookingQuestionsField, BookingQuestionsFieldOption, BookingQuestionsSection, BeforeYouComeTaskSummary, CustomerProfile, CustomerOrderInstalmentPlan, CustomerOrderInstalmentPlanStatus, CustomerOrderInstalmentRow, CustomerOrderInstalmentStatus, CustomerOrder, CustomerOrderFilter, CustomerOrderItem, CustomerOrderPaymentState, CustomerOrderRefund, CustomerPass, CustomerPassCreditHistoryEntry, CustomerMembership, CustomerEventRegistration, CustomerCourseEnrollment, CustomerAppointment, EnabledModules, EventGuest, PortalCredit, PortalCreditSummary, PortalCreditTransaction, PortalDigitalProduct, PortalDigitalProductFile, } from "../../../portal/types";
850
- import type { EventGuest as EventGuestType } from "../../../portal/types";
862
+ export type { AppointmentBookingQuestionsTaskDetail, BookingQuestionsTaskDetail, BookingQuestionsAnswerValue, BookingQuestionsDocumentAnswerValue, BookingQuestionsField, BookingQuestionsFieldOption, BookingQuestionsSection, BeforeYouComeTaskSummary, CustomerProfile, CustomerOrderInstalmentPlan, CustomerOrderInstalmentPlanStatus, CustomerOrderInstalmentRow, CustomerOrderInstalmentStatus, CustomerOrder, CustomerOrderFilter, CustomerOrderItem, CustomerOrderPaymentState, CustomerOrderRefund, CustomerPass, CustomerPassCreditHistoryEntry, CustomerMembership, EventTicketBreakdownLine, CustomerEventRegistration, CustomerCourseEnrollment, CustomerAppointment, EnabledModules, EventGuest, PortalCredit, PortalCreditSummary, PortalCreditTransaction, PortalDigitalProduct, PortalDigitalProductFile, } from "../../../portal/types";
863
+ import type { EventGuest as EventGuestType, EventTicketBreakdownLine } from "../../../portal/types";
851
864
  /**
852
865
  * Full response from GET /api/portal/me including profile and enabled modules
853
866
  */
@@ -873,6 +886,8 @@ export interface PortalEventTicket {
873
886
  venueName: string | null;
874
887
  venueAddress: string | null;
875
888
  ticketsCount: number;
889
+ ticketLines: EventTicketBreakdownLine[];
890
+ ticketBreakdown: string | null;
876
891
  };
877
892
  }
878
893
  export interface MagicLinkRequest {
@@ -2,11 +2,12 @@ import React from 'react';
2
2
  import { type ButtonSizeName } from '../../../../../theme-core/src/buttons/index';
3
3
  import type { PreviewLinkedEntryFieldBinding } from '../../data';
4
4
  export type TextNodeProps = {
5
- value?: React.ReactNode;
5
+ value?: unknown;
6
6
  className?: string;
7
7
  path?: string;
8
8
  linkedEntryField?: PreviewLinkedEntryFieldBinding;
9
9
  maxLength?: number;
10
+ inlineTextFallbackPath?: string;
10
11
  children?: React.ReactNode;
11
12
  };
12
13
  export declare const TextNode: React.FC<TextNodeProps & {
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
- import type { OccurrenceContext, RegistrationAttendanceMode, RegistrationEvent } from './types';
2
+ import type { EventTicketSelectionLine, OccurrenceContext, RegistrationAttendanceMode, RegistrationEvent } from './types';
3
+ import { getVisibleTicketTypes } from './utils';
3
4
  type TicketSelectionStepProps = {
4
5
  event: RegistrationEvent | null;
5
6
  occurrenceContext?: OccurrenceContext | null;
@@ -7,8 +8,9 @@ type TicketSelectionStepProps = {
7
8
  onAttendanceModeChange?: (attendanceMode: RegistrationAttendanceMode) => void;
8
9
  ticketsCount: number;
9
10
  maxTickets: number;
10
- selectedTicketTypeId?: string | null;
11
- onTicketTypeChange?: (ticketTypeId: string) => void;
11
+ visibleTicketTypes?: ReturnType<typeof getVisibleTicketTypes>;
12
+ ticketSelections?: readonly EventTicketSelectionLine[];
13
+ onTicketSelectionsChange?: (lines: readonly EventTicketSelectionLine[]) => void;
12
14
  slidingScale?: Readonly<{
13
15
  minAmount: number;
14
16
  maxAmount: number;
@@ -1,7 +1,7 @@
1
1
  import type { DirectCheckoutCollectionOptionKind, PaymentMethod } from '../../api/types';
2
2
  import type { EventRegistrationDirectPaymentOption, EventRegistrationDirectPaymentSelectionState } from './eventPaymentOptions';
3
3
  import type { EventRegistrationContentEntry } from '../event-registration.interactive';
4
- import type { EligibilityData, FormData, Guest, GuestErrors, OccurrenceContext, PaymentSelection, PaymentStepState, PublicEvent, RegistrationEvent, RegistrationResult } from './types';
4
+ import type { EligibilityData, EventTicketSelectionLine, FormData, Guest, GuestErrors, OccurrenceContext, PaymentSelection, PaymentStepState, PublicEvent, RegistrationEvent, RegistrationResult } from './types';
5
5
  import type { SelectableEventTicketType } from './utils';
6
6
  import type { PortalAuthState, PortalProfile } from './hooks';
7
7
  import type { UseWaitlistClaimResult } from '../../shared/useWaitlistClaim';
@@ -100,6 +100,9 @@ export type EventRegistrationEventsModel = Readonly<{
100
100
  export type EventRegistrationTicketsModel = Readonly<{
101
101
  count: number;
102
102
  max: number;
103
+ selections: readonly EventTicketSelectionLine[];
104
+ summaryLines: UseEventRegistrationWizardResult['ticketSelectionSummaryLines'];
105
+ subtotalCents: number;
103
106
  selectedTicketTypeId: string | null;
104
107
  selectedTicketType: SelectableEventTicketType | null;
105
108
  visibleTicketTypes: readonly SelectableEventTicketType[];
@@ -191,6 +194,7 @@ export type EventRegistrationFlowActions = Readonly<{
191
194
  selectEvent: (event: RegistrationEvent) => void;
192
195
  selectAttendanceMode: (mode: 'in_person' | 'online' | null) => void;
193
196
  selectTicketType: (ticketTypeId: string | null) => void;
197
+ setTicketSelections: (lines: readonly EventTicketSelectionLine[]) => void;
194
198
  setTicketsCount: (count: number) => void;
195
199
  updateAttendee: (values: FormData) => void;
196
200
  updateGuests: (guests: Guest[]) => void;
@@ -4,6 +4,7 @@
4
4
  * Custom hooks for portal authentication and eligibility checking.
5
5
  * Extracted from the main EventRegistrationClient for better separation of concerns.
6
6
  */
7
+ import type { EventTicketSelectionLine } from './types';
7
8
  import { type EligibilityLookupState, type ExistingRegistrationLookupState } from './hooks.state';
8
9
  export type PortalAuthState = 'checking' | 'authenticated' | 'unauthenticated';
9
10
  export type PortalProfile = {
@@ -40,10 +41,9 @@ export declare function useEligibility(params: {
40
41
  enabled: boolean;
41
42
  occurrenceId: string;
42
43
  attendanceMode?: 'in_person' | 'online' | null;
43
- ticketTypeId: string | null;
44
+ ticketSelections: readonly EventTicketSelectionLine[];
44
45
  selectedSlidingAmount?: number | null;
45
46
  email: string;
46
- ticketsCount: number;
47
47
  }): UseEligibilityResult;
48
48
  export type UseExistingEventRegistrationResult = {
49
49
  state: ExistingRegistrationLookupState;