@riverbankcms/sdk 0.60.0 → 0.60.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.
Files changed (140) hide show
  1. package/README.md +20 -3
  2. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +1 -3
  3. package/dist/_dts/api/src/bookingRecords.d.ts +8 -0
  4. package/dist/_dts/api/src/communications.d.ts +1 -0
  5. package/dist/_dts/api/src/contentRuntime.d.ts +8 -0
  6. package/dist/_dts/api/src/endpoints.d.ts +18 -1
  7. package/dist/_dts/api/src/index.d.ts +1 -1
  8. package/dist/_dts/api/src/media.d.ts +1 -1
  9. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +45 -1
  10. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +24 -1
  11. package/dist/_dts/api/src/siteSettings.d.ts +7 -0
  12. package/dist/_dts/api/src/types.d.ts +1 -1
  13. package/dist/_dts/billing/src/plans/types.d.ts +27 -0
  14. package/dist/_dts/blocks/src/system/blocks/events/event-calendar.d.ts +1 -0
  15. package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +3 -0
  16. package/dist/_dts/blocks/src/system/blocks/site-footer.d.ts +1 -0
  17. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +173 -2
  18. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +24 -2
  19. package/dist/_dts/blocks/src/system/runtime/header/shared.d.ts +1 -0
  20. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.client.d.ts +1 -0
  21. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/AgendaEventCard.d.ts +2 -0
  22. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/DayEventsModal.d.ts +2 -1
  23. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventDetailModal.d.ts +2 -1
  24. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventModals.d.ts +2 -1
  25. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekAgendaView.d.ts +1 -0
  26. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekTimetableView.d.ts +1 -0
  27. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCapacity.d.ts +16 -0
  28. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/timetableModel.d.ts +2 -0
  29. package/dist/_dts/blocks/src/system/runtime/nodes/location-map.server.d.ts +4 -0
  30. package/dist/_dts/blocks/src/system/runtime/nodes/location-map.shared.d.ts +38 -0
  31. package/dist/_dts/blocks/src/system/runtime/nodes/location-map.view.d.ts +2 -1
  32. package/dist/_dts/content-editor/src/index.d.ts +2 -2
  33. package/dist/_dts/content-editor/src/primitives/shared/activePreviewField.d.ts +9 -0
  34. package/dist/_dts/content-editor/src/primitives/shared/index.d.ts +1 -0
  35. package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +10 -0
  36. package/dist/_dts/core/src/business-address.d.ts +38 -0
  37. package/dist/_dts/core/src/index.d.ts +1 -0
  38. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +22 -0
  39. package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +3 -0
  40. package/dist/_dts/editor-blocks/src/BlockForm.d.ts +4 -0
  41. package/dist/_dts/editor-blocks/src/block-editor/BlockCard.d.ts +8 -5
  42. package/dist/_dts/editor-blocks/src/block-editor/BlockCardHeader.d.ts +7 -5
  43. package/dist/_dts/editor-blocks/src/block-editor/SortableBlockItem.d.ts +2 -0
  44. package/dist/_dts/editor-blocks/src/block-editor/reorderControlMode.d.ts +3 -0
  45. package/dist/_dts/editor-blocks/src/block-editor/types.d.ts +4 -0
  46. package/dist/_dts/media-react/src/hooks/useApiMediaUploader.d.ts +14 -0
  47. package/dist/_dts/media-react/src/index.d.ts +1 -1
  48. package/dist/_dts/preview-next/src/client/blocks/runOptimisticCustomizeAction.d.ts +43 -20
  49. package/dist/_dts/preview-next/src/client/index.d.ts +2 -0
  50. package/dist/_dts/preview-next/src/client/preview/PageDesignEditorStateContext.d.ts +11 -28
  51. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +7 -1
  52. package/dist/_dts/preview-next/src/client/preview/PreviewEditorUI.d.ts +1 -1
  53. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +12 -1
  54. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +6 -1
  55. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.d.ts +20 -0
  56. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +99 -0
  57. package/dist/_dts/preview-next/src/client/preview/previewChromeSurface.d.ts +12 -0
  58. package/dist/_dts/preview-next/src/client/preview/previewCustomizeHistory.d.ts +41 -0
  59. package/dist/_dts/preview-next/src/client/preview/previewCustomizeRuntimePatch.d.ts +15 -0
  60. package/dist/_dts/preview-next/src/client/preview/previewCustomizeWorkflowState.d.ts +106 -0
  61. package/dist/_dts/preview-next/src/client/preview/previewUndoDomains.d.ts +34 -0
  62. package/dist/_dts/preview-next/src/client/preview/sidebarTabPreference.d.ts +2 -1
  63. package/dist/_dts/preview-next/src/client/preview/useOnboardingConfirmationCheck.d.ts +4 -9
  64. package/dist/_dts/preview-next/src/constants.d.ts +0 -1
  65. package/dist/_dts/preview-next/src/index.d.ts +1 -0
  66. package/dist/_dts/preview-next/src/onboarding-preview-planner.d.ts +89 -0
  67. package/dist/_dts/preview-next/src/route-contract.d.ts +37 -0
  68. package/dist/_dts/sdk/src/public-api/contracts.d.ts +11 -1
  69. package/dist/_dts/sdk/src/rendering/components/Block.d.ts +7 -76
  70. package/dist/_dts/sdk/src/rendering/components/Block.server.d.ts +9 -0
  71. package/dist/_dts/sdk/src/rendering/components/Block.shared.d.ts +78 -0
  72. package/dist/_dts/sdk/src/rendering/components/Layout.d.ts +5 -5
  73. package/dist/_dts/sdk/src/rendering/server.d.ts +2 -2
  74. package/dist/_dts/sdk/src/version.d.ts +1 -1
  75. package/dist/_dts/theme-core/src/buttons/constants.d.ts +9 -1
  76. package/dist/_dts/theme-core/src/buttons/generateButtonCss.d.ts +16 -11
  77. package/dist/_dts/theme-core/src/buttons/generateDefaultButtonSystem.d.ts +9 -16
  78. package/dist/_dts/theme-core/src/buttons/index.d.ts +1 -0
  79. package/dist/_dts/theme-core/src/buttons/personalities/brushed-wash.d.ts +11 -0
  80. package/dist/_dts/theme-core/src/buttons/personalities/confident-chip.d.ts +11 -0
  81. package/dist/_dts/theme-core/src/buttons/personalities/editorial-link.d.ts +11 -0
  82. package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +14 -0
  83. package/dist/_dts/theme-core/src/buttons/personalities/ink-stamp.d.ts +11 -0
  84. package/dist/_dts/theme-core/src/buttons/personalities/pebble.d.ts +11 -0
  85. package/dist/_dts/theme-core/src/buttons/personalities/soft-pill.d.ts +11 -0
  86. package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +268 -0
  87. package/dist/_dts/theme-core/src/buttons/types.d.ts +253 -72
  88. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  89. package/dist/_dts/theme-core/src/index.d.ts +17 -16
  90. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +69 -15
  91. package/dist/_dts/theme-core/src/palette/index.d.ts +1 -0
  92. package/dist/_dts/theme-core/src/palette/variants/brand-led.d.ts +28 -0
  93. package/dist/_dts/theme-core/src/palette/variants/high-contrast.d.ts +28 -0
  94. package/dist/_dts/theme-core/src/palette/variants/index.d.ts +17 -0
  95. package/dist/_dts/theme-core/src/palette/variants/soft-natural.d.ts +28 -0
  96. package/dist/_dts/theme-core/src/palette/variants/types.d.ts +154 -0
  97. package/dist/_dts/theme-core/src/palette/variants/warm-neutral.d.ts +28 -0
  98. package/dist/_dts/theme-core/src/responsiveDisplay.d.ts +23 -0
  99. package/dist/_dts/theme-core/src/responsiveMode.d.ts +21 -0
  100. package/dist/_dts/theme-core/src/schema.d.ts +122 -10
  101. package/dist/_dts/theme-core/src/site-styles/compatibility.d.ts +109 -0
  102. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +193 -0
  103. package/dist/_dts/theme-core/src/site-styles/index.d.ts +2 -0
  104. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorErrors.d.ts +1 -0
  105. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +4 -0
  106. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +43 -2
  107. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +23 -1
  108. package/dist/_dts/ui/src/badge.d.ts +1 -1
  109. package/dist/_dts/ui/src/callout.d.ts +1 -1
  110. package/dist/_dts/ui/src/command-multi-select.d.ts +2 -2
  111. package/dist/cli/index.mjs +1590 -302
  112. package/dist/client/bookings.mjs +321 -144
  113. package/dist/client/client.mjs +4371 -2715
  114. package/dist/client/hooks.mjs +2826 -1675
  115. package/dist/client/rendering/client.mjs +3570 -2262
  116. package/dist/client/rendering/islands.mjs +1948 -756
  117. package/dist/client/rendering.mjs +42015 -40278
  118. package/dist/preview-next/before-render.mjs +5542 -0
  119. package/dist/preview-next/client/runtime.mjs +103364 -99924
  120. package/dist/preview-next/constants.mjs +0 -2
  121. package/dist/preview-next/index.mjs +0 -2
  122. package/dist/preview-next/middleware.mjs +5552 -1
  123. package/dist/server/components.mjs +11234 -9740
  124. package/dist/server/config-validation.mjs +3057 -1906
  125. package/dist/server/config.mjs +3057 -1906
  126. package/dist/server/data.mjs +2826 -1675
  127. package/dist/server/index.mjs +19 -2
  128. package/dist/server/next.mjs +3997 -2507
  129. package/dist/server/page-converter.mjs +2970 -1836
  130. package/dist/server/prebuild.mjs +1 -1
  131. package/dist/server/rendering/server.mjs +5960 -3200
  132. package/dist/server/rendering.mjs +12734 -11162
  133. package/dist/server/routing.mjs +3045 -1743
  134. package/dist/server/server.mjs +2827 -1676
  135. package/dist/server/theme-bridge.mjs +2074 -839
  136. package/dist/server/theme.mjs +1087 -492
  137. package/dist/styles/index.css +343 -299
  138. package/package.json +1 -1
  139. package/dist/_dts/preview-next/src/client/preview/PreviewSiteStyleSwitcher.d.ts +0 -11
  140. package/dist/_dts/preview-next/src/client/preview/PreviewSiteStyleSwitcher.state.d.ts +0 -43
@@ -1,19 +1,24 @@
1
1
  import type { Theme } from '../schema';
2
2
  import type { ButtonSystem } from './types';
3
- /**
4
- * Generate complete CSS for button system from theme config
5
- *
6
- * This function:
7
- * 1. Reads button variants from theme.buttons
8
- * 2. Generates CSS for each variant
9
- * 3. Returns scoped CSS string
10
- *
11
- * Runs SERVER-SIDE during theme loading.
12
- * NOTE: Renderer only knows about theme config, NOT presets.
13
- */
14
3
  export interface GenerateButtonCssOptions {
15
4
  themeId: string;
16
5
  theme: Theme;
17
6
  buttonSystem?: ButtonSystem;
18
7
  }
8
+ /**
9
+ * Generate complete CSS for a button system.
10
+ *
11
+ * Pipeline:
12
+ * 1. Resolve effective sizes (theme.sizes ∪ defaults)
13
+ * 2. For each enabled variant, produce a list of `CssChunk`s (typed rules
14
+ * + opaque effect CSS)
15
+ * 3. Emit a `.default` alias from the highest-priority variant
16
+ * 4. Serialise the whole list to a CSS string
17
+ *
18
+ * Padding/fontSize at size S resolve in order:
19
+ * variant.sizes?.[S] → theme.buttons.sizes?.[S] → DEFAULT_BUTTON_SIZES[S]
20
+ *
21
+ * 2-class selector specificity (`.{id}.btn-{S}`) carries the size override;
22
+ * no `!important` required.
23
+ */
19
24
  export declare function generateButtonCss(options: GenerateButtonCssOptions): string;
@@ -1,30 +1,23 @@
1
1
  import type { Theme } from '../schema';
2
2
  import type { ButtonSystem } from './types';
3
3
  /**
4
- * Map motion level to transition duration (milliseconds)
5
- * Used in effect generation
6
- */
7
- export declare const MOTION_TO_DURATION_MAP: Record<string, string>;
8
- /**
9
- * Map motion easing to CSS easing function
10
- */
11
- export declare const MOTION_TO_EASING_MAP: Record<string, string>;
12
- /**
13
- * Generate default button system from theme settings
4
+ * Generate default button system from theme settings.
14
5
  *
15
- * Creates 4 standard button variants when theme.buttons is not defined:
6
+ * Creates 4 sized variants when theme.buttons is not defined:
16
7
  * 1. Primary - primary color background with opacity-reduce hover effect
17
8
  * 2. Secondary - neutral-700 background with opacity-reduce hover effect
18
9
  * 3. Outline - transparent background with primary border and opacity-reduce hover effect
19
10
  * 4. Ghost - transparent background, no border, with opacity-reduce hover effect
20
11
  *
21
- * All variants use theme settings for:
22
- * - Border radius (from theme.components.button.shape / theme.corners)
23
- * - Shadow (from theme.shadow.elevation)
12
+ * All four are sized variants they inherit padding/fontSize from the theme's
13
+ * `sizes` config (or the system defaults) so they're consistent at any size.
14
+ *
15
+ * Variants use theme settings for:
16
+ * - Border radius (via global.cornerStyle / theme.corners)
17
+ * - Shadow (via global.shadow / theme.shadow.elevation)
24
18
  * - Border width for outline (from theme.border.width)
25
- * - Transitions (from theme.motion)
26
19
  *
27
20
  * @param theme - Theme configuration
28
- * @returns ButtonSystem with 4 default variants
21
+ * @returns ButtonSystem with 4 default sized variants
29
22
  */
30
23
  export declare function generateDefaultButtonSystem(theme: Theme): ButtonSystem;
@@ -8,6 +8,7 @@ export * from './generateButtonCss';
8
8
  export * from './generateDefaultButtonSystem';
9
9
  export * from './constants';
10
10
  export * from './presets';
11
+ export * from './personalities';
11
12
  export * from './effects/types';
12
13
  export * from './effects/registry';
13
14
  export * from './effects/presets/transform';
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Brushed Wash — gradient backgrounds that read as watercolour washes.
3
+ * Generous padding, soft shadows; pairs with vibrant organic brands.
4
+ */
5
+ export declare const brushedWash: Readonly<{
6
+ id: import("./types").ButtonPersonalityId;
7
+ name: string;
8
+ description: string;
9
+ tags: import("../../site-styles").StyleTags;
10
+ buttonSystem: import("@riverbankcms/blocks").ButtonSystem;
11
+ }>;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Confident Chip — moderate-radius solid buttons that read as competent and
3
+ * direct. Default for Clear Professional; works for any modern brand voice.
4
+ */
5
+ export declare const confidentChip: Readonly<{
6
+ id: import("./types").ButtonPersonalityId;
7
+ name: string;
8
+ description: string;
9
+ tags: import("../../site-styles").StyleTags;
10
+ buttonSystem: import("@riverbankcms/blocks").ButtonSystem;
11
+ }>;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Editorial Link — all variants are link-style with a growing underline.
3
+ * Default for Warm Editorial and Quiet Luxury; reads as refined and quiet.
4
+ */
5
+ export declare const editorialLink: Readonly<{
6
+ id: import("./types").ButtonPersonalityId;
7
+ name: string;
8
+ description: string;
9
+ tags: import("../../site-styles").StyleTags;
10
+ buttonSystem: import("@riverbankcms/blocks").ButtonSystem;
11
+ }>;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Button personality library.
3
+ *
4
+ * Each personality is a complete `ButtonSystem` tagged on the four style axes
5
+ * (tone / energy / motion / era). Curated site styles declare a default
6
+ * personality + an acceptance region that filters the picker; the Style
7
+ * configurator UI uses `compatibleEntries` from `site-styles/compatibility.ts`
8
+ * to surface valid options.
9
+ */
10
+ import type { ButtonPersonality, ButtonPersonalityId } from './types';
11
+ export type { ButtonPersonality, ButtonPersonalityId } from './types';
12
+ export { asButtonPersonalityId, buttonPersonalityIdSchema, buttonPersonalitySchema, defineButtonPersonality, } from './types';
13
+ export declare const buttonPersonalities: readonly ButtonPersonality[];
14
+ export declare function findButtonPersonality(id: ButtonPersonalityId): ButtonPersonality | undefined;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Ink Stamp — solid earthy fills with a bordered, hand-stamped block-print
3
+ * feel. Reads as bold and handmade; suits expressive craft brands.
4
+ */
5
+ export declare const inkStamp: Readonly<{
6
+ id: import("./types").ButtonPersonalityId;
7
+ name: string;
8
+ description: string;
9
+ tags: import("../../site-styles").StyleTags;
10
+ buttonSystem: import("@riverbankcms/blocks").ButtonSystem;
11
+ }>;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Pebble — large pill primaries with generous padding. Reads as spa-luxurious
3
+ * and natural; pairs well with wellness/yoga/dance brands.
4
+ */
5
+ export declare const pebble: Readonly<{
6
+ id: import("./types").ButtonPersonalityId;
7
+ name: string;
8
+ description: string;
9
+ tags: import("../../site-styles").StyleTags;
10
+ buttonSystem: import("@riverbankcms/blocks").ButtonSystem;
11
+ }>;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Soft Pill — rounded-full pill buttons with a hover lift. The default for
3
+ * Calm Studio and Modern Wellness; reads as quietly modern and welcoming.
4
+ */
5
+ export declare const softPill: Readonly<{
6
+ id: import("./types").ButtonPersonalityId;
7
+ name: string;
8
+ description: string;
9
+ tags: import("../../site-styles").StyleTags;
10
+ buttonSystem: import("@riverbankcms/blocks").ButtonSystem;
11
+ }>;
@@ -0,0 +1,268 @@
1
+ import { z } from 'zod';
2
+ import { type ButtonSystem } from '../types';
3
+ import { type StyleTags } from '../../site-styles/compatibility';
4
+ /**
5
+ * Branded ID for a button personality entry in the curated library.
6
+ * Shape matches the `Brand<T, TBrand>` convention in `site-styles/types.ts`
7
+ * (kept structurally compatible until that alias is hoisted to a shared file).
8
+ * Use `asButtonPersonalityId` at the parse/construction boundary.
9
+ */
10
+ export type ButtonPersonalityId = string & {
11
+ readonly __brand: 'ButtonPersonalityId';
12
+ };
13
+ export declare function asButtonPersonalityId(value: string): ButtonPersonalityId;
14
+ export declare const buttonPersonalityIdSchema: z.ZodPipe<z.ZodString, z.ZodTransform<ButtonPersonalityId, string>>;
15
+ /**
16
+ * A button personality is a complete `ButtonSystem` plus the tags that decide
17
+ * which curated site styles will accept it. The `name` and `description` are
18
+ * surfaced in the Style configurator UI.
19
+ */
20
+ export type ButtonPersonality = Readonly<{
21
+ id: ButtonPersonalityId;
22
+ name: string;
23
+ description: string;
24
+ tags: StyleTags;
25
+ buttonSystem: ButtonSystem;
26
+ }>;
27
+ export declare const buttonPersonalitySchema: z.ZodObject<{
28
+ id: z.ZodPipe<z.ZodString, z.ZodTransform<ButtonPersonalityId, string>>;
29
+ name: z.ZodString;
30
+ description: z.ZodString;
31
+ tags: z.ZodObject<{
32
+ tone: z.ZodOptional<z.ZodEnum<{
33
+ classic: "classic";
34
+ bold: "bold";
35
+ minimal: "minimal";
36
+ }>>;
37
+ energy: z.ZodOptional<z.ZodEnum<{
38
+ calm: "calm";
39
+ vibrant: "vibrant";
40
+ }>>;
41
+ motion: z.ZodOptional<z.ZodEnum<{
42
+ standard: "standard";
43
+ subtle: "subtle";
44
+ expressive: "expressive";
45
+ }>>;
46
+ era: z.ZodOptional<z.ZodEnum<{
47
+ editorial: "editorial";
48
+ modern: "modern";
49
+ retro: "retro";
50
+ technical: "technical";
51
+ organic: "organic";
52
+ }>>;
53
+ }, z.core.$strip>;
54
+ buttonSystem: z.ZodObject<{
55
+ global: z.ZodObject<{
56
+ cornerStyle: z.ZodEnum<{
57
+ rounded: "rounded";
58
+ square: "square";
59
+ pill: "pill";
60
+ }>;
61
+ cornerRadius: z.ZodOptional<z.ZodNumber>;
62
+ shadow: z.ZodEnum<{
63
+ medium: "medium";
64
+ none: "none";
65
+ low: "low";
66
+ high: "high";
67
+ }>;
68
+ textTransform: z.ZodEnum<{
69
+ none: "none";
70
+ capitalize: "capitalize";
71
+ lowercase: "lowercase";
72
+ uppercase: "uppercase";
73
+ }>;
74
+ fontWeight: z.ZodUnion<readonly [z.ZodLiteral<500>, z.ZodLiteral<600>, z.ZodLiteral<700>]>;
75
+ borderWidth: z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>]>;
76
+ typography: z.ZodOptional<z.ZodEnum<{
77
+ body: "body";
78
+ heading: "heading";
79
+ }>>;
80
+ fontSize: z.ZodOptional<z.ZodString>;
81
+ letterSpacing: z.ZodOptional<z.ZodEnum<{
82
+ normal: "normal";
83
+ loose: "loose";
84
+ tight: "tight";
85
+ }>>;
86
+ italic: z.ZodOptional<z.ZodBoolean>;
87
+ paddingPreset: z.ZodOptional<z.ZodEnum<{
88
+ compact: "compact";
89
+ spacious: "spacious";
90
+ default: "default";
91
+ }>>;
92
+ hoverTransform: z.ZodEnum<{
93
+ none: "none";
94
+ scale: "scale";
95
+ lift: "lift";
96
+ press: "press";
97
+ }>;
98
+ hoverColor: z.ZodEnum<{
99
+ none: "none";
100
+ token: "token";
101
+ darken: "darken";
102
+ brighten: "brighten";
103
+ saturate: "saturate";
104
+ }>;
105
+ hoverColorToken: z.ZodOptional<z.ZodString>;
106
+ gradientStyle: z.ZodOptional<z.ZodEnum<{
107
+ linear: "linear";
108
+ radial: "radial";
109
+ conic: "conic";
110
+ }>>;
111
+ gradientAngle: z.ZodOptional<z.ZodNumber>;
112
+ gradientSharpness: z.ZodOptional<z.ZodEnum<{
113
+ medium: "medium";
114
+ smooth: "smooth";
115
+ hard: "hard";
116
+ }>>;
117
+ }, z.core.$strip>;
118
+ variants: z.ZodArray<z.ZodObject<{
119
+ id: z.ZodString;
120
+ name: z.ZodString;
121
+ enabled: z.ZodBoolean;
122
+ priority: z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>]>;
123
+ background: z.ZodDiscriminatedUnion<[z.ZodObject<{
124
+ type: z.ZodLiteral<"solid">;
125
+ colorToken: z.ZodString;
126
+ }, z.core.$strip>, z.ZodObject<{
127
+ type: z.ZodLiteral<"gradient">;
128
+ stops: z.ZodArray<z.ZodString>;
129
+ direction: z.ZodEnum<{
130
+ "to-r": "to-r";
131
+ "to-l": "to-l";
132
+ "to-t": "to-t";
133
+ "to-b": "to-b";
134
+ "to-tr": "to-tr";
135
+ "to-tl": "to-tl";
136
+ "to-br": "to-br";
137
+ "to-bl": "to-bl";
138
+ }>;
139
+ }, z.core.$strip>, z.ZodObject<{
140
+ type: z.ZodLiteral<"transparent">;
141
+ }, z.core.$strip>], "type">;
142
+ textColorToken: z.ZodString;
143
+ borderRadius: z.ZodOptional<z.ZodString>;
144
+ shadow: z.ZodOptional<z.ZodObject<{
145
+ elevation: z.ZodEnum<{
146
+ medium: "medium";
147
+ none: "none";
148
+ low: "low";
149
+ high: "high";
150
+ }>;
151
+ softness: z.ZodNullable<z.ZodEnum<{
152
+ soft: "soft";
153
+ crisp: "crisp";
154
+ hard: "hard";
155
+ }>>;
156
+ position: z.ZodDefault<z.ZodEnum<{
157
+ bottom: "bottom";
158
+ "bottom-right": "bottom-right";
159
+ }>>;
160
+ }, z.core.$strip>>;
161
+ border: z.ZodOptional<z.ZodObject<{
162
+ widthClass: z.ZodString;
163
+ colorToken: z.ZodString;
164
+ }, z.core.$strip>>;
165
+ hoverBackgroundToken: z.ZodOptional<z.ZodString>;
166
+ effects: z.ZodOptional<z.ZodObject<{
167
+ base: z.ZodOptional<z.ZodArray<z.ZodObject<{
168
+ effectId: z.ZodString;
169
+ options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
170
+ }, z.core.$strip>>>;
171
+ hover: z.ZodOptional<z.ZodArray<z.ZodObject<{
172
+ effectId: z.ZodString;
173
+ options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
174
+ }, z.core.$strip>>>;
175
+ active: z.ZodOptional<z.ZodArray<z.ZodObject<{
176
+ effectId: z.ZodString;
177
+ options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
178
+ }, z.core.$strip>>>;
179
+ focus: z.ZodOptional<z.ZodArray<z.ZodObject<{
180
+ effectId: z.ZodString;
181
+ options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
182
+ }, z.core.$strip>>>;
183
+ }, z.core.$strip>>;
184
+ sizes: z.ZodOptional<z.ZodObject<{
185
+ sm: z.ZodOptional<z.ZodObject<{
186
+ padding: z.ZodString;
187
+ fontSize: z.ZodOptional<z.ZodString>;
188
+ }, z.core.$strip>>;
189
+ md: z.ZodOptional<z.ZodObject<{
190
+ padding: z.ZodString;
191
+ fontSize: z.ZodOptional<z.ZodString>;
192
+ }, z.core.$strip>>;
193
+ lg: z.ZodOptional<z.ZodObject<{
194
+ padding: z.ZodString;
195
+ fontSize: z.ZodOptional<z.ZodString>;
196
+ }, z.core.$strip>>;
197
+ xl: z.ZodOptional<z.ZodObject<{
198
+ padding: z.ZodString;
199
+ fontSize: z.ZodOptional<z.ZodString>;
200
+ }, z.core.$strip>>;
201
+ }, z.core.$strip>>;
202
+ }, z.core.$strip>>;
203
+ sizes: z.ZodOptional<z.ZodPipe<z.ZodObject<{
204
+ sm: z.ZodObject<{
205
+ padding: z.ZodString;
206
+ fontSize: z.ZodOptional<z.ZodString>;
207
+ }, z.core.$strip>;
208
+ md: z.ZodObject<{
209
+ padding: z.ZodString;
210
+ fontSize: z.ZodOptional<z.ZodString>;
211
+ }, z.core.$strip>;
212
+ lg: z.ZodObject<{
213
+ padding: z.ZodString;
214
+ fontSize: z.ZodOptional<z.ZodString>;
215
+ }, z.core.$strip>;
216
+ xl: z.ZodOptional<z.ZodObject<{
217
+ padding: z.ZodString;
218
+ fontSize: z.ZodOptional<z.ZodString>;
219
+ }, z.core.$strip>>;
220
+ }, z.core.$strip>, z.ZodTransform<{
221
+ sm: {
222
+ padding: string;
223
+ fontSize?: string | undefined;
224
+ };
225
+ md: {
226
+ padding: string;
227
+ fontSize?: string | undefined;
228
+ };
229
+ lg: {
230
+ padding: string;
231
+ fontSize?: string | undefined;
232
+ };
233
+ xl: {
234
+ padding: string;
235
+ fontSize?: string | undefined;
236
+ };
237
+ }, {
238
+ sm: {
239
+ padding: string;
240
+ fontSize?: string | undefined;
241
+ };
242
+ md: {
243
+ padding: string;
244
+ fontSize?: string | undefined;
245
+ };
246
+ lg: {
247
+ padding: string;
248
+ fontSize?: string | undefined;
249
+ };
250
+ xl?: {
251
+ padding: string;
252
+ fontSize?: string | undefined;
253
+ } | undefined;
254
+ }>>>;
255
+ }, z.core.$strip>;
256
+ }, z.core.$strip>;
257
+ /**
258
+ * Helper for personality file modules to keep the call site short and
259
+ * type-safe. `as const satisfies ...` would also work but produces wider
260
+ * types at use sites.
261
+ */
262
+ export declare function defineButtonPersonality(input: {
263
+ id: string;
264
+ name: string;
265
+ description: string;
266
+ tags: StyleTags;
267
+ buttonSystem: ButtonSystem;
268
+ }): ButtonPersonality;