@prenta/core 8.9.2 → 8.11.0
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/CHANGELOG.md +105 -0
- package/dist/actions.d.ts +25 -0
- package/dist/actions.d.ts.map +1 -1
- package/dist/actions.js +51 -4
- package/dist/actions.js.map +1 -1
- package/dist/ai/batch-links.d.ts +105 -0
- package/dist/ai/batch-links.d.ts.map +1 -0
- package/dist/ai/batch-links.js +667 -0
- package/dist/ai/batch-links.js.map +1 -0
- package/dist/ai/batch-list.d.ts +127 -4
- package/dist/ai/batch-list.d.ts.map +1 -1
- package/dist/ai/batch-list.js +250 -14
- package/dist/ai/batch-list.js.map +1 -1
- package/dist/ai/providers/http.d.ts +4 -0
- package/dist/ai/providers/http.d.ts.map +1 -1
- package/dist/ai/providers/http.js +9 -8
- package/dist/ai/providers/http.js.map +1 -1
- package/dist/ai/tasks/editor-text.d.ts +39 -0
- package/dist/ai/tasks/editor-text.d.ts.map +1 -0
- package/dist/ai/tasks/editor-text.js +45 -0
- package/dist/ai/tasks/editor-text.js.map +1 -0
- package/dist/ai/tasks/link-embeddings.d.ts +22 -0
- package/dist/ai/tasks/link-embeddings.d.ts.map +1 -1
- package/dist/ai/tasks/link-embeddings.js +24 -10
- package/dist/ai/tasks/link-embeddings.js.map +1 -1
- package/dist/ai/usage.d.ts +7 -0
- package/dist/ai/usage.d.ts.map +1 -1
- package/dist/ai/usage.js +11 -0
- package/dist/ai/usage.js.map +1 -1
- package/dist/api/guarded-db.d.ts +6 -0
- package/dist/api/guarded-db.d.ts.map +1 -1
- package/dist/api/guarded-db.js +13 -1
- package/dist/api/guarded-db.js.map +1 -1
- package/dist/api/handlers.d.ts.map +1 -1
- package/dist/api/handlers.js +2 -0
- package/dist/api/handlers.js.map +1 -1
- package/dist/api/openapi.d.ts.map +1 -1
- package/dist/api/openapi.js +103 -0
- package/dist/api/openapi.js.map +1 -1
- package/dist/api/route-helpers/forms.d.ts.map +1 -1
- package/dist/api/route-helpers/forms.js +7 -1
- package/dist/api/route-helpers/forms.js.map +1 -1
- package/dist/api/routes/ai-authoring.d.ts.map +1 -1
- package/dist/api/routes/ai-authoring.js +1 -0
- package/dist/api/routes/ai-authoring.js.map +1 -1
- package/dist/api/routes/ai-seo.d.ts.map +1 -1
- package/dist/api/routes/ai-seo.js +20 -18
- package/dist/api/routes/ai-seo.js.map +1 -1
- package/dist/api/routes/media.d.ts.map +1 -1
- package/dist/api/routes/media.js +3 -1
- package/dist/api/routes/media.js.map +1 -1
- package/dist/api/routes/scheduling.d.ts.map +1 -1
- package/dist/api/routes/scheduling.js +33 -2
- package/dist/api/routes/scheduling.js.map +1 -1
- package/dist/appearance/color.d.ts +17 -0
- package/dist/appearance/color.d.ts.map +1 -1
- package/dist/appearance/color.js +162 -1
- package/dist/appearance/color.js.map +1 -1
- package/dist/appearance/index.d.ts +3 -3
- package/dist/appearance/index.d.ts.map +1 -1
- package/dist/appearance/index.js +2 -2
- package/dist/appearance/index.js.map +1 -1
- package/dist/appearance/resolve.d.ts.map +1 -1
- package/dist/appearance/resolve.js +4 -2
- package/dist/appearance/resolve.js.map +1 -1
- package/dist/appearance/theme-tokens.d.ts +60 -11
- package/dist/appearance/theme-tokens.d.ts.map +1 -1
- package/dist/appearance/theme-tokens.js +184 -175
- package/dist/appearance/theme-tokens.js.map +1 -1
- package/dist/appearance/types.d.ts +16 -2
- package/dist/appearance/types.d.ts.map +1 -1
- package/dist/astro-site.d.ts +1 -11
- package/dist/astro-site.d.ts.map +1 -1
- package/dist/astro-site.js +4 -0
- package/dist/astro-site.js.map +1 -1
- package/dist/auth/team.d.ts +1 -0
- package/dist/auth/team.d.ts.map +1 -1
- package/dist/auth/team.js +1 -1
- package/dist/auth/team.js.map +1 -1
- package/dist/cache/http.d.ts +20 -0
- package/dist/cache/http.d.ts.map +1 -1
- package/dist/cache/http.js +42 -0
- package/dist/cache/http.js.map +1 -1
- package/dist/chrome/announcement.d.ts +30 -0
- package/dist/chrome/announcement.d.ts.map +1 -0
- package/dist/chrome/announcement.js +190 -0
- package/dist/chrome/announcement.js.map +1 -0
- package/dist/chrome/codegen.d.ts +17 -0
- package/dist/chrome/codegen.d.ts.map +1 -0
- package/dist/chrome/codegen.js +96 -0
- package/dist/chrome/codegen.js.map +1 -0
- package/dist/chrome/contract.d.ts +161 -0
- package/dist/chrome/contract.d.ts.map +1 -0
- package/dist/chrome/contract.js +2 -0
- package/dist/chrome/contract.js.map +1 -0
- package/dist/chrome/memory-store.d.ts +15 -0
- package/dist/chrome/memory-store.d.ts.map +1 -0
- package/dist/chrome/memory-store.js +54 -0
- package/dist/chrome/memory-store.js.map +1 -0
- package/dist/chrome/overrides.d.ts +25 -0
- package/dist/chrome/overrides.d.ts.map +1 -0
- package/dist/chrome/overrides.js +180 -0
- package/dist/chrome/overrides.js.map +1 -0
- package/dist/chrome/parse.d.ts +36 -0
- package/dist/chrome/parse.d.ts.map +1 -0
- package/dist/chrome/parse.js +277 -0
- package/dist/chrome/parse.js.map +1 -0
- package/dist/chrome/prisma-store.d.ts +11 -0
- package/dist/chrome/prisma-store.d.ts.map +1 -0
- package/dist/chrome/prisma-store.js +48 -0
- package/dist/chrome/prisma-store.js.map +1 -0
- package/dist/chrome/public.d.ts +22 -0
- package/dist/chrome/public.d.ts.map +1 -0
- package/dist/chrome/public.js +181 -0
- package/dist/chrome/public.js.map +1 -0
- package/dist/chrome/resolve.d.ts +36 -0
- package/dist/chrome/resolve.d.ts.map +1 -0
- package/dist/chrome/resolve.js +165 -0
- package/dist/chrome/resolve.js.map +1 -0
- package/dist/chrome/revalidate.d.ts +9 -0
- package/dist/chrome/revalidate.d.ts.map +1 -0
- package/dist/chrome/revalidate.js +51 -0
- package/dist/chrome/revalidate.js.map +1 -0
- package/dist/chrome/routes.d.ts +14 -0
- package/dist/chrome/routes.d.ts.map +1 -0
- package/dist/chrome/routes.js +349 -0
- package/dist/chrome/routes.js.map +1 -0
- package/dist/chrome/schema.d.ts +231 -0
- package/dist/chrome/schema.d.ts.map +1 -0
- package/dist/chrome/schema.js +73 -0
- package/dist/chrome/schema.js.map +1 -0
- package/dist/chrome/service.d.ts +76 -0
- package/dist/chrome/service.d.ts.map +1 -0
- package/dist/chrome/service.js +286 -0
- package/dist/chrome/service.js.map +1 -0
- package/dist/chrome/settings.d.ts +14 -0
- package/dist/chrome/settings.d.ts.map +1 -0
- package/dist/chrome/settings.js +142 -0
- package/dist/chrome/settings.js.map +1 -0
- package/dist/chrome/store.d.ts +48 -0
- package/dist/chrome/store.d.ts.map +1 -0
- package/dist/chrome/store.js +26 -0
- package/dist/chrome/store.js.map +1 -0
- package/dist/chrome/values.d.ts +98 -0
- package/dist/chrome/values.d.ts.map +1 -0
- package/dist/chrome/values.js +491 -0
- package/dist/chrome/values.js.map +1 -0
- package/dist/config/define.d.ts +2 -0
- package/dist/config/define.d.ts.map +1 -1
- package/dist/config/define.js +2 -0
- package/dist/config/define.js.map +1 -1
- package/dist/db/model-types.d.ts +62 -0
- package/dist/db/model-types.d.ts.map +1 -1
- package/dist/forms/attribution-settings.d.ts +23 -0
- package/dist/forms/attribution-settings.d.ts.map +1 -0
- package/dist/forms/attribution-settings.js +42 -0
- package/dist/forms/attribution-settings.js.map +1 -0
- package/dist/forms/attribution.d.ts +5 -1
- package/dist/forms/attribution.d.ts.map +1 -1
- package/dist/forms/attribution.js +6 -4
- package/dist/forms/attribution.js.map +1 -1
- package/dist/forms/client-validation.d.ts.map +1 -1
- package/dist/forms/client-validation.js +3 -0
- package/dist/forms/client-validation.js.map +1 -1
- package/dist/forms/form-model.d.ts +109 -0
- package/dist/forms/form-model.d.ts.map +1 -0
- package/dist/forms/form-model.js +192 -0
- package/dist/forms/form-model.js.map +1 -0
- package/dist/forms/index.d.ts +2 -2
- package/dist/forms/index.d.ts.map +1 -1
- package/dist/forms/index.js +1 -1
- package/dist/forms/index.js.map +1 -1
- package/dist/forms/service.d.ts +19 -1
- package/dist/forms/service.d.ts.map +1 -1
- package/dist/forms/service.js +152 -0
- package/dist/forms/service.js.map +1 -1
- package/dist/forms/spam.d.ts +0 -12
- package/dist/forms/spam.d.ts.map +1 -1
- package/dist/forms/spam.js +30 -0
- package/dist/forms/spam.js.map +1 -1
- package/dist/forms/submission.d.ts +7 -0
- package/dist/forms/submission.d.ts.map +1 -1
- package/dist/forms/submission.js +33 -0
- package/dist/forms/submission.js.map +1 -1
- package/dist/forms/types.d.ts +26 -1
- package/dist/forms/types.d.ts.map +1 -1
- package/dist/forms/types.js +9 -1
- package/dist/forms/types.js.map +1 -1
- package/dist/generated/browser.d.ts +35 -3
- package/dist/generated/client.d.ts +35 -3
- package/dist/generated/internal/class.d.ts +44 -0
- package/dist/generated/internal/class.js +4 -4
- package/dist/generated/internal/prismaNamespace.d.ts +403 -1
- package/dist/generated/internal/prismaNamespace.js +95 -1
- package/dist/generated/internal/prismaNamespaceBrowser.d.ts +102 -0
- package/dist/generated/internal/prismaNamespaceBrowser.js +95 -1
- package/dist/generated/models/ChromeRegion.d.ts +1203 -0
- package/dist/generated/models/ChromeRegion.js +1 -0
- package/dist/generated/models/Job.d.ts +732 -5
- package/dist/generated/models/JobEvent.d.ts +1339 -0
- package/dist/generated/models/JobEvent.js +1 -0
- package/dist/generated/models/JobReviewItem.d.ts +1470 -0
- package/dist/generated/models/JobReviewItem.js +1 -0
- package/dist/generated/models/SystemSetting.d.ts +952 -0
- package/dist/generated/models/SystemSetting.js +1 -0
- package/dist/generated/models.d.ts +4 -0
- package/dist/index.d.ts +12 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -3
- package/dist/index.js.map +1 -1
- package/dist/jobs/batch-ai.d.ts +53 -0
- package/dist/jobs/batch-ai.d.ts.map +1 -0
- package/dist/jobs/batch-ai.js +314 -0
- package/dist/jobs/batch-ai.js.map +1 -0
- package/dist/jobs/contract.d.ts +193 -0
- package/dist/jobs/contract.d.ts.map +1 -0
- package/dist/jobs/contract.js +2 -0
- package/dist/jobs/contract.js.map +1 -0
- package/dist/jobs/error-text.d.ts +23 -0
- package/dist/jobs/error-text.d.ts.map +1 -0
- package/dist/jobs/error-text.js +110 -0
- package/dist/jobs/error-text.js.map +1 -0
- package/dist/jobs/handlers.d.ts.map +1 -1
- package/dist/jobs/handlers.js +48 -7
- package/dist/jobs/handlers.js.map +1 -1
- package/dist/jobs/memory-store.d.ts +26 -2
- package/dist/jobs/memory-store.d.ts.map +1 -1
- package/dist/jobs/memory-store.js +157 -3
- package/dist/jobs/memory-store.js.map +1 -1
- package/dist/jobs/outcomes.d.ts +46 -0
- package/dist/jobs/outcomes.d.ts.map +1 -0
- package/dist/jobs/outcomes.js +251 -0
- package/dist/jobs/outcomes.js.map +1 -0
- package/dist/jobs/prisma-store.d.ts +14 -2
- package/dist/jobs/prisma-store.d.ts.map +1 -1
- package/dist/jobs/prisma-store.js +257 -15
- package/dist/jobs/prisma-store.js.map +1 -1
- package/dist/jobs/queue.d.ts +62 -2
- package/dist/jobs/queue.d.ts.map +1 -1
- package/dist/jobs/queue.js +412 -36
- package/dist/jobs/queue.js.map +1 -1
- package/dist/jobs/retention.d.ts +11 -0
- package/dist/jobs/retention.d.ts.map +1 -0
- package/dist/jobs/retention.js +18 -0
- package/dist/jobs/retention.js.map +1 -0
- package/dist/jobs/review.d.ts +111 -0
- package/dist/jobs/review.d.ts.map +1 -0
- package/dist/jobs/review.js +461 -0
- package/dist/jobs/review.js.map +1 -0
- package/dist/jobs/routes.d.ts.map +1 -1
- package/dist/jobs/routes.js +491 -16
- package/dist/jobs/routes.js.map +1 -1
- package/dist/jobs/serialize.d.ts +40 -0
- package/dist/jobs/serialize.d.ts.map +1 -0
- package/dist/jobs/serialize.js +275 -0
- package/dist/jobs/serialize.js.map +1 -0
- package/dist/jobs/types.d.ts +141 -2
- package/dist/jobs/types.d.ts.map +1 -1
- package/dist/jobs/worker-status.d.ts +27 -0
- package/dist/jobs/worker-status.d.ts.map +1 -0
- package/dist/jobs/worker-status.js +66 -0
- package/dist/jobs/worker-status.js.map +1 -0
- package/dist/media/optimize.d.ts.map +1 -1
- package/dist/media/optimize.js +4 -2
- package/dist/media/optimize.js.map +1 -1
- package/dist/next-site.d.ts +1 -0
- package/dist/next-site.d.ts.map +1 -1
- package/dist/next-site.js +3 -0
- package/dist/next-site.js.map +1 -1
- package/dist/seo/audit-runner.d.ts.map +1 -1
- package/dist/seo/audit-runner.js +23 -2
- package/dist/seo/audit-runner.js.map +1 -1
- package/dist/seo/issue-fix-link-insert.d.ts +11 -0
- package/dist/seo/issue-fix-link-insert.d.ts.map +1 -1
- package/dist/seo/issue-fix-link-insert.js +122 -8
- package/dist/seo/issue-fix-link-insert.js.map +1 -1
- package/dist/server-site.d.ts.map +1 -1
- package/dist/server-site.js +15 -0
- package/dist/server-site.js.map +1 -1
- package/dist/site.d.ts +8 -0
- package/dist/site.d.ts.map +1 -1
- package/dist/site.js +6 -0
- package/dist/site.js.map +1 -1
- package/dist/webhooks/index.d.ts +3 -1
- package/dist/webhooks/index.d.ts.map +1 -1
- package/dist/webhooks/index.js.map +1 -1
- package/package.json +6 -1
- package/prisma/migrations/0025_job_cancel_review/down.sql +60 -0
- package/prisma/migrations/0025_job_cancel_review/migration.sql +56 -0
- package/prisma/migrations/0026_job_creator_system_settings/down.sql +30 -0
- package/prisma/migrations/0026_job_creator_system_settings/migration.sql +14 -0
- package/prisma/migrations/0027_chrome_regions/down.sql +24 -0
- package/prisma/migrations/0027_chrome_regions/migration.sql +16 -0
- package/prisma/schema.prisma +105 -15
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/appearance/resolve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAW7E,MAAM,CAAC,MAAM,0BAA0B,GAAG,UAAU,CAAA;AAEpD,MAAM,CAAC,MAAM,kBAAkB,GAAuB;IACpD,qBAAqB,EAAE,QAAQ;IAC/B,gBAAgB,EAAE,QAAQ;IAC1B,cAAc,EAAE,SAAS;IACzB,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/appearance/resolve.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,40 +10,89 @@ export interface AccentTokens {
|
|
|
10
10
|
accentLight: string;
|
|
11
11
|
/** Focus ring mid tone (`--acc-m`). */
|
|
12
12
|
accentMid: string;
|
|
13
|
+
/** The picked color as `#rrggbb` (`--acc-base`). */
|
|
14
|
+
accentBase: string;
|
|
15
|
+
/** The pick tuned for Porcelain and Linen (`--acc-lt`). */
|
|
16
|
+
accentLt: string;
|
|
17
|
+
/** The pick tuned for Graphite (`--acc-dk`). */
|
|
18
|
+
accentDk: string;
|
|
13
19
|
}
|
|
14
20
|
export interface AccentPreset {
|
|
15
21
|
name: AccentColorName;
|
|
16
22
|
label: string;
|
|
17
|
-
/** Swatch color for the picker (the
|
|
23
|
+
/** Swatch color for the picker (the untuned pick). */
|
|
18
24
|
swatch: string;
|
|
19
25
|
light: AccentTokens;
|
|
20
26
|
dark: AccentTokens;
|
|
21
27
|
}
|
|
22
|
-
/**
|
|
28
|
+
/**
|
|
29
|
+
* Contrast the tuned accent must reach. The kit tunes to 4.6:1 rather than
|
|
30
|
+
* 4.5 so the tints derived from it keep AA after rounding.
|
|
31
|
+
*/
|
|
32
|
+
export declare const ACCENT_TUNED_CONTRAST = 4.6;
|
|
33
|
+
export interface TunedAccent {
|
|
34
|
+
/** The pick as `#rrggbb`. */
|
|
35
|
+
base: string;
|
|
36
|
+
/** Mixed toward black until it clears 4.6:1 on light surfaces. */
|
|
37
|
+
lt: string;
|
|
38
|
+
/** Mixed toward white until it clears 4.6:1 on Graphite. */
|
|
39
|
+
dk: string;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Tune any parseable color for both bases. Null when it can't be parsed.
|
|
43
|
+
*
|
|
44
|
+
* One deliberate difference from the kit: each variant must also clear the
|
|
45
|
+
* accent's own tint, which is where the admin shows accent text on accent
|
|
46
|
+
* (the active nav item, selected rows). With the kit's single probe, warm and
|
|
47
|
+
* light picks fall short there: Actuate coral reads 4.49:1 on its Graphite
|
|
48
|
+
* tint, and a custom #0ea5e9 4.47:1 on its light tint.
|
|
49
|
+
*/
|
|
50
|
+
export declare function tuneAccent(color: string): TunedAccent | null;
|
|
51
|
+
/**
|
|
52
|
+
* October 2026 accent presets, tuned by {@link tuneAccent} like any custom
|
|
53
|
+
* pick. Legacy names (`purple`, `blue`, `pink`, `orange`) alias the new
|
|
54
|
+
* presets so stored settings keep resolving.
|
|
55
|
+
*/
|
|
23
56
|
export declare const ACCENT_PRESETS: Record<AccentColorName, AccentPreset>;
|
|
57
|
+
/** Presets shown in the Admin appearance picker. Legacy aliases are omitted. */
|
|
24
58
|
export declare const ACCENT_PRESET_LIST: AccentPreset[];
|
|
25
|
-
/**
|
|
59
|
+
/**
|
|
60
|
+
* @deprecated Custom accents are no longer rejected for contrast; they are
|
|
61
|
+
* tuned with {@link tuneAccent}. Kept so existing imports still compile.
|
|
62
|
+
*/
|
|
26
63
|
export declare const MIN_ACCENT_CONTRAST = 3;
|
|
27
64
|
export declare function isAccentPreset(value: string): value is AccentColorName;
|
|
28
65
|
export interface AccentValidation {
|
|
29
66
|
valid: boolean;
|
|
30
|
-
/**
|
|
67
|
+
/** Contrast of the tuned light-base fill against white (its button text). */
|
|
31
68
|
contrast: number;
|
|
32
69
|
reason?: string;
|
|
33
70
|
}
|
|
34
71
|
/**
|
|
35
|
-
* Validate an accent value. Presets
|
|
36
|
-
*
|
|
37
|
-
*
|
|
72
|
+
* Validate an accent value. Presets and any parseable `#hex` / `oklch()`
|
|
73
|
+
* color are valid: a low-contrast pick is tuned, not rejected. Only an
|
|
74
|
+
* unparseable string fails.
|
|
38
75
|
*/
|
|
39
76
|
export declare function validateAccentColor(value: string): AccentValidation;
|
|
40
77
|
/**
|
|
41
78
|
* Resolve the accent tokens for a settings value + resolved color mode.
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
* foreground/ring envelope). Unknown names fall back to purple.
|
|
79
|
+
* Unknown names fall back to cobalt. Legacy names are real presets that
|
|
80
|
+
* alias the October 2026 colors.
|
|
45
81
|
*/
|
|
46
82
|
export declare function generateAdminThemeTokens(settings: Pick<AppearanceSettings, 'adminAccentColor'>, resolvedMode: 'light' | 'dark'): AccentTokens;
|
|
47
|
-
/**
|
|
83
|
+
/**
|
|
84
|
+
* The inline custom properties the admin root carries: the pick and its two
|
|
85
|
+
* tuned variants. `--acc`, its tint and mid tone, and every shadcn alias
|
|
86
|
+
* (`--primary`, `--ring`, …) are derived from them in the token CSS, per
|
|
87
|
+
* base, so the same three values serve Porcelain, Linen and Graphite.
|
|
88
|
+
*/
|
|
89
|
+
export declare function accentPickCssVars(tokens: AccentTokens): Record<string, string>;
|
|
90
|
+
/**
|
|
91
|
+
* The pre-2026-10 shape: resolved per-mode values for `--acc`, its tint, and
|
|
92
|
+
* the shadcn aliases. Still correct for one mode, but it must be re-applied
|
|
93
|
+
* when the mode changes and it overrides the token CSS.
|
|
94
|
+
*
|
|
95
|
+
* @deprecated Use {@link accentPickCssVars}; the admin no longer writes these.
|
|
96
|
+
*/
|
|
48
97
|
export declare function accentTokensToCssVars(tokens: AccentTokens): Record<string, string>;
|
|
49
98
|
//# sourceMappingURL=theme-tokens.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme-tokens.d.ts","sourceRoot":"","sources":["../../src/appearance/theme-tokens.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"theme-tokens.d.ts","sourceRoot":"","sources":["../../src/appearance/theme-tokens.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAErE,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,eAAe,EAAE,MAAM,CAAA;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,iBAAiB,EAAE,MAAM,CAAA;IACzB,cAAc,EAAE,MAAM,CAAA;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,yDAAyD;IACzD,WAAW,EAAE,MAAM,CAAA;IACnB,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAA;IACjB,oDAAoD;IACpD,UAAU,EAAE,MAAM,CAAA;IAClB,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,CAAA;IAChB,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,eAAe,CAAA;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,sDAAsD;IACtD,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,YAAY,CAAA;IACnB,IAAI,EAAE,YAAY,CAAA;CACnB;AAUD;;;GAGG;AACH,eAAO,MAAM,qBAAqB,MAAM,CAAA;AA2DxC,MAAM,WAAW,WAAW;IAC1B,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,kEAAkE;IAClE,EAAE,EAAE,MAAM,CAAA;IACV,4DAA4D;IAC5D,EAAE,EAAE,MAAM,CAAA;CACX;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAY5D;AAgDD;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,eAAe,EAAE,YAAY,CAUhE,CAAA;AAED,gFAAgF;AAChF,eAAO,MAAM,kBAAkB,EAAE,YAAY,EAAuC,CAAA;AAEpF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,IAAI,CAAA;AAEpC,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,eAAe,CAEtE;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAA;IACd,6EAA6E;IAC7E,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,CASnE;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,IAAI,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,EACtD,YAAY,EAAE,OAAO,GAAG,MAAM,GAC7B,YAAY,CAQd;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAM9E;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAmBlF"}
|
|
@@ -3,209 +3,218 @@
|
|
|
3
3
|
*
|
|
4
4
|
* The accent color is the one user-facing knob that recolors the admin's
|
|
5
5
|
* primary affordances (active nav, primary buttons, active tabs, focus rings,
|
|
6
|
-
* selected pills). Preset
|
|
7
|
-
* tokens.json` (`accentOptions`
|
|
6
|
+
* selected pills). Preset swatches align with `packages/cms-admin/
|
|
7
|
+
* design-system/tokens.json` (`accentOptions`).
|
|
8
8
|
*
|
|
9
|
-
*
|
|
10
|
-
* `
|
|
11
|
-
*
|
|
9
|
+
* Any parseable color is accepted. Like the October 2026 kit's theme runtime
|
|
10
|
+
* (`docs/design/prenta/prototype/design-system/theme.js`), the pick is nudged
|
|
11
|
+
* until it is legible instead of being rejected: {@link tuneAccent} mixes it
|
|
12
|
+
* toward black for light bases and toward white for Graphite until each
|
|
13
|
+
* clears {@link ACCENT_TUNED_CONTRAST}. The client writes the pick and both
|
|
14
|
+
* tuned variants as `--acc-base`, `--acc-lt` and `--acc-dk` on `.prenta-admin`;
|
|
15
|
+
* the token CSS derives the rest, so an accent change repaints without a
|
|
16
|
+
* reload.
|
|
12
17
|
*/
|
|
13
|
-
import { contrastRatio,
|
|
18
|
+
import { contrastRatio, mixOklch, toHex } from './color.js';
|
|
14
19
|
const WHITE = '#ffffff';
|
|
15
|
-
const
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
20
|
+
const BLACK = '#000000';
|
|
21
|
+
const NEAR_BLACK = '#0e0f11';
|
|
22
|
+
/** Card surface on Porcelain and Linen. */
|
|
23
|
+
const LIGHT_CARD = '#ffffff';
|
|
24
|
+
/** Card surface on Graphite. */
|
|
25
|
+
const DARK_CARD = '#1b1d21';
|
|
26
|
+
/**
|
|
27
|
+
* Contrast the tuned accent must reach. The kit tunes to 4.6:1 rather than
|
|
28
|
+
* 4.5 so the tints derived from it keep AA after rounding.
|
|
29
|
+
*/
|
|
30
|
+
export const ACCENT_TUNED_CONTRAST = 4.6;
|
|
31
|
+
/** What `--acc-lt` is measured against: a light surface a touch darker than the bg. */
|
|
32
|
+
const LIGHT_PROBE = '#eef1f6';
|
|
33
|
+
/** What `--acc-dk` is measured against: the Graphite border, lighter than any surface. */
|
|
34
|
+
const DARK_PROBE = '#2a2d33';
|
|
35
|
+
/** Share of the pick in its Graphite tint (`--acc-l` in the dark token block). */
|
|
36
|
+
const DARK_TINT_WEIGHT = 20;
|
|
37
|
+
/** Share of the tuned accent in its light tint (`--acc-l` in the light token block). */
|
|
38
|
+
const LIGHT_TINT_WEIGHT = 11;
|
|
39
|
+
/** Mix steps from the pick to black or white. */
|
|
40
|
+
const TUNE_STEPS = 40;
|
|
41
|
+
function channels(hex) {
|
|
42
|
+
return [1, 3, 5].map((i) => parseInt(hex.slice(i, i + 2), 16));
|
|
43
|
+
}
|
|
44
|
+
function toHexChannels(c) {
|
|
45
|
+
return '#' + c.map((v) => Math.round(v).toString(16).padStart(2, '0')).join('');
|
|
46
|
+
}
|
|
47
|
+
/** WCAG luminance of unrounded 0..255 channels, as the kit computes it. */
|
|
48
|
+
function luminance(c) {
|
|
49
|
+
const [r, g, b] = c.map((v) => {
|
|
50
|
+
const s = v / 255;
|
|
51
|
+
return s <= 0.04045 ? s / 12.92 : Math.pow((s + 0.055) / 1.055, 2.4);
|
|
52
|
+
});
|
|
53
|
+
return 0.2126 * r + 0.7152 * g + 0.0722 * b;
|
|
54
|
+
}
|
|
55
|
+
function ratio(a, b) {
|
|
56
|
+
const x = luminance(a);
|
|
57
|
+
const y = luminance(b);
|
|
58
|
+
return (Math.max(x, y) + 0.05) / (Math.min(x, y) + 0.05);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* The kit's `fit()`: mix `base` toward `toward` in sRGB, one 1/40 step at a
|
|
62
|
+
* time, and return the first step that clears `min` against every background
|
|
63
|
+
* `against` returns for it. Falls back to `toward` itself when no step does.
|
|
64
|
+
* The kit passes one fixed background; a step's own tint is a background too.
|
|
65
|
+
*/
|
|
66
|
+
function fit(base, toward, min, against) {
|
|
67
|
+
const c = channels(base);
|
|
68
|
+
const t = channels(toward);
|
|
69
|
+
for (let i = 0; i <= TUNE_STEPS; i++) {
|
|
70
|
+
const k = i / TUNE_STEPS;
|
|
71
|
+
const mixed = c.map((v, j) => v + (t[j] - v) * k);
|
|
72
|
+
if (against(toHexChannels(mixed)).every((bg) => ratio(mixed, channels(bg)) >= min)) {
|
|
73
|
+
return toHexChannels(mixed);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return toward;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Tune any parseable color for both bases. Null when it can't be parsed.
|
|
80
|
+
*
|
|
81
|
+
* One deliberate difference from the kit: each variant must also clear the
|
|
82
|
+
* accent's own tint, which is where the admin shows accent text on accent
|
|
83
|
+
* (the active nav item, selected rows). With the kit's single probe, warm and
|
|
84
|
+
* light picks fall short there: Actuate coral reads 4.49:1 on its Graphite
|
|
85
|
+
* tint, and a custom #0ea5e9 4.47:1 on its light tint.
|
|
86
|
+
*/
|
|
87
|
+
export function tuneAccent(color) {
|
|
88
|
+
const base = toHex(color);
|
|
89
|
+
if (!base)
|
|
90
|
+
return null;
|
|
91
|
+
// The light tint mixes the tuned value itself, so it moves with each step.
|
|
92
|
+
const lightTint = (step) => mixOklch(step, LIGHT_CARD, LIGHT_TINT_WEIGHT);
|
|
93
|
+
// The Graphite tint mixes the raw pick, so it is fixed.
|
|
94
|
+
const darkTint = mixOklch(base, DARK_CARD, DARK_TINT_WEIGHT);
|
|
95
|
+
return {
|
|
96
|
+
base,
|
|
97
|
+
lt: fit(base, BLACK, ACCENT_TUNED_CONTRAST, (step) => [LIGHT_PROBE, lightTint(step)]),
|
|
98
|
+
dk: fit(base, WHITE, ACCENT_TUNED_CONTRAST, () => [DARK_PROBE, darkTint]),
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Concrete values for one base. The tint and mid tone mirror the token CSS:
|
|
103
|
+
* light mixes the tuned accent into the card (11% / 38%), Graphite mixes the
|
|
104
|
+
* raw pick (20% / 50%).
|
|
105
|
+
*/
|
|
106
|
+
function accentTokens(tuned, mode) {
|
|
107
|
+
const fill = mode === 'dark' ? tuned.dk : tuned.lt;
|
|
108
|
+
const foreground = mode === 'dark' ? NEAR_BLACK : WHITE;
|
|
109
|
+
const accentLight = mode === 'dark'
|
|
110
|
+
? mixOklch(tuned.base, DARK_CARD, DARK_TINT_WEIGHT)
|
|
111
|
+
: mixOklch(tuned.lt, LIGHT_CARD, LIGHT_TINT_WEIGHT);
|
|
112
|
+
const accentMid = mode === 'dark' ? mixOklch(tuned.base, DARK_CARD, 50) : mixOklch(tuned.lt, LIGHT_CARD, 38);
|
|
19
113
|
return {
|
|
20
|
-
|
|
21
|
-
|
|
114
|
+
brand: fill,
|
|
115
|
+
brandForeground: foreground,
|
|
116
|
+
primary: fill,
|
|
117
|
+
primaryForeground: foreground,
|
|
118
|
+
sidebarPrimary: fill,
|
|
119
|
+
ring: accentMid,
|
|
120
|
+
accentLight,
|
|
121
|
+
accentMid,
|
|
122
|
+
accentBase: tuned.base,
|
|
123
|
+
accentLt: tuned.lt,
|
|
124
|
+
accentDk: tuned.dk,
|
|
22
125
|
};
|
|
23
126
|
}
|
|
24
|
-
|
|
127
|
+
function preset(name, label, swatch) {
|
|
128
|
+
const tuned = tuneAccent(swatch);
|
|
129
|
+
return {
|
|
130
|
+
name,
|
|
131
|
+
label,
|
|
132
|
+
swatch,
|
|
133
|
+
light: accentTokens(tuned, 'light'),
|
|
134
|
+
dark: accentTokens(tuned, 'dark'),
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
const cobalt = preset('cobalt', 'Cobalt', '#2F5BEA');
|
|
138
|
+
const teal = preset('teal', 'Teal', '#0F8A7E');
|
|
139
|
+
const coral = preset('coral', 'Actuate coral', '#E8645A');
|
|
140
|
+
const rust = preset('rust', 'Rust', '#C2410C');
|
|
141
|
+
const slate = preset('slate', 'Slate', '#3F4A5A');
|
|
142
|
+
/**
|
|
143
|
+
* October 2026 accent presets, tuned by {@link tuneAccent} like any custom
|
|
144
|
+
* pick. Legacy names (`purple`, `blue`, `pink`, `orange`) alias the new
|
|
145
|
+
* presets so stored settings keep resolving.
|
|
146
|
+
*/
|
|
25
147
|
export const ACCENT_PRESETS = {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
sidebarPrimary: '#7C3AED',
|
|
36
|
-
ring: '#C4B5FD',
|
|
37
|
-
accentLight: '#EDE9FE',
|
|
38
|
-
accentMid: '#C4B5FD',
|
|
39
|
-
},
|
|
40
|
-
dark: {
|
|
41
|
-
brand: '#9D71F0',
|
|
42
|
-
brandForeground: NEAR_BLACK,
|
|
43
|
-
primary: '#9D71F0',
|
|
44
|
-
primaryForeground: NEAR_BLACK,
|
|
45
|
-
sidebarPrimary: '#9D71F0',
|
|
46
|
-
ring: '#5E3EAA',
|
|
47
|
-
accentLight: '#231950',
|
|
48
|
-
accentMid: '#5E3EAA',
|
|
49
|
-
},
|
|
50
|
-
},
|
|
51
|
-
blue: {
|
|
52
|
-
name: 'blue',
|
|
53
|
-
label: 'Blue',
|
|
54
|
-
swatch: '#2563EB',
|
|
55
|
-
light: {
|
|
56
|
-
brand: '#2563EB',
|
|
57
|
-
brandForeground: WHITE,
|
|
58
|
-
primary: '#2563EB',
|
|
59
|
-
primaryForeground: WHITE,
|
|
60
|
-
sidebarPrimary: '#2563EB',
|
|
61
|
-
ring: '#93C5FD',
|
|
62
|
-
accentLight: '#DBEAFE',
|
|
63
|
-
accentMid: '#93C5FD',
|
|
64
|
-
},
|
|
65
|
-
dark: {
|
|
66
|
-
brand: '#60A5FA',
|
|
67
|
-
brandForeground: NEAR_BLACK,
|
|
68
|
-
primary: '#60A5FA',
|
|
69
|
-
primaryForeground: NEAR_BLACK,
|
|
70
|
-
sidebarPrimary: '#60A5FA',
|
|
71
|
-
ring: '#1D4ED8',
|
|
72
|
-
accentLight: '#172554',
|
|
73
|
-
accentMid: '#1D4ED8',
|
|
74
|
-
},
|
|
75
|
-
},
|
|
76
|
-
teal: {
|
|
77
|
-
name: 'teal',
|
|
78
|
-
label: 'Teal',
|
|
79
|
-
swatch: '#0D9488',
|
|
80
|
-
light: {
|
|
81
|
-
brand: '#0D9488',
|
|
82
|
-
brandForeground: WHITE,
|
|
83
|
-
primary: '#0D9488',
|
|
84
|
-
primaryForeground: WHITE,
|
|
85
|
-
sidebarPrimary: '#0D9488',
|
|
86
|
-
ring: '#5EEAD4',
|
|
87
|
-
accentLight: '#CCFBF1',
|
|
88
|
-
accentMid: '#5EEAD4',
|
|
89
|
-
},
|
|
90
|
-
dark: {
|
|
91
|
-
brand: '#2DD4BF',
|
|
92
|
-
brandForeground: NEAR_BLACK,
|
|
93
|
-
primary: '#2DD4BF',
|
|
94
|
-
primaryForeground: NEAR_BLACK,
|
|
95
|
-
sidebarPrimary: '#2DD4BF',
|
|
96
|
-
ring: '#0F766E',
|
|
97
|
-
accentLight: '#042F2E',
|
|
98
|
-
accentMid: '#0F766E',
|
|
99
|
-
},
|
|
100
|
-
},
|
|
101
|
-
pink: {
|
|
102
|
-
name: 'pink',
|
|
103
|
-
label: 'Pink',
|
|
104
|
-
swatch: '#DB2777',
|
|
105
|
-
light: {
|
|
106
|
-
brand: '#DB2777',
|
|
107
|
-
brandForeground: WHITE,
|
|
108
|
-
primary: '#DB2777',
|
|
109
|
-
primaryForeground: WHITE,
|
|
110
|
-
sidebarPrimary: '#DB2777',
|
|
111
|
-
ring: '#F9A8D4',
|
|
112
|
-
accentLight: '#FCE7F3',
|
|
113
|
-
accentMid: '#F9A8D4',
|
|
114
|
-
},
|
|
115
|
-
dark: {
|
|
116
|
-
brand: '#F472B6',
|
|
117
|
-
brandForeground: NEAR_BLACK,
|
|
118
|
-
primary: '#F472B6',
|
|
119
|
-
primaryForeground: NEAR_BLACK,
|
|
120
|
-
sidebarPrimary: '#F472B6',
|
|
121
|
-
ring: '#9D174D',
|
|
122
|
-
accentLight: '#500724',
|
|
123
|
-
accentMid: '#9D174D',
|
|
124
|
-
},
|
|
125
|
-
},
|
|
126
|
-
orange: {
|
|
127
|
-
name: 'orange',
|
|
128
|
-
label: 'Orange',
|
|
129
|
-
swatch: '#EA580C',
|
|
130
|
-
light: {
|
|
131
|
-
brand: '#EA580C',
|
|
132
|
-
brandForeground: WHITE,
|
|
133
|
-
primary: '#EA580C',
|
|
134
|
-
primaryForeground: WHITE,
|
|
135
|
-
sidebarPrimary: '#EA580C',
|
|
136
|
-
ring: '#FDBA74',
|
|
137
|
-
accentLight: '#FFEDD5',
|
|
138
|
-
accentMid: '#FDBA74',
|
|
139
|
-
},
|
|
140
|
-
dark: {
|
|
141
|
-
brand: '#FB923C',
|
|
142
|
-
brandForeground: NEAR_BLACK,
|
|
143
|
-
primary: '#FB923C',
|
|
144
|
-
primaryForeground: NEAR_BLACK,
|
|
145
|
-
sidebarPrimary: '#FB923C',
|
|
146
|
-
ring: '#9A3412',
|
|
147
|
-
accentLight: '#431407',
|
|
148
|
-
accentMid: '#9A3412',
|
|
149
|
-
},
|
|
150
|
-
},
|
|
148
|
+
cobalt,
|
|
149
|
+
teal,
|
|
150
|
+
coral,
|
|
151
|
+
rust,
|
|
152
|
+
slate,
|
|
153
|
+
purple: { ...cobalt, name: 'purple' },
|
|
154
|
+
blue: { ...cobalt, name: 'blue' },
|
|
155
|
+
pink: { ...coral, name: 'pink' },
|
|
156
|
+
orange: { ...rust, name: 'orange' },
|
|
151
157
|
};
|
|
152
|
-
|
|
153
|
-
|
|
158
|
+
/** Presets shown in the Admin appearance picker. Legacy aliases are omitted. */
|
|
159
|
+
export const ACCENT_PRESET_LIST = [cobalt, teal, coral, rust, slate];
|
|
160
|
+
/**
|
|
161
|
+
* @deprecated Custom accents are no longer rejected for contrast; they are
|
|
162
|
+
* tuned with {@link tuneAccent}. Kept so existing imports still compile.
|
|
163
|
+
*/
|
|
154
164
|
export const MIN_ACCENT_CONTRAST = 3;
|
|
155
165
|
export function isAccentPreset(value) {
|
|
156
166
|
return Object.prototype.hasOwnProperty.call(ACCENT_PRESETS, value);
|
|
157
167
|
}
|
|
158
168
|
/**
|
|
159
|
-
* Validate an accent value. Presets
|
|
160
|
-
*
|
|
161
|
-
*
|
|
169
|
+
* Validate an accent value. Presets and any parseable `#hex` / `oklch()`
|
|
170
|
+
* color are valid: a low-contrast pick is tuned, not rejected. Only an
|
|
171
|
+
* unparseable string fails.
|
|
162
172
|
*/
|
|
163
173
|
export function validateAccentColor(value) {
|
|
164
174
|
if (isAccentPreset(value)) {
|
|
165
|
-
|
|
166
|
-
return { valid: true, contrast: c };
|
|
175
|
+
return { valid: true, contrast: contrastRatio(ACCENT_PRESETS[value].light.brand, WHITE) };
|
|
167
176
|
}
|
|
168
|
-
|
|
169
|
-
|
|
177
|
+
const tuned = tuneAccent(value);
|
|
178
|
+
if (!tuned) {
|
|
179
|
+
return { valid: false, contrast: 0, reason: 'Not a valid hex, rgb(), hsl() or oklch() color.' };
|
|
170
180
|
}
|
|
171
|
-
|
|
172
|
-
if (contrast < MIN_ACCENT_CONTRAST) {
|
|
173
|
-
return {
|
|
174
|
-
valid: false,
|
|
175
|
-
contrast,
|
|
176
|
-
reason: `Accent color contrast ${contrast.toFixed(2)}:1 is below the ${MIN_ACCENT_CONTRAST}:1 minimum for white text.`,
|
|
177
|
-
};
|
|
178
|
-
}
|
|
179
|
-
return { valid: true, contrast };
|
|
181
|
+
return { valid: true, contrast: contrastRatio(tuned.lt, WHITE) };
|
|
180
182
|
}
|
|
181
183
|
/**
|
|
182
184
|
* Resolve the accent tokens for a settings value + resolved color mode.
|
|
183
|
-
*
|
|
184
|
-
*
|
|
185
|
-
* foreground/ring envelope). Unknown names fall back to purple.
|
|
185
|
+
* Unknown names fall back to cobalt. Legacy names are real presets that
|
|
186
|
+
* alias the October 2026 colors.
|
|
186
187
|
*/
|
|
187
188
|
export function generateAdminThemeTokens(settings, resolvedMode) {
|
|
188
189
|
const accent = settings.adminAccentColor;
|
|
189
190
|
if (isAccentPreset(accent)) {
|
|
190
191
|
return ACCENT_PRESETS[accent][resolvedMode];
|
|
191
192
|
}
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
brand: accent,
|
|
197
|
-
brandForeground: foreground,
|
|
198
|
-
primary: accent,
|
|
199
|
-
primaryForeground: foreground,
|
|
200
|
-
sidebarPrimary: accent,
|
|
201
|
-
ring: tints.accentMid,
|
|
202
|
-
accentLight: tints.accentLight,
|
|
203
|
-
accentMid: tints.accentMid,
|
|
204
|
-
};
|
|
205
|
-
}
|
|
206
|
-
return ACCENT_PRESETS.purple[resolvedMode];
|
|
193
|
+
const tuned = tuneAccent(accent);
|
|
194
|
+
if (tuned)
|
|
195
|
+
return accentTokens(tuned, resolvedMode);
|
|
196
|
+
return ACCENT_PRESETS.cobalt[resolvedMode];
|
|
207
197
|
}
|
|
208
|
-
/**
|
|
198
|
+
/**
|
|
199
|
+
* The inline custom properties the admin root carries: the pick and its two
|
|
200
|
+
* tuned variants. `--acc`, its tint and mid tone, and every shadcn alias
|
|
201
|
+
* (`--primary`, `--ring`, …) are derived from them in the token CSS, per
|
|
202
|
+
* base, so the same three values serve Porcelain, Linen and Graphite.
|
|
203
|
+
*/
|
|
204
|
+
export function accentPickCssVars(tokens) {
|
|
205
|
+
return {
|
|
206
|
+
'--acc-base': tokens.accentBase,
|
|
207
|
+
'--acc-lt': tokens.accentLt,
|
|
208
|
+
'--acc-dk': tokens.accentDk,
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* The pre-2026-10 shape: resolved per-mode values for `--acc`, its tint, and
|
|
213
|
+
* the shadcn aliases. Still correct for one mode, but it must be re-applied
|
|
214
|
+
* when the mode changes and it overrides the token CSS.
|
|
215
|
+
*
|
|
216
|
+
* @deprecated Use {@link accentPickCssVars}; the admin no longer writes these.
|
|
217
|
+
*/
|
|
209
218
|
export function accentTokensToCssVars(tokens) {
|
|
210
219
|
return {
|
|
211
220
|
'--acc': tokens.brand,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme-tokens.js","sourceRoot":"","sources":["../../src/appearance/theme-tokens.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"theme-tokens.js","sourceRoot":"","sources":["../../src/appearance/theme-tokens.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,9 +14,15 @@ import type { PublicTheme } from './public-theme.js';
|
|
|
14
14
|
* settings.
|
|
15
15
|
*/
|
|
16
16
|
export type ColorMode = 'light' | 'dark' | 'system';
|
|
17
|
+
/** Which light base the admin paints when it is not in Graphite (dark). */
|
|
18
|
+
export type LightBase = 'porcelain' | 'linen';
|
|
17
19
|
export type SidebarDensity = 'default' | 'compact';
|
|
18
|
-
/**
|
|
19
|
-
|
|
20
|
+
/**
|
|
21
|
+
* Built-in accent presets. A custom value (hex/oklch string) is also allowed.
|
|
22
|
+
* `purple`, `blue`, `pink`, and `orange` are legacy names kept so stored
|
|
23
|
+
* settings still type-check; they resolve to the October 2026 presets.
|
|
24
|
+
*/
|
|
25
|
+
export type AccentColorName = 'cobalt' | 'teal' | 'coral' | 'rust' | 'slate' | 'purple' | 'blue' | 'pink' | 'orange';
|
|
20
26
|
/** Logo shape classification derived from aspect ratio. */
|
|
21
27
|
export type LogoShape = 'horizontal' | 'square' | 'vertical' | 'neutral' | 'unknown';
|
|
22
28
|
/** How the admin shell sources its brand assets. */
|
|
@@ -25,6 +31,14 @@ export type AdminBrandingMode = 'inheritPublicBrand' | 'customAdminBrand';
|
|
|
25
31
|
export type BrandAssetRole = 'publicPrimaryLogo' | 'publicLogoMark' | 'publicDarkLogo' | 'adminPrimaryLogo' | 'adminLogoMark' | 'adminDarkLogo' | 'faviconSource' | 'generatedFavicon';
|
|
26
32
|
export interface AppearanceSettings {
|
|
27
33
|
adminColorModeDefault: ColorMode;
|
|
34
|
+
/**
|
|
35
|
+
* Light base for the admin: Porcelain (cool, default) or Linen (warm). The
|
|
36
|
+
* kit's three bases map onto this plus the color mode: Graphite is
|
|
37
|
+
* `adminColorModeDefault: 'dark'`, and `'system'` follows the OS between
|
|
38
|
+
* this base and Graphite. Optional so settings written before it existed
|
|
39
|
+
* still type-check; `parseAppearance` fills in Porcelain.
|
|
40
|
+
*/
|
|
41
|
+
adminLightBase?: LightBase;
|
|
28
42
|
adminAccentColor: AccentColorName | string;
|
|
29
43
|
sidebarDensity: SidebarDensity;
|
|
30
44
|
contentFont: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/appearance/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAEpD;;;;;;;;;;;;;GAaG;AAEH,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAA;AACnD,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,SAAS,CAAA;AAElD
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/appearance/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAEpD;;;;;;;;;;;;;GAaG;AAEH,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAA;AACnD,2EAA2E;AAC3E,MAAM,MAAM,SAAS,GAAG,WAAW,GAAG,OAAO,CAAA;AAC7C,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,SAAS,CAAA;AAElD;;;;GAIG;AACH,MAAM,MAAM,eAAe,GACvB,QAAQ,GACR,MAAM,GACN,OAAO,GACP,MAAM,GACN,OAAO,GACP,QAAQ,GACR,MAAM,GACN,MAAM,GACN,QAAQ,CAAA;AAEZ,2DAA2D;AAC3D,MAAM,MAAM,SAAS,GAAG,YAAY,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAA;AAEpF,oDAAoD;AACpD,MAAM,MAAM,iBAAiB,GAAG,oBAAoB,GAAG,kBAAkB,CAAA;AAEzE,wEAAwE;AACxE,MAAM,MAAM,cAAc,GACtB,mBAAmB,GACnB,gBAAgB,GAChB,gBAAgB,GAChB,kBAAkB,GAClB,eAAe,GACf,eAAe,GACf,eAAe,GACf,kBAAkB,CAAA;AAEtB,MAAM,WAAW,kBAAkB;IACjC,qBAAqB,EAAE,SAAS,CAAA;IAChC;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,SAAS,CAAA;IAC1B,gBAAgB,EAAE,eAAe,GAAG,MAAM,CAAA;IAC1C,cAAc,EAAE,cAAc,CAAA;IAC9B,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,OAAO,CAAA;IACrB,sEAAsE;IACtE,WAAW,EAAE,WAAW,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,iBAAiB,CAAA;IACvB,wBAAwB,CAAC,EAAE,MAAM,CAAA;IACjC,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAA;IACnC,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,8EAA8E;AAC9E,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,cAAc,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,SAAS,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,+EAA+E;AAC/E,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,SAAS,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,8EAA8E;AAC9E,MAAM,WAAW,kBAAkB;IACjC,qDAAqD;IACrD,OAAO,EAAE,YAAY,GAAG,IAAI,CAAA;IAC5B,6CAA6C;IAC7C,IAAI,EAAE,YAAY,GAAG,IAAI,CAAA;IACzB,uCAAuC;IACvC,IAAI,EAAE,YAAY,GAAG,IAAI,CAAA;IACzB,2EAA2E;IAC3E,QAAQ,EAAE,MAAM,CAAA;IAChB,oEAAoE;IACpE,SAAS,EAAE,OAAO,CAAA;CACnB;AAED,4DAA4D;AAC5D,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,YAAY,GAAG,IAAI,CAAA;IAC5B,IAAI,EAAE,YAAY,GAAG,IAAI,CAAA;IACzB,IAAI,EAAE,YAAY,GAAG,IAAI,CAAA;IACzB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,8DAA8D;AAC9D,MAAM,WAAW,eAAe;IAC9B,uDAAuD;IACvD,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,mDAAmD;IACnD,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,iEAAiE;IACjE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,sEAAsE;IACtE,SAAS,EAAE,MAAM,EAAE,CAAA;CACpB;AAED,8DAA8D;AAC9D,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC1B"}
|