@adea-ai/ui 0.128.2 → 0.128.4
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/components/theme/appearance-panel.js +1 -1
- package/dist/components/theme/index.js +1 -1
- package/dist/components/theme/lazy.d.ts +15 -0
- package/dist/components/theme/lazy.d.ts.map +1 -0
- package/dist/components/theme/lazy.js +9 -0
- package/dist/components/theme/theme-catalogue-source.d.ts +15 -0
- package/dist/components/theme/theme-catalogue-source.d.ts.map +1 -0
- package/dist/components/theme/theme-catalogue-source.js +51 -0
- package/dist/components/theme/theme-catalogue-source.js.map +1 -0
- package/dist/components/theme/theme-document-core.d.ts +123 -0
- package/dist/components/theme/theme-document-core.d.ts.map +1 -0
- package/dist/components/theme/{theme-document.js → theme-document-core.js} +12 -12
- package/dist/components/theme/theme-document-core.js.map +1 -0
- package/dist/components/theme/theme-document.d.ts +8 -107
- package/dist/components/theme/theme-document.d.ts.map +1 -1
- package/dist/components/theme/theme-persistence.d.ts +1 -1
- package/dist/components/theme/theme-persistence.d.ts.map +1 -1
- package/dist/components/theme/theme-persistence.js +9 -6
- package/dist/components/theme/theme-persistence.js.map +1 -1
- package/dist/components/theme/theme-provider-core.d.ts +19 -0
- package/dist/components/theme/theme-provider-core.d.ts.map +1 -0
- package/dist/components/theme/theme-provider-core.js +28 -0
- package/dist/components/theme/theme-provider-core.js.map +1 -0
- package/dist/components/theme/theme-provider-lazy.d.ts +28 -0
- package/dist/components/theme/theme-provider-lazy.d.ts.map +1 -0
- package/dist/components/theme/theme-provider-lazy.js +36 -0
- package/dist/components/theme/theme-provider-lazy.js.map +1 -0
- package/dist/components/theme/theme-provider-value.d.ts +175 -0
- package/dist/components/theme/theme-provider-value.d.ts.map +1 -0
- package/dist/components/theme/theme-provider-value.js +200 -0
- package/dist/components/theme/theme-provider-value.js.map +1 -0
- package/dist/components/theme/theme-provider.d.ts +11 -136
- package/dist/components/theme/theme-provider.d.ts.map +1 -1
- package/dist/components/theme/theme-provider.js +27 -149
- package/dist/components/theme/theme-provider.js.map +1 -1
- package/dist/components/theme/theme-script.js +4 -3
- package/dist/components/theme/theme-script.js.map +1 -1
- package/dist/components/theme/theme-state-core.d.ts +248 -0
- package/dist/components/theme/theme-state-core.d.ts.map +1 -0
- package/dist/components/theme/{theme-state.js → theme-state-core.js} +8 -7
- package/dist/components/theme/theme-state-core.js.map +1 -0
- package/dist/components/theme/theme-state.d.ts +8 -214
- package/dist/components/theme/theme-state.d.ts.map +1 -1
- package/dist/components/theme/theme-toggle.js.map +1 -1
- package/dist/index.js +8 -4
- package/dist/lib/accent-presets.d.ts +35 -0
- package/dist/lib/accent-presets.d.ts.map +1 -0
- package/dist/lib/accent-presets.js +20 -0
- package/dist/lib/accent-presets.js.map +1 -0
- package/dist/lib/theme-catalogue.d.ts +3 -0
- package/dist/lib/theme-catalogue.d.ts.map +1 -0
- package/dist/lib/theme-catalogue.js +22 -0
- package/dist/lib/theme-catalogue.js.map +1 -0
- package/dist/lib/theme-css.d.ts +43 -0
- package/dist/lib/theme-css.d.ts.map +1 -0
- package/dist/lib/theme-css.js +167 -0
- package/dist/lib/theme-css.js.map +1 -0
- package/dist/lib/theme-defaults.d.ts +46 -0
- package/dist/lib/theme-defaults.d.ts.map +1 -0
- package/dist/lib/theme-defaults.generated.d.ts +13 -0
- package/dist/lib/theme-defaults.generated.d.ts.map +1 -0
- package/dist/lib/theme-defaults.generated.js +318 -0
- package/dist/lib/theme-defaults.generated.js.map +1 -0
- package/dist/lib/theme-defaults.js +47 -0
- package/dist/lib/theme-defaults.js.map +1 -0
- package/dist/lib/theme-engine-light.d.ts +3 -0
- package/dist/lib/theme-engine-light.d.ts.map +1 -0
- package/dist/lib/theme-engine-light.js +75 -0
- package/dist/lib/theme-engine-light.js.map +1 -0
- package/dist/lib/theme-engine.d.ts +69 -0
- package/dist/lib/theme-engine.d.ts.map +1 -0
- package/dist/lib/theme-engine.js +33 -0
- package/dist/lib/theme-engine.js.map +1 -0
- package/dist/lib/theme-records.d.ts +39 -0
- package/dist/lib/theme-records.d.ts.map +1 -0
- package/dist/lib/theme-records.js +178 -0
- package/dist/lib/theme-records.js.map +1 -0
- package/dist/lib/themes.d.ts +16 -60
- package/dist/lib/themes.d.ts.map +1 -1
- package/dist/lib/themes.js +23 -322
- package/dist/lib/themes.js.map +1 -1
- package/dist/lib/tokens.d.ts +1 -25
- package/dist/lib/tokens.d.ts.map +1 -1
- package/dist/lib/tokens.js +1 -24
- package/dist/lib/tokens.js.map +1 -1
- package/dist/r/lib.json +40 -0
- package/dist/r/registry.json +75 -0
- package/dist/r/src/components/theme/lazy.ts +35 -0
- package/dist/r/src/components/theme/theme-catalogue-source.ts +59 -0
- package/dist/r/src/components/theme/theme-document-core.ts +262 -0
- package/dist/r/src/components/theme/theme-document.ts +23 -240
- package/dist/r/src/components/theme/theme-persistence.ts +14 -6
- package/dist/r/src/components/theme/theme-provider-core.tsx +40 -0
- package/dist/r/src/components/theme/theme-provider-lazy.tsx +34 -0
- package/dist/r/src/components/theme/theme-provider-value.ts +445 -0
- package/dist/r/src/components/theme/theme-provider.tsx +23 -346
- package/dist/r/src/components/theme/theme-script.ts +3 -3
- package/dist/r/src/components/theme/theme-state-core.ts +364 -0
- package/dist/r/src/components/theme/theme-state.ts +10 -329
- package/dist/r/src/components/theme/theme-toggle.tsx +1 -1
- package/dist/r/src/lib/accent-presets.ts +54 -0
- package/dist/r/src/lib/theme-catalogue.ts +26 -0
- package/dist/r/src/lib/theme-css.ts +201 -0
- package/dist/r/src/lib/theme-defaults.generated.ts +319 -0
- package/dist/r/src/lib/theme-defaults.ts +79 -0
- package/dist/r/src/lib/theme-engine-light.ts +117 -0
- package/dist/r/src/lib/theme-engine.ts +111 -0
- package/dist/r/src/lib/theme-records.ts +205 -0
- package/dist/r/src/lib/themes.ts +30 -375
- package/dist/r/src/lib/tokens.ts +1 -35
- package/dist/r/theming.json +35 -0
- package/package.json +10 -2
- package/registry.json +75 -0
- package/src/components/theme/lazy.ts +35 -0
- package/src/components/theme/theme-catalogue-source.ts +59 -0
- package/src/components/theme/theme-document-core.ts +262 -0
- package/src/components/theme/theme-document.ts +23 -240
- package/src/components/theme/theme-persistence.ts +14 -6
- package/src/components/theme/theme-provider-core.tsx +40 -0
- package/src/components/theme/theme-provider-lazy.tsx +34 -0
- package/src/components/theme/theme-provider-value.ts +445 -0
- package/src/components/theme/theme-provider.tsx +23 -346
- package/src/components/theme/theme-script.ts +3 -3
- package/src/components/theme/theme-state-core.ts +364 -0
- package/src/components/theme/theme-state.ts +10 -329
- package/src/components/theme/theme-toggle.tsx +1 -1
- package/src/lib/accent-presets.ts +54 -0
- package/src/lib/theme-catalogue.ts +26 -0
- package/src/lib/theme-css.ts +201 -0
- package/src/lib/theme-defaults.generated.ts +319 -0
- package/src/lib/theme-defaults.ts +79 -0
- package/src/lib/theme-engine-light.ts +117 -0
- package/src/lib/theme-engine.ts +111 -0
- package/src/lib/theme-records.ts +205 -0
- package/src/lib/themes.ts +30 -375
- package/src/lib/tokens.ts +1 -35
- package/dist/components/theme/theme-document.js.map +0 -1
- package/dist/components/theme/theme-state.js.map +0 -1
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One catalogue record, as this system's {@link ThemeVariant}.
|
|
3
|
+
*
|
|
4
|
+
* `variantFromRecord` and the lazy form the catalogue is built with live here, and not
|
|
5
|
+
* beside the 34-theme table in `lib/themes.ts`, because a bundler places a module
|
|
6
|
+
* whole: a host that imports `variantFromRecord` from the same module as the table
|
|
7
|
+
* ships the table with it. This module reads a record it is handed and imports no
|
|
8
|
+
* catalogue, so a start-up path that only turns a stored record into a variant
|
|
9
|
+
* (an imported theme, a reconstruction) stays small. `lib/themes.ts` re-exports
|
|
10
|
+
* `variantFromRecord`, so `@adea-ai/ui/lib/themes` keeps working; the lazy start-up
|
|
11
|
+
* gate (`check:theme-startup`) holds the split in place.
|
|
12
|
+
*
|
|
13
|
+
* It does import `@adea-ai/themes` for the projection helpers (`chartSeries`,
|
|
14
|
+
* `tint`, `shadcnVariables`…), none of which reads the table of themes.
|
|
15
|
+
*/
|
|
16
|
+
import { type AdeaThemeRecord } from '@adea-ai/themes';
|
|
17
|
+
import type { ThemeVariant } from './themes';
|
|
18
|
+
/**
|
|
19
|
+
* The design system's view of one catalogue record, built in full and at once.
|
|
20
|
+
*
|
|
21
|
+
* For a host that holds a record the catalogue does not — an imported theme, a
|
|
22
|
+
* reconstruction from stored data — and wants a variant it can hand to
|
|
23
|
+
* `ThemeProvider`'s `themes`. It throws for a record the shadcn projection cannot
|
|
24
|
+
* map, here and now, rather than on first paint. The catalogue itself goes through
|
|
25
|
+
* {@link lazyVariantFromRecord} instead.
|
|
26
|
+
*/
|
|
27
|
+
export declare function variantFromRecord(theme: AdeaThemeRecord): ThemeVariant;
|
|
28
|
+
/**
|
|
29
|
+
* {@link variantFromRecord} with the four derived palettes built on first read.
|
|
30
|
+
*
|
|
31
|
+
* Evaluating this module used to project all 34 catalogue themes up front, about
|
|
32
|
+
* 155 ms before a single one was needed, on the hydration path of every consumer.
|
|
33
|
+
* A page paints one variant, and a picker's labels and appearance are plain
|
|
34
|
+
* fields, so only a variant whose `colors`, `terminal`, `editor` or `chart` is read
|
|
35
|
+
* pays for them, once. The properties stay enumerable data-shaped accessors, so
|
|
36
|
+
* spreading, `Object.entries` and JSON see the same object they always did.
|
|
37
|
+
*/
|
|
38
|
+
export declare function lazyVariantFromRecord(theme: AdeaThemeRecord): ThemeVariant;
|
|
39
|
+
//# sourceMappingURL=theme-records.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-records.d.ts","sourceRoot":"","sources":["../../src/lib/theme-records.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAML,KAAK,eAAe,EACrB,MAAM,iBAAiB,CAAA;AAExB,OAAO,KAAK,EAKV,YAAY,EACb,MAAM,UAAU,CAAA;AAuGjB;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,eAAe,GAAG,YAAY,CActE;AAoBD;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,eAAe,GAAG,YAAY,CAkB1E"}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import { chartSeries, shadcnDestructiveProjection, statusForeground, syntaxRoles, tint } from "@adea-ai/themes";
|
|
2
|
+
import { shadcnVariables } from "@adea-ai/themes/adapters/shadcn";
|
|
3
|
+
//#region src/lib/theme-records.ts
|
|
4
|
+
/**
|
|
5
|
+
* One catalogue record, as this system's {@link ThemeVariant}.
|
|
6
|
+
*
|
|
7
|
+
* `variantFromRecord` and the lazy form the catalogue is built with live here, and not
|
|
8
|
+
* beside the 34-theme table in `lib/themes.ts`, because a bundler places a module
|
|
9
|
+
* whole: a host that imports `variantFromRecord` from the same module as the table
|
|
10
|
+
* ships the table with it. This module reads a record it is handed and imports no
|
|
11
|
+
* catalogue, so a start-up path that only turns a stored record into a variant
|
|
12
|
+
* (an imported theme, a reconstruction) stays small. `lib/themes.ts` re-exports
|
|
13
|
+
* `variantFromRecord`, so `@adea-ai/ui/lib/themes` keeps working; the lazy start-up
|
|
14
|
+
* gate (`check:theme-startup`) holds the split in place.
|
|
15
|
+
*
|
|
16
|
+
* It does import `@adea-ai/themes` for the projection helpers (`chartSeries`,
|
|
17
|
+
* `tint`, `shadcnVariables`…), none of which reads the table of themes.
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* The shadcn-vocabulary roles of one catalogue entry.
|
|
21
|
+
*
|
|
22
|
+
* The expensive half of a variant: `shadcnVariables` projects the whole palette
|
|
23
|
+
* (about 4 ms a theme), which is why {@link lazyVariantFromRecord} defers it.
|
|
24
|
+
*/
|
|
25
|
+
function colorsOf(theme) {
|
|
26
|
+
const projected = shadcnVariables(theme);
|
|
27
|
+
const token = (name) => {
|
|
28
|
+
const value = projected[`--${name}`];
|
|
29
|
+
if (!value) throw new Error(`${theme.id} has no shared shadcn projection for --${name}`);
|
|
30
|
+
return value;
|
|
31
|
+
};
|
|
32
|
+
const destructiveAction = shadcnDestructiveProjection(theme);
|
|
33
|
+
return {
|
|
34
|
+
background: token("background"),
|
|
35
|
+
foreground: token("foreground"),
|
|
36
|
+
card: token("card"),
|
|
37
|
+
cardForeground: token("card-foreground"),
|
|
38
|
+
popover: token("popover"),
|
|
39
|
+
popoverForeground: token("popover-foreground"),
|
|
40
|
+
primary: token("primary"),
|
|
41
|
+
primaryForeground: token("primary-foreground"),
|
|
42
|
+
secondary: token("secondary"),
|
|
43
|
+
secondaryForeground: token("secondary-foreground"),
|
|
44
|
+
muted: token("muted"),
|
|
45
|
+
mutedForeground: token("muted-foreground"),
|
|
46
|
+
accent: token("accent"),
|
|
47
|
+
accentForeground: token("accent-foreground"),
|
|
48
|
+
destructive: theme.colors.error,
|
|
49
|
+
destructiveForeground: statusForeground(theme, "error"),
|
|
50
|
+
destructiveSubtle: tint(theme.colors.error, theme.colors.background),
|
|
51
|
+
destructiveAction: destructiveAction.fill,
|
|
52
|
+
destructiveActionForeground: destructiveAction.foreground,
|
|
53
|
+
success: token("success"),
|
|
54
|
+
successForeground: statusForeground(theme, "success"),
|
|
55
|
+
successSubtle: tint(theme.colors.success, theme.colors.background),
|
|
56
|
+
warning: token("warning"),
|
|
57
|
+
warningForeground: statusForeground(theme, "warning"),
|
|
58
|
+
warningSubtle: tint(theme.colors.warning, theme.colors.background),
|
|
59
|
+
info: token("info"),
|
|
60
|
+
infoForeground: statusForeground(theme, "info"),
|
|
61
|
+
infoSubtle: tint(theme.colors.info, theme.colors.background),
|
|
62
|
+
border: token("border"),
|
|
63
|
+
input: token("input"),
|
|
64
|
+
ring: token("ring"),
|
|
65
|
+
sidebar: token("sidebar"),
|
|
66
|
+
sidebarForeground: token("sidebar-foreground"),
|
|
67
|
+
sidebarAccent: token("sidebar-accent"),
|
|
68
|
+
sidebarBorder: token("sidebar-border"),
|
|
69
|
+
sidebarMutedForeground: token("sidebar-muted-foreground")
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
function terminalOf(theme) {
|
|
73
|
+
return {
|
|
74
|
+
background: theme.colors.background,
|
|
75
|
+
foreground: theme.colors.foreground,
|
|
76
|
+
cursor: theme.cursor,
|
|
77
|
+
selection: theme.selection,
|
|
78
|
+
...theme.ansi
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
function editorOf(theme) {
|
|
82
|
+
const syntax = syntaxRoles(theme);
|
|
83
|
+
return {
|
|
84
|
+
keyword: syntax.keyword,
|
|
85
|
+
string: syntax.string,
|
|
86
|
+
number: syntax.number,
|
|
87
|
+
comment: syntax.comment,
|
|
88
|
+
function: syntax.function,
|
|
89
|
+
variable: syntax.variable,
|
|
90
|
+
type: syntax.type,
|
|
91
|
+
tag: syntax.tag,
|
|
92
|
+
attribute: syntax.attribute,
|
|
93
|
+
operator: syntax.operator,
|
|
94
|
+
heading: syntax.heading,
|
|
95
|
+
link: syntax.link,
|
|
96
|
+
diffAdd: syntax.diffAdd,
|
|
97
|
+
diffDelete: syntax.diffDelete,
|
|
98
|
+
diffHunk: syntax.diffHunk,
|
|
99
|
+
searchMatch: syntax.searchMatch
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
function provenanceOf(theme) {
|
|
103
|
+
return {
|
|
104
|
+
source: theme.provenance.project,
|
|
105
|
+
url: theme.provenance.url,
|
|
106
|
+
license: theme.provenance.license
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* The design system's view of one catalogue record, built in full and at once.
|
|
111
|
+
*
|
|
112
|
+
* For a host that holds a record the catalogue does not — an imported theme, a
|
|
113
|
+
* reconstruction from stored data — and wants a variant it can hand to
|
|
114
|
+
* `ThemeProvider`'s `themes`. It throws for a record the shadcn projection cannot
|
|
115
|
+
* map, here and now, rather than on first paint. The catalogue itself goes through
|
|
116
|
+
* {@link lazyVariantFromRecord} instead.
|
|
117
|
+
*/
|
|
118
|
+
function variantFromRecord(theme) {
|
|
119
|
+
return {
|
|
120
|
+
id: theme.id,
|
|
121
|
+
family: theme.family,
|
|
122
|
+
familyLabel: theme.familyLabel,
|
|
123
|
+
label: theme.label,
|
|
124
|
+
appearance: theme.appearance,
|
|
125
|
+
description: theme.description,
|
|
126
|
+
colors: colorsOf(theme),
|
|
127
|
+
terminal: terminalOf(theme),
|
|
128
|
+
editor: editorOf(theme),
|
|
129
|
+
chart: chartSeries(theme),
|
|
130
|
+
provenance: provenanceOf(theme)
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
/** Runs `build` on first call and returns that value from then on. A throw is not cached. */
|
|
134
|
+
function once(build) {
|
|
135
|
+
let built = false;
|
|
136
|
+
let value;
|
|
137
|
+
return () => {
|
|
138
|
+
if (!built) {
|
|
139
|
+
value = build();
|
|
140
|
+
built = true;
|
|
141
|
+
}
|
|
142
|
+
return value;
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
var lazy = (build) => ({
|
|
146
|
+
get: once(build),
|
|
147
|
+
enumerable: true
|
|
148
|
+
});
|
|
149
|
+
/**
|
|
150
|
+
* {@link variantFromRecord} with the four derived palettes built on first read.
|
|
151
|
+
*
|
|
152
|
+
* Evaluating this module used to project all 34 catalogue themes up front, about
|
|
153
|
+
* 155 ms before a single one was needed, on the hydration path of every consumer.
|
|
154
|
+
* A page paints one variant, and a picker's labels and appearance are plain
|
|
155
|
+
* fields, so only a variant whose `colors`, `terminal`, `editor` or `chart` is read
|
|
156
|
+
* pays for them, once. The properties stay enumerable data-shaped accessors, so
|
|
157
|
+
* spreading, `Object.entries` and JSON see the same object they always did.
|
|
158
|
+
*/
|
|
159
|
+
function lazyVariantFromRecord(theme) {
|
|
160
|
+
return Object.defineProperties({
|
|
161
|
+
id: theme.id,
|
|
162
|
+
family: theme.family,
|
|
163
|
+
familyLabel: theme.familyLabel,
|
|
164
|
+
label: theme.label,
|
|
165
|
+
appearance: theme.appearance,
|
|
166
|
+
description: theme.description,
|
|
167
|
+
provenance: provenanceOf(theme)
|
|
168
|
+
}, {
|
|
169
|
+
colors: lazy(() => colorsOf(theme)),
|
|
170
|
+
terminal: lazy(() => terminalOf(theme)),
|
|
171
|
+
editor: lazy(() => editorOf(theme)),
|
|
172
|
+
chart: lazy(() => chartSeries(theme))
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
//#endregion
|
|
176
|
+
export { lazyVariantFromRecord, variantFromRecord };
|
|
177
|
+
|
|
178
|
+
//# sourceMappingURL=theme-records.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-records.js","names":[],"sources":["../../src/lib/theme-records.ts"],"sourcesContent":["/**\n * One catalogue record, as this system's {@link ThemeVariant}.\n *\n * `variantFromRecord` and the lazy form the catalogue is built with live here, and not\n * beside the 34-theme table in `lib/themes.ts`, because a bundler places a module\n * whole: a host that imports `variantFromRecord` from the same module as the table\n * ships the table with it. This module reads a record it is handed and imports no\n * catalogue, so a start-up path that only turns a stored record into a variant\n * (an imported theme, a reconstruction) stays small. `lib/themes.ts` re-exports\n * `variantFromRecord`, so `@adea-ai/ui/lib/themes` keeps working; the lazy start-up\n * gate (`check:theme-startup`) holds the split in place.\n *\n * It does import `@adea-ai/themes` for the projection helpers (`chartSeries`,\n * `tint`, `shadcnVariables`…), none of which reads the table of themes.\n */\nimport {\n chartSeries,\n shadcnDestructiveProjection,\n statusForeground,\n syntaxRoles,\n tint,\n type AdeaThemeRecord,\n} from '@adea-ai/themes'\nimport { shadcnVariables } from '@adea-ai/themes/adapters/shadcn'\nimport type {\n ThemeColors,\n ThemeEditorPalette,\n ThemeProvenance,\n ThemeTerminalPalette,\n ThemeVariant,\n} from './themes'\n\n/**\n * The shadcn-vocabulary roles of one catalogue entry.\n *\n * The expensive half of a variant: `shadcnVariables` projects the whole palette\n * (about 4 ms a theme), which is why {@link lazyVariantFromRecord} defers it.\n */\nfunction colorsOf(theme: AdeaThemeRecord): ThemeColors {\n const projected = shadcnVariables(theme)\n const token = (name: string): string => {\n const value = projected[`--${name}`]\n if (!value) throw new Error(`${theme.id} has no shared shadcn projection for --${name}`)\n return value\n }\n const destructiveAction = shadcnDestructiveProjection(theme)\n return {\n background: token('background'),\n foreground: token('foreground'),\n card: token('card'),\n cardForeground: token('card-foreground'),\n popover: token('popover'),\n popoverForeground: token('popover-foreground'),\n primary: token('primary'),\n primaryForeground: token('primary-foreground'),\n secondary: token('secondary'),\n secondaryForeground: token('secondary-foreground'),\n muted: token('muted'),\n mutedForeground: token('muted-foreground'),\n accent: token('accent'),\n accentForeground: token('accent-foreground'),\n // Preserve the UI's semantic error token. The Themes projection uses its\n // contrast-safe solid-action fill for --destructive; UI keeps that fill in\n // the separate destructiveAction pair below.\n destructive: theme.colors.error,\n destructiveForeground: statusForeground(theme, 'error'),\n destructiveSubtle: tint(theme.colors.error, theme.colors.background),\n destructiveAction: destructiveAction.fill,\n destructiveActionForeground: destructiveAction.foreground,\n success: token('success'),\n successForeground: statusForeground(theme, 'success'),\n successSubtle: tint(theme.colors.success, theme.colors.background),\n warning: token('warning'),\n warningForeground: statusForeground(theme, 'warning'),\n warningSubtle: tint(theme.colors.warning, theme.colors.background),\n info: token('info'),\n infoForeground: statusForeground(theme, 'info'),\n infoSubtle: tint(theme.colors.info, theme.colors.background),\n border: token('border'),\n input: token('input'),\n ring: token('ring'),\n sidebar: token('sidebar'),\n sidebarForeground: token('sidebar-foreground'),\n sidebarAccent: token('sidebar-accent'),\n sidebarBorder: token('sidebar-border'),\n sidebarMutedForeground: token('sidebar-muted-foreground'),\n }\n}\n\n// The embedded terminal uses the theme's own canvas rather than a palette of its\n// own. The ANSI colours came from the palette that produced the canvas, so they\n// were chosen against it; a terminal on a different background would be the one\n// surface in the application not lit by the active theme.\nfunction terminalOf(theme: AdeaThemeRecord): ThemeTerminalPalette {\n return {\n background: theme.colors.background,\n foreground: theme.colors.foreground,\n cursor: theme.cursor,\n selection: theme.selection,\n ...theme.ansi,\n }\n}\n\nfunction editorOf(theme: AdeaThemeRecord): ThemeEditorPalette {\n const syntax = syntaxRoles(theme)\n return {\n keyword: syntax.keyword,\n string: syntax.string,\n number: syntax.number,\n comment: syntax.comment,\n function: syntax.function,\n variable: syntax.variable,\n type: syntax.type,\n tag: syntax.tag,\n attribute: syntax.attribute,\n operator: syntax.operator,\n heading: syntax.heading,\n link: syntax.link,\n diffAdd: syntax.diffAdd,\n diffDelete: syntax.diffDelete,\n diffHunk: syntax.diffHunk,\n searchMatch: syntax.searchMatch,\n }\n}\n\nfunction provenanceOf(theme: AdeaThemeRecord): ThemeProvenance {\n return {\n source: theme.provenance.project,\n url: theme.provenance.url,\n license: theme.provenance.license,\n }\n}\n\n/**\n * The design system's view of one catalogue record, built in full and at once.\n *\n * For a host that holds a record the catalogue does not — an imported theme, a\n * reconstruction from stored data — and wants a variant it can hand to\n * `ThemeProvider`'s `themes`. It throws for a record the shadcn projection cannot\n * map, here and now, rather than on first paint. The catalogue itself goes through\n * {@link lazyVariantFromRecord} instead.\n */\nexport function variantFromRecord(theme: AdeaThemeRecord): ThemeVariant {\n return {\n id: theme.id,\n family: theme.family,\n familyLabel: theme.familyLabel,\n label: theme.label,\n appearance: theme.appearance,\n description: theme.description,\n colors: colorsOf(theme),\n terminal: terminalOf(theme),\n editor: editorOf(theme),\n chart: chartSeries(theme),\n provenance: provenanceOf(theme),\n }\n}\n\n/** Runs `build` on first call and returns that value from then on. A throw is not cached. */\nfunction once<T>(build: () => T): () => T {\n let built = false\n let value: T\n return () => {\n if (!built) {\n value = build()\n built = true\n }\n return value\n }\n}\n\nconst lazy = <T>(build: () => T): PropertyDescriptor => ({\n get: once(build),\n enumerable: true,\n})\n\n/**\n * {@link variantFromRecord} with the four derived palettes built on first read.\n *\n * Evaluating this module used to project all 34 catalogue themes up front, about\n * 155 ms before a single one was needed, on the hydration path of every consumer.\n * A page paints one variant, and a picker's labels and appearance are plain\n * fields, so only a variant whose `colors`, `terminal`, `editor` or `chart` is read\n * pays for them, once. The properties stay enumerable data-shaped accessors, so\n * spreading, `Object.entries` and JSON see the same object they always did.\n */\nexport function lazyVariantFromRecord(theme: AdeaThemeRecord): ThemeVariant {\n return Object.defineProperties(\n {\n id: theme.id,\n family: theme.family,\n familyLabel: theme.familyLabel,\n label: theme.label,\n appearance: theme.appearance,\n description: theme.description,\n provenance: provenanceOf(theme),\n },\n {\n colors: lazy(() => colorsOf(theme)),\n terminal: lazy(() => terminalOf(theme)),\n editor: lazy(() => editorOf(theme)),\n chart: lazy(() => chartSeries(theme)),\n }\n ) as ThemeVariant\n}\n"],"mappings":"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"}
|
package/dist/lib/themes.d.ts
CHANGED
|
@@ -34,7 +34,11 @@
|
|
|
34
34
|
*/
|
|
35
35
|
import { type AccentPreset, type AdeaTheme, type AdeaThemeRecord } from '@adea-ai/themes';
|
|
36
36
|
import { type AccentRoles } from './accent-roles';
|
|
37
|
+
export { accents } from './accent-presets';
|
|
37
38
|
export { isThemeAccentId } from './theme-accents';
|
|
39
|
+
export { terminalCssVariables, tokensAsHex } from './theme-css';
|
|
40
|
+
export { defaultDarkThemeId, defaultLightThemeId, resolveVariant } from './theme-defaults';
|
|
41
|
+
export { variantFromRecord } from './theme-records';
|
|
38
42
|
export type ThemeAppearance = 'light' | 'dark';
|
|
39
43
|
/**
|
|
40
44
|
* The surface and text roles, in shadcn's vocabulary.
|
|
@@ -158,43 +162,21 @@ export type ThemeVariant = {
|
|
|
158
162
|
*/
|
|
159
163
|
tokens?: Readonly<Record<string, string>>;
|
|
160
164
|
};
|
|
161
|
-
/**
|
|
162
|
-
* The design system's view of one catalogue record, built in full and at once.
|
|
163
|
-
*
|
|
164
|
-
* For a host that holds a record the catalogue does not — an imported theme, a
|
|
165
|
-
* reconstruction from stored data — and wants a variant it can hand to
|
|
166
|
-
* `ThemeProvider`'s `themes`. It throws for a record the shadcn projection cannot
|
|
167
|
-
* map, here and now, rather than on first paint. The catalogue itself goes through
|
|
168
|
-
* {@link lazyVariant} instead.
|
|
169
|
-
*/
|
|
170
|
-
export declare function variantFromRecord(theme: AdeaThemeRecord): ThemeVariant;
|
|
171
165
|
/**
|
|
172
166
|
* A variant's `--primary-subtle`: the tint over `var(--primary)` at the strength its
|
|
173
167
|
* catalogue record measures (`primarySubtleAlpha`). A variant that is not in the
|
|
174
168
|
* catalogue has nothing to measure, and gets its appearance's ceiling.
|
|
175
169
|
*/
|
|
176
170
|
export declare function primarySubtleFor(theme: Pick<ThemeVariant, 'id' | 'appearance'>): string;
|
|
177
|
-
/** The catalogue, in catalogue order. */
|
|
178
|
-
export declare const builtinThemes: readonly ThemeVariant[];
|
|
179
|
-
export declare function themeById(id: string): ThemeVariant | undefined;
|
|
180
171
|
/**
|
|
181
|
-
* The
|
|
182
|
-
*
|
|
183
|
-
* An id the registry does not hold — an imported theme that was deleted, a
|
|
184
|
-
* catalogue entry that was renamed — must still paint *something of the appearance
|
|
185
|
-
* being shown*. Falling back to whichever variant happens to be first in the
|
|
186
|
-
* registry painted a dark palette under a light `color-scheme` for a light id, so
|
|
187
|
-
* the fallback is the appearance's own default, then any variant of that
|
|
188
|
-
* appearance, then the registry's first entry only when it holds nothing else.
|
|
172
|
+
* The catalogue, in catalogue order.
|
|
189
173
|
*
|
|
190
|
-
* `
|
|
191
|
-
*
|
|
192
|
-
*
|
|
193
|
-
*
|
|
194
|
-
* The fallback order is translated from Zeron's `ThemeRegistry::resolve` (MIT,
|
|
195
|
-
* Copyright (c) 2026 Wing); see NOTICE.
|
|
174
|
+
* The `@__PURE__` marks let a bundler drop the whole table, and with it the catalogue,
|
|
175
|
+
* from a consumer that imports only this module's catalogue-free helpers
|
|
176
|
+
* (`tokensAsHex`, `isThemeAccentId`, `resolveVariant`…) and never reads it.
|
|
196
177
|
*/
|
|
197
|
-
export declare
|
|
178
|
+
export declare const builtinThemes: readonly ThemeVariant[];
|
|
179
|
+
export declare function themeById(id: string): ThemeVariant | undefined;
|
|
198
180
|
/** The variants of one appearance, which is what a picker for that mode shows. */
|
|
199
181
|
export declare function themesForAppearance(appearance: ThemeAppearance): readonly ThemeVariant[];
|
|
200
182
|
/** The families in the catalogue, in catalogue order. */
|
|
@@ -203,8 +185,6 @@ export declare function themeFamilies(): {
|
|
|
203
185
|
label: string;
|
|
204
186
|
themes: ThemeVariant[];
|
|
205
187
|
}[];
|
|
206
|
-
/** The accent presets, in the order a picker should show them. */
|
|
207
|
-
export declare const accents: readonly AccentPreset[];
|
|
208
188
|
/**
|
|
209
189
|
* The canonical catalogue records, in catalogue order.
|
|
210
190
|
*
|
|
@@ -358,36 +338,14 @@ export declare function editorPaletteFor(theme: ThemeVariant, mode?: EditorRoles
|
|
|
358
338
|
/**
|
|
359
339
|
* The roles a variant sets, as CSS custom properties.
|
|
360
340
|
*
|
|
361
|
-
* The
|
|
362
|
-
*
|
|
363
|
-
*
|
|
364
|
-
*
|
|
365
|
-
*
|
|
366
|
-
*
|
|
367
|
-
* Absent it, the result is what it has always been; the generated `theme-variants.css`
|
|
368
|
-
* and the design-system artifact are built without it.
|
|
341
|
+
* The mapping itself is `themeCssVariablesWith` in `theme-css.ts`; this binds it to
|
|
342
|
+
* the catalogue, which measures a theme's `--primary-subtle` strength
|
|
343
|
+
* ({@link primarySubtleFor}) and projects its floor editor ramp
|
|
344
|
+
* ({@link editorPaletteFor}). Absent `options`, the result is what it has always
|
|
345
|
+
* been; the generated `theme-variants.css` and the design-system artifact are built
|
|
346
|
+
* without it.
|
|
369
347
|
*/
|
|
370
348
|
export declare function themeCssVariables(theme: ThemeVariant, options?: ThemeCssVariableOptions): Record<string, string>;
|
|
371
|
-
/**
|
|
372
|
-
* The `--terminal-*` properties of a variant: the palette a terminal paints.
|
|
373
|
-
*
|
|
374
|
-
* What a pinned terminal theme writes over the interface variant's own. Taken from
|
|
375
|
-
* {@link themeCssVariables} rather than rebuilt, so the names, and a custom
|
|
376
|
-
* variant's verbatim `tokens`, can never drift from what the interface variant
|
|
377
|
-
* would have written for the same palette.
|
|
378
|
-
*/
|
|
379
|
-
export declare function terminalCssVariables(theme: ThemeVariant): Record<string, string>;
|
|
380
|
-
/**
|
|
381
|
-
* Token values with every `oklch()` colour written as `#rrggbb`.
|
|
382
|
-
*
|
|
383
|
-
* For a host whose stylesheet, tests or native shell speak hex: the catalogue's
|
|
384
|
-
* roles are `oklch()` strings, and this is the one conversion, gamut-mapped by the
|
|
385
|
-
* catalogue's own `oklchToHex`. A value that is already hex, carries alpha
|
|
386
|
-
* (`rgba()`), or is not a plain colour (`color-mix()`, `var()`) is left byte for
|
|
387
|
-
* byte, because converting would either lose the alpha or be a guess. Suitable as
|
|
388
|
-
* `ThemeProvider`'s `transformTokens`.
|
|
389
|
-
*/
|
|
390
|
-
export declare function tokensAsHex(tokens: Readonly<Record<string, string>>): Record<string, string>;
|
|
391
349
|
export type ThemeFinding = {
|
|
392
350
|
themeId: string;
|
|
393
351
|
role: string;
|
|
@@ -397,8 +355,6 @@ export type ThemeFinding = {
|
|
|
397
355
|
export declare function validateTheme(theme: ThemeVariant): ThemeFinding[];
|
|
398
356
|
/** Validates the whole registry, including the catalogue-level invariants. */
|
|
399
357
|
export declare function validateThemeRegistry(themes?: readonly ThemeVariant[]): ThemeFinding[];
|
|
400
|
-
export declare const defaultLightThemeId = "adea-light";
|
|
401
|
-
export declare const defaultDarkThemeId = "adea-dark";
|
|
402
358
|
/** Re-exported so a consumer measuring a colour does not need a second import. */
|
|
403
359
|
export { contrastRatio } from '@adea-ai/themes';
|
|
404
360
|
//# sourceMappingURL=themes.d.ts.map
|
package/dist/lib/themes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"themes.d.ts","sourceRoot":"","sources":["../../src/lib/themes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"themes.d.ts","sourceRoot":"","sources":["../../src/lib/themes.ts"],"names":[],"mappings":"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"}
|