@riverbankcms/sdk 0.60.7 → 0.60.11
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/index.d.ts +2 -1
- package/dist/_dts/api/src/navigation/linkValue.d.ts +15 -2
- package/dist/_dts/api/src/navigation.d.ts +2 -0
- package/dist/_dts/blocks/src/index.d.ts +2 -1
- package/dist/_dts/blocks/src/system/manifest/fieldValidation/index.d.ts +185 -0
- package/dist/_dts/blocks/src/system/manifest/index.d.ts +1 -0
- package/dist/_dts/blocks/src/system/manifest/validation.d.ts +2 -84
- 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 +100 -2
- package/dist/_dts/db/src/schemas/forms.d.ts +24 -3
- package/dist/_dts/editor-blocks/src/widgets/link/LinkSummary.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/widgets/link/LinkWidget.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/widgets/link/utils.d.ts +1 -1
- package/dist/_dts/sdk/src/config/typed-entries.d.ts +36 -1
- package/dist/_dts/sdk/src/contracts/content.d.ts +13 -2
- package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
- package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +1 -0
- 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 +736 -427
- package/dist/client/bookings.mjs +746 -149
- package/dist/client/client.mjs +40389 -39847
- package/dist/client/hooks.mjs +1737 -1735
- package/dist/client/rendering/client.mjs +351 -113
- package/dist/client/rendering/islands.mjs +4549 -4366
- package/dist/client/rendering.mjs +1915 -1373
- package/dist/preview-next/client/runtime.mjs +1509 -945
- package/dist/server/components.mjs +3148 -2781
- package/dist/server/config-validation.mjs +1727 -1725
- package/dist/server/config.mjs +1727 -1725
- package/dist/server/data.mjs +1737 -1735
- package/dist/server/index.mjs +1 -1
- package/dist/server/next.mjs +3193 -2826
- package/dist/server/page-converter.mjs +10 -10
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +3161 -2794
- package/dist/server/rendering.mjs +3161 -2794
- package/dist/server/routing.mjs +297 -314
- package/dist/server/server.mjs +1738 -1736
- 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
|
|
|
@@ -3166,8 +3753,8 @@ function addLocalScheduleDays(date, days) {
|
|
|
3166
3753
|
}
|
|
3167
3754
|
|
|
3168
3755
|
// ../theme-core/src/accordions/types.ts
|
|
3169
|
-
import { z as
|
|
3170
|
-
var accordionIconSchema =
|
|
3756
|
+
import { z as z4 } from "zod";
|
|
3757
|
+
var accordionIconSchema = z4.enum([
|
|
3171
3758
|
"plus-minus",
|
|
3172
3759
|
// + becomes - (swap or rotate 90°)
|
|
3173
3760
|
"chevron",
|
|
@@ -3179,49 +3766,49 @@ var accordionIconSchema = z2.enum([
|
|
|
3179
3766
|
"circle-plus-minus"
|
|
3180
3767
|
// ⊕ becomes ⊖ (swap with fade)
|
|
3181
3768
|
]);
|
|
3182
|
-
var accordionSystemSchema =
|
|
3769
|
+
var accordionSystemSchema = z4.object({
|
|
3183
3770
|
// Visual styling (solid color only - gradients can be added later if needed)
|
|
3184
|
-
background:
|
|
3185
|
-
type:
|
|
3186
|
-
colorToken:
|
|
3771
|
+
background: z4.object({
|
|
3772
|
+
type: z4.literal("solid"),
|
|
3773
|
+
colorToken: z4.string()
|
|
3187
3774
|
}),
|
|
3188
3775
|
// Spacing (padding inside items)
|
|
3189
|
-
spacing:
|
|
3776
|
+
spacing: z4.enum(["none", "compact", "cozy", "medium", "comfortable", "spacious"]),
|
|
3190
3777
|
// Border radius (null = inherit from theme.corners)
|
|
3191
|
-
corners:
|
|
3778
|
+
corners: z4.enum(["square", "soft", "rounded", "pill"]).nullable(),
|
|
3192
3779
|
// Border styling (null = inherit from theme.border)
|
|
3193
|
-
border:
|
|
3194
|
-
widthClass:
|
|
3780
|
+
border: z4.object({
|
|
3781
|
+
widthClass: z4.string(),
|
|
3195
3782
|
// e.g., 'border', 'border-2', 'border-0'
|
|
3196
|
-
colorToken:
|
|
3783
|
+
colorToken: z4.string()
|
|
3197
3784
|
}).nullable(),
|
|
3198
3785
|
// Shadow (null = inherit from theme.shadow)
|
|
3199
|
-
shadow:
|
|
3200
|
-
elevation:
|
|
3201
|
-
softness:
|
|
3202
|
-
position:
|
|
3786
|
+
shadow: z4.object({
|
|
3787
|
+
elevation: z4.enum(["none", "low", "medium", "high"]),
|
|
3788
|
+
softness: z4.enum(["soft", "crisp", "hard"]).nullable(),
|
|
3789
|
+
position: z4.enum(["bottom", "bottom-right"])
|
|
3203
3790
|
}).nullable(),
|
|
3204
3791
|
// Icon style and animation
|
|
3205
|
-
icon:
|
|
3792
|
+
icon: z4.object({
|
|
3206
3793
|
style: accordionIconSchema,
|
|
3207
|
-
position:
|
|
3208
|
-
size:
|
|
3794
|
+
position: z4.enum(["left", "right"]),
|
|
3795
|
+
size: z4.enum(["sm", "md", "lg"])
|
|
3209
3796
|
}),
|
|
3210
3797
|
// Trigger (question) styling
|
|
3211
|
-
trigger:
|
|
3212
|
-
textColorToken:
|
|
3213
|
-
fontWeight:
|
|
3798
|
+
trigger: z4.object({
|
|
3799
|
+
textColorToken: z4.string(),
|
|
3800
|
+
fontWeight: z4.enum(["regular", "medium", "semibold", "bold"]).nullable()
|
|
3214
3801
|
// null = inherit from theme
|
|
3215
3802
|
}),
|
|
3216
3803
|
// Hover state styling
|
|
3217
|
-
hover:
|
|
3218
|
-
backgroundColorToken:
|
|
3219
|
-
textColorToken:
|
|
3220
|
-
borderColorToken:
|
|
3804
|
+
hover: z4.object({
|
|
3805
|
+
backgroundColorToken: z4.string().optional(),
|
|
3806
|
+
textColorToken: z4.string().optional(),
|
|
3807
|
+
borderColorToken: z4.string().optional()
|
|
3221
3808
|
}),
|
|
3222
3809
|
// Content (answer) styling
|
|
3223
|
-
content:
|
|
3224
|
-
textColorToken:
|
|
3810
|
+
content: z4.object({
|
|
3811
|
+
textColorToken: z4.string()
|
|
3225
3812
|
})
|
|
3226
3813
|
});
|
|
3227
3814
|
|
|
@@ -4219,7 +4806,7 @@ function MultiStepForm({
|
|
|
4219
4806
|
type: "button",
|
|
4220
4807
|
onClick: goToPrevious,
|
|
4221
4808
|
disabled: !canGoBack,
|
|
4222
|
-
className: "outline
|
|
4809
|
+
className: themeButtonClassName({ variant: "outline", size: "md" }),
|
|
4223
4810
|
children: backButtonLabel
|
|
4224
4811
|
}
|
|
4225
4812
|
),
|
|
@@ -4229,7 +4816,11 @@ function MultiStepForm({
|
|
|
4229
4816
|
type: "button",
|
|
4230
4817
|
onClick: goToNext,
|
|
4231
4818
|
disabled: !canGoNext,
|
|
4232
|
-
className:
|
|
4819
|
+
className: themeButtonClassName({
|
|
4820
|
+
variant: "primary",
|
|
4821
|
+
size: "md",
|
|
4822
|
+
extraClassName: "rb-flex-1"
|
|
4823
|
+
}),
|
|
4233
4824
|
children: [
|
|
4234
4825
|
(isValidating || isSubmitting) && /* @__PURE__ */ jsx4(
|
|
4235
4826
|
SpinnerNode,
|
|
@@ -5503,7 +6094,10 @@ function PaymentOptionSelectionStep({
|
|
|
5503
6094
|
"button",
|
|
5504
6095
|
{
|
|
5505
6096
|
type: "button",
|
|
5506
|
-
className:
|
|
6097
|
+
className: themeButtonClassName({
|
|
6098
|
+
variant: isSelected ? "primary" : "outline",
|
|
6099
|
+
size: "md"
|
|
6100
|
+
}),
|
|
5507
6101
|
style: paymentOptionLayoutStyle,
|
|
5508
6102
|
onClick: () => updateData({
|
|
5509
6103
|
selectedAppointmentPackageId: appointmentPackage.customerPassId,
|
|
@@ -5552,7 +6146,10 @@ function PaymentOptionSelectionStep({
|
|
|
5552
6146
|
"button",
|
|
5553
6147
|
{
|
|
5554
6148
|
type: "button",
|
|
5555
|
-
className:
|
|
6149
|
+
className: themeButtonClassName({
|
|
6150
|
+
variant: isSelected ? "primary" : "outline",
|
|
6151
|
+
size: "md"
|
|
6152
|
+
}),
|
|
5556
6153
|
style: paymentOptionLayoutStyle,
|
|
5557
6154
|
onClick: () => updateData({
|
|
5558
6155
|
selectedAppointmentPackageId: void 0,
|
|
@@ -6703,7 +7300,7 @@ var BookingFormClient = ({
|
|
|
6703
7300
|
"button",
|
|
6704
7301
|
{
|
|
6705
7302
|
type: "button",
|
|
6706
|
-
className: "secondary
|
|
7303
|
+
className: themeButtonClassName({ variant: "secondary", size: "sm" }),
|
|
6707
7304
|
onClick: clearFeedback,
|
|
6708
7305
|
children: "Dismiss"
|
|
6709
7306
|
}
|
|
@@ -6723,116 +7320,116 @@ var BookingFormClient = ({
|
|
|
6723
7320
|
import { useMemo as useMemo6 } from "react";
|
|
6724
7321
|
|
|
6725
7322
|
// ../theme-core/src/inputs/types.ts
|
|
6726
|
-
import { z as
|
|
6727
|
-
var inputSystemSchema =
|
|
7323
|
+
import { z as z6 } from "zod";
|
|
7324
|
+
var inputSystemSchema = z6.object({
|
|
6728
7325
|
// Base styling (applied to all inputs)
|
|
6729
|
-
base:
|
|
6730
|
-
background:
|
|
6731
|
-
|
|
6732
|
-
type:
|
|
6733
|
-
colorToken:
|
|
7326
|
+
base: z6.object({
|
|
7327
|
+
background: z6.union([
|
|
7328
|
+
z6.object({
|
|
7329
|
+
type: z6.literal("solid"),
|
|
7330
|
+
colorToken: z6.string()
|
|
6734
7331
|
}),
|
|
6735
|
-
|
|
6736
|
-
type:
|
|
7332
|
+
z6.object({
|
|
7333
|
+
type: z6.literal("transparent")
|
|
6737
7334
|
})
|
|
6738
7335
|
]),
|
|
6739
|
-
textColorToken:
|
|
6740
|
-
border:
|
|
6741
|
-
widthClass:
|
|
7336
|
+
textColorToken: z6.string(),
|
|
7337
|
+
border: z6.object({
|
|
7338
|
+
widthClass: z6.string(),
|
|
6742
7339
|
// e.g., 'border', 'border-2'
|
|
6743
|
-
colorToken:
|
|
6744
|
-
style:
|
|
7340
|
+
colorToken: z6.string(),
|
|
7341
|
+
style: z6.enum(["all", "underline"]).optional()
|
|
6745
7342
|
}),
|
|
6746
|
-
corners:
|
|
7343
|
+
corners: z6.enum(["square", "soft", "rounded", "pill"]).nullable(),
|
|
6747
7344
|
// null = inherit from theme.corners
|
|
6748
|
-
shadow:
|
|
6749
|
-
elevation:
|
|
6750
|
-
softness:
|
|
7345
|
+
shadow: z6.object({
|
|
7346
|
+
elevation: z6.enum(["none", "low", "medium"]),
|
|
7347
|
+
softness: z6.enum(["soft", "crisp", "hard"]).nullable()
|
|
6751
7348
|
}).nullable(),
|
|
6752
|
-
spacing:
|
|
7349
|
+
spacing: z6.enum(["compact", "cozy", "medium", "comfortable"]),
|
|
6753
7350
|
// padding inside inputs
|
|
6754
|
-
fontSize:
|
|
7351
|
+
fontSize: z6.enum(["sm", "base", "lg"])
|
|
6755
7352
|
}),
|
|
6756
7353
|
// Label styling
|
|
6757
|
-
label:
|
|
6758
|
-
textColorToken:
|
|
6759
|
-
fontWeight:
|
|
6760
|
-
fontSize:
|
|
6761
|
-
textTransform:
|
|
6762
|
-
letterSpacing:
|
|
6763
|
-
opacity:
|
|
7354
|
+
label: z6.object({
|
|
7355
|
+
textColorToken: z6.string(),
|
|
7356
|
+
fontWeight: z6.enum(["regular", "medium", "semibold", "bold", "black"]),
|
|
7357
|
+
fontSize: z6.enum(["2xs", "xs", "sm", "base"]),
|
|
7358
|
+
textTransform: z6.enum(["none", "uppercase", "lowercase", "capitalize"]).optional(),
|
|
7359
|
+
letterSpacing: z6.enum(["normal", "wide", "wider", "widest"]).optional(),
|
|
7360
|
+
opacity: z6.number().min(0.2).max(1).optional()
|
|
6764
7361
|
}),
|
|
6765
7362
|
// Focus state
|
|
6766
|
-
focus:
|
|
6767
|
-
ringColorToken:
|
|
6768
|
-
ringWidth:
|
|
6769
|
-
borderColorToken:
|
|
7363
|
+
focus: z6.object({
|
|
7364
|
+
ringColorToken: z6.string(),
|
|
7365
|
+
ringWidth: z6.enum(["0", "1", "2", "3"]),
|
|
7366
|
+
borderColorToken: z6.string().optional()
|
|
6770
7367
|
// Change border color on focus
|
|
6771
7368
|
}),
|
|
6772
7369
|
// Error state (for validation feedback)
|
|
6773
|
-
error:
|
|
6774
|
-
borderColorToken:
|
|
6775
|
-
textColorToken:
|
|
7370
|
+
error: z6.object({
|
|
7371
|
+
borderColorToken: z6.string(),
|
|
7372
|
+
textColorToken: z6.string()
|
|
6776
7373
|
}),
|
|
6777
7374
|
// Disabled state
|
|
6778
|
-
disabled:
|
|
6779
|
-
backgroundColorToken:
|
|
6780
|
-
textColorToken:
|
|
6781
|
-
opacity:
|
|
7375
|
+
disabled: z6.object({
|
|
7376
|
+
backgroundColorToken: z6.string(),
|
|
7377
|
+
textColorToken: z6.string(),
|
|
7378
|
+
opacity: z6.number().min(0.3).max(0.7)
|
|
6782
7379
|
})
|
|
6783
7380
|
});
|
|
6784
7381
|
|
|
6785
7382
|
// ../theme-core/src/navigation/types.ts
|
|
6786
|
-
import { z as
|
|
7383
|
+
import { z as z8 } from "zod";
|
|
6787
7384
|
|
|
6788
7385
|
// ../theme-core/src/interactive/baseSchema.ts
|
|
6789
|
-
import { z as
|
|
6790
|
-
var interactiveTypographySchema =
|
|
7386
|
+
import { z as z7 } from "zod";
|
|
7387
|
+
var interactiveTypographySchema = z7.object({
|
|
6791
7388
|
/** Font family source */
|
|
6792
|
-
typography:
|
|
7389
|
+
typography: z7.enum(["body", "heading"]).default("body"),
|
|
6793
7390
|
/** Font weight */
|
|
6794
|
-
fontWeight:
|
|
7391
|
+
fontWeight: z7.enum(["regular", "medium", "semibold", "bold"]).default("medium"),
|
|
6795
7392
|
/** Text transform */
|
|
6796
|
-
textTransform:
|
|
7393
|
+
textTransform: z7.enum(["none", "uppercase", "capitalize"]).default("none"),
|
|
6797
7394
|
/** Italic style */
|
|
6798
|
-
italic:
|
|
7395
|
+
italic: z7.boolean().default(false)
|
|
6799
7396
|
});
|
|
6800
|
-
var effectApplicationSchema2 =
|
|
7397
|
+
var effectApplicationSchema2 = z7.object({
|
|
6801
7398
|
/** Effect preset ID */
|
|
6802
|
-
effectId:
|
|
7399
|
+
effectId: z7.string(),
|
|
6803
7400
|
/** User-provided customization options */
|
|
6804
|
-
options:
|
|
7401
|
+
options: z7.record(z7.string(), z7.any()).optional()
|
|
6805
7402
|
});
|
|
6806
|
-
var effectCompositionSchema =
|
|
7403
|
+
var effectCompositionSchema = z7.object({
|
|
6807
7404
|
/** Effects always applied */
|
|
6808
|
-
base:
|
|
7405
|
+
base: z7.array(effectApplicationSchema2).optional(),
|
|
6809
7406
|
/** Effects applied on hover */
|
|
6810
|
-
hover:
|
|
7407
|
+
hover: z7.array(effectApplicationSchema2).optional(),
|
|
6811
7408
|
/** Effects applied on active/pressed */
|
|
6812
|
-
active:
|
|
7409
|
+
active: z7.array(effectApplicationSchema2).optional(),
|
|
6813
7410
|
/** Effects applied on focus */
|
|
6814
|
-
focus:
|
|
7411
|
+
focus: z7.array(effectApplicationSchema2).optional()
|
|
6815
7412
|
});
|
|
6816
7413
|
|
|
6817
7414
|
// ../theme-core/src/navigation/types.ts
|
|
6818
|
-
var navLinkPaddingSchema =
|
|
6819
|
-
var navLinkPaddingXSchema =
|
|
6820
|
-
var navLinkBorderRadiusSchema =
|
|
6821
|
-
var navLinkTextSizeSchema =
|
|
6822
|
-
var navLinkLetterSpacingSchema =
|
|
6823
|
-
var navLinkStyleSchema =
|
|
7415
|
+
var navLinkPaddingSchema = z8.enum(["none", "compact", "default"]);
|
|
7416
|
+
var navLinkPaddingXSchema = z8.enum(["none", "tight", "compact", "default", "relaxed", "spacious"]);
|
|
7417
|
+
var navLinkBorderRadiusSchema = z8.enum(["none", "sm", "md", "full"]);
|
|
7418
|
+
var navLinkTextSizeSchema = z8.enum(["xs", "sm", "base", "lg"]);
|
|
7419
|
+
var navLinkLetterSpacingSchema = z8.enum(["normal", "wide", "wider", "widest"]);
|
|
7420
|
+
var navLinkStyleSchema = z8.object({
|
|
6824
7421
|
/** Display name for the style */
|
|
6825
|
-
name:
|
|
7422
|
+
name: z8.string().min(1).max(30).optional(),
|
|
6826
7423
|
/** Typography settings (inherited from interactive base) */
|
|
6827
7424
|
...interactiveTypographySchema.shape,
|
|
6828
7425
|
/** Text color token */
|
|
6829
|
-
colorToken:
|
|
7426
|
+
colorToken: z8.string().default("text"),
|
|
6830
7427
|
/** Optional text size override */
|
|
6831
7428
|
textSize: navLinkTextSizeSchema.optional(),
|
|
6832
7429
|
/** Optional letter spacing override */
|
|
6833
7430
|
letterSpacing: navLinkLetterSpacingSchema.optional(),
|
|
6834
7431
|
/** Hover/active color token (for color-change effects) */
|
|
6835
|
-
hoverColorToken:
|
|
7432
|
+
hoverColorToken: z8.string().nullable().optional(),
|
|
6836
7433
|
/** Padding preset */
|
|
6837
7434
|
padding: navLinkPaddingSchema.default("compact"),
|
|
6838
7435
|
/** Horizontal padding override (overrides horizontal component of padding preset) */
|
|
@@ -6988,15 +7585,15 @@ var NAV_LINK_PRESETS = {
|
|
|
6988
7585
|
var NAV_LINK_PRESET_IDS = Object.keys(NAV_LINK_PRESETS);
|
|
6989
7586
|
|
|
6990
7587
|
// ../theme-core/src/shared/componentStyles.ts
|
|
6991
|
-
import { z as
|
|
6992
|
-
var componentBorderSchema =
|
|
6993
|
-
width:
|
|
6994
|
-
style:
|
|
6995
|
-
colorToken:
|
|
7588
|
+
import { z as z9 } from "zod";
|
|
7589
|
+
var componentBorderSchema = z9.object({
|
|
7590
|
+
width: z9.enum(["none", "hairline", "thin", "medium", "thick"]).default("none"),
|
|
7591
|
+
style: z9.enum(["solid", "dashed"]).default("solid"),
|
|
7592
|
+
colorToken: z9.string().optional()
|
|
6996
7593
|
// defaults to "border" if not set
|
|
6997
7594
|
});
|
|
6998
|
-
var componentShadowSchema =
|
|
6999
|
-
elevation:
|
|
7595
|
+
var componentShadowSchema = z9.object({
|
|
7596
|
+
elevation: z9.enum(["none", "sm", "md", "lg", "xl", "2xl"]).default("sm")
|
|
7000
7597
|
});
|
|
7001
7598
|
|
|
7002
7599
|
// ../theme-core/src/blocks/vars/event-registration.ts
|
|
@@ -7450,7 +8047,7 @@ blockVarRegistry.set("course-details", generateCourseDetailsVars);
|
|
|
7450
8047
|
blockVarRegistry.set("course-registration", generateCourseRegistrationVars);
|
|
7451
8048
|
|
|
7452
8049
|
// ../theme-core/src/customCss/validation.ts
|
|
7453
|
-
import { z as
|
|
8050
|
+
import { z as z10 } from "zod";
|
|
7454
8051
|
var FORBIDDEN_SELECTORS = [":root", "html", "body"];
|
|
7455
8052
|
var UNIVERSAL_SELECTOR = "*";
|
|
7456
8053
|
var REMOTE_URL_PATTERN = /url\s*\(\s*['"]?(https?:|\/\/)/i;
|
|
@@ -7492,7 +8089,7 @@ function containsForbiddenSelector(selector) {
|
|
|
7492
8089
|
}
|
|
7493
8090
|
return false;
|
|
7494
8091
|
}
|
|
7495
|
-
var selectorSchema =
|
|
8092
|
+
var selectorSchema = z10.string().min(1, "Selector cannot be empty").max(200, "Selector too long (max 200 characters)").refine(
|
|
7496
8093
|
(s) => !containsForbiddenSelector(s),
|
|
7497
8094
|
{ message: "Global selectors (:root, html, body, *) are not allowed" }
|
|
7498
8095
|
);
|
|
@@ -7502,38 +8099,38 @@ function containsRemoteUrl(value) {
|
|
|
7502
8099
|
function containsJavascriptUrl(value) {
|
|
7503
8100
|
return JAVASCRIPT_URL_PATTERN.test(value);
|
|
7504
8101
|
}
|
|
7505
|
-
var declarationValueSchema =
|
|
8102
|
+
var declarationValueSchema = z10.string().max(500, "Declaration value too long (max 500 characters)").refine(
|
|
7506
8103
|
(v) => !containsRemoteUrl(v),
|
|
7507
8104
|
{ message: "Remote url() references are not allowed. Use local paths, data URIs, or fragment IDs." }
|
|
7508
8105
|
).refine(
|
|
7509
8106
|
(v) => !containsJavascriptUrl(v),
|
|
7510
8107
|
{ message: "javascript: URLs are not allowed" }
|
|
7511
8108
|
);
|
|
7512
|
-
var declarationsSchema =
|
|
7513
|
-
|
|
8109
|
+
var declarationsSchema = z10.record(
|
|
8110
|
+
z10.string().min(1).max(100),
|
|
7514
8111
|
// property name
|
|
7515
8112
|
declarationValueSchema
|
|
7516
8113
|
// property value
|
|
7517
8114
|
);
|
|
7518
|
-
var customCssRuleSchema =
|
|
7519
|
-
id:
|
|
8115
|
+
var customCssRuleSchema = z10.object({
|
|
8116
|
+
id: z10.string().min(1, "Rule ID is required").max(50, "Rule ID too long"),
|
|
7520
8117
|
selector: selectorSchema,
|
|
7521
8118
|
declarations: declarationsSchema
|
|
7522
8119
|
});
|
|
7523
8120
|
var blockCustomCssRuleSchema = customCssRuleSchema.extend({
|
|
7524
|
-
blockKind:
|
|
8121
|
+
blockKind: z10.string().min(1, "Block kind is required").max(50, "Block kind too long")
|
|
7525
8122
|
});
|
|
7526
|
-
var customCssRulesSchema =
|
|
7527
|
-
var blockCustomCssRulesSchema =
|
|
8123
|
+
var customCssRulesSchema = z10.array(customCssRuleSchema).optional();
|
|
8124
|
+
var blockCustomCssRulesSchema = z10.array(blockCustomCssRuleSchema).optional();
|
|
7528
8125
|
|
|
7529
8126
|
// ../theme-core/src/customCss/atRuleValidation.ts
|
|
7530
|
-
import { z as
|
|
8127
|
+
import { z as z11 } from "zod";
|
|
7531
8128
|
var KEYFRAME_OFFSET_PATTERN = /^(from|to|\d{1,3}%)$/i;
|
|
7532
8129
|
var ANIMATION_NAME_PATTERN = /^[a-zA-Z_-][a-zA-Z0-9_-]*$/;
|
|
7533
8130
|
var BLOCKED_AT_RULES = ["@import", "@charset"];
|
|
7534
8131
|
var BLOCKED_AT_RULE_PATTERN = /@(?:import|charset)\b/i;
|
|
7535
|
-
var ruleIdSchema =
|
|
7536
|
-
var nestedRuleSchema =
|
|
8132
|
+
var ruleIdSchema = z11.string().min(1, "Rule ID is required").max(50, "Rule ID too long");
|
|
8133
|
+
var nestedRuleSchema = z11.object({
|
|
7537
8134
|
selector: selectorSchema,
|
|
7538
8135
|
declarations: declarationsSchema
|
|
7539
8136
|
});
|
|
@@ -7545,73 +8142,73 @@ function isValidKeyframeOffset(offset) {
|
|
|
7545
8142
|
const value = parseInt(match[1], 10);
|
|
7546
8143
|
return value >= 0 && value <= 100;
|
|
7547
8144
|
}
|
|
7548
|
-
var keyframeOffsetSchema =
|
|
8145
|
+
var keyframeOffsetSchema = z11.string().transform((offset) => offset.trim()).refine(
|
|
7549
8146
|
(offset) => KEYFRAME_OFFSET_PATTERN.test(offset),
|
|
7550
8147
|
{ message: 'Invalid keyframe offset. Use percentages (0%, 50%, 100%) or "from"/"to"' }
|
|
7551
8148
|
).refine(
|
|
7552
8149
|
isValidKeyframeOffset,
|
|
7553
8150
|
{ message: "Keyframe offset must be between 0% and 100%" }
|
|
7554
8151
|
);
|
|
7555
|
-
var animationNameSchema =
|
|
8152
|
+
var animationNameSchema = z11.string().min(1, "Animation name is required").max(50, "Animation name too long").refine(
|
|
7556
8153
|
(name) => ANIMATION_NAME_PATTERN.test(name),
|
|
7557
8154
|
{ message: "Invalid animation name. Use letters, numbers, dashes, underscores (start with letter, dash, or underscore)" }
|
|
7558
8155
|
);
|
|
7559
|
-
var keyframeSchema =
|
|
8156
|
+
var keyframeSchema = z11.object({
|
|
7560
8157
|
offset: keyframeOffsetSchema,
|
|
7561
8158
|
declarations: declarationsSchema
|
|
7562
8159
|
});
|
|
7563
|
-
var keyframesAtRuleSchema =
|
|
8160
|
+
var keyframesAtRuleSchema = z11.object({
|
|
7564
8161
|
id: ruleIdSchema,
|
|
7565
|
-
type:
|
|
8162
|
+
type: z11.literal("keyframes"),
|
|
7566
8163
|
name: animationNameSchema,
|
|
7567
|
-
frames:
|
|
8164
|
+
frames: z11.array(keyframeSchema).min(1, "At least one keyframe is required")
|
|
7568
8165
|
});
|
|
7569
|
-
var fontFaceDeclarationsSchema =
|
|
8166
|
+
var fontFaceDeclarationsSchema = z11.record(z11.string().min(1).max(100), declarationValueSchema).refine(
|
|
7570
8167
|
(decls) => "fontFamily" in decls || "font-family" in decls,
|
|
7571
8168
|
{ message: "font-family is required in @font-face" }
|
|
7572
8169
|
);
|
|
7573
|
-
var fontFaceAtRuleSchema =
|
|
8170
|
+
var fontFaceAtRuleSchema = z11.object({
|
|
7574
8171
|
id: ruleIdSchema,
|
|
7575
|
-
type:
|
|
8172
|
+
type: z11.literal("font-face"),
|
|
7576
8173
|
declarations: fontFaceDeclarationsSchema
|
|
7577
8174
|
});
|
|
7578
|
-
var mediaQuerySchema =
|
|
7579
|
-
var mediaAtRuleSchema =
|
|
8175
|
+
var mediaQuerySchema = z11.string().min(1, "Media query is required").max(200, "Media query too long");
|
|
8176
|
+
var mediaAtRuleSchema = z11.object({
|
|
7580
8177
|
id: ruleIdSchema,
|
|
7581
|
-
type:
|
|
8178
|
+
type: z11.literal("media"),
|
|
7582
8179
|
query: mediaQuerySchema,
|
|
7583
|
-
rules:
|
|
8180
|
+
rules: z11.array(nestedRuleSchema).min(1, "At least one rule is required")
|
|
7584
8181
|
});
|
|
7585
|
-
var supportsConditionSchema =
|
|
7586
|
-
var supportsAtRuleSchema =
|
|
8182
|
+
var supportsConditionSchema = z11.string().min(1, "Supports condition is required").max(200, "Supports condition too long");
|
|
8183
|
+
var supportsAtRuleSchema = z11.object({
|
|
7587
8184
|
id: ruleIdSchema,
|
|
7588
|
-
type:
|
|
8185
|
+
type: z11.literal("supports"),
|
|
7589
8186
|
condition: supportsConditionSchema,
|
|
7590
|
-
rules:
|
|
8187
|
+
rules: z11.array(nestedRuleSchema).min(1, "At least one rule is required")
|
|
7591
8188
|
});
|
|
7592
8189
|
function containsBlockedAtRule(css) {
|
|
7593
8190
|
return BLOCKED_AT_RULE_PATTERN.test(css);
|
|
7594
8191
|
}
|
|
7595
|
-
var rawCssSchema =
|
|
8192
|
+
var rawCssSchema = z11.string().min(1, "CSS is required").max(5e3, "Raw CSS too long (max 5000 characters)").refine(
|
|
7596
8193
|
(css) => css.trim().startsWith("@"),
|
|
7597
8194
|
{ message: "Raw at-rule must start with @" }
|
|
7598
8195
|
).refine(
|
|
7599
8196
|
(css) => !containsBlockedAtRule(css),
|
|
7600
8197
|
{ message: `Blocked at-rules: ${BLOCKED_AT_RULES.join(", ")}. Use typed at-rules or local assets instead.` }
|
|
7601
8198
|
);
|
|
7602
|
-
var rawAtRuleSchema =
|
|
8199
|
+
var rawAtRuleSchema = z11.object({
|
|
7603
8200
|
id: ruleIdSchema,
|
|
7604
|
-
type:
|
|
8201
|
+
type: z11.literal("raw"),
|
|
7605
8202
|
css: rawCssSchema
|
|
7606
8203
|
});
|
|
7607
|
-
var customCssAtRuleSchema =
|
|
8204
|
+
var customCssAtRuleSchema = z11.discriminatedUnion("type", [
|
|
7608
8205
|
keyframesAtRuleSchema,
|
|
7609
8206
|
fontFaceAtRuleSchema,
|
|
7610
8207
|
mediaAtRuleSchema,
|
|
7611
8208
|
supportsAtRuleSchema,
|
|
7612
8209
|
rawAtRuleSchema
|
|
7613
8210
|
]);
|
|
7614
|
-
var customCssAtRulesSchema =
|
|
8211
|
+
var customCssAtRulesSchema = z11.array(customCssAtRuleSchema).optional();
|
|
7615
8212
|
|
|
7616
8213
|
// ../theme-core/src/responsiveMode.ts
|
|
7617
8214
|
var THEME_RESPONSIVE_MODE_ATTR = "data-rb-responsive-mode";
|