@riverbankcms/sdk 0.75.0 → 0.76.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 (87) hide show
  1. package/README.md +2 -0
  2. package/dist/{PreviewEditorSidebar-U2IHCBYN.mjs → PreviewEditorSidebar-X2HWXFOL.mjs} +171 -88
  3. package/dist/{PreviewEditorUI-ZGH2RQNP.mjs → PreviewEditorUI-AQXIXPOH.mjs} +2 -2
  4. package/dist/SdkPreviewModeRuntime-ZQNDCASH.mjs +8 -0
  5. package/dist/_dts/api/src/bookingOperations.d.ts +12 -0
  6. package/dist/_dts/api/src/index.d.ts +1 -1
  7. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +11 -3
  8. package/dist/_dts/block-form/src/blockDraftSaveability.d.ts +0 -1
  9. package/dist/_dts/block-form/src/client/index.d.ts +1 -1
  10. package/dist/_dts/block-form/src/manifest/utils.d.ts +24 -0
  11. package/dist/_dts/blocks/src/client/events.d.ts +3 -1
  12. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +4 -4
  13. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +6 -6
  14. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +3 -3
  15. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.interactive.d.ts +3 -27
  16. package/dist/_dts/blocks/src/system/runtime/nodes/booking-runtime-sources.d.ts +163 -0
  17. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +5 -5
  18. package/dist/_dts/blocks/src/system/runtime/shared/components/BookingOptionCompactRow.d.ts +29 -0
  19. package/dist/_dts/blocks/src/system/runtime/shared/components/BookingOptionList.d.ts +13 -0
  20. package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +4 -0
  21. package/dist/_dts/blocks/src/system/runtime/shared/index.d.ts +4 -3
  22. package/dist/_dts/blocks/src/system/runtime/shared/utils/bookingRoute.d.ts +20 -0
  23. package/dist/_dts/blocks/src/system/runtime/shared/utils/index.d.ts +2 -1
  24. package/dist/_dts/blocks/src/system/types/link.d.ts +12 -0
  25. package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +2 -0
  26. package/dist/_dts/editor-blocks/src/block-editor/BlockCard.d.ts +3 -1
  27. package/dist/_dts/editor-blocks/src/block-editor/BlockCardHeader.d.ts +3 -1
  28. package/dist/_dts/editor-blocks/src/block-editor/BlockSettingsModal.d.ts +5 -1
  29. package/dist/_dts/editor-blocks/src/block-editor/SortableBlockItem.d.ts +2 -0
  30. package/dist/_dts/editor-blocks/src/block-editor/actionControlMode.d.ts +2 -0
  31. package/dist/_dts/editor-blocks/src/index.d.ts +1 -1
  32. package/dist/_dts/preview-next/src/client/preview/themeOverlay.d.ts +21 -3
  33. package/dist/_dts/sdk/src/components.d.ts +2 -2
  34. package/dist/_dts/sdk/src/rendering/index.d.ts +2 -2
  35. package/dist/_dts/sdk/src/rendering/overrideResolution.d.ts +6 -0
  36. package/dist/_dts/sdk/src/rendering/overrides.d.ts +21 -1
  37. package/dist/_dts/sdk/src/rendering/server.d.ts +4 -3
  38. package/dist/_dts/sdk/src/version.d.ts +1 -1
  39. package/dist/{chunk-GFE74WRD.mjs → chunk-LYI7TEMH.mjs} +188 -90
  40. package/dist/{chunk-BGMNDF6T.mjs → chunk-Q4OLG66B.mjs} +7 -7
  41. package/dist/{chunk-RWXQBRQZ.mjs → chunk-TW2Y4RR5.mjs} +69 -14
  42. package/dist/{chunk-ZSHFGFUG.mjs → chunk-V5VORNEJ.mjs} +1 -1
  43. package/dist/cli/index.mjs +1 -1
  44. package/dist/client/{accordion-T2UD2ZTH.mjs → accordion-2YHIBOZH.mjs} +1 -1
  45. package/dist/client/{bookingForm-GUP75FKN.mjs → bookingForm-35IBDWAS.mjs} +3 -13
  46. package/dist/client/bookings.mjs +11 -11
  47. package/dist/client/{carousel-2NQA6V57.mjs → carousel-K6XG7NZQ.mjs} +1 -1
  48. package/dist/client/{cart-5TFIAFDS.mjs → cart-HCFYUTTU.mjs} +4 -4
  49. package/dist/client/{checkout-TP4WAHZE.mjs → checkout-J3U4XR7K.mjs} +4 -4
  50. package/dist/client/{chunk-FU2QRZMX.mjs → chunk-7UOSCYY4.mjs} +71 -24
  51. package/dist/client/{chunk-ZLMS67RR.mjs → chunk-BOIHIU7E.mjs} +1 -1
  52. package/dist/client/{chunk-CY2ZTSE5.mjs → chunk-FGUIVT2B.mjs} +1 -1
  53. package/dist/client/{chunk-WJXXNDSE.mjs → chunk-J227A3CQ.mjs} +1 -1
  54. package/dist/client/{chunk-NWOUL6JY.mjs → chunk-PFBX3IQL.mjs} +3 -3
  55. package/dist/client/{chunk-VUAOE3AG.mjs → chunk-SNSWVZEP.mjs} +4 -4
  56. package/dist/client/client.mjs +2261 -2279
  57. package/dist/client/{courseRegistration-5DPU6PDY.mjs → courseRegistration-ZBXS7VGI.mjs} +3 -3
  58. package/dist/client/{eventCalendar-F3GZGTEF.mjs → eventCalendar-EQQZHJBA.mjs} +5 -5
  59. package/dist/client/{eventCombined-BQOB6QMY.mjs → eventCombined-JCFTGBFQ.mjs} +5 -5
  60. package/dist/client/{eventDetails-PEM2EJWE.mjs → eventDetails-HLUTQSYY.mjs} +5 -5
  61. package/dist/client/{eventListing-YMIQPVME.mjs → eventListing-FG4MICVB.mjs} +5 -5
  62. package/dist/client/{eventRegistration-4I6ZNDUF.mjs → eventRegistration-GUEB7LBT.mjs} +5 -5
  63. package/dist/client/{form-ZJVAYZ6G.mjs → form-YQEW4YIT.mjs} +1 -1
  64. package/dist/client/{headerSection-TOT5MGTF.mjs → headerSection-GTR3TTRM.mjs} +2 -2
  65. package/dist/client/{locationMap-J66NZREU.mjs → locationMap-SPC7VGUH.mjs} +1 -1
  66. package/dist/client/{newsletterForm-ET2XUMRO.mjs → newsletterForm-4IW5BLID.mjs} +1 -1
  67. package/dist/client/{productDetail-C2XIH7C5.mjs → productDetail-KP5H2WJO.mjs} +4 -4
  68. package/dist/client/{productList-T2AZLFTP.mjs → productList-3M3M72XZ.mjs} +4 -4
  69. package/dist/client/rendering/client.mjs +3132 -3147
  70. package/dist/client/rendering/islands.mjs +18 -18
  71. package/dist/client/rendering.mjs +3344 -3354
  72. package/dist/client/{shop-UZ6IUZXD.mjs → shop-ACQKVGOM.mjs} +4 -4
  73. package/dist/preview-next/chrome.css +1 -1
  74. package/dist/preview-next/client/runtime.mjs +3 -3
  75. package/dist/preview-next/editor-base.css +2 -148
  76. package/dist/preview-next/editor-chrome.css +179 -0
  77. package/dist/{sdk-runtime-JCUQM63Y.mjs → sdk-runtime-K7HNB4U2.mjs} +4 -4
  78. package/dist/server/components.mjs +939 -891
  79. package/dist/server/index.mjs +1 -1
  80. package/dist/server/next.mjs +887 -840
  81. package/dist/server/prebuild.mjs +1 -1
  82. package/dist/server/rendering/server.mjs +951 -894
  83. package/dist/server/rendering.mjs +944 -896
  84. package/dist/server/server.mjs +1 -1
  85. package/package.json +1 -1
  86. package/dist/SdkPreviewModeRuntime-MTUGBTLQ.mjs +0 -8
  87. /package/dist/client/{chunk-2PHQZ666.mjs → chunk-JEZECJ3W.mjs} +0 -0
@@ -0,0 +1,24 @@
1
+ import type { FieldValues } from 'react-hook-form';
2
+ import type { FieldConfig, GroupFieldConfig, RepeaterFieldConfig } from '../fields/types';
3
+ export declare function assertNever(value: never): never;
4
+ export declare function getGroupChildFields(field: GroupFieldConfig): FieldConfig[];
5
+ export declare function getRepeaterChildFields(field: RepeaterFieldConfig): FieldConfig[];
6
+ export type VisibleWhenConfig = {
7
+ field: string;
8
+ equals?: unknown;
9
+ notEquals?: unknown;
10
+ oneOf?: unknown[];
11
+ notIn?: unknown[];
12
+ };
13
+ /**
14
+ * Determines whether the provided value satisfies the given visibility condition.
15
+ */
16
+ export declare function isVisibleWhenSatisfied(config: VisibleWhenConfig, current: unknown): boolean;
17
+ /**
18
+ * Utility to traverse the form error bag using a dotted path (supports array indices).
19
+ */
20
+ export declare function getErrorAtPath(errors: FieldValues | undefined, path: string): unknown;
21
+ /**
22
+ * Normalizes a dot/bracket notation path to an array of string segments.
23
+ */
24
+ export declare function normalizePath(path: string): string[];
@@ -1,4 +1,6 @@
1
1
  export { BlockApiProvider, type BlockApiConfig, } from '../system/runtime/api';
2
2
  export { EventRegistrationIslandClient, type EventRegistrationIslandClientProps, } from '../system/runtime/nodes/event-registration.client';
3
3
  export { EventDetailsIslandClient, type EventDetailsIslandClientProps, } from '../system/runtime/nodes/event-details.client';
4
- export { EventCalendarClient, type EventCalendarClientProps, EventCombinedIslandClient, type EventCombinedClientProps, type EventCombinedIslandClientProps, EventListingClient, type EventListingClientProps, } from '../system/runtime/nodes/events';
4
+ export { EventCalendarClient, type EventCalendarClientProps, } from '../system/runtime/nodes/events/EventCalendar.client';
5
+ export { EventCombinedIslandClient, type EventCombinedClientProps, type EventCombinedIslandClientProps, } from '../system/runtime/nodes/events/EventCombined.client';
6
+ export { EventListingClient, type EventListingClientProps, } from '../system/runtime/nodes/events/EventListing.client';
@@ -239,7 +239,7 @@ export declare const proofBlockIslandCodecs: {
239
239
  className: string | null;
240
240
  summaryButtonText: string;
241
241
  }>;
242
- hydration: Readonly<Omit<import("../system/runtime/nodes/event-registration").EventRegistrationClientProps, "siteId" | "stage" | "className" | "buttonText" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint">>;
242
+ hydration: Readonly<Omit<import("../system/runtime/nodes/event-registration").EventRegistrationClientProps, "siteId" | "stage" | "className" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint" | "buttonText">>;
243
243
  }>>;
244
244
  }>) => unknown;
245
245
  decode: (input: unknown) => import("./runtime").DecodeResult<Readonly<Readonly<{
@@ -258,7 +258,7 @@ export declare const proofBlockIslandCodecs: {
258
258
  className: string | null;
259
259
  summaryButtonText: string;
260
260
  }>;
261
- hydration: Readonly<Omit<import("../system/runtime/nodes/event-registration").EventRegistrationClientProps, "siteId" | "stage" | "className" | "buttonText" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint">>;
261
+ hydration: Readonly<Omit<import("../system/runtime/nodes/event-registration").EventRegistrationClientProps, "siteId" | "stage" | "className" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint" | "buttonText">>;
262
262
  }>>;
263
263
  }>>;
264
264
  }>;
@@ -1289,7 +1289,7 @@ export declare const runtimeIslandCodecs: {
1289
1289
  className: string | null;
1290
1290
  summaryButtonText: string;
1291
1291
  }>;
1292
- hydration: Readonly<Omit<import("../system/runtime/nodes/event-registration").EventRegistrationClientProps, "siteId" | "stage" | "className" | "buttonText" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint">>;
1292
+ hydration: Readonly<Omit<import("../system/runtime/nodes/event-registration").EventRegistrationClientProps, "siteId" | "stage" | "className" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint" | "buttonText">>;
1293
1293
  }>>;
1294
1294
  }>) => unknown;
1295
1295
  decode: (input: unknown) => import("./runtime").DecodeResult<Readonly<Readonly<{
@@ -1308,7 +1308,7 @@ export declare const runtimeIslandCodecs: {
1308
1308
  className: string | null;
1309
1309
  summaryButtonText: string;
1310
1310
  }>;
1311
- hydration: Readonly<Omit<import("../system/runtime/nodes/event-registration").EventRegistrationClientProps, "siteId" | "stage" | "className" | "buttonText" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint">>;
1311
+ hydration: Readonly<Omit<import("../system/runtime/nodes/event-registration").EventRegistrationClientProps, "siteId" | "stage" | "className" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint" | "buttonText">>;
1312
1312
  }>>;
1313
1313
  }>>;
1314
1314
  }>;
@@ -2368,7 +2368,7 @@ export declare const runtimeBackedBlockClientEntries: {
2368
2368
  className: string | null;
2369
2369
  summaryButtonText: string;
2370
2370
  }>;
2371
- hydration: Readonly<Omit<import("../nodes/event-registration").EventRegistrationClientProps, "siteId" | "stage" | "className" | "buttonText" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint">>;
2371
+ hydration: Readonly<Omit<import("../nodes/event-registration").EventRegistrationClientProps, "siteId" | "stage" | "className" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint" | "buttonText">>;
2372
2372
  }>;
2373
2373
  contracts: Readonly<{
2374
2374
  source: Readonly<{
@@ -2427,7 +2427,7 @@ export declare const runtimeBackedBlockClientEntries: {
2427
2427
  className: string | null;
2428
2428
  summaryButtonText: string;
2429
2429
  }>;
2430
- hydration: Readonly<Omit<import("../nodes/event-registration").EventRegistrationClientProps, "siteId" | "stage" | "className" | "buttonText" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint">>;
2430
+ hydration: Readonly<Omit<import("../nodes/event-registration").EventRegistrationClientProps, "siteId" | "stage" | "className" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint" | "buttonText">>;
2431
2431
  }>) => unknown;
2432
2432
  decode: (input: unknown) => import("../../../contracts").DecodeResult<Readonly<{
2433
2433
  display: Readonly<{
@@ -2436,7 +2436,7 @@ export declare const runtimeBackedBlockClientEntries: {
2436
2436
  className: string | null;
2437
2437
  summaryButtonText: string;
2438
2438
  }>;
2439
- hydration: Readonly<Omit<import("../nodes/event-registration").EventRegistrationClientProps, "siteId" | "stage" | "className" | "buttonText" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint">>;
2439
+ hydration: Readonly<Omit<import("../nodes/event-registration").EventRegistrationClientProps, "siteId" | "stage" | "className" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint" | "buttonText">>;
2440
2440
  }>>;
2441
2441
  }>;
2442
2442
  }>;
@@ -2475,7 +2475,7 @@ export declare const runtimeBackedBlockClientEntries: {
2475
2475
  className: string | null;
2476
2476
  summaryButtonText: string;
2477
2477
  }>;
2478
- hydration: Readonly<Omit<import("../nodes/event-registration").EventRegistrationClientProps, "siteId" | "stage" | "className" | "buttonText" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint">>;
2478
+ hydration: Readonly<Omit<import("../nodes/event-registration").EventRegistrationClientProps, "siteId" | "stage" | "className" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint" | "buttonText">>;
2479
2479
  }>;
2480
2480
  contracts: Readonly<{
2481
2481
  source: Readonly<{
@@ -2534,7 +2534,7 @@ export declare const runtimeBackedBlockClientEntries: {
2534
2534
  className: string | null;
2535
2535
  summaryButtonText: string;
2536
2536
  }>;
2537
- hydration: Readonly<Omit<import("../nodes/event-registration").EventRegistrationClientProps, "siteId" | "stage" | "className" | "buttonText" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint">>;
2537
+ hydration: Readonly<Omit<import("../nodes/event-registration").EventRegistrationClientProps, "siteId" | "stage" | "className" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint" | "buttonText">>;
2538
2538
  }>) => unknown;
2539
2539
  decode: (input: unknown) => import("../../../contracts").DecodeResult<Readonly<{
2540
2540
  display: Readonly<{
@@ -2543,7 +2543,7 @@ export declare const runtimeBackedBlockClientEntries: {
2543
2543
  className: string | null;
2544
2544
  summaryButtonText: string;
2545
2545
  }>;
2546
- hydration: Readonly<Omit<import("../nodes/event-registration").EventRegistrationClientProps, "siteId" | "stage" | "className" | "buttonText" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint">>;
2546
+ hydration: Readonly<Omit<import("../nodes/event-registration").EventRegistrationClientProps, "siteId" | "stage" | "className" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint" | "buttonText">>;
2547
2547
  }>>;
2548
2548
  }>;
2549
2549
  }>;
@@ -1199,7 +1199,7 @@ export declare const runtimeBackedBlockServerEntries: {
1199
1199
  className: string | null;
1200
1200
  summaryButtonText: string;
1201
1201
  }>;
1202
- hydration: Readonly<Omit<import("../nodes/event-registration").EventRegistrationClientProps, "siteId" | "stage" | "className" | "buttonText" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint">>;
1202
+ hydration: Readonly<Omit<import("../nodes/event-registration").EventRegistrationClientProps, "siteId" | "stage" | "className" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint" | "buttonText">>;
1203
1203
  }>;
1204
1204
  contracts: Readonly<{
1205
1205
  source: Readonly<{
@@ -1258,7 +1258,7 @@ export declare const runtimeBackedBlockServerEntries: {
1258
1258
  className: string | null;
1259
1259
  summaryButtonText: string;
1260
1260
  }>;
1261
- hydration: Readonly<Omit<import("../nodes/event-registration").EventRegistrationClientProps, "siteId" | "stage" | "className" | "buttonText" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint">>;
1261
+ hydration: Readonly<Omit<import("../nodes/event-registration").EventRegistrationClientProps, "siteId" | "stage" | "className" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint" | "buttonText">>;
1262
1262
  }>) => unknown;
1263
1263
  decode: (input: unknown) => import("../../../contracts").DecodeResult<Readonly<{
1264
1264
  display: Readonly<{
@@ -1267,7 +1267,7 @@ export declare const runtimeBackedBlockServerEntries: {
1267
1267
  className: string | null;
1268
1268
  summaryButtonText: string;
1269
1269
  }>;
1270
- hydration: Readonly<Omit<import("../nodes/event-registration").EventRegistrationClientProps, "siteId" | "stage" | "className" | "buttonText" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint">>;
1270
+ hydration: Readonly<Omit<import("../nodes/event-registration").EventRegistrationClientProps, "siteId" | "stage" | "className" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint" | "buttonText">>;
1271
1271
  }>>;
1272
1272
  }>;
1273
1273
  }>;
@@ -1,30 +1,8 @@
1
- import { z } from "zod";
2
1
  import { type InteractiveIslandProps } from "../../../contracts/islands";
3
- import { type BookingFormService, type BookingFormConfig, type BookingFormServicesSource, type BookingFormSettings, type BookingFormSourceRecord } from "./booking-form.state";
2
+ import { type BookingFormService, type BookingFormConfig, type BookingFormServicesSource } from "./booking-form.state";
3
+ import { type BookingFormRebookContext, type BookingFormSourceProps } from "./booking-runtime-sources";
4
4
  export type { BookingFormConfig, BookingFormService };
5
- export type BookingFormRebookContext = Readonly<{
6
- kind: "portal_rebook";
7
- }>;
8
- export type BookingFormSourceProps = Readonly<{
9
- siteId?: string;
10
- apiBaseUrl?: string;
11
- portalToken?: string | null;
12
- formId?: string;
13
- serviceId?: string | null;
14
- resourceId?: string | null;
15
- initialData?: Readonly<Record<string, unknown>> | null;
16
- noticeMessage?: string | null;
17
- requiresServiceSelection?: boolean;
18
- requiresResourceSelection?: boolean;
19
- shouldAutoSelectSingleResource?: boolean;
20
- rebookContext?: BookingFormRebookContext | null;
21
- submitLabel?: string | null;
22
- successMessage?: string | null;
23
- form?: BookingFormSourceRecord | null;
24
- services?: BookingFormServicesSource | null;
25
- spamProtectionEnabled?: boolean;
26
- className?: string | null;
27
- }>;
5
+ export type { BookingFormRebookContext, BookingFormSourceProps };
28
6
  export type BookingFormDisplay = Readonly<{
29
7
  kind: "booking-form";
30
8
  state: "missing" | "ready";
@@ -47,8 +25,6 @@ export type BookingFormHydration = Readonly<{
47
25
  services: readonly BookingFormService[];
48
26
  spamProtectionEnabled?: boolean;
49
27
  }>;
50
- export declare const bookingSettingsSchema: z.ZodType<BookingFormSettings>;
51
- export declare const bookingSourceFormSchema: z.ZodType<BookingFormSourceRecord>;
52
28
  type BookingFormIslandMeta = Readonly<{
53
29
  siteId?: string;
54
30
  apiBaseUrl?: string;
@@ -0,0 +1,163 @@
1
+ import { z } from "zod";
2
+ import type { PublicEvent } from "../../blocks/events/shared/types";
3
+ import type { BookingFormField, BookingFormService, BookingFormServicesSource, BookingFormSettings, BookingFormSourceRecord } from "./booking-form.state";
4
+ import type { EventRegistrationContentEntry, EventRegistrationSourceProps } from "./event-registration.interactive";
5
+ export declare const APPOINTMENT_BOOKING_RUNTIME_FORM_ID = "booking-form";
6
+ export type BookingFormRebookContext = Readonly<{
7
+ kind: "portal_rebook";
8
+ }>;
9
+ export type BookingFormSourceProps = Readonly<{
10
+ siteId?: string;
11
+ apiBaseUrl?: string;
12
+ portalToken?: string | null;
13
+ formId?: string;
14
+ serviceId?: string | null;
15
+ resourceId?: string | null;
16
+ initialData?: Readonly<Record<string, unknown>> | null;
17
+ noticeMessage?: string | null;
18
+ requiresServiceSelection?: boolean;
19
+ requiresResourceSelection?: boolean;
20
+ shouldAutoSelectSingleResource?: boolean;
21
+ rebookContext?: BookingFormRebookContext | null;
22
+ submitLabel?: string | null;
23
+ successMessage?: string | null;
24
+ form?: BookingFormSourceRecord | null;
25
+ services?: BookingFormServicesSource | null;
26
+ spamProtectionEnabled?: boolean;
27
+ className?: string | null;
28
+ }>;
29
+ export declare const bookingFieldSchema: z.ZodType<BookingFormField>;
30
+ export declare const bookingSettingsSchema: z.ZodType<BookingFormSettings>;
31
+ export declare const bookingSourceFormSchema: z.ZodType<BookingFormSourceRecord>;
32
+ export type AppointmentBookingRuntimeTarget = Readonly<{
33
+ kind: "appointment-form";
34
+ formId: string;
35
+ requestedServiceId: string | null;
36
+ requestedResourceId: string | null;
37
+ rebookContext: BookingFormRebookContext | null;
38
+ }>;
39
+ export type EventRegistrationRuntimeTarget = Readonly<{
40
+ kind: "event-occurrence";
41
+ occurrenceId: string;
42
+ seriesId: string | null;
43
+ }> | Readonly<{
44
+ kind: "event-series";
45
+ seriesId: string;
46
+ }>;
47
+ export type BookingRuntimeTarget = AppointmentBookingRuntimeTarget | EventRegistrationRuntimeTarget;
48
+ export type BookingRuntimeSourceLoadError = Readonly<{
49
+ kind: "appointments-disabled";
50
+ target: AppointmentBookingRuntimeTarget;
51
+ }> | Readonly<{
52
+ kind: "source-not-found";
53
+ target: BookingRuntimeTarget;
54
+ source: "form" | "service" | "resource" | "event" | "occurrence";
55
+ }> | Readonly<{
56
+ kind: "source-unavailable";
57
+ target: BookingRuntimeTarget;
58
+ reason: "appointments-disabled" | "missing-form" | "missing-services" | "stale-service" | "stale-resource" | "event-unavailable" | "occurrence-unavailable";
59
+ }> | Readonly<{
60
+ kind: "invalid-source-data";
61
+ target: BookingRuntimeTarget;
62
+ issues: readonly string[];
63
+ }> | Readonly<{
64
+ kind: "unsupported-target";
65
+ target: BookingRuntimeTarget;
66
+ }>;
67
+ export type BookingRuntimeSourceLoader<TLoaded> = Readonly<{
68
+ load: (target: BookingRuntimeTarget) => Promise<Readonly<{
69
+ ok: true;
70
+ value: TLoaded;
71
+ }> | Readonly<{
72
+ ok: false;
73
+ error: BookingRuntimeSourceLoadError;
74
+ }>>;
75
+ }>;
76
+ export type AppointmentBookingFormSourceInput = Readonly<{
77
+ id: string;
78
+ name: string;
79
+ schemaJson: unknown;
80
+ settingsJson: unknown;
81
+ }>;
82
+ export type AppointmentBookingFormSourceValidation = Readonly<{
83
+ ok: true;
84
+ value: BookingFormSourceRecord;
85
+ }> | Readonly<{
86
+ ok: false;
87
+ issues: readonly string[];
88
+ }>;
89
+ export type AppointmentBookingServiceSourceInput = Readonly<{
90
+ id: string;
91
+ title: string;
92
+ description?: string | null;
93
+ durationMinutes?: number;
94
+ priceAmount?: number | null;
95
+ priceCurrency?: string | null;
96
+ paymentTerms?: BookingFormService["paymentTerms"];
97
+ paymentTermsAvailability?: BookingFormService["paymentTermsAvailability"];
98
+ }>;
99
+ export type AppointmentBookingSourceProps = BookingFormSourceProps & Readonly<{
100
+ siteId: string;
101
+ formId: string;
102
+ form: BookingFormSourceRecord;
103
+ services: BookingFormService[];
104
+ serviceId: string | null;
105
+ resourceId: string | null;
106
+ initialData: Readonly<Record<string, unknown>> | null;
107
+ noticeMessage: string | null;
108
+ requiresServiceSelection: boolean;
109
+ requiresResourceSelection: boolean;
110
+ shouldAutoSelectSingleResource: boolean;
111
+ rebookContext: BookingFormRebookContext | null;
112
+ }>;
113
+ export declare function buildAppointmentBookingRuntimeTarget(input: Readonly<{
114
+ formId?: string | null;
115
+ requestedServiceId?: string | null;
116
+ requestedResourceId?: string | null;
117
+ rebookContext?: BookingFormRebookContext | null;
118
+ }>): AppointmentBookingRuntimeTarget;
119
+ export declare function normalizeAppointmentBookingFormSource(input: Readonly<{
120
+ siteId: string;
121
+ form: AppointmentBookingFormSourceInput;
122
+ }>): BookingFormSourceRecord;
123
+ export declare function validateAppointmentBookingFormSource(input: Readonly<{
124
+ siteId: string;
125
+ form: AppointmentBookingFormSourceInput;
126
+ }>): AppointmentBookingFormSourceValidation;
127
+ export declare function normalizeAppointmentBookingServices(input: Readonly<{
128
+ siteId: string;
129
+ services: readonly AppointmentBookingServiceSourceInput[];
130
+ }>): BookingFormService[];
131
+ export declare function buildAppointmentBookingSourceProps(input: Readonly<{
132
+ siteId: string;
133
+ apiBaseUrl?: string;
134
+ portalToken?: string | null;
135
+ form: AppointmentBookingFormSourceInput;
136
+ services: readonly AppointmentBookingServiceSourceInput[];
137
+ serviceId: string | null;
138
+ resourceId: string | null;
139
+ initialData: Readonly<Record<string, unknown>> | null;
140
+ noticeMessage: string | null;
141
+ requiresServiceSelection: boolean;
142
+ requiresResourceSelection: boolean;
143
+ shouldAutoSelectSingleResource: boolean;
144
+ rebookContext: BookingFormRebookContext | null;
145
+ }>): AppointmentBookingSourceProps;
146
+ export declare function buildEventRegistrationRuntimeTarget(input: Readonly<{
147
+ kind: "event-occurrence";
148
+ occurrenceId: string;
149
+ seriesId?: string | null;
150
+ }> | Readonly<{
151
+ kind: "event-series";
152
+ seriesId: string;
153
+ }>): EventRegistrationRuntimeTarget;
154
+ export declare function buildEventRegistrationSourceProps(input: Readonly<{
155
+ siteId: string;
156
+ apiBaseUrl?: string;
157
+ portalToken?: string | null;
158
+ occurrenceContext?: EventRegistrationSourceProps["occurrenceContext"];
159
+ contentEntry?: EventRegistrationContentEntry | null;
160
+ events?: readonly PublicEvent[] | null;
161
+ stage?: EventRegistrationSourceProps["stage"];
162
+ supportEmail?: string;
163
+ }> & Omit<EventRegistrationSourceProps, "siteId" | "apiBaseUrl" | "portalToken" | "occurrenceContext" | "contentEntry" | "events" | "stage" | "supportEmail">): EventRegistrationSourceProps;
@@ -72,7 +72,7 @@ export declare const eventRegistrationBlockRuntime: Readonly<{
72
72
  className: string | null;
73
73
  summaryButtonText: string;
74
74
  }>;
75
- hydration: Readonly<Omit<InternalEventRegistrationClientProps, "siteId" | "stage" | "className" | "buttonText" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint">>;
75
+ hydration: Readonly<Omit<InternalEventRegistrationClientProps, "siteId" | "stage" | "className" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint" | "buttonText">>;
76
76
  }>;
77
77
  contracts: Readonly<{
78
78
  source: Readonly<{
@@ -131,7 +131,7 @@ export declare const eventRegistrationBlockRuntime: Readonly<{
131
131
  className: string | null;
132
132
  summaryButtonText: string;
133
133
  }>;
134
- hydration: Readonly<Omit<InternalEventRegistrationClientProps, "siteId" | "stage" | "className" | "buttonText" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint">>;
134
+ hydration: Readonly<Omit<InternalEventRegistrationClientProps, "siteId" | "stage" | "className" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint" | "buttonText">>;
135
135
  }>) => unknown;
136
136
  decode: (input: unknown) => import("../../../contracts").DecodeResult<Readonly<{
137
137
  display: Readonly<{
@@ -140,7 +140,7 @@ export declare const eventRegistrationBlockRuntime: Readonly<{
140
140
  className: string | null;
141
141
  summaryButtonText: string;
142
142
  }>;
143
- hydration: Readonly<Omit<InternalEventRegistrationClientProps, "siteId" | "stage" | "className" | "buttonText" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint">>;
143
+ hydration: Readonly<Omit<InternalEventRegistrationClientProps, "siteId" | "stage" | "className" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint" | "buttonText">>;
144
144
  }>>;
145
145
  }>;
146
146
  }>;
@@ -162,7 +162,7 @@ export declare const eventRegistrationInteractiveIslandPropsCodec: Readonly<{
162
162
  className: string | null;
163
163
  summaryButtonText: string;
164
164
  }>;
165
- hydration: Readonly<Omit<InternalEventRegistrationClientProps, "siteId" | "stage" | "className" | "buttonText" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint">>;
165
+ hydration: Readonly<Omit<InternalEventRegistrationClientProps, "siteId" | "stage" | "className" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint" | "buttonText">>;
166
166
  }>>;
167
167
  }>) => unknown;
168
168
  decode: (input: unknown) => import("../../../contracts").DecodeResult<Readonly<Readonly<{
@@ -181,7 +181,7 @@ export declare const eventRegistrationInteractiveIslandPropsCodec: Readonly<{
181
181
  className: string | null;
182
182
  summaryButtonText: string;
183
183
  }>;
184
- hydration: Readonly<Omit<InternalEventRegistrationClientProps, "siteId" | "stage" | "className" | "buttonText" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint">>;
184
+ hydration: Readonly<Omit<InternalEventRegistrationClientProps, "siteId" | "stage" | "className" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint" | "buttonText">>;
185
185
  }>>;
186
186
  }>>;
187
187
  }>;
@@ -0,0 +1,29 @@
1
+ import React from 'react';
2
+ import { type ThemeButtonVariantId } from '../../../../../../theme-core/src/buttons/index';
3
+ export type BookingOptionMetaItem = Readonly<{
4
+ id?: string;
5
+ label: string;
6
+ icon?: React.ReactNode;
7
+ className?: string;
8
+ }>;
9
+ export type BookingOptionCompactRowAction = Readonly<{
10
+ kind: 'action';
11
+ label: string;
12
+ href: string;
13
+ }> | Readonly<{
14
+ kind: 'status';
15
+ label: string;
16
+ }>;
17
+ export type BookingOptionCompactRowViewModel = Readonly<{
18
+ id: string;
19
+ title: string;
20
+ primaryMeta?: readonly string[];
21
+ secondaryMeta?: readonly BookingOptionMetaItem[];
22
+ priceLabel?: string | null;
23
+ action: BookingOptionCompactRowAction;
24
+ }>;
25
+ export type BookingOptionCompactRowProps = Readonly<{
26
+ option: BookingOptionCompactRowViewModel;
27
+ buttonVariant?: ThemeButtonVariantId;
28
+ }>;
29
+ export declare function BookingOptionCompactRow({ option, buttonVariant, }: BookingOptionCompactRowProps): React.ReactElement;
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import type { ThemeButtonVariantId } from '../../../../../../theme-core/src/buttons/index';
3
+ import { type BookingOptionCompactRowViewModel } from './BookingOptionCompactRow';
4
+ export type BookingOptionGroupViewModel = Readonly<{
5
+ id: string;
6
+ title: string;
7
+ options: readonly BookingOptionCompactRowViewModel[];
8
+ }>;
9
+ export type BookingOptionListProps = Readonly<{
10
+ groups: readonly BookingOptionGroupViewModel[];
11
+ buttonVariant?: ThemeButtonVariantId;
12
+ }>;
13
+ export declare function BookingOptionList({ groups, buttonVariant, }: BookingOptionListProps): React.ReactElement;
@@ -6,6 +6,10 @@ export { ClockIcon } from './ClockIcon';
6
6
  export { CrossIcon } from './CrossIcon';
7
7
  export { ActionRow } from './ActionRow';
8
8
  export type { ActionRowProps } from './ActionRow';
9
+ export { BookingOptionCompactRow } from './BookingOptionCompactRow';
10
+ export type { BookingOptionCompactRowAction, BookingOptionCompactRowProps, BookingOptionCompactRowViewModel, BookingOptionMetaItem, } from './BookingOptionCompactRow';
11
+ export { BookingOptionList } from './BookingOptionList';
12
+ export type { BookingOptionGroupViewModel, BookingOptionListProps, } from './BookingOptionList';
9
13
  export { FieldValidationMessage, getFieldValidationControlProps, } from './FieldValidationMessage';
10
14
  export type { FieldValidationControlInput, FieldValidationControlProps, FieldValidationMessageProps, } from './FieldValidationMessage';
11
15
  export { FeedbackMessage } from './FeedbackMessage';
@@ -5,7 +5,8 @@
5
5
  */
6
6
  export type { FormData, ButtonVariant } from './types';
7
7
  export { DEFAULT_CURRENCY } from './types';
8
- export { buildCheckoutReturnUrls, resolveDedicatedBookingPath, formatPrice, scrollToBlock, consumeSearchParam, consumeSearchParams, validateFormData, getStepNumber, } from './utils';
8
+ export { BOOK_TARGET_PARAMS, buildCheckoutReturnUrls, resolveDedicatedBookingHref, resolveDedicatedBookingPath, resolveDedicatedBookingTarget, formatPrice, scrollToBlock, consumeSearchParam, consumeSearchParams, validateFormData, getStepNumber, } from './utils';
9
+ export type { DedicatedBookingTarget, UniversalBookingRouteTarget, } from './utils';
9
10
  export { createBodyThemePortalRoot } from './utils';
10
- export { ActionRow, CheckIcon, ClockIcon, CrossIcon, FieldValidationMessage, FeedbackMessage, getFieldValidationControlProps, MembershipHero, ModalShell, StateIcon, StepIndicator, TerminalPanel, } from './components';
11
- export type { ActionRowProps, FieldValidationControlInput, FieldValidationControlProps, FieldValidationMessageProps, FeedbackLiveMode, FeedbackMessageProps, FeedbackTone, ModalShellProps, StepIndicatorBaseProps, StepIndicatorProps, TerminalPanelProps, TerminalPanelTitleElement, } from './components';
11
+ export { ActionRow, BookingOptionCompactRow, BookingOptionList, CheckIcon, ClockIcon, CrossIcon, FieldValidationMessage, FeedbackMessage, getFieldValidationControlProps, MembershipHero, ModalShell, StateIcon, StepIndicator, TerminalPanel, } from './components';
12
+ export type { ActionRowProps, BookingOptionCompactRowAction, BookingOptionCompactRowProps, BookingOptionCompactRowViewModel, BookingOptionGroupViewModel, BookingOptionListProps, BookingOptionMetaItem, FieldValidationControlInput, FieldValidationControlProps, FieldValidationMessageProps, FeedbackLiveMode, FeedbackMessageProps, FeedbackTone, ModalShellProps, StepIndicatorBaseProps, StepIndicatorProps, TerminalPanelProps, TerminalPanelTitleElement, } from './components';
@@ -11,5 +11,25 @@ export type DedicatedBookingTarget = Readonly<{
11
11
  hostKey: string;
12
12
  siteIdentifier: string;
13
13
  }>;
14
+ export type UniversalBookingRouteTarget = Readonly<{
15
+ kind: 'chooser';
16
+ }> | Readonly<{
17
+ kind: 'appointment_service';
18
+ serviceId: string;
19
+ resourceId?: string | null;
20
+ }> | Readonly<{
21
+ kind: 'event_occurrence';
22
+ occurrenceId: string;
23
+ }> | Readonly<{
24
+ kind: 'event_series';
25
+ eventId: string;
26
+ }>;
27
+ export declare const BOOK_TARGET_PARAMS: {
28
+ readonly service: "service";
29
+ readonly resource: "resource";
30
+ readonly occurrence: "occurrence";
31
+ readonly event: "event";
32
+ };
14
33
  export declare function resolveDedicatedBookingTarget(pathname: string): DedicatedBookingTarget;
15
34
  export declare function resolveDedicatedBookingPath(pathname: string): string;
35
+ export declare function resolveDedicatedBookingHref(pathname: string, bookingTarget?: UniversalBookingRouteTarget): string;
@@ -2,7 +2,8 @@
2
2
  * Shared Utilities Barrel Export
3
3
  */
4
4
  export { buildCheckoutReturnUrls } from './checkoutUrls';
5
- export { resolveDedicatedBookingPath } from './bookingRoute';
5
+ export { BOOK_TARGET_PARAMS, resolveDedicatedBookingHref, resolveDedicatedBookingPath, resolveDedicatedBookingTarget, } from './bookingRoute';
6
+ export type { DedicatedBookingTarget, UniversalBookingRouteTarget, } from './bookingRoute';
6
7
  export { resolveDedicatedCheckoutPath } from './checkoutRoute';
7
8
  export { formatPrice } from './formatting';
8
9
  export { logoutPortal } from './portalLogout';
@@ -48,6 +48,17 @@ export type AuthoredLinkValue = InternalLinkValue | ExternalLinkValue | CustomLi
48
48
  * navigation-persistence converter accepts them.
49
49
  */
50
50
  export type LinkValue = AuthoredLinkValue;
51
+ export type LinkReferenceVisitorContext = Readonly<{
52
+ routeIds: Readonly<{
53
+ add: (routeId: string) => void;
54
+ }>;
55
+ pageIdentifiers: Readonly<{
56
+ add: (identifier: string) => void;
57
+ }>;
58
+ entryIdentifiers: Readonly<{
59
+ add: (contentType: string, identifier: string) => void;
60
+ }>;
61
+ }>;
51
62
  export declare const internalRouteOnlyLinkSchema: z.ZodObject<{
52
63
  kind: z.ZodLiteral<"internal">;
53
64
  routeId: z.ZodString;
@@ -133,4 +144,5 @@ export declare const linkSchema: z.ZodUnion<readonly [z.ZodUnion<readonly [z.Zod
133
144
  contentType: z.ZodString;
134
145
  identifier: z.ZodString;
135
146
  }, z.core.$loose>]>;
147
+ export declare function visitLinkValueReferences(value: unknown, visitor: LinkReferenceVisitorContext): void;
136
148
  export declare function isInternalResolvedLinkValue(value: LinkValue | null | undefined): value is InternalResolvedLinkValue;
@@ -5,6 +5,7 @@ import { type Theme } from '../../blocks/src/index';
5
5
  import type { PageDesignEditorReadModel } from '../../theme-core/src/site-styles/index';
6
6
  import { type EditorStructuralCommand } from '../../core/src/index';
7
7
  import { type SdkConfigForBlockPicker } from './block-editor/sdkBlockMerger';
8
+ import { type BlockActionControlMode } from './block-editor/actionControlMode';
8
9
  import { type ReorderControlMode } from './block-editor/reorderControlMode';
9
10
  import type { ArrayKeysManager, BlockEditorHandle, BlockItem, BlockFocusRequest, UiSlice, DraftsSlice } from './block-editor/types';
10
11
  import type { BlockDraftSaveability, FieldWidgetComponent } from '../../block-form/src/client/index';
@@ -52,6 +53,7 @@ export type BlockEditorProps = {
52
53
  enabledContentTypes?: string[];
53
54
  sdkConfig?: SdkConfigForBlockPicker | null;
54
55
  reorderControlMode?: ReorderControlMode;
56
+ actionControlMode?: BlockActionControlMode;
55
57
  };
56
58
  export declare const BlockEditor: import("react").ForwardRefExoticComponent<BlockEditorProps & import("react").RefAttributes<BlockEditorHandle>>;
57
59
  export {};
@@ -5,6 +5,7 @@ import type { SystemBlockDefinition } from '../../../blocks/src/index';
5
5
  import type { BlockDraftSaveability } from '../../../block-form/src/client/index';
6
6
  import type { FieldWidgetComponent } from '../../../block-form/src/client/index';
7
7
  import type { Theme } from '../../../blocks/src/index';
8
+ import { type BlockActionControlMode } from './actionControlMode';
8
9
  import { type ReorderControlMode } from './reorderControlMode';
9
10
  import type { ArrayKeysManager, BlockFocusRequest, BlockItem, UiStore, DraftsSlice, UiSlice } from './types';
10
11
  /** Drag listener props from dnd-kit */
@@ -19,7 +20,7 @@ type BlockCardStore = UiStore<Pick<UiSlice, 'activeBlockId' | 'setActiveBlockId'
19
20
  drafts: Pick<DraftsSlice, 'getBlockSnapshot' | 'getCurrentValues' | 'getAtPath' | 'setAtPath' | 'edit' | 'initNewBlock' | 'updateBlockBaseline' | 'clearError'>;
20
21
  arrayKeys: ArrayKeysManager;
21
22
  }>;
22
- export declare function BlockCard({ siteId, block, manifest, isFirst, isLast, isMoving, onMove, onDuplicate, onDelete, dragListeners, canReorder, collapsed, onCollapsedChange, highlighted, hasRecoveryConflict, focusSignal, onFocusHandled, onBlockSave, theme, widgetOverrides, uiStore, hideThemeV2RawStyleFields, pageDesignBlock, reorderControlMode, }: {
23
+ export declare function BlockCard({ siteId, block, manifest, isFirst, isLast, isMoving, onMove, onDuplicate, onDelete, dragListeners, canReorder, collapsed, onCollapsedChange, highlighted, hasRecoveryConflict, focusSignal, onFocusHandled, onBlockSave, theme, widgetOverrides, uiStore, hideThemeV2RawStyleFields, pageDesignBlock, reorderControlMode, actionControlMode, }: {
23
24
  siteId: string;
24
25
  block: BlockItem;
25
26
  manifest: SystemBlockDefinition['manifest'];
@@ -44,5 +45,6 @@ export declare function BlockCard({ siteId, block, manifest, isFirst, isLast, is
44
45
  hideThemeV2RawStyleFields?: boolean;
45
46
  pageDesignBlock?: PageDesignEditorBlock | null;
46
47
  reorderControlMode?: ReorderControlMode;
48
+ actionControlMode?: BlockActionControlMode;
47
49
  }): import("react/jsx-runtime").JSX.Element;
48
50
  export {};
@@ -1,6 +1,7 @@
1
1
  import type { SyntheticListenerMap } from '@dnd-kit/core/dist/hooks/utilities';
2
2
  import type { FieldWidgetComponent } from '../../../block-form/src/client/index';
3
3
  import { type SystemBlockDefinition, type Theme } from '../../../blocks/src/index';
4
+ import { type BlockActionControlMode } from './actionControlMode';
4
5
  import type { ReorderControlMode } from './reorderControlMode';
5
6
  import type { BlockItem, UiStore, DraftsSlice, ArrayKeysManager } from './types';
6
7
  /** Drag listener props from dnd-kit */
@@ -9,7 +10,7 @@ type BlockCardHeaderStore = UiStore<{
9
10
  drafts: Pick<DraftsSlice, 'getBlockSnapshot' | 'getCurrentValues' | 'initNewBlock' | 'updateBlockBaseline' | 'clearError' | 'setAtPath' | 'getAtPath'>;
10
11
  arrayKeys: ArrayKeysManager;
11
12
  }>;
12
- export declare function BlockCardHeader({ block, manifest, isFirst, isLast, isMoving, onMove, onDuplicate, onDelete, dragListeners, canReorder, collapsed, onToggleCollapsed, contentId, uiStore, widgetOverrides, theme, hideThemeV2RawStyleFields, reorderControlMode, }: {
13
+ export declare function BlockCardHeader({ block, manifest, isFirst, isLast, isMoving, onMove, onDuplicate, onDelete, dragListeners, canReorder, collapsed, onToggleCollapsed, contentId, uiStore, widgetOverrides, theme, hideThemeV2RawStyleFields, reorderControlMode, actionControlMode, }: {
13
14
  block: BlockItem;
14
15
  manifest: SystemBlockDefinition['manifest'];
15
16
  isFirst: boolean;
@@ -29,5 +30,6 @@ export declare function BlockCardHeader({ block, manifest, isFirst, isLast, isMo
29
30
  theme?: Theme | null;
30
31
  hideThemeV2RawStyleFields?: boolean;
31
32
  reorderControlMode?: ReorderControlMode;
33
+ actionControlMode?: BlockActionControlMode;
32
34
  }): import("react/jsx-runtime").JSX.Element;
33
35
  export {};
@@ -6,12 +6,16 @@ type BlockSettingsModalStore = UiStore<{
6
6
  drafts: Pick<DraftsSlice, 'getBlockSnapshot' | 'getCurrentValues' | 'clearError' | 'setAtPath' | 'getAtPath'>;
7
7
  arrayKeys: ArrayKeysManager;
8
8
  }>;
9
- export declare function BlockSettingsModal({ block, manifest, uiStore, widgetOverrides, theme, hideThemeV2RawStyleFields, }: {
9
+ export declare function BlockSettingsModal({ block, manifest, uiStore, widgetOverrides, theme, hideThemeV2RawStyleFields, showSettingsTrigger, open: controlledOpen, onOpenChange, onAvailabilityChange, }: {
10
10
  block: BlockItem;
11
11
  manifest: SystemBlockDefinition['manifest'];
12
12
  uiStore: BlockSettingsModalStore;
13
13
  widgetOverrides?: Record<string, FieldWidgetComponent>;
14
14
  theme?: Theme | null;
15
15
  hideThemeV2RawStyleFields?: boolean;
16
+ showSettingsTrigger?: boolean;
17
+ open?: boolean;
18
+ onOpenChange?: (open: boolean) => void;
19
+ onAvailabilityChange?: (available: boolean) => void;
16
20
  }): ReactNode;
17
21
  export {};