@riverbankcms/sdk 0.60.0 → 0.60.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. package/README.md +20 -3
  2. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +1 -3
  3. package/dist/_dts/api/src/bookingRecords.d.ts +8 -0
  4. package/dist/_dts/api/src/communications.d.ts +1 -0
  5. package/dist/_dts/api/src/contentRuntime.d.ts +8 -0
  6. package/dist/_dts/api/src/endpoints.d.ts +18 -1
  7. package/dist/_dts/api/src/index.d.ts +1 -1
  8. package/dist/_dts/api/src/media.d.ts +1 -1
  9. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +45 -1
  10. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +24 -1
  11. package/dist/_dts/api/src/siteSettings.d.ts +7 -0
  12. package/dist/_dts/api/src/types.d.ts +1 -1
  13. package/dist/_dts/billing/src/plans/types.d.ts +27 -0
  14. package/dist/_dts/blocks/src/system/blocks/events/event-calendar.d.ts +1 -0
  15. package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +3 -0
  16. package/dist/_dts/blocks/src/system/blocks/site-footer.d.ts +1 -0
  17. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +173 -2
  18. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +24 -2
  19. package/dist/_dts/blocks/src/system/runtime/header/shared.d.ts +1 -0
  20. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.client.d.ts +1 -0
  21. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/AgendaEventCard.d.ts +2 -0
  22. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/DayEventsModal.d.ts +2 -1
  23. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventDetailModal.d.ts +2 -1
  24. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventModals.d.ts +2 -1
  25. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekAgendaView.d.ts +1 -0
  26. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekTimetableView.d.ts +1 -0
  27. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCapacity.d.ts +16 -0
  28. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/timetableModel.d.ts +2 -0
  29. package/dist/_dts/blocks/src/system/runtime/nodes/location-map.server.d.ts +4 -0
  30. package/dist/_dts/blocks/src/system/runtime/nodes/location-map.shared.d.ts +38 -0
  31. package/dist/_dts/blocks/src/system/runtime/nodes/location-map.view.d.ts +2 -1
  32. package/dist/_dts/content-editor/src/index.d.ts +2 -2
  33. package/dist/_dts/content-editor/src/primitives/shared/activePreviewField.d.ts +9 -0
  34. package/dist/_dts/content-editor/src/primitives/shared/index.d.ts +1 -0
  35. package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +10 -0
  36. package/dist/_dts/core/src/business-address.d.ts +38 -0
  37. package/dist/_dts/core/src/index.d.ts +1 -0
  38. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +22 -0
  39. package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +3 -0
  40. package/dist/_dts/editor-blocks/src/BlockForm.d.ts +4 -0
  41. package/dist/_dts/editor-blocks/src/block-editor/BlockCard.d.ts +8 -5
  42. package/dist/_dts/editor-blocks/src/block-editor/BlockCardHeader.d.ts +7 -5
  43. package/dist/_dts/editor-blocks/src/block-editor/SortableBlockItem.d.ts +2 -0
  44. package/dist/_dts/editor-blocks/src/block-editor/reorderControlMode.d.ts +3 -0
  45. package/dist/_dts/editor-blocks/src/block-editor/types.d.ts +4 -0
  46. package/dist/_dts/media-react/src/hooks/useApiMediaUploader.d.ts +14 -0
  47. package/dist/_dts/media-react/src/index.d.ts +1 -1
  48. package/dist/_dts/preview-next/src/client/blocks/runOptimisticCustomizeAction.d.ts +43 -20
  49. package/dist/_dts/preview-next/src/client/index.d.ts +2 -0
  50. package/dist/_dts/preview-next/src/client/preview/PageDesignEditorStateContext.d.ts +11 -28
  51. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +7 -1
  52. package/dist/_dts/preview-next/src/client/preview/PreviewEditorUI.d.ts +1 -1
  53. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +12 -1
  54. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +6 -1
  55. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.d.ts +20 -0
  56. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +99 -0
  57. package/dist/_dts/preview-next/src/client/preview/previewChromeSurface.d.ts +12 -0
  58. package/dist/_dts/preview-next/src/client/preview/previewCustomizeHistory.d.ts +41 -0
  59. package/dist/_dts/preview-next/src/client/preview/previewCustomizeRuntimePatch.d.ts +15 -0
  60. package/dist/_dts/preview-next/src/client/preview/previewCustomizeWorkflowState.d.ts +106 -0
  61. package/dist/_dts/preview-next/src/client/preview/previewUndoDomains.d.ts +34 -0
  62. package/dist/_dts/preview-next/src/client/preview/sidebarTabPreference.d.ts +2 -1
  63. package/dist/_dts/preview-next/src/client/preview/useOnboardingConfirmationCheck.d.ts +4 -9
  64. package/dist/_dts/preview-next/src/constants.d.ts +0 -1
  65. package/dist/_dts/preview-next/src/index.d.ts +1 -0
  66. package/dist/_dts/preview-next/src/onboarding-preview-planner.d.ts +89 -0
  67. package/dist/_dts/preview-next/src/route-contract.d.ts +37 -0
  68. package/dist/_dts/sdk/src/public-api/contracts.d.ts +11 -1
  69. package/dist/_dts/sdk/src/rendering/components/Block.d.ts +7 -76
  70. package/dist/_dts/sdk/src/rendering/components/Block.server.d.ts +9 -0
  71. package/dist/_dts/sdk/src/rendering/components/Block.shared.d.ts +78 -0
  72. package/dist/_dts/sdk/src/rendering/components/Layout.d.ts +5 -5
  73. package/dist/_dts/sdk/src/rendering/server.d.ts +2 -2
  74. package/dist/_dts/sdk/src/version.d.ts +1 -1
  75. package/dist/_dts/theme-core/src/buttons/constants.d.ts +9 -1
  76. package/dist/_dts/theme-core/src/buttons/generateButtonCss.d.ts +16 -11
  77. package/dist/_dts/theme-core/src/buttons/generateDefaultButtonSystem.d.ts +9 -16
  78. package/dist/_dts/theme-core/src/buttons/index.d.ts +1 -0
  79. package/dist/_dts/theme-core/src/buttons/personalities/brushed-wash.d.ts +11 -0
  80. package/dist/_dts/theme-core/src/buttons/personalities/confident-chip.d.ts +11 -0
  81. package/dist/_dts/theme-core/src/buttons/personalities/editorial-link.d.ts +11 -0
  82. package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +14 -0
  83. package/dist/_dts/theme-core/src/buttons/personalities/ink-stamp.d.ts +11 -0
  84. package/dist/_dts/theme-core/src/buttons/personalities/pebble.d.ts +11 -0
  85. package/dist/_dts/theme-core/src/buttons/personalities/soft-pill.d.ts +11 -0
  86. package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +268 -0
  87. package/dist/_dts/theme-core/src/buttons/types.d.ts +253 -72
  88. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  89. package/dist/_dts/theme-core/src/index.d.ts +17 -16
  90. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +69 -15
  91. package/dist/_dts/theme-core/src/palette/index.d.ts +1 -0
  92. package/dist/_dts/theme-core/src/palette/variants/brand-led.d.ts +28 -0
  93. package/dist/_dts/theme-core/src/palette/variants/high-contrast.d.ts +28 -0
  94. package/dist/_dts/theme-core/src/palette/variants/index.d.ts +17 -0
  95. package/dist/_dts/theme-core/src/palette/variants/soft-natural.d.ts +28 -0
  96. package/dist/_dts/theme-core/src/palette/variants/types.d.ts +154 -0
  97. package/dist/_dts/theme-core/src/palette/variants/warm-neutral.d.ts +28 -0
  98. package/dist/_dts/theme-core/src/responsiveDisplay.d.ts +23 -0
  99. package/dist/_dts/theme-core/src/responsiveMode.d.ts +21 -0
  100. package/dist/_dts/theme-core/src/schema.d.ts +122 -10
  101. package/dist/_dts/theme-core/src/site-styles/compatibility.d.ts +109 -0
  102. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +193 -0
  103. package/dist/_dts/theme-core/src/site-styles/index.d.ts +2 -0
  104. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorErrors.d.ts +1 -0
  105. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +4 -0
  106. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +43 -2
  107. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +23 -1
  108. package/dist/_dts/ui/src/badge.d.ts +1 -1
  109. package/dist/_dts/ui/src/callout.d.ts +1 -1
  110. package/dist/_dts/ui/src/command-multi-select.d.ts +2 -2
  111. package/dist/cli/index.mjs +1590 -302
  112. package/dist/client/bookings.mjs +321 -144
  113. package/dist/client/client.mjs +4371 -2715
  114. package/dist/client/hooks.mjs +2826 -1675
  115. package/dist/client/rendering/client.mjs +3570 -2262
  116. package/dist/client/rendering/islands.mjs +1948 -756
  117. package/dist/client/rendering.mjs +42015 -40278
  118. package/dist/preview-next/before-render.mjs +5542 -0
  119. package/dist/preview-next/client/runtime.mjs +103364 -99924
  120. package/dist/preview-next/constants.mjs +0 -2
  121. package/dist/preview-next/index.mjs +0 -2
  122. package/dist/preview-next/middleware.mjs +5552 -1
  123. package/dist/server/components.mjs +11234 -9740
  124. package/dist/server/config-validation.mjs +3057 -1906
  125. package/dist/server/config.mjs +3057 -1906
  126. package/dist/server/data.mjs +2826 -1675
  127. package/dist/server/index.mjs +19 -2
  128. package/dist/server/next.mjs +3997 -2507
  129. package/dist/server/page-converter.mjs +2970 -1836
  130. package/dist/server/prebuild.mjs +1 -1
  131. package/dist/server/rendering/server.mjs +5960 -3200
  132. package/dist/server/rendering.mjs +12734 -11162
  133. package/dist/server/routing.mjs +3045 -1743
  134. package/dist/server/server.mjs +2827 -1676
  135. package/dist/server/theme-bridge.mjs +2074 -839
  136. package/dist/server/theme.mjs +1087 -492
  137. package/dist/styles/index.css +343 -299
  138. package/package.json +1 -1
  139. package/dist/_dts/preview-next/src/client/preview/PreviewSiteStyleSwitcher.d.ts +0 -11
  140. package/dist/_dts/preview-next/src/client/preview/PreviewSiteStyleSwitcher.state.d.ts +0 -43
@@ -46,172 +46,767 @@ function brandNonEmptyString(value, label) {
46
46
  return value;
47
47
  }
48
48
 
49
+ // ../theme-core/src/site-styles/compatibility.ts
50
+ import { z } from "zod";
51
+ var STYLE_AXIS_VALUES = {
52
+ tone: ["minimal", "classic", "bold"],
53
+ energy: ["calm", "vibrant"],
54
+ motion: ["subtle", "standard", "expressive"],
55
+ era: ["editorial", "modern", "organic", "technical", "retro"]
56
+ };
57
+ var styleTagsSchema = z.object({
58
+ tone: z.enum(STYLE_AXIS_VALUES.tone).optional(),
59
+ energy: z.enum(STYLE_AXIS_VALUES.energy).optional(),
60
+ motion: z.enum(STYLE_AXIS_VALUES.motion).optional(),
61
+ era: z.enum(STYLE_AXIS_VALUES.era).optional()
62
+ });
63
+
49
64
  // ../theme-core/src/schema.ts
50
- import { z as z12 } from "zod";
65
+ import { z as z14 } from "zod";
51
66
 
52
67
  // ../theme-core/src/lib/media.ts
53
- import z from "zod";
54
- var hotspotSchema = z.object({
55
- x: z.number().min(0).max(1),
56
- y: z.number().min(0).max(1),
57
- radius: z.number().optional()
68
+ import z2 from "zod";
69
+ var hotspotSchema = z2.object({
70
+ x: z2.number().min(0).max(1),
71
+ y: z2.number().min(0).max(1),
72
+ radius: z2.number().optional()
58
73
  });
59
- var rotationSchema = z.union([z.literal(0), z.literal(90), z.literal(180), z.literal(270)]);
60
- var rectSchema = z.tuple([z.number(), z.number(), z.number(), z.number()]);
61
- var aspectCropSchema = z.object({
62
- aspect: z.preprocess((value) => value == null ? void 0 : value, z.string().optional()),
63
- rect: z.preprocess((value) => value == null ? void 0 : value, rectSchema.optional()),
64
- hotspot: z.preprocess((value) => value == null ? void 0 : value, hotspotSchema.optional()),
65
- rotation: z.preprocess((value) => value == null ? void 0 : value, rotationSchema.optional())
74
+ var rotationSchema = z2.union([z2.literal(0), z2.literal(90), z2.literal(180), z2.literal(270)]);
75
+ var rectSchema = z2.tuple([z2.number(), z2.number(), z2.number(), z2.number()]);
76
+ var aspectCropSchema = z2.object({
77
+ aspect: z2.preprocess((value) => value == null ? void 0 : value, z2.string().optional()),
78
+ rect: z2.preprocess((value) => value == null ? void 0 : value, rectSchema.optional()),
79
+ hotspot: z2.preprocess((value) => value == null ? void 0 : value, hotspotSchema.optional()),
80
+ rotation: z2.preprocess((value) => value == null ? void 0 : value, rotationSchema.optional())
66
81
  });
67
- var transformSchema = z.object({
68
- aspectCrops: z.preprocess((value) => {
82
+ var transformSchema = z2.object({
83
+ aspectCrops: z2.preprocess((value) => {
69
84
  if (!value || typeof value !== "object" || Array.isArray(value)) {
70
85
  return void 0;
71
86
  }
72
87
  return value;
73
- }, z.record(z.string(), aspectCropSchema.catch({}))).optional(),
88
+ }, z2.record(z2.string(), aspectCropSchema.catch({}))).optional(),
74
89
  rect: rectSchema.optional(),
75
90
  hotspot: hotspotSchema.optional(),
76
91
  rotation: rotationSchema.optional()
77
92
  });
78
- var mediaSchema = z.object({
79
- type: z.enum(["image", "video", "audio", "document", "spreadsheet", "archive"]),
80
- purpose: z.string().optional(),
81
- placeholder: z.boolean().default(true).optional(),
82
- assetId: z.string().optional(),
83
- identifier: z.string().optional(),
84
- src: z.string().optional(),
85
- alt: z.string().optional(),
86
- filename: z.string().optional(),
87
- mimeType: z.string().optional(),
88
- width: z.number().optional(),
89
- height: z.number().optional(),
90
- storageBucket: z.string().optional(),
91
- storagePath: z.string().optional(),
93
+ var mediaSchema = z2.object({
94
+ type: z2.enum(["image", "video", "audio", "document", "spreadsheet", "archive"]),
95
+ purpose: z2.string().optional(),
96
+ placeholder: z2.boolean().default(true).optional(),
97
+ assetId: z2.string().optional(),
98
+ identifier: z2.string().optional(),
99
+ src: z2.string().optional(),
100
+ alt: z2.string().optional(),
101
+ filename: z2.string().optional(),
102
+ mimeType: z2.string().optional(),
103
+ width: z2.number().optional(),
104
+ height: z2.number().optional(),
105
+ storageBucket: z2.string().optional(),
106
+ storagePath: z2.string().optional(),
92
107
  transform: transformSchema.optional()
93
108
  });
94
109
 
95
110
  // ../theme-core/src/buttons/types.ts
96
- import { z as z2 } from "zod";
97
- var cornerStyleSchema = z2.enum(["square", "rounded", "pill"]);
98
- var shadowSizeSchema = z2.enum(["none", "low", "medium", "high"]);
99
- var textTransformSchema = z2.enum(["none", "uppercase", "lowercase", "capitalize"]);
100
- var fontWeightSchema = z2.union([z2.literal(500), z2.literal(600), z2.literal(700)]);
101
- var buttonTypographySchema = z2.enum(["body", "heading"]);
102
- var hoverTransformSchema = z2.enum(["none", "lift", "scale", "press"]);
103
- var hoverColorSchema = z2.enum(["none", "brighten", "darken", "saturate", "token"]);
104
- var buttonPaddingPresetSchema = z2.enum(["compact", "default", "spacious"]);
105
- var gradientStyleSchema = z2.enum(["linear", "radial", "conic"]);
106
- var gradientSharpnessSchema = z2.enum(["smooth", "medium", "hard"]);
107
- var buttonSizeNameSchema = z2.enum(["sm", "md", "lg", "xl"]);
108
- var buttonSizeConfigSchema = z2.object({
109
- padding: z2.string(),
110
- fontSize: z2.string().optional()
111
+ import { z as z3 } from "zod";
112
+ var VARIANT_ROLES = [
113
+ "primary",
114
+ "secondary",
115
+ "outline",
116
+ "ghost",
117
+ "link",
118
+ "tertiary",
119
+ "accent"
120
+ ];
121
+ var cornerStyleSchema = z3.enum(["square", "rounded", "pill"]);
122
+ var shadowSizeSchema = z3.enum(["none", "low", "medium", "high"]);
123
+ var textTransformSchema = z3.enum(["none", "uppercase", "lowercase", "capitalize"]);
124
+ var fontWeightSchema = z3.union([z3.literal(500), z3.literal(600), z3.literal(700)]);
125
+ var buttonTypographySchema = z3.enum(["body", "heading"]);
126
+ var letterSpacingSchema = z3.enum(["tight", "normal", "loose"]);
127
+ var hoverTransformSchema = z3.enum(["none", "lift", "scale", "press"]);
128
+ var hoverColorSchema = z3.enum(["none", "brighten", "darken", "saturate", "token"]);
129
+ var buttonPaddingPresetSchema = z3.enum(["compact", "default", "spacious"]);
130
+ var gradientStyleSchema = z3.enum(["linear", "radial", "conic"]);
131
+ var gradientSharpnessSchema = z3.enum(["smooth", "medium", "hard"]);
132
+ var prioritySchema = z3.union([z3.literal(1), z3.literal(2), z3.literal(3)]);
133
+ var variantRoleSchema = z3.enum(VARIANT_ROLES);
134
+ var buttonSizeNameSchema = z3.enum(["sm", "md", "lg", "xl"]);
135
+ var PADDING_TOKEN_PATTERN = /^(?:0|\d+(?:\.\d+)?(?:rem|em|px|%))$/;
136
+ var paddingShorthandSchema = z3.string().refine(
137
+ (value) => {
138
+ const parts = value.split(/\s+/).filter(Boolean);
139
+ return parts.length === 2 && parts.every((token) => PADDING_TOKEN_PATTERN.test(token));
140
+ },
141
+ {
142
+ message: 'Padding must be two space-separated CSS length tokens (e.g. "0.5rem 1rem"). Use `0` for zero.'
143
+ }
144
+ );
145
+ var buttonSizeConfigSchema = z3.object({
146
+ padding: paddingShorthandSchema,
147
+ fontSize: z3.string().optional()
111
148
  });
112
- var buttonSizesSchema = z2.object({
149
+ var buttonSizesSchema = z3.object({
113
150
  sm: buttonSizeConfigSchema,
114
151
  md: buttonSizeConfigSchema,
115
152
  lg: buttonSizeConfigSchema,
116
153
  xl: buttonSizeConfigSchema.optional()
117
- });
118
- var backgroundTreatmentSchema = z2.enum(["solid", "gradient", "outline", "ghost"]);
119
- var outlineHoverEffectSchema = z2.enum([
120
- "border-glow",
121
- "border-shift",
122
- "border-grow",
123
- "fill-transition",
124
- "border-trace"
125
- ]);
126
- var buttonGlobalSettingsSchema = z2.object({
154
+ }).transform(({ sm, md, lg, xl }) => ({
155
+ sm,
156
+ md,
157
+ lg,
158
+ xl: xl ?? lg
159
+ }));
160
+ var buttonGlobalSettingsSchema = z3.object({
127
161
  cornerStyle: cornerStyleSchema,
128
- cornerRadius: z2.number().min(0).max(24).optional(),
162
+ cornerRadius: z3.number().min(0).max(24).optional(),
129
163
  shadow: shadowSizeSchema,
130
164
  textTransform: textTransformSchema,
131
165
  fontWeight: fontWeightSchema,
132
- borderWidth: z2.union([z2.literal(1), z2.literal(2), z2.literal(3)]),
133
- // Typography source (body or heading)
166
+ /**
167
+ * @deprecated Set per-variant via `variant.border.widthClass` instead.
168
+ * Schema field is preserved so existing presets parse; the value is unread
169
+ * by the current generator and will be removed once the legacy
170
+ * `primitives/content/components/Button.tsx` slot exports are deleted.
171
+ */
172
+ borderWidth: z3.union([z3.literal(1), z3.literal(2), z3.literal(3)]),
173
+ // === Family-level typography ===
174
+ // Typography source (body or heading) — selects which theme typography pool to inherit
134
175
  typography: buttonTypographySchema.optional(),
176
+ // Font size for all variants in the family (Tailwind token, e.g. "text-xs", "text-sm")
177
+ // Sized variants get this as default; fixed variants inherit unless they override.
178
+ // Size class CSS may still override at run time for sized variants.
179
+ fontSize: z3.string().optional(),
180
+ // Letter spacing applied to all variants
181
+ letterSpacing: letterSpacingSchema.optional(),
135
182
  // Italic style
136
- italic: z2.boolean().optional(),
137
- // Padding preset (applies to all variants unless overridden)
183
+ italic: z3.boolean().optional(),
184
+ // Padding preset (applies to sized variants without a sizes config)
138
185
  paddingPreset: buttonPaddingPresetSchema.optional(),
139
186
  hoverTransform: hoverTransformSchema,
140
187
  hoverColor: hoverColorSchema,
141
188
  // When hoverColor is 'token', this specifies which token to use
142
- hoverColorToken: z2.string().optional(),
189
+ hoverColorToken: z3.string().optional(),
143
190
  // Gradient settings (if any variant uses gradients)
144
191
  gradientStyle: gradientStyleSchema.optional(),
145
- gradientAngle: z2.number().min(0).max(360).optional(),
192
+ gradientAngle: z3.number().min(0).max(360).optional(),
146
193
  gradientSharpness: gradientSharpnessSchema.optional()
147
194
  });
148
- var gradientDirectionSchema = z2.enum(["to-r", "to-l", "to-t", "to-b", "to-tr", "to-tl", "to-br", "to-bl"]);
149
- var buttonBackgroundSchema = z2.discriminatedUnion("type", [
150
- z2.object({ type: z2.literal("solid"), colorToken: z2.string() }),
151
- z2.object({
152
- type: z2.literal("gradient"),
153
- stops: z2.array(z2.string()).min(2),
195
+ var gradientDirectionSchema = z3.enum(["to-r", "to-l", "to-t", "to-b", "to-tr", "to-tl", "to-br", "to-bl"]);
196
+ var buttonBackgroundSchema = z3.discriminatedUnion("type", [
197
+ z3.object({ type: z3.literal("solid"), colorToken: z3.string() }),
198
+ z3.object({
199
+ type: z3.literal("gradient"),
200
+ stops: z3.array(z3.string()).min(2),
154
201
  direction: gradientDirectionSchema
155
202
  }),
156
- z2.object({ type: z2.literal("transparent") })
203
+ z3.object({ type: z3.literal("transparent") })
157
204
  ]);
158
- var effectApplicationSchema = z2.object({
159
- effectId: z2.string(),
160
- options: z2.record(z2.string(), z2.any()).optional()
205
+ var effectApplicationSchema = z3.object({
206
+ effectId: z3.string(),
207
+ options: z3.record(z3.string(), z3.any()).optional()
161
208
  });
162
- var buttonBorderSchema = z2.object({
163
- widthClass: z2.string(),
164
- colorToken: z2.string()
209
+ var buttonBorderSchema = z3.object({
210
+ widthClass: z3.string(),
211
+ colorToken: z3.string()
212
+ });
213
+ var variantShadowSchema = z3.object({
214
+ elevation: z3.enum(["none", "low", "medium", "high"]),
215
+ softness: z3.enum(["crisp", "soft", "hard"]).nullable(),
216
+ position: z3.enum(["bottom", "bottom-right"]).default("bottom")
165
217
  });
166
- var buttonVariantLegacySchema = z2.object({
167
- id: z2.string(),
168
- name: z2.string().min(1).max(20),
169
- enabled: z2.boolean(),
170
- priority: z2.union([z2.literal(1), z2.literal(2), z2.literal(3)]),
171
- backgroundTreatment: backgroundTreatmentSchema,
172
- color: z2.string().optional(),
173
- gradientColors: z2.tuple([z2.string(), z2.string()]).optional(),
174
- borderColor: z2.string().optional(),
175
- outlineHoverEffect: outlineHoverEffectSchema.optional(),
176
- effectPreset: z2.string().optional()
218
+ var variantEffectsSchema = z3.object({
219
+ base: z3.array(effectApplicationSchema).optional(),
220
+ hover: z3.array(effectApplicationSchema).optional(),
221
+ active: z3.array(effectApplicationSchema).optional(),
222
+ focus: z3.array(effectApplicationSchema).optional()
223
+ });
224
+ var variantSizeOverridesSchema = z3.object({
225
+ sm: buttonSizeConfigSchema.optional(),
226
+ md: buttonSizeConfigSchema.optional(),
227
+ lg: buttonSizeConfigSchema.optional(),
228
+ xl: buttonSizeConfigSchema.optional()
177
229
  });
178
- var buttonVariantSchema = z2.object({
179
- id: z2.string(),
180
- name: z2.string().min(1).max(20),
181
- enabled: z2.boolean(),
182
- priority: z2.union([z2.literal(1), z2.literal(2), z2.literal(3)]),
230
+ var buttonVariantSchema = z3.object({
231
+ id: z3.string(),
232
+ name: z3.string().min(1).max(20),
233
+ enabled: z3.boolean(),
234
+ priority: prioritySchema,
183
235
  // Base appearance (token-based)
184
236
  background: buttonBackgroundSchema,
185
- textColorToken: z2.string(),
186
- borderRadius: z2.string(),
237
+ textColorToken: z3.string(),
238
+ /** Tailwind radius token (e.g. `'rounded-md'`). Omit to inherit from `global.cornerStyle`. */
239
+ borderRadius: z3.string().optional(),
187
240
  // Optional shadow override (uses theme.shadow if not specified)
188
- shadow: z2.object({
189
- elevation: z2.enum(["none", "low", "medium", "high"]),
190
- softness: z2.enum(["crisp", "soft", "hard"]).nullable(),
191
- position: z2.enum(["bottom", "bottom-right"]).default("bottom")
192
- }).optional(),
241
+ shadow: variantShadowSchema.optional(),
193
242
  // Border (optional)
194
243
  border: buttonBorderSchema.optional(),
195
- // Padding (optional, defaults to "0.5rem 1rem")
196
- padding: z2.string().optional(),
197
- // Font size (optional, Tailwind text size class)
198
- fontSize: z2.string().optional(),
199
244
  // Hover background token (per-variant override, takes precedence over global hoverColorToken)
200
- hoverBackgroundToken: z2.string().optional(),
245
+ hoverBackgroundToken: z3.string().optional(),
201
246
  // Effect composition
202
- effects: z2.object({
203
- base: z2.array(effectApplicationSchema).optional(),
204
- hover: z2.array(effectApplicationSchema).optional(),
205
- active: z2.array(effectApplicationSchema).optional(),
206
- focus: z2.array(effectApplicationSchema).optional()
207
- }).optional()
247
+ effects: variantEffectsSchema.optional(),
248
+ // Per-variant size overrides — see VariantSizeOverrides
249
+ sizes: variantSizeOverridesSchema.optional()
208
250
  });
209
- var buttonSystemSchema = z2.object({
251
+ var buttonSystemSchema = z3.object({
210
252
  global: buttonGlobalSettingsSchema,
211
- variants: z2.array(buttonVariantSchema).min(1).max(6),
253
+ variants: z3.array(buttonVariantSchema).min(1).max(6),
212
254
  sizes: buttonSizesSchema.optional()
213
255
  });
214
256
 
257
+ // ../theme-core/src/buttons/generateButtonCss.ts
258
+ var BUTTON_SIZE_NAMES = buttonSizeNameSchema.options;
259
+
260
+ // ../theme-core/src/buttons/personalities/types.ts
261
+ import { z as z4 } from "zod";
262
+ function asButtonPersonalityId(value) {
263
+ if (value.length === 0) {
264
+ throw new Error("ButtonPersonalityId must be a non-empty string");
265
+ }
266
+ return value;
267
+ }
268
+ var buttonPersonalityIdSchema = z4.string().min(1).transform((value) => asButtonPersonalityId(value));
269
+ var buttonPersonalitySchema = z4.object({
270
+ id: buttonPersonalityIdSchema,
271
+ name: z4.string().min(1),
272
+ description: z4.string().min(1),
273
+ tags: styleTagsSchema,
274
+ buttonSystem: buttonSystemSchema
275
+ });
276
+ function defineButtonPersonality(input) {
277
+ return {
278
+ id: asButtonPersonalityId(input.id),
279
+ name: input.name,
280
+ description: input.description,
281
+ tags: input.tags,
282
+ buttonSystem: input.buttonSystem
283
+ };
284
+ }
285
+
286
+ // ../theme-core/src/buttons/personalities/brushed-wash.ts
287
+ var brushedWash = defineButtonPersonality({
288
+ id: "brushed-wash",
289
+ name: "Brushed Wash",
290
+ description: "Watercolour-gradient buttons with soft shadows and generous padding.",
291
+ tags: { tone: "classic", energy: "vibrant", motion: "standard", era: "organic" },
292
+ buttonSystem: {
293
+ global: {
294
+ cornerStyle: "rounded",
295
+ shadow: "low",
296
+ textTransform: "none",
297
+ fontWeight: 500,
298
+ borderWidth: 1,
299
+ hoverTransform: "none",
300
+ hoverColor: "none"
301
+ },
302
+ sizes: {
303
+ sm: { padding: "0.75rem 2rem", fontSize: "text-sm" },
304
+ md: { padding: "1rem 2.5rem" },
305
+ lg: { padding: "1.25rem 3rem", fontSize: "text-lg" },
306
+ xl: { padding: "1.625rem 3.75rem", fontSize: "text-xl" }
307
+ },
308
+ variants: [
309
+ {
310
+ id: "primary",
311
+ name: "Primary",
312
+ enabled: true,
313
+ priority: 1,
314
+ background: {
315
+ type: "gradient",
316
+ stops: ["primary", "accent"],
317
+ direction: "to-r"
318
+ },
319
+ textColorToken: "primaryForeground",
320
+ borderRadius: "rounded-lg",
321
+ shadow: { elevation: "low", softness: "soft", position: "bottom" },
322
+ effects: {
323
+ hover: [{ effectId: "opacity-reduce", options: { reduction: -15 } }]
324
+ }
325
+ },
326
+ {
327
+ id: "secondary",
328
+ name: "Secondary",
329
+ enabled: true,
330
+ priority: 2,
331
+ background: {
332
+ type: "gradient",
333
+ stops: ["secondary", "accent"],
334
+ direction: "to-br"
335
+ },
336
+ textColorToken: "primaryForeground",
337
+ borderRadius: "rounded-lg",
338
+ shadow: { elevation: "low", softness: "soft", position: "bottom" },
339
+ effects: {
340
+ hover: [{ effectId: "opacity-reduce", options: { reduction: -15 } }]
341
+ }
342
+ },
343
+ {
344
+ id: "outline",
345
+ name: "Outline",
346
+ enabled: true,
347
+ priority: 3,
348
+ background: { type: "transparent" },
349
+ textColorToken: "primary",
350
+ borderRadius: "rounded-lg",
351
+ border: { widthClass: "border", colorToken: "primary" },
352
+ effects: {
353
+ hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
354
+ }
355
+ },
356
+ {
357
+ id: "ghost",
358
+ name: "Ghost",
359
+ enabled: true,
360
+ priority: 3,
361
+ background: { type: "transparent" },
362
+ textColorToken: "text",
363
+ borderRadius: "rounded-lg",
364
+ effects: {
365
+ hover: [
366
+ { effectId: "background-on-hover", options: { colorToken: "surface" } }
367
+ ]
368
+ }
369
+ }
370
+ ]
371
+ }
372
+ });
373
+
374
+ // ../theme-core/src/buttons/personalities/confident-chip.ts
375
+ var confidentChip = defineButtonPersonality({
376
+ id: "confident-chip",
377
+ name: "Confident Chip",
378
+ description: "Mid-radius solid buttons with a crisp hover.",
379
+ tags: { tone: "classic", energy: "calm", motion: "standard", era: "modern" },
380
+ buttonSystem: {
381
+ global: {
382
+ cornerStyle: "rounded",
383
+ shadow: "medium",
384
+ textTransform: "none",
385
+ fontWeight: 600,
386
+ borderWidth: 1,
387
+ hoverTransform: "none",
388
+ hoverColor: "none"
389
+ },
390
+ variants: [
391
+ {
392
+ id: "primary",
393
+ name: "Primary",
394
+ enabled: true,
395
+ priority: 1,
396
+ background: { type: "solid", colorToken: "primary" },
397
+ textColorToken: "primaryForeground",
398
+ borderRadius: "rounded-md",
399
+ shadow: { elevation: "medium", softness: "soft", position: "bottom" },
400
+ effects: {
401
+ hover: [{ effectId: "darken-background", options: { amount: 60 } }],
402
+ active: [{ effectId: "scale-down", options: { scale: "0.97" } }]
403
+ }
404
+ },
405
+ {
406
+ id: "secondary",
407
+ name: "Secondary",
408
+ enabled: true,
409
+ priority: 2,
410
+ background: { type: "solid", colorToken: "surface" },
411
+ textColorToken: "text",
412
+ borderRadius: "rounded-md",
413
+ border: { widthClass: "border", colorToken: "border" },
414
+ effects: {
415
+ hover: [{ effectId: "background-on-hover", options: { colorToken: "background" } }]
416
+ }
417
+ },
418
+ {
419
+ id: "outline",
420
+ name: "Outline",
421
+ enabled: true,
422
+ priority: 3,
423
+ background: { type: "transparent" },
424
+ textColorToken: "primary",
425
+ borderRadius: "rounded-md",
426
+ border: { widthClass: "border", colorToken: "primary" },
427
+ effects: {
428
+ hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
429
+ }
430
+ },
431
+ {
432
+ id: "ghost",
433
+ name: "Ghost",
434
+ enabled: true,
435
+ priority: 3,
436
+ background: { type: "transparent" },
437
+ textColorToken: "primary",
438
+ borderRadius: "rounded-md",
439
+ effects: {
440
+ hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
441
+ }
442
+ }
443
+ ]
444
+ }
445
+ });
446
+
447
+ // ../theme-core/src/buttons/personalities/editorial-link.ts
448
+ var editorialLink = defineButtonPersonality({
449
+ id: "editorial-link",
450
+ name: "Editorial Link",
451
+ description: "Link-style with a growing underline. Refined, typographic.",
452
+ tags: { tone: "minimal", energy: "calm", motion: "subtle", era: "editorial" },
453
+ buttonSystem: {
454
+ global: {
455
+ cornerStyle: "square",
456
+ shadow: "none",
457
+ textTransform: "none",
458
+ fontWeight: 500,
459
+ borderWidth: 1,
460
+ hoverTransform: "none",
461
+ hoverColor: "none"
462
+ },
463
+ variants: [
464
+ {
465
+ id: "primary",
466
+ name: "Primary",
467
+ enabled: true,
468
+ priority: 1,
469
+ background: { type: "transparent" },
470
+ textColorToken: "text",
471
+ borderRadius: "rounded-none",
472
+ shadow: { elevation: "none", softness: null, position: "bottom" },
473
+ sizes: {
474
+ sm: { padding: "0.25rem 0" },
475
+ md: { padding: "0.5rem 0" },
476
+ lg: { padding: "0.625rem 0" },
477
+ xl: { padding: "0.75rem 0" }
478
+ },
479
+ effects: {
480
+ base: [
481
+ { effectId: "border-bottom-grow", options: { height: 2, colorToken: "text", origin: "left" } }
482
+ ]
483
+ }
484
+ },
485
+ {
486
+ id: "secondary",
487
+ name: "Secondary",
488
+ enabled: true,
489
+ priority: 2,
490
+ background: { type: "transparent" },
491
+ textColorToken: "mutedText",
492
+ borderRadius: "rounded-none",
493
+ shadow: { elevation: "none", softness: null, position: "bottom" },
494
+ sizes: {
495
+ sm: { padding: "0.25rem 0" },
496
+ md: { padding: "0.5rem 0" },
497
+ lg: { padding: "0.625rem 0" },
498
+ xl: { padding: "0.75rem 0" }
499
+ },
500
+ effects: {
501
+ base: [
502
+ { effectId: "border-bottom-grow", options: { height: 1, colorToken: "mutedText", origin: "left" } }
503
+ ]
504
+ }
505
+ },
506
+ {
507
+ id: "outline",
508
+ name: "Outline",
509
+ enabled: true,
510
+ priority: 3,
511
+ background: { type: "transparent" },
512
+ textColorToken: "accent",
513
+ borderRadius: "rounded-none",
514
+ shadow: { elevation: "none", softness: null, position: "bottom" },
515
+ sizes: {
516
+ sm: { padding: "0.25rem 0" },
517
+ md: { padding: "0.5rem 0" },
518
+ lg: { padding: "0.625rem 0" },
519
+ xl: { padding: "0.75rem 0" }
520
+ },
521
+ effects: {
522
+ base: [
523
+ { effectId: "border-bottom-grow", options: { height: 1, colorToken: "accent", origin: "left" } }
524
+ ]
525
+ }
526
+ },
527
+ {
528
+ id: "ghost",
529
+ name: "Ghost",
530
+ enabled: true,
531
+ priority: 3,
532
+ background: { type: "transparent" },
533
+ textColorToken: "mutedText",
534
+ borderRadius: "rounded-none",
535
+ shadow: { elevation: "none", softness: null, position: "bottom" },
536
+ sizes: {
537
+ sm: { padding: "0.25rem 0" },
538
+ md: { padding: "0.5rem 0" },
539
+ lg: { padding: "0.625rem 0" },
540
+ xl: { padding: "0.75rem 0" }
541
+ },
542
+ effects: {
543
+ hover: [{ effectId: "opacity-reduce", options: { reduction: -20 } }]
544
+ }
545
+ }
546
+ ]
547
+ }
548
+ });
549
+
550
+ // ../theme-core/src/buttons/personalities/ink-stamp.ts
551
+ var inkStamp = defineButtonPersonality({
552
+ id: "ink-stamp",
553
+ name: "Ink Stamp",
554
+ description: "Hand-stamped block-print buttons with a slight lift on hover.",
555
+ tags: { tone: "bold", energy: "vibrant", motion: "standard", era: "organic" },
556
+ buttonSystem: {
557
+ global: {
558
+ cornerStyle: "rounded",
559
+ shadow: "none",
560
+ textTransform: "uppercase",
561
+ fontWeight: 600,
562
+ borderWidth: 1,
563
+ hoverTransform: "none",
564
+ hoverColor: "none",
565
+ letterSpacing: "loose"
566
+ },
567
+ sizes: {
568
+ sm: { padding: "0.5rem 1.25rem", fontSize: "text-xs" },
569
+ md: { padding: "0.75rem 1.75rem", fontSize: "text-sm" },
570
+ lg: { padding: "0.875rem 2.25rem", fontSize: "text-base" },
571
+ xl: { padding: "1.125rem 2.75rem", fontSize: "text-lg" }
572
+ },
573
+ variants: [
574
+ {
575
+ id: "primary",
576
+ name: "Primary",
577
+ enabled: true,
578
+ priority: 1,
579
+ background: { type: "solid", colorToken: "primary" },
580
+ textColorToken: "primaryForeground",
581
+ borderRadius: "rounded-md",
582
+ effects: {
583
+ hover: [
584
+ { effectId: "drop-shadow", options: { intensity: "medium" } },
585
+ { effectId: "scale-up", options: { scale: "1.02" } }
586
+ ],
587
+ active: [{ effectId: "scale-down", options: { scale: "0.98" } }]
588
+ }
589
+ },
590
+ {
591
+ id: "secondary",
592
+ name: "Secondary",
593
+ enabled: true,
594
+ priority: 2,
595
+ background: { type: "transparent" },
596
+ textColorToken: "primary",
597
+ borderRadius: "rounded-md",
598
+ border: { widthClass: "border-2", colorToken: "primary" },
599
+ effects: {
600
+ hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
601
+ }
602
+ },
603
+ {
604
+ id: "outline",
605
+ name: "Outline",
606
+ enabled: true,
607
+ priority: 3,
608
+ background: { type: "transparent" },
609
+ textColorToken: "text",
610
+ borderRadius: "rounded-md",
611
+ border: { widthClass: "border-2", colorToken: "border" },
612
+ effects: {
613
+ hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
614
+ }
615
+ },
616
+ {
617
+ id: "ghost",
618
+ name: "Ghost",
619
+ enabled: true,
620
+ priority: 3,
621
+ background: { type: "transparent" },
622
+ textColorToken: "accent",
623
+ borderRadius: "rounded-none",
624
+ sizes: {
625
+ sm: { padding: "0.375rem 0", fontSize: "text-xs" },
626
+ md: { padding: "0.5rem 0", fontSize: "text-sm" },
627
+ lg: { padding: "0.625rem 0", fontSize: "text-base" },
628
+ xl: { padding: "0.75rem 0", fontSize: "text-lg" }
629
+ },
630
+ effects: {
631
+ base: [{ effectId: "border-bottom-grow", options: { height: 1, colorToken: "accent", origin: "left" } }]
632
+ }
633
+ }
634
+ ]
635
+ }
636
+ });
637
+
638
+ // ../theme-core/src/buttons/personalities/pebble.ts
639
+ var pebble = defineButtonPersonality({
640
+ id: "pebble",
641
+ name: "Pebble",
642
+ description: "Generous pill buttons with a soft hover lift.",
643
+ tags: { tone: "classic", energy: "calm", motion: "standard", era: "organic" },
644
+ buttonSystem: {
645
+ global: {
646
+ cornerStyle: "pill",
647
+ shadow: "none",
648
+ textTransform: "none",
649
+ fontWeight: 500,
650
+ borderWidth: 2,
651
+ hoverTransform: "none",
652
+ hoverColor: "none"
653
+ },
654
+ sizes: {
655
+ sm: { padding: "0.625rem 1.75rem", fontSize: "text-sm" },
656
+ md: { padding: "0.875rem 2.25rem" },
657
+ lg: { padding: "1.125rem 2.75rem", fontSize: "text-lg" },
658
+ xl: { padding: "1.5rem 3.5rem", fontSize: "text-xl" }
659
+ },
660
+ variants: [
661
+ {
662
+ id: "primary",
663
+ name: "Primary",
664
+ enabled: true,
665
+ priority: 1,
666
+ background: { type: "solid", colorToken: "primary" },
667
+ textColorToken: "primaryForeground",
668
+ borderRadius: "rounded-full",
669
+ effects: {
670
+ hover: [
671
+ { effectId: "scale-up", options: { scale: "1.03" } },
672
+ { effectId: "drop-shadow", options: { intensity: "medium" } }
673
+ ]
674
+ }
675
+ },
676
+ {
677
+ id: "secondary",
678
+ name: "Secondary",
679
+ enabled: true,
680
+ priority: 2,
681
+ background: { type: "transparent" },
682
+ textColorToken: "primary",
683
+ borderRadius: "rounded-full",
684
+ border: { widthClass: "border-2", colorToken: "accent" },
685
+ effects: {
686
+ hover: [{ effectId: "background-on-hover", options: { colorToken: "accent" } }]
687
+ }
688
+ },
689
+ {
690
+ id: "outline",
691
+ name: "Outline",
692
+ enabled: true,
693
+ priority: 3,
694
+ background: { type: "transparent" },
695
+ textColorToken: "text",
696
+ borderRadius: "rounded-full",
697
+ border: { widthClass: "border", colorToken: "border" },
698
+ effects: {
699
+ hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
700
+ }
701
+ },
702
+ {
703
+ id: "ghost",
704
+ name: "Ghost",
705
+ enabled: true,
706
+ priority: 3,
707
+ background: { type: "transparent" },
708
+ textColorToken: "primary",
709
+ borderRadius: "rounded-full",
710
+ sizes: {
711
+ sm: { padding: "0.375rem 0.875rem", fontSize: "text-sm" },
712
+ md: { padding: "0.5rem 1rem" },
713
+ lg: { padding: "0.625rem 1.25rem", fontSize: "text-lg" },
714
+ xl: { padding: "0.75rem 1.5rem", fontSize: "text-xl" }
715
+ },
716
+ effects: {
717
+ hover: [{ effectId: "opacity-reduce", options: { reduction: 30 } }]
718
+ }
719
+ }
720
+ ]
721
+ }
722
+ });
723
+
724
+ // ../theme-core/src/buttons/personalities/soft-pill.ts
725
+ var softPill = defineButtonPersonality({
726
+ id: "soft-pill",
727
+ name: "Soft Pill",
728
+ description: "Rounded pills with a gentle lift on hover. Quietly modern.",
729
+ tags: { tone: "classic", energy: "calm", motion: "subtle", era: "organic" },
730
+ buttonSystem: {
731
+ global: {
732
+ cornerStyle: "pill",
733
+ shadow: "low",
734
+ textTransform: "none",
735
+ fontWeight: 500,
736
+ borderWidth: 2,
737
+ hoverTransform: "lift",
738
+ hoverColor: "none"
739
+ },
740
+ variants: [
741
+ {
742
+ id: "primary",
743
+ name: "Primary",
744
+ enabled: true,
745
+ priority: 1,
746
+ background: { type: "solid", colorToken: "primary" },
747
+ textColorToken: "primaryForeground",
748
+ borderRadius: "rounded-full",
749
+ shadow: { elevation: "low", softness: "soft", position: "bottom" },
750
+ effects: {
751
+ hover: [{ effectId: "lift", options: { translateY: "-1px" } }],
752
+ active: [{ effectId: "scale-down", options: { scale: "0.98" } }]
753
+ }
754
+ },
755
+ {
756
+ id: "secondary",
757
+ name: "Secondary",
758
+ enabled: true,
759
+ priority: 2,
760
+ background: { type: "transparent" },
761
+ textColorToken: "primary",
762
+ borderRadius: "rounded-full",
763
+ border: { widthClass: "border-2", colorToken: "primary" },
764
+ effects: {
765
+ hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
766
+ }
767
+ },
768
+ {
769
+ id: "outline",
770
+ name: "Outline",
771
+ enabled: true,
772
+ priority: 3,
773
+ background: { type: "transparent" },
774
+ textColorToken: "text",
775
+ borderRadius: "rounded-full",
776
+ border: { widthClass: "border", colorToken: "border" },
777
+ effects: {
778
+ hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
779
+ }
780
+ },
781
+ {
782
+ id: "ghost",
783
+ name: "Ghost",
784
+ enabled: true,
785
+ priority: 3,
786
+ background: { type: "transparent" },
787
+ textColorToken: "text",
788
+ borderRadius: "rounded-full",
789
+ effects: {
790
+ hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
791
+ }
792
+ }
793
+ ]
794
+ }
795
+ });
796
+
797
+ // ../theme-core/src/buttons/personalities/index.ts
798
+ var buttonPersonalities = [
799
+ softPill,
800
+ confidentChip,
801
+ editorialLink,
802
+ pebble,
803
+ inkStamp,
804
+ brushedWash
805
+ ];
806
+ var personalitiesById = new Map(
807
+ buttonPersonalities.map((p) => [p.id, p])
808
+ );
809
+
215
810
  // ../theme-core/src/buttons/core.ts
216
811
  var CORNER_RADIUS_MAP = {
217
812
  square: "0",
@@ -339,43 +934,43 @@ function getDefaultButtonVariants() {
339
934
  }
340
935
 
341
936
  // ../theme-core/src/cards/types.ts
342
- import { z as z3 } from "zod";
343
- var cardSpacingSchema = z3.enum(["none", "compact", "cozy", "medium", "comfortable", "spacious"]);
344
- var gradientDirectionSchema2 = z3.enum(["to-r", "to-l", "to-t", "to-b", "to-tr", "to-tl", "to-br", "to-bl"]);
345
- var cardBackgroundSchema = z3.discriminatedUnion("type", [
346
- z3.object({ type: z3.literal("solid"), colorToken: z3.string() }),
347
- z3.object({
348
- type: z3.literal("gradient"),
349
- fromToken: z3.string(),
350
- toToken: z3.string(),
937
+ import { z as z5 } from "zod";
938
+ var cardSpacingSchema = z5.enum(["none", "compact", "cozy", "medium", "comfortable", "spacious"]);
939
+ var gradientDirectionSchema2 = z5.enum(["to-r", "to-l", "to-t", "to-b", "to-tr", "to-tl", "to-br", "to-bl"]);
940
+ var cardBackgroundSchema = z5.discriminatedUnion("type", [
941
+ z5.object({ type: z5.literal("solid"), colorToken: z5.string() }),
942
+ z5.object({
943
+ type: z5.literal("gradient"),
944
+ fromToken: z5.string(),
945
+ toToken: z5.string(),
351
946
  direction: gradientDirectionSchema2
352
947
  }),
353
- z3.object({ type: z3.literal("transparent") })
948
+ z5.object({ type: z5.literal("transparent") })
354
949
  ]);
355
- var cardBorderSchema = z3.object({
356
- widthClass: z3.string(),
357
- colorToken: z3.string()
950
+ var cardBorderSchema = z5.object({
951
+ widthClass: z5.string(),
952
+ colorToken: z5.string()
358
953
  });
359
- var cardVariantSchema = z3.object({
360
- id: z3.string(),
361
- name: z3.string().min(1).max(20),
362
- enabled: z3.boolean(),
363
- priority: z3.union([z3.literal(1), z3.literal(2), z3.literal(3)]),
954
+ var cardVariantSchema = z5.object({
955
+ id: z5.string(),
956
+ name: z5.string().min(1).max(20),
957
+ enabled: z5.boolean(),
958
+ priority: z5.union([z5.literal(1), z5.literal(2), z5.literal(3)]),
364
959
  // Appearance (token-based)
365
960
  background: cardBackgroundSchema,
366
961
  spacing: cardSpacingSchema,
367
962
  // Optional overrides (uses theme defaults if not specified)
368
- shadow: z3.object({
369
- elevation: z3.enum(["none", "low", "medium", "high"]),
370
- softness: z3.enum(["crisp", "soft", "hard"]).nullable(),
371
- position: z3.enum(["bottom", "bottom-right"]).default("bottom")
963
+ shadow: z5.object({
964
+ elevation: z5.enum(["none", "low", "medium", "high"]),
965
+ softness: z5.enum(["crisp", "soft", "hard"]).nullable(),
966
+ position: z5.enum(["bottom", "bottom-right"]).default("bottom")
372
967
  }).optional(),
373
- corners: z3.enum(["square", "soft", "rounded", "pill"]).optional(),
968
+ corners: z5.enum(["square", "soft", "rounded", "pill"]).optional(),
374
969
  // Border (optional)
375
970
  border: cardBorderSchema.optional()
376
971
  });
377
- var cardSystemSchema = z3.object({
378
- variants: z3.array(cardVariantSchema).min(1).max(3)
972
+ var cardSystemSchema = z5.object({
973
+ variants: z5.array(cardVariantSchema).min(1).max(3)
379
974
  });
380
975
 
381
976
  // ../theme-core/src/cards/core.ts
@@ -497,8 +1092,8 @@ function getDefaultCardVariants() {
497
1092
  }
498
1093
 
499
1094
  // ../theme-core/src/accordions/types.ts
500
- import { z as z4 } from "zod";
501
- var accordionIconSchema = z4.enum([
1095
+ import { z as z6 } from "zod";
1096
+ var accordionIconSchema = z6.enum([
502
1097
  "plus-minus",
503
1098
  // + becomes - (swap or rotate 90°)
504
1099
  "chevron",
@@ -510,180 +1105,180 @@ var accordionIconSchema = z4.enum([
510
1105
  "circle-plus-minus"
511
1106
  // ⊕ becomes ⊖ (swap with fade)
512
1107
  ]);
513
- var accordionSystemSchema = z4.object({
1108
+ var accordionSystemSchema = z6.object({
514
1109
  // Visual styling (solid color only - gradients can be added later if needed)
515
- background: z4.object({
516
- type: z4.literal("solid"),
517
- colorToken: z4.string()
1110
+ background: z6.object({
1111
+ type: z6.literal("solid"),
1112
+ colorToken: z6.string()
518
1113
  }),
519
1114
  // Spacing (padding inside items)
520
- spacing: z4.enum(["none", "compact", "cozy", "medium", "comfortable", "spacious"]),
1115
+ spacing: z6.enum(["none", "compact", "cozy", "medium", "comfortable", "spacious"]),
521
1116
  // Border radius (null = inherit from theme.corners)
522
- corners: z4.enum(["square", "soft", "rounded", "pill"]).nullable(),
1117
+ corners: z6.enum(["square", "soft", "rounded", "pill"]).nullable(),
523
1118
  // Border styling (null = inherit from theme.border)
524
- border: z4.object({
525
- widthClass: z4.string(),
1119
+ border: z6.object({
1120
+ widthClass: z6.string(),
526
1121
  // e.g., 'border', 'border-2', 'border-0'
527
- colorToken: z4.string()
1122
+ colorToken: z6.string()
528
1123
  }).nullable(),
529
1124
  // Shadow (null = inherit from theme.shadow)
530
- shadow: z4.object({
531
- elevation: z4.enum(["none", "low", "medium", "high"]),
532
- softness: z4.enum(["soft", "crisp", "hard"]).nullable(),
533
- position: z4.enum(["bottom", "bottom-right"])
1125
+ shadow: z6.object({
1126
+ elevation: z6.enum(["none", "low", "medium", "high"]),
1127
+ softness: z6.enum(["soft", "crisp", "hard"]).nullable(),
1128
+ position: z6.enum(["bottom", "bottom-right"])
534
1129
  }).nullable(),
535
1130
  // Icon style and animation
536
- icon: z4.object({
1131
+ icon: z6.object({
537
1132
  style: accordionIconSchema,
538
- position: z4.enum(["left", "right"]),
539
- size: z4.enum(["sm", "md", "lg"])
1133
+ position: z6.enum(["left", "right"]),
1134
+ size: z6.enum(["sm", "md", "lg"])
540
1135
  }),
541
1136
  // Trigger (question) styling
542
- trigger: z4.object({
543
- textColorToken: z4.string(),
544
- fontWeight: z4.enum(["regular", "medium", "semibold", "bold"]).nullable()
1137
+ trigger: z6.object({
1138
+ textColorToken: z6.string(),
1139
+ fontWeight: z6.enum(["regular", "medium", "semibold", "bold"]).nullable()
545
1140
  // null = inherit from theme
546
1141
  }),
547
1142
  // Hover state styling
548
- hover: z4.object({
549
- backgroundColorToken: z4.string().optional(),
550
- textColorToken: z4.string().optional(),
551
- borderColorToken: z4.string().optional()
1143
+ hover: z6.object({
1144
+ backgroundColorToken: z6.string().optional(),
1145
+ textColorToken: z6.string().optional(),
1146
+ borderColorToken: z6.string().optional()
552
1147
  }),
553
1148
  // Content (answer) styling
554
- content: z4.object({
555
- textColorToken: z4.string()
1149
+ content: z6.object({
1150
+ textColorToken: z6.string()
556
1151
  })
557
1152
  });
558
1153
 
559
1154
  // ../theme-core/src/inputs/types.ts
560
- import { z as z5 } from "zod";
561
- var inputSystemSchema = z5.object({
1155
+ import { z as z7 } from "zod";
1156
+ var inputSystemSchema = z7.object({
562
1157
  // Base styling (applied to all inputs)
563
- base: z5.object({
564
- background: z5.union([
565
- z5.object({
566
- type: z5.literal("solid"),
567
- colorToken: z5.string()
1158
+ base: z7.object({
1159
+ background: z7.union([
1160
+ z7.object({
1161
+ type: z7.literal("solid"),
1162
+ colorToken: z7.string()
568
1163
  }),
569
- z5.object({
570
- type: z5.literal("transparent")
1164
+ z7.object({
1165
+ type: z7.literal("transparent")
571
1166
  })
572
1167
  ]),
573
- textColorToken: z5.string(),
574
- border: z5.object({
575
- widthClass: z5.string(),
1168
+ textColorToken: z7.string(),
1169
+ border: z7.object({
1170
+ widthClass: z7.string(),
576
1171
  // e.g., 'border', 'border-2'
577
- colorToken: z5.string(),
578
- style: z5.enum(["all", "underline"]).optional()
1172
+ colorToken: z7.string(),
1173
+ style: z7.enum(["all", "underline"]).optional()
579
1174
  }),
580
- corners: z5.enum(["square", "soft", "rounded", "pill"]).nullable(),
1175
+ corners: z7.enum(["square", "soft", "rounded", "pill"]).nullable(),
581
1176
  // null = inherit from theme.corners
582
- shadow: z5.object({
583
- elevation: z5.enum(["none", "low", "medium"]),
584
- softness: z5.enum(["soft", "crisp", "hard"]).nullable()
1177
+ shadow: z7.object({
1178
+ elevation: z7.enum(["none", "low", "medium"]),
1179
+ softness: z7.enum(["soft", "crisp", "hard"]).nullable()
585
1180
  }).nullable(),
586
- spacing: z5.enum(["compact", "cozy", "medium", "comfortable"]),
1181
+ spacing: z7.enum(["compact", "cozy", "medium", "comfortable"]),
587
1182
  // padding inside inputs
588
- fontSize: z5.enum(["sm", "base", "lg"])
1183
+ fontSize: z7.enum(["sm", "base", "lg"])
589
1184
  }),
590
1185
  // Label styling
591
- label: z5.object({
592
- textColorToken: z5.string(),
593
- fontWeight: z5.enum(["regular", "medium", "semibold", "bold", "black"]),
594
- fontSize: z5.enum(["2xs", "xs", "sm", "base"]),
595
- textTransform: z5.enum(["none", "uppercase", "lowercase", "capitalize"]).optional(),
596
- letterSpacing: z5.enum(["normal", "wide", "wider", "widest"]).optional(),
597
- opacity: z5.number().min(0.2).max(1).optional()
1186
+ label: z7.object({
1187
+ textColorToken: z7.string(),
1188
+ fontWeight: z7.enum(["regular", "medium", "semibold", "bold", "black"]),
1189
+ fontSize: z7.enum(["2xs", "xs", "sm", "base"]),
1190
+ textTransform: z7.enum(["none", "uppercase", "lowercase", "capitalize"]).optional(),
1191
+ letterSpacing: z7.enum(["normal", "wide", "wider", "widest"]).optional(),
1192
+ opacity: z7.number().min(0.2).max(1).optional()
598
1193
  }),
599
1194
  // Focus state
600
- focus: z5.object({
601
- ringColorToken: z5.string(),
602
- ringWidth: z5.enum(["0", "1", "2", "3"]),
603
- borderColorToken: z5.string().optional()
1195
+ focus: z7.object({
1196
+ ringColorToken: z7.string(),
1197
+ ringWidth: z7.enum(["0", "1", "2", "3"]),
1198
+ borderColorToken: z7.string().optional()
604
1199
  // Change border color on focus
605
1200
  }),
606
1201
  // Error state (for validation feedback)
607
- error: z5.object({
608
- borderColorToken: z5.string(),
609
- textColorToken: z5.string()
1202
+ error: z7.object({
1203
+ borderColorToken: z7.string(),
1204
+ textColorToken: z7.string()
610
1205
  }),
611
1206
  // Disabled state
612
- disabled: z5.object({
613
- backgroundColorToken: z5.string(),
614
- textColorToken: z5.string(),
615
- opacity: z5.number().min(0.3).max(0.7)
1207
+ disabled: z7.object({
1208
+ backgroundColorToken: z7.string(),
1209
+ textColorToken: z7.string(),
1210
+ opacity: z7.number().min(0.3).max(0.7)
616
1211
  })
617
1212
  });
618
1213
 
619
1214
  // ../theme-core/src/gradients/types.ts
620
- import { z as z6 } from "zod";
621
- var gradientStopSchema = z6.object({
622
- color: z6.string(),
1215
+ import { z as z8 } from "zod";
1216
+ var gradientStopSchema = z8.object({
1217
+ color: z8.string(),
623
1218
  // Theme color token name (e.g., 'primary-500')
624
- position: z6.number().min(0).max(100)
1219
+ position: z8.number().min(0).max(100)
625
1220
  // Percentage 0-100
626
1221
  });
627
- var gradientConfigSchema = z6.object({
628
- type: z6.enum(["linear", "radial"]),
629
- angle: z6.number().min(0).max(360).optional(),
1222
+ var gradientConfigSchema = z8.object({
1223
+ type: z8.enum(["linear", "radial"]),
1224
+ angle: z8.number().min(0).max(360).optional(),
630
1225
  // For linear gradients (degrees)
631
- position: z6.string().optional(),
1226
+ position: z8.string().optional(),
632
1227
  // For radial gradients ('center', 'top left', etc.)
633
- stops: z6.array(gradientStopSchema).min(2)
1228
+ stops: z8.array(gradientStopSchema).min(2)
634
1229
  });
635
1230
 
636
1231
  // ../theme-core/src/navigation/types.ts
637
- import { z as z8 } from "zod";
1232
+ import { z as z10 } from "zod";
638
1233
 
639
1234
  // ../theme-core/src/interactive/baseSchema.ts
640
- import { z as z7 } from "zod";
641
- var interactiveTypographySchema = z7.object({
1235
+ import { z as z9 } from "zod";
1236
+ var interactiveTypographySchema = z9.object({
642
1237
  /** Font family source */
643
- typography: z7.enum(["body", "heading"]).default("body"),
1238
+ typography: z9.enum(["body", "heading"]).default("body"),
644
1239
  /** Font weight */
645
- fontWeight: z7.enum(["regular", "medium", "semibold", "bold"]).default("medium"),
1240
+ fontWeight: z9.enum(["regular", "medium", "semibold", "bold"]).default("medium"),
646
1241
  /** Text transform */
647
- textTransform: z7.enum(["none", "uppercase", "capitalize"]).default("none"),
1242
+ textTransform: z9.enum(["none", "uppercase", "capitalize"]).default("none"),
648
1243
  /** Italic style */
649
- italic: z7.boolean().default(false)
1244
+ italic: z9.boolean().default(false)
650
1245
  });
651
- var effectApplicationSchema2 = z7.object({
1246
+ var effectApplicationSchema2 = z9.object({
652
1247
  /** Effect preset ID */
653
- effectId: z7.string(),
1248
+ effectId: z9.string(),
654
1249
  /** User-provided customization options */
655
- options: z7.record(z7.string(), z7.any()).optional()
1250
+ options: z9.record(z9.string(), z9.any()).optional()
656
1251
  });
657
- var effectCompositionSchema = z7.object({
1252
+ var effectCompositionSchema = z9.object({
658
1253
  /** Effects always applied */
659
- base: z7.array(effectApplicationSchema2).optional(),
1254
+ base: z9.array(effectApplicationSchema2).optional(),
660
1255
  /** Effects applied on hover */
661
- hover: z7.array(effectApplicationSchema2).optional(),
1256
+ hover: z9.array(effectApplicationSchema2).optional(),
662
1257
  /** Effects applied on active/pressed */
663
- active: z7.array(effectApplicationSchema2).optional(),
1258
+ active: z9.array(effectApplicationSchema2).optional(),
664
1259
  /** Effects applied on focus */
665
- focus: z7.array(effectApplicationSchema2).optional()
1260
+ focus: z9.array(effectApplicationSchema2).optional()
666
1261
  });
667
1262
 
668
1263
  // ../theme-core/src/navigation/types.ts
669
- var navLinkPaddingSchema = z8.enum(["none", "compact", "default"]);
670
- var navLinkPaddingXSchema = z8.enum(["none", "tight", "compact", "default", "relaxed", "spacious"]);
671
- var navLinkBorderRadiusSchema = z8.enum(["none", "sm", "md", "full"]);
672
- var navLinkTextSizeSchema = z8.enum(["xs", "sm", "base", "lg"]);
673
- var navLinkLetterSpacingSchema = z8.enum(["normal", "wide", "wider", "widest"]);
674
- var navLinkStyleSchema = z8.object({
1264
+ var navLinkPaddingSchema = z10.enum(["none", "compact", "default"]);
1265
+ var navLinkPaddingXSchema = z10.enum(["none", "tight", "compact", "default", "relaxed", "spacious"]);
1266
+ var navLinkBorderRadiusSchema = z10.enum(["none", "sm", "md", "full"]);
1267
+ var navLinkTextSizeSchema = z10.enum(["xs", "sm", "base", "lg"]);
1268
+ var navLinkLetterSpacingSchema = z10.enum(["normal", "wide", "wider", "widest"]);
1269
+ var navLinkStyleSchema = z10.object({
675
1270
  /** Display name for the style */
676
- name: z8.string().min(1).max(30).optional(),
1271
+ name: z10.string().min(1).max(30).optional(),
677
1272
  /** Typography settings (inherited from interactive base) */
678
1273
  ...interactiveTypographySchema.shape,
679
1274
  /** Text color token */
680
- colorToken: z8.string().default("text"),
1275
+ colorToken: z10.string().default("text"),
681
1276
  /** Optional text size override */
682
1277
  textSize: navLinkTextSizeSchema.optional(),
683
1278
  /** Optional letter spacing override */
684
1279
  letterSpacing: navLinkLetterSpacingSchema.optional(),
685
1280
  /** Hover/active color token (for color-change effects) */
686
- hoverColorToken: z8.string().nullable().optional(),
1281
+ hoverColorToken: z10.string().nullable().optional(),
687
1282
  /** Padding preset */
688
1283
  padding: navLinkPaddingSchema.default("compact"),
689
1284
  /** Horizontal padding override (overrides horizontal component of padding preset) */
@@ -695,7 +1290,7 @@ var navLinkStyleSchema = z8.object({
695
1290
  });
696
1291
 
697
1292
  // ../theme-core/src/customCss/validation.ts
698
- import { z as z9 } from "zod";
1293
+ import { z as z11 } from "zod";
699
1294
  var FORBIDDEN_SELECTORS = [":root", "html", "body"];
700
1295
  var UNIVERSAL_SELECTOR = "*";
701
1296
  var REMOTE_URL_PATTERN = /url\s*\(\s*['"]?(https?:|\/\/)/i;
@@ -737,7 +1332,7 @@ function containsForbiddenSelector(selector) {
737
1332
  }
738
1333
  return false;
739
1334
  }
740
- var selectorSchema = z9.string().min(1, "Selector cannot be empty").max(200, "Selector too long (max 200 characters)").refine(
1335
+ var selectorSchema = z11.string().min(1, "Selector cannot be empty").max(200, "Selector too long (max 200 characters)").refine(
741
1336
  (s) => !containsForbiddenSelector(s),
742
1337
  { message: "Global selectors (:root, html, body, *) are not allowed" }
743
1338
  );
@@ -747,38 +1342,38 @@ function containsRemoteUrl(value) {
747
1342
  function containsJavascriptUrl(value) {
748
1343
  return JAVASCRIPT_URL_PATTERN.test(value);
749
1344
  }
750
- var declarationValueSchema = z9.string().max(500, "Declaration value too long (max 500 characters)").refine(
1345
+ var declarationValueSchema = z11.string().max(500, "Declaration value too long (max 500 characters)").refine(
751
1346
  (v) => !containsRemoteUrl(v),
752
1347
  { message: "Remote url() references are not allowed. Use local paths, data URIs, or fragment IDs." }
753
1348
  ).refine(
754
1349
  (v) => !containsJavascriptUrl(v),
755
1350
  { message: "javascript: URLs are not allowed" }
756
1351
  );
757
- var declarationsSchema = z9.record(
758
- z9.string().min(1).max(100),
1352
+ var declarationsSchema = z11.record(
1353
+ z11.string().min(1).max(100),
759
1354
  // property name
760
1355
  declarationValueSchema
761
1356
  // property value
762
1357
  );
763
- var customCssRuleSchema = z9.object({
764
- id: z9.string().min(1, "Rule ID is required").max(50, "Rule ID too long"),
1358
+ var customCssRuleSchema = z11.object({
1359
+ id: z11.string().min(1, "Rule ID is required").max(50, "Rule ID too long"),
765
1360
  selector: selectorSchema,
766
1361
  declarations: declarationsSchema
767
1362
  });
768
1363
  var blockCustomCssRuleSchema = customCssRuleSchema.extend({
769
- blockKind: z9.string().min(1, "Block kind is required").max(50, "Block kind too long")
1364
+ blockKind: z11.string().min(1, "Block kind is required").max(50, "Block kind too long")
770
1365
  });
771
- var customCssRulesSchema = z9.array(customCssRuleSchema).optional();
772
- var blockCustomCssRulesSchema = z9.array(blockCustomCssRuleSchema).optional();
1366
+ var customCssRulesSchema = z11.array(customCssRuleSchema).optional();
1367
+ var blockCustomCssRulesSchema = z11.array(blockCustomCssRuleSchema).optional();
773
1368
 
774
1369
  // ../theme-core/src/customCss/atRuleValidation.ts
775
- import { z as z10 } from "zod";
1370
+ import { z as z12 } from "zod";
776
1371
  var KEYFRAME_OFFSET_PATTERN = /^(from|to|\d{1,3}%)$/i;
777
1372
  var ANIMATION_NAME_PATTERN = /^[a-zA-Z_-][a-zA-Z0-9_-]*$/;
778
1373
  var BLOCKED_AT_RULES = ["@import", "@charset"];
779
1374
  var BLOCKED_AT_RULE_PATTERN = /@(?:import|charset)\b/i;
780
- var ruleIdSchema = z10.string().min(1, "Rule ID is required").max(50, "Rule ID too long");
781
- var nestedRuleSchema = z10.object({
1375
+ var ruleIdSchema = z12.string().min(1, "Rule ID is required").max(50, "Rule ID too long");
1376
+ var nestedRuleSchema = z12.object({
782
1377
  selector: selectorSchema,
783
1378
  declarations: declarationsSchema
784
1379
  });
@@ -790,146 +1385,146 @@ function isValidKeyframeOffset(offset) {
790
1385
  const value = parseInt(match[1], 10);
791
1386
  return value >= 0 && value <= 100;
792
1387
  }
793
- var keyframeOffsetSchema = z10.string().transform((offset) => offset.trim()).refine(
1388
+ var keyframeOffsetSchema = z12.string().transform((offset) => offset.trim()).refine(
794
1389
  (offset) => KEYFRAME_OFFSET_PATTERN.test(offset),
795
1390
  { message: 'Invalid keyframe offset. Use percentages (0%, 50%, 100%) or "from"/"to"' }
796
1391
  ).refine(
797
1392
  isValidKeyframeOffset,
798
1393
  { message: "Keyframe offset must be between 0% and 100%" }
799
1394
  );
800
- var animationNameSchema = z10.string().min(1, "Animation name is required").max(50, "Animation name too long").refine(
1395
+ var animationNameSchema = z12.string().min(1, "Animation name is required").max(50, "Animation name too long").refine(
801
1396
  (name) => ANIMATION_NAME_PATTERN.test(name),
802
1397
  { message: "Invalid animation name. Use letters, numbers, dashes, underscores (start with letter, dash, or underscore)" }
803
1398
  );
804
- var keyframeSchema = z10.object({
1399
+ var keyframeSchema = z12.object({
805
1400
  offset: keyframeOffsetSchema,
806
1401
  declarations: declarationsSchema
807
1402
  });
808
- var keyframesAtRuleSchema = z10.object({
1403
+ var keyframesAtRuleSchema = z12.object({
809
1404
  id: ruleIdSchema,
810
- type: z10.literal("keyframes"),
1405
+ type: z12.literal("keyframes"),
811
1406
  name: animationNameSchema,
812
- frames: z10.array(keyframeSchema).min(1, "At least one keyframe is required")
1407
+ frames: z12.array(keyframeSchema).min(1, "At least one keyframe is required")
813
1408
  });
814
- var fontFaceDeclarationsSchema = z10.record(z10.string().min(1).max(100), declarationValueSchema).refine(
1409
+ var fontFaceDeclarationsSchema = z12.record(z12.string().min(1).max(100), declarationValueSchema).refine(
815
1410
  (decls) => "fontFamily" in decls || "font-family" in decls,
816
1411
  { message: "font-family is required in @font-face" }
817
1412
  );
818
- var fontFaceAtRuleSchema = z10.object({
1413
+ var fontFaceAtRuleSchema = z12.object({
819
1414
  id: ruleIdSchema,
820
- type: z10.literal("font-face"),
1415
+ type: z12.literal("font-face"),
821
1416
  declarations: fontFaceDeclarationsSchema
822
1417
  });
823
- var mediaQuerySchema = z10.string().min(1, "Media query is required").max(200, "Media query too long");
824
- var mediaAtRuleSchema = z10.object({
1418
+ var mediaQuerySchema = z12.string().min(1, "Media query is required").max(200, "Media query too long");
1419
+ var mediaAtRuleSchema = z12.object({
825
1420
  id: ruleIdSchema,
826
- type: z10.literal("media"),
1421
+ type: z12.literal("media"),
827
1422
  query: mediaQuerySchema,
828
- rules: z10.array(nestedRuleSchema).min(1, "At least one rule is required")
1423
+ rules: z12.array(nestedRuleSchema).min(1, "At least one rule is required")
829
1424
  });
830
- var supportsConditionSchema = z10.string().min(1, "Supports condition is required").max(200, "Supports condition too long");
831
- var supportsAtRuleSchema = z10.object({
1425
+ var supportsConditionSchema = z12.string().min(1, "Supports condition is required").max(200, "Supports condition too long");
1426
+ var supportsAtRuleSchema = z12.object({
832
1427
  id: ruleIdSchema,
833
- type: z10.literal("supports"),
1428
+ type: z12.literal("supports"),
834
1429
  condition: supportsConditionSchema,
835
- rules: z10.array(nestedRuleSchema).min(1, "At least one rule is required")
1430
+ rules: z12.array(nestedRuleSchema).min(1, "At least one rule is required")
836
1431
  });
837
1432
  function containsBlockedAtRule(css) {
838
1433
  return BLOCKED_AT_RULE_PATTERN.test(css);
839
1434
  }
840
- var rawCssSchema = z10.string().min(1, "CSS is required").max(5e3, "Raw CSS too long (max 5000 characters)").refine(
1435
+ var rawCssSchema = z12.string().min(1, "CSS is required").max(5e3, "Raw CSS too long (max 5000 characters)").refine(
841
1436
  (css) => css.trim().startsWith("@"),
842
1437
  { message: "Raw at-rule must start with @" }
843
1438
  ).refine(
844
1439
  (css) => !containsBlockedAtRule(css),
845
1440
  { message: `Blocked at-rules: ${BLOCKED_AT_RULES.join(", ")}. Use typed at-rules or local assets instead.` }
846
1441
  );
847
- var rawAtRuleSchema = z10.object({
1442
+ var rawAtRuleSchema = z12.object({
848
1443
  id: ruleIdSchema,
849
- type: z10.literal("raw"),
1444
+ type: z12.literal("raw"),
850
1445
  css: rawCssSchema
851
1446
  });
852
- var customCssAtRuleSchema = z10.discriminatedUnion("type", [
1447
+ var customCssAtRuleSchema = z12.discriminatedUnion("type", [
853
1448
  keyframesAtRuleSchema,
854
1449
  fontFaceAtRuleSchema,
855
1450
  mediaAtRuleSchema,
856
1451
  supportsAtRuleSchema,
857
1452
  rawAtRuleSchema
858
1453
  ]);
859
- var customCssAtRulesSchema = z10.array(customCssAtRuleSchema).optional();
1454
+ var customCssAtRulesSchema = z12.array(customCssAtRuleSchema).optional();
860
1455
 
861
1456
  // ../theme-core/src/shared/componentStyles.ts
862
- import { z as z11 } from "zod";
863
- var componentBorderSchema = z11.object({
864
- width: z11.enum(["none", "hairline", "thin", "medium", "thick"]).default("none"),
865
- style: z11.enum(["solid", "dashed"]).default("solid"),
866
- colorToken: z11.string().optional()
1457
+ import { z as z13 } from "zod";
1458
+ var componentBorderSchema = z13.object({
1459
+ width: z13.enum(["none", "hairline", "thin", "medium", "thick"]).default("none"),
1460
+ style: z13.enum(["solid", "dashed"]).default("solid"),
1461
+ colorToken: z13.string().optional()
867
1462
  // defaults to "border" if not set
868
1463
  });
869
- var componentShadowSchema = z11.object({
870
- elevation: z11.enum(["none", "sm", "md", "lg", "xl", "2xl"]).default("sm")
1464
+ var componentShadowSchema = z13.object({
1465
+ elevation: z13.enum(["none", "sm", "md", "lg", "xl", "2xl"]).default("sm")
871
1466
  });
872
1467
 
873
1468
  // ../theme-core/src/schema.ts
874
- var axesSchema = z12.object({
875
- tone: z12.enum(["minimal", "classic", "bold"]),
876
- energy: z12.enum(["calm", "vibrant"]),
877
- density: z12.enum(["airy", "regular", "compact"]),
878
- mediaBias: z12.enum(["text", "media", "mixed"]),
879
- conversionBias: z12.enum(["low", "med", "high"]),
880
- motion: z12.enum(["subtle", "standard", "expressive"])
1469
+ var axesSchema = z14.object({
1470
+ tone: z14.enum(["minimal", "classic", "bold"]),
1471
+ energy: z14.enum(["calm", "vibrant"]),
1472
+ density: z14.enum(["airy", "regular", "compact"]),
1473
+ mediaBias: z14.enum(["text", "media", "mixed"]),
1474
+ conversionBias: z14.enum(["low", "med", "high"]),
1475
+ motion: z14.enum(["subtle", "standard", "expressive"])
881
1476
  });
882
- var colourHexString = z12.string().regex(/^#([0-9A-Fa-f]{3}){1,2}$/);
883
- var paletteColorSchema = z12.object({
884
- name: z12.string().min(1),
1477
+ var colourHexString = z14.string().regex(/^#([0-9A-Fa-f]{3}){1,2}$/);
1478
+ var paletteColorSchema = z14.object({
1479
+ name: z14.string().min(1),
885
1480
  hex: colourHexString
886
1481
  });
887
- var paletteMetaSchema = z12.object({
888
- mode: z12.enum(["light", "dark"])
1482
+ var paletteMetaSchema = z14.object({
1483
+ mode: z14.enum(["light", "dark"])
889
1484
  });
890
- var paletteSchema = z12.object({
891
- colors: z12.array(paletteColorSchema),
1485
+ var paletteSchema = z14.object({
1486
+ colors: z14.array(paletteColorSchema),
892
1487
  meta: paletteMetaSchema
893
1488
  });
894
- var typographyStyleSchema = z12.object({
895
- family: z12.string().min(1),
896
- weight: z12.enum(["light", "regular", "medium", "semibold", "bold"]),
897
- letterSpacing: z12.enum(["tight", "normal", "loose"]),
898
- lineHeight: z12.enum(["normal", "relaxed", "loose"])
1489
+ var typographyStyleSchema = z14.object({
1490
+ family: z14.string().min(1),
1491
+ weight: z14.enum(["light", "regular", "medium", "semibold", "bold"]),
1492
+ letterSpacing: z14.enum(["tight", "normal", "loose"]),
1493
+ lineHeight: z14.enum(["normal", "relaxed", "loose"])
899
1494
  });
900
1495
  var bodyTypographyStyleSchema = typographyStyleSchema.extend({
901
- size: z12.enum(["md", "lg", "xl"])
1496
+ size: z14.enum(["md", "lg", "xl"])
902
1497
  });
903
- var headingSizeSchema = z12.enum(["xs", "sm", "md", "lg", "xl", "2xl"]);
904
- var headingTypographyOverridesSchema = z12.object({
905
- weight: z12.enum(["light", "regular", "medium", "semibold", "bold"]).nullable().optional(),
906
- letterSpacing: z12.enum(["tight", "normal", "loose"]).nullable().optional(),
1498
+ var headingSizeSchema = z14.enum(["xs", "sm", "md", "lg", "xl", "2xl"]);
1499
+ var headingTypographyOverridesSchema = z14.object({
1500
+ weight: z14.enum(["light", "regular", "medium", "semibold", "bold"]).nullable().optional(),
1501
+ letterSpacing: z14.enum(["tight", "normal", "loose"]).nullable().optional(),
907
1502
  size: headingSizeSchema.nullable().optional(),
908
- lineHeight: z12.enum(["normal", "relaxed", "loose"]).nullable().optional(),
909
- italic: z12.boolean().nullable().optional(),
910
- colorToken: z12.string().min(1).nullable().optional()
1503
+ lineHeight: z14.enum(["normal", "relaxed", "loose"]).nullable().optional(),
1504
+ italic: z14.boolean().nullable().optional(),
1505
+ colorToken: z14.string().min(1).nullable().optional()
911
1506
  // Palette token name for heading color
912
1507
  });
913
1508
  var headingTypographyStyleSchema = typographyStyleSchema.extend({
914
- case: z12.enum(["uppercase", "normal", "smallCaps"]).nullable(),
915
- italic: z12.boolean().nullable(),
916
- colorToken: z12.string().min(1).nullable().optional()
1509
+ case: z14.enum(["uppercase", "normal", "smallCaps"]).nullable(),
1510
+ italic: z14.boolean().nullable(),
1511
+ colorToken: z14.string().min(1).nullable().optional()
917
1512
  // Palette token name for heading color
918
1513
  });
919
- var proseLinkUnderlineStyleSchema = z12.enum(["solid", "dotted", "dashed"]);
920
- var proseLinkUnderlineThicknessSchema = z12.enum(["auto", "fromFont", "thin", "medium", "thick"]);
921
- var proseLinkUnderlineOffsetSchema = z12.enum(["auto", "tight", "normal", "loose"]);
922
- var proseLinkStyleSchema = z12.object({
923
- colorToken: z12.string().min(1).optional(),
924
- hoverColorToken: z12.string().min(1).optional(),
925
- underline: z12.boolean().optional(),
926
- decorationColorToken: z12.string().min(1).optional(),
927
- hoverDecorationColorToken: z12.string().min(1).optional(),
1514
+ var proseLinkUnderlineStyleSchema = z14.enum(["solid", "dotted", "dashed"]);
1515
+ var proseLinkUnderlineThicknessSchema = z14.enum(["auto", "fromFont", "thin", "medium", "thick"]);
1516
+ var proseLinkUnderlineOffsetSchema = z14.enum(["auto", "tight", "normal", "loose"]);
1517
+ var proseLinkStyleSchema = z14.object({
1518
+ colorToken: z14.string().min(1).optional(),
1519
+ hoverColorToken: z14.string().min(1).optional(),
1520
+ underline: z14.boolean().optional(),
1521
+ decorationColorToken: z14.string().min(1).optional(),
1522
+ hoverDecorationColorToken: z14.string().min(1).optional(),
928
1523
  underlineStyle: proseLinkUnderlineStyleSchema.optional(),
929
1524
  underlineThickness: proseLinkUnderlineThicknessSchema.optional(),
930
1525
  underlineOffset: proseLinkUnderlineOffsetSchema.optional()
931
1526
  });
932
- var semanticSpacingSchema = z12.enum([
1527
+ var semanticSpacingSchema = z14.enum([
933
1528
  "none",
934
1529
  "compact",
935
1530
  "cozy",
@@ -937,62 +1532,62 @@ var semanticSpacingSchema = z12.enum([
937
1532
  "comfortable",
938
1533
  "spacious"
939
1534
  ]);
940
- var boxRoundedSchema = z12.enum(["none", "sm", "md", "lg", "xl", "2xl", "full"]);
941
- var boxBackgroundOverlaySchema = z12.object({
942
- type: z12.enum(["none", "color", "gradient"]).nullable().optional(),
943
- color: z12.string().nullable().optional(),
944
- gradient: z12.string().nullable().optional(),
945
- opacity: z12.number().min(0).max(1).nullable().optional()
1535
+ var boxRoundedSchema = z14.enum(["none", "sm", "md", "lg", "xl", "2xl", "full"]);
1536
+ var boxBackgroundOverlaySchema = z14.object({
1537
+ type: z14.enum(["none", "color", "gradient"]).nullable().optional(),
1538
+ color: z14.string().nullable().optional(),
1539
+ gradient: z14.string().nullable().optional(),
1540
+ opacity: z14.number().min(0).max(1).nullable().optional()
946
1541
  });
947
- var boxBackgroundSchema = z12.object({
948
- type: z12.enum(["color", "gradient", "image"]).optional(),
949
- color: z12.string().nullable().optional(),
950
- gradient: z12.string().nullable().optional(),
1542
+ var boxBackgroundSchema = z14.object({
1543
+ type: z14.enum(["color", "gradient", "image"]).optional(),
1544
+ color: z14.string().nullable().optional(),
1545
+ gradient: z14.string().nullable().optional(),
951
1546
  image: mediaSchema.nullable().optional(),
952
- objectFit: z12.enum(["fill", "fit", "original", "custom"]).nullable().optional(),
953
- scale: z12.string().nullable().optional(),
954
- position: z12.string().nullable().optional(),
955
- opacity: z12.number().min(0).max(1).nullable().optional(),
1547
+ objectFit: z14.enum(["fill", "fit", "original", "custom"]).nullable().optional(),
1548
+ scale: z14.string().nullable().optional(),
1549
+ position: z14.string().nullable().optional(),
1550
+ opacity: z14.number().min(0).max(1).nullable().optional(),
956
1551
  overlay: boxBackgroundOverlaySchema.nullable().optional(),
957
- textColor: z12.string().nullable().optional(),
958
- headingColor: z12.string().nullable().optional()
1552
+ textColor: z14.string().nullable().optional(),
1553
+ headingColor: z14.string().nullable().optional()
959
1554
  });
960
- var sectionStylesOverrideSchema = z12.object({
1555
+ var sectionStylesOverrideSchema = z14.object({
961
1556
  background: boxBackgroundSchema.nullable().optional(),
962
1557
  spacing: semanticSpacingSchema.nullable().optional(),
963
- minHeight: z12.enum(["none", "hero", "immersive"]).nullable().optional()
1558
+ minHeight: z14.enum(["none", "hero", "immersive"]).nullable().optional()
964
1559
  });
965
- var containerStylesOverrideSchema = z12.object({
1560
+ var containerStylesOverrideSchema = z14.object({
966
1561
  background: boxBackgroundSchema.nullable().optional(),
967
1562
  spacing: semanticSpacingSchema.nullable().optional(),
968
- raised: z12.boolean().nullable().optional(),
1563
+ raised: z14.boolean().nullable().optional(),
969
1564
  rounded: boxRoundedSchema.nullable().optional(),
970
- fullWidth: z12.boolean().nullable().optional()
1565
+ fullWidth: z14.boolean().nullable().optional()
971
1566
  });
972
- var cardBorderOverrideSchema = z12.object({
973
- enabled: z12.boolean().nullable().optional(),
974
- width: z12.enum(["none", "1", "2", "3"]).nullable().optional(),
975
- colorToken: z12.string().nullable().optional()
1567
+ var cardBorderOverrideSchema = z14.object({
1568
+ enabled: z14.boolean().nullable().optional(),
1569
+ width: z14.enum(["none", "1", "2", "3"]).nullable().optional(),
1570
+ colorToken: z14.string().nullable().optional()
976
1571
  });
977
- var cardStylesOverrideSchema = z12.object({
1572
+ var cardStylesOverrideSchema = z14.object({
978
1573
  background: boxBackgroundSchema.nullable().optional(),
979
1574
  border: cardBorderOverrideSchema.nullable().optional(),
980
1575
  spacing: semanticSpacingSchema.nullable().optional(),
981
- raised: z12.boolean().nullable().optional(),
1576
+ raised: z14.boolean().nullable().optional(),
982
1577
  rounded: boxRoundedSchema.nullable().optional()
983
1578
  });
984
- var blockStyleOverridesSchema = z12.object({
1579
+ var blockStyleOverridesSchema = z14.object({
985
1580
  sectionStyles: sectionStylesOverrideSchema.nullable().optional(),
986
1581
  containerStyles: containerStylesOverrideSchema.nullable().optional(),
987
1582
  cardStyles: cardStylesOverrideSchema.nullable().optional()
988
1583
  });
989
- var blockThemeOverrideSchema = z12.object({
990
- typography: z12.object({
1584
+ var blockThemeOverrideSchema = z14.object({
1585
+ typography: z14.object({
991
1586
  proseLinkStyle: proseLinkStyleSchema.optional()
992
1587
  }).optional(),
993
1588
  styles: blockStyleOverridesSchema.optional()
994
1589
  });
995
- var typographyScaleSchema = z12.enum([
1590
+ var typographyScaleSchema = z14.enum([
996
1591
  // New intuitive names
997
1592
  "compact",
998
1593
  // ratio 1.2 (was minorThird)
@@ -1005,9 +1600,9 @@ var typographyScaleSchema = z12.enum([
1005
1600
  "majorThird",
1006
1601
  "perfectFourth"
1007
1602
  ]);
1008
- var typographySchema = z12.object({
1603
+ var typographySchema = z14.object({
1009
1604
  body: bodyTypographyStyleSchema,
1010
- headings: z12.object({
1605
+ headings: z14.object({
1011
1606
  default: headingTypographyStyleSchema,
1012
1607
  h1: headingTypographyOverridesSchema,
1013
1608
  h2: headingTypographyOverridesSchema,
@@ -1020,41 +1615,41 @@ var typographySchema = z12.object({
1020
1615
  scale: typographyScaleSchema,
1021
1616
  proseLinkStyle: proseLinkStyleSchema.optional()
1022
1617
  });
1023
- var spaceSchema = z12.enum(["comfortable", "standard", "dense"]);
1024
- var corners = z12.enum(["square", "soft", "rounded", "pill"]);
1025
- var shadow = z12.object({
1026
- elevation: z12.enum(["none", "low", "medium", "high"]),
1027
- softness: z12.enum(["crisp", "soft", "hard"]).nullable(),
1028
- position: z12.enum(["bottom", "bottom-right"]).default("bottom")
1618
+ var spaceSchema = z14.enum(["comfortable", "standard", "dense"]);
1619
+ var corners = z14.enum(["square", "soft", "rounded", "pill"]);
1620
+ var shadow = z14.object({
1621
+ elevation: z14.enum(["none", "low", "medium", "high"]),
1622
+ softness: z14.enum(["crisp", "soft", "hard"]).nullable(),
1623
+ position: z14.enum(["bottom", "bottom-right"]).default("bottom")
1029
1624
  });
1030
- var border = z12.object({
1031
- width: z12.enum(["none", "hairline", "thin", "thick"]),
1032
- style: z12.enum(["solid", "dashed"])
1625
+ var border = z14.object({
1626
+ width: z14.enum(["none", "hairline", "thin", "thick"]),
1627
+ style: z14.enum(["solid", "dashed"])
1033
1628
  });
1034
- var motion = z12.object({
1035
- level: z12.enum(["off", "low", "medium", "high"]),
1036
- easing: z12.enum(["standard", "snappy", "gentle"]).nullable()
1629
+ var motion = z14.object({
1630
+ level: z14.enum(["off", "low", "medium", "high"]),
1631
+ easing: z14.enum(["standard", "snappy", "gentle"]).nullable()
1037
1632
  });
1038
- var buttonStyle = z12.object({
1633
+ var buttonStyle = z14.object({
1039
1634
  shape: corners
1040
1635
  // Used for --radius-control CSS variable
1041
1636
  });
1042
- var cardStyle = z12.object({
1043
- elevation: z12.enum(["none", "low", "medium", "high"]),
1044
- border: z12.enum(["none", "subtle", "defined"]),
1637
+ var cardStyle = z14.object({
1638
+ elevation: z14.enum(["none", "low", "medium", "high"]),
1639
+ border: z14.enum(["none", "subtle", "defined"]),
1045
1640
  shape: corners,
1046
- headerStyle: z12.enum(["plain", "accentBar", "subtleBg"]).nullable(),
1047
- mediaTreatment: z12.enum(["square", "rounded", "bleed"]).nullable()
1641
+ headerStyle: z14.enum(["plain", "accentBar", "subtleBg"]).nullable(),
1642
+ mediaTreatment: z14.enum(["square", "rounded", "bleed"]).nullable()
1048
1643
  });
1049
- var inputStyle = z12.object({
1644
+ var inputStyle = z14.object({
1050
1645
  shape: corners,
1051
- border: z12.enum(["subtle", "defined", "underline"]),
1052
- focus: z12.enum(["glow", "ring", "underline"]),
1053
- label: z12.enum(["inside", "above"])
1646
+ border: z14.enum(["subtle", "defined", "underline"]),
1647
+ focus: z14.enum(["glow", "ring", "underline"]),
1648
+ label: z14.enum(["inside", "above"])
1054
1649
  });
1055
- var headerVariant = z12.enum(["classic", "centered", "transparent", "floating", "editorial"]);
1056
- var headerPositioning = z12.enum(["static", "sticky", "fixed"]);
1057
- var headerNavStyle = z12.enum([
1650
+ var headerVariant = z14.enum(["classic", "centered", "transparent", "floating", "editorial"]);
1651
+ var headerPositioning = z14.enum(["static", "sticky", "fixed"]);
1652
+ var headerNavStyle = z14.enum([
1058
1653
  "minimal",
1059
1654
  "underline",
1060
1655
  "underline-grow",
@@ -1063,82 +1658,82 @@ var headerNavStyle = z12.enum([
1063
1658
  "frosted",
1064
1659
  "solid"
1065
1660
  ]);
1066
- var navFontWeight = z12.enum(["regular", "medium", "semibold", "bold"]);
1067
- var headerMaxWidth = z12.enum(["container", "full"]);
1068
- var headerContainerSchema = z12.object({
1069
- rounded: z12.enum(["none", "sm", "md", "lg", "xl", "2xl"]).default("xl"),
1070
- border: z12.boolean().default(true),
1071
- shadow: z12.boolean().default(true),
1072
- padding: z12.enum(["sm", "md", "lg"]).default("md"),
1073
- tint: z12.string().nullable().optional(),
1074
- opacity: z12.number().min(0).max(1).default(0.12)
1661
+ var navFontWeight = z14.enum(["regular", "medium", "semibold", "bold"]);
1662
+ var headerMaxWidth = z14.enum(["container", "full"]);
1663
+ var headerContainerSchema = z14.object({
1664
+ rounded: z14.enum(["none", "sm", "md", "lg", "xl", "2xl"]).default("xl"),
1665
+ border: z14.boolean().default(true),
1666
+ shadow: z14.boolean().default(true),
1667
+ padding: z14.enum(["sm", "md", "lg"]).default("md"),
1668
+ tint: z14.string().nullable().optional(),
1669
+ opacity: z14.number().min(0).max(1).default(0.12)
1075
1670
  }).optional();
1076
1671
  var headerBorderSchema = componentBorderSchema.extend({
1077
- position: z12.enum(["bottom", "top", "both", "none"]).default("bottom")
1672
+ position: z14.enum(["bottom", "top", "both", "none"]).default("bottom")
1078
1673
  }).optional();
1079
- var logoStyleSchema = z12.object({
1080
- fontFamily: z12.enum(["heading", "body"]).default("heading"),
1081
- letterSpacing: z12.enum(["normal", "wide", "wider", "widest"]).default("normal"),
1082
- gradient: z12.boolean().default(false)
1674
+ var logoStyleSchema = z14.object({
1675
+ fontFamily: z14.enum(["heading", "body"]).default("heading"),
1676
+ letterSpacing: z14.enum(["normal", "wide", "wider", "widest"]).default("normal"),
1677
+ gradient: z14.boolean().default(false)
1083
1678
  }).optional();
1084
- var headerLogoTextSchema = z12.object({
1085
- mobileWrapLines: z12.union([z12.literal(1), z12.literal(2)]).optional(),
1086
- mobileMaxWidth: z12.enum(["xs", "sm", "md"]).optional(),
1087
- hideOnShrink: z12.boolean().optional()
1679
+ var headerLogoTextSchema = z14.object({
1680
+ mobileWrapLines: z14.union([z14.literal(1), z14.literal(2)]).optional(),
1681
+ mobileMaxWidth: z14.enum(["xs", "sm", "md"]).optional(),
1682
+ hideOnShrink: z14.boolean().optional()
1088
1683
  }).optional();
1089
- var navEffectsSchema = z12.object({
1090
- underlineGradient: z12.boolean().default(false),
1091
- glow: z12.boolean().default(false),
1092
- glowColor: z12.string().optional(),
1093
- neumorphic: z12.boolean().default(false)
1684
+ var navEffectsSchema = z14.object({
1685
+ underlineGradient: z14.boolean().default(false),
1686
+ glow: z14.boolean().default(false),
1687
+ glowColor: z14.string().optional(),
1688
+ neumorphic: z14.boolean().default(false)
1094
1689
  }).optional();
1095
- var dropdownStyleSchema = z12.object({
1690
+ var dropdownStyleSchema = z14.object({
1096
1691
  // Container styling
1097
- background: z12.string().default("surface"),
1692
+ background: z14.string().default("surface"),
1098
1693
  // color token
1099
- textColor: z12.string().default("text"),
1694
+ textColor: z14.string().default("text"),
1100
1695
  // color token
1101
- borderColor: z12.string().nullable().default("border"),
1696
+ borderColor: z14.string().nullable().default("border"),
1102
1697
  // null = no border
1103
- shadow: z12.enum(["none", "sm", "md", "lg"]).default("md"),
1104
- borderRadius: z12.enum(["none", "sm", "md", "lg"]).default("md"),
1698
+ shadow: z14.enum(["none", "sm", "md", "lg"]).default("md"),
1699
+ borderRadius: z14.enum(["none", "sm", "md", "lg"]).default("md"),
1105
1700
  // Link hover states (explicit control)
1106
- hoverBackground: z12.string().nullable().optional(),
1701
+ hoverBackground: z14.string().nullable().optional(),
1107
1702
  // color token, null = transparent
1108
- hoverTextColor: z12.string().nullable().optional(),
1703
+ hoverTextColor: z14.string().nullable().optional(),
1109
1704
  // color token, null = inherit
1110
1705
  // Typography
1111
- textTransform: z12.enum(["none", "uppercase", "capitalize"]).default("none"),
1112
- letterSpacing: z12.enum(["normal", "wide", "wider"]).default("normal"),
1113
- fontWeight: z12.enum(["regular", "medium", "semibold", "bold"]).optional(),
1706
+ textTransform: z14.enum(["none", "uppercase", "capitalize"]).default("none"),
1707
+ letterSpacing: z14.enum(["normal", "wide", "wider"]).default("normal"),
1708
+ fontWeight: z14.enum(["regular", "medium", "semibold", "bold"]).optional(),
1114
1709
  // optional = inherit from navWeight
1115
- textSize: z12.enum(["xs", "sm", "base", "lg"]).optional()
1710
+ textSize: z14.enum(["xs", "sm", "base", "lg"]).optional()
1116
1711
  // optional = no override (browser default)
1117
1712
  }).optional();
1118
- var headerCtaGapSchema = z12.enum(["none", "tight", "compact", "default", "relaxed", "spacious"]);
1119
- var navContainerSchema = z12.object({
1120
- type: z12.enum(["none", "pill", "glass"]).default("none"),
1121
- tint: z12.string().nullable().optional(),
1122
- opacity: z12.number().min(0).max(1).default(0.15)
1713
+ var headerCtaGapSchema = z14.enum(["none", "tight", "compact", "default", "relaxed", "spacious"]);
1714
+ var navContainerSchema = z14.object({
1715
+ type: z14.enum(["none", "pill", "glass"]).default("none"),
1716
+ tint: z14.string().nullable().optional(),
1717
+ opacity: z14.number().min(0).max(1).default(0.15)
1123
1718
  }).default({ type: "none", tint: null, opacity: 0.15 });
1124
- var headerBackgroundSchema = z12.object({
1125
- type: z12.enum(["color", "gradient", "image"]),
1126
- color: z12.string().nullable().optional(),
1719
+ var headerBackgroundSchema = z14.object({
1720
+ type: z14.enum(["color", "gradient", "image"]),
1721
+ color: z14.string().nullable().optional(),
1127
1722
  gradient: gradientConfigSchema.nullable().optional(),
1128
1723
  image: mediaSchema.nullable().optional(),
1129
- textColor: z12.string().nullable().optional()
1724
+ textColor: z14.string().nullable().optional()
1130
1725
  });
1131
- var headerSchema = z12.object({
1726
+ var headerSchema = z14.object({
1132
1727
  variant: headerVariant,
1133
1728
  positioning: headerPositioning,
1134
- shrinkOnScroll: z12.boolean(),
1729
+ shrinkOnScroll: z14.boolean(),
1135
1730
  maxWidth: headerMaxWidth,
1136
1731
  logoOverride: mediaSchema.nullable().optional(),
1137
1732
  background: headerBackgroundSchema.default({ type: "color", color: "surface" }),
1138
- textColor: z12.string().nullable().optional(),
1733
+ textColor: z14.string().nullable().optional(),
1139
1734
  // Site title and general header text
1140
1735
  navStyle: headerNavStyle,
1141
- navColor: z12.string().nullable().optional(),
1736
+ navColor: z14.string().nullable().optional(),
1142
1737
  // Nav links (inherits textColor if not set)
1143
1738
  navWeight: navFontWeight.default("medium"),
1144
1739
  // New fields for header system enhancement
@@ -1157,50 +1752,50 @@ var headerSchema = z12.object({
1157
1752
  // Dropdown menu styling (nav dropdowns and mobile drawer)
1158
1753
  dropdownStyle: dropdownStyleSchema
1159
1754
  });
1160
- var footerVariant = z12.enum(["simple", "columns", "split"]);
1161
- var footerMaxWidth = z12.enum(["container", "full"]);
1162
- var footerMode = z12.enum(["default", "blocks", "default+blocks", "none"]);
1163
- var footerNavLayoutMode = z12.enum(["stack", "inline", "inline-wrap"]);
1164
- var footerNavLayoutAlign = z12.enum(["start", "center", "end", "space-between"]);
1165
- var footerSpacing = z12.enum(["none", "tight", "compact", "default", "relaxed", "spacious"]);
1166
- var footerLogoPlacement = z12.enum(["left", "right", "above", "below"]);
1167
- var footerLogoSize = z12.enum(["sm", "md", "lg", "xl"]);
1168
- var footerLogoMaxHeight = z12.enum(["sm", "md", "lg", "xl"]);
1169
- var footerBottomTextLinkStyleSchema = z12.object({
1170
- colorToken: z12.string().optional(),
1171
- hoverColorToken: z12.string().nullable().optional(),
1172
- decorationColorToken: z12.string().nullable().optional(),
1173
- underline: z12.boolean().optional()
1755
+ var footerVariant = z14.enum(["simple", "columns", "split"]);
1756
+ var footerMaxWidth = z14.enum(["container", "full"]);
1757
+ var footerMode = z14.enum(["default", "blocks", "default+blocks", "none"]);
1758
+ var footerNavLayoutMode = z14.enum(["stack", "inline", "inline-wrap"]);
1759
+ var footerNavLayoutAlign = z14.enum(["start", "center", "end", "space-between"]);
1760
+ var footerSpacing = z14.enum(["none", "tight", "compact", "default", "relaxed", "spacious"]);
1761
+ var footerLogoPlacement = z14.enum(["left", "right", "above", "below"]);
1762
+ var footerLogoSize = z14.enum(["sm", "md", "lg", "xl"]);
1763
+ var footerLogoMaxHeight = z14.enum(["sm", "md", "lg", "xl"]);
1764
+ var footerBottomTextLinkStyleSchema = z14.object({
1765
+ colorToken: z14.string().optional(),
1766
+ hoverColorToken: z14.string().nullable().optional(),
1767
+ decorationColorToken: z14.string().nullable().optional(),
1768
+ underline: z14.boolean().optional()
1174
1769
  });
1175
- var footerBottomBarSchema = z12.object({
1176
- enabled: z12.boolean().optional(),
1177
- fullBleed: z12.boolean().optional(),
1770
+ var footerBottomBarSchema = z14.object({
1771
+ enabled: z14.boolean().optional(),
1772
+ fullBleed: z14.boolean().optional(),
1178
1773
  background: headerBackgroundSchema.optional(),
1179
- textColor: z12.string().nullable().optional(),
1180
- textAlign: z12.enum(["left", "center", "right"]).optional(),
1774
+ textColor: z14.string().nullable().optional(),
1775
+ textAlign: z14.enum(["left", "center", "right"]).optional(),
1181
1776
  paddingY: footerSpacing.optional(),
1182
1777
  paddingX: footerSpacing.optional(),
1183
- borderTop: z12.object({
1184
- colorToken: z12.string().nullable().optional(),
1185
- width: z12.enum(["none", "thin", "medium", "thick"]).optional()
1778
+ borderTop: z14.object({
1779
+ colorToken: z14.string().nullable().optional(),
1780
+ width: z14.enum(["none", "thin", "medium", "thick"]).optional()
1186
1781
  }).optional()
1187
1782
  });
1188
- var footerNavLayoutSchema = z12.object({
1783
+ var footerNavLayoutSchema = z14.object({
1189
1784
  layout: footerNavLayoutMode.optional(),
1190
1785
  align: footerNavLayoutAlign.optional(),
1191
1786
  gapX: footerSpacing.optional(),
1192
1787
  gapY: footerSpacing.optional(),
1193
- columns: z12.number().int().min(1).max(6).optional()
1788
+ columns: z14.number().int().min(1).max(6).optional()
1194
1789
  });
1195
- var footerLogoSchema = z12.object({
1196
- showLogo: z12.boolean().default(true),
1197
- showLogoText: z12.boolean().optional(),
1790
+ var footerLogoSchema = z14.object({
1791
+ showLogo: z14.boolean().default(true),
1792
+ showLogoText: z14.boolean().optional(),
1198
1793
  placement: footerLogoPlacement.optional(),
1199
1794
  size: footerLogoSize.optional(),
1200
1795
  maxHeight: footerLogoMaxHeight.optional(),
1201
- align: z12.enum(["start", "center", "end"]).optional()
1796
+ align: z14.enum(["start", "center", "end"]).optional()
1202
1797
  });
1203
- var footerSchema = z12.object({
1798
+ var footerSchema = z14.object({
1204
1799
  /**
1205
1800
  * SDK-only footer rendering mode.
1206
1801
  *
@@ -1209,11 +1804,11 @@ var footerSchema = z12.object({
1209
1804
  mode: footerMode.optional(),
1210
1805
  variant: footerVariant,
1211
1806
  maxWidth: footerMaxWidth,
1212
- showLogoText: z12.boolean().optional(),
1807
+ showLogoText: z14.boolean().optional(),
1213
1808
  background: headerBackgroundSchema.default({ type: "color", color: "surface" }),
1214
1809
  // Footer nav styling (independent from header)
1215
1810
  navStyle: headerNavStyle.default("minimal"),
1216
- navColor: z12.string().nullable().optional(),
1811
+ navColor: z14.string().nullable().optional(),
1217
1812
  navWeight: navFontWeight.default("medium"),
1218
1813
  // Full nav link customization (overrides navStyle if set)
1219
1814
  navLinkStyle: navLinkStyleSchema.optional(),
@@ -1224,15 +1819,15 @@ var footerSchema = z12.object({
1224
1819
  logo: footerLogoSchema.optional(),
1225
1820
  bottomBar: footerBottomBarSchema.optional()
1226
1821
  });
1227
- var containerPaddingPresetSchema = z12.enum(["tight", "compact", "default", "relaxed"]);
1228
- var layoutSchema = z12.object({
1229
- containerPadding: z12.object({
1822
+ var containerPaddingPresetSchema = z14.enum(["tight", "compact", "default", "relaxed"]);
1823
+ var layoutSchema = z14.object({
1824
+ containerPadding: z14.object({
1230
1825
  mobile: containerPaddingPresetSchema.optional(),
1231
1826
  tablet: containerPaddingPresetSchema.optional(),
1232
1827
  desktop: containerPaddingPresetSchema.optional()
1233
1828
  }).optional()
1234
1829
  }).optional();
1235
- var heroTypographySizeSchema = z12.enum([
1830
+ var heroTypographySizeSchema = z14.enum([
1236
1831
  "sm",
1237
1832
  "base",
1238
1833
  "lg",
@@ -1243,14 +1838,14 @@ var heroTypographySizeSchema = z12.enum([
1243
1838
  "5xl",
1244
1839
  "6xl"
1245
1840
  ]);
1246
- var heroTypographyLineHeightSchema = z12.enum(["tight", "snug", "normal", "relaxed"]);
1247
- var heroResponsiveTypographySchema = z12.object({
1841
+ var heroTypographyLineHeightSchema = z14.enum(["tight", "snug", "normal", "relaxed"]);
1842
+ var heroResponsiveTypographySchema = z14.object({
1248
1843
  headlineSize: heroTypographySizeSchema.optional(),
1249
1844
  headlineLineHeight: heroTypographyLineHeightSchema.optional(),
1250
1845
  subheadlineSize: heroTypographySizeSchema.optional(),
1251
1846
  subheadlineLineHeight: heroTypographyLineHeightSchema.optional()
1252
1847
  });
1253
- var heroTypographySchema = z12.object({
1848
+ var heroTypographySchema = z14.object({
1254
1849
  headlineSize: heroTypographySizeSchema.optional(),
1255
1850
  headlineLineHeight: heroTypographyLineHeightSchema.optional(),
1256
1851
  subheadlineSize: heroTypographySizeSchema.optional(),
@@ -1259,24 +1854,24 @@ var heroTypographySchema = z12.object({
1259
1854
  microHeadlineLineHeight: heroTypographyLineHeightSchema.optional(),
1260
1855
  microSubheadlineSize: heroTypographySizeSchema.optional(),
1261
1856
  microSubheadlineLineHeight: heroTypographyLineHeightSchema.optional(),
1262
- responsive: z12.object({
1857
+ responsive: z14.object({
1263
1858
  tablet: heroResponsiveTypographySchema.optional(),
1264
1859
  mobile: heroResponsiveTypographySchema.optional()
1265
1860
  }).optional()
1266
1861
  });
1267
- var heroSchema = z12.object({
1862
+ var heroSchema = z14.object({
1268
1863
  typography: heroTypographySchema.optional()
1269
1864
  }).optional();
1270
- var gradientsSchema = z12.object({
1271
- button: z12.string().min(1).nullable().optional(),
1272
- hero: z12.string().min(1).nullable().optional(),
1273
- background: z12.string().min(1).nullable().optional()
1865
+ var gradientsSchema = z14.object({
1866
+ button: z14.string().min(1).nullable().optional(),
1867
+ hero: z14.string().min(1).nullable().optional(),
1868
+ background: z14.string().min(1).nullable().optional()
1274
1869
  });
1275
- var themeSchema = z12.object({
1276
- name: z12.string().min(1).max(30),
1277
- description: z12.string().min(1).max(400),
1278
- rationale: z12.string().min(1).max(400),
1279
- siteStyleId: z12.string().min(1).transform((value) => asSiteStyleId(value)).optional(),
1870
+ var themeSchema = z14.object({
1871
+ name: z14.string().min(1).max(30),
1872
+ description: z14.string().min(1).max(400),
1873
+ rationale: z14.string().min(1).max(400),
1874
+ siteStyleId: z14.string().min(1).transform((value) => asSiteStyleId(value)).optional(),
1280
1875
  axes: axesSchema,
1281
1876
  palette: paletteSchema,
1282
1877
  typography: typographySchema,
@@ -1303,16 +1898,16 @@ var themeSchema = z12.object({
1303
1898
  // Block-specific customization (Tier 3)
1304
1899
  // blockCustomVars: Per-block CSS variable overrides as bare values
1305
1900
  // Example: { "event-registration": { "--step-color": "#6d28d9" } }
1306
- blockCustomVars: z12.record(
1307
- z12.string(),
1901
+ blockCustomVars: z14.record(
1902
+ z14.string(),
1308
1903
  // block kind (matches data-block attribute)
1309
- z12.record(z12.string(), z12.string())
1904
+ z14.record(z14.string(), z14.string())
1310
1905
  // { '--var-name': 'value' }
1311
1906
  ).optional(),
1312
1907
  // Structured block-kind theme overrides (v1: typography prose-link style only)
1313
1908
  // Keyed by block kind (usually data-block value like "hero"; "block.hero" also accepted)
1314
- blockOverrides: z12.record(
1315
- z12.string(),
1909
+ blockOverrides: z14.record(
1910
+ z14.string(),
1316
1911
  blockThemeOverrideSchema
1317
1912
  ).optional(),
1318
1913
  // Structured custom CSS rules
@@ -1348,13 +1943,372 @@ var themeSchema = z12.object({
1348
1943
  * }
1349
1944
  * ```
1350
1945
  */
1351
- styleGroups: z12.record(z12.string(), z12.array(z12.string())).optional()
1946
+ styleGroups: z14.record(z14.string(), z14.array(z14.string())).optional()
1947
+ });
1948
+ var themesTurnSchema = z14.object({
1949
+ message: z14.string().min(1),
1950
+ themes: z14.array(themeSchema).length(3)
1951
+ });
1952
+
1953
+ // ../theme-core/src/palette/variants/types.ts
1954
+ import { z as z15 } from "zod";
1955
+ function asPaletteVariantId(value) {
1956
+ if (value.length === 0) {
1957
+ throw new Error("PaletteVariantId must be a non-empty string");
1958
+ }
1959
+ return value;
1960
+ }
1961
+ var paletteVariantIdSchema = z15.string().min(1).transform((value) => asPaletteVariantId(value));
1962
+ var PALETTE_TOKEN_NAMES = [
1963
+ "primary",
1964
+ "primaryForeground",
1965
+ "secondary",
1966
+ "accent",
1967
+ "success",
1968
+ "warning",
1969
+ "destructive",
1970
+ "background",
1971
+ "surface",
1972
+ "surfaceAlt",
1973
+ "muted",
1974
+ "text",
1975
+ "border"
1976
+ ];
1977
+ var paletteTokenNameSchema = z15.enum(PALETTE_TOKEN_NAMES);
1978
+ var HEX_COLOR_REGEX = /^#[0-9a-f]{6}$/;
1979
+ var hexColorSchema = z15.string().regex(HEX_COLOR_REGEX, "Hex must be #RRGGBB (lowercase)").transform((value) => value);
1980
+ var variantPaletteColorSchema = paletteColorSchema.extend({
1981
+ name: paletteTokenNameSchema
1982
+ });
1983
+ var paletteVariantSchema = z15.object({
1984
+ id: paletteVariantIdSchema,
1985
+ name: z15.string().min(1),
1986
+ description: z15.string().min(1),
1987
+ tags: styleTagsSchema,
1988
+ mode: z15.enum(["light", "dark"]),
1989
+ colors: z15.array(variantPaletteColorSchema).min(1)
1990
+ });
1991
+ function definePaletteVariant(input) {
1992
+ return {
1993
+ id: asPaletteVariantId(input.id),
1994
+ name: input.name,
1995
+ description: input.description,
1996
+ tags: input.tags,
1997
+ mode: input.mode,
1998
+ colors: input.colors
1999
+ };
2000
+ }
2001
+ var paletteOverridesSchema = z15.object({
2002
+ primary: hexColorSchema.optional(),
2003
+ primaryForeground: hexColorSchema.optional(),
2004
+ secondary: hexColorSchema.optional(),
2005
+ accent: hexColorSchema.optional(),
2006
+ success: hexColorSchema.optional(),
2007
+ warning: hexColorSchema.optional(),
2008
+ destructive: hexColorSchema.optional(),
2009
+ background: hexColorSchema.optional(),
2010
+ surface: hexColorSchema.optional(),
2011
+ surfaceAlt: hexColorSchema.optional(),
2012
+ muted: hexColorSchema.optional(),
2013
+ text: hexColorSchema.optional(),
2014
+ border: hexColorSchema.optional()
2015
+ }).strict().transform((value) => value);
2016
+
2017
+ // ../theme-core/src/palette/variants/brand-led.ts
2018
+ var brandLedCool = definePaletteVariant({
2019
+ id: "brand-led-cool",
2020
+ name: "Brand-led \u2014 Cool",
2021
+ description: "Confident blue primary with slate neutrals.",
2022
+ tags: { tone: "classic", energy: "calm", era: "modern" },
2023
+ mode: "light",
2024
+ colors: [
2025
+ { name: "primary", hex: "#2563eb" },
2026
+ { name: "secondary", hex: "#64748b" },
2027
+ { name: "accent", hex: "#0f766e" },
2028
+ { name: "success", hex: "#16a34a" },
2029
+ { name: "warning", hex: "#d97706" },
2030
+ { name: "destructive", hex: "#dc2626" },
2031
+ { name: "background", hex: "#ffffff" },
2032
+ { name: "surface", hex: "#ffffff" },
2033
+ { name: "surfaceAlt", hex: "#f8fafc" },
2034
+ { name: "muted", hex: "#f1f5f9" },
2035
+ { name: "text", hex: "#0f172a" },
2036
+ { name: "primaryForeground", hex: "#ffffff" },
2037
+ { name: "border", hex: "#cbd5e1" }
2038
+ ]
1352
2039
  });
1353
- var themesTurnSchema = z12.object({
1354
- message: z12.string().min(1),
1355
- themes: z12.array(themeSchema).length(3)
2040
+ var brandLedWarm = definePaletteVariant({
2041
+ id: "brand-led-warm",
2042
+ name: "Brand-led \u2014 Warm",
2043
+ description: "Sunset orange primary with warm grey neutrals.",
2044
+ tags: { tone: "classic", energy: "vibrant", era: "modern" },
2045
+ mode: "light",
2046
+ colors: [
2047
+ { name: "primary", hex: "#ea580c" },
2048
+ { name: "secondary", hex: "#78716c" },
2049
+ { name: "accent", hex: "#a16207" },
2050
+ { name: "success", hex: "#16a34a" },
2051
+ { name: "warning", hex: "#d97706" },
2052
+ { name: "destructive", hex: "#b91c1c" },
2053
+ { name: "background", hex: "#fffaf3" },
2054
+ { name: "surface", hex: "#ffffff" },
2055
+ { name: "surfaceAlt", hex: "#fbeee0" },
2056
+ { name: "muted", hex: "#f4e2cd" },
2057
+ { name: "text", hex: "#1c1917" },
2058
+ { name: "primaryForeground", hex: "#fffaf3" },
2059
+ { name: "border", hex: "#d6c4ad" }
2060
+ ]
2061
+ });
2062
+ var brandLedJewel = definePaletteVariant({
2063
+ id: "brand-led-jewel",
2064
+ name: "Brand-led \u2014 Jewel",
2065
+ description: "Deep emerald primary with rich neutrals.",
2066
+ tags: { tone: "bold", energy: "vibrant", era: "modern" },
2067
+ mode: "light",
2068
+ colors: [
2069
+ { name: "primary", hex: "#047857" },
2070
+ { name: "secondary", hex: "#4b5563" },
2071
+ { name: "accent", hex: "#7c3aed" },
2072
+ { name: "success", hex: "#15803d" },
2073
+ { name: "warning", hex: "#b45309" },
2074
+ { name: "destructive", hex: "#b91c1c" },
2075
+ { name: "background", hex: "#ffffff" },
2076
+ { name: "surface", hex: "#ffffff" },
2077
+ { name: "surfaceAlt", hex: "#f5f5f4" },
2078
+ { name: "muted", hex: "#e7e5e4" },
2079
+ { name: "text", hex: "#0c0a09" },
2080
+ { name: "primaryForeground", hex: "#ffffff" },
2081
+ { name: "border", hex: "#a8a29e" }
2082
+ ]
1356
2083
  });
1357
2084
 
2085
+ // ../theme-core/src/palette/variants/high-contrast.ts
2086
+ var highContrastInk = definePaletteVariant({
2087
+ id: "high-contrast-ink",
2088
+ name: "High Contrast \u2014 Ink",
2089
+ description: "Near-black primary with cool greys.",
2090
+ tags: { tone: "bold", energy: "calm", era: "editorial" },
2091
+ mode: "light",
2092
+ colors: [
2093
+ { name: "primary", hex: "#111827" },
2094
+ { name: "secondary", hex: "#374151" },
2095
+ { name: "accent", hex: "#1d4ed8" },
2096
+ { name: "success", hex: "#047857" },
2097
+ { name: "warning", hex: "#b45309" },
2098
+ { name: "destructive", hex: "#b91c1c" },
2099
+ { name: "background", hex: "#ffffff" },
2100
+ { name: "surface", hex: "#ffffff" },
2101
+ { name: "surfaceAlt", hex: "#f3f4f6" },
2102
+ { name: "muted", hex: "#e5e7eb" },
2103
+ { name: "text", hex: "#030712" },
2104
+ { name: "primaryForeground", hex: "#ffffff" },
2105
+ { name: "border", hex: "#6b7280" }
2106
+ ]
2107
+ });
2108
+ var highContrastCharcoal = definePaletteVariant({
2109
+ id: "high-contrast-charcoal",
2110
+ name: "High Contrast \u2014 Charcoal",
2111
+ description: "Warm charcoal primary on a soft cream ground.",
2112
+ tags: { tone: "minimal", energy: "calm", era: "editorial" },
2113
+ mode: "light",
2114
+ colors: [
2115
+ { name: "primary", hex: "#1f2937" },
2116
+ { name: "secondary", hex: "#52525b" },
2117
+ { name: "accent", hex: "#a16207" },
2118
+ { name: "success", hex: "#15803d" },
2119
+ { name: "warning", hex: "#b45309" },
2120
+ { name: "destructive", hex: "#991b1b" },
2121
+ { name: "background", hex: "#fafaf9" },
2122
+ { name: "surface", hex: "#ffffff" },
2123
+ { name: "surfaceAlt", hex: "#f5f5f4" },
2124
+ { name: "muted", hex: "#e7e5e4" },
2125
+ { name: "text", hex: "#0c0a09" },
2126
+ { name: "primaryForeground", hex: "#fafaf9" },
2127
+ { name: "border", hex: "#a8a29e" }
2128
+ ]
2129
+ });
2130
+ var highContrastMonochrome = definePaletteVariant({
2131
+ id: "high-contrast-monochrome",
2132
+ name: "High Contrast \u2014 Monochrome",
2133
+ description: "Pure black-on-white with a single saturated accent.",
2134
+ tags: { tone: "bold", energy: "vibrant", era: "editorial" },
2135
+ mode: "light",
2136
+ colors: [
2137
+ { name: "primary", hex: "#000000" },
2138
+ { name: "secondary", hex: "#404040" },
2139
+ { name: "accent", hex: "#dc2626" },
2140
+ { name: "success", hex: "#000000" },
2141
+ { name: "warning", hex: "#000000" },
2142
+ { name: "destructive", hex: "#dc2626" },
2143
+ { name: "background", hex: "#ffffff" },
2144
+ { name: "surface", hex: "#ffffff" },
2145
+ { name: "surfaceAlt", hex: "#f5f5f5" },
2146
+ { name: "muted", hex: "#e5e5e5" },
2147
+ { name: "text", hex: "#000000" },
2148
+ { name: "primaryForeground", hex: "#ffffff" },
2149
+ { name: "border", hex: "#525252" }
2150
+ ]
2151
+ });
2152
+
2153
+ // ../theme-core/src/palette/variants/soft-natural.ts
2154
+ var softNaturalSage = definePaletteVariant({
2155
+ id: "soft-natural-sage",
2156
+ name: "Soft Natural \u2014 Sage",
2157
+ description: "Olive sage primary on an off-white ground.",
2158
+ tags: { tone: "classic", energy: "calm", era: "organic" },
2159
+ mode: "light",
2160
+ colors: [
2161
+ { name: "primary", hex: "#3f6212" },
2162
+ { name: "secondary", hex: "#6b7280" },
2163
+ { name: "accent", hex: "#0f766e" },
2164
+ { name: "success", hex: "#15803d" },
2165
+ { name: "warning", hex: "#a16207" },
2166
+ { name: "destructive", hex: "#b91c1c" },
2167
+ { name: "background", hex: "#fbfdf7" },
2168
+ { name: "surface", hex: "#ffffff" },
2169
+ { name: "surfaceAlt", hex: "#eef5e8" },
2170
+ { name: "muted", hex: "#e7efdf" },
2171
+ { name: "text", hex: "#1f2a1d" },
2172
+ { name: "primaryForeground", hex: "#ffffff" },
2173
+ { name: "border", hex: "#cbd8c0" }
2174
+ ]
2175
+ });
2176
+ var softNaturalStone = definePaletteVariant({
2177
+ id: "soft-natural-stone",
2178
+ name: "Soft Natural \u2014 Stone",
2179
+ description: "River-stone grey-green primary with cool neutrals.",
2180
+ tags: { tone: "minimal", energy: "calm", era: "organic" },
2181
+ mode: "light",
2182
+ colors: [
2183
+ { name: "primary", hex: "#5a7a5d" },
2184
+ { name: "secondary", hex: "#8a9a8c" },
2185
+ { name: "accent", hex: "#c9b88f" },
2186
+ { name: "success", hex: "#5a7a5d" },
2187
+ { name: "warning", hex: "#a89466" },
2188
+ { name: "destructive", hex: "#a3503e" },
2189
+ { name: "background", hex: "#faf6ec" },
2190
+ { name: "surface", hex: "#ffffff" },
2191
+ { name: "surfaceAlt", hex: "#f0ecdf" },
2192
+ { name: "muted", hex: "#e6e1d0" },
2193
+ { name: "text", hex: "#2f3d31" },
2194
+ { name: "primaryForeground", hex: "#faf6ec" },
2195
+ { name: "border", hex: "#c9c1ad" }
2196
+ ]
2197
+ });
2198
+ var softNaturalWatercolor = definePaletteVariant({
2199
+ id: "soft-natural-watercolor",
2200
+ name: "Soft Natural \u2014 Watercolor",
2201
+ description: "Soft sand primary with watercolour sage accents.",
2202
+ tags: { tone: "classic", energy: "vibrant", era: "organic" },
2203
+ mode: "light",
2204
+ colors: [
2205
+ { name: "primary", hex: "#a8825f" },
2206
+ { name: "secondary", hex: "#88a888" },
2207
+ { name: "accent", hex: "#c8a78e" },
2208
+ { name: "success", hex: "#7d8a5f" },
2209
+ { name: "warning", hex: "#c89a4d" },
2210
+ { name: "destructive", hex: "#a3503e" },
2211
+ { name: "background", hex: "#fefdfa" },
2212
+ { name: "surface", hex: "#ffffff" },
2213
+ { name: "surfaceAlt", hex: "#f6f1e6" },
2214
+ { name: "muted", hex: "#eee7d1" },
2215
+ { name: "text", hex: "#4a3d30" },
2216
+ { name: "primaryForeground", hex: "#fefdfa" },
2217
+ { name: "border", hex: "#d8c9a8" }
2218
+ ]
2219
+ });
2220
+
2221
+ // ../theme-core/src/palette/variants/warm-neutral.ts
2222
+ var warmNeutralClay = definePaletteVariant({
2223
+ id: "warm-neutral-clay",
2224
+ name: "Warm Neutral \u2014 Clay",
2225
+ description: "Terracotta primary on a cream ground.",
2226
+ tags: { tone: "classic", energy: "calm", era: "organic" },
2227
+ mode: "light",
2228
+ colors: [
2229
+ { name: "primary", hex: "#8b5e34" },
2230
+ { name: "secondary", hex: "#7c6f64" },
2231
+ { name: "accent", hex: "#a15c38" },
2232
+ { name: "success", hex: "#527853" },
2233
+ { name: "warning", hex: "#b7791f" },
2234
+ { name: "destructive", hex: "#b91c1c" },
2235
+ { name: "background", hex: "#fffaf3" },
2236
+ { name: "surface", hex: "#ffffff" },
2237
+ { name: "surfaceAlt", hex: "#f5eadc" },
2238
+ { name: "muted", hex: "#efe2d0" },
2239
+ { name: "text", hex: "#2f241c" },
2240
+ { name: "primaryForeground", hex: "#fffaf3" },
2241
+ { name: "border", hex: "#d8c6b3" }
2242
+ ]
2243
+ });
2244
+ var warmNeutralCream = definePaletteVariant({
2245
+ id: "warm-neutral-cream",
2246
+ name: "Warm Neutral \u2014 Cream",
2247
+ description: "Soft sand primary with pale cream surfaces.",
2248
+ tags: { tone: "minimal", energy: "calm", era: "organic" },
2249
+ mode: "light",
2250
+ colors: [
2251
+ { name: "primary", hex: "#b08864" },
2252
+ { name: "secondary", hex: "#9a8c7e" },
2253
+ { name: "accent", hex: "#c2956a" },
2254
+ { name: "success", hex: "#7d8a5f" },
2255
+ { name: "warning", hex: "#c89a4d" },
2256
+ { name: "destructive", hex: "#a3503e" },
2257
+ { name: "background", hex: "#fdf8ee" },
2258
+ { name: "surface", hex: "#ffffff" },
2259
+ { name: "surfaceAlt", hex: "#f4ebd9" },
2260
+ { name: "muted", hex: "#ede3cf" },
2261
+ { name: "text", hex: "#3b2f24" },
2262
+ { name: "primaryForeground", hex: "#fdf8ee" },
2263
+ { name: "border", hex: "#e0d2b8" }
2264
+ ]
2265
+ });
2266
+ var warmNeutralForest = definePaletteVariant({
2267
+ id: "warm-neutral-forest",
2268
+ name: "Warm Neutral \u2014 Forest",
2269
+ description: "Deep forest green primary with earthy neutrals.",
2270
+ tags: { tone: "classic", energy: "calm", era: "organic" },
2271
+ mode: "light",
2272
+ colors: [
2273
+ { name: "primary", hex: "#3d5840" },
2274
+ { name: "secondary", hex: "#7a6f5d" },
2275
+ { name: "accent", hex: "#b06b50" },
2276
+ { name: "success", hex: "#5a7a5d" },
2277
+ { name: "warning", hex: "#b7791f" },
2278
+ { name: "destructive", hex: "#b91c1c" },
2279
+ { name: "background", hex: "#fbf8f0" },
2280
+ { name: "surface", hex: "#ffffff" },
2281
+ { name: "surfaceAlt", hex: "#f2ecdb" },
2282
+ { name: "muted", hex: "#ebe3cc" },
2283
+ { name: "text", hex: "#2a2a2a" },
2284
+ { name: "primaryForeground", hex: "#fbf8f0" },
2285
+ { name: "border", hex: "#cdc1a4" }
2286
+ ]
2287
+ });
2288
+
2289
+ // ../theme-core/src/palette/variants/index.ts
2290
+ var paletteVariants = [
2291
+ // Brand-led family
2292
+ brandLedCool,
2293
+ brandLedWarm,
2294
+ brandLedJewel,
2295
+ // Warm-neutral family
2296
+ warmNeutralClay,
2297
+ warmNeutralCream,
2298
+ warmNeutralForest,
2299
+ // High-contrast family
2300
+ highContrastInk,
2301
+ highContrastCharcoal,
2302
+ highContrastMonochrome,
2303
+ // Soft-natural family
2304
+ softNaturalSage,
2305
+ softNaturalStone,
2306
+ softNaturalWatercolor
2307
+ ];
2308
+ var paletteVariantsById = new Map(
2309
+ paletteVariants.map((v) => [v.id, v])
2310
+ );
2311
+
1358
2312
  // ../theme-core/src/tokens/blockColorTokens.ts
1359
2313
  var blockColorTokenNames = [
1360
2314
  "text",
@@ -2052,6 +3006,44 @@ function escapeStyleContent(css) {
2052
3006
  // ../theme-core/src/responsiveMode.ts
2053
3007
  var DEFAULT_THEME_RESPONSIVE_MODE = "viewport";
2054
3008
  var THEME_RESPONSIVE_CONTAINER_NAME = "rb-site";
3009
+ var THEME_RESPONSIVE_MODE_ATTR = "data-rb-responsive-mode";
3010
+ function getResponsiveScopeSpec(mode = DEFAULT_THEME_RESPONSIVE_MODE) {
3011
+ if (mode === "container") {
3012
+ return {
3013
+ kind: "container",
3014
+ selector: `[${THEME_RESPONSIVE_MODE_ATTR}="container"]`,
3015
+ containerName: THEME_RESPONSIVE_CONTAINER_NAME
3016
+ };
3017
+ }
3018
+ return {
3019
+ kind: "viewport",
3020
+ selector: `[${THEME_RESPONSIVE_MODE_ATTR}="viewport"]`
3021
+ };
3022
+ }
3023
+ function escapeRegExp(value) {
3024
+ return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
3025
+ }
3026
+ var RESPONSIVE_SCOPE_RULE_PATTERN = new RegExp(
3027
+ buildResponsiveScopeRulePatternSource(),
3028
+ "g"
3029
+ );
3030
+ var RESPONSIVE_SCOPE_RULE_AT_PATTERN = new RegExp(
3031
+ buildResponsiveScopeRulePatternSource(),
3032
+ "y"
3033
+ );
3034
+ function buildResponsiveScopeRulePatternSource() {
3035
+ return [
3036
+ "@scope",
3037
+ "\\(\\[",
3038
+ escapeRegExp(THEME_RESPONSIVE_MODE_ATTR),
3039
+ '="(?:viewport|container)"\\]\\)',
3040
+ "to",
3041
+ "\\((?::scope )?\\[",
3042
+ escapeRegExp(THEME_RESPONSIVE_MODE_ATTR),
3043
+ "\\]\\)",
3044
+ "\\{"
3045
+ ].join("\\s*");
3046
+ }
2055
3047
 
2056
3048
  // ../theme-core/src/mock-themes/components/swatch.tsx
2057
3049
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -3738,45 +4730,53 @@ var containerResponsiveThemeCss = `/*
3738
4730
  flex-basis: 16.666667%;
3739
4731
  }
3740
4732
  @container rb-site (min-width: 768px) {
3741
- .rb-md-basis-full {
3742
- flex-basis: 100%;
3743
- }
3744
- .rb-md-basis-1-2 {
3745
- flex-basis: 50%;
3746
- }
3747
- .rb-md-basis-1-3 {
3748
- flex-basis: 33.333333%;
3749
- }
3750
- .rb-md-basis-1-4 {
3751
- flex-basis: 25%;
3752
- }
3753
- .rb-md-basis-1-5 {
3754
- flex-basis: 20%;
3755
- }
3756
- .rb-md-basis-1-6 {
3757
- flex-basis: 16.666667%;
4733
+
4734
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
4735
+ .rb-md-basis-full {
4736
+ flex-basis: 100%;
4737
+ }
4738
+ .rb-md-basis-1-2 {
4739
+ flex-basis: 50%;
4740
+ }
4741
+ .rb-md-basis-1-3 {
4742
+ flex-basis: 33.333333%;
4743
+ }
4744
+ .rb-md-basis-1-4 {
4745
+ flex-basis: 25%;
4746
+ }
4747
+ .rb-md-basis-1-5 {
4748
+ flex-basis: 20%;
4749
+ }
4750
+ .rb-md-basis-1-6 {
4751
+ flex-basis: 16.666667%;
4752
+ }
3758
4753
  }
3759
- }
4754
+
4755
+ }
3760
4756
  @container rb-site (min-width: 1024px) {
3761
- .rb-lg-basis-full {
3762
- flex-basis: 100%;
3763
- }
3764
- .rb-lg-basis-1-2 {
3765
- flex-basis: 50%;
3766
- }
3767
- .rb-lg-basis-1-3 {
3768
- flex-basis: 33.333333%;
3769
- }
3770
- .rb-lg-basis-1-4 {
3771
- flex-basis: 25%;
3772
- }
3773
- .rb-lg-basis-1-5 {
3774
- flex-basis: 20%;
3775
- }
3776
- .rb-lg-basis-1-6 {
3777
- flex-basis: 16.666667%;
4757
+
4758
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
4759
+ .rb-lg-basis-full {
4760
+ flex-basis: 100%;
4761
+ }
4762
+ .rb-lg-basis-1-2 {
4763
+ flex-basis: 50%;
4764
+ }
4765
+ .rb-lg-basis-1-3 {
4766
+ flex-basis: 33.333333%;
4767
+ }
4768
+ .rb-lg-basis-1-4 {
4769
+ flex-basis: 25%;
4770
+ }
4771
+ .rb-lg-basis-1-5 {
4772
+ flex-basis: 20%;
4773
+ }
4774
+ .rb-lg-basis-1-6 {
4775
+ flex-basis: 16.666667%;
4776
+ }
3778
4777
  }
3779
- }
4778
+
4779
+ }
3780
4780
  .rb-shrink-0 {
3781
4781
  flex-shrink: 0;
3782
4782
  }
@@ -3798,64 +4798,80 @@ var containerResponsiveThemeCss = `/*
3798
4798
  grid-template-columns: repeat(4, minmax(0, 1fr));
3799
4799
  }
3800
4800
  @container rb-site (min-width: 640px) {
3801
- .rb-sm-grid-cols-2 {
3802
- grid-template-columns: repeat(2, minmax(0, 1fr));
3803
- }
3804
- .rb-sm-grid-cols-3 {
3805
- grid-template-columns: repeat(3, minmax(0, 1fr));
3806
- }
3807
- .rb-sm-grid-cols-4 {
3808
- grid-template-columns: repeat(4, minmax(0, 1fr));
4801
+
4802
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
4803
+ .rb-sm-grid-cols-2 {
4804
+ grid-template-columns: repeat(2, minmax(0, 1fr));
4805
+ }
4806
+ .rb-sm-grid-cols-3 {
4807
+ grid-template-columns: repeat(3, minmax(0, 1fr));
4808
+ }
4809
+ .rb-sm-grid-cols-4 {
4810
+ grid-template-columns: repeat(4, minmax(0, 1fr));
4811
+ }
3809
4812
  }
3810
- }
4813
+
4814
+ }
3811
4815
  @container rb-site (min-width: 768px) {
3812
- .rb-md-grid-cols-2 {
3813
- grid-template-columns: repeat(2, minmax(0, 1fr));
3814
- }
3815
- .rb-md-grid-cols-3 {
3816
- grid-template-columns: repeat(3, minmax(0, 1fr));
3817
- }
3818
- .rb-md-grid-cols-4 {
3819
- grid-template-columns: repeat(4, minmax(0, 1fr));
4816
+
4817
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
4818
+ .rb-md-grid-cols-2 {
4819
+ grid-template-columns: repeat(2, minmax(0, 1fr));
4820
+ }
4821
+ .rb-md-grid-cols-3 {
4822
+ grid-template-columns: repeat(3, minmax(0, 1fr));
4823
+ }
4824
+ .rb-md-grid-cols-4 {
4825
+ grid-template-columns: repeat(4, minmax(0, 1fr));
4826
+ }
3820
4827
  }
3821
- }
4828
+
4829
+ }
3822
4830
  @container rb-site (min-width: 1024px) {
3823
- .rb-lg-grid-cols-2 {
3824
- grid-template-columns: repeat(2, minmax(0, 1fr));
3825
- }
3826
- .rb-lg-grid-cols-3 {
3827
- grid-template-columns: repeat(3, minmax(0, 1fr));
3828
- }
3829
- .rb-lg-grid-cols-4 {
3830
- grid-template-columns: repeat(4, minmax(0, 1fr));
3831
- }
3832
- .rb-lg-w-3\\/4 {
3833
- width: 75%;
3834
- }
3835
- .rb-lg-col-span-1 {
3836
- grid-column: span 1 / span 1;
3837
- }
3838
- .rb-lg-col-span-2 {
3839
- grid-column: span 2 / span 2;
3840
- }
3841
- .rb-lg-col-span-3 {
3842
- grid-column: span 3 / span 3;
3843
- }
3844
- .rb-lg-col-span-4 {
3845
- grid-column: span 4 / span 4;
4831
+
4832
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
4833
+ .rb-lg-grid-cols-2 {
4834
+ grid-template-columns: repeat(2, minmax(0, 1fr));
4835
+ }
4836
+ .rb-lg-grid-cols-3 {
4837
+ grid-template-columns: repeat(3, minmax(0, 1fr));
4838
+ }
4839
+ .rb-lg-grid-cols-4 {
4840
+ grid-template-columns: repeat(4, minmax(0, 1fr));
4841
+ }
4842
+ .rb-lg-w-3\\/4 {
4843
+ width: 75%;
4844
+ }
4845
+ .rb-lg-col-span-1 {
4846
+ grid-column: span 1 / span 1;
4847
+ }
4848
+ .rb-lg-col-span-2 {
4849
+ grid-column: span 2 / span 2;
4850
+ }
4851
+ .rb-lg-col-span-3 {
4852
+ grid-column: span 3 / span 3;
4853
+ }
4854
+ .rb-lg-col-span-4 {
4855
+ grid-column: span 4 / span 4;
4856
+ }
3846
4857
  }
3847
- }
4858
+
4859
+ }
3848
4860
  @container rb-site (min-width: 1280px) {
3849
- .rb-xl-grid-cols-2 {
3850
- grid-template-columns: repeat(2, minmax(0, 1fr));
3851
- }
3852
- .rb-xl-grid-cols-3 {
3853
- grid-template-columns: repeat(3, minmax(0, 1fr));
3854
- }
3855
- .rb-xl-grid-cols-4 {
3856
- grid-template-columns: repeat(4, minmax(0, 1fr));
4861
+
4862
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
4863
+ .rb-xl-grid-cols-2 {
4864
+ grid-template-columns: repeat(2, minmax(0, 1fr));
4865
+ }
4866
+ .rb-xl-grid-cols-3 {
4867
+ grid-template-columns: repeat(3, minmax(0, 1fr));
4868
+ }
4869
+ .rb-xl-grid-cols-4 {
4870
+ grid-template-columns: repeat(4, minmax(0, 1fr));
4871
+ }
3857
4872
  }
3858
- }
4873
+
4874
+ }
3859
4875
 
3860
4876
  /* Alignment */
3861
4877
  .rb-items-start {
@@ -3924,13 +4940,17 @@ var containerResponsiveThemeCss = `/*
3924
4940
  row-gap: 0.75rem;
3925
4941
  }
3926
4942
  @container rb-site (min-width: 768px) {
3927
- .rb-md-gap-0 {
3928
- gap: 0;
3929
- }
3930
- .rb-md-gap-10 {
3931
- gap: 2.5rem;
4943
+
4944
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
4945
+ .rb-md-gap-0 {
4946
+ gap: 0;
4947
+ }
4948
+ .rb-md-gap-10 {
4949
+ gap: 2.5rem;
4950
+ }
3932
4951
  }
3933
- }
4952
+
4953
+ }
3934
4954
 
3935
4955
  .rb-space-y-1 > :not([hidden]) ~ :not([hidden]) {
3936
4956
  margin-top: 0.25rem;
@@ -4032,137 +5052,149 @@ var containerResponsiveThemeCss = `/*
4032
5052
  }
4033
5053
 
4034
5054
  @container rb-site (min-width: 640px) {
4035
- .rb-sm-py-16 {
4036
- padding-top: 4rem;
4037
- padding-bottom: 4rem;
4038
- }
4039
- .rb-sm-py-20 {
4040
- padding-top: 5rem;
4041
- padding-bottom: 5rem;
4042
- }
4043
- .rb-sm-p-6 {
4044
- padding: 1.5rem;
4045
- }
4046
- .rb-sm-flex {
4047
- display: flex;
4048
- }
4049
- .rb-sm-block {
4050
- display: block;
4051
- }
4052
- .rb-sm-inline {
4053
- display: inline;
4054
- }
4055
- .rb-sm-inline-block {
4056
- display: inline-block;
4057
- }
4058
- .rb-sm-inline-flex {
4059
- display: inline-flex;
4060
- }
4061
- .rb-sm-grid {
4062
- display: grid;
4063
- }
4064
- .rb-sm-hidden {
4065
- display: none;
4066
- }
4067
- .rb-sm-flex-row {
4068
- flex-direction: row;
4069
- }
4070
- .rb-sm-items-start {
4071
- align-items: flex-start;
4072
- }
4073
- .rb-sm-items-center {
4074
- align-items: center;
4075
- }
4076
- .rb-sm-justify-between {
4077
- justify-content: space-between;
4078
- }
4079
- .rb-sm-p-8 {
4080
- padding: 2rem;
4081
- }
4082
- .rb-sm-text-lg {
4083
- font-size: 1.125rem;
4084
- line-height: 1.75rem;
4085
- }
4086
- .rb-sm-text-xl {
4087
- font-size: 1.25rem;
4088
- line-height: 1.75rem;
4089
- }
4090
- .rb-sm-text-4xl {
4091
- font-size: 2.25rem;
4092
- line-height: 2.5rem;
4093
- }
4094
5055
 
4095
- .rb-sm-w-auto {
4096
- width: auto;
5056
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
5057
+ .rb-sm-py-16 {
5058
+ padding-top: 4rem;
5059
+ padding-bottom: 4rem;
5060
+ }
5061
+ .rb-sm-py-20 {
5062
+ padding-top: 5rem;
5063
+ padding-bottom: 5rem;
5064
+ }
5065
+ .rb-sm-p-6 {
5066
+ padding: 1.5rem;
5067
+ }
5068
+ .rb-sm-flex {
5069
+ display: flex;
5070
+ }
5071
+ .rb-sm-block {
5072
+ display: block;
5073
+ }
5074
+ .rb-sm-inline {
5075
+ display: inline;
5076
+ }
5077
+ .rb-sm-inline-block {
5078
+ display: inline-block;
5079
+ }
5080
+ .rb-sm-inline-flex {
5081
+ display: inline-flex;
5082
+ }
5083
+ .rb-sm-grid {
5084
+ display: grid;
5085
+ }
5086
+ .rb-sm-hidden {
5087
+ display: none;
5088
+ }
5089
+ .rb-sm-flex-row {
5090
+ flex-direction: row;
5091
+ }
5092
+ .rb-sm-items-start {
5093
+ align-items: flex-start;
5094
+ }
5095
+ .rb-sm-items-center {
5096
+ align-items: center;
5097
+ }
5098
+ .rb-sm-justify-between {
5099
+ justify-content: space-between;
5100
+ }
5101
+ .rb-sm-p-8 {
5102
+ padding: 2rem;
5103
+ }
5104
+ .rb-sm-text-lg {
5105
+ font-size: 1.125rem;
5106
+ line-height: 1.75rem;
5107
+ }
5108
+ .rb-sm-text-xl {
5109
+ font-size: 1.25rem;
5110
+ line-height: 1.75rem;
5111
+ }
5112
+ .rb-sm-text-4xl {
5113
+ font-size: 2.25rem;
5114
+ line-height: 2.5rem;
5115
+ }
5116
+
5117
+ .rb-sm-w-auto {
5118
+ width: auto;
5119
+ }
4097
5120
  }
4098
- }
5121
+
5122
+ }
4099
5123
  @container rb-site (min-width: 768px) {
4100
- .rb-md-py-20 {
4101
- padding-top: 5rem;
4102
- padding-bottom: 5rem;
4103
- }
4104
- .rb-md-py-24 {
4105
- padding-top: 6rem;
4106
- padding-bottom: 6rem;
4107
- }
4108
- .rb-md-w-1\\/3 {
4109
- width: 33.333333%;
4110
- }
4111
5124
 
4112
- .rb-md-flex {
4113
- display: flex;
4114
- }
4115
- .rb-md-block {
4116
- display: block;
4117
- }
4118
- .rb-md-inline {
4119
- display: inline;
4120
- }
4121
- .rb-md-inline-block {
4122
- display: inline-block;
4123
- }
4124
- .rb-md-inline-flex {
4125
- display: inline-flex;
4126
- }
4127
- .rb-md-grid {
4128
- display: grid;
4129
- }
4130
- .rb-md-hidden {
4131
- display: none;
4132
- }
4133
- .rb-md-flex-row {
4134
- flex-direction: row;
4135
- }
4136
- .rb-md-flex-row-reverse {
4137
- flex-direction: row-reverse;
4138
- }
4139
- .rb-md-items-start {
4140
- align-items: flex-start;
5125
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
5126
+ .rb-md-py-20 {
5127
+ padding-top: 5rem;
5128
+ padding-bottom: 5rem;
5129
+ }
5130
+ .rb-md-py-24 {
5131
+ padding-top: 6rem;
5132
+ padding-bottom: 6rem;
5133
+ }
5134
+ .rb-md-w-1\\/3 {
5135
+ width: 33.333333%;
5136
+ }
5137
+
5138
+ .rb-md-flex {
5139
+ display: flex;
5140
+ }
5141
+ .rb-md-block {
5142
+ display: block;
5143
+ }
5144
+ .rb-md-inline {
5145
+ display: inline;
5146
+ }
5147
+ .rb-md-inline-block {
5148
+ display: inline-block;
5149
+ }
5150
+ .rb-md-inline-flex {
5151
+ display: inline-flex;
5152
+ }
5153
+ .rb-md-grid {
5154
+ display: grid;
5155
+ }
5156
+ .rb-md-hidden {
5157
+ display: none;
5158
+ }
5159
+ .rb-md-flex-row {
5160
+ flex-direction: row;
5161
+ }
5162
+ .rb-md-flex-row-reverse {
5163
+ flex-direction: row-reverse;
5164
+ }
5165
+ .rb-md-items-start {
5166
+ align-items: flex-start;
5167
+ }
4141
5168
  }
4142
- }
5169
+
5170
+ }
4143
5171
  @container rb-site (min-width: 1024px) {
4144
- .rb-lg-flex {
4145
- display: flex;
4146
- }
4147
- .rb-lg-block {
4148
- display: block;
4149
- }
4150
- .rb-lg-inline {
4151
- display: inline;
4152
- }
4153
- .rb-lg-inline-block {
4154
- display: inline-block;
4155
- }
4156
- .rb-lg-inline-flex {
4157
- display: inline-flex;
4158
- }
4159
- .rb-lg-grid {
4160
- display: grid;
4161
- }
4162
- .rb-lg-hidden {
4163
- display: none;
5172
+
5173
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
5174
+ .rb-lg-flex {
5175
+ display: flex;
5176
+ }
5177
+ .rb-lg-block {
5178
+ display: block;
5179
+ }
5180
+ .rb-lg-inline {
5181
+ display: inline;
5182
+ }
5183
+ .rb-lg-inline-block {
5184
+ display: inline-block;
5185
+ }
5186
+ .rb-lg-inline-flex {
5187
+ display: inline-flex;
5188
+ }
5189
+ .rb-lg-grid {
5190
+ display: grid;
5191
+ }
5192
+ .rb-lg-hidden {
5193
+ display: none;
5194
+ }
4164
5195
  }
4165
- }
5196
+
5197
+ }
4166
5198
 
4167
5199
  /* Margin */
4168
5200
  .rb-m-0 {
@@ -4419,8 +5451,9 @@ var containerResponsiveThemeCss = `/*
4419
5451
  font-weight: 700;
4420
5452
  }
4421
5453
  .rb-font-mono {
4422
- font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas,
4423
- "Liberation Mono", "Courier New", monospace;
5454
+ font-family:
5455
+ ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
5456
+ "Courier New", monospace;
4424
5457
  }
4425
5458
  .rb-leading-relaxed {
4426
5459
  line-height: 1.625;
@@ -4638,39 +5671,44 @@ var containerResponsiveThemeCss = `/*
4638
5671
  }
4639
5672
 
4640
5673
  @container rb-site (max-width: 639px) {
4641
- .rb-image-gallery-marquee {
4642
- overflow-x: auto;
4643
- overflow-y: hidden;
4644
- -webkit-overflow-scrolling: touch;
4645
- touch-action: pan-x;
4646
- scrollbar-width: none;
4647
- }
4648
5674
 
4649
- .rb-image-gallery-marquee::-webkit-scrollbar {
4650
- display: none;
4651
- }
5675
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
5676
+ .rb-image-gallery-marquee {
5677
+ overflow-x: auto;
5678
+ overflow-y: hidden;
5679
+ -webkit-overflow-scrolling: touch;
5680
+ touch-action: pan-x;
5681
+ scrollbar-width: none;
5682
+ }
4652
5683
 
4653
- /* Let users swipe smoothly without fighting autoplay while interacting. */
4654
- .rb-image-gallery-marquee:active .rb-animate-marquee,
4655
- .rb-image-gallery-marquee:focus-within .rb-animate-marquee {
4656
- animation-play-state: paused;
4657
- }
5684
+ .rb-image-gallery-marquee::-webkit-scrollbar {
5685
+ display: none;
5686
+ }
4658
5687
 
4659
- .rb-container-full.rb-image-gallery-marquee-container {
4660
- padding-left: 0;
4661
- padding-right: 0;
4662
- }
5688
+ /* Let users swipe smoothly without fighting autoplay while interacting. */
5689
+ .rb-image-gallery-marquee:active .rb-animate-marquee,
5690
+ .rb-image-gallery-marquee:focus-within .rb-animate-marquee {
5691
+ animation-play-state: paused;
5692
+ }
4663
5693
 
4664
- /* Marquee variant: keep images in color on mobile for legibility. */
4665
- .rb-image-gallery-marquee-container .rb-filter-grayscale,
4666
- .rb-image-gallery-marquee-container .rb-filter-grayscale-hover-reveal {
4667
- filter: none;
4668
- }
5694
+ .rb-container-full.rb-image-gallery-marquee-container {
5695
+ padding-left: 0;
5696
+ padding-right: 0;
5697
+ }
5698
+
5699
+ /* Marquee variant: keep images in color on mobile for legibility. */
5700
+ .rb-image-gallery-marquee-container .rb-filter-grayscale,
5701
+ .rb-image-gallery-marquee-container .rb-filter-grayscale-hover-reveal {
5702
+ filter: none;
5703
+ }
4669
5704
 
4670
- .rb-image-gallery-marquee-container .rb-filter-grayscale-hover-reveal:hover {
4671
- filter: none;
5705
+ .rb-image-gallery-marquee-container
5706
+ .rb-filter-grayscale-hover-reveal:hover {
5707
+ filter: none;
5708
+ }
4672
5709
  }
4673
- }
5710
+
5711
+ }
4674
5712
 
4675
5713
  @media (prefers-reduced-motion: reduce) {
4676
5714
  .rb-animate-marquee {
@@ -4775,12 +5813,16 @@ var containerResponsiveThemeCss = `/*
4775
5813
  }
4776
5814
 
4777
5815
  @container rb-site (min-width: 640px) {
4778
- .rb-container,
4779
- .rb-container-full {
4780
- padding-left: 1.5rem;
4781
- padding-right: 1.5rem;
5816
+
5817
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
5818
+ .rb-container,
5819
+ .rb-container-full {
5820
+ padding-left: 1.5rem;
5821
+ padding-right: 1.5rem;
5822
+ }
4782
5823
  }
4783
- }
5824
+
5825
+ }
4784
5826
 
4785
5827
  /* Flex alignment */
4786
5828
  .rb-self-start {
@@ -4814,27 +5856,31 @@ var containerResponsiveThemeCss = `/*
4814
5856
  }
4815
5857
 
4816
5858
  @container rb-site (min-width: 640px) {
4817
- .rb-section-pad-compact {
4818
- padding-top: 2rem;
4819
- padding-bottom: 2rem;
4820
- }
4821
- .rb-section-pad-cozy {
4822
- padding-top: 3.5rem;
4823
- padding-bottom: 3.5rem;
4824
- }
4825
- .rb-section-pad-medium {
4826
- padding-top: 4rem;
4827
- padding-bottom: 4rem;
4828
- }
4829
- .rb-section-pad-comfortable {
4830
- padding-top: 5rem;
4831
- padding-bottom: 5rem;
4832
- }
4833
- .rb-section-pad-spacious {
4834
- padding-top: 7rem;
4835
- padding-bottom: 7rem;
5859
+
5860
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
5861
+ .rb-section-pad-compact {
5862
+ padding-top: 2rem;
5863
+ padding-bottom: 2rem;
5864
+ }
5865
+ .rb-section-pad-cozy {
5866
+ padding-top: 3.5rem;
5867
+ padding-bottom: 3.5rem;
5868
+ }
5869
+ .rb-section-pad-medium {
5870
+ padding-top: 4rem;
5871
+ padding-bottom: 4rem;
5872
+ }
5873
+ .rb-section-pad-comfortable {
5874
+ padding-top: 5rem;
5875
+ padding-bottom: 5rem;
5876
+ }
5877
+ .rb-section-pad-spacious {
5878
+ padding-top: 7rem;
5879
+ padding-bottom: 7rem;
5880
+ }
4836
5881
  }
4837
- }
5882
+
5883
+ }
4838
5884
 
4839
5885
  .rb-container-pad-none {
4840
5886
  padding: 0;
@@ -4856,22 +5902,26 @@ var containerResponsiveThemeCss = `/*
4856
5902
  }
4857
5903
 
4858
5904
  @container rb-site (min-width: 640px) {
4859
- .rb-container-pad-compact {
4860
- padding: 1.5rem;
4861
- }
4862
- .rb-container-pad-cozy {
4863
- padding: 2rem;
4864
- }
4865
- .rb-container-pad-medium {
4866
- padding: 2rem;
4867
- }
4868
- .rb-container-pad-comfortable {
4869
- padding: 2.5rem;
4870
- }
4871
- .rb-container-pad-spacious {
4872
- padding: 3.5rem;
5905
+
5906
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
5907
+ .rb-container-pad-compact {
5908
+ padding: 1.5rem;
5909
+ }
5910
+ .rb-container-pad-cozy {
5911
+ padding: 2rem;
5912
+ }
5913
+ .rb-container-pad-medium {
5914
+ padding: 2rem;
5915
+ }
5916
+ .rb-container-pad-comfortable {
5917
+ padding: 2.5rem;
5918
+ }
5919
+ .rb-container-pad-spacious {
5920
+ padding: 3.5rem;
5921
+ }
4873
5922
  }
4874
- }
5923
+
5924
+ }
4875
5925
 
4876
5926
  /* Semantic gap tokens (theme-aware via --space-mult) */
4877
5927
  .rb-gap-semantic-none {
@@ -4900,27 +5950,31 @@ var containerResponsiveThemeCss = `/*
4900
5950
  }
4901
5951
 
4902
5952
  @container rb-site (min-width: 768px) {
4903
- .rb-gap-semantic-compact {
4904
- --rb-semantic-gap: calc(1.25rem * var(--space-mult, 1));
4905
- gap: calc(1.25rem * var(--space-mult, 1));
4906
- }
4907
- .rb-gap-semantic-cozy {
4908
- --rb-semantic-gap: calc(2.25rem * var(--space-mult, 1));
4909
- gap: calc(2.25rem * var(--space-mult, 1));
4910
- }
4911
- .rb-gap-semantic-medium {
4912
- --rb-semantic-gap: calc(3.5rem * var(--space-mult, 1));
4913
- gap: calc(3.5rem * var(--space-mult, 1));
4914
- }
4915
- .rb-gap-semantic-comfortable {
4916
- --rb-semantic-gap: calc(5.75rem * var(--space-mult, 1));
4917
- gap: calc(5.75rem * var(--space-mult, 1));
4918
- }
4919
- .rb-gap-semantic-spacious {
4920
- --rb-semantic-gap: calc(8.75rem * var(--space-mult, 1));
4921
- gap: calc(8.75rem * var(--space-mult, 1));
5953
+
5954
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
5955
+ .rb-gap-semantic-compact {
5956
+ --rb-semantic-gap: calc(1.25rem * var(--space-mult, 1));
5957
+ gap: calc(1.25rem * var(--space-mult, 1));
5958
+ }
5959
+ .rb-gap-semantic-cozy {
5960
+ --rb-semantic-gap: calc(2.25rem * var(--space-mult, 1));
5961
+ gap: calc(2.25rem * var(--space-mult, 1));
5962
+ }
5963
+ .rb-gap-semantic-medium {
5964
+ --rb-semantic-gap: calc(3.5rem * var(--space-mult, 1));
5965
+ gap: calc(3.5rem * var(--space-mult, 1));
5966
+ }
5967
+ .rb-gap-semantic-comfortable {
5968
+ --rb-semantic-gap: calc(5.75rem * var(--space-mult, 1));
5969
+ gap: calc(5.75rem * var(--space-mult, 1));
5970
+ }
5971
+ .rb-gap-semantic-spacious {
5972
+ --rb-semantic-gap: calc(8.75rem * var(--space-mult, 1));
5973
+ gap: calc(8.75rem * var(--space-mult, 1));
5974
+ }
4922
5975
  }
4923
- }
5976
+
5977
+ }
4924
5978
 
4925
5979
  /* Backdrop blur helpers */
4926
5980
  .rb-backdrop-blur {
@@ -5274,11 +6328,13 @@ var containerResponsiveThemeCss = `/*
5274
6328
  line-height: var(--rb-prose-lg-line-height);
5275
6329
  }
5276
6330
  @container rb-site (min-width: 640px) {
5277
- :where(.theme-scope) .rb-prose-xl-sm {
6331
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
6332
+ :where(.theme-scope) .rb-prose-xl-sm {
5278
6333
  font-size: var(--rb-prose-xl-sm-font-size);
5279
6334
  line-height: var(--rb-prose-xl-sm-line-height);
5280
6335
  }
5281
6336
  }
6337
+ }
5282
6338
 
5283
6339
  /* Neutral prose uses theme text color by default */
5284
6340
  :where(.theme-scope) .rb-prose-neutral {
@@ -5362,22 +6418,28 @@ var containerResponsiveThemeCss = `/*
5362
6418
  }
5363
6419
 
5364
6420
  @container rb-site (min-width: 768px) {
5365
- :where(.theme-scope) .rb-columns-equal-height {
6421
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
6422
+ :where(.theme-scope) .rb-columns-equal-height {
5366
6423
  --rb-columns-cols: var(--rb-columns-cols-md, var(--rb-columns-cols));
5367
6424
  }
5368
6425
  }
6426
+ }
5369
6427
 
5370
6428
  @container rb-site (min-width: 1024px) {
5371
- :where(.theme-scope) .rb-columns-equal-height {
6429
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
6430
+ :where(.theme-scope) .rb-columns-equal-height {
5372
6431
  --rb-columns-cols: var(--rb-columns-cols-lg, var(--rb-columns-cols));
5373
6432
  }
5374
6433
  }
6434
+ }
5375
6435
 
5376
6436
  @container rb-site (min-width: 1280px) {
5377
- :where(.theme-scope) .rb-columns-equal-height {
6437
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
6438
+ :where(.theme-scope) .rb-columns-equal-height {
5378
6439
  --rb-columns-cols: var(--rb-columns-cols-xl, var(--rb-columns-cols));
5379
6440
  }
5380
6441
  }
6442
+ }
5381
6443
 
5382
6444
  :where(.theme-scope) .rb-columns-equal-height > * {
5383
6445
  height: var(--rb-columns-tile-h);
@@ -5999,7 +7061,8 @@ var containerResponsiveThemeCss = `/*
5999
7061
 
6000
7062
  /* Mobile: reduce site title size (~30%) to keep header compact */
6001
7063
  @container rb-site (max-width: 767px) {
6002
- :where(.theme-scope) .header-logo-text {
7064
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
7065
+ :where(.theme-scope) .header-logo-text {
6003
7066
  font-size: 0.8rem;
6004
7067
  line-height: 1.25rem;
6005
7068
  }
@@ -6010,6 +7073,7 @@ var containerResponsiveThemeCss = `/*
6010
7073
  line-height: 1.25rem;
6011
7074
  }
6012
7075
  }
7076
+ }
6013
7077
 
6014
7078
  /* Centered/editorial variants use larger title */
6015
7079
  :where(.theme-scope) .header-variant-centered .header-logo-text,
@@ -6033,10 +7097,12 @@ var containerResponsiveThemeCss = `/*
6033
7097
  }
6034
7098
 
6035
7099
  @container rb-site (max-width: 767px) {
6036
- :where(.theme-scope) .rb-header-shrink.header-scrolled .header-logo-text {
7100
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
7101
+ :where(.theme-scope) .rb-header-shrink.header-scrolled .header-logo-text {
6037
7102
  font-size: 0.75rem;
6038
7103
  }
6039
7104
  }
7105
+ }
6040
7106
 
6041
7107
  /* =================================================================
6042
7108
  Accessibility: Reduced Motion
@@ -6480,10 +7546,12 @@ var containerResponsiveThemeCss = `/*
6480
7546
  }
6481
7547
 
6482
7548
  @container rb-site (min-width: 768px) {
6483
- :where(.theme-scope) :where([data-block="event-registration"]) .er-event-grid {
7549
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
7550
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-event-grid {
6484
7551
  grid-template-columns: repeat(2, minmax(0, 1fr));
6485
7552
  }
6486
7553
  }
7554
+ }
6487
7555
 
6488
7556
  :where(.theme-scope) :where([data-block="event-registration"]) .er-row {
6489
7557
  display: flex;
@@ -6716,12 +7784,14 @@ var containerResponsiveThemeCss = `/*
6716
7784
  }
6717
7785
 
6718
7786
  @container rb-site (min-width: 768px) {
6719
- :where(.theme-scope) :where([data-block="event-registration"]) .er-layout {
7787
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
7788
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-layout {
6720
7789
  /* Desktop: main + sidebar */
6721
7790
  grid-template-columns: 1fr 300px;
6722
7791
  grid-template-areas: "main summary";
6723
7792
  }
6724
7793
  }
7794
+ }
6725
7795
 
6726
7796
  :where(.theme-scope) :where([data-block="event-registration"]) .er-layout-main {
6727
7797
  grid-area: main;
@@ -6803,10 +7873,12 @@ var containerResponsiveThemeCss = `/*
6803
7873
  }
6804
7874
 
6805
7875
  @container rb-site (min-width: 640px) {
6806
- :where(.theme-scope) :where([data-block="event-registration"]) .er-step-label {
7876
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
7877
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-step-label {
6807
7878
  display: inline;
6808
7879
  }
6809
7880
  }
7881
+ }
6810
7882
 
6811
7883
  /* Sticky order summary */
6812
7884
  :where(.theme-scope) :where([data-block="event-registration"]) .er-summary {
@@ -6823,11 +7895,13 @@ var containerResponsiveThemeCss = `/*
6823
7895
  }
6824
7896
 
6825
7897
  @container rb-site (min-width: 768px) {
6826
- :where(.theme-scope) :where([data-block="event-registration"]) .er-summary {
7898
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
7899
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-summary {
6827
7900
  position: sticky;
6828
7901
  top: 1rem;
6829
7902
  }
6830
7903
  }
7904
+ }
6831
7905
 
6832
7906
  :where(.theme-scope) :where([data-block="event-registration"]) .er-summary-event {
6833
7907
  font-weight: 600;
@@ -6897,12 +7971,14 @@ var containerResponsiveThemeCss = `/*
6897
7971
  }
6898
7972
 
6899
7973
  @container rb-site (min-width: 768px) {
6900
- :where(.theme-scope) :where([data-block="event-registration"]) .er-guest-card {
7974
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
7975
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-guest-card {
6901
7976
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
6902
7977
  column-gap: 1rem;
6903
7978
  align-items: start;
6904
7979
  }
6905
7980
  }
7981
+ }
6906
7982
 
6907
7983
  /* Shake animation for validation errors */
6908
7984
  @keyframes er-shake {
@@ -7047,7 +8123,8 @@ var containerResponsiveThemeCss = `/*
7047
8123
  * ============================================================================= */
7048
8124
 
7049
8125
  @container rb-site (min-width: 768px) {
7050
- :where(.theme-scope)
8126
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
8127
+ :where(.theme-scope)
7051
8128
  :where([data-block="event-listing"], [data-block="event-spotlight"], [data-block="event-calendar"], [data-block="event-combined"])
7052
8129
  .event-card[data-orientation="horizontal"] {
7053
8130
  display: flex;
@@ -7098,6 +8175,7 @@ var containerResponsiveThemeCss = `/*
7098
8175
  text-align: right;
7099
8176
  }
7100
8177
  }
8178
+ }
7101
8179
 
7102
8180
  /* Keep token list in sync with \`EVENT_CATEGORY_BADGE_TOKENS\` in \`packages/blocks/src/system/constants/events.ts\`. */
7103
8181
  :where(.theme-scope)
@@ -7177,7 +8255,8 @@ var containerResponsiveThemeCss = `/*
7177
8255
  }
7178
8256
 
7179
8257
  @container rb-site (min-width: 768px) {
7180
- :where(.theme-scope) :where([data-block="event-registration"]) .er-payment-layout {
8258
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
8259
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-payment-layout {
7181
8260
  grid-template-columns: 1fr 260px;
7182
8261
  grid-template-areas:
7183
8262
  "main sidebar"
@@ -7192,6 +8271,7 @@ var containerResponsiveThemeCss = `/*
7192
8271
  "footer";
7193
8272
  }
7194
8273
  }
8274
+ }
7195
8275
 
7196
8276
  :where(.theme-scope) :where([data-block="event-registration"]) .er-payment-layout-main {
7197
8277
  grid-area: main;
@@ -8471,7 +9551,8 @@ var containerResponsiveThemeCss = `/*
8471
9551
  :where(.theme-scope) :where([data-block="event-calendar"]) .event-timetable-event-time,
8472
9552
  :where(.theme-scope) :where([data-block="event-calendar"]) .event-timetable-event-title,
8473
9553
  :where(.theme-scope) :where([data-block="event-calendar"]) .event-timetable-event-teacher,
8474
- :where(.theme-scope) :where([data-block="event-calendar"]) .event-timetable-event-meta {
9554
+ :where(.theme-scope) :where([data-block="event-calendar"]) .event-timetable-event-meta,
9555
+ :where(.theme-scope) :where([data-block="event-calendar"]) .event-timetable-event-capacity {
8475
9556
  display: block;
8476
9557
  min-width: 0;
8477
9558
  overflow: hidden;
@@ -8497,6 +9578,17 @@ var containerResponsiveThemeCss = `/*
8497
9578
  opacity: 0.72;
8498
9579
  }
8499
9580
 
9581
+ :where(.theme-scope) :where([data-block="event-calendar"]) .event-timetable-event-capacity {
9582
+ font-size: 0.6875rem;
9583
+ font-weight: 600;
9584
+ opacity: 0.85;
9585
+ }
9586
+
9587
+ :where(.theme-scope) :where([data-block="event-calendar"]) .event-timetable-event-capacity--full {
9588
+ color: rgb(var(--tb-danger, 220 38 38));
9589
+ opacity: 1;
9590
+ }
9591
+
8500
9592
  :where(.theme-scope) :where([data-block="event-calendar"]) .event-timetable-day-empty {
8501
9593
  margin: 0;
8502
9594
  padding: 1rem 0.5rem;
@@ -8513,7 +9605,8 @@ var containerResponsiveThemeCss = `/*
8513
9605
  }
8514
9606
 
8515
9607
  @container rb-site (max-width: 767px) {
8516
- :where(.theme-scope) :where([data-block="event-calendar"]) .event-timetable-day-selector {
9608
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
9609
+ :where(.theme-scope) :where([data-block="event-calendar"]) .event-timetable-day-selector {
8517
9610
  display: flex;
8518
9611
  }
8519
9612
 
@@ -8543,6 +9636,7 @@ var containerResponsiveThemeCss = `/*
8543
9636
  padding-inline: 0.75rem;
8544
9637
  }
8545
9638
  }
9639
+ }
8546
9640
 
8547
9641
  /* -----------------------------------------------------------------------------
8548
9642
  * Event Calendar Modals
@@ -8681,7 +9775,8 @@ var containerResponsiveThemeCss = `/*
8681
9775
 
8682
9776
  /* Responsive adjustments */
8683
9777
  @container rb-site (max-width: 640px) {
8684
- :where(.theme-scope) :where([data-block="event-calendar"]) .event-calendar-container {
9778
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
9779
+ :where(.theme-scope) :where([data-block="event-calendar"]) .event-calendar-container {
8685
9780
  margin-left: -1.5rem;
8686
9781
  margin-right: -1.5rem;
8687
9782
  border-left: none;
@@ -8742,6 +9837,7 @@ var containerResponsiveThemeCss = `/*
8742
9837
  margin: 0 0.5rem;
8743
9838
  }
8744
9839
  }
9840
+ }
8745
9841
 
8746
9842
  /*
8747
9843
  * Shared: Tab bar (underline style)
@@ -9104,10 +10200,12 @@ var containerResponsiveThemeCss = `/*
9104
10200
  }
9105
10201
 
9106
10202
  @container rb-site (min-width: 768px) {
9107
- :where(.theme-scope) :where([data-block="form"]) .fb-row-2 {
10203
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
10204
+ :where(.theme-scope) :where([data-block="form"]) .fb-row-2 {
9108
10205
  grid-template-columns: 1fr 1fr;
9109
10206
  }
9110
10207
  }
10208
+ }
9111
10209
 
9112
10210
  /* Field wrapper */
9113
10211
  :where(.theme-scope) :where([data-block="form"]) .fb-field {
@@ -9188,10 +10286,12 @@ var containerResponsiveThemeCss = `/*
9188
10286
  }
9189
10287
 
9190
10288
  @container rb-site (min-width: 640px) {
9191
- :where(.theme-scope) :where([data-block="hero"]) .hero-subheadline {
10289
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
10290
+ :where(.theme-scope) :where([data-block="hero"]) .hero-subheadline {
9192
10291
  font-size: 1.25rem;
9193
10292
  }
9194
10293
  }
10294
+ }
9195
10295
 
9196
10296
  /* =============================================================================
9197
10297
  * Shared: Heading Group (used by CTA, single-button, etc.)
@@ -9405,16 +10505,19 @@ var containerResponsiveThemeCss = `/*
9405
10505
  }
9406
10506
 
9407
10507
  @container rb-site (min-width: 768px) {
9408
- :where(.theme-scope) .carousel-root {
10508
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
10509
+ :where(.theme-scope) .carousel-root {
9409
10510
  --rb-carousel-slides-to-show: var(
9410
10511
  --rb-carousel-slides-to-show-tablet,
9411
10512
  var(--rb-carousel-slides-to-show-mobile, 1)
9412
10513
  );
9413
10514
  }
9414
10515
  }
10516
+ }
9415
10517
 
9416
10518
  @container rb-site (min-width: 1024px) {
9417
- :where(.theme-scope) .carousel-root {
10519
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
10520
+ :where(.theme-scope) .carousel-root {
9418
10521
  --rb-carousel-slides-to-show: var(
9419
10522
  --rb-carousel-slides-to-show-desktop,
9420
10523
  var(
@@ -9424,6 +10527,7 @@ var containerResponsiveThemeCss = `/*
9424
10527
  );
9425
10528
  }
9426
10529
  }
10530
+ }
9427
10531
 
9428
10532
  /* Slides take exact percentage width with internal padding for gaps.
9429
10533
  * Padding is more reliable than margin (no collapsing, consistent on all slides). */
@@ -9697,10 +10801,12 @@ var containerResponsiveThemeCss = `/*
9697
10801
 
9698
10802
  /* Responsive grid */
9699
10803
  @container rb-site (max-width: 768px) {
9700
- :where(.theme-scope) .shop__products--grid {
10804
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
10805
+ :where(.theme-scope) .shop__products--grid {
9701
10806
  grid-template-columns: 1fr;
9702
10807
  }
9703
10808
  }
10809
+ }
9704
10810
 
9705
10811
  :where(.theme-scope) .shop__modal-product {
9706
10812
  font-size: 0.9375rem;
@@ -9802,11 +10908,13 @@ var containerResponsiveThemeCss = `/*
9802
10908
 
9803
10909
  /* Mobile: full-width CTA buttons inside cards */
9804
10910
  @container rb-site (max-width: 640px) {
9805
- :where(.theme-scope) .shop__cta {
10911
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
10912
+ :where(.theme-scope) .shop__cta {
9806
10913
  align-self: stretch;
9807
10914
  width: 100%;
9808
10915
  }
9809
10916
  }
10917
+ }
9810
10918
 
9811
10919
  /* =============================================================================
9812
10920
  * Block: Customer Portal
@@ -10512,7 +11620,8 @@ var containerResponsiveThemeCss = `/*
10512
11620
 
10513
11621
  /* Responsive: show everything without horizontal scrolling */
10514
11622
  @container rb-site (max-width: 640px) {
10515
- :where(.theme-scope) :where([data-block="customer-portal"]) .cp-only-mobile {
11623
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
11624
+ :where(.theme-scope) :where([data-block="customer-portal"]) .cp-only-mobile {
10516
11625
  display: flex;
10517
11626
  }
10518
11627
 
@@ -10552,6 +11661,7 @@ var containerResponsiveThemeCss = `/*
10552
11661
  align-self: stretch;
10553
11662
  }
10554
11663
  }
11664
+ }
10555
11665
 
10556
11666
  /* Placeholder (SSR) */
10557
11667
  :where(.theme-scope) :where([data-block="customer-portal"]) .cp-placeholder {
@@ -10641,7 +11751,8 @@ var containerResponsiveThemeCss = `/*
10641
11751
 
10642
11752
  /* Position arrows outside the carousel content area */
10643
11753
  @container rb-site (max-width: 639px) {
10644
- :where(.theme-scope) :where([data-block="testimonials"]) .rb-testimonials-carousel.carousel-root .carousel-nav-btn--prev {
11754
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
11755
+ :where(.theme-scope) :where([data-block="testimonials"]) .rb-testimonials-carousel.carousel-root .carousel-nav-btn--prev {
10645
11756
  /* Move arrows closer to viewport edge than container edge on mobile. */
10646
11757
  left: calc(0.5rem - 1.5rem);
10647
11758
  }
@@ -10651,10 +11762,12 @@ var containerResponsiveThemeCss = `/*
10651
11762
  right: calc(0.5rem - 1.5rem);
10652
11763
  }
10653
11764
  }
11765
+ }
10654
11766
 
10655
11767
  /* Position arrows further out on larger breakpoints */
10656
11768
  @container rb-site (min-width: 640px) {
10657
- :where(.theme-scope) :where([data-block="testimonials"]) .rb-testimonials-carousel.carousel-root .carousel-nav-btn--prev {
11769
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
11770
+ :where(.theme-scope) :where([data-block="testimonials"]) .rb-testimonials-carousel.carousel-root .carousel-nav-btn--prev {
10658
11771
  left: calc(-1 * (var(--rb-testimonial-carousel-arrow-size) / 2 + var(--rb-testimonial-carousel-arrow-gap)));
10659
11772
  }
10660
11773
 
@@ -10662,6 +11775,7 @@ var containerResponsiveThemeCss = `/*
10662
11775
  right: calc(-1 * (var(--rb-testimonial-carousel-arrow-size) / 2 + var(--rb-testimonial-carousel-arrow-gap)));
10663
11776
  }
10664
11777
  }
11778
+ }
10665
11779
 
10666
11780
  /*
10667
11781
  * Event Details (runtime node)
@@ -10713,10 +11827,12 @@ var containerResponsiveThemeCss = `/*
10713
11827
  }
10714
11828
 
10715
11829
  @container rb-site (min-width: 768px) {
10716
- :where(.theme-scope) .rb-tiles-grid {
11830
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
11831
+ :where(.theme-scope) .rb-tiles-grid {
10717
11832
  grid-template-columns: repeat(var(--rb-tiles-grid-cols-md, var(--rb-tiles-grid-cols-sm, 2)), minmax(0, 1fr));
10718
11833
  }
10719
11834
  }
11835
+ }
10720
11836
 
10721
11837
  :where(.theme-scope) :where(.rb-tile--interactive, .er-event-card) {
10722
11838
  cursor: pointer;
@@ -10821,10 +11937,12 @@ var containerResponsiveThemeCss = `/*
10821
11937
  }
10822
11938
 
10823
11939
  @container rb-site (min-width: 768px) {
10824
- :where(.theme-scope) :where([data-block="course-registration"]) .cr-layout--with-sidebar {
11940
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
11941
+ :where(.theme-scope) :where([data-block="course-registration"]) .cr-layout--with-sidebar {
10825
11942
  grid-template-columns: 1fr 280px;
10826
11943
  }
10827
11944
  }
11945
+ }
10828
11946
 
10829
11947
  :where(.theme-scope) :where([data-block="course-registration"]) .cr-layout__main {
10830
11948
  min-width: 0;
@@ -10835,10 +11953,12 @@ var containerResponsiveThemeCss = `/*
10835
11953
  }
10836
11954
 
10837
11955
  @container rb-site (min-width: 768px) {
10838
- :where(.theme-scope) :where([data-block="course-registration"]) .cr-layout__sidebar {
11956
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
11957
+ :where(.theme-scope) :where([data-block="course-registration"]) .cr-layout__sidebar {
10839
11958
  display: block;
10840
11959
  }
10841
11960
  }
11961
+ }
10842
11962
 
10843
11963
  /* =============================================================================
10844
11964
  * Step Indicator
@@ -10889,10 +12009,12 @@ var containerResponsiveThemeCss = `/*
10889
12009
  }
10890
12010
 
10891
12011
  @container rb-site (min-width: 640px) {
10892
- :where(.theme-scope) :where([data-block="course-registration"]) .cr-step-label {
12012
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
12013
+ :where(.theme-scope) :where([data-block="course-registration"]) .cr-step-label {
10893
12014
  display: block;
10894
12015
  }
10895
12016
  }
12017
+ }
10896
12018
 
10897
12019
  :where(.theme-scope) :where([data-block="course-registration"]) .cr-step-label--active {
10898
12020
  color: var(--cr-on-surface);
@@ -11775,7 +12897,8 @@ var containerResponsiveThemeCss = `/*
11775
12897
 
11776
12898
  /* Mobile fallback for inline variant */
11777
12899
  @container rb-site (max-width: 640px) {
11778
- :where(.theme-scope) .newsletter-inline .newsletter-form-fields {
12900
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
12901
+ :where(.theme-scope) .newsletter-inline .newsletter-form-fields {
11779
12902
  flex-direction: column;
11780
12903
  }
11781
12904
 
@@ -11783,6 +12906,7 @@ var containerResponsiveThemeCss = `/*
11783
12906
  min-width: 100%;
11784
12907
  }
11785
12908
  }
12909
+ }
11786
12910
 
11787
12911
  /* =============================================================================
11788
12912
  * Success State
@@ -11820,12 +12944,14 @@ var containerResponsiveThemeCss = `/*
11820
12944
  }
11821
12945
 
11822
12946
  @container rb-site (min-width: 1024px) {
11823
- :where(.theme-scope) :where([data-block="team-members"]) :where(.rb-team-members[data-layout-width="lg-3-4-left"]) {
12947
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
12948
+ :where(.theme-scope) :where([data-block="team-members"]) :where(.rb-team-members[data-layout-width="lg-3-4-left"]) {
11824
12949
  width: 75%;
11825
12950
  margin-left: 0;
11826
12951
  margin-right: auto;
11827
12952
  }
11828
12953
  }
12954
+ }
11829
12955
 
11830
12956
  :where(.theme-scope) :where([data-block="team-members"]) .rb-team-member-photo {
11831
12957
  display: block;
@@ -11900,7 +13026,8 @@ var containerResponsiveThemeCss = `/*
11900
13026
  }
11901
13027
 
11902
13028
  @container rb-site (min-width: 768px) {
11903
- /* Stack variant: enforce real column ratio at md+ (fixes transform/fallback pitfalls). */
13029
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
13030
+ /* Stack variant: enforce real column ratio at md+ (fixes transform/fallback pitfalls). */
11904
13031
  :where(.theme-scope) :where([data-block="team-members"][data-block-variant="stack"]) :where(.rb-team-member-photo-col) {
11905
13032
  flex: 0 0 var(--rb-team-image-basis);
11906
13033
  }
@@ -11924,6 +13051,7 @@ var containerResponsiveThemeCss = `/*
11924
13051
  flex-direction: row-reverse;
11925
13052
  }
11926
13053
  }
13054
+ }
11927
13055
 
11928
13056
  /* Thumbnail padding (space around image inside the item) */
11929
13057
  :where(.theme-scope) :where([data-block="team-members"]) .rb-team-members[data-thumb-pad="sm"] .rb-team-member-photo-wrap {
@@ -12126,18 +13254,19 @@ function ThemeScopeCore({
12126
13254
  children,
12127
13255
  className
12128
13256
  }) {
12129
- const isContainerResponsive = responsiveMode === "container";
13257
+ const responsiveScope = getResponsiveScopeSpec(responsiveMode);
13258
+ const isContainerResponsive = responsiveScope.kind === "container";
12130
13259
  const wrapperStyle = isContainerResponsive ? {
12131
13260
  ...cssVars,
12132
13261
  containerType: "inline-size",
12133
- containerName: THEME_RESPONSIVE_CONTAINER_NAME
13262
+ containerName: responsiveScope.containerName
12134
13263
  } : cssVars;
12135
13264
  return /* @__PURE__ */ jsxs3(
12136
13265
  "div",
12137
13266
  {
12138
13267
  className: className ? `theme-scope ${className}` : "theme-scope",
12139
13268
  style: wrapperStyle,
12140
- "data-rb-responsive-mode": responsiveMode,
13269
+ "data-rb-responsive-mode": responsiveScope.kind,
12141
13270
  ...dataAttrs,
12142
13271
  suppressHydrationWarning,
12143
13272
  children: [
@@ -12145,25 +13274,131 @@ function ThemeScopeCore({
12145
13274
  "style",
12146
13275
  {
12147
13276
  "data-container-responsive-overrides": true,
12148
- dangerouslySetInnerHTML: { __html: escapeStyleContent(containerResponsiveThemeCss) }
13277
+ dangerouslySetInnerHTML: {
13278
+ __html: escapeStyleContent(containerResponsiveThemeCss)
13279
+ }
13280
+ }
13281
+ ),
13282
+ layoutCss && /* @__PURE__ */ jsx3(
13283
+ "style",
13284
+ {
13285
+ "data-layout-styles": true,
13286
+ dangerouslySetInnerHTML: { __html: escapeStyleContent(layoutCss) }
13287
+ }
13288
+ ),
13289
+ buttonCss && /* @__PURE__ */ jsx3(
13290
+ "style",
13291
+ {
13292
+ "data-button-effects": true,
13293
+ dangerouslySetInnerHTML: { __html: escapeStyleContent(buttonCss) }
13294
+ }
13295
+ ),
13296
+ headerCss && /* @__PURE__ */ jsx3(
13297
+ "style",
13298
+ {
13299
+ "data-header-styles": true,
13300
+ dangerouslySetInnerHTML: { __html: escapeStyleContent(headerCss) }
13301
+ }
13302
+ ),
13303
+ footerCss && /* @__PURE__ */ jsx3(
13304
+ "style",
13305
+ {
13306
+ "data-footer-styles": true,
13307
+ dangerouslySetInnerHTML: { __html: escapeStyleContent(footerCss) }
13308
+ }
13309
+ ),
13310
+ cardCss && /* @__PURE__ */ jsx3(
13311
+ "style",
13312
+ {
13313
+ "data-card-styles": true,
13314
+ dangerouslySetInnerHTML: { __html: escapeStyleContent(cardCss) }
13315
+ }
13316
+ ),
13317
+ accordionCss && /* @__PURE__ */ jsx3(
13318
+ "style",
13319
+ {
13320
+ "data-accordion-styles": true,
13321
+ dangerouslySetInnerHTML: { __html: escapeStyleContent(accordionCss) }
13322
+ }
13323
+ ),
13324
+ inputCss && /* @__PURE__ */ jsx3(
13325
+ "style",
13326
+ {
13327
+ "data-input-styles": true,
13328
+ dangerouslySetInnerHTML: { __html: escapeStyleContent(inputCss) }
13329
+ }
13330
+ ),
13331
+ statusCss && /* @__PURE__ */ jsx3(
13332
+ "style",
13333
+ {
13334
+ "data-status-styles": true,
13335
+ dangerouslySetInnerHTML: { __html: escapeStyleContent(statusCss) }
13336
+ }
13337
+ ),
13338
+ progressCss && /* @__PURE__ */ jsx3(
13339
+ "style",
13340
+ {
13341
+ "data-progress-styles": true,
13342
+ dangerouslySetInnerHTML: { __html: escapeStyleContent(progressCss) }
13343
+ }
13344
+ ),
13345
+ typographyCss && /* @__PURE__ */ jsx3(
13346
+ "style",
13347
+ {
13348
+ "data-typography-styles": true,
13349
+ dangerouslySetInnerHTML: {
13350
+ __html: escapeStyleContent(typographyCss)
13351
+ }
13352
+ }
13353
+ ),
13354
+ eventCalendarCss && /* @__PURE__ */ jsx3(
13355
+ "style",
13356
+ {
13357
+ "data-event-calendar-styles": true,
13358
+ dangerouslySetInnerHTML: {
13359
+ __html: escapeStyleContent(eventCalendarCss)
13360
+ }
13361
+ }
13362
+ ),
13363
+ blockVarsCss && /* @__PURE__ */ jsx3(
13364
+ "style",
13365
+ {
13366
+ "data-block-vars-styles": true,
13367
+ dangerouslySetInnerHTML: { __html: escapeStyleContent(blockVarsCss) }
13368
+ }
13369
+ ),
13370
+ blockCustomVarsCss && /* @__PURE__ */ jsx3(
13371
+ "style",
13372
+ {
13373
+ "data-block-custom-vars-styles": true,
13374
+ dangerouslySetInnerHTML: {
13375
+ __html: escapeStyleContent(blockCustomVarsCss)
13376
+ }
13377
+ }
13378
+ ),
13379
+ blockCustomCss && /* @__PURE__ */ jsx3(
13380
+ "style",
13381
+ {
13382
+ "data-block-custom-styles": true,
13383
+ dangerouslySetInnerHTML: {
13384
+ __html: escapeStyleContent(blockCustomCss)
13385
+ }
13386
+ }
13387
+ ),
13388
+ atRulesCss && /* @__PURE__ */ jsx3(
13389
+ "style",
13390
+ {
13391
+ "data-at-rules-styles": true,
13392
+ dangerouslySetInnerHTML: { __html: escapeStyleContent(atRulesCss) }
13393
+ }
13394
+ ),
13395
+ customCss && /* @__PURE__ */ jsx3(
13396
+ "style",
13397
+ {
13398
+ "data-custom-theme-styles": true,
13399
+ dangerouslySetInnerHTML: { __html: escapeStyleContent(customCss) }
12149
13400
  }
12150
13401
  ),
12151
- layoutCss && /* @__PURE__ */ jsx3("style", { "data-layout-styles": true, dangerouslySetInnerHTML: { __html: escapeStyleContent(layoutCss) } }),
12152
- buttonCss && /* @__PURE__ */ jsx3("style", { "data-button-effects": true, dangerouslySetInnerHTML: { __html: escapeStyleContent(buttonCss) } }),
12153
- headerCss && /* @__PURE__ */ jsx3("style", { "data-header-styles": true, dangerouslySetInnerHTML: { __html: escapeStyleContent(headerCss) } }),
12154
- footerCss && /* @__PURE__ */ jsx3("style", { "data-footer-styles": true, dangerouslySetInnerHTML: { __html: escapeStyleContent(footerCss) } }),
12155
- cardCss && /* @__PURE__ */ jsx3("style", { "data-card-styles": true, dangerouslySetInnerHTML: { __html: escapeStyleContent(cardCss) } }),
12156
- accordionCss && /* @__PURE__ */ jsx3("style", { "data-accordion-styles": true, dangerouslySetInnerHTML: { __html: escapeStyleContent(accordionCss) } }),
12157
- inputCss && /* @__PURE__ */ jsx3("style", { "data-input-styles": true, dangerouslySetInnerHTML: { __html: escapeStyleContent(inputCss) } }),
12158
- statusCss && /* @__PURE__ */ jsx3("style", { "data-status-styles": true, dangerouslySetInnerHTML: { __html: escapeStyleContent(statusCss) } }),
12159
- progressCss && /* @__PURE__ */ jsx3("style", { "data-progress-styles": true, dangerouslySetInnerHTML: { __html: escapeStyleContent(progressCss) } }),
12160
- typographyCss && /* @__PURE__ */ jsx3("style", { "data-typography-styles": true, dangerouslySetInnerHTML: { __html: escapeStyleContent(typographyCss) } }),
12161
- eventCalendarCss && /* @__PURE__ */ jsx3("style", { "data-event-calendar-styles": true, dangerouslySetInnerHTML: { __html: escapeStyleContent(eventCalendarCss) } }),
12162
- blockVarsCss && /* @__PURE__ */ jsx3("style", { "data-block-vars-styles": true, dangerouslySetInnerHTML: { __html: escapeStyleContent(blockVarsCss) } }),
12163
- blockCustomVarsCss && /* @__PURE__ */ jsx3("style", { "data-block-custom-vars-styles": true, dangerouslySetInnerHTML: { __html: escapeStyleContent(blockCustomVarsCss) } }),
12164
- blockCustomCss && /* @__PURE__ */ jsx3("style", { "data-block-custom-styles": true, dangerouslySetInnerHTML: { __html: escapeStyleContent(blockCustomCss) } }),
12165
- atRulesCss && /* @__PURE__ */ jsx3("style", { "data-at-rules-styles": true, dangerouslySetInnerHTML: { __html: escapeStyleContent(atRulesCss) } }),
12166
- customCss && /* @__PURE__ */ jsx3("style", { "data-custom-theme-styles": true, dangerouslySetInnerHTML: { __html: escapeStyleContent(customCss) } }),
12167
13402
  children
12168
13403
  ]
12169
13404
  }