@riverbankcms/sdk 0.60.1 → 0.60.6

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 (97) hide show
  1. package/dist/_dts/api/src/bookingRecords.d.ts +7 -0
  2. package/dist/_dts/api/src/bookingVerticals.d.ts +1 -0
  3. package/dist/_dts/api/src/communications.d.ts +1 -0
  4. package/dist/_dts/api/src/contentRuntime.d.ts +8 -0
  5. package/dist/_dts/api/src/endpoints.d.ts +17 -0
  6. package/dist/_dts/api/src/index.d.ts +1 -1
  7. package/dist/_dts/api/src/media.d.ts +1 -1
  8. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +10 -2
  9. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +26 -1
  10. package/dist/_dts/api/src/siteSettings.d.ts +7 -0
  11. package/dist/_dts/api/src/types.d.ts +1 -1
  12. package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +3 -0
  13. package/dist/_dts/blocks/src/system/blocks/site-footer.d.ts +1 -0
  14. package/dist/_dts/blocks/src/system/node/fragments/ctaButton.d.ts +2 -0
  15. package/dist/_dts/blocks/src/system/runtime/nodes/location-map.server.d.ts +4 -0
  16. package/dist/_dts/blocks/src/system/runtime/nodes/location-map.shared.d.ts +38 -0
  17. package/dist/_dts/blocks/src/system/runtime/nodes/location-map.view.d.ts +2 -1
  18. package/dist/_dts/blocks/src/system/runtime/shared/themedButtonClass.d.ts +11 -0
  19. package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +10 -2
  20. package/dist/_dts/core/src/business-address.d.ts +38 -0
  21. package/dist/_dts/core/src/index.d.ts +1 -0
  22. package/dist/_dts/core/src/participants.d.ts +32 -1
  23. package/dist/_dts/core/src/rectification.d.ts +79 -0
  24. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +28 -6
  25. package/dist/_dts/preview-next/src/client/blocks/runOptimisticCustomizeAction.d.ts +44 -0
  26. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +7 -1
  27. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +12 -1
  28. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +6 -1
  29. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.d.ts +20 -0
  30. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +101 -0
  31. package/dist/_dts/sdk/src/client/types.d.ts +1 -0
  32. package/dist/_dts/sdk/src/public-api/contracts.d.ts +11 -1
  33. package/dist/_dts/sdk/src/version.d.ts +1 -1
  34. package/dist/_dts/theme-core/src/buttons/constants.d.ts +9 -1
  35. package/dist/_dts/theme-core/src/buttons/generateButtonCss.d.ts +16 -11
  36. package/dist/_dts/theme-core/src/buttons/generateDefaultButtonSystem.d.ts +9 -16
  37. package/dist/_dts/theme-core/src/buttons/index.d.ts +1 -0
  38. package/dist/_dts/theme-core/src/buttons/personalities/brushed-wash.d.ts +16 -0
  39. package/dist/_dts/theme-core/src/buttons/personalities/confident-chip.d.ts +16 -0
  40. package/dist/_dts/theme-core/src/buttons/personalities/editorial-link.d.ts +16 -0
  41. package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +95 -0
  42. package/dist/_dts/theme-core/src/buttons/personalities/ink-stamp.d.ts +16 -0
  43. package/dist/_dts/theme-core/src/buttons/personalities/pebble.d.ts +16 -0
  44. package/dist/_dts/theme-core/src/buttons/personalities/soft-pill.d.ts +16 -0
  45. package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +268 -0
  46. package/dist/_dts/theme-core/src/buttons/types.d.ts +253 -72
  47. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +69 -15
  48. package/dist/_dts/theme-core/src/palette/index.d.ts +1 -0
  49. package/dist/_dts/theme-core/src/palette/variants/brand-led.d.ts +52 -0
  50. package/dist/_dts/theme-core/src/palette/variants/high-contrast.d.ts +52 -0
  51. package/dist/_dts/theme-core/src/palette/variants/index.d.ts +213 -0
  52. package/dist/_dts/theme-core/src/palette/variants/soft-natural.d.ts +52 -0
  53. package/dist/_dts/theme-core/src/palette/variants/types.d.ts +154 -0
  54. package/dist/_dts/theme-core/src/palette/variants/warm-neutral.d.ts +52 -0
  55. package/dist/_dts/theme-core/src/schema.d.ts +122 -10
  56. package/dist/_dts/theme-core/src/site-styles/curatedChoices.d.ts +27 -0
  57. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +48 -1
  58. package/dist/_dts/theme-core/src/site-styles/index.d.ts +2 -0
  59. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +4 -0
  60. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +42 -3
  61. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +23 -1
  62. package/dist/_dts/theme-core/src/site-styles/styleTags.d.ts +46 -0
  63. package/dist/_dts/ui/src/badge.d.ts +1 -1
  64. package/dist/_dts/ui/src/callout.d.ts +1 -1
  65. package/dist/_dts/ui/src/palette/ColorChooserDialog.d.ts +47 -0
  66. package/dist/_dts/ui/src/palette/ColorSlotButton.d.ts +15 -0
  67. package/dist/_dts/ui/src/palette/ColorSwatchButton.d.ts +15 -0
  68. package/dist/_dts/ui/src/palette/PaletteTokenEditor.d.ts +50 -0
  69. package/dist/_dts/ui/src/palette/hex.d.ts +23 -0
  70. package/dist/_dts/ui/src/palette/index.d.ts +14 -0
  71. package/dist/cli/index.mjs +2255 -947
  72. package/dist/client/bookings.mjs +294 -144
  73. package/dist/client/client.mjs +4053 -2600
  74. package/dist/client/hooks.mjs +3248 -2076
  75. package/dist/client/rendering/client.mjs +3377 -2165
  76. package/dist/client/rendering/islands.mjs +1911 -736
  77. package/dist/client/rendering.mjs +41897 -40445
  78. package/dist/preview-next/before-render.mjs +17 -0
  79. package/dist/preview-next/client/runtime.mjs +13511 -11313
  80. package/dist/preview-next/middleware.mjs +17 -0
  81. package/dist/server/components.mjs +4434 -3172
  82. package/dist/server/config-validation.mjs +3479 -2307
  83. package/dist/server/config.mjs +3479 -2307
  84. package/dist/server/data.mjs +3248 -2076
  85. package/dist/server/index.mjs +21 -3
  86. package/dist/server/next.mjs +3989 -2726
  87. package/dist/server/page-converter.mjs +3393 -2238
  88. package/dist/server/prebuild.mjs +1 -1
  89. package/dist/server/rendering/server.mjs +4434 -3172
  90. package/dist/server/rendering.mjs +4434 -3172
  91. package/dist/server/routing.mjs +3582 -2274
  92. package/dist/server/server.mjs +3252 -2079
  93. package/dist/server/theme-bridge.mjs +1454 -496
  94. package/dist/server/theme.mjs +1102 -505
  95. package/package.json +1 -1
  96. package/dist/_dts/preview-next/src/client/preview/PreviewSiteStyleSwitcher.d.ts +0 -11
  97. package/dist/_dts/preview-next/src/client/preview/PreviewSiteStyleSwitcher.state.d.ts +0 -43
@@ -3643,6 +3643,12 @@ export declare const themeSchema: z.ZodObject<{
3643
3643
  body: "body";
3644
3644
  heading: "heading";
3645
3645
  }>>;
3646
+ fontSize: z.ZodOptional<z.ZodString>;
3647
+ letterSpacing: z.ZodOptional<z.ZodEnum<{
3648
+ normal: "normal";
3649
+ loose: "loose";
3650
+ tight: "tight";
3651
+ }>>;
3646
3652
  italic: z.ZodOptional<z.ZodBoolean>;
3647
3653
  paddingPreset: z.ZodOptional<z.ZodEnum<{
3648
3654
  compact: "compact";
@@ -3700,7 +3706,7 @@ export declare const themeSchema: z.ZodObject<{
3700
3706
  type: z.ZodLiteral<"transparent">;
3701
3707
  }, z.core.$strip>], "type">;
3702
3708
  textColorToken: z.ZodString;
3703
- borderRadius: z.ZodString;
3709
+ borderRadius: z.ZodOptional<z.ZodString>;
3704
3710
  shadow: z.ZodOptional<z.ZodObject<{
3705
3711
  elevation: z.ZodEnum<{
3706
3712
  medium: "medium";
@@ -3722,8 +3728,6 @@ export declare const themeSchema: z.ZodObject<{
3722
3728
  widthClass: z.ZodString;
3723
3729
  colorToken: z.ZodString;
3724
3730
  }, z.core.$strip>>;
3725
- padding: z.ZodOptional<z.ZodString>;
3726
- fontSize: z.ZodOptional<z.ZodString>;
3727
3731
  hoverBackgroundToken: z.ZodOptional<z.ZodString>;
3728
3732
  effects: z.ZodOptional<z.ZodObject<{
3729
3733
  base: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -3743,8 +3747,26 @@ export declare const themeSchema: z.ZodObject<{
3743
3747
  options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
3744
3748
  }, z.core.$strip>>>;
3745
3749
  }, z.core.$strip>>;
3750
+ sizes: z.ZodOptional<z.ZodObject<{
3751
+ sm: z.ZodOptional<z.ZodObject<{
3752
+ padding: z.ZodString;
3753
+ fontSize: z.ZodOptional<z.ZodString>;
3754
+ }, z.core.$strip>>;
3755
+ md: z.ZodOptional<z.ZodObject<{
3756
+ padding: z.ZodString;
3757
+ fontSize: z.ZodOptional<z.ZodString>;
3758
+ }, z.core.$strip>>;
3759
+ lg: z.ZodOptional<z.ZodObject<{
3760
+ padding: z.ZodString;
3761
+ fontSize: z.ZodOptional<z.ZodString>;
3762
+ }, z.core.$strip>>;
3763
+ xl: z.ZodOptional<z.ZodObject<{
3764
+ padding: z.ZodString;
3765
+ fontSize: z.ZodOptional<z.ZodString>;
3766
+ }, z.core.$strip>>;
3767
+ }, z.core.$strip>>;
3746
3768
  }, z.core.$strip>>;
3747
- sizes: z.ZodOptional<z.ZodObject<{
3769
+ sizes: z.ZodOptional<z.ZodPipe<z.ZodObject<{
3748
3770
  sm: z.ZodObject<{
3749
3771
  padding: z.ZodString;
3750
3772
  fontSize: z.ZodOptional<z.ZodString>;
@@ -3761,7 +3783,41 @@ export declare const themeSchema: z.ZodObject<{
3761
3783
  padding: z.ZodString;
3762
3784
  fontSize: z.ZodOptional<z.ZodString>;
3763
3785
  }, z.core.$strip>>;
3764
- }, z.core.$strip>>;
3786
+ }, z.core.$strip>, z.ZodTransform<{
3787
+ sm: {
3788
+ padding: string;
3789
+ fontSize?: string | undefined;
3790
+ };
3791
+ md: {
3792
+ padding: string;
3793
+ fontSize?: string | undefined;
3794
+ };
3795
+ lg: {
3796
+ padding: string;
3797
+ fontSize?: string | undefined;
3798
+ };
3799
+ xl: {
3800
+ padding: string;
3801
+ fontSize?: string | undefined;
3802
+ };
3803
+ }, {
3804
+ sm: {
3805
+ padding: string;
3806
+ fontSize?: string | undefined;
3807
+ };
3808
+ md: {
3809
+ padding: string;
3810
+ fontSize?: string | undefined;
3811
+ };
3812
+ lg: {
3813
+ padding: string;
3814
+ fontSize?: string | undefined;
3815
+ };
3816
+ xl?: {
3817
+ padding: string;
3818
+ fontSize?: string | undefined;
3819
+ } | undefined;
3820
+ }>>>;
3765
3821
  }, z.core.$strip>>;
3766
3822
  cards: z.ZodOptional<z.ZodObject<{
3767
3823
  variants: z.ZodArray<z.ZodObject<{
@@ -5612,6 +5668,12 @@ export declare const themesTurnSchema: z.ZodObject<{
5612
5668
  body: "body";
5613
5669
  heading: "heading";
5614
5670
  }>>;
5671
+ fontSize: z.ZodOptional<z.ZodString>;
5672
+ letterSpacing: z.ZodOptional<z.ZodEnum<{
5673
+ normal: "normal";
5674
+ loose: "loose";
5675
+ tight: "tight";
5676
+ }>>;
5615
5677
  italic: z.ZodOptional<z.ZodBoolean>;
5616
5678
  paddingPreset: z.ZodOptional<z.ZodEnum<{
5617
5679
  compact: "compact";
@@ -5669,7 +5731,7 @@ export declare const themesTurnSchema: z.ZodObject<{
5669
5731
  type: z.ZodLiteral<"transparent">;
5670
5732
  }, z.core.$strip>], "type">;
5671
5733
  textColorToken: z.ZodString;
5672
- borderRadius: z.ZodString;
5734
+ borderRadius: z.ZodOptional<z.ZodString>;
5673
5735
  shadow: z.ZodOptional<z.ZodObject<{
5674
5736
  elevation: z.ZodEnum<{
5675
5737
  medium: "medium";
@@ -5691,8 +5753,6 @@ export declare const themesTurnSchema: z.ZodObject<{
5691
5753
  widthClass: z.ZodString;
5692
5754
  colorToken: z.ZodString;
5693
5755
  }, z.core.$strip>>;
5694
- padding: z.ZodOptional<z.ZodString>;
5695
- fontSize: z.ZodOptional<z.ZodString>;
5696
5756
  hoverBackgroundToken: z.ZodOptional<z.ZodString>;
5697
5757
  effects: z.ZodOptional<z.ZodObject<{
5698
5758
  base: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -5712,8 +5772,26 @@ export declare const themesTurnSchema: z.ZodObject<{
5712
5772
  options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
5713
5773
  }, z.core.$strip>>>;
5714
5774
  }, z.core.$strip>>;
5775
+ sizes: z.ZodOptional<z.ZodObject<{
5776
+ sm: z.ZodOptional<z.ZodObject<{
5777
+ padding: z.ZodString;
5778
+ fontSize: z.ZodOptional<z.ZodString>;
5779
+ }, z.core.$strip>>;
5780
+ md: z.ZodOptional<z.ZodObject<{
5781
+ padding: z.ZodString;
5782
+ fontSize: z.ZodOptional<z.ZodString>;
5783
+ }, z.core.$strip>>;
5784
+ lg: z.ZodOptional<z.ZodObject<{
5785
+ padding: z.ZodString;
5786
+ fontSize: z.ZodOptional<z.ZodString>;
5787
+ }, z.core.$strip>>;
5788
+ xl: z.ZodOptional<z.ZodObject<{
5789
+ padding: z.ZodString;
5790
+ fontSize: z.ZodOptional<z.ZodString>;
5791
+ }, z.core.$strip>>;
5792
+ }, z.core.$strip>>;
5715
5793
  }, z.core.$strip>>;
5716
- sizes: z.ZodOptional<z.ZodObject<{
5794
+ sizes: z.ZodOptional<z.ZodPipe<z.ZodObject<{
5717
5795
  sm: z.ZodObject<{
5718
5796
  padding: z.ZodString;
5719
5797
  fontSize: z.ZodOptional<z.ZodString>;
@@ -5730,7 +5808,41 @@ export declare const themesTurnSchema: z.ZodObject<{
5730
5808
  padding: z.ZodString;
5731
5809
  fontSize: z.ZodOptional<z.ZodString>;
5732
5810
  }, z.core.$strip>>;
5733
- }, z.core.$strip>>;
5811
+ }, z.core.$strip>, z.ZodTransform<{
5812
+ sm: {
5813
+ padding: string;
5814
+ fontSize?: string | undefined;
5815
+ };
5816
+ md: {
5817
+ padding: string;
5818
+ fontSize?: string | undefined;
5819
+ };
5820
+ lg: {
5821
+ padding: string;
5822
+ fontSize?: string | undefined;
5823
+ };
5824
+ xl: {
5825
+ padding: string;
5826
+ fontSize?: string | undefined;
5827
+ };
5828
+ }, {
5829
+ sm: {
5830
+ padding: string;
5831
+ fontSize?: string | undefined;
5832
+ };
5833
+ md: {
5834
+ padding: string;
5835
+ fontSize?: string | undefined;
5836
+ };
5837
+ lg: {
5838
+ padding: string;
5839
+ fontSize?: string | undefined;
5840
+ };
5841
+ xl?: {
5842
+ padding: string;
5843
+ fontSize?: string | undefined;
5844
+ } | undefined;
5845
+ }>>>;
5734
5846
  }, z.core.$strip>>;
5735
5847
  cards: z.ZodOptional<z.ZodObject<{
5736
5848
  variants: z.ZodArray<z.ZodObject<{
@@ -0,0 +1,27 @@
1
+ import type { NonEmptyReadonlyArray } from './types';
2
+ export type CuratedChoice<TId extends string> = Readonly<{
3
+ id: TId;
4
+ note?: string;
5
+ }>;
6
+ export type UnknownPersistedChoice = Readonly<{
7
+ kind: 'unknown';
8
+ raw: string;
9
+ }>;
10
+ export type CuratedChoiceRequest<TId extends string> = TId | UnknownPersistedChoice | null;
11
+ export type CuratedChoiceResolution<TId extends string> = Readonly<{
12
+ kind: 'accepted';
13
+ resolved: TId;
14
+ }> | Readonly<{
15
+ kind: 'defaulted-empty';
16
+ resolved: TId;
17
+ }> | Readonly<{
18
+ kind: 'defaulted-rejected';
19
+ requested: string;
20
+ resolved: TId;
21
+ reason: 'unknown' | 'not-curated-for-style';
22
+ }>;
23
+ export declare function defaultCuratedChoice<TId extends string>(choices: NonEmptyReadonlyArray<CuratedChoice<TId>>): TId;
24
+ export declare function resolveCuratedChoice<TId extends string>(requested: CuratedChoiceRequest<TId>, choices: NonEmptyReadonlyArray<CuratedChoice<TId>>): CuratedChoiceResolution<TId>;
25
+ export declare function requireEntriesForCuratedChoices<TEntry extends Readonly<{
26
+ id: string;
27
+ }>, TId extends TEntry['id']>(entries: readonly TEntry[], choices: NonEmptyReadonlyArray<CuratedChoice<TId>>): NonEmptyReadonlyArray<TEntry>;
@@ -1,6 +1,11 @@
1
- import { type DesignSystemTemplate, type SiteStyleId } from './types';
1
+ import { type ButtonPersonalityId, type KnownButtonPersonalityId } from '../buttons/personalities';
2
+ import { type KnownPaletteVariantId, type PaletteVariantId } from '../palette/variants';
3
+ import { type CuratedChoice } from './curatedChoices';
4
+ import { type DesignSystemTemplate, type NonEmptyReadonlyArray, type SiteStyleId } from './types';
2
5
  export declare const curatedSiteStyleIdValues: readonly ["site-style:calm-studio", "site-style:clear-professional", "site-style:warm-editorial", "site-style:bright-community", "site-style:quiet-luxury", "site-style:practical-services", "site-style:modern-wellness", "site-style:bold-launch"];
3
6
  export type CuratedSiteStyleIdValue = typeof curatedSiteStyleIdValues[number];
7
+ export type ButtonPersonalityChoice = CuratedChoice<KnownButtonPersonalityId>;
8
+ export type PaletteVariantChoice = CuratedChoice<KnownPaletteVariantId>;
4
9
  export type CuratedSiteStyle = Readonly<{
5
10
  id: SiteStyleId;
6
11
  name: string;
@@ -8,7 +13,13 @@ export type CuratedSiteStyle = Readonly<{
8
13
  generationBrief: string;
9
14
  selectionKeywords: readonly string[];
10
15
  template: DesignSystemTemplate;
16
+ /** Authored picker choices. First item is the default/fallback. */
17
+ buttonPersonalityChoices: NonEmptyReadonlyArray<ButtonPersonalityChoice>;
18
+ /** Authored picker choices. First item is the default/fallback. */
19
+ paletteVariantChoices: NonEmptyReadonlyArray<PaletteVariantChoice>;
11
20
  }>;
21
+ export declare function defaultButtonPersonalityForSiteStyle(siteStyle: CuratedSiteStyle): ButtonPersonalityId;
22
+ export declare function defaultPaletteVariantForSiteStyle(siteStyle: CuratedSiteStyle): PaletteVariantId;
12
23
  /**
13
24
  * V1 generated site styles are curated product presets, not AI-authored design
14
25
  * systems. Generators choose one of these bounded entries, then downstream
@@ -21,6 +32,10 @@ export declare const curatedSiteStyles: readonly [Readonly<{
21
32
  generationBrief: string;
22
33
  selectionKeywords: readonly string[];
23
34
  template: DesignSystemTemplate;
35
+ /** Authored picker choices. First item is the default/fallback. */
36
+ buttonPersonalityChoices: NonEmptyReadonlyArray<ButtonPersonalityChoice>;
37
+ /** Authored picker choices. First item is the default/fallback. */
38
+ paletteVariantChoices: NonEmptyReadonlyArray<PaletteVariantChoice>;
24
39
  }>, Readonly<{
25
40
  id: SiteStyleId;
26
41
  name: string;
@@ -28,6 +43,10 @@ export declare const curatedSiteStyles: readonly [Readonly<{
28
43
  generationBrief: string;
29
44
  selectionKeywords: readonly string[];
30
45
  template: DesignSystemTemplate;
46
+ /** Authored picker choices. First item is the default/fallback. */
47
+ buttonPersonalityChoices: NonEmptyReadonlyArray<ButtonPersonalityChoice>;
48
+ /** Authored picker choices. First item is the default/fallback. */
49
+ paletteVariantChoices: NonEmptyReadonlyArray<PaletteVariantChoice>;
31
50
  }>, Readonly<{
32
51
  id: SiteStyleId;
33
52
  name: string;
@@ -35,6 +54,10 @@ export declare const curatedSiteStyles: readonly [Readonly<{
35
54
  generationBrief: string;
36
55
  selectionKeywords: readonly string[];
37
56
  template: DesignSystemTemplate;
57
+ /** Authored picker choices. First item is the default/fallback. */
58
+ buttonPersonalityChoices: NonEmptyReadonlyArray<ButtonPersonalityChoice>;
59
+ /** Authored picker choices. First item is the default/fallback. */
60
+ paletteVariantChoices: NonEmptyReadonlyArray<PaletteVariantChoice>;
38
61
  }>, Readonly<{
39
62
  id: SiteStyleId;
40
63
  name: string;
@@ -42,6 +65,10 @@ export declare const curatedSiteStyles: readonly [Readonly<{
42
65
  generationBrief: string;
43
66
  selectionKeywords: readonly string[];
44
67
  template: DesignSystemTemplate;
68
+ /** Authored picker choices. First item is the default/fallback. */
69
+ buttonPersonalityChoices: NonEmptyReadonlyArray<ButtonPersonalityChoice>;
70
+ /** Authored picker choices. First item is the default/fallback. */
71
+ paletteVariantChoices: NonEmptyReadonlyArray<PaletteVariantChoice>;
45
72
  }>, Readonly<{
46
73
  id: SiteStyleId;
47
74
  name: string;
@@ -49,6 +76,10 @@ export declare const curatedSiteStyles: readonly [Readonly<{
49
76
  generationBrief: string;
50
77
  selectionKeywords: readonly string[];
51
78
  template: DesignSystemTemplate;
79
+ /** Authored picker choices. First item is the default/fallback. */
80
+ buttonPersonalityChoices: NonEmptyReadonlyArray<ButtonPersonalityChoice>;
81
+ /** Authored picker choices. First item is the default/fallback. */
82
+ paletteVariantChoices: NonEmptyReadonlyArray<PaletteVariantChoice>;
52
83
  }>, Readonly<{
53
84
  id: SiteStyleId;
54
85
  name: string;
@@ -56,6 +87,10 @@ export declare const curatedSiteStyles: readonly [Readonly<{
56
87
  generationBrief: string;
57
88
  selectionKeywords: readonly string[];
58
89
  template: DesignSystemTemplate;
90
+ /** Authored picker choices. First item is the default/fallback. */
91
+ buttonPersonalityChoices: NonEmptyReadonlyArray<ButtonPersonalityChoice>;
92
+ /** Authored picker choices. First item is the default/fallback. */
93
+ paletteVariantChoices: NonEmptyReadonlyArray<PaletteVariantChoice>;
59
94
  }>, Readonly<{
60
95
  id: SiteStyleId;
61
96
  name: string;
@@ -63,6 +98,10 @@ export declare const curatedSiteStyles: readonly [Readonly<{
63
98
  generationBrief: string;
64
99
  selectionKeywords: readonly string[];
65
100
  template: DesignSystemTemplate;
101
+ /** Authored picker choices. First item is the default/fallback. */
102
+ buttonPersonalityChoices: NonEmptyReadonlyArray<ButtonPersonalityChoice>;
103
+ /** Authored picker choices. First item is the default/fallback. */
104
+ paletteVariantChoices: NonEmptyReadonlyArray<PaletteVariantChoice>;
66
105
  }>, Readonly<{
67
106
  id: SiteStyleId;
68
107
  name: string;
@@ -70,6 +109,10 @@ export declare const curatedSiteStyles: readonly [Readonly<{
70
109
  generationBrief: string;
71
110
  selectionKeywords: readonly string[];
72
111
  template: DesignSystemTemplate;
112
+ /** Authored picker choices. First item is the default/fallback. */
113
+ buttonPersonalityChoices: NonEmptyReadonlyArray<ButtonPersonalityChoice>;
114
+ /** Authored picker choices. First item is the default/fallback. */
115
+ paletteVariantChoices: NonEmptyReadonlyArray<PaletteVariantChoice>;
73
116
  }>];
74
117
  export declare const curatedSiteStylesById: Map<SiteStyleId, Readonly<{
75
118
  id: SiteStyleId;
@@ -78,5 +121,9 @@ export declare const curatedSiteStylesById: Map<SiteStyleId, Readonly<{
78
121
  generationBrief: string;
79
122
  selectionKeywords: readonly string[];
80
123
  template: DesignSystemTemplate;
124
+ /** Authored picker choices. First item is the default/fallback. */
125
+ buttonPersonalityChoices: NonEmptyReadonlyArray<ButtonPersonalityChoice>;
126
+ /** Authored picker choices. First item is the default/fallback. */
127
+ paletteVariantChoices: NonEmptyReadonlyArray<PaletteVariantChoice>;
81
128
  }>>;
82
129
  export declare function getCuratedSiteStyle(id: SiteStyleId): CuratedSiteStyle | null;
@@ -1,6 +1,7 @@
1
1
  export * from './appearancePresets';
2
2
  export * from './blockFlow';
3
3
  export * from './compositionBudget';
4
+ export * from './curatedChoices';
4
5
  export * from './curatedSiteStyles';
5
6
  export * from './designState';
6
7
  export * from './generatedSchemas';
@@ -14,5 +15,6 @@ export * from './rawStyleFields';
14
15
  export * from './resolver';
15
16
  export * from './runtimeCompiler';
16
17
  export * from './sourceCatalogs';
18
+ export * from './styleTags';
17
19
  export * from './tokenRecipes';
18
20
  export * from './types';
@@ -127,6 +127,10 @@ export declare const boundaryOptions: readonly [{
127
127
  readonly id: BoundaryOptionId;
128
128
  readonly label: "Soft";
129
129
  readonly transitionAfter: "soft-fade-short";
130
+ }, {
131
+ readonly id: BoundaryOptionId;
132
+ readonly label: "Wave";
133
+ readonly transitionAfter: "wave-edge";
130
134
  }, {
131
135
  readonly id: BoundaryOptionId;
132
136
  readonly label: "Spacious";
@@ -1,5 +1,7 @@
1
1
  import type { PageDesignEditorReadModel } from './pageDesignEditorModel';
2
2
  import type { Theme } from '../schema';
3
+ import { type ButtonPersonalityId } from '../buttons/personalities';
4
+ import { type PaletteOverrides, type PaletteVariantId } from '../palette/variants';
3
5
  import { type CuratedSiteStyle } from './curatedSiteStyles';
4
6
  import { type CompiledBlockRuntimeFields, type CompiledPageRuntime, type ComponentRuntimeRules, type DesignRuntimeRules, type SemanticSpacing } from './runtimeCompiler';
5
7
  import type { AppearancePresetId, DesignBlockId, SiteStyleId } from './types';
@@ -17,7 +19,8 @@ export { autoDesignChoice, reducePageDesignIntentForUserAction, resolvePageDesig
17
19
  export { repairDesignIssue, resolveBlockDesignPlan, } from './resolver';
18
20
  export { cycleableOptionsFromResolved, deriveDesignCustomizationScope, recommendedDesignOption, type CycleableDesignOption, type CycleableOptions, type DesignCustomizationAuthority, type DesignCustomizationScope, type DesignCustomizationSurface, type DesignCustomizationUnsupportedReason, type DesignOptionIssue, type ResolvedDesignOption, } from './previewCustomization';
19
21
  export { compileBlockRuntimeFields, compilePageRuntimeFields, compileTokenRecipes, compiledRuntimeStyleFieldNames, defaultComponentRuntimeRules, defaultDesignRuntimeRules, stripCompiledRuntimeStyleFields, type CompiledBlockRuntime, type CompiledBlockRuntimeFields, type CompiledPageRuntime, type CompileBlockRuntimeInput, type ComponentRuntimeRules, type DesignRuntimeRules, type SemanticSpacing, } from './runtimeCompiler';
20
- export { curatedSiteStyles, getCuratedSiteStyle, type CuratedSiteStyle, } from './curatedSiteStyles';
22
+ export { defaultCuratedChoice, requireEntriesForCuratedChoices, resolveCuratedChoice, type CuratedChoice, type CuratedChoiceResolution, } from './curatedChoices';
23
+ export { curatedSiteStyles, defaultButtonPersonalityForSiteStyle, defaultPaletteVariantForSiteStyle, getCuratedSiteStyle, type CuratedSiteStyle, } from './curatedSiteStyles';
21
24
  export { asDesignBlockId, asSiteStyleId, makeBoundaryId, type AppearancePresetId, type BoundaryOptionId, type DesignBlockId, type DesignBoundaryId, type LayoutVariantKey, type NonEmptyReadonlyArray, type PageFlowPresetId, type ResolvedPageDesignPlan, type SiteStyleId, } from './types';
22
25
  export declare const previewCustomizePurpose: "preview-customize";
23
26
  /**
@@ -29,11 +32,47 @@ export type CuratedSiteStyleTheme = Theme & Readonly<{
29
32
  siteStyleId: SiteStyleId;
30
33
  }>;
31
34
  /**
32
- * Compiles a curated Site Style into a persisted Theme payload while keeping
33
- * the curated catalog metadata authoritative for name/description/rationale.
35
+ * Compiles a curated Site Style into a persisted Theme payload using the site
36
+ * style's defaults for the Style configurator selections. Thin wrapper around
37
+ * `compileSiteThemeFromSelections({…, null, null, null})`.
34
38
  */
35
39
  export declare function compileCuratedSiteStyleTheme(siteStyle: CuratedSiteStyle): CuratedSiteStyleTheme;
36
40
  export declare function compileCuratedSiteStyleThemeById(siteStyleId: SiteStyleId): CuratedSiteStyleTheme | null;
41
+ export type SelectionFallbackWarning = Readonly<{
42
+ kind: 'rejected-personality';
43
+ requested: string;
44
+ fellBackTo: ButtonPersonalityId;
45
+ }> | Readonly<{
46
+ kind: 'rejected-palette';
47
+ requested: string;
48
+ fellBackTo: PaletteVariantId;
49
+ }>;
50
+ export type SiteThemeSelectionsInput = Readonly<{
51
+ siteStyle: CuratedSiteStyle;
52
+ buttonPersonalityId: ButtonPersonalityId | null;
53
+ paletteVariantId: PaletteVariantId | null;
54
+ paletteOverrides: PaletteOverrides | null;
55
+ }>;
56
+ export type SiteThemeSelectionsResult = Readonly<{
57
+ theme: CuratedSiteStyleTheme;
58
+ resolvedSelections: Readonly<{
59
+ buttonPersonalityId: ButtonPersonalityId;
60
+ paletteVariantId: PaletteVariantId;
61
+ }>;
62
+ warnings: ReadonlyArray<SelectionFallbackWarning>;
63
+ }>;
64
+ /**
65
+ * High-level, site-style-aware compiler. Resolves the user's personality and
66
+ * palette selections against the site style's authored choice lists
67
+ * (auto-picking the first/default choice when the request is absent, unknown,
68
+ * or not curated for this style), then delegates to `compileTokenRecipes` with
69
+ * the resolved IDs.
70
+ *
71
+ * Returns the resolved IDs so the caller can persist auto-pick decisions, plus
72
+ * any fallback warnings the UI can surface as "we changed your selection"
73
+ * notices.
74
+ */
75
+ export declare function compileSiteThemeFromSelections(input: SiteThemeSelectionsInput): SiteThemeSelectionsResult;
37
76
  export declare function siteStyleIdFromTheme(theme: Pick<Theme, 'siteStyleId'> | null | undefined): SiteStyleId | null;
38
77
  export type EditorModelRuntimeLookOverride<TBlockId extends DesignBlockId = DesignBlockId> = Readonly<{
39
78
  kind: 'pinned';
@@ -1,4 +1,6 @@
1
1
  import { type CardStylesOverride, type ContainerStylesOverride, type SectionStylesOverride, type Theme } from '../schema';
2
+ import { type ButtonPersonalityId } from '../buttons/personalities';
3
+ import { type PaletteOverrides, type PaletteVariantId } from '../palette/variants';
2
4
  import { type RuntimeStyleWriteResultForFields, type StyleAuthority } from './designState';
3
5
  import { type ContentFrameIntent, type FlushFrameTreatment, type PanelFrameTreatment, type ResolvedBlockDesignPlan, type ResolvedPageDesignPlan, type SiteStyleItemSurfaceIntent, type SiteStyleSectionTransitionIntent, type SiteStyleSurfaceIntent, type ThemeTokenRecipes } from './types';
4
6
  export type SemanticSpacing = 'none' | 'compact' | 'cozy' | 'medium' | 'comfortable' | 'spacious';
@@ -206,9 +208,29 @@ export declare function compilePageRuntimeFields<TBlockId extends string, TPurpo
206
208
  componentRules?: ComponentRuntimeRules;
207
209
  sectionSpacing?: SemanticSpacing;
208
210
  }>): CompiledPageRuntime<TBlockId>;
211
+ export type CompileTokenRecipesOptions = Readonly<{
212
+ /** Resolved button personality ID. When provided, emits `theme.buttons`. */
213
+ buttonPersonalityId?: ButtonPersonalityId;
214
+ /**
215
+ * Resolved palette variant ID. When provided, replaces the recipe-based
216
+ * palette lookup; the recipe family is still consulted for the rest of the
217
+ * theme (typography, spacing, etc.).
218
+ */
219
+ paletteVariantId?: PaletteVariantId;
220
+ /**
221
+ * Sparse per-token hex overrides applied on top of the palette variant.
222
+ * Tokens not in this map keep the variant's value.
223
+ */
224
+ paletteOverrides?: PaletteOverrides;
225
+ }>;
209
226
  /**
210
227
  * Compiles bounded token recipes to the current Theme schema. This is intentionally
211
228
  * pure and schema-validated so generated Theme V2 choices have a concrete legacy
212
229
  * Theme output before any persistence or Phase 5 integration consumes them.
230
+ *
231
+ * Optional `options` accept already-resolved button personality and palette
232
+ * variant IDs (typically supplied by `compileSiteThemeFromSelections`). When
233
+ * IDs are omitted, the function falls through to the legacy recipe-based
234
+ * palette lookup and leaves `theme.buttons` as the mock-theme default.
213
235
  */
214
- export declare function compileTokenRecipes(recipes: ThemeTokenRecipes): Theme;
236
+ export declare function compileTokenRecipes(recipes: ThemeTokenRecipes, options?: CompileTokenRecipesOptions): Theme;
@@ -0,0 +1,46 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Descriptive style-axis metadata for button personalities and palette
4
+ * variants. Site Style picker shape is curated explicitly; these tags remain
5
+ * for catalog audit, docs, and future discovery tooling.
6
+ */
7
+ export declare const STYLE_AXIS_VALUES: {
8
+ readonly tone: readonly ["minimal", "classic", "bold"];
9
+ readonly energy: readonly ["calm", "vibrant"];
10
+ readonly motion: readonly ["subtle", "standard", "expressive"];
11
+ readonly era: readonly ["editorial", "modern", "organic", "technical", "retro"];
12
+ };
13
+ export declare const styleTagsSchema: z.ZodObject<{
14
+ tone: z.ZodOptional<z.ZodEnum<{
15
+ classic: "classic";
16
+ bold: "bold";
17
+ minimal: "minimal";
18
+ }>>;
19
+ energy: z.ZodOptional<z.ZodEnum<{
20
+ calm: "calm";
21
+ vibrant: "vibrant";
22
+ }>>;
23
+ motion: z.ZodOptional<z.ZodEnum<{
24
+ standard: "standard";
25
+ subtle: "subtle";
26
+ expressive: "expressive";
27
+ }>>;
28
+ era: z.ZodOptional<z.ZodEnum<{
29
+ editorial: "editorial";
30
+ modern: "modern";
31
+ retro: "retro";
32
+ technical: "technical";
33
+ organic: "organic";
34
+ }>>;
35
+ }, z.core.$strip>;
36
+ export type StyleTone = (typeof STYLE_AXIS_VALUES.tone)[number];
37
+ export type StyleEnergy = (typeof STYLE_AXIS_VALUES.energy)[number];
38
+ export type StyleMotion = (typeof STYLE_AXIS_VALUES.motion)[number];
39
+ export type StyleEra = (typeof STYLE_AXIS_VALUES.era)[number];
40
+ export type StyleAxis = Readonly<{
41
+ tone: StyleTone;
42
+ energy: StyleEnergy;
43
+ motion: StyleMotion;
44
+ era: StyleEra;
45
+ }>;
46
+ export type StyleTags = Readonly<Partial<StyleAxis>>;
@@ -1,7 +1,7 @@
1
1
  import * as React from "react";
2
2
  import { type VariantProps } from "class-variance-authority";
3
3
  declare const badgeVariants: (props?: ({
4
- variant?: "secondary" | "outline" | "default" | "success" | "warning" | "destructive" | null | undefined;
4
+ variant?: "success" | "secondary" | "outline" | "default" | "warning" | "destructive" | null | undefined;
5
5
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
6
6
  export interface BadgeProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> {
7
7
  }
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { type VariantProps } from 'class-variance-authority';
3
3
  declare const calloutVariants: (props?: ({
4
- tone?: "default" | "success" | "warning" | "info" | "danger" | null | undefined;
4
+ tone?: "success" | "default" | "warning" | "info" | "danger" | null | undefined;
5
5
  layout?: "inline" | "banner" | null | undefined;
6
6
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
7
  export type CalloutProps = React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof calloutVariants> & {
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Optional pre-set swatch passed to the chooser. Macadamia onboarding feeds
3
+ * logo-extracted colours here; the LiveThemeEditor and Style configurator
4
+ * pass an empty array (or omit the prop) so the dialog just exposes the
5
+ * freeform colour picker.
6
+ */
7
+ export type ColorChooserSwatch = Readonly<{
8
+ hex: string;
9
+ label: string;
10
+ }>;
11
+ export type ColorChooserDialogProps = Readonly<{
12
+ open: boolean;
13
+ onOpenChange: (open: boolean) => void;
14
+ /** Current persisted value for the slot being edited. */
15
+ currentValue: string | null;
16
+ /** Suggested-swatch grid. Empty/omitted => freeform picker only. */
17
+ swatches?: ReadonlyArray<ColorChooserSwatch>;
18
+ /**
19
+ * Swatches in `swatches` that should render as visibly disabled
20
+ * (typically: already used elsewhere in the palette). Selecting one of
21
+ * these is still possible if it matches `currentValue`.
22
+ */
23
+ disabledHexes?: ReadonlyArray<string>;
24
+ /**
25
+ * Fallback hex used when neither `currentValue` nor `swatches[0]` resolve
26
+ * to a usable colour. Defaults to `#000000`; pass the brand colour if you
27
+ * want the dialog to open on it.
28
+ */
29
+ defaultValue?: string;
30
+ /** Localised dialog title. */
31
+ title?: string;
32
+ /** Localised body description. Falls back to a swatches-aware default. */
33
+ description?: string;
34
+ /** Confirm button label. Defaults to "Use this colour". */
35
+ confirmLabel?: string;
36
+ /** Optional remove handler. When provided, a "Remove colour" button appears. */
37
+ onRemove?: () => void;
38
+ /** Remove button label. Defaults to "Remove colour". */
39
+ removeLabel?: string;
40
+ onChoose: (value: string) => void;
41
+ }>;
42
+ /**
43
+ * Shared colour-chooser dialog. Combines an optional logo-derived swatch
44
+ * grid with a freeform `ColorPicker` + hex display. Consolidates the
45
+ * implementations that previously lived inline in Macadamia onboarding.
46
+ */
47
+ export declare function ColorChooserDialog({ open, onOpenChange, currentValue, swatches, disabledHexes, defaultValue, title, description, confirmLabel, onRemove, removeLabel, onChoose, }: ColorChooserDialogProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Slot affordance for "this row holds a colour, click to choose". Renders as
3
+ * an empty dashed-border tile when `value` is null, or as a filled swatch
4
+ * with the hex displayed when a value is set. Used in the Macadamia
5
+ * onboarding's primary/secondary colour rows and the Style configurator's
6
+ * advanced palette panel.
7
+ */
8
+ export type ColorSlotButtonProps = Readonly<{
9
+ value: string | null;
10
+ emptyLabel: string;
11
+ ariaLabel: string;
12
+ onClick: () => void;
13
+ className?: string;
14
+ }>;
15
+ export declare function ColorSlotButton({ value, emptyLabel, ariaLabel, onClick, className }: ColorSlotButtonProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Compact swatch + label tile. Used in the colour-chooser dialog's
3
+ * "from your logo" grid and anywhere a palette-aware single-colour row is
4
+ * needed (Macadamia onboarding's brand colour rows, the Style configurator
5
+ * advanced palette panel).
6
+ */
7
+ export type ColorSwatchButtonProps = Readonly<{
8
+ hex: string;
9
+ label: string;
10
+ selected: boolean;
11
+ onClick: () => void;
12
+ disabled?: boolean;
13
+ className?: string;
14
+ }>;
15
+ export declare function ColorSwatchButton({ hex, label, selected, onClick, disabled, className }: ColorSwatchButtonProps): import("react/jsx-runtime").JSX.Element;