@tenerife.music/ui 4.0.0 → 5.0.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.
@@ -1,202 +0,0 @@
1
- import { U as UICapabilityDiscoveryEntry, a as UICapabilityDiscoveryResult, I as IntentDslErrorCode, b as IntentDslError } from '../types-CoqbRddt.cjs';
2
- import { U as UIIntentSchema, c as UIIntentValidationIssue } from '../types-BEG5B5HA.cjs';
3
- import { G as GenerateUIOptions, U as UIIRNode, R as ReplayRecord } from '../types-kjA4Koki.cjs';
4
- import { M as Mode } from '../colors-BRUYtnG-.cjs';
5
- import { T as ThemeName } from '../types-CeNHa-BU.cjs';
6
- import '../ui-node-union-BNt_iPQO.cjs';
7
- import '../index-4rLh47Jk.cjs';
8
- import '../typography-BsoBDDcG.cjs';
9
- import '../safe-native-DQVUNMW7.cjs';
10
-
11
- type CapabilityIntrospectionEntry = UICapabilityDiscoveryEntry;
12
- type CapabilityIntrospectionResult = UICapabilityDiscoveryResult;
13
- /**
14
- * Returns the full AI capability graph — a read-only, JSON-serializable description
15
- * of every surface, its allowed children, parent categories, props, states, and actions.
16
- *
17
- * The result is frozen. AI agents should treat it as an immutable snapshot of the
18
- * deterministic surface allowlist at module load time.
19
- *
20
- * Cached: `getUiCapabilities()` is called exactly once per process lifetime.
21
- */
22
- declare function getCapabilities(): CapabilityIntrospectionResult;
23
- /** Returns the ordered list of all allowed surface kind names. */
24
- declare function getCapabilityKinds(): readonly string[];
25
- /** Returns all entries with the given role. */
26
- declare function getCapabilitiesByRole(role: "layout_primitive" | "component_primitive"): readonly CapabilityIntrospectionEntry[];
27
- /**
28
- * Returns the introspection entry for a kind, or `undefined` if unknown.
29
- * Never throws — safe for AI agents to call with unvalidated kind strings.
30
- */
31
- declare function findCapabilityEntry(kind: string): CapabilityIntrospectionEntry | undefined;
32
- /** Returns the allowed child kind names for a surface, or `[]` for unknown kinds. */
33
- declare function getAllowedChildKinds(kind: string): readonly string[];
34
- /** Returns the allowed parent kind names for a surface, or `[]` for unknown kinds. */
35
- declare function getAllowedParentKinds(kind: string): readonly string[];
36
- /** Returns all leaf surfaces (surfaces that cannot have children). */
37
- declare function getLeafCapabilities(): readonly CapabilityIntrospectionEntry[];
38
- /** Returns the full list of prop keys that are forbidden in any intent node. */
39
- declare function getForbiddenPropKeys(): readonly string[];
40
-
41
- type AIPromptInput = {
42
- promptText: string;
43
- capabilityHints?: readonly string[];
44
- surfaceRestrictions?: readonly string[];
45
- tokenHints?: readonly string[];
46
- options?: GenerateUIOptions;
47
- };
48
- type AIResultIssue = {
49
- code: string;
50
- message: string;
51
- path: string;
52
- canonicalRef?: UIIntentValidationIssue["canonicalRef"];
53
- category?: UIIntentValidationIssue["category"];
54
- severity?: UIIntentValidationIssue["severity"];
55
- };
56
- type AIResultDslError = {
57
- code: IntentDslErrorCode;
58
- line?: number;
59
- column?: number;
60
- path?: string;
61
- };
62
- type AIResultValidationDiagnostics = {
63
- valid: boolean;
64
- errors: AIResultIssue[];
65
- warnings: AIResultIssue[];
66
- dslError?: AIResultDslError;
67
- };
68
- type AIResultScoreDiagnostics = {
69
- gate: "pass" | "fail";
70
- overallScore: number;
71
- gateReasons: string[];
72
- lintErrorCount: number;
73
- lintWarningCount: number;
74
- architectureRuleViolations: number;
75
- };
76
- type AIResultRestrictionDiagnostics = {
77
- capabilityHints: readonly string[];
78
- surfaceRestrictions: readonly string[];
79
- tokenHints: readonly string[];
80
- acceptedTokenHints: readonly string[];
81
- rejectedTokenHints: readonly string[];
82
- matchedKinds: readonly string[];
83
- rejectedKinds: readonly string[];
84
- missingHints: readonly string[];
85
- };
86
- type AIResultReplayDiagnostics = {
87
- replayId: string;
88
- compilerHash: string;
89
- };
90
- type AIResultDiagnostics = {
91
- sourceKind: "prompt_text";
92
- validation: AIResultValidationDiagnostics | null;
93
- score?: AIResultScoreDiagnostics;
94
- restrictions?: AIResultRestrictionDiagnostics;
95
- replay?: AIResultReplayDiagnostics;
96
- warnings: readonly string[];
97
- };
98
- type AIResultErrorCode = "AI_INPUT_CONTRACT_FAILED" | "AI_RESTRICTION_CONTRACT_FAILED" | "AI_INTENT_VALIDATION_FAILED" | "AI_COMPILER_FAILED" | "AI_SCORE_GATE_FAILED" | "AI_REPLAY_FAILED";
99
- type AIResultError = {
100
- code: AIResultErrorCode;
101
- message: string;
102
- details?: {
103
- engineCode?: string;
104
- issues?: AIResultIssue[];
105
- warnings?: AIResultIssue[];
106
- dslError?: AIResultDslError;
107
- gateReasons?: readonly string[];
108
- restrictions?: AIResultRestrictionDiagnostics;
109
- replayId?: string;
110
- cause?: unknown;
111
- };
112
- };
113
- type UIGraphSuccessResult = {
114
- ok: true;
115
- jsx: string;
116
- imports: readonly string[];
117
- layoutTree: UIIRNode;
118
- intentSchema: UIIntentSchema;
119
- compilerHash: string;
120
- replayId: string;
121
- replay: ReplayRecord;
122
- diagnostics: AIResultDiagnostics;
123
- };
124
- type UIGraphFailureResult = {
125
- ok: false;
126
- error: AIResultError;
127
- diagnostics: AIResultDiagnostics;
128
- };
129
- type UIGraphResult = UIGraphSuccessResult | UIGraphFailureResult;
130
- type AIThemeTokenFamilyName = "colors" | "typography" | "radius" | "shadows";
131
- type AIThemeTokenEntry = {
132
- id: string;
133
- value: string;
134
- description: string;
135
- };
136
- type AIThemeTokenFamilyCatalog = Readonly<Record<AIThemeTokenFamilyName, readonly AIThemeTokenEntry[]>>;
137
- type AIThemeTokenDescriptions = Readonly<Record<AIThemeTokenFamilyName, string>>;
138
- type AIThemeTokenBridgeInput = {
139
- themeName?: ThemeName;
140
- mode?: Mode;
141
- };
142
- type AIThemeTokenBridgeRuntime = {
143
- themeName: ThemeName;
144
- mode: Mode;
145
- colors: readonly AIThemeTokenEntry[];
146
- typography: readonly AIThemeTokenEntry[];
147
- radius: readonly AIThemeTokenEntry[];
148
- shadows: readonly AIThemeTokenEntry[];
149
- };
150
- type AIThemeTokenBridgeResult = {
151
- meta: {
152
- themeName: ThemeName;
153
- mode: Mode;
154
- };
155
- descriptions: AIThemeTokenDescriptions;
156
- families: AIThemeTokenFamilyCatalog;
157
- runtime: AIThemeTokenBridgeRuntime;
158
- };
159
-
160
- declare function generateUI(input: AIPromptInput): UIGraphResult;
161
-
162
- type PromptToDslOptions = {
163
- /**
164
- * Maximum number of LLM calls to attempt (including the initial call).
165
- * Defaults to 3.
166
- */
167
- maxRetries?: number;
168
- /**
169
- * Injectable LLM caller. Receives a system prompt (grammar + rules) and
170
- * a user prompt (natural language or retry feedback), returns raw LLM text.
171
- * Must be provided by the caller — no default LLM is bundled.
172
- */
173
- llmCall: (systemPrompt: string, userPrompt: string) => Promise<string>;
174
- };
175
- type PromptToDslSuccess = {
176
- ok: true;
177
- dsl: string;
178
- attempts: number;
179
- };
180
- type PromptToDslFailure = {
181
- ok: false;
182
- error: string;
183
- attempts: number;
184
- lastError?: IntentDslError;
185
- };
186
- type PromptToDslResult = PromptToDslSuccess | PromptToDslFailure;
187
- declare function buildGrammarSpec(): string;
188
- declare function extractDsl(response: string): string;
189
- /**
190
- * Translate a natural language prompt into valid Intent DSL.
191
- *
192
- * Uses the provided `llmCall` to generate DSL, then validates it with the
193
- * existing `compileDslToIntent` parser. On failure, feeds the specific
194
- * `IntentDslError` (code, line, column, message) back to the LLM for a
195
- * targeted correction. Retries up to `maxRetries` times (default 3).
196
- */
197
- declare function promptToDsl(naturalLanguagePrompt: string, options: PromptToDslOptions): Promise<PromptToDslResult>;
198
-
199
- declare function getThemeTokens(input?: AIThemeTokenBridgeInput): AIThemeTokenBridgeResult;
200
- declare function getThemeTokenIds(): ReadonlySet<string>;
201
-
202
- export { type AIPromptInput, type AIResultDiagnostics, type AIResultDslError, type AIResultError, type AIResultErrorCode, type AIResultIssue, type AIResultReplayDiagnostics, type AIResultRestrictionDiagnostics, type AIResultScoreDiagnostics, type AIResultValidationDiagnostics, type AIThemeTokenBridgeInput, type AIThemeTokenBridgeResult, type AIThemeTokenDescriptions, type AIThemeTokenEntry, type AIThemeTokenFamilyCatalog, type AIThemeTokenFamilyName, type CapabilityIntrospectionEntry, type CapabilityIntrospectionResult, type PromptToDslFailure, type PromptToDslOptions, type PromptToDslResult, type PromptToDslSuccess, type UIGraphFailureResult, type UIGraphResult, type UIGraphSuccessResult, buildGrammarSpec, extractDsl, findCapabilityEntry, generateUI, getAllowedChildKinds, getAllowedParentKinds, getCapabilities, getCapabilitiesByRole, getCapabilityKinds, getForbiddenPropKeys, getLeafCapabilities, getThemeTokenIds, getThemeTokens, promptToDsl };
@@ -1,298 +0,0 @@
1
- /**
2
- * Color Palette Tokens
3
- *
4
- * Complete color palette system for Tenerife UI based on design system specifications.
5
- * Includes: primary midnight blues, accent purples, secondary refined cyan,
6
- * surface colors for dark/light themes, and semantic colors.
7
- *
8
- * @see docs/tenerife_audit/design_system.md - colour palette section
9
- */
10
- type Mode = "day" | "night";
11
- /**
12
- * Color scale from 50 (lightest) to 950 (darkest)
13
- * Used for primary, accent, secondary, and other color scales
14
- */
15
- type ColorScale = {
16
- 50: string;
17
- 100: string;
18
- 200: string;
19
- 300: string;
20
- 400: string;
21
- 500: string;
22
- 600: string;
23
- 700: string;
24
- 800: string;
25
- 900: string;
26
- 950: string;
27
- };
28
- /**
29
- * Primary color palette - Midnight Blues
30
- * Tenerife brand primary colors
31
- * Rebalanced for proper lightness progression
32
- */
33
- declare const primaryColors: ColorScale;
34
- /**
35
- * Accent color palette - Purples
36
- * Used for accents and highlights
37
- * Rebalanced for semantic strength: 600/700 levels for default/active states
38
- * Button Color Rebalance v1: Adjusted for minimum 16 L* delta from secondary for clear distinction
39
- */
40
- declare const accentColors: ColorScale;
41
- /**
42
- * Secondary color palette - Refined Cyan
43
- * Tenerife brand secondary colors
44
- * Rebalanced for semantic strength: 600/700 levels for default/active states
45
- * Button Color Rebalance v1: Adjusted for better perceptual contrast between variants
46
- */
47
- declare const secondaryColors: ColorScale;
48
- /**
49
- * Surface color tokens
50
- * Used for backgrounds at different elevation levels
51
- */
52
- type SurfaceColors = {
53
- base: string;
54
- elevated1: string;
55
- elevated2: string;
56
- elevated3: string;
57
- overlay: string;
58
- glass: string;
59
- };
60
- declare const surfaceColors: Record<Mode, SurfaceColors>;
61
- /**
62
- * Semantic color tokens
63
- * Success, error, warning, info
64
- */
65
- type SemanticColors = {
66
- success: string;
67
- successForeground: string;
68
- error: string;
69
- errorForeground: string;
70
- warning: string;
71
- warningForeground: string;
72
- info: string;
73
- infoForeground: string;
74
- };
75
- declare const semanticColors: Record<Mode, SemanticColors>;
76
- /**
77
- * Chart color tokens
78
- * Used for data visualization (charts, graphs)
79
- */
80
- type ChartColors = {
81
- chart1: string;
82
- chart2: string;
83
- chart3: string;
84
- chart4: string;
85
- chart5: string;
86
- };
87
- declare const chartColors: Record<Mode, ChartColors>;
88
- /**
89
- * Text color tokens
90
- * Primary, secondary, tertiary, muted text
91
- */
92
- type TextColors = {
93
- primary: string;
94
- secondary: string;
95
- tertiary: string;
96
- muted: string;
97
- inverse: string;
98
- };
99
- declare const textColors: Record<Mode, TextColors>;
100
- /**
101
- * Base color tokens
102
- * Background, foreground, card, popover
103
- */
104
- type BaseColorTokens = {
105
- background: string;
106
- foreground: string;
107
- card: string;
108
- cardForeground: string;
109
- popover: string;
110
- popoverForeground: string;
111
- border: string;
112
- input: string;
113
- ring: string;
114
- };
115
- declare const baseColors: Record<Mode, BaseColorTokens>;
116
- /**
117
- * Complete color tokens
118
- * Combines all color categories
119
- */
120
- type ColorTokens = BaseColorTokens & {
121
- primary: string;
122
- primaryForeground: string;
123
- secondary: string;
124
- secondaryForeground: string;
125
- accent: string;
126
- accentForeground: string;
127
- muted: string;
128
- mutedForeground: string;
129
- destructive: string;
130
- destructiveForeground: string;
131
- chart1: string;
132
- chart2: string;
133
- chart3: string;
134
- chart4: string;
135
- chart5: string;
136
- };
137
- /**
138
- * CSS variable color tokens
139
- * Maps to CSS custom properties
140
- */
141
- declare const cssVariableColorTokens: Record<Mode, ColorTokens>;
142
- /**
143
- * CSS custom properties for colors
144
- * These will be injected into the theme system
145
- */
146
- declare const colorCSSVariables: {
147
- readonly "--primary-50": string;
148
- readonly "--primary-100": string;
149
- readonly "--primary-200": string;
150
- readonly "--primary-300": string;
151
- readonly "--primary-400": string;
152
- readonly "--primary-500": string;
153
- readonly "--primary-600": string;
154
- readonly "--primary-700": string;
155
- readonly "--primary-800": string;
156
- readonly "--primary-900": string;
157
- readonly "--primary-950": string;
158
- readonly "--accent-50": string;
159
- readonly "--accent-100": string;
160
- readonly "--accent-200": string;
161
- readonly "--accent-300": string;
162
- readonly "--accent-400": string;
163
- readonly "--accent-500": string;
164
- readonly "--accent-600": string;
165
- readonly "--accent-700": string;
166
- readonly "--accent-800": string;
167
- readonly "--accent-900": string;
168
- readonly "--accent-950": string;
169
- readonly "--secondary-50": string;
170
- readonly "--secondary-100": string;
171
- readonly "--secondary-200": string;
172
- readonly "--secondary-300": string;
173
- readonly "--secondary-400": string;
174
- readonly "--secondary-500": string;
175
- readonly "--secondary-600": string;
176
- readonly "--secondary-700": string;
177
- readonly "--secondary-800": string;
178
- readonly "--secondary-900": string;
179
- readonly "--secondary-950": string;
180
- };
181
- /**
182
- * Tailwind theme colors
183
- * Maps to Tailwind config
184
- */
185
- declare const tailwindThemeColors: {
186
- readonly background: "hsl(var(--tm-surface-base))";
187
- readonly foreground: "hsl(var(--tm-text-primary))";
188
- readonly card: {
189
- readonly DEFAULT: "hsl(var(--tm-surface-raised))";
190
- readonly foreground: "hsl(var(--tm-text-primary))";
191
- };
192
- readonly popover: {
193
- readonly DEFAULT: "hsl(var(--tm-surface-overlay))";
194
- readonly foreground: "hsl(var(--tm-text-primary))";
195
- };
196
- readonly primary: {
197
- readonly DEFAULT: "hsl(var(--tm-primary))";
198
- readonly foreground: "hsl(var(--tm-primary-foreground))";
199
- readonly 50: "hsl(var(--primary-50))";
200
- readonly 100: "hsl(var(--primary-100))";
201
- readonly 200: "hsl(var(--primary-200))";
202
- readonly 300: "hsl(var(--primary-300))";
203
- readonly 400: "hsl(var(--primary-400))";
204
- readonly 500: "hsl(var(--primary-500))";
205
- readonly 600: "hsl(var(--primary-600))";
206
- readonly 700: "hsl(var(--primary-700))";
207
- readonly 800: "hsl(var(--primary-800))";
208
- readonly 900: "hsl(var(--primary-900))";
209
- readonly 950: "hsl(var(--primary-950))";
210
- };
211
- readonly secondary: {
212
- readonly DEFAULT: "hsl(var(--tm-secondary))";
213
- readonly foreground: "hsl(var(--tm-secondary-foreground))";
214
- readonly 50: "hsl(var(--secondary-50))";
215
- readonly 100: "hsl(var(--secondary-100))";
216
- readonly 200: "hsl(var(--secondary-200))";
217
- readonly 300: "hsl(var(--secondary-300))";
218
- readonly 400: "hsl(var(--secondary-400))";
219
- readonly 500: "hsl(var(--secondary-500))";
220
- readonly 600: "hsl(var(--secondary-600))";
221
- readonly 700: "hsl(var(--secondary-700))";
222
- readonly 800: "hsl(var(--secondary-800))";
223
- readonly 900: "hsl(var(--secondary-900))";
224
- readonly 950: "hsl(var(--secondary-950))";
225
- };
226
- readonly accent: {
227
- readonly DEFAULT: "hsl(var(--tm-accent))";
228
- readonly foreground: "hsl(var(--tm-accent-foreground))";
229
- readonly 50: "hsl(var(--accent-50))";
230
- readonly 100: "hsl(var(--accent-100))";
231
- readonly 200: "hsl(var(--accent-200))";
232
- readonly 300: "hsl(var(--accent-300))";
233
- readonly 400: "hsl(var(--accent-400))";
234
- readonly 500: "hsl(var(--accent-500))";
235
- readonly 600: "hsl(var(--accent-600))";
236
- readonly 700: "hsl(var(--accent-700))";
237
- readonly 800: "hsl(var(--accent-800))";
238
- readonly 900: "hsl(var(--accent-900))";
239
- readonly 950: "hsl(var(--accent-950))";
240
- };
241
- readonly muted: {
242
- readonly DEFAULT: "hsl(var(--tm-muted))";
243
- readonly foreground: "hsl(var(--tm-muted-foreground))";
244
- };
245
- readonly disabled: {
246
- readonly DEFAULT: "hsl(var(--tm-disabled))";
247
- readonly foreground: "hsl(var(--tm-disabled-foreground))";
248
- };
249
- readonly destructive: {
250
- readonly DEFAULT: "hsl(var(--tm-destructive))";
251
- readonly foreground: "hsl(var(--tm-destructive-foreground))";
252
- };
253
- readonly success: {
254
- readonly DEFAULT: "hsl(var(--tm-status-success))";
255
- readonly foreground: "hsl(var(--tm-status-success-foreground))";
256
- };
257
- readonly error: {
258
- readonly DEFAULT: "hsl(var(--tm-status-error))";
259
- readonly foreground: "hsl(var(--tm-status-error-foreground))";
260
- };
261
- readonly warning: {
262
- readonly DEFAULT: "hsl(var(--tm-status-warning))";
263
- readonly foreground: "hsl(var(--tm-status-warning-foreground))";
264
- };
265
- readonly info: {
266
- readonly DEFAULT: "hsl(var(--tm-status-info))";
267
- readonly foreground: "hsl(var(--tm-status-info-foreground))";
268
- };
269
- readonly surface: {
270
- readonly base: "hsl(var(--tm-surface-base))";
271
- readonly elevated1: "hsl(var(--tm-surface-raised))";
272
- readonly elevated2: "hsl(var(--tm-surface-raised))";
273
- readonly elevated3: "hsl(var(--tm-surface-raised))";
274
- readonly overlay: "hsl(var(--tm-surface-overlay))";
275
- readonly glass: "hsl(var(--tm-surface-overlay))";
276
- };
277
- readonly text: {
278
- readonly primary: "hsl(var(--tm-text-primary))";
279
- readonly secondary: "hsl(var(--tm-text-secondary))";
280
- readonly tertiary: "hsl(var(--tm-text-muted))";
281
- readonly muted: "hsl(var(--tm-text-muted))";
282
- readonly destructive: "hsl(var(--tm-destructive))";
283
- readonly accent: "hsl(var(--tm-accent))";
284
- readonly inverse: "hsl(var(--tm-text-inverse))";
285
- };
286
- readonly border: "hsl(var(--tm-border-default))";
287
- readonly input: "hsl(var(--tm-border-default))";
288
- readonly ring: "hsl(var(--tm-focus-ring))";
289
- readonly chart: {
290
- readonly 1: "hsl(var(--chart-1))";
291
- readonly 2: "hsl(var(--chart-2))";
292
- readonly 3: "hsl(var(--chart-3))";
293
- readonly 4: "hsl(var(--chart-4))";
294
- readonly 5: "hsl(var(--chart-5))";
295
- };
296
- };
297
-
298
- export { type BaseColorTokens as B, type ColorScale as C, type Mode as M, type SurfaceColors as S, type TextColors as T, type SemanticColors as a, type ChartColors as b, type ColorTokens as c, cssVariableColorTokens as d, accentColors as e, baseColors as f, chartColors as g, colorCSSVariables as h, semanticColors as i, surfaceColors as j, textColors as k, primaryColors as p, secondaryColors as s, tailwindThemeColors as t };