@riverbankcms/sdk 0.60.3 → 0.60.7
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/appointmentSetup.d.ts +2 -2
- package/dist/_dts/api/src/bookingConfig.d.ts +6 -0
- package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +45 -3
- package/dist/_dts/api/src/bookingOperations.d.ts +40 -3
- package/dist/_dts/api/src/bookingVerticals.d.ts +1 -0
- package/dist/_dts/api/src/courses.d.ts +1 -5
- package/dist/_dts/api/src/endpoints.d.ts +80 -1
- package/dist/_dts/api/src/index.d.ts +3 -2
- package/dist/_dts/api/src/navigation/contracts.d.ts +9 -9
- package/dist/_dts/api/src/public/endpoints.d.ts +1 -1
- package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +15 -1
- package/dist/_dts/api/src/resources.d.ts +1 -1
- package/dist/_dts/api/src/siteBanner.d.ts +8 -8
- package/dist/_dts/api/src/siteManagementEndpoints.d.ts +3 -39
- package/dist/_dts/api/src/siteOnboarding.d.ts +1 -0
- package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +2 -0
- package/dist/_dts/api/src/teamMembers.d.ts +27 -0
- package/dist/_dts/blocks/src/system/blocks/courses/shared/schemas.d.ts +35 -29
- package/dist/_dts/blocks/src/system/blocks/courses/shared/types.d.ts +1 -5
- package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +40 -34
- package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +1 -5
- package/dist/_dts/blocks/src/system/blocks/product-list.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/products/shared.d.ts +2 -2
- package/dist/_dts/blocks/src/system/blocks/shared/bookingPaymentTerms.d.ts +9 -9
- package/dist/_dts/blocks/src/system/blocks/shared/teamMembers.d.ts +24 -0
- package/dist/_dts/blocks/src/system/blocks/team-members.d.ts +18 -8
- package/dist/_dts/blocks/src/system/constants/background.d.ts +1 -1
- package/dist/_dts/blocks/src/system/data/loaderEndpoints.d.ts +1 -1
- package/dist/_dts/blocks/src/system/data/utils.d.ts +1 -1
- package/dist/_dts/blocks/src/system/manifest/schema.d.ts +201 -201
- package/dist/_dts/blocks/src/system/manifest/validation.d.ts +2 -2
- package/dist/_dts/blocks/src/system/node/fragments/ctaButton.d.ts +2 -0
- package/dist/_dts/blocks/src/system/node/schema.d.ts +5 -5
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +4 -4
- package/dist/_dts/blocks/src/system/runtime/shared/themedButtonClass.d.ts +11 -0
- package/dist/_dts/blocks/src/system/transforms/registry/ui.d.ts +1 -1
- package/dist/_dts/blocks/src/system/transforms/typed.d.ts +3 -3
- package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +10 -2
- package/dist/_dts/content-model/src/content-types/schema.d.ts +8 -8
- package/dist/_dts/content-model/src/metadataConfig.d.ts +1 -0
- package/dist/_dts/core/src/branded.d.ts +2 -0
- package/dist/_dts/core/src/participants.d.ts +32 -1
- package/dist/_dts/core/src/rectification.d.ts +79 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +130 -14
- package/dist/_dts/db/src/schemas/forms.d.ts +61 -61
- package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +17 -15
- package/dist/_dts/sdk/src/client/types.d.ts +10 -2
- package/dist/_dts/sdk/src/config/types.d.ts +1 -1
- package/dist/_dts/sdk/src/config/validation.d.ts +40 -37
- package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +17 -8
- package/dist/_dts/sdk/src/data/prefetchBlockData.d.ts +1 -1
- package/dist/_dts/sdk/src/manifest/passes/pass1-fields.d.ts +19 -19
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +87 -69
- package/dist/_dts/sdk/src/public-api/runtime.d.ts +1 -1
- package/dist/_dts/sdk/src/rendering/islands/types.d.ts +2 -5
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/theme-core/src/accordions/types.d.ts +11 -11
- package/dist/_dts/theme-core/src/buttons/personalities/brushed-wash.d.ts +7 -2
- package/dist/_dts/theme-core/src/buttons/personalities/confident-chip.d.ts +7 -2
- package/dist/_dts/theme-core/src/buttons/personalities/editorial-link.d.ts +7 -2
- package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +86 -5
- package/dist/_dts/theme-core/src/buttons/personalities/ink-stamp.d.ts +7 -2
- package/dist/_dts/theme-core/src/buttons/personalities/pebble.d.ts +7 -2
- package/dist/_dts/theme-core/src/buttons/personalities/soft-pill.d.ts +7 -2
- package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +20 -20
- package/dist/_dts/theme-core/src/buttons/types.d.ts +27 -27
- package/dist/_dts/theme-core/src/cards/types.d.ts +17 -17
- package/dist/_dts/theme-core/src/inputs/types.d.ts +14 -14
- package/dist/_dts/theme-core/src/interactive/baseSchema.d.ts +2 -2
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +438 -438
- package/dist/_dts/theme-core/src/navigation/types.d.ts +16 -16
- package/dist/_dts/theme-core/src/palette/variants/brand-led.d.ts +33 -9
- package/dist/_dts/theme-core/src/palette/variants/high-contrast.d.ts +33 -9
- package/dist/_dts/theme-core/src/palette/variants/index.d.ts +200 -4
- package/dist/_dts/theme-core/src/palette/variants/soft-natural.d.ts +33 -9
- package/dist/_dts/theme-core/src/palette/variants/types.d.ts +25 -25
- package/dist/_dts/theme-core/src/palette/variants/warm-neutral.d.ts +33 -9
- package/dist/_dts/theme-core/src/schema.d.ts +662 -662
- package/dist/_dts/theme-core/src/shared/componentStyles.d.ts +4 -4
- package/dist/_dts/theme-core/src/site-styles/curatedChoices.d.ts +27 -0
- package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +48 -194
- package/dist/_dts/theme-core/src/site-styles/designState.d.ts +15 -15
- package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +7 -7
- package/dist/_dts/theme-core/src/site-styles/index.d.ts +2 -1
- package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +12 -14
- package/dist/_dts/theme-core/src/site-styles/styleTags.d.ts +46 -0
- package/dist/_dts/theme-core/src/site-styles/tokenRecipes.d.ts +5 -5
- package/dist/_dts/ui/src/badge.d.ts +1 -1
- package/dist/_dts/ui/src/button-group.d.ts +1 -1
- package/dist/_dts/ui/src/button.d.ts +2 -2
- package/dist/_dts/ui/src/callout.d.ts +1 -1
- package/dist/_dts/ui/src/card.d.ts +1 -1
- package/dist/_dts/ui/src/palette/ColorChooserDialog.d.ts +47 -0
- package/dist/_dts/ui/src/palette/ColorSlotButton.d.ts +15 -0
- package/dist/_dts/ui/src/palette/ColorSwatchButton.d.ts +15 -0
- package/dist/_dts/ui/src/palette/PaletteTokenEditor.d.ts +50 -0
- package/dist/_dts/ui/src/palette/hex.d.ts +23 -0
- package/dist/_dts/ui/src/palette/index.d.ts +14 -0
- package/dist/_dts/ui/src/surface.d.ts +2 -2
- package/dist/_dts/ui/src/toggle.d.ts +4 -4
- package/dist/cli/index.mjs +1535 -1183
- package/dist/client/client.mjs +3944 -3454
- package/dist/client/hooks.mjs +2053 -1743
- package/dist/client/rendering/client.mjs +311 -167
- package/dist/client/rendering/islands.mjs +159 -73
- package/dist/client/rendering.mjs +1918 -1447
- package/dist/preview-next/before-render.mjs +147 -1
- package/dist/preview-next/client/runtime.mjs +2828 -2174
- package/dist/preview-next/middleware.mjs +147 -1
- package/dist/server/components.mjs +4311 -3928
- package/dist/server/config-validation.mjs +2201 -1906
- package/dist/server/config.mjs +2201 -1906
- package/dist/server/data.mjs +2053 -1743
- package/dist/server/index.mjs +171 -4
- package/dist/server/next.mjs +3442 -3024
- package/dist/server/page-converter.mjs +2109 -1962
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +4021 -3622
- package/dist/server/rendering.mjs +4021 -3622
- package/dist/server/routing.mjs +2377 -2058
- package/dist/server/server.mjs +2244 -1915
- package/dist/server/theme-bridge.mjs +130 -126
- package/dist/server/theme.mjs +131 -129
- package/package.json +1 -1
- package/dist/_dts/theme-core/src/site-styles/compatibility.d.ts +0 -109
package/dist/server/data.mjs
CHANGED
|
@@ -850,13 +850,150 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
850
850
|
"server:internal_error"
|
|
851
851
|
]
|
|
852
852
|
},
|
|
853
|
-
|
|
853
|
+
removeAppointmentResource: {
|
|
854
854
|
path: "/sites/{siteId}/bookings/resources/{resourceId}",
|
|
855
855
|
method: "DELETE",
|
|
856
856
|
auth: "user",
|
|
857
857
|
responseKind: "json",
|
|
858
858
|
errors: ["resource:not_found", "server:internal_error"]
|
|
859
859
|
},
|
|
860
|
+
createTeamMemberProfile: {
|
|
861
|
+
path: "/sites/{siteId}/bookings/resources/{resourceId}/profile",
|
|
862
|
+
method: "POST",
|
|
863
|
+
auth: "user",
|
|
864
|
+
responseKind: "json",
|
|
865
|
+
errors: [
|
|
866
|
+
"validation:invalid_input",
|
|
867
|
+
"resource:not_found",
|
|
868
|
+
"resource:conflict",
|
|
869
|
+
"server:internal_error"
|
|
870
|
+
]
|
|
871
|
+
},
|
|
872
|
+
updateTeamMemberProfilePolicy: {
|
|
873
|
+
path: "/sites/{siteId}/bookings/resources/profile-policy",
|
|
874
|
+
method: "PUT",
|
|
875
|
+
auth: "user",
|
|
876
|
+
responseKind: "json",
|
|
877
|
+
errors: ["validation:invalid_input", "server:internal_error"]
|
|
878
|
+
},
|
|
879
|
+
updateTeamMemberProfileContent: {
|
|
880
|
+
path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/content",
|
|
881
|
+
method: "PUT",
|
|
882
|
+
tags: [
|
|
883
|
+
"site-{siteId}",
|
|
884
|
+
"content-{siteId}-team-member",
|
|
885
|
+
"content-entry-{entryId}"
|
|
886
|
+
],
|
|
887
|
+
auth: "user",
|
|
888
|
+
responseKind: "json",
|
|
889
|
+
errors: [
|
|
890
|
+
"validation:invalid_input",
|
|
891
|
+
"resource:not_found",
|
|
892
|
+
"resource:conflict",
|
|
893
|
+
"server:internal_error"
|
|
894
|
+
]
|
|
895
|
+
},
|
|
896
|
+
publishTeamMemberProfile: {
|
|
897
|
+
path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/publish",
|
|
898
|
+
method: "POST",
|
|
899
|
+
tags: [
|
|
900
|
+
"site-{siteId}",
|
|
901
|
+
"content-{siteId}-team-member",
|
|
902
|
+
"content-entry-{entryId}"
|
|
903
|
+
],
|
|
904
|
+
auth: "user",
|
|
905
|
+
responseKind: "json",
|
|
906
|
+
errors: [
|
|
907
|
+
"validation:invalid_input",
|
|
908
|
+
"resource:not_found",
|
|
909
|
+
"server:internal_error"
|
|
910
|
+
]
|
|
911
|
+
},
|
|
912
|
+
discardTeamMemberProfileDraft: {
|
|
913
|
+
path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/discard",
|
|
914
|
+
method: "POST",
|
|
915
|
+
tags: [
|
|
916
|
+
"site-{siteId}",
|
|
917
|
+
"content-{siteId}-team-member",
|
|
918
|
+
"content-entry-{entryId}"
|
|
919
|
+
],
|
|
920
|
+
auth: "user",
|
|
921
|
+
responseKind: "json",
|
|
922
|
+
errors: [
|
|
923
|
+
"validation:invalid_input",
|
|
924
|
+
"resource:not_found",
|
|
925
|
+
"resource:conflict",
|
|
926
|
+
"server:internal_error"
|
|
927
|
+
]
|
|
928
|
+
},
|
|
929
|
+
unpublishTeamMemberProfile: {
|
|
930
|
+
path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/unpublish",
|
|
931
|
+
method: "POST",
|
|
932
|
+
tags: [
|
|
933
|
+
"site-{siteId}",
|
|
934
|
+
"content-{siteId}-team-member",
|
|
935
|
+
"content-entry-{entryId}"
|
|
936
|
+
],
|
|
937
|
+
auth: "user",
|
|
938
|
+
responseKind: "json",
|
|
939
|
+
errors: [
|
|
940
|
+
"validation:invalid_input",
|
|
941
|
+
"resource:not_found",
|
|
942
|
+
"resource:conflict",
|
|
943
|
+
"server:internal_error"
|
|
944
|
+
]
|
|
945
|
+
},
|
|
946
|
+
scheduleTeamMemberProfile: {
|
|
947
|
+
path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/schedule",
|
|
948
|
+
method: "POST",
|
|
949
|
+
tags: [
|
|
950
|
+
"site-{siteId}",
|
|
951
|
+
"content-{siteId}-team-member",
|
|
952
|
+
"content-entry-{entryId}"
|
|
953
|
+
],
|
|
954
|
+
auth: "user",
|
|
955
|
+
responseKind: "json",
|
|
956
|
+
errors: [
|
|
957
|
+
"validation:invalid_input",
|
|
958
|
+
"resource:not_found",
|
|
959
|
+
"resource:conflict",
|
|
960
|
+
"server:internal_error"
|
|
961
|
+
]
|
|
962
|
+
},
|
|
963
|
+
cancelScheduledTeamMemberProfile: {
|
|
964
|
+
path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/schedule",
|
|
965
|
+
method: "DELETE",
|
|
966
|
+
tags: [
|
|
967
|
+
"site-{siteId}",
|
|
968
|
+
"content-{siteId}-team-member",
|
|
969
|
+
"content-entry-{entryId}"
|
|
970
|
+
],
|
|
971
|
+
auth: "user",
|
|
972
|
+
responseKind: "json",
|
|
973
|
+
errors: [
|
|
974
|
+
"validation:invalid_input",
|
|
975
|
+
"resource:not_found",
|
|
976
|
+
"resource:conflict",
|
|
977
|
+
"server:internal_error"
|
|
978
|
+
]
|
|
979
|
+
},
|
|
980
|
+
updateTeamMemberProfileRouteMetadata: {
|
|
981
|
+
path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/routes/{routeId}/metadata",
|
|
982
|
+
method: "PATCH",
|
|
983
|
+
tags: [
|
|
984
|
+
TAG_TEMPLATES.siteCollection,
|
|
985
|
+
TAG_TEMPLATES.siteRoutableContent,
|
|
986
|
+
TAG_TEMPLATES.routeById
|
|
987
|
+
],
|
|
988
|
+
auth: "user",
|
|
989
|
+
responseKind: "json",
|
|
990
|
+
errors: [
|
|
991
|
+
"validation:invalid_input",
|
|
992
|
+
"resource:not_found",
|
|
993
|
+
"resource:conflict",
|
|
994
|
+
"server:internal_error"
|
|
995
|
+
]
|
|
996
|
+
},
|
|
860
997
|
listAppointmentServices: {
|
|
861
998
|
path: "/sites/{siteId}/bookings/services",
|
|
862
999
|
method: "GET",
|
|
@@ -3230,6 +3367,15 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
3230
3367
|
auth: "public",
|
|
3231
3368
|
responseKind: "json"
|
|
3232
3369
|
},
|
|
3370
|
+
listPublicTeamMembers: {
|
|
3371
|
+
path: "/public/sites/{siteId}/team-members",
|
|
3372
|
+
method: "GET",
|
|
3373
|
+
revalidate: 60,
|
|
3374
|
+
tags: ["public-team-members-{siteId}"],
|
|
3375
|
+
errors: [],
|
|
3376
|
+
auth: "public",
|
|
3377
|
+
responseKind: "json"
|
|
3378
|
+
},
|
|
3233
3379
|
getPublicCourse: {
|
|
3234
3380
|
path: "/public/sites/{siteId}/courses/{courseId}",
|
|
3235
3381
|
method: "GET",
|
|
@@ -6426,6 +6572,7 @@ var SUPPORTED_LOADER_ENDPOINTS = [
|
|
|
6426
6572
|
"listPublicEvents",
|
|
6427
6573
|
"getPublicEventDetails",
|
|
6428
6574
|
"listPublicCourses",
|
|
6575
|
+
"listPublicTeamMembers",
|
|
6429
6576
|
"listPublicProducts",
|
|
6430
6577
|
"listPublicPasses",
|
|
6431
6578
|
"listPublicMemberships",
|
|
@@ -7677,861 +7824,569 @@ function assertUniqueLayoutProfileKeys(profiles) {
|
|
|
7677
7824
|
}
|
|
7678
7825
|
}
|
|
7679
7826
|
|
|
7680
|
-
// ../theme-core/src/
|
|
7827
|
+
// ../theme-core/src/buttons/personalities/types.ts
|
|
7828
|
+
import { z as z11 } from "zod";
|
|
7829
|
+
|
|
7830
|
+
// ../theme-core/src/buttons/types.ts
|
|
7681
7831
|
import { z as z9 } from "zod";
|
|
7832
|
+
var VARIANT_ROLES = [
|
|
7833
|
+
"primary",
|
|
7834
|
+
"secondary",
|
|
7835
|
+
"outline",
|
|
7836
|
+
"ghost",
|
|
7837
|
+
"link",
|
|
7838
|
+
"tertiary",
|
|
7839
|
+
"accent"
|
|
7840
|
+
];
|
|
7841
|
+
var cornerStyleSchema = z9.enum(["square", "rounded", "pill"]);
|
|
7842
|
+
var shadowSizeSchema = z9.enum(["none", "low", "medium", "high"]);
|
|
7843
|
+
var textTransformSchema = z9.enum(["none", "uppercase", "lowercase", "capitalize"]);
|
|
7844
|
+
var fontWeightSchema = z9.union([z9.literal(500), z9.literal(600), z9.literal(700)]);
|
|
7845
|
+
var buttonTypographySchema = z9.enum(["body", "heading"]);
|
|
7846
|
+
var letterSpacingSchema = z9.enum(["tight", "normal", "loose"]);
|
|
7847
|
+
var hoverTransformSchema = z9.enum(["none", "lift", "scale", "press"]);
|
|
7848
|
+
var hoverColorSchema = z9.enum(["none", "brighten", "darken", "saturate", "token"]);
|
|
7849
|
+
var buttonPaddingPresetSchema = z9.enum(["compact", "default", "spacious"]);
|
|
7850
|
+
var gradientStyleSchema = z9.enum(["linear", "radial", "conic"]);
|
|
7851
|
+
var gradientSharpnessSchema = z9.enum(["smooth", "medium", "hard"]);
|
|
7852
|
+
var prioritySchema = z9.union([z9.literal(1), z9.literal(2), z9.literal(3)]);
|
|
7853
|
+
var variantRoleSchema = z9.enum(VARIANT_ROLES);
|
|
7854
|
+
var buttonSizeNameSchema = z9.enum(["sm", "md", "lg", "xl"]);
|
|
7855
|
+
var PADDING_TOKEN_PATTERN = /^(?:0|\d+(?:\.\d+)?(?:rem|em|px|%))$/;
|
|
7856
|
+
var paddingShorthandSchema = z9.string().refine(
|
|
7857
|
+
(value) => {
|
|
7858
|
+
const parts = value.split(/\s+/).filter(Boolean);
|
|
7859
|
+
return parts.length === 2 && parts.every((token) => PADDING_TOKEN_PATTERN.test(token));
|
|
7860
|
+
},
|
|
7861
|
+
{
|
|
7862
|
+
message: 'Padding must be two space-separated CSS length tokens (e.g. "0.5rem 1rem"). Use `0` for zero.'
|
|
7863
|
+
}
|
|
7864
|
+
);
|
|
7865
|
+
var buttonSizeConfigSchema = z9.object({
|
|
7866
|
+
padding: paddingShorthandSchema,
|
|
7867
|
+
fontSize: z9.string().optional()
|
|
7868
|
+
});
|
|
7869
|
+
var buttonSizesSchema = z9.object({
|
|
7870
|
+
sm: buttonSizeConfigSchema,
|
|
7871
|
+
md: buttonSizeConfigSchema,
|
|
7872
|
+
lg: buttonSizeConfigSchema,
|
|
7873
|
+
xl: buttonSizeConfigSchema.optional()
|
|
7874
|
+
}).transform(({ sm, md, lg, xl }) => ({
|
|
7875
|
+
sm,
|
|
7876
|
+
md,
|
|
7877
|
+
lg,
|
|
7878
|
+
xl: xl ?? lg
|
|
7879
|
+
}));
|
|
7880
|
+
var buttonGlobalSettingsSchema = z9.object({
|
|
7881
|
+
cornerStyle: cornerStyleSchema,
|
|
7882
|
+
cornerRadius: z9.number().min(0).max(24).optional(),
|
|
7883
|
+
shadow: shadowSizeSchema,
|
|
7884
|
+
textTransform: textTransformSchema,
|
|
7885
|
+
fontWeight: fontWeightSchema,
|
|
7886
|
+
/**
|
|
7887
|
+
* @deprecated Set per-variant via `variant.border.widthClass` instead.
|
|
7888
|
+
* Schema field is preserved so existing presets parse; the value is unread
|
|
7889
|
+
* by the current generator and will be removed once the legacy
|
|
7890
|
+
* `primitives/content/components/Button.tsx` slot exports are deleted.
|
|
7891
|
+
*/
|
|
7892
|
+
borderWidth: z9.union([z9.literal(1), z9.literal(2), z9.literal(3)]),
|
|
7893
|
+
// === Family-level typography ===
|
|
7894
|
+
// Typography source (body or heading) — selects which theme typography pool to inherit
|
|
7895
|
+
typography: buttonTypographySchema.optional(),
|
|
7896
|
+
// Font size for all variants in the family (Tailwind token, e.g. "text-xs", "text-sm")
|
|
7897
|
+
// Sized variants get this as default; fixed variants inherit unless they override.
|
|
7898
|
+
// Size class CSS may still override at run time for sized variants.
|
|
7899
|
+
fontSize: z9.string().optional(),
|
|
7900
|
+
// Letter spacing applied to all variants
|
|
7901
|
+
letterSpacing: letterSpacingSchema.optional(),
|
|
7902
|
+
// Italic style
|
|
7903
|
+
italic: z9.boolean().optional(),
|
|
7904
|
+
// Padding preset (applies to sized variants without a sizes config)
|
|
7905
|
+
paddingPreset: buttonPaddingPresetSchema.optional(),
|
|
7906
|
+
hoverTransform: hoverTransformSchema,
|
|
7907
|
+
hoverColor: hoverColorSchema,
|
|
7908
|
+
// When hoverColor is 'token', this specifies which token to use
|
|
7909
|
+
hoverColorToken: z9.string().optional(),
|
|
7910
|
+
// Gradient settings (if any variant uses gradients)
|
|
7911
|
+
gradientStyle: gradientStyleSchema.optional(),
|
|
7912
|
+
gradientAngle: z9.number().min(0).max(360).optional(),
|
|
7913
|
+
gradientSharpness: gradientSharpnessSchema.optional()
|
|
7914
|
+
});
|
|
7915
|
+
var gradientDirectionSchema = z9.enum(["to-r", "to-l", "to-t", "to-b", "to-tr", "to-tl", "to-br", "to-bl"]);
|
|
7916
|
+
var buttonBackgroundSchema = z9.discriminatedUnion("type", [
|
|
7917
|
+
z9.object({ type: z9.literal("solid"), colorToken: z9.string() }),
|
|
7918
|
+
z9.object({
|
|
7919
|
+
type: z9.literal("gradient"),
|
|
7920
|
+
stops: z9.array(z9.string()).min(2),
|
|
7921
|
+
direction: gradientDirectionSchema
|
|
7922
|
+
}),
|
|
7923
|
+
z9.object({ type: z9.literal("transparent") })
|
|
7924
|
+
]);
|
|
7925
|
+
var effectApplicationSchema = z9.object({
|
|
7926
|
+
effectId: z9.string(),
|
|
7927
|
+
options: z9.record(z9.string(), z9.any()).optional()
|
|
7928
|
+
});
|
|
7929
|
+
var buttonBorderSchema = z9.object({
|
|
7930
|
+
widthClass: z9.string(),
|
|
7931
|
+
colorToken: z9.string()
|
|
7932
|
+
});
|
|
7933
|
+
var variantShadowSchema = z9.object({
|
|
7934
|
+
elevation: z9.enum(["none", "low", "medium", "high"]),
|
|
7935
|
+
softness: z9.enum(["crisp", "soft", "hard"]).nullable(),
|
|
7936
|
+
position: z9.enum(["bottom", "bottom-right"]).default("bottom")
|
|
7937
|
+
});
|
|
7938
|
+
var variantEffectsSchema = z9.object({
|
|
7939
|
+
base: z9.array(effectApplicationSchema).optional(),
|
|
7940
|
+
hover: z9.array(effectApplicationSchema).optional(),
|
|
7941
|
+
active: z9.array(effectApplicationSchema).optional(),
|
|
7942
|
+
focus: z9.array(effectApplicationSchema).optional()
|
|
7943
|
+
});
|
|
7944
|
+
var variantSizeOverridesSchema = z9.object({
|
|
7945
|
+
sm: buttonSizeConfigSchema.optional(),
|
|
7946
|
+
md: buttonSizeConfigSchema.optional(),
|
|
7947
|
+
lg: buttonSizeConfigSchema.optional(),
|
|
7948
|
+
xl: buttonSizeConfigSchema.optional()
|
|
7949
|
+
});
|
|
7950
|
+
var buttonVariantSchema = z9.object({
|
|
7951
|
+
id: z9.string(),
|
|
7952
|
+
name: z9.string().min(1).max(20),
|
|
7953
|
+
enabled: z9.boolean(),
|
|
7954
|
+
priority: prioritySchema,
|
|
7955
|
+
// Base appearance (token-based)
|
|
7956
|
+
background: buttonBackgroundSchema,
|
|
7957
|
+
textColorToken: z9.string(),
|
|
7958
|
+
/** Tailwind radius token (e.g. `'rounded-md'`). Omit to inherit from `global.cornerStyle`. */
|
|
7959
|
+
borderRadius: z9.string().optional(),
|
|
7960
|
+
// Optional shadow override (uses theme.shadow if not specified)
|
|
7961
|
+
shadow: variantShadowSchema.optional(),
|
|
7962
|
+
// Border (optional)
|
|
7963
|
+
border: buttonBorderSchema.optional(),
|
|
7964
|
+
// Hover background token (per-variant override, takes precedence over global hoverColorToken)
|
|
7965
|
+
hoverBackgroundToken: z9.string().optional(),
|
|
7966
|
+
// Effect composition
|
|
7967
|
+
effects: variantEffectsSchema.optional(),
|
|
7968
|
+
// Per-variant size overrides — see VariantSizeOverrides
|
|
7969
|
+
sizes: variantSizeOverridesSchema.optional()
|
|
7970
|
+
});
|
|
7971
|
+
var buttonSystemSchema = z9.object({
|
|
7972
|
+
global: buttonGlobalSettingsSchema,
|
|
7973
|
+
variants: z9.array(buttonVariantSchema).min(1).max(6),
|
|
7974
|
+
sizes: buttonSizesSchema.optional()
|
|
7975
|
+
});
|
|
7976
|
+
|
|
7977
|
+
// ../theme-core/src/site-styles/styleTags.ts
|
|
7978
|
+
import { z as z10 } from "zod";
|
|
7682
7979
|
var STYLE_AXIS_VALUES = {
|
|
7683
7980
|
tone: ["minimal", "classic", "bold"],
|
|
7684
7981
|
energy: ["calm", "vibrant"],
|
|
7685
7982
|
motion: ["subtle", "standard", "expressive"],
|
|
7686
7983
|
era: ["editorial", "modern", "organic", "technical", "retro"]
|
|
7687
7984
|
};
|
|
7688
|
-
var styleTagsSchema =
|
|
7689
|
-
tone:
|
|
7690
|
-
energy:
|
|
7691
|
-
motion:
|
|
7692
|
-
era:
|
|
7985
|
+
var styleTagsSchema = z10.object({
|
|
7986
|
+
tone: z10.enum(STYLE_AXIS_VALUES.tone).optional(),
|
|
7987
|
+
energy: z10.enum(STYLE_AXIS_VALUES.energy).optional(),
|
|
7988
|
+
motion: z10.enum(STYLE_AXIS_VALUES.motion).optional(),
|
|
7989
|
+
era: z10.enum(STYLE_AXIS_VALUES.era).optional()
|
|
7693
7990
|
});
|
|
7694
7991
|
|
|
7695
|
-
// ../theme-core/src/
|
|
7696
|
-
|
|
7697
|
-
|
|
7698
|
-
|
|
7699
|
-
panelFrame("raised"),
|
|
7700
|
-
flushPanelFrame({ bleed: "start" })
|
|
7701
|
-
];
|
|
7702
|
-
var userContentFrames = [
|
|
7703
|
-
...generatedContentFrames,
|
|
7704
|
-
panelFrame("editorial"),
|
|
7705
|
-
flushPanelFrame({ bleed: "end" }),
|
|
7706
|
-
flushPanelFrame({ bleed: "both" })
|
|
7707
|
-
];
|
|
7708
|
-
var generatedDesignOptionCatalog = {
|
|
7709
|
-
source: "generated",
|
|
7710
|
-
sectionSurfaces: ["base", "muted-band", "accent-band", "hero-image"],
|
|
7711
|
-
contentFrames: generatedContentFrames,
|
|
7712
|
-
itemSurfaces: ["none", "default", "flat", "outlined", "raised"],
|
|
7713
|
-
transitions: ["none", "soft-fade-short", "soft-fade-long"],
|
|
7714
|
-
emphases: ["low", "medium", "high"],
|
|
7715
|
-
detachedCustom: false
|
|
7716
|
-
};
|
|
7717
|
-
var userDesignOptionCatalog = {
|
|
7718
|
-
source: "user",
|
|
7719
|
-
sectionSurfaces: generatedDesignOptionCatalog.sectionSurfaces,
|
|
7720
|
-
contentFrames: userContentFrames,
|
|
7721
|
-
itemSurfaces: [
|
|
7722
|
-
...generatedDesignOptionCatalog.itemSurfaces,
|
|
7723
|
-
"inset",
|
|
7724
|
-
"editorial"
|
|
7725
|
-
],
|
|
7726
|
-
transitions: [
|
|
7727
|
-
...generatedDesignOptionCatalog.transitions,
|
|
7728
|
-
"wave-edge",
|
|
7729
|
-
"angle-edge"
|
|
7730
|
-
],
|
|
7731
|
-
emphases: generatedDesignOptionCatalog.emphases,
|
|
7732
|
-
detachedCustom: false
|
|
7733
|
-
};
|
|
7734
|
-
var advancedDesignOptionCatalog = {
|
|
7735
|
-
source: "advanced",
|
|
7736
|
-
sectionSurfaces: userDesignOptionCatalog.sectionSurfaces,
|
|
7737
|
-
contentFrames: userDesignOptionCatalog.contentFrames,
|
|
7738
|
-
itemSurfaces: userDesignOptionCatalog.itemSurfaces,
|
|
7739
|
-
transitions: userDesignOptionCatalog.transitions,
|
|
7740
|
-
emphases: userDesignOptionCatalog.emphases,
|
|
7741
|
-
detachedCustom: true
|
|
7742
|
-
};
|
|
7743
|
-
|
|
7744
|
-
// ../theme-core/src/site-styles/curatedSiteStyles.ts
|
|
7745
|
-
var curatedSiteStyleIdValues = [
|
|
7746
|
-
"site-style:calm-studio",
|
|
7747
|
-
"site-style:clear-professional",
|
|
7748
|
-
"site-style:warm-editorial",
|
|
7749
|
-
"site-style:bright-community",
|
|
7750
|
-
"site-style:quiet-luxury",
|
|
7751
|
-
"site-style:practical-services",
|
|
7752
|
-
"site-style:modern-wellness",
|
|
7753
|
-
"site-style:bold-launch"
|
|
7754
|
-
];
|
|
7755
|
-
var quietBudget = {
|
|
7756
|
-
accentDensity: "low",
|
|
7757
|
-
panelDensity: "medium",
|
|
7758
|
-
transitionMix: "quiet",
|
|
7759
|
-
primaryCtaLimit: 2,
|
|
7760
|
-
mediaDensity: "medium",
|
|
7761
|
-
decorativeRepetition: "low"
|
|
7762
|
-
};
|
|
7763
|
-
var balancedBudget = {
|
|
7764
|
-
accentDensity: "medium",
|
|
7765
|
-
panelDensity: "medium",
|
|
7766
|
-
transitionMix: "balanced",
|
|
7767
|
-
primaryCtaLimit: 3,
|
|
7768
|
-
mediaDensity: "medium",
|
|
7769
|
-
decorativeRepetition: "medium"
|
|
7770
|
-
};
|
|
7771
|
-
var expressiveBudget = {
|
|
7772
|
-
accentDensity: "high",
|
|
7773
|
-
panelDensity: "high",
|
|
7774
|
-
transitionMix: "expressive",
|
|
7775
|
-
primaryCtaLimit: 3,
|
|
7776
|
-
mediaDensity: "high",
|
|
7777
|
-
decorativeRepetition: "medium"
|
|
7778
|
-
};
|
|
7779
|
-
function uniqueContentFrameKinds() {
|
|
7780
|
-
const kinds = [...new Set(
|
|
7781
|
-
generatedDesignOptionCatalog.contentFrames.map((frame) => frame.kind)
|
|
7782
|
-
)];
|
|
7783
|
-
const firstKind = kinds[0];
|
|
7784
|
-
if (!firstKind) {
|
|
7785
|
-
throw new Error("Expected generated design option catalog to expose at least one content frame kind.");
|
|
7992
|
+
// ../theme-core/src/buttons/personalities/types.ts
|
|
7993
|
+
function asButtonPersonalityId(value) {
|
|
7994
|
+
if (value.length === 0) {
|
|
7995
|
+
throw new Error("ButtonPersonalityId must be a non-empty string");
|
|
7786
7996
|
}
|
|
7787
|
-
return
|
|
7997
|
+
return value;
|
|
7788
7998
|
}
|
|
7789
|
-
var
|
|
7790
|
-
|
|
7999
|
+
var buttonPersonalityIdSchema = z11.string().min(1).transform((value) => asButtonPersonalityId(value));
|
|
8000
|
+
var buttonPersonalitySchema = z11.object({
|
|
8001
|
+
id: buttonPersonalityIdSchema,
|
|
8002
|
+
name: z11.string().min(1),
|
|
8003
|
+
description: z11.string().min(1),
|
|
8004
|
+
tags: styleTagsSchema,
|
|
8005
|
+
buttonSystem: buttonSystemSchema
|
|
8006
|
+
});
|
|
8007
|
+
function defineButtonPersonality(input) {
|
|
7791
8008
|
return {
|
|
7792
|
-
id:
|
|
8009
|
+
id: asButtonPersonalityId(input.id),
|
|
7793
8010
|
name: input.name,
|
|
7794
8011
|
description: input.description,
|
|
7795
|
-
|
|
7796
|
-
|
|
7797
|
-
template: {
|
|
7798
|
-
id: asDesignSystemTemplateId(`template:${input.id.replace("site-style:", "")}`),
|
|
7799
|
-
name: input.name,
|
|
7800
|
-
version: 1,
|
|
7801
|
-
tokenRecipes: input.tokenRecipes,
|
|
7802
|
-
compositionBudget: input.compositionBudget,
|
|
7803
|
-
supportedSectionSurfaces: generatedDesignOptionCatalog.sectionSurfaces,
|
|
7804
|
-
supportedContentFrames: generatedContentFrameKinds,
|
|
7805
|
-
supportedItemSurfaces: generatedDesignOptionCatalog.itemSurfaces,
|
|
7806
|
-
supportedTransitions: generatedDesignOptionCatalog.transitions
|
|
7807
|
-
},
|
|
7808
|
-
// The library IDs are already branded at construction (`asButtonPersonalityId`
|
|
7809
|
-
// / `asPaletteVariantId`); the closed-union input type guarantees only
|
|
7810
|
-
// shipped IDs reach this branch.
|
|
7811
|
-
defaultButtonPersonalityId: input.defaultButtonPersonalityId,
|
|
7812
|
-
acceptedButtons: input.acceptedButtons,
|
|
7813
|
-
defaultPaletteVariantId: input.defaultPaletteVariantId,
|
|
7814
|
-
acceptedPalettes: input.acceptedPalettes
|
|
8012
|
+
tags: input.tags,
|
|
8013
|
+
buttonSystem: input.buttonSystem
|
|
7815
8014
|
};
|
|
7816
8015
|
}
|
|
7817
|
-
|
|
7818
|
-
|
|
7819
|
-
|
|
7820
|
-
|
|
7821
|
-
|
|
7822
|
-
|
|
7823
|
-
|
|
7824
|
-
|
|
7825
|
-
|
|
7826
|
-
|
|
7827
|
-
shadow: "
|
|
7828
|
-
|
|
7829
|
-
|
|
7830
|
-
|
|
7831
|
-
|
|
7832
|
-
|
|
7833
|
-
defaultButtonPersonalityId: "soft-pill",
|
|
7834
|
-
acceptedButtons: { tone: ["minimal", "classic"], era: ["organic", "editorial"] },
|
|
7835
|
-
defaultPaletteVariantId: "soft-natural-sage",
|
|
7836
|
-
acceptedPalettes: { tone: ["minimal", "classic"], era: ["organic"] }
|
|
7837
|
-
}),
|
|
7838
|
-
defineCuratedSiteStyle({
|
|
7839
|
-
id: "site-style:clear-professional",
|
|
7840
|
-
name: "Clear Professional",
|
|
7841
|
-
description: "Crisp, trustworthy, and direct for local services and consultancies.",
|
|
7842
|
-
generationBrief: "Prioritize clarity, proof, service detail, and easy next steps. Keep visuals polished and specific, with restrained decorative treatment.",
|
|
7843
|
-
tokenRecipes: {
|
|
7844
|
-
palette: "brand-led",
|
|
7845
|
-
contrast: "strong",
|
|
7846
|
-
radius: "soft",
|
|
7847
|
-
shadow: "subtle",
|
|
7848
|
-
typography: "clean-sans",
|
|
7849
|
-
spacing: "regular",
|
|
7850
|
-
motion: "subtle"
|
|
8016
|
+
|
|
8017
|
+
// ../theme-core/src/buttons/personalities/brushed-wash.ts
|
|
8018
|
+
var brushedWash = defineButtonPersonality({
|
|
8019
|
+
id: "brushed-wash",
|
|
8020
|
+
name: "Brushed Wash",
|
|
8021
|
+
description: "Watercolour-gradient buttons with soft shadows and generous padding.",
|
|
8022
|
+
tags: { tone: "classic", energy: "vibrant", motion: "standard", era: "organic" },
|
|
8023
|
+
buttonSystem: {
|
|
8024
|
+
global: {
|
|
8025
|
+
cornerStyle: "rounded",
|
|
8026
|
+
shadow: "low",
|
|
8027
|
+
textTransform: "none",
|
|
8028
|
+
fontWeight: 500,
|
|
8029
|
+
borderWidth: 1,
|
|
8030
|
+
hoverTransform: "none",
|
|
8031
|
+
hoverColor: "none"
|
|
7851
8032
|
},
|
|
7852
|
-
|
|
7853
|
-
|
|
7854
|
-
|
|
7855
|
-
|
|
7856
|
-
|
|
7857
|
-
}),
|
|
7858
|
-
defineCuratedSiteStyle({
|
|
7859
|
-
id: "site-style:warm-editorial",
|
|
7860
|
-
name: "Warm Editorial",
|
|
7861
|
-
description: "Story-led and textured for educators, makers, venues, and retreats.",
|
|
7862
|
-
generationBrief: "Let the copy feel thoughtful and grounded. Favor narrative sections, supporting media, and a small number of editorial panels.",
|
|
7863
|
-
tokenRecipes: {
|
|
7864
|
-
palette: "warm-neutral",
|
|
7865
|
-
contrast: "standard",
|
|
7866
|
-
radius: "square",
|
|
7867
|
-
shadow: "none",
|
|
7868
|
-
typography: "serif-editorial",
|
|
7869
|
-
spacing: "airy",
|
|
7870
|
-
motion: "subtle"
|
|
8033
|
+
sizes: {
|
|
8034
|
+
sm: { padding: "0.75rem 2rem", fontSize: "text-sm" },
|
|
8035
|
+
md: { padding: "1rem 2.5rem" },
|
|
8036
|
+
lg: { padding: "1.25rem 3rem", fontSize: "text-lg" },
|
|
8037
|
+
xl: { padding: "1.625rem 3.75rem", fontSize: "text-xl" }
|
|
7871
8038
|
},
|
|
7872
|
-
|
|
7873
|
-
|
|
7874
|
-
|
|
7875
|
-
|
|
7876
|
-
|
|
7877
|
-
|
|
7878
|
-
|
|
7879
|
-
|
|
7880
|
-
|
|
7881
|
-
|
|
7882
|
-
|
|
7883
|
-
|
|
7884
|
-
|
|
7885
|
-
|
|
7886
|
-
|
|
7887
|
-
|
|
7888
|
-
|
|
7889
|
-
|
|
7890
|
-
|
|
8039
|
+
variants: [
|
|
8040
|
+
{
|
|
8041
|
+
id: "primary",
|
|
8042
|
+
name: "Primary",
|
|
8043
|
+
enabled: true,
|
|
8044
|
+
priority: 1,
|
|
8045
|
+
background: {
|
|
8046
|
+
type: "gradient",
|
|
8047
|
+
stops: ["primary", "accent"],
|
|
8048
|
+
direction: "to-r"
|
|
8049
|
+
},
|
|
8050
|
+
textColorToken: "primaryForeground",
|
|
8051
|
+
borderRadius: "rounded-lg",
|
|
8052
|
+
shadow: { elevation: "low", softness: "soft", position: "bottom" },
|
|
8053
|
+
effects: {
|
|
8054
|
+
hover: [{ effectId: "opacity-reduce", options: { reduction: -15 } }]
|
|
8055
|
+
}
|
|
8056
|
+
},
|
|
8057
|
+
{
|
|
8058
|
+
id: "secondary",
|
|
8059
|
+
name: "Secondary",
|
|
8060
|
+
enabled: true,
|
|
8061
|
+
priority: 2,
|
|
8062
|
+
background: {
|
|
8063
|
+
type: "gradient",
|
|
8064
|
+
stops: ["secondary", "accent"],
|
|
8065
|
+
direction: "to-br"
|
|
8066
|
+
},
|
|
8067
|
+
textColorToken: "primaryForeground",
|
|
8068
|
+
borderRadius: "rounded-lg",
|
|
8069
|
+
shadow: { elevation: "low", softness: "soft", position: "bottom" },
|
|
8070
|
+
effects: {
|
|
8071
|
+
hover: [{ effectId: "opacity-reduce", options: { reduction: -15 } }]
|
|
8072
|
+
}
|
|
8073
|
+
},
|
|
8074
|
+
{
|
|
8075
|
+
id: "outline",
|
|
8076
|
+
name: "Outline",
|
|
8077
|
+
enabled: true,
|
|
8078
|
+
priority: 3,
|
|
8079
|
+
background: { type: "transparent" },
|
|
8080
|
+
textColorToken: "primary",
|
|
8081
|
+
borderRadius: "rounded-lg",
|
|
8082
|
+
border: { widthClass: "border", colorToken: "primary" },
|
|
8083
|
+
effects: {
|
|
8084
|
+
hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
|
|
8085
|
+
}
|
|
8086
|
+
},
|
|
8087
|
+
{
|
|
8088
|
+
id: "ghost",
|
|
8089
|
+
name: "Ghost",
|
|
8090
|
+
enabled: true,
|
|
8091
|
+
priority: 3,
|
|
8092
|
+
background: { type: "transparent" },
|
|
8093
|
+
textColorToken: "text",
|
|
8094
|
+
borderRadius: "rounded-lg",
|
|
8095
|
+
effects: {
|
|
8096
|
+
hover: [
|
|
8097
|
+
{ effectId: "background-on-hover", options: { colorToken: "surface" } }
|
|
8098
|
+
]
|
|
8099
|
+
}
|
|
8100
|
+
}
|
|
8101
|
+
]
|
|
8102
|
+
}
|
|
8103
|
+
});
|
|
8104
|
+
|
|
8105
|
+
// ../theme-core/src/buttons/personalities/confident-chip.ts
|
|
8106
|
+
var confidentChip = defineButtonPersonality({
|
|
8107
|
+
id: "confident-chip",
|
|
8108
|
+
name: "Confident Chip",
|
|
8109
|
+
description: "Mid-radius solid buttons with a crisp hover.",
|
|
8110
|
+
tags: { tone: "classic", energy: "calm", motion: "standard", era: "modern" },
|
|
8111
|
+
buttonSystem: {
|
|
8112
|
+
global: {
|
|
8113
|
+
cornerStyle: "rounded",
|
|
8114
|
+
shadow: "medium",
|
|
8115
|
+
textTransform: "none",
|
|
8116
|
+
fontWeight: 600,
|
|
8117
|
+
borderWidth: 1,
|
|
8118
|
+
hoverTransform: "none",
|
|
8119
|
+
hoverColor: "none"
|
|
7891
8120
|
},
|
|
7892
|
-
|
|
7893
|
-
|
|
7894
|
-
|
|
7895
|
-
|
|
7896
|
-
|
|
7897
|
-
|
|
7898
|
-
|
|
7899
|
-
|
|
7900
|
-
|
|
7901
|
-
|
|
7902
|
-
|
|
7903
|
-
|
|
7904
|
-
|
|
7905
|
-
|
|
7906
|
-
|
|
7907
|
-
|
|
7908
|
-
|
|
7909
|
-
|
|
7910
|
-
|
|
7911
|
-
|
|
7912
|
-
|
|
7913
|
-
|
|
7914
|
-
|
|
7915
|
-
|
|
7916
|
-
|
|
7917
|
-
|
|
7918
|
-
|
|
7919
|
-
|
|
7920
|
-
|
|
7921
|
-
|
|
7922
|
-
|
|
7923
|
-
|
|
7924
|
-
|
|
7925
|
-
|
|
7926
|
-
|
|
7927
|
-
|
|
7928
|
-
|
|
7929
|
-
|
|
7930
|
-
|
|
7931
|
-
|
|
7932
|
-
|
|
7933
|
-
|
|
7934
|
-
|
|
7935
|
-
|
|
7936
|
-
|
|
7937
|
-
|
|
7938
|
-
|
|
7939
|
-
|
|
7940
|
-
|
|
7941
|
-
|
|
7942
|
-
|
|
7943
|
-
|
|
7944
|
-
|
|
7945
|
-
|
|
8121
|
+
variants: [
|
|
8122
|
+
{
|
|
8123
|
+
id: "primary",
|
|
8124
|
+
name: "Primary",
|
|
8125
|
+
enabled: true,
|
|
8126
|
+
priority: 1,
|
|
8127
|
+
background: { type: "solid", colorToken: "primary" },
|
|
8128
|
+
textColorToken: "primaryForeground",
|
|
8129
|
+
borderRadius: "rounded-md",
|
|
8130
|
+
shadow: { elevation: "medium", softness: "soft", position: "bottom" },
|
|
8131
|
+
effects: {
|
|
8132
|
+
hover: [{ effectId: "darken-background", options: { amount: 60 } }],
|
|
8133
|
+
active: [{ effectId: "scale-down", options: { scale: "0.97" } }]
|
|
8134
|
+
}
|
|
8135
|
+
},
|
|
8136
|
+
{
|
|
8137
|
+
id: "secondary",
|
|
8138
|
+
name: "Secondary",
|
|
8139
|
+
enabled: true,
|
|
8140
|
+
priority: 2,
|
|
8141
|
+
background: { type: "solid", colorToken: "surface" },
|
|
8142
|
+
textColorToken: "text",
|
|
8143
|
+
borderRadius: "rounded-md",
|
|
8144
|
+
border: { widthClass: "border", colorToken: "border" },
|
|
8145
|
+
effects: {
|
|
8146
|
+
hover: [{ effectId: "background-on-hover", options: { colorToken: "background" } }]
|
|
8147
|
+
}
|
|
8148
|
+
},
|
|
8149
|
+
{
|
|
8150
|
+
id: "outline",
|
|
8151
|
+
name: "Outline",
|
|
8152
|
+
enabled: true,
|
|
8153
|
+
priority: 3,
|
|
8154
|
+
background: { type: "transparent" },
|
|
8155
|
+
textColorToken: "primary",
|
|
8156
|
+
borderRadius: "rounded-md",
|
|
8157
|
+
border: { widthClass: "border", colorToken: "primary" },
|
|
8158
|
+
effects: {
|
|
8159
|
+
hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
|
|
8160
|
+
}
|
|
8161
|
+
},
|
|
8162
|
+
{
|
|
8163
|
+
id: "ghost",
|
|
8164
|
+
name: "Ghost",
|
|
8165
|
+
enabled: true,
|
|
8166
|
+
priority: 3,
|
|
8167
|
+
background: { type: "transparent" },
|
|
8168
|
+
textColorToken: "primary",
|
|
8169
|
+
borderRadius: "rounded-md",
|
|
8170
|
+
effects: {
|
|
8171
|
+
hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
|
|
8172
|
+
}
|
|
8173
|
+
}
|
|
8174
|
+
]
|
|
8175
|
+
}
|
|
8176
|
+
});
|
|
8177
|
+
|
|
8178
|
+
// ../theme-core/src/buttons/personalities/editorial-link.ts
|
|
8179
|
+
var editorialLink = defineButtonPersonality({
|
|
8180
|
+
id: "editorial-link",
|
|
8181
|
+
name: "Editorial Link",
|
|
8182
|
+
description: "Link-style with a growing underline. Refined, typographic.",
|
|
8183
|
+
tags: { tone: "minimal", energy: "calm", motion: "subtle", era: "editorial" },
|
|
8184
|
+
buttonSystem: {
|
|
8185
|
+
global: {
|
|
8186
|
+
cornerStyle: "square",
|
|
8187
|
+
shadow: "none",
|
|
8188
|
+
textTransform: "none",
|
|
8189
|
+
fontWeight: 500,
|
|
8190
|
+
borderWidth: 1,
|
|
8191
|
+
hoverTransform: "none",
|
|
8192
|
+
hoverColor: "none"
|
|
7946
8193
|
},
|
|
7947
|
-
|
|
7948
|
-
|
|
7949
|
-
|
|
7950
|
-
|
|
7951
|
-
|
|
7952
|
-
|
|
7953
|
-
|
|
7954
|
-
|
|
7955
|
-
|
|
7956
|
-
|
|
7957
|
-
|
|
7958
|
-
|
|
7959
|
-
|
|
7960
|
-
|
|
7961
|
-
|
|
7962
|
-
|
|
7963
|
-
|
|
7964
|
-
|
|
7965
|
-
|
|
8194
|
+
variants: [
|
|
8195
|
+
{
|
|
8196
|
+
id: "primary",
|
|
8197
|
+
name: "Primary",
|
|
8198
|
+
enabled: true,
|
|
8199
|
+
priority: 1,
|
|
8200
|
+
background: { type: "transparent" },
|
|
8201
|
+
textColorToken: "text",
|
|
8202
|
+
borderRadius: "rounded-none",
|
|
8203
|
+
shadow: { elevation: "none", softness: null, position: "bottom" },
|
|
8204
|
+
sizes: {
|
|
8205
|
+
sm: { padding: "0.25rem 0" },
|
|
8206
|
+
md: { padding: "0.5rem 0" },
|
|
8207
|
+
lg: { padding: "0.625rem 0" },
|
|
8208
|
+
xl: { padding: "0.75rem 0" }
|
|
8209
|
+
},
|
|
8210
|
+
effects: {
|
|
8211
|
+
base: [
|
|
8212
|
+
{ effectId: "border-bottom-grow", options: { height: 2, colorToken: "text", origin: "left" } }
|
|
8213
|
+
]
|
|
8214
|
+
}
|
|
8215
|
+
},
|
|
8216
|
+
{
|
|
8217
|
+
id: "secondary",
|
|
8218
|
+
name: "Secondary",
|
|
8219
|
+
enabled: true,
|
|
8220
|
+
priority: 2,
|
|
8221
|
+
background: { type: "transparent" },
|
|
8222
|
+
textColorToken: "mutedText",
|
|
8223
|
+
borderRadius: "rounded-none",
|
|
8224
|
+
shadow: { elevation: "none", softness: null, position: "bottom" },
|
|
8225
|
+
sizes: {
|
|
8226
|
+
sm: { padding: "0.25rem 0" },
|
|
8227
|
+
md: { padding: "0.5rem 0" },
|
|
8228
|
+
lg: { padding: "0.625rem 0" },
|
|
8229
|
+
xl: { padding: "0.75rem 0" }
|
|
8230
|
+
},
|
|
8231
|
+
effects: {
|
|
8232
|
+
base: [
|
|
8233
|
+
{ effectId: "border-bottom-grow", options: { height: 1, colorToken: "mutedText", origin: "left" } }
|
|
8234
|
+
]
|
|
8235
|
+
}
|
|
8236
|
+
},
|
|
8237
|
+
{
|
|
8238
|
+
id: "outline",
|
|
8239
|
+
name: "Outline",
|
|
8240
|
+
enabled: true,
|
|
8241
|
+
priority: 3,
|
|
8242
|
+
background: { type: "transparent" },
|
|
8243
|
+
textColorToken: "accent",
|
|
8244
|
+
borderRadius: "rounded-none",
|
|
8245
|
+
shadow: { elevation: "none", softness: null, position: "bottom" },
|
|
8246
|
+
sizes: {
|
|
8247
|
+
sm: { padding: "0.25rem 0" },
|
|
8248
|
+
md: { padding: "0.5rem 0" },
|
|
8249
|
+
lg: { padding: "0.625rem 0" },
|
|
8250
|
+
xl: { padding: "0.75rem 0" }
|
|
8251
|
+
},
|
|
8252
|
+
effects: {
|
|
8253
|
+
base: [
|
|
8254
|
+
{ effectId: "border-bottom-grow", options: { height: 1, colorToken: "accent", origin: "left" } }
|
|
8255
|
+
]
|
|
8256
|
+
}
|
|
8257
|
+
},
|
|
8258
|
+
{
|
|
8259
|
+
id: "ghost",
|
|
8260
|
+
name: "Ghost",
|
|
8261
|
+
enabled: true,
|
|
8262
|
+
priority: 3,
|
|
8263
|
+
background: { type: "transparent" },
|
|
8264
|
+
textColorToken: "mutedText",
|
|
8265
|
+
borderRadius: "rounded-none",
|
|
8266
|
+
shadow: { elevation: "none", softness: null, position: "bottom" },
|
|
8267
|
+
sizes: {
|
|
8268
|
+
sm: { padding: "0.25rem 0" },
|
|
8269
|
+
md: { padding: "0.5rem 0" },
|
|
8270
|
+
lg: { padding: "0.625rem 0" },
|
|
8271
|
+
xl: { padding: "0.75rem 0" }
|
|
8272
|
+
},
|
|
8273
|
+
effects: {
|
|
8274
|
+
hover: [{ effectId: "opacity-reduce", options: { reduction: -20 } }]
|
|
8275
|
+
}
|
|
8276
|
+
}
|
|
8277
|
+
]
|
|
8278
|
+
}
|
|
8279
|
+
});
|
|
8280
|
+
|
|
8281
|
+
// ../theme-core/src/buttons/personalities/ink-stamp.ts
|
|
8282
|
+
var inkStamp = defineButtonPersonality({
|
|
8283
|
+
id: "ink-stamp",
|
|
8284
|
+
name: "Ink Stamp",
|
|
8285
|
+
description: "Hand-stamped block-print buttons with a slight lift on hover.",
|
|
8286
|
+
tags: { tone: "bold", energy: "vibrant", motion: "standard", era: "organic" },
|
|
8287
|
+
buttonSystem: {
|
|
8288
|
+
global: {
|
|
8289
|
+
cornerStyle: "rounded",
|
|
8290
|
+
shadow: "none",
|
|
8291
|
+
textTransform: "uppercase",
|
|
8292
|
+
fontWeight: 600,
|
|
8293
|
+
borderWidth: 1,
|
|
8294
|
+
hoverTransform: "none",
|
|
8295
|
+
hoverColor: "none",
|
|
8296
|
+
letterSpacing: "loose"
|
|
7966
8297
|
},
|
|
7967
|
-
|
|
7968
|
-
|
|
7969
|
-
|
|
7970
|
-
|
|
7971
|
-
|
|
7972
|
-
}),
|
|
7973
|
-
defineCuratedSiteStyle({
|
|
7974
|
-
id: "site-style:bold-launch",
|
|
7975
|
-
name: "Bold Launch",
|
|
7976
|
-
description: "High-energy and punchy for launches, campaigns, and creative offers.",
|
|
7977
|
-
generationBrief: "Use crisp positioning, bold hero structure, strong calls to action, and confident visual rhythm. Keep it precise, not shouty.",
|
|
7978
|
-
selectionKeywords: [
|
|
7979
|
-
"launch",
|
|
7980
|
-
"campaign",
|
|
7981
|
-
"preorder",
|
|
7982
|
-
"pre-order",
|
|
7983
|
-
"waitlist",
|
|
7984
|
-
"drop"
|
|
7985
|
-
],
|
|
7986
|
-
tokenRecipes: {
|
|
7987
|
-
palette: "high-contrast",
|
|
7988
|
-
contrast: "maximum",
|
|
7989
|
-
radius: "pill",
|
|
7990
|
-
shadow: "layered",
|
|
7991
|
-
typography: "clean-sans",
|
|
7992
|
-
spacing: "regular",
|
|
7993
|
-
motion: "expressive"
|
|
8298
|
+
sizes: {
|
|
8299
|
+
sm: { padding: "0.5rem 1.25rem", fontSize: "text-xs" },
|
|
8300
|
+
md: { padding: "0.75rem 1.75rem", fontSize: "text-sm" },
|
|
8301
|
+
lg: { padding: "0.875rem 2.25rem", fontSize: "text-base" },
|
|
8302
|
+
xl: { padding: "1.125rem 2.75rem", fontSize: "text-lg" }
|
|
7994
8303
|
},
|
|
7995
|
-
|
|
7996
|
-
|
|
7997
|
-
|
|
7998
|
-
|
|
7999
|
-
|
|
8000
|
-
|
|
8001
|
-
|
|
8002
|
-
|
|
8003
|
-
|
|
8004
|
-
|
|
8005
|
-
|
|
8006
|
-
|
|
8007
|
-
|
|
8008
|
-
|
|
8009
|
-
|
|
8010
|
-
|
|
8011
|
-
|
|
8012
|
-
|
|
8013
|
-
|
|
8014
|
-
|
|
8015
|
-
|
|
8016
|
-
|
|
8017
|
-
|
|
8018
|
-
|
|
8019
|
-
|
|
8020
|
-
|
|
8021
|
-
|
|
8022
|
-
]
|
|
8023
|
-
|
|
8024
|
-
|
|
8025
|
-
|
|
8026
|
-
|
|
8027
|
-
|
|
8028
|
-
|
|
8029
|
-
|
|
8030
|
-
|
|
8031
|
-
|
|
8032
|
-
|
|
8033
|
-
|
|
8034
|
-
|
|
8035
|
-
|
|
8036
|
-
|
|
8037
|
-
|
|
8038
|
-
|
|
8039
|
-
|
|
8040
|
-
|
|
8041
|
-
|
|
8042
|
-
|
|
8043
|
-
|
|
8044
|
-
|
|
8045
|
-
|
|
8046
|
-
|
|
8047
|
-
|
|
8048
|
-
|
|
8049
|
-
|
|
8050
|
-
|
|
8051
|
-
}
|
|
8052
|
-
|
|
8053
|
-
|
|
8054
|
-
|
|
8055
|
-
|
|
8056
|
-
|
|
8057
|
-
);
|
|
8058
|
-
var userFlushBleeds = uniqueNonEmpty(
|
|
8059
|
-
userDesignOptionCatalog.contentFrames.filter((frame) => frame.kind === "flush-panel").map((frame) => frame.bleed)
|
|
8060
|
-
);
|
|
8061
|
-
var contentFrameIntentSchema = z10.discriminatedUnion("kind", [
|
|
8062
|
-
z10.object({ kind: z10.literal("plain") }).strict(),
|
|
8063
|
-
z10.object({
|
|
8064
|
-
kind: z10.literal("panel"),
|
|
8065
|
-
treatment: z10.enum(userPanelTreatments)
|
|
8066
|
-
}).strict(),
|
|
8067
|
-
z10.object({
|
|
8068
|
-
kind: z10.literal("flush-panel"),
|
|
8069
|
-
treatment: z10.enum(userFlushTreatments),
|
|
8070
|
-
bleed: z10.enum(userFlushBleeds)
|
|
8071
|
-
}).strict()
|
|
8072
|
-
]);
|
|
8073
|
-
var blockDesignPlanSchema = z10.object({
|
|
8074
|
-
blockId: z10.string().min(1).transform(asDesignBlockId),
|
|
8075
|
-
blockKind: z10.string().min(1),
|
|
8076
|
-
purpose: z10.string().min(1),
|
|
8077
|
-
sectionSurface: z10.enum(userDesignOptionCatalog.sectionSurfaces),
|
|
8078
|
-
contentFrame: contentFrameIntentSchema,
|
|
8079
|
-
itemSurface: z10.enum(userDesignOptionCatalog.itemSurfaces),
|
|
8080
|
-
transitionAfter: z10.enum(userDesignOptionCatalog.transitions),
|
|
8081
|
-
emphasis: z10.enum(userDesignOptionCatalog.emphases),
|
|
8082
|
-
heroLegibility: heroLegibilityStrategySchema.optional()
|
|
8083
|
-
}).strict();
|
|
8084
|
-
var styleAuthoritySchema = z10.discriminatedUnion("kind", [
|
|
8085
|
-
z10.object({
|
|
8086
|
-
kind: z10.literal("theme-v2"),
|
|
8087
|
-
source: designResolutionPolicySchema,
|
|
8088
|
-
siteStyleId: z10.string().min(1).transform(asSiteStyleId),
|
|
8089
|
-
templateId: z10.string().min(1).transform(asDesignSystemTemplateId),
|
|
8090
|
-
templateVersion: z10.number().int().nonnegative(),
|
|
8091
|
-
resolverVersion: z10.number().int().nonnegative()
|
|
8092
|
-
}).strict(),
|
|
8093
|
-
z10.object({
|
|
8094
|
-
kind: z10.literal("legacy-raw"),
|
|
8095
|
-
reason: z10.enum(["pre-theme-v2", "manual-runtime-fields"])
|
|
8096
|
-
}).strict(),
|
|
8097
|
-
z10.object({
|
|
8098
|
-
kind: z10.literal("advanced-detached"),
|
|
8099
|
-
reason: z10.literal("detached-custom-runtime-fields")
|
|
8100
|
-
}).strict()
|
|
8101
|
-
]);
|
|
8102
|
-
var blockRuntimeStyleAuthoritySchema = z10.object({
|
|
8103
|
-
unit: z10.literal("block-runtime-fields"),
|
|
8104
|
-
blockId: z10.string().min(1).transform(asDesignBlockId),
|
|
8105
|
-
fields: nonEmptyRuntimeStyleFieldNamesSchema,
|
|
8106
|
-
authority: styleAuthoritySchema
|
|
8107
|
-
}).strict();
|
|
8108
|
-
var persistedPageDesignStateV1Schema = z10.object({
|
|
8109
|
-
schemaVersion: z10.literal(themeV2DesignStateSchemaVersion),
|
|
8110
|
-
siteStyleId: z10.string().min(1).transform(asSiteStyleId),
|
|
8111
|
-
templateId: z10.string().min(1).transform(asDesignSystemTemplateId),
|
|
8112
|
-
templateVersion: z10.number().int().nonnegative(),
|
|
8113
|
-
resolverVersion: z10.number().int().nonnegative(),
|
|
8114
|
-
rhythmPresetId: z10.string().min(1),
|
|
8115
|
-
blocks: z10.array(blockDesignPlanSchema),
|
|
8116
|
-
styleAuthorities: z10.array(blockRuntimeStyleAuthoritySchema)
|
|
8117
|
-
}).strict();
|
|
8118
|
-
|
|
8119
|
-
// ../theme-core/src/site-styles/generatedSchemas.ts
|
|
8120
|
-
import { z as z11 } from "zod";
|
|
8121
|
-
function uniqueNonEmpty2(values) {
|
|
8122
|
-
const uniqueValues = [...new Set(values)];
|
|
8123
|
-
const firstValue = uniqueValues[0];
|
|
8124
|
-
if (!firstValue) {
|
|
8125
|
-
throw new Error("Expected at least one generated schema option.");
|
|
8126
|
-
}
|
|
8127
|
-
return [firstValue, ...uniqueValues.slice(1)];
|
|
8128
|
-
}
|
|
8129
|
-
var generatedPanelTreatments = uniqueNonEmpty2(
|
|
8130
|
-
generatedDesignOptionCatalog.contentFrames.filter((frame) => frame.kind === "panel").map((frame) => frame.treatment)
|
|
8131
|
-
);
|
|
8132
|
-
var generatedFlushTreatments = uniqueNonEmpty2(
|
|
8133
|
-
generatedDesignOptionCatalog.contentFrames.filter((frame) => frame.kind === "flush-panel").map((frame) => frame.treatment)
|
|
8134
|
-
);
|
|
8135
|
-
var generatedFlushBleeds = uniqueNonEmpty2(
|
|
8136
|
-
generatedDesignOptionCatalog.contentFrames.filter((frame) => frame.kind === "flush-panel").map((frame) => frame.bleed)
|
|
8137
|
-
);
|
|
8138
|
-
var generatedPanelFrameSchema = z11.object({
|
|
8139
|
-
kind: z11.literal("panel"),
|
|
8140
|
-
treatment: z11.enum(generatedPanelTreatments)
|
|
8141
|
-
}).strict();
|
|
8142
|
-
var generatedFlushPanelFrameSchema = z11.object({
|
|
8143
|
-
kind: z11.literal("flush-panel"),
|
|
8144
|
-
treatment: z11.enum(generatedFlushTreatments),
|
|
8145
|
-
bleed: z11.enum(generatedFlushBleeds)
|
|
8146
|
-
}).strict();
|
|
8147
|
-
var generatedContentFrameIntentSchema = z11.discriminatedUnion("kind", [
|
|
8148
|
-
z11.object({ kind: z11.literal("plain") }).strict(),
|
|
8149
|
-
generatedPanelFrameSchema,
|
|
8150
|
-
generatedFlushPanelFrameSchema
|
|
8151
|
-
]);
|
|
8152
|
-
var generatedSiteStyleIdSchema = z11.enum(curatedSiteStyleIdValues).transform(asSiteStyleId);
|
|
8153
|
-
function generatedChoiceSchema(valueSchema) {
|
|
8154
|
-
return z11.discriminatedUnion("kind", [
|
|
8155
|
-
z11.object({
|
|
8156
|
-
source: z11.literal("generated"),
|
|
8157
|
-
kind: z11.literal("auto")
|
|
8158
|
-
}).strict(),
|
|
8159
|
-
z11.object({
|
|
8160
|
-
source: z11.literal("generated"),
|
|
8161
|
-
kind: z11.literal("explicit"),
|
|
8162
|
-
value: valueSchema
|
|
8163
|
-
}).strict()
|
|
8164
|
-
]);
|
|
8165
|
-
}
|
|
8166
|
-
var generatedBlockDesignIntentSchema = z11.object({
|
|
8167
|
-
sectionSurface: generatedChoiceSchema(
|
|
8168
|
-
z11.enum(generatedDesignOptionCatalog.sectionSurfaces)
|
|
8169
|
-
),
|
|
8170
|
-
contentFrame: generatedChoiceSchema(generatedContentFrameIntentSchema),
|
|
8171
|
-
itemSurface: generatedChoiceSchema(
|
|
8172
|
-
z11.enum(generatedDesignOptionCatalog.itemSurfaces)
|
|
8173
|
-
),
|
|
8174
|
-
transitionAfter: generatedChoiceSchema(
|
|
8175
|
-
z11.enum(generatedDesignOptionCatalog.transitions)
|
|
8176
|
-
),
|
|
8177
|
-
emphasis: generatedChoiceSchema(
|
|
8178
|
-
z11.enum(generatedDesignOptionCatalog.emphases)
|
|
8179
|
-
)
|
|
8180
|
-
}).strict();
|
|
8181
|
-
var generatedMediaCompositionIntentSchema = z11.enum([
|
|
8182
|
-
"none",
|
|
8183
|
-
"supporting",
|
|
8184
|
-
"dominant"
|
|
8185
|
-
]);
|
|
8186
|
-
var generatedDecorativeCompositionIntentSchema = z11.enum([
|
|
8187
|
-
"none",
|
|
8188
|
-
"supporting"
|
|
8189
|
-
]);
|
|
8190
|
-
var generatedHeroLegibilityStrategySchema = z11.enum([
|
|
8191
|
-
"none",
|
|
8192
|
-
"scrim-gradient"
|
|
8193
|
-
]);
|
|
8194
|
-
var generatedBlockMediaIntentSchema = z11.object({
|
|
8195
|
-
media: generatedMediaCompositionIntentSchema,
|
|
8196
|
-
decorative: generatedDecorativeCompositionIntentSchema,
|
|
8197
|
-
heroLegibility: generatedChoiceSchema(generatedHeroLegibilityStrategySchema)
|
|
8198
|
-
}).strict();
|
|
8199
|
-
var generatedBoundaryIntentSchema = z11.object({
|
|
8200
|
-
transitionAfter: generatedChoiceSchema(
|
|
8201
|
-
z11.enum(generatedDesignOptionCatalog.transitions)
|
|
8202
|
-
)
|
|
8203
|
-
}).strict();
|
|
8204
|
-
var generatedPageDesignBlockIntentSchema = z11.object({
|
|
8205
|
-
blockId: z11.string().min(1),
|
|
8206
|
-
blockKind: z11.string().min(1),
|
|
8207
|
-
purpose: z11.string().min(1),
|
|
8208
|
-
design: generatedBlockDesignIntentSchema,
|
|
8209
|
-
mediaIntent: generatedBlockMediaIntentSchema,
|
|
8210
|
-
boundaryIntent: generatedBoundaryIntentSchema
|
|
8211
|
-
}).strict();
|
|
8212
|
-
var generatedPageDesignIntentSchema = z11.object({
|
|
8213
|
-
siteStyleId: generatedSiteStyleIdSchema,
|
|
8214
|
-
blocks: z11.array(generatedPageDesignBlockIntentSchema)
|
|
8215
|
-
}).strict();
|
|
8216
|
-
|
|
8217
|
-
// ../theme-core/src/site-styles/pageDesignIntent.ts
|
|
8218
|
-
import { z as z12 } from "zod";
|
|
8219
|
-
var pageDesignIntentSchemaVersion = 1;
|
|
8220
|
-
var pageDesignUserPinnedAppearanceChoiceSchema = z12.object({
|
|
8221
|
-
kind: z12.literal("user-pinned"),
|
|
8222
|
-
value: z12.string().min(1).transform(asAppearancePresetId)
|
|
8223
|
-
}).strict();
|
|
8224
|
-
var pageDesignUserPinnedBoundaryChoiceSchema = z12.object({
|
|
8225
|
-
kind: z12.literal("user-pinned"),
|
|
8226
|
-
value: z12.string().min(1).transform(asBoundaryOptionId)
|
|
8227
|
-
}).strict();
|
|
8228
|
-
var pageDesignBlockLookPinSchema = z12.object({
|
|
8229
|
-
blockId: z12.string().min(1).transform(asDesignBlockId),
|
|
8230
|
-
blockKind: z12.string().min(1),
|
|
8231
|
-
choice: pageDesignUserPinnedAppearanceChoiceSchema
|
|
8232
|
-
}).strict();
|
|
8233
|
-
var pageDesignBoundaryPinSchema = z12.object({
|
|
8234
|
-
boundaryId: z12.string().min(1).transform(asDesignBoundaryId),
|
|
8235
|
-
previousBlockId: z12.string().min(1).transform(asDesignBlockId),
|
|
8236
|
-
nextBlockId: z12.string().min(1).transform(asDesignBlockId),
|
|
8237
|
-
choice: pageDesignUserPinnedBoundaryChoiceSchema
|
|
8238
|
-
}).strict().superRefine((pin, ctx) => {
|
|
8239
|
-
const expectedBoundaryId = makeBoundaryId(
|
|
8240
|
-
pin.previousBlockId,
|
|
8241
|
-
pin.nextBlockId
|
|
8242
|
-
);
|
|
8243
|
-
if (pin.boundaryId !== expectedBoundaryId) {
|
|
8244
|
-
ctx.addIssue({
|
|
8245
|
-
code: z12.ZodIssueCode.custom,
|
|
8246
|
-
path: ["boundaryId"],
|
|
8247
|
-
message: `Boundary id must match previousBlockId and nextBlockId. Expected ${expectedBoundaryId}.`
|
|
8248
|
-
});
|
|
8249
|
-
}
|
|
8250
|
-
});
|
|
8251
|
-
var pageDesignIntentV1Schema = z12.object({
|
|
8252
|
-
schemaVersion: z12.literal(pageDesignIntentSchemaVersion),
|
|
8253
|
-
siteStyleId: z12.string().min(1).transform(asSiteStyleId),
|
|
8254
|
-
pageFlowPresetId: z12.string().min(1).transform(asPageFlowPresetId),
|
|
8255
|
-
blockLookPins: z12.array(pageDesignBlockLookPinSchema),
|
|
8256
|
-
boundaryPins: z12.array(pageDesignBoundaryPinSchema)
|
|
8257
|
-
}).strict().superRefine((intent, ctx) => {
|
|
8258
|
-
addDuplicateStringIssues(ctx, {
|
|
8259
|
-
values: intent.blockLookPins.map((pin) => pin.blockId),
|
|
8260
|
-
path: ["blockLookPins"],
|
|
8261
|
-
label: "block Look pin"
|
|
8262
|
-
});
|
|
8263
|
-
addDuplicateStringIssues(ctx, {
|
|
8264
|
-
values: intent.boundaryPins.map(
|
|
8265
|
-
(pin) => boundaryKey(pin.previousBlockId, pin.nextBlockId)
|
|
8266
|
-
),
|
|
8267
|
-
path: ["boundaryPins"],
|
|
8268
|
-
label: "boundary pin"
|
|
8269
|
-
});
|
|
8270
|
-
});
|
|
8271
|
-
function addDuplicateStringIssues(ctx, input) {
|
|
8272
|
-
const seen = /* @__PURE__ */ new Set();
|
|
8273
|
-
const duplicates = /* @__PURE__ */ new Set();
|
|
8274
|
-
for (const value of input.values) {
|
|
8275
|
-
if (seen.has(value)) {
|
|
8276
|
-
duplicates.add(value);
|
|
8277
|
-
}
|
|
8278
|
-
seen.add(value);
|
|
8279
|
-
}
|
|
8280
|
-
for (const duplicate of duplicates) {
|
|
8281
|
-
ctx.addIssue({
|
|
8282
|
-
code: z12.ZodIssueCode.custom,
|
|
8283
|
-
path: [...input.path],
|
|
8284
|
-
message: `Duplicate ${input.label}: ${duplicate}.`
|
|
8285
|
-
});
|
|
8304
|
+
variants: [
|
|
8305
|
+
{
|
|
8306
|
+
id: "primary",
|
|
8307
|
+
name: "Primary",
|
|
8308
|
+
enabled: true,
|
|
8309
|
+
priority: 1,
|
|
8310
|
+
background: { type: "solid", colorToken: "primary" },
|
|
8311
|
+
textColorToken: "primaryForeground",
|
|
8312
|
+
borderRadius: "rounded-md",
|
|
8313
|
+
effects: {
|
|
8314
|
+
hover: [
|
|
8315
|
+
{ effectId: "drop-shadow", options: { intensity: "medium" } },
|
|
8316
|
+
{ effectId: "scale-up", options: { scale: "1.02" } }
|
|
8317
|
+
],
|
|
8318
|
+
active: [{ effectId: "scale-down", options: { scale: "0.98" } }]
|
|
8319
|
+
}
|
|
8320
|
+
},
|
|
8321
|
+
{
|
|
8322
|
+
id: "secondary",
|
|
8323
|
+
name: "Secondary",
|
|
8324
|
+
enabled: true,
|
|
8325
|
+
priority: 2,
|
|
8326
|
+
background: { type: "transparent" },
|
|
8327
|
+
textColorToken: "primary",
|
|
8328
|
+
borderRadius: "rounded-md",
|
|
8329
|
+
border: { widthClass: "border-2", colorToken: "primary" },
|
|
8330
|
+
effects: {
|
|
8331
|
+
hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
|
|
8332
|
+
}
|
|
8333
|
+
},
|
|
8334
|
+
{
|
|
8335
|
+
id: "outline",
|
|
8336
|
+
name: "Outline",
|
|
8337
|
+
enabled: true,
|
|
8338
|
+
priority: 3,
|
|
8339
|
+
background: { type: "transparent" },
|
|
8340
|
+
textColorToken: "text",
|
|
8341
|
+
borderRadius: "rounded-md",
|
|
8342
|
+
border: { widthClass: "border-2", colorToken: "border" },
|
|
8343
|
+
effects: {
|
|
8344
|
+
hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
|
|
8345
|
+
}
|
|
8346
|
+
},
|
|
8347
|
+
{
|
|
8348
|
+
id: "ghost",
|
|
8349
|
+
name: "Ghost",
|
|
8350
|
+
enabled: true,
|
|
8351
|
+
priority: 3,
|
|
8352
|
+
background: { type: "transparent" },
|
|
8353
|
+
textColorToken: "accent",
|
|
8354
|
+
borderRadius: "rounded-none",
|
|
8355
|
+
sizes: {
|
|
8356
|
+
sm: { padding: "0.375rem 0", fontSize: "text-xs" },
|
|
8357
|
+
md: { padding: "0.5rem 0", fontSize: "text-sm" },
|
|
8358
|
+
lg: { padding: "0.625rem 0", fontSize: "text-base" },
|
|
8359
|
+
xl: { padding: "0.75rem 0", fontSize: "text-lg" }
|
|
8360
|
+
},
|
|
8361
|
+
effects: {
|
|
8362
|
+
base: [{ effectId: "border-bottom-grow", options: { height: 1, colorToken: "accent", origin: "left" } }]
|
|
8363
|
+
}
|
|
8364
|
+
}
|
|
8365
|
+
]
|
|
8286
8366
|
}
|
|
8287
|
-
}
|
|
8288
|
-
function boundaryKey(previousBlockId, nextBlockId) {
|
|
8289
|
-
return makeBoundaryId(previousBlockId, nextBlockId);
|
|
8290
|
-
}
|
|
8291
|
-
|
|
8292
|
-
// ../theme-core/src/schema.ts
|
|
8293
|
-
import { z as z25 } from "zod";
|
|
8294
|
-
|
|
8295
|
-
// ../theme-core/src/lib/media.ts
|
|
8296
|
-
import z13 from "zod";
|
|
8297
|
-
var hotspotSchema = z13.object({
|
|
8298
|
-
x: z13.number().min(0).max(1),
|
|
8299
|
-
y: z13.number().min(0).max(1),
|
|
8300
|
-
radius: z13.number().optional()
|
|
8301
|
-
});
|
|
8302
|
-
var rotationSchema = z13.union([z13.literal(0), z13.literal(90), z13.literal(180), z13.literal(270)]);
|
|
8303
|
-
var rectSchema = z13.tuple([z13.number(), z13.number(), z13.number(), z13.number()]);
|
|
8304
|
-
var aspectCropSchema = z13.object({
|
|
8305
|
-
aspect: z13.preprocess((value) => value == null ? void 0 : value, z13.string().optional()),
|
|
8306
|
-
rect: z13.preprocess((value) => value == null ? void 0 : value, rectSchema.optional()),
|
|
8307
|
-
hotspot: z13.preprocess((value) => value == null ? void 0 : value, hotspotSchema.optional()),
|
|
8308
|
-
rotation: z13.preprocess((value) => value == null ? void 0 : value, rotationSchema.optional())
|
|
8309
|
-
});
|
|
8310
|
-
var transformSchema = z13.object({
|
|
8311
|
-
aspectCrops: z13.preprocess((value) => {
|
|
8312
|
-
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
8313
|
-
return void 0;
|
|
8314
|
-
}
|
|
8315
|
-
return value;
|
|
8316
|
-
}, z13.record(z13.string(), aspectCropSchema.catch({}))).optional(),
|
|
8317
|
-
rect: rectSchema.optional(),
|
|
8318
|
-
hotspot: hotspotSchema.optional(),
|
|
8319
|
-
rotation: rotationSchema.optional()
|
|
8320
|
-
});
|
|
8321
|
-
var mediaSchema = z13.object({
|
|
8322
|
-
type: z13.enum(["image", "video", "audio", "document", "spreadsheet", "archive"]),
|
|
8323
|
-
purpose: z13.string().optional(),
|
|
8324
|
-
placeholder: z13.boolean().default(true).optional(),
|
|
8325
|
-
assetId: z13.string().optional(),
|
|
8326
|
-
identifier: z13.string().optional(),
|
|
8327
|
-
src: z13.string().optional(),
|
|
8328
|
-
alt: z13.string().optional(),
|
|
8329
|
-
filename: z13.string().optional(),
|
|
8330
|
-
mimeType: z13.string().optional(),
|
|
8331
|
-
width: z13.number().optional(),
|
|
8332
|
-
height: z13.number().optional(),
|
|
8333
|
-
storageBucket: z13.string().optional(),
|
|
8334
|
-
storagePath: z13.string().optional(),
|
|
8335
|
-
transform: transformSchema.optional()
|
|
8336
8367
|
});
|
|
8337
8368
|
|
|
8338
|
-
// ../theme-core/src/buttons/
|
|
8339
|
-
|
|
8340
|
-
|
|
8341
|
-
"
|
|
8342
|
-
"
|
|
8343
|
-
"
|
|
8344
|
-
"ghost",
|
|
8345
|
-
"link",
|
|
8346
|
-
"tertiary",
|
|
8347
|
-
"accent"
|
|
8348
|
-
];
|
|
8349
|
-
var cornerStyleSchema = z14.enum(["square", "rounded", "pill"]);
|
|
8350
|
-
var shadowSizeSchema = z14.enum(["none", "low", "medium", "high"]);
|
|
8351
|
-
var textTransformSchema = z14.enum(["none", "uppercase", "lowercase", "capitalize"]);
|
|
8352
|
-
var fontWeightSchema = z14.union([z14.literal(500), z14.literal(600), z14.literal(700)]);
|
|
8353
|
-
var buttonTypographySchema = z14.enum(["body", "heading"]);
|
|
8354
|
-
var letterSpacingSchema = z14.enum(["tight", "normal", "loose"]);
|
|
8355
|
-
var hoverTransformSchema = z14.enum(["none", "lift", "scale", "press"]);
|
|
8356
|
-
var hoverColorSchema = z14.enum(["none", "brighten", "darken", "saturate", "token"]);
|
|
8357
|
-
var buttonPaddingPresetSchema = z14.enum(["compact", "default", "spacious"]);
|
|
8358
|
-
var gradientStyleSchema = z14.enum(["linear", "radial", "conic"]);
|
|
8359
|
-
var gradientSharpnessSchema = z14.enum(["smooth", "medium", "hard"]);
|
|
8360
|
-
var prioritySchema = z14.union([z14.literal(1), z14.literal(2), z14.literal(3)]);
|
|
8361
|
-
var variantRoleSchema = z14.enum(VARIANT_ROLES);
|
|
8362
|
-
var buttonSizeNameSchema = z14.enum(["sm", "md", "lg", "xl"]);
|
|
8363
|
-
var PADDING_TOKEN_PATTERN = /^(?:0|\d+(?:\.\d+)?(?:rem|em|px|%))$/;
|
|
8364
|
-
var paddingShorthandSchema = z14.string().refine(
|
|
8365
|
-
(value) => {
|
|
8366
|
-
const parts = value.split(/\s+/).filter(Boolean);
|
|
8367
|
-
return parts.length === 2 && parts.every((token) => PADDING_TOKEN_PATTERN.test(token));
|
|
8368
|
-
},
|
|
8369
|
-
{
|
|
8370
|
-
message: 'Padding must be two space-separated CSS length tokens (e.g. "0.5rem 1rem"). Use `0` for zero.'
|
|
8371
|
-
}
|
|
8372
|
-
);
|
|
8373
|
-
var buttonSizeConfigSchema = z14.object({
|
|
8374
|
-
padding: paddingShorthandSchema,
|
|
8375
|
-
fontSize: z14.string().optional()
|
|
8376
|
-
});
|
|
8377
|
-
var buttonSizesSchema = z14.object({
|
|
8378
|
-
sm: buttonSizeConfigSchema,
|
|
8379
|
-
md: buttonSizeConfigSchema,
|
|
8380
|
-
lg: buttonSizeConfigSchema,
|
|
8381
|
-
xl: buttonSizeConfigSchema.optional()
|
|
8382
|
-
}).transform(({ sm, md, lg, xl }) => ({
|
|
8383
|
-
sm,
|
|
8384
|
-
md,
|
|
8385
|
-
lg,
|
|
8386
|
-
xl: xl ?? lg
|
|
8387
|
-
}));
|
|
8388
|
-
var buttonGlobalSettingsSchema = z14.object({
|
|
8389
|
-
cornerStyle: cornerStyleSchema,
|
|
8390
|
-
cornerRadius: z14.number().min(0).max(24).optional(),
|
|
8391
|
-
shadow: shadowSizeSchema,
|
|
8392
|
-
textTransform: textTransformSchema,
|
|
8393
|
-
fontWeight: fontWeightSchema,
|
|
8394
|
-
/**
|
|
8395
|
-
* @deprecated Set per-variant via `variant.border.widthClass` instead.
|
|
8396
|
-
* Schema field is preserved so existing presets parse; the value is unread
|
|
8397
|
-
* by the current generator and will be removed once the legacy
|
|
8398
|
-
* `primitives/content/components/Button.tsx` slot exports are deleted.
|
|
8399
|
-
*/
|
|
8400
|
-
borderWidth: z14.union([z14.literal(1), z14.literal(2), z14.literal(3)]),
|
|
8401
|
-
// === Family-level typography ===
|
|
8402
|
-
// Typography source (body or heading) — selects which theme typography pool to inherit
|
|
8403
|
-
typography: buttonTypographySchema.optional(),
|
|
8404
|
-
// Font size for all variants in the family (Tailwind token, e.g. "text-xs", "text-sm")
|
|
8405
|
-
// Sized variants get this as default; fixed variants inherit unless they override.
|
|
8406
|
-
// Size class CSS may still override at run time for sized variants.
|
|
8407
|
-
fontSize: z14.string().optional(),
|
|
8408
|
-
// Letter spacing applied to all variants
|
|
8409
|
-
letterSpacing: letterSpacingSchema.optional(),
|
|
8410
|
-
// Italic style
|
|
8411
|
-
italic: z14.boolean().optional(),
|
|
8412
|
-
// Padding preset (applies to sized variants without a sizes config)
|
|
8413
|
-
paddingPreset: buttonPaddingPresetSchema.optional(),
|
|
8414
|
-
hoverTransform: hoverTransformSchema,
|
|
8415
|
-
hoverColor: hoverColorSchema,
|
|
8416
|
-
// When hoverColor is 'token', this specifies which token to use
|
|
8417
|
-
hoverColorToken: z14.string().optional(),
|
|
8418
|
-
// Gradient settings (if any variant uses gradients)
|
|
8419
|
-
gradientStyle: gradientStyleSchema.optional(),
|
|
8420
|
-
gradientAngle: z14.number().min(0).max(360).optional(),
|
|
8421
|
-
gradientSharpness: gradientSharpnessSchema.optional()
|
|
8422
|
-
});
|
|
8423
|
-
var gradientDirectionSchema = z14.enum(["to-r", "to-l", "to-t", "to-b", "to-tr", "to-tl", "to-br", "to-bl"]);
|
|
8424
|
-
var buttonBackgroundSchema = z14.discriminatedUnion("type", [
|
|
8425
|
-
z14.object({ type: z14.literal("solid"), colorToken: z14.string() }),
|
|
8426
|
-
z14.object({
|
|
8427
|
-
type: z14.literal("gradient"),
|
|
8428
|
-
stops: z14.array(z14.string()).min(2),
|
|
8429
|
-
direction: gradientDirectionSchema
|
|
8430
|
-
}),
|
|
8431
|
-
z14.object({ type: z14.literal("transparent") })
|
|
8432
|
-
]);
|
|
8433
|
-
var effectApplicationSchema = z14.object({
|
|
8434
|
-
effectId: z14.string(),
|
|
8435
|
-
options: z14.record(z14.string(), z14.any()).optional()
|
|
8436
|
-
});
|
|
8437
|
-
var buttonBorderSchema = z14.object({
|
|
8438
|
-
widthClass: z14.string(),
|
|
8439
|
-
colorToken: z14.string()
|
|
8440
|
-
});
|
|
8441
|
-
var variantShadowSchema = z14.object({
|
|
8442
|
-
elevation: z14.enum(["none", "low", "medium", "high"]),
|
|
8443
|
-
softness: z14.enum(["crisp", "soft", "hard"]).nullable(),
|
|
8444
|
-
position: z14.enum(["bottom", "bottom-right"]).default("bottom")
|
|
8445
|
-
});
|
|
8446
|
-
var variantEffectsSchema = z14.object({
|
|
8447
|
-
base: z14.array(effectApplicationSchema).optional(),
|
|
8448
|
-
hover: z14.array(effectApplicationSchema).optional(),
|
|
8449
|
-
active: z14.array(effectApplicationSchema).optional(),
|
|
8450
|
-
focus: z14.array(effectApplicationSchema).optional()
|
|
8451
|
-
});
|
|
8452
|
-
var variantSizeOverridesSchema = z14.object({
|
|
8453
|
-
sm: buttonSizeConfigSchema.optional(),
|
|
8454
|
-
md: buttonSizeConfigSchema.optional(),
|
|
8455
|
-
lg: buttonSizeConfigSchema.optional(),
|
|
8456
|
-
xl: buttonSizeConfigSchema.optional()
|
|
8457
|
-
});
|
|
8458
|
-
var buttonVariantSchema = z14.object({
|
|
8459
|
-
id: z14.string(),
|
|
8460
|
-
name: z14.string().min(1).max(20),
|
|
8461
|
-
enabled: z14.boolean(),
|
|
8462
|
-
priority: prioritySchema,
|
|
8463
|
-
// Base appearance (token-based)
|
|
8464
|
-
background: buttonBackgroundSchema,
|
|
8465
|
-
textColorToken: z14.string(),
|
|
8466
|
-
/** Tailwind radius token (e.g. `'rounded-md'`). Omit to inherit from `global.cornerStyle`. */
|
|
8467
|
-
borderRadius: z14.string().optional(),
|
|
8468
|
-
// Optional shadow override (uses theme.shadow if not specified)
|
|
8469
|
-
shadow: variantShadowSchema.optional(),
|
|
8470
|
-
// Border (optional)
|
|
8471
|
-
border: buttonBorderSchema.optional(),
|
|
8472
|
-
// Hover background token (per-variant override, takes precedence over global hoverColorToken)
|
|
8473
|
-
hoverBackgroundToken: z14.string().optional(),
|
|
8474
|
-
// Effect composition
|
|
8475
|
-
effects: variantEffectsSchema.optional(),
|
|
8476
|
-
// Per-variant size overrides — see VariantSizeOverrides
|
|
8477
|
-
sizes: variantSizeOverridesSchema.optional()
|
|
8478
|
-
});
|
|
8479
|
-
var buttonSystemSchema = z14.object({
|
|
8480
|
-
global: buttonGlobalSettingsSchema,
|
|
8481
|
-
variants: z14.array(buttonVariantSchema).min(1).max(6),
|
|
8482
|
-
sizes: buttonSizesSchema.optional()
|
|
8483
|
-
});
|
|
8484
|
-
|
|
8485
|
-
// ../theme-core/src/buttons/generateButtonCss.ts
|
|
8486
|
-
var BUTTON_SIZE_NAMES = buttonSizeNameSchema.options;
|
|
8487
|
-
|
|
8488
|
-
// ../theme-core/src/buttons/personalities/types.ts
|
|
8489
|
-
import { z as z15 } from "zod";
|
|
8490
|
-
function asButtonPersonalityId(value) {
|
|
8491
|
-
if (value.length === 0) {
|
|
8492
|
-
throw new Error("ButtonPersonalityId must be a non-empty string");
|
|
8493
|
-
}
|
|
8494
|
-
return value;
|
|
8495
|
-
}
|
|
8496
|
-
var buttonPersonalityIdSchema = z15.string().min(1).transform((value) => asButtonPersonalityId(value));
|
|
8497
|
-
var buttonPersonalitySchema = z15.object({
|
|
8498
|
-
id: buttonPersonalityIdSchema,
|
|
8499
|
-
name: z15.string().min(1),
|
|
8500
|
-
description: z15.string().min(1),
|
|
8501
|
-
tags: styleTagsSchema,
|
|
8502
|
-
buttonSystem: buttonSystemSchema
|
|
8503
|
-
});
|
|
8504
|
-
function defineButtonPersonality(input) {
|
|
8505
|
-
return {
|
|
8506
|
-
id: asButtonPersonalityId(input.id),
|
|
8507
|
-
name: input.name,
|
|
8508
|
-
description: input.description,
|
|
8509
|
-
tags: input.tags,
|
|
8510
|
-
buttonSystem: input.buttonSystem
|
|
8511
|
-
};
|
|
8512
|
-
}
|
|
8513
|
-
|
|
8514
|
-
// ../theme-core/src/buttons/personalities/brushed-wash.ts
|
|
8515
|
-
var brushedWash = defineButtonPersonality({
|
|
8516
|
-
id: "brushed-wash",
|
|
8517
|
-
name: "Brushed Wash",
|
|
8518
|
-
description: "Watercolour-gradient buttons with soft shadows and generous padding.",
|
|
8519
|
-
tags: { tone: "classic", energy: "vibrant", motion: "standard", era: "organic" },
|
|
8369
|
+
// ../theme-core/src/buttons/personalities/pebble.ts
|
|
8370
|
+
var pebble = defineButtonPersonality({
|
|
8371
|
+
id: "pebble",
|
|
8372
|
+
name: "Pebble",
|
|
8373
|
+
description: "Generous pill buttons with a soft hover lift.",
|
|
8374
|
+
tags: { tone: "classic", energy: "calm", motion: "standard", era: "organic" },
|
|
8520
8375
|
buttonSystem: {
|
|
8521
8376
|
global: {
|
|
8522
|
-
cornerStyle: "
|
|
8523
|
-
shadow: "
|
|
8377
|
+
cornerStyle: "pill",
|
|
8378
|
+
shadow: "none",
|
|
8524
8379
|
textTransform: "none",
|
|
8525
8380
|
fontWeight: 500,
|
|
8526
|
-
borderWidth:
|
|
8381
|
+
borderWidth: 2,
|
|
8527
8382
|
hoverTransform: "none",
|
|
8528
8383
|
hoverColor: "none"
|
|
8529
8384
|
},
|
|
8530
8385
|
sizes: {
|
|
8531
|
-
sm: { padding: "0.75rem
|
|
8532
|
-
md: { padding: "
|
|
8533
|
-
lg: { padding: "1.
|
|
8534
|
-
xl: { padding: "1.
|
|
8386
|
+
sm: { padding: "0.625rem 1.75rem", fontSize: "text-sm" },
|
|
8387
|
+
md: { padding: "0.875rem 2.25rem" },
|
|
8388
|
+
lg: { padding: "1.125rem 2.75rem", fontSize: "text-lg" },
|
|
8389
|
+
xl: { padding: "1.5rem 3.5rem", fontSize: "text-xl" }
|
|
8535
8390
|
},
|
|
8536
8391
|
variants: [
|
|
8537
8392
|
{
|
|
@@ -8539,16 +8394,14 @@ var brushedWash = defineButtonPersonality({
|
|
|
8539
8394
|
name: "Primary",
|
|
8540
8395
|
enabled: true,
|
|
8541
8396
|
priority: 1,
|
|
8542
|
-
background: {
|
|
8543
|
-
type: "gradient",
|
|
8544
|
-
stops: ["primary", "accent"],
|
|
8545
|
-
direction: "to-r"
|
|
8546
|
-
},
|
|
8397
|
+
background: { type: "solid", colorToken: "primary" },
|
|
8547
8398
|
textColorToken: "primaryForeground",
|
|
8548
|
-
borderRadius: "rounded-
|
|
8549
|
-
shadow: { elevation: "low", softness: "soft", position: "bottom" },
|
|
8399
|
+
borderRadius: "rounded-full",
|
|
8550
8400
|
effects: {
|
|
8551
|
-
hover: [
|
|
8401
|
+
hover: [
|
|
8402
|
+
{ effectId: "scale-up", options: { scale: "1.03" } },
|
|
8403
|
+
{ effectId: "drop-shadow", options: { intensity: "medium" } }
|
|
8404
|
+
]
|
|
8552
8405
|
}
|
|
8553
8406
|
},
|
|
8554
8407
|
{
|
|
@@ -8556,16 +8409,12 @@ var brushedWash = defineButtonPersonality({
|
|
|
8556
8409
|
name: "Secondary",
|
|
8557
8410
|
enabled: true,
|
|
8558
8411
|
priority: 2,
|
|
8559
|
-
background: {
|
|
8560
|
-
|
|
8561
|
-
|
|
8562
|
-
|
|
8563
|
-
},
|
|
8564
|
-
textColorToken: "primaryForeground",
|
|
8565
|
-
borderRadius: "rounded-lg",
|
|
8566
|
-
shadow: { elevation: "low", softness: "soft", position: "bottom" },
|
|
8412
|
+
background: { type: "transparent" },
|
|
8413
|
+
textColorToken: "primary",
|
|
8414
|
+
borderRadius: "rounded-full",
|
|
8415
|
+
border: { widthClass: "border-2", colorToken: "accent" },
|
|
8567
8416
|
effects: {
|
|
8568
|
-
hover: [{ effectId: "
|
|
8417
|
+
hover: [{ effectId: "background-on-hover", options: { colorToken: "accent" } }]
|
|
8569
8418
|
}
|
|
8570
8419
|
},
|
|
8571
8420
|
{
|
|
@@ -8574,9 +8423,9 @@ var brushedWash = defineButtonPersonality({
|
|
|
8574
8423
|
enabled: true,
|
|
8575
8424
|
priority: 3,
|
|
8576
8425
|
background: { type: "transparent" },
|
|
8577
|
-
textColorToken: "
|
|
8578
|
-
borderRadius: "rounded-
|
|
8579
|
-
border: { widthClass: "border", colorToken: "
|
|
8426
|
+
textColorToken: "text",
|
|
8427
|
+
borderRadius: "rounded-full",
|
|
8428
|
+
border: { widthClass: "border", colorToken: "border" },
|
|
8580
8429
|
effects: {
|
|
8581
8430
|
hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
|
|
8582
8431
|
}
|
|
@@ -8587,32 +8436,36 @@ var brushedWash = defineButtonPersonality({
|
|
|
8587
8436
|
enabled: true,
|
|
8588
8437
|
priority: 3,
|
|
8589
8438
|
background: { type: "transparent" },
|
|
8590
|
-
textColorToken: "
|
|
8591
|
-
borderRadius: "rounded-
|
|
8439
|
+
textColorToken: "primary",
|
|
8440
|
+
borderRadius: "rounded-full",
|
|
8441
|
+
sizes: {
|
|
8442
|
+
sm: { padding: "0.375rem 0.875rem", fontSize: "text-sm" },
|
|
8443
|
+
md: { padding: "0.5rem 1rem" },
|
|
8444
|
+
lg: { padding: "0.625rem 1.25rem", fontSize: "text-lg" },
|
|
8445
|
+
xl: { padding: "0.75rem 1.5rem", fontSize: "text-xl" }
|
|
8446
|
+
},
|
|
8592
8447
|
effects: {
|
|
8593
|
-
hover: [
|
|
8594
|
-
{ effectId: "background-on-hover", options: { colorToken: "surface" } }
|
|
8595
|
-
]
|
|
8448
|
+
hover: [{ effectId: "opacity-reduce", options: { reduction: 30 } }]
|
|
8596
8449
|
}
|
|
8597
8450
|
}
|
|
8598
8451
|
]
|
|
8599
8452
|
}
|
|
8600
8453
|
});
|
|
8601
8454
|
|
|
8602
|
-
// ../theme-core/src/buttons/personalities/
|
|
8603
|
-
var
|
|
8604
|
-
id: "
|
|
8605
|
-
name: "
|
|
8606
|
-
description: "
|
|
8607
|
-
tags: { tone: "classic", energy: "calm", motion: "
|
|
8455
|
+
// ../theme-core/src/buttons/personalities/soft-pill.ts
|
|
8456
|
+
var softPill = defineButtonPersonality({
|
|
8457
|
+
id: "soft-pill",
|
|
8458
|
+
name: "Soft Pill",
|
|
8459
|
+
description: "Rounded pills with a gentle lift on hover. Quietly modern.",
|
|
8460
|
+
tags: { tone: "classic", energy: "calm", motion: "subtle", era: "organic" },
|
|
8608
8461
|
buttonSystem: {
|
|
8609
8462
|
global: {
|
|
8610
|
-
cornerStyle: "
|
|
8611
|
-
shadow: "
|
|
8463
|
+
cornerStyle: "pill",
|
|
8464
|
+
shadow: "low",
|
|
8612
8465
|
textTransform: "none",
|
|
8613
|
-
fontWeight:
|
|
8614
|
-
borderWidth:
|
|
8615
|
-
hoverTransform: "
|
|
8466
|
+
fontWeight: 500,
|
|
8467
|
+
borderWidth: 2,
|
|
8468
|
+
hoverTransform: "lift",
|
|
8616
8469
|
hoverColor: "none"
|
|
8617
8470
|
},
|
|
8618
8471
|
variants: [
|
|
@@ -8623,11 +8476,11 @@ var confidentChip = defineButtonPersonality({
|
|
|
8623
8476
|
priority: 1,
|
|
8624
8477
|
background: { type: "solid", colorToken: "primary" },
|
|
8625
8478
|
textColorToken: "primaryForeground",
|
|
8626
|
-
borderRadius: "rounded-
|
|
8627
|
-
shadow: { elevation: "
|
|
8479
|
+
borderRadius: "rounded-full",
|
|
8480
|
+
shadow: { elevation: "low", softness: "soft", position: "bottom" },
|
|
8628
8481
|
effects: {
|
|
8629
|
-
hover: [{ effectId: "
|
|
8630
|
-
active: [{ effectId: "scale-down", options: { scale: "0.
|
|
8482
|
+
hover: [{ effectId: "lift", options: { translateY: "-1px" } }],
|
|
8483
|
+
active: [{ effectId: "scale-down", options: { scale: "0.98" } }]
|
|
8631
8484
|
}
|
|
8632
8485
|
},
|
|
8633
8486
|
{
|
|
@@ -8635,12 +8488,12 @@ var confidentChip = defineButtonPersonality({
|
|
|
8635
8488
|
name: "Secondary",
|
|
8636
8489
|
enabled: true,
|
|
8637
8490
|
priority: 2,
|
|
8638
|
-
background: { type: "
|
|
8639
|
-
textColorToken: "
|
|
8640
|
-
borderRadius: "rounded-
|
|
8641
|
-
border: { widthClass: "border", colorToken: "
|
|
8491
|
+
background: { type: "transparent" },
|
|
8492
|
+
textColorToken: "primary",
|
|
8493
|
+
borderRadius: "rounded-full",
|
|
8494
|
+
border: { widthClass: "border-2", colorToken: "primary" },
|
|
8642
8495
|
effects: {
|
|
8643
|
-
hover: [{ effectId: "background-on-hover", options: { colorToken: "
|
|
8496
|
+
hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
|
|
8644
8497
|
}
|
|
8645
8498
|
},
|
|
8646
8499
|
{
|
|
@@ -8649,9 +8502,9 @@ var confidentChip = defineButtonPersonality({
|
|
|
8649
8502
|
enabled: true,
|
|
8650
8503
|
priority: 3,
|
|
8651
8504
|
background: { type: "transparent" },
|
|
8652
|
-
textColorToken: "
|
|
8653
|
-
borderRadius: "rounded-
|
|
8654
|
-
border: { widthClass: "border", colorToken: "
|
|
8505
|
+
textColorToken: "text",
|
|
8506
|
+
borderRadius: "rounded-full",
|
|
8507
|
+
border: { widthClass: "border", colorToken: "border" },
|
|
8655
8508
|
effects: {
|
|
8656
8509
|
hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
|
|
8657
8510
|
}
|
|
@@ -8662,8 +8515,8 @@ var confidentChip = defineButtonPersonality({
|
|
|
8662
8515
|
enabled: true,
|
|
8663
8516
|
priority: 3,
|
|
8664
8517
|
background: { type: "transparent" },
|
|
8665
|
-
textColorToken: "
|
|
8666
|
-
borderRadius: "rounded-
|
|
8518
|
+
textColorToken: "text",
|
|
8519
|
+
borderRadius: "rounded-full",
|
|
8667
8520
|
effects: {
|
|
8668
8521
|
hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
|
|
8669
8522
|
}
|
|
@@ -8672,412 +8525,114 @@ var confidentChip = defineButtonPersonality({
|
|
|
8672
8525
|
}
|
|
8673
8526
|
});
|
|
8674
8527
|
|
|
8675
|
-
// ../theme-core/src/buttons/personalities/
|
|
8676
|
-
var
|
|
8677
|
-
|
|
8678
|
-
|
|
8679
|
-
|
|
8680
|
-
|
|
8681
|
-
|
|
8682
|
-
|
|
8683
|
-
|
|
8684
|
-
|
|
8685
|
-
|
|
8686
|
-
|
|
8687
|
-
|
|
8688
|
-
|
|
8689
|
-
|
|
8690
|
-
|
|
8691
|
-
|
|
8692
|
-
|
|
8693
|
-
|
|
8694
|
-
|
|
8695
|
-
|
|
8696
|
-
|
|
8697
|
-
|
|
8698
|
-
|
|
8699
|
-
|
|
8700
|
-
|
|
8701
|
-
|
|
8702
|
-
|
|
8703
|
-
|
|
8704
|
-
|
|
8705
|
-
|
|
8706
|
-
|
|
8707
|
-
|
|
8708
|
-
|
|
8709
|
-
|
|
8710
|
-
|
|
8711
|
-
|
|
8712
|
-
|
|
8713
|
-
|
|
8714
|
-
|
|
8715
|
-
|
|
8716
|
-
|
|
8717
|
-
|
|
8718
|
-
|
|
8719
|
-
|
|
8720
|
-
|
|
8721
|
-
|
|
8722
|
-
|
|
8723
|
-
|
|
8724
|
-
|
|
8725
|
-
|
|
8726
|
-
|
|
8727
|
-
|
|
8728
|
-
|
|
8729
|
-
|
|
8730
|
-
|
|
8731
|
-
|
|
8732
|
-
|
|
8733
|
-
|
|
8734
|
-
|
|
8735
|
-
id: "outline",
|
|
8736
|
-
name: "Outline",
|
|
8737
|
-
enabled: true,
|
|
8738
|
-
priority: 3,
|
|
8739
|
-
background: { type: "transparent" },
|
|
8740
|
-
textColorToken: "accent",
|
|
8741
|
-
borderRadius: "rounded-none",
|
|
8742
|
-
shadow: { elevation: "none", softness: null, position: "bottom" },
|
|
8743
|
-
sizes: {
|
|
8744
|
-
sm: { padding: "0.25rem 0" },
|
|
8745
|
-
md: { padding: "0.5rem 0" },
|
|
8746
|
-
lg: { padding: "0.625rem 0" },
|
|
8747
|
-
xl: { padding: "0.75rem 0" }
|
|
8748
|
-
},
|
|
8749
|
-
effects: {
|
|
8750
|
-
base: [
|
|
8751
|
-
{ effectId: "border-bottom-grow", options: { height: 1, colorToken: "accent", origin: "left" } }
|
|
8752
|
-
]
|
|
8753
|
-
}
|
|
8754
|
-
},
|
|
8755
|
-
{
|
|
8756
|
-
id: "ghost",
|
|
8757
|
-
name: "Ghost",
|
|
8758
|
-
enabled: true,
|
|
8759
|
-
priority: 3,
|
|
8760
|
-
background: { type: "transparent" },
|
|
8761
|
-
textColorToken: "mutedText",
|
|
8762
|
-
borderRadius: "rounded-none",
|
|
8763
|
-
shadow: { elevation: "none", softness: null, position: "bottom" },
|
|
8764
|
-
sizes: {
|
|
8765
|
-
sm: { padding: "0.25rem 0" },
|
|
8766
|
-
md: { padding: "0.5rem 0" },
|
|
8767
|
-
lg: { padding: "0.625rem 0" },
|
|
8768
|
-
xl: { padding: "0.75rem 0" }
|
|
8769
|
-
},
|
|
8770
|
-
effects: {
|
|
8771
|
-
hover: [{ effectId: "opacity-reduce", options: { reduction: -20 } }]
|
|
8772
|
-
}
|
|
8773
|
-
}
|
|
8774
|
-
]
|
|
8775
|
-
}
|
|
8528
|
+
// ../theme-core/src/buttons/personalities/index.ts
|
|
8529
|
+
var buttonPersonalities = [
|
|
8530
|
+
softPill,
|
|
8531
|
+
confidentChip,
|
|
8532
|
+
editorialLink,
|
|
8533
|
+
pebble,
|
|
8534
|
+
inkStamp,
|
|
8535
|
+
brushedWash
|
|
8536
|
+
];
|
|
8537
|
+
var personalitiesById = new Map(
|
|
8538
|
+
buttonPersonalities.map((p) => [p.id, p])
|
|
8539
|
+
);
|
|
8540
|
+
|
|
8541
|
+
// ../theme-core/src/palette/variants/types.ts
|
|
8542
|
+
import { z as z23 } from "zod";
|
|
8543
|
+
|
|
8544
|
+
// ../theme-core/src/schema.ts
|
|
8545
|
+
import { z as z22 } from "zod";
|
|
8546
|
+
|
|
8547
|
+
// ../theme-core/src/lib/media.ts
|
|
8548
|
+
import z12 from "zod";
|
|
8549
|
+
var hotspotSchema = z12.object({
|
|
8550
|
+
x: z12.number().min(0).max(1),
|
|
8551
|
+
y: z12.number().min(0).max(1),
|
|
8552
|
+
radius: z12.number().optional()
|
|
8553
|
+
});
|
|
8554
|
+
var rotationSchema = z12.union([z12.literal(0), z12.literal(90), z12.literal(180), z12.literal(270)]);
|
|
8555
|
+
var rectSchema = z12.tuple([z12.number(), z12.number(), z12.number(), z12.number()]);
|
|
8556
|
+
var aspectCropSchema = z12.object({
|
|
8557
|
+
aspect: z12.preprocess((value) => value == null ? void 0 : value, z12.string().optional()),
|
|
8558
|
+
rect: z12.preprocess((value) => value == null ? void 0 : value, rectSchema.optional()),
|
|
8559
|
+
hotspot: z12.preprocess((value) => value == null ? void 0 : value, hotspotSchema.optional()),
|
|
8560
|
+
rotation: z12.preprocess((value) => value == null ? void 0 : value, rotationSchema.optional())
|
|
8561
|
+
});
|
|
8562
|
+
var transformSchema = z12.object({
|
|
8563
|
+
aspectCrops: z12.preprocess((value) => {
|
|
8564
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
8565
|
+
return void 0;
|
|
8566
|
+
}
|
|
8567
|
+
return value;
|
|
8568
|
+
}, z12.record(z12.string(), aspectCropSchema.catch({}))).optional(),
|
|
8569
|
+
rect: rectSchema.optional(),
|
|
8570
|
+
hotspot: hotspotSchema.optional(),
|
|
8571
|
+
rotation: rotationSchema.optional()
|
|
8572
|
+
});
|
|
8573
|
+
var mediaSchema = z12.object({
|
|
8574
|
+
type: z12.enum(["image", "video", "audio", "document", "spreadsheet", "archive"]),
|
|
8575
|
+
purpose: z12.string().optional(),
|
|
8576
|
+
placeholder: z12.boolean().default(true).optional(),
|
|
8577
|
+
assetId: z12.string().optional(),
|
|
8578
|
+
identifier: z12.string().optional(),
|
|
8579
|
+
src: z12.string().optional(),
|
|
8580
|
+
alt: z12.string().optional(),
|
|
8581
|
+
filename: z12.string().optional(),
|
|
8582
|
+
mimeType: z12.string().optional(),
|
|
8583
|
+
width: z12.number().optional(),
|
|
8584
|
+
height: z12.number().optional(),
|
|
8585
|
+
storageBucket: z12.string().optional(),
|
|
8586
|
+
storagePath: z12.string().optional(),
|
|
8587
|
+
transform: transformSchema.optional()
|
|
8776
8588
|
});
|
|
8777
8589
|
|
|
8778
|
-
// ../theme-core/src/buttons/
|
|
8779
|
-
var
|
|
8780
|
-
|
|
8781
|
-
|
|
8782
|
-
|
|
8783
|
-
|
|
8784
|
-
|
|
8785
|
-
|
|
8786
|
-
|
|
8787
|
-
|
|
8788
|
-
|
|
8789
|
-
|
|
8790
|
-
|
|
8791
|
-
|
|
8792
|
-
|
|
8793
|
-
|
|
8794
|
-
|
|
8795
|
-
|
|
8796
|
-
|
|
8797
|
-
|
|
8798
|
-
|
|
8799
|
-
|
|
8800
|
-
|
|
8801
|
-
|
|
8802
|
-
|
|
8803
|
-
|
|
8804
|
-
|
|
8805
|
-
|
|
8806
|
-
|
|
8807
|
-
|
|
8808
|
-
|
|
8809
|
-
|
|
8810
|
-
|
|
8811
|
-
|
|
8812
|
-
|
|
8813
|
-
|
|
8814
|
-
|
|
8815
|
-
|
|
8816
|
-
|
|
8817
|
-
|
|
8818
|
-
|
|
8819
|
-
id: "secondary",
|
|
8820
|
-
name: "Secondary",
|
|
8821
|
-
enabled: true,
|
|
8822
|
-
priority: 2,
|
|
8823
|
-
background: { type: "transparent" },
|
|
8824
|
-
textColorToken: "primary",
|
|
8825
|
-
borderRadius: "rounded-md",
|
|
8826
|
-
border: { widthClass: "border-2", colorToken: "primary" },
|
|
8827
|
-
effects: {
|
|
8828
|
-
hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
|
|
8829
|
-
}
|
|
8830
|
-
},
|
|
8831
|
-
{
|
|
8832
|
-
id: "outline",
|
|
8833
|
-
name: "Outline",
|
|
8834
|
-
enabled: true,
|
|
8835
|
-
priority: 3,
|
|
8836
|
-
background: { type: "transparent" },
|
|
8837
|
-
textColorToken: "text",
|
|
8838
|
-
borderRadius: "rounded-md",
|
|
8839
|
-
border: { widthClass: "border-2", colorToken: "border" },
|
|
8840
|
-
effects: {
|
|
8841
|
-
hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
|
|
8842
|
-
}
|
|
8843
|
-
},
|
|
8844
|
-
{
|
|
8845
|
-
id: "ghost",
|
|
8846
|
-
name: "Ghost",
|
|
8847
|
-
enabled: true,
|
|
8848
|
-
priority: 3,
|
|
8849
|
-
background: { type: "transparent" },
|
|
8850
|
-
textColorToken: "accent",
|
|
8851
|
-
borderRadius: "rounded-none",
|
|
8852
|
-
sizes: {
|
|
8853
|
-
sm: { padding: "0.375rem 0", fontSize: "text-xs" },
|
|
8854
|
-
md: { padding: "0.5rem 0", fontSize: "text-sm" },
|
|
8855
|
-
lg: { padding: "0.625rem 0", fontSize: "text-base" },
|
|
8856
|
-
xl: { padding: "0.75rem 0", fontSize: "text-lg" }
|
|
8857
|
-
},
|
|
8858
|
-
effects: {
|
|
8859
|
-
base: [{ effectId: "border-bottom-grow", options: { height: 1, colorToken: "accent", origin: "left" } }]
|
|
8860
|
-
}
|
|
8861
|
-
}
|
|
8862
|
-
]
|
|
8863
|
-
}
|
|
8864
|
-
});
|
|
8865
|
-
|
|
8866
|
-
// ../theme-core/src/buttons/personalities/pebble.ts
|
|
8867
|
-
var pebble = defineButtonPersonality({
|
|
8868
|
-
id: "pebble",
|
|
8869
|
-
name: "Pebble",
|
|
8870
|
-
description: "Generous pill buttons with a soft hover lift.",
|
|
8871
|
-
tags: { tone: "classic", energy: "calm", motion: "standard", era: "organic" },
|
|
8872
|
-
buttonSystem: {
|
|
8873
|
-
global: {
|
|
8874
|
-
cornerStyle: "pill",
|
|
8875
|
-
shadow: "none",
|
|
8876
|
-
textTransform: "none",
|
|
8877
|
-
fontWeight: 500,
|
|
8878
|
-
borderWidth: 2,
|
|
8879
|
-
hoverTransform: "none",
|
|
8880
|
-
hoverColor: "none"
|
|
8881
|
-
},
|
|
8882
|
-
sizes: {
|
|
8883
|
-
sm: { padding: "0.625rem 1.75rem", fontSize: "text-sm" },
|
|
8884
|
-
md: { padding: "0.875rem 2.25rem" },
|
|
8885
|
-
lg: { padding: "1.125rem 2.75rem", fontSize: "text-lg" },
|
|
8886
|
-
xl: { padding: "1.5rem 3.5rem", fontSize: "text-xl" }
|
|
8887
|
-
},
|
|
8888
|
-
variants: [
|
|
8889
|
-
{
|
|
8890
|
-
id: "primary",
|
|
8891
|
-
name: "Primary",
|
|
8892
|
-
enabled: true,
|
|
8893
|
-
priority: 1,
|
|
8894
|
-
background: { type: "solid", colorToken: "primary" },
|
|
8895
|
-
textColorToken: "primaryForeground",
|
|
8896
|
-
borderRadius: "rounded-full",
|
|
8897
|
-
effects: {
|
|
8898
|
-
hover: [
|
|
8899
|
-
{ effectId: "scale-up", options: { scale: "1.03" } },
|
|
8900
|
-
{ effectId: "drop-shadow", options: { intensity: "medium" } }
|
|
8901
|
-
]
|
|
8902
|
-
}
|
|
8903
|
-
},
|
|
8904
|
-
{
|
|
8905
|
-
id: "secondary",
|
|
8906
|
-
name: "Secondary",
|
|
8907
|
-
enabled: true,
|
|
8908
|
-
priority: 2,
|
|
8909
|
-
background: { type: "transparent" },
|
|
8910
|
-
textColorToken: "primary",
|
|
8911
|
-
borderRadius: "rounded-full",
|
|
8912
|
-
border: { widthClass: "border-2", colorToken: "accent" },
|
|
8913
|
-
effects: {
|
|
8914
|
-
hover: [{ effectId: "background-on-hover", options: { colorToken: "accent" } }]
|
|
8915
|
-
}
|
|
8916
|
-
},
|
|
8917
|
-
{
|
|
8918
|
-
id: "outline",
|
|
8919
|
-
name: "Outline",
|
|
8920
|
-
enabled: true,
|
|
8921
|
-
priority: 3,
|
|
8922
|
-
background: { type: "transparent" },
|
|
8923
|
-
textColorToken: "text",
|
|
8924
|
-
borderRadius: "rounded-full",
|
|
8925
|
-
border: { widthClass: "border", colorToken: "border" },
|
|
8926
|
-
effects: {
|
|
8927
|
-
hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
|
|
8928
|
-
}
|
|
8929
|
-
},
|
|
8930
|
-
{
|
|
8931
|
-
id: "ghost",
|
|
8932
|
-
name: "Ghost",
|
|
8933
|
-
enabled: true,
|
|
8934
|
-
priority: 3,
|
|
8935
|
-
background: { type: "transparent" },
|
|
8936
|
-
textColorToken: "primary",
|
|
8937
|
-
borderRadius: "rounded-full",
|
|
8938
|
-
sizes: {
|
|
8939
|
-
sm: { padding: "0.375rem 0.875rem", fontSize: "text-sm" },
|
|
8940
|
-
md: { padding: "0.5rem 1rem" },
|
|
8941
|
-
lg: { padding: "0.625rem 1.25rem", fontSize: "text-lg" },
|
|
8942
|
-
xl: { padding: "0.75rem 1.5rem", fontSize: "text-xl" }
|
|
8943
|
-
},
|
|
8944
|
-
effects: {
|
|
8945
|
-
hover: [{ effectId: "opacity-reduce", options: { reduction: 30 } }]
|
|
8946
|
-
}
|
|
8947
|
-
}
|
|
8948
|
-
]
|
|
8949
|
-
}
|
|
8950
|
-
});
|
|
8951
|
-
|
|
8952
|
-
// ../theme-core/src/buttons/personalities/soft-pill.ts
|
|
8953
|
-
var softPill = defineButtonPersonality({
|
|
8954
|
-
id: "soft-pill",
|
|
8955
|
-
name: "Soft Pill",
|
|
8956
|
-
description: "Rounded pills with a gentle lift on hover. Quietly modern.",
|
|
8957
|
-
tags: { tone: "classic", energy: "calm", motion: "subtle", era: "organic" },
|
|
8958
|
-
buttonSystem: {
|
|
8959
|
-
global: {
|
|
8960
|
-
cornerStyle: "pill",
|
|
8961
|
-
shadow: "low",
|
|
8962
|
-
textTransform: "none",
|
|
8963
|
-
fontWeight: 500,
|
|
8964
|
-
borderWidth: 2,
|
|
8965
|
-
hoverTransform: "lift",
|
|
8966
|
-
hoverColor: "none"
|
|
8967
|
-
},
|
|
8968
|
-
variants: [
|
|
8969
|
-
{
|
|
8970
|
-
id: "primary",
|
|
8971
|
-
name: "Primary",
|
|
8972
|
-
enabled: true,
|
|
8973
|
-
priority: 1,
|
|
8974
|
-
background: { type: "solid", colorToken: "primary" },
|
|
8975
|
-
textColorToken: "primaryForeground",
|
|
8976
|
-
borderRadius: "rounded-full",
|
|
8977
|
-
shadow: { elevation: "low", softness: "soft", position: "bottom" },
|
|
8978
|
-
effects: {
|
|
8979
|
-
hover: [{ effectId: "lift", options: { translateY: "-1px" } }],
|
|
8980
|
-
active: [{ effectId: "scale-down", options: { scale: "0.98" } }]
|
|
8981
|
-
}
|
|
8982
|
-
},
|
|
8983
|
-
{
|
|
8984
|
-
id: "secondary",
|
|
8985
|
-
name: "Secondary",
|
|
8986
|
-
enabled: true,
|
|
8987
|
-
priority: 2,
|
|
8988
|
-
background: { type: "transparent" },
|
|
8989
|
-
textColorToken: "primary",
|
|
8990
|
-
borderRadius: "rounded-full",
|
|
8991
|
-
border: { widthClass: "border-2", colorToken: "primary" },
|
|
8992
|
-
effects: {
|
|
8993
|
-
hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
|
|
8994
|
-
}
|
|
8995
|
-
},
|
|
8996
|
-
{
|
|
8997
|
-
id: "outline",
|
|
8998
|
-
name: "Outline",
|
|
8999
|
-
enabled: true,
|
|
9000
|
-
priority: 3,
|
|
9001
|
-
background: { type: "transparent" },
|
|
9002
|
-
textColorToken: "text",
|
|
9003
|
-
borderRadius: "rounded-full",
|
|
9004
|
-
border: { widthClass: "border", colorToken: "border" },
|
|
9005
|
-
effects: {
|
|
9006
|
-
hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
|
|
9007
|
-
}
|
|
9008
|
-
},
|
|
9009
|
-
{
|
|
9010
|
-
id: "ghost",
|
|
9011
|
-
name: "Ghost",
|
|
9012
|
-
enabled: true,
|
|
9013
|
-
priority: 3,
|
|
9014
|
-
background: { type: "transparent" },
|
|
9015
|
-
textColorToken: "text",
|
|
9016
|
-
borderRadius: "rounded-full",
|
|
9017
|
-
effects: {
|
|
9018
|
-
hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
|
|
9019
|
-
}
|
|
9020
|
-
}
|
|
9021
|
-
]
|
|
9022
|
-
}
|
|
9023
|
-
});
|
|
9024
|
-
|
|
9025
|
-
// ../theme-core/src/buttons/personalities/index.ts
|
|
9026
|
-
var buttonPersonalities = [
|
|
9027
|
-
softPill,
|
|
9028
|
-
confidentChip,
|
|
9029
|
-
editorialLink,
|
|
9030
|
-
pebble,
|
|
9031
|
-
inkStamp,
|
|
9032
|
-
brushedWash
|
|
9033
|
-
];
|
|
9034
|
-
var personalitiesById = new Map(
|
|
9035
|
-
buttonPersonalities.map((p) => [p.id, p])
|
|
9036
|
-
);
|
|
9037
|
-
|
|
9038
|
-
// ../theme-core/src/cards/types.ts
|
|
9039
|
-
import { z as z16 } from "zod";
|
|
9040
|
-
var cardSpacingSchema = z16.enum(["none", "compact", "cozy", "medium", "comfortable", "spacious"]);
|
|
9041
|
-
var gradientDirectionSchema2 = z16.enum(["to-r", "to-l", "to-t", "to-b", "to-tr", "to-tl", "to-br", "to-bl"]);
|
|
9042
|
-
var cardBackgroundSchema = z16.discriminatedUnion("type", [
|
|
9043
|
-
z16.object({ type: z16.literal("solid"), colorToken: z16.string() }),
|
|
9044
|
-
z16.object({
|
|
9045
|
-
type: z16.literal("gradient"),
|
|
9046
|
-
fromToken: z16.string(),
|
|
9047
|
-
toToken: z16.string(),
|
|
9048
|
-
direction: gradientDirectionSchema2
|
|
9049
|
-
}),
|
|
9050
|
-
z16.object({ type: z16.literal("transparent") })
|
|
9051
|
-
]);
|
|
9052
|
-
var cardBorderSchema = z16.object({
|
|
9053
|
-
widthClass: z16.string(),
|
|
9054
|
-
colorToken: z16.string()
|
|
9055
|
-
});
|
|
9056
|
-
var cardVariantSchema = z16.object({
|
|
9057
|
-
id: z16.string(),
|
|
9058
|
-
name: z16.string().min(1).max(20),
|
|
9059
|
-
enabled: z16.boolean(),
|
|
9060
|
-
priority: z16.union([z16.literal(1), z16.literal(2), z16.literal(3)]),
|
|
9061
|
-
// Appearance (token-based)
|
|
9062
|
-
background: cardBackgroundSchema,
|
|
9063
|
-
spacing: cardSpacingSchema,
|
|
9064
|
-
// Optional overrides (uses theme defaults if not specified)
|
|
9065
|
-
shadow: z16.object({
|
|
9066
|
-
elevation: z16.enum(["none", "low", "medium", "high"]),
|
|
9067
|
-
softness: z16.enum(["crisp", "soft", "hard"]).nullable(),
|
|
9068
|
-
position: z16.enum(["bottom", "bottom-right"]).default("bottom")
|
|
9069
|
-
}).optional(),
|
|
9070
|
-
corners: z16.enum(["square", "soft", "rounded", "pill"]).optional(),
|
|
9071
|
-
// Border (optional)
|
|
9072
|
-
border: cardBorderSchema.optional()
|
|
9073
|
-
});
|
|
9074
|
-
var cardSystemSchema = z16.object({
|
|
9075
|
-
variants: z16.array(cardVariantSchema).min(1).max(3)
|
|
8590
|
+
// ../theme-core/src/buttons/generateButtonCss.ts
|
|
8591
|
+
var BUTTON_SIZE_NAMES = buttonSizeNameSchema.options;
|
|
8592
|
+
|
|
8593
|
+
// ../theme-core/src/cards/types.ts
|
|
8594
|
+
import { z as z13 } from "zod";
|
|
8595
|
+
var cardSpacingSchema = z13.enum(["none", "compact", "cozy", "medium", "comfortable", "spacious"]);
|
|
8596
|
+
var gradientDirectionSchema2 = z13.enum(["to-r", "to-l", "to-t", "to-b", "to-tr", "to-tl", "to-br", "to-bl"]);
|
|
8597
|
+
var cardBackgroundSchema = z13.discriminatedUnion("type", [
|
|
8598
|
+
z13.object({ type: z13.literal("solid"), colorToken: z13.string() }),
|
|
8599
|
+
z13.object({
|
|
8600
|
+
type: z13.literal("gradient"),
|
|
8601
|
+
fromToken: z13.string(),
|
|
8602
|
+
toToken: z13.string(),
|
|
8603
|
+
direction: gradientDirectionSchema2
|
|
8604
|
+
}),
|
|
8605
|
+
z13.object({ type: z13.literal("transparent") })
|
|
8606
|
+
]);
|
|
8607
|
+
var cardBorderSchema = z13.object({
|
|
8608
|
+
widthClass: z13.string(),
|
|
8609
|
+
colorToken: z13.string()
|
|
8610
|
+
});
|
|
8611
|
+
var cardVariantSchema = z13.object({
|
|
8612
|
+
id: z13.string(),
|
|
8613
|
+
name: z13.string().min(1).max(20),
|
|
8614
|
+
enabled: z13.boolean(),
|
|
8615
|
+
priority: z13.union([z13.literal(1), z13.literal(2), z13.literal(3)]),
|
|
8616
|
+
// Appearance (token-based)
|
|
8617
|
+
background: cardBackgroundSchema,
|
|
8618
|
+
spacing: cardSpacingSchema,
|
|
8619
|
+
// Optional overrides (uses theme defaults if not specified)
|
|
8620
|
+
shadow: z13.object({
|
|
8621
|
+
elevation: z13.enum(["none", "low", "medium", "high"]),
|
|
8622
|
+
softness: z13.enum(["crisp", "soft", "hard"]).nullable(),
|
|
8623
|
+
position: z13.enum(["bottom", "bottom-right"]).default("bottom")
|
|
8624
|
+
}).optional(),
|
|
8625
|
+
corners: z13.enum(["square", "soft", "rounded", "pill"]).optional(),
|
|
8626
|
+
// Border (optional)
|
|
8627
|
+
border: cardBorderSchema.optional()
|
|
8628
|
+
});
|
|
8629
|
+
var cardSystemSchema = z13.object({
|
|
8630
|
+
variants: z13.array(cardVariantSchema).min(1).max(3)
|
|
9076
8631
|
});
|
|
9077
8632
|
|
|
9078
8633
|
// ../theme-core/src/accordions/types.ts
|
|
9079
|
-
import { z as
|
|
9080
|
-
var accordionIconSchema =
|
|
8634
|
+
import { z as z14 } from "zod";
|
|
8635
|
+
var accordionIconSchema = z14.enum([
|
|
9081
8636
|
"plus-minus",
|
|
9082
8637
|
// + becomes - (swap or rotate 90°)
|
|
9083
8638
|
"chevron",
|
|
@@ -9089,180 +8644,180 @@ var accordionIconSchema = z17.enum([
|
|
|
9089
8644
|
"circle-plus-minus"
|
|
9090
8645
|
// ⊕ becomes ⊖ (swap with fade)
|
|
9091
8646
|
]);
|
|
9092
|
-
var accordionSystemSchema =
|
|
8647
|
+
var accordionSystemSchema = z14.object({
|
|
9093
8648
|
// Visual styling (solid color only - gradients can be added later if needed)
|
|
9094
|
-
background:
|
|
9095
|
-
type:
|
|
9096
|
-
colorToken:
|
|
8649
|
+
background: z14.object({
|
|
8650
|
+
type: z14.literal("solid"),
|
|
8651
|
+
colorToken: z14.string()
|
|
9097
8652
|
}),
|
|
9098
8653
|
// Spacing (padding inside items)
|
|
9099
|
-
spacing:
|
|
8654
|
+
spacing: z14.enum(["none", "compact", "cozy", "medium", "comfortable", "spacious"]),
|
|
9100
8655
|
// Border radius (null = inherit from theme.corners)
|
|
9101
|
-
corners:
|
|
8656
|
+
corners: z14.enum(["square", "soft", "rounded", "pill"]).nullable(),
|
|
9102
8657
|
// Border styling (null = inherit from theme.border)
|
|
9103
|
-
border:
|
|
9104
|
-
widthClass:
|
|
8658
|
+
border: z14.object({
|
|
8659
|
+
widthClass: z14.string(),
|
|
9105
8660
|
// e.g., 'border', 'border-2', 'border-0'
|
|
9106
|
-
colorToken:
|
|
8661
|
+
colorToken: z14.string()
|
|
9107
8662
|
}).nullable(),
|
|
9108
8663
|
// Shadow (null = inherit from theme.shadow)
|
|
9109
|
-
shadow:
|
|
9110
|
-
elevation:
|
|
9111
|
-
softness:
|
|
9112
|
-
position:
|
|
8664
|
+
shadow: z14.object({
|
|
8665
|
+
elevation: z14.enum(["none", "low", "medium", "high"]),
|
|
8666
|
+
softness: z14.enum(["soft", "crisp", "hard"]).nullable(),
|
|
8667
|
+
position: z14.enum(["bottom", "bottom-right"])
|
|
9113
8668
|
}).nullable(),
|
|
9114
8669
|
// Icon style and animation
|
|
9115
|
-
icon:
|
|
8670
|
+
icon: z14.object({
|
|
9116
8671
|
style: accordionIconSchema,
|
|
9117
|
-
position:
|
|
9118
|
-
size:
|
|
8672
|
+
position: z14.enum(["left", "right"]),
|
|
8673
|
+
size: z14.enum(["sm", "md", "lg"])
|
|
9119
8674
|
}),
|
|
9120
8675
|
// Trigger (question) styling
|
|
9121
|
-
trigger:
|
|
9122
|
-
textColorToken:
|
|
9123
|
-
fontWeight:
|
|
8676
|
+
trigger: z14.object({
|
|
8677
|
+
textColorToken: z14.string(),
|
|
8678
|
+
fontWeight: z14.enum(["regular", "medium", "semibold", "bold"]).nullable()
|
|
9124
8679
|
// null = inherit from theme
|
|
9125
8680
|
}),
|
|
9126
8681
|
// Hover state styling
|
|
9127
|
-
hover:
|
|
9128
|
-
backgroundColorToken:
|
|
9129
|
-
textColorToken:
|
|
9130
|
-
borderColorToken:
|
|
8682
|
+
hover: z14.object({
|
|
8683
|
+
backgroundColorToken: z14.string().optional(),
|
|
8684
|
+
textColorToken: z14.string().optional(),
|
|
8685
|
+
borderColorToken: z14.string().optional()
|
|
9131
8686
|
}),
|
|
9132
8687
|
// Content (answer) styling
|
|
9133
|
-
content:
|
|
9134
|
-
textColorToken:
|
|
8688
|
+
content: z14.object({
|
|
8689
|
+
textColorToken: z14.string()
|
|
9135
8690
|
})
|
|
9136
8691
|
});
|
|
9137
8692
|
|
|
9138
8693
|
// ../theme-core/src/inputs/types.ts
|
|
9139
|
-
import { z as
|
|
9140
|
-
var inputSystemSchema =
|
|
8694
|
+
import { z as z15 } from "zod";
|
|
8695
|
+
var inputSystemSchema = z15.object({
|
|
9141
8696
|
// Base styling (applied to all inputs)
|
|
9142
|
-
base:
|
|
9143
|
-
background:
|
|
9144
|
-
|
|
9145
|
-
type:
|
|
9146
|
-
colorToken:
|
|
8697
|
+
base: z15.object({
|
|
8698
|
+
background: z15.union([
|
|
8699
|
+
z15.object({
|
|
8700
|
+
type: z15.literal("solid"),
|
|
8701
|
+
colorToken: z15.string()
|
|
9147
8702
|
}),
|
|
9148
|
-
|
|
9149
|
-
type:
|
|
8703
|
+
z15.object({
|
|
8704
|
+
type: z15.literal("transparent")
|
|
9150
8705
|
})
|
|
9151
8706
|
]),
|
|
9152
|
-
textColorToken:
|
|
9153
|
-
border:
|
|
9154
|
-
widthClass:
|
|
8707
|
+
textColorToken: z15.string(),
|
|
8708
|
+
border: z15.object({
|
|
8709
|
+
widthClass: z15.string(),
|
|
9155
8710
|
// e.g., 'border', 'border-2'
|
|
9156
|
-
colorToken:
|
|
9157
|
-
style:
|
|
8711
|
+
colorToken: z15.string(),
|
|
8712
|
+
style: z15.enum(["all", "underline"]).optional()
|
|
9158
8713
|
}),
|
|
9159
|
-
corners:
|
|
8714
|
+
corners: z15.enum(["square", "soft", "rounded", "pill"]).nullable(),
|
|
9160
8715
|
// null = inherit from theme.corners
|
|
9161
|
-
shadow:
|
|
9162
|
-
elevation:
|
|
9163
|
-
softness:
|
|
8716
|
+
shadow: z15.object({
|
|
8717
|
+
elevation: z15.enum(["none", "low", "medium"]),
|
|
8718
|
+
softness: z15.enum(["soft", "crisp", "hard"]).nullable()
|
|
9164
8719
|
}).nullable(),
|
|
9165
|
-
spacing:
|
|
8720
|
+
spacing: z15.enum(["compact", "cozy", "medium", "comfortable"]),
|
|
9166
8721
|
// padding inside inputs
|
|
9167
|
-
fontSize:
|
|
8722
|
+
fontSize: z15.enum(["sm", "base", "lg"])
|
|
9168
8723
|
}),
|
|
9169
8724
|
// Label styling
|
|
9170
|
-
label:
|
|
9171
|
-
textColorToken:
|
|
9172
|
-
fontWeight:
|
|
9173
|
-
fontSize:
|
|
9174
|
-
textTransform:
|
|
9175
|
-
letterSpacing:
|
|
9176
|
-
opacity:
|
|
8725
|
+
label: z15.object({
|
|
8726
|
+
textColorToken: z15.string(),
|
|
8727
|
+
fontWeight: z15.enum(["regular", "medium", "semibold", "bold", "black"]),
|
|
8728
|
+
fontSize: z15.enum(["2xs", "xs", "sm", "base"]),
|
|
8729
|
+
textTransform: z15.enum(["none", "uppercase", "lowercase", "capitalize"]).optional(),
|
|
8730
|
+
letterSpacing: z15.enum(["normal", "wide", "wider", "widest"]).optional(),
|
|
8731
|
+
opacity: z15.number().min(0.2).max(1).optional()
|
|
9177
8732
|
}),
|
|
9178
8733
|
// Focus state
|
|
9179
|
-
focus:
|
|
9180
|
-
ringColorToken:
|
|
9181
|
-
ringWidth:
|
|
9182
|
-
borderColorToken:
|
|
8734
|
+
focus: z15.object({
|
|
8735
|
+
ringColorToken: z15.string(),
|
|
8736
|
+
ringWidth: z15.enum(["0", "1", "2", "3"]),
|
|
8737
|
+
borderColorToken: z15.string().optional()
|
|
9183
8738
|
// Change border color on focus
|
|
9184
8739
|
}),
|
|
9185
8740
|
// Error state (for validation feedback)
|
|
9186
|
-
error:
|
|
9187
|
-
borderColorToken:
|
|
9188
|
-
textColorToken:
|
|
8741
|
+
error: z15.object({
|
|
8742
|
+
borderColorToken: z15.string(),
|
|
8743
|
+
textColorToken: z15.string()
|
|
9189
8744
|
}),
|
|
9190
8745
|
// Disabled state
|
|
9191
|
-
disabled:
|
|
9192
|
-
backgroundColorToken:
|
|
9193
|
-
textColorToken:
|
|
9194
|
-
opacity:
|
|
8746
|
+
disabled: z15.object({
|
|
8747
|
+
backgroundColorToken: z15.string(),
|
|
8748
|
+
textColorToken: z15.string(),
|
|
8749
|
+
opacity: z15.number().min(0.3).max(0.7)
|
|
9195
8750
|
})
|
|
9196
8751
|
});
|
|
9197
8752
|
|
|
9198
8753
|
// ../theme-core/src/gradients/types.ts
|
|
9199
|
-
import { z as
|
|
9200
|
-
var gradientStopSchema =
|
|
9201
|
-
color:
|
|
8754
|
+
import { z as z16 } from "zod";
|
|
8755
|
+
var gradientStopSchema = z16.object({
|
|
8756
|
+
color: z16.string(),
|
|
9202
8757
|
// Theme color token name (e.g., 'primary-500')
|
|
9203
|
-
position:
|
|
8758
|
+
position: z16.number().min(0).max(100)
|
|
9204
8759
|
// Percentage 0-100
|
|
9205
8760
|
});
|
|
9206
|
-
var gradientConfigSchema =
|
|
9207
|
-
type:
|
|
9208
|
-
angle:
|
|
8761
|
+
var gradientConfigSchema = z16.object({
|
|
8762
|
+
type: z16.enum(["linear", "radial"]),
|
|
8763
|
+
angle: z16.number().min(0).max(360).optional(),
|
|
9209
8764
|
// For linear gradients (degrees)
|
|
9210
|
-
position:
|
|
8765
|
+
position: z16.string().optional(),
|
|
9211
8766
|
// For radial gradients ('center', 'top left', etc.)
|
|
9212
|
-
stops:
|
|
8767
|
+
stops: z16.array(gradientStopSchema).min(2)
|
|
9213
8768
|
});
|
|
9214
8769
|
|
|
9215
8770
|
// ../theme-core/src/navigation/types.ts
|
|
9216
|
-
import { z as
|
|
8771
|
+
import { z as z18 } from "zod";
|
|
9217
8772
|
|
|
9218
8773
|
// ../theme-core/src/interactive/baseSchema.ts
|
|
9219
|
-
import { z as
|
|
9220
|
-
var interactiveTypographySchema =
|
|
8774
|
+
import { z as z17 } from "zod";
|
|
8775
|
+
var interactiveTypographySchema = z17.object({
|
|
9221
8776
|
/** Font family source */
|
|
9222
|
-
typography:
|
|
8777
|
+
typography: z17.enum(["body", "heading"]).default("body"),
|
|
9223
8778
|
/** Font weight */
|
|
9224
|
-
fontWeight:
|
|
8779
|
+
fontWeight: z17.enum(["regular", "medium", "semibold", "bold"]).default("medium"),
|
|
9225
8780
|
/** Text transform */
|
|
9226
|
-
textTransform:
|
|
8781
|
+
textTransform: z17.enum(["none", "uppercase", "capitalize"]).default("none"),
|
|
9227
8782
|
/** Italic style */
|
|
9228
|
-
italic:
|
|
8783
|
+
italic: z17.boolean().default(false)
|
|
9229
8784
|
});
|
|
9230
|
-
var effectApplicationSchema2 =
|
|
8785
|
+
var effectApplicationSchema2 = z17.object({
|
|
9231
8786
|
/** Effect preset ID */
|
|
9232
|
-
effectId:
|
|
8787
|
+
effectId: z17.string(),
|
|
9233
8788
|
/** User-provided customization options */
|
|
9234
|
-
options:
|
|
8789
|
+
options: z17.record(z17.string(), z17.any()).optional()
|
|
9235
8790
|
});
|
|
9236
|
-
var effectCompositionSchema =
|
|
8791
|
+
var effectCompositionSchema = z17.object({
|
|
9237
8792
|
/** Effects always applied */
|
|
9238
|
-
base:
|
|
8793
|
+
base: z17.array(effectApplicationSchema2).optional(),
|
|
9239
8794
|
/** Effects applied on hover */
|
|
9240
|
-
hover:
|
|
8795
|
+
hover: z17.array(effectApplicationSchema2).optional(),
|
|
9241
8796
|
/** Effects applied on active/pressed */
|
|
9242
|
-
active:
|
|
8797
|
+
active: z17.array(effectApplicationSchema2).optional(),
|
|
9243
8798
|
/** Effects applied on focus */
|
|
9244
|
-
focus:
|
|
8799
|
+
focus: z17.array(effectApplicationSchema2).optional()
|
|
9245
8800
|
});
|
|
9246
8801
|
|
|
9247
8802
|
// ../theme-core/src/navigation/types.ts
|
|
9248
|
-
var navLinkPaddingSchema =
|
|
9249
|
-
var navLinkPaddingXSchema =
|
|
9250
|
-
var navLinkBorderRadiusSchema =
|
|
9251
|
-
var navLinkTextSizeSchema =
|
|
9252
|
-
var navLinkLetterSpacingSchema =
|
|
9253
|
-
var navLinkStyleSchema =
|
|
8803
|
+
var navLinkPaddingSchema = z18.enum(["none", "compact", "default"]);
|
|
8804
|
+
var navLinkPaddingXSchema = z18.enum(["none", "tight", "compact", "default", "relaxed", "spacious"]);
|
|
8805
|
+
var navLinkBorderRadiusSchema = z18.enum(["none", "sm", "md", "full"]);
|
|
8806
|
+
var navLinkTextSizeSchema = z18.enum(["xs", "sm", "base", "lg"]);
|
|
8807
|
+
var navLinkLetterSpacingSchema = z18.enum(["normal", "wide", "wider", "widest"]);
|
|
8808
|
+
var navLinkStyleSchema = z18.object({
|
|
9254
8809
|
/** Display name for the style */
|
|
9255
|
-
name:
|
|
8810
|
+
name: z18.string().min(1).max(30).optional(),
|
|
9256
8811
|
/** Typography settings (inherited from interactive base) */
|
|
9257
8812
|
...interactiveTypographySchema.shape,
|
|
9258
8813
|
/** Text color token */
|
|
9259
|
-
colorToken:
|
|
8814
|
+
colorToken: z18.string().default("text"),
|
|
9260
8815
|
/** Optional text size override */
|
|
9261
8816
|
textSize: navLinkTextSizeSchema.optional(),
|
|
9262
8817
|
/** Optional letter spacing override */
|
|
9263
8818
|
letterSpacing: navLinkLetterSpacingSchema.optional(),
|
|
9264
8819
|
/** Hover/active color token (for color-change effects) */
|
|
9265
|
-
hoverColorToken:
|
|
8820
|
+
hoverColorToken: z18.string().nullable().optional(),
|
|
9266
8821
|
/** Padding preset */
|
|
9267
8822
|
padding: navLinkPaddingSchema.default("compact"),
|
|
9268
8823
|
/** Horizontal padding override (overrides horizontal component of padding preset) */
|
|
@@ -9274,7 +8829,7 @@ var navLinkStyleSchema = z21.object({
|
|
|
9274
8829
|
});
|
|
9275
8830
|
|
|
9276
8831
|
// ../theme-core/src/customCss/validation.ts
|
|
9277
|
-
import { z as
|
|
8832
|
+
import { z as z19 } from "zod";
|
|
9278
8833
|
var FORBIDDEN_SELECTORS = [":root", "html", "body"];
|
|
9279
8834
|
var UNIVERSAL_SELECTOR = "*";
|
|
9280
8835
|
var REMOTE_URL_PATTERN = /url\s*\(\s*['"]?(https?:|\/\/)/i;
|
|
@@ -9316,7 +8871,7 @@ function containsForbiddenSelector(selector) {
|
|
|
9316
8871
|
}
|
|
9317
8872
|
return false;
|
|
9318
8873
|
}
|
|
9319
|
-
var selectorSchema =
|
|
8874
|
+
var selectorSchema = z19.string().min(1, "Selector cannot be empty").max(200, "Selector too long (max 200 characters)").refine(
|
|
9320
8875
|
(s) => !containsForbiddenSelector(s),
|
|
9321
8876
|
{ message: "Global selectors (:root, html, body, *) are not allowed" }
|
|
9322
8877
|
);
|
|
@@ -9326,38 +8881,38 @@ function containsRemoteUrl(value) {
|
|
|
9326
8881
|
function containsJavascriptUrl(value) {
|
|
9327
8882
|
return JAVASCRIPT_URL_PATTERN.test(value);
|
|
9328
8883
|
}
|
|
9329
|
-
var declarationValueSchema =
|
|
8884
|
+
var declarationValueSchema = z19.string().max(500, "Declaration value too long (max 500 characters)").refine(
|
|
9330
8885
|
(v) => !containsRemoteUrl(v),
|
|
9331
8886
|
{ message: "Remote url() references are not allowed. Use local paths, data URIs, or fragment IDs." }
|
|
9332
8887
|
).refine(
|
|
9333
8888
|
(v) => !containsJavascriptUrl(v),
|
|
9334
8889
|
{ message: "javascript: URLs are not allowed" }
|
|
9335
8890
|
);
|
|
9336
|
-
var declarationsSchema =
|
|
9337
|
-
|
|
8891
|
+
var declarationsSchema = z19.record(
|
|
8892
|
+
z19.string().min(1).max(100),
|
|
9338
8893
|
// property name
|
|
9339
8894
|
declarationValueSchema
|
|
9340
8895
|
// property value
|
|
9341
8896
|
);
|
|
9342
|
-
var customCssRuleSchema =
|
|
9343
|
-
id:
|
|
8897
|
+
var customCssRuleSchema = z19.object({
|
|
8898
|
+
id: z19.string().min(1, "Rule ID is required").max(50, "Rule ID too long"),
|
|
9344
8899
|
selector: selectorSchema,
|
|
9345
8900
|
declarations: declarationsSchema
|
|
9346
8901
|
});
|
|
9347
8902
|
var blockCustomCssRuleSchema = customCssRuleSchema.extend({
|
|
9348
|
-
blockKind:
|
|
8903
|
+
blockKind: z19.string().min(1, "Block kind is required").max(50, "Block kind too long")
|
|
9349
8904
|
});
|
|
9350
|
-
var customCssRulesSchema =
|
|
9351
|
-
var blockCustomCssRulesSchema =
|
|
8905
|
+
var customCssRulesSchema = z19.array(customCssRuleSchema).optional();
|
|
8906
|
+
var blockCustomCssRulesSchema = z19.array(blockCustomCssRuleSchema).optional();
|
|
9352
8907
|
|
|
9353
8908
|
// ../theme-core/src/customCss/atRuleValidation.ts
|
|
9354
|
-
import { z as
|
|
8909
|
+
import { z as z20 } from "zod";
|
|
9355
8910
|
var KEYFRAME_OFFSET_PATTERN = /^(from|to|\d{1,3}%)$/i;
|
|
9356
8911
|
var ANIMATION_NAME_PATTERN = /^[a-zA-Z_-][a-zA-Z0-9_-]*$/;
|
|
9357
8912
|
var BLOCKED_AT_RULES = ["@import", "@charset"];
|
|
9358
8913
|
var BLOCKED_AT_RULE_PATTERN = /@(?:import|charset)\b/i;
|
|
9359
|
-
var ruleIdSchema =
|
|
9360
|
-
var nestedRuleSchema =
|
|
8914
|
+
var ruleIdSchema = z20.string().min(1, "Rule ID is required").max(50, "Rule ID too long");
|
|
8915
|
+
var nestedRuleSchema = z20.object({
|
|
9361
8916
|
selector: selectorSchema,
|
|
9362
8917
|
declarations: declarationsSchema
|
|
9363
8918
|
});
|
|
@@ -9369,146 +8924,146 @@ function isValidKeyframeOffset(offset) {
|
|
|
9369
8924
|
const value = parseInt(match[1], 10);
|
|
9370
8925
|
return value >= 0 && value <= 100;
|
|
9371
8926
|
}
|
|
9372
|
-
var keyframeOffsetSchema =
|
|
8927
|
+
var keyframeOffsetSchema = z20.string().transform((offset) => offset.trim()).refine(
|
|
9373
8928
|
(offset) => KEYFRAME_OFFSET_PATTERN.test(offset),
|
|
9374
8929
|
{ message: 'Invalid keyframe offset. Use percentages (0%, 50%, 100%) or "from"/"to"' }
|
|
9375
8930
|
).refine(
|
|
9376
8931
|
isValidKeyframeOffset,
|
|
9377
8932
|
{ message: "Keyframe offset must be between 0% and 100%" }
|
|
9378
8933
|
);
|
|
9379
|
-
var animationNameSchema =
|
|
8934
|
+
var animationNameSchema = z20.string().min(1, "Animation name is required").max(50, "Animation name too long").refine(
|
|
9380
8935
|
(name) => ANIMATION_NAME_PATTERN.test(name),
|
|
9381
8936
|
{ message: "Invalid animation name. Use letters, numbers, dashes, underscores (start with letter, dash, or underscore)" }
|
|
9382
8937
|
);
|
|
9383
|
-
var keyframeSchema =
|
|
8938
|
+
var keyframeSchema = z20.object({
|
|
9384
8939
|
offset: keyframeOffsetSchema,
|
|
9385
8940
|
declarations: declarationsSchema
|
|
9386
8941
|
});
|
|
9387
|
-
var keyframesAtRuleSchema =
|
|
8942
|
+
var keyframesAtRuleSchema = z20.object({
|
|
9388
8943
|
id: ruleIdSchema,
|
|
9389
|
-
type:
|
|
8944
|
+
type: z20.literal("keyframes"),
|
|
9390
8945
|
name: animationNameSchema,
|
|
9391
|
-
frames:
|
|
8946
|
+
frames: z20.array(keyframeSchema).min(1, "At least one keyframe is required")
|
|
9392
8947
|
});
|
|
9393
|
-
var fontFaceDeclarationsSchema =
|
|
8948
|
+
var fontFaceDeclarationsSchema = z20.record(z20.string().min(1).max(100), declarationValueSchema).refine(
|
|
9394
8949
|
(decls) => "fontFamily" in decls || "font-family" in decls,
|
|
9395
8950
|
{ message: "font-family is required in @font-face" }
|
|
9396
8951
|
);
|
|
9397
|
-
var fontFaceAtRuleSchema =
|
|
8952
|
+
var fontFaceAtRuleSchema = z20.object({
|
|
9398
8953
|
id: ruleIdSchema,
|
|
9399
|
-
type:
|
|
8954
|
+
type: z20.literal("font-face"),
|
|
9400
8955
|
declarations: fontFaceDeclarationsSchema
|
|
9401
8956
|
});
|
|
9402
|
-
var mediaQuerySchema =
|
|
9403
|
-
var mediaAtRuleSchema =
|
|
8957
|
+
var mediaQuerySchema = z20.string().min(1, "Media query is required").max(200, "Media query too long");
|
|
8958
|
+
var mediaAtRuleSchema = z20.object({
|
|
9404
8959
|
id: ruleIdSchema,
|
|
9405
|
-
type:
|
|
8960
|
+
type: z20.literal("media"),
|
|
9406
8961
|
query: mediaQuerySchema,
|
|
9407
|
-
rules:
|
|
8962
|
+
rules: z20.array(nestedRuleSchema).min(1, "At least one rule is required")
|
|
9408
8963
|
});
|
|
9409
|
-
var supportsConditionSchema =
|
|
9410
|
-
var supportsAtRuleSchema =
|
|
8964
|
+
var supportsConditionSchema = z20.string().min(1, "Supports condition is required").max(200, "Supports condition too long");
|
|
8965
|
+
var supportsAtRuleSchema = z20.object({
|
|
9411
8966
|
id: ruleIdSchema,
|
|
9412
|
-
type:
|
|
8967
|
+
type: z20.literal("supports"),
|
|
9413
8968
|
condition: supportsConditionSchema,
|
|
9414
|
-
rules:
|
|
8969
|
+
rules: z20.array(nestedRuleSchema).min(1, "At least one rule is required")
|
|
9415
8970
|
});
|
|
9416
8971
|
function containsBlockedAtRule(css) {
|
|
9417
8972
|
return BLOCKED_AT_RULE_PATTERN.test(css);
|
|
9418
8973
|
}
|
|
9419
|
-
var rawCssSchema =
|
|
8974
|
+
var rawCssSchema = z20.string().min(1, "CSS is required").max(5e3, "Raw CSS too long (max 5000 characters)").refine(
|
|
9420
8975
|
(css) => css.trim().startsWith("@"),
|
|
9421
8976
|
{ message: "Raw at-rule must start with @" }
|
|
9422
8977
|
).refine(
|
|
9423
8978
|
(css) => !containsBlockedAtRule(css),
|
|
9424
8979
|
{ message: `Blocked at-rules: ${BLOCKED_AT_RULES.join(", ")}. Use typed at-rules or local assets instead.` }
|
|
9425
8980
|
);
|
|
9426
|
-
var rawAtRuleSchema =
|
|
8981
|
+
var rawAtRuleSchema = z20.object({
|
|
9427
8982
|
id: ruleIdSchema,
|
|
9428
|
-
type:
|
|
8983
|
+
type: z20.literal("raw"),
|
|
9429
8984
|
css: rawCssSchema
|
|
9430
8985
|
});
|
|
9431
|
-
var customCssAtRuleSchema =
|
|
8986
|
+
var customCssAtRuleSchema = z20.discriminatedUnion("type", [
|
|
9432
8987
|
keyframesAtRuleSchema,
|
|
9433
8988
|
fontFaceAtRuleSchema,
|
|
9434
8989
|
mediaAtRuleSchema,
|
|
9435
8990
|
supportsAtRuleSchema,
|
|
9436
8991
|
rawAtRuleSchema
|
|
9437
8992
|
]);
|
|
9438
|
-
var customCssAtRulesSchema =
|
|
8993
|
+
var customCssAtRulesSchema = z20.array(customCssAtRuleSchema).optional();
|
|
9439
8994
|
|
|
9440
8995
|
// ../theme-core/src/shared/componentStyles.ts
|
|
9441
|
-
import { z as
|
|
9442
|
-
var componentBorderSchema =
|
|
9443
|
-
width:
|
|
9444
|
-
style:
|
|
9445
|
-
colorToken:
|
|
8996
|
+
import { z as z21 } from "zod";
|
|
8997
|
+
var componentBorderSchema = z21.object({
|
|
8998
|
+
width: z21.enum(["none", "hairline", "thin", "medium", "thick"]).default("none"),
|
|
8999
|
+
style: z21.enum(["solid", "dashed"]).default("solid"),
|
|
9000
|
+
colorToken: z21.string().optional()
|
|
9446
9001
|
// defaults to "border" if not set
|
|
9447
9002
|
});
|
|
9448
|
-
var componentShadowSchema =
|
|
9449
|
-
elevation:
|
|
9003
|
+
var componentShadowSchema = z21.object({
|
|
9004
|
+
elevation: z21.enum(["none", "sm", "md", "lg", "xl", "2xl"]).default("sm")
|
|
9450
9005
|
});
|
|
9451
9006
|
|
|
9452
9007
|
// ../theme-core/src/schema.ts
|
|
9453
|
-
var axesSchema =
|
|
9454
|
-
tone:
|
|
9455
|
-
energy:
|
|
9456
|
-
density:
|
|
9457
|
-
mediaBias:
|
|
9458
|
-
conversionBias:
|
|
9459
|
-
motion:
|
|
9460
|
-
});
|
|
9461
|
-
var colourHexString =
|
|
9462
|
-
var paletteColorSchema =
|
|
9463
|
-
name:
|
|
9008
|
+
var axesSchema = z22.object({
|
|
9009
|
+
tone: z22.enum(["minimal", "classic", "bold"]),
|
|
9010
|
+
energy: z22.enum(["calm", "vibrant"]),
|
|
9011
|
+
density: z22.enum(["airy", "regular", "compact"]),
|
|
9012
|
+
mediaBias: z22.enum(["text", "media", "mixed"]),
|
|
9013
|
+
conversionBias: z22.enum(["low", "med", "high"]),
|
|
9014
|
+
motion: z22.enum(["subtle", "standard", "expressive"])
|
|
9015
|
+
});
|
|
9016
|
+
var colourHexString = z22.string().regex(/^#([0-9A-Fa-f]{3}){1,2}$/);
|
|
9017
|
+
var paletteColorSchema = z22.object({
|
|
9018
|
+
name: z22.string().min(1),
|
|
9464
9019
|
hex: colourHexString
|
|
9465
9020
|
});
|
|
9466
|
-
var paletteMetaSchema =
|
|
9467
|
-
mode:
|
|
9021
|
+
var paletteMetaSchema = z22.object({
|
|
9022
|
+
mode: z22.enum(["light", "dark"])
|
|
9468
9023
|
});
|
|
9469
|
-
var paletteSchema =
|
|
9470
|
-
colors:
|
|
9024
|
+
var paletteSchema = z22.object({
|
|
9025
|
+
colors: z22.array(paletteColorSchema),
|
|
9471
9026
|
meta: paletteMetaSchema
|
|
9472
9027
|
});
|
|
9473
|
-
var typographyStyleSchema =
|
|
9474
|
-
family:
|
|
9475
|
-
weight:
|
|
9476
|
-
letterSpacing:
|
|
9477
|
-
lineHeight:
|
|
9028
|
+
var typographyStyleSchema = z22.object({
|
|
9029
|
+
family: z22.string().min(1),
|
|
9030
|
+
weight: z22.enum(["light", "regular", "medium", "semibold", "bold"]),
|
|
9031
|
+
letterSpacing: z22.enum(["tight", "normal", "loose"]),
|
|
9032
|
+
lineHeight: z22.enum(["normal", "relaxed", "loose"])
|
|
9478
9033
|
});
|
|
9479
9034
|
var bodyTypographyStyleSchema = typographyStyleSchema.extend({
|
|
9480
|
-
size:
|
|
9035
|
+
size: z22.enum(["md", "lg", "xl"])
|
|
9481
9036
|
});
|
|
9482
|
-
var headingSizeSchema =
|
|
9483
|
-
var headingTypographyOverridesSchema =
|
|
9484
|
-
weight:
|
|
9485
|
-
letterSpacing:
|
|
9037
|
+
var headingSizeSchema = z22.enum(["xs", "sm", "md", "lg", "xl", "2xl"]);
|
|
9038
|
+
var headingTypographyOverridesSchema = z22.object({
|
|
9039
|
+
weight: z22.enum(["light", "regular", "medium", "semibold", "bold"]).nullable().optional(),
|
|
9040
|
+
letterSpacing: z22.enum(["tight", "normal", "loose"]).nullable().optional(),
|
|
9486
9041
|
size: headingSizeSchema.nullable().optional(),
|
|
9487
|
-
lineHeight:
|
|
9488
|
-
italic:
|
|
9489
|
-
colorToken:
|
|
9042
|
+
lineHeight: z22.enum(["normal", "relaxed", "loose"]).nullable().optional(),
|
|
9043
|
+
italic: z22.boolean().nullable().optional(),
|
|
9044
|
+
colorToken: z22.string().min(1).nullable().optional()
|
|
9490
9045
|
// Palette token name for heading color
|
|
9491
9046
|
});
|
|
9492
9047
|
var headingTypographyStyleSchema = typographyStyleSchema.extend({
|
|
9493
|
-
case:
|
|
9494
|
-
italic:
|
|
9495
|
-
colorToken:
|
|
9048
|
+
case: z22.enum(["uppercase", "normal", "smallCaps"]).nullable(),
|
|
9049
|
+
italic: z22.boolean().nullable(),
|
|
9050
|
+
colorToken: z22.string().min(1).nullable().optional()
|
|
9496
9051
|
// Palette token name for heading color
|
|
9497
9052
|
});
|
|
9498
|
-
var proseLinkUnderlineStyleSchema =
|
|
9499
|
-
var proseLinkUnderlineThicknessSchema =
|
|
9500
|
-
var proseLinkUnderlineOffsetSchema =
|
|
9501
|
-
var proseLinkStyleSchema =
|
|
9502
|
-
colorToken:
|
|
9503
|
-
hoverColorToken:
|
|
9504
|
-
underline:
|
|
9505
|
-
decorationColorToken:
|
|
9506
|
-
hoverDecorationColorToken:
|
|
9053
|
+
var proseLinkUnderlineStyleSchema = z22.enum(["solid", "dotted", "dashed"]);
|
|
9054
|
+
var proseLinkUnderlineThicknessSchema = z22.enum(["auto", "fromFont", "thin", "medium", "thick"]);
|
|
9055
|
+
var proseLinkUnderlineOffsetSchema = z22.enum(["auto", "tight", "normal", "loose"]);
|
|
9056
|
+
var proseLinkStyleSchema = z22.object({
|
|
9057
|
+
colorToken: z22.string().min(1).optional(),
|
|
9058
|
+
hoverColorToken: z22.string().min(1).optional(),
|
|
9059
|
+
underline: z22.boolean().optional(),
|
|
9060
|
+
decorationColorToken: z22.string().min(1).optional(),
|
|
9061
|
+
hoverDecorationColorToken: z22.string().min(1).optional(),
|
|
9507
9062
|
underlineStyle: proseLinkUnderlineStyleSchema.optional(),
|
|
9508
9063
|
underlineThickness: proseLinkUnderlineThicknessSchema.optional(),
|
|
9509
9064
|
underlineOffset: proseLinkUnderlineOffsetSchema.optional()
|
|
9510
9065
|
});
|
|
9511
|
-
var semanticSpacingSchema =
|
|
9066
|
+
var semanticSpacingSchema = z22.enum([
|
|
9512
9067
|
"none",
|
|
9513
9068
|
"compact",
|
|
9514
9069
|
"cozy",
|
|
@@ -9516,62 +9071,62 @@ var semanticSpacingSchema = z25.enum([
|
|
|
9516
9071
|
"comfortable",
|
|
9517
9072
|
"spacious"
|
|
9518
9073
|
]);
|
|
9519
|
-
var boxRoundedSchema =
|
|
9520
|
-
var boxBackgroundOverlaySchema =
|
|
9521
|
-
type:
|
|
9522
|
-
color:
|
|
9523
|
-
gradient:
|
|
9524
|
-
opacity:
|
|
9525
|
-
});
|
|
9526
|
-
var boxBackgroundSchema =
|
|
9527
|
-
type:
|
|
9528
|
-
color:
|
|
9529
|
-
gradient:
|
|
9074
|
+
var boxRoundedSchema = z22.enum(["none", "sm", "md", "lg", "xl", "2xl", "full"]);
|
|
9075
|
+
var boxBackgroundOverlaySchema = z22.object({
|
|
9076
|
+
type: z22.enum(["none", "color", "gradient"]).nullable().optional(),
|
|
9077
|
+
color: z22.string().nullable().optional(),
|
|
9078
|
+
gradient: z22.string().nullable().optional(),
|
|
9079
|
+
opacity: z22.number().min(0).max(1).nullable().optional()
|
|
9080
|
+
});
|
|
9081
|
+
var boxBackgroundSchema = z22.object({
|
|
9082
|
+
type: z22.enum(["color", "gradient", "image"]).optional(),
|
|
9083
|
+
color: z22.string().nullable().optional(),
|
|
9084
|
+
gradient: z22.string().nullable().optional(),
|
|
9530
9085
|
image: mediaSchema.nullable().optional(),
|
|
9531
|
-
objectFit:
|
|
9532
|
-
scale:
|
|
9533
|
-
position:
|
|
9534
|
-
opacity:
|
|
9086
|
+
objectFit: z22.enum(["fill", "fit", "original", "custom"]).nullable().optional(),
|
|
9087
|
+
scale: z22.string().nullable().optional(),
|
|
9088
|
+
position: z22.string().nullable().optional(),
|
|
9089
|
+
opacity: z22.number().min(0).max(1).nullable().optional(),
|
|
9535
9090
|
overlay: boxBackgroundOverlaySchema.nullable().optional(),
|
|
9536
|
-
textColor:
|
|
9537
|
-
headingColor:
|
|
9091
|
+
textColor: z22.string().nullable().optional(),
|
|
9092
|
+
headingColor: z22.string().nullable().optional()
|
|
9538
9093
|
});
|
|
9539
|
-
var sectionStylesOverrideSchema =
|
|
9094
|
+
var sectionStylesOverrideSchema = z22.object({
|
|
9540
9095
|
background: boxBackgroundSchema.nullable().optional(),
|
|
9541
9096
|
spacing: semanticSpacingSchema.nullable().optional(),
|
|
9542
|
-
minHeight:
|
|
9097
|
+
minHeight: z22.enum(["none", "hero", "immersive"]).nullable().optional()
|
|
9543
9098
|
});
|
|
9544
|
-
var containerStylesOverrideSchema =
|
|
9099
|
+
var containerStylesOverrideSchema = z22.object({
|
|
9545
9100
|
background: boxBackgroundSchema.nullable().optional(),
|
|
9546
9101
|
spacing: semanticSpacingSchema.nullable().optional(),
|
|
9547
|
-
raised:
|
|
9102
|
+
raised: z22.boolean().nullable().optional(),
|
|
9548
9103
|
rounded: boxRoundedSchema.nullable().optional(),
|
|
9549
|
-
fullWidth:
|
|
9104
|
+
fullWidth: z22.boolean().nullable().optional()
|
|
9550
9105
|
});
|
|
9551
|
-
var cardBorderOverrideSchema =
|
|
9552
|
-
enabled:
|
|
9553
|
-
width:
|
|
9554
|
-
colorToken:
|
|
9106
|
+
var cardBorderOverrideSchema = z22.object({
|
|
9107
|
+
enabled: z22.boolean().nullable().optional(),
|
|
9108
|
+
width: z22.enum(["none", "1", "2", "3"]).nullable().optional(),
|
|
9109
|
+
colorToken: z22.string().nullable().optional()
|
|
9555
9110
|
});
|
|
9556
|
-
var cardStylesOverrideSchema =
|
|
9111
|
+
var cardStylesOverrideSchema = z22.object({
|
|
9557
9112
|
background: boxBackgroundSchema.nullable().optional(),
|
|
9558
9113
|
border: cardBorderOverrideSchema.nullable().optional(),
|
|
9559
9114
|
spacing: semanticSpacingSchema.nullable().optional(),
|
|
9560
|
-
raised:
|
|
9115
|
+
raised: z22.boolean().nullable().optional(),
|
|
9561
9116
|
rounded: boxRoundedSchema.nullable().optional()
|
|
9562
9117
|
});
|
|
9563
|
-
var blockStyleOverridesSchema =
|
|
9118
|
+
var blockStyleOverridesSchema = z22.object({
|
|
9564
9119
|
sectionStyles: sectionStylesOverrideSchema.nullable().optional(),
|
|
9565
9120
|
containerStyles: containerStylesOverrideSchema.nullable().optional(),
|
|
9566
9121
|
cardStyles: cardStylesOverrideSchema.nullable().optional()
|
|
9567
9122
|
});
|
|
9568
|
-
var blockThemeOverrideSchema =
|
|
9569
|
-
typography:
|
|
9123
|
+
var blockThemeOverrideSchema = z22.object({
|
|
9124
|
+
typography: z22.object({
|
|
9570
9125
|
proseLinkStyle: proseLinkStyleSchema.optional()
|
|
9571
9126
|
}).optional(),
|
|
9572
9127
|
styles: blockStyleOverridesSchema.optional()
|
|
9573
9128
|
});
|
|
9574
|
-
var typographyScaleSchema =
|
|
9129
|
+
var typographyScaleSchema = z22.enum([
|
|
9575
9130
|
// New intuitive names
|
|
9576
9131
|
"compact",
|
|
9577
9132
|
// ratio 1.2 (was minorThird)
|
|
@@ -9584,9 +9139,9 @@ var typographyScaleSchema = z25.enum([
|
|
|
9584
9139
|
"majorThird",
|
|
9585
9140
|
"perfectFourth"
|
|
9586
9141
|
]);
|
|
9587
|
-
var typographySchema =
|
|
9142
|
+
var typographySchema = z22.object({
|
|
9588
9143
|
body: bodyTypographyStyleSchema,
|
|
9589
|
-
headings:
|
|
9144
|
+
headings: z22.object({
|
|
9590
9145
|
default: headingTypographyStyleSchema,
|
|
9591
9146
|
h1: headingTypographyOverridesSchema,
|
|
9592
9147
|
h2: headingTypographyOverridesSchema,
|
|
@@ -9599,41 +9154,41 @@ var typographySchema = z25.object({
|
|
|
9599
9154
|
scale: typographyScaleSchema,
|
|
9600
9155
|
proseLinkStyle: proseLinkStyleSchema.optional()
|
|
9601
9156
|
});
|
|
9602
|
-
var spaceSchema =
|
|
9603
|
-
var corners =
|
|
9604
|
-
var shadow =
|
|
9605
|
-
elevation:
|
|
9606
|
-
softness:
|
|
9607
|
-
position:
|
|
9157
|
+
var spaceSchema = z22.enum(["comfortable", "standard", "dense"]);
|
|
9158
|
+
var corners = z22.enum(["square", "soft", "rounded", "pill"]);
|
|
9159
|
+
var shadow = z22.object({
|
|
9160
|
+
elevation: z22.enum(["none", "low", "medium", "high"]),
|
|
9161
|
+
softness: z22.enum(["crisp", "soft", "hard"]).nullable(),
|
|
9162
|
+
position: z22.enum(["bottom", "bottom-right"]).default("bottom")
|
|
9608
9163
|
});
|
|
9609
|
-
var border =
|
|
9610
|
-
width:
|
|
9611
|
-
style:
|
|
9164
|
+
var border = z22.object({
|
|
9165
|
+
width: z22.enum(["none", "hairline", "thin", "thick"]),
|
|
9166
|
+
style: z22.enum(["solid", "dashed"])
|
|
9612
9167
|
});
|
|
9613
|
-
var motion =
|
|
9614
|
-
level:
|
|
9615
|
-
easing:
|
|
9168
|
+
var motion = z22.object({
|
|
9169
|
+
level: z22.enum(["off", "low", "medium", "high"]),
|
|
9170
|
+
easing: z22.enum(["standard", "snappy", "gentle"]).nullable()
|
|
9616
9171
|
});
|
|
9617
|
-
var buttonStyle =
|
|
9172
|
+
var buttonStyle = z22.object({
|
|
9618
9173
|
shape: corners
|
|
9619
9174
|
// Used for --radius-control CSS variable
|
|
9620
9175
|
});
|
|
9621
|
-
var cardStyle =
|
|
9622
|
-
elevation:
|
|
9623
|
-
border:
|
|
9176
|
+
var cardStyle = z22.object({
|
|
9177
|
+
elevation: z22.enum(["none", "low", "medium", "high"]),
|
|
9178
|
+
border: z22.enum(["none", "subtle", "defined"]),
|
|
9624
9179
|
shape: corners,
|
|
9625
|
-
headerStyle:
|
|
9626
|
-
mediaTreatment:
|
|
9180
|
+
headerStyle: z22.enum(["plain", "accentBar", "subtleBg"]).nullable(),
|
|
9181
|
+
mediaTreatment: z22.enum(["square", "rounded", "bleed"]).nullable()
|
|
9627
9182
|
});
|
|
9628
|
-
var inputStyle =
|
|
9183
|
+
var inputStyle = z22.object({
|
|
9629
9184
|
shape: corners,
|
|
9630
|
-
border:
|
|
9631
|
-
focus:
|
|
9632
|
-
label:
|
|
9185
|
+
border: z22.enum(["subtle", "defined", "underline"]),
|
|
9186
|
+
focus: z22.enum(["glow", "ring", "underline"]),
|
|
9187
|
+
label: z22.enum(["inside", "above"])
|
|
9633
9188
|
});
|
|
9634
|
-
var headerVariant =
|
|
9635
|
-
var headerPositioning =
|
|
9636
|
-
var headerNavStyle =
|
|
9189
|
+
var headerVariant = z22.enum(["classic", "centered", "transparent", "floating", "editorial"]);
|
|
9190
|
+
var headerPositioning = z22.enum(["static", "sticky", "fixed"]);
|
|
9191
|
+
var headerNavStyle = z22.enum([
|
|
9637
9192
|
"minimal",
|
|
9638
9193
|
"underline",
|
|
9639
9194
|
"underline-grow",
|
|
@@ -9642,82 +9197,82 @@ var headerNavStyle = z25.enum([
|
|
|
9642
9197
|
"frosted",
|
|
9643
9198
|
"solid"
|
|
9644
9199
|
]);
|
|
9645
|
-
var navFontWeight =
|
|
9646
|
-
var headerMaxWidth =
|
|
9647
|
-
var headerContainerSchema =
|
|
9648
|
-
rounded:
|
|
9649
|
-
border:
|
|
9650
|
-
shadow:
|
|
9651
|
-
padding:
|
|
9652
|
-
tint:
|
|
9653
|
-
opacity:
|
|
9200
|
+
var navFontWeight = z22.enum(["regular", "medium", "semibold", "bold"]);
|
|
9201
|
+
var headerMaxWidth = z22.enum(["container", "full"]);
|
|
9202
|
+
var headerContainerSchema = z22.object({
|
|
9203
|
+
rounded: z22.enum(["none", "sm", "md", "lg", "xl", "2xl"]).default("xl"),
|
|
9204
|
+
border: z22.boolean().default(true),
|
|
9205
|
+
shadow: z22.boolean().default(true),
|
|
9206
|
+
padding: z22.enum(["sm", "md", "lg"]).default("md"),
|
|
9207
|
+
tint: z22.string().nullable().optional(),
|
|
9208
|
+
opacity: z22.number().min(0).max(1).default(0.12)
|
|
9654
9209
|
}).optional();
|
|
9655
9210
|
var headerBorderSchema = componentBorderSchema.extend({
|
|
9656
|
-
position:
|
|
9211
|
+
position: z22.enum(["bottom", "top", "both", "none"]).default("bottom")
|
|
9657
9212
|
}).optional();
|
|
9658
|
-
var logoStyleSchema =
|
|
9659
|
-
fontFamily:
|
|
9660
|
-
letterSpacing:
|
|
9661
|
-
gradient:
|
|
9213
|
+
var logoStyleSchema = z22.object({
|
|
9214
|
+
fontFamily: z22.enum(["heading", "body"]).default("heading"),
|
|
9215
|
+
letterSpacing: z22.enum(["normal", "wide", "wider", "widest"]).default("normal"),
|
|
9216
|
+
gradient: z22.boolean().default(false)
|
|
9662
9217
|
}).optional();
|
|
9663
|
-
var headerLogoTextSchema =
|
|
9664
|
-
mobileWrapLines:
|
|
9665
|
-
mobileMaxWidth:
|
|
9666
|
-
hideOnShrink:
|
|
9218
|
+
var headerLogoTextSchema = z22.object({
|
|
9219
|
+
mobileWrapLines: z22.union([z22.literal(1), z22.literal(2)]).optional(),
|
|
9220
|
+
mobileMaxWidth: z22.enum(["xs", "sm", "md"]).optional(),
|
|
9221
|
+
hideOnShrink: z22.boolean().optional()
|
|
9667
9222
|
}).optional();
|
|
9668
|
-
var navEffectsSchema =
|
|
9669
|
-
underlineGradient:
|
|
9670
|
-
glow:
|
|
9671
|
-
glowColor:
|
|
9672
|
-
neumorphic:
|
|
9223
|
+
var navEffectsSchema = z22.object({
|
|
9224
|
+
underlineGradient: z22.boolean().default(false),
|
|
9225
|
+
glow: z22.boolean().default(false),
|
|
9226
|
+
glowColor: z22.string().optional(),
|
|
9227
|
+
neumorphic: z22.boolean().default(false)
|
|
9673
9228
|
}).optional();
|
|
9674
|
-
var dropdownStyleSchema =
|
|
9229
|
+
var dropdownStyleSchema = z22.object({
|
|
9675
9230
|
// Container styling
|
|
9676
|
-
background:
|
|
9231
|
+
background: z22.string().default("surface"),
|
|
9677
9232
|
// color token
|
|
9678
|
-
textColor:
|
|
9233
|
+
textColor: z22.string().default("text"),
|
|
9679
9234
|
// color token
|
|
9680
|
-
borderColor:
|
|
9235
|
+
borderColor: z22.string().nullable().default("border"),
|
|
9681
9236
|
// null = no border
|
|
9682
|
-
shadow:
|
|
9683
|
-
borderRadius:
|
|
9237
|
+
shadow: z22.enum(["none", "sm", "md", "lg"]).default("md"),
|
|
9238
|
+
borderRadius: z22.enum(["none", "sm", "md", "lg"]).default("md"),
|
|
9684
9239
|
// Link hover states (explicit control)
|
|
9685
|
-
hoverBackground:
|
|
9240
|
+
hoverBackground: z22.string().nullable().optional(),
|
|
9686
9241
|
// color token, null = transparent
|
|
9687
|
-
hoverTextColor:
|
|
9242
|
+
hoverTextColor: z22.string().nullable().optional(),
|
|
9688
9243
|
// color token, null = inherit
|
|
9689
9244
|
// Typography
|
|
9690
|
-
textTransform:
|
|
9691
|
-
letterSpacing:
|
|
9692
|
-
fontWeight:
|
|
9245
|
+
textTransform: z22.enum(["none", "uppercase", "capitalize"]).default("none"),
|
|
9246
|
+
letterSpacing: z22.enum(["normal", "wide", "wider"]).default("normal"),
|
|
9247
|
+
fontWeight: z22.enum(["regular", "medium", "semibold", "bold"]).optional(),
|
|
9693
9248
|
// optional = inherit from navWeight
|
|
9694
|
-
textSize:
|
|
9249
|
+
textSize: z22.enum(["xs", "sm", "base", "lg"]).optional()
|
|
9695
9250
|
// optional = no override (browser default)
|
|
9696
9251
|
}).optional();
|
|
9697
|
-
var headerCtaGapSchema =
|
|
9698
|
-
var navContainerSchema =
|
|
9699
|
-
type:
|
|
9700
|
-
tint:
|
|
9701
|
-
opacity:
|
|
9252
|
+
var headerCtaGapSchema = z22.enum(["none", "tight", "compact", "default", "relaxed", "spacious"]);
|
|
9253
|
+
var navContainerSchema = z22.object({
|
|
9254
|
+
type: z22.enum(["none", "pill", "glass"]).default("none"),
|
|
9255
|
+
tint: z22.string().nullable().optional(),
|
|
9256
|
+
opacity: z22.number().min(0).max(1).default(0.15)
|
|
9702
9257
|
}).default({ type: "none", tint: null, opacity: 0.15 });
|
|
9703
|
-
var headerBackgroundSchema =
|
|
9704
|
-
type:
|
|
9705
|
-
color:
|
|
9258
|
+
var headerBackgroundSchema = z22.object({
|
|
9259
|
+
type: z22.enum(["color", "gradient", "image"]),
|
|
9260
|
+
color: z22.string().nullable().optional(),
|
|
9706
9261
|
gradient: gradientConfigSchema.nullable().optional(),
|
|
9707
9262
|
image: mediaSchema.nullable().optional(),
|
|
9708
|
-
textColor:
|
|
9263
|
+
textColor: z22.string().nullable().optional()
|
|
9709
9264
|
});
|
|
9710
|
-
var headerSchema =
|
|
9265
|
+
var headerSchema = z22.object({
|
|
9711
9266
|
variant: headerVariant,
|
|
9712
9267
|
positioning: headerPositioning,
|
|
9713
|
-
shrinkOnScroll:
|
|
9268
|
+
shrinkOnScroll: z22.boolean(),
|
|
9714
9269
|
maxWidth: headerMaxWidth,
|
|
9715
9270
|
logoOverride: mediaSchema.nullable().optional(),
|
|
9716
9271
|
background: headerBackgroundSchema.default({ type: "color", color: "surface" }),
|
|
9717
|
-
textColor:
|
|
9272
|
+
textColor: z22.string().nullable().optional(),
|
|
9718
9273
|
// Site title and general header text
|
|
9719
9274
|
navStyle: headerNavStyle,
|
|
9720
|
-
navColor:
|
|
9275
|
+
navColor: z22.string().nullable().optional(),
|
|
9721
9276
|
// Nav links (inherits textColor if not set)
|
|
9722
9277
|
navWeight: navFontWeight.default("medium"),
|
|
9723
9278
|
// New fields for header system enhancement
|
|
@@ -9736,50 +9291,50 @@ var headerSchema = z25.object({
|
|
|
9736
9291
|
// Dropdown menu styling (nav dropdowns and mobile drawer)
|
|
9737
9292
|
dropdownStyle: dropdownStyleSchema
|
|
9738
9293
|
});
|
|
9739
|
-
var footerVariant =
|
|
9740
|
-
var footerMaxWidth =
|
|
9741
|
-
var footerMode =
|
|
9742
|
-
var footerNavLayoutMode =
|
|
9743
|
-
var footerNavLayoutAlign =
|
|
9744
|
-
var footerSpacing =
|
|
9745
|
-
var footerLogoPlacement =
|
|
9746
|
-
var footerLogoSize =
|
|
9747
|
-
var footerLogoMaxHeight =
|
|
9748
|
-
var footerBottomTextLinkStyleSchema =
|
|
9749
|
-
colorToken:
|
|
9750
|
-
hoverColorToken:
|
|
9751
|
-
decorationColorToken:
|
|
9752
|
-
underline:
|
|
9753
|
-
});
|
|
9754
|
-
var footerBottomBarSchema =
|
|
9755
|
-
enabled:
|
|
9756
|
-
fullBleed:
|
|
9294
|
+
var footerVariant = z22.enum(["simple", "columns", "split"]);
|
|
9295
|
+
var footerMaxWidth = z22.enum(["container", "full"]);
|
|
9296
|
+
var footerMode = z22.enum(["default", "blocks", "default+blocks", "none"]);
|
|
9297
|
+
var footerNavLayoutMode = z22.enum(["stack", "inline", "inline-wrap"]);
|
|
9298
|
+
var footerNavLayoutAlign = z22.enum(["start", "center", "end", "space-between"]);
|
|
9299
|
+
var footerSpacing = z22.enum(["none", "tight", "compact", "default", "relaxed", "spacious"]);
|
|
9300
|
+
var footerLogoPlacement = z22.enum(["left", "right", "above", "below"]);
|
|
9301
|
+
var footerLogoSize = z22.enum(["sm", "md", "lg", "xl"]);
|
|
9302
|
+
var footerLogoMaxHeight = z22.enum(["sm", "md", "lg", "xl"]);
|
|
9303
|
+
var footerBottomTextLinkStyleSchema = z22.object({
|
|
9304
|
+
colorToken: z22.string().optional(),
|
|
9305
|
+
hoverColorToken: z22.string().nullable().optional(),
|
|
9306
|
+
decorationColorToken: z22.string().nullable().optional(),
|
|
9307
|
+
underline: z22.boolean().optional()
|
|
9308
|
+
});
|
|
9309
|
+
var footerBottomBarSchema = z22.object({
|
|
9310
|
+
enabled: z22.boolean().optional(),
|
|
9311
|
+
fullBleed: z22.boolean().optional(),
|
|
9757
9312
|
background: headerBackgroundSchema.optional(),
|
|
9758
|
-
textColor:
|
|
9759
|
-
textAlign:
|
|
9313
|
+
textColor: z22.string().nullable().optional(),
|
|
9314
|
+
textAlign: z22.enum(["left", "center", "right"]).optional(),
|
|
9760
9315
|
paddingY: footerSpacing.optional(),
|
|
9761
9316
|
paddingX: footerSpacing.optional(),
|
|
9762
|
-
borderTop:
|
|
9763
|
-
colorToken:
|
|
9764
|
-
width:
|
|
9317
|
+
borderTop: z22.object({
|
|
9318
|
+
colorToken: z22.string().nullable().optional(),
|
|
9319
|
+
width: z22.enum(["none", "thin", "medium", "thick"]).optional()
|
|
9765
9320
|
}).optional()
|
|
9766
9321
|
});
|
|
9767
|
-
var footerNavLayoutSchema =
|
|
9322
|
+
var footerNavLayoutSchema = z22.object({
|
|
9768
9323
|
layout: footerNavLayoutMode.optional(),
|
|
9769
9324
|
align: footerNavLayoutAlign.optional(),
|
|
9770
9325
|
gapX: footerSpacing.optional(),
|
|
9771
9326
|
gapY: footerSpacing.optional(),
|
|
9772
|
-
columns:
|
|
9327
|
+
columns: z22.number().int().min(1).max(6).optional()
|
|
9773
9328
|
});
|
|
9774
|
-
var footerLogoSchema =
|
|
9775
|
-
showLogo:
|
|
9776
|
-
showLogoText:
|
|
9329
|
+
var footerLogoSchema = z22.object({
|
|
9330
|
+
showLogo: z22.boolean().default(true),
|
|
9331
|
+
showLogoText: z22.boolean().optional(),
|
|
9777
9332
|
placement: footerLogoPlacement.optional(),
|
|
9778
9333
|
size: footerLogoSize.optional(),
|
|
9779
9334
|
maxHeight: footerLogoMaxHeight.optional(),
|
|
9780
|
-
align:
|
|
9335
|
+
align: z22.enum(["start", "center", "end"]).optional()
|
|
9781
9336
|
});
|
|
9782
|
-
var footerSchema =
|
|
9337
|
+
var footerSchema = z22.object({
|
|
9783
9338
|
/**
|
|
9784
9339
|
* SDK-only footer rendering mode.
|
|
9785
9340
|
*
|
|
@@ -9788,11 +9343,11 @@ var footerSchema = z25.object({
|
|
|
9788
9343
|
mode: footerMode.optional(),
|
|
9789
9344
|
variant: footerVariant,
|
|
9790
9345
|
maxWidth: footerMaxWidth,
|
|
9791
|
-
showLogoText:
|
|
9346
|
+
showLogoText: z22.boolean().optional(),
|
|
9792
9347
|
background: headerBackgroundSchema.default({ type: "color", color: "surface" }),
|
|
9793
9348
|
// Footer nav styling (independent from header)
|
|
9794
9349
|
navStyle: headerNavStyle.default("minimal"),
|
|
9795
|
-
navColor:
|
|
9350
|
+
navColor: z22.string().nullable().optional(),
|
|
9796
9351
|
navWeight: navFontWeight.default("medium"),
|
|
9797
9352
|
// Full nav link customization (overrides navStyle if set)
|
|
9798
9353
|
navLinkStyle: navLinkStyleSchema.optional(),
|
|
@@ -9803,15 +9358,15 @@ var footerSchema = z25.object({
|
|
|
9803
9358
|
logo: footerLogoSchema.optional(),
|
|
9804
9359
|
bottomBar: footerBottomBarSchema.optional()
|
|
9805
9360
|
});
|
|
9806
|
-
var containerPaddingPresetSchema =
|
|
9807
|
-
var layoutSchema =
|
|
9808
|
-
containerPadding:
|
|
9361
|
+
var containerPaddingPresetSchema = z22.enum(["tight", "compact", "default", "relaxed"]);
|
|
9362
|
+
var layoutSchema = z22.object({
|
|
9363
|
+
containerPadding: z22.object({
|
|
9809
9364
|
mobile: containerPaddingPresetSchema.optional(),
|
|
9810
9365
|
tablet: containerPaddingPresetSchema.optional(),
|
|
9811
9366
|
desktop: containerPaddingPresetSchema.optional()
|
|
9812
9367
|
}).optional()
|
|
9813
9368
|
}).optional();
|
|
9814
|
-
var heroTypographySizeSchema =
|
|
9369
|
+
var heroTypographySizeSchema = z22.enum([
|
|
9815
9370
|
"sm",
|
|
9816
9371
|
"base",
|
|
9817
9372
|
"lg",
|
|
@@ -9822,14 +9377,14 @@ var heroTypographySizeSchema = z25.enum([
|
|
|
9822
9377
|
"5xl",
|
|
9823
9378
|
"6xl"
|
|
9824
9379
|
]);
|
|
9825
|
-
var heroTypographyLineHeightSchema =
|
|
9826
|
-
var heroResponsiveTypographySchema =
|
|
9380
|
+
var heroTypographyLineHeightSchema = z22.enum(["tight", "snug", "normal", "relaxed"]);
|
|
9381
|
+
var heroResponsiveTypographySchema = z22.object({
|
|
9827
9382
|
headlineSize: heroTypographySizeSchema.optional(),
|
|
9828
9383
|
headlineLineHeight: heroTypographyLineHeightSchema.optional(),
|
|
9829
9384
|
subheadlineSize: heroTypographySizeSchema.optional(),
|
|
9830
9385
|
subheadlineLineHeight: heroTypographyLineHeightSchema.optional()
|
|
9831
9386
|
});
|
|
9832
|
-
var heroTypographySchema =
|
|
9387
|
+
var heroTypographySchema = z22.object({
|
|
9833
9388
|
headlineSize: heroTypographySizeSchema.optional(),
|
|
9834
9389
|
headlineLineHeight: heroTypographyLineHeightSchema.optional(),
|
|
9835
9390
|
subheadlineSize: heroTypographySizeSchema.optional(),
|
|
@@ -9838,24 +9393,24 @@ var heroTypographySchema = z25.object({
|
|
|
9838
9393
|
microHeadlineLineHeight: heroTypographyLineHeightSchema.optional(),
|
|
9839
9394
|
microSubheadlineSize: heroTypographySizeSchema.optional(),
|
|
9840
9395
|
microSubheadlineLineHeight: heroTypographyLineHeightSchema.optional(),
|
|
9841
|
-
responsive:
|
|
9396
|
+
responsive: z22.object({
|
|
9842
9397
|
tablet: heroResponsiveTypographySchema.optional(),
|
|
9843
9398
|
mobile: heroResponsiveTypographySchema.optional()
|
|
9844
9399
|
}).optional()
|
|
9845
9400
|
});
|
|
9846
|
-
var heroSchema =
|
|
9401
|
+
var heroSchema = z22.object({
|
|
9847
9402
|
typography: heroTypographySchema.optional()
|
|
9848
9403
|
}).optional();
|
|
9849
|
-
var gradientsSchema =
|
|
9850
|
-
button:
|
|
9851
|
-
hero:
|
|
9852
|
-
background:
|
|
9853
|
-
});
|
|
9854
|
-
var themeSchema =
|
|
9855
|
-
name:
|
|
9856
|
-
description:
|
|
9857
|
-
rationale:
|
|
9858
|
-
siteStyleId:
|
|
9404
|
+
var gradientsSchema = z22.object({
|
|
9405
|
+
button: z22.string().min(1).nullable().optional(),
|
|
9406
|
+
hero: z22.string().min(1).nullable().optional(),
|
|
9407
|
+
background: z22.string().min(1).nullable().optional()
|
|
9408
|
+
});
|
|
9409
|
+
var themeSchema = z22.object({
|
|
9410
|
+
name: z22.string().min(1).max(30),
|
|
9411
|
+
description: z22.string().min(1).max(400),
|
|
9412
|
+
rationale: z22.string().min(1).max(400),
|
|
9413
|
+
siteStyleId: z22.string().min(1).transform((value) => asSiteStyleId(value)).optional(),
|
|
9859
9414
|
axes: axesSchema,
|
|
9860
9415
|
palette: paletteSchema,
|
|
9861
9416
|
typography: typographySchema,
|
|
@@ -9882,16 +9437,16 @@ var themeSchema = z25.object({
|
|
|
9882
9437
|
// Block-specific customization (Tier 3)
|
|
9883
9438
|
// blockCustomVars: Per-block CSS variable overrides as bare values
|
|
9884
9439
|
// Example: { "event-registration": { "--step-color": "#6d28d9" } }
|
|
9885
|
-
blockCustomVars:
|
|
9886
|
-
|
|
9440
|
+
blockCustomVars: z22.record(
|
|
9441
|
+
z22.string(),
|
|
9887
9442
|
// block kind (matches data-block attribute)
|
|
9888
|
-
|
|
9443
|
+
z22.record(z22.string(), z22.string())
|
|
9889
9444
|
// { '--var-name': 'value' }
|
|
9890
9445
|
).optional(),
|
|
9891
9446
|
// Structured block-kind theme overrides (v1: typography prose-link style only)
|
|
9892
9447
|
// Keyed by block kind (usually data-block value like "hero"; "block.hero" also accepted)
|
|
9893
|
-
blockOverrides:
|
|
9894
|
-
|
|
9448
|
+
blockOverrides: z22.record(
|
|
9449
|
+
z22.string(),
|
|
9895
9450
|
blockThemeOverrideSchema
|
|
9896
9451
|
).optional(),
|
|
9897
9452
|
// Structured custom CSS rules
|
|
@@ -9927,22 +9482,21 @@ var themeSchema = z25.object({
|
|
|
9927
9482
|
* }
|
|
9928
9483
|
* ```
|
|
9929
9484
|
*/
|
|
9930
|
-
styleGroups:
|
|
9485
|
+
styleGroups: z22.record(z22.string(), z22.array(z22.string())).optional()
|
|
9931
9486
|
});
|
|
9932
|
-
var themesTurnSchema =
|
|
9933
|
-
message:
|
|
9934
|
-
themes:
|
|
9487
|
+
var themesTurnSchema = z22.object({
|
|
9488
|
+
message: z22.string().min(1),
|
|
9489
|
+
themes: z22.array(themeSchema).length(3)
|
|
9935
9490
|
});
|
|
9936
9491
|
|
|
9937
9492
|
// ../theme-core/src/palette/variants/types.ts
|
|
9938
|
-
import { z as z26 } from "zod";
|
|
9939
9493
|
function asPaletteVariantId(value) {
|
|
9940
9494
|
if (value.length === 0) {
|
|
9941
9495
|
throw new Error("PaletteVariantId must be a non-empty string");
|
|
9942
9496
|
}
|
|
9943
9497
|
return value;
|
|
9944
9498
|
}
|
|
9945
|
-
var paletteVariantIdSchema =
|
|
9499
|
+
var paletteVariantIdSchema = z23.string().min(1).transform((value) => asPaletteVariantId(value));
|
|
9946
9500
|
var PALETTE_TOKEN_NAMES = [
|
|
9947
9501
|
"primary",
|
|
9948
9502
|
"primaryForeground",
|
|
@@ -9958,19 +9512,19 @@ var PALETTE_TOKEN_NAMES = [
|
|
|
9958
9512
|
"text",
|
|
9959
9513
|
"border"
|
|
9960
9514
|
];
|
|
9961
|
-
var paletteTokenNameSchema =
|
|
9515
|
+
var paletteTokenNameSchema = z23.enum(PALETTE_TOKEN_NAMES);
|
|
9962
9516
|
var HEX_COLOR_REGEX = /^#[0-9a-f]{6}$/;
|
|
9963
|
-
var hexColorSchema =
|
|
9517
|
+
var hexColorSchema = z23.string().regex(HEX_COLOR_REGEX, "Hex must be #RRGGBB (lowercase)").transform((value) => value);
|
|
9964
9518
|
var variantPaletteColorSchema = paletteColorSchema.extend({
|
|
9965
9519
|
name: paletteTokenNameSchema
|
|
9966
9520
|
});
|
|
9967
|
-
var paletteVariantSchema =
|
|
9521
|
+
var paletteVariantSchema = z23.object({
|
|
9968
9522
|
id: paletteVariantIdSchema,
|
|
9969
|
-
name:
|
|
9970
|
-
description:
|
|
9523
|
+
name: z23.string().min(1),
|
|
9524
|
+
description: z23.string().min(1),
|
|
9971
9525
|
tags: styleTagsSchema,
|
|
9972
|
-
mode:
|
|
9973
|
-
colors:
|
|
9526
|
+
mode: z23.enum(["light", "dark"]),
|
|
9527
|
+
colors: z23.array(variantPaletteColorSchema).min(1)
|
|
9974
9528
|
});
|
|
9975
9529
|
function definePaletteVariant(input) {
|
|
9976
9530
|
return {
|
|
@@ -9982,7 +9536,7 @@ function definePaletteVariant(input) {
|
|
|
9982
9536
|
colors: input.colors
|
|
9983
9537
|
};
|
|
9984
9538
|
}
|
|
9985
|
-
var paletteOverridesSchema =
|
|
9539
|
+
var paletteOverridesSchema = z23.object({
|
|
9986
9540
|
primary: hexColorSchema.optional(),
|
|
9987
9541
|
primaryForeground: hexColorSchema.optional(),
|
|
9988
9542
|
secondary: hexColorSchema.optional(),
|
|
@@ -10202,96 +9756,747 @@ var softNaturalWatercolor = definePaletteVariant({
|
|
|
10202
9756
|
]
|
|
10203
9757
|
});
|
|
10204
9758
|
|
|
10205
|
-
// ../theme-core/src/palette/variants/warm-neutral.ts
|
|
10206
|
-
var warmNeutralClay = definePaletteVariant({
|
|
10207
|
-
id: "warm-neutral-clay",
|
|
10208
|
-
name: "Warm Neutral \u2014 Clay",
|
|
10209
|
-
description: "Terracotta primary on a cream ground.",
|
|
10210
|
-
tags: { tone: "classic", energy: "calm", era: "organic" },
|
|
10211
|
-
mode: "light",
|
|
10212
|
-
colors: [
|
|
10213
|
-
{ name: "primary", hex: "#8b5e34" },
|
|
10214
|
-
{ name: "secondary", hex: "#7c6f64" },
|
|
10215
|
-
{ name: "accent", hex: "#a15c38" },
|
|
10216
|
-
{ name: "success", hex: "#527853" },
|
|
10217
|
-
{ name: "warning", hex: "#b7791f" },
|
|
10218
|
-
{ name: "destructive", hex: "#b91c1c" },
|
|
10219
|
-
{ name: "background", hex: "#fffaf3" },
|
|
10220
|
-
{ name: "surface", hex: "#ffffff" },
|
|
10221
|
-
{ name: "surfaceAlt", hex: "#f5eadc" },
|
|
10222
|
-
{ name: "muted", hex: "#efe2d0" },
|
|
10223
|
-
{ name: "text", hex: "#2f241c" },
|
|
10224
|
-
{ name: "primaryForeground", hex: "#fffaf3" },
|
|
10225
|
-
{ name: "border", hex: "#d8c6b3" }
|
|
10226
|
-
]
|
|
10227
|
-
});
|
|
10228
|
-
var warmNeutralCream = definePaletteVariant({
|
|
10229
|
-
id: "warm-neutral-cream",
|
|
10230
|
-
name: "Warm Neutral \u2014 Cream",
|
|
10231
|
-
description: "Soft sand primary with pale cream surfaces.",
|
|
10232
|
-
tags: { tone: "minimal", energy: "calm", era: "organic" },
|
|
10233
|
-
mode: "light",
|
|
10234
|
-
colors: [
|
|
10235
|
-
{ name: "primary", hex: "#b08864" },
|
|
10236
|
-
{ name: "secondary", hex: "#9a8c7e" },
|
|
10237
|
-
{ name: "accent", hex: "#c2956a" },
|
|
10238
|
-
{ name: "success", hex: "#7d8a5f" },
|
|
10239
|
-
{ name: "warning", hex: "#c89a4d" },
|
|
10240
|
-
{ name: "destructive", hex: "#a3503e" },
|
|
10241
|
-
{ name: "background", hex: "#fdf8ee" },
|
|
10242
|
-
{ name: "surface", hex: "#ffffff" },
|
|
10243
|
-
{ name: "surfaceAlt", hex: "#f4ebd9" },
|
|
10244
|
-
{ name: "muted", hex: "#ede3cf" },
|
|
10245
|
-
{ name: "text", hex: "#3b2f24" },
|
|
10246
|
-
{ name: "primaryForeground", hex: "#fdf8ee" },
|
|
10247
|
-
{ name: "border", hex: "#e0d2b8" }
|
|
10248
|
-
]
|
|
9759
|
+
// ../theme-core/src/palette/variants/warm-neutral.ts
|
|
9760
|
+
var warmNeutralClay = definePaletteVariant({
|
|
9761
|
+
id: "warm-neutral-clay",
|
|
9762
|
+
name: "Warm Neutral \u2014 Clay",
|
|
9763
|
+
description: "Terracotta primary on a cream ground.",
|
|
9764
|
+
tags: { tone: "classic", energy: "calm", era: "organic" },
|
|
9765
|
+
mode: "light",
|
|
9766
|
+
colors: [
|
|
9767
|
+
{ name: "primary", hex: "#8b5e34" },
|
|
9768
|
+
{ name: "secondary", hex: "#7c6f64" },
|
|
9769
|
+
{ name: "accent", hex: "#a15c38" },
|
|
9770
|
+
{ name: "success", hex: "#527853" },
|
|
9771
|
+
{ name: "warning", hex: "#b7791f" },
|
|
9772
|
+
{ name: "destructive", hex: "#b91c1c" },
|
|
9773
|
+
{ name: "background", hex: "#fffaf3" },
|
|
9774
|
+
{ name: "surface", hex: "#ffffff" },
|
|
9775
|
+
{ name: "surfaceAlt", hex: "#f5eadc" },
|
|
9776
|
+
{ name: "muted", hex: "#efe2d0" },
|
|
9777
|
+
{ name: "text", hex: "#2f241c" },
|
|
9778
|
+
{ name: "primaryForeground", hex: "#fffaf3" },
|
|
9779
|
+
{ name: "border", hex: "#d8c6b3" }
|
|
9780
|
+
]
|
|
9781
|
+
});
|
|
9782
|
+
var warmNeutralCream = definePaletteVariant({
|
|
9783
|
+
id: "warm-neutral-cream",
|
|
9784
|
+
name: "Warm Neutral \u2014 Cream",
|
|
9785
|
+
description: "Soft sand primary with pale cream surfaces.",
|
|
9786
|
+
tags: { tone: "minimal", energy: "calm", era: "organic" },
|
|
9787
|
+
mode: "light",
|
|
9788
|
+
colors: [
|
|
9789
|
+
{ name: "primary", hex: "#b08864" },
|
|
9790
|
+
{ name: "secondary", hex: "#9a8c7e" },
|
|
9791
|
+
{ name: "accent", hex: "#c2956a" },
|
|
9792
|
+
{ name: "success", hex: "#7d8a5f" },
|
|
9793
|
+
{ name: "warning", hex: "#c89a4d" },
|
|
9794
|
+
{ name: "destructive", hex: "#a3503e" },
|
|
9795
|
+
{ name: "background", hex: "#fdf8ee" },
|
|
9796
|
+
{ name: "surface", hex: "#ffffff" },
|
|
9797
|
+
{ name: "surfaceAlt", hex: "#f4ebd9" },
|
|
9798
|
+
{ name: "muted", hex: "#ede3cf" },
|
|
9799
|
+
{ name: "text", hex: "#3b2f24" },
|
|
9800
|
+
{ name: "primaryForeground", hex: "#fdf8ee" },
|
|
9801
|
+
{ name: "border", hex: "#e0d2b8" }
|
|
9802
|
+
]
|
|
9803
|
+
});
|
|
9804
|
+
var warmNeutralForest = definePaletteVariant({
|
|
9805
|
+
id: "warm-neutral-forest",
|
|
9806
|
+
name: "Warm Neutral \u2014 Forest",
|
|
9807
|
+
description: "Deep forest green primary with earthy neutrals.",
|
|
9808
|
+
tags: { tone: "classic", energy: "calm", era: "organic" },
|
|
9809
|
+
mode: "light",
|
|
9810
|
+
colors: [
|
|
9811
|
+
{ name: "primary", hex: "#3d5840" },
|
|
9812
|
+
{ name: "secondary", hex: "#7a6f5d" },
|
|
9813
|
+
{ name: "accent", hex: "#b06b50" },
|
|
9814
|
+
{ name: "success", hex: "#5a7a5d" },
|
|
9815
|
+
{ name: "warning", hex: "#b7791f" },
|
|
9816
|
+
{ name: "destructive", hex: "#b91c1c" },
|
|
9817
|
+
{ name: "background", hex: "#fbf8f0" },
|
|
9818
|
+
{ name: "surface", hex: "#ffffff" },
|
|
9819
|
+
{ name: "surfaceAlt", hex: "#f2ecdb" },
|
|
9820
|
+
{ name: "muted", hex: "#ebe3cc" },
|
|
9821
|
+
{ name: "text", hex: "#2a2a2a" },
|
|
9822
|
+
{ name: "primaryForeground", hex: "#fbf8f0" },
|
|
9823
|
+
{ name: "border", hex: "#cdc1a4" }
|
|
9824
|
+
]
|
|
9825
|
+
});
|
|
9826
|
+
|
|
9827
|
+
// ../theme-core/src/palette/variants/index.ts
|
|
9828
|
+
var paletteVariants = [
|
|
9829
|
+
// Brand-led family
|
|
9830
|
+
brandLedCool,
|
|
9831
|
+
brandLedWarm,
|
|
9832
|
+
brandLedJewel,
|
|
9833
|
+
// Warm-neutral family
|
|
9834
|
+
warmNeutralClay,
|
|
9835
|
+
warmNeutralCream,
|
|
9836
|
+
warmNeutralForest,
|
|
9837
|
+
// High-contrast family
|
|
9838
|
+
highContrastInk,
|
|
9839
|
+
highContrastCharcoal,
|
|
9840
|
+
highContrastMonochrome,
|
|
9841
|
+
// Soft-natural family
|
|
9842
|
+
softNaturalSage,
|
|
9843
|
+
softNaturalStone,
|
|
9844
|
+
softNaturalWatercolor
|
|
9845
|
+
];
|
|
9846
|
+
var paletteVariantsById = new Map(
|
|
9847
|
+
paletteVariants.map((v) => [v.id, v])
|
|
9848
|
+
);
|
|
9849
|
+
|
|
9850
|
+
// ../theme-core/src/site-styles/sourceCatalogs.ts
|
|
9851
|
+
var generatedContentFrames = [
|
|
9852
|
+
plainFrame,
|
|
9853
|
+
panelFrame("inset"),
|
|
9854
|
+
panelFrame("raised"),
|
|
9855
|
+
flushPanelFrame({ bleed: "start" })
|
|
9856
|
+
];
|
|
9857
|
+
var userContentFrames = [
|
|
9858
|
+
...generatedContentFrames,
|
|
9859
|
+
panelFrame("editorial"),
|
|
9860
|
+
flushPanelFrame({ bleed: "end" }),
|
|
9861
|
+
flushPanelFrame({ bleed: "both" })
|
|
9862
|
+
];
|
|
9863
|
+
var generatedDesignOptionCatalog = {
|
|
9864
|
+
source: "generated",
|
|
9865
|
+
sectionSurfaces: ["base", "muted-band", "accent-band", "hero-image"],
|
|
9866
|
+
contentFrames: generatedContentFrames,
|
|
9867
|
+
itemSurfaces: ["none", "default", "flat", "outlined", "raised"],
|
|
9868
|
+
transitions: ["none", "soft-fade-short", "soft-fade-long"],
|
|
9869
|
+
emphases: ["low", "medium", "high"],
|
|
9870
|
+
detachedCustom: false
|
|
9871
|
+
};
|
|
9872
|
+
var userDesignOptionCatalog = {
|
|
9873
|
+
source: "user",
|
|
9874
|
+
sectionSurfaces: generatedDesignOptionCatalog.sectionSurfaces,
|
|
9875
|
+
contentFrames: userContentFrames,
|
|
9876
|
+
itemSurfaces: [
|
|
9877
|
+
...generatedDesignOptionCatalog.itemSurfaces,
|
|
9878
|
+
"inset",
|
|
9879
|
+
"editorial"
|
|
9880
|
+
],
|
|
9881
|
+
transitions: [
|
|
9882
|
+
...generatedDesignOptionCatalog.transitions,
|
|
9883
|
+
"wave-edge",
|
|
9884
|
+
"angle-edge"
|
|
9885
|
+
],
|
|
9886
|
+
emphases: generatedDesignOptionCatalog.emphases,
|
|
9887
|
+
detachedCustom: false
|
|
9888
|
+
};
|
|
9889
|
+
var advancedDesignOptionCatalog = {
|
|
9890
|
+
source: "advanced",
|
|
9891
|
+
sectionSurfaces: userDesignOptionCatalog.sectionSurfaces,
|
|
9892
|
+
contentFrames: userDesignOptionCatalog.contentFrames,
|
|
9893
|
+
itemSurfaces: userDesignOptionCatalog.itemSurfaces,
|
|
9894
|
+
transitions: userDesignOptionCatalog.transitions,
|
|
9895
|
+
emphases: userDesignOptionCatalog.emphases,
|
|
9896
|
+
detachedCustom: true
|
|
9897
|
+
};
|
|
9898
|
+
|
|
9899
|
+
// ../theme-core/src/site-styles/curatedSiteStyles.ts
|
|
9900
|
+
var curatedSiteStyleIdValues = [
|
|
9901
|
+
"site-style:calm-studio",
|
|
9902
|
+
"site-style:clear-professional",
|
|
9903
|
+
"site-style:warm-editorial",
|
|
9904
|
+
"site-style:bright-community",
|
|
9905
|
+
"site-style:quiet-luxury",
|
|
9906
|
+
"site-style:practical-services",
|
|
9907
|
+
"site-style:modern-wellness",
|
|
9908
|
+
"site-style:bold-launch"
|
|
9909
|
+
];
|
|
9910
|
+
var quietBudget = {
|
|
9911
|
+
accentDensity: "low",
|
|
9912
|
+
panelDensity: "medium",
|
|
9913
|
+
transitionMix: "quiet",
|
|
9914
|
+
primaryCtaLimit: 2,
|
|
9915
|
+
mediaDensity: "medium",
|
|
9916
|
+
decorativeRepetition: "low"
|
|
9917
|
+
};
|
|
9918
|
+
var balancedBudget = {
|
|
9919
|
+
accentDensity: "medium",
|
|
9920
|
+
panelDensity: "medium",
|
|
9921
|
+
transitionMix: "balanced",
|
|
9922
|
+
primaryCtaLimit: 3,
|
|
9923
|
+
mediaDensity: "medium",
|
|
9924
|
+
decorativeRepetition: "medium"
|
|
9925
|
+
};
|
|
9926
|
+
var expressiveBudget = {
|
|
9927
|
+
accentDensity: "high",
|
|
9928
|
+
panelDensity: "high",
|
|
9929
|
+
transitionMix: "expressive",
|
|
9930
|
+
primaryCtaLimit: 3,
|
|
9931
|
+
mediaDensity: "high",
|
|
9932
|
+
decorativeRepetition: "medium"
|
|
9933
|
+
};
|
|
9934
|
+
function uniqueContentFrameKinds() {
|
|
9935
|
+
const kinds = [...new Set(
|
|
9936
|
+
generatedDesignOptionCatalog.contentFrames.map((frame) => frame.kind)
|
|
9937
|
+
)];
|
|
9938
|
+
const firstKind = kinds[0];
|
|
9939
|
+
if (!firstKind) {
|
|
9940
|
+
throw new Error("Expected generated design option catalog to expose at least one content frame kind.");
|
|
9941
|
+
}
|
|
9942
|
+
return [firstKind, ...kinds.slice(1)];
|
|
9943
|
+
}
|
|
9944
|
+
var generatedContentFrameKinds = uniqueContentFrameKinds();
|
|
9945
|
+
function defineCuratedSiteStyle(input) {
|
|
9946
|
+
return {
|
|
9947
|
+
id: asSiteStyleId(input.id),
|
|
9948
|
+
name: input.name,
|
|
9949
|
+
description: input.description,
|
|
9950
|
+
generationBrief: input.generationBrief,
|
|
9951
|
+
selectionKeywords: input.selectionKeywords ?? [],
|
|
9952
|
+
template: {
|
|
9953
|
+
id: asDesignSystemTemplateId(`template:${input.id.replace("site-style:", "")}`),
|
|
9954
|
+
name: input.name,
|
|
9955
|
+
version: 1,
|
|
9956
|
+
tokenRecipes: input.tokenRecipes,
|
|
9957
|
+
compositionBudget: input.compositionBudget,
|
|
9958
|
+
supportedSectionSurfaces: generatedDesignOptionCatalog.sectionSurfaces,
|
|
9959
|
+
supportedContentFrames: generatedContentFrameKinds,
|
|
9960
|
+
supportedItemSurfaces: generatedDesignOptionCatalog.itemSurfaces,
|
|
9961
|
+
supportedTransitions: generatedDesignOptionCatalog.transitions
|
|
9962
|
+
},
|
|
9963
|
+
buttonPersonalityChoices: input.buttonPersonalityChoices,
|
|
9964
|
+
paletteVariantChoices: input.paletteVariantChoices
|
|
9965
|
+
};
|
|
9966
|
+
}
|
|
9967
|
+
function buttonChoice(id, note) {
|
|
9968
|
+
return note ? { id: asButtonPersonalityId(id), note } : { id: asButtonPersonalityId(id) };
|
|
9969
|
+
}
|
|
9970
|
+
function paletteChoice(id, note) {
|
|
9971
|
+
return note ? { id: asPaletteVariantId(id), note } : { id: asPaletteVariantId(id) };
|
|
9972
|
+
}
|
|
9973
|
+
var curatedSiteStyles = [
|
|
9974
|
+
defineCuratedSiteStyle({
|
|
9975
|
+
id: "site-style:calm-studio",
|
|
9976
|
+
name: "Calm Studio",
|
|
9977
|
+
description: "Soft, measured, and spacious for intimate appointment or class businesses.",
|
|
9978
|
+
generationBrief: "Use calm pacing, concise copy, generous breathing room, and natural imagery. Keep calls to action steady rather than urgent.",
|
|
9979
|
+
tokenRecipes: {
|
|
9980
|
+
palette: "soft-natural",
|
|
9981
|
+
contrast: "standard",
|
|
9982
|
+
radius: "soft",
|
|
9983
|
+
shadow: "subtle",
|
|
9984
|
+
typography: "friendly-sans",
|
|
9985
|
+
spacing: "airy",
|
|
9986
|
+
motion: "subtle"
|
|
9987
|
+
},
|
|
9988
|
+
compositionBudget: quietBudget,
|
|
9989
|
+
buttonPersonalityChoices: [
|
|
9990
|
+
buttonChoice("soft-pill"),
|
|
9991
|
+
buttonChoice("pebble"),
|
|
9992
|
+
buttonChoice("editorial-link"),
|
|
9993
|
+
buttonChoice("brushed-wash")
|
|
9994
|
+
],
|
|
9995
|
+
paletteVariantChoices: [
|
|
9996
|
+
paletteChoice("soft-natural-sage"),
|
|
9997
|
+
paletteChoice("soft-natural-stone"),
|
|
9998
|
+
paletteChoice("warm-neutral-clay"),
|
|
9999
|
+
paletteChoice("soft-natural-watercolor")
|
|
10000
|
+
]
|
|
10001
|
+
}),
|
|
10002
|
+
defineCuratedSiteStyle({
|
|
10003
|
+
id: "site-style:clear-professional",
|
|
10004
|
+
name: "Clear Professional",
|
|
10005
|
+
description: "Crisp, trustworthy, and direct for local services and consultancies.",
|
|
10006
|
+
generationBrief: "Prioritize clarity, proof, service detail, and easy next steps. Keep visuals polished and specific, with restrained decorative treatment.",
|
|
10007
|
+
tokenRecipes: {
|
|
10008
|
+
palette: "brand-led",
|
|
10009
|
+
contrast: "strong",
|
|
10010
|
+
radius: "soft",
|
|
10011
|
+
shadow: "subtle",
|
|
10012
|
+
typography: "clean-sans",
|
|
10013
|
+
spacing: "regular",
|
|
10014
|
+
motion: "subtle"
|
|
10015
|
+
},
|
|
10016
|
+
compositionBudget: balancedBudget,
|
|
10017
|
+
buttonPersonalityChoices: [
|
|
10018
|
+
buttonChoice("confident-chip"),
|
|
10019
|
+
buttonChoice("soft-pill"),
|
|
10020
|
+
buttonChoice("editorial-link")
|
|
10021
|
+
],
|
|
10022
|
+
paletteVariantChoices: [
|
|
10023
|
+
paletteChoice("brand-led-cool"),
|
|
10024
|
+
paletteChoice("high-contrast-ink"),
|
|
10025
|
+
paletteChoice("brand-led-jewel")
|
|
10026
|
+
]
|
|
10027
|
+
}),
|
|
10028
|
+
defineCuratedSiteStyle({
|
|
10029
|
+
id: "site-style:warm-editorial",
|
|
10030
|
+
name: "Warm Editorial",
|
|
10031
|
+
description: "Story-led and textured for educators, makers, venues, and retreats.",
|
|
10032
|
+
generationBrief: "Let the copy feel thoughtful and grounded. Favor narrative sections, supporting media, and a small number of editorial panels.",
|
|
10033
|
+
tokenRecipes: {
|
|
10034
|
+
palette: "warm-neutral",
|
|
10035
|
+
contrast: "standard",
|
|
10036
|
+
radius: "square",
|
|
10037
|
+
shadow: "none",
|
|
10038
|
+
typography: "serif-editorial",
|
|
10039
|
+
spacing: "airy",
|
|
10040
|
+
motion: "subtle"
|
|
10041
|
+
},
|
|
10042
|
+
compositionBudget: balancedBudget,
|
|
10043
|
+
buttonPersonalityChoices: [
|
|
10044
|
+
buttonChoice("editorial-link"),
|
|
10045
|
+
buttonChoice("soft-pill"),
|
|
10046
|
+
buttonChoice("brushed-wash")
|
|
10047
|
+
],
|
|
10048
|
+
paletteVariantChoices: [
|
|
10049
|
+
paletteChoice("warm-neutral-cream"),
|
|
10050
|
+
paletteChoice("warm-neutral-clay"),
|
|
10051
|
+
paletteChoice("warm-neutral-forest"),
|
|
10052
|
+
paletteChoice("soft-natural-stone")
|
|
10053
|
+
]
|
|
10054
|
+
}),
|
|
10055
|
+
defineCuratedSiteStyle({
|
|
10056
|
+
id: "site-style:bright-community",
|
|
10057
|
+
name: "Bright Community",
|
|
10058
|
+
description: "Friendly, welcoming, and active for groups, classes, and neighborhood offers.",
|
|
10059
|
+
generationBrief: "Use welcoming language, clear event or booking routes, and optimistic imagery. Let accents appear, but avoid noisy decoration.",
|
|
10060
|
+
tokenRecipes: {
|
|
10061
|
+
palette: "brand-led",
|
|
10062
|
+
contrast: "standard",
|
|
10063
|
+
radius: "rounded",
|
|
10064
|
+
shadow: "subtle",
|
|
10065
|
+
typography: "friendly-sans",
|
|
10066
|
+
spacing: "regular",
|
|
10067
|
+
motion: "expressive"
|
|
10068
|
+
},
|
|
10069
|
+
compositionBudget: balancedBudget,
|
|
10070
|
+
buttonPersonalityChoices: [
|
|
10071
|
+
buttonChoice("pebble"),
|
|
10072
|
+
buttonChoice("brushed-wash"),
|
|
10073
|
+
buttonChoice("confident-chip")
|
|
10074
|
+
],
|
|
10075
|
+
paletteVariantChoices: [
|
|
10076
|
+
paletteChoice("brand-led-warm"),
|
|
10077
|
+
paletteChoice("brand-led-jewel"),
|
|
10078
|
+
paletteChoice("soft-natural-watercolor")
|
|
10079
|
+
]
|
|
10080
|
+
}),
|
|
10081
|
+
defineCuratedSiteStyle({
|
|
10082
|
+
id: "site-style:quiet-luxury",
|
|
10083
|
+
name: "Quiet Luxury",
|
|
10084
|
+
description: "Minimal, confident, and refined for premium experiences and private services.",
|
|
10085
|
+
generationBrief: "Use fewer claims, more specificity, and restrained sensory detail. Favor elegant media and low repetition over dense panels.",
|
|
10086
|
+
selectionKeywords: [
|
|
10087
|
+
"luxury",
|
|
10088
|
+
"premium",
|
|
10089
|
+
"boutique",
|
|
10090
|
+
"bespoke",
|
|
10091
|
+
"exclusive"
|
|
10092
|
+
],
|
|
10093
|
+
tokenRecipes: {
|
|
10094
|
+
palette: "high-contrast",
|
|
10095
|
+
contrast: "strong",
|
|
10096
|
+
radius: "square",
|
|
10097
|
+
shadow: "none",
|
|
10098
|
+
typography: "classic-serif",
|
|
10099
|
+
spacing: "airy",
|
|
10100
|
+
motion: "none"
|
|
10101
|
+
},
|
|
10102
|
+
compositionBudget: quietBudget,
|
|
10103
|
+
buttonPersonalityChoices: [
|
|
10104
|
+
buttonChoice("editorial-link"),
|
|
10105
|
+
buttonChoice("confident-chip"),
|
|
10106
|
+
buttonChoice("soft-pill")
|
|
10107
|
+
],
|
|
10108
|
+
paletteVariantChoices: [
|
|
10109
|
+
paletteChoice("high-contrast-charcoal"),
|
|
10110
|
+
paletteChoice("high-contrast-ink"),
|
|
10111
|
+
paletteChoice("warm-neutral-cream")
|
|
10112
|
+
]
|
|
10113
|
+
}),
|
|
10114
|
+
defineCuratedSiteStyle({
|
|
10115
|
+
id: "site-style:practical-services",
|
|
10116
|
+
name: "Practical Services",
|
|
10117
|
+
description: "Efficient, plainspoken, and conversion-focused for trades and everyday services.",
|
|
10118
|
+
generationBrief: "Make services, location, trust signals, and contact paths obvious. Keep copy brief and avoid ornate visual treatments.",
|
|
10119
|
+
selectionKeywords: [
|
|
10120
|
+
"repair",
|
|
10121
|
+
"plumb",
|
|
10122
|
+
"electric",
|
|
10123
|
+
"cleaning",
|
|
10124
|
+
"landscap",
|
|
10125
|
+
"contractor"
|
|
10126
|
+
],
|
|
10127
|
+
tokenRecipes: {
|
|
10128
|
+
palette: "brand-led",
|
|
10129
|
+
contrast: "maximum",
|
|
10130
|
+
radius: "soft",
|
|
10131
|
+
shadow: "subtle",
|
|
10132
|
+
typography: "clean-sans",
|
|
10133
|
+
spacing: "compact",
|
|
10134
|
+
motion: "none"
|
|
10135
|
+
},
|
|
10136
|
+
compositionBudget: quietBudget,
|
|
10137
|
+
buttonPersonalityChoices: [
|
|
10138
|
+
buttonChoice("confident-chip"),
|
|
10139
|
+
buttonChoice("pebble"),
|
|
10140
|
+
buttonChoice("ink-stamp")
|
|
10141
|
+
],
|
|
10142
|
+
paletteVariantChoices: [
|
|
10143
|
+
paletteChoice("brand-led-cool"),
|
|
10144
|
+
paletteChoice("high-contrast-ink"),
|
|
10145
|
+
paletteChoice("brand-led-warm")
|
|
10146
|
+
]
|
|
10147
|
+
}),
|
|
10148
|
+
defineCuratedSiteStyle({
|
|
10149
|
+
id: "site-style:modern-wellness",
|
|
10150
|
+
name: "Modern Wellness",
|
|
10151
|
+
description: "Natural, current, and reassuring for practitioners, studios, and wellbeing offers.",
|
|
10152
|
+
generationBrief: "Keep the tone warm and practical. Use gentle section variation, natural materials, and inclusive copy without making medical claims.",
|
|
10153
|
+
tokenRecipes: {
|
|
10154
|
+
palette: "soft-natural",
|
|
10155
|
+
contrast: "standard",
|
|
10156
|
+
radius: "rounded",
|
|
10157
|
+
shadow: "subtle",
|
|
10158
|
+
typography: "clean-sans",
|
|
10159
|
+
spacing: "airy",
|
|
10160
|
+
motion: "subtle"
|
|
10161
|
+
},
|
|
10162
|
+
compositionBudget: balancedBudget,
|
|
10163
|
+
buttonPersonalityChoices: [
|
|
10164
|
+
buttonChoice("soft-pill"),
|
|
10165
|
+
buttonChoice("pebble"),
|
|
10166
|
+
buttonChoice("confident-chip")
|
|
10167
|
+
],
|
|
10168
|
+
paletteVariantChoices: [
|
|
10169
|
+
paletteChoice("soft-natural-sage"),
|
|
10170
|
+
paletteChoice("soft-natural-stone"),
|
|
10171
|
+
paletteChoice("warm-neutral-forest")
|
|
10172
|
+
]
|
|
10173
|
+
}),
|
|
10174
|
+
defineCuratedSiteStyle({
|
|
10175
|
+
id: "site-style:bold-launch",
|
|
10176
|
+
name: "Bold Launch",
|
|
10177
|
+
description: "High-energy and punchy for launches, campaigns, and creative offers.",
|
|
10178
|
+
generationBrief: "Use crisp positioning, bold hero structure, strong calls to action, and confident visual rhythm. Keep it precise, not shouty.",
|
|
10179
|
+
selectionKeywords: [
|
|
10180
|
+
"launch",
|
|
10181
|
+
"campaign",
|
|
10182
|
+
"preorder",
|
|
10183
|
+
"pre-order",
|
|
10184
|
+
"waitlist",
|
|
10185
|
+
"drop"
|
|
10186
|
+
],
|
|
10187
|
+
tokenRecipes: {
|
|
10188
|
+
palette: "high-contrast",
|
|
10189
|
+
contrast: "maximum",
|
|
10190
|
+
radius: "pill",
|
|
10191
|
+
shadow: "layered",
|
|
10192
|
+
typography: "clean-sans",
|
|
10193
|
+
spacing: "regular",
|
|
10194
|
+
motion: "expressive"
|
|
10195
|
+
},
|
|
10196
|
+
compositionBudget: expressiveBudget,
|
|
10197
|
+
buttonPersonalityChoices: [
|
|
10198
|
+
buttonChoice("ink-stamp"),
|
|
10199
|
+
buttonChoice("confident-chip"),
|
|
10200
|
+
buttonChoice("brushed-wash"),
|
|
10201
|
+
buttonChoice("pebble")
|
|
10202
|
+
],
|
|
10203
|
+
paletteVariantChoices: [
|
|
10204
|
+
paletteChoice("high-contrast-monochrome"),
|
|
10205
|
+
paletteChoice("high-contrast-ink"),
|
|
10206
|
+
paletteChoice("brand-led-jewel"),
|
|
10207
|
+
paletteChoice("brand-led-warm")
|
|
10208
|
+
]
|
|
10209
|
+
})
|
|
10210
|
+
];
|
|
10211
|
+
var curatedSiteStylesById = new Map(
|
|
10212
|
+
curatedSiteStyles.map((style) => [style.id, style])
|
|
10213
|
+
);
|
|
10214
|
+
|
|
10215
|
+
// ../theme-core/src/site-styles/designState.ts
|
|
10216
|
+
import { z as z24 } from "zod";
|
|
10217
|
+
|
|
10218
|
+
// ../theme-core/src/site-styles/rawStyleFields.ts
|
|
10219
|
+
var themeV2RuntimeStyleFieldNames = [
|
|
10220
|
+
"_frameStyles",
|
|
10221
|
+
"_sectionStyles",
|
|
10222
|
+
"_containerStyles",
|
|
10223
|
+
"_cardStyles",
|
|
10224
|
+
// styleGroup is legacy runtime transition wiring rather than a nested
|
|
10225
|
+
// override object, but normal editors should still never see it directly.
|
|
10226
|
+
"styleGroup"
|
|
10227
|
+
];
|
|
10228
|
+
var themeV2BlockSpecificRawStyleFieldNames = [
|
|
10229
|
+
"_contentCardStyles",
|
|
10230
|
+
"_textCardStyles"
|
|
10231
|
+
];
|
|
10232
|
+
var themeV2NormalEditorRawStyleFieldNames = [
|
|
10233
|
+
...themeV2RuntimeStyleFieldNames,
|
|
10234
|
+
...themeV2BlockSpecificRawStyleFieldNames
|
|
10235
|
+
];
|
|
10236
|
+
var themeV2NormalEditorRawStyleFieldNameSet = new Set(
|
|
10237
|
+
themeV2NormalEditorRawStyleFieldNames
|
|
10238
|
+
);
|
|
10239
|
+
|
|
10240
|
+
// ../theme-core/src/site-styles/designState.ts
|
|
10241
|
+
var themeV2DesignStateSchemaVersion = 1;
|
|
10242
|
+
var designResolutionPolicySchema = z24.enum(["generated", "user", "admin", "sdk"]);
|
|
10243
|
+
var runtimeStyleFieldNameSchema = z24.enum(themeV2RuntimeStyleFieldNames);
|
|
10244
|
+
var nonEmptyRuntimeStyleFieldNamesSchema = z24.array(runtimeStyleFieldNameSchema).min(1).transform((fields3) => [
|
|
10245
|
+
fields3[0],
|
|
10246
|
+
...fields3.slice(1)
|
|
10247
|
+
]);
|
|
10248
|
+
var heroLegibilityStrategySchema = z24.enum([
|
|
10249
|
+
"none",
|
|
10250
|
+
"scrim-gradient",
|
|
10251
|
+
"solid-panel"
|
|
10252
|
+
]);
|
|
10253
|
+
function uniqueNonEmpty(values) {
|
|
10254
|
+
const uniqueValues = [...new Set(values)];
|
|
10255
|
+
const firstValue = uniqueValues[0];
|
|
10256
|
+
if (!firstValue) {
|
|
10257
|
+
throw new Error("Expected at least one Theme V2 design state option.");
|
|
10258
|
+
}
|
|
10259
|
+
return [firstValue, ...uniqueValues.slice(1)];
|
|
10260
|
+
}
|
|
10261
|
+
var userPanelTreatments = uniqueNonEmpty(
|
|
10262
|
+
userDesignOptionCatalog.contentFrames.filter((frame) => frame.kind === "panel").map((frame) => frame.treatment)
|
|
10263
|
+
);
|
|
10264
|
+
var userFlushTreatments = uniqueNonEmpty(
|
|
10265
|
+
userDesignOptionCatalog.contentFrames.filter((frame) => frame.kind === "flush-panel").map((frame) => frame.treatment)
|
|
10266
|
+
);
|
|
10267
|
+
var userFlushBleeds = uniqueNonEmpty(
|
|
10268
|
+
userDesignOptionCatalog.contentFrames.filter((frame) => frame.kind === "flush-panel").map((frame) => frame.bleed)
|
|
10269
|
+
);
|
|
10270
|
+
var contentFrameIntentSchema = z24.discriminatedUnion("kind", [
|
|
10271
|
+
z24.object({ kind: z24.literal("plain") }).strict(),
|
|
10272
|
+
z24.object({
|
|
10273
|
+
kind: z24.literal("panel"),
|
|
10274
|
+
treatment: z24.enum(userPanelTreatments)
|
|
10275
|
+
}).strict(),
|
|
10276
|
+
z24.object({
|
|
10277
|
+
kind: z24.literal("flush-panel"),
|
|
10278
|
+
treatment: z24.enum(userFlushTreatments),
|
|
10279
|
+
bleed: z24.enum(userFlushBleeds)
|
|
10280
|
+
}).strict()
|
|
10281
|
+
]);
|
|
10282
|
+
var blockDesignPlanSchema = z24.object({
|
|
10283
|
+
blockId: z24.string().min(1).transform(asDesignBlockId),
|
|
10284
|
+
blockKind: z24.string().min(1),
|
|
10285
|
+
purpose: z24.string().min(1),
|
|
10286
|
+
sectionSurface: z24.enum(userDesignOptionCatalog.sectionSurfaces),
|
|
10287
|
+
contentFrame: contentFrameIntentSchema,
|
|
10288
|
+
itemSurface: z24.enum(userDesignOptionCatalog.itemSurfaces),
|
|
10289
|
+
transitionAfter: z24.enum(userDesignOptionCatalog.transitions),
|
|
10290
|
+
emphasis: z24.enum(userDesignOptionCatalog.emphases),
|
|
10291
|
+
heroLegibility: heroLegibilityStrategySchema.optional()
|
|
10292
|
+
}).strict();
|
|
10293
|
+
var styleAuthoritySchema = z24.discriminatedUnion("kind", [
|
|
10294
|
+
z24.object({
|
|
10295
|
+
kind: z24.literal("theme-v2"),
|
|
10296
|
+
source: designResolutionPolicySchema,
|
|
10297
|
+
siteStyleId: z24.string().min(1).transform(asSiteStyleId),
|
|
10298
|
+
templateId: z24.string().min(1).transform(asDesignSystemTemplateId),
|
|
10299
|
+
templateVersion: z24.number().int().nonnegative(),
|
|
10300
|
+
resolverVersion: z24.number().int().nonnegative()
|
|
10301
|
+
}).strict(),
|
|
10302
|
+
z24.object({
|
|
10303
|
+
kind: z24.literal("legacy-raw"),
|
|
10304
|
+
reason: z24.enum(["pre-theme-v2", "manual-runtime-fields"])
|
|
10305
|
+
}).strict(),
|
|
10306
|
+
z24.object({
|
|
10307
|
+
kind: z24.literal("advanced-detached"),
|
|
10308
|
+
reason: z24.literal("detached-custom-runtime-fields")
|
|
10309
|
+
}).strict()
|
|
10310
|
+
]);
|
|
10311
|
+
var blockRuntimeStyleAuthoritySchema = z24.object({
|
|
10312
|
+
unit: z24.literal("block-runtime-fields"),
|
|
10313
|
+
blockId: z24.string().min(1).transform(asDesignBlockId),
|
|
10314
|
+
fields: nonEmptyRuntimeStyleFieldNamesSchema,
|
|
10315
|
+
authority: styleAuthoritySchema
|
|
10316
|
+
}).strict();
|
|
10317
|
+
var persistedPageDesignStateV1Schema = z24.object({
|
|
10318
|
+
schemaVersion: z24.literal(themeV2DesignStateSchemaVersion),
|
|
10319
|
+
siteStyleId: z24.string().min(1).transform(asSiteStyleId),
|
|
10320
|
+
templateId: z24.string().min(1).transform(asDesignSystemTemplateId),
|
|
10321
|
+
templateVersion: z24.number().int().nonnegative(),
|
|
10322
|
+
resolverVersion: z24.number().int().nonnegative(),
|
|
10323
|
+
rhythmPresetId: z24.string().min(1),
|
|
10324
|
+
blocks: z24.array(blockDesignPlanSchema),
|
|
10325
|
+
styleAuthorities: z24.array(blockRuntimeStyleAuthoritySchema)
|
|
10326
|
+
}).strict();
|
|
10327
|
+
|
|
10328
|
+
// ../theme-core/src/site-styles/generatedSchemas.ts
|
|
10329
|
+
import { z as z25 } from "zod";
|
|
10330
|
+
function uniqueNonEmpty2(values) {
|
|
10331
|
+
const uniqueValues = [...new Set(values)];
|
|
10332
|
+
const firstValue = uniqueValues[0];
|
|
10333
|
+
if (!firstValue) {
|
|
10334
|
+
throw new Error("Expected at least one generated schema option.");
|
|
10335
|
+
}
|
|
10336
|
+
return [firstValue, ...uniqueValues.slice(1)];
|
|
10337
|
+
}
|
|
10338
|
+
var generatedPanelTreatments = uniqueNonEmpty2(
|
|
10339
|
+
generatedDesignOptionCatalog.contentFrames.filter((frame) => frame.kind === "panel").map((frame) => frame.treatment)
|
|
10340
|
+
);
|
|
10341
|
+
var generatedFlushTreatments = uniqueNonEmpty2(
|
|
10342
|
+
generatedDesignOptionCatalog.contentFrames.filter((frame) => frame.kind === "flush-panel").map((frame) => frame.treatment)
|
|
10343
|
+
);
|
|
10344
|
+
var generatedFlushBleeds = uniqueNonEmpty2(
|
|
10345
|
+
generatedDesignOptionCatalog.contentFrames.filter((frame) => frame.kind === "flush-panel").map((frame) => frame.bleed)
|
|
10346
|
+
);
|
|
10347
|
+
var generatedPanelFrameSchema = z25.object({
|
|
10348
|
+
kind: z25.literal("panel"),
|
|
10349
|
+
treatment: z25.enum(generatedPanelTreatments)
|
|
10350
|
+
}).strict();
|
|
10351
|
+
var generatedFlushPanelFrameSchema = z25.object({
|
|
10352
|
+
kind: z25.literal("flush-panel"),
|
|
10353
|
+
treatment: z25.enum(generatedFlushTreatments),
|
|
10354
|
+
bleed: z25.enum(generatedFlushBleeds)
|
|
10355
|
+
}).strict();
|
|
10356
|
+
var generatedContentFrameIntentSchema = z25.discriminatedUnion("kind", [
|
|
10357
|
+
z25.object({ kind: z25.literal("plain") }).strict(),
|
|
10358
|
+
generatedPanelFrameSchema,
|
|
10359
|
+
generatedFlushPanelFrameSchema
|
|
10360
|
+
]);
|
|
10361
|
+
var generatedSiteStyleIdSchema = z25.enum(curatedSiteStyleIdValues).transform(asSiteStyleId);
|
|
10362
|
+
function generatedChoiceSchema(valueSchema) {
|
|
10363
|
+
return z25.discriminatedUnion("kind", [
|
|
10364
|
+
z25.object({
|
|
10365
|
+
source: z25.literal("generated"),
|
|
10366
|
+
kind: z25.literal("auto")
|
|
10367
|
+
}).strict(),
|
|
10368
|
+
z25.object({
|
|
10369
|
+
source: z25.literal("generated"),
|
|
10370
|
+
kind: z25.literal("explicit"),
|
|
10371
|
+
value: valueSchema
|
|
10372
|
+
}).strict()
|
|
10373
|
+
]);
|
|
10374
|
+
}
|
|
10375
|
+
var generatedBlockDesignIntentSchema = z25.object({
|
|
10376
|
+
sectionSurface: generatedChoiceSchema(
|
|
10377
|
+
z25.enum(generatedDesignOptionCatalog.sectionSurfaces)
|
|
10378
|
+
),
|
|
10379
|
+
contentFrame: generatedChoiceSchema(generatedContentFrameIntentSchema),
|
|
10380
|
+
itemSurface: generatedChoiceSchema(
|
|
10381
|
+
z25.enum(generatedDesignOptionCatalog.itemSurfaces)
|
|
10382
|
+
),
|
|
10383
|
+
transitionAfter: generatedChoiceSchema(
|
|
10384
|
+
z25.enum(generatedDesignOptionCatalog.transitions)
|
|
10385
|
+
),
|
|
10386
|
+
emphasis: generatedChoiceSchema(
|
|
10387
|
+
z25.enum(generatedDesignOptionCatalog.emphases)
|
|
10388
|
+
)
|
|
10389
|
+
}).strict();
|
|
10390
|
+
var generatedMediaCompositionIntentSchema = z25.enum([
|
|
10391
|
+
"none",
|
|
10392
|
+
"supporting",
|
|
10393
|
+
"dominant"
|
|
10394
|
+
]);
|
|
10395
|
+
var generatedDecorativeCompositionIntentSchema = z25.enum([
|
|
10396
|
+
"none",
|
|
10397
|
+
"supporting"
|
|
10398
|
+
]);
|
|
10399
|
+
var generatedHeroLegibilityStrategySchema = z25.enum([
|
|
10400
|
+
"none",
|
|
10401
|
+
"scrim-gradient"
|
|
10402
|
+
]);
|
|
10403
|
+
var generatedBlockMediaIntentSchema = z25.object({
|
|
10404
|
+
media: generatedMediaCompositionIntentSchema,
|
|
10405
|
+
decorative: generatedDecorativeCompositionIntentSchema,
|
|
10406
|
+
heroLegibility: generatedChoiceSchema(generatedHeroLegibilityStrategySchema)
|
|
10407
|
+
}).strict();
|
|
10408
|
+
var generatedBoundaryIntentSchema = z25.object({
|
|
10409
|
+
transitionAfter: generatedChoiceSchema(
|
|
10410
|
+
z25.enum(generatedDesignOptionCatalog.transitions)
|
|
10411
|
+
)
|
|
10412
|
+
}).strict();
|
|
10413
|
+
var generatedPageDesignBlockIntentSchema = z25.object({
|
|
10414
|
+
blockId: z25.string().min(1),
|
|
10415
|
+
blockKind: z25.string().min(1),
|
|
10416
|
+
purpose: z25.string().min(1),
|
|
10417
|
+
design: generatedBlockDesignIntentSchema,
|
|
10418
|
+
mediaIntent: generatedBlockMediaIntentSchema,
|
|
10419
|
+
boundaryIntent: generatedBoundaryIntentSchema
|
|
10420
|
+
}).strict();
|
|
10421
|
+
var generatedPageDesignIntentSchema = z25.object({
|
|
10422
|
+
siteStyleId: generatedSiteStyleIdSchema,
|
|
10423
|
+
blocks: z25.array(generatedPageDesignBlockIntentSchema)
|
|
10424
|
+
}).strict();
|
|
10425
|
+
|
|
10426
|
+
// ../theme-core/src/site-styles/pageDesignIntent.ts
|
|
10427
|
+
import { z as z26 } from "zod";
|
|
10428
|
+
var pageDesignIntentSchemaVersion = 1;
|
|
10429
|
+
var pageDesignUserPinnedAppearanceChoiceSchema = z26.object({
|
|
10430
|
+
kind: z26.literal("user-pinned"),
|
|
10431
|
+
value: z26.string().min(1).transform(asAppearancePresetId)
|
|
10432
|
+
}).strict();
|
|
10433
|
+
var pageDesignUserPinnedBoundaryChoiceSchema = z26.object({
|
|
10434
|
+
kind: z26.literal("user-pinned"),
|
|
10435
|
+
value: z26.string().min(1).transform(asBoundaryOptionId)
|
|
10436
|
+
}).strict();
|
|
10437
|
+
var pageDesignBlockLookPinSchema = z26.object({
|
|
10438
|
+
blockId: z26.string().min(1).transform(asDesignBlockId),
|
|
10439
|
+
blockKind: z26.string().min(1),
|
|
10440
|
+
choice: pageDesignUserPinnedAppearanceChoiceSchema
|
|
10441
|
+
}).strict();
|
|
10442
|
+
var pageDesignBoundaryPinSchema = z26.object({
|
|
10443
|
+
boundaryId: z26.string().min(1).transform(asDesignBoundaryId),
|
|
10444
|
+
previousBlockId: z26.string().min(1).transform(asDesignBlockId),
|
|
10445
|
+
nextBlockId: z26.string().min(1).transform(asDesignBlockId),
|
|
10446
|
+
choice: pageDesignUserPinnedBoundaryChoiceSchema
|
|
10447
|
+
}).strict().superRefine((pin, ctx) => {
|
|
10448
|
+
const expectedBoundaryId = makeBoundaryId(
|
|
10449
|
+
pin.previousBlockId,
|
|
10450
|
+
pin.nextBlockId
|
|
10451
|
+
);
|
|
10452
|
+
if (pin.boundaryId !== expectedBoundaryId) {
|
|
10453
|
+
ctx.addIssue({
|
|
10454
|
+
code: z26.ZodIssueCode.custom,
|
|
10455
|
+
path: ["boundaryId"],
|
|
10456
|
+
message: `Boundary id must match previousBlockId and nextBlockId. Expected ${expectedBoundaryId}.`
|
|
10457
|
+
});
|
|
10458
|
+
}
|
|
10249
10459
|
});
|
|
10250
|
-
var
|
|
10251
|
-
|
|
10252
|
-
|
|
10253
|
-
|
|
10254
|
-
|
|
10255
|
-
|
|
10256
|
-
|
|
10257
|
-
|
|
10258
|
-
|
|
10259
|
-
|
|
10260
|
-
|
|
10261
|
-
|
|
10262
|
-
|
|
10263
|
-
|
|
10264
|
-
|
|
10265
|
-
|
|
10266
|
-
|
|
10267
|
-
|
|
10268
|
-
|
|
10269
|
-
{ name: "border", hex: "#cdc1a4" }
|
|
10270
|
-
]
|
|
10460
|
+
var pageDesignIntentV1Schema = z26.object({
|
|
10461
|
+
schemaVersion: z26.literal(pageDesignIntentSchemaVersion),
|
|
10462
|
+
siteStyleId: z26.string().min(1).transform(asSiteStyleId),
|
|
10463
|
+
pageFlowPresetId: z26.string().min(1).transform(asPageFlowPresetId),
|
|
10464
|
+
blockLookPins: z26.array(pageDesignBlockLookPinSchema),
|
|
10465
|
+
boundaryPins: z26.array(pageDesignBoundaryPinSchema)
|
|
10466
|
+
}).strict().superRefine((intent, ctx) => {
|
|
10467
|
+
addDuplicateStringIssues(ctx, {
|
|
10468
|
+
values: intent.blockLookPins.map((pin) => pin.blockId),
|
|
10469
|
+
path: ["blockLookPins"],
|
|
10470
|
+
label: "block Look pin"
|
|
10471
|
+
});
|
|
10472
|
+
addDuplicateStringIssues(ctx, {
|
|
10473
|
+
values: intent.boundaryPins.map(
|
|
10474
|
+
(pin) => boundaryKey(pin.previousBlockId, pin.nextBlockId)
|
|
10475
|
+
),
|
|
10476
|
+
path: ["boundaryPins"],
|
|
10477
|
+
label: "boundary pin"
|
|
10478
|
+
});
|
|
10271
10479
|
});
|
|
10272
|
-
|
|
10273
|
-
|
|
10274
|
-
|
|
10275
|
-
|
|
10276
|
-
|
|
10277
|
-
|
|
10278
|
-
|
|
10279
|
-
|
|
10280
|
-
|
|
10281
|
-
|
|
10282
|
-
|
|
10283
|
-
|
|
10284
|
-
|
|
10285
|
-
|
|
10286
|
-
|
|
10287
|
-
|
|
10288
|
-
|
|
10289
|
-
|
|
10290
|
-
|
|
10291
|
-
|
|
10292
|
-
var paletteVariantsById = new Map(
|
|
10293
|
-
paletteVariants.map((v) => [v.id, v])
|
|
10294
|
-
);
|
|
10480
|
+
function addDuplicateStringIssues(ctx, input) {
|
|
10481
|
+
const seen = /* @__PURE__ */ new Set();
|
|
10482
|
+
const duplicates = /* @__PURE__ */ new Set();
|
|
10483
|
+
for (const value of input.values) {
|
|
10484
|
+
if (seen.has(value)) {
|
|
10485
|
+
duplicates.add(value);
|
|
10486
|
+
}
|
|
10487
|
+
seen.add(value);
|
|
10488
|
+
}
|
|
10489
|
+
for (const duplicate of duplicates) {
|
|
10490
|
+
ctx.addIssue({
|
|
10491
|
+
code: z26.ZodIssueCode.custom,
|
|
10492
|
+
path: [...input.path],
|
|
10493
|
+
message: `Duplicate ${input.label}: ${duplicate}.`
|
|
10494
|
+
});
|
|
10495
|
+
}
|
|
10496
|
+
}
|
|
10497
|
+
function boundaryKey(previousBlockId, nextBlockId) {
|
|
10498
|
+
return makeBoundaryId(previousBlockId, nextBlockId);
|
|
10499
|
+
}
|
|
10295
10500
|
|
|
10296
10501
|
// ../theme-core/src/site-styles/runtimeCompiler.ts
|
|
10297
10502
|
function defineDesignRuntimeRules(rules) {
|
|
@@ -11636,7 +11841,8 @@ function ctaButton(opts) {
|
|
|
11636
11841
|
},
|
|
11637
11842
|
size: {
|
|
11638
11843
|
$bind: {
|
|
11639
|
-
from: sizePath
|
|
11844
|
+
from: sizePath,
|
|
11845
|
+
fallback: opts?.sizeFallback ?? "md"
|
|
11640
11846
|
}
|
|
11641
11847
|
},
|
|
11642
11848
|
...opts?.className ? { className: opts.className } : {},
|
|
@@ -15241,7 +15447,19 @@ var teamMemberFragment = defineFragment({
|
|
|
15241
15447
|
bind("photo")
|
|
15242
15448
|
)
|
|
15243
15449
|
]),
|
|
15244
|
-
|
|
15450
|
+
link(
|
|
15451
|
+
{
|
|
15452
|
+
href: { $bind: { from: "profilePath" } },
|
|
15453
|
+
className: "rb-team-member-name-link"
|
|
15454
|
+
},
|
|
15455
|
+
[text({ as: "h3" }, bind("name"))],
|
|
15456
|
+
when("profilePath")
|
|
15457
|
+
),
|
|
15458
|
+
text(
|
|
15459
|
+
{ as: "h3" },
|
|
15460
|
+
when("profilePath", { not: true }),
|
|
15461
|
+
bind("name")
|
|
15462
|
+
),
|
|
15245
15463
|
text({ as: "p", className: "rb-team-member-role" }, when("role"), bind("role")),
|
|
15246
15464
|
richText(
|
|
15247
15465
|
{ className: "rb-prose rb-max-w-none" },
|
|
@@ -17676,14 +17894,16 @@ var headerCta = ctaButton({
|
|
|
17676
17894
|
whenPath: "menu.ctaItem.label",
|
|
17677
17895
|
variantPath: "menu.ctaItem.variant",
|
|
17678
17896
|
linkPath: "menu.ctaItem.link",
|
|
17679
|
-
|
|
17897
|
+
sizeFallback: "sm",
|
|
17898
|
+
className: `header-cta ${desktopOnlyDisplay("inline-flex")} rb-ml-6`
|
|
17680
17899
|
});
|
|
17681
17900
|
var mobileCta = ctaButton({
|
|
17682
17901
|
basePath: "menu.ctaItem",
|
|
17683
17902
|
whenPath: "menu.ctaItem.label",
|
|
17684
17903
|
variantPath: "menu.ctaItem.variant",
|
|
17685
17904
|
linkPath: "menu.ctaItem.link",
|
|
17686
|
-
|
|
17905
|
+
sizeFallback: "md",
|
|
17906
|
+
className: "nav-mobile-cta rb-w-full"
|
|
17687
17907
|
});
|
|
17688
17908
|
var mobileToggleIcon = stack({ gap: "xs", className: "nav-mobile-icon" }, [
|
|
17689
17909
|
{
|
|
@@ -19533,7 +19753,9 @@ var courseSessionSchema = z42.object({
|
|
|
19533
19753
|
var courseTeamMemberSummarySchema = z42.object({
|
|
19534
19754
|
id: z42.string(),
|
|
19535
19755
|
name: z42.string(),
|
|
19536
|
-
|
|
19756
|
+
roleLabel: z42.string().nullable(),
|
|
19757
|
+
summary: z42.string().nullable(),
|
|
19758
|
+
profilePath: z42.string().nullable()
|
|
19537
19759
|
});
|
|
19538
19760
|
var coursePricingOptionSchema = z42.object({
|
|
19539
19761
|
id: z42.string(),
|
|
@@ -19638,7 +19860,9 @@ var publicEventTicketTypeSchema = z43.object({
|
|
|
19638
19860
|
var publicTeamMemberSummarySchema = z43.object({
|
|
19639
19861
|
id: z43.string(),
|
|
19640
19862
|
name: z43.string(),
|
|
19641
|
-
|
|
19863
|
+
roleLabel: z43.string().nullable(),
|
|
19864
|
+
summary: z43.string().nullable(),
|
|
19865
|
+
profilePath: z43.string().nullable()
|
|
19642
19866
|
});
|
|
19643
19867
|
var publicEventSchema = z43.object({
|
|
19644
19868
|
kind: z43.enum(["event", "course_session"]).optional(),
|
|
@@ -25485,7 +25709,25 @@ var newsletterSignupBlockDefinition = {
|
|
|
25485
25709
|
};
|
|
25486
25710
|
|
|
25487
25711
|
// ../blocks/src/system/blocks/team-members.ts
|
|
25712
|
+
import { z as z61 } from "zod";
|
|
25488
25713
|
var ITEM_NAME2 = "member";
|
|
25714
|
+
var teamMemberPhotoSchema = mediaSchema2.refine((media2) => media2.type === "image", {
|
|
25715
|
+
message: "Team member photos must be image media"
|
|
25716
|
+
}).nullable();
|
|
25717
|
+
var teamMemberDataSchema = z61.object({
|
|
25718
|
+
_type: z61.literal("teamMember"),
|
|
25719
|
+
id: z61.string(),
|
|
25720
|
+
name: z61.string(),
|
|
25721
|
+
role: z61.string().nullable(),
|
|
25722
|
+
roleLabel: z61.string().nullable(),
|
|
25723
|
+
bio: z61.string().nullable(),
|
|
25724
|
+
summary: z61.string().nullable(),
|
|
25725
|
+
photo: teamMemberPhotoSchema,
|
|
25726
|
+
profilePath: z61.string().nullable()
|
|
25727
|
+
});
|
|
25728
|
+
var teamMembersDataSchema = z61.array(teamMemberDataSchema);
|
|
25729
|
+
var dynamicSourceWhen = { equals: "site_staff" };
|
|
25730
|
+
var manualSourceWhen = { equals: "site_staff", not: true };
|
|
25489
25731
|
var headingNode = text(
|
|
25490
25732
|
{ as: "h2" },
|
|
25491
25733
|
bind("content.heading"),
|
|
@@ -25575,7 +25817,15 @@ var teamMemberStackLayout = el(
|
|
|
25575
25817
|
]
|
|
25576
25818
|
),
|
|
25577
25819
|
stack({ gap: "sm", className: "rb-team-member-body rb-flex-1 rb-min-w-0" }, [
|
|
25578
|
-
|
|
25820
|
+
link(
|
|
25821
|
+
{
|
|
25822
|
+
href: { $bind: { from: "profilePath" } },
|
|
25823
|
+
className: "rb-team-member-name-link"
|
|
25824
|
+
},
|
|
25825
|
+
[text({ as: "h3" }, bind("name"))],
|
|
25826
|
+
when("profilePath")
|
|
25827
|
+
),
|
|
25828
|
+
text({ as: "h3" }, when("profilePath", { not: true }), bind("name")),
|
|
25579
25829
|
text(
|
|
25580
25830
|
{ as: "p", className: "rb-team-member-role" },
|
|
25581
25831
|
when("role"),
|
|
@@ -25589,12 +25839,18 @@ var teamMemberStackLayout = el(
|
|
|
25589
25839
|
])
|
|
25590
25840
|
]
|
|
25591
25841
|
);
|
|
25592
|
-
var
|
|
25842
|
+
var manualGridMembersNode = when("content.source", manualSourceWhen)(repeaterFragmentLayout({
|
|
25593
25843
|
collectionPath: "content.members",
|
|
25594
25844
|
itemName: ITEM_NAME2,
|
|
25595
25845
|
fragments: { teamMember: teamMemberFragment },
|
|
25596
25846
|
itemGap: "sm"
|
|
25597
|
-
});
|
|
25847
|
+
}));
|
|
25848
|
+
var dynamicGridMembersNode = when("content.source", dynamicSourceWhen)(repeaterFragmentLayout({
|
|
25849
|
+
collectionPath: "data.members",
|
|
25850
|
+
itemName: ITEM_NAME2,
|
|
25851
|
+
fragments: { teamMember: teamMemberFragment },
|
|
25852
|
+
itemGap: "sm"
|
|
25853
|
+
}));
|
|
25598
25854
|
var gridVariant = wrapVariant3(
|
|
25599
25855
|
el(
|
|
25600
25856
|
"grid",
|
|
@@ -25608,22 +25864,29 @@ var gridVariant = wrapVariant3(
|
|
|
25608
25864
|
},
|
|
25609
25865
|
gap: { $bind: { from: "content.gap", fallback: "medium" } }
|
|
25610
25866
|
},
|
|
25611
|
-
[
|
|
25867
|
+
[manualGridMembersNode, dynamicGridMembersNode]
|
|
25612
25868
|
)
|
|
25613
25869
|
);
|
|
25614
|
-
var
|
|
25870
|
+
var manualStackMembersNode = when("content.source", manualSourceWhen)(repeaterFragmentLayout({
|
|
25615
25871
|
collectionPath: "content.members",
|
|
25616
25872
|
itemName: ITEM_NAME2,
|
|
25617
25873
|
fragments: { teamMember: teamMemberFragment },
|
|
25618
25874
|
layoutOverrides: { teamMember: teamMemberStackLayout },
|
|
25619
25875
|
itemGap: "sm"
|
|
25620
|
-
});
|
|
25876
|
+
}));
|
|
25877
|
+
var dynamicStackMembersNode = when("content.source", dynamicSourceWhen)(repeaterFragmentLayout({
|
|
25878
|
+
collectionPath: "data.members",
|
|
25879
|
+
itemName: ITEM_NAME2,
|
|
25880
|
+
fragments: { teamMember: teamMemberFragment },
|
|
25881
|
+
layoutOverrides: { teamMember: teamMemberStackLayout },
|
|
25882
|
+
itemGap: "sm"
|
|
25883
|
+
}));
|
|
25621
25884
|
var stackVariant = wrapVariant3({
|
|
25622
25885
|
type: "stack",
|
|
25623
25886
|
props: {
|
|
25624
25887
|
gap: { $bind: { from: "content.gap", fallback: "medium" } }
|
|
25625
25888
|
},
|
|
25626
|
-
children: [
|
|
25889
|
+
children: [manualStackMembersNode, dynamicStackMembersNode]
|
|
25627
25890
|
});
|
|
25628
25891
|
var teamMembersManifest = createBlockManifest({
|
|
25629
25892
|
id: "block.team-members",
|
|
@@ -25638,6 +25901,18 @@ var teamMembersManifest = createBlockManifest({
|
|
|
25638
25901
|
required: false,
|
|
25639
25902
|
maxLength: 120
|
|
25640
25903
|
}),
|
|
25904
|
+
parseFieldDefinition({
|
|
25905
|
+
id: "source",
|
|
25906
|
+
type: "select",
|
|
25907
|
+
label: "Team members",
|
|
25908
|
+
description: "Choose whether to use the site-wide team or a hand-picked list.",
|
|
25909
|
+
defaultValue: "manual",
|
|
25910
|
+
options: [
|
|
25911
|
+
{ value: "manual", label: "Choose manually" },
|
|
25912
|
+
{ value: "site_staff", label: "Use all site team members" }
|
|
25913
|
+
],
|
|
25914
|
+
ui: { intent: "behavior" }
|
|
25915
|
+
}),
|
|
25641
25916
|
parseFieldDefinition({
|
|
25642
25917
|
id: "layoutAlign",
|
|
25643
25918
|
type: "select",
|
|
@@ -25740,18 +26015,24 @@ var teamMembersManifest = createBlockManifest({
|
|
|
25740
26015
|
],
|
|
25741
26016
|
ui: { intent: "display" }
|
|
25742
26017
|
}),
|
|
25743
|
-
|
|
25744
|
-
|
|
25745
|
-
|
|
25746
|
-
|
|
25747
|
-
|
|
25748
|
-
|
|
25749
|
-
|
|
25750
|
-
|
|
25751
|
-
|
|
25752
|
-
|
|
26018
|
+
{
|
|
26019
|
+
...fragmentsToRepeaterField(
|
|
26020
|
+
"members",
|
|
26021
|
+
"Team members",
|
|
26022
|
+
{ teamMember: teamMemberFragment },
|
|
26023
|
+
{
|
|
26024
|
+
minItems: 0,
|
|
26025
|
+
maxItems: 50,
|
|
26026
|
+
itemLabel: "Team member",
|
|
26027
|
+
itemLabelSource: "name",
|
|
26028
|
+
description: "Add people to this section."
|
|
26029
|
+
}
|
|
26030
|
+
),
|
|
26031
|
+
ui: {
|
|
26032
|
+
intent: "content",
|
|
26033
|
+
visibleWhen: { field: "source", equals: "manual" }
|
|
25753
26034
|
}
|
|
25754
|
-
|
|
26035
|
+
}
|
|
25755
26036
|
],
|
|
25756
26037
|
layout: gridVariant,
|
|
25757
26038
|
variants: {
|
|
@@ -25777,7 +26058,20 @@ var teamMembersManifest = createBlockManifest({
|
|
|
25777
26058
|
styleTokens: { spacing: "lg" }
|
|
25778
26059
|
});
|
|
25779
26060
|
var teamMembersBlockDefinition = {
|
|
25780
|
-
manifest: teamMembersManifest
|
|
26061
|
+
manifest: teamMembersManifest,
|
|
26062
|
+
dataSchemas: {
|
|
26063
|
+
members: teamMembersDataSchema
|
|
26064
|
+
},
|
|
26065
|
+
dataLoaders: {
|
|
26066
|
+
members: {
|
|
26067
|
+
endpoint: "listPublicTeamMembers",
|
|
26068
|
+
params: {
|
|
26069
|
+
siteId: { $bind: { from: "$root.siteId" } },
|
|
26070
|
+
stage: { $bind: { from: "$root.previewStage", fallback: "published" } }
|
|
26071
|
+
},
|
|
26072
|
+
mode: "server"
|
|
26073
|
+
}
|
|
26074
|
+
}
|
|
25781
26075
|
};
|
|
25782
26076
|
|
|
25783
26077
|
// ../blocks/src/system/runtime/nodes/location-map.shared.ts
|
|
@@ -27257,6 +27551,7 @@ function coercePayload(payload) {
|
|
|
27257
27551
|
if ("form" in record && typeof record.form !== "function") return record.form;
|
|
27258
27552
|
if ("entries" in record && typeof record.entries !== "function") return record.entries;
|
|
27259
27553
|
if ("services" in record && typeof record.services !== "function") return record.services;
|
|
27554
|
+
if ("teamMembers" in record && typeof record.teamMembers !== "function") return record.teamMembers;
|
|
27260
27555
|
}
|
|
27261
27556
|
return payload;
|
|
27262
27557
|
}
|
|
@@ -27378,6 +27673,10 @@ function normalizeLoaderParams(endpoint, params, context) {
|
|
|
27378
27673
|
ensureSiteId(out, context);
|
|
27379
27674
|
return out;
|
|
27380
27675
|
}
|
|
27676
|
+
if (endpoint === "listPublicTeamMembers") {
|
|
27677
|
+
ensureSiteId(out, context);
|
|
27678
|
+
return out;
|
|
27679
|
+
}
|
|
27381
27680
|
if (endpoint === "getPublishedEntryPreview") {
|
|
27382
27681
|
ensureSiteId(out, context);
|
|
27383
27682
|
return out;
|
|
@@ -27392,6 +27691,7 @@ var SUPPORTED_LOADER_ENDPOINTS2 = [
|
|
|
27392
27691
|
"getPublishedEntryPreview",
|
|
27393
27692
|
"listPublicEvents",
|
|
27394
27693
|
"listPublicCourses",
|
|
27694
|
+
"listPublicTeamMembers",
|
|
27395
27695
|
"listPublicProducts",
|
|
27396
27696
|
"listPublicPasses",
|
|
27397
27697
|
"listPublicMemberships",
|
|
@@ -27556,6 +27856,16 @@ async function prefetchBlockData2(page, context, client, options) {
|
|
|
27556
27856
|
const parsedLimit = typeof limit === "string" ? Number.parseInt(limit, 10) : typeof limit === "number" ? limit : void 0;
|
|
27557
27857
|
return await client.listPublicCourses({ siteId, limit: parsedLimit, stage });
|
|
27558
27858
|
}
|
|
27859
|
+
case "listPublicTeamMembers": {
|
|
27860
|
+
const { siteId, stage } = resolvedParams ?? {};
|
|
27861
|
+
if (!siteId) {
|
|
27862
|
+
throw new Error("listPublicTeamMembers requires siteId param");
|
|
27863
|
+
}
|
|
27864
|
+
return await client.listPublicTeamMembers({
|
|
27865
|
+
siteId,
|
|
27866
|
+
stage: typeof stage === "string" ? stage : void 0
|
|
27867
|
+
});
|
|
27868
|
+
}
|
|
27559
27869
|
case "listPublicProducts": {
|
|
27560
27870
|
const { siteId, stage, categorySelector } = resolvedParams ?? {};
|
|
27561
27871
|
if (!siteId) {
|