@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.
- package/dist/_dts/api/src/bookingRecords.d.ts +7 -0
- package/dist/_dts/api/src/bookingVerticals.d.ts +1 -0
- package/dist/_dts/api/src/communications.d.ts +1 -0
- package/dist/_dts/api/src/contentRuntime.d.ts +8 -0
- package/dist/_dts/api/src/endpoints.d.ts +17 -0
- package/dist/_dts/api/src/index.d.ts +1 -1
- package/dist/_dts/api/src/media.d.ts +1 -1
- package/dist/_dts/api/src/siteManagementEndpoints.d.ts +10 -2
- package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +26 -1
- package/dist/_dts/api/src/siteSettings.d.ts +7 -0
- package/dist/_dts/api/src/types.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/site-footer.d.ts +1 -0
- package/dist/_dts/blocks/src/system/node/fragments/ctaButton.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/location-map.server.d.ts +4 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/location-map.shared.d.ts +38 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/location-map.view.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/shared/themedButtonClass.d.ts +11 -0
- package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +10 -2
- package/dist/_dts/core/src/business-address.d.ts +38 -0
- package/dist/_dts/core/src/index.d.ts +1 -0
- package/dist/_dts/core/src/participants.d.ts +32 -1
- package/dist/_dts/core/src/rectification.d.ts +79 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +28 -6
- package/dist/_dts/preview-next/src/client/blocks/runOptimisticCustomizeAction.d.ts +44 -0
- package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +7 -1
- package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +12 -1
- package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +6 -1
- package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.d.ts +20 -0
- package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +101 -0
- package/dist/_dts/sdk/src/client/types.d.ts +1 -0
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +11 -1
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/theme-core/src/buttons/constants.d.ts +9 -1
- package/dist/_dts/theme-core/src/buttons/generateButtonCss.d.ts +16 -11
- package/dist/_dts/theme-core/src/buttons/generateDefaultButtonSystem.d.ts +9 -16
- package/dist/_dts/theme-core/src/buttons/index.d.ts +1 -0
- package/dist/_dts/theme-core/src/buttons/personalities/brushed-wash.d.ts +16 -0
- package/dist/_dts/theme-core/src/buttons/personalities/confident-chip.d.ts +16 -0
- package/dist/_dts/theme-core/src/buttons/personalities/editorial-link.d.ts +16 -0
- package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +95 -0
- package/dist/_dts/theme-core/src/buttons/personalities/ink-stamp.d.ts +16 -0
- package/dist/_dts/theme-core/src/buttons/personalities/pebble.d.ts +16 -0
- package/dist/_dts/theme-core/src/buttons/personalities/soft-pill.d.ts +16 -0
- package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +268 -0
- package/dist/_dts/theme-core/src/buttons/types.d.ts +253 -72
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +69 -15
- package/dist/_dts/theme-core/src/palette/index.d.ts +1 -0
- package/dist/_dts/theme-core/src/palette/variants/brand-led.d.ts +52 -0
- package/dist/_dts/theme-core/src/palette/variants/high-contrast.d.ts +52 -0
- package/dist/_dts/theme-core/src/palette/variants/index.d.ts +213 -0
- package/dist/_dts/theme-core/src/palette/variants/soft-natural.d.ts +52 -0
- package/dist/_dts/theme-core/src/palette/variants/types.d.ts +154 -0
- package/dist/_dts/theme-core/src/palette/variants/warm-neutral.d.ts +52 -0
- package/dist/_dts/theme-core/src/schema.d.ts +122 -10
- package/dist/_dts/theme-core/src/site-styles/curatedChoices.d.ts +27 -0
- package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +48 -1
- package/dist/_dts/theme-core/src/site-styles/index.d.ts +2 -0
- package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +4 -0
- package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +42 -3
- package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +23 -1
- package/dist/_dts/theme-core/src/site-styles/styleTags.d.ts +46 -0
- package/dist/_dts/ui/src/badge.d.ts +1 -1
- package/dist/_dts/ui/src/callout.d.ts +1 -1
- package/dist/_dts/ui/src/palette/ColorChooserDialog.d.ts +47 -0
- package/dist/_dts/ui/src/palette/ColorSlotButton.d.ts +15 -0
- package/dist/_dts/ui/src/palette/ColorSwatchButton.d.ts +15 -0
- package/dist/_dts/ui/src/palette/PaletteTokenEditor.d.ts +50 -0
- package/dist/_dts/ui/src/palette/hex.d.ts +23 -0
- package/dist/_dts/ui/src/palette/index.d.ts +14 -0
- package/dist/cli/index.mjs +2255 -947
- package/dist/client/bookings.mjs +294 -144
- package/dist/client/client.mjs +4053 -2600
- package/dist/client/hooks.mjs +3248 -2076
- package/dist/client/rendering/client.mjs +3377 -2165
- package/dist/client/rendering/islands.mjs +1911 -736
- package/dist/client/rendering.mjs +41897 -40445
- package/dist/preview-next/before-render.mjs +17 -0
- package/dist/preview-next/client/runtime.mjs +13511 -11313
- package/dist/preview-next/middleware.mjs +17 -0
- package/dist/server/components.mjs +4434 -3172
- package/dist/server/config-validation.mjs +3479 -2307
- package/dist/server/config.mjs +3479 -2307
- package/dist/server/data.mjs +3248 -2076
- package/dist/server/index.mjs +21 -3
- package/dist/server/next.mjs +3989 -2726
- package/dist/server/page-converter.mjs +3393 -2238
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +4434 -3172
- package/dist/server/rendering.mjs +4434 -3172
- package/dist/server/routing.mjs +3582 -2274
- package/dist/server/server.mjs +3252 -2079
- package/dist/server/theme-bridge.mjs +1454 -496
- package/dist/server/theme.mjs +1102 -505
- package/package.json +1 -1
- package/dist/_dts/preview-next/src/client/preview/PreviewSiteStyleSwitcher.d.ts +0 -11
- package/dist/_dts/preview-next/src/client/preview/PreviewSiteStyleSwitcher.state.d.ts +0 -43
|
@@ -46,172 +46,772 @@ function brandNonEmptyString(value, label) {
|
|
|
46
46
|
return value;
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
// ../theme-core/src/
|
|
50
|
-
import { z as
|
|
51
|
-
|
|
52
|
-
// ../theme-core/src/lib/media.ts
|
|
53
|
-
import z from "zod";
|
|
54
|
-
var hotspotSchema = z.object({
|
|
55
|
-
x: z.number().min(0).max(1),
|
|
56
|
-
y: z.number().min(0).max(1),
|
|
57
|
-
radius: z.number().optional()
|
|
58
|
-
});
|
|
59
|
-
var rotationSchema = z.union([z.literal(0), z.literal(90), z.literal(180), z.literal(270)]);
|
|
60
|
-
var rectSchema = z.tuple([z.number(), z.number(), z.number(), z.number()]);
|
|
61
|
-
var aspectCropSchema = z.object({
|
|
62
|
-
aspect: z.preprocess((value) => value == null ? void 0 : value, z.string().optional()),
|
|
63
|
-
rect: z.preprocess((value) => value == null ? void 0 : value, rectSchema.optional()),
|
|
64
|
-
hotspot: z.preprocess((value) => value == null ? void 0 : value, hotspotSchema.optional()),
|
|
65
|
-
rotation: z.preprocess((value) => value == null ? void 0 : value, rotationSchema.optional())
|
|
66
|
-
});
|
|
67
|
-
var transformSchema = z.object({
|
|
68
|
-
aspectCrops: z.preprocess((value) => {
|
|
69
|
-
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
70
|
-
return void 0;
|
|
71
|
-
}
|
|
72
|
-
return value;
|
|
73
|
-
}, z.record(z.string(), aspectCropSchema.catch({}))).optional(),
|
|
74
|
-
rect: rectSchema.optional(),
|
|
75
|
-
hotspot: hotspotSchema.optional(),
|
|
76
|
-
rotation: rotationSchema.optional()
|
|
77
|
-
});
|
|
78
|
-
var mediaSchema = z.object({
|
|
79
|
-
type: z.enum(["image", "video", "audio", "document", "spreadsheet", "archive"]),
|
|
80
|
-
purpose: z.string().optional(),
|
|
81
|
-
placeholder: z.boolean().default(true).optional(),
|
|
82
|
-
assetId: z.string().optional(),
|
|
83
|
-
identifier: z.string().optional(),
|
|
84
|
-
src: z.string().optional(),
|
|
85
|
-
alt: z.string().optional(),
|
|
86
|
-
filename: z.string().optional(),
|
|
87
|
-
mimeType: z.string().optional(),
|
|
88
|
-
width: z.number().optional(),
|
|
89
|
-
height: z.number().optional(),
|
|
90
|
-
storageBucket: z.string().optional(),
|
|
91
|
-
storagePath: z.string().optional(),
|
|
92
|
-
transform: transformSchema.optional()
|
|
93
|
-
});
|
|
49
|
+
// ../theme-core/src/buttons/personalities/types.ts
|
|
50
|
+
import { z as z3 } from "zod";
|
|
94
51
|
|
|
95
52
|
// ../theme-core/src/buttons/types.ts
|
|
96
|
-
import { z
|
|
97
|
-
var
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
var
|
|
107
|
-
var
|
|
108
|
-
var
|
|
109
|
-
|
|
110
|
-
|
|
53
|
+
import { z } from "zod";
|
|
54
|
+
var VARIANT_ROLES = [
|
|
55
|
+
"primary",
|
|
56
|
+
"secondary",
|
|
57
|
+
"outline",
|
|
58
|
+
"ghost",
|
|
59
|
+
"link",
|
|
60
|
+
"tertiary",
|
|
61
|
+
"accent"
|
|
62
|
+
];
|
|
63
|
+
var cornerStyleSchema = z.enum(["square", "rounded", "pill"]);
|
|
64
|
+
var shadowSizeSchema = z.enum(["none", "low", "medium", "high"]);
|
|
65
|
+
var textTransformSchema = z.enum(["none", "uppercase", "lowercase", "capitalize"]);
|
|
66
|
+
var fontWeightSchema = z.union([z.literal(500), z.literal(600), z.literal(700)]);
|
|
67
|
+
var buttonTypographySchema = z.enum(["body", "heading"]);
|
|
68
|
+
var letterSpacingSchema = z.enum(["tight", "normal", "loose"]);
|
|
69
|
+
var hoverTransformSchema = z.enum(["none", "lift", "scale", "press"]);
|
|
70
|
+
var hoverColorSchema = z.enum(["none", "brighten", "darken", "saturate", "token"]);
|
|
71
|
+
var buttonPaddingPresetSchema = z.enum(["compact", "default", "spacious"]);
|
|
72
|
+
var gradientStyleSchema = z.enum(["linear", "radial", "conic"]);
|
|
73
|
+
var gradientSharpnessSchema = z.enum(["smooth", "medium", "hard"]);
|
|
74
|
+
var prioritySchema = z.union([z.literal(1), z.literal(2), z.literal(3)]);
|
|
75
|
+
var variantRoleSchema = z.enum(VARIANT_ROLES);
|
|
76
|
+
var buttonSizeNameSchema = z.enum(["sm", "md", "lg", "xl"]);
|
|
77
|
+
var PADDING_TOKEN_PATTERN = /^(?:0|\d+(?:\.\d+)?(?:rem|em|px|%))$/;
|
|
78
|
+
var paddingShorthandSchema = z.string().refine(
|
|
79
|
+
(value) => {
|
|
80
|
+
const parts = value.split(/\s+/).filter(Boolean);
|
|
81
|
+
return parts.length === 2 && parts.every((token) => PADDING_TOKEN_PATTERN.test(token));
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
message: 'Padding must be two space-separated CSS length tokens (e.g. "0.5rem 1rem"). Use `0` for zero.'
|
|
85
|
+
}
|
|
86
|
+
);
|
|
87
|
+
var buttonSizeConfigSchema = z.object({
|
|
88
|
+
padding: paddingShorthandSchema,
|
|
89
|
+
fontSize: z.string().optional()
|
|
111
90
|
});
|
|
112
|
-
var buttonSizesSchema =
|
|
91
|
+
var buttonSizesSchema = z.object({
|
|
113
92
|
sm: buttonSizeConfigSchema,
|
|
114
93
|
md: buttonSizeConfigSchema,
|
|
115
94
|
lg: buttonSizeConfigSchema,
|
|
116
95
|
xl: buttonSizeConfigSchema.optional()
|
|
117
|
-
})
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
"border-trace"
|
|
125
|
-
]);
|
|
126
|
-
var buttonGlobalSettingsSchema = z2.object({
|
|
96
|
+
}).transform(({ sm, md, lg, xl }) => ({
|
|
97
|
+
sm,
|
|
98
|
+
md,
|
|
99
|
+
lg,
|
|
100
|
+
xl: xl ?? lg
|
|
101
|
+
}));
|
|
102
|
+
var buttonGlobalSettingsSchema = z.object({
|
|
127
103
|
cornerStyle: cornerStyleSchema,
|
|
128
|
-
cornerRadius:
|
|
104
|
+
cornerRadius: z.number().min(0).max(24).optional(),
|
|
129
105
|
shadow: shadowSizeSchema,
|
|
130
106
|
textTransform: textTransformSchema,
|
|
131
107
|
fontWeight: fontWeightSchema,
|
|
132
|
-
|
|
133
|
-
|
|
108
|
+
/**
|
|
109
|
+
* @deprecated Set per-variant via `variant.border.widthClass` instead.
|
|
110
|
+
* Schema field is preserved so existing presets parse; the value is unread
|
|
111
|
+
* by the current generator and will be removed once the legacy
|
|
112
|
+
* `primitives/content/components/Button.tsx` slot exports are deleted.
|
|
113
|
+
*/
|
|
114
|
+
borderWidth: z.union([z.literal(1), z.literal(2), z.literal(3)]),
|
|
115
|
+
// === Family-level typography ===
|
|
116
|
+
// Typography source (body or heading) — selects which theme typography pool to inherit
|
|
134
117
|
typography: buttonTypographySchema.optional(),
|
|
118
|
+
// Font size for all variants in the family (Tailwind token, e.g. "text-xs", "text-sm")
|
|
119
|
+
// Sized variants get this as default; fixed variants inherit unless they override.
|
|
120
|
+
// Size class CSS may still override at run time for sized variants.
|
|
121
|
+
fontSize: z.string().optional(),
|
|
122
|
+
// Letter spacing applied to all variants
|
|
123
|
+
letterSpacing: letterSpacingSchema.optional(),
|
|
135
124
|
// Italic style
|
|
136
|
-
italic:
|
|
137
|
-
// Padding preset (applies to
|
|
125
|
+
italic: z.boolean().optional(),
|
|
126
|
+
// Padding preset (applies to sized variants without a sizes config)
|
|
138
127
|
paddingPreset: buttonPaddingPresetSchema.optional(),
|
|
139
128
|
hoverTransform: hoverTransformSchema,
|
|
140
129
|
hoverColor: hoverColorSchema,
|
|
141
130
|
// When hoverColor is 'token', this specifies which token to use
|
|
142
|
-
hoverColorToken:
|
|
131
|
+
hoverColorToken: z.string().optional(),
|
|
143
132
|
// Gradient settings (if any variant uses gradients)
|
|
144
133
|
gradientStyle: gradientStyleSchema.optional(),
|
|
145
|
-
gradientAngle:
|
|
134
|
+
gradientAngle: z.number().min(0).max(360).optional(),
|
|
146
135
|
gradientSharpness: gradientSharpnessSchema.optional()
|
|
147
136
|
});
|
|
148
|
-
var gradientDirectionSchema =
|
|
149
|
-
var buttonBackgroundSchema =
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
type:
|
|
153
|
-
stops:
|
|
137
|
+
var gradientDirectionSchema = z.enum(["to-r", "to-l", "to-t", "to-b", "to-tr", "to-tl", "to-br", "to-bl"]);
|
|
138
|
+
var buttonBackgroundSchema = z.discriminatedUnion("type", [
|
|
139
|
+
z.object({ type: z.literal("solid"), colorToken: z.string() }),
|
|
140
|
+
z.object({
|
|
141
|
+
type: z.literal("gradient"),
|
|
142
|
+
stops: z.array(z.string()).min(2),
|
|
154
143
|
direction: gradientDirectionSchema
|
|
155
144
|
}),
|
|
156
|
-
|
|
145
|
+
z.object({ type: z.literal("transparent") })
|
|
157
146
|
]);
|
|
158
|
-
var effectApplicationSchema =
|
|
159
|
-
effectId:
|
|
160
|
-
options:
|
|
147
|
+
var effectApplicationSchema = z.object({
|
|
148
|
+
effectId: z.string(),
|
|
149
|
+
options: z.record(z.string(), z.any()).optional()
|
|
150
|
+
});
|
|
151
|
+
var buttonBorderSchema = z.object({
|
|
152
|
+
widthClass: z.string(),
|
|
153
|
+
colorToken: z.string()
|
|
154
|
+
});
|
|
155
|
+
var variantShadowSchema = z.object({
|
|
156
|
+
elevation: z.enum(["none", "low", "medium", "high"]),
|
|
157
|
+
softness: z.enum(["crisp", "soft", "hard"]).nullable(),
|
|
158
|
+
position: z.enum(["bottom", "bottom-right"]).default("bottom")
|
|
161
159
|
});
|
|
162
|
-
var
|
|
163
|
-
|
|
164
|
-
|
|
160
|
+
var variantEffectsSchema = z.object({
|
|
161
|
+
base: z.array(effectApplicationSchema).optional(),
|
|
162
|
+
hover: z.array(effectApplicationSchema).optional(),
|
|
163
|
+
active: z.array(effectApplicationSchema).optional(),
|
|
164
|
+
focus: z.array(effectApplicationSchema).optional()
|
|
165
165
|
});
|
|
166
|
-
var
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
backgroundTreatment: backgroundTreatmentSchema,
|
|
172
|
-
color: z2.string().optional(),
|
|
173
|
-
gradientColors: z2.tuple([z2.string(), z2.string()]).optional(),
|
|
174
|
-
borderColor: z2.string().optional(),
|
|
175
|
-
outlineHoverEffect: outlineHoverEffectSchema.optional(),
|
|
176
|
-
effectPreset: z2.string().optional()
|
|
166
|
+
var variantSizeOverridesSchema = z.object({
|
|
167
|
+
sm: buttonSizeConfigSchema.optional(),
|
|
168
|
+
md: buttonSizeConfigSchema.optional(),
|
|
169
|
+
lg: buttonSizeConfigSchema.optional(),
|
|
170
|
+
xl: buttonSizeConfigSchema.optional()
|
|
177
171
|
});
|
|
178
|
-
var buttonVariantSchema =
|
|
179
|
-
id:
|
|
180
|
-
name:
|
|
181
|
-
enabled:
|
|
182
|
-
priority:
|
|
172
|
+
var buttonVariantSchema = z.object({
|
|
173
|
+
id: z.string(),
|
|
174
|
+
name: z.string().min(1).max(20),
|
|
175
|
+
enabled: z.boolean(),
|
|
176
|
+
priority: prioritySchema,
|
|
183
177
|
// Base appearance (token-based)
|
|
184
178
|
background: buttonBackgroundSchema,
|
|
185
|
-
textColorToken:
|
|
186
|
-
|
|
179
|
+
textColorToken: z.string(),
|
|
180
|
+
/** Tailwind radius token (e.g. `'rounded-md'`). Omit to inherit from `global.cornerStyle`. */
|
|
181
|
+
borderRadius: z.string().optional(),
|
|
187
182
|
// Optional shadow override (uses theme.shadow if not specified)
|
|
188
|
-
shadow:
|
|
189
|
-
elevation: z2.enum(["none", "low", "medium", "high"]),
|
|
190
|
-
softness: z2.enum(["crisp", "soft", "hard"]).nullable(),
|
|
191
|
-
position: z2.enum(["bottom", "bottom-right"]).default("bottom")
|
|
192
|
-
}).optional(),
|
|
183
|
+
shadow: variantShadowSchema.optional(),
|
|
193
184
|
// Border (optional)
|
|
194
185
|
border: buttonBorderSchema.optional(),
|
|
195
|
-
// Padding (optional, defaults to "0.5rem 1rem")
|
|
196
|
-
padding: z2.string().optional(),
|
|
197
|
-
// Font size (optional, Tailwind text size class)
|
|
198
|
-
fontSize: z2.string().optional(),
|
|
199
186
|
// Hover background token (per-variant override, takes precedence over global hoverColorToken)
|
|
200
|
-
hoverBackgroundToken:
|
|
187
|
+
hoverBackgroundToken: z.string().optional(),
|
|
201
188
|
// Effect composition
|
|
202
|
-
effects:
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
active: z2.array(effectApplicationSchema).optional(),
|
|
206
|
-
focus: z2.array(effectApplicationSchema).optional()
|
|
207
|
-
}).optional()
|
|
189
|
+
effects: variantEffectsSchema.optional(),
|
|
190
|
+
// Per-variant size overrides — see VariantSizeOverrides
|
|
191
|
+
sizes: variantSizeOverridesSchema.optional()
|
|
208
192
|
});
|
|
209
|
-
var buttonSystemSchema =
|
|
193
|
+
var buttonSystemSchema = z.object({
|
|
210
194
|
global: buttonGlobalSettingsSchema,
|
|
211
|
-
variants:
|
|
195
|
+
variants: z.array(buttonVariantSchema).min(1).max(6),
|
|
212
196
|
sizes: buttonSizesSchema.optional()
|
|
213
197
|
});
|
|
214
198
|
|
|
199
|
+
// ../theme-core/src/site-styles/styleTags.ts
|
|
200
|
+
import { z as z2 } from "zod";
|
|
201
|
+
var STYLE_AXIS_VALUES = {
|
|
202
|
+
tone: ["minimal", "classic", "bold"],
|
|
203
|
+
energy: ["calm", "vibrant"],
|
|
204
|
+
motion: ["subtle", "standard", "expressive"],
|
|
205
|
+
era: ["editorial", "modern", "organic", "technical", "retro"]
|
|
206
|
+
};
|
|
207
|
+
var styleTagsSchema = z2.object({
|
|
208
|
+
tone: z2.enum(STYLE_AXIS_VALUES.tone).optional(),
|
|
209
|
+
energy: z2.enum(STYLE_AXIS_VALUES.energy).optional(),
|
|
210
|
+
motion: z2.enum(STYLE_AXIS_VALUES.motion).optional(),
|
|
211
|
+
era: z2.enum(STYLE_AXIS_VALUES.era).optional()
|
|
212
|
+
});
|
|
213
|
+
|
|
214
|
+
// ../theme-core/src/buttons/personalities/types.ts
|
|
215
|
+
function asButtonPersonalityId(value) {
|
|
216
|
+
if (value.length === 0) {
|
|
217
|
+
throw new Error("ButtonPersonalityId must be a non-empty string");
|
|
218
|
+
}
|
|
219
|
+
return value;
|
|
220
|
+
}
|
|
221
|
+
var buttonPersonalityIdSchema = z3.string().min(1).transform((value) => asButtonPersonalityId(value));
|
|
222
|
+
var buttonPersonalitySchema = z3.object({
|
|
223
|
+
id: buttonPersonalityIdSchema,
|
|
224
|
+
name: z3.string().min(1),
|
|
225
|
+
description: z3.string().min(1),
|
|
226
|
+
tags: styleTagsSchema,
|
|
227
|
+
buttonSystem: buttonSystemSchema
|
|
228
|
+
});
|
|
229
|
+
function defineButtonPersonality(input) {
|
|
230
|
+
return {
|
|
231
|
+
id: asButtonPersonalityId(input.id),
|
|
232
|
+
name: input.name,
|
|
233
|
+
description: input.description,
|
|
234
|
+
tags: input.tags,
|
|
235
|
+
buttonSystem: input.buttonSystem
|
|
236
|
+
};
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
// ../theme-core/src/buttons/personalities/brushed-wash.ts
|
|
240
|
+
var brushedWash = defineButtonPersonality({
|
|
241
|
+
id: "brushed-wash",
|
|
242
|
+
name: "Brushed Wash",
|
|
243
|
+
description: "Watercolour-gradient buttons with soft shadows and generous padding.",
|
|
244
|
+
tags: { tone: "classic", energy: "vibrant", motion: "standard", era: "organic" },
|
|
245
|
+
buttonSystem: {
|
|
246
|
+
global: {
|
|
247
|
+
cornerStyle: "rounded",
|
|
248
|
+
shadow: "low",
|
|
249
|
+
textTransform: "none",
|
|
250
|
+
fontWeight: 500,
|
|
251
|
+
borderWidth: 1,
|
|
252
|
+
hoverTransform: "none",
|
|
253
|
+
hoverColor: "none"
|
|
254
|
+
},
|
|
255
|
+
sizes: {
|
|
256
|
+
sm: { padding: "0.75rem 2rem", fontSize: "text-sm" },
|
|
257
|
+
md: { padding: "1rem 2.5rem" },
|
|
258
|
+
lg: { padding: "1.25rem 3rem", fontSize: "text-lg" },
|
|
259
|
+
xl: { padding: "1.625rem 3.75rem", fontSize: "text-xl" }
|
|
260
|
+
},
|
|
261
|
+
variants: [
|
|
262
|
+
{
|
|
263
|
+
id: "primary",
|
|
264
|
+
name: "Primary",
|
|
265
|
+
enabled: true,
|
|
266
|
+
priority: 1,
|
|
267
|
+
background: {
|
|
268
|
+
type: "gradient",
|
|
269
|
+
stops: ["primary", "accent"],
|
|
270
|
+
direction: "to-r"
|
|
271
|
+
},
|
|
272
|
+
textColorToken: "primaryForeground",
|
|
273
|
+
borderRadius: "rounded-lg",
|
|
274
|
+
shadow: { elevation: "low", softness: "soft", position: "bottom" },
|
|
275
|
+
effects: {
|
|
276
|
+
hover: [{ effectId: "opacity-reduce", options: { reduction: -15 } }]
|
|
277
|
+
}
|
|
278
|
+
},
|
|
279
|
+
{
|
|
280
|
+
id: "secondary",
|
|
281
|
+
name: "Secondary",
|
|
282
|
+
enabled: true,
|
|
283
|
+
priority: 2,
|
|
284
|
+
background: {
|
|
285
|
+
type: "gradient",
|
|
286
|
+
stops: ["secondary", "accent"],
|
|
287
|
+
direction: "to-br"
|
|
288
|
+
},
|
|
289
|
+
textColorToken: "primaryForeground",
|
|
290
|
+
borderRadius: "rounded-lg",
|
|
291
|
+
shadow: { elevation: "low", softness: "soft", position: "bottom" },
|
|
292
|
+
effects: {
|
|
293
|
+
hover: [{ effectId: "opacity-reduce", options: { reduction: -15 } }]
|
|
294
|
+
}
|
|
295
|
+
},
|
|
296
|
+
{
|
|
297
|
+
id: "outline",
|
|
298
|
+
name: "Outline",
|
|
299
|
+
enabled: true,
|
|
300
|
+
priority: 3,
|
|
301
|
+
background: { type: "transparent" },
|
|
302
|
+
textColorToken: "primary",
|
|
303
|
+
borderRadius: "rounded-lg",
|
|
304
|
+
border: { widthClass: "border", colorToken: "primary" },
|
|
305
|
+
effects: {
|
|
306
|
+
hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
|
|
307
|
+
}
|
|
308
|
+
},
|
|
309
|
+
{
|
|
310
|
+
id: "ghost",
|
|
311
|
+
name: "Ghost",
|
|
312
|
+
enabled: true,
|
|
313
|
+
priority: 3,
|
|
314
|
+
background: { type: "transparent" },
|
|
315
|
+
textColorToken: "text",
|
|
316
|
+
borderRadius: "rounded-lg",
|
|
317
|
+
effects: {
|
|
318
|
+
hover: [
|
|
319
|
+
{ effectId: "background-on-hover", options: { colorToken: "surface" } }
|
|
320
|
+
]
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
]
|
|
324
|
+
}
|
|
325
|
+
});
|
|
326
|
+
|
|
327
|
+
// ../theme-core/src/buttons/personalities/confident-chip.ts
|
|
328
|
+
var confidentChip = defineButtonPersonality({
|
|
329
|
+
id: "confident-chip",
|
|
330
|
+
name: "Confident Chip",
|
|
331
|
+
description: "Mid-radius solid buttons with a crisp hover.",
|
|
332
|
+
tags: { tone: "classic", energy: "calm", motion: "standard", era: "modern" },
|
|
333
|
+
buttonSystem: {
|
|
334
|
+
global: {
|
|
335
|
+
cornerStyle: "rounded",
|
|
336
|
+
shadow: "medium",
|
|
337
|
+
textTransform: "none",
|
|
338
|
+
fontWeight: 600,
|
|
339
|
+
borderWidth: 1,
|
|
340
|
+
hoverTransform: "none",
|
|
341
|
+
hoverColor: "none"
|
|
342
|
+
},
|
|
343
|
+
variants: [
|
|
344
|
+
{
|
|
345
|
+
id: "primary",
|
|
346
|
+
name: "Primary",
|
|
347
|
+
enabled: true,
|
|
348
|
+
priority: 1,
|
|
349
|
+
background: { type: "solid", colorToken: "primary" },
|
|
350
|
+
textColorToken: "primaryForeground",
|
|
351
|
+
borderRadius: "rounded-md",
|
|
352
|
+
shadow: { elevation: "medium", softness: "soft", position: "bottom" },
|
|
353
|
+
effects: {
|
|
354
|
+
hover: [{ effectId: "darken-background", options: { amount: 60 } }],
|
|
355
|
+
active: [{ effectId: "scale-down", options: { scale: "0.97" } }]
|
|
356
|
+
}
|
|
357
|
+
},
|
|
358
|
+
{
|
|
359
|
+
id: "secondary",
|
|
360
|
+
name: "Secondary",
|
|
361
|
+
enabled: true,
|
|
362
|
+
priority: 2,
|
|
363
|
+
background: { type: "solid", colorToken: "surface" },
|
|
364
|
+
textColorToken: "text",
|
|
365
|
+
borderRadius: "rounded-md",
|
|
366
|
+
border: { widthClass: "border", colorToken: "border" },
|
|
367
|
+
effects: {
|
|
368
|
+
hover: [{ effectId: "background-on-hover", options: { colorToken: "background" } }]
|
|
369
|
+
}
|
|
370
|
+
},
|
|
371
|
+
{
|
|
372
|
+
id: "outline",
|
|
373
|
+
name: "Outline",
|
|
374
|
+
enabled: true,
|
|
375
|
+
priority: 3,
|
|
376
|
+
background: { type: "transparent" },
|
|
377
|
+
textColorToken: "primary",
|
|
378
|
+
borderRadius: "rounded-md",
|
|
379
|
+
border: { widthClass: "border", colorToken: "primary" },
|
|
380
|
+
effects: {
|
|
381
|
+
hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
|
|
382
|
+
}
|
|
383
|
+
},
|
|
384
|
+
{
|
|
385
|
+
id: "ghost",
|
|
386
|
+
name: "Ghost",
|
|
387
|
+
enabled: true,
|
|
388
|
+
priority: 3,
|
|
389
|
+
background: { type: "transparent" },
|
|
390
|
+
textColorToken: "primary",
|
|
391
|
+
borderRadius: "rounded-md",
|
|
392
|
+
effects: {
|
|
393
|
+
hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
]
|
|
397
|
+
}
|
|
398
|
+
});
|
|
399
|
+
|
|
400
|
+
// ../theme-core/src/buttons/personalities/editorial-link.ts
|
|
401
|
+
var editorialLink = defineButtonPersonality({
|
|
402
|
+
id: "editorial-link",
|
|
403
|
+
name: "Editorial Link",
|
|
404
|
+
description: "Link-style with a growing underline. Refined, typographic.",
|
|
405
|
+
tags: { tone: "minimal", energy: "calm", motion: "subtle", era: "editorial" },
|
|
406
|
+
buttonSystem: {
|
|
407
|
+
global: {
|
|
408
|
+
cornerStyle: "square",
|
|
409
|
+
shadow: "none",
|
|
410
|
+
textTransform: "none",
|
|
411
|
+
fontWeight: 500,
|
|
412
|
+
borderWidth: 1,
|
|
413
|
+
hoverTransform: "none",
|
|
414
|
+
hoverColor: "none"
|
|
415
|
+
},
|
|
416
|
+
variants: [
|
|
417
|
+
{
|
|
418
|
+
id: "primary",
|
|
419
|
+
name: "Primary",
|
|
420
|
+
enabled: true,
|
|
421
|
+
priority: 1,
|
|
422
|
+
background: { type: "transparent" },
|
|
423
|
+
textColorToken: "text",
|
|
424
|
+
borderRadius: "rounded-none",
|
|
425
|
+
shadow: { elevation: "none", softness: null, position: "bottom" },
|
|
426
|
+
sizes: {
|
|
427
|
+
sm: { padding: "0.25rem 0" },
|
|
428
|
+
md: { padding: "0.5rem 0" },
|
|
429
|
+
lg: { padding: "0.625rem 0" },
|
|
430
|
+
xl: { padding: "0.75rem 0" }
|
|
431
|
+
},
|
|
432
|
+
effects: {
|
|
433
|
+
base: [
|
|
434
|
+
{ effectId: "border-bottom-grow", options: { height: 2, colorToken: "text", origin: "left" } }
|
|
435
|
+
]
|
|
436
|
+
}
|
|
437
|
+
},
|
|
438
|
+
{
|
|
439
|
+
id: "secondary",
|
|
440
|
+
name: "Secondary",
|
|
441
|
+
enabled: true,
|
|
442
|
+
priority: 2,
|
|
443
|
+
background: { type: "transparent" },
|
|
444
|
+
textColorToken: "mutedText",
|
|
445
|
+
borderRadius: "rounded-none",
|
|
446
|
+
shadow: { elevation: "none", softness: null, position: "bottom" },
|
|
447
|
+
sizes: {
|
|
448
|
+
sm: { padding: "0.25rem 0" },
|
|
449
|
+
md: { padding: "0.5rem 0" },
|
|
450
|
+
lg: { padding: "0.625rem 0" },
|
|
451
|
+
xl: { padding: "0.75rem 0" }
|
|
452
|
+
},
|
|
453
|
+
effects: {
|
|
454
|
+
base: [
|
|
455
|
+
{ effectId: "border-bottom-grow", options: { height: 1, colorToken: "mutedText", origin: "left" } }
|
|
456
|
+
]
|
|
457
|
+
}
|
|
458
|
+
},
|
|
459
|
+
{
|
|
460
|
+
id: "outline",
|
|
461
|
+
name: "Outline",
|
|
462
|
+
enabled: true,
|
|
463
|
+
priority: 3,
|
|
464
|
+
background: { type: "transparent" },
|
|
465
|
+
textColorToken: "accent",
|
|
466
|
+
borderRadius: "rounded-none",
|
|
467
|
+
shadow: { elevation: "none", softness: null, position: "bottom" },
|
|
468
|
+
sizes: {
|
|
469
|
+
sm: { padding: "0.25rem 0" },
|
|
470
|
+
md: { padding: "0.5rem 0" },
|
|
471
|
+
lg: { padding: "0.625rem 0" },
|
|
472
|
+
xl: { padding: "0.75rem 0" }
|
|
473
|
+
},
|
|
474
|
+
effects: {
|
|
475
|
+
base: [
|
|
476
|
+
{ effectId: "border-bottom-grow", options: { height: 1, colorToken: "accent", origin: "left" } }
|
|
477
|
+
]
|
|
478
|
+
}
|
|
479
|
+
},
|
|
480
|
+
{
|
|
481
|
+
id: "ghost",
|
|
482
|
+
name: "Ghost",
|
|
483
|
+
enabled: true,
|
|
484
|
+
priority: 3,
|
|
485
|
+
background: { type: "transparent" },
|
|
486
|
+
textColorToken: "mutedText",
|
|
487
|
+
borderRadius: "rounded-none",
|
|
488
|
+
shadow: { elevation: "none", softness: null, position: "bottom" },
|
|
489
|
+
sizes: {
|
|
490
|
+
sm: { padding: "0.25rem 0" },
|
|
491
|
+
md: { padding: "0.5rem 0" },
|
|
492
|
+
lg: { padding: "0.625rem 0" },
|
|
493
|
+
xl: { padding: "0.75rem 0" }
|
|
494
|
+
},
|
|
495
|
+
effects: {
|
|
496
|
+
hover: [{ effectId: "opacity-reduce", options: { reduction: -20 } }]
|
|
497
|
+
}
|
|
498
|
+
}
|
|
499
|
+
]
|
|
500
|
+
}
|
|
501
|
+
});
|
|
502
|
+
|
|
503
|
+
// ../theme-core/src/buttons/personalities/ink-stamp.ts
|
|
504
|
+
var inkStamp = defineButtonPersonality({
|
|
505
|
+
id: "ink-stamp",
|
|
506
|
+
name: "Ink Stamp",
|
|
507
|
+
description: "Hand-stamped block-print buttons with a slight lift on hover.",
|
|
508
|
+
tags: { tone: "bold", energy: "vibrant", motion: "standard", era: "organic" },
|
|
509
|
+
buttonSystem: {
|
|
510
|
+
global: {
|
|
511
|
+
cornerStyle: "rounded",
|
|
512
|
+
shadow: "none",
|
|
513
|
+
textTransform: "uppercase",
|
|
514
|
+
fontWeight: 600,
|
|
515
|
+
borderWidth: 1,
|
|
516
|
+
hoverTransform: "none",
|
|
517
|
+
hoverColor: "none",
|
|
518
|
+
letterSpacing: "loose"
|
|
519
|
+
},
|
|
520
|
+
sizes: {
|
|
521
|
+
sm: { padding: "0.5rem 1.25rem", fontSize: "text-xs" },
|
|
522
|
+
md: { padding: "0.75rem 1.75rem", fontSize: "text-sm" },
|
|
523
|
+
lg: { padding: "0.875rem 2.25rem", fontSize: "text-base" },
|
|
524
|
+
xl: { padding: "1.125rem 2.75rem", fontSize: "text-lg" }
|
|
525
|
+
},
|
|
526
|
+
variants: [
|
|
527
|
+
{
|
|
528
|
+
id: "primary",
|
|
529
|
+
name: "Primary",
|
|
530
|
+
enabled: true,
|
|
531
|
+
priority: 1,
|
|
532
|
+
background: { type: "solid", colorToken: "primary" },
|
|
533
|
+
textColorToken: "primaryForeground",
|
|
534
|
+
borderRadius: "rounded-md",
|
|
535
|
+
effects: {
|
|
536
|
+
hover: [
|
|
537
|
+
{ effectId: "drop-shadow", options: { intensity: "medium" } },
|
|
538
|
+
{ effectId: "scale-up", options: { scale: "1.02" } }
|
|
539
|
+
],
|
|
540
|
+
active: [{ effectId: "scale-down", options: { scale: "0.98" } }]
|
|
541
|
+
}
|
|
542
|
+
},
|
|
543
|
+
{
|
|
544
|
+
id: "secondary",
|
|
545
|
+
name: "Secondary",
|
|
546
|
+
enabled: true,
|
|
547
|
+
priority: 2,
|
|
548
|
+
background: { type: "transparent" },
|
|
549
|
+
textColorToken: "primary",
|
|
550
|
+
borderRadius: "rounded-md",
|
|
551
|
+
border: { widthClass: "border-2", colorToken: "primary" },
|
|
552
|
+
effects: {
|
|
553
|
+
hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
|
|
554
|
+
}
|
|
555
|
+
},
|
|
556
|
+
{
|
|
557
|
+
id: "outline",
|
|
558
|
+
name: "Outline",
|
|
559
|
+
enabled: true,
|
|
560
|
+
priority: 3,
|
|
561
|
+
background: { type: "transparent" },
|
|
562
|
+
textColorToken: "text",
|
|
563
|
+
borderRadius: "rounded-md",
|
|
564
|
+
border: { widthClass: "border-2", colorToken: "border" },
|
|
565
|
+
effects: {
|
|
566
|
+
hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
|
|
567
|
+
}
|
|
568
|
+
},
|
|
569
|
+
{
|
|
570
|
+
id: "ghost",
|
|
571
|
+
name: "Ghost",
|
|
572
|
+
enabled: true,
|
|
573
|
+
priority: 3,
|
|
574
|
+
background: { type: "transparent" },
|
|
575
|
+
textColorToken: "accent",
|
|
576
|
+
borderRadius: "rounded-none",
|
|
577
|
+
sizes: {
|
|
578
|
+
sm: { padding: "0.375rem 0", fontSize: "text-xs" },
|
|
579
|
+
md: { padding: "0.5rem 0", fontSize: "text-sm" },
|
|
580
|
+
lg: { padding: "0.625rem 0", fontSize: "text-base" },
|
|
581
|
+
xl: { padding: "0.75rem 0", fontSize: "text-lg" }
|
|
582
|
+
},
|
|
583
|
+
effects: {
|
|
584
|
+
base: [{ effectId: "border-bottom-grow", options: { height: 1, colorToken: "accent", origin: "left" } }]
|
|
585
|
+
}
|
|
586
|
+
}
|
|
587
|
+
]
|
|
588
|
+
}
|
|
589
|
+
});
|
|
590
|
+
|
|
591
|
+
// ../theme-core/src/buttons/personalities/pebble.ts
|
|
592
|
+
var pebble = defineButtonPersonality({
|
|
593
|
+
id: "pebble",
|
|
594
|
+
name: "Pebble",
|
|
595
|
+
description: "Generous pill buttons with a soft hover lift.",
|
|
596
|
+
tags: { tone: "classic", energy: "calm", motion: "standard", era: "organic" },
|
|
597
|
+
buttonSystem: {
|
|
598
|
+
global: {
|
|
599
|
+
cornerStyle: "pill",
|
|
600
|
+
shadow: "none",
|
|
601
|
+
textTransform: "none",
|
|
602
|
+
fontWeight: 500,
|
|
603
|
+
borderWidth: 2,
|
|
604
|
+
hoverTransform: "none",
|
|
605
|
+
hoverColor: "none"
|
|
606
|
+
},
|
|
607
|
+
sizes: {
|
|
608
|
+
sm: { padding: "0.625rem 1.75rem", fontSize: "text-sm" },
|
|
609
|
+
md: { padding: "0.875rem 2.25rem" },
|
|
610
|
+
lg: { padding: "1.125rem 2.75rem", fontSize: "text-lg" },
|
|
611
|
+
xl: { padding: "1.5rem 3.5rem", fontSize: "text-xl" }
|
|
612
|
+
},
|
|
613
|
+
variants: [
|
|
614
|
+
{
|
|
615
|
+
id: "primary",
|
|
616
|
+
name: "Primary",
|
|
617
|
+
enabled: true,
|
|
618
|
+
priority: 1,
|
|
619
|
+
background: { type: "solid", colorToken: "primary" },
|
|
620
|
+
textColorToken: "primaryForeground",
|
|
621
|
+
borderRadius: "rounded-full",
|
|
622
|
+
effects: {
|
|
623
|
+
hover: [
|
|
624
|
+
{ effectId: "scale-up", options: { scale: "1.03" } },
|
|
625
|
+
{ effectId: "drop-shadow", options: { intensity: "medium" } }
|
|
626
|
+
]
|
|
627
|
+
}
|
|
628
|
+
},
|
|
629
|
+
{
|
|
630
|
+
id: "secondary",
|
|
631
|
+
name: "Secondary",
|
|
632
|
+
enabled: true,
|
|
633
|
+
priority: 2,
|
|
634
|
+
background: { type: "transparent" },
|
|
635
|
+
textColorToken: "primary",
|
|
636
|
+
borderRadius: "rounded-full",
|
|
637
|
+
border: { widthClass: "border-2", colorToken: "accent" },
|
|
638
|
+
effects: {
|
|
639
|
+
hover: [{ effectId: "background-on-hover", options: { colorToken: "accent" } }]
|
|
640
|
+
}
|
|
641
|
+
},
|
|
642
|
+
{
|
|
643
|
+
id: "outline",
|
|
644
|
+
name: "Outline",
|
|
645
|
+
enabled: true,
|
|
646
|
+
priority: 3,
|
|
647
|
+
background: { type: "transparent" },
|
|
648
|
+
textColorToken: "text",
|
|
649
|
+
borderRadius: "rounded-full",
|
|
650
|
+
border: { widthClass: "border", colorToken: "border" },
|
|
651
|
+
effects: {
|
|
652
|
+
hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
|
|
653
|
+
}
|
|
654
|
+
},
|
|
655
|
+
{
|
|
656
|
+
id: "ghost",
|
|
657
|
+
name: "Ghost",
|
|
658
|
+
enabled: true,
|
|
659
|
+
priority: 3,
|
|
660
|
+
background: { type: "transparent" },
|
|
661
|
+
textColorToken: "primary",
|
|
662
|
+
borderRadius: "rounded-full",
|
|
663
|
+
sizes: {
|
|
664
|
+
sm: { padding: "0.375rem 0.875rem", fontSize: "text-sm" },
|
|
665
|
+
md: { padding: "0.5rem 1rem" },
|
|
666
|
+
lg: { padding: "0.625rem 1.25rem", fontSize: "text-lg" },
|
|
667
|
+
xl: { padding: "0.75rem 1.5rem", fontSize: "text-xl" }
|
|
668
|
+
},
|
|
669
|
+
effects: {
|
|
670
|
+
hover: [{ effectId: "opacity-reduce", options: { reduction: 30 } }]
|
|
671
|
+
}
|
|
672
|
+
}
|
|
673
|
+
]
|
|
674
|
+
}
|
|
675
|
+
});
|
|
676
|
+
|
|
677
|
+
// ../theme-core/src/buttons/personalities/soft-pill.ts
|
|
678
|
+
var softPill = defineButtonPersonality({
|
|
679
|
+
id: "soft-pill",
|
|
680
|
+
name: "Soft Pill",
|
|
681
|
+
description: "Rounded pills with a gentle lift on hover. Quietly modern.",
|
|
682
|
+
tags: { tone: "classic", energy: "calm", motion: "subtle", era: "organic" },
|
|
683
|
+
buttonSystem: {
|
|
684
|
+
global: {
|
|
685
|
+
cornerStyle: "pill",
|
|
686
|
+
shadow: "low",
|
|
687
|
+
textTransform: "none",
|
|
688
|
+
fontWeight: 500,
|
|
689
|
+
borderWidth: 2,
|
|
690
|
+
hoverTransform: "lift",
|
|
691
|
+
hoverColor: "none"
|
|
692
|
+
},
|
|
693
|
+
variants: [
|
|
694
|
+
{
|
|
695
|
+
id: "primary",
|
|
696
|
+
name: "Primary",
|
|
697
|
+
enabled: true,
|
|
698
|
+
priority: 1,
|
|
699
|
+
background: { type: "solid", colorToken: "primary" },
|
|
700
|
+
textColorToken: "primaryForeground",
|
|
701
|
+
borderRadius: "rounded-full",
|
|
702
|
+
shadow: { elevation: "low", softness: "soft", position: "bottom" },
|
|
703
|
+
effects: {
|
|
704
|
+
hover: [{ effectId: "lift", options: { translateY: "-1px" } }],
|
|
705
|
+
active: [{ effectId: "scale-down", options: { scale: "0.98" } }]
|
|
706
|
+
}
|
|
707
|
+
},
|
|
708
|
+
{
|
|
709
|
+
id: "secondary",
|
|
710
|
+
name: "Secondary",
|
|
711
|
+
enabled: true,
|
|
712
|
+
priority: 2,
|
|
713
|
+
background: { type: "transparent" },
|
|
714
|
+
textColorToken: "primary",
|
|
715
|
+
borderRadius: "rounded-full",
|
|
716
|
+
border: { widthClass: "border-2", colorToken: "primary" },
|
|
717
|
+
effects: {
|
|
718
|
+
hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
|
|
719
|
+
}
|
|
720
|
+
},
|
|
721
|
+
{
|
|
722
|
+
id: "outline",
|
|
723
|
+
name: "Outline",
|
|
724
|
+
enabled: true,
|
|
725
|
+
priority: 3,
|
|
726
|
+
background: { type: "transparent" },
|
|
727
|
+
textColorToken: "text",
|
|
728
|
+
borderRadius: "rounded-full",
|
|
729
|
+
border: { widthClass: "border", colorToken: "border" },
|
|
730
|
+
effects: {
|
|
731
|
+
hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
|
|
732
|
+
}
|
|
733
|
+
},
|
|
734
|
+
{
|
|
735
|
+
id: "ghost",
|
|
736
|
+
name: "Ghost",
|
|
737
|
+
enabled: true,
|
|
738
|
+
priority: 3,
|
|
739
|
+
background: { type: "transparent" },
|
|
740
|
+
textColorToken: "text",
|
|
741
|
+
borderRadius: "rounded-full",
|
|
742
|
+
effects: {
|
|
743
|
+
hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
|
|
744
|
+
}
|
|
745
|
+
}
|
|
746
|
+
]
|
|
747
|
+
}
|
|
748
|
+
});
|
|
749
|
+
|
|
750
|
+
// ../theme-core/src/buttons/personalities/index.ts
|
|
751
|
+
var buttonPersonalities = [
|
|
752
|
+
softPill,
|
|
753
|
+
confidentChip,
|
|
754
|
+
editorialLink,
|
|
755
|
+
pebble,
|
|
756
|
+
inkStamp,
|
|
757
|
+
brushedWash
|
|
758
|
+
];
|
|
759
|
+
var personalitiesById = new Map(
|
|
760
|
+
buttonPersonalities.map((p) => [p.id, p])
|
|
761
|
+
);
|
|
762
|
+
|
|
763
|
+
// ../theme-core/src/palette/variants/types.ts
|
|
764
|
+
import { z as z15 } from "zod";
|
|
765
|
+
|
|
766
|
+
// ../theme-core/src/schema.ts
|
|
767
|
+
import { z as z14 } from "zod";
|
|
768
|
+
|
|
769
|
+
// ../theme-core/src/lib/media.ts
|
|
770
|
+
import z4 from "zod";
|
|
771
|
+
var hotspotSchema = z4.object({
|
|
772
|
+
x: z4.number().min(0).max(1),
|
|
773
|
+
y: z4.number().min(0).max(1),
|
|
774
|
+
radius: z4.number().optional()
|
|
775
|
+
});
|
|
776
|
+
var rotationSchema = z4.union([z4.literal(0), z4.literal(90), z4.literal(180), z4.literal(270)]);
|
|
777
|
+
var rectSchema = z4.tuple([z4.number(), z4.number(), z4.number(), z4.number()]);
|
|
778
|
+
var aspectCropSchema = z4.object({
|
|
779
|
+
aspect: z4.preprocess((value) => value == null ? void 0 : value, z4.string().optional()),
|
|
780
|
+
rect: z4.preprocess((value) => value == null ? void 0 : value, rectSchema.optional()),
|
|
781
|
+
hotspot: z4.preprocess((value) => value == null ? void 0 : value, hotspotSchema.optional()),
|
|
782
|
+
rotation: z4.preprocess((value) => value == null ? void 0 : value, rotationSchema.optional())
|
|
783
|
+
});
|
|
784
|
+
var transformSchema = z4.object({
|
|
785
|
+
aspectCrops: z4.preprocess((value) => {
|
|
786
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
787
|
+
return void 0;
|
|
788
|
+
}
|
|
789
|
+
return value;
|
|
790
|
+
}, z4.record(z4.string(), aspectCropSchema.catch({}))).optional(),
|
|
791
|
+
rect: rectSchema.optional(),
|
|
792
|
+
hotspot: hotspotSchema.optional(),
|
|
793
|
+
rotation: rotationSchema.optional()
|
|
794
|
+
});
|
|
795
|
+
var mediaSchema = z4.object({
|
|
796
|
+
type: z4.enum(["image", "video", "audio", "document", "spreadsheet", "archive"]),
|
|
797
|
+
purpose: z4.string().optional(),
|
|
798
|
+
placeholder: z4.boolean().default(true).optional(),
|
|
799
|
+
assetId: z4.string().optional(),
|
|
800
|
+
identifier: z4.string().optional(),
|
|
801
|
+
src: z4.string().optional(),
|
|
802
|
+
alt: z4.string().optional(),
|
|
803
|
+
filename: z4.string().optional(),
|
|
804
|
+
mimeType: z4.string().optional(),
|
|
805
|
+
width: z4.number().optional(),
|
|
806
|
+
height: z4.number().optional(),
|
|
807
|
+
storageBucket: z4.string().optional(),
|
|
808
|
+
storagePath: z4.string().optional(),
|
|
809
|
+
transform: transformSchema.optional()
|
|
810
|
+
});
|
|
811
|
+
|
|
812
|
+
// ../theme-core/src/buttons/generateButtonCss.ts
|
|
813
|
+
var BUTTON_SIZE_NAMES = buttonSizeNameSchema.options;
|
|
814
|
+
|
|
215
815
|
// ../theme-core/src/buttons/core.ts
|
|
216
816
|
var CORNER_RADIUS_MAP = {
|
|
217
817
|
square: "0",
|
|
@@ -339,43 +939,43 @@ function getDefaultButtonVariants() {
|
|
|
339
939
|
}
|
|
340
940
|
|
|
341
941
|
// ../theme-core/src/cards/types.ts
|
|
342
|
-
import { z as
|
|
343
|
-
var cardSpacingSchema =
|
|
344
|
-
var gradientDirectionSchema2 =
|
|
345
|
-
var cardBackgroundSchema =
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
type:
|
|
349
|
-
fromToken:
|
|
350
|
-
toToken:
|
|
942
|
+
import { z as z5 } from "zod";
|
|
943
|
+
var cardSpacingSchema = z5.enum(["none", "compact", "cozy", "medium", "comfortable", "spacious"]);
|
|
944
|
+
var gradientDirectionSchema2 = z5.enum(["to-r", "to-l", "to-t", "to-b", "to-tr", "to-tl", "to-br", "to-bl"]);
|
|
945
|
+
var cardBackgroundSchema = z5.discriminatedUnion("type", [
|
|
946
|
+
z5.object({ type: z5.literal("solid"), colorToken: z5.string() }),
|
|
947
|
+
z5.object({
|
|
948
|
+
type: z5.literal("gradient"),
|
|
949
|
+
fromToken: z5.string(),
|
|
950
|
+
toToken: z5.string(),
|
|
351
951
|
direction: gradientDirectionSchema2
|
|
352
952
|
}),
|
|
353
|
-
|
|
953
|
+
z5.object({ type: z5.literal("transparent") })
|
|
354
954
|
]);
|
|
355
|
-
var cardBorderSchema =
|
|
356
|
-
widthClass:
|
|
357
|
-
colorToken:
|
|
955
|
+
var cardBorderSchema = z5.object({
|
|
956
|
+
widthClass: z5.string(),
|
|
957
|
+
colorToken: z5.string()
|
|
358
958
|
});
|
|
359
|
-
var cardVariantSchema =
|
|
360
|
-
id:
|
|
361
|
-
name:
|
|
362
|
-
enabled:
|
|
363
|
-
priority:
|
|
959
|
+
var cardVariantSchema = z5.object({
|
|
960
|
+
id: z5.string(),
|
|
961
|
+
name: z5.string().min(1).max(20),
|
|
962
|
+
enabled: z5.boolean(),
|
|
963
|
+
priority: z5.union([z5.literal(1), z5.literal(2), z5.literal(3)]),
|
|
364
964
|
// Appearance (token-based)
|
|
365
965
|
background: cardBackgroundSchema,
|
|
366
966
|
spacing: cardSpacingSchema,
|
|
367
967
|
// Optional overrides (uses theme defaults if not specified)
|
|
368
|
-
shadow:
|
|
369
|
-
elevation:
|
|
370
|
-
softness:
|
|
371
|
-
position:
|
|
968
|
+
shadow: z5.object({
|
|
969
|
+
elevation: z5.enum(["none", "low", "medium", "high"]),
|
|
970
|
+
softness: z5.enum(["crisp", "soft", "hard"]).nullable(),
|
|
971
|
+
position: z5.enum(["bottom", "bottom-right"]).default("bottom")
|
|
372
972
|
}).optional(),
|
|
373
|
-
corners:
|
|
973
|
+
corners: z5.enum(["square", "soft", "rounded", "pill"]).optional(),
|
|
374
974
|
// Border (optional)
|
|
375
975
|
border: cardBorderSchema.optional()
|
|
376
976
|
});
|
|
377
|
-
var cardSystemSchema =
|
|
378
|
-
variants:
|
|
977
|
+
var cardSystemSchema = z5.object({
|
|
978
|
+
variants: z5.array(cardVariantSchema).min(1).max(3)
|
|
379
979
|
});
|
|
380
980
|
|
|
381
981
|
// ../theme-core/src/cards/core.ts
|
|
@@ -497,8 +1097,8 @@ function getDefaultCardVariants() {
|
|
|
497
1097
|
}
|
|
498
1098
|
|
|
499
1099
|
// ../theme-core/src/accordions/types.ts
|
|
500
|
-
import { z as
|
|
501
|
-
var accordionIconSchema =
|
|
1100
|
+
import { z as z6 } from "zod";
|
|
1101
|
+
var accordionIconSchema = z6.enum([
|
|
502
1102
|
"plus-minus",
|
|
503
1103
|
// + becomes - (swap or rotate 90°)
|
|
504
1104
|
"chevron",
|
|
@@ -510,180 +1110,180 @@ var accordionIconSchema = z4.enum([
|
|
|
510
1110
|
"circle-plus-minus"
|
|
511
1111
|
// ⊕ becomes ⊖ (swap with fade)
|
|
512
1112
|
]);
|
|
513
|
-
var accordionSystemSchema =
|
|
1113
|
+
var accordionSystemSchema = z6.object({
|
|
514
1114
|
// Visual styling (solid color only - gradients can be added later if needed)
|
|
515
|
-
background:
|
|
516
|
-
type:
|
|
517
|
-
colorToken:
|
|
1115
|
+
background: z6.object({
|
|
1116
|
+
type: z6.literal("solid"),
|
|
1117
|
+
colorToken: z6.string()
|
|
518
1118
|
}),
|
|
519
1119
|
// Spacing (padding inside items)
|
|
520
|
-
spacing:
|
|
1120
|
+
spacing: z6.enum(["none", "compact", "cozy", "medium", "comfortable", "spacious"]),
|
|
521
1121
|
// Border radius (null = inherit from theme.corners)
|
|
522
|
-
corners:
|
|
1122
|
+
corners: z6.enum(["square", "soft", "rounded", "pill"]).nullable(),
|
|
523
1123
|
// Border styling (null = inherit from theme.border)
|
|
524
|
-
border:
|
|
525
|
-
widthClass:
|
|
1124
|
+
border: z6.object({
|
|
1125
|
+
widthClass: z6.string(),
|
|
526
1126
|
// e.g., 'border', 'border-2', 'border-0'
|
|
527
|
-
colorToken:
|
|
1127
|
+
colorToken: z6.string()
|
|
528
1128
|
}).nullable(),
|
|
529
1129
|
// Shadow (null = inherit from theme.shadow)
|
|
530
|
-
shadow:
|
|
531
|
-
elevation:
|
|
532
|
-
softness:
|
|
533
|
-
position:
|
|
1130
|
+
shadow: z6.object({
|
|
1131
|
+
elevation: z6.enum(["none", "low", "medium", "high"]),
|
|
1132
|
+
softness: z6.enum(["soft", "crisp", "hard"]).nullable(),
|
|
1133
|
+
position: z6.enum(["bottom", "bottom-right"])
|
|
534
1134
|
}).nullable(),
|
|
535
1135
|
// Icon style and animation
|
|
536
|
-
icon:
|
|
1136
|
+
icon: z6.object({
|
|
537
1137
|
style: accordionIconSchema,
|
|
538
|
-
position:
|
|
539
|
-
size:
|
|
1138
|
+
position: z6.enum(["left", "right"]),
|
|
1139
|
+
size: z6.enum(["sm", "md", "lg"])
|
|
540
1140
|
}),
|
|
541
1141
|
// Trigger (question) styling
|
|
542
|
-
trigger:
|
|
543
|
-
textColorToken:
|
|
544
|
-
fontWeight:
|
|
1142
|
+
trigger: z6.object({
|
|
1143
|
+
textColorToken: z6.string(),
|
|
1144
|
+
fontWeight: z6.enum(["regular", "medium", "semibold", "bold"]).nullable()
|
|
545
1145
|
// null = inherit from theme
|
|
546
1146
|
}),
|
|
547
1147
|
// Hover state styling
|
|
548
|
-
hover:
|
|
549
|
-
backgroundColorToken:
|
|
550
|
-
textColorToken:
|
|
551
|
-
borderColorToken:
|
|
1148
|
+
hover: z6.object({
|
|
1149
|
+
backgroundColorToken: z6.string().optional(),
|
|
1150
|
+
textColorToken: z6.string().optional(),
|
|
1151
|
+
borderColorToken: z6.string().optional()
|
|
552
1152
|
}),
|
|
553
1153
|
// Content (answer) styling
|
|
554
|
-
content:
|
|
555
|
-
textColorToken:
|
|
1154
|
+
content: z6.object({
|
|
1155
|
+
textColorToken: z6.string()
|
|
556
1156
|
})
|
|
557
1157
|
});
|
|
558
1158
|
|
|
559
1159
|
// ../theme-core/src/inputs/types.ts
|
|
560
|
-
import { z as
|
|
561
|
-
var inputSystemSchema =
|
|
1160
|
+
import { z as z7 } from "zod";
|
|
1161
|
+
var inputSystemSchema = z7.object({
|
|
562
1162
|
// Base styling (applied to all inputs)
|
|
563
|
-
base:
|
|
564
|
-
background:
|
|
565
|
-
|
|
566
|
-
type:
|
|
567
|
-
colorToken:
|
|
1163
|
+
base: z7.object({
|
|
1164
|
+
background: z7.union([
|
|
1165
|
+
z7.object({
|
|
1166
|
+
type: z7.literal("solid"),
|
|
1167
|
+
colorToken: z7.string()
|
|
568
1168
|
}),
|
|
569
|
-
|
|
570
|
-
type:
|
|
1169
|
+
z7.object({
|
|
1170
|
+
type: z7.literal("transparent")
|
|
571
1171
|
})
|
|
572
1172
|
]),
|
|
573
|
-
textColorToken:
|
|
574
|
-
border:
|
|
575
|
-
widthClass:
|
|
1173
|
+
textColorToken: z7.string(),
|
|
1174
|
+
border: z7.object({
|
|
1175
|
+
widthClass: z7.string(),
|
|
576
1176
|
// e.g., 'border', 'border-2'
|
|
577
|
-
colorToken:
|
|
578
|
-
style:
|
|
1177
|
+
colorToken: z7.string(),
|
|
1178
|
+
style: z7.enum(["all", "underline"]).optional()
|
|
579
1179
|
}),
|
|
580
|
-
corners:
|
|
1180
|
+
corners: z7.enum(["square", "soft", "rounded", "pill"]).nullable(),
|
|
581
1181
|
// null = inherit from theme.corners
|
|
582
|
-
shadow:
|
|
583
|
-
elevation:
|
|
584
|
-
softness:
|
|
1182
|
+
shadow: z7.object({
|
|
1183
|
+
elevation: z7.enum(["none", "low", "medium"]),
|
|
1184
|
+
softness: z7.enum(["soft", "crisp", "hard"]).nullable()
|
|
585
1185
|
}).nullable(),
|
|
586
|
-
spacing:
|
|
1186
|
+
spacing: z7.enum(["compact", "cozy", "medium", "comfortable"]),
|
|
587
1187
|
// padding inside inputs
|
|
588
|
-
fontSize:
|
|
1188
|
+
fontSize: z7.enum(["sm", "base", "lg"])
|
|
589
1189
|
}),
|
|
590
1190
|
// Label styling
|
|
591
|
-
label:
|
|
592
|
-
textColorToken:
|
|
593
|
-
fontWeight:
|
|
594
|
-
fontSize:
|
|
595
|
-
textTransform:
|
|
596
|
-
letterSpacing:
|
|
597
|
-
opacity:
|
|
1191
|
+
label: z7.object({
|
|
1192
|
+
textColorToken: z7.string(),
|
|
1193
|
+
fontWeight: z7.enum(["regular", "medium", "semibold", "bold", "black"]),
|
|
1194
|
+
fontSize: z7.enum(["2xs", "xs", "sm", "base"]),
|
|
1195
|
+
textTransform: z7.enum(["none", "uppercase", "lowercase", "capitalize"]).optional(),
|
|
1196
|
+
letterSpacing: z7.enum(["normal", "wide", "wider", "widest"]).optional(),
|
|
1197
|
+
opacity: z7.number().min(0.2).max(1).optional()
|
|
598
1198
|
}),
|
|
599
1199
|
// Focus state
|
|
600
|
-
focus:
|
|
601
|
-
ringColorToken:
|
|
602
|
-
ringWidth:
|
|
603
|
-
borderColorToken:
|
|
1200
|
+
focus: z7.object({
|
|
1201
|
+
ringColorToken: z7.string(),
|
|
1202
|
+
ringWidth: z7.enum(["0", "1", "2", "3"]),
|
|
1203
|
+
borderColorToken: z7.string().optional()
|
|
604
1204
|
// Change border color on focus
|
|
605
1205
|
}),
|
|
606
1206
|
// Error state (for validation feedback)
|
|
607
|
-
error:
|
|
608
|
-
borderColorToken:
|
|
609
|
-
textColorToken:
|
|
1207
|
+
error: z7.object({
|
|
1208
|
+
borderColorToken: z7.string(),
|
|
1209
|
+
textColorToken: z7.string()
|
|
610
1210
|
}),
|
|
611
1211
|
// Disabled state
|
|
612
|
-
disabled:
|
|
613
|
-
backgroundColorToken:
|
|
614
|
-
textColorToken:
|
|
615
|
-
opacity:
|
|
1212
|
+
disabled: z7.object({
|
|
1213
|
+
backgroundColorToken: z7.string(),
|
|
1214
|
+
textColorToken: z7.string(),
|
|
1215
|
+
opacity: z7.number().min(0.3).max(0.7)
|
|
616
1216
|
})
|
|
617
1217
|
});
|
|
618
1218
|
|
|
619
1219
|
// ../theme-core/src/gradients/types.ts
|
|
620
|
-
import { z as
|
|
621
|
-
var gradientStopSchema =
|
|
622
|
-
color:
|
|
1220
|
+
import { z as z8 } from "zod";
|
|
1221
|
+
var gradientStopSchema = z8.object({
|
|
1222
|
+
color: z8.string(),
|
|
623
1223
|
// Theme color token name (e.g., 'primary-500')
|
|
624
|
-
position:
|
|
1224
|
+
position: z8.number().min(0).max(100)
|
|
625
1225
|
// Percentage 0-100
|
|
626
1226
|
});
|
|
627
|
-
var gradientConfigSchema =
|
|
628
|
-
type:
|
|
629
|
-
angle:
|
|
1227
|
+
var gradientConfigSchema = z8.object({
|
|
1228
|
+
type: z8.enum(["linear", "radial"]),
|
|
1229
|
+
angle: z8.number().min(0).max(360).optional(),
|
|
630
1230
|
// For linear gradients (degrees)
|
|
631
|
-
position:
|
|
1231
|
+
position: z8.string().optional(),
|
|
632
1232
|
// For radial gradients ('center', 'top left', etc.)
|
|
633
|
-
stops:
|
|
1233
|
+
stops: z8.array(gradientStopSchema).min(2)
|
|
634
1234
|
});
|
|
635
1235
|
|
|
636
1236
|
// ../theme-core/src/navigation/types.ts
|
|
637
|
-
import { z as
|
|
1237
|
+
import { z as z10 } from "zod";
|
|
638
1238
|
|
|
639
1239
|
// ../theme-core/src/interactive/baseSchema.ts
|
|
640
|
-
import { z as
|
|
641
|
-
var interactiveTypographySchema =
|
|
1240
|
+
import { z as z9 } from "zod";
|
|
1241
|
+
var interactiveTypographySchema = z9.object({
|
|
642
1242
|
/** Font family source */
|
|
643
|
-
typography:
|
|
1243
|
+
typography: z9.enum(["body", "heading"]).default("body"),
|
|
644
1244
|
/** Font weight */
|
|
645
|
-
fontWeight:
|
|
1245
|
+
fontWeight: z9.enum(["regular", "medium", "semibold", "bold"]).default("medium"),
|
|
646
1246
|
/** Text transform */
|
|
647
|
-
textTransform:
|
|
1247
|
+
textTransform: z9.enum(["none", "uppercase", "capitalize"]).default("none"),
|
|
648
1248
|
/** Italic style */
|
|
649
|
-
italic:
|
|
1249
|
+
italic: z9.boolean().default(false)
|
|
650
1250
|
});
|
|
651
|
-
var effectApplicationSchema2 =
|
|
1251
|
+
var effectApplicationSchema2 = z9.object({
|
|
652
1252
|
/** Effect preset ID */
|
|
653
|
-
effectId:
|
|
1253
|
+
effectId: z9.string(),
|
|
654
1254
|
/** User-provided customization options */
|
|
655
|
-
options:
|
|
1255
|
+
options: z9.record(z9.string(), z9.any()).optional()
|
|
656
1256
|
});
|
|
657
|
-
var effectCompositionSchema =
|
|
1257
|
+
var effectCompositionSchema = z9.object({
|
|
658
1258
|
/** Effects always applied */
|
|
659
|
-
base:
|
|
1259
|
+
base: z9.array(effectApplicationSchema2).optional(),
|
|
660
1260
|
/** Effects applied on hover */
|
|
661
|
-
hover:
|
|
1261
|
+
hover: z9.array(effectApplicationSchema2).optional(),
|
|
662
1262
|
/** Effects applied on active/pressed */
|
|
663
|
-
active:
|
|
1263
|
+
active: z9.array(effectApplicationSchema2).optional(),
|
|
664
1264
|
/** Effects applied on focus */
|
|
665
|
-
focus:
|
|
1265
|
+
focus: z9.array(effectApplicationSchema2).optional()
|
|
666
1266
|
});
|
|
667
1267
|
|
|
668
1268
|
// ../theme-core/src/navigation/types.ts
|
|
669
|
-
var navLinkPaddingSchema =
|
|
670
|
-
var navLinkPaddingXSchema =
|
|
671
|
-
var navLinkBorderRadiusSchema =
|
|
672
|
-
var navLinkTextSizeSchema =
|
|
673
|
-
var navLinkLetterSpacingSchema =
|
|
674
|
-
var navLinkStyleSchema =
|
|
1269
|
+
var navLinkPaddingSchema = z10.enum(["none", "compact", "default"]);
|
|
1270
|
+
var navLinkPaddingXSchema = z10.enum(["none", "tight", "compact", "default", "relaxed", "spacious"]);
|
|
1271
|
+
var navLinkBorderRadiusSchema = z10.enum(["none", "sm", "md", "full"]);
|
|
1272
|
+
var navLinkTextSizeSchema = z10.enum(["xs", "sm", "base", "lg"]);
|
|
1273
|
+
var navLinkLetterSpacingSchema = z10.enum(["normal", "wide", "wider", "widest"]);
|
|
1274
|
+
var navLinkStyleSchema = z10.object({
|
|
675
1275
|
/** Display name for the style */
|
|
676
|
-
name:
|
|
1276
|
+
name: z10.string().min(1).max(30).optional(),
|
|
677
1277
|
/** Typography settings (inherited from interactive base) */
|
|
678
1278
|
...interactiveTypographySchema.shape,
|
|
679
1279
|
/** Text color token */
|
|
680
|
-
colorToken:
|
|
1280
|
+
colorToken: z10.string().default("text"),
|
|
681
1281
|
/** Optional text size override */
|
|
682
1282
|
textSize: navLinkTextSizeSchema.optional(),
|
|
683
1283
|
/** Optional letter spacing override */
|
|
684
1284
|
letterSpacing: navLinkLetterSpacingSchema.optional(),
|
|
685
1285
|
/** Hover/active color token (for color-change effects) */
|
|
686
|
-
hoverColorToken:
|
|
1286
|
+
hoverColorToken: z10.string().nullable().optional(),
|
|
687
1287
|
/** Padding preset */
|
|
688
1288
|
padding: navLinkPaddingSchema.default("compact"),
|
|
689
1289
|
/** Horizontal padding override (overrides horizontal component of padding preset) */
|
|
@@ -695,7 +1295,7 @@ var navLinkStyleSchema = z8.object({
|
|
|
695
1295
|
});
|
|
696
1296
|
|
|
697
1297
|
// ../theme-core/src/customCss/validation.ts
|
|
698
|
-
import { z as
|
|
1298
|
+
import { z as z11 } from "zod";
|
|
699
1299
|
var FORBIDDEN_SELECTORS = [":root", "html", "body"];
|
|
700
1300
|
var UNIVERSAL_SELECTOR = "*";
|
|
701
1301
|
var REMOTE_URL_PATTERN = /url\s*\(\s*['"]?(https?:|\/\/)/i;
|
|
@@ -737,7 +1337,7 @@ function containsForbiddenSelector(selector) {
|
|
|
737
1337
|
}
|
|
738
1338
|
return false;
|
|
739
1339
|
}
|
|
740
|
-
var selectorSchema =
|
|
1340
|
+
var selectorSchema = z11.string().min(1, "Selector cannot be empty").max(200, "Selector too long (max 200 characters)").refine(
|
|
741
1341
|
(s) => !containsForbiddenSelector(s),
|
|
742
1342
|
{ message: "Global selectors (:root, html, body, *) are not allowed" }
|
|
743
1343
|
);
|
|
@@ -747,38 +1347,38 @@ function containsRemoteUrl(value) {
|
|
|
747
1347
|
function containsJavascriptUrl(value) {
|
|
748
1348
|
return JAVASCRIPT_URL_PATTERN.test(value);
|
|
749
1349
|
}
|
|
750
|
-
var declarationValueSchema =
|
|
1350
|
+
var declarationValueSchema = z11.string().max(500, "Declaration value too long (max 500 characters)").refine(
|
|
751
1351
|
(v) => !containsRemoteUrl(v),
|
|
752
1352
|
{ message: "Remote url() references are not allowed. Use local paths, data URIs, or fragment IDs." }
|
|
753
1353
|
).refine(
|
|
754
1354
|
(v) => !containsJavascriptUrl(v),
|
|
755
1355
|
{ message: "javascript: URLs are not allowed" }
|
|
756
1356
|
);
|
|
757
|
-
var declarationsSchema =
|
|
758
|
-
|
|
1357
|
+
var declarationsSchema = z11.record(
|
|
1358
|
+
z11.string().min(1).max(100),
|
|
759
1359
|
// property name
|
|
760
1360
|
declarationValueSchema
|
|
761
1361
|
// property value
|
|
762
1362
|
);
|
|
763
|
-
var customCssRuleSchema =
|
|
764
|
-
id:
|
|
1363
|
+
var customCssRuleSchema = z11.object({
|
|
1364
|
+
id: z11.string().min(1, "Rule ID is required").max(50, "Rule ID too long"),
|
|
765
1365
|
selector: selectorSchema,
|
|
766
1366
|
declarations: declarationsSchema
|
|
767
1367
|
});
|
|
768
1368
|
var blockCustomCssRuleSchema = customCssRuleSchema.extend({
|
|
769
|
-
blockKind:
|
|
1369
|
+
blockKind: z11.string().min(1, "Block kind is required").max(50, "Block kind too long")
|
|
770
1370
|
});
|
|
771
|
-
var customCssRulesSchema =
|
|
772
|
-
var blockCustomCssRulesSchema =
|
|
1371
|
+
var customCssRulesSchema = z11.array(customCssRuleSchema).optional();
|
|
1372
|
+
var blockCustomCssRulesSchema = z11.array(blockCustomCssRuleSchema).optional();
|
|
773
1373
|
|
|
774
1374
|
// ../theme-core/src/customCss/atRuleValidation.ts
|
|
775
|
-
import { z as
|
|
1375
|
+
import { z as z12 } from "zod";
|
|
776
1376
|
var KEYFRAME_OFFSET_PATTERN = /^(from|to|\d{1,3}%)$/i;
|
|
777
1377
|
var ANIMATION_NAME_PATTERN = /^[a-zA-Z_-][a-zA-Z0-9_-]*$/;
|
|
778
1378
|
var BLOCKED_AT_RULES = ["@import", "@charset"];
|
|
779
1379
|
var BLOCKED_AT_RULE_PATTERN = /@(?:import|charset)\b/i;
|
|
780
|
-
var ruleIdSchema =
|
|
781
|
-
var nestedRuleSchema =
|
|
1380
|
+
var ruleIdSchema = z12.string().min(1, "Rule ID is required").max(50, "Rule ID too long");
|
|
1381
|
+
var nestedRuleSchema = z12.object({
|
|
782
1382
|
selector: selectorSchema,
|
|
783
1383
|
declarations: declarationsSchema
|
|
784
1384
|
});
|
|
@@ -790,146 +1390,146 @@ function isValidKeyframeOffset(offset) {
|
|
|
790
1390
|
const value = parseInt(match[1], 10);
|
|
791
1391
|
return value >= 0 && value <= 100;
|
|
792
1392
|
}
|
|
793
|
-
var keyframeOffsetSchema =
|
|
1393
|
+
var keyframeOffsetSchema = z12.string().transform((offset) => offset.trim()).refine(
|
|
794
1394
|
(offset) => KEYFRAME_OFFSET_PATTERN.test(offset),
|
|
795
1395
|
{ message: 'Invalid keyframe offset. Use percentages (0%, 50%, 100%) or "from"/"to"' }
|
|
796
1396
|
).refine(
|
|
797
1397
|
isValidKeyframeOffset,
|
|
798
1398
|
{ message: "Keyframe offset must be between 0% and 100%" }
|
|
799
1399
|
);
|
|
800
|
-
var animationNameSchema =
|
|
1400
|
+
var animationNameSchema = z12.string().min(1, "Animation name is required").max(50, "Animation name too long").refine(
|
|
801
1401
|
(name) => ANIMATION_NAME_PATTERN.test(name),
|
|
802
1402
|
{ message: "Invalid animation name. Use letters, numbers, dashes, underscores (start with letter, dash, or underscore)" }
|
|
803
1403
|
);
|
|
804
|
-
var keyframeSchema =
|
|
1404
|
+
var keyframeSchema = z12.object({
|
|
805
1405
|
offset: keyframeOffsetSchema,
|
|
806
1406
|
declarations: declarationsSchema
|
|
807
1407
|
});
|
|
808
|
-
var keyframesAtRuleSchema =
|
|
1408
|
+
var keyframesAtRuleSchema = z12.object({
|
|
809
1409
|
id: ruleIdSchema,
|
|
810
|
-
type:
|
|
1410
|
+
type: z12.literal("keyframes"),
|
|
811
1411
|
name: animationNameSchema,
|
|
812
|
-
frames:
|
|
1412
|
+
frames: z12.array(keyframeSchema).min(1, "At least one keyframe is required")
|
|
813
1413
|
});
|
|
814
|
-
var fontFaceDeclarationsSchema =
|
|
1414
|
+
var fontFaceDeclarationsSchema = z12.record(z12.string().min(1).max(100), declarationValueSchema).refine(
|
|
815
1415
|
(decls) => "fontFamily" in decls || "font-family" in decls,
|
|
816
1416
|
{ message: "font-family is required in @font-face" }
|
|
817
1417
|
);
|
|
818
|
-
var fontFaceAtRuleSchema =
|
|
1418
|
+
var fontFaceAtRuleSchema = z12.object({
|
|
819
1419
|
id: ruleIdSchema,
|
|
820
|
-
type:
|
|
1420
|
+
type: z12.literal("font-face"),
|
|
821
1421
|
declarations: fontFaceDeclarationsSchema
|
|
822
1422
|
});
|
|
823
|
-
var mediaQuerySchema =
|
|
824
|
-
var mediaAtRuleSchema =
|
|
1423
|
+
var mediaQuerySchema = z12.string().min(1, "Media query is required").max(200, "Media query too long");
|
|
1424
|
+
var mediaAtRuleSchema = z12.object({
|
|
825
1425
|
id: ruleIdSchema,
|
|
826
|
-
type:
|
|
1426
|
+
type: z12.literal("media"),
|
|
827
1427
|
query: mediaQuerySchema,
|
|
828
|
-
rules:
|
|
1428
|
+
rules: z12.array(nestedRuleSchema).min(1, "At least one rule is required")
|
|
829
1429
|
});
|
|
830
|
-
var supportsConditionSchema =
|
|
831
|
-
var supportsAtRuleSchema =
|
|
1430
|
+
var supportsConditionSchema = z12.string().min(1, "Supports condition is required").max(200, "Supports condition too long");
|
|
1431
|
+
var supportsAtRuleSchema = z12.object({
|
|
832
1432
|
id: ruleIdSchema,
|
|
833
|
-
type:
|
|
1433
|
+
type: z12.literal("supports"),
|
|
834
1434
|
condition: supportsConditionSchema,
|
|
835
|
-
rules:
|
|
1435
|
+
rules: z12.array(nestedRuleSchema).min(1, "At least one rule is required")
|
|
836
1436
|
});
|
|
837
1437
|
function containsBlockedAtRule(css) {
|
|
838
1438
|
return BLOCKED_AT_RULE_PATTERN.test(css);
|
|
839
1439
|
}
|
|
840
|
-
var rawCssSchema =
|
|
1440
|
+
var rawCssSchema = z12.string().min(1, "CSS is required").max(5e3, "Raw CSS too long (max 5000 characters)").refine(
|
|
841
1441
|
(css) => css.trim().startsWith("@"),
|
|
842
1442
|
{ message: "Raw at-rule must start with @" }
|
|
843
1443
|
).refine(
|
|
844
1444
|
(css) => !containsBlockedAtRule(css),
|
|
845
1445
|
{ message: `Blocked at-rules: ${BLOCKED_AT_RULES.join(", ")}. Use typed at-rules or local assets instead.` }
|
|
846
1446
|
);
|
|
847
|
-
var rawAtRuleSchema =
|
|
1447
|
+
var rawAtRuleSchema = z12.object({
|
|
848
1448
|
id: ruleIdSchema,
|
|
849
|
-
type:
|
|
1449
|
+
type: z12.literal("raw"),
|
|
850
1450
|
css: rawCssSchema
|
|
851
1451
|
});
|
|
852
|
-
var customCssAtRuleSchema =
|
|
1452
|
+
var customCssAtRuleSchema = z12.discriminatedUnion("type", [
|
|
853
1453
|
keyframesAtRuleSchema,
|
|
854
1454
|
fontFaceAtRuleSchema,
|
|
855
1455
|
mediaAtRuleSchema,
|
|
856
1456
|
supportsAtRuleSchema,
|
|
857
1457
|
rawAtRuleSchema
|
|
858
1458
|
]);
|
|
859
|
-
var customCssAtRulesSchema =
|
|
1459
|
+
var customCssAtRulesSchema = z12.array(customCssAtRuleSchema).optional();
|
|
860
1460
|
|
|
861
1461
|
// ../theme-core/src/shared/componentStyles.ts
|
|
862
|
-
import { z as
|
|
863
|
-
var componentBorderSchema =
|
|
864
|
-
width:
|
|
865
|
-
style:
|
|
866
|
-
colorToken:
|
|
1462
|
+
import { z as z13 } from "zod";
|
|
1463
|
+
var componentBorderSchema = z13.object({
|
|
1464
|
+
width: z13.enum(["none", "hairline", "thin", "medium", "thick"]).default("none"),
|
|
1465
|
+
style: z13.enum(["solid", "dashed"]).default("solid"),
|
|
1466
|
+
colorToken: z13.string().optional()
|
|
867
1467
|
// defaults to "border" if not set
|
|
868
1468
|
});
|
|
869
|
-
var componentShadowSchema =
|
|
870
|
-
elevation:
|
|
1469
|
+
var componentShadowSchema = z13.object({
|
|
1470
|
+
elevation: z13.enum(["none", "sm", "md", "lg", "xl", "2xl"]).default("sm")
|
|
871
1471
|
});
|
|
872
1472
|
|
|
873
1473
|
// ../theme-core/src/schema.ts
|
|
874
|
-
var axesSchema =
|
|
875
|
-
tone:
|
|
876
|
-
energy:
|
|
877
|
-
density:
|
|
878
|
-
mediaBias:
|
|
879
|
-
conversionBias:
|
|
880
|
-
motion:
|
|
1474
|
+
var axesSchema = z14.object({
|
|
1475
|
+
tone: z14.enum(["minimal", "classic", "bold"]),
|
|
1476
|
+
energy: z14.enum(["calm", "vibrant"]),
|
|
1477
|
+
density: z14.enum(["airy", "regular", "compact"]),
|
|
1478
|
+
mediaBias: z14.enum(["text", "media", "mixed"]),
|
|
1479
|
+
conversionBias: z14.enum(["low", "med", "high"]),
|
|
1480
|
+
motion: z14.enum(["subtle", "standard", "expressive"])
|
|
881
1481
|
});
|
|
882
|
-
var colourHexString =
|
|
883
|
-
var paletteColorSchema =
|
|
884
|
-
name:
|
|
1482
|
+
var colourHexString = z14.string().regex(/^#([0-9A-Fa-f]{3}){1,2}$/);
|
|
1483
|
+
var paletteColorSchema = z14.object({
|
|
1484
|
+
name: z14.string().min(1),
|
|
885
1485
|
hex: colourHexString
|
|
886
1486
|
});
|
|
887
|
-
var paletteMetaSchema =
|
|
888
|
-
mode:
|
|
1487
|
+
var paletteMetaSchema = z14.object({
|
|
1488
|
+
mode: z14.enum(["light", "dark"])
|
|
889
1489
|
});
|
|
890
|
-
var paletteSchema =
|
|
891
|
-
colors:
|
|
1490
|
+
var paletteSchema = z14.object({
|
|
1491
|
+
colors: z14.array(paletteColorSchema),
|
|
892
1492
|
meta: paletteMetaSchema
|
|
893
1493
|
});
|
|
894
|
-
var typographyStyleSchema =
|
|
895
|
-
family:
|
|
896
|
-
weight:
|
|
897
|
-
letterSpacing:
|
|
898
|
-
lineHeight:
|
|
1494
|
+
var typographyStyleSchema = z14.object({
|
|
1495
|
+
family: z14.string().min(1),
|
|
1496
|
+
weight: z14.enum(["light", "regular", "medium", "semibold", "bold"]),
|
|
1497
|
+
letterSpacing: z14.enum(["tight", "normal", "loose"]),
|
|
1498
|
+
lineHeight: z14.enum(["normal", "relaxed", "loose"])
|
|
899
1499
|
});
|
|
900
1500
|
var bodyTypographyStyleSchema = typographyStyleSchema.extend({
|
|
901
|
-
size:
|
|
1501
|
+
size: z14.enum(["md", "lg", "xl"])
|
|
902
1502
|
});
|
|
903
|
-
var headingSizeSchema =
|
|
904
|
-
var headingTypographyOverridesSchema =
|
|
905
|
-
weight:
|
|
906
|
-
letterSpacing:
|
|
1503
|
+
var headingSizeSchema = z14.enum(["xs", "sm", "md", "lg", "xl", "2xl"]);
|
|
1504
|
+
var headingTypographyOverridesSchema = z14.object({
|
|
1505
|
+
weight: z14.enum(["light", "regular", "medium", "semibold", "bold"]).nullable().optional(),
|
|
1506
|
+
letterSpacing: z14.enum(["tight", "normal", "loose"]).nullable().optional(),
|
|
907
1507
|
size: headingSizeSchema.nullable().optional(),
|
|
908
|
-
lineHeight:
|
|
909
|
-
italic:
|
|
910
|
-
colorToken:
|
|
1508
|
+
lineHeight: z14.enum(["normal", "relaxed", "loose"]).nullable().optional(),
|
|
1509
|
+
italic: z14.boolean().nullable().optional(),
|
|
1510
|
+
colorToken: z14.string().min(1).nullable().optional()
|
|
911
1511
|
// Palette token name for heading color
|
|
912
1512
|
});
|
|
913
1513
|
var headingTypographyStyleSchema = typographyStyleSchema.extend({
|
|
914
|
-
case:
|
|
915
|
-
italic:
|
|
916
|
-
colorToken:
|
|
1514
|
+
case: z14.enum(["uppercase", "normal", "smallCaps"]).nullable(),
|
|
1515
|
+
italic: z14.boolean().nullable(),
|
|
1516
|
+
colorToken: z14.string().min(1).nullable().optional()
|
|
917
1517
|
// Palette token name for heading color
|
|
918
1518
|
});
|
|
919
|
-
var proseLinkUnderlineStyleSchema =
|
|
920
|
-
var proseLinkUnderlineThicknessSchema =
|
|
921
|
-
var proseLinkUnderlineOffsetSchema =
|
|
922
|
-
var proseLinkStyleSchema =
|
|
923
|
-
colorToken:
|
|
924
|
-
hoverColorToken:
|
|
925
|
-
underline:
|
|
926
|
-
decorationColorToken:
|
|
927
|
-
hoverDecorationColorToken:
|
|
1519
|
+
var proseLinkUnderlineStyleSchema = z14.enum(["solid", "dotted", "dashed"]);
|
|
1520
|
+
var proseLinkUnderlineThicknessSchema = z14.enum(["auto", "fromFont", "thin", "medium", "thick"]);
|
|
1521
|
+
var proseLinkUnderlineOffsetSchema = z14.enum(["auto", "tight", "normal", "loose"]);
|
|
1522
|
+
var proseLinkStyleSchema = z14.object({
|
|
1523
|
+
colorToken: z14.string().min(1).optional(),
|
|
1524
|
+
hoverColorToken: z14.string().min(1).optional(),
|
|
1525
|
+
underline: z14.boolean().optional(),
|
|
1526
|
+
decorationColorToken: z14.string().min(1).optional(),
|
|
1527
|
+
hoverDecorationColorToken: z14.string().min(1).optional(),
|
|
928
1528
|
underlineStyle: proseLinkUnderlineStyleSchema.optional(),
|
|
929
1529
|
underlineThickness: proseLinkUnderlineThicknessSchema.optional(),
|
|
930
1530
|
underlineOffset: proseLinkUnderlineOffsetSchema.optional()
|
|
931
1531
|
});
|
|
932
|
-
var semanticSpacingSchema =
|
|
1532
|
+
var semanticSpacingSchema = z14.enum([
|
|
933
1533
|
"none",
|
|
934
1534
|
"compact",
|
|
935
1535
|
"cozy",
|
|
@@ -937,62 +1537,62 @@ var semanticSpacingSchema = z12.enum([
|
|
|
937
1537
|
"comfortable",
|
|
938
1538
|
"spacious"
|
|
939
1539
|
]);
|
|
940
|
-
var boxRoundedSchema =
|
|
941
|
-
var boxBackgroundOverlaySchema =
|
|
942
|
-
type:
|
|
943
|
-
color:
|
|
944
|
-
gradient:
|
|
945
|
-
opacity:
|
|
1540
|
+
var boxRoundedSchema = z14.enum(["none", "sm", "md", "lg", "xl", "2xl", "full"]);
|
|
1541
|
+
var boxBackgroundOverlaySchema = z14.object({
|
|
1542
|
+
type: z14.enum(["none", "color", "gradient"]).nullable().optional(),
|
|
1543
|
+
color: z14.string().nullable().optional(),
|
|
1544
|
+
gradient: z14.string().nullable().optional(),
|
|
1545
|
+
opacity: z14.number().min(0).max(1).nullable().optional()
|
|
946
1546
|
});
|
|
947
|
-
var boxBackgroundSchema =
|
|
948
|
-
type:
|
|
949
|
-
color:
|
|
950
|
-
gradient:
|
|
1547
|
+
var boxBackgroundSchema = z14.object({
|
|
1548
|
+
type: z14.enum(["color", "gradient", "image"]).optional(),
|
|
1549
|
+
color: z14.string().nullable().optional(),
|
|
1550
|
+
gradient: z14.string().nullable().optional(),
|
|
951
1551
|
image: mediaSchema.nullable().optional(),
|
|
952
|
-
objectFit:
|
|
953
|
-
scale:
|
|
954
|
-
position:
|
|
955
|
-
opacity:
|
|
1552
|
+
objectFit: z14.enum(["fill", "fit", "original", "custom"]).nullable().optional(),
|
|
1553
|
+
scale: z14.string().nullable().optional(),
|
|
1554
|
+
position: z14.string().nullable().optional(),
|
|
1555
|
+
opacity: z14.number().min(0).max(1).nullable().optional(),
|
|
956
1556
|
overlay: boxBackgroundOverlaySchema.nullable().optional(),
|
|
957
|
-
textColor:
|
|
958
|
-
headingColor:
|
|
1557
|
+
textColor: z14.string().nullable().optional(),
|
|
1558
|
+
headingColor: z14.string().nullable().optional()
|
|
959
1559
|
});
|
|
960
|
-
var sectionStylesOverrideSchema =
|
|
1560
|
+
var sectionStylesOverrideSchema = z14.object({
|
|
961
1561
|
background: boxBackgroundSchema.nullable().optional(),
|
|
962
1562
|
spacing: semanticSpacingSchema.nullable().optional(),
|
|
963
|
-
minHeight:
|
|
1563
|
+
minHeight: z14.enum(["none", "hero", "immersive"]).nullable().optional()
|
|
964
1564
|
});
|
|
965
|
-
var containerStylesOverrideSchema =
|
|
1565
|
+
var containerStylesOverrideSchema = z14.object({
|
|
966
1566
|
background: boxBackgroundSchema.nullable().optional(),
|
|
967
1567
|
spacing: semanticSpacingSchema.nullable().optional(),
|
|
968
|
-
raised:
|
|
1568
|
+
raised: z14.boolean().nullable().optional(),
|
|
969
1569
|
rounded: boxRoundedSchema.nullable().optional(),
|
|
970
|
-
fullWidth:
|
|
1570
|
+
fullWidth: z14.boolean().nullable().optional()
|
|
971
1571
|
});
|
|
972
|
-
var cardBorderOverrideSchema =
|
|
973
|
-
enabled:
|
|
974
|
-
width:
|
|
975
|
-
colorToken:
|
|
1572
|
+
var cardBorderOverrideSchema = z14.object({
|
|
1573
|
+
enabled: z14.boolean().nullable().optional(),
|
|
1574
|
+
width: z14.enum(["none", "1", "2", "3"]).nullable().optional(),
|
|
1575
|
+
colorToken: z14.string().nullable().optional()
|
|
976
1576
|
});
|
|
977
|
-
var cardStylesOverrideSchema =
|
|
1577
|
+
var cardStylesOverrideSchema = z14.object({
|
|
978
1578
|
background: boxBackgroundSchema.nullable().optional(),
|
|
979
1579
|
border: cardBorderOverrideSchema.nullable().optional(),
|
|
980
1580
|
spacing: semanticSpacingSchema.nullable().optional(),
|
|
981
|
-
raised:
|
|
1581
|
+
raised: z14.boolean().nullable().optional(),
|
|
982
1582
|
rounded: boxRoundedSchema.nullable().optional()
|
|
983
1583
|
});
|
|
984
|
-
var blockStyleOverridesSchema =
|
|
1584
|
+
var blockStyleOverridesSchema = z14.object({
|
|
985
1585
|
sectionStyles: sectionStylesOverrideSchema.nullable().optional(),
|
|
986
1586
|
containerStyles: containerStylesOverrideSchema.nullable().optional(),
|
|
987
1587
|
cardStyles: cardStylesOverrideSchema.nullable().optional()
|
|
988
1588
|
});
|
|
989
|
-
var blockThemeOverrideSchema =
|
|
990
|
-
typography:
|
|
1589
|
+
var blockThemeOverrideSchema = z14.object({
|
|
1590
|
+
typography: z14.object({
|
|
991
1591
|
proseLinkStyle: proseLinkStyleSchema.optional()
|
|
992
1592
|
}).optional(),
|
|
993
1593
|
styles: blockStyleOverridesSchema.optional()
|
|
994
1594
|
});
|
|
995
|
-
var typographyScaleSchema =
|
|
1595
|
+
var typographyScaleSchema = z14.enum([
|
|
996
1596
|
// New intuitive names
|
|
997
1597
|
"compact",
|
|
998
1598
|
// ratio 1.2 (was minorThird)
|
|
@@ -1005,9 +1605,9 @@ var typographyScaleSchema = z12.enum([
|
|
|
1005
1605
|
"majorThird",
|
|
1006
1606
|
"perfectFourth"
|
|
1007
1607
|
]);
|
|
1008
|
-
var typographySchema =
|
|
1608
|
+
var typographySchema = z14.object({
|
|
1009
1609
|
body: bodyTypographyStyleSchema,
|
|
1010
|
-
headings:
|
|
1610
|
+
headings: z14.object({
|
|
1011
1611
|
default: headingTypographyStyleSchema,
|
|
1012
1612
|
h1: headingTypographyOverridesSchema,
|
|
1013
1613
|
h2: headingTypographyOverridesSchema,
|
|
@@ -1020,41 +1620,41 @@ var typographySchema = z12.object({
|
|
|
1020
1620
|
scale: typographyScaleSchema,
|
|
1021
1621
|
proseLinkStyle: proseLinkStyleSchema.optional()
|
|
1022
1622
|
});
|
|
1023
|
-
var spaceSchema =
|
|
1024
|
-
var corners =
|
|
1025
|
-
var shadow =
|
|
1026
|
-
elevation:
|
|
1027
|
-
softness:
|
|
1028
|
-
position:
|
|
1623
|
+
var spaceSchema = z14.enum(["comfortable", "standard", "dense"]);
|
|
1624
|
+
var corners = z14.enum(["square", "soft", "rounded", "pill"]);
|
|
1625
|
+
var shadow = z14.object({
|
|
1626
|
+
elevation: z14.enum(["none", "low", "medium", "high"]),
|
|
1627
|
+
softness: z14.enum(["crisp", "soft", "hard"]).nullable(),
|
|
1628
|
+
position: z14.enum(["bottom", "bottom-right"]).default("bottom")
|
|
1029
1629
|
});
|
|
1030
|
-
var border =
|
|
1031
|
-
width:
|
|
1032
|
-
style:
|
|
1630
|
+
var border = z14.object({
|
|
1631
|
+
width: z14.enum(["none", "hairline", "thin", "thick"]),
|
|
1632
|
+
style: z14.enum(["solid", "dashed"])
|
|
1033
1633
|
});
|
|
1034
|
-
var motion =
|
|
1035
|
-
level:
|
|
1036
|
-
easing:
|
|
1634
|
+
var motion = z14.object({
|
|
1635
|
+
level: z14.enum(["off", "low", "medium", "high"]),
|
|
1636
|
+
easing: z14.enum(["standard", "snappy", "gentle"]).nullable()
|
|
1037
1637
|
});
|
|
1038
|
-
var buttonStyle =
|
|
1638
|
+
var buttonStyle = z14.object({
|
|
1039
1639
|
shape: corners
|
|
1040
1640
|
// Used for --radius-control CSS variable
|
|
1041
1641
|
});
|
|
1042
|
-
var cardStyle =
|
|
1043
|
-
elevation:
|
|
1044
|
-
border:
|
|
1642
|
+
var cardStyle = z14.object({
|
|
1643
|
+
elevation: z14.enum(["none", "low", "medium", "high"]),
|
|
1644
|
+
border: z14.enum(["none", "subtle", "defined"]),
|
|
1045
1645
|
shape: corners,
|
|
1046
|
-
headerStyle:
|
|
1047
|
-
mediaTreatment:
|
|
1646
|
+
headerStyle: z14.enum(["plain", "accentBar", "subtleBg"]).nullable(),
|
|
1647
|
+
mediaTreatment: z14.enum(["square", "rounded", "bleed"]).nullable()
|
|
1048
1648
|
});
|
|
1049
|
-
var inputStyle =
|
|
1649
|
+
var inputStyle = z14.object({
|
|
1050
1650
|
shape: corners,
|
|
1051
|
-
border:
|
|
1052
|
-
focus:
|
|
1053
|
-
label:
|
|
1651
|
+
border: z14.enum(["subtle", "defined", "underline"]),
|
|
1652
|
+
focus: z14.enum(["glow", "ring", "underline"]),
|
|
1653
|
+
label: z14.enum(["inside", "above"])
|
|
1054
1654
|
});
|
|
1055
|
-
var headerVariant =
|
|
1056
|
-
var headerPositioning =
|
|
1057
|
-
var headerNavStyle =
|
|
1655
|
+
var headerVariant = z14.enum(["classic", "centered", "transparent", "floating", "editorial"]);
|
|
1656
|
+
var headerPositioning = z14.enum(["static", "sticky", "fixed"]);
|
|
1657
|
+
var headerNavStyle = z14.enum([
|
|
1058
1658
|
"minimal",
|
|
1059
1659
|
"underline",
|
|
1060
1660
|
"underline-grow",
|
|
@@ -1063,82 +1663,82 @@ var headerNavStyle = z12.enum([
|
|
|
1063
1663
|
"frosted",
|
|
1064
1664
|
"solid"
|
|
1065
1665
|
]);
|
|
1066
|
-
var navFontWeight =
|
|
1067
|
-
var headerMaxWidth =
|
|
1068
|
-
var headerContainerSchema =
|
|
1069
|
-
rounded:
|
|
1070
|
-
border:
|
|
1071
|
-
shadow:
|
|
1072
|
-
padding:
|
|
1073
|
-
tint:
|
|
1074
|
-
opacity:
|
|
1666
|
+
var navFontWeight = z14.enum(["regular", "medium", "semibold", "bold"]);
|
|
1667
|
+
var headerMaxWidth = z14.enum(["container", "full"]);
|
|
1668
|
+
var headerContainerSchema = z14.object({
|
|
1669
|
+
rounded: z14.enum(["none", "sm", "md", "lg", "xl", "2xl"]).default("xl"),
|
|
1670
|
+
border: z14.boolean().default(true),
|
|
1671
|
+
shadow: z14.boolean().default(true),
|
|
1672
|
+
padding: z14.enum(["sm", "md", "lg"]).default("md"),
|
|
1673
|
+
tint: z14.string().nullable().optional(),
|
|
1674
|
+
opacity: z14.number().min(0).max(1).default(0.12)
|
|
1075
1675
|
}).optional();
|
|
1076
1676
|
var headerBorderSchema = componentBorderSchema.extend({
|
|
1077
|
-
position:
|
|
1677
|
+
position: z14.enum(["bottom", "top", "both", "none"]).default("bottom")
|
|
1078
1678
|
}).optional();
|
|
1079
|
-
var logoStyleSchema =
|
|
1080
|
-
fontFamily:
|
|
1081
|
-
letterSpacing:
|
|
1082
|
-
gradient:
|
|
1679
|
+
var logoStyleSchema = z14.object({
|
|
1680
|
+
fontFamily: z14.enum(["heading", "body"]).default("heading"),
|
|
1681
|
+
letterSpacing: z14.enum(["normal", "wide", "wider", "widest"]).default("normal"),
|
|
1682
|
+
gradient: z14.boolean().default(false)
|
|
1083
1683
|
}).optional();
|
|
1084
|
-
var headerLogoTextSchema =
|
|
1085
|
-
mobileWrapLines:
|
|
1086
|
-
mobileMaxWidth:
|
|
1087
|
-
hideOnShrink:
|
|
1684
|
+
var headerLogoTextSchema = z14.object({
|
|
1685
|
+
mobileWrapLines: z14.union([z14.literal(1), z14.literal(2)]).optional(),
|
|
1686
|
+
mobileMaxWidth: z14.enum(["xs", "sm", "md"]).optional(),
|
|
1687
|
+
hideOnShrink: z14.boolean().optional()
|
|
1088
1688
|
}).optional();
|
|
1089
|
-
var navEffectsSchema =
|
|
1090
|
-
underlineGradient:
|
|
1091
|
-
glow:
|
|
1092
|
-
glowColor:
|
|
1093
|
-
neumorphic:
|
|
1689
|
+
var navEffectsSchema = z14.object({
|
|
1690
|
+
underlineGradient: z14.boolean().default(false),
|
|
1691
|
+
glow: z14.boolean().default(false),
|
|
1692
|
+
glowColor: z14.string().optional(),
|
|
1693
|
+
neumorphic: z14.boolean().default(false)
|
|
1094
1694
|
}).optional();
|
|
1095
|
-
var dropdownStyleSchema =
|
|
1695
|
+
var dropdownStyleSchema = z14.object({
|
|
1096
1696
|
// Container styling
|
|
1097
|
-
background:
|
|
1697
|
+
background: z14.string().default("surface"),
|
|
1098
1698
|
// color token
|
|
1099
|
-
textColor:
|
|
1699
|
+
textColor: z14.string().default("text"),
|
|
1100
1700
|
// color token
|
|
1101
|
-
borderColor:
|
|
1701
|
+
borderColor: z14.string().nullable().default("border"),
|
|
1102
1702
|
// null = no border
|
|
1103
|
-
shadow:
|
|
1104
|
-
borderRadius:
|
|
1703
|
+
shadow: z14.enum(["none", "sm", "md", "lg"]).default("md"),
|
|
1704
|
+
borderRadius: z14.enum(["none", "sm", "md", "lg"]).default("md"),
|
|
1105
1705
|
// Link hover states (explicit control)
|
|
1106
|
-
hoverBackground:
|
|
1706
|
+
hoverBackground: z14.string().nullable().optional(),
|
|
1107
1707
|
// color token, null = transparent
|
|
1108
|
-
hoverTextColor:
|
|
1708
|
+
hoverTextColor: z14.string().nullable().optional(),
|
|
1109
1709
|
// color token, null = inherit
|
|
1110
1710
|
// Typography
|
|
1111
|
-
textTransform:
|
|
1112
|
-
letterSpacing:
|
|
1113
|
-
fontWeight:
|
|
1711
|
+
textTransform: z14.enum(["none", "uppercase", "capitalize"]).default("none"),
|
|
1712
|
+
letterSpacing: z14.enum(["normal", "wide", "wider"]).default("normal"),
|
|
1713
|
+
fontWeight: z14.enum(["regular", "medium", "semibold", "bold"]).optional(),
|
|
1114
1714
|
// optional = inherit from navWeight
|
|
1115
|
-
textSize:
|
|
1715
|
+
textSize: z14.enum(["xs", "sm", "base", "lg"]).optional()
|
|
1116
1716
|
// optional = no override (browser default)
|
|
1117
1717
|
}).optional();
|
|
1118
|
-
var headerCtaGapSchema =
|
|
1119
|
-
var navContainerSchema =
|
|
1120
|
-
type:
|
|
1121
|
-
tint:
|
|
1122
|
-
opacity:
|
|
1718
|
+
var headerCtaGapSchema = z14.enum(["none", "tight", "compact", "default", "relaxed", "spacious"]);
|
|
1719
|
+
var navContainerSchema = z14.object({
|
|
1720
|
+
type: z14.enum(["none", "pill", "glass"]).default("none"),
|
|
1721
|
+
tint: z14.string().nullable().optional(),
|
|
1722
|
+
opacity: z14.number().min(0).max(1).default(0.15)
|
|
1123
1723
|
}).default({ type: "none", tint: null, opacity: 0.15 });
|
|
1124
|
-
var headerBackgroundSchema =
|
|
1125
|
-
type:
|
|
1126
|
-
color:
|
|
1724
|
+
var headerBackgroundSchema = z14.object({
|
|
1725
|
+
type: z14.enum(["color", "gradient", "image"]),
|
|
1726
|
+
color: z14.string().nullable().optional(),
|
|
1127
1727
|
gradient: gradientConfigSchema.nullable().optional(),
|
|
1128
1728
|
image: mediaSchema.nullable().optional(),
|
|
1129
|
-
textColor:
|
|
1729
|
+
textColor: z14.string().nullable().optional()
|
|
1130
1730
|
});
|
|
1131
|
-
var headerSchema =
|
|
1731
|
+
var headerSchema = z14.object({
|
|
1132
1732
|
variant: headerVariant,
|
|
1133
1733
|
positioning: headerPositioning,
|
|
1134
|
-
shrinkOnScroll:
|
|
1734
|
+
shrinkOnScroll: z14.boolean(),
|
|
1135
1735
|
maxWidth: headerMaxWidth,
|
|
1136
1736
|
logoOverride: mediaSchema.nullable().optional(),
|
|
1137
1737
|
background: headerBackgroundSchema.default({ type: "color", color: "surface" }),
|
|
1138
|
-
textColor:
|
|
1738
|
+
textColor: z14.string().nullable().optional(),
|
|
1139
1739
|
// Site title and general header text
|
|
1140
1740
|
navStyle: headerNavStyle,
|
|
1141
|
-
navColor:
|
|
1741
|
+
navColor: z14.string().nullable().optional(),
|
|
1142
1742
|
// Nav links (inherits textColor if not set)
|
|
1143
1743
|
navWeight: navFontWeight.default("medium"),
|
|
1144
1744
|
// New fields for header system enhancement
|
|
@@ -1157,50 +1757,50 @@ var headerSchema = z12.object({
|
|
|
1157
1757
|
// Dropdown menu styling (nav dropdowns and mobile drawer)
|
|
1158
1758
|
dropdownStyle: dropdownStyleSchema
|
|
1159
1759
|
});
|
|
1160
|
-
var footerVariant =
|
|
1161
|
-
var footerMaxWidth =
|
|
1162
|
-
var footerMode =
|
|
1163
|
-
var footerNavLayoutMode =
|
|
1164
|
-
var footerNavLayoutAlign =
|
|
1165
|
-
var footerSpacing =
|
|
1166
|
-
var footerLogoPlacement =
|
|
1167
|
-
var footerLogoSize =
|
|
1168
|
-
var footerLogoMaxHeight =
|
|
1169
|
-
var footerBottomTextLinkStyleSchema =
|
|
1170
|
-
colorToken:
|
|
1171
|
-
hoverColorToken:
|
|
1172
|
-
decorationColorToken:
|
|
1173
|
-
underline:
|
|
1760
|
+
var footerVariant = z14.enum(["simple", "columns", "split"]);
|
|
1761
|
+
var footerMaxWidth = z14.enum(["container", "full"]);
|
|
1762
|
+
var footerMode = z14.enum(["default", "blocks", "default+blocks", "none"]);
|
|
1763
|
+
var footerNavLayoutMode = z14.enum(["stack", "inline", "inline-wrap"]);
|
|
1764
|
+
var footerNavLayoutAlign = z14.enum(["start", "center", "end", "space-between"]);
|
|
1765
|
+
var footerSpacing = z14.enum(["none", "tight", "compact", "default", "relaxed", "spacious"]);
|
|
1766
|
+
var footerLogoPlacement = z14.enum(["left", "right", "above", "below"]);
|
|
1767
|
+
var footerLogoSize = z14.enum(["sm", "md", "lg", "xl"]);
|
|
1768
|
+
var footerLogoMaxHeight = z14.enum(["sm", "md", "lg", "xl"]);
|
|
1769
|
+
var footerBottomTextLinkStyleSchema = z14.object({
|
|
1770
|
+
colorToken: z14.string().optional(),
|
|
1771
|
+
hoverColorToken: z14.string().nullable().optional(),
|
|
1772
|
+
decorationColorToken: z14.string().nullable().optional(),
|
|
1773
|
+
underline: z14.boolean().optional()
|
|
1174
1774
|
});
|
|
1175
|
-
var footerBottomBarSchema =
|
|
1176
|
-
enabled:
|
|
1177
|
-
fullBleed:
|
|
1775
|
+
var footerBottomBarSchema = z14.object({
|
|
1776
|
+
enabled: z14.boolean().optional(),
|
|
1777
|
+
fullBleed: z14.boolean().optional(),
|
|
1178
1778
|
background: headerBackgroundSchema.optional(),
|
|
1179
|
-
textColor:
|
|
1180
|
-
textAlign:
|
|
1779
|
+
textColor: z14.string().nullable().optional(),
|
|
1780
|
+
textAlign: z14.enum(["left", "center", "right"]).optional(),
|
|
1181
1781
|
paddingY: footerSpacing.optional(),
|
|
1182
1782
|
paddingX: footerSpacing.optional(),
|
|
1183
|
-
borderTop:
|
|
1184
|
-
colorToken:
|
|
1185
|
-
width:
|
|
1783
|
+
borderTop: z14.object({
|
|
1784
|
+
colorToken: z14.string().nullable().optional(),
|
|
1785
|
+
width: z14.enum(["none", "thin", "medium", "thick"]).optional()
|
|
1186
1786
|
}).optional()
|
|
1187
1787
|
});
|
|
1188
|
-
var footerNavLayoutSchema =
|
|
1788
|
+
var footerNavLayoutSchema = z14.object({
|
|
1189
1789
|
layout: footerNavLayoutMode.optional(),
|
|
1190
1790
|
align: footerNavLayoutAlign.optional(),
|
|
1191
1791
|
gapX: footerSpacing.optional(),
|
|
1192
1792
|
gapY: footerSpacing.optional(),
|
|
1193
|
-
columns:
|
|
1793
|
+
columns: z14.number().int().min(1).max(6).optional()
|
|
1194
1794
|
});
|
|
1195
|
-
var footerLogoSchema =
|
|
1196
|
-
showLogo:
|
|
1197
|
-
showLogoText:
|
|
1795
|
+
var footerLogoSchema = z14.object({
|
|
1796
|
+
showLogo: z14.boolean().default(true),
|
|
1797
|
+
showLogoText: z14.boolean().optional(),
|
|
1198
1798
|
placement: footerLogoPlacement.optional(),
|
|
1199
1799
|
size: footerLogoSize.optional(),
|
|
1200
1800
|
maxHeight: footerLogoMaxHeight.optional(),
|
|
1201
|
-
align:
|
|
1801
|
+
align: z14.enum(["start", "center", "end"]).optional()
|
|
1202
1802
|
});
|
|
1203
|
-
var footerSchema =
|
|
1803
|
+
var footerSchema = z14.object({
|
|
1204
1804
|
/**
|
|
1205
1805
|
* SDK-only footer rendering mode.
|
|
1206
1806
|
*
|
|
@@ -1209,11 +1809,11 @@ var footerSchema = z12.object({
|
|
|
1209
1809
|
mode: footerMode.optional(),
|
|
1210
1810
|
variant: footerVariant,
|
|
1211
1811
|
maxWidth: footerMaxWidth,
|
|
1212
|
-
showLogoText:
|
|
1812
|
+
showLogoText: z14.boolean().optional(),
|
|
1213
1813
|
background: headerBackgroundSchema.default({ type: "color", color: "surface" }),
|
|
1214
1814
|
// Footer nav styling (independent from header)
|
|
1215
1815
|
navStyle: headerNavStyle.default("minimal"),
|
|
1216
|
-
navColor:
|
|
1816
|
+
navColor: z14.string().nullable().optional(),
|
|
1217
1817
|
navWeight: navFontWeight.default("medium"),
|
|
1218
1818
|
// Full nav link customization (overrides navStyle if set)
|
|
1219
1819
|
navLinkStyle: navLinkStyleSchema.optional(),
|
|
@@ -1224,15 +1824,15 @@ var footerSchema = z12.object({
|
|
|
1224
1824
|
logo: footerLogoSchema.optional(),
|
|
1225
1825
|
bottomBar: footerBottomBarSchema.optional()
|
|
1226
1826
|
});
|
|
1227
|
-
var containerPaddingPresetSchema =
|
|
1228
|
-
var layoutSchema =
|
|
1229
|
-
containerPadding:
|
|
1827
|
+
var containerPaddingPresetSchema = z14.enum(["tight", "compact", "default", "relaxed"]);
|
|
1828
|
+
var layoutSchema = z14.object({
|
|
1829
|
+
containerPadding: z14.object({
|
|
1230
1830
|
mobile: containerPaddingPresetSchema.optional(),
|
|
1231
1831
|
tablet: containerPaddingPresetSchema.optional(),
|
|
1232
1832
|
desktop: containerPaddingPresetSchema.optional()
|
|
1233
1833
|
}).optional()
|
|
1234
1834
|
}).optional();
|
|
1235
|
-
var heroTypographySizeSchema =
|
|
1835
|
+
var heroTypographySizeSchema = z14.enum([
|
|
1236
1836
|
"sm",
|
|
1237
1837
|
"base",
|
|
1238
1838
|
"lg",
|
|
@@ -1243,14 +1843,14 @@ var heroTypographySizeSchema = z12.enum([
|
|
|
1243
1843
|
"5xl",
|
|
1244
1844
|
"6xl"
|
|
1245
1845
|
]);
|
|
1246
|
-
var heroTypographyLineHeightSchema =
|
|
1247
|
-
var heroResponsiveTypographySchema =
|
|
1846
|
+
var heroTypographyLineHeightSchema = z14.enum(["tight", "snug", "normal", "relaxed"]);
|
|
1847
|
+
var heroResponsiveTypographySchema = z14.object({
|
|
1248
1848
|
headlineSize: heroTypographySizeSchema.optional(),
|
|
1249
1849
|
headlineLineHeight: heroTypographyLineHeightSchema.optional(),
|
|
1250
1850
|
subheadlineSize: heroTypographySizeSchema.optional(),
|
|
1251
1851
|
subheadlineLineHeight: heroTypographyLineHeightSchema.optional()
|
|
1252
1852
|
});
|
|
1253
|
-
var heroTypographySchema =
|
|
1853
|
+
var heroTypographySchema = z14.object({
|
|
1254
1854
|
headlineSize: heroTypographySizeSchema.optional(),
|
|
1255
1855
|
headlineLineHeight: heroTypographyLineHeightSchema.optional(),
|
|
1256
1856
|
subheadlineSize: heroTypographySizeSchema.optional(),
|
|
@@ -1259,24 +1859,24 @@ var heroTypographySchema = z12.object({
|
|
|
1259
1859
|
microHeadlineLineHeight: heroTypographyLineHeightSchema.optional(),
|
|
1260
1860
|
microSubheadlineSize: heroTypographySizeSchema.optional(),
|
|
1261
1861
|
microSubheadlineLineHeight: heroTypographyLineHeightSchema.optional(),
|
|
1262
|
-
responsive:
|
|
1862
|
+
responsive: z14.object({
|
|
1263
1863
|
tablet: heroResponsiveTypographySchema.optional(),
|
|
1264
1864
|
mobile: heroResponsiveTypographySchema.optional()
|
|
1265
1865
|
}).optional()
|
|
1266
1866
|
});
|
|
1267
|
-
var heroSchema =
|
|
1867
|
+
var heroSchema = z14.object({
|
|
1268
1868
|
typography: heroTypographySchema.optional()
|
|
1269
1869
|
}).optional();
|
|
1270
|
-
var gradientsSchema =
|
|
1271
|
-
button:
|
|
1272
|
-
hero:
|
|
1273
|
-
background:
|
|
1870
|
+
var gradientsSchema = z14.object({
|
|
1871
|
+
button: z14.string().min(1).nullable().optional(),
|
|
1872
|
+
hero: z14.string().min(1).nullable().optional(),
|
|
1873
|
+
background: z14.string().min(1).nullable().optional()
|
|
1274
1874
|
});
|
|
1275
|
-
var themeSchema =
|
|
1276
|
-
name:
|
|
1277
|
-
description:
|
|
1278
|
-
rationale:
|
|
1279
|
-
siteStyleId:
|
|
1875
|
+
var themeSchema = z14.object({
|
|
1876
|
+
name: z14.string().min(1).max(30),
|
|
1877
|
+
description: z14.string().min(1).max(400),
|
|
1878
|
+
rationale: z14.string().min(1).max(400),
|
|
1879
|
+
siteStyleId: z14.string().min(1).transform((value) => asSiteStyleId(value)).optional(),
|
|
1280
1880
|
axes: axesSchema,
|
|
1281
1881
|
palette: paletteSchema,
|
|
1282
1882
|
typography: typographySchema,
|
|
@@ -1303,16 +1903,16 @@ var themeSchema = z12.object({
|
|
|
1303
1903
|
// Block-specific customization (Tier 3)
|
|
1304
1904
|
// blockCustomVars: Per-block CSS variable overrides as bare values
|
|
1305
1905
|
// Example: { "event-registration": { "--step-color": "#6d28d9" } }
|
|
1306
|
-
blockCustomVars:
|
|
1307
|
-
|
|
1906
|
+
blockCustomVars: z14.record(
|
|
1907
|
+
z14.string(),
|
|
1308
1908
|
// block kind (matches data-block attribute)
|
|
1309
|
-
|
|
1909
|
+
z14.record(z14.string(), z14.string())
|
|
1310
1910
|
// { '--var-name': 'value' }
|
|
1311
1911
|
).optional(),
|
|
1312
1912
|
// Structured block-kind theme overrides (v1: typography prose-link style only)
|
|
1313
1913
|
// Keyed by block kind (usually data-block value like "hero"; "block.hero" also accepted)
|
|
1314
|
-
blockOverrides:
|
|
1315
|
-
|
|
1914
|
+
blockOverrides: z14.record(
|
|
1915
|
+
z14.string(),
|
|
1316
1916
|
blockThemeOverrideSchema
|
|
1317
1917
|
).optional(),
|
|
1318
1918
|
// Structured custom CSS rules
|
|
@@ -1348,13 +1948,371 @@ var themeSchema = z12.object({
|
|
|
1348
1948
|
* }
|
|
1349
1949
|
* ```
|
|
1350
1950
|
*/
|
|
1351
|
-
styleGroups:
|
|
1951
|
+
styleGroups: z14.record(z14.string(), z14.array(z14.string())).optional()
|
|
1952
|
+
});
|
|
1953
|
+
var themesTurnSchema = z14.object({
|
|
1954
|
+
message: z14.string().min(1),
|
|
1955
|
+
themes: z14.array(themeSchema).length(3)
|
|
1956
|
+
});
|
|
1957
|
+
|
|
1958
|
+
// ../theme-core/src/palette/variants/types.ts
|
|
1959
|
+
function asPaletteVariantId(value) {
|
|
1960
|
+
if (value.length === 0) {
|
|
1961
|
+
throw new Error("PaletteVariantId must be a non-empty string");
|
|
1962
|
+
}
|
|
1963
|
+
return value;
|
|
1964
|
+
}
|
|
1965
|
+
var paletteVariantIdSchema = z15.string().min(1).transform((value) => asPaletteVariantId(value));
|
|
1966
|
+
var PALETTE_TOKEN_NAMES = [
|
|
1967
|
+
"primary",
|
|
1968
|
+
"primaryForeground",
|
|
1969
|
+
"secondary",
|
|
1970
|
+
"accent",
|
|
1971
|
+
"success",
|
|
1972
|
+
"warning",
|
|
1973
|
+
"destructive",
|
|
1974
|
+
"background",
|
|
1975
|
+
"surface",
|
|
1976
|
+
"surfaceAlt",
|
|
1977
|
+
"muted",
|
|
1978
|
+
"text",
|
|
1979
|
+
"border"
|
|
1980
|
+
];
|
|
1981
|
+
var paletteTokenNameSchema = z15.enum(PALETTE_TOKEN_NAMES);
|
|
1982
|
+
var HEX_COLOR_REGEX = /^#[0-9a-f]{6}$/;
|
|
1983
|
+
var hexColorSchema = z15.string().regex(HEX_COLOR_REGEX, "Hex must be #RRGGBB (lowercase)").transform((value) => value);
|
|
1984
|
+
var variantPaletteColorSchema = paletteColorSchema.extend({
|
|
1985
|
+
name: paletteTokenNameSchema
|
|
1986
|
+
});
|
|
1987
|
+
var paletteVariantSchema = z15.object({
|
|
1988
|
+
id: paletteVariantIdSchema,
|
|
1989
|
+
name: z15.string().min(1),
|
|
1990
|
+
description: z15.string().min(1),
|
|
1991
|
+
tags: styleTagsSchema,
|
|
1992
|
+
mode: z15.enum(["light", "dark"]),
|
|
1993
|
+
colors: z15.array(variantPaletteColorSchema).min(1)
|
|
1994
|
+
});
|
|
1995
|
+
function definePaletteVariant(input) {
|
|
1996
|
+
return {
|
|
1997
|
+
id: asPaletteVariantId(input.id),
|
|
1998
|
+
name: input.name,
|
|
1999
|
+
description: input.description,
|
|
2000
|
+
tags: input.tags,
|
|
2001
|
+
mode: input.mode,
|
|
2002
|
+
colors: input.colors
|
|
2003
|
+
};
|
|
2004
|
+
}
|
|
2005
|
+
var paletteOverridesSchema = z15.object({
|
|
2006
|
+
primary: hexColorSchema.optional(),
|
|
2007
|
+
primaryForeground: hexColorSchema.optional(),
|
|
2008
|
+
secondary: hexColorSchema.optional(),
|
|
2009
|
+
accent: hexColorSchema.optional(),
|
|
2010
|
+
success: hexColorSchema.optional(),
|
|
2011
|
+
warning: hexColorSchema.optional(),
|
|
2012
|
+
destructive: hexColorSchema.optional(),
|
|
2013
|
+
background: hexColorSchema.optional(),
|
|
2014
|
+
surface: hexColorSchema.optional(),
|
|
2015
|
+
surfaceAlt: hexColorSchema.optional(),
|
|
2016
|
+
muted: hexColorSchema.optional(),
|
|
2017
|
+
text: hexColorSchema.optional(),
|
|
2018
|
+
border: hexColorSchema.optional()
|
|
2019
|
+
}).strict().transform((value) => value);
|
|
2020
|
+
|
|
2021
|
+
// ../theme-core/src/palette/variants/brand-led.ts
|
|
2022
|
+
var brandLedCool = definePaletteVariant({
|
|
2023
|
+
id: "brand-led-cool",
|
|
2024
|
+
name: "Brand-led \u2014 Cool",
|
|
2025
|
+
description: "Confident blue primary with slate neutrals.",
|
|
2026
|
+
tags: { tone: "classic", energy: "calm", era: "modern" },
|
|
2027
|
+
mode: "light",
|
|
2028
|
+
colors: [
|
|
2029
|
+
{ name: "primary", hex: "#2563eb" },
|
|
2030
|
+
{ name: "secondary", hex: "#64748b" },
|
|
2031
|
+
{ name: "accent", hex: "#0f766e" },
|
|
2032
|
+
{ name: "success", hex: "#16a34a" },
|
|
2033
|
+
{ name: "warning", hex: "#d97706" },
|
|
2034
|
+
{ name: "destructive", hex: "#dc2626" },
|
|
2035
|
+
{ name: "background", hex: "#ffffff" },
|
|
2036
|
+
{ name: "surface", hex: "#ffffff" },
|
|
2037
|
+
{ name: "surfaceAlt", hex: "#f8fafc" },
|
|
2038
|
+
{ name: "muted", hex: "#f1f5f9" },
|
|
2039
|
+
{ name: "text", hex: "#0f172a" },
|
|
2040
|
+
{ name: "primaryForeground", hex: "#ffffff" },
|
|
2041
|
+
{ name: "border", hex: "#cbd5e1" }
|
|
2042
|
+
]
|
|
2043
|
+
});
|
|
2044
|
+
var brandLedWarm = definePaletteVariant({
|
|
2045
|
+
id: "brand-led-warm",
|
|
2046
|
+
name: "Brand-led \u2014 Warm",
|
|
2047
|
+
description: "Sunset orange primary with warm grey neutrals.",
|
|
2048
|
+
tags: { tone: "classic", energy: "vibrant", era: "modern" },
|
|
2049
|
+
mode: "light",
|
|
2050
|
+
colors: [
|
|
2051
|
+
{ name: "primary", hex: "#ea580c" },
|
|
2052
|
+
{ name: "secondary", hex: "#78716c" },
|
|
2053
|
+
{ name: "accent", hex: "#a16207" },
|
|
2054
|
+
{ name: "success", hex: "#16a34a" },
|
|
2055
|
+
{ name: "warning", hex: "#d97706" },
|
|
2056
|
+
{ name: "destructive", hex: "#b91c1c" },
|
|
2057
|
+
{ name: "background", hex: "#fffaf3" },
|
|
2058
|
+
{ name: "surface", hex: "#ffffff" },
|
|
2059
|
+
{ name: "surfaceAlt", hex: "#fbeee0" },
|
|
2060
|
+
{ name: "muted", hex: "#f4e2cd" },
|
|
2061
|
+
{ name: "text", hex: "#1c1917" },
|
|
2062
|
+
{ name: "primaryForeground", hex: "#fffaf3" },
|
|
2063
|
+
{ name: "border", hex: "#d6c4ad" }
|
|
2064
|
+
]
|
|
2065
|
+
});
|
|
2066
|
+
var brandLedJewel = definePaletteVariant({
|
|
2067
|
+
id: "brand-led-jewel",
|
|
2068
|
+
name: "Brand-led \u2014 Jewel",
|
|
2069
|
+
description: "Deep emerald primary with rich neutrals.",
|
|
2070
|
+
tags: { tone: "bold", energy: "vibrant", era: "modern" },
|
|
2071
|
+
mode: "light",
|
|
2072
|
+
colors: [
|
|
2073
|
+
{ name: "primary", hex: "#047857" },
|
|
2074
|
+
{ name: "secondary", hex: "#4b5563" },
|
|
2075
|
+
{ name: "accent", hex: "#7c3aed" },
|
|
2076
|
+
{ name: "success", hex: "#15803d" },
|
|
2077
|
+
{ name: "warning", hex: "#b45309" },
|
|
2078
|
+
{ name: "destructive", hex: "#b91c1c" },
|
|
2079
|
+
{ name: "background", hex: "#ffffff" },
|
|
2080
|
+
{ name: "surface", hex: "#ffffff" },
|
|
2081
|
+
{ name: "surfaceAlt", hex: "#f5f5f4" },
|
|
2082
|
+
{ name: "muted", hex: "#e7e5e4" },
|
|
2083
|
+
{ name: "text", hex: "#0c0a09" },
|
|
2084
|
+
{ name: "primaryForeground", hex: "#ffffff" },
|
|
2085
|
+
{ name: "border", hex: "#a8a29e" }
|
|
2086
|
+
]
|
|
2087
|
+
});
|
|
2088
|
+
|
|
2089
|
+
// ../theme-core/src/palette/variants/high-contrast.ts
|
|
2090
|
+
var highContrastInk = definePaletteVariant({
|
|
2091
|
+
id: "high-contrast-ink",
|
|
2092
|
+
name: "High Contrast \u2014 Ink",
|
|
2093
|
+
description: "Near-black primary with cool greys.",
|
|
2094
|
+
tags: { tone: "bold", energy: "calm", era: "editorial" },
|
|
2095
|
+
mode: "light",
|
|
2096
|
+
colors: [
|
|
2097
|
+
{ name: "primary", hex: "#111827" },
|
|
2098
|
+
{ name: "secondary", hex: "#374151" },
|
|
2099
|
+
{ name: "accent", hex: "#1d4ed8" },
|
|
2100
|
+
{ name: "success", hex: "#047857" },
|
|
2101
|
+
{ name: "warning", hex: "#b45309" },
|
|
2102
|
+
{ name: "destructive", hex: "#b91c1c" },
|
|
2103
|
+
{ name: "background", hex: "#ffffff" },
|
|
2104
|
+
{ name: "surface", hex: "#ffffff" },
|
|
2105
|
+
{ name: "surfaceAlt", hex: "#f3f4f6" },
|
|
2106
|
+
{ name: "muted", hex: "#e5e7eb" },
|
|
2107
|
+
{ name: "text", hex: "#030712" },
|
|
2108
|
+
{ name: "primaryForeground", hex: "#ffffff" },
|
|
2109
|
+
{ name: "border", hex: "#6b7280" }
|
|
2110
|
+
]
|
|
2111
|
+
});
|
|
2112
|
+
var highContrastCharcoal = definePaletteVariant({
|
|
2113
|
+
id: "high-contrast-charcoal",
|
|
2114
|
+
name: "High Contrast \u2014 Charcoal",
|
|
2115
|
+
description: "Warm charcoal primary on a soft cream ground.",
|
|
2116
|
+
tags: { tone: "minimal", energy: "calm", era: "editorial" },
|
|
2117
|
+
mode: "light",
|
|
2118
|
+
colors: [
|
|
2119
|
+
{ name: "primary", hex: "#1f2937" },
|
|
2120
|
+
{ name: "secondary", hex: "#52525b" },
|
|
2121
|
+
{ name: "accent", hex: "#a16207" },
|
|
2122
|
+
{ name: "success", hex: "#15803d" },
|
|
2123
|
+
{ name: "warning", hex: "#b45309" },
|
|
2124
|
+
{ name: "destructive", hex: "#991b1b" },
|
|
2125
|
+
{ name: "background", hex: "#fafaf9" },
|
|
2126
|
+
{ name: "surface", hex: "#ffffff" },
|
|
2127
|
+
{ name: "surfaceAlt", hex: "#f5f5f4" },
|
|
2128
|
+
{ name: "muted", hex: "#e7e5e4" },
|
|
2129
|
+
{ name: "text", hex: "#0c0a09" },
|
|
2130
|
+
{ name: "primaryForeground", hex: "#fafaf9" },
|
|
2131
|
+
{ name: "border", hex: "#a8a29e" }
|
|
2132
|
+
]
|
|
1352
2133
|
});
|
|
1353
|
-
var
|
|
1354
|
-
|
|
1355
|
-
|
|
2134
|
+
var highContrastMonochrome = definePaletteVariant({
|
|
2135
|
+
id: "high-contrast-monochrome",
|
|
2136
|
+
name: "High Contrast \u2014 Monochrome",
|
|
2137
|
+
description: "Pure black-on-white with a single saturated accent.",
|
|
2138
|
+
tags: { tone: "bold", energy: "vibrant", era: "editorial" },
|
|
2139
|
+
mode: "light",
|
|
2140
|
+
colors: [
|
|
2141
|
+
{ name: "primary", hex: "#000000" },
|
|
2142
|
+
{ name: "secondary", hex: "#404040" },
|
|
2143
|
+
{ name: "accent", hex: "#dc2626" },
|
|
2144
|
+
{ name: "success", hex: "#000000" },
|
|
2145
|
+
{ name: "warning", hex: "#000000" },
|
|
2146
|
+
{ name: "destructive", hex: "#dc2626" },
|
|
2147
|
+
{ name: "background", hex: "#ffffff" },
|
|
2148
|
+
{ name: "surface", hex: "#ffffff" },
|
|
2149
|
+
{ name: "surfaceAlt", hex: "#f5f5f5" },
|
|
2150
|
+
{ name: "muted", hex: "#e5e5e5" },
|
|
2151
|
+
{ name: "text", hex: "#000000" },
|
|
2152
|
+
{ name: "primaryForeground", hex: "#ffffff" },
|
|
2153
|
+
{ name: "border", hex: "#525252" }
|
|
2154
|
+
]
|
|
1356
2155
|
});
|
|
1357
2156
|
|
|
2157
|
+
// ../theme-core/src/palette/variants/soft-natural.ts
|
|
2158
|
+
var softNaturalSage = definePaletteVariant({
|
|
2159
|
+
id: "soft-natural-sage",
|
|
2160
|
+
name: "Soft Natural \u2014 Sage",
|
|
2161
|
+
description: "Olive sage primary on an off-white ground.",
|
|
2162
|
+
tags: { tone: "classic", energy: "calm", era: "organic" },
|
|
2163
|
+
mode: "light",
|
|
2164
|
+
colors: [
|
|
2165
|
+
{ name: "primary", hex: "#3f6212" },
|
|
2166
|
+
{ name: "secondary", hex: "#6b7280" },
|
|
2167
|
+
{ name: "accent", hex: "#0f766e" },
|
|
2168
|
+
{ name: "success", hex: "#15803d" },
|
|
2169
|
+
{ name: "warning", hex: "#a16207" },
|
|
2170
|
+
{ name: "destructive", hex: "#b91c1c" },
|
|
2171
|
+
{ name: "background", hex: "#fbfdf7" },
|
|
2172
|
+
{ name: "surface", hex: "#ffffff" },
|
|
2173
|
+
{ name: "surfaceAlt", hex: "#eef5e8" },
|
|
2174
|
+
{ name: "muted", hex: "#e7efdf" },
|
|
2175
|
+
{ name: "text", hex: "#1f2a1d" },
|
|
2176
|
+
{ name: "primaryForeground", hex: "#ffffff" },
|
|
2177
|
+
{ name: "border", hex: "#cbd8c0" }
|
|
2178
|
+
]
|
|
2179
|
+
});
|
|
2180
|
+
var softNaturalStone = definePaletteVariant({
|
|
2181
|
+
id: "soft-natural-stone",
|
|
2182
|
+
name: "Soft Natural \u2014 Stone",
|
|
2183
|
+
description: "River-stone grey-green primary with cool neutrals.",
|
|
2184
|
+
tags: { tone: "minimal", energy: "calm", era: "organic" },
|
|
2185
|
+
mode: "light",
|
|
2186
|
+
colors: [
|
|
2187
|
+
{ name: "primary", hex: "#5a7a5d" },
|
|
2188
|
+
{ name: "secondary", hex: "#8a9a8c" },
|
|
2189
|
+
{ name: "accent", hex: "#c9b88f" },
|
|
2190
|
+
{ name: "success", hex: "#5a7a5d" },
|
|
2191
|
+
{ name: "warning", hex: "#a89466" },
|
|
2192
|
+
{ name: "destructive", hex: "#a3503e" },
|
|
2193
|
+
{ name: "background", hex: "#faf6ec" },
|
|
2194
|
+
{ name: "surface", hex: "#ffffff" },
|
|
2195
|
+
{ name: "surfaceAlt", hex: "#f0ecdf" },
|
|
2196
|
+
{ name: "muted", hex: "#e6e1d0" },
|
|
2197
|
+
{ name: "text", hex: "#2f3d31" },
|
|
2198
|
+
{ name: "primaryForeground", hex: "#faf6ec" },
|
|
2199
|
+
{ name: "border", hex: "#c9c1ad" }
|
|
2200
|
+
]
|
|
2201
|
+
});
|
|
2202
|
+
var softNaturalWatercolor = definePaletteVariant({
|
|
2203
|
+
id: "soft-natural-watercolor",
|
|
2204
|
+
name: "Soft Natural \u2014 Watercolor",
|
|
2205
|
+
description: "Soft sand primary with watercolour sage accents.",
|
|
2206
|
+
tags: { tone: "classic", energy: "vibrant", era: "organic" },
|
|
2207
|
+
mode: "light",
|
|
2208
|
+
colors: [
|
|
2209
|
+
{ name: "primary", hex: "#a8825f" },
|
|
2210
|
+
{ name: "secondary", hex: "#88a888" },
|
|
2211
|
+
{ name: "accent", hex: "#c8a78e" },
|
|
2212
|
+
{ name: "success", hex: "#7d8a5f" },
|
|
2213
|
+
{ name: "warning", hex: "#c89a4d" },
|
|
2214
|
+
{ name: "destructive", hex: "#a3503e" },
|
|
2215
|
+
{ name: "background", hex: "#fefdfa" },
|
|
2216
|
+
{ name: "surface", hex: "#ffffff" },
|
|
2217
|
+
{ name: "surfaceAlt", hex: "#f6f1e6" },
|
|
2218
|
+
{ name: "muted", hex: "#eee7d1" },
|
|
2219
|
+
{ name: "text", hex: "#4a3d30" },
|
|
2220
|
+
{ name: "primaryForeground", hex: "#fefdfa" },
|
|
2221
|
+
{ name: "border", hex: "#d8c9a8" }
|
|
2222
|
+
]
|
|
2223
|
+
});
|
|
2224
|
+
|
|
2225
|
+
// ../theme-core/src/palette/variants/warm-neutral.ts
|
|
2226
|
+
var warmNeutralClay = definePaletteVariant({
|
|
2227
|
+
id: "warm-neutral-clay",
|
|
2228
|
+
name: "Warm Neutral \u2014 Clay",
|
|
2229
|
+
description: "Terracotta primary on a cream ground.",
|
|
2230
|
+
tags: { tone: "classic", energy: "calm", era: "organic" },
|
|
2231
|
+
mode: "light",
|
|
2232
|
+
colors: [
|
|
2233
|
+
{ name: "primary", hex: "#8b5e34" },
|
|
2234
|
+
{ name: "secondary", hex: "#7c6f64" },
|
|
2235
|
+
{ name: "accent", hex: "#a15c38" },
|
|
2236
|
+
{ name: "success", hex: "#527853" },
|
|
2237
|
+
{ name: "warning", hex: "#b7791f" },
|
|
2238
|
+
{ name: "destructive", hex: "#b91c1c" },
|
|
2239
|
+
{ name: "background", hex: "#fffaf3" },
|
|
2240
|
+
{ name: "surface", hex: "#ffffff" },
|
|
2241
|
+
{ name: "surfaceAlt", hex: "#f5eadc" },
|
|
2242
|
+
{ name: "muted", hex: "#efe2d0" },
|
|
2243
|
+
{ name: "text", hex: "#2f241c" },
|
|
2244
|
+
{ name: "primaryForeground", hex: "#fffaf3" },
|
|
2245
|
+
{ name: "border", hex: "#d8c6b3" }
|
|
2246
|
+
]
|
|
2247
|
+
});
|
|
2248
|
+
var warmNeutralCream = definePaletteVariant({
|
|
2249
|
+
id: "warm-neutral-cream",
|
|
2250
|
+
name: "Warm Neutral \u2014 Cream",
|
|
2251
|
+
description: "Soft sand primary with pale cream surfaces.",
|
|
2252
|
+
tags: { tone: "minimal", energy: "calm", era: "organic" },
|
|
2253
|
+
mode: "light",
|
|
2254
|
+
colors: [
|
|
2255
|
+
{ name: "primary", hex: "#b08864" },
|
|
2256
|
+
{ name: "secondary", hex: "#9a8c7e" },
|
|
2257
|
+
{ name: "accent", hex: "#c2956a" },
|
|
2258
|
+
{ name: "success", hex: "#7d8a5f" },
|
|
2259
|
+
{ name: "warning", hex: "#c89a4d" },
|
|
2260
|
+
{ name: "destructive", hex: "#a3503e" },
|
|
2261
|
+
{ name: "background", hex: "#fdf8ee" },
|
|
2262
|
+
{ name: "surface", hex: "#ffffff" },
|
|
2263
|
+
{ name: "surfaceAlt", hex: "#f4ebd9" },
|
|
2264
|
+
{ name: "muted", hex: "#ede3cf" },
|
|
2265
|
+
{ name: "text", hex: "#3b2f24" },
|
|
2266
|
+
{ name: "primaryForeground", hex: "#fdf8ee" },
|
|
2267
|
+
{ name: "border", hex: "#e0d2b8" }
|
|
2268
|
+
]
|
|
2269
|
+
});
|
|
2270
|
+
var warmNeutralForest = definePaletteVariant({
|
|
2271
|
+
id: "warm-neutral-forest",
|
|
2272
|
+
name: "Warm Neutral \u2014 Forest",
|
|
2273
|
+
description: "Deep forest green primary with earthy neutrals.",
|
|
2274
|
+
tags: { tone: "classic", energy: "calm", era: "organic" },
|
|
2275
|
+
mode: "light",
|
|
2276
|
+
colors: [
|
|
2277
|
+
{ name: "primary", hex: "#3d5840" },
|
|
2278
|
+
{ name: "secondary", hex: "#7a6f5d" },
|
|
2279
|
+
{ name: "accent", hex: "#b06b50" },
|
|
2280
|
+
{ name: "success", hex: "#5a7a5d" },
|
|
2281
|
+
{ name: "warning", hex: "#b7791f" },
|
|
2282
|
+
{ name: "destructive", hex: "#b91c1c" },
|
|
2283
|
+
{ name: "background", hex: "#fbf8f0" },
|
|
2284
|
+
{ name: "surface", hex: "#ffffff" },
|
|
2285
|
+
{ name: "surfaceAlt", hex: "#f2ecdb" },
|
|
2286
|
+
{ name: "muted", hex: "#ebe3cc" },
|
|
2287
|
+
{ name: "text", hex: "#2a2a2a" },
|
|
2288
|
+
{ name: "primaryForeground", hex: "#fbf8f0" },
|
|
2289
|
+
{ name: "border", hex: "#cdc1a4" }
|
|
2290
|
+
]
|
|
2291
|
+
});
|
|
2292
|
+
|
|
2293
|
+
// ../theme-core/src/palette/variants/index.ts
|
|
2294
|
+
var paletteVariants = [
|
|
2295
|
+
// Brand-led family
|
|
2296
|
+
brandLedCool,
|
|
2297
|
+
brandLedWarm,
|
|
2298
|
+
brandLedJewel,
|
|
2299
|
+
// Warm-neutral family
|
|
2300
|
+
warmNeutralClay,
|
|
2301
|
+
warmNeutralCream,
|
|
2302
|
+
warmNeutralForest,
|
|
2303
|
+
// High-contrast family
|
|
2304
|
+
highContrastInk,
|
|
2305
|
+
highContrastCharcoal,
|
|
2306
|
+
highContrastMonochrome,
|
|
2307
|
+
// Soft-natural family
|
|
2308
|
+
softNaturalSage,
|
|
2309
|
+
softNaturalStone,
|
|
2310
|
+
softNaturalWatercolor
|
|
2311
|
+
];
|
|
2312
|
+
var paletteVariantsById = new Map(
|
|
2313
|
+
paletteVariants.map((v) => [v.id, v])
|
|
2314
|
+
);
|
|
2315
|
+
|
|
1358
2316
|
// ../theme-core/src/tokens/blockColorTokens.ts
|
|
1359
2317
|
var blockColorTokenNames = [
|
|
1360
2318
|
"text",
|