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