@riverbankcms/sdk 0.60.9 → 0.60.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_dts/api/src/accessAdmin.d.ts +102 -0
- package/dist/_dts/api/src/common/envelope.d.ts +1 -1
- package/dist/_dts/api/src/domains.d.ts +14 -13
- package/dist/_dts/api/src/endpoints.d.ts +32 -0
- package/dist/_dts/api/src/index.d.ts +4 -3
- package/dist/_dts/api/src/navigation/linkValue.d.ts +15 -2
- package/dist/_dts/api/src/navigation.d.ts +2 -0
- package/dist/_dts/api/src/siteManagementEndpoints.d.ts +15 -1
- package/dist/_dts/blocks/src/index.d.ts +1 -1
- package/dist/_dts/blocks/src/system/node/fragments/ctaButton.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/basic.d.ts +2 -1
- package/dist/_dts/blocks/src/system/types/link.d.ts +7 -1
- package/dist/_dts/core/src/participant-identity.d.ts +72 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +96 -60
- package/dist/_dts/db/src/schemas/forms.d.ts +135 -24
- package/dist/_dts/sdk/src/contracts/content.d.ts +7 -1
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +1 -1
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/theme-core/src/buttons/classNames.d.ts +21 -0
- package/dist/_dts/theme-core/src/buttons/index.d.ts +1 -0
- package/dist/_dts/theme-core/src/buttons/types.d.ts +1 -0
- package/dist/cli/index.mjs +188 -9
- package/dist/client/bookings.mjs +808 -149
- package/dist/client/client.mjs +553 -130
- package/dist/client/hooks.mjs +119 -0
- package/dist/client/rendering/client.mjs +412 -113
- package/dist/client/rendering/islands.mjs +4605 -4361
- package/dist/client/rendering.mjs +580 -157
- package/dist/preview-next/before-render.mjs +57 -0
- package/dist/preview-next/client/runtime.mjs +580 -151
- package/dist/preview-next/middleware.mjs +57 -0
- package/dist/server/components.mjs +293 -45
- package/dist/server/config-validation.mjs +119 -0
- package/dist/server/config.mjs +119 -0
- package/dist/server/data.mjs +119 -0
- package/dist/server/index.mjs +120 -1
- package/dist/server/next.mjs +300 -52
- package/dist/server/page-converter.mjs +62 -0
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +293 -45
- package/dist/server/rendering.mjs +293 -45
- package/dist/server/routing.mjs +159 -29
- package/dist/server/server.mjs +120 -1
- package/package.json +1 -1
- package/dist/_dts/blocks/src/system/runtime/shared/themedButtonClass.d.ts +0 -11
package/dist/client/bookings.mjs
CHANGED
|
@@ -86,7 +86,7 @@ function ze() {
|
|
|
86
86
|
/* @__PURE__ */ Te(P)
|
|
87
87
|
);
|
|
88
88
|
}
|
|
89
|
-
function
|
|
89
|
+
function z5(e) {
|
|
90
90
|
if (L) {
|
|
91
91
|
if (/* @__PURE__ */ Te(P) !== null)
|
|
92
92
|
throw Tt(), Je;
|
|
@@ -2115,12 +2115,12 @@ function ha(e, t) {
|
|
|
2115
2115
|
var mt = we(Dr, 2);
|
|
2116
2116
|
let Pr;
|
|
2117
2117
|
var We = X(mt);
|
|
2118
|
-
en(We), We.__change = ui,
|
|
2118
|
+
en(We), We.__change = ui, z5(mt);
|
|
2119
2119
|
var Ut = we(mt, 2), wi = X(Ut);
|
|
2120
2120
|
{
|
|
2121
2121
|
var pi = (n) => {
|
|
2122
2122
|
var u = na(), _ = Gr(u), y = X(_);
|
|
2123
|
-
Ge(y, () => c(re).verified),
|
|
2123
|
+
Ge(y, () => c(re).verified), z5(_);
|
|
2124
2124
|
var T = we(_, 2);
|
|
2125
2125
|
en(T), Pe(() => {
|
|
2126
2126
|
se(T, "name", V()), jo(T, c(Le));
|
|
@@ -2129,10 +2129,10 @@ function ha(e, t) {
|
|
|
2129
2129
|
{
|
|
2130
2130
|
var _ = (T) => {
|
|
2131
2131
|
var E = ia(), p = X(E);
|
|
2132
|
-
Ge(p, () => c(re).verifying),
|
|
2132
|
+
Ge(p, () => c(re).verifying), z5(E), ne(T, E);
|
|
2133
2133
|
}, y = (T) => {
|
|
2134
2134
|
var E = oa(), p = X(E);
|
|
2135
|
-
Ge(p, () => c(re).label),
|
|
2135
|
+
Ge(p, () => c(re).label), z5(E), Pe(() => se(E, "for", c(cr))), ne(T, E);
|
|
2136
2136
|
};
|
|
2137
2137
|
$e(
|
|
2138
2138
|
n,
|
|
@@ -2147,18 +2147,18 @@ function ha(e, t) {
|
|
|
2147
2147
|
c(C) === b.VERIFIED ? n(pi) : n(bi, false);
|
|
2148
2148
|
});
|
|
2149
2149
|
}
|
|
2150
|
-
|
|
2150
|
+
z5(Ut);
|
|
2151
2151
|
var yi = we(Ut, 2);
|
|
2152
2152
|
{
|
|
2153
2153
|
var Ei = (n) => {
|
|
2154
2154
|
var u = aa(), _ = X(u);
|
|
2155
|
-
se(_, "href", sr),
|
|
2155
|
+
se(_, "href", sr), z5(u), Pe(() => se(_, "aria-label", c(re).ariaLinkLabel)), ne(n, u);
|
|
2156
2156
|
};
|
|
2157
2157
|
$e(yi, (n) => {
|
|
2158
2158
|
(N() !== true || c(Dt)) && n(Ei);
|
|
2159
2159
|
});
|
|
2160
2160
|
}
|
|
2161
|
-
|
|
2161
|
+
z5(Mt);
|
|
2162
2162
|
var Or = we(Mt, 2);
|
|
2163
2163
|
{
|
|
2164
2164
|
var xi = (n) => {
|
|
@@ -2166,16 +2166,16 @@ function ha(e, t) {
|
|
|
2166
2166
|
{
|
|
2167
2167
|
var y = (E) => {
|
|
2168
2168
|
var p = la(), x = X(p);
|
|
2169
|
-
Ge(x, () => c(re).expired),
|
|
2169
|
+
Ge(x, () => c(re).expired), z5(p), Pe(() => se(p, "title", c(He))), ne(E, p);
|
|
2170
2170
|
}, T = (E) => {
|
|
2171
2171
|
var p = sa(), x = X(p);
|
|
2172
|
-
Ge(x, () => c(re).error),
|
|
2172
|
+
Ge(x, () => c(re).error), z5(p), Pe(() => se(p, "title", c(He))), ne(E, p);
|
|
2173
2173
|
};
|
|
2174
2174
|
$e(_, (E) => {
|
|
2175
2175
|
c(C) === b.EXPIRED ? E(y) : E(T, false);
|
|
2176
2176
|
});
|
|
2177
2177
|
}
|
|
2178
|
-
|
|
2178
|
+
z5(u), ne(n, u);
|
|
2179
2179
|
};
|
|
2180
2180
|
$e(Or, (n) => {
|
|
2181
2181
|
(c(He) || c(C) === b.EXPIRED) && n(xi);
|
|
@@ -2185,7 +2185,7 @@ function ha(e, t) {
|
|
|
2185
2185
|
{
|
|
2186
2186
|
var $i = (n) => {
|
|
2187
2187
|
var u = ua(), _ = X(u), y = X(_);
|
|
2188
|
-
Ge(y, () => c(re).footer),
|
|
2188
|
+
Ge(y, () => c(re).footer), z5(_), z5(u), ne(n, u);
|
|
2189
2189
|
};
|
|
2190
2190
|
$e(Fr, (n) => {
|
|
2191
2191
|
c(re).footer && (k() !== true || c(Dt)) && n($i);
|
|
@@ -2201,7 +2201,7 @@ function ha(e, t) {
|
|
|
2201
2201
|
v() && n(Ci);
|
|
2202
2202
|
});
|
|
2203
2203
|
}
|
|
2204
|
-
return
|
|
2204
|
+
return z5(ot), nn(ot, (n) => D(B, n), () => c(B)), Pe(
|
|
2205
2205
|
(n) => {
|
|
2206
2206
|
se(ot, "data-state", c(C)), se(ot, "data-floating", v()), Pr = Fo(mt, 1, "altcha-checkbox", null, Pr, n), se(We, "id", c(cr)), We.required = r2() !== "onsubmit" && (!v() || r2() !== "off");
|
|
2207
2207
|
},
|
|
@@ -2817,6 +2817,7 @@ var VARIANT_ROLES = [
|
|
|
2817
2817
|
"tertiary",
|
|
2818
2818
|
"accent"
|
|
2819
2819
|
];
|
|
2820
|
+
var DEFAULT_VARIANT_ALIAS_ID = "default";
|
|
2820
2821
|
var cornerStyleSchema = z.enum(["square", "rounded", "pill"]);
|
|
2821
2822
|
var shadowSizeSchema = z.enum(["none", "low", "medium", "high"]);
|
|
2822
2823
|
var textTransformSchema = z.enum(["none", "uppercase", "lowercase", "capitalize"]);
|
|
@@ -2953,9 +2954,595 @@ var buttonSystemSchema = z.object({
|
|
|
2953
2954
|
sizes: buttonSizesSchema.optional()
|
|
2954
2955
|
});
|
|
2955
2956
|
|
|
2957
|
+
// ../theme-core/src/buttons/classNames.ts
|
|
2958
|
+
function themeButtonVariantClassNames(variant) {
|
|
2959
|
+
if (variant === DEFAULT_VARIANT_ALIAS_ID) {
|
|
2960
|
+
return [variant];
|
|
2961
|
+
}
|
|
2962
|
+
return [variant, `button-${variant}`];
|
|
2963
|
+
}
|
|
2964
|
+
function themeButtonSizeClassName(size) {
|
|
2965
|
+
return `btn-${size}`;
|
|
2966
|
+
}
|
|
2967
|
+
function themeButtonClassName(spec) {
|
|
2968
|
+
const classes = [
|
|
2969
|
+
...themeButtonVariantClassNames(spec.variant),
|
|
2970
|
+
themeButtonSizeClassName(spec.size),
|
|
2971
|
+
spec.extraClassName
|
|
2972
|
+
];
|
|
2973
|
+
return classes.filter(Boolean).join(" ");
|
|
2974
|
+
}
|
|
2975
|
+
|
|
2956
2976
|
// ../theme-core/src/buttons/generateButtonCss.ts
|
|
2957
2977
|
var BUTTON_SIZE_NAMES = buttonSizeNameSchema.options;
|
|
2958
2978
|
|
|
2979
|
+
// ../theme-core/src/buttons/personalities/types.ts
|
|
2980
|
+
import { z as z3 } from "zod";
|
|
2981
|
+
|
|
2982
|
+
// ../theme-core/src/site-styles/styleTags.ts
|
|
2983
|
+
import { z as z2 } from "zod";
|
|
2984
|
+
var STYLE_AXIS_VALUES = {
|
|
2985
|
+
tone: ["minimal", "classic", "bold"],
|
|
2986
|
+
energy: ["calm", "vibrant"],
|
|
2987
|
+
motion: ["subtle", "standard", "expressive"],
|
|
2988
|
+
era: ["editorial", "modern", "organic", "technical", "retro"]
|
|
2989
|
+
};
|
|
2990
|
+
var styleTagsSchema = z2.object({
|
|
2991
|
+
tone: z2.enum(STYLE_AXIS_VALUES.tone).optional(),
|
|
2992
|
+
energy: z2.enum(STYLE_AXIS_VALUES.energy).optional(),
|
|
2993
|
+
motion: z2.enum(STYLE_AXIS_VALUES.motion).optional(),
|
|
2994
|
+
era: z2.enum(STYLE_AXIS_VALUES.era).optional()
|
|
2995
|
+
});
|
|
2996
|
+
|
|
2997
|
+
// ../theme-core/src/buttons/personalities/types.ts
|
|
2998
|
+
function asButtonPersonalityId(value) {
|
|
2999
|
+
if (value.length === 0) {
|
|
3000
|
+
throw new Error("ButtonPersonalityId must be a non-empty string");
|
|
3001
|
+
}
|
|
3002
|
+
return value;
|
|
3003
|
+
}
|
|
3004
|
+
var buttonPersonalityIdSchema = z3.string().min(1).transform((value) => asButtonPersonalityId(value));
|
|
3005
|
+
var buttonPersonalitySchema = z3.object({
|
|
3006
|
+
id: buttonPersonalityIdSchema,
|
|
3007
|
+
name: z3.string().min(1),
|
|
3008
|
+
description: z3.string().min(1),
|
|
3009
|
+
tags: styleTagsSchema,
|
|
3010
|
+
buttonSystem: buttonSystemSchema
|
|
3011
|
+
});
|
|
3012
|
+
function defineButtonPersonality(input) {
|
|
3013
|
+
return {
|
|
3014
|
+
id: asButtonPersonalityId(input.id),
|
|
3015
|
+
name: input.name,
|
|
3016
|
+
description: input.description,
|
|
3017
|
+
tags: input.tags,
|
|
3018
|
+
buttonSystem: input.buttonSystem
|
|
3019
|
+
};
|
|
3020
|
+
}
|
|
3021
|
+
|
|
3022
|
+
// ../theme-core/src/buttons/personalities/brushed-wash.ts
|
|
3023
|
+
var brushedWash = defineButtonPersonality({
|
|
3024
|
+
id: "brushed-wash",
|
|
3025
|
+
name: "Brushed Wash",
|
|
3026
|
+
description: "Watercolour-gradient buttons with soft shadows and generous padding.",
|
|
3027
|
+
tags: { tone: "classic", energy: "vibrant", motion: "standard", era: "organic" },
|
|
3028
|
+
buttonSystem: {
|
|
3029
|
+
global: {
|
|
3030
|
+
cornerStyle: "rounded",
|
|
3031
|
+
shadow: "low",
|
|
3032
|
+
textTransform: "none",
|
|
3033
|
+
fontWeight: 500,
|
|
3034
|
+
borderWidth: 1,
|
|
3035
|
+
hoverTransform: "none",
|
|
3036
|
+
hoverColor: "none"
|
|
3037
|
+
},
|
|
3038
|
+
sizes: {
|
|
3039
|
+
sm: { padding: "0.75rem 2rem", fontSize: "text-sm" },
|
|
3040
|
+
md: { padding: "1rem 2.5rem" },
|
|
3041
|
+
lg: { padding: "1.25rem 3rem", fontSize: "text-lg" },
|
|
3042
|
+
xl: { padding: "1.625rem 3.75rem", fontSize: "text-xl" }
|
|
3043
|
+
},
|
|
3044
|
+
variants: [
|
|
3045
|
+
{
|
|
3046
|
+
id: "primary",
|
|
3047
|
+
name: "Primary",
|
|
3048
|
+
enabled: true,
|
|
3049
|
+
priority: 1,
|
|
3050
|
+
background: {
|
|
3051
|
+
type: "gradient",
|
|
3052
|
+
stops: ["primary", "accent"],
|
|
3053
|
+
direction: "to-r"
|
|
3054
|
+
},
|
|
3055
|
+
textColorToken: "primaryForeground",
|
|
3056
|
+
borderRadius: "rounded-lg",
|
|
3057
|
+
shadow: { elevation: "low", softness: "soft", position: "bottom" },
|
|
3058
|
+
effects: {
|
|
3059
|
+
hover: [{ effectId: "opacity-reduce", options: { reduction: -15 } }]
|
|
3060
|
+
}
|
|
3061
|
+
},
|
|
3062
|
+
{
|
|
3063
|
+
id: "secondary",
|
|
3064
|
+
name: "Secondary",
|
|
3065
|
+
enabled: true,
|
|
3066
|
+
priority: 2,
|
|
3067
|
+
background: {
|
|
3068
|
+
type: "gradient",
|
|
3069
|
+
stops: ["secondary", "accent"],
|
|
3070
|
+
direction: "to-br"
|
|
3071
|
+
},
|
|
3072
|
+
textColorToken: "primaryForeground",
|
|
3073
|
+
borderRadius: "rounded-lg",
|
|
3074
|
+
shadow: { elevation: "low", softness: "soft", position: "bottom" },
|
|
3075
|
+
effects: {
|
|
3076
|
+
hover: [{ effectId: "opacity-reduce", options: { reduction: -15 } }]
|
|
3077
|
+
}
|
|
3078
|
+
},
|
|
3079
|
+
{
|
|
3080
|
+
id: "outline",
|
|
3081
|
+
name: "Outline",
|
|
3082
|
+
enabled: true,
|
|
3083
|
+
priority: 3,
|
|
3084
|
+
background: { type: "transparent" },
|
|
3085
|
+
textColorToken: "primary",
|
|
3086
|
+
borderRadius: "rounded-lg",
|
|
3087
|
+
border: { widthClass: "border", colorToken: "primary" },
|
|
3088
|
+
effects: {
|
|
3089
|
+
hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
|
|
3090
|
+
}
|
|
3091
|
+
},
|
|
3092
|
+
{
|
|
3093
|
+
id: "ghost",
|
|
3094
|
+
name: "Ghost",
|
|
3095
|
+
enabled: true,
|
|
3096
|
+
priority: 3,
|
|
3097
|
+
background: { type: "transparent" },
|
|
3098
|
+
textColorToken: "text",
|
|
3099
|
+
borderRadius: "rounded-lg",
|
|
3100
|
+
effects: {
|
|
3101
|
+
hover: [
|
|
3102
|
+
{ effectId: "background-on-hover", options: { colorToken: "surface" } }
|
|
3103
|
+
]
|
|
3104
|
+
}
|
|
3105
|
+
}
|
|
3106
|
+
]
|
|
3107
|
+
}
|
|
3108
|
+
});
|
|
3109
|
+
|
|
3110
|
+
// ../theme-core/src/buttons/personalities/confident-chip.ts
|
|
3111
|
+
var confidentChip = defineButtonPersonality({
|
|
3112
|
+
id: "confident-chip",
|
|
3113
|
+
name: "Confident Chip",
|
|
3114
|
+
description: "Mid-radius solid buttons with a crisp hover.",
|
|
3115
|
+
tags: { tone: "classic", energy: "calm", motion: "standard", era: "modern" },
|
|
3116
|
+
buttonSystem: {
|
|
3117
|
+
global: {
|
|
3118
|
+
cornerStyle: "rounded",
|
|
3119
|
+
shadow: "medium",
|
|
3120
|
+
textTransform: "none",
|
|
3121
|
+
fontWeight: 600,
|
|
3122
|
+
borderWidth: 1,
|
|
3123
|
+
hoverTransform: "none",
|
|
3124
|
+
hoverColor: "none"
|
|
3125
|
+
},
|
|
3126
|
+
variants: [
|
|
3127
|
+
{
|
|
3128
|
+
id: "primary",
|
|
3129
|
+
name: "Primary",
|
|
3130
|
+
enabled: true,
|
|
3131
|
+
priority: 1,
|
|
3132
|
+
background: { type: "solid", colorToken: "primary" },
|
|
3133
|
+
textColorToken: "primaryForeground",
|
|
3134
|
+
borderRadius: "rounded-md",
|
|
3135
|
+
shadow: { elevation: "medium", softness: "soft", position: "bottom" },
|
|
3136
|
+
effects: {
|
|
3137
|
+
hover: [{ effectId: "darken-background", options: { amount: 60 } }],
|
|
3138
|
+
active: [{ effectId: "scale-down", options: { scale: "0.97" } }]
|
|
3139
|
+
}
|
|
3140
|
+
},
|
|
3141
|
+
{
|
|
3142
|
+
id: "secondary",
|
|
3143
|
+
name: "Secondary",
|
|
3144
|
+
enabled: true,
|
|
3145
|
+
priority: 2,
|
|
3146
|
+
background: { type: "solid", colorToken: "surface" },
|
|
3147
|
+
textColorToken: "text",
|
|
3148
|
+
borderRadius: "rounded-md",
|
|
3149
|
+
border: { widthClass: "border", colorToken: "border" },
|
|
3150
|
+
effects: {
|
|
3151
|
+
hover: [{ effectId: "background-on-hover", options: { colorToken: "background" } }]
|
|
3152
|
+
}
|
|
3153
|
+
},
|
|
3154
|
+
{
|
|
3155
|
+
id: "outline",
|
|
3156
|
+
name: "Outline",
|
|
3157
|
+
enabled: true,
|
|
3158
|
+
priority: 3,
|
|
3159
|
+
background: { type: "transparent" },
|
|
3160
|
+
textColorToken: "primary",
|
|
3161
|
+
borderRadius: "rounded-md",
|
|
3162
|
+
border: { widthClass: "border", colorToken: "primary" },
|
|
3163
|
+
effects: {
|
|
3164
|
+
hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
|
|
3165
|
+
}
|
|
3166
|
+
},
|
|
3167
|
+
{
|
|
3168
|
+
id: "ghost",
|
|
3169
|
+
name: "Ghost",
|
|
3170
|
+
enabled: true,
|
|
3171
|
+
priority: 3,
|
|
3172
|
+
background: { type: "transparent" },
|
|
3173
|
+
textColorToken: "primary",
|
|
3174
|
+
borderRadius: "rounded-md",
|
|
3175
|
+
effects: {
|
|
3176
|
+
hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
|
|
3177
|
+
}
|
|
3178
|
+
}
|
|
3179
|
+
]
|
|
3180
|
+
}
|
|
3181
|
+
});
|
|
3182
|
+
|
|
3183
|
+
// ../theme-core/src/buttons/personalities/editorial-link.ts
|
|
3184
|
+
var editorialLink = defineButtonPersonality({
|
|
3185
|
+
id: "editorial-link",
|
|
3186
|
+
name: "Editorial Link",
|
|
3187
|
+
description: "Link-style with a growing underline. Refined, typographic.",
|
|
3188
|
+
tags: { tone: "minimal", energy: "calm", motion: "subtle", era: "editorial" },
|
|
3189
|
+
buttonSystem: {
|
|
3190
|
+
global: {
|
|
3191
|
+
cornerStyle: "square",
|
|
3192
|
+
shadow: "none",
|
|
3193
|
+
textTransform: "none",
|
|
3194
|
+
fontWeight: 500,
|
|
3195
|
+
borderWidth: 1,
|
|
3196
|
+
hoverTransform: "none",
|
|
3197
|
+
hoverColor: "none"
|
|
3198
|
+
},
|
|
3199
|
+
variants: [
|
|
3200
|
+
{
|
|
3201
|
+
id: "primary",
|
|
3202
|
+
name: "Primary",
|
|
3203
|
+
enabled: true,
|
|
3204
|
+
priority: 1,
|
|
3205
|
+
background: { type: "transparent" },
|
|
3206
|
+
textColorToken: "text",
|
|
3207
|
+
borderRadius: "rounded-none",
|
|
3208
|
+
shadow: { elevation: "none", softness: null, position: "bottom" },
|
|
3209
|
+
sizes: {
|
|
3210
|
+
sm: { padding: "0.25rem 0" },
|
|
3211
|
+
md: { padding: "0.5rem 0" },
|
|
3212
|
+
lg: { padding: "0.625rem 0" },
|
|
3213
|
+
xl: { padding: "0.75rem 0" }
|
|
3214
|
+
},
|
|
3215
|
+
effects: {
|
|
3216
|
+
base: [
|
|
3217
|
+
{ effectId: "border-bottom-grow", options: { height: 2, colorToken: "text", origin: "left" } }
|
|
3218
|
+
]
|
|
3219
|
+
}
|
|
3220
|
+
},
|
|
3221
|
+
{
|
|
3222
|
+
id: "secondary",
|
|
3223
|
+
name: "Secondary",
|
|
3224
|
+
enabled: true,
|
|
3225
|
+
priority: 2,
|
|
3226
|
+
background: { type: "transparent" },
|
|
3227
|
+
textColorToken: "mutedText",
|
|
3228
|
+
borderRadius: "rounded-none",
|
|
3229
|
+
shadow: { elevation: "none", softness: null, position: "bottom" },
|
|
3230
|
+
sizes: {
|
|
3231
|
+
sm: { padding: "0.25rem 0" },
|
|
3232
|
+
md: { padding: "0.5rem 0" },
|
|
3233
|
+
lg: { padding: "0.625rem 0" },
|
|
3234
|
+
xl: { padding: "0.75rem 0" }
|
|
3235
|
+
},
|
|
3236
|
+
effects: {
|
|
3237
|
+
base: [
|
|
3238
|
+
{ effectId: "border-bottom-grow", options: { height: 1, colorToken: "mutedText", origin: "left" } }
|
|
3239
|
+
]
|
|
3240
|
+
}
|
|
3241
|
+
},
|
|
3242
|
+
{
|
|
3243
|
+
id: "outline",
|
|
3244
|
+
name: "Outline",
|
|
3245
|
+
enabled: true,
|
|
3246
|
+
priority: 3,
|
|
3247
|
+
background: { type: "transparent" },
|
|
3248
|
+
textColorToken: "accent",
|
|
3249
|
+
borderRadius: "rounded-none",
|
|
3250
|
+
shadow: { elevation: "none", softness: null, position: "bottom" },
|
|
3251
|
+
sizes: {
|
|
3252
|
+
sm: { padding: "0.25rem 0" },
|
|
3253
|
+
md: { padding: "0.5rem 0" },
|
|
3254
|
+
lg: { padding: "0.625rem 0" },
|
|
3255
|
+
xl: { padding: "0.75rem 0" }
|
|
3256
|
+
},
|
|
3257
|
+
effects: {
|
|
3258
|
+
base: [
|
|
3259
|
+
{ effectId: "border-bottom-grow", options: { height: 1, colorToken: "accent", origin: "left" } }
|
|
3260
|
+
]
|
|
3261
|
+
}
|
|
3262
|
+
},
|
|
3263
|
+
{
|
|
3264
|
+
id: "ghost",
|
|
3265
|
+
name: "Ghost",
|
|
3266
|
+
enabled: true,
|
|
3267
|
+
priority: 3,
|
|
3268
|
+
background: { type: "transparent" },
|
|
3269
|
+
textColorToken: "mutedText",
|
|
3270
|
+
borderRadius: "rounded-none",
|
|
3271
|
+
shadow: { elevation: "none", softness: null, position: "bottom" },
|
|
3272
|
+
sizes: {
|
|
3273
|
+
sm: { padding: "0.25rem 0" },
|
|
3274
|
+
md: { padding: "0.5rem 0" },
|
|
3275
|
+
lg: { padding: "0.625rem 0" },
|
|
3276
|
+
xl: { padding: "0.75rem 0" }
|
|
3277
|
+
},
|
|
3278
|
+
effects: {
|
|
3279
|
+
hover: [{ effectId: "opacity-reduce", options: { reduction: -20 } }]
|
|
3280
|
+
}
|
|
3281
|
+
}
|
|
3282
|
+
]
|
|
3283
|
+
}
|
|
3284
|
+
});
|
|
3285
|
+
|
|
3286
|
+
// ../theme-core/src/buttons/personalities/ink-stamp.ts
|
|
3287
|
+
var inkStamp = defineButtonPersonality({
|
|
3288
|
+
id: "ink-stamp",
|
|
3289
|
+
name: "Ink Stamp",
|
|
3290
|
+
description: "Hand-stamped block-print buttons with a slight lift on hover.",
|
|
3291
|
+
tags: { tone: "bold", energy: "vibrant", motion: "standard", era: "organic" },
|
|
3292
|
+
buttonSystem: {
|
|
3293
|
+
global: {
|
|
3294
|
+
cornerStyle: "rounded",
|
|
3295
|
+
shadow: "none",
|
|
3296
|
+
textTransform: "uppercase",
|
|
3297
|
+
fontWeight: 600,
|
|
3298
|
+
borderWidth: 1,
|
|
3299
|
+
hoverTransform: "none",
|
|
3300
|
+
hoverColor: "none",
|
|
3301
|
+
letterSpacing: "loose"
|
|
3302
|
+
},
|
|
3303
|
+
sizes: {
|
|
3304
|
+
sm: { padding: "0.5rem 1.25rem", fontSize: "text-xs" },
|
|
3305
|
+
md: { padding: "0.75rem 1.75rem", fontSize: "text-sm" },
|
|
3306
|
+
lg: { padding: "0.875rem 2.25rem", fontSize: "text-base" },
|
|
3307
|
+
xl: { padding: "1.125rem 2.75rem", fontSize: "text-lg" }
|
|
3308
|
+
},
|
|
3309
|
+
variants: [
|
|
3310
|
+
{
|
|
3311
|
+
id: "primary",
|
|
3312
|
+
name: "Primary",
|
|
3313
|
+
enabled: true,
|
|
3314
|
+
priority: 1,
|
|
3315
|
+
background: { type: "solid", colorToken: "primary" },
|
|
3316
|
+
textColorToken: "primaryForeground",
|
|
3317
|
+
borderRadius: "rounded-md",
|
|
3318
|
+
effects: {
|
|
3319
|
+
hover: [
|
|
3320
|
+
{ effectId: "drop-shadow", options: { intensity: "medium" } },
|
|
3321
|
+
{ effectId: "scale-up", options: { scale: "1.02" } }
|
|
3322
|
+
],
|
|
3323
|
+
active: [{ effectId: "scale-down", options: { scale: "0.98" } }]
|
|
3324
|
+
}
|
|
3325
|
+
},
|
|
3326
|
+
{
|
|
3327
|
+
id: "secondary",
|
|
3328
|
+
name: "Secondary",
|
|
3329
|
+
enabled: true,
|
|
3330
|
+
priority: 2,
|
|
3331
|
+
background: { type: "transparent" },
|
|
3332
|
+
textColorToken: "primary",
|
|
3333
|
+
borderRadius: "rounded-md",
|
|
3334
|
+
border: { widthClass: "border-2", colorToken: "primary" },
|
|
3335
|
+
effects: {
|
|
3336
|
+
hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
|
|
3337
|
+
}
|
|
3338
|
+
},
|
|
3339
|
+
{
|
|
3340
|
+
id: "outline",
|
|
3341
|
+
name: "Outline",
|
|
3342
|
+
enabled: true,
|
|
3343
|
+
priority: 3,
|
|
3344
|
+
background: { type: "transparent" },
|
|
3345
|
+
textColorToken: "text",
|
|
3346
|
+
borderRadius: "rounded-md",
|
|
3347
|
+
border: { widthClass: "border-2", colorToken: "border" },
|
|
3348
|
+
effects: {
|
|
3349
|
+
hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
|
|
3350
|
+
}
|
|
3351
|
+
},
|
|
3352
|
+
{
|
|
3353
|
+
id: "ghost",
|
|
3354
|
+
name: "Ghost",
|
|
3355
|
+
enabled: true,
|
|
3356
|
+
priority: 3,
|
|
3357
|
+
background: { type: "transparent" },
|
|
3358
|
+
textColorToken: "accent",
|
|
3359
|
+
borderRadius: "rounded-none",
|
|
3360
|
+
sizes: {
|
|
3361
|
+
sm: { padding: "0.375rem 0", fontSize: "text-xs" },
|
|
3362
|
+
md: { padding: "0.5rem 0", fontSize: "text-sm" },
|
|
3363
|
+
lg: { padding: "0.625rem 0", fontSize: "text-base" },
|
|
3364
|
+
xl: { padding: "0.75rem 0", fontSize: "text-lg" }
|
|
3365
|
+
},
|
|
3366
|
+
effects: {
|
|
3367
|
+
base: [{ effectId: "border-bottom-grow", options: { height: 1, colorToken: "accent", origin: "left" } }]
|
|
3368
|
+
}
|
|
3369
|
+
}
|
|
3370
|
+
]
|
|
3371
|
+
}
|
|
3372
|
+
});
|
|
3373
|
+
|
|
3374
|
+
// ../theme-core/src/buttons/personalities/pebble.ts
|
|
3375
|
+
var pebble = defineButtonPersonality({
|
|
3376
|
+
id: "pebble",
|
|
3377
|
+
name: "Pebble",
|
|
3378
|
+
description: "Generous pill buttons with a soft hover lift.",
|
|
3379
|
+
tags: { tone: "classic", energy: "calm", motion: "standard", era: "organic" },
|
|
3380
|
+
buttonSystem: {
|
|
3381
|
+
global: {
|
|
3382
|
+
cornerStyle: "pill",
|
|
3383
|
+
shadow: "none",
|
|
3384
|
+
textTransform: "none",
|
|
3385
|
+
fontWeight: 500,
|
|
3386
|
+
borderWidth: 2,
|
|
3387
|
+
hoverTransform: "none",
|
|
3388
|
+
hoverColor: "none"
|
|
3389
|
+
},
|
|
3390
|
+
sizes: {
|
|
3391
|
+
sm: { padding: "0.625rem 1.75rem", fontSize: "text-sm" },
|
|
3392
|
+
md: { padding: "0.875rem 2.25rem" },
|
|
3393
|
+
lg: { padding: "1.125rem 2.75rem", fontSize: "text-lg" },
|
|
3394
|
+
xl: { padding: "1.5rem 3.5rem", fontSize: "text-xl" }
|
|
3395
|
+
},
|
|
3396
|
+
variants: [
|
|
3397
|
+
{
|
|
3398
|
+
id: "primary",
|
|
3399
|
+
name: "Primary",
|
|
3400
|
+
enabled: true,
|
|
3401
|
+
priority: 1,
|
|
3402
|
+
background: { type: "solid", colorToken: "primary" },
|
|
3403
|
+
textColorToken: "primaryForeground",
|
|
3404
|
+
borderRadius: "rounded-full",
|
|
3405
|
+
effects: {
|
|
3406
|
+
hover: [
|
|
3407
|
+
{ effectId: "scale-up", options: { scale: "1.03" } },
|
|
3408
|
+
{ effectId: "drop-shadow", options: { intensity: "medium" } }
|
|
3409
|
+
]
|
|
3410
|
+
}
|
|
3411
|
+
},
|
|
3412
|
+
{
|
|
3413
|
+
id: "secondary",
|
|
3414
|
+
name: "Secondary",
|
|
3415
|
+
enabled: true,
|
|
3416
|
+
priority: 2,
|
|
3417
|
+
background: { type: "transparent" },
|
|
3418
|
+
textColorToken: "primary",
|
|
3419
|
+
borderRadius: "rounded-full",
|
|
3420
|
+
border: { widthClass: "border-2", colorToken: "accent" },
|
|
3421
|
+
effects: {
|
|
3422
|
+
hover: [{ effectId: "background-on-hover", options: { colorToken: "accent" } }]
|
|
3423
|
+
}
|
|
3424
|
+
},
|
|
3425
|
+
{
|
|
3426
|
+
id: "outline",
|
|
3427
|
+
name: "Outline",
|
|
3428
|
+
enabled: true,
|
|
3429
|
+
priority: 3,
|
|
3430
|
+
background: { type: "transparent" },
|
|
3431
|
+
textColorToken: "text",
|
|
3432
|
+
borderRadius: "rounded-full",
|
|
3433
|
+
border: { widthClass: "border", colorToken: "border" },
|
|
3434
|
+
effects: {
|
|
3435
|
+
hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
|
|
3436
|
+
}
|
|
3437
|
+
},
|
|
3438
|
+
{
|
|
3439
|
+
id: "ghost",
|
|
3440
|
+
name: "Ghost",
|
|
3441
|
+
enabled: true,
|
|
3442
|
+
priority: 3,
|
|
3443
|
+
background: { type: "transparent" },
|
|
3444
|
+
textColorToken: "primary",
|
|
3445
|
+
borderRadius: "rounded-full",
|
|
3446
|
+
sizes: {
|
|
3447
|
+
sm: { padding: "0.375rem 0.875rem", fontSize: "text-sm" },
|
|
3448
|
+
md: { padding: "0.5rem 1rem" },
|
|
3449
|
+
lg: { padding: "0.625rem 1.25rem", fontSize: "text-lg" },
|
|
3450
|
+
xl: { padding: "0.75rem 1.5rem", fontSize: "text-xl" }
|
|
3451
|
+
},
|
|
3452
|
+
effects: {
|
|
3453
|
+
hover: [{ effectId: "opacity-reduce", options: { reduction: 30 } }]
|
|
3454
|
+
}
|
|
3455
|
+
}
|
|
3456
|
+
]
|
|
3457
|
+
}
|
|
3458
|
+
});
|
|
3459
|
+
|
|
3460
|
+
// ../theme-core/src/buttons/personalities/soft-pill.ts
|
|
3461
|
+
var softPill = defineButtonPersonality({
|
|
3462
|
+
id: "soft-pill",
|
|
3463
|
+
name: "Soft Pill",
|
|
3464
|
+
description: "Rounded pills with a gentle lift on hover. Quietly modern.",
|
|
3465
|
+
tags: { tone: "classic", energy: "calm", motion: "subtle", era: "organic" },
|
|
3466
|
+
buttonSystem: {
|
|
3467
|
+
global: {
|
|
3468
|
+
cornerStyle: "pill",
|
|
3469
|
+
shadow: "low",
|
|
3470
|
+
textTransform: "none",
|
|
3471
|
+
fontWeight: 500,
|
|
3472
|
+
borderWidth: 2,
|
|
3473
|
+
hoverTransform: "lift",
|
|
3474
|
+
hoverColor: "none"
|
|
3475
|
+
},
|
|
3476
|
+
variants: [
|
|
3477
|
+
{
|
|
3478
|
+
id: "primary",
|
|
3479
|
+
name: "Primary",
|
|
3480
|
+
enabled: true,
|
|
3481
|
+
priority: 1,
|
|
3482
|
+
background: { type: "solid", colorToken: "primary" },
|
|
3483
|
+
textColorToken: "primaryForeground",
|
|
3484
|
+
borderRadius: "rounded-full",
|
|
3485
|
+
shadow: { elevation: "low", softness: "soft", position: "bottom" },
|
|
3486
|
+
effects: {
|
|
3487
|
+
hover: [{ effectId: "lift", options: { translateY: "-1px" } }],
|
|
3488
|
+
active: [{ effectId: "scale-down", options: { scale: "0.98" } }]
|
|
3489
|
+
}
|
|
3490
|
+
},
|
|
3491
|
+
{
|
|
3492
|
+
id: "secondary",
|
|
3493
|
+
name: "Secondary",
|
|
3494
|
+
enabled: true,
|
|
3495
|
+
priority: 2,
|
|
3496
|
+
background: { type: "transparent" },
|
|
3497
|
+
textColorToken: "primary",
|
|
3498
|
+
borderRadius: "rounded-full",
|
|
3499
|
+
border: { widthClass: "border-2", colorToken: "primary" },
|
|
3500
|
+
effects: {
|
|
3501
|
+
hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
|
|
3502
|
+
}
|
|
3503
|
+
},
|
|
3504
|
+
{
|
|
3505
|
+
id: "outline",
|
|
3506
|
+
name: "Outline",
|
|
3507
|
+
enabled: true,
|
|
3508
|
+
priority: 3,
|
|
3509
|
+
background: { type: "transparent" },
|
|
3510
|
+
textColorToken: "text",
|
|
3511
|
+
borderRadius: "rounded-full",
|
|
3512
|
+
border: { widthClass: "border", colorToken: "border" },
|
|
3513
|
+
effects: {
|
|
3514
|
+
hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
|
|
3515
|
+
}
|
|
3516
|
+
},
|
|
3517
|
+
{
|
|
3518
|
+
id: "ghost",
|
|
3519
|
+
name: "Ghost",
|
|
3520
|
+
enabled: true,
|
|
3521
|
+
priority: 3,
|
|
3522
|
+
background: { type: "transparent" },
|
|
3523
|
+
textColorToken: "text",
|
|
3524
|
+
borderRadius: "rounded-full",
|
|
3525
|
+
effects: {
|
|
3526
|
+
hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
|
|
3527
|
+
}
|
|
3528
|
+
}
|
|
3529
|
+
]
|
|
3530
|
+
}
|
|
3531
|
+
});
|
|
3532
|
+
|
|
3533
|
+
// ../theme-core/src/buttons/personalities/index.ts
|
|
3534
|
+
var buttonPersonalities = [
|
|
3535
|
+
softPill,
|
|
3536
|
+
confidentChip,
|
|
3537
|
+
editorialLink,
|
|
3538
|
+
pebble,
|
|
3539
|
+
inkStamp,
|
|
3540
|
+
brushedWash
|
|
3541
|
+
];
|
|
3542
|
+
var personalitiesById = new Map(
|
|
3543
|
+
buttonPersonalities.map((p) => [p.id, p])
|
|
3544
|
+
);
|
|
3545
|
+
|
|
2959
3546
|
// ../core/src/branded.ts
|
|
2960
3547
|
var asAppointmentResourceId = (id) => id;
|
|
2961
3548
|
|
|
@@ -3165,9 +3752,71 @@ function addLocalScheduleDays(date, days) {
|
|
|
3165
3752
|
};
|
|
3166
3753
|
}
|
|
3167
3754
|
|
|
3755
|
+
// ../core/src/participant-identity.ts
|
|
3756
|
+
var PARTICIPANT_PARTICIPATION_IDENTITY_FIELD_CLASSIFICATION_BY_FIELD = {
|
|
3757
|
+
participant_id: {
|
|
3758
|
+
field: "participant_id",
|
|
3759
|
+
role: "canonical_link",
|
|
3760
|
+
canonicalSource: "booking_participants.id",
|
|
3761
|
+
contractAction: "tighten_in_839",
|
|
3762
|
+
notes: "Canonical person-subject link for a participation. #839 should enforce this once preflight is clean."
|
|
3763
|
+
},
|
|
3764
|
+
display_name: {
|
|
3765
|
+
field: "display_name",
|
|
3766
|
+
role: "contextual_snapshot",
|
|
3767
|
+
canonicalSource: "booking_participants.display_name for live identity",
|
|
3768
|
+
contractAction: "retain_as_snapshot",
|
|
3769
|
+
notes: "Participation-time display context. Readers must not treat it as mutable live participant identity."
|
|
3770
|
+
},
|
|
3771
|
+
email: {
|
|
3772
|
+
field: "email",
|
|
3773
|
+
role: "contextual_snapshot",
|
|
3774
|
+
canonicalSource: "booking_participants.email_normalized for live email identity",
|
|
3775
|
+
contractAction: "retain_as_snapshot",
|
|
3776
|
+
notes: "Participation-time contact snapshot used for notifications/context. Live identity belongs to the participant row."
|
|
3777
|
+
},
|
|
3778
|
+
email_normalized: {
|
|
3779
|
+
field: "email_normalized",
|
|
3780
|
+
role: "contextual_snapshot",
|
|
3781
|
+
canonicalSource: "booking_participants.email_normalized for live email identity",
|
|
3782
|
+
contractAction: "retain_as_snapshot",
|
|
3783
|
+
notes: "Normalized snapshot/dedupe helper for the participation slot, not live person authority."
|
|
3784
|
+
},
|
|
3785
|
+
phone: {
|
|
3786
|
+
field: "phone",
|
|
3787
|
+
role: "contextual_snapshot",
|
|
3788
|
+
canonicalSource: "booking_participants.phone for live phone identity",
|
|
3789
|
+
contractAction: "retain_as_snapshot",
|
|
3790
|
+
notes: "Participation-time phone context. Live identity belongs to the participant row."
|
|
3791
|
+
},
|
|
3792
|
+
identity_state: {
|
|
3793
|
+
field: "identity_state",
|
|
3794
|
+
role: "materialization_state",
|
|
3795
|
+
canonicalSource: "booking_participants.identity_state for subject state",
|
|
3796
|
+
contractAction: "review_for_later_contract_cleanup",
|
|
3797
|
+
notes: "Slot materialization state: booker_supplied, contactable, portal_claimed, or staff_verified."
|
|
3798
|
+
},
|
|
3799
|
+
event_attendee_guest_id: {
|
|
3800
|
+
field: "event_attendee_guest_id",
|
|
3801
|
+
role: "compatibility_projection",
|
|
3802
|
+
canonicalSource: "canonical participant slot plus #838 event guest compatibility projection",
|
|
3803
|
+
contractAction: "retain_as_projection",
|
|
3804
|
+
notes: "Compatibility FK for event guest read models. It is not person identity authority."
|
|
3805
|
+
}
|
|
3806
|
+
};
|
|
3807
|
+
var PARTICIPANT_PARTICIPATION_IDENTITY_FIELD_CLASSIFICATIONS = [
|
|
3808
|
+
PARTICIPANT_PARTICIPATION_IDENTITY_FIELD_CLASSIFICATION_BY_FIELD.participant_id,
|
|
3809
|
+
PARTICIPANT_PARTICIPATION_IDENTITY_FIELD_CLASSIFICATION_BY_FIELD.display_name,
|
|
3810
|
+
PARTICIPANT_PARTICIPATION_IDENTITY_FIELD_CLASSIFICATION_BY_FIELD.email,
|
|
3811
|
+
PARTICIPANT_PARTICIPATION_IDENTITY_FIELD_CLASSIFICATION_BY_FIELD.email_normalized,
|
|
3812
|
+
PARTICIPANT_PARTICIPATION_IDENTITY_FIELD_CLASSIFICATION_BY_FIELD.phone,
|
|
3813
|
+
PARTICIPANT_PARTICIPATION_IDENTITY_FIELD_CLASSIFICATION_BY_FIELD.identity_state,
|
|
3814
|
+
PARTICIPANT_PARTICIPATION_IDENTITY_FIELD_CLASSIFICATION_BY_FIELD.event_attendee_guest_id
|
|
3815
|
+
];
|
|
3816
|
+
|
|
3168
3817
|
// ../theme-core/src/accordions/types.ts
|
|
3169
|
-
import { z as
|
|
3170
|
-
var accordionIconSchema =
|
|
3818
|
+
import { z as z4 } from "zod";
|
|
3819
|
+
var accordionIconSchema = z4.enum([
|
|
3171
3820
|
"plus-minus",
|
|
3172
3821
|
// + becomes - (swap or rotate 90°)
|
|
3173
3822
|
"chevron",
|
|
@@ -3179,49 +3828,49 @@ var accordionIconSchema = z2.enum([
|
|
|
3179
3828
|
"circle-plus-minus"
|
|
3180
3829
|
// ⊕ becomes ⊖ (swap with fade)
|
|
3181
3830
|
]);
|
|
3182
|
-
var accordionSystemSchema =
|
|
3831
|
+
var accordionSystemSchema = z4.object({
|
|
3183
3832
|
// Visual styling (solid color only - gradients can be added later if needed)
|
|
3184
|
-
background:
|
|
3185
|
-
type:
|
|
3186
|
-
colorToken:
|
|
3833
|
+
background: z4.object({
|
|
3834
|
+
type: z4.literal("solid"),
|
|
3835
|
+
colorToken: z4.string()
|
|
3187
3836
|
}),
|
|
3188
3837
|
// Spacing (padding inside items)
|
|
3189
|
-
spacing:
|
|
3838
|
+
spacing: z4.enum(["none", "compact", "cozy", "medium", "comfortable", "spacious"]),
|
|
3190
3839
|
// Border radius (null = inherit from theme.corners)
|
|
3191
|
-
corners:
|
|
3840
|
+
corners: z4.enum(["square", "soft", "rounded", "pill"]).nullable(),
|
|
3192
3841
|
// Border styling (null = inherit from theme.border)
|
|
3193
|
-
border:
|
|
3194
|
-
widthClass:
|
|
3842
|
+
border: z4.object({
|
|
3843
|
+
widthClass: z4.string(),
|
|
3195
3844
|
// e.g., 'border', 'border-2', 'border-0'
|
|
3196
|
-
colorToken:
|
|
3845
|
+
colorToken: z4.string()
|
|
3197
3846
|
}).nullable(),
|
|
3198
3847
|
// Shadow (null = inherit from theme.shadow)
|
|
3199
|
-
shadow:
|
|
3200
|
-
elevation:
|
|
3201
|
-
softness:
|
|
3202
|
-
position:
|
|
3848
|
+
shadow: z4.object({
|
|
3849
|
+
elevation: z4.enum(["none", "low", "medium", "high"]),
|
|
3850
|
+
softness: z4.enum(["soft", "crisp", "hard"]).nullable(),
|
|
3851
|
+
position: z4.enum(["bottom", "bottom-right"])
|
|
3203
3852
|
}).nullable(),
|
|
3204
3853
|
// Icon style and animation
|
|
3205
|
-
icon:
|
|
3854
|
+
icon: z4.object({
|
|
3206
3855
|
style: accordionIconSchema,
|
|
3207
|
-
position:
|
|
3208
|
-
size:
|
|
3856
|
+
position: z4.enum(["left", "right"]),
|
|
3857
|
+
size: z4.enum(["sm", "md", "lg"])
|
|
3209
3858
|
}),
|
|
3210
3859
|
// Trigger (question) styling
|
|
3211
|
-
trigger:
|
|
3212
|
-
textColorToken:
|
|
3213
|
-
fontWeight:
|
|
3860
|
+
trigger: z4.object({
|
|
3861
|
+
textColorToken: z4.string(),
|
|
3862
|
+
fontWeight: z4.enum(["regular", "medium", "semibold", "bold"]).nullable()
|
|
3214
3863
|
// null = inherit from theme
|
|
3215
3864
|
}),
|
|
3216
3865
|
// Hover state styling
|
|
3217
|
-
hover:
|
|
3218
|
-
backgroundColorToken:
|
|
3219
|
-
textColorToken:
|
|
3220
|
-
borderColorToken:
|
|
3866
|
+
hover: z4.object({
|
|
3867
|
+
backgroundColorToken: z4.string().optional(),
|
|
3868
|
+
textColorToken: z4.string().optional(),
|
|
3869
|
+
borderColorToken: z4.string().optional()
|
|
3221
3870
|
}),
|
|
3222
3871
|
// Content (answer) styling
|
|
3223
|
-
content:
|
|
3224
|
-
textColorToken:
|
|
3872
|
+
content: z4.object({
|
|
3873
|
+
textColorToken: z4.string()
|
|
3225
3874
|
})
|
|
3226
3875
|
});
|
|
3227
3876
|
|
|
@@ -4219,7 +4868,7 @@ function MultiStepForm({
|
|
|
4219
4868
|
type: "button",
|
|
4220
4869
|
onClick: goToPrevious,
|
|
4221
4870
|
disabled: !canGoBack,
|
|
4222
|
-
className: "outline
|
|
4871
|
+
className: themeButtonClassName({ variant: "outline", size: "md" }),
|
|
4223
4872
|
children: backButtonLabel
|
|
4224
4873
|
}
|
|
4225
4874
|
),
|
|
@@ -4229,7 +4878,11 @@ function MultiStepForm({
|
|
|
4229
4878
|
type: "button",
|
|
4230
4879
|
onClick: goToNext,
|
|
4231
4880
|
disabled: !canGoNext,
|
|
4232
|
-
className:
|
|
4881
|
+
className: themeButtonClassName({
|
|
4882
|
+
variant: "primary",
|
|
4883
|
+
size: "md",
|
|
4884
|
+
extraClassName: "rb-flex-1"
|
|
4885
|
+
}),
|
|
4233
4886
|
children: [
|
|
4234
4887
|
(isValidating || isSubmitting) && /* @__PURE__ */ jsx4(
|
|
4235
4888
|
SpinnerNode,
|
|
@@ -5503,7 +6156,10 @@ function PaymentOptionSelectionStep({
|
|
|
5503
6156
|
"button",
|
|
5504
6157
|
{
|
|
5505
6158
|
type: "button",
|
|
5506
|
-
className:
|
|
6159
|
+
className: themeButtonClassName({
|
|
6160
|
+
variant: isSelected ? "primary" : "outline",
|
|
6161
|
+
size: "md"
|
|
6162
|
+
}),
|
|
5507
6163
|
style: paymentOptionLayoutStyle,
|
|
5508
6164
|
onClick: () => updateData({
|
|
5509
6165
|
selectedAppointmentPackageId: appointmentPackage.customerPassId,
|
|
@@ -5552,7 +6208,10 @@ function PaymentOptionSelectionStep({
|
|
|
5552
6208
|
"button",
|
|
5553
6209
|
{
|
|
5554
6210
|
type: "button",
|
|
5555
|
-
className:
|
|
6211
|
+
className: themeButtonClassName({
|
|
6212
|
+
variant: isSelected ? "primary" : "outline",
|
|
6213
|
+
size: "md"
|
|
6214
|
+
}),
|
|
5556
6215
|
style: paymentOptionLayoutStyle,
|
|
5557
6216
|
onClick: () => updateData({
|
|
5558
6217
|
selectedAppointmentPackageId: void 0,
|
|
@@ -6703,7 +7362,7 @@ var BookingFormClient = ({
|
|
|
6703
7362
|
"button",
|
|
6704
7363
|
{
|
|
6705
7364
|
type: "button",
|
|
6706
|
-
className: "secondary
|
|
7365
|
+
className: themeButtonClassName({ variant: "secondary", size: "sm" }),
|
|
6707
7366
|
onClick: clearFeedback,
|
|
6708
7367
|
children: "Dismiss"
|
|
6709
7368
|
}
|
|
@@ -6723,116 +7382,116 @@ var BookingFormClient = ({
|
|
|
6723
7382
|
import { useMemo as useMemo6 } from "react";
|
|
6724
7383
|
|
|
6725
7384
|
// ../theme-core/src/inputs/types.ts
|
|
6726
|
-
import { z as
|
|
6727
|
-
var inputSystemSchema =
|
|
7385
|
+
import { z as z6 } from "zod";
|
|
7386
|
+
var inputSystemSchema = z6.object({
|
|
6728
7387
|
// Base styling (applied to all inputs)
|
|
6729
|
-
base:
|
|
6730
|
-
background:
|
|
6731
|
-
|
|
6732
|
-
type:
|
|
6733
|
-
colorToken:
|
|
7388
|
+
base: z6.object({
|
|
7389
|
+
background: z6.union([
|
|
7390
|
+
z6.object({
|
|
7391
|
+
type: z6.literal("solid"),
|
|
7392
|
+
colorToken: z6.string()
|
|
6734
7393
|
}),
|
|
6735
|
-
|
|
6736
|
-
type:
|
|
7394
|
+
z6.object({
|
|
7395
|
+
type: z6.literal("transparent")
|
|
6737
7396
|
})
|
|
6738
7397
|
]),
|
|
6739
|
-
textColorToken:
|
|
6740
|
-
border:
|
|
6741
|
-
widthClass:
|
|
7398
|
+
textColorToken: z6.string(),
|
|
7399
|
+
border: z6.object({
|
|
7400
|
+
widthClass: z6.string(),
|
|
6742
7401
|
// e.g., 'border', 'border-2'
|
|
6743
|
-
colorToken:
|
|
6744
|
-
style:
|
|
7402
|
+
colorToken: z6.string(),
|
|
7403
|
+
style: z6.enum(["all", "underline"]).optional()
|
|
6745
7404
|
}),
|
|
6746
|
-
corners:
|
|
7405
|
+
corners: z6.enum(["square", "soft", "rounded", "pill"]).nullable(),
|
|
6747
7406
|
// null = inherit from theme.corners
|
|
6748
|
-
shadow:
|
|
6749
|
-
elevation:
|
|
6750
|
-
softness:
|
|
7407
|
+
shadow: z6.object({
|
|
7408
|
+
elevation: z6.enum(["none", "low", "medium"]),
|
|
7409
|
+
softness: z6.enum(["soft", "crisp", "hard"]).nullable()
|
|
6751
7410
|
}).nullable(),
|
|
6752
|
-
spacing:
|
|
7411
|
+
spacing: z6.enum(["compact", "cozy", "medium", "comfortable"]),
|
|
6753
7412
|
// padding inside inputs
|
|
6754
|
-
fontSize:
|
|
7413
|
+
fontSize: z6.enum(["sm", "base", "lg"])
|
|
6755
7414
|
}),
|
|
6756
7415
|
// Label styling
|
|
6757
|
-
label:
|
|
6758
|
-
textColorToken:
|
|
6759
|
-
fontWeight:
|
|
6760
|
-
fontSize:
|
|
6761
|
-
textTransform:
|
|
6762
|
-
letterSpacing:
|
|
6763
|
-
opacity:
|
|
7416
|
+
label: z6.object({
|
|
7417
|
+
textColorToken: z6.string(),
|
|
7418
|
+
fontWeight: z6.enum(["regular", "medium", "semibold", "bold", "black"]),
|
|
7419
|
+
fontSize: z6.enum(["2xs", "xs", "sm", "base"]),
|
|
7420
|
+
textTransform: z6.enum(["none", "uppercase", "lowercase", "capitalize"]).optional(),
|
|
7421
|
+
letterSpacing: z6.enum(["normal", "wide", "wider", "widest"]).optional(),
|
|
7422
|
+
opacity: z6.number().min(0.2).max(1).optional()
|
|
6764
7423
|
}),
|
|
6765
7424
|
// Focus state
|
|
6766
|
-
focus:
|
|
6767
|
-
ringColorToken:
|
|
6768
|
-
ringWidth:
|
|
6769
|
-
borderColorToken:
|
|
7425
|
+
focus: z6.object({
|
|
7426
|
+
ringColorToken: z6.string(),
|
|
7427
|
+
ringWidth: z6.enum(["0", "1", "2", "3"]),
|
|
7428
|
+
borderColorToken: z6.string().optional()
|
|
6770
7429
|
// Change border color on focus
|
|
6771
7430
|
}),
|
|
6772
7431
|
// Error state (for validation feedback)
|
|
6773
|
-
error:
|
|
6774
|
-
borderColorToken:
|
|
6775
|
-
textColorToken:
|
|
7432
|
+
error: z6.object({
|
|
7433
|
+
borderColorToken: z6.string(),
|
|
7434
|
+
textColorToken: z6.string()
|
|
6776
7435
|
}),
|
|
6777
7436
|
// Disabled state
|
|
6778
|
-
disabled:
|
|
6779
|
-
backgroundColorToken:
|
|
6780
|
-
textColorToken:
|
|
6781
|
-
opacity:
|
|
7437
|
+
disabled: z6.object({
|
|
7438
|
+
backgroundColorToken: z6.string(),
|
|
7439
|
+
textColorToken: z6.string(),
|
|
7440
|
+
opacity: z6.number().min(0.3).max(0.7)
|
|
6782
7441
|
})
|
|
6783
7442
|
});
|
|
6784
7443
|
|
|
6785
7444
|
// ../theme-core/src/navigation/types.ts
|
|
6786
|
-
import { z as
|
|
7445
|
+
import { z as z8 } from "zod";
|
|
6787
7446
|
|
|
6788
7447
|
// ../theme-core/src/interactive/baseSchema.ts
|
|
6789
|
-
import { z as
|
|
6790
|
-
var interactiveTypographySchema =
|
|
7448
|
+
import { z as z7 } from "zod";
|
|
7449
|
+
var interactiveTypographySchema = z7.object({
|
|
6791
7450
|
/** Font family source */
|
|
6792
|
-
typography:
|
|
7451
|
+
typography: z7.enum(["body", "heading"]).default("body"),
|
|
6793
7452
|
/** Font weight */
|
|
6794
|
-
fontWeight:
|
|
7453
|
+
fontWeight: z7.enum(["regular", "medium", "semibold", "bold"]).default("medium"),
|
|
6795
7454
|
/** Text transform */
|
|
6796
|
-
textTransform:
|
|
7455
|
+
textTransform: z7.enum(["none", "uppercase", "capitalize"]).default("none"),
|
|
6797
7456
|
/** Italic style */
|
|
6798
|
-
italic:
|
|
7457
|
+
italic: z7.boolean().default(false)
|
|
6799
7458
|
});
|
|
6800
|
-
var effectApplicationSchema2 =
|
|
7459
|
+
var effectApplicationSchema2 = z7.object({
|
|
6801
7460
|
/** Effect preset ID */
|
|
6802
|
-
effectId:
|
|
7461
|
+
effectId: z7.string(),
|
|
6803
7462
|
/** User-provided customization options */
|
|
6804
|
-
options:
|
|
7463
|
+
options: z7.record(z7.string(), z7.any()).optional()
|
|
6805
7464
|
});
|
|
6806
|
-
var effectCompositionSchema =
|
|
7465
|
+
var effectCompositionSchema = z7.object({
|
|
6807
7466
|
/** Effects always applied */
|
|
6808
|
-
base:
|
|
7467
|
+
base: z7.array(effectApplicationSchema2).optional(),
|
|
6809
7468
|
/** Effects applied on hover */
|
|
6810
|
-
hover:
|
|
7469
|
+
hover: z7.array(effectApplicationSchema2).optional(),
|
|
6811
7470
|
/** Effects applied on active/pressed */
|
|
6812
|
-
active:
|
|
7471
|
+
active: z7.array(effectApplicationSchema2).optional(),
|
|
6813
7472
|
/** Effects applied on focus */
|
|
6814
|
-
focus:
|
|
7473
|
+
focus: z7.array(effectApplicationSchema2).optional()
|
|
6815
7474
|
});
|
|
6816
7475
|
|
|
6817
7476
|
// ../theme-core/src/navigation/types.ts
|
|
6818
|
-
var navLinkPaddingSchema =
|
|
6819
|
-
var navLinkPaddingXSchema =
|
|
6820
|
-
var navLinkBorderRadiusSchema =
|
|
6821
|
-
var navLinkTextSizeSchema =
|
|
6822
|
-
var navLinkLetterSpacingSchema =
|
|
6823
|
-
var navLinkStyleSchema =
|
|
7477
|
+
var navLinkPaddingSchema = z8.enum(["none", "compact", "default"]);
|
|
7478
|
+
var navLinkPaddingXSchema = z8.enum(["none", "tight", "compact", "default", "relaxed", "spacious"]);
|
|
7479
|
+
var navLinkBorderRadiusSchema = z8.enum(["none", "sm", "md", "full"]);
|
|
7480
|
+
var navLinkTextSizeSchema = z8.enum(["xs", "sm", "base", "lg"]);
|
|
7481
|
+
var navLinkLetterSpacingSchema = z8.enum(["normal", "wide", "wider", "widest"]);
|
|
7482
|
+
var navLinkStyleSchema = z8.object({
|
|
6824
7483
|
/** Display name for the style */
|
|
6825
|
-
name:
|
|
7484
|
+
name: z8.string().min(1).max(30).optional(),
|
|
6826
7485
|
/** Typography settings (inherited from interactive base) */
|
|
6827
7486
|
...interactiveTypographySchema.shape,
|
|
6828
7487
|
/** Text color token */
|
|
6829
|
-
colorToken:
|
|
7488
|
+
colorToken: z8.string().default("text"),
|
|
6830
7489
|
/** Optional text size override */
|
|
6831
7490
|
textSize: navLinkTextSizeSchema.optional(),
|
|
6832
7491
|
/** Optional letter spacing override */
|
|
6833
7492
|
letterSpacing: navLinkLetterSpacingSchema.optional(),
|
|
6834
7493
|
/** Hover/active color token (for color-change effects) */
|
|
6835
|
-
hoverColorToken:
|
|
7494
|
+
hoverColorToken: z8.string().nullable().optional(),
|
|
6836
7495
|
/** Padding preset */
|
|
6837
7496
|
padding: navLinkPaddingSchema.default("compact"),
|
|
6838
7497
|
/** Horizontal padding override (overrides horizontal component of padding preset) */
|
|
@@ -6988,15 +7647,15 @@ var NAV_LINK_PRESETS = {
|
|
|
6988
7647
|
var NAV_LINK_PRESET_IDS = Object.keys(NAV_LINK_PRESETS);
|
|
6989
7648
|
|
|
6990
7649
|
// ../theme-core/src/shared/componentStyles.ts
|
|
6991
|
-
import { z as
|
|
6992
|
-
var componentBorderSchema =
|
|
6993
|
-
width:
|
|
6994
|
-
style:
|
|
6995
|
-
colorToken:
|
|
7650
|
+
import { z as z9 } from "zod";
|
|
7651
|
+
var componentBorderSchema = z9.object({
|
|
7652
|
+
width: z9.enum(["none", "hairline", "thin", "medium", "thick"]).default("none"),
|
|
7653
|
+
style: z9.enum(["solid", "dashed"]).default("solid"),
|
|
7654
|
+
colorToken: z9.string().optional()
|
|
6996
7655
|
// defaults to "border" if not set
|
|
6997
7656
|
});
|
|
6998
|
-
var componentShadowSchema =
|
|
6999
|
-
elevation:
|
|
7657
|
+
var componentShadowSchema = z9.object({
|
|
7658
|
+
elevation: z9.enum(["none", "sm", "md", "lg", "xl", "2xl"]).default("sm")
|
|
7000
7659
|
});
|
|
7001
7660
|
|
|
7002
7661
|
// ../theme-core/src/blocks/vars/event-registration.ts
|
|
@@ -7450,7 +8109,7 @@ blockVarRegistry.set("course-details", generateCourseDetailsVars);
|
|
|
7450
8109
|
blockVarRegistry.set("course-registration", generateCourseRegistrationVars);
|
|
7451
8110
|
|
|
7452
8111
|
// ../theme-core/src/customCss/validation.ts
|
|
7453
|
-
import { z as
|
|
8112
|
+
import { z as z10 } from "zod";
|
|
7454
8113
|
var FORBIDDEN_SELECTORS = [":root", "html", "body"];
|
|
7455
8114
|
var UNIVERSAL_SELECTOR = "*";
|
|
7456
8115
|
var REMOTE_URL_PATTERN = /url\s*\(\s*['"]?(https?:|\/\/)/i;
|
|
@@ -7492,7 +8151,7 @@ function containsForbiddenSelector(selector) {
|
|
|
7492
8151
|
}
|
|
7493
8152
|
return false;
|
|
7494
8153
|
}
|
|
7495
|
-
var selectorSchema =
|
|
8154
|
+
var selectorSchema = z10.string().min(1, "Selector cannot be empty").max(200, "Selector too long (max 200 characters)").refine(
|
|
7496
8155
|
(s) => !containsForbiddenSelector(s),
|
|
7497
8156
|
{ message: "Global selectors (:root, html, body, *) are not allowed" }
|
|
7498
8157
|
);
|
|
@@ -7502,38 +8161,38 @@ function containsRemoteUrl(value) {
|
|
|
7502
8161
|
function containsJavascriptUrl(value) {
|
|
7503
8162
|
return JAVASCRIPT_URL_PATTERN.test(value);
|
|
7504
8163
|
}
|
|
7505
|
-
var declarationValueSchema =
|
|
8164
|
+
var declarationValueSchema = z10.string().max(500, "Declaration value too long (max 500 characters)").refine(
|
|
7506
8165
|
(v) => !containsRemoteUrl(v),
|
|
7507
8166
|
{ message: "Remote url() references are not allowed. Use local paths, data URIs, or fragment IDs." }
|
|
7508
8167
|
).refine(
|
|
7509
8168
|
(v) => !containsJavascriptUrl(v),
|
|
7510
8169
|
{ message: "javascript: URLs are not allowed" }
|
|
7511
8170
|
);
|
|
7512
|
-
var declarationsSchema =
|
|
7513
|
-
|
|
8171
|
+
var declarationsSchema = z10.record(
|
|
8172
|
+
z10.string().min(1).max(100),
|
|
7514
8173
|
// property name
|
|
7515
8174
|
declarationValueSchema
|
|
7516
8175
|
// property value
|
|
7517
8176
|
);
|
|
7518
|
-
var customCssRuleSchema =
|
|
7519
|
-
id:
|
|
8177
|
+
var customCssRuleSchema = z10.object({
|
|
8178
|
+
id: z10.string().min(1, "Rule ID is required").max(50, "Rule ID too long"),
|
|
7520
8179
|
selector: selectorSchema,
|
|
7521
8180
|
declarations: declarationsSchema
|
|
7522
8181
|
});
|
|
7523
8182
|
var blockCustomCssRuleSchema = customCssRuleSchema.extend({
|
|
7524
|
-
blockKind:
|
|
8183
|
+
blockKind: z10.string().min(1, "Block kind is required").max(50, "Block kind too long")
|
|
7525
8184
|
});
|
|
7526
|
-
var customCssRulesSchema =
|
|
7527
|
-
var blockCustomCssRulesSchema =
|
|
8185
|
+
var customCssRulesSchema = z10.array(customCssRuleSchema).optional();
|
|
8186
|
+
var blockCustomCssRulesSchema = z10.array(blockCustomCssRuleSchema).optional();
|
|
7528
8187
|
|
|
7529
8188
|
// ../theme-core/src/customCss/atRuleValidation.ts
|
|
7530
|
-
import { z as
|
|
8189
|
+
import { z as z11 } from "zod";
|
|
7531
8190
|
var KEYFRAME_OFFSET_PATTERN = /^(from|to|\d{1,3}%)$/i;
|
|
7532
8191
|
var ANIMATION_NAME_PATTERN = /^[a-zA-Z_-][a-zA-Z0-9_-]*$/;
|
|
7533
8192
|
var BLOCKED_AT_RULES = ["@import", "@charset"];
|
|
7534
8193
|
var BLOCKED_AT_RULE_PATTERN = /@(?:import|charset)\b/i;
|
|
7535
|
-
var ruleIdSchema =
|
|
7536
|
-
var nestedRuleSchema =
|
|
8194
|
+
var ruleIdSchema = z11.string().min(1, "Rule ID is required").max(50, "Rule ID too long");
|
|
8195
|
+
var nestedRuleSchema = z11.object({
|
|
7537
8196
|
selector: selectorSchema,
|
|
7538
8197
|
declarations: declarationsSchema
|
|
7539
8198
|
});
|
|
@@ -7545,73 +8204,73 @@ function isValidKeyframeOffset(offset) {
|
|
|
7545
8204
|
const value = parseInt(match[1], 10);
|
|
7546
8205
|
return value >= 0 && value <= 100;
|
|
7547
8206
|
}
|
|
7548
|
-
var keyframeOffsetSchema =
|
|
8207
|
+
var keyframeOffsetSchema = z11.string().transform((offset) => offset.trim()).refine(
|
|
7549
8208
|
(offset) => KEYFRAME_OFFSET_PATTERN.test(offset),
|
|
7550
8209
|
{ message: 'Invalid keyframe offset. Use percentages (0%, 50%, 100%) or "from"/"to"' }
|
|
7551
8210
|
).refine(
|
|
7552
8211
|
isValidKeyframeOffset,
|
|
7553
8212
|
{ message: "Keyframe offset must be between 0% and 100%" }
|
|
7554
8213
|
);
|
|
7555
|
-
var animationNameSchema =
|
|
8214
|
+
var animationNameSchema = z11.string().min(1, "Animation name is required").max(50, "Animation name too long").refine(
|
|
7556
8215
|
(name) => ANIMATION_NAME_PATTERN.test(name),
|
|
7557
8216
|
{ message: "Invalid animation name. Use letters, numbers, dashes, underscores (start with letter, dash, or underscore)" }
|
|
7558
8217
|
);
|
|
7559
|
-
var keyframeSchema =
|
|
8218
|
+
var keyframeSchema = z11.object({
|
|
7560
8219
|
offset: keyframeOffsetSchema,
|
|
7561
8220
|
declarations: declarationsSchema
|
|
7562
8221
|
});
|
|
7563
|
-
var keyframesAtRuleSchema =
|
|
8222
|
+
var keyframesAtRuleSchema = z11.object({
|
|
7564
8223
|
id: ruleIdSchema,
|
|
7565
|
-
type:
|
|
8224
|
+
type: z11.literal("keyframes"),
|
|
7566
8225
|
name: animationNameSchema,
|
|
7567
|
-
frames:
|
|
8226
|
+
frames: z11.array(keyframeSchema).min(1, "At least one keyframe is required")
|
|
7568
8227
|
});
|
|
7569
|
-
var fontFaceDeclarationsSchema =
|
|
8228
|
+
var fontFaceDeclarationsSchema = z11.record(z11.string().min(1).max(100), declarationValueSchema).refine(
|
|
7570
8229
|
(decls) => "fontFamily" in decls || "font-family" in decls,
|
|
7571
8230
|
{ message: "font-family is required in @font-face" }
|
|
7572
8231
|
);
|
|
7573
|
-
var fontFaceAtRuleSchema =
|
|
8232
|
+
var fontFaceAtRuleSchema = z11.object({
|
|
7574
8233
|
id: ruleIdSchema,
|
|
7575
|
-
type:
|
|
8234
|
+
type: z11.literal("font-face"),
|
|
7576
8235
|
declarations: fontFaceDeclarationsSchema
|
|
7577
8236
|
});
|
|
7578
|
-
var mediaQuerySchema =
|
|
7579
|
-
var mediaAtRuleSchema =
|
|
8237
|
+
var mediaQuerySchema = z11.string().min(1, "Media query is required").max(200, "Media query too long");
|
|
8238
|
+
var mediaAtRuleSchema = z11.object({
|
|
7580
8239
|
id: ruleIdSchema,
|
|
7581
|
-
type:
|
|
8240
|
+
type: z11.literal("media"),
|
|
7582
8241
|
query: mediaQuerySchema,
|
|
7583
|
-
rules:
|
|
8242
|
+
rules: z11.array(nestedRuleSchema).min(1, "At least one rule is required")
|
|
7584
8243
|
});
|
|
7585
|
-
var supportsConditionSchema =
|
|
7586
|
-
var supportsAtRuleSchema =
|
|
8244
|
+
var supportsConditionSchema = z11.string().min(1, "Supports condition is required").max(200, "Supports condition too long");
|
|
8245
|
+
var supportsAtRuleSchema = z11.object({
|
|
7587
8246
|
id: ruleIdSchema,
|
|
7588
|
-
type:
|
|
8247
|
+
type: z11.literal("supports"),
|
|
7589
8248
|
condition: supportsConditionSchema,
|
|
7590
|
-
rules:
|
|
8249
|
+
rules: z11.array(nestedRuleSchema).min(1, "At least one rule is required")
|
|
7591
8250
|
});
|
|
7592
8251
|
function containsBlockedAtRule(css) {
|
|
7593
8252
|
return BLOCKED_AT_RULE_PATTERN.test(css);
|
|
7594
8253
|
}
|
|
7595
|
-
var rawCssSchema =
|
|
8254
|
+
var rawCssSchema = z11.string().min(1, "CSS is required").max(5e3, "Raw CSS too long (max 5000 characters)").refine(
|
|
7596
8255
|
(css) => css.trim().startsWith("@"),
|
|
7597
8256
|
{ message: "Raw at-rule must start with @" }
|
|
7598
8257
|
).refine(
|
|
7599
8258
|
(css) => !containsBlockedAtRule(css),
|
|
7600
8259
|
{ message: `Blocked at-rules: ${BLOCKED_AT_RULES.join(", ")}. Use typed at-rules or local assets instead.` }
|
|
7601
8260
|
);
|
|
7602
|
-
var rawAtRuleSchema =
|
|
8261
|
+
var rawAtRuleSchema = z11.object({
|
|
7603
8262
|
id: ruleIdSchema,
|
|
7604
|
-
type:
|
|
8263
|
+
type: z11.literal("raw"),
|
|
7605
8264
|
css: rawCssSchema
|
|
7606
8265
|
});
|
|
7607
|
-
var customCssAtRuleSchema =
|
|
8266
|
+
var customCssAtRuleSchema = z11.discriminatedUnion("type", [
|
|
7608
8267
|
keyframesAtRuleSchema,
|
|
7609
8268
|
fontFaceAtRuleSchema,
|
|
7610
8269
|
mediaAtRuleSchema,
|
|
7611
8270
|
supportsAtRuleSchema,
|
|
7612
8271
|
rawAtRuleSchema
|
|
7613
8272
|
]);
|
|
7614
|
-
var customCssAtRulesSchema =
|
|
8273
|
+
var customCssAtRulesSchema = z11.array(customCssAtRuleSchema).optional();
|
|
7615
8274
|
|
|
7616
8275
|
// ../theme-core/src/responsiveMode.ts
|
|
7617
8276
|
var THEME_RESPONSIVE_MODE_ATTR = "data-rb-responsive-mode";
|