@riverbankcms/sdk 0.104.1 → 0.104.3
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.
- package/dist/{PreviewEditorSidebar-CmaPXdKu.mjs → PreviewEditorSidebar-CBMhU9p_.mjs} +3 -3
- package/dist/{PreviewEditorUI-C5xRTh2b.mjs → PreviewEditorUI-C5KEw4M8.mjs} +2 -2
- package/dist/{SdkPreviewModeRuntime-Eks51NcN.mjs → SdkPreviewModeRuntime-Iq12HjL7.mjs} +1142 -177
- package/dist/{SiteChromeCustomizeContext-Bt8zb3qu.mjs → SiteChromeCustomizeContext-Cx0NMdyv.mjs} +1640 -877
- package/dist/_dts/ai/src/contracts/proposals.d.ts +10 -0
- package/dist/_dts/blocks/src/primitives/layout/Grid.d.ts +12 -8
- package/dist/_dts/blocks/src/system/blocks/events/event-calendar.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/events/shared/layout.d.ts +11 -1
- package/dist/_dts/blocks/src/system/blocks/testimonials.d.ts +7 -1
- package/dist/_dts/blocks/src/system/constants/events.d.ts +1 -1
- package/dist/_dts/blocks/src/system/fragments/library/testimonialsCarousel.d.ts +12 -0
- package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/basic.d.ts +14 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/buttonAffordance.d.ts +33 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekBoardView.d.ts +28 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCapacity.d.ts +32 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/svg.d.ts +77 -0
- package/dist/_dts/blocks/src/system/transforms/registry/_utils/surfaceForegroundStyles.d.ts +2 -0
- package/dist/_dts/blocks/src/system/transforms/registry/boxStyles.d.ts +3 -40
- package/dist/_dts/blocks/src/system/transforms/registry/formatting.d.ts +14 -0
- package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +11 -0
- package/dist/_dts/core/src/branded.d.ts +5 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +18 -0
- package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +2 -2
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/theme-core/src/ThemeScope.d.ts +1 -1
- package/dist/_dts/theme-core/src/buttons/affordanceIcons.d.ts +29 -0
- package/dist/_dts/theme-core/src/buttons/generateButtonCss.d.ts +6 -0
- package/dist/_dts/theme-core/src/buttons/index.d.ts +1 -0
- package/dist/_dts/theme-core/src/buttons/personalities/flat-ink.d.ts +20 -0
- package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +11 -0
- package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +4 -0
- package/dist/_dts/theme-core/src/buttons/types.d.ts +34 -0
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/gradients/types.d.ts +27 -3
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +51 -15
- package/dist/_dts/theme-core/src/palette/curated/brand-led.d.ts +13 -0
- package/dist/_dts/theme-core/src/palette/curated/index.d.ts +12 -0
- package/dist/_dts/theme-core/src/palette/historicalThemePalette.d.ts +44 -0
- package/dist/_dts/theme-core/src/palette/index.d.ts +1 -0
- package/dist/_dts/theme-core/src/palette/legacySelection.d.ts +13 -2
- package/dist/_dts/theme-core/src/palette/persistenceReadSource.d.ts +17 -2
- package/dist/_dts/theme-core/src/palette/themePaletteCompatibility.d.ts +3 -4
- package/dist/_dts/theme-core/src/runtime/themeCssVarNames.d.ts +1 -0
- package/dist/_dts/theme-core/src/schema.d.ts +108 -26
- package/dist/_dts/theme-core/src/site-styles/accessibleSurfaces.d.ts +2 -1
- package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +50 -1
- package/dist/_dts/theme-core/src/site-styles/designState.d.ts +2 -2
- package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +4 -2
- package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +56 -1
- package/dist/_dts/theme-core/src/site-styles/typographyPresets.d.ts +16 -1
- package/dist/_dts/theme-core/src/status/index.d.ts +0 -1
- package/dist/_dts/theme-core/src/surfaces/foregroundContract.d.ts +19 -0
- package/dist/_dts/theme-core/src/surfaces/foregroundRoles.d.ts +9 -0
- package/dist/_dts/theme-core/src/surfaces/index.d.ts +2 -0
- package/dist/_dts/ui/src/button.d.ts +1 -1
- package/dist/cli/index.mjs +1558 -468
- package/dist/client/{DiscountCodeDisclosure-Dit2aItR.mjs → DiscountCodeDisclosure-BXM73_E5.mjs} +1 -1
- package/dist/client/{EventCombined.client-BnREyCjf.mjs → EventCombined.client-DT5elP7j.mjs} +4 -4
- package/dist/client/{EventListing.client-0uHld51x.mjs → EventListing.client-pTYGfV9C.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-DJcvSfmj.mjs → LeafletStaticMap-dQrhlUe3.mjs} +1 -1
- package/dist/client/{MagicLinkForm-EAsIktfw.mjs → MagicLinkForm-u6Dul4j5.mjs} +2 -2
- package/dist/client/{StepIndicator-CRR17tYI.mjs → StepIndicator-nWqineJ2.mjs} +2 -2
- package/dist/client/{accordion-B47HIuuH.mjs → accordion-CSJcTUyH.mjs} +1 -1
- package/dist/client/{bookingForm-I1E-8F9P.mjs → bookingForm-C73wOuVa.mjs} +6 -6
- package/dist/client/bookings.mjs +137 -1
- package/dist/client/{buttons-BbPn8OKA.mjs → buttons-DfYyqt8C.mjs} +138 -2
- package/dist/client/{carousel-OlM7SyBs.mjs → carousel-fMBb0JSc.mjs} +1 -1
- package/dist/client/{cart-BKpG5jz6.mjs → cart-BtaCwT3S.mjs} +3 -3
- package/dist/client/{checkout-Dmmr6qoU.mjs → checkout-DkTwZSnh.mjs} +3 -3
- package/dist/client/client.mjs +2327 -542
- package/dist/client/{colorStyles-DuW4Fjqd.mjs → colorStyles-Wyl6JujD.mjs} +45 -4
- package/dist/client/{courseRegistration-CflZiqGk.mjs → courseRegistration-DnLmapJu.mjs} +7 -7
- package/dist/client/{eventCalendar-BvoLWcp-.mjs → eventCalendar-BvLOc9KY.mjs} +165 -5
- package/dist/client/{eventCombined-DsrO8t_t.mjs → eventCombined-kShgJPQr.mjs} +2 -2
- package/dist/client/{eventDetails-C3hxgcJm.mjs → eventDetails-C5NTM0Vo.mjs} +3 -3
- package/dist/client/{eventListing-C-hb237X.mjs → eventListing-B82ZdKP6.mjs} +2 -2
- package/dist/client/{eventRegistration-B0gyzDGi.mjs → eventRegistration-qJVFqBWo.mjs} +7 -7
- package/dist/client/{form-C_RUi6oJ.mjs → form-BvAcKiuu.mjs} +2 -2
- package/dist/client/{headerSection-IKQiD2U0.mjs → headerSection-NvAiEHAg.mjs} +3 -3
- package/dist/client/hooks.mjs +1034 -356
- package/dist/client/{locationMap-8ZBrMzRJ.mjs → locationMap-D0j52xfI.mjs} +3 -3
- package/dist/client/{media-CZJKL7fi.mjs → media-BCW_g2cQ.mjs} +1 -1
- package/dist/client/{newsletterForm-CYk3ucwj.mjs → newsletterForm-B8_i93qH.mjs} +2 -2
- package/dist/client/{pricing-B5GmvfIH.mjs → pricing-DIYnyHOk.mjs} +1 -1
- package/dist/client/{productDetail-BjS2Dqzo.mjs → productDetail-w0eAHkuQ.mjs} +3 -3
- package/dist/client/{productList-BOHvC8My.mjs → productList-Vsguq5Xt.mjs} +3 -3
- package/dist/client/{propsDecoder-WS6UEJwZ.mjs → propsDecoder-CD2pJ1WB.mjs} +37 -2
- package/dist/client/rendering/client.mjs +1722 -760
- package/dist/client/rendering/islands.mjs +19 -19
- package/dist/client/rendering.mjs +2303 -518
- package/dist/client/{shop-CON03-wN.mjs → shop-Dgxs-Q8F.mjs} +6 -6
- package/dist/client/{shop-commerce-DlqrFgH8.mjs → shop-commerce-DJAhsTaT.mjs} +6 -6
- package/dist/client/{shop-commerce-store-l74-Kne6.mjs → shop-commerce-store-CfCXltXW.mjs} +1 -1
- package/dist/client/{shopShared-CQheEXSg.mjs → shopShared-CmDcPXUt.mjs} +2 -2
- package/dist/client/{useDiscountCodeUi-v6OluyWl.mjs → useDiscountCodeUi-CirrT2bM.mjs} +1 -1
- package/dist/client/{useEventFilters-BqSTcNOf.mjs → useEventFilters-CNZxlCcO.mjs} +5 -5
- package/dist/client/{usePolling-DMfADjIF.mjs → usePolling-Baks_iBI.mjs} +2 -2
- package/dist/preview-next/client/runtime.mjs +3 -3
- package/dist/{sdk-runtime-BUmJ0DaT.mjs → sdk-runtime-BfNiFeNJ.mjs} +1 -1
- package/dist/{separator-Dd-JYok7.mjs → separator-BhAR_Xmf.mjs} +1 -1
- package/dist/server/components.mjs +2293 -531
- package/dist/server/config-validation.mjs +1040 -357
- package/dist/server/config.mjs +1040 -357
- package/dist/server/data.mjs +1034 -356
- package/dist/server/index.mjs +1 -1
- package/dist/server/next.mjs +2296 -534
- package/dist/server/page-converter.mjs +1018 -324
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +2278 -521
- package/dist/server/rendering.mjs +2293 -531
- package/dist/server/routing.mjs +1092 -338
- package/dist/server/server.mjs +1016 -338
- package/dist/server/theme-bridge.mjs +1240 -77
- package/dist/server/theme.mjs +165 -5
- package/dist/styles/index.css +617 -34
- package/package.json +1 -1
- package/dist/_dts/blocks/src/system/transforms/registry/_utils/sectionForegroundStyles.d.ts +0 -2
- package/dist/_dts/theme-core/src/status/contextualColors.d.ts +0 -6
|
@@ -5176,6 +5176,7 @@ declare const SiteStyleSelectionCommandBodySchema: z.ZodObject<{
|
|
|
5176
5176
|
}>>>;
|
|
5177
5177
|
headerLookId: z.ZodNullable<z.ZodEnum<{
|
|
5178
5178
|
"clean-base": "clean-base";
|
|
5179
|
+
"classic-centered-nav": "classic-centered-nav";
|
|
5179
5180
|
"brand-solid": "brand-solid";
|
|
5180
5181
|
"serif-line": "serif-line";
|
|
5181
5182
|
"centered-calm": "centered-calm";
|
|
@@ -5259,6 +5260,7 @@ export declare const SiteStyleSelectionCommandBackedPreviewSchema: z.ZodObject<{
|
|
|
5259
5260
|
}>>>;
|
|
5260
5261
|
headerLookId: z.ZodNullable<z.ZodEnum<{
|
|
5261
5262
|
"clean-base": "clean-base";
|
|
5263
|
+
"classic-centered-nav": "classic-centered-nav";
|
|
5262
5264
|
"brand-solid": "brand-solid";
|
|
5263
5265
|
"serif-line": "serif-line";
|
|
5264
5266
|
"centered-calm": "centered-calm";
|
|
@@ -5348,6 +5350,7 @@ export declare const ProposeSiteStyleSelectionCommandBackedOutputSchema: z.ZodOb
|
|
|
5348
5350
|
}>>>;
|
|
5349
5351
|
headerLookId: z.ZodNullable<z.ZodEnum<{
|
|
5350
5352
|
"clean-base": "clean-base";
|
|
5353
|
+
"classic-centered-nav": "classic-centered-nav";
|
|
5351
5354
|
"brand-solid": "brand-solid";
|
|
5352
5355
|
"serif-line": "serif-line";
|
|
5353
5356
|
"centered-calm": "centered-calm";
|
|
@@ -6377,6 +6380,7 @@ export declare const ProposeSiteStyleSelectionCommandBackedOutputSchema: z.ZodOb
|
|
|
6377
6380
|
}>>>;
|
|
6378
6381
|
headerLookId: z.ZodNullable<z.ZodEnum<{
|
|
6379
6382
|
"clean-base": "clean-base";
|
|
6383
|
+
"classic-centered-nav": "classic-centered-nav";
|
|
6380
6384
|
"brand-solid": "brand-solid";
|
|
6381
6385
|
"serif-line": "serif-line";
|
|
6382
6386
|
"centered-calm": "centered-calm";
|
|
@@ -6482,6 +6486,7 @@ export declare const ProposeSiteStyleSelectionOutputSchema: z.ZodUnion<readonly
|
|
|
6482
6486
|
}>>>;
|
|
6483
6487
|
headerLookId: z.ZodNullable<z.ZodEnum<{
|
|
6484
6488
|
"clean-base": "clean-base";
|
|
6489
|
+
"classic-centered-nav": "classic-centered-nav";
|
|
6485
6490
|
"brand-solid": "brand-solid";
|
|
6486
6491
|
"serif-line": "serif-line";
|
|
6487
6492
|
"centered-calm": "centered-calm";
|
|
@@ -7511,6 +7516,7 @@ export declare const ProposeSiteStyleSelectionOutputSchema: z.ZodUnion<readonly
|
|
|
7511
7516
|
}>>>;
|
|
7512
7517
|
headerLookId: z.ZodNullable<z.ZodEnum<{
|
|
7513
7518
|
"clean-base": "clean-base";
|
|
7519
|
+
"classic-centered-nav": "classic-centered-nav";
|
|
7514
7520
|
"brand-solid": "brand-solid";
|
|
7515
7521
|
"serif-line": "serif-line";
|
|
7516
7522
|
"centered-calm": "centered-calm";
|
|
@@ -7617,6 +7623,7 @@ export declare const ProposeSiteStyleSelectionResultSchema: z.ZodUnion<readonly
|
|
|
7617
7623
|
}>>>;
|
|
7618
7624
|
headerLookId: z.ZodNullable<z.ZodEnum<{
|
|
7619
7625
|
"clean-base": "clean-base";
|
|
7626
|
+
"classic-centered-nav": "classic-centered-nav";
|
|
7620
7627
|
"brand-solid": "brand-solid";
|
|
7621
7628
|
"serif-line": "serif-line";
|
|
7622
7629
|
"centered-calm": "centered-calm";
|
|
@@ -8646,6 +8653,7 @@ export declare const ProposeSiteStyleSelectionResultSchema: z.ZodUnion<readonly
|
|
|
8646
8653
|
}>>>;
|
|
8647
8654
|
headerLookId: z.ZodNullable<z.ZodEnum<{
|
|
8648
8655
|
"clean-base": "clean-base";
|
|
8656
|
+
"classic-centered-nav": "classic-centered-nav";
|
|
8649
8657
|
"brand-solid": "brand-solid";
|
|
8650
8658
|
"serif-line": "serif-line";
|
|
8651
8659
|
"centered-calm": "centered-calm";
|
|
@@ -30981,6 +30989,7 @@ export declare const proposalToolSchemas: {
|
|
|
30981
30989
|
}>>>;
|
|
30982
30990
|
headerLookId: z.ZodNullable<z.ZodEnum<{
|
|
30983
30991
|
"clean-base": "clean-base";
|
|
30992
|
+
"classic-centered-nav": "classic-centered-nav";
|
|
30984
30993
|
"brand-solid": "brand-solid";
|
|
30985
30994
|
"serif-line": "serif-line";
|
|
30986
30995
|
"centered-calm": "centered-calm";
|
|
@@ -32010,6 +32019,7 @@ export declare const proposalToolSchemas: {
|
|
|
32010
32019
|
}>>>;
|
|
32011
32020
|
headerLookId: z.ZodNullable<z.ZodEnum<{
|
|
32012
32021
|
"clean-base": "clean-base";
|
|
32022
|
+
"classic-centered-nav": "classic-centered-nav";
|
|
32013
32023
|
"brand-solid": "brand-solid";
|
|
32014
32024
|
"serif-line": "serif-line";
|
|
32015
32025
|
"centered-calm": "centered-calm";
|
|
@@ -5,17 +5,21 @@ import type { SemanticSpacing } from "../../system/spacing";
|
|
|
5
5
|
type FixedSizeGap = "xs" | "sm" | "md" | "lg" | "none";
|
|
6
6
|
/** Grid gap supports both fixed-size values and semantic spacing */
|
|
7
7
|
type GridGap = FixedSizeGap | SemanticSpacing;
|
|
8
|
+
/**
|
|
9
|
+
* A per-breakpoint column value. A `number` is an equal-track column COUNT
|
|
10
|
+
* (rendered via the `rb-grid-cols-N` utilities). A `string` is a raw
|
|
11
|
+
* `grid-template-columns` TRACK TEMPLATE (e.g. `'1fr 0.9fr'`,
|
|
12
|
+
* `'repeat(3, minmax(0,1fr))'`) rendered via the responsive `rb-grid-tracks`
|
|
13
|
+
* utility + inline custom properties, so asymmetric ratios stay responsive.
|
|
14
|
+
*/
|
|
15
|
+
type GridColValue = number | string;
|
|
16
|
+
type GridBreakpoint = "base" | "sm" | "md" | "lg" | "xl";
|
|
17
|
+
type GridColsObject = Partial<Record<GridBreakpoint, GridColValue>>;
|
|
8
18
|
type GridProps = PrimitiveProps & {
|
|
9
|
-
cols?:
|
|
10
|
-
base?: number;
|
|
11
|
-
sm?: number;
|
|
12
|
-
md?: number;
|
|
13
|
-
lg?: number;
|
|
14
|
-
xl?: number;
|
|
15
|
-
};
|
|
19
|
+
cols?: GridColValue | GridColsObject;
|
|
16
20
|
gap?: GridGap;
|
|
17
21
|
/** Data slot attribute for CSS targeting */
|
|
18
22
|
"data-slot"?: string;
|
|
19
23
|
};
|
|
20
|
-
export declare function Grid({ as: Comp, cols, gap, className, children, "data-slot": dataSlot, ...rest }: GridProps): React.JSX.Element;
|
|
24
|
+
export declare function Grid({ as: Comp, cols, gap, className, style, children, "data-slot": dataSlot, ...rest }: GridProps): React.JSX.Element;
|
|
21
25
|
export {};
|
|
@@ -16,6 +16,8 @@ export declare const eventCalendarManifest: import("../..").DefinedBlockManifest
|
|
|
16
16
|
readonly value: "calendar";
|
|
17
17
|
}, {
|
|
18
18
|
readonly value: "timetable";
|
|
19
|
+
}, {
|
|
20
|
+
readonly value: "week-board";
|
|
19
21
|
}, {
|
|
20
22
|
readonly value: "list";
|
|
21
23
|
}];
|
|
@@ -42,6 +44,7 @@ export declare const eventCalendarManifest: import("../..").DefinedBlockManifest
|
|
|
42
44
|
readonly combined: import("../..").NodeDefinition;
|
|
43
45
|
readonly calendar: import("../..").NodeDefinition;
|
|
44
46
|
readonly timetable: import("../..").NodeDefinition;
|
|
47
|
+
readonly 'week-board': import("../..").NodeDefinition;
|
|
45
48
|
readonly list: import("../..").NodeDefinition;
|
|
46
49
|
};
|
|
47
50
|
readonly skipSectionStyles: true;
|
|
@@ -1,2 +1,12 @@
|
|
|
1
1
|
import type { NodeDefinition } from '../../../node';
|
|
2
|
-
export
|
|
2
|
+
export type EventSectionHeaderLayoutOptions = {
|
|
3
|
+
/**
|
|
4
|
+
* When set, the heading + intro are wrapped in a single `<div>` carrying this
|
|
5
|
+
* class instead of being emitted as two stacked siblings. Used by the
|
|
6
|
+
* event-calendar (week-board) to render a two-column head (heading left,
|
|
7
|
+
* intro right); styling lives in blocks-static/event-calendar.css. Omit for
|
|
8
|
+
* the default stacked layout used by the listing/spotlight blocks.
|
|
9
|
+
*/
|
|
10
|
+
splitClassName?: string;
|
|
11
|
+
};
|
|
12
|
+
export declare function eventSectionHeaderLayoutNodes(options?: EventSectionHeaderLayoutOptions): readonly NodeDefinition[];
|
|
@@ -14,6 +14,7 @@ export declare const testimonialsManifest: import("..").DefinedBlockManifest<imp
|
|
|
14
14
|
readonly carousel: NodeDefinition;
|
|
15
15
|
readonly grid: NodeDefinition;
|
|
16
16
|
readonly 'split-grid': NodeDefinition;
|
|
17
|
+
readonly 'featured-editorial': NodeDefinition;
|
|
17
18
|
readonly highlight: NodeDefinition;
|
|
18
19
|
};
|
|
19
20
|
readonly defaultVariant: "carousel";
|
|
@@ -33,6 +34,11 @@ export declare const testimonialsManifest: import("..").DefinedBlockManifest<imp
|
|
|
33
34
|
readonly description: "Heading on the left with testimonial cards on the right";
|
|
34
35
|
readonly icon: "PanelLeft";
|
|
35
36
|
};
|
|
37
|
+
readonly 'featured-editorial': {
|
|
38
|
+
readonly label: "Featured editorial";
|
|
39
|
+
readonly description: "A large featured ink quote beside a column of stacked cards (no avatars)";
|
|
40
|
+
readonly icon: "Quote";
|
|
41
|
+
};
|
|
36
42
|
readonly highlight: {
|
|
37
43
|
readonly label: "Highlight";
|
|
38
44
|
readonly description: "A single, centered testimonial with no carousel";
|
|
@@ -56,7 +62,7 @@ export declare const testimonialsManifest: import("..").DefinedBlockManifest<imp
|
|
|
56
62
|
};
|
|
57
63
|
}>>;
|
|
58
64
|
export type TestimonialsBlockContent = {
|
|
59
|
-
variant?: 'carousel' | 'grid' | 'split-grid' | 'highlight' | null;
|
|
65
|
+
variant?: 'carousel' | 'grid' | 'split-grid' | 'featured-editorial' | 'highlight' | null;
|
|
60
66
|
heading?: string | null;
|
|
61
67
|
subheading?: string | null;
|
|
62
68
|
avatarLayout?: 'above-centered' | 'inline-left' | 'hidden' | null;
|
|
@@ -25,7 +25,7 @@ export type EventContentTypeSlug = (typeof EVENT_CONTENT_TYPE_SLUGS)[number];
|
|
|
25
25
|
*/
|
|
26
26
|
export declare const EVENT_CATEGORY_BADGE_TOKENS: readonly ["primary", "secondary", "accent"];
|
|
27
27
|
export type EventCategoryBadgeToken = (typeof EVENT_CATEGORY_BADGE_TOKENS)[number];
|
|
28
|
-
export declare const eventCalendarDisplayModeValues: readonly ["combined", "calendar", "list", "timetable"];
|
|
28
|
+
export declare const eventCalendarDisplayModeValues: readonly ["combined", "calendar", "list", "timetable", "week-board"];
|
|
29
29
|
export type EventCalendarDisplayMode = (typeof eventCalendarDisplayModeValues)[number];
|
|
30
30
|
export declare const eventCalendarDefaultViewValues: readonly ["month", "week"];
|
|
31
31
|
export type EventCalendarDefaultView = (typeof eventCalendarDefaultViewValues)[number];
|
|
@@ -30,6 +30,18 @@ export declare function buildHighlightLayout(): NodeDefinition;
|
|
|
30
30
|
* heading copy in a sibling column instead of above the cards.
|
|
31
31
|
*/
|
|
32
32
|
export declare function buildGridCardsLayout(className: string): NodeDefinition;
|
|
33
|
+
/**
|
|
34
|
+
* Build the "featured editorial" layout: an asymmetric two-column arrangement
|
|
35
|
+
* where the FIRST testimonial is a large featured (spruce-ink) card and the
|
|
36
|
+
* remaining testimonials stack as white cards beside it.
|
|
37
|
+
*
|
|
38
|
+
* First-vs-rest branching is done without an offset primitive: the featured
|
|
39
|
+
* card uses `repeat(..., { limit: 1 })` (entry 0 only), and the rest column
|
|
40
|
+
* repeats over every entry but skips index 0 via `when("tIndex", { equals: 0,
|
|
41
|
+
* not: true })`. The `$when` guard is re-evaluated per repeated item with the
|
|
42
|
+
* index scope in context, so entry 0 produces no node in the rest column.
|
|
43
|
+
*/
|
|
44
|
+
export declare function buildFeaturedEditorialLayout(): NodeDefinition;
|
|
33
45
|
/**
|
|
34
46
|
* Fragment definition for testimonials carousel.
|
|
35
47
|
* Provides field definitions and data loader configuration.
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* SdkCustomBlock.layout definitions. Node types not in this list
|
|
12
12
|
* will be rejected during validation.
|
|
13
13
|
*/
|
|
14
|
-
export declare const ALLOWED_NODE_TYPES: readonly ["div", "figure", "section", "headerSection", "stack", "inline", "grid", "text", "richText", "media", "videoEmbed", "button", "link", "carousel", "accordion", "accordionItem", "form", "booking-form", "weekly-slot-availability", "event-registration", "event-spotlight", "event-listing", "event-calendar", "offerings-preview", "event-combined", "shop", "product-list", "product-detail", "cart", "checkout", "gifting"];
|
|
14
|
+
export declare const ALLOWED_NODE_TYPES: readonly ["div", "figure", "section", "headerSection", "stack", "inline", "grid", "text", "richText", "media", "videoEmbed", "icon", "feature-card-icon", "svg", "button", "link", "carousel", "accordion", "accordionItem", "form", "booking-form", "weekly-slot-availability", "event-registration", "event-spotlight", "event-listing", "event-calendar", "offerings-preview", "event-combined", "shop", "product-list", "product-detail", "cart", "checkout", "gifting"];
|
|
15
15
|
export type AllowedNodeType = (typeof ALLOWED_NODE_TYPES)[number];
|
|
16
16
|
/**
|
|
17
17
|
* Valid transform IDs for declarative layouts.
|
|
@@ -20,7 +20,7 @@ export type AllowedNodeType = (typeof ALLOWED_NODE_TYPES)[number];
|
|
|
20
20
|
* $bind.transforms within custom block layouts. Transform IDs
|
|
21
21
|
* not in this list will be rejected during validation.
|
|
22
22
|
*/
|
|
23
|
-
export declare const ALLOWED_TRANSFORM_IDS: readonly ["string.uppercase", "value.fallback", "date.formatShort", "array.length", "value.jsonArray", "value.csv", "array.marqueeLoop", "layout.maxWidthClass", "layout.headerRootClass", "layout.footerRootClass", "layout.headerRootStyle", "layout.headerSectionBackground", "layout.footerRootStyle", "ui.headerNavLinkClass", "ui.headingClassFromAlignment", "ui.bodyClassFromAlignment", "ui.stackAlignFromAlignment", "ui.sectionStateTone", "ui.heroContentWrapperClass", "ui.heroCtaJustify", "ui.heroStackJustifyFromVerticalAlignment", "ui.heroGridClassFromVerticalAlignment", "ui.conditionalClass", "ui.twoColumnContainerClass", "ui.twoColumnFlexBasis", "ui.imageGalleryFilterClass", "ui.imageGalleryTileClass", "ui.imageGalleryTileStyle", "ui.imageGalleryMarqueeTileStyle", "ui.imageGalleryMarqueeDuration", "ui.imageGalleryMarqueeDirection", "ui.imageFragmentClass", "ui.imageFragmentSize", "media.fromUrl", "background.resolveStyle", "background.resolveColorsStyle", "background.resolveAllowOverflow", "background.resolveImageStyle", "background.resolveImageClassName", "background.resolveOverlayStyle", "links.resolve", "links.label", "content.interpolateRichTextTokens", "boxStyles.spacing", "boxStyles.resolveRootClass", "boxStyles.resolveRootStyle", "boxStyles.semanticGap", "boxStyles.semanticGapValue", "boxStyles.cardVariantClass", "containerStyles.resolveBoxClassName"];
|
|
23
|
+
export declare const ALLOWED_TRANSFORM_IDS: readonly ["string.uppercase", "value.fallback", "date.formatShort", "array.length", "value.jsonArray", "value.csv", "array.marqueeLoop", "value.mapToken", "layout.maxWidthClass", "layout.headerRootClass", "layout.footerRootClass", "layout.headerRootStyle", "layout.headerSectionBackground", "layout.classicNavMode", "layout.footerRootStyle", "ui.headerNavLinkClass", "ui.headingClassFromAlignment", "ui.bodyClassFromAlignment", "ui.stackAlignFromAlignment", "ui.sectionStateTone", "ui.heroContentWrapperClass", "ui.heroCtaJustify", "ui.heroStackJustifyFromVerticalAlignment", "ui.heroGridClassFromVerticalAlignment", "ui.conditionalClass", "ui.twoColumnContainerClass", "ui.twoColumnFlexBasis", "ui.imageGalleryFilterClass", "ui.imageGalleryTileClass", "ui.imageGalleryTileStyle", "ui.imageGalleryMarqueeTileStyle", "ui.imageGalleryMarqueeDuration", "ui.imageGalleryMarqueeDirection", "ui.imageFragmentClass", "ui.imageFragmentSize", "media.fromUrl", "background.resolveStyle", "background.resolveColorsStyle", "background.resolveAllowOverflow", "background.resolveImageStyle", "background.resolveImageClassName", "background.resolveOverlayStyle", "links.resolve", "links.label", "content.interpolateRichTextTokens", "boxStyles.spacing", "boxStyles.resolveRootClass", "boxStyles.resolveRootStyle", "boxStyles.semanticGap", "boxStyles.semanticGapValue", "boxStyles.cardVariantClass", "containerStyles.resolveBoxClassName"];
|
|
24
24
|
export type AllowedTransformId = (typeof ALLOWED_TRANSFORM_IDS)[number];
|
|
25
25
|
/**
|
|
26
26
|
* Set for O(1) lookup of allowed node types.
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { type ButtonSizeName } from '../../../../../theme-core/src/buttons/index';
|
|
3
|
+
import { type ButtonAffordance } from './buttonAffordance';
|
|
3
4
|
import type { PreviewLinkedEntryFieldBinding } from '../../data';
|
|
4
5
|
export type TextNodeProps = {
|
|
5
6
|
value?: unknown;
|
|
@@ -48,6 +49,19 @@ export type ButtonNodeProps = {
|
|
|
48
49
|
type?: 'button' | 'submit' | 'reset';
|
|
49
50
|
/** When true, hide the button if href is missing */
|
|
50
51
|
linkRequired?: boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Optional trailing affordance icon (a registry icon id, e.g. `'ArrowRight'`)
|
|
54
|
+
* rendered after the label. Overrides any personality-supplied affordance.
|
|
55
|
+
*/
|
|
56
|
+
trailingIcon?: string;
|
|
57
|
+
/** Optional palette token for the trailing icon colour (e.g. `'accent'`). */
|
|
58
|
+
trailingIconColorToken?: string;
|
|
59
|
+
/**
|
|
60
|
+
* Personality/variant affordance default, supplied by the theme so a variant
|
|
61
|
+
* can carry a trailing icon without per-node authoring. Node-level
|
|
62
|
+
* `trailingIcon` takes precedence.
|
|
63
|
+
*/
|
|
64
|
+
personalityAffordance?: ButtonAffordance;
|
|
51
65
|
};
|
|
52
66
|
export declare const ButtonNode: React.FC<ButtonNodeProps & {
|
|
53
67
|
blockId?: string;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure resolution of a button's trailing affordance icon.
|
|
3
|
+
*
|
|
4
|
+
* A button can acquire a trailing icon from two places:
|
|
5
|
+
* 1. The node itself (`trailingIcon` / `trailingIconColorToken` props).
|
|
6
|
+
* 2. The active button personality/variant (`affordance`), supplied by the
|
|
7
|
+
* theme so a variant carries an affordance without per-node authoring.
|
|
8
|
+
*
|
|
9
|
+
* Node-level wins over the personality default. When neither supplies one, the
|
|
10
|
+
* button renders no trailing icon (and the personality's CSS `::after`
|
|
11
|
+
* affordance, if any, is left to show through).
|
|
12
|
+
*/
|
|
13
|
+
export type ButtonAffordance = {
|
|
14
|
+
iconId: string;
|
|
15
|
+
colorToken?: string;
|
|
16
|
+
};
|
|
17
|
+
export type ResolveButtonAffordanceInput = {
|
|
18
|
+
/** Node-level icon id (e.g. `'ArrowRight'`). Highest priority. */
|
|
19
|
+
trailingIcon?: string | null;
|
|
20
|
+
/** Node-level colour token for the node icon. */
|
|
21
|
+
trailingIconColorToken?: string | null;
|
|
22
|
+
/** Personality/variant affordance default (theme-supplied). */
|
|
23
|
+
personalityAffordance?: ButtonAffordance | null;
|
|
24
|
+
};
|
|
25
|
+
export type ResolvedButtonAffordance = ButtonAffordance & {
|
|
26
|
+
/** Where the affordance came from — useful for suppression decisions and tests. */
|
|
27
|
+
source: 'node' | 'personality';
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Resolve the trailing affordance a button should render. Node overrides
|
|
31
|
+
* personality; returns `null` when nothing is configured.
|
|
32
|
+
*/
|
|
33
|
+
export declare function resolveButtonAffordance(input: ResolveButtonAffordanceInput): ResolvedButtonAffordance | null;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ButtonVariant, PublicEvent } from '../../../../blocks/events/shared/types';
|
|
3
|
+
import { type WeekCalendarDays } from './utils';
|
|
4
|
+
type WeekBoardViewProps = {
|
|
5
|
+
days: WeekCalendarDays;
|
|
6
|
+
events: PublicEvent[];
|
|
7
|
+
showCapacity: boolean;
|
|
8
|
+
emptyMessage?: string;
|
|
9
|
+
/** Board title shown in the top bar. */
|
|
10
|
+
title?: string;
|
|
11
|
+
/** Footer note shown alongside the CTA. */
|
|
12
|
+
footerNote?: string;
|
|
13
|
+
/** Footer CTA label. */
|
|
14
|
+
ctaLabel?: string;
|
|
15
|
+
/** Optional href for the footer CTA. Renders a button when omitted. */
|
|
16
|
+
ctaHref?: string | null;
|
|
17
|
+
buttonVariant?: ButtonVariant;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* WeekBoardView
|
|
21
|
+
*
|
|
22
|
+
* Compact "class day-board": day columns side by side (one card per class per
|
|
23
|
+
* day), a legend of the three availability states, and a footer CTA. Collapses
|
|
24
|
+
* to a stacked list on mobile. Repurposes the week-grouped agenda data as a
|
|
25
|
+
* board rather than an hour-positioned timetable grid.
|
|
26
|
+
*/
|
|
27
|
+
export declare const WeekBoardView: React.FC<WeekBoardViewProps>;
|
|
28
|
+
export default WeekBoardView;
|
|
@@ -14,3 +14,35 @@ export type EventAvailability = {
|
|
|
14
14
|
* rows, and timetable cells — keep wording variations in the call sites.
|
|
15
15
|
*/
|
|
16
16
|
export declare function getEventAvailability(event: PublicEvent): EventAvailability;
|
|
17
|
+
/**
|
|
18
|
+
* Three-state availability status for the compact class board.
|
|
19
|
+
* - `available`: comfortable capacity (or uncapped) — maps to the green/secondary token.
|
|
20
|
+
* - `filling`: at or below the "filling" threshold — maps to the accent/amber token.
|
|
21
|
+
* - `waitlist`: full — maps to the muted token. Label reflects whether a waitlist is open.
|
|
22
|
+
*/
|
|
23
|
+
export type EventAvailabilityStatus = 'available' | 'filling' | 'waitlist';
|
|
24
|
+
export type EventAvailabilityDetail = {
|
|
25
|
+
status: EventAvailabilityStatus;
|
|
26
|
+
/** Remaining spots. `null` when the event has no capacity cap. */
|
|
27
|
+
available: number | null;
|
|
28
|
+
isFull: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Short capacity pill label, e.g. "4 places", "2 left", "Waitlist", "Full".
|
|
31
|
+
* `null` for uncapped events so the pill can be omitted entirely.
|
|
32
|
+
*/
|
|
33
|
+
label: string | null;
|
|
34
|
+
};
|
|
35
|
+
/** Default remaining-spot count at/below which an event reads as "filling up". */
|
|
36
|
+
export declare const DEFAULT_FILLING_THRESHOLD = 2;
|
|
37
|
+
type AvailabilityStatusOptions = {
|
|
38
|
+
/** Remaining spots at or below which the event is "filling up". Defaults to 2. */
|
|
39
|
+
fillingThreshold?: number;
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Derive the three-state availability status (available / filling / waitlist)
|
|
43
|
+
* plus a short pill label. Builds on {@link getEventAvailability} so the
|
|
44
|
+
* capacity math (availableSpots with a `capacity - registeredCount` fallback)
|
|
45
|
+
* stays consistent with the binary helper used elsewhere.
|
|
46
|
+
*/
|
|
47
|
+
export declare function getEventAvailabilityStatus(event: PublicEvent, options?: AvailabilityStatusOptions): EventAvailabilityDetail;
|
|
48
|
+
export {};
|
|
@@ -24,6 +24,7 @@ export declare const eventCalendarDisplayModeSchema: z.ZodEnum<{
|
|
|
24
24
|
calendar: "calendar";
|
|
25
25
|
combined: "combined";
|
|
26
26
|
timetable: "timetable";
|
|
27
|
+
"week-board": "week-board";
|
|
27
28
|
}>;
|
|
28
29
|
export declare const eventCalendarDefaultViewSchema: z.ZodEnum<{
|
|
29
30
|
week: "week";
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Bounded, prop-driven SVG node.
|
|
4
|
+
*
|
|
5
|
+
* Unlike a raw `dangerouslySetInnerHTML` escape hatch, this node accepts a
|
|
6
|
+
* closed set of primitive shapes (`path`/`ellipse`/`circle`/`rect`/`line`) and
|
|
7
|
+
* maps each to the corresponding SVG element.
|
|
8
|
+
*
|
|
9
|
+
* Geometry (`d`, `cx`, `x`, ...) is emitted as SVG presentation attributes.
|
|
10
|
+
* Paint props (`fill`/`stroke`/`fillOpacity`/...) are emitted via inline
|
|
11
|
+
* `style` rather than attributes: this is deliberate so that colour values may
|
|
12
|
+
* contain theme token references such as `"rgb(var(--tb-accent))"`. CSS
|
|
13
|
+
* `var()` is only substituted in a CSS-property context — inside a
|
|
14
|
+
* presentation *attribute* it never resolves — so paint-through-style is what
|
|
15
|
+
* keeps the node fully themeable and live-recolouring.
|
|
16
|
+
*
|
|
17
|
+
* There are no child nodes and no raw markup: everything is declared as data,
|
|
18
|
+
* which keeps it safe to persist and validate like any other layout node.
|
|
19
|
+
*/
|
|
20
|
+
type NodeMetadataProps = {
|
|
21
|
+
pathBase?: string;
|
|
22
|
+
blockId?: string | null;
|
|
23
|
+
blockKind?: string;
|
|
24
|
+
blockContent?: unknown;
|
|
25
|
+
fragmentRegistry?: unknown;
|
|
26
|
+
};
|
|
27
|
+
/** Paint/appearance props common to every shape. Passed straight to SVG attributes. */
|
|
28
|
+
type ShapePaint = {
|
|
29
|
+
fill?: string;
|
|
30
|
+
stroke?: string;
|
|
31
|
+
strokeWidth?: string | number;
|
|
32
|
+
fillOpacity?: string | number;
|
|
33
|
+
strokeOpacity?: string | number;
|
|
34
|
+
strokeLinecap?: 'butt' | 'round' | 'square';
|
|
35
|
+
strokeLinejoin?: 'miter' | 'round' | 'bevel';
|
|
36
|
+
strokeDasharray?: string | number;
|
|
37
|
+
};
|
|
38
|
+
export type SvgShape = ({
|
|
39
|
+
kind: 'path';
|
|
40
|
+
d: string;
|
|
41
|
+
} & ShapePaint) | ({
|
|
42
|
+
kind: 'ellipse';
|
|
43
|
+
cx: number | string;
|
|
44
|
+
cy: number | string;
|
|
45
|
+
rx: number | string;
|
|
46
|
+
ry: number | string;
|
|
47
|
+
} & ShapePaint) | ({
|
|
48
|
+
kind: 'circle';
|
|
49
|
+
cx: number | string;
|
|
50
|
+
cy: number | string;
|
|
51
|
+
r: number | string;
|
|
52
|
+
} & ShapePaint) | ({
|
|
53
|
+
kind: 'rect';
|
|
54
|
+
x: number | string;
|
|
55
|
+
y: number | string;
|
|
56
|
+
width: number | string;
|
|
57
|
+
height: number | string;
|
|
58
|
+
rx?: number | string;
|
|
59
|
+
ry?: number | string;
|
|
60
|
+
} & ShapePaint) | ({
|
|
61
|
+
kind: 'line';
|
|
62
|
+
x1: number | string;
|
|
63
|
+
y1: number | string;
|
|
64
|
+
x2: number | string;
|
|
65
|
+
y2: number | string;
|
|
66
|
+
} & ShapePaint);
|
|
67
|
+
export type SvgNodeProps = {
|
|
68
|
+
viewBox: string;
|
|
69
|
+
width?: string | number;
|
|
70
|
+
height?: string | number;
|
|
71
|
+
className?: string;
|
|
72
|
+
style?: React.CSSProperties;
|
|
73
|
+
ariaHidden?: boolean;
|
|
74
|
+
shapes: SvgShape[];
|
|
75
|
+
};
|
|
76
|
+
export declare const SvgNode: React.FC<SvgNodeProps & NodeMetadataProps>;
|
|
77
|
+
export {};
|
|
@@ -111,50 +111,13 @@ export declare const containerStylesResolveClassName: TransformDefinition<Contai
|
|
|
111
111
|
* - background includes the container padding
|
|
112
112
|
*/
|
|
113
113
|
export declare const containerStylesResolveBoxClassName: TransformDefinition<ContainerClassNameOptions>;
|
|
114
|
-
type SectionTextColorOptions = {
|
|
115
|
-
/**
|
|
116
|
-
* Optional fallback token to use when no explicit textColor is set.
|
|
117
|
-
* When omitted, the transform returns an empty style object.
|
|
118
|
-
*/
|
|
119
|
-
fallbackToken?: string;
|
|
120
|
-
};
|
|
121
|
-
/**
|
|
122
|
-
* Resolves section text color style object.
|
|
123
|
-
*
|
|
124
|
-
* The value should be the `_sectionStyles.background.textColor` token.
|
|
125
|
-
* Returns an empty object when unset so the section inherits text color.
|
|
126
|
-
*
|
|
127
|
-
* Outputs both `color` and `--section-text-color` CSS variable so that
|
|
128
|
-
* headings (which have explicit color rules in typography CSS) can inherit
|
|
129
|
-
* the section's text color via the CSS variable cascade.
|
|
130
|
-
*/
|
|
131
|
-
export declare const sectionTextColorStyleTransform: TransformDefinition<SectionTextColorOptions>;
|
|
132
|
-
type SectionHeadingColorOptions = {
|
|
133
|
-
/**
|
|
134
|
-
* Optional fallback token to use when no explicit headingColor is set.
|
|
135
|
-
* When omitted, the transform returns an empty style object.
|
|
136
|
-
*/
|
|
137
|
-
fallbackToken?: string;
|
|
138
|
-
};
|
|
139
|
-
/**
|
|
140
|
-
* Resolves section heading color style object.
|
|
141
|
-
*
|
|
142
|
-
* The value should be the `_sectionStyles.background.headingColor` token.
|
|
143
|
-
* Returns an empty object when unset so headings inherit from textColor or default.
|
|
144
|
-
*
|
|
145
|
-
* Outputs `--section-heading-color` CSS variable which typography CSS can use
|
|
146
|
-
* to style headings differently from body text within a section.
|
|
147
|
-
*/
|
|
148
|
-
export declare const sectionHeadingColorStyleTransform: TransformDefinition<SectionHeadingColorOptions>;
|
|
149
114
|
/**
|
|
150
|
-
* Resolves
|
|
115
|
+
* Resolves surface foreground colors from the background object.
|
|
151
116
|
*
|
|
152
117
|
* The value should be the full `_sectionStyles.background` object.
|
|
153
118
|
* Outputs:
|
|
154
|
-
* - `color` and `--
|
|
155
|
-
* -
|
|
156
|
-
* - `--section-link-color` from background.linkColor (falls back to textColor if not set)
|
|
157
|
-
* - `--section-supporting-color` from background.supportingColor (falls back to textColor if not set)
|
|
119
|
+
* - `color` and the complete `--rb-surface-*-color` contract
|
|
120
|
+
* - optional roles fall back atomically to background.textColor
|
|
158
121
|
*
|
|
159
122
|
* This combined transform replaces separate foreground color transforms
|
|
160
123
|
* when both need to be applied to the same style prop.
|
|
@@ -12,5 +12,19 @@ declare const marqueeLoopOptionsSchema: z.ZodObject<{
|
|
|
12
12
|
minItems: z.ZodDefault<z.ZodNumber>;
|
|
13
13
|
}, z.core.$strip>;
|
|
14
14
|
export declare const marqueeLoopTransform: TransformDefinition<z.infer<typeof marqueeLoopOptionsSchema>>;
|
|
15
|
+
declare const mapTokenOptionsSchema: z.ZodObject<{
|
|
16
|
+
cases: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
17
|
+
fallback: z.ZodOptional<z.ZodString>;
|
|
18
|
+
}, z.core.$strip>;
|
|
19
|
+
/**
|
|
20
|
+
* Map a content state/enum to a theme token colour — the first-class way to turn
|
|
21
|
+
* a value like a class's availability (`available`/`filling`/`waitlist`), a
|
|
22
|
+
* card's featured flag, or a pricing tier level into a themed colour. Authors
|
|
23
|
+
* write role names and get `rgb(var(--tb-<role>))`, so the result live-recolours
|
|
24
|
+
* with the theme and drops directly into a `style` binding (e.g.
|
|
25
|
+
* `borderLeftColor`). Returns `undefined` when the value matches no case and no
|
|
26
|
+
* fallback is given, so the style property is simply omitted.
|
|
27
|
+
*/
|
|
28
|
+
export declare const mapTokenTransform: TransformDefinition<z.infer<typeof mapTokenOptionsSchema>>;
|
|
15
29
|
export declare const formattingTransforms: TransformDefinition[];
|
|
16
30
|
export {};
|
|
@@ -8,6 +8,17 @@ declare const headerLogoClassSchema: z.ZodObject<{
|
|
|
8
8
|
export declare const headerLogoClassTransform: TransformDefinition<z.infer<typeof headerLogoClassSchema>>;
|
|
9
9
|
export declare const headerLogoMediaClassTransform: TransformDefinition<z.infer<typeof headerLogoClassSchema>>;
|
|
10
10
|
export declare const headerLogoTextVisibleTransform: TransformDefinition;
|
|
11
|
+
/**
|
|
12
|
+
* Selects which classic-layout nav row should render.
|
|
13
|
+
*
|
|
14
|
+
* - `'inline'` → classic variant with the historical logo-left / nav-right row
|
|
15
|
+
* - `'centered'`→ classic variant with a centred (flex-1) nav and a right CTA
|
|
16
|
+
* - `'other'` → not a classic variant (centered/floating/transparent handle it)
|
|
17
|
+
*
|
|
18
|
+
* Consumed by the site-header block's `$when` gates so the two classic rows are
|
|
19
|
+
* mutually exclusive without introducing a new top-level header variant.
|
|
20
|
+
*/
|
|
21
|
+
export declare const classicNavModeTransform: TransformDefinition;
|
|
11
22
|
declare const maxWidthClassSchema: z.ZodObject<{
|
|
12
23
|
base: z.ZodOptional<z.ZodString>;
|
|
13
24
|
container: z.ZodOptional<z.ZodString>;
|
|
@@ -30,6 +30,7 @@ export type PageSurfaceId = Brand<string, 'PageSurfaceId'>;
|
|
|
30
30
|
export type OccurrenceId = Brand<string, 'OccurrenceId'>;
|
|
31
31
|
export type EventOfferingId = Brand<string, 'EventOfferingId'>;
|
|
32
32
|
export type EventSeriesId = Brand<string, 'EventSeriesId'>;
|
|
33
|
+
export type EventPageRouteSlug = Brand<string, 'EventPageRouteSlug'>;
|
|
33
34
|
export type TicketTypeId = Brand<string, 'TicketTypeId'>;
|
|
34
35
|
export type EventCategoryId = Brand<string, 'EventCategoryId'>;
|
|
35
36
|
export type VenueId = Brand<string, 'VenueId'>;
|
|
@@ -61,6 +62,7 @@ export type FormSubmissionId = Brand<string, 'FormSubmissionId'>;
|
|
|
61
62
|
export type PassId = Brand<string, 'PassId'>;
|
|
62
63
|
export type MembershipId = Brand<string, 'MembershipId'>;
|
|
63
64
|
export type CourseId = Brand<string, 'CourseId'>;
|
|
65
|
+
export type CourseProgramId = Brand<string, 'CourseProgramId'>;
|
|
64
66
|
export type CustomerId = Brand<string, 'CustomerId'>;
|
|
65
67
|
export type OrderId = Brand<string, 'OrderId'>;
|
|
66
68
|
export type OrderItemId = Brand<string, 'OrderItemId'>;
|
|
@@ -149,6 +151,7 @@ export declare const unsafeAsPageSurfaceId: (id: string) => PageSurfaceId;
|
|
|
149
151
|
export declare const unsafeAsOccurrenceId: (id: string) => OccurrenceId;
|
|
150
152
|
export declare const unsafeAsEventOfferingId: (id: string) => EventOfferingId;
|
|
151
153
|
export declare const unsafeAsEventSeriesId: (id: string) => EventSeriesId;
|
|
154
|
+
export declare const unsafeAsEventPageRouteSlug: (value: string) => EventPageRouteSlug;
|
|
152
155
|
export declare const unsafeAsTicketTypeId: (id: string) => TicketTypeId;
|
|
153
156
|
export declare const unsafeAsEventCategoryId: (id: string) => EventCategoryId;
|
|
154
157
|
export declare const unsafeAsVenueId: (id: string) => VenueId;
|
|
@@ -180,6 +183,7 @@ export declare const unsafeAsFormSubmissionId: (id: string) => FormSubmissionId;
|
|
|
180
183
|
export declare const unsafeAsPassId: (id: string) => PassId;
|
|
181
184
|
export declare const unsafeAsMembershipId: (id: string) => MembershipId;
|
|
182
185
|
export declare const unsafeAsCourseId: (id: string) => CourseId;
|
|
186
|
+
export declare const unsafeAsCourseProgramId: (id: string) => CourseProgramId;
|
|
183
187
|
export declare const unsafeAsCustomerId: (id: string) => CustomerId;
|
|
184
188
|
export declare const unsafeAsOrderId: (id: string) => OrderId;
|
|
185
189
|
export declare const unsafeAsOrderItemId: (id: string) => OrderItemId;
|
|
@@ -241,6 +245,7 @@ export declare const parsePageId: (value: unknown) => Result<PageId, BrandedIdPa
|
|
|
241
245
|
export declare const parsePageSurfaceId: (value: unknown) => Result<PageSurfaceId, BrandedIdParseError>;
|
|
242
246
|
export declare const parseOccurrenceId: (value: unknown) => Result<OccurrenceId, BrandedIdParseError>;
|
|
243
247
|
export declare const parseEventOfferingId: (value: unknown) => Result<EventOfferingId, BrandedIdParseError>;
|
|
248
|
+
export declare const parseCourseProgramId: (value: unknown) => Result<CourseProgramId, BrandedIdParseError>;
|
|
244
249
|
export declare const parseTicketTypeId: (value: unknown) => Result<TicketTypeId, BrandedIdParseError>;
|
|
245
250
|
export declare const parsePricingOptionId: (value: unknown) => Result<PricingOptionId, BrandedIdParseError>;
|
|
246
251
|
export declare const parseUserId: (value: unknown) => Result<UserId, BrandedIdParseError>;
|
|
@@ -17047,6 +17047,12 @@ export type Database = {
|
|
|
17047
17047
|
theme_id: string;
|
|
17048
17048
|
}[];
|
|
17049
17049
|
};
|
|
17050
|
+
assert_event_offering_surface_binding: {
|
|
17051
|
+
Args: {
|
|
17052
|
+
p_event_offering_id: string;
|
|
17053
|
+
};
|
|
17054
|
+
Returns: undefined;
|
|
17055
|
+
};
|
|
17050
17056
|
assert_single_subject_participant_roster_atomic: {
|
|
17051
17057
|
Args: {
|
|
17052
17058
|
p_customer_id: string;
|
|
@@ -18307,6 +18313,18 @@ export type Database = {
|
|
|
18307
18313
|
locked_until: string;
|
|
18308
18314
|
}[];
|
|
18309
18315
|
};
|
|
18316
|
+
repair_shared_event_offering_surface: {
|
|
18317
|
+
Args: {
|
|
18318
|
+
p_event_series_ids: string[];
|
|
18319
|
+
p_site_id: string;
|
|
18320
|
+
p_slug: string;
|
|
18321
|
+
p_source_content_entry_id: string;
|
|
18322
|
+
p_source_route_id: string;
|
|
18323
|
+
p_surface_id: string;
|
|
18324
|
+
p_title: string;
|
|
18325
|
+
};
|
|
18326
|
+
Returns: string;
|
|
18327
|
+
};
|
|
18310
18328
|
replace_appointment_availability_schedule_payload: {
|
|
18311
18329
|
Args: {
|
|
18312
18330
|
p_interval_minutes: number;
|
|
@@ -214,7 +214,7 @@ export type EmbedContent = {
|
|
|
214
214
|
export type EventLayout = 'grid' | 'stack' | 'compact';
|
|
215
215
|
export type ColumnOption = '2' | '3' | '4';
|
|
216
216
|
export type WeekStart = 'sunday' | 'monday';
|
|
217
|
-
export type DisplayMode = 'combined' | 'calendar' | 'list' | 'timetable';
|
|
217
|
+
export type DisplayMode = 'combined' | 'calendar' | 'list' | 'timetable' | 'week-board';
|
|
218
218
|
export type FilterAutoShow = 'auto' | 'always' | 'never';
|
|
219
219
|
export type CalendarTabViews = 'both' | 'month' | 'week';
|
|
220
220
|
export type CalendarView = 'month' | 'week';
|
|
@@ -574,7 +574,7 @@ export type TeamMembersContent = (TeamMembersCommonContent & {
|
|
|
574
574
|
members?: ManualTeamMemberItem[];
|
|
575
575
|
});
|
|
576
576
|
export type TestimonialsBlockContent = {
|
|
577
|
-
variant?: 'carousel' | 'grid' | 'split-grid' | 'highlight' | null;
|
|
577
|
+
variant?: 'carousel' | 'grid' | 'split-grid' | 'featured-editorial' | 'highlight' | null;
|
|
578
578
|
heading?: string | null;
|
|
579
579
|
subheading?: string | null;
|
|
580
580
|
avatarLayout?: 'above-centered' | 'inline-left' | 'hidden' | null;
|