@timbal-ai/timbal-react 0.8.1 → 1.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.
- package/CHANGELOG.md +40 -0
- package/README.md +69 -6
- package/dist/app.cjs +704 -56
- package/dist/app.d.cts +4 -3
- package/dist/app.d.ts +4 -3
- package/dist/app.esm.js +26 -4
- package/dist/{button-ClSgD6OF.d.cts → button-BoyX5pM_.d.cts} +1 -1
- package/dist/{button-ClSgD6OF.d.ts → button-BoyX5pM_.d.ts} +1 -1
- package/dist/{chart-artifact-DwfRtQWL.d.ts → chart-artifact-CBo9x8Ch.d.ts} +237 -13
- package/dist/{chart-artifact-DWkqIAK5.d.cts → chart-artifact-DOkwSTjQ.d.cts} +237 -13
- package/dist/chat.cjs +23 -1
- package/dist/chat.esm.js +3 -3
- package/dist/{chunk-OISVICYF.esm.js → chunk-AYHOVAMI.esm.js} +1 -1
- package/dist/{chunk-VWHHKAHN.esm.js → chunk-C6IXFM4T.esm.js} +4 -4
- package/dist/{chunk-QVAUCVQA.esm.js → chunk-FOD67Z6G.esm.js} +42 -0
- package/dist/{chunk-GBBLAM3G.esm.js → chunk-GLPOVYEA.esm.js} +776 -172
- package/dist/{chunk-CFU3YDTV.esm.js → chunk-RZ6QC6RG.esm.js} +5 -5
- package/dist/{chunk-5ZKLPWVN.esm.js → chunk-SNLXVG7H.esm.js} +1 -3
- package/dist/chunk-YEFBANNF.esm.js +3485 -0
- package/dist/index.cjs +3965 -84
- package/dist/index.d.cts +5 -3
- package/dist/index.d.ts +5 -3
- package/dist/index.esm.js +409 -9
- package/dist/studio.cjs +23 -1
- package/dist/studio.esm.js +5 -5
- package/dist/styles.css +194 -0
- package/dist/ui.cjs +3354 -89
- package/dist/ui.d.cts +402 -6
- package/dist/ui.d.ts +402 -6
- package/dist/ui.esm.js +384 -6
- package/package.json +3 -1
- package/dist/chunk-P4SN7M67.esm.js +0 -435
package/dist/app.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { A as APP_KIT_AGENT_INSTRUCTIONS, a as AppChatPanel, b as AppChatPanelProps, c as AppConfirmDialog, d as AppConfirmDialogProps, e as AppCopilotContextValue, f as AppCopilotProvider, g as AppCopilotProviderProps, h as AppShell, i as AppShellChatControls, j as AppShellChatTrigger, k as AppShellChatTriggerProps, l as AppShellProps, m as AppShellTopbar, n as AppShellTopbarProps, B as
|
|
2
|
-
export { B as Button } from './button-
|
|
1
|
+
export { A as APP_KIT_AGENT_INSTRUCTIONS, a as AppChatPanel, b as AppChatPanelProps, c as AppConfirmDialog, d as AppConfirmDialogProps, e as AppCopilotContextValue, f as AppCopilotProvider, g as AppCopilotProviderProps, h as AppShell, i as AppShellChatControls, j as AppShellChatTrigger, k as AppShellChatTriggerProps, l as AppShellProps, m as AppShellTopbar, n as AppShellTopbarProps, B as BreadcrumbEntry, o as BreadcrumbItem, p as Breadcrumbs, q as BreadcrumbsProps, C as CHART_PALETTE, r as COLOR_UTILITY_PREFIXES, s as ChartArtifactView, t as ChartLayout, u as ChartPanel, v as ChartPanelProps, w as ChartSeries, x as ChartVariant, y as ConnectionRow, z as ConnectionRowList, D as ConnectionRowListProps, E as ConnectionRowProps, F as DangerZone, G as DangerZoneAction, H as DangerZoneActionProps, I as DangerZoneProps, J as DataTable, K as DataTableColumn, L as DataTableProps, M as DataTableSort, N as DataTableSortDirection, O as DescriptionItem, P as DescriptionList, Q as DescriptionListProps, R as EmptyState, S as EmptyStateProps, T as ExpandableSection, U as ExpandableSectionProps, V as Field, W as FieldInput, X as FieldInputProps, Y as FieldProps, Z as FieldRow, _ as FieldRowProps, $ as FieldSelect, a0 as FieldSelectProps, a1 as FieldSwitch, a2 as FieldSwitchProps, a3 as FieldTextarea, a4 as FieldTextareaProps, a5 as FilterBar, a6 as FilterBarProps, a7 as FloatingUnsavedChangesBar, a8 as FloatingUnsavedChangesBarProps, a9 as FormSection, aa as FormSectionProps, ab as HOUSE_RULES, ac as HouseRule, ad as INTEGRATION_CATALOG_CARD_HEIGHT_CLASS, ae as InfoCard, af as InfoCardProps, ag as InfoCardTone, ah as IntegrationCard, ai as IntegrationCardProps, aj as IntegrationCardStatus, ak as IntegrationsEmptyState, al as IntegrationsEmptyStateProps, am as LineAreaChart, an as LineAreaChartProps, ao as LintFinding, ap as LintOptions, aq as LintResult, ar as LintSeverity, as as MetricChartCard, at as MetricChartCardProps, au as MetricChartMetric, av as MetricRow, aw as MetricRowItem, ax as MetricRowProps, ay as MetricTile, az as MetricTileProps, aA as Page, aB as PageHeader, aC as PageHeaderProps, aD as PageProps, aE as PlanBadge, aF as PlanBadgeProps, aG as PlanBadgeTone, aH as RESERVED_GRADIENT_TOKENS, aI as ResourceCard, aJ as ResourceCardProps, aK as ReviewResult, aL as SEMANTIC_COLOR_TOKENS, aM as SLOP_BUDGETS, aN as SearchInput, aO as SearchInputProps, aP as Section, aQ as SectionProps, aR as SemanticColorToken, aS as SettingsSection, aT as SettingsSectionHeader, aU as SettingsSectionHeaderProps, aV as SettingsSectionProps, aW as Sparkline, aX as SparklineProps, aY as StatTile, aZ as StatTileProps, a_ as StatusBadge, a$ as StatusBadgeProps, b0 as StatusBadgeTone, b1 as StatusDot, b2 as StatusDotProps, b3 as StatusDotTone, b4 as SubNav, b5 as SubNavItem, b6 as SubNavProps, b7 as SurfaceCard, b8 as SurfaceCardProps, b9 as TAILWIND_PALETTE_COLORS, ba as THEME_AGENT_INSTRUCTIONS, bb as TIMBAL_THEME_PRESETS, bc as ThemePresetGallery, bd as ThemePresetGalleryProps, be as ThemeShadow, bf as ThemeToCssOptions, bg as ThemeTokenMap, bh as TimbalThemeIntent, bi as TimbalThemePreset, bj as TimbalThemePresetId, bk as TimbalThemeStyle, bl as TimbalThemeStyleProps, bm as TimbalThemeTokens, bn as TimbalThemeTypography, bo as UI_REVIEW_AGENT_INSTRUCTIONS, bp as applyThemePreset, bq as applyTimbalTheme, br as clearTimbalTheme, bs as connectionRowListClass, bt as createTimbalTheme, bu as ensureThemeFontLink, bv as formatLintReport, bw as getStoredThemePreset, bx as getThemePreset, by as lintGeneratedUi, bz as reviewGeneratedUi, bA as themeToCss, bB as useAppCopilotContext, bC as useAppShellChat } from './chart-artifact-DOkwSTjQ.cjs';
|
|
2
|
+
export { B as Button } from './button-BoyX5pM_.cjs';
|
|
3
3
|
export { C as ChartArtifact, T as ThreadVariant, a as TimbalChat, b as TimbalChatProps } from './chat-Bed4FQSl.cjs';
|
|
4
4
|
import 'react';
|
|
5
5
|
import 'react/jsx-runtime';
|
|
@@ -26,7 +26,8 @@ declare const appSurfaceCardClass: string;
|
|
|
26
26
|
declare const appStatTileClass: string;
|
|
27
27
|
/** Filter bar chrome — horizontal controls row. */
|
|
28
28
|
declare const appFilterBarClass: string;
|
|
29
|
-
/** Search inputs in filter bars —
|
|
29
|
+
/** Search inputs in filter bars — shared control skin (field shape), so a
|
|
30
|
+
* search field and a dropdown placed side by side match exactly. */
|
|
30
31
|
declare const appSearchInputClass: string;
|
|
31
32
|
|
|
32
33
|
export { appFilterBarClass, appPageColumnClass, appSearchInputClass, appShellInsetTopClass, appShellTopbarInsetClass, appStatTileClass, appSurfaceCardClass };
|
package/dist/app.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { A as APP_KIT_AGENT_INSTRUCTIONS, a as AppChatPanel, b as AppChatPanelProps, c as AppConfirmDialog, d as AppConfirmDialogProps, e as AppCopilotContextValue, f as AppCopilotProvider, g as AppCopilotProviderProps, h as AppShell, i as AppShellChatControls, j as AppShellChatTrigger, k as AppShellChatTriggerProps, l as AppShellProps, m as AppShellTopbar, n as AppShellTopbarProps, B as
|
|
2
|
-
export { B as Button } from './button-
|
|
1
|
+
export { A as APP_KIT_AGENT_INSTRUCTIONS, a as AppChatPanel, b as AppChatPanelProps, c as AppConfirmDialog, d as AppConfirmDialogProps, e as AppCopilotContextValue, f as AppCopilotProvider, g as AppCopilotProviderProps, h as AppShell, i as AppShellChatControls, j as AppShellChatTrigger, k as AppShellChatTriggerProps, l as AppShellProps, m as AppShellTopbar, n as AppShellTopbarProps, B as BreadcrumbEntry, o as BreadcrumbItem, p as Breadcrumbs, q as BreadcrumbsProps, C as CHART_PALETTE, r as COLOR_UTILITY_PREFIXES, s as ChartArtifactView, t as ChartLayout, u as ChartPanel, v as ChartPanelProps, w as ChartSeries, x as ChartVariant, y as ConnectionRow, z as ConnectionRowList, D as ConnectionRowListProps, E as ConnectionRowProps, F as DangerZone, G as DangerZoneAction, H as DangerZoneActionProps, I as DangerZoneProps, J as DataTable, K as DataTableColumn, L as DataTableProps, M as DataTableSort, N as DataTableSortDirection, O as DescriptionItem, P as DescriptionList, Q as DescriptionListProps, R as EmptyState, S as EmptyStateProps, T as ExpandableSection, U as ExpandableSectionProps, V as Field, W as FieldInput, X as FieldInputProps, Y as FieldProps, Z as FieldRow, _ as FieldRowProps, $ as FieldSelect, a0 as FieldSelectProps, a1 as FieldSwitch, a2 as FieldSwitchProps, a3 as FieldTextarea, a4 as FieldTextareaProps, a5 as FilterBar, a6 as FilterBarProps, a7 as FloatingUnsavedChangesBar, a8 as FloatingUnsavedChangesBarProps, a9 as FormSection, aa as FormSectionProps, ab as HOUSE_RULES, ac as HouseRule, ad as INTEGRATION_CATALOG_CARD_HEIGHT_CLASS, ae as InfoCard, af as InfoCardProps, ag as InfoCardTone, ah as IntegrationCard, ai as IntegrationCardProps, aj as IntegrationCardStatus, ak as IntegrationsEmptyState, al as IntegrationsEmptyStateProps, am as LineAreaChart, an as LineAreaChartProps, ao as LintFinding, ap as LintOptions, aq as LintResult, ar as LintSeverity, as as MetricChartCard, at as MetricChartCardProps, au as MetricChartMetric, av as MetricRow, aw as MetricRowItem, ax as MetricRowProps, ay as MetricTile, az as MetricTileProps, aA as Page, aB as PageHeader, aC as PageHeaderProps, aD as PageProps, aE as PlanBadge, aF as PlanBadgeProps, aG as PlanBadgeTone, aH as RESERVED_GRADIENT_TOKENS, aI as ResourceCard, aJ as ResourceCardProps, aK as ReviewResult, aL as SEMANTIC_COLOR_TOKENS, aM as SLOP_BUDGETS, aN as SearchInput, aO as SearchInputProps, aP as Section, aQ as SectionProps, aR as SemanticColorToken, aS as SettingsSection, aT as SettingsSectionHeader, aU as SettingsSectionHeaderProps, aV as SettingsSectionProps, aW as Sparkline, aX as SparklineProps, aY as StatTile, aZ as StatTileProps, a_ as StatusBadge, a$ as StatusBadgeProps, b0 as StatusBadgeTone, b1 as StatusDot, b2 as StatusDotProps, b3 as StatusDotTone, b4 as SubNav, b5 as SubNavItem, b6 as SubNavProps, b7 as SurfaceCard, b8 as SurfaceCardProps, b9 as TAILWIND_PALETTE_COLORS, ba as THEME_AGENT_INSTRUCTIONS, bb as TIMBAL_THEME_PRESETS, bc as ThemePresetGallery, bd as ThemePresetGalleryProps, be as ThemeShadow, bf as ThemeToCssOptions, bg as ThemeTokenMap, bh as TimbalThemeIntent, bi as TimbalThemePreset, bj as TimbalThemePresetId, bk as TimbalThemeStyle, bl as TimbalThemeStyleProps, bm as TimbalThemeTokens, bn as TimbalThemeTypography, bo as UI_REVIEW_AGENT_INSTRUCTIONS, bp as applyThemePreset, bq as applyTimbalTheme, br as clearTimbalTheme, bs as connectionRowListClass, bt as createTimbalTheme, bu as ensureThemeFontLink, bv as formatLintReport, bw as getStoredThemePreset, bx as getThemePreset, by as lintGeneratedUi, bz as reviewGeneratedUi, bA as themeToCss, bB as useAppCopilotContext, bC as useAppShellChat } from './chart-artifact-CBo9x8Ch.js';
|
|
2
|
+
export { B as Button } from './button-BoyX5pM_.js';
|
|
3
3
|
export { C as ChartArtifact, T as ThreadVariant, a as TimbalChat, b as TimbalChatProps } from './chat-Bed4FQSl.js';
|
|
4
4
|
import 'react';
|
|
5
5
|
import 'react/jsx-runtime';
|
|
@@ -26,7 +26,8 @@ declare const appSurfaceCardClass: string;
|
|
|
26
26
|
declare const appStatTileClass: string;
|
|
27
27
|
/** Filter bar chrome — horizontal controls row. */
|
|
28
28
|
declare const appFilterBarClass: string;
|
|
29
|
-
/** Search inputs in filter bars —
|
|
29
|
+
/** Search inputs in filter bars — shared control skin (field shape), so a
|
|
30
|
+
* search field and a dropdown placed side by side match exactly. */
|
|
30
31
|
declare const appSearchInputClass: string;
|
|
31
32
|
|
|
32
33
|
export { appFilterBarClass, appPageColumnClass, appSearchInputClass, appShellInsetTopClass, appShellTopbarInsetClass, appStatTileClass, appSurfaceCardClass };
|
package/dist/app.esm.js
CHANGED
|
@@ -7,6 +7,7 @@ import {
|
|
|
7
7
|
AppShellChatTrigger,
|
|
8
8
|
AppShellTopbar,
|
|
9
9
|
Breadcrumbs,
|
|
10
|
+
COLOR_UTILITY_PREFIXES,
|
|
10
11
|
ChartPanel,
|
|
11
12
|
ConnectionRow,
|
|
12
13
|
ConnectionRowList,
|
|
@@ -25,6 +26,7 @@ import {
|
|
|
25
26
|
FilterBar,
|
|
26
27
|
FloatingUnsavedChangesBar,
|
|
27
28
|
FormSection,
|
|
29
|
+
HOUSE_RULES,
|
|
28
30
|
INTEGRATION_CATALOG_CARD_HEIGHT_CLASS,
|
|
29
31
|
InfoCard,
|
|
30
32
|
IntegrationCard,
|
|
@@ -35,7 +37,10 @@ import {
|
|
|
35
37
|
Page,
|
|
36
38
|
PageHeader,
|
|
37
39
|
PlanBadge,
|
|
40
|
+
RESERVED_GRADIENT_TOKENS,
|
|
38
41
|
ResourceCard,
|
|
42
|
+
SEMANTIC_COLOR_TOKENS,
|
|
43
|
+
SLOP_BUDGETS,
|
|
39
44
|
SearchInput,
|
|
40
45
|
Section,
|
|
41
46
|
SettingsSection,
|
|
@@ -46,10 +51,12 @@ import {
|
|
|
46
51
|
StatusDot,
|
|
47
52
|
SubNav,
|
|
48
53
|
SurfaceCard,
|
|
54
|
+
TAILWIND_PALETTE_COLORS,
|
|
49
55
|
THEME_AGENT_INSTRUCTIONS,
|
|
50
56
|
TIMBAL_THEME_PRESETS,
|
|
51
57
|
ThemePresetGallery,
|
|
52
58
|
TimbalThemeStyle,
|
|
59
|
+
UI_REVIEW_AGENT_INSTRUCTIONS,
|
|
53
60
|
appFilterBarClass,
|
|
54
61
|
appPageColumnClass,
|
|
55
62
|
appSearchInputClass,
|
|
@@ -62,23 +69,27 @@ import {
|
|
|
62
69
|
clearTimbalTheme,
|
|
63
70
|
connectionRowListClass,
|
|
64
71
|
createTimbalTheme,
|
|
72
|
+
ensureThemeFontLink,
|
|
73
|
+
formatLintReport,
|
|
65
74
|
getStoredThemePreset,
|
|
66
75
|
getThemePreset,
|
|
76
|
+
lintGeneratedUi,
|
|
77
|
+
reviewGeneratedUi,
|
|
67
78
|
themeToCss,
|
|
68
79
|
useAppCopilotContext,
|
|
69
80
|
useAppShellChat
|
|
70
|
-
} from "./chunk-
|
|
81
|
+
} from "./chunk-GLPOVYEA.esm.js";
|
|
71
82
|
import "./chunk-QIABF4KB.esm.js";
|
|
72
83
|
import {
|
|
73
84
|
CHART_PALETTE,
|
|
74
85
|
ChartArtifactView,
|
|
75
86
|
LineAreaChart,
|
|
76
87
|
TimbalChat
|
|
77
|
-
} from "./chunk-
|
|
78
|
-
import "./chunk-
|
|
88
|
+
} from "./chunk-SNLXVG7H.esm.js";
|
|
89
|
+
import "./chunk-AYHOVAMI.esm.js";
|
|
79
90
|
import {
|
|
80
91
|
Button
|
|
81
|
-
} from "./chunk-
|
|
92
|
+
} from "./chunk-FOD67Z6G.esm.js";
|
|
82
93
|
export {
|
|
83
94
|
APP_KIT_AGENT_INSTRUCTIONS,
|
|
84
95
|
AppChatPanel,
|
|
@@ -90,6 +101,7 @@ export {
|
|
|
90
101
|
Breadcrumbs,
|
|
91
102
|
Button,
|
|
92
103
|
CHART_PALETTE,
|
|
104
|
+
COLOR_UTILITY_PREFIXES,
|
|
93
105
|
ChartArtifactView,
|
|
94
106
|
ChartPanel,
|
|
95
107
|
ConnectionRow,
|
|
@@ -109,6 +121,7 @@ export {
|
|
|
109
121
|
FilterBar,
|
|
110
122
|
FloatingUnsavedChangesBar,
|
|
111
123
|
FormSection,
|
|
124
|
+
HOUSE_RULES,
|
|
112
125
|
INTEGRATION_CATALOG_CARD_HEIGHT_CLASS,
|
|
113
126
|
InfoCard,
|
|
114
127
|
IntegrationCard,
|
|
@@ -120,7 +133,10 @@ export {
|
|
|
120
133
|
Page,
|
|
121
134
|
PageHeader,
|
|
122
135
|
PlanBadge,
|
|
136
|
+
RESERVED_GRADIENT_TOKENS,
|
|
123
137
|
ResourceCard,
|
|
138
|
+
SEMANTIC_COLOR_TOKENS,
|
|
139
|
+
SLOP_BUDGETS,
|
|
124
140
|
SearchInput,
|
|
125
141
|
Section,
|
|
126
142
|
SettingsSection,
|
|
@@ -131,11 +147,13 @@ export {
|
|
|
131
147
|
StatusDot,
|
|
132
148
|
SubNav,
|
|
133
149
|
SurfaceCard,
|
|
150
|
+
TAILWIND_PALETTE_COLORS,
|
|
134
151
|
THEME_AGENT_INSTRUCTIONS,
|
|
135
152
|
TIMBAL_THEME_PRESETS,
|
|
136
153
|
ThemePresetGallery,
|
|
137
154
|
TimbalChat,
|
|
138
155
|
TimbalThemeStyle,
|
|
156
|
+
UI_REVIEW_AGENT_INSTRUCTIONS,
|
|
139
157
|
appFilterBarClass,
|
|
140
158
|
appPageColumnClass,
|
|
141
159
|
appSearchInputClass,
|
|
@@ -148,8 +166,12 @@ export {
|
|
|
148
166
|
clearTimbalTheme,
|
|
149
167
|
connectionRowListClass,
|
|
150
168
|
createTimbalTheme,
|
|
169
|
+
ensureThemeFontLink,
|
|
170
|
+
formatLintReport,
|
|
151
171
|
getStoredThemePreset,
|
|
152
172
|
getThemePreset,
|
|
173
|
+
lintGeneratedUi,
|
|
174
|
+
reviewGeneratedUi,
|
|
153
175
|
themeToCss,
|
|
154
176
|
useAppCopilotContext,
|
|
155
177
|
useAppShellChat
|
|
@@ -8,7 +8,7 @@ import { VariantProps } from 'class-variance-authority';
|
|
|
8
8
|
* Fill / border / shadow come from `button-tokens` via `TimbalV2Button`.
|
|
9
9
|
*/
|
|
10
10
|
declare const buttonVariants: (props?: ({
|
|
11
|
-
variant?: "
|
|
11
|
+
variant?: "secondary" | "destructive" | "outline" | "link" | "ghost" | "default" | null | undefined;
|
|
12
12
|
size?: "xs" | "sm" | "lg" | "default" | "icon" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
|
|
13
13
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
14
14
|
declare function Button({ className, variant, size, asChild, ...props }: React.ComponentProps<"button"> & VariantProps<typeof buttonVariants> & {
|
|
@@ -8,7 +8,7 @@ import { VariantProps } from 'class-variance-authority';
|
|
|
8
8
|
* Fill / border / shadow come from `button-tokens` via `TimbalV2Button`.
|
|
9
9
|
*/
|
|
10
10
|
declare const buttonVariants: (props?: ({
|
|
11
|
-
variant?: "
|
|
11
|
+
variant?: "secondary" | "destructive" | "outline" | "link" | "ghost" | "default" | null | undefined;
|
|
12
12
|
size?: "xs" | "sm" | "lg" | "default" | "icon" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
|
|
13
13
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
14
14
|
declare function Button({ className, variant, size, asChild, ...props }: React.ComponentProps<"button"> & VariantProps<typeof buttonVariants> & {
|
|
@@ -16,6 +16,179 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
|
16
16
|
*/
|
|
17
17
|
declare const APP_KIT_AGENT_INSTRUCTIONS: string;
|
|
18
18
|
|
|
19
|
+
/**
|
|
20
|
+
* The single source of truth for what generated Timbal UIs are *allowed* to
|
|
21
|
+
* look like — the anti-slop constraint, encoded as data.
|
|
22
|
+
*
|
|
23
|
+
* Both the deterministic linter (`ui-lint.ts`) and the agent prompt
|
|
24
|
+
* (`APP_KIT_AGENT_INSTRUCTIONS`) read from this module, so the rules a model is
|
|
25
|
+
* told and the rules it is checked against can never drift apart.
|
|
26
|
+
*
|
|
27
|
+
* "Slop" = the generic AI-dashboard look: a decorative icon on every tile,
|
|
28
|
+
* loud green/red trend pills, arbitrary palette colors, gratuitous dividers,
|
|
29
|
+
* card-in-card nesting, bold giant numbers. Taste lives here, not in prose.
|
|
30
|
+
*
|
|
31
|
+
* This is a **public, documented** API (exported from the package root and
|
|
32
|
+
* `/app`), in the same tier as the theme generator — not an internal class
|
|
33
|
+
* composite.
|
|
34
|
+
*/
|
|
35
|
+
/**
|
|
36
|
+
* Semantic color token roots the design system defines (see `styles.css`).
|
|
37
|
+
* Generated code may only reach for colors through these — `bg-background`,
|
|
38
|
+
* `text-muted-foreground`, `border-border`, `text-primary`, `bg-destructive`,
|
|
39
|
+
* the timbal chrome extensions, etc. Anything else is slop.
|
|
40
|
+
*/
|
|
41
|
+
declare const SEMANTIC_COLOR_TOKENS: readonly ["background", "foreground", "card", "card-foreground", "popover", "popover-foreground", "primary", "primary-foreground", "secondary", "secondary-foreground", "muted", "muted-foreground", "accent", "accent-foreground", "destructive", "destructive-foreground", "border", "input", "ring", "sidebar", "sidebar-foreground", "sidebar-primary", "sidebar-primary-foreground", "sidebar-accent", "sidebar-accent-foreground", "sidebar-border", "sidebar-ring", "elevated-from", "elevated-to", "modal-from", "modal-to", "playground-from", "playground-via", "playground-to", "composer-bg", "composer-border", "composer-border-focus", "bubble-user", "bubble-user-foreground", "code-block-bg", "code-header-bg"];
|
|
42
|
+
type SemanticColorToken = (typeof SEMANTIC_COLOR_TOKENS)[number];
|
|
43
|
+
/**
|
|
44
|
+
* Gradient / fill tokens reserved for **chrome only** (buttons, the elevated
|
|
45
|
+
* surface, the modal shell, the playground backdrop). They must never decorate
|
|
46
|
+
* a data card, a stat tile, or a list — that is the canonical "slop gradient".
|
|
47
|
+
*/
|
|
48
|
+
declare const RESERVED_GRADIENT_TOKENS: readonly ["primary-fill-from", "primary-fill-to", "primary-fill-hover-from", "primary-fill-hover-to", "primary-fill-active-from", "primary-fill-active-to", "secondary-fill-hover-from", "secondary-fill-hover-to", "secondary-fill-active-from", "secondary-fill-active-to", "destructive-fill-hover-from", "destructive-fill-hover-to", "destructive-fill-active-from", "destructive-fill-active-to", "ghost-fill-hover", "ghost-fill-active", "elevated-from", "elevated-to", "modal-from", "modal-to", "playground-from", "playground-via", "playground-to"];
|
|
49
|
+
/**
|
|
50
|
+
* The Tailwind named palette. Any of these followed by a numeric shade
|
|
51
|
+
* (`-50`..`-950`) in a color utility is a hardcoded color — not a token —
|
|
52
|
+
* and is rejected by the linter.
|
|
53
|
+
*/
|
|
54
|
+
declare const TAILWIND_PALETTE_COLORS: readonly ["slate", "gray", "zinc", "neutral", "stone", "red", "orange", "amber", "yellow", "lime", "green", "emerald", "teal", "cyan", "sky", "blue", "indigo", "violet", "purple", "fuchsia", "pink", "rose"];
|
|
55
|
+
/** Tailwind color-bearing utility prefixes the linter inspects. */
|
|
56
|
+
declare const COLOR_UTILITY_PREFIXES: readonly ["bg", "text", "border", "ring", "from", "via", "to", "fill", "stroke", "decoration", "outline", "shadow", "divide", "accent", "caret"];
|
|
57
|
+
/**
|
|
58
|
+
* Numeric budgets the linter enforces. Tuned for "tasteful dashboard", not
|
|
59
|
+
* "icon confetti". A view that needs more icons than this is almost always
|
|
60
|
+
* decorating instead of communicating.
|
|
61
|
+
*/
|
|
62
|
+
declare const SLOP_BUDGETS: {
|
|
63
|
+
/** Max decorative/standalone icons rendered in a single generated file. */
|
|
64
|
+
readonly maxIconsPerView: 6;
|
|
65
|
+
/** Max consecutive list rows separated by an explicit border/divider before
|
|
66
|
+
* it reads as a "ruled table" — prefer spacing or zebra instead. */
|
|
67
|
+
readonly maxRowDividers: 2;
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* House-style rules in plain language. The prompt renders these verbatim and
|
|
71
|
+
* the linter maps each `id` to a check, so the model is told and tested on the
|
|
72
|
+
* exact same list.
|
|
73
|
+
*/
|
|
74
|
+
interface HouseRule {
|
|
75
|
+
id: string;
|
|
76
|
+
/** One-line imperative the agent reads. */
|
|
77
|
+
rule: string;
|
|
78
|
+
/** Why it matters (kept short — models follow rules with rationale better). */
|
|
79
|
+
why: string;
|
|
80
|
+
/** A wrong example (kept to a fragment). */
|
|
81
|
+
slop?: string;
|
|
82
|
+
/** The tasteful equivalent. */
|
|
83
|
+
good?: string;
|
|
84
|
+
}
|
|
85
|
+
declare const HOUSE_RULES: readonly HouseRule[];
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Deterministic anti-slop linter for generated Timbal UI code.
|
|
89
|
+
*
|
|
90
|
+
* Runs a dependency-free line scan over a `.tsx` string and flags the patterns
|
|
91
|
+
* that turn a clean dashboard into generic AI slop: hardcoded colors, icon
|
|
92
|
+
* spam, bold giant numbers, divider-per-row lists, gradients on data cards.
|
|
93
|
+
*
|
|
94
|
+
* It intentionally avoids a full AST/parser dependency — the checks are
|
|
95
|
+
* line/regex heuristics tuned for high precision on the patterns that actually
|
|
96
|
+
* recur in generated output. Feed `formatLintReport(findings)` back to the
|
|
97
|
+
* generating agent (see `reviewGeneratedUi`) so it can self-correct.
|
|
98
|
+
*
|
|
99
|
+
* Public, documented API — exported from the package root and `/app`.
|
|
100
|
+
*/
|
|
101
|
+
type LintSeverity = "error" | "warn";
|
|
102
|
+
interface LintFinding {
|
|
103
|
+
/** Stable rule id (maps to a HouseRule where applicable). */
|
|
104
|
+
rule: string;
|
|
105
|
+
severity: LintSeverity;
|
|
106
|
+
/** 1-based line number in the supplied source. */
|
|
107
|
+
line: number;
|
|
108
|
+
/** Human-readable explanation + fix. */
|
|
109
|
+
message: string;
|
|
110
|
+
/** The offending source fragment (trimmed). */
|
|
111
|
+
snippet: string;
|
|
112
|
+
}
|
|
113
|
+
interface LintResult {
|
|
114
|
+
findings: LintFinding[];
|
|
115
|
+
errorCount: number;
|
|
116
|
+
warnCount: number;
|
|
117
|
+
/** True when there are no `error`-severity findings. */
|
|
118
|
+
ok: boolean;
|
|
119
|
+
}
|
|
120
|
+
interface LintOptions {
|
|
121
|
+
/** Max standalone icons before `icon-spam` fires. Defaults to the budget. */
|
|
122
|
+
maxIconsPerView?: number;
|
|
123
|
+
/** Max bordered list rows before `row-divider` fires. Defaults to the budget. */
|
|
124
|
+
maxRowDividers?: number;
|
|
125
|
+
/** Treat warnings as errors (so `ok` reflects them too). */
|
|
126
|
+
strict?: boolean;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Lint a single generated `.tsx` (or fragment) string for slop.
|
|
130
|
+
*
|
|
131
|
+
* @example
|
|
132
|
+
* ```ts
|
|
133
|
+
* const { ok, findings } = lintGeneratedUi(generatedTsx);
|
|
134
|
+
* if (!ok) sendBackToAgent(formatLintReport(findings));
|
|
135
|
+
* ```
|
|
136
|
+
*/
|
|
137
|
+
declare function lintGeneratedUi(source: string, options?: LintOptions): LintResult;
|
|
138
|
+
/**
|
|
139
|
+
* Render lint findings as a compact, agent- and human-readable report.
|
|
140
|
+
* Empty string when there are no findings.
|
|
141
|
+
*/
|
|
142
|
+
declare function formatLintReport(findings: LintFinding[]): string;
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Layer 4 of the anti-slop system: the critique loop.
|
|
146
|
+
*
|
|
147
|
+
* `reviewGeneratedUi` runs the deterministic linter (Layer 2) and packages the
|
|
148
|
+
* result into something a generating agent can act on in one round-trip — a
|
|
149
|
+
* pass/fail verdict plus a ready-to-send revision prompt that names the exact
|
|
150
|
+
* lines and fixes. The system prompt string (`UI_REVIEW_AGENT_INSTRUCTIONS`)
|
|
151
|
+
* teaches the model to self-review *before* it returns code, so the loop is
|
|
152
|
+
* usually closed without a second model call.
|
|
153
|
+
*
|
|
154
|
+
* Public, documented API — exported from the package root and `/app`.
|
|
155
|
+
*/
|
|
156
|
+
|
|
157
|
+
interface ReviewResult {
|
|
158
|
+
/** Raw linter output. */
|
|
159
|
+
lint: LintResult;
|
|
160
|
+
/** True when no blocking (error-severity, or any warning in strict mode) findings remain. */
|
|
161
|
+
passed: boolean;
|
|
162
|
+
/** Compact human/agent-readable report ("" when clean). */
|
|
163
|
+
report: string;
|
|
164
|
+
/**
|
|
165
|
+
* A ready-to-send follow-up prompt instructing the agent to fix the findings,
|
|
166
|
+
* or `null` when the UI passed. Send this back to the model and re-run
|
|
167
|
+
* `reviewGeneratedUi` on its next output until `passed` is true.
|
|
168
|
+
*/
|
|
169
|
+
revisionPrompt: string | null;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Review a generated `.tsx` string for slop and produce an actionable verdict.
|
|
173
|
+
*
|
|
174
|
+
* @example
|
|
175
|
+
* ```ts
|
|
176
|
+
* let code = await generate(userPrompt);
|
|
177
|
+
* for (let i = 0; i < 2; i++) {
|
|
178
|
+
* const review = reviewGeneratedUi(code, { strict: true });
|
|
179
|
+
* if (review.passed) break;
|
|
180
|
+
* code = await generate(review.revisionPrompt!); // agent fixes named issues
|
|
181
|
+
* }
|
|
182
|
+
* ```
|
|
183
|
+
*/
|
|
184
|
+
declare function reviewGeneratedUi(source: string, options?: LintOptions): ReviewResult;
|
|
185
|
+
/**
|
|
186
|
+
* Append to a UI-generation agent's system prompt so it self-reviews before
|
|
187
|
+
* returning code. Pairs with `APP_KIT_AGENT_INSTRUCTIONS` and
|
|
188
|
+
* `THEME_AGENT_INSTRUCTIONS`.
|
|
189
|
+
*/
|
|
190
|
+
declare const UI_REVIEW_AGENT_INSTRUCTIONS: string;
|
|
191
|
+
|
|
19
192
|
/**
|
|
20
193
|
* Theme generator — turn brand *intent* into a complete, paired light + dark
|
|
21
194
|
* token set, so agents and apps never hand-author `oklch(...)` or risk a
|
|
@@ -41,15 +214,39 @@ interface TimbalThemeTokens {
|
|
|
41
214
|
light: ThemeTokenMap;
|
|
42
215
|
/** Variables applied in `.dark`. */
|
|
43
216
|
dark: ThemeTokenMap;
|
|
44
|
-
/** Mode-independent variables (e.g. `--radius`) applied once in `:root`. */
|
|
217
|
+
/** Mode-independent variables (e.g. `--radius`, `--font-sans`) applied once in `:root`. */
|
|
45
218
|
root?: ThemeTokenMap;
|
|
219
|
+
/**
|
|
220
|
+
* Font stack applied as `font-family` on the theme scope (and `body`), so
|
|
221
|
+
* every component re-skins. Set independently of the `--font-*` vars so the
|
|
222
|
+
* serializer can emit the actual `font-family` declaration.
|
|
223
|
+
*/
|
|
224
|
+
fontFamily?: string;
|
|
225
|
+
/**
|
|
226
|
+
* Optional stylesheet URL (e.g. a Google Fonts link) that loads the font in
|
|
227
|
+
* `fontFamily`. Injected as a `<link>` by `applyTimbalTheme` / `TimbalThemeStyle`;
|
|
228
|
+
* for build-time `themeToCss` the host should add the link itself.
|
|
229
|
+
*/
|
|
230
|
+
fontImportUrl?: string;
|
|
231
|
+
}
|
|
232
|
+
/** Drop-shadow weight for cards / elevated surfaces. */
|
|
233
|
+
type ThemeShadow = "none" | "hairline" | "soft" | "medium" | "strong";
|
|
234
|
+
interface TimbalThemeTypography {
|
|
235
|
+
/** Body / UI font stack. Applied as `font-family` and `--font-sans`. */
|
|
236
|
+
sans: string;
|
|
237
|
+
/** Optional heading/display stack (`--font-display`; falls back to sans). */
|
|
238
|
+
display?: string;
|
|
239
|
+
/** Optional monospace stack (`--font-mono`). */
|
|
240
|
+
mono?: string;
|
|
241
|
+
/** Optional stylesheet URL that loads the fonts (Google Fonts CSS, etc.). */
|
|
242
|
+
importUrl?: string;
|
|
46
243
|
}
|
|
47
244
|
interface TimbalThemeIntent {
|
|
48
245
|
/** Primary brand color — any CSS color: `#4f46e5`, `rgb(...)`, `oklch(...)`. */
|
|
49
246
|
brand: string;
|
|
50
247
|
/** Optional secondary accent. Defaults to a desaturated brand. */
|
|
51
248
|
accent?: string;
|
|
52
|
-
/** Corner radius in rem (maps to `--radius`). Default
|
|
249
|
+
/** Corner radius in rem (maps to `--radius` + `--radius-2xl`). Default 0.75. */
|
|
53
250
|
radius?: number;
|
|
54
251
|
/**
|
|
55
252
|
* Tint neutral surfaces (background / muted / border) toward the brand hue
|
|
@@ -57,6 +254,13 @@ interface TimbalThemeIntent {
|
|
|
57
254
|
* keeps the shipped neutral grays.
|
|
58
255
|
*/
|
|
59
256
|
tintNeutrals?: boolean;
|
|
257
|
+
/**
|
|
258
|
+
* Full typography personality (font stacks + optional web-font URL). When
|
|
259
|
+
* set, the generated theme re-skins every component's font.
|
|
260
|
+
*/
|
|
261
|
+
typography?: TimbalThemeTypography;
|
|
262
|
+
/** Shadow weight for cards / elevated surfaces. Default keeps the shipped `medium`. */
|
|
263
|
+
shadow?: ThemeShadow;
|
|
60
264
|
}
|
|
61
265
|
/**
|
|
62
266
|
* Derive a complete paired token set from brand intent. Pure — safe in SSR,
|
|
@@ -72,20 +276,35 @@ interface ThemeToCssOptions {
|
|
|
72
276
|
scope?: string;
|
|
73
277
|
/** Indentation for emitted declarations. Default two spaces. */
|
|
74
278
|
indent?: string;
|
|
279
|
+
/**
|
|
280
|
+
* Prepend an `@import url("…")` for the theme's `fontImportUrl`. Off by
|
|
281
|
+
* default — `@import` must precede all other rules, so this is only safe when
|
|
282
|
+
* the returned CSS is the entire stylesheet. Prefer loading the font with a
|
|
283
|
+
* `<link>` (which `applyTimbalTheme` / `TimbalThemeStyle` do automatically).
|
|
284
|
+
*/
|
|
285
|
+
includeFontImport?: boolean;
|
|
75
286
|
}
|
|
76
287
|
/**
|
|
77
288
|
* Serialize a theme to a CSS string with paired `:root` (light) and `.dark`
|
|
78
289
|
* blocks — the exact shape apps would otherwise hand-author. Writing this in a
|
|
79
|
-
* single block guarantees light + dark stay in sync.
|
|
290
|
+
* single block guarantees light + dark stay in sync. When the theme carries a
|
|
291
|
+
* `fontFamily`, a matching `font-family` rule is emitted so every component
|
|
292
|
+
* re-skins (scoped to the subtree for previews, or `:root` + `body` globally).
|
|
80
293
|
*/
|
|
81
294
|
declare function themeToCss(theme: TimbalThemeTokens, options?: ThemeToCssOptions): string;
|
|
295
|
+
/**
|
|
296
|
+
* Ensure a stylesheet `<link>` for a web-font URL exists in `<head>`. Idempotent
|
|
297
|
+
* per URL; replaces any previously injected theme font link. No-op in SSR.
|
|
298
|
+
*/
|
|
299
|
+
declare function ensureThemeFontLink(url: string | undefined): void;
|
|
82
300
|
/**
|
|
83
301
|
* Apply a theme at runtime by injecting (or replacing) a single managed
|
|
84
|
-
* `<style>` element in `<head
|
|
85
|
-
* `next-themes` / `ModeToggle`
|
|
86
|
-
*
|
|
302
|
+
* `<style>` element in `<head>` (and a font `<link>` when the theme carries
|
|
303
|
+
* one). Works with the `.dark` class toggle used by `next-themes` / `ModeToggle`
|
|
304
|
+
* — both light and dark blocks are written, so switching mode never desyncs.
|
|
305
|
+
* No-op in SSR / non-DOM contexts.
|
|
87
306
|
*
|
|
88
|
-
* Returns a disposer that removes the injected style.
|
|
307
|
+
* Returns a disposer that removes the injected style + font link.
|
|
89
308
|
*/
|
|
90
309
|
declare function applyTimbalTheme(theme: TimbalThemeTokens): () => void;
|
|
91
310
|
/** Remove a runtime theme injected by {@link applyTimbalTheme}. */
|
|
@@ -101,7 +320,7 @@ declare function clearTimbalTheme(): void;
|
|
|
101
320
|
* infinite palette for both humans and models.
|
|
102
321
|
*/
|
|
103
322
|
|
|
104
|
-
type TimbalThemePresetId = "platform" | "indigo" | "violet" | "forest" | "warm" | "slate";
|
|
323
|
+
type TimbalThemePresetId = "platform" | "indigo" | "violet" | "forest" | "warm" | "slate" | "folio" | "carbon";
|
|
105
324
|
interface TimbalThemePreset {
|
|
106
325
|
id: TimbalThemePresetId;
|
|
107
326
|
/** Short human label for pickers. */
|
|
@@ -110,9 +329,12 @@ interface TimbalThemePreset {
|
|
|
110
329
|
description: string;
|
|
111
330
|
/** Representative swatch color (CSS) for chips / previews. */
|
|
112
331
|
swatch: string;
|
|
332
|
+
/** Human-readable font name (for picker chips). `null` = system default. */
|
|
333
|
+
font: string | null;
|
|
113
334
|
/**
|
|
114
|
-
*
|
|
115
|
-
* maps (no overrides
|
|
335
|
+
* Full personality token set — color + radius + shadow + typography.
|
|
336
|
+
* `platform` is the shipped neutral palette and has empty maps (no overrides;
|
|
337
|
+
* `styles.css` defaults apply).
|
|
116
338
|
*/
|
|
117
339
|
tokens: TimbalThemeTokens;
|
|
118
340
|
}
|
|
@@ -615,13 +837,15 @@ interface SubNavProps {
|
|
|
615
837
|
*/
|
|
616
838
|
declare const SubNav: FC<SubNavProps>;
|
|
617
839
|
|
|
618
|
-
interface
|
|
840
|
+
interface BreadcrumbEntry {
|
|
619
841
|
label: ReactNode;
|
|
620
842
|
href?: string;
|
|
621
843
|
onClick?: () => void;
|
|
622
844
|
}
|
|
845
|
+
/** @deprecated Use `BreadcrumbEntry` — avoids clashing with the UI `BreadcrumbItem` primitive. */
|
|
846
|
+
type BreadcrumbItem = BreadcrumbEntry;
|
|
623
847
|
interface BreadcrumbsProps {
|
|
624
|
-
items:
|
|
848
|
+
items: BreadcrumbEntry[];
|
|
625
849
|
className?: string;
|
|
626
850
|
}
|
|
627
851
|
declare const Breadcrumbs: FC<BreadcrumbsProps>;
|
|
@@ -917,4 +1141,4 @@ interface ChartArtifactViewProps {
|
|
|
917
1141
|
*/
|
|
918
1142
|
declare const ChartArtifactView: FC<ChartArtifactViewProps>;
|
|
919
1143
|
|
|
920
|
-
export {
|
|
1144
|
+
export { FieldSelect as $, APP_KIT_AGENT_INSTRUCTIONS as A, type BreadcrumbEntry as B, CHART_PALETTE as C, type ConnectionRowListProps as D, type ConnectionRowProps as E, DangerZone as F, DangerZoneAction as G, type DangerZoneActionProps as H, type DangerZoneProps as I, DataTable as J, type DataTableColumn as K, type DataTableProps as L, type DataTableSort as M, type DataTableSortDirection as N, type DescriptionItem as O, DescriptionList as P, type DescriptionListProps as Q, EmptyState as R, type EmptyStateProps as S, ExpandableSection as T, type ExpandableSectionProps as U, Field as V, FieldInput as W, type FieldInputProps as X, type FieldProps as Y, FieldRow as Z, type FieldRowProps as _, AppChatPanel as a, type StatusBadgeProps as a$, type FieldSelectProps as a0, FieldSwitch as a1, type FieldSwitchProps as a2, FieldTextarea as a3, type FieldTextareaProps as a4, FilterBar as a5, type FilterBarProps as a6, FloatingUnsavedChangesBar as a7, type FloatingUnsavedChangesBarProps as a8, FormSection as a9, Page as aA, PageHeader as aB, type PageHeaderProps as aC, type PageProps as aD, PlanBadge as aE, type PlanBadgeProps as aF, type PlanBadgeTone as aG, RESERVED_GRADIENT_TOKENS as aH, ResourceCard as aI, type ResourceCardProps as aJ, type ReviewResult as aK, SEMANTIC_COLOR_TOKENS as aL, SLOP_BUDGETS as aM, SearchInput as aN, type SearchInputProps as aO, Section as aP, type SectionProps as aQ, type SemanticColorToken as aR, SettingsSection as aS, SettingsSectionHeader as aT, type SettingsSectionHeaderProps as aU, type SettingsSectionProps as aV, Sparkline as aW, type SparklineProps as aX, StatTile as aY, type StatTileProps as aZ, StatusBadge as a_, type FormSectionProps as aa, HOUSE_RULES as ab, type HouseRule as ac, INTEGRATION_CATALOG_CARD_HEIGHT_CLASS as ad, InfoCard as ae, type InfoCardProps as af, type InfoCardTone as ag, IntegrationCard as ah, type IntegrationCardProps as ai, type IntegrationCardStatus as aj, IntegrationsEmptyState as ak, type IntegrationsEmptyStateProps as al, LineAreaChart as am, type LineAreaChartProps as an, type LintFinding as ao, type LintOptions as ap, type LintResult as aq, type LintSeverity as ar, MetricChartCard as as, type MetricChartCardProps as at, type MetricChartMetric as au, MetricRow as av, type MetricRowItem as aw, type MetricRowProps as ax, MetricTile as ay, type MetricTileProps as az, type AppChatPanelProps as b, type StatusBadgeTone as b0, StatusDot as b1, type StatusDotProps as b2, type StatusDotTone as b3, SubNav as b4, type SubNavItem as b5, type SubNavProps as b6, SurfaceCard as b7, type SurfaceCardProps as b8, TAILWIND_PALETTE_COLORS as b9, themeToCss as bA, useAppCopilotContext as bB, useAppShellChat as bC, THEME_AGENT_INSTRUCTIONS as ba, TIMBAL_THEME_PRESETS as bb, ThemePresetGallery as bc, type ThemePresetGalleryProps as bd, type ThemeShadow as be, type ThemeToCssOptions as bf, type ThemeTokenMap as bg, type TimbalThemeIntent as bh, type TimbalThemePreset as bi, type TimbalThemePresetId as bj, TimbalThemeStyle as bk, type TimbalThemeStyleProps as bl, type TimbalThemeTokens as bm, type TimbalThemeTypography as bn, UI_REVIEW_AGENT_INSTRUCTIONS as bo, applyThemePreset as bp, applyTimbalTheme as bq, clearTimbalTheme as br, connectionRowListClass as bs, createTimbalTheme as bt, ensureThemeFontLink as bu, formatLintReport as bv, getStoredThemePreset as bw, getThemePreset as bx, lintGeneratedUi as by, reviewGeneratedUi as bz, AppConfirmDialog as c, type AppConfirmDialogProps as d, type AppCopilotContextValue as e, AppCopilotProvider as f, type AppCopilotProviderProps as g, AppShell as h, type AppShellChatControls as i, AppShellChatTrigger as j, type AppShellChatTriggerProps as k, type AppShellProps as l, AppShellTopbar as m, type AppShellTopbarProps as n, type BreadcrumbItem as o, Breadcrumbs as p, type BreadcrumbsProps as q, COLOR_UTILITY_PREFIXES as r, ChartArtifactView as s, type ChartLayout as t, ChartPanel as u, type ChartPanelProps as v, type ChartSeries as w, type ChartVariant as x, ConnectionRow as y, ConnectionRowList as z };
|