@riverbankcms/sdk 0.60.1 → 0.60.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/dist/_dts/api/src/bookingRecords.d.ts +7 -0
  2. package/dist/_dts/api/src/bookingVerticals.d.ts +1 -0
  3. package/dist/_dts/api/src/communications.d.ts +1 -0
  4. package/dist/_dts/api/src/contentRuntime.d.ts +8 -0
  5. package/dist/_dts/api/src/endpoints.d.ts +17 -0
  6. package/dist/_dts/api/src/index.d.ts +1 -1
  7. package/dist/_dts/api/src/media.d.ts +1 -1
  8. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +10 -2
  9. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +26 -1
  10. package/dist/_dts/api/src/siteSettings.d.ts +7 -0
  11. package/dist/_dts/api/src/types.d.ts +1 -1
  12. package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +3 -0
  13. package/dist/_dts/blocks/src/system/blocks/site-footer.d.ts +1 -0
  14. package/dist/_dts/blocks/src/system/node/fragments/ctaButton.d.ts +2 -0
  15. package/dist/_dts/blocks/src/system/runtime/nodes/location-map.server.d.ts +4 -0
  16. package/dist/_dts/blocks/src/system/runtime/nodes/location-map.shared.d.ts +38 -0
  17. package/dist/_dts/blocks/src/system/runtime/nodes/location-map.view.d.ts +2 -1
  18. package/dist/_dts/blocks/src/system/runtime/shared/themedButtonClass.d.ts +11 -0
  19. package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +10 -2
  20. package/dist/_dts/core/src/business-address.d.ts +38 -0
  21. package/dist/_dts/core/src/index.d.ts +1 -0
  22. package/dist/_dts/core/src/participants.d.ts +32 -1
  23. package/dist/_dts/core/src/rectification.d.ts +79 -0
  24. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +28 -6
  25. package/dist/_dts/preview-next/src/client/blocks/runOptimisticCustomizeAction.d.ts +44 -0
  26. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +7 -1
  27. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +12 -1
  28. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +6 -1
  29. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.d.ts +20 -0
  30. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +101 -0
  31. package/dist/_dts/sdk/src/client/types.d.ts +1 -0
  32. package/dist/_dts/sdk/src/public-api/contracts.d.ts +11 -1
  33. package/dist/_dts/sdk/src/version.d.ts +1 -1
  34. package/dist/_dts/theme-core/src/buttons/constants.d.ts +9 -1
  35. package/dist/_dts/theme-core/src/buttons/generateButtonCss.d.ts +16 -11
  36. package/dist/_dts/theme-core/src/buttons/generateDefaultButtonSystem.d.ts +9 -16
  37. package/dist/_dts/theme-core/src/buttons/index.d.ts +1 -0
  38. package/dist/_dts/theme-core/src/buttons/personalities/brushed-wash.d.ts +16 -0
  39. package/dist/_dts/theme-core/src/buttons/personalities/confident-chip.d.ts +16 -0
  40. package/dist/_dts/theme-core/src/buttons/personalities/editorial-link.d.ts +16 -0
  41. package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +95 -0
  42. package/dist/_dts/theme-core/src/buttons/personalities/ink-stamp.d.ts +16 -0
  43. package/dist/_dts/theme-core/src/buttons/personalities/pebble.d.ts +16 -0
  44. package/dist/_dts/theme-core/src/buttons/personalities/soft-pill.d.ts +16 -0
  45. package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +268 -0
  46. package/dist/_dts/theme-core/src/buttons/types.d.ts +253 -72
  47. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +69 -15
  48. package/dist/_dts/theme-core/src/palette/index.d.ts +1 -0
  49. package/dist/_dts/theme-core/src/palette/variants/brand-led.d.ts +52 -0
  50. package/dist/_dts/theme-core/src/palette/variants/high-contrast.d.ts +52 -0
  51. package/dist/_dts/theme-core/src/palette/variants/index.d.ts +213 -0
  52. package/dist/_dts/theme-core/src/palette/variants/soft-natural.d.ts +52 -0
  53. package/dist/_dts/theme-core/src/palette/variants/types.d.ts +154 -0
  54. package/dist/_dts/theme-core/src/palette/variants/warm-neutral.d.ts +52 -0
  55. package/dist/_dts/theme-core/src/schema.d.ts +122 -10
  56. package/dist/_dts/theme-core/src/site-styles/curatedChoices.d.ts +27 -0
  57. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +48 -1
  58. package/dist/_dts/theme-core/src/site-styles/index.d.ts +2 -0
  59. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +4 -0
  60. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +42 -3
  61. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +23 -1
  62. package/dist/_dts/theme-core/src/site-styles/styleTags.d.ts +46 -0
  63. package/dist/_dts/ui/src/badge.d.ts +1 -1
  64. package/dist/_dts/ui/src/callout.d.ts +1 -1
  65. package/dist/_dts/ui/src/palette/ColorChooserDialog.d.ts +47 -0
  66. package/dist/_dts/ui/src/palette/ColorSlotButton.d.ts +15 -0
  67. package/dist/_dts/ui/src/palette/ColorSwatchButton.d.ts +15 -0
  68. package/dist/_dts/ui/src/palette/PaletteTokenEditor.d.ts +50 -0
  69. package/dist/_dts/ui/src/palette/hex.d.ts +23 -0
  70. package/dist/_dts/ui/src/palette/index.d.ts +14 -0
  71. package/dist/cli/index.mjs +2255 -947
  72. package/dist/client/bookings.mjs +294 -144
  73. package/dist/client/client.mjs +4053 -2600
  74. package/dist/client/hooks.mjs +3248 -2076
  75. package/dist/client/rendering/client.mjs +3377 -2165
  76. package/dist/client/rendering/islands.mjs +1911 -736
  77. package/dist/client/rendering.mjs +41897 -40445
  78. package/dist/preview-next/before-render.mjs +17 -0
  79. package/dist/preview-next/client/runtime.mjs +13511 -11313
  80. package/dist/preview-next/middleware.mjs +17 -0
  81. package/dist/server/components.mjs +4434 -3172
  82. package/dist/server/config-validation.mjs +3479 -2307
  83. package/dist/server/config.mjs +3479 -2307
  84. package/dist/server/data.mjs +3248 -2076
  85. package/dist/server/index.mjs +21 -3
  86. package/dist/server/next.mjs +3989 -2726
  87. package/dist/server/page-converter.mjs +3393 -2238
  88. package/dist/server/prebuild.mjs +1 -1
  89. package/dist/server/rendering/server.mjs +4434 -3172
  90. package/dist/server/rendering.mjs +4434 -3172
  91. package/dist/server/routing.mjs +3582 -2274
  92. package/dist/server/server.mjs +3252 -2079
  93. package/dist/server/theme-bridge.mjs +1454 -496
  94. package/dist/server/theme.mjs +1102 -505
  95. package/package.json +1 -1
  96. package/dist/_dts/preview-next/src/client/preview/PreviewSiteStyleSwitcher.d.ts +0 -11
  97. package/dist/_dts/preview-next/src/client/preview/PreviewSiteStyleSwitcher.state.d.ts +0 -43
@@ -1,12 +1,6 @@
1
1
  "use client";
2
2
  var __defProp = Object.defineProperty;
3
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
5
- get: (a, b2) => (typeof require !== "undefined" ? require : a)[b2]
6
- }) : x)(function(x) {
7
- if (typeof require !== "undefined") return require.apply(this, arguments);
8
- throw Error('Dynamic require of "' + x + '" is not supported');
9
- });
10
4
  var __esm = (fn2, res) => function __init() {
11
5
  return fn2 && (res = (0, fn2[__getOwnPropNames(fn2)[0]])(fn2 = 0)), res;
12
6
  };
@@ -628,6 +622,13 @@ var init_location = __esm({
628
622
  }
629
623
  });
630
624
 
625
+ // ../core/src/business-address.ts
626
+ var init_business_address = __esm({
627
+ "../core/src/business-address.ts"() {
628
+ "use strict";
629
+ }
630
+ });
631
+
631
632
  // ../core/src/assert-never.ts
632
633
  var init_assert_never = __esm({
633
634
  "../core/src/assert-never.ts"() {
@@ -684,6 +685,7 @@ var init_assertNever = __esm({
684
685
  var init_participants = __esm({
685
686
  "../core/src/participants.ts"() {
686
687
  "use strict";
688
+ init_branded();
687
689
  init_result();
688
690
  }
689
691
  });
@@ -712,6 +714,7 @@ var init_src = __esm({
712
714
  init_person_records();
713
715
  init_rectification();
714
716
  init_location();
717
+ init_business_address();
715
718
  init_result();
716
719
  init_assert_never();
717
720
  init_try_async();
@@ -3958,7 +3961,7 @@ function getServerStorage() {
3958
3961
  _serverStorageChecked = true;
3959
3962
  try {
3960
3963
  const globalWithNonWebpackRequire = globalThis;
3961
- const nonWebpackRequire = typeof globalWithNonWebpackRequire.__non_webpack_require__ === "function" ? globalWithNonWebpackRequire.__non_webpack_require__ : __require;
3964
+ const nonWebpackRequire = typeof globalWithNonWebpackRequire.__non_webpack_require__ === "function" ? globalWithNonWebpackRequire.__non_webpack_require__ : new Function("id", "return require(id)");
3962
3965
  const asyncHooks = nonWebpackRequire("async_hooks");
3963
3966
  const AsyncLocalStorage = asyncHooks.AsyncLocalStorage;
3964
3967
  if (AsyncLocalStorage) {
@@ -4606,6 +4609,19 @@ var init_EventCardIcons = __esm({
4606
4609
  }
4607
4610
  });
4608
4611
 
4612
+ // ../blocks/src/system/runtime/shared/themedButtonClass.ts
4613
+ function themedButtonClass(spec) {
4614
+ const { variant, size, extraClassName } = spec;
4615
+ const normalizedVariant = variant.trim();
4616
+ const variantClasses = normalizedVariant ? [normalizedVariant, `button-${normalizedVariant}`] : [];
4617
+ return [...variantClasses, `btn-${size}`, extraClassName].filter(Boolean).join(" ");
4618
+ }
4619
+ var init_themedButtonClass = __esm({
4620
+ "../blocks/src/system/runtime/shared/themedButtonClass.ts"() {
4621
+ "use strict";
4622
+ }
4623
+ });
4624
+
4609
4625
  // ../blocks/src/system/runtime/nodes/events/shared/EventCard.tsx
4610
4626
  import { jsx as jsx4, jsxs as jsxs2 } from "react/jsx-runtime";
4611
4627
  function formatCapacityText(event, options) {
@@ -4653,6 +4669,7 @@ var init_EventCard = __esm({
4653
4669
  init_EventCardIcons();
4654
4670
  init_eventCapacity();
4655
4671
  init_utils();
4672
+ init_themedButtonClass();
4656
4673
  EventCard = ({
4657
4674
  event,
4658
4675
  cardVariant = "default",
@@ -4678,7 +4695,7 @@ var init_EventCard = __esm({
4678
4695
  const isSoldOut = cta.hidden;
4679
4696
  const { available: spotsLeft } = getEventAvailability(event);
4680
4697
  const cardClass = `card-${cardVariant}`;
4681
- const buttonClass = `${buttonVariant} button-${buttonVariant}`;
4698
+ const buttonClass = themedButtonClass({ variant: buttonVariant, size: "md" });
4682
4699
  const title = event.title;
4683
4700
  const summary = event.presentation?.summary ?? event.description;
4684
4701
  const image = event.presentation?.image ?? null;
@@ -4760,6 +4777,7 @@ var init_EventCompactRow = __esm({
4760
4777
  "use strict";
4761
4778
  init_utils();
4762
4779
  init_EventCardIcons();
4780
+ init_themedButtonClass();
4763
4781
  EventCompactRow = ({
4764
4782
  event,
4765
4783
  buttonVariant = "primary",
@@ -4771,7 +4789,7 @@ var init_EventCompactRow = __esm({
4771
4789
  const price = formatEventPrice(event);
4772
4790
  const teacherLine = formatEventTeacherLine(event);
4773
4791
  const cta = resolveEventCta(event, buttonText);
4774
- const buttonClass = `${buttonVariant} button-${buttonVariant}`;
4792
+ const buttonClass = themedButtonClass({ variant: buttonVariant, size: "sm" });
4775
4793
  return /* @__PURE__ */ jsxs3("div", { className: "event-compact-row", children: [
4776
4794
  /* @__PURE__ */ jsxs3("div", { className: "event-compact-row-content", children: [
4777
4795
  /* @__PURE__ */ jsxs3("div", { className: "event-compact-row-top", children: [
@@ -7511,7 +7529,10 @@ function createBlockApi(config) {
7511
7529
  url = appendQuery(url, queryParams);
7512
7530
  }
7513
7531
  const authHeaders = getAuthHeaders(selectedAuth);
7514
- const headers = { ...authHeaders };
7532
+ const headers = {
7533
+ Accept: "application/json",
7534
+ ...authHeaders
7535
+ };
7515
7536
  if (body !== void 0) {
7516
7537
  headers["Content-Type"] = "application/json";
7517
7538
  }
@@ -8135,6 +8156,978 @@ var init_api = __esm({
8135
8156
  }
8136
8157
  });
8137
8158
 
8159
+ // ../theme-core/src/buttons/types.ts
8160
+ import { z as z21 } from "zod";
8161
+ var VARIANT_ROLES, cornerStyleSchema, shadowSizeSchema, textTransformSchema, fontWeightSchema, buttonTypographySchema, letterSpacingSchema, hoverTransformSchema, hoverColorSchema, buttonPaddingPresetSchema, gradientStyleSchema, gradientSharpnessSchema, prioritySchema, variantRoleSchema, buttonSizeNameSchema, PADDING_TOKEN_PATTERN, paddingShorthandSchema, buttonSizeConfigSchema, buttonSizesSchema, buttonGlobalSettingsSchema, gradientDirectionSchema, buttonBackgroundSchema, effectApplicationSchema, buttonBorderSchema, variantShadowSchema, variantEffectsSchema, variantSizeOverridesSchema, buttonVariantSchema, buttonSystemSchema;
8162
+ var init_types4 = __esm({
8163
+ "../theme-core/src/buttons/types.ts"() {
8164
+ "use strict";
8165
+ VARIANT_ROLES = [
8166
+ "primary",
8167
+ "secondary",
8168
+ "outline",
8169
+ "ghost",
8170
+ "link",
8171
+ "tertiary",
8172
+ "accent"
8173
+ ];
8174
+ cornerStyleSchema = z21.enum(["square", "rounded", "pill"]);
8175
+ shadowSizeSchema = z21.enum(["none", "low", "medium", "high"]);
8176
+ textTransformSchema = z21.enum(["none", "uppercase", "lowercase", "capitalize"]);
8177
+ fontWeightSchema = z21.union([z21.literal(500), z21.literal(600), z21.literal(700)]);
8178
+ buttonTypographySchema = z21.enum(["body", "heading"]);
8179
+ letterSpacingSchema = z21.enum(["tight", "normal", "loose"]);
8180
+ hoverTransformSchema = z21.enum(["none", "lift", "scale", "press"]);
8181
+ hoverColorSchema = z21.enum(["none", "brighten", "darken", "saturate", "token"]);
8182
+ buttonPaddingPresetSchema = z21.enum(["compact", "default", "spacious"]);
8183
+ gradientStyleSchema = z21.enum(["linear", "radial", "conic"]);
8184
+ gradientSharpnessSchema = z21.enum(["smooth", "medium", "hard"]);
8185
+ prioritySchema = z21.union([z21.literal(1), z21.literal(2), z21.literal(3)]);
8186
+ variantRoleSchema = z21.enum(VARIANT_ROLES);
8187
+ buttonSizeNameSchema = z21.enum(["sm", "md", "lg", "xl"]);
8188
+ PADDING_TOKEN_PATTERN = /^(?:0|\d+(?:\.\d+)?(?:rem|em|px|%))$/;
8189
+ paddingShorthandSchema = z21.string().refine(
8190
+ (value) => {
8191
+ const parts = value.split(/\s+/).filter(Boolean);
8192
+ return parts.length === 2 && parts.every((token) => PADDING_TOKEN_PATTERN.test(token));
8193
+ },
8194
+ {
8195
+ message: 'Padding must be two space-separated CSS length tokens (e.g. "0.5rem 1rem"). Use `0` for zero.'
8196
+ }
8197
+ );
8198
+ buttonSizeConfigSchema = z21.object({
8199
+ padding: paddingShorthandSchema,
8200
+ fontSize: z21.string().optional()
8201
+ });
8202
+ buttonSizesSchema = z21.object({
8203
+ sm: buttonSizeConfigSchema,
8204
+ md: buttonSizeConfigSchema,
8205
+ lg: buttonSizeConfigSchema,
8206
+ xl: buttonSizeConfigSchema.optional()
8207
+ }).transform(({ sm, md, lg, xl }) => ({
8208
+ sm,
8209
+ md,
8210
+ lg,
8211
+ xl: xl ?? lg
8212
+ }));
8213
+ buttonGlobalSettingsSchema = z21.object({
8214
+ cornerStyle: cornerStyleSchema,
8215
+ cornerRadius: z21.number().min(0).max(24).optional(),
8216
+ shadow: shadowSizeSchema,
8217
+ textTransform: textTransformSchema,
8218
+ fontWeight: fontWeightSchema,
8219
+ /**
8220
+ * @deprecated Set per-variant via `variant.border.widthClass` instead.
8221
+ * Schema field is preserved so existing presets parse; the value is unread
8222
+ * by the current generator and will be removed once the legacy
8223
+ * `primitives/content/components/Button.tsx` slot exports are deleted.
8224
+ */
8225
+ borderWidth: z21.union([z21.literal(1), z21.literal(2), z21.literal(3)]),
8226
+ // === Family-level typography ===
8227
+ // Typography source (body or heading) — selects which theme typography pool to inherit
8228
+ typography: buttonTypographySchema.optional(),
8229
+ // Font size for all variants in the family (Tailwind token, e.g. "text-xs", "text-sm")
8230
+ // Sized variants get this as default; fixed variants inherit unless they override.
8231
+ // Size class CSS may still override at run time for sized variants.
8232
+ fontSize: z21.string().optional(),
8233
+ // Letter spacing applied to all variants
8234
+ letterSpacing: letterSpacingSchema.optional(),
8235
+ // Italic style
8236
+ italic: z21.boolean().optional(),
8237
+ // Padding preset (applies to sized variants without a sizes config)
8238
+ paddingPreset: buttonPaddingPresetSchema.optional(),
8239
+ hoverTransform: hoverTransformSchema,
8240
+ hoverColor: hoverColorSchema,
8241
+ // When hoverColor is 'token', this specifies which token to use
8242
+ hoverColorToken: z21.string().optional(),
8243
+ // Gradient settings (if any variant uses gradients)
8244
+ gradientStyle: gradientStyleSchema.optional(),
8245
+ gradientAngle: z21.number().min(0).max(360).optional(),
8246
+ gradientSharpness: gradientSharpnessSchema.optional()
8247
+ });
8248
+ gradientDirectionSchema = z21.enum(["to-r", "to-l", "to-t", "to-b", "to-tr", "to-tl", "to-br", "to-bl"]);
8249
+ buttonBackgroundSchema = z21.discriminatedUnion("type", [
8250
+ z21.object({ type: z21.literal("solid"), colorToken: z21.string() }),
8251
+ z21.object({
8252
+ type: z21.literal("gradient"),
8253
+ stops: z21.array(z21.string()).min(2),
8254
+ direction: gradientDirectionSchema
8255
+ }),
8256
+ z21.object({ type: z21.literal("transparent") })
8257
+ ]);
8258
+ effectApplicationSchema = z21.object({
8259
+ effectId: z21.string(),
8260
+ options: z21.record(z21.string(), z21.any()).optional()
8261
+ });
8262
+ buttonBorderSchema = z21.object({
8263
+ widthClass: z21.string(),
8264
+ colorToken: z21.string()
8265
+ });
8266
+ variantShadowSchema = z21.object({
8267
+ elevation: z21.enum(["none", "low", "medium", "high"]),
8268
+ softness: z21.enum(["crisp", "soft", "hard"]).nullable(),
8269
+ position: z21.enum(["bottom", "bottom-right"]).default("bottom")
8270
+ });
8271
+ variantEffectsSchema = z21.object({
8272
+ base: z21.array(effectApplicationSchema).optional(),
8273
+ hover: z21.array(effectApplicationSchema).optional(),
8274
+ active: z21.array(effectApplicationSchema).optional(),
8275
+ focus: z21.array(effectApplicationSchema).optional()
8276
+ });
8277
+ variantSizeOverridesSchema = z21.object({
8278
+ sm: buttonSizeConfigSchema.optional(),
8279
+ md: buttonSizeConfigSchema.optional(),
8280
+ lg: buttonSizeConfigSchema.optional(),
8281
+ xl: buttonSizeConfigSchema.optional()
8282
+ });
8283
+ buttonVariantSchema = z21.object({
8284
+ id: z21.string(),
8285
+ name: z21.string().min(1).max(20),
8286
+ enabled: z21.boolean(),
8287
+ priority: prioritySchema,
8288
+ // Base appearance (token-based)
8289
+ background: buttonBackgroundSchema,
8290
+ textColorToken: z21.string(),
8291
+ /** Tailwind radius token (e.g. `'rounded-md'`). Omit to inherit from `global.cornerStyle`. */
8292
+ borderRadius: z21.string().optional(),
8293
+ // Optional shadow override (uses theme.shadow if not specified)
8294
+ shadow: variantShadowSchema.optional(),
8295
+ // Border (optional)
8296
+ border: buttonBorderSchema.optional(),
8297
+ // Hover background token (per-variant override, takes precedence over global hoverColorToken)
8298
+ hoverBackgroundToken: z21.string().optional(),
8299
+ // Effect composition
8300
+ effects: variantEffectsSchema.optional(),
8301
+ // Per-variant size overrides — see VariantSizeOverrides
8302
+ sizes: variantSizeOverridesSchema.optional()
8303
+ });
8304
+ buttonSystemSchema = z21.object({
8305
+ global: buttonGlobalSettingsSchema,
8306
+ variants: z21.array(buttonVariantSchema).min(1).max(6),
8307
+ sizes: buttonSizesSchema.optional()
8308
+ });
8309
+ }
8310
+ });
8311
+
8312
+ // ../theme-core/src/tokens/resolver.ts
8313
+ var init_resolver = __esm({
8314
+ "../theme-core/src/tokens/resolver.ts"() {
8315
+ "use strict";
8316
+ }
8317
+ });
8318
+
8319
+ // ../theme-core/src/buttons/effects/presets/background.ts
8320
+ var init_background = __esm({
8321
+ "../theme-core/src/buttons/effects/presets/background.ts"() {
8322
+ "use strict";
8323
+ }
8324
+ });
8325
+
8326
+ // ../theme-core/src/buttons/effects/cssUtils.ts
8327
+ var init_cssUtils = __esm({
8328
+ "../theme-core/src/buttons/effects/cssUtils.ts"() {
8329
+ "use strict";
8330
+ }
8331
+ });
8332
+
8333
+ // ../theme-core/src/buttons/effects/presets/shadow.ts
8334
+ var init_shadow = __esm({
8335
+ "../theme-core/src/buttons/effects/presets/shadow.ts"() {
8336
+ "use strict";
8337
+ init_cssUtils();
8338
+ }
8339
+ });
8340
+
8341
+ // ../theme-core/src/buttons/effects/presets/transform.ts
8342
+ var init_transform = __esm({
8343
+ "../theme-core/src/buttons/effects/presets/transform.ts"() {
8344
+ "use strict";
8345
+ init_cssUtils();
8346
+ }
8347
+ });
8348
+
8349
+ // ../theme-core/src/buttons/effects/presets/overlay.ts
8350
+ var init_overlay = __esm({
8351
+ "../theme-core/src/buttons/effects/presets/overlay.ts"() {
8352
+ "use strict";
8353
+ }
8354
+ });
8355
+
8356
+ // ../theme-core/src/buttons/effects/presets/text.ts
8357
+ var init_text = __esm({
8358
+ "../theme-core/src/buttons/effects/presets/text.ts"() {
8359
+ "use strict";
8360
+ }
8361
+ });
8362
+
8363
+ // ../theme-core/src/buttons/effects/presets/border.ts
8364
+ var init_border = __esm({
8365
+ "../theme-core/src/buttons/effects/presets/border.ts"() {
8366
+ "use strict";
8367
+ }
8368
+ });
8369
+
8370
+ // ../theme-core/src/buttons/effects/presets/animation.ts
8371
+ var init_animation = __esm({
8372
+ "../theme-core/src/buttons/effects/presets/animation.ts"() {
8373
+ "use strict";
8374
+ }
8375
+ });
8376
+
8377
+ // ../theme-core/src/interactive/effects/nav-underline.ts
8378
+ var init_nav_underline = __esm({
8379
+ "../theme-core/src/interactive/effects/nav-underline.ts"() {
8380
+ "use strict";
8381
+ }
8382
+ });
8383
+
8384
+ // ../theme-core/src/interactive/effects/nav-frosted.ts
8385
+ var init_nav_frosted = __esm({
8386
+ "../theme-core/src/interactive/effects/nav-frosted.ts"() {
8387
+ "use strict";
8388
+ }
8389
+ });
8390
+
8391
+ // ../theme-core/src/interactive/effects/index.ts
8392
+ var init_effects = __esm({
8393
+ "../theme-core/src/interactive/effects/index.ts"() {
8394
+ "use strict";
8395
+ init_nav_underline();
8396
+ init_nav_frosted();
8397
+ }
8398
+ });
8399
+
8400
+ // ../theme-core/src/buttons/effects/registry.ts
8401
+ var init_registry = __esm({
8402
+ "../theme-core/src/buttons/effects/registry.ts"() {
8403
+ "use strict";
8404
+ init_background();
8405
+ init_shadow();
8406
+ init_transform();
8407
+ init_overlay();
8408
+ init_text();
8409
+ init_border();
8410
+ init_animation();
8411
+ init_effects();
8412
+ }
8413
+ });
8414
+
8415
+ // ../theme-core/src/interactive/generateEffectsCSS.ts
8416
+ var init_generateEffectsCSS = __esm({
8417
+ "../theme-core/src/interactive/generateEffectsCSS.ts"() {
8418
+ "use strict";
8419
+ init_registry();
8420
+ }
8421
+ });
8422
+
8423
+ // ../theme-core/src/buttons/constants.ts
8424
+ var init_constants = __esm({
8425
+ "../theme-core/src/buttons/constants.ts"() {
8426
+ "use strict";
8427
+ }
8428
+ });
8429
+
8430
+ // ../theme-core/src/buttons/utils/contrast.ts
8431
+ var init_contrast2 = __esm({
8432
+ "../theme-core/src/buttons/utils/contrast.ts"() {
8433
+ "use strict";
8434
+ }
8435
+ });
8436
+
8437
+ // ../theme-core/src/buttons/generateDefaultButtonSystem.ts
8438
+ var init_generateDefaultButtonSystem = __esm({
8439
+ "../theme-core/src/buttons/generateDefaultButtonSystem.ts"() {
8440
+ "use strict";
8441
+ init_contrast2();
8442
+ }
8443
+ });
8444
+
8445
+ // ../theme-core/src/buttons/generateButtonCss.ts
8446
+ var BUTTON_SIZE_NAMES;
8447
+ var init_generateButtonCss = __esm({
8448
+ "../theme-core/src/buttons/generateButtonCss.ts"() {
8449
+ "use strict";
8450
+ init_types4();
8451
+ init_resolver();
8452
+ init_generateEffectsCSS();
8453
+ init_constants();
8454
+ init_generateDefaultButtonSystem();
8455
+ BUTTON_SIZE_NAMES = buttonSizeNameSchema.options;
8456
+ }
8457
+ });
8458
+
8459
+ // ../theme-core/src/buttons/presets.ts
8460
+ var init_presets = __esm({
8461
+ "../theme-core/src/buttons/presets.ts"() {
8462
+ "use strict";
8463
+ }
8464
+ });
8465
+
8466
+ // ../theme-core/src/site-styles/styleTags.ts
8467
+ import { z as z22 } from "zod";
8468
+ var STYLE_AXIS_VALUES, styleTagsSchema;
8469
+ var init_styleTags = __esm({
8470
+ "../theme-core/src/site-styles/styleTags.ts"() {
8471
+ "use strict";
8472
+ STYLE_AXIS_VALUES = {
8473
+ tone: ["minimal", "classic", "bold"],
8474
+ energy: ["calm", "vibrant"],
8475
+ motion: ["subtle", "standard", "expressive"],
8476
+ era: ["editorial", "modern", "organic", "technical", "retro"]
8477
+ };
8478
+ styleTagsSchema = z22.object({
8479
+ tone: z22.enum(STYLE_AXIS_VALUES.tone).optional(),
8480
+ energy: z22.enum(STYLE_AXIS_VALUES.energy).optional(),
8481
+ motion: z22.enum(STYLE_AXIS_VALUES.motion).optional(),
8482
+ era: z22.enum(STYLE_AXIS_VALUES.era).optional()
8483
+ });
8484
+ }
8485
+ });
8486
+
8487
+ // ../theme-core/src/buttons/personalities/types.ts
8488
+ import { z as z23 } from "zod";
8489
+ function asButtonPersonalityId(value) {
8490
+ if (value.length === 0) {
8491
+ throw new Error("ButtonPersonalityId must be a non-empty string");
8492
+ }
8493
+ return value;
8494
+ }
8495
+ function defineButtonPersonality(input) {
8496
+ return {
8497
+ id: asButtonPersonalityId(input.id),
8498
+ name: input.name,
8499
+ description: input.description,
8500
+ tags: input.tags,
8501
+ buttonSystem: input.buttonSystem
8502
+ };
8503
+ }
8504
+ var buttonPersonalityIdSchema, buttonPersonalitySchema;
8505
+ var init_types5 = __esm({
8506
+ "../theme-core/src/buttons/personalities/types.ts"() {
8507
+ "use strict";
8508
+ init_types4();
8509
+ init_styleTags();
8510
+ buttonPersonalityIdSchema = z23.string().min(1).transform((value) => asButtonPersonalityId(value));
8511
+ buttonPersonalitySchema = z23.object({
8512
+ id: buttonPersonalityIdSchema,
8513
+ name: z23.string().min(1),
8514
+ description: z23.string().min(1),
8515
+ tags: styleTagsSchema,
8516
+ buttonSystem: buttonSystemSchema
8517
+ });
8518
+ }
8519
+ });
8520
+
8521
+ // ../theme-core/src/buttons/personalities/brushed-wash.ts
8522
+ var brushedWash;
8523
+ var init_brushed_wash = __esm({
8524
+ "../theme-core/src/buttons/personalities/brushed-wash.ts"() {
8525
+ "use strict";
8526
+ init_types5();
8527
+ brushedWash = defineButtonPersonality({
8528
+ id: "brushed-wash",
8529
+ name: "Brushed Wash",
8530
+ description: "Watercolour-gradient buttons with soft shadows and generous padding.",
8531
+ tags: { tone: "classic", energy: "vibrant", motion: "standard", era: "organic" },
8532
+ buttonSystem: {
8533
+ global: {
8534
+ cornerStyle: "rounded",
8535
+ shadow: "low",
8536
+ textTransform: "none",
8537
+ fontWeight: 500,
8538
+ borderWidth: 1,
8539
+ hoverTransform: "none",
8540
+ hoverColor: "none"
8541
+ },
8542
+ sizes: {
8543
+ sm: { padding: "0.75rem 2rem", fontSize: "text-sm" },
8544
+ md: { padding: "1rem 2.5rem" },
8545
+ lg: { padding: "1.25rem 3rem", fontSize: "text-lg" },
8546
+ xl: { padding: "1.625rem 3.75rem", fontSize: "text-xl" }
8547
+ },
8548
+ variants: [
8549
+ {
8550
+ id: "primary",
8551
+ name: "Primary",
8552
+ enabled: true,
8553
+ priority: 1,
8554
+ background: {
8555
+ type: "gradient",
8556
+ stops: ["primary", "accent"],
8557
+ direction: "to-r"
8558
+ },
8559
+ textColorToken: "primaryForeground",
8560
+ borderRadius: "rounded-lg",
8561
+ shadow: { elevation: "low", softness: "soft", position: "bottom" },
8562
+ effects: {
8563
+ hover: [{ effectId: "opacity-reduce", options: { reduction: -15 } }]
8564
+ }
8565
+ },
8566
+ {
8567
+ id: "secondary",
8568
+ name: "Secondary",
8569
+ enabled: true,
8570
+ priority: 2,
8571
+ background: {
8572
+ type: "gradient",
8573
+ stops: ["secondary", "accent"],
8574
+ direction: "to-br"
8575
+ },
8576
+ textColorToken: "primaryForeground",
8577
+ borderRadius: "rounded-lg",
8578
+ shadow: { elevation: "low", softness: "soft", position: "bottom" },
8579
+ effects: {
8580
+ hover: [{ effectId: "opacity-reduce", options: { reduction: -15 } }]
8581
+ }
8582
+ },
8583
+ {
8584
+ id: "outline",
8585
+ name: "Outline",
8586
+ enabled: true,
8587
+ priority: 3,
8588
+ background: { type: "transparent" },
8589
+ textColorToken: "primary",
8590
+ borderRadius: "rounded-lg",
8591
+ border: { widthClass: "border", colorToken: "primary" },
8592
+ effects: {
8593
+ hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
8594
+ }
8595
+ },
8596
+ {
8597
+ id: "ghost",
8598
+ name: "Ghost",
8599
+ enabled: true,
8600
+ priority: 3,
8601
+ background: { type: "transparent" },
8602
+ textColorToken: "text",
8603
+ borderRadius: "rounded-lg",
8604
+ effects: {
8605
+ hover: [
8606
+ { effectId: "background-on-hover", options: { colorToken: "surface" } }
8607
+ ]
8608
+ }
8609
+ }
8610
+ ]
8611
+ }
8612
+ });
8613
+ }
8614
+ });
8615
+
8616
+ // ../theme-core/src/buttons/personalities/confident-chip.ts
8617
+ var confidentChip;
8618
+ var init_confident_chip = __esm({
8619
+ "../theme-core/src/buttons/personalities/confident-chip.ts"() {
8620
+ "use strict";
8621
+ init_types5();
8622
+ confidentChip = defineButtonPersonality({
8623
+ id: "confident-chip",
8624
+ name: "Confident Chip",
8625
+ description: "Mid-radius solid buttons with a crisp hover.",
8626
+ tags: { tone: "classic", energy: "calm", motion: "standard", era: "modern" },
8627
+ buttonSystem: {
8628
+ global: {
8629
+ cornerStyle: "rounded",
8630
+ shadow: "medium",
8631
+ textTransform: "none",
8632
+ fontWeight: 600,
8633
+ borderWidth: 1,
8634
+ hoverTransform: "none",
8635
+ hoverColor: "none"
8636
+ },
8637
+ variants: [
8638
+ {
8639
+ id: "primary",
8640
+ name: "Primary",
8641
+ enabled: true,
8642
+ priority: 1,
8643
+ background: { type: "solid", colorToken: "primary" },
8644
+ textColorToken: "primaryForeground",
8645
+ borderRadius: "rounded-md",
8646
+ shadow: { elevation: "medium", softness: "soft", position: "bottom" },
8647
+ effects: {
8648
+ hover: [{ effectId: "darken-background", options: { amount: 60 } }],
8649
+ active: [{ effectId: "scale-down", options: { scale: "0.97" } }]
8650
+ }
8651
+ },
8652
+ {
8653
+ id: "secondary",
8654
+ name: "Secondary",
8655
+ enabled: true,
8656
+ priority: 2,
8657
+ background: { type: "solid", colorToken: "surface" },
8658
+ textColorToken: "text",
8659
+ borderRadius: "rounded-md",
8660
+ border: { widthClass: "border", colorToken: "border" },
8661
+ effects: {
8662
+ hover: [{ effectId: "background-on-hover", options: { colorToken: "background" } }]
8663
+ }
8664
+ },
8665
+ {
8666
+ id: "outline",
8667
+ name: "Outline",
8668
+ enabled: true,
8669
+ priority: 3,
8670
+ background: { type: "transparent" },
8671
+ textColorToken: "primary",
8672
+ borderRadius: "rounded-md",
8673
+ border: { widthClass: "border", colorToken: "primary" },
8674
+ effects: {
8675
+ hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
8676
+ }
8677
+ },
8678
+ {
8679
+ id: "ghost",
8680
+ name: "Ghost",
8681
+ enabled: true,
8682
+ priority: 3,
8683
+ background: { type: "transparent" },
8684
+ textColorToken: "primary",
8685
+ borderRadius: "rounded-md",
8686
+ effects: {
8687
+ hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
8688
+ }
8689
+ }
8690
+ ]
8691
+ }
8692
+ });
8693
+ }
8694
+ });
8695
+
8696
+ // ../theme-core/src/buttons/personalities/editorial-link.ts
8697
+ var editorialLink;
8698
+ var init_editorial_link = __esm({
8699
+ "../theme-core/src/buttons/personalities/editorial-link.ts"() {
8700
+ "use strict";
8701
+ init_types5();
8702
+ editorialLink = defineButtonPersonality({
8703
+ id: "editorial-link",
8704
+ name: "Editorial Link",
8705
+ description: "Link-style with a growing underline. Refined, typographic.",
8706
+ tags: { tone: "minimal", energy: "calm", motion: "subtle", era: "editorial" },
8707
+ buttonSystem: {
8708
+ global: {
8709
+ cornerStyle: "square",
8710
+ shadow: "none",
8711
+ textTransform: "none",
8712
+ fontWeight: 500,
8713
+ borderWidth: 1,
8714
+ hoverTransform: "none",
8715
+ hoverColor: "none"
8716
+ },
8717
+ variants: [
8718
+ {
8719
+ id: "primary",
8720
+ name: "Primary",
8721
+ enabled: true,
8722
+ priority: 1,
8723
+ background: { type: "transparent" },
8724
+ textColorToken: "text",
8725
+ borderRadius: "rounded-none",
8726
+ shadow: { elevation: "none", softness: null, position: "bottom" },
8727
+ sizes: {
8728
+ sm: { padding: "0.25rem 0" },
8729
+ md: { padding: "0.5rem 0" },
8730
+ lg: { padding: "0.625rem 0" },
8731
+ xl: { padding: "0.75rem 0" }
8732
+ },
8733
+ effects: {
8734
+ base: [
8735
+ { effectId: "border-bottom-grow", options: { height: 2, colorToken: "text", origin: "left" } }
8736
+ ]
8737
+ }
8738
+ },
8739
+ {
8740
+ id: "secondary",
8741
+ name: "Secondary",
8742
+ enabled: true,
8743
+ priority: 2,
8744
+ background: { type: "transparent" },
8745
+ textColorToken: "mutedText",
8746
+ borderRadius: "rounded-none",
8747
+ shadow: { elevation: "none", softness: null, position: "bottom" },
8748
+ sizes: {
8749
+ sm: { padding: "0.25rem 0" },
8750
+ md: { padding: "0.5rem 0" },
8751
+ lg: { padding: "0.625rem 0" },
8752
+ xl: { padding: "0.75rem 0" }
8753
+ },
8754
+ effects: {
8755
+ base: [
8756
+ { effectId: "border-bottom-grow", options: { height: 1, colorToken: "mutedText", origin: "left" } }
8757
+ ]
8758
+ }
8759
+ },
8760
+ {
8761
+ id: "outline",
8762
+ name: "Outline",
8763
+ enabled: true,
8764
+ priority: 3,
8765
+ background: { type: "transparent" },
8766
+ textColorToken: "accent",
8767
+ borderRadius: "rounded-none",
8768
+ shadow: { elevation: "none", softness: null, position: "bottom" },
8769
+ sizes: {
8770
+ sm: { padding: "0.25rem 0" },
8771
+ md: { padding: "0.5rem 0" },
8772
+ lg: { padding: "0.625rem 0" },
8773
+ xl: { padding: "0.75rem 0" }
8774
+ },
8775
+ effects: {
8776
+ base: [
8777
+ { effectId: "border-bottom-grow", options: { height: 1, colorToken: "accent", origin: "left" } }
8778
+ ]
8779
+ }
8780
+ },
8781
+ {
8782
+ id: "ghost",
8783
+ name: "Ghost",
8784
+ enabled: true,
8785
+ priority: 3,
8786
+ background: { type: "transparent" },
8787
+ textColorToken: "mutedText",
8788
+ borderRadius: "rounded-none",
8789
+ shadow: { elevation: "none", softness: null, position: "bottom" },
8790
+ sizes: {
8791
+ sm: { padding: "0.25rem 0" },
8792
+ md: { padding: "0.5rem 0" },
8793
+ lg: { padding: "0.625rem 0" },
8794
+ xl: { padding: "0.75rem 0" }
8795
+ },
8796
+ effects: {
8797
+ hover: [{ effectId: "opacity-reduce", options: { reduction: -20 } }]
8798
+ }
8799
+ }
8800
+ ]
8801
+ }
8802
+ });
8803
+ }
8804
+ });
8805
+
8806
+ // ../theme-core/src/buttons/personalities/ink-stamp.ts
8807
+ var inkStamp;
8808
+ var init_ink_stamp = __esm({
8809
+ "../theme-core/src/buttons/personalities/ink-stamp.ts"() {
8810
+ "use strict";
8811
+ init_types5();
8812
+ inkStamp = defineButtonPersonality({
8813
+ id: "ink-stamp",
8814
+ name: "Ink Stamp",
8815
+ description: "Hand-stamped block-print buttons with a slight lift on hover.",
8816
+ tags: { tone: "bold", energy: "vibrant", motion: "standard", era: "organic" },
8817
+ buttonSystem: {
8818
+ global: {
8819
+ cornerStyle: "rounded",
8820
+ shadow: "none",
8821
+ textTransform: "uppercase",
8822
+ fontWeight: 600,
8823
+ borderWidth: 1,
8824
+ hoverTransform: "none",
8825
+ hoverColor: "none",
8826
+ letterSpacing: "loose"
8827
+ },
8828
+ sizes: {
8829
+ sm: { padding: "0.5rem 1.25rem", fontSize: "text-xs" },
8830
+ md: { padding: "0.75rem 1.75rem", fontSize: "text-sm" },
8831
+ lg: { padding: "0.875rem 2.25rem", fontSize: "text-base" },
8832
+ xl: { padding: "1.125rem 2.75rem", fontSize: "text-lg" }
8833
+ },
8834
+ variants: [
8835
+ {
8836
+ id: "primary",
8837
+ name: "Primary",
8838
+ enabled: true,
8839
+ priority: 1,
8840
+ background: { type: "solid", colorToken: "primary" },
8841
+ textColorToken: "primaryForeground",
8842
+ borderRadius: "rounded-md",
8843
+ effects: {
8844
+ hover: [
8845
+ { effectId: "drop-shadow", options: { intensity: "medium" } },
8846
+ { effectId: "scale-up", options: { scale: "1.02" } }
8847
+ ],
8848
+ active: [{ effectId: "scale-down", options: { scale: "0.98" } }]
8849
+ }
8850
+ },
8851
+ {
8852
+ id: "secondary",
8853
+ name: "Secondary",
8854
+ enabled: true,
8855
+ priority: 2,
8856
+ background: { type: "transparent" },
8857
+ textColorToken: "primary",
8858
+ borderRadius: "rounded-md",
8859
+ border: { widthClass: "border-2", colorToken: "primary" },
8860
+ effects: {
8861
+ hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
8862
+ }
8863
+ },
8864
+ {
8865
+ id: "outline",
8866
+ name: "Outline",
8867
+ enabled: true,
8868
+ priority: 3,
8869
+ background: { type: "transparent" },
8870
+ textColorToken: "text",
8871
+ borderRadius: "rounded-md",
8872
+ border: { widthClass: "border-2", colorToken: "border" },
8873
+ effects: {
8874
+ hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
8875
+ }
8876
+ },
8877
+ {
8878
+ id: "ghost",
8879
+ name: "Ghost",
8880
+ enabled: true,
8881
+ priority: 3,
8882
+ background: { type: "transparent" },
8883
+ textColorToken: "accent",
8884
+ borderRadius: "rounded-none",
8885
+ sizes: {
8886
+ sm: { padding: "0.375rem 0", fontSize: "text-xs" },
8887
+ md: { padding: "0.5rem 0", fontSize: "text-sm" },
8888
+ lg: { padding: "0.625rem 0", fontSize: "text-base" },
8889
+ xl: { padding: "0.75rem 0", fontSize: "text-lg" }
8890
+ },
8891
+ effects: {
8892
+ base: [{ effectId: "border-bottom-grow", options: { height: 1, colorToken: "accent", origin: "left" } }]
8893
+ }
8894
+ }
8895
+ ]
8896
+ }
8897
+ });
8898
+ }
8899
+ });
8900
+
8901
+ // ../theme-core/src/buttons/personalities/pebble.ts
8902
+ var pebble;
8903
+ var init_pebble = __esm({
8904
+ "../theme-core/src/buttons/personalities/pebble.ts"() {
8905
+ "use strict";
8906
+ init_types5();
8907
+ pebble = defineButtonPersonality({
8908
+ id: "pebble",
8909
+ name: "Pebble",
8910
+ description: "Generous pill buttons with a soft hover lift.",
8911
+ tags: { tone: "classic", energy: "calm", motion: "standard", era: "organic" },
8912
+ buttonSystem: {
8913
+ global: {
8914
+ cornerStyle: "pill",
8915
+ shadow: "none",
8916
+ textTransform: "none",
8917
+ fontWeight: 500,
8918
+ borderWidth: 2,
8919
+ hoverTransform: "none",
8920
+ hoverColor: "none"
8921
+ },
8922
+ sizes: {
8923
+ sm: { padding: "0.625rem 1.75rem", fontSize: "text-sm" },
8924
+ md: { padding: "0.875rem 2.25rem" },
8925
+ lg: { padding: "1.125rem 2.75rem", fontSize: "text-lg" },
8926
+ xl: { padding: "1.5rem 3.5rem", fontSize: "text-xl" }
8927
+ },
8928
+ variants: [
8929
+ {
8930
+ id: "primary",
8931
+ name: "Primary",
8932
+ enabled: true,
8933
+ priority: 1,
8934
+ background: { type: "solid", colorToken: "primary" },
8935
+ textColorToken: "primaryForeground",
8936
+ borderRadius: "rounded-full",
8937
+ effects: {
8938
+ hover: [
8939
+ { effectId: "scale-up", options: { scale: "1.03" } },
8940
+ { effectId: "drop-shadow", options: { intensity: "medium" } }
8941
+ ]
8942
+ }
8943
+ },
8944
+ {
8945
+ id: "secondary",
8946
+ name: "Secondary",
8947
+ enabled: true,
8948
+ priority: 2,
8949
+ background: { type: "transparent" },
8950
+ textColorToken: "primary",
8951
+ borderRadius: "rounded-full",
8952
+ border: { widthClass: "border-2", colorToken: "accent" },
8953
+ effects: {
8954
+ hover: [{ effectId: "background-on-hover", options: { colorToken: "accent" } }]
8955
+ }
8956
+ },
8957
+ {
8958
+ id: "outline",
8959
+ name: "Outline",
8960
+ enabled: true,
8961
+ priority: 3,
8962
+ background: { type: "transparent" },
8963
+ textColorToken: "text",
8964
+ borderRadius: "rounded-full",
8965
+ border: { widthClass: "border", colorToken: "border" },
8966
+ effects: {
8967
+ hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
8968
+ }
8969
+ },
8970
+ {
8971
+ id: "ghost",
8972
+ name: "Ghost",
8973
+ enabled: true,
8974
+ priority: 3,
8975
+ background: { type: "transparent" },
8976
+ textColorToken: "primary",
8977
+ borderRadius: "rounded-full",
8978
+ sizes: {
8979
+ sm: { padding: "0.375rem 0.875rem", fontSize: "text-sm" },
8980
+ md: { padding: "0.5rem 1rem" },
8981
+ lg: { padding: "0.625rem 1.25rem", fontSize: "text-lg" },
8982
+ xl: { padding: "0.75rem 1.5rem", fontSize: "text-xl" }
8983
+ },
8984
+ effects: {
8985
+ hover: [{ effectId: "opacity-reduce", options: { reduction: 30 } }]
8986
+ }
8987
+ }
8988
+ ]
8989
+ }
8990
+ });
8991
+ }
8992
+ });
8993
+
8994
+ // ../theme-core/src/buttons/personalities/soft-pill.ts
8995
+ var softPill;
8996
+ var init_soft_pill = __esm({
8997
+ "../theme-core/src/buttons/personalities/soft-pill.ts"() {
8998
+ "use strict";
8999
+ init_types5();
9000
+ softPill = defineButtonPersonality({
9001
+ id: "soft-pill",
9002
+ name: "Soft Pill",
9003
+ description: "Rounded pills with a gentle lift on hover. Quietly modern.",
9004
+ tags: { tone: "classic", energy: "calm", motion: "subtle", era: "organic" },
9005
+ buttonSystem: {
9006
+ global: {
9007
+ cornerStyle: "pill",
9008
+ shadow: "low",
9009
+ textTransform: "none",
9010
+ fontWeight: 500,
9011
+ borderWidth: 2,
9012
+ hoverTransform: "lift",
9013
+ hoverColor: "none"
9014
+ },
9015
+ variants: [
9016
+ {
9017
+ id: "primary",
9018
+ name: "Primary",
9019
+ enabled: true,
9020
+ priority: 1,
9021
+ background: { type: "solid", colorToken: "primary" },
9022
+ textColorToken: "primaryForeground",
9023
+ borderRadius: "rounded-full",
9024
+ shadow: { elevation: "low", softness: "soft", position: "bottom" },
9025
+ effects: {
9026
+ hover: [{ effectId: "lift", options: { translateY: "-1px" } }],
9027
+ active: [{ effectId: "scale-down", options: { scale: "0.98" } }]
9028
+ }
9029
+ },
9030
+ {
9031
+ id: "secondary",
9032
+ name: "Secondary",
9033
+ enabled: true,
9034
+ priority: 2,
9035
+ background: { type: "transparent" },
9036
+ textColorToken: "primary",
9037
+ borderRadius: "rounded-full",
9038
+ border: { widthClass: "border-2", colorToken: "primary" },
9039
+ effects: {
9040
+ hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
9041
+ }
9042
+ },
9043
+ {
9044
+ id: "outline",
9045
+ name: "Outline",
9046
+ enabled: true,
9047
+ priority: 3,
9048
+ background: { type: "transparent" },
9049
+ textColorToken: "text",
9050
+ borderRadius: "rounded-full",
9051
+ border: { widthClass: "border", colorToken: "border" },
9052
+ effects: {
9053
+ hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
9054
+ }
9055
+ },
9056
+ {
9057
+ id: "ghost",
9058
+ name: "Ghost",
9059
+ enabled: true,
9060
+ priority: 3,
9061
+ background: { type: "transparent" },
9062
+ textColorToken: "text",
9063
+ borderRadius: "rounded-full",
9064
+ effects: {
9065
+ hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
9066
+ }
9067
+ }
9068
+ ]
9069
+ }
9070
+ });
9071
+ }
9072
+ });
9073
+
9074
+ // ../theme-core/src/buttons/personalities/index.ts
9075
+ var buttonPersonalities, personalitiesById;
9076
+ var init_personalities = __esm({
9077
+ "../theme-core/src/buttons/personalities/index.ts"() {
9078
+ "use strict";
9079
+ init_brushed_wash();
9080
+ init_confident_chip();
9081
+ init_editorial_link();
9082
+ init_ink_stamp();
9083
+ init_pebble();
9084
+ init_soft_pill();
9085
+ init_types5();
9086
+ buttonPersonalities = [
9087
+ softPill,
9088
+ confidentChip,
9089
+ editorialLink,
9090
+ pebble,
9091
+ inkStamp,
9092
+ brushedWash
9093
+ ];
9094
+ personalitiesById = new Map(
9095
+ buttonPersonalities.map((p) => [p.id, p])
9096
+ );
9097
+ }
9098
+ });
9099
+
9100
+ // ../theme-core/src/buttons/effects/types.ts
9101
+ var init_types6 = __esm({
9102
+ "../theme-core/src/buttons/effects/types.ts"() {
9103
+ "use strict";
9104
+ }
9105
+ });
9106
+
9107
+ // ../theme-core/src/buttons/core.ts
9108
+ var init_core = __esm({
9109
+ "../theme-core/src/buttons/core.ts"() {
9110
+ "use strict";
9111
+ }
9112
+ });
9113
+
9114
+ // ../theme-core/src/buttons/index.ts
9115
+ var init_buttons = __esm({
9116
+ "../theme-core/src/buttons/index.ts"() {
9117
+ "use strict";
9118
+ init_types4();
9119
+ init_generateButtonCss();
9120
+ init_generateDefaultButtonSystem();
9121
+ init_constants();
9122
+ init_presets();
9123
+ init_personalities();
9124
+ init_types6();
9125
+ init_registry();
9126
+ init_transform();
9127
+ init_core();
9128
+ }
9129
+ });
9130
+
8138
9131
  // ../blocks/src/primitives/content/utils/sanitizeHref.ts
8139
9132
  function normalizeInput(value) {
8140
9133
  return value.replace(CONTROL_CHARS_PATTERN, "").trim();
@@ -8675,12 +9668,12 @@ var init_carousel_shared = __esm({
8675
9668
  });
8676
9669
 
8677
9670
  // ../theme-core/src/accordions/types.ts
8678
- import { z as z21 } from "zod";
9671
+ import { z as z24 } from "zod";
8679
9672
  var accordionIconSchema, accordionSystemSchema;
8680
- var init_types4 = __esm({
9673
+ var init_types7 = __esm({
8681
9674
  "../theme-core/src/accordions/types.ts"() {
8682
9675
  "use strict";
8683
- accordionIconSchema = z21.enum([
9676
+ accordionIconSchema = z24.enum([
8684
9677
  "plus-minus",
8685
9678
  // + becomes - (swap or rotate 90°)
8686
9679
  "chevron",
@@ -8692,49 +9685,49 @@ var init_types4 = __esm({
8692
9685
  "circle-plus-minus"
8693
9686
  // ⊕ becomes ⊖ (swap with fade)
8694
9687
  ]);
8695
- accordionSystemSchema = z21.object({
9688
+ accordionSystemSchema = z24.object({
8696
9689
  // Visual styling (solid color only - gradients can be added later if needed)
8697
- background: z21.object({
8698
- type: z21.literal("solid"),
8699
- colorToken: z21.string()
9690
+ background: z24.object({
9691
+ type: z24.literal("solid"),
9692
+ colorToken: z24.string()
8700
9693
  }),
8701
9694
  // Spacing (padding inside items)
8702
- spacing: z21.enum(["none", "compact", "cozy", "medium", "comfortable", "spacious"]),
9695
+ spacing: z24.enum(["none", "compact", "cozy", "medium", "comfortable", "spacious"]),
8703
9696
  // Border radius (null = inherit from theme.corners)
8704
- corners: z21.enum(["square", "soft", "rounded", "pill"]).nullable(),
9697
+ corners: z24.enum(["square", "soft", "rounded", "pill"]).nullable(),
8705
9698
  // Border styling (null = inherit from theme.border)
8706
- border: z21.object({
8707
- widthClass: z21.string(),
9699
+ border: z24.object({
9700
+ widthClass: z24.string(),
8708
9701
  // e.g., 'border', 'border-2', 'border-0'
8709
- colorToken: z21.string()
9702
+ colorToken: z24.string()
8710
9703
  }).nullable(),
8711
9704
  // Shadow (null = inherit from theme.shadow)
8712
- shadow: z21.object({
8713
- elevation: z21.enum(["none", "low", "medium", "high"]),
8714
- softness: z21.enum(["soft", "crisp", "hard"]).nullable(),
8715
- position: z21.enum(["bottom", "bottom-right"])
9705
+ shadow: z24.object({
9706
+ elevation: z24.enum(["none", "low", "medium", "high"]),
9707
+ softness: z24.enum(["soft", "crisp", "hard"]).nullable(),
9708
+ position: z24.enum(["bottom", "bottom-right"])
8716
9709
  }).nullable(),
8717
9710
  // Icon style and animation
8718
- icon: z21.object({
9711
+ icon: z24.object({
8719
9712
  style: accordionIconSchema,
8720
- position: z21.enum(["left", "right"]),
8721
- size: z21.enum(["sm", "md", "lg"])
9713
+ position: z24.enum(["left", "right"]),
9714
+ size: z24.enum(["sm", "md", "lg"])
8722
9715
  }),
8723
9716
  // Trigger (question) styling
8724
- trigger: z21.object({
8725
- textColorToken: z21.string(),
8726
- fontWeight: z21.enum(["regular", "medium", "semibold", "bold"]).nullable()
9717
+ trigger: z24.object({
9718
+ textColorToken: z24.string(),
9719
+ fontWeight: z24.enum(["regular", "medium", "semibold", "bold"]).nullable()
8727
9720
  // null = inherit from theme
8728
9721
  }),
8729
9722
  // Hover state styling
8730
- hover: z21.object({
8731
- backgroundColorToken: z21.string().optional(),
8732
- textColorToken: z21.string().optional(),
8733
- borderColorToken: z21.string().optional()
9723
+ hover: z24.object({
9724
+ backgroundColorToken: z24.string().optional(),
9725
+ textColorToken: z24.string().optional(),
9726
+ borderColorToken: z24.string().optional()
8734
9727
  }),
8735
9728
  // Content (answer) styling
8736
- content: z21.object({
8737
- textColorToken: z21.string()
9729
+ content: z24.object({
9730
+ textColorToken: z24.string()
8738
9731
  })
8739
9732
  });
8740
9733
  }
@@ -9110,8 +10103,9 @@ function normalizeBoolean(value, fallback) {
9110
10103
  return fallback;
9111
10104
  }
9112
10105
  function normalizeLocationMapValueRecord(record) {
10106
+ const addressText = typeof record.addressText === "string" ? record.addressText : typeof record.displayAddress === "string" ? record.displayAddress : null;
9113
10107
  const normalized = {
9114
- addressText: normalizeLocationAddressText(typeof record.addressText === "string" ? record.addressText : null),
10108
+ addressText: normalizeLocationAddressText(addressText),
9115
10109
  lat: normalizeOptionalNumber(record.lat),
9116
10110
  lng: normalizeOptionalNumber(record.lng)
9117
10111
  };
@@ -9126,11 +10120,49 @@ function normalizeLocationMapValue(value) {
9126
10120
  }
9127
10121
  return normalizeLocationMapValueRecord(value);
9128
10122
  }
9129
- function normalizeLocationMapProps(input) {
10123
+ function normalizeLocationMapSource(value) {
10124
+ return value === "business_address" || value === "venue" ? value : "custom";
10125
+ }
10126
+ function resolveLocationMapLocation(input) {
10127
+ const source = normalizeLocationMapSource(input.locationSource);
10128
+ if (source === "business_address") {
10129
+ const locationValue2 = normalizeLocationMapValue(input.businessAddress ?? input.location);
10130
+ return locationValue2 ? { kind: "business_address", locationValue: locationValue2 } : { kind: "unresolved", source, reason: "missing_business_address" };
10131
+ }
10132
+ if (source === "venue") {
10133
+ const venueId = typeof input.venueId === "string" && input.venueId.trim() ? input.venueId.trim() : null;
10134
+ if (!venueId) {
10135
+ return { kind: "unresolved", source, reason: "missing_venue_id" };
10136
+ }
10137
+ const locationValue2 = input.venuesById ? normalizeLocationMapValue(input.venuesById[venueId] ?? null) : null;
10138
+ return locationValue2 ? { kind: "venue", venueId, locationValue: locationValue2 } : { kind: "unresolved", source, reason: "missing_venue_location" };
10139
+ }
9130
10140
  const locationValue = normalizeLocationMapValue(input.location);
10141
+ return locationValue ? { kind: "custom", locationValue } : { kind: "unresolved", source, reason: "missing_custom_location" };
10142
+ }
10143
+ function describeUnresolvedLocationMapLocation(resolvedLocation) {
10144
+ if (resolvedLocation.kind !== "unresolved") {
10145
+ return null;
10146
+ }
10147
+ switch (resolvedLocation.reason) {
10148
+ case "missing_business_address":
10149
+ return "Business address details are not configured yet.";
10150
+ case "missing_venue_id":
10151
+ return "Choose a venue to show this map.";
10152
+ case "missing_venue_location":
10153
+ return "The selected venue does not have location details yet.";
10154
+ case "missing_custom_location":
10155
+ return "Location details coming soon.";
10156
+ }
10157
+ }
10158
+ function normalizeLocationMapProps(input) {
10159
+ const resolvedLocation = resolveLocationMapLocation(input);
10160
+ const locationValue = resolvedLocation.kind === "unresolved" ? null : resolvedLocation.locationValue;
9131
10161
  const directionsLabel = normalizeLocationAddressText(input.directionsLabel) ?? LOCATION_MAP_DEFAULTS.directionsLabel;
9132
10162
  return {
10163
+ resolvedLocation,
9133
10164
  locationValue,
10165
+ unresolvedMessage: describeUnresolvedLocationMapLocation(resolvedLocation),
9134
10166
  addressText: locationValue?.addressText ?? null,
9135
10167
  location: toLocationCoordinates(locationValue),
9136
10168
  zoom: Math.min(
@@ -9192,11 +10224,12 @@ function LocationMapView({
9192
10224
  showAddressText,
9193
10225
  showDirections,
9194
10226
  directionsLabel,
10227
+ unresolvedMessage,
9195
10228
  renderMap
9196
10229
  }) {
9197
10230
  const directionsUrl = buildGoogleMapsDirectionsUrl({ addressText, location: location2 });
9198
10231
  if (!location2 && !addressText && !directionsUrl) {
9199
- return /* @__PURE__ */ jsx13("p", { className: "rb-caption", style: textColorStyle("mutedText"), children: "Location details coming soon." });
10232
+ return /* @__PURE__ */ jsx13("p", { className: "rb-caption", style: textColorStyle("mutedText"), children: unresolvedMessage ?? "Location details coming soon." });
9200
10233
  }
9201
10234
  return /* @__PURE__ */ jsxs9("div", { className: "rb-flex rb-flex-col rb-gap-4 rb-text-left", children: [
9202
10235
  location2 && renderMap ? renderMap({
@@ -9819,7 +10852,7 @@ function ze() {
9819
10852
  /* @__PURE__ */ Te(P)
9820
10853
  );
9821
10854
  }
9822
- function z22(e) {
10855
+ function z25(e) {
9823
10856
  if (L) {
9824
10857
  if (/* @__PURE__ */ Te(P) !== null)
9825
10858
  throw Tt(), Je;
@@ -11848,12 +12881,12 @@ function ha(e, t) {
11848
12881
  var mt = we(Dr, 2);
11849
12882
  let Pr;
11850
12883
  var We = X(mt);
11851
- en(We), We.__change = ui, z22(mt);
12884
+ en(We), We.__change = ui, z25(mt);
11852
12885
  var Ut = we(mt, 2), wi = X(Ut);
11853
12886
  {
11854
12887
  var pi = (n) => {
11855
12888
  var u = na(), _ = Gr(u), y = X(_);
11856
- Ge(y, () => c(re).verified), z22(_);
12889
+ Ge(y, () => c(re).verified), z25(_);
11857
12890
  var T = we(_, 2);
11858
12891
  en(T), Pe(() => {
11859
12892
  se(T, "name", V()), jo(T, c(Le));
@@ -11862,10 +12895,10 @@ function ha(e, t) {
11862
12895
  {
11863
12896
  var _ = (T) => {
11864
12897
  var E = ia(), p = X(E);
11865
- Ge(p, () => c(re).verifying), z22(E), ne(T, E);
12898
+ Ge(p, () => c(re).verifying), z25(E), ne(T, E);
11866
12899
  }, y = (T) => {
11867
12900
  var E = oa(), p = X(E);
11868
- Ge(p, () => c(re).label), z22(E), Pe(() => se(E, "for", c(cr))), ne(T, E);
12901
+ Ge(p, () => c(re).label), z25(E), Pe(() => se(E, "for", c(cr))), ne(T, E);
11869
12902
  };
11870
12903
  $e(
11871
12904
  n,
@@ -11880,18 +12913,18 @@ function ha(e, t) {
11880
12913
  c(C) === b.VERIFIED ? n(pi) : n(bi, false);
11881
12914
  });
11882
12915
  }
11883
- z22(Ut);
12916
+ z25(Ut);
11884
12917
  var yi = we(Ut, 2);
11885
12918
  {
11886
12919
  var Ei = (n) => {
11887
12920
  var u = aa(), _ = X(u);
11888
- se(_, "href", sr), z22(u), Pe(() => se(_, "aria-label", c(re).ariaLinkLabel)), ne(n, u);
12921
+ se(_, "href", sr), z25(u), Pe(() => se(_, "aria-label", c(re).ariaLinkLabel)), ne(n, u);
11889
12922
  };
11890
12923
  $e(yi, (n) => {
11891
12924
  (N() !== true || c(Dt)) && n(Ei);
11892
12925
  });
11893
12926
  }
11894
- z22(Mt);
12927
+ z25(Mt);
11895
12928
  var Or = we(Mt, 2);
11896
12929
  {
11897
12930
  var xi = (n) => {
@@ -11899,16 +12932,16 @@ function ha(e, t) {
11899
12932
  {
11900
12933
  var y = (E) => {
11901
12934
  var p = la(), x = X(p);
11902
- Ge(x, () => c(re).expired), z22(p), Pe(() => se(p, "title", c(He))), ne(E, p);
12935
+ Ge(x, () => c(re).expired), z25(p), Pe(() => se(p, "title", c(He))), ne(E, p);
11903
12936
  }, T = (E) => {
11904
12937
  var p = sa(), x = X(p);
11905
- Ge(x, () => c(re).error), z22(p), Pe(() => se(p, "title", c(He))), ne(E, p);
12938
+ Ge(x, () => c(re).error), z25(p), Pe(() => se(p, "title", c(He))), ne(E, p);
11906
12939
  };
11907
12940
  $e(_, (E) => {
11908
12941
  c(C) === b.EXPIRED ? E(y) : E(T, false);
11909
12942
  });
11910
12943
  }
11911
- z22(u), ne(n, u);
12944
+ z25(u), ne(n, u);
11912
12945
  };
11913
12946
  $e(Or, (n) => {
11914
12947
  (c(He) || c(C) === b.EXPIRED) && n(xi);
@@ -11918,7 +12951,7 @@ function ha(e, t) {
11918
12951
  {
11919
12952
  var $i = (n) => {
11920
12953
  var u = ua(), _ = X(u), y = X(_);
11921
- Ge(y, () => c(re).footer), z22(_), z22(u), ne(n, u);
12954
+ Ge(y, () => c(re).footer), z25(_), z25(u), ne(n, u);
11922
12955
  };
11923
12956
  $e(Fr, (n) => {
11924
12957
  c(re).footer && (k() !== true || c(Dt)) && n($i);
@@ -11934,7 +12967,7 @@ function ha(e, t) {
11934
12967
  v() && n(Ci);
11935
12968
  });
11936
12969
  }
11937
- return z22(ot), nn(ot, (n) => D(B, n), () => c(B)), Pe(
12970
+ return z25(ot), nn(ot, (n) => D(B, n), () => c(B)), Pe(
11938
12971
  (n) => {
11939
12972
  se(ot, "data-state", c(C)), se(ot, "data-floating", v()), Pr = Fo(mt, 1, "altcha-checkbox", null, Pr, n), se(We, "id", c(cr)), We.required = r2() !== "onsubmit" && (!v() || r2() !== "off");
11940
12973
  },
@@ -14033,7 +15066,7 @@ var init_bookingPaymentOptionCopy = __esm({
14033
15066
 
14034
15067
  // ../blocks/src/system/runtime/shared/types.ts
14035
15068
  var DEFAULT_CURRENCY;
14036
- var init_types5 = __esm({
15069
+ var init_types8 = __esm({
14037
15070
  "../blocks/src/system/runtime/shared/types.ts"() {
14038
15071
  "use strict";
14039
15072
  DEFAULT_CURRENCY = "GBP";
@@ -14050,7 +15083,7 @@ function formatPrice(cents, currency = DEFAULT_CURRENCY, locale) {
14050
15083
  var init_formatting = __esm({
14051
15084
  "../blocks/src/system/runtime/shared/utils/formatting.ts"() {
14052
15085
  "use strict";
14053
- init_types5();
15086
+ init_types8();
14054
15087
  }
14055
15088
  });
14056
15089
 
@@ -16533,7 +17566,7 @@ var init_registrationStateMachine = __esm({
16533
17566
  });
16534
17567
 
16535
17568
  // ../blocks/src/system/runtime/nodes/event-registration/types.ts
16536
- var init_types6 = __esm({
17569
+ var init_types9 = __esm({
16537
17570
  "../blocks/src/system/runtime/nodes/event-registration/types.ts"() {
16538
17571
  "use strict";
16539
17572
  }
@@ -17694,6 +18727,7 @@ var init_PaymentSelectionStep = __esm({
17694
18727
  init_lucide_react();
17695
18728
  init_utils3();
17696
18729
  init_spinner();
18730
+ init_themedButtonClass();
17697
18731
  init_CheckIcon2();
17698
18732
  init_SelectableOptionCard();
17699
18733
  PaymentSelectionStep = ({
@@ -17794,7 +18828,7 @@ var init_PaymentSelectionStep = __esm({
17794
18828
  "button",
17795
18829
  {
17796
18830
  type: "button",
17797
- className: "primary button-primary",
18831
+ className: themedButtonClass({ variant: "primary", size: "md" }),
17798
18832
  disabled: !email.trim(),
17799
18833
  onClick: onRequestLogin,
17800
18834
  children: "Email me a login link"
@@ -18047,7 +19081,7 @@ var init_VerifyingTimeoutStep = __esm({
18047
19081
  var init_event_registration = __esm({
18048
19082
  "../blocks/src/system/runtime/nodes/event-registration/index.ts"() {
18049
19083
  "use strict";
18050
- init_types6();
19084
+ init_types9();
18051
19085
  init_utils3();
18052
19086
  init_hooks();
18053
19087
  init_sessionStorage();
@@ -19518,7 +20552,7 @@ function EventRegistrationWizard(props) {
19518
20552
  } = props;
19519
20553
  const maxTicketsNum = parseInt(maxTickets, 10) || 5;
19520
20554
  const showSpamProtection = spamProtectionEnabled ?? isSpamProtectionEnabled();
19521
- const buttonClass = `${buttonVariant} button-${buttonVariant}`;
20555
+ const buttonClass = themedButtonClass({ variant: buttonVariant, size: "md" });
19522
20556
  const wizard = useEventRegistrationWizard({
19523
20557
  anchorId: EVENT_REGISTRATION_ANCHOR_ID,
19524
20558
  occurrenceContext: occurrenceContext ?? null,
@@ -19655,6 +20689,7 @@ var init_EventRegistrationWizard = __esm({
19655
20689
  init_useEventRegistrationWizard();
19656
20690
  init_MagicLinkForm();
19657
20691
  init_spinner();
20692
+ init_themedButtonClass();
19658
20693
  init_event_registration();
19659
20694
  EVENT_REGISTRATION_ANCHOR_ID = "event-registration";
19660
20695
  EVENT_PORTAL_AUTH_COPY = {
@@ -20100,7 +21135,7 @@ function ErrorStep2({
20100
21135
  buttonVariant = "primary",
20101
21136
  onRetry
20102
21137
  }) {
20103
- const buttonClass = `${buttonVariant} button-${buttonVariant}`;
21138
+ const buttonClass = themedButtonClass({ variant: buttonVariant, size: "md" });
20104
21139
  return /* @__PURE__ */ jsxs49("div", { className: "cr-error", role: "alert", children: [
20105
21140
  /* @__PURE__ */ jsx65(StateIcon, { variant: "error", children: /* @__PURE__ */ jsx65(CrossIcon, {}) }),
20106
21141
  /* @__PURE__ */ jsx65("h3", { className: "cr-error__title", children: "Enrollment Failed" }),
@@ -20112,6 +21147,7 @@ var init_ErrorStep2 = __esm({
20112
21147
  "../blocks/src/system/runtime/nodes/course-registration/ErrorStep.tsx"() {
20113
21148
  "use strict";
20114
21149
  init_shared5();
21150
+ init_themedButtonClass();
20115
21151
  }
20116
21152
  });
20117
21153
 
@@ -20123,7 +21159,7 @@ function VerifyingTimeoutStep2({
20123
21159
  onCheckAgain,
20124
21160
  supportEmail
20125
21161
  }) {
20126
- const buttonClass = `${buttonVariant} button-${buttonVariant}`;
21162
+ const buttonClass = themedButtonClass({ variant: buttonVariant, size: "md" });
20127
21163
  return /* @__PURE__ */ jsxs50("div", { className: "cr-error", role: "alert", children: [
20128
21164
  /* @__PURE__ */ jsx66(StateIcon, { variant: "warning", children: /* @__PURE__ */ jsx66(ClockIcon, {}) }),
20129
21165
  /* @__PURE__ */ jsx66("h3", { className: "cr-error__title", children: "Payment Verification Taking Longer" }),
@@ -20140,6 +21176,7 @@ var init_VerifyingTimeoutStep2 = __esm({
20140
21176
  "../blocks/src/system/runtime/nodes/course-registration/VerifyingTimeoutStep.tsx"() {
20141
21177
  "use strict";
20142
21178
  init_shared5();
21179
+ init_themedButtonClass();
20143
21180
  }
20144
21181
  });
20145
21182
 
@@ -20151,7 +21188,7 @@ function PaymentFailedStep2({
20151
21188
  buttonVariant = "primary",
20152
21189
  onRetry
20153
21190
  }) {
20154
- const buttonClass = `${buttonVariant} button-${buttonVariant}`;
21191
+ const buttonClass = themedButtonClass({ variant: buttonVariant, size: "md" });
20155
21192
  return /* @__PURE__ */ jsxs51("div", { className: "cr-payment-failed", role: "alert", children: [
20156
21193
  /* @__PURE__ */ jsx67(StateIcon, { variant: "error", children: /* @__PURE__ */ jsx67(CrossIcon, {}) }),
20157
21194
  /* @__PURE__ */ jsx67("h3", { className: "cr-payment-failed__title", children: "Payment Failed" }),
@@ -20163,6 +21200,7 @@ var init_PaymentFailedStep2 = __esm({
20163
21200
  "../blocks/src/system/runtime/nodes/course-registration/PaymentFailedStep.tsx"() {
20164
21201
  "use strict";
20165
21202
  init_shared5();
21203
+ init_themedButtonClass();
20166
21204
  }
20167
21205
  });
20168
21206
 
@@ -21155,7 +22193,7 @@ function CourseRegistrationWizard(props) {
21155
22193
  handleRetry,
21156
22194
  handleBookingModeChange
21157
22195
  } = useCourseRegistrationWizard(props);
21158
- const buttonClass = `${buttonVariant} button-${buttonVariant}`;
22196
+ const buttonClass = themedButtonClass({ variant: buttonVariant, size: "md" });
21159
22197
  if (scopedCourses.length === 0) {
21160
22198
  return /* @__PURE__ */ jsx71(
21161
22199
  "div",
@@ -21565,6 +22603,7 @@ var init_CourseRegistrationWizard = __esm({
21565
22603
  init_PaymentFailedStep2();
21566
22604
  init_VerifyingTimeoutStep2();
21567
22605
  init_spinner();
22606
+ init_themedButtonClass();
21568
22607
  }
21569
22608
  });
21570
22609
 
@@ -21844,6 +22883,7 @@ function LocationMapClient(props) {
21844
22883
  showAddressText: normalized.showAddressText,
21845
22884
  showDirections: normalized.showDirections,
21846
22885
  directionsLabel: normalized.directionsLabel,
22886
+ unresolvedMessage: normalized.unresolvedMessage,
21847
22887
  renderMap: ({ addressText, className, height, location: location2, zoom }) => /* @__PURE__ */ jsx75(
21848
22888
  LeafletStaticMap,
21849
22889
  {
@@ -25953,6 +26993,7 @@ var init_EventPaginatedListView_client = __esm({
25953
26993
  init_EventCompactRow();
25954
26994
  init_EmptyState();
25955
26995
  init_EventListing_view();
26996
+ init_themedButtonClass();
25956
26997
  EventPaginatedListView = ({
25957
26998
  filters,
25958
26999
  display,
@@ -25995,7 +27036,10 @@ var init_EventPaginatedListView_client = __esm({
25995
27036
  {
25996
27037
  type: "button",
25997
27038
  onClick: loadMore,
25998
- className: `${display.buttonVariant} button-${display.buttonVariant}`,
27039
+ className: themedButtonClass({
27040
+ variant: display.buttonVariant,
27041
+ size: "md"
27042
+ }),
25999
27043
  children: "Try again"
26000
27044
  }
26001
27045
  )
@@ -26006,11 +27050,25 @@ var init_EventPaginatedListView_client = __esm({
26006
27050
  type: "button",
26007
27051
  onClick: loadMore,
26008
27052
  disabled: loading,
26009
- className: `${display.buttonVariant} button-${display.buttonVariant} ${loading ? "rb-opacity-50 rb-cursor-wait" : ""}`,
27053
+ className: themedButtonClass({
27054
+ variant: display.buttonVariant,
27055
+ size: "md",
27056
+ extraClassName: loading ? "rb-opacity-50 rb-cursor-wait" : null
27057
+ }),
26010
27058
  children: loading ? "Loading..." : loadMoreText
26011
27059
  }
26012
27060
  ) }) : null,
26013
- paginationMode === "seeAllLink" && seeAllUrl && hasMore ? /* @__PURE__ */ jsx89("div", { className: "rb-mt-8 rb-text-center", children: /* @__PURE__ */ jsx89("a", { href: seeAllUrl, className: `${display.buttonVariant} button-${display.buttonVariant}`, children: loadMoreText }) }) : null
27061
+ paginationMode === "seeAllLink" && seeAllUrl && hasMore ? /* @__PURE__ */ jsx89("div", { className: "rb-mt-8 rb-text-center", children: /* @__PURE__ */ jsx89(
27062
+ "a",
27063
+ {
27064
+ href: seeAllUrl,
27065
+ className: themedButtonClass({
27066
+ variant: display.buttonVariant,
27067
+ size: "md"
27068
+ }),
27069
+ children: loadMoreText
27070
+ }
27071
+ ) }) : null
26014
27072
  ] }),
26015
27073
  renderEventCard: (event) => display.listLayout === "compact" ? /* @__PURE__ */ jsx89(
26016
27074
  EventCompactRow,
@@ -27354,6 +28412,7 @@ var init_EventCombined_client = __esm({
27354
28412
  init_EventModalContext();
27355
28413
  init_EventModals();
27356
28414
  init_utils();
28415
+ init_themedButtonClass();
27357
28416
  EventCombinedClient = ({
27358
28417
  events: initialEvents,
27359
28418
  siteId,
@@ -27679,7 +28738,7 @@ var init_EventCombined_client = __esm({
27679
28738
  {
27680
28739
  type: "button",
27681
28740
  onClick: goToToday,
27682
- className: `${buttonVariant} button-${buttonVariant} rb-px-3 rb-py-1`,
28741
+ className: themedButtonClass({ variant: buttonVariant, size: "sm" }),
27683
28742
  children: "Today"
27684
28743
  }
27685
28744
  )
@@ -27996,6 +29055,7 @@ var init_EventCalendar_client = __esm({
27996
29055
  init_EventModalContext();
27997
29056
  init_EventModals();
27998
29057
  init_WeekTimetableView();
29058
+ init_themedButtonClass();
27999
29059
  EventCalendarClient = ({
28000
29060
  render
28001
29061
  }) => {
@@ -28284,7 +29344,10 @@ var init_EventCalendar_client = __esm({
28284
29344
  {
28285
29345
  type: "button",
28286
29346
  onClick: onToday,
28287
- className: `${display.buttonVariant} button-${display.buttonVariant} rb-px-3 rb-py-1`,
29347
+ className: themedButtonClass({
29348
+ variant: display.buttonVariant,
29349
+ size: "sm"
29350
+ }),
28288
29351
  children: "Today"
28289
29352
  }
28290
29353
  )
@@ -28297,7 +29360,10 @@ var init_EventCalendar_client = __esm({
28297
29360
  {
28298
29361
  type: "button",
28299
29362
  onClick: onToday,
28300
- className: `${display.buttonVariant} button-${display.buttonVariant} rb-px-3 rb-py-1`,
29363
+ className: themedButtonClass({
29364
+ variant: display.buttonVariant,
29365
+ size: "sm"
29366
+ }),
28301
29367
  children: "Try again"
28302
29368
  }
28303
29369
  )
@@ -28392,6 +29458,7 @@ var init_form_client = __esm({
28392
29458
  init_client2();
28393
29459
  init_src3();
28394
29460
  init_useFormSubmission();
29461
+ init_themedButtonClass();
28395
29462
  FormNodeClient = ({
28396
29463
  render
28397
29464
  }) => {
@@ -28529,7 +29596,19 @@ var init_form_client = __esm({
28529
29596
  return renderField(group.field);
28530
29597
  }),
28531
29598
  showSpamProtection && /* @__PURE__ */ jsx102(AltchaWidget, { challengeUrl: getChallengeUrl(), onSolutionChange: setAltchaSolution }),
28532
- /* @__PURE__ */ jsx102("div", { className: "fb-actions", children: /* @__PURE__ */ jsx102("div", { className: "fb-actions-inner", children: /* @__PURE__ */ jsx102("button", { type: "submit", className: "primary button-primary rb-w-full rb-sm-w-auto", disabled: state.tag === "submitting", children: state.tag === "submitting" ? "Submitting..." : render.display.submitLabel }) }) })
29599
+ /* @__PURE__ */ jsx102("div", { className: "fb-actions", children: /* @__PURE__ */ jsx102("div", { className: "fb-actions-inner", children: /* @__PURE__ */ jsx102(
29600
+ "button",
29601
+ {
29602
+ type: "submit",
29603
+ className: themedButtonClass({
29604
+ variant: "primary",
29605
+ size: "md",
29606
+ extraClassName: "rb-w-full rb-sm-w-auto"
29607
+ }),
29608
+ disabled: state.tag === "submitting",
29609
+ children: state.tag === "submitting" ? "Submitting..." : render.display.submitLabel
29610
+ }
29611
+ ) }) })
28533
29612
  ] });
28534
29613
  };
28535
29614
  }
@@ -28648,7 +29727,7 @@ function NewsletterFormClient({
28648
29727
  "button",
28649
29728
  {
28650
29729
  type: "submit",
28651
- className: "primary button-primary",
29730
+ className: themedButtonClass({ variant: "primary", size: "md" }),
28652
29731
  disabled: isSubmitting,
28653
29732
  children: isSubmitting ? "Subscribing..." : render.display.buttonLabel
28654
29733
  }
@@ -28666,6 +29745,7 @@ var init_newsletter_form_client = __esm({
28666
29745
  init_client2();
28667
29746
  init_src3();
28668
29747
  init_api();
29748
+ init_themedButtonClass();
28669
29749
  }
28670
29750
  });
28671
29751
 
@@ -28712,153 +29792,9 @@ var init_generateCssVars = __esm({
28712
29792
  });
28713
29793
 
28714
29794
  // ../theme-core/src/styles/shadow.ts
28715
- var init_shadow = __esm({
28716
- "../theme-core/src/styles/shadow.ts"() {
28717
- "use strict";
28718
- }
28719
- });
28720
-
28721
- // ../theme-core/src/tokens/resolver.ts
28722
- var init_resolver = __esm({
28723
- "../theme-core/src/tokens/resolver.ts"() {
28724
- "use strict";
28725
- }
28726
- });
28727
-
28728
- // ../theme-core/src/buttons/effects/presets/background.ts
28729
- var init_background = __esm({
28730
- "../theme-core/src/buttons/effects/presets/background.ts"() {
28731
- "use strict";
28732
- }
28733
- });
28734
-
28735
- // ../theme-core/src/buttons/effects/cssUtils.ts
28736
- var init_cssUtils = __esm({
28737
- "../theme-core/src/buttons/effects/cssUtils.ts"() {
28738
- "use strict";
28739
- }
28740
- });
28741
-
28742
- // ../theme-core/src/buttons/effects/presets/shadow.ts
28743
29795
  var init_shadow2 = __esm({
28744
- "../theme-core/src/buttons/effects/presets/shadow.ts"() {
28745
- "use strict";
28746
- init_cssUtils();
28747
- }
28748
- });
28749
-
28750
- // ../theme-core/src/buttons/effects/presets/transform.ts
28751
- var init_transform = __esm({
28752
- "../theme-core/src/buttons/effects/presets/transform.ts"() {
28753
- "use strict";
28754
- init_cssUtils();
28755
- }
28756
- });
28757
-
28758
- // ../theme-core/src/buttons/effects/presets/overlay.ts
28759
- var init_overlay = __esm({
28760
- "../theme-core/src/buttons/effects/presets/overlay.ts"() {
28761
- "use strict";
28762
- }
28763
- });
28764
-
28765
- // ../theme-core/src/buttons/effects/presets/text.ts
28766
- var init_text = __esm({
28767
- "../theme-core/src/buttons/effects/presets/text.ts"() {
28768
- "use strict";
28769
- }
28770
- });
28771
-
28772
- // ../theme-core/src/buttons/effects/presets/border.ts
28773
- var init_border = __esm({
28774
- "../theme-core/src/buttons/effects/presets/border.ts"() {
28775
- "use strict";
28776
- }
28777
- });
28778
-
28779
- // ../theme-core/src/buttons/effects/presets/animation.ts
28780
- var init_animation = __esm({
28781
- "../theme-core/src/buttons/effects/presets/animation.ts"() {
28782
- "use strict";
28783
- }
28784
- });
28785
-
28786
- // ../theme-core/src/interactive/effects/nav-underline.ts
28787
- var init_nav_underline = __esm({
28788
- "../theme-core/src/interactive/effects/nav-underline.ts"() {
28789
- "use strict";
28790
- }
28791
- });
28792
-
28793
- // ../theme-core/src/interactive/effects/nav-frosted.ts
28794
- var init_nav_frosted = __esm({
28795
- "../theme-core/src/interactive/effects/nav-frosted.ts"() {
28796
- "use strict";
28797
- }
28798
- });
28799
-
28800
- // ../theme-core/src/interactive/effects/index.ts
28801
- var init_effects = __esm({
28802
- "../theme-core/src/interactive/effects/index.ts"() {
28803
- "use strict";
28804
- init_nav_underline();
28805
- init_nav_frosted();
28806
- }
28807
- });
28808
-
28809
- // ../theme-core/src/buttons/effects/registry.ts
28810
- var init_registry = __esm({
28811
- "../theme-core/src/buttons/effects/registry.ts"() {
28812
- "use strict";
28813
- init_background();
28814
- init_shadow2();
28815
- init_transform();
28816
- init_overlay();
28817
- init_text();
28818
- init_border();
28819
- init_animation();
28820
- init_effects();
28821
- }
28822
- });
28823
-
28824
- // ../theme-core/src/interactive/generateEffectsCSS.ts
28825
- var init_generateEffectsCSS = __esm({
28826
- "../theme-core/src/interactive/generateEffectsCSS.ts"() {
28827
- "use strict";
28828
- init_registry();
28829
- }
28830
- });
28831
-
28832
- // ../theme-core/src/buttons/constants.ts
28833
- var init_constants = __esm({
28834
- "../theme-core/src/buttons/constants.ts"() {
28835
- "use strict";
28836
- }
28837
- });
28838
-
28839
- // ../theme-core/src/buttons/utils/contrast.ts
28840
- var init_contrast2 = __esm({
28841
- "../theme-core/src/buttons/utils/contrast.ts"() {
28842
- "use strict";
28843
- }
28844
- });
28845
-
28846
- // ../theme-core/src/buttons/generateDefaultButtonSystem.ts
28847
- var init_generateDefaultButtonSystem = __esm({
28848
- "../theme-core/src/buttons/generateDefaultButtonSystem.ts"() {
28849
- "use strict";
28850
- init_contrast2();
28851
- }
28852
- });
28853
-
28854
- // ../theme-core/src/buttons/generateButtonCss.ts
28855
- var init_generateButtonCss = __esm({
28856
- "../theme-core/src/buttons/generateButtonCss.ts"() {
29796
+ "../theme-core/src/styles/shadow.ts"() {
28857
29797
  "use strict";
28858
- init_resolver();
28859
- init_generateEffectsCSS();
28860
- init_constants();
28861
- init_generateDefaultButtonSystem();
28862
29798
  }
28863
29799
  });
28864
29800
 
@@ -28897,7 +29833,7 @@ var init_border2 = __esm({
28897
29833
  var init_generateAccordionCss = __esm({
28898
29834
  "../theme-core/src/accordions/generateAccordionCss.ts"() {
28899
29835
  "use strict";
28900
- init_types4();
29836
+ init_types7();
28901
29837
  init_constants2();
28902
29838
  init_border2();
28903
29839
  }
@@ -28911,66 +29847,66 @@ var init_defaults = __esm({
28911
29847
  });
28912
29848
 
28913
29849
  // ../theme-core/src/inputs/types.ts
28914
- import { z as z23 } from "zod";
29850
+ import { z as z26 } from "zod";
28915
29851
  var inputSystemSchema;
28916
- var init_types7 = __esm({
29852
+ var init_types10 = __esm({
28917
29853
  "../theme-core/src/inputs/types.ts"() {
28918
29854
  "use strict";
28919
- inputSystemSchema = z23.object({
29855
+ inputSystemSchema = z26.object({
28920
29856
  // Base styling (applied to all inputs)
28921
- base: z23.object({
28922
- background: z23.union([
28923
- z23.object({
28924
- type: z23.literal("solid"),
28925
- colorToken: z23.string()
29857
+ base: z26.object({
29858
+ background: z26.union([
29859
+ z26.object({
29860
+ type: z26.literal("solid"),
29861
+ colorToken: z26.string()
28926
29862
  }),
28927
- z23.object({
28928
- type: z23.literal("transparent")
29863
+ z26.object({
29864
+ type: z26.literal("transparent")
28929
29865
  })
28930
29866
  ]),
28931
- textColorToken: z23.string(),
28932
- border: z23.object({
28933
- widthClass: z23.string(),
29867
+ textColorToken: z26.string(),
29868
+ border: z26.object({
29869
+ widthClass: z26.string(),
28934
29870
  // e.g., 'border', 'border-2'
28935
- colorToken: z23.string(),
28936
- style: z23.enum(["all", "underline"]).optional()
29871
+ colorToken: z26.string(),
29872
+ style: z26.enum(["all", "underline"]).optional()
28937
29873
  }),
28938
- corners: z23.enum(["square", "soft", "rounded", "pill"]).nullable(),
29874
+ corners: z26.enum(["square", "soft", "rounded", "pill"]).nullable(),
28939
29875
  // null = inherit from theme.corners
28940
- shadow: z23.object({
28941
- elevation: z23.enum(["none", "low", "medium"]),
28942
- softness: z23.enum(["soft", "crisp", "hard"]).nullable()
29876
+ shadow: z26.object({
29877
+ elevation: z26.enum(["none", "low", "medium"]),
29878
+ softness: z26.enum(["soft", "crisp", "hard"]).nullable()
28943
29879
  }).nullable(),
28944
- spacing: z23.enum(["compact", "cozy", "medium", "comfortable"]),
29880
+ spacing: z26.enum(["compact", "cozy", "medium", "comfortable"]),
28945
29881
  // padding inside inputs
28946
- fontSize: z23.enum(["sm", "base", "lg"])
29882
+ fontSize: z26.enum(["sm", "base", "lg"])
28947
29883
  }),
28948
29884
  // Label styling
28949
- label: z23.object({
28950
- textColorToken: z23.string(),
28951
- fontWeight: z23.enum(["regular", "medium", "semibold", "bold", "black"]),
28952
- fontSize: z23.enum(["2xs", "xs", "sm", "base"]),
28953
- textTransform: z23.enum(["none", "uppercase", "lowercase", "capitalize"]).optional(),
28954
- letterSpacing: z23.enum(["normal", "wide", "wider", "widest"]).optional(),
28955
- opacity: z23.number().min(0.2).max(1).optional()
29885
+ label: z26.object({
29886
+ textColorToken: z26.string(),
29887
+ fontWeight: z26.enum(["regular", "medium", "semibold", "bold", "black"]),
29888
+ fontSize: z26.enum(["2xs", "xs", "sm", "base"]),
29889
+ textTransform: z26.enum(["none", "uppercase", "lowercase", "capitalize"]).optional(),
29890
+ letterSpacing: z26.enum(["normal", "wide", "wider", "widest"]).optional(),
29891
+ opacity: z26.number().min(0.2).max(1).optional()
28956
29892
  }),
28957
29893
  // Focus state
28958
- focus: z23.object({
28959
- ringColorToken: z23.string(),
28960
- ringWidth: z23.enum(["0", "1", "2", "3"]),
28961
- borderColorToken: z23.string().optional()
29894
+ focus: z26.object({
29895
+ ringColorToken: z26.string(),
29896
+ ringWidth: z26.enum(["0", "1", "2", "3"]),
29897
+ borderColorToken: z26.string().optional()
28962
29898
  // Change border color on focus
28963
29899
  }),
28964
29900
  // Error state (for validation feedback)
28965
- error: z23.object({
28966
- borderColorToken: z23.string(),
28967
- textColorToken: z23.string()
29901
+ error: z26.object({
29902
+ borderColorToken: z26.string(),
29903
+ textColorToken: z26.string()
28968
29904
  }),
28969
29905
  // Disabled state
28970
- disabled: z23.object({
28971
- backgroundColorToken: z23.string(),
28972
- textColorToken: z23.string(),
28973
- opacity: z23.number().min(0.3).max(0.7)
29906
+ disabled: z26.object({
29907
+ backgroundColorToken: z26.string(),
29908
+ textColorToken: z26.string(),
29909
+ opacity: z26.number().min(0.3).max(0.7)
28974
29910
  })
28975
29911
  });
28976
29912
  }
@@ -28980,7 +29916,7 @@ var init_types7 = __esm({
28980
29916
  var init_generateInputCss = __esm({
28981
29917
  "../theme-core/src/inputs/generateInputCss.ts"() {
28982
29918
  "use strict";
28983
- init_types7();
29919
+ init_types10();
28984
29920
  init_constants();
28985
29921
  init_border2();
28986
29922
  }
@@ -28994,65 +29930,65 @@ var init_defaults2 = __esm({
28994
29930
  });
28995
29931
 
28996
29932
  // ../theme-core/src/interactive/baseSchema.ts
28997
- import { z as z24 } from "zod";
28998
- var interactiveTypographySchema, effectApplicationSchema, effectCompositionSchema;
29933
+ import { z as z27 } from "zod";
29934
+ var interactiveTypographySchema, effectApplicationSchema2, effectCompositionSchema;
28999
29935
  var init_baseSchema = __esm({
29000
29936
  "../theme-core/src/interactive/baseSchema.ts"() {
29001
29937
  "use strict";
29002
- interactiveTypographySchema = z24.object({
29938
+ interactiveTypographySchema = z27.object({
29003
29939
  /** Font family source */
29004
- typography: z24.enum(["body", "heading"]).default("body"),
29940
+ typography: z27.enum(["body", "heading"]).default("body"),
29005
29941
  /** Font weight */
29006
- fontWeight: z24.enum(["regular", "medium", "semibold", "bold"]).default("medium"),
29942
+ fontWeight: z27.enum(["regular", "medium", "semibold", "bold"]).default("medium"),
29007
29943
  /** Text transform */
29008
- textTransform: z24.enum(["none", "uppercase", "capitalize"]).default("none"),
29944
+ textTransform: z27.enum(["none", "uppercase", "capitalize"]).default("none"),
29009
29945
  /** Italic style */
29010
- italic: z24.boolean().default(false)
29946
+ italic: z27.boolean().default(false)
29011
29947
  });
29012
- effectApplicationSchema = z24.object({
29948
+ effectApplicationSchema2 = z27.object({
29013
29949
  /** Effect preset ID */
29014
- effectId: z24.string(),
29950
+ effectId: z27.string(),
29015
29951
  /** User-provided customization options */
29016
- options: z24.record(z24.string(), z24.any()).optional()
29952
+ options: z27.record(z27.string(), z27.any()).optional()
29017
29953
  });
29018
- effectCompositionSchema = z24.object({
29954
+ effectCompositionSchema = z27.object({
29019
29955
  /** Effects always applied */
29020
- base: z24.array(effectApplicationSchema).optional(),
29956
+ base: z27.array(effectApplicationSchema2).optional(),
29021
29957
  /** Effects applied on hover */
29022
- hover: z24.array(effectApplicationSchema).optional(),
29958
+ hover: z27.array(effectApplicationSchema2).optional(),
29023
29959
  /** Effects applied on active/pressed */
29024
- active: z24.array(effectApplicationSchema).optional(),
29960
+ active: z27.array(effectApplicationSchema2).optional(),
29025
29961
  /** Effects applied on focus */
29026
- focus: z24.array(effectApplicationSchema).optional()
29962
+ focus: z27.array(effectApplicationSchema2).optional()
29027
29963
  });
29028
29964
  }
29029
29965
  });
29030
29966
 
29031
29967
  // ../theme-core/src/navigation/types.ts
29032
- import { z as z25 } from "zod";
29968
+ import { z as z28 } from "zod";
29033
29969
  var navLinkPaddingSchema, navLinkPaddingXSchema, navLinkBorderRadiusSchema, navLinkTextSizeSchema, navLinkLetterSpacingSchema, navLinkStyleSchema;
29034
- var init_types8 = __esm({
29970
+ var init_types11 = __esm({
29035
29971
  "../theme-core/src/navigation/types.ts"() {
29036
29972
  "use strict";
29037
29973
  init_baseSchema();
29038
- navLinkPaddingSchema = z25.enum(["none", "compact", "default"]);
29039
- navLinkPaddingXSchema = z25.enum(["none", "tight", "compact", "default", "relaxed", "spacious"]);
29040
- navLinkBorderRadiusSchema = z25.enum(["none", "sm", "md", "full"]);
29041
- navLinkTextSizeSchema = z25.enum(["xs", "sm", "base", "lg"]);
29042
- navLinkLetterSpacingSchema = z25.enum(["normal", "wide", "wider", "widest"]);
29043
- navLinkStyleSchema = z25.object({
29974
+ navLinkPaddingSchema = z28.enum(["none", "compact", "default"]);
29975
+ navLinkPaddingXSchema = z28.enum(["none", "tight", "compact", "default", "relaxed", "spacious"]);
29976
+ navLinkBorderRadiusSchema = z28.enum(["none", "sm", "md", "full"]);
29977
+ navLinkTextSizeSchema = z28.enum(["xs", "sm", "base", "lg"]);
29978
+ navLinkLetterSpacingSchema = z28.enum(["normal", "wide", "wider", "widest"]);
29979
+ navLinkStyleSchema = z28.object({
29044
29980
  /** Display name for the style */
29045
- name: z25.string().min(1).max(30).optional(),
29981
+ name: z28.string().min(1).max(30).optional(),
29046
29982
  /** Typography settings (inherited from interactive base) */
29047
29983
  ...interactiveTypographySchema.shape,
29048
29984
  /** Text color token */
29049
- colorToken: z25.string().default("text"),
29985
+ colorToken: z28.string().default("text"),
29050
29986
  /** Optional text size override */
29051
29987
  textSize: navLinkTextSizeSchema.optional(),
29052
29988
  /** Optional letter spacing override */
29053
29989
  letterSpacing: navLinkLetterSpacingSchema.optional(),
29054
29990
  /** Hover/active color token (for color-change effects) */
29055
- hoverColorToken: z25.string().nullable().optional(),
29991
+ hoverColorToken: z28.string().nullable().optional(),
29056
29992
  /** Padding preset */
29057
29993
  padding: navLinkPaddingSchema.default("compact"),
29058
29994
  /** Horizontal padding override (overrides horizontal component of padding preset) */
@@ -29076,7 +30012,7 @@ var init_generateBaseCSS = __esm({
29076
30012
  var init_generateNavLinkCSS = __esm({
29077
30013
  "../theme-core/src/navigation/generateNavLinkCSS.ts"() {
29078
30014
  "use strict";
29079
- init_types8();
30015
+ init_types11();
29080
30016
  init_generateBaseCSS();
29081
30017
  init_generateEffectsCSS();
29082
30018
  }
@@ -29084,7 +30020,7 @@ var init_generateNavLinkCSS = __esm({
29084
30020
 
29085
30021
  // ../theme-core/src/navigation/presets.ts
29086
30022
  var NAV_LINK_PRESETS, NAV_LINK_PRESET_IDS;
29087
- var init_presets = __esm({
30023
+ var init_presets2 = __esm({
29088
30024
  "../theme-core/src/navigation/presets.ts"() {
29089
30025
  "use strict";
29090
30026
  NAV_LINK_PRESETS = {
@@ -29233,19 +30169,19 @@ var init_presets = __esm({
29233
30169
  });
29234
30170
 
29235
30171
  // ../theme-core/src/shared/componentStyles.ts
29236
- import { z as z26 } from "zod";
30172
+ import { z as z29 } from "zod";
29237
30173
  var componentBorderSchema, componentShadowSchema;
29238
30174
  var init_componentStyles = __esm({
29239
30175
  "../theme-core/src/shared/componentStyles.ts"() {
29240
30176
  "use strict";
29241
- componentBorderSchema = z26.object({
29242
- width: z26.enum(["none", "hairline", "thin", "medium", "thick"]).default("none"),
29243
- style: z26.enum(["solid", "dashed"]).default("solid"),
29244
- colorToken: z26.string().optional()
30177
+ componentBorderSchema = z29.object({
30178
+ width: z29.enum(["none", "hairline", "thin", "medium", "thick"]).default("none"),
30179
+ style: z29.enum(["solid", "dashed"]).default("solid"),
30180
+ colorToken: z29.string().optional()
29245
30181
  // defaults to "border" if not set
29246
30182
  });
29247
- componentShadowSchema = z26.object({
29248
- elevation: z26.enum(["none", "sm", "md", "lg", "xl", "2xl"]).default("sm")
30183
+ componentShadowSchema = z29.object({
30184
+ elevation: z29.enum(["none", "sm", "md", "lg", "xl", "2xl"]).default("sm")
29249
30185
  });
29250
30186
  }
29251
30187
  });
@@ -29264,7 +30200,7 @@ var init_generateHeaderCss = __esm({
29264
30200
  "use strict";
29265
30201
  init_resolver();
29266
30202
  init_generateNavLinkCSS();
29267
- init_presets();
30203
+ init_presets2();
29268
30204
  init_shared6();
29269
30205
  init_breakpoints();
29270
30206
  }
@@ -29284,7 +30220,7 @@ var init_generateFooterCss = __esm({
29284
30220
  "use strict";
29285
30221
  init_resolver();
29286
30222
  init_generateNavLinkCSS();
29287
- init_presets();
30223
+ init_presets2();
29288
30224
  }
29289
30225
  });
29290
30226
 
@@ -29938,7 +30874,7 @@ var init_blockOverrides = __esm({
29938
30874
  });
29939
30875
 
29940
30876
  // ../theme-core/src/customCss/validation.ts
29941
- import { z as z27 } from "zod";
30877
+ import { z as z30 } from "zod";
29942
30878
  function isForbiddenSelectorPart(part) {
29943
30879
  const normalized = part.toLowerCase().trim();
29944
30880
  if (!normalized) return true;
@@ -29990,38 +30926,38 @@ var init_validation3 = __esm({
29990
30926
  UNIVERSAL_SELECTOR = "*";
29991
30927
  REMOTE_URL_PATTERN = /url\s*\(\s*['"]?(https?:|\/\/)/i;
29992
30928
  JAVASCRIPT_URL_PATTERN = /javascript\s*:/i;
29993
- selectorSchema = z27.string().min(1, "Selector cannot be empty").max(200, "Selector too long (max 200 characters)").refine(
30929
+ selectorSchema = z30.string().min(1, "Selector cannot be empty").max(200, "Selector too long (max 200 characters)").refine(
29994
30930
  (s) => !containsForbiddenSelector(s),
29995
30931
  { message: "Global selectors (:root, html, body, *) are not allowed" }
29996
30932
  );
29997
- declarationValueSchema = z27.string().max(500, "Declaration value too long (max 500 characters)").refine(
30933
+ declarationValueSchema = z30.string().max(500, "Declaration value too long (max 500 characters)").refine(
29998
30934
  (v) => !containsRemoteUrl(v),
29999
30935
  { message: "Remote url() references are not allowed. Use local paths, data URIs, or fragment IDs." }
30000
30936
  ).refine(
30001
30937
  (v) => !containsJavascriptUrl(v),
30002
30938
  { message: "javascript: URLs are not allowed" }
30003
30939
  );
30004
- declarationsSchema = z27.record(
30005
- z27.string().min(1).max(100),
30940
+ declarationsSchema = z30.record(
30941
+ z30.string().min(1).max(100),
30006
30942
  // property name
30007
30943
  declarationValueSchema
30008
30944
  // property value
30009
30945
  );
30010
- customCssRuleSchema = z27.object({
30011
- id: z27.string().min(1, "Rule ID is required").max(50, "Rule ID too long"),
30946
+ customCssRuleSchema = z30.object({
30947
+ id: z30.string().min(1, "Rule ID is required").max(50, "Rule ID too long"),
30012
30948
  selector: selectorSchema,
30013
30949
  declarations: declarationsSchema
30014
30950
  });
30015
30951
  blockCustomCssRuleSchema = customCssRuleSchema.extend({
30016
- blockKind: z27.string().min(1, "Block kind is required").max(50, "Block kind too long")
30952
+ blockKind: z30.string().min(1, "Block kind is required").max(50, "Block kind too long")
30017
30953
  });
30018
- customCssRulesSchema = z27.array(customCssRuleSchema).optional();
30019
- blockCustomCssRulesSchema = z27.array(blockCustomCssRuleSchema).optional();
30954
+ customCssRulesSchema = z30.array(customCssRuleSchema).optional();
30955
+ blockCustomCssRulesSchema = z30.array(blockCustomCssRuleSchema).optional();
30020
30956
  }
30021
30957
  });
30022
30958
 
30023
30959
  // ../theme-core/src/customCss/atRuleValidation.ts
30024
- import { z as z28 } from "zod";
30960
+ import { z as z31 } from "zod";
30025
30961
  function isValidKeyframeOffset(offset) {
30026
30962
  const trimmed = offset.trim().toLowerCase();
30027
30963
  if (trimmed === "from" || trimmed === "to") return true;
@@ -30042,75 +30978,75 @@ var init_atRuleValidation = __esm({
30042
30978
  ANIMATION_NAME_PATTERN = /^[a-zA-Z_-][a-zA-Z0-9_-]*$/;
30043
30979
  BLOCKED_AT_RULES = ["@import", "@charset"];
30044
30980
  BLOCKED_AT_RULE_PATTERN = /@(?:import|charset)\b/i;
30045
- ruleIdSchema = z28.string().min(1, "Rule ID is required").max(50, "Rule ID too long");
30046
- nestedRuleSchema = z28.object({
30981
+ ruleIdSchema = z31.string().min(1, "Rule ID is required").max(50, "Rule ID too long");
30982
+ nestedRuleSchema = z31.object({
30047
30983
  selector: selectorSchema,
30048
30984
  declarations: declarationsSchema
30049
30985
  });
30050
- keyframeOffsetSchema = z28.string().transform((offset) => offset.trim()).refine(
30986
+ keyframeOffsetSchema = z31.string().transform((offset) => offset.trim()).refine(
30051
30987
  (offset) => KEYFRAME_OFFSET_PATTERN.test(offset),
30052
30988
  { message: 'Invalid keyframe offset. Use percentages (0%, 50%, 100%) or "from"/"to"' }
30053
30989
  ).refine(
30054
30990
  isValidKeyframeOffset,
30055
30991
  { message: "Keyframe offset must be between 0% and 100%" }
30056
30992
  );
30057
- animationNameSchema = z28.string().min(1, "Animation name is required").max(50, "Animation name too long").refine(
30993
+ animationNameSchema = z31.string().min(1, "Animation name is required").max(50, "Animation name too long").refine(
30058
30994
  (name) => ANIMATION_NAME_PATTERN.test(name),
30059
30995
  { message: "Invalid animation name. Use letters, numbers, dashes, underscores (start with letter, dash, or underscore)" }
30060
30996
  );
30061
- keyframeSchema = z28.object({
30997
+ keyframeSchema = z31.object({
30062
30998
  offset: keyframeOffsetSchema,
30063
30999
  declarations: declarationsSchema
30064
31000
  });
30065
- keyframesAtRuleSchema = z28.object({
31001
+ keyframesAtRuleSchema = z31.object({
30066
31002
  id: ruleIdSchema,
30067
- type: z28.literal("keyframes"),
31003
+ type: z31.literal("keyframes"),
30068
31004
  name: animationNameSchema,
30069
- frames: z28.array(keyframeSchema).min(1, "At least one keyframe is required")
31005
+ frames: z31.array(keyframeSchema).min(1, "At least one keyframe is required")
30070
31006
  });
30071
- fontFaceDeclarationsSchema = z28.record(z28.string().min(1).max(100), declarationValueSchema).refine(
31007
+ fontFaceDeclarationsSchema = z31.record(z31.string().min(1).max(100), declarationValueSchema).refine(
30072
31008
  (decls) => "fontFamily" in decls || "font-family" in decls,
30073
31009
  { message: "font-family is required in @font-face" }
30074
31010
  );
30075
- fontFaceAtRuleSchema = z28.object({
31011
+ fontFaceAtRuleSchema = z31.object({
30076
31012
  id: ruleIdSchema,
30077
- type: z28.literal("font-face"),
31013
+ type: z31.literal("font-face"),
30078
31014
  declarations: fontFaceDeclarationsSchema
30079
31015
  });
30080
- mediaQuerySchema = z28.string().min(1, "Media query is required").max(200, "Media query too long");
30081
- mediaAtRuleSchema = z28.object({
31016
+ mediaQuerySchema = z31.string().min(1, "Media query is required").max(200, "Media query too long");
31017
+ mediaAtRuleSchema = z31.object({
30082
31018
  id: ruleIdSchema,
30083
- type: z28.literal("media"),
31019
+ type: z31.literal("media"),
30084
31020
  query: mediaQuerySchema,
30085
- rules: z28.array(nestedRuleSchema).min(1, "At least one rule is required")
31021
+ rules: z31.array(nestedRuleSchema).min(1, "At least one rule is required")
30086
31022
  });
30087
- supportsConditionSchema = z28.string().min(1, "Supports condition is required").max(200, "Supports condition too long");
30088
- supportsAtRuleSchema = z28.object({
31023
+ supportsConditionSchema = z31.string().min(1, "Supports condition is required").max(200, "Supports condition too long");
31024
+ supportsAtRuleSchema = z31.object({
30089
31025
  id: ruleIdSchema,
30090
- type: z28.literal("supports"),
31026
+ type: z31.literal("supports"),
30091
31027
  condition: supportsConditionSchema,
30092
- rules: z28.array(nestedRuleSchema).min(1, "At least one rule is required")
31028
+ rules: z31.array(nestedRuleSchema).min(1, "At least one rule is required")
30093
31029
  });
30094
- rawCssSchema = z28.string().min(1, "CSS is required").max(5e3, "Raw CSS too long (max 5000 characters)").refine(
31030
+ rawCssSchema = z31.string().min(1, "CSS is required").max(5e3, "Raw CSS too long (max 5000 characters)").refine(
30095
31031
  (css) => css.trim().startsWith("@"),
30096
31032
  { message: "Raw at-rule must start with @" }
30097
31033
  ).refine(
30098
31034
  (css) => !containsBlockedAtRule(css),
30099
31035
  { message: `Blocked at-rules: ${BLOCKED_AT_RULES.join(", ")}. Use typed at-rules or local assets instead.` }
30100
31036
  );
30101
- rawAtRuleSchema = z28.object({
31037
+ rawAtRuleSchema = z31.object({
30102
31038
  id: ruleIdSchema,
30103
- type: z28.literal("raw"),
31039
+ type: z31.literal("raw"),
30104
31040
  css: rawCssSchema
30105
31041
  });
30106
- customCssAtRuleSchema = z28.discriminatedUnion("type", [
31042
+ customCssAtRuleSchema = z31.discriminatedUnion("type", [
30107
31043
  keyframesAtRuleSchema,
30108
31044
  fontFaceAtRuleSchema,
30109
31045
  mediaAtRuleSchema,
30110
31046
  supportsAtRuleSchema,
30111
31047
  rawAtRuleSchema
30112
31048
  ]);
30113
- customCssAtRulesSchema = z28.array(customCssAtRuleSchema).optional();
31049
+ customCssAtRulesSchema = z31.array(customCssAtRuleSchema).optional();
30114
31050
  }
30115
31051
  });
30116
31052
 
@@ -30205,7 +31141,7 @@ var init_buildThemeRuntime = __esm({
30205
31141
  init_expandPalette();
30206
31142
  init_fontFamily();
30207
31143
  init_generateCssVars();
30208
- init_shadow();
31144
+ init_shadow2();
30209
31145
  init_generateButtonCss();
30210
31146
  init_generateCardCss();
30211
31147
  init_generateAccordionCss();
@@ -31243,217 +32179,97 @@ function brandNonEmptyString(value, label) {
31243
32179
  return value;
31244
32180
  }
31245
32181
 
32182
+ // ../theme-core/src/palette/variants/types.ts
32183
+ init_styleTags();
32184
+ import { z as z36 } from "zod";
32185
+
31246
32186
  // ../theme-core/src/schema.ts
31247
- import { z as z33 } from "zod";
32187
+ import { z as z35 } from "zod";
31248
32188
 
31249
32189
  // ../theme-core/src/lib/media.ts
31250
- import z29 from "zod";
31251
- var hotspotSchema2 = z29.object({
31252
- x: z29.number().min(0).max(1),
31253
- y: z29.number().min(0).max(1),
31254
- radius: z29.number().optional()
31255
- });
31256
- var rotationSchema2 = z29.union([z29.literal(0), z29.literal(90), z29.literal(180), z29.literal(270)]);
31257
- var rectSchema2 = z29.tuple([z29.number(), z29.number(), z29.number(), z29.number()]);
31258
- var aspectCropSchema2 = z29.object({
31259
- aspect: z29.preprocess((value) => value == null ? void 0 : value, z29.string().optional()),
31260
- rect: z29.preprocess((value) => value == null ? void 0 : value, rectSchema2.optional()),
31261
- hotspot: z29.preprocess((value) => value == null ? void 0 : value, hotspotSchema2.optional()),
31262
- rotation: z29.preprocess((value) => value == null ? void 0 : value, rotationSchema2.optional())
31263
- });
31264
- var transformSchema2 = z29.object({
31265
- aspectCrops: z29.preprocess((value) => {
32190
+ import z32 from "zod";
32191
+ var hotspotSchema2 = z32.object({
32192
+ x: z32.number().min(0).max(1),
32193
+ y: z32.number().min(0).max(1),
32194
+ radius: z32.number().optional()
32195
+ });
32196
+ var rotationSchema2 = z32.union([z32.literal(0), z32.literal(90), z32.literal(180), z32.literal(270)]);
32197
+ var rectSchema2 = z32.tuple([z32.number(), z32.number(), z32.number(), z32.number()]);
32198
+ var aspectCropSchema2 = z32.object({
32199
+ aspect: z32.preprocess((value) => value == null ? void 0 : value, z32.string().optional()),
32200
+ rect: z32.preprocess((value) => value == null ? void 0 : value, rectSchema2.optional()),
32201
+ hotspot: z32.preprocess((value) => value == null ? void 0 : value, hotspotSchema2.optional()),
32202
+ rotation: z32.preprocess((value) => value == null ? void 0 : value, rotationSchema2.optional())
32203
+ });
32204
+ var transformSchema2 = z32.object({
32205
+ aspectCrops: z32.preprocess((value) => {
31266
32206
  if (!value || typeof value !== "object" || Array.isArray(value)) {
31267
32207
  return void 0;
31268
32208
  }
31269
32209
  return value;
31270
- }, z29.record(z29.string(), aspectCropSchema2.catch({}))).optional(),
32210
+ }, z32.record(z32.string(), aspectCropSchema2.catch({}))).optional(),
31271
32211
  rect: rectSchema2.optional(),
31272
32212
  hotspot: hotspotSchema2.optional(),
31273
32213
  rotation: rotationSchema2.optional()
31274
32214
  });
31275
- var mediaSchema2 = z29.object({
31276
- type: z29.enum(["image", "video", "audio", "document", "spreadsheet", "archive"]),
31277
- purpose: z29.string().optional(),
31278
- placeholder: z29.boolean().default(true).optional(),
31279
- assetId: z29.string().optional(),
31280
- identifier: z29.string().optional(),
31281
- src: z29.string().optional(),
31282
- alt: z29.string().optional(),
31283
- filename: z29.string().optional(),
31284
- mimeType: z29.string().optional(),
31285
- width: z29.number().optional(),
31286
- height: z29.number().optional(),
31287
- storageBucket: z29.string().optional(),
31288
- storagePath: z29.string().optional(),
32215
+ var mediaSchema2 = z32.object({
32216
+ type: z32.enum(["image", "video", "audio", "document", "spreadsheet", "archive"]),
32217
+ purpose: z32.string().optional(),
32218
+ placeholder: z32.boolean().default(true).optional(),
32219
+ assetId: z32.string().optional(),
32220
+ identifier: z32.string().optional(),
32221
+ src: z32.string().optional(),
32222
+ alt: z32.string().optional(),
32223
+ filename: z32.string().optional(),
32224
+ mimeType: z32.string().optional(),
32225
+ width: z32.number().optional(),
32226
+ height: z32.number().optional(),
32227
+ storageBucket: z32.string().optional(),
32228
+ storagePath: z32.string().optional(),
31289
32229
  transform: transformSchema2.optional()
31290
32230
  });
31291
32231
 
31292
- // ../theme-core/src/buttons/types.ts
31293
- import { z as z30 } from "zod";
31294
- var cornerStyleSchema = z30.enum(["square", "rounded", "pill"]);
31295
- var shadowSizeSchema = z30.enum(["none", "low", "medium", "high"]);
31296
- var textTransformSchema = z30.enum(["none", "uppercase", "lowercase", "capitalize"]);
31297
- var fontWeightSchema = z30.union([z30.literal(500), z30.literal(600), z30.literal(700)]);
31298
- var buttonTypographySchema = z30.enum(["body", "heading"]);
31299
- var hoverTransformSchema = z30.enum(["none", "lift", "scale", "press"]);
31300
- var hoverColorSchema = z30.enum(["none", "brighten", "darken", "saturate", "token"]);
31301
- var buttonPaddingPresetSchema = z30.enum(["compact", "default", "spacious"]);
31302
- var gradientStyleSchema = z30.enum(["linear", "radial", "conic"]);
31303
- var gradientSharpnessSchema = z30.enum(["smooth", "medium", "hard"]);
31304
- var buttonSizeNameSchema = z30.enum(["sm", "md", "lg", "xl"]);
31305
- var buttonSizeConfigSchema = z30.object({
31306
- padding: z30.string(),
31307
- fontSize: z30.string().optional()
31308
- });
31309
- var buttonSizesSchema = z30.object({
31310
- sm: buttonSizeConfigSchema,
31311
- md: buttonSizeConfigSchema,
31312
- lg: buttonSizeConfigSchema,
31313
- xl: buttonSizeConfigSchema.optional()
31314
- });
31315
- var backgroundTreatmentSchema = z30.enum(["solid", "gradient", "outline", "ghost"]);
31316
- var outlineHoverEffectSchema = z30.enum([
31317
- "border-glow",
31318
- "border-shift",
31319
- "border-grow",
31320
- "fill-transition",
31321
- "border-trace"
31322
- ]);
31323
- var buttonGlobalSettingsSchema = z30.object({
31324
- cornerStyle: cornerStyleSchema,
31325
- cornerRadius: z30.number().min(0).max(24).optional(),
31326
- shadow: shadowSizeSchema,
31327
- textTransform: textTransformSchema,
31328
- fontWeight: fontWeightSchema,
31329
- borderWidth: z30.union([z30.literal(1), z30.literal(2), z30.literal(3)]),
31330
- // Typography source (body or heading)
31331
- typography: buttonTypographySchema.optional(),
31332
- // Italic style
31333
- italic: z30.boolean().optional(),
31334
- // Padding preset (applies to all variants unless overridden)
31335
- paddingPreset: buttonPaddingPresetSchema.optional(),
31336
- hoverTransform: hoverTransformSchema,
31337
- hoverColor: hoverColorSchema,
31338
- // When hoverColor is 'token', this specifies which token to use
31339
- hoverColorToken: z30.string().optional(),
31340
- // Gradient settings (if any variant uses gradients)
31341
- gradientStyle: gradientStyleSchema.optional(),
31342
- gradientAngle: z30.number().min(0).max(360).optional(),
31343
- gradientSharpness: gradientSharpnessSchema.optional()
31344
- });
31345
- var gradientDirectionSchema = z30.enum(["to-r", "to-l", "to-t", "to-b", "to-tr", "to-tl", "to-br", "to-bl"]);
31346
- var buttonBackgroundSchema = z30.discriminatedUnion("type", [
31347
- z30.object({ type: z30.literal("solid"), colorToken: z30.string() }),
31348
- z30.object({
31349
- type: z30.literal("gradient"),
31350
- stops: z30.array(z30.string()).min(2),
31351
- direction: gradientDirectionSchema
31352
- }),
31353
- z30.object({ type: z30.literal("transparent") })
31354
- ]);
31355
- var effectApplicationSchema2 = z30.object({
31356
- effectId: z30.string(),
31357
- options: z30.record(z30.string(), z30.any()).optional()
31358
- });
31359
- var buttonBorderSchema = z30.object({
31360
- widthClass: z30.string(),
31361
- colorToken: z30.string()
31362
- });
31363
- var buttonVariantLegacySchema = z30.object({
31364
- id: z30.string(),
31365
- name: z30.string().min(1).max(20),
31366
- enabled: z30.boolean(),
31367
- priority: z30.union([z30.literal(1), z30.literal(2), z30.literal(3)]),
31368
- backgroundTreatment: backgroundTreatmentSchema,
31369
- color: z30.string().optional(),
31370
- gradientColors: z30.tuple([z30.string(), z30.string()]).optional(),
31371
- borderColor: z30.string().optional(),
31372
- outlineHoverEffect: outlineHoverEffectSchema.optional(),
31373
- effectPreset: z30.string().optional()
31374
- });
31375
- var buttonVariantSchema = z30.object({
31376
- id: z30.string(),
31377
- name: z30.string().min(1).max(20),
31378
- enabled: z30.boolean(),
31379
- priority: z30.union([z30.literal(1), z30.literal(2), z30.literal(3)]),
31380
- // Base appearance (token-based)
31381
- background: buttonBackgroundSchema,
31382
- textColorToken: z30.string(),
31383
- borderRadius: z30.string(),
31384
- // Optional shadow override (uses theme.shadow if not specified)
31385
- shadow: z30.object({
31386
- elevation: z30.enum(["none", "low", "medium", "high"]),
31387
- softness: z30.enum(["crisp", "soft", "hard"]).nullable(),
31388
- position: z30.enum(["bottom", "bottom-right"]).default("bottom")
31389
- }).optional(),
31390
- // Border (optional)
31391
- border: buttonBorderSchema.optional(),
31392
- // Padding (optional, defaults to "0.5rem 1rem")
31393
- padding: z30.string().optional(),
31394
- // Font size (optional, Tailwind text size class)
31395
- fontSize: z30.string().optional(),
31396
- // Hover background token (per-variant override, takes precedence over global hoverColorToken)
31397
- hoverBackgroundToken: z30.string().optional(),
31398
- // Effect composition
31399
- effects: z30.object({
31400
- base: z30.array(effectApplicationSchema2).optional(),
31401
- hover: z30.array(effectApplicationSchema2).optional(),
31402
- active: z30.array(effectApplicationSchema2).optional(),
31403
- focus: z30.array(effectApplicationSchema2).optional()
31404
- }).optional()
31405
- });
31406
- var buttonSystemSchema = z30.object({
31407
- global: buttonGlobalSettingsSchema,
31408
- variants: z30.array(buttonVariantSchema).min(1).max(6),
31409
- sizes: buttonSizesSchema.optional()
31410
- });
31411
-
31412
- // ../theme-core/src/buttons/index.ts
31413
- init_generateButtonCss();
31414
- init_generateDefaultButtonSystem();
31415
- init_constants();
31416
- init_registry();
31417
- init_transform();
32232
+ // ../theme-core/src/schema.ts
32233
+ init_buttons();
31418
32234
 
31419
32235
  // ../theme-core/src/cards/types.ts
31420
- import { z as z31 } from "zod";
31421
- var cardSpacingSchema = z31.enum(["none", "compact", "cozy", "medium", "comfortable", "spacious"]);
31422
- var gradientDirectionSchema2 = z31.enum(["to-r", "to-l", "to-t", "to-b", "to-tr", "to-tl", "to-br", "to-bl"]);
31423
- var cardBackgroundSchema = z31.discriminatedUnion("type", [
31424
- z31.object({ type: z31.literal("solid"), colorToken: z31.string() }),
31425
- z31.object({
31426
- type: z31.literal("gradient"),
31427
- fromToken: z31.string(),
31428
- toToken: z31.string(),
32236
+ import { z as z33 } from "zod";
32237
+ var cardSpacingSchema = z33.enum(["none", "compact", "cozy", "medium", "comfortable", "spacious"]);
32238
+ var gradientDirectionSchema2 = z33.enum(["to-r", "to-l", "to-t", "to-b", "to-tr", "to-tl", "to-br", "to-bl"]);
32239
+ var cardBackgroundSchema = z33.discriminatedUnion("type", [
32240
+ z33.object({ type: z33.literal("solid"), colorToken: z33.string() }),
32241
+ z33.object({
32242
+ type: z33.literal("gradient"),
32243
+ fromToken: z33.string(),
32244
+ toToken: z33.string(),
31429
32245
  direction: gradientDirectionSchema2
31430
32246
  }),
31431
- z31.object({ type: z31.literal("transparent") })
32247
+ z33.object({ type: z33.literal("transparent") })
31432
32248
  ]);
31433
- var cardBorderSchema = z31.object({
31434
- widthClass: z31.string(),
31435
- colorToken: z31.string()
31436
- });
31437
- var cardVariantSchema2 = z31.object({
31438
- id: z31.string(),
31439
- name: z31.string().min(1).max(20),
31440
- enabled: z31.boolean(),
31441
- priority: z31.union([z31.literal(1), z31.literal(2), z31.literal(3)]),
32249
+ var cardBorderSchema = z33.object({
32250
+ widthClass: z33.string(),
32251
+ colorToken: z33.string()
32252
+ });
32253
+ var cardVariantSchema2 = z33.object({
32254
+ id: z33.string(),
32255
+ name: z33.string().min(1).max(20),
32256
+ enabled: z33.boolean(),
32257
+ priority: z33.union([z33.literal(1), z33.literal(2), z33.literal(3)]),
31442
32258
  // Appearance (token-based)
31443
32259
  background: cardBackgroundSchema,
31444
32260
  spacing: cardSpacingSchema,
31445
32261
  // Optional overrides (uses theme defaults if not specified)
31446
- shadow: z31.object({
31447
- elevation: z31.enum(["none", "low", "medium", "high"]),
31448
- softness: z31.enum(["crisp", "soft", "hard"]).nullable(),
31449
- position: z31.enum(["bottom", "bottom-right"]).default("bottom")
32262
+ shadow: z33.object({
32263
+ elevation: z33.enum(["none", "low", "medium", "high"]),
32264
+ softness: z33.enum(["crisp", "soft", "hard"]).nullable(),
32265
+ position: z33.enum(["bottom", "bottom-right"]).default("bottom")
31450
32266
  }).optional(),
31451
- corners: z31.enum(["square", "soft", "rounded", "pill"]).optional(),
32267
+ corners: z33.enum(["square", "soft", "rounded", "pill"]).optional(),
31452
32268
  // Border (optional)
31453
32269
  border: cardBorderSchema.optional()
31454
32270
  });
31455
- var cardSystemSchema = z31.object({
31456
- variants: z31.array(cardVariantSchema2).min(1).max(3)
32271
+ var cardSystemSchema = z33.object({
32272
+ variants: z33.array(cardVariantSchema2).min(1).max(3)
31457
32273
  });
31458
32274
 
31459
32275
  // ../theme-core/src/cards/index.ts
@@ -31462,90 +32278,90 @@ init_generateCardCss();
31462
32278
  init_generateDefaultCardSystem();
31463
32279
 
31464
32280
  // ../theme-core/src/schema.ts
31465
- init_types4();
31466
32281
  init_types7();
32282
+ init_types10();
31467
32283
 
31468
32284
  // ../theme-core/src/gradients/types.ts
31469
- import { z as z32 } from "zod";
31470
- var gradientStopSchema = z32.object({
31471
- color: z32.string(),
32285
+ import { z as z34 } from "zod";
32286
+ var gradientStopSchema = z34.object({
32287
+ color: z34.string(),
31472
32288
  // Theme color token name (e.g., 'primary-500')
31473
- position: z32.number().min(0).max(100)
32289
+ position: z34.number().min(0).max(100)
31474
32290
  // Percentage 0-100
31475
32291
  });
31476
- var gradientConfigSchema = z32.object({
31477
- type: z32.enum(["linear", "radial"]),
31478
- angle: z32.number().min(0).max(360).optional(),
32292
+ var gradientConfigSchema = z34.object({
32293
+ type: z34.enum(["linear", "radial"]),
32294
+ angle: z34.number().min(0).max(360).optional(),
31479
32295
  // For linear gradients (degrees)
31480
- position: z32.string().optional(),
32296
+ position: z34.string().optional(),
31481
32297
  // For radial gradients ('center', 'top left', etc.)
31482
- stops: z32.array(gradientStopSchema).min(2)
32298
+ stops: z34.array(gradientStopSchema).min(2)
31483
32299
  });
31484
32300
 
31485
32301
  // ../theme-core/src/schema.ts
31486
- init_types8();
32302
+ init_types11();
31487
32303
  init_validation3();
31488
32304
  init_atRuleValidation();
31489
32305
  init_shared6();
31490
- var axesSchema = z33.object({
31491
- tone: z33.enum(["minimal", "classic", "bold"]),
31492
- energy: z33.enum(["calm", "vibrant"]),
31493
- density: z33.enum(["airy", "regular", "compact"]),
31494
- mediaBias: z33.enum(["text", "media", "mixed"]),
31495
- conversionBias: z33.enum(["low", "med", "high"]),
31496
- motion: z33.enum(["subtle", "standard", "expressive"])
31497
- });
31498
- var colourHexString = z33.string().regex(/^#([0-9A-Fa-f]{3}){1,2}$/);
31499
- var paletteColorSchema = z33.object({
31500
- name: z33.string().min(1),
32306
+ var axesSchema = z35.object({
32307
+ tone: z35.enum(["minimal", "classic", "bold"]),
32308
+ energy: z35.enum(["calm", "vibrant"]),
32309
+ density: z35.enum(["airy", "regular", "compact"]),
32310
+ mediaBias: z35.enum(["text", "media", "mixed"]),
32311
+ conversionBias: z35.enum(["low", "med", "high"]),
32312
+ motion: z35.enum(["subtle", "standard", "expressive"])
32313
+ });
32314
+ var colourHexString = z35.string().regex(/^#([0-9A-Fa-f]{3}){1,2}$/);
32315
+ var paletteColorSchema = z35.object({
32316
+ name: z35.string().min(1),
31501
32317
  hex: colourHexString
31502
32318
  });
31503
- var paletteMetaSchema = z33.object({
31504
- mode: z33.enum(["light", "dark"])
32319
+ var paletteMetaSchema = z35.object({
32320
+ mode: z35.enum(["light", "dark"])
31505
32321
  });
31506
- var paletteSchema = z33.object({
31507
- colors: z33.array(paletteColorSchema),
32322
+ var paletteSchema = z35.object({
32323
+ colors: z35.array(paletteColorSchema),
31508
32324
  meta: paletteMetaSchema
31509
32325
  });
31510
- var typographyStyleSchema = z33.object({
31511
- family: z33.string().min(1),
31512
- weight: z33.enum(["light", "regular", "medium", "semibold", "bold"]),
31513
- letterSpacing: z33.enum(["tight", "normal", "loose"]),
31514
- lineHeight: z33.enum(["normal", "relaxed", "loose"])
32326
+ var typographyStyleSchema = z35.object({
32327
+ family: z35.string().min(1),
32328
+ weight: z35.enum(["light", "regular", "medium", "semibold", "bold"]),
32329
+ letterSpacing: z35.enum(["tight", "normal", "loose"]),
32330
+ lineHeight: z35.enum(["normal", "relaxed", "loose"])
31515
32331
  });
31516
32332
  var bodyTypographyStyleSchema = typographyStyleSchema.extend({
31517
- size: z33.enum(["md", "lg", "xl"])
32333
+ size: z35.enum(["md", "lg", "xl"])
31518
32334
  });
31519
- var headingSizeSchema = z33.enum(["xs", "sm", "md", "lg", "xl", "2xl"]);
31520
- var headingTypographyOverridesSchema = z33.object({
31521
- weight: z33.enum(["light", "regular", "medium", "semibold", "bold"]).nullable().optional(),
31522
- letterSpacing: z33.enum(["tight", "normal", "loose"]).nullable().optional(),
32335
+ var headingSizeSchema = z35.enum(["xs", "sm", "md", "lg", "xl", "2xl"]);
32336
+ var headingTypographyOverridesSchema = z35.object({
32337
+ weight: z35.enum(["light", "regular", "medium", "semibold", "bold"]).nullable().optional(),
32338
+ letterSpacing: z35.enum(["tight", "normal", "loose"]).nullable().optional(),
31523
32339
  size: headingSizeSchema.nullable().optional(),
31524
- lineHeight: z33.enum(["normal", "relaxed", "loose"]).nullable().optional(),
31525
- italic: z33.boolean().nullable().optional(),
31526
- colorToken: z33.string().min(1).nullable().optional()
32340
+ lineHeight: z35.enum(["normal", "relaxed", "loose"]).nullable().optional(),
32341
+ italic: z35.boolean().nullable().optional(),
32342
+ colorToken: z35.string().min(1).nullable().optional()
31527
32343
  // Palette token name for heading color
31528
32344
  });
31529
32345
  var headingTypographyStyleSchema = typographyStyleSchema.extend({
31530
- case: z33.enum(["uppercase", "normal", "smallCaps"]).nullable(),
31531
- italic: z33.boolean().nullable(),
31532
- colorToken: z33.string().min(1).nullable().optional()
32346
+ case: z35.enum(["uppercase", "normal", "smallCaps"]).nullable(),
32347
+ italic: z35.boolean().nullable(),
32348
+ colorToken: z35.string().min(1).nullable().optional()
31533
32349
  // Palette token name for heading color
31534
32350
  });
31535
- var proseLinkUnderlineStyleSchema = z33.enum(["solid", "dotted", "dashed"]);
31536
- var proseLinkUnderlineThicknessSchema = z33.enum(["auto", "fromFont", "thin", "medium", "thick"]);
31537
- var proseLinkUnderlineOffsetSchema = z33.enum(["auto", "tight", "normal", "loose"]);
31538
- var proseLinkStyleSchema = z33.object({
31539
- colorToken: z33.string().min(1).optional(),
31540
- hoverColorToken: z33.string().min(1).optional(),
31541
- underline: z33.boolean().optional(),
31542
- decorationColorToken: z33.string().min(1).optional(),
31543
- hoverDecorationColorToken: z33.string().min(1).optional(),
32351
+ var proseLinkUnderlineStyleSchema = z35.enum(["solid", "dotted", "dashed"]);
32352
+ var proseLinkUnderlineThicknessSchema = z35.enum(["auto", "fromFont", "thin", "medium", "thick"]);
32353
+ var proseLinkUnderlineOffsetSchema = z35.enum(["auto", "tight", "normal", "loose"]);
32354
+ var proseLinkStyleSchema = z35.object({
32355
+ colorToken: z35.string().min(1).optional(),
32356
+ hoverColorToken: z35.string().min(1).optional(),
32357
+ underline: z35.boolean().optional(),
32358
+ decorationColorToken: z35.string().min(1).optional(),
32359
+ hoverDecorationColorToken: z35.string().min(1).optional(),
31544
32360
  underlineStyle: proseLinkUnderlineStyleSchema.optional(),
31545
32361
  underlineThickness: proseLinkUnderlineThicknessSchema.optional(),
31546
32362
  underlineOffset: proseLinkUnderlineOffsetSchema.optional()
31547
32363
  });
31548
- var semanticSpacingSchema = z33.enum([
32364
+ var semanticSpacingSchema = z35.enum([
31549
32365
  "none",
31550
32366
  "compact",
31551
32367
  "cozy",
@@ -31553,62 +32369,62 @@ var semanticSpacingSchema = z33.enum([
31553
32369
  "comfortable",
31554
32370
  "spacious"
31555
32371
  ]);
31556
- var boxRoundedSchema = z33.enum(["none", "sm", "md", "lg", "xl", "2xl", "full"]);
31557
- var boxBackgroundOverlaySchema = z33.object({
31558
- type: z33.enum(["none", "color", "gradient"]).nullable().optional(),
31559
- color: z33.string().nullable().optional(),
31560
- gradient: z33.string().nullable().optional(),
31561
- opacity: z33.number().min(0).max(1).nullable().optional()
31562
- });
31563
- var boxBackgroundSchema = z33.object({
31564
- type: z33.enum(["color", "gradient", "image"]).optional(),
31565
- color: z33.string().nullable().optional(),
31566
- gradient: z33.string().nullable().optional(),
32372
+ var boxRoundedSchema = z35.enum(["none", "sm", "md", "lg", "xl", "2xl", "full"]);
32373
+ var boxBackgroundOverlaySchema = z35.object({
32374
+ type: z35.enum(["none", "color", "gradient"]).nullable().optional(),
32375
+ color: z35.string().nullable().optional(),
32376
+ gradient: z35.string().nullable().optional(),
32377
+ opacity: z35.number().min(0).max(1).nullable().optional()
32378
+ });
32379
+ var boxBackgroundSchema = z35.object({
32380
+ type: z35.enum(["color", "gradient", "image"]).optional(),
32381
+ color: z35.string().nullable().optional(),
32382
+ gradient: z35.string().nullable().optional(),
31567
32383
  image: mediaSchema2.nullable().optional(),
31568
- objectFit: z33.enum(["fill", "fit", "original", "custom"]).nullable().optional(),
31569
- scale: z33.string().nullable().optional(),
31570
- position: z33.string().nullable().optional(),
31571
- opacity: z33.number().min(0).max(1).nullable().optional(),
32384
+ objectFit: z35.enum(["fill", "fit", "original", "custom"]).nullable().optional(),
32385
+ scale: z35.string().nullable().optional(),
32386
+ position: z35.string().nullable().optional(),
32387
+ opacity: z35.number().min(0).max(1).nullable().optional(),
31572
32388
  overlay: boxBackgroundOverlaySchema.nullable().optional(),
31573
- textColor: z33.string().nullable().optional(),
31574
- headingColor: z33.string().nullable().optional()
32389
+ textColor: z35.string().nullable().optional(),
32390
+ headingColor: z35.string().nullable().optional()
31575
32391
  });
31576
- var sectionStylesOverrideSchema = z33.object({
32392
+ var sectionStylesOverrideSchema = z35.object({
31577
32393
  background: boxBackgroundSchema.nullable().optional(),
31578
32394
  spacing: semanticSpacingSchema.nullable().optional(),
31579
- minHeight: z33.enum(["none", "hero", "immersive"]).nullable().optional()
32395
+ minHeight: z35.enum(["none", "hero", "immersive"]).nullable().optional()
31580
32396
  });
31581
- var containerStylesOverrideSchema = z33.object({
32397
+ var containerStylesOverrideSchema = z35.object({
31582
32398
  background: boxBackgroundSchema.nullable().optional(),
31583
32399
  spacing: semanticSpacingSchema.nullable().optional(),
31584
- raised: z33.boolean().nullable().optional(),
32400
+ raised: z35.boolean().nullable().optional(),
31585
32401
  rounded: boxRoundedSchema.nullable().optional(),
31586
- fullWidth: z33.boolean().nullable().optional()
32402
+ fullWidth: z35.boolean().nullable().optional()
31587
32403
  });
31588
- var cardBorderOverrideSchema = z33.object({
31589
- enabled: z33.boolean().nullable().optional(),
31590
- width: z33.enum(["none", "1", "2", "3"]).nullable().optional(),
31591
- colorToken: z33.string().nullable().optional()
32404
+ var cardBorderOverrideSchema = z35.object({
32405
+ enabled: z35.boolean().nullable().optional(),
32406
+ width: z35.enum(["none", "1", "2", "3"]).nullable().optional(),
32407
+ colorToken: z35.string().nullable().optional()
31592
32408
  });
31593
- var cardStylesOverrideSchema = z33.object({
32409
+ var cardStylesOverrideSchema = z35.object({
31594
32410
  background: boxBackgroundSchema.nullable().optional(),
31595
32411
  border: cardBorderOverrideSchema.nullable().optional(),
31596
32412
  spacing: semanticSpacingSchema.nullable().optional(),
31597
- raised: z33.boolean().nullable().optional(),
32413
+ raised: z35.boolean().nullable().optional(),
31598
32414
  rounded: boxRoundedSchema.nullable().optional()
31599
32415
  });
31600
- var blockStyleOverridesSchema = z33.object({
32416
+ var blockStyleOverridesSchema = z35.object({
31601
32417
  sectionStyles: sectionStylesOverrideSchema.nullable().optional(),
31602
32418
  containerStyles: containerStylesOverrideSchema.nullable().optional(),
31603
32419
  cardStyles: cardStylesOverrideSchema.nullable().optional()
31604
32420
  });
31605
- var blockThemeOverrideSchema = z33.object({
31606
- typography: z33.object({
32421
+ var blockThemeOverrideSchema = z35.object({
32422
+ typography: z35.object({
31607
32423
  proseLinkStyle: proseLinkStyleSchema.optional()
31608
32424
  }).optional(),
31609
32425
  styles: blockStyleOverridesSchema.optional()
31610
32426
  });
31611
- var typographyScaleSchema = z33.enum([
32427
+ var typographyScaleSchema = z35.enum([
31612
32428
  // New intuitive names
31613
32429
  "compact",
31614
32430
  // ratio 1.2 (was minorThird)
@@ -31621,9 +32437,9 @@ var typographyScaleSchema = z33.enum([
31621
32437
  "majorThird",
31622
32438
  "perfectFourth"
31623
32439
  ]);
31624
- var typographySchema = z33.object({
32440
+ var typographySchema = z35.object({
31625
32441
  body: bodyTypographyStyleSchema,
31626
- headings: z33.object({
32442
+ headings: z35.object({
31627
32443
  default: headingTypographyStyleSchema,
31628
32444
  h1: headingTypographyOverridesSchema,
31629
32445
  h2: headingTypographyOverridesSchema,
@@ -31636,41 +32452,41 @@ var typographySchema = z33.object({
31636
32452
  scale: typographyScaleSchema,
31637
32453
  proseLinkStyle: proseLinkStyleSchema.optional()
31638
32454
  });
31639
- var spaceSchema = z33.enum(["comfortable", "standard", "dense"]);
31640
- var corners = z33.enum(["square", "soft", "rounded", "pill"]);
31641
- var shadow = z33.object({
31642
- elevation: z33.enum(["none", "low", "medium", "high"]),
31643
- softness: z33.enum(["crisp", "soft", "hard"]).nullable(),
31644
- position: z33.enum(["bottom", "bottom-right"]).default("bottom")
32455
+ var spaceSchema = z35.enum(["comfortable", "standard", "dense"]);
32456
+ var corners = z35.enum(["square", "soft", "rounded", "pill"]);
32457
+ var shadow = z35.object({
32458
+ elevation: z35.enum(["none", "low", "medium", "high"]),
32459
+ softness: z35.enum(["crisp", "soft", "hard"]).nullable(),
32460
+ position: z35.enum(["bottom", "bottom-right"]).default("bottom")
31645
32461
  });
31646
- var border = z33.object({
31647
- width: z33.enum(["none", "hairline", "thin", "thick"]),
31648
- style: z33.enum(["solid", "dashed"])
32462
+ var border = z35.object({
32463
+ width: z35.enum(["none", "hairline", "thin", "thick"]),
32464
+ style: z35.enum(["solid", "dashed"])
31649
32465
  });
31650
- var motion = z33.object({
31651
- level: z33.enum(["off", "low", "medium", "high"]),
31652
- easing: z33.enum(["standard", "snappy", "gentle"]).nullable()
32466
+ var motion = z35.object({
32467
+ level: z35.enum(["off", "low", "medium", "high"]),
32468
+ easing: z35.enum(["standard", "snappy", "gentle"]).nullable()
31653
32469
  });
31654
- var buttonStyle = z33.object({
32470
+ var buttonStyle = z35.object({
31655
32471
  shape: corners
31656
32472
  // Used for --radius-control CSS variable
31657
32473
  });
31658
- var cardStyle = z33.object({
31659
- elevation: z33.enum(["none", "low", "medium", "high"]),
31660
- border: z33.enum(["none", "subtle", "defined"]),
32474
+ var cardStyle = z35.object({
32475
+ elevation: z35.enum(["none", "low", "medium", "high"]),
32476
+ border: z35.enum(["none", "subtle", "defined"]),
31661
32477
  shape: corners,
31662
- headerStyle: z33.enum(["plain", "accentBar", "subtleBg"]).nullable(),
31663
- mediaTreatment: z33.enum(["square", "rounded", "bleed"]).nullable()
32478
+ headerStyle: z35.enum(["plain", "accentBar", "subtleBg"]).nullable(),
32479
+ mediaTreatment: z35.enum(["square", "rounded", "bleed"]).nullable()
31664
32480
  });
31665
- var inputStyle = z33.object({
32481
+ var inputStyle = z35.object({
31666
32482
  shape: corners,
31667
- border: z33.enum(["subtle", "defined", "underline"]),
31668
- focus: z33.enum(["glow", "ring", "underline"]),
31669
- label: z33.enum(["inside", "above"])
32483
+ border: z35.enum(["subtle", "defined", "underline"]),
32484
+ focus: z35.enum(["glow", "ring", "underline"]),
32485
+ label: z35.enum(["inside", "above"])
31670
32486
  });
31671
- var headerVariant = z33.enum(["classic", "centered", "transparent", "floating", "editorial"]);
31672
- var headerPositioning = z33.enum(["static", "sticky", "fixed"]);
31673
- var headerNavStyle = z33.enum([
32487
+ var headerVariant = z35.enum(["classic", "centered", "transparent", "floating", "editorial"]);
32488
+ var headerPositioning = z35.enum(["static", "sticky", "fixed"]);
32489
+ var headerNavStyle = z35.enum([
31674
32490
  "minimal",
31675
32491
  "underline",
31676
32492
  "underline-grow",
@@ -31679,82 +32495,82 @@ var headerNavStyle = z33.enum([
31679
32495
  "frosted",
31680
32496
  "solid"
31681
32497
  ]);
31682
- var navFontWeight = z33.enum(["regular", "medium", "semibold", "bold"]);
31683
- var headerMaxWidth = z33.enum(["container", "full"]);
31684
- var headerContainerSchema = z33.object({
31685
- rounded: z33.enum(["none", "sm", "md", "lg", "xl", "2xl"]).default("xl"),
31686
- border: z33.boolean().default(true),
31687
- shadow: z33.boolean().default(true),
31688
- padding: z33.enum(["sm", "md", "lg"]).default("md"),
31689
- tint: z33.string().nullable().optional(),
31690
- opacity: z33.number().min(0).max(1).default(0.12)
32498
+ var navFontWeight = z35.enum(["regular", "medium", "semibold", "bold"]);
32499
+ var headerMaxWidth = z35.enum(["container", "full"]);
32500
+ var headerContainerSchema = z35.object({
32501
+ rounded: z35.enum(["none", "sm", "md", "lg", "xl", "2xl"]).default("xl"),
32502
+ border: z35.boolean().default(true),
32503
+ shadow: z35.boolean().default(true),
32504
+ padding: z35.enum(["sm", "md", "lg"]).default("md"),
32505
+ tint: z35.string().nullable().optional(),
32506
+ opacity: z35.number().min(0).max(1).default(0.12)
31691
32507
  }).optional();
31692
32508
  var headerBorderSchema = componentBorderSchema.extend({
31693
- position: z33.enum(["bottom", "top", "both", "none"]).default("bottom")
32509
+ position: z35.enum(["bottom", "top", "both", "none"]).default("bottom")
31694
32510
  }).optional();
31695
- var logoStyleSchema = z33.object({
31696
- fontFamily: z33.enum(["heading", "body"]).default("heading"),
31697
- letterSpacing: z33.enum(["normal", "wide", "wider", "widest"]).default("normal"),
31698
- gradient: z33.boolean().default(false)
32511
+ var logoStyleSchema = z35.object({
32512
+ fontFamily: z35.enum(["heading", "body"]).default("heading"),
32513
+ letterSpacing: z35.enum(["normal", "wide", "wider", "widest"]).default("normal"),
32514
+ gradient: z35.boolean().default(false)
31699
32515
  }).optional();
31700
- var headerLogoTextSchema = z33.object({
31701
- mobileWrapLines: z33.union([z33.literal(1), z33.literal(2)]).optional(),
31702
- mobileMaxWidth: z33.enum(["xs", "sm", "md"]).optional(),
31703
- hideOnShrink: z33.boolean().optional()
32516
+ var headerLogoTextSchema = z35.object({
32517
+ mobileWrapLines: z35.union([z35.literal(1), z35.literal(2)]).optional(),
32518
+ mobileMaxWidth: z35.enum(["xs", "sm", "md"]).optional(),
32519
+ hideOnShrink: z35.boolean().optional()
31704
32520
  }).optional();
31705
- var navEffectsSchema = z33.object({
31706
- underlineGradient: z33.boolean().default(false),
31707
- glow: z33.boolean().default(false),
31708
- glowColor: z33.string().optional(),
31709
- neumorphic: z33.boolean().default(false)
32521
+ var navEffectsSchema = z35.object({
32522
+ underlineGradient: z35.boolean().default(false),
32523
+ glow: z35.boolean().default(false),
32524
+ glowColor: z35.string().optional(),
32525
+ neumorphic: z35.boolean().default(false)
31710
32526
  }).optional();
31711
- var dropdownStyleSchema = z33.object({
32527
+ var dropdownStyleSchema = z35.object({
31712
32528
  // Container styling
31713
- background: z33.string().default("surface"),
32529
+ background: z35.string().default("surface"),
31714
32530
  // color token
31715
- textColor: z33.string().default("text"),
32531
+ textColor: z35.string().default("text"),
31716
32532
  // color token
31717
- borderColor: z33.string().nullable().default("border"),
32533
+ borderColor: z35.string().nullable().default("border"),
31718
32534
  // null = no border
31719
- shadow: z33.enum(["none", "sm", "md", "lg"]).default("md"),
31720
- borderRadius: z33.enum(["none", "sm", "md", "lg"]).default("md"),
32535
+ shadow: z35.enum(["none", "sm", "md", "lg"]).default("md"),
32536
+ borderRadius: z35.enum(["none", "sm", "md", "lg"]).default("md"),
31721
32537
  // Link hover states (explicit control)
31722
- hoverBackground: z33.string().nullable().optional(),
32538
+ hoverBackground: z35.string().nullable().optional(),
31723
32539
  // color token, null = transparent
31724
- hoverTextColor: z33.string().nullable().optional(),
32540
+ hoverTextColor: z35.string().nullable().optional(),
31725
32541
  // color token, null = inherit
31726
32542
  // Typography
31727
- textTransform: z33.enum(["none", "uppercase", "capitalize"]).default("none"),
31728
- letterSpacing: z33.enum(["normal", "wide", "wider"]).default("normal"),
31729
- fontWeight: z33.enum(["regular", "medium", "semibold", "bold"]).optional(),
32543
+ textTransform: z35.enum(["none", "uppercase", "capitalize"]).default("none"),
32544
+ letterSpacing: z35.enum(["normal", "wide", "wider"]).default("normal"),
32545
+ fontWeight: z35.enum(["regular", "medium", "semibold", "bold"]).optional(),
31730
32546
  // optional = inherit from navWeight
31731
- textSize: z33.enum(["xs", "sm", "base", "lg"]).optional()
32547
+ textSize: z35.enum(["xs", "sm", "base", "lg"]).optional()
31732
32548
  // optional = no override (browser default)
31733
32549
  }).optional();
31734
- var headerCtaGapSchema = z33.enum(["none", "tight", "compact", "default", "relaxed", "spacious"]);
31735
- var navContainerSchema = z33.object({
31736
- type: z33.enum(["none", "pill", "glass"]).default("none"),
31737
- tint: z33.string().nullable().optional(),
31738
- opacity: z33.number().min(0).max(1).default(0.15)
32550
+ var headerCtaGapSchema = z35.enum(["none", "tight", "compact", "default", "relaxed", "spacious"]);
32551
+ var navContainerSchema = z35.object({
32552
+ type: z35.enum(["none", "pill", "glass"]).default("none"),
32553
+ tint: z35.string().nullable().optional(),
32554
+ opacity: z35.number().min(0).max(1).default(0.15)
31739
32555
  }).default({ type: "none", tint: null, opacity: 0.15 });
31740
- var headerBackgroundSchema = z33.object({
31741
- type: z33.enum(["color", "gradient", "image"]),
31742
- color: z33.string().nullable().optional(),
32556
+ var headerBackgroundSchema = z35.object({
32557
+ type: z35.enum(["color", "gradient", "image"]),
32558
+ color: z35.string().nullable().optional(),
31743
32559
  gradient: gradientConfigSchema.nullable().optional(),
31744
32560
  image: mediaSchema2.nullable().optional(),
31745
- textColor: z33.string().nullable().optional()
32561
+ textColor: z35.string().nullable().optional()
31746
32562
  });
31747
- var headerSchema = z33.object({
32563
+ var headerSchema = z35.object({
31748
32564
  variant: headerVariant,
31749
32565
  positioning: headerPositioning,
31750
- shrinkOnScroll: z33.boolean(),
32566
+ shrinkOnScroll: z35.boolean(),
31751
32567
  maxWidth: headerMaxWidth,
31752
32568
  logoOverride: mediaSchema2.nullable().optional(),
31753
32569
  background: headerBackgroundSchema.default({ type: "color", color: "surface" }),
31754
- textColor: z33.string().nullable().optional(),
32570
+ textColor: z35.string().nullable().optional(),
31755
32571
  // Site title and general header text
31756
32572
  navStyle: headerNavStyle,
31757
- navColor: z33.string().nullable().optional(),
32573
+ navColor: z35.string().nullable().optional(),
31758
32574
  // Nav links (inherits textColor if not set)
31759
32575
  navWeight: navFontWeight.default("medium"),
31760
32576
  // New fields for header system enhancement
@@ -31773,50 +32589,50 @@ var headerSchema = z33.object({
31773
32589
  // Dropdown menu styling (nav dropdowns and mobile drawer)
31774
32590
  dropdownStyle: dropdownStyleSchema
31775
32591
  });
31776
- var footerVariant = z33.enum(["simple", "columns", "split"]);
31777
- var footerMaxWidth = z33.enum(["container", "full"]);
31778
- var footerMode = z33.enum(["default", "blocks", "default+blocks", "none"]);
31779
- var footerNavLayoutMode = z33.enum(["stack", "inline", "inline-wrap"]);
31780
- var footerNavLayoutAlign = z33.enum(["start", "center", "end", "space-between"]);
31781
- var footerSpacing = z33.enum(["none", "tight", "compact", "default", "relaxed", "spacious"]);
31782
- var footerLogoPlacement = z33.enum(["left", "right", "above", "below"]);
31783
- var footerLogoSize = z33.enum(["sm", "md", "lg", "xl"]);
31784
- var footerLogoMaxHeight = z33.enum(["sm", "md", "lg", "xl"]);
31785
- var footerBottomTextLinkStyleSchema = z33.object({
31786
- colorToken: z33.string().optional(),
31787
- hoverColorToken: z33.string().nullable().optional(),
31788
- decorationColorToken: z33.string().nullable().optional(),
31789
- underline: z33.boolean().optional()
31790
- });
31791
- var footerBottomBarSchema = z33.object({
31792
- enabled: z33.boolean().optional(),
31793
- fullBleed: z33.boolean().optional(),
32592
+ var footerVariant = z35.enum(["simple", "columns", "split"]);
32593
+ var footerMaxWidth = z35.enum(["container", "full"]);
32594
+ var footerMode = z35.enum(["default", "blocks", "default+blocks", "none"]);
32595
+ var footerNavLayoutMode = z35.enum(["stack", "inline", "inline-wrap"]);
32596
+ var footerNavLayoutAlign = z35.enum(["start", "center", "end", "space-between"]);
32597
+ var footerSpacing = z35.enum(["none", "tight", "compact", "default", "relaxed", "spacious"]);
32598
+ var footerLogoPlacement = z35.enum(["left", "right", "above", "below"]);
32599
+ var footerLogoSize = z35.enum(["sm", "md", "lg", "xl"]);
32600
+ var footerLogoMaxHeight = z35.enum(["sm", "md", "lg", "xl"]);
32601
+ var footerBottomTextLinkStyleSchema = z35.object({
32602
+ colorToken: z35.string().optional(),
32603
+ hoverColorToken: z35.string().nullable().optional(),
32604
+ decorationColorToken: z35.string().nullable().optional(),
32605
+ underline: z35.boolean().optional()
32606
+ });
32607
+ var footerBottomBarSchema = z35.object({
32608
+ enabled: z35.boolean().optional(),
32609
+ fullBleed: z35.boolean().optional(),
31794
32610
  background: headerBackgroundSchema.optional(),
31795
- textColor: z33.string().nullable().optional(),
31796
- textAlign: z33.enum(["left", "center", "right"]).optional(),
32611
+ textColor: z35.string().nullable().optional(),
32612
+ textAlign: z35.enum(["left", "center", "right"]).optional(),
31797
32613
  paddingY: footerSpacing.optional(),
31798
32614
  paddingX: footerSpacing.optional(),
31799
- borderTop: z33.object({
31800
- colorToken: z33.string().nullable().optional(),
31801
- width: z33.enum(["none", "thin", "medium", "thick"]).optional()
32615
+ borderTop: z35.object({
32616
+ colorToken: z35.string().nullable().optional(),
32617
+ width: z35.enum(["none", "thin", "medium", "thick"]).optional()
31802
32618
  }).optional()
31803
32619
  });
31804
- var footerNavLayoutSchema = z33.object({
32620
+ var footerNavLayoutSchema = z35.object({
31805
32621
  layout: footerNavLayoutMode.optional(),
31806
32622
  align: footerNavLayoutAlign.optional(),
31807
32623
  gapX: footerSpacing.optional(),
31808
32624
  gapY: footerSpacing.optional(),
31809
- columns: z33.number().int().min(1).max(6).optional()
32625
+ columns: z35.number().int().min(1).max(6).optional()
31810
32626
  });
31811
- var footerLogoSchema = z33.object({
31812
- showLogo: z33.boolean().default(true),
31813
- showLogoText: z33.boolean().optional(),
32627
+ var footerLogoSchema = z35.object({
32628
+ showLogo: z35.boolean().default(true),
32629
+ showLogoText: z35.boolean().optional(),
31814
32630
  placement: footerLogoPlacement.optional(),
31815
32631
  size: footerLogoSize.optional(),
31816
32632
  maxHeight: footerLogoMaxHeight.optional(),
31817
- align: z33.enum(["start", "center", "end"]).optional()
32633
+ align: z35.enum(["start", "center", "end"]).optional()
31818
32634
  });
31819
- var footerSchema = z33.object({
32635
+ var footerSchema = z35.object({
31820
32636
  /**
31821
32637
  * SDK-only footer rendering mode.
31822
32638
  *
@@ -31825,11 +32641,11 @@ var footerSchema = z33.object({
31825
32641
  mode: footerMode.optional(),
31826
32642
  variant: footerVariant,
31827
32643
  maxWidth: footerMaxWidth,
31828
- showLogoText: z33.boolean().optional(),
32644
+ showLogoText: z35.boolean().optional(),
31829
32645
  background: headerBackgroundSchema.default({ type: "color", color: "surface" }),
31830
32646
  // Footer nav styling (independent from header)
31831
32647
  navStyle: headerNavStyle.default("minimal"),
31832
- navColor: z33.string().nullable().optional(),
32648
+ navColor: z35.string().nullable().optional(),
31833
32649
  navWeight: navFontWeight.default("medium"),
31834
32650
  // Full nav link customization (overrides navStyle if set)
31835
32651
  navLinkStyle: navLinkStyleSchema.optional(),
@@ -31840,15 +32656,15 @@ var footerSchema = z33.object({
31840
32656
  logo: footerLogoSchema.optional(),
31841
32657
  bottomBar: footerBottomBarSchema.optional()
31842
32658
  });
31843
- var containerPaddingPresetSchema = z33.enum(["tight", "compact", "default", "relaxed"]);
31844
- var layoutSchema = z33.object({
31845
- containerPadding: z33.object({
32659
+ var containerPaddingPresetSchema = z35.enum(["tight", "compact", "default", "relaxed"]);
32660
+ var layoutSchema = z35.object({
32661
+ containerPadding: z35.object({
31846
32662
  mobile: containerPaddingPresetSchema.optional(),
31847
32663
  tablet: containerPaddingPresetSchema.optional(),
31848
32664
  desktop: containerPaddingPresetSchema.optional()
31849
32665
  }).optional()
31850
32666
  }).optional();
31851
- var heroTypographySizeSchema = z33.enum([
32667
+ var heroTypographySizeSchema = z35.enum([
31852
32668
  "sm",
31853
32669
  "base",
31854
32670
  "lg",
@@ -31859,14 +32675,14 @@ var heroTypographySizeSchema = z33.enum([
31859
32675
  "5xl",
31860
32676
  "6xl"
31861
32677
  ]);
31862
- var heroTypographyLineHeightSchema = z33.enum(["tight", "snug", "normal", "relaxed"]);
31863
- var heroResponsiveTypographySchema = z33.object({
32678
+ var heroTypographyLineHeightSchema = z35.enum(["tight", "snug", "normal", "relaxed"]);
32679
+ var heroResponsiveTypographySchema = z35.object({
31864
32680
  headlineSize: heroTypographySizeSchema.optional(),
31865
32681
  headlineLineHeight: heroTypographyLineHeightSchema.optional(),
31866
32682
  subheadlineSize: heroTypographySizeSchema.optional(),
31867
32683
  subheadlineLineHeight: heroTypographyLineHeightSchema.optional()
31868
32684
  });
31869
- var heroTypographySchema = z33.object({
32685
+ var heroTypographySchema = z35.object({
31870
32686
  headlineSize: heroTypographySizeSchema.optional(),
31871
32687
  headlineLineHeight: heroTypographyLineHeightSchema.optional(),
31872
32688
  subheadlineSize: heroTypographySizeSchema.optional(),
@@ -31875,24 +32691,24 @@ var heroTypographySchema = z33.object({
31875
32691
  microHeadlineLineHeight: heroTypographyLineHeightSchema.optional(),
31876
32692
  microSubheadlineSize: heroTypographySizeSchema.optional(),
31877
32693
  microSubheadlineLineHeight: heroTypographyLineHeightSchema.optional(),
31878
- responsive: z33.object({
32694
+ responsive: z35.object({
31879
32695
  tablet: heroResponsiveTypographySchema.optional(),
31880
32696
  mobile: heroResponsiveTypographySchema.optional()
31881
32697
  }).optional()
31882
32698
  });
31883
- var heroSchema = z33.object({
32699
+ var heroSchema = z35.object({
31884
32700
  typography: heroTypographySchema.optional()
31885
32701
  }).optional();
31886
- var gradientsSchema = z33.object({
31887
- button: z33.string().min(1).nullable().optional(),
31888
- hero: z33.string().min(1).nullable().optional(),
31889
- background: z33.string().min(1).nullable().optional()
31890
- });
31891
- var themeSchema = z33.object({
31892
- name: z33.string().min(1).max(30),
31893
- description: z33.string().min(1).max(400),
31894
- rationale: z33.string().min(1).max(400),
31895
- siteStyleId: z33.string().min(1).transform((value) => asSiteStyleId(value)).optional(),
32702
+ var gradientsSchema = z35.object({
32703
+ button: z35.string().min(1).nullable().optional(),
32704
+ hero: z35.string().min(1).nullable().optional(),
32705
+ background: z35.string().min(1).nullable().optional()
32706
+ });
32707
+ var themeSchema = z35.object({
32708
+ name: z35.string().min(1).max(30),
32709
+ description: z35.string().min(1).max(400),
32710
+ rationale: z35.string().min(1).max(400),
32711
+ siteStyleId: z35.string().min(1).transform((value) => asSiteStyleId(value)).optional(),
31896
32712
  axes: axesSchema,
31897
32713
  palette: paletteSchema,
31898
32714
  typography: typographySchema,
@@ -31919,16 +32735,16 @@ var themeSchema = z33.object({
31919
32735
  // Block-specific customization (Tier 3)
31920
32736
  // blockCustomVars: Per-block CSS variable overrides as bare values
31921
32737
  // Example: { "event-registration": { "--step-color": "#6d28d9" } }
31922
- blockCustomVars: z33.record(
31923
- z33.string(),
32738
+ blockCustomVars: z35.record(
32739
+ z35.string(),
31924
32740
  // block kind (matches data-block attribute)
31925
- z33.record(z33.string(), z33.string())
32741
+ z35.record(z35.string(), z35.string())
31926
32742
  // { '--var-name': 'value' }
31927
32743
  ).optional(),
31928
32744
  // Structured block-kind theme overrides (v1: typography prose-link style only)
31929
32745
  // Keyed by block kind (usually data-block value like "hero"; "block.hero" also accepted)
31930
- blockOverrides: z33.record(
31931
- z33.string(),
32746
+ blockOverrides: z35.record(
32747
+ z35.string(),
31932
32748
  blockThemeOverrideSchema
31933
32749
  ).optional(),
31934
32750
  // Structured custom CSS rules
@@ -31964,13 +32780,371 @@ var themeSchema = z33.object({
31964
32780
  * }
31965
32781
  * ```
31966
32782
  */
31967
- styleGroups: z33.record(z33.string(), z33.array(z33.string())).optional()
32783
+ styleGroups: z35.record(z35.string(), z35.array(z35.string())).optional()
31968
32784
  });
31969
- var themesTurnSchema = z33.object({
31970
- message: z33.string().min(1),
31971
- themes: z33.array(themeSchema).length(3)
32785
+ var themesTurnSchema = z35.object({
32786
+ message: z35.string().min(1),
32787
+ themes: z35.array(themeSchema).length(3)
31972
32788
  });
31973
32789
 
32790
+ // ../theme-core/src/palette/variants/types.ts
32791
+ function asPaletteVariantId(value) {
32792
+ if (value.length === 0) {
32793
+ throw new Error("PaletteVariantId must be a non-empty string");
32794
+ }
32795
+ return value;
32796
+ }
32797
+ var paletteVariantIdSchema = z36.string().min(1).transform((value) => asPaletteVariantId(value));
32798
+ var PALETTE_TOKEN_NAMES = [
32799
+ "primary",
32800
+ "primaryForeground",
32801
+ "secondary",
32802
+ "accent",
32803
+ "success",
32804
+ "warning",
32805
+ "destructive",
32806
+ "background",
32807
+ "surface",
32808
+ "surfaceAlt",
32809
+ "muted",
32810
+ "text",
32811
+ "border"
32812
+ ];
32813
+ var paletteTokenNameSchema = z36.enum(PALETTE_TOKEN_NAMES);
32814
+ var HEX_COLOR_REGEX = /^#[0-9a-f]{6}$/;
32815
+ var hexColorSchema = z36.string().regex(HEX_COLOR_REGEX, "Hex must be #RRGGBB (lowercase)").transform((value) => value);
32816
+ var variantPaletteColorSchema = paletteColorSchema.extend({
32817
+ name: paletteTokenNameSchema
32818
+ });
32819
+ var paletteVariantSchema = z36.object({
32820
+ id: paletteVariantIdSchema,
32821
+ name: z36.string().min(1),
32822
+ description: z36.string().min(1),
32823
+ tags: styleTagsSchema,
32824
+ mode: z36.enum(["light", "dark"]),
32825
+ colors: z36.array(variantPaletteColorSchema).min(1)
32826
+ });
32827
+ function definePaletteVariant(input) {
32828
+ return {
32829
+ id: asPaletteVariantId(input.id),
32830
+ name: input.name,
32831
+ description: input.description,
32832
+ tags: input.tags,
32833
+ mode: input.mode,
32834
+ colors: input.colors
32835
+ };
32836
+ }
32837
+ var paletteOverridesSchema = z36.object({
32838
+ primary: hexColorSchema.optional(),
32839
+ primaryForeground: hexColorSchema.optional(),
32840
+ secondary: hexColorSchema.optional(),
32841
+ accent: hexColorSchema.optional(),
32842
+ success: hexColorSchema.optional(),
32843
+ warning: hexColorSchema.optional(),
32844
+ destructive: hexColorSchema.optional(),
32845
+ background: hexColorSchema.optional(),
32846
+ surface: hexColorSchema.optional(),
32847
+ surfaceAlt: hexColorSchema.optional(),
32848
+ muted: hexColorSchema.optional(),
32849
+ text: hexColorSchema.optional(),
32850
+ border: hexColorSchema.optional()
32851
+ }).strict().transform((value) => value);
32852
+
32853
+ // ../theme-core/src/palette/variants/brand-led.ts
32854
+ var brandLedCool = definePaletteVariant({
32855
+ id: "brand-led-cool",
32856
+ name: "Brand-led \u2014 Cool",
32857
+ description: "Confident blue primary with slate neutrals.",
32858
+ tags: { tone: "classic", energy: "calm", era: "modern" },
32859
+ mode: "light",
32860
+ colors: [
32861
+ { name: "primary", hex: "#2563eb" },
32862
+ { name: "secondary", hex: "#64748b" },
32863
+ { name: "accent", hex: "#0f766e" },
32864
+ { name: "success", hex: "#16a34a" },
32865
+ { name: "warning", hex: "#d97706" },
32866
+ { name: "destructive", hex: "#dc2626" },
32867
+ { name: "background", hex: "#ffffff" },
32868
+ { name: "surface", hex: "#ffffff" },
32869
+ { name: "surfaceAlt", hex: "#f8fafc" },
32870
+ { name: "muted", hex: "#f1f5f9" },
32871
+ { name: "text", hex: "#0f172a" },
32872
+ { name: "primaryForeground", hex: "#ffffff" },
32873
+ { name: "border", hex: "#cbd5e1" }
32874
+ ]
32875
+ });
32876
+ var brandLedWarm = definePaletteVariant({
32877
+ id: "brand-led-warm",
32878
+ name: "Brand-led \u2014 Warm",
32879
+ description: "Sunset orange primary with warm grey neutrals.",
32880
+ tags: { tone: "classic", energy: "vibrant", era: "modern" },
32881
+ mode: "light",
32882
+ colors: [
32883
+ { name: "primary", hex: "#ea580c" },
32884
+ { name: "secondary", hex: "#78716c" },
32885
+ { name: "accent", hex: "#a16207" },
32886
+ { name: "success", hex: "#16a34a" },
32887
+ { name: "warning", hex: "#d97706" },
32888
+ { name: "destructive", hex: "#b91c1c" },
32889
+ { name: "background", hex: "#fffaf3" },
32890
+ { name: "surface", hex: "#ffffff" },
32891
+ { name: "surfaceAlt", hex: "#fbeee0" },
32892
+ { name: "muted", hex: "#f4e2cd" },
32893
+ { name: "text", hex: "#1c1917" },
32894
+ { name: "primaryForeground", hex: "#fffaf3" },
32895
+ { name: "border", hex: "#d6c4ad" }
32896
+ ]
32897
+ });
32898
+ var brandLedJewel = definePaletteVariant({
32899
+ id: "brand-led-jewel",
32900
+ name: "Brand-led \u2014 Jewel",
32901
+ description: "Deep emerald primary with rich neutrals.",
32902
+ tags: { tone: "bold", energy: "vibrant", era: "modern" },
32903
+ mode: "light",
32904
+ colors: [
32905
+ { name: "primary", hex: "#047857" },
32906
+ { name: "secondary", hex: "#4b5563" },
32907
+ { name: "accent", hex: "#7c3aed" },
32908
+ { name: "success", hex: "#15803d" },
32909
+ { name: "warning", hex: "#b45309" },
32910
+ { name: "destructive", hex: "#b91c1c" },
32911
+ { name: "background", hex: "#ffffff" },
32912
+ { name: "surface", hex: "#ffffff" },
32913
+ { name: "surfaceAlt", hex: "#f5f5f4" },
32914
+ { name: "muted", hex: "#e7e5e4" },
32915
+ { name: "text", hex: "#0c0a09" },
32916
+ { name: "primaryForeground", hex: "#ffffff" },
32917
+ { name: "border", hex: "#a8a29e" }
32918
+ ]
32919
+ });
32920
+
32921
+ // ../theme-core/src/palette/variants/high-contrast.ts
32922
+ var highContrastInk = definePaletteVariant({
32923
+ id: "high-contrast-ink",
32924
+ name: "High Contrast \u2014 Ink",
32925
+ description: "Near-black primary with cool greys.",
32926
+ tags: { tone: "bold", energy: "calm", era: "editorial" },
32927
+ mode: "light",
32928
+ colors: [
32929
+ { name: "primary", hex: "#111827" },
32930
+ { name: "secondary", hex: "#374151" },
32931
+ { name: "accent", hex: "#1d4ed8" },
32932
+ { name: "success", hex: "#047857" },
32933
+ { name: "warning", hex: "#b45309" },
32934
+ { name: "destructive", hex: "#b91c1c" },
32935
+ { name: "background", hex: "#ffffff" },
32936
+ { name: "surface", hex: "#ffffff" },
32937
+ { name: "surfaceAlt", hex: "#f3f4f6" },
32938
+ { name: "muted", hex: "#e5e7eb" },
32939
+ { name: "text", hex: "#030712" },
32940
+ { name: "primaryForeground", hex: "#ffffff" },
32941
+ { name: "border", hex: "#6b7280" }
32942
+ ]
32943
+ });
32944
+ var highContrastCharcoal = definePaletteVariant({
32945
+ id: "high-contrast-charcoal",
32946
+ name: "High Contrast \u2014 Charcoal",
32947
+ description: "Warm charcoal primary on a soft cream ground.",
32948
+ tags: { tone: "minimal", energy: "calm", era: "editorial" },
32949
+ mode: "light",
32950
+ colors: [
32951
+ { name: "primary", hex: "#1f2937" },
32952
+ { name: "secondary", hex: "#52525b" },
32953
+ { name: "accent", hex: "#a16207" },
32954
+ { name: "success", hex: "#15803d" },
32955
+ { name: "warning", hex: "#b45309" },
32956
+ { name: "destructive", hex: "#991b1b" },
32957
+ { name: "background", hex: "#fafaf9" },
32958
+ { name: "surface", hex: "#ffffff" },
32959
+ { name: "surfaceAlt", hex: "#f5f5f4" },
32960
+ { name: "muted", hex: "#e7e5e4" },
32961
+ { name: "text", hex: "#0c0a09" },
32962
+ { name: "primaryForeground", hex: "#fafaf9" },
32963
+ { name: "border", hex: "#a8a29e" }
32964
+ ]
32965
+ });
32966
+ var highContrastMonochrome = definePaletteVariant({
32967
+ id: "high-contrast-monochrome",
32968
+ name: "High Contrast \u2014 Monochrome",
32969
+ description: "Pure black-on-white with a single saturated accent.",
32970
+ tags: { tone: "bold", energy: "vibrant", era: "editorial" },
32971
+ mode: "light",
32972
+ colors: [
32973
+ { name: "primary", hex: "#000000" },
32974
+ { name: "secondary", hex: "#404040" },
32975
+ { name: "accent", hex: "#dc2626" },
32976
+ { name: "success", hex: "#000000" },
32977
+ { name: "warning", hex: "#000000" },
32978
+ { name: "destructive", hex: "#dc2626" },
32979
+ { name: "background", hex: "#ffffff" },
32980
+ { name: "surface", hex: "#ffffff" },
32981
+ { name: "surfaceAlt", hex: "#f5f5f5" },
32982
+ { name: "muted", hex: "#e5e5e5" },
32983
+ { name: "text", hex: "#000000" },
32984
+ { name: "primaryForeground", hex: "#ffffff" },
32985
+ { name: "border", hex: "#525252" }
32986
+ ]
32987
+ });
32988
+
32989
+ // ../theme-core/src/palette/variants/soft-natural.ts
32990
+ var softNaturalSage = definePaletteVariant({
32991
+ id: "soft-natural-sage",
32992
+ name: "Soft Natural \u2014 Sage",
32993
+ description: "Olive sage primary on an off-white ground.",
32994
+ tags: { tone: "classic", energy: "calm", era: "organic" },
32995
+ mode: "light",
32996
+ colors: [
32997
+ { name: "primary", hex: "#3f6212" },
32998
+ { name: "secondary", hex: "#6b7280" },
32999
+ { name: "accent", hex: "#0f766e" },
33000
+ { name: "success", hex: "#15803d" },
33001
+ { name: "warning", hex: "#a16207" },
33002
+ { name: "destructive", hex: "#b91c1c" },
33003
+ { name: "background", hex: "#fbfdf7" },
33004
+ { name: "surface", hex: "#ffffff" },
33005
+ { name: "surfaceAlt", hex: "#eef5e8" },
33006
+ { name: "muted", hex: "#e7efdf" },
33007
+ { name: "text", hex: "#1f2a1d" },
33008
+ { name: "primaryForeground", hex: "#ffffff" },
33009
+ { name: "border", hex: "#cbd8c0" }
33010
+ ]
33011
+ });
33012
+ var softNaturalStone = definePaletteVariant({
33013
+ id: "soft-natural-stone",
33014
+ name: "Soft Natural \u2014 Stone",
33015
+ description: "River-stone grey-green primary with cool neutrals.",
33016
+ tags: { tone: "minimal", energy: "calm", era: "organic" },
33017
+ mode: "light",
33018
+ colors: [
33019
+ { name: "primary", hex: "#5a7a5d" },
33020
+ { name: "secondary", hex: "#8a9a8c" },
33021
+ { name: "accent", hex: "#c9b88f" },
33022
+ { name: "success", hex: "#5a7a5d" },
33023
+ { name: "warning", hex: "#a89466" },
33024
+ { name: "destructive", hex: "#a3503e" },
33025
+ { name: "background", hex: "#faf6ec" },
33026
+ { name: "surface", hex: "#ffffff" },
33027
+ { name: "surfaceAlt", hex: "#f0ecdf" },
33028
+ { name: "muted", hex: "#e6e1d0" },
33029
+ { name: "text", hex: "#2f3d31" },
33030
+ { name: "primaryForeground", hex: "#faf6ec" },
33031
+ { name: "border", hex: "#c9c1ad" }
33032
+ ]
33033
+ });
33034
+ var softNaturalWatercolor = definePaletteVariant({
33035
+ id: "soft-natural-watercolor",
33036
+ name: "Soft Natural \u2014 Watercolor",
33037
+ description: "Soft sand primary with watercolour sage accents.",
33038
+ tags: { tone: "classic", energy: "vibrant", era: "organic" },
33039
+ mode: "light",
33040
+ colors: [
33041
+ { name: "primary", hex: "#a8825f" },
33042
+ { name: "secondary", hex: "#88a888" },
33043
+ { name: "accent", hex: "#c8a78e" },
33044
+ { name: "success", hex: "#7d8a5f" },
33045
+ { name: "warning", hex: "#c89a4d" },
33046
+ { name: "destructive", hex: "#a3503e" },
33047
+ { name: "background", hex: "#fefdfa" },
33048
+ { name: "surface", hex: "#ffffff" },
33049
+ { name: "surfaceAlt", hex: "#f6f1e6" },
33050
+ { name: "muted", hex: "#eee7d1" },
33051
+ { name: "text", hex: "#4a3d30" },
33052
+ { name: "primaryForeground", hex: "#fefdfa" },
33053
+ { name: "border", hex: "#d8c9a8" }
33054
+ ]
33055
+ });
33056
+
33057
+ // ../theme-core/src/palette/variants/warm-neutral.ts
33058
+ var warmNeutralClay = definePaletteVariant({
33059
+ id: "warm-neutral-clay",
33060
+ name: "Warm Neutral \u2014 Clay",
33061
+ description: "Terracotta primary on a cream ground.",
33062
+ tags: { tone: "classic", energy: "calm", era: "organic" },
33063
+ mode: "light",
33064
+ colors: [
33065
+ { name: "primary", hex: "#8b5e34" },
33066
+ { name: "secondary", hex: "#7c6f64" },
33067
+ { name: "accent", hex: "#a15c38" },
33068
+ { name: "success", hex: "#527853" },
33069
+ { name: "warning", hex: "#b7791f" },
33070
+ { name: "destructive", hex: "#b91c1c" },
33071
+ { name: "background", hex: "#fffaf3" },
33072
+ { name: "surface", hex: "#ffffff" },
33073
+ { name: "surfaceAlt", hex: "#f5eadc" },
33074
+ { name: "muted", hex: "#efe2d0" },
33075
+ { name: "text", hex: "#2f241c" },
33076
+ { name: "primaryForeground", hex: "#fffaf3" },
33077
+ { name: "border", hex: "#d8c6b3" }
33078
+ ]
33079
+ });
33080
+ var warmNeutralCream = definePaletteVariant({
33081
+ id: "warm-neutral-cream",
33082
+ name: "Warm Neutral \u2014 Cream",
33083
+ description: "Soft sand primary with pale cream surfaces.",
33084
+ tags: { tone: "minimal", energy: "calm", era: "organic" },
33085
+ mode: "light",
33086
+ colors: [
33087
+ { name: "primary", hex: "#b08864" },
33088
+ { name: "secondary", hex: "#9a8c7e" },
33089
+ { name: "accent", hex: "#c2956a" },
33090
+ { name: "success", hex: "#7d8a5f" },
33091
+ { name: "warning", hex: "#c89a4d" },
33092
+ { name: "destructive", hex: "#a3503e" },
33093
+ { name: "background", hex: "#fdf8ee" },
33094
+ { name: "surface", hex: "#ffffff" },
33095
+ { name: "surfaceAlt", hex: "#f4ebd9" },
33096
+ { name: "muted", hex: "#ede3cf" },
33097
+ { name: "text", hex: "#3b2f24" },
33098
+ { name: "primaryForeground", hex: "#fdf8ee" },
33099
+ { name: "border", hex: "#e0d2b8" }
33100
+ ]
33101
+ });
33102
+ var warmNeutralForest = definePaletteVariant({
33103
+ id: "warm-neutral-forest",
33104
+ name: "Warm Neutral \u2014 Forest",
33105
+ description: "Deep forest green primary with earthy neutrals.",
33106
+ tags: { tone: "classic", energy: "calm", era: "organic" },
33107
+ mode: "light",
33108
+ colors: [
33109
+ { name: "primary", hex: "#3d5840" },
33110
+ { name: "secondary", hex: "#7a6f5d" },
33111
+ { name: "accent", hex: "#b06b50" },
33112
+ { name: "success", hex: "#5a7a5d" },
33113
+ { name: "warning", hex: "#b7791f" },
33114
+ { name: "destructive", hex: "#b91c1c" },
33115
+ { name: "background", hex: "#fbf8f0" },
33116
+ { name: "surface", hex: "#ffffff" },
33117
+ { name: "surfaceAlt", hex: "#f2ecdb" },
33118
+ { name: "muted", hex: "#ebe3cc" },
33119
+ { name: "text", hex: "#2a2a2a" },
33120
+ { name: "primaryForeground", hex: "#fbf8f0" },
33121
+ { name: "border", hex: "#cdc1a4" }
33122
+ ]
33123
+ });
33124
+
33125
+ // ../theme-core/src/palette/variants/index.ts
33126
+ var paletteVariants = [
33127
+ // Brand-led family
33128
+ brandLedCool,
33129
+ brandLedWarm,
33130
+ brandLedJewel,
33131
+ // Warm-neutral family
33132
+ warmNeutralClay,
33133
+ warmNeutralCream,
33134
+ warmNeutralForest,
33135
+ // High-contrast family
33136
+ highContrastInk,
33137
+ highContrastCharcoal,
33138
+ highContrastMonochrome,
33139
+ // Soft-natural family
33140
+ softNaturalSage,
33141
+ softNaturalStone,
33142
+ softNaturalWatercolor
33143
+ ];
33144
+ var paletteVariantsById = new Map(
33145
+ paletteVariants.map((v) => [v.id, v])
33146
+ );
33147
+
31974
33148
  // ../theme-core/src/palette/utils/paletteAccess.ts
31975
33149
  init_colorConversion();
31976
33150
 
@@ -33248,7 +34422,7 @@ var pipeline = new BasicPipeline().filter.register(
33248
34422
  Vibrant.use(pipeline);
33249
34423
 
33250
34424
  // ../theme-core/src/styles/buttons.ts
33251
- init_shadow();
34425
+ init_shadow2();
33252
34426
  init_colorStyles();
33253
34427
 
33254
34428
  // ../blocks/src/index.ts
@@ -33258,6 +34432,7 @@ init_generateShades();
33258
34432
  init_expandPalette();
33259
34433
 
33260
34434
  // ../blocks/src/index.ts
34435
+ init_buttons();
33261
34436
  init_tokens2();
33262
34437
 
33263
34438
  // ../theme-core/src/ThemeScope.tsx
@@ -33279,7 +34454,7 @@ init_buildThemeRuntime();
33279
34454
 
33280
34455
  // ../theme-core/src/runtime/buildThemeRuntimeFromBridge.ts
33281
34456
  init_colorConversion();
33282
- init_shadow();
34457
+ init_shadow2();
33283
34458
 
33284
34459
  // ../blocks/src/index.ts
33285
34460
  init_blocks();