@calliopelabs/ui 0.13.0 → 0.16.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.
Files changed (115) hide show
  1. package/README.md +192 -4
  2. package/dist/agent/AgentChat.d.ts +63 -0
  3. package/dist/agent/AgentChat.js +117 -0
  4. package/dist/agent/AgentLauncher.d.ts +25 -0
  5. package/dist/agent/AgentLauncher.js +25 -0
  6. package/dist/agent/AgentProvider.d.ts +82 -0
  7. package/dist/agent/AgentProvider.js +176 -0
  8. package/dist/agent/CalliopeAgent.d.ts +43 -0
  9. package/dist/agent/CalliopeAgent.js +111 -0
  10. package/dist/agent/WorkflowRenderers.d.ts +61 -0
  11. package/dist/agent/WorkflowRenderers.js +102 -0
  12. package/dist/agent/controller.d.ts +167 -0
  13. package/dist/agent/controller.js +496 -0
  14. package/dist/agent/copilotkit/CopilotKitAgentProvider.d.ts +41 -0
  15. package/dist/agent/copilotkit/CopilotKitAgentProvider.js +145 -0
  16. package/dist/agent/copilotkit/index.d.ts +6 -0
  17. package/dist/agent/copilotkit/index.js +6 -0
  18. package/dist/agent/engine.d.ts +41 -0
  19. package/dist/agent/engine.js +93 -0
  20. package/dist/agent/index.d.ts +17 -0
  21. package/dist/agent/index.js +17 -0
  22. package/dist/agent/mock.d.ts +56 -0
  23. package/dist/agent/mock.js +143 -0
  24. package/dist/agent/renderers.d.ts +49 -0
  25. package/dist/agent/renderers.js +27 -0
  26. package/dist/agent/surface.d.ts +30 -0
  27. package/dist/agent/surface.js +90 -0
  28. package/dist/agent/tool.d.ts +98 -0
  29. package/dist/agent/tool.js +81 -0
  30. package/dist/appearance/brands.d.ts +31 -12
  31. package/dist/appearance/brands.js +32 -51
  32. package/dist/chat/AgentProgress.d.ts +19 -0
  33. package/dist/chat/AgentProgress.js +34 -0
  34. package/dist/chat/Composer.d.ts +31 -0
  35. package/dist/chat/Composer.js +44 -0
  36. package/dist/chat/MessageBubble.d.ts +23 -0
  37. package/dist/chat/MessageBubble.js +26 -0
  38. package/dist/chat/MessageList.d.ts +43 -0
  39. package/dist/chat/MessageList.js +71 -0
  40. package/dist/chat/ModelPicker.d.ts +17 -0
  41. package/dist/chat/ModelPicker.js +13 -0
  42. package/dist/chat/ToolCallCard.d.ts +27 -0
  43. package/dist/chat/ToolCallCard.js +52 -0
  44. package/dist/chat/model.d.ts +123 -0
  45. package/dist/chat/model.js +337 -0
  46. package/dist/chat/patch.d.ts +12 -0
  47. package/dist/chat/patch.js +149 -0
  48. package/dist/chat/useAgUiRun.d.ts +52 -0
  49. package/dist/chat/useAgUiRun.js +137 -0
  50. package/dist/css/appearance.js +1 -1
  51. package/dist/css/calliope.css +5 -0
  52. package/dist/css/tokens.css +5 -0
  53. package/dist/index.d.ts +15 -1
  54. package/dist/index.js +16 -1
  55. package/dist/primitives/Badge.d.ts +14 -0
  56. package/dist/primitives/Badge.js +25 -0
  57. package/dist/primitives/Button.d.ts +1 -1
  58. package/dist/primitives/ContextMenu.d.ts +18 -0
  59. package/dist/primitives/ContextMenu.js +34 -0
  60. package/dist/primitives/ScrollArea.d.ts +16 -0
  61. package/dist/primitives/ScrollArea.js +11 -0
  62. package/dist/primitives/Toast.d.ts +37 -0
  63. package/dist/primitives/Toast.js +43 -0
  64. package/dist/primitives/Tooltip.d.ts +16 -0
  65. package/dist/primitives/Tooltip.js +26 -0
  66. package/dist/provider/messages.d.ts +135 -0
  67. package/dist/provider/messages.js +131 -0
  68. package/dist/theme/css-layer.js +2 -1
  69. package/dist/theme/mappings/palette.d.ts +52 -0
  70. package/dist/theme/mappings/palette.js +208 -0
  71. package/dist/theme/mappings/render.d.ts +9 -0
  72. package/dist/theme/mappings/render.js +520 -0
  73. package/dist/theme/mappings/targets.d.ts +43 -0
  74. package/dist/theme/mappings/targets.js +222 -0
  75. package/dist/theme/tokens.d.ts +10 -9
  76. package/dist/theme/tokens.generated.d.ts +356 -0
  77. package/dist/theme/tokens.generated.js +360 -0
  78. package/dist/theme/tokens.js +20 -264
  79. package/dist/tokens/README.jupyterlab.md +125 -0
  80. package/dist/tokens/README.md +15 -0
  81. package/dist/tokens/README.native.md +29 -0
  82. package/dist/tokens/README.plain.md +84 -0
  83. package/dist/tokens/README.python.md +33 -0
  84. package/dist/tokens/README.vscode.md +114 -0
  85. package/dist/tokens/jupyterlab.css +1710 -0
  86. package/dist/tokens/plain.css +930 -0
  87. package/dist/tokens/tokens.native.d.ts +85 -0
  88. package/dist/tokens/tokens.native.js +773 -0
  89. package/dist/tokens/tokens.py +1043 -0
  90. package/dist/tokens/vscode.css +1138 -0
  91. package/dist/workbench/FileBrowser.d.ts +62 -0
  92. package/dist/workbench/FileBrowser.js +117 -0
  93. package/dist/workbench/FileGrid.d.ts +13 -0
  94. package/dist/workbench/FileGrid.js +114 -0
  95. package/dist/workbench/FileIcon.d.ts +10 -0
  96. package/dist/workbench/FileIcon.js +24 -0
  97. package/dist/workbench/FileList.d.ts +35 -0
  98. package/dist/workbench/FileList.js +160 -0
  99. package/dist/workbench/FilePreview.d.ts +66 -0
  100. package/dist/workbench/FilePreview.js +108 -0
  101. package/dist/workbench/FileTree.d.ts +37 -0
  102. package/dist/workbench/FileTree.js +218 -0
  103. package/dist/workbench/UploadDropzone.d.ts +52 -0
  104. package/dist/workbench/UploadDropzone.js +115 -0
  105. package/dist/workbench/dnd.d.ts +17 -0
  106. package/dist/workbench/dnd.js +77 -0
  107. package/dist/workbench/index.d.ts +16 -0
  108. package/dist/workbench/index.js +16 -0
  109. package/dist/workbench/model.d.ts +72 -0
  110. package/dist/workbench/model.js +214 -0
  111. package/dist/workbench/selection.d.ts +16 -0
  112. package/dist/workbench/selection.js +46 -0
  113. package/dist/workbench/typeahead.d.ts +15 -0
  114. package/dist/workbench/typeahead.js +22 -0
  115. package/package.json +39 -2
@@ -0,0 +1,222 @@
1
+ import { STATIC_TOKENS } from "../tokens.js";
2
+ import { COLOR_TOKENS, FONTS } from "./palette.js";
3
+ /**
4
+ * JupyterLab theme variables (`@jupyterlab/theme-light-extension` and
5
+ * `theme-dark-extension`, `style/variables.css`). Layout colours run from
6
+ * the page (0) outwards; font colours from strongest (0) to faintest (3);
7
+ * brand and state colours from the strong end (0, 1) to the pale tint (3).
8
+ * Left alone: syntax colours (`--jp-mirror-editor-*`), the search
9
+ * highlight, collaborator and completer colours, and the red "warn" button
10
+ * set, whose white label the family's dark danger red cannot carry.
11
+ */
12
+ export const JUPYTERLAB = [
13
+ { variable: "--jp-layout-color0", token: "background", note: "Main area and notebook" },
14
+ { variable: "--jp-layout-color1", token: "card", note: "Panels, active tab, toolbars" },
15
+ { variable: "--jp-layout-color2", token: "secondary", note: "Tab bar, side panel headers" },
16
+ { variable: "--jp-layout-color3", token: "accent", note: "The hover and selected surface" },
17
+ { variable: "--jp-layout-color4", token: "muted-foreground", note: "Strongest layout tone" },
18
+ { variable: "--jp-inverse-layout-color0", token: "foreground" },
19
+ { variable: "--jp-inverse-layout-color1", token: "foreground" },
20
+ { variable: "--jp-inverse-layout-color2", token: "muted-foreground" },
21
+ { variable: "--jp-inverse-layout-color3", token: "muted-foreground" },
22
+ { variable: "--jp-inverse-layout-color4", token: "muted-foreground" },
23
+ { variable: "--jp-border-color0", token: "input", note: "Inputs and cell borders" },
24
+ { variable: "--jp-border-color1", token: "border" },
25
+ { variable: "--jp-border-color2", token: "border" },
26
+ { variable: "--jp-border-color3", token: "sidebar-border", note: "The faintest hairline" },
27
+ { variable: "--jp-inverse-border-color", token: "muted-foreground" },
28
+ { variable: "--jp-ui-font-color0", token: "foreground" },
29
+ { variable: "--jp-ui-font-color1", token: "foreground" },
30
+ { variable: "--jp-ui-font-color2", token: "muted-foreground" },
31
+ { variable: "--jp-ui-font-color3", token: "muted-foreground", note: "No separate disabled ink" },
32
+ {
33
+ variable: "--jp-ui-inverse-font-color0",
34
+ token: "primary-foreground",
35
+ note: "Ink on brand fills",
36
+ },
37
+ { variable: "--jp-ui-inverse-font-color1", token: "primary-foreground" },
38
+ { variable: "--jp-ui-inverse-font-color2", token: "primary-foreground" },
39
+ { variable: "--jp-ui-inverse-font-color3", token: "primary-foreground" },
40
+ { variable: "--jp-content-font-color0", token: "foreground" },
41
+ { variable: "--jp-content-font-color1", token: "foreground" },
42
+ { variable: "--jp-content-font-color2", token: "muted-foreground" },
43
+ { variable: "--jp-content-font-color3", token: "muted-foreground" },
44
+ { variable: "--jp-content-link-color", token: "primary" },
45
+ { variable: "--jp-brand-color0", token: "primary" },
46
+ { variable: "--jp-brand-color1", token: "primary", note: "Active cell, focus, selection marks" },
47
+ { variable: "--jp-brand-color2", token: "primary" },
48
+ { variable: "--jp-brand-color3", token: "sidebar-accent", note: "The accent tint" },
49
+ { variable: "--jp-brand-color4", token: "sidebar-accent" },
50
+ { variable: "--jp-accent-color0", token: "chart-2", note: "The family's second series" },
51
+ { variable: "--jp-accent-color1", token: "chart-2" },
52
+ { variable: "--jp-accent-color2", token: "chart-2" },
53
+ { variable: "--jp-accent-color3", token: "chart-2" },
54
+ ...[
55
+ ["warn", "warning"],
56
+ ["error", "danger"],
57
+ ["success", "success"],
58
+ ["info", "info"],
59
+ ].flatMap(([jp, status]) => [
60
+ { variable: `--jp-${jp}-color0`, token: `${status}-fg`, note: "Text" },
61
+ { variable: `--jp-${jp}-color1`, token: status, note: "Marks" },
62
+ { variable: `--jp-${jp}-color2`, token: `${status}-border` },
63
+ { variable: `--jp-${jp}-color3`, token: `${status}-bg`, note: "Fills" },
64
+ ]),
65
+ { variable: "--jp-cell-editor-background", token: "muted" },
66
+ { variable: "--jp-cell-editor-border-color", token: "border" },
67
+ { variable: "--jp-cell-editor-active-background", token: "card" },
68
+ { variable: "--jp-cell-editor-active-border-color", token: "ring" },
69
+ { variable: "--jp-cell-inprompt-font-color", token: "primary" },
70
+ { variable: "--jp-cell-outprompt-font-color", token: "chart-4" },
71
+ { variable: "--jp-notebook-select-background", token: "accent" },
72
+ { variable: "--jp-notebook-multiselected-color", token: "sidebar-accent" },
73
+ { variable: "--jp-rendermime-error-background", token: "danger-bg" },
74
+ { variable: "--jp-rendermime-table-row-background", token: "muted" },
75
+ { variable: "--jp-rendermime-table-row-hover-background", token: "accent" },
76
+ { variable: "--jp-toolbar-background", token: "card" },
77
+ { variable: "--jp-toolbar-border-color", token: "border" },
78
+ { variable: "--jp-toolbar-active-background", token: "accent" },
79
+ { variable: "--jp-input-background", token: "background" },
80
+ { variable: "--jp-input-active-background", token: "background" },
81
+ { variable: "--jp-input-hover-background", token: "secondary" },
82
+ { variable: "--jp-input-border-color", token: "input" },
83
+ { variable: "--jp-input-active-border-color", token: "ring" },
84
+ { variable: "--jp-input-active-box-shadow-color", token: "sidebar-accent" },
85
+ { variable: "--jp-editor-selected-background", token: "accent" },
86
+ { variable: "--jp-editor-selected-focused-background", token: "sidebar-accent" },
87
+ { variable: "--jp-editor-cursor-color", token: "foreground" },
88
+ { variable: "--jp-focus-outline-color", token: "ring" },
89
+ { variable: "--jp-accept-color-normal", token: "primary", note: "Primary dialog button" },
90
+ { variable: "--jp-accept-color-hover", token: "primary" },
91
+ { variable: "--jp-accept-color-active", token: "primary" },
92
+ { variable: "--jp-accept-color-foreground", token: "primary-foreground" },
93
+ { variable: "--jp-accept-outline-color", token: "ring" },
94
+ { variable: "--jp-reject-color-normal", token: "secondary", note: "Secondary dialog button" },
95
+ { variable: "--jp-reject-color-hover", token: "accent" },
96
+ { variable: "--jp-reject-color-active", token: "accent" },
97
+ { variable: "--jp-reject-color-foreground", token: "secondary-foreground" },
98
+ { variable: "--jp-reject-outline-color", token: "border" },
99
+ ];
100
+ export const JUPYTERLAB_STATIC = [
101
+ { variable: "--jp-border-radius", value: STATIC_TOKENS.radius ?? "", from: "--radius" },
102
+ { variable: "--jp-ui-font-family", value: FONTS.sans, from: "--font-sans" },
103
+ { variable: "--jp-content-font-family", value: FONTS.sans, from: "--font-sans" },
104
+ { variable: "--jp-code-font-family", value: FONTS.mono, from: "--font-mono" },
105
+ ];
106
+ /**
107
+ * VS Code theme colours as a webview sees them: `--vscode-` and the colour
108
+ * id with dots as dashes (https://code.visualstudio.com/api/references/theme-color).
109
+ * Inside VS Code the host sets these inline on <html>, so they win and the
110
+ * webview follows the editor's theme; outside it (a browser preview,
111
+ * Storybook, a test) these values stand in. Left alone: colours the family
112
+ * has no hue for (`charts.blue`, `charts.purple`, `charts.orange`) and
113
+ * scrollbars.
114
+ */
115
+ export const VSCODE = [
116
+ { variable: "--vscode-foreground", token: "foreground" },
117
+ { variable: "--vscode-descriptionForeground", token: "muted-foreground" },
118
+ { variable: "--vscode-disabledForeground", token: "muted-foreground" },
119
+ { variable: "--vscode-errorForeground", token: "danger-fg" },
120
+ { variable: "--vscode-focusBorder", token: "ring" },
121
+ { variable: "--vscode-widget-border", token: "border" },
122
+ { variable: "--vscode-selection-background", token: "sidebar-accent", note: "The accent tint" },
123
+ { variable: "--vscode-icon-foreground", token: "foreground" },
124
+ { variable: "--vscode-textLink-foreground", token: "primary" },
125
+ { variable: "--vscode-textLink-activeForeground", token: "primary" },
126
+ { variable: "--vscode-textPreformat-foreground", token: "foreground" },
127
+ { variable: "--vscode-textBlockQuote-background", token: "muted" },
128
+ { variable: "--vscode-textCodeBlock-background", token: "muted" },
129
+ { variable: "--vscode-textSeparator-foreground", token: "border" },
130
+ { variable: "--vscode-editor-background", token: "background" },
131
+ { variable: "--vscode-editor-foreground", token: "foreground" },
132
+ { variable: "--vscode-editorWidget-background", token: "popover" },
133
+ { variable: "--vscode-editorWidget-foreground", token: "popover-foreground" },
134
+ { variable: "--vscode-editorWidget-border", token: "border" },
135
+ { variable: "--vscode-editorHoverWidget-background", token: "popover" },
136
+ { variable: "--vscode-editorHoverWidget-border", token: "border" },
137
+ { variable: "--vscode-editorError-foreground", token: "danger" },
138
+ { variable: "--vscode-editorWarning-foreground", token: "warning" },
139
+ { variable: "--vscode-editorInfo-foreground", token: "info" },
140
+ { variable: "--vscode-button-background", token: "primary" },
141
+ { variable: "--vscode-button-foreground", token: "primary-foreground" },
142
+ { variable: "--vscode-button-hoverBackground", token: "primary", note: "No separate hover fill" },
143
+ { variable: "--vscode-button-secondaryBackground", token: "secondary" },
144
+ { variable: "--vscode-button-secondaryForeground", token: "secondary-foreground" },
145
+ { variable: "--vscode-button-secondaryHoverBackground", token: "accent" },
146
+ { variable: "--vscode-input-background", token: "background" },
147
+ { variable: "--vscode-input-foreground", token: "foreground" },
148
+ { variable: "--vscode-input-border", token: "input" },
149
+ { variable: "--vscode-input-placeholderForeground", token: "muted-foreground" },
150
+ { variable: "--vscode-inputOption-activeBorder", token: "ring" },
151
+ ...[
152
+ ["error", "danger"],
153
+ ["warning", "warning"],
154
+ ["info", "info"],
155
+ ].flatMap(([kind, status]) => {
156
+ const name = `${kind[0]?.toUpperCase()}${kind.slice(1)}`;
157
+ return [
158
+ {
159
+ variable: `--vscode-inputValidation-${kind}Background`,
160
+ token: `${status}-bg`,
161
+ },
162
+ {
163
+ variable: `--vscode-inputValidation-${kind}Border`,
164
+ token: `${status}-border`,
165
+ },
166
+ { variable: `--vscode-notifications${name}Icon-foreground`, token: status },
167
+ ];
168
+ }),
169
+ { variable: "--vscode-dropdown-background", token: "popover" },
170
+ { variable: "--vscode-dropdown-foreground", token: "popover-foreground" },
171
+ { variable: "--vscode-dropdown-border", token: "input" },
172
+ { variable: "--vscode-checkbox-background", token: "background" },
173
+ { variable: "--vscode-checkbox-foreground", token: "foreground" },
174
+ { variable: "--vscode-checkbox-border", token: "input" },
175
+ { variable: "--vscode-badge-background", token: "secondary", note: "Neutral, like StatusBadge" },
176
+ { variable: "--vscode-badge-foreground", token: "secondary-foreground" },
177
+ { variable: "--vscode-progressBar-background", token: "primary" },
178
+ { variable: "--vscode-list-activeSelectionBackground", token: "accent" },
179
+ { variable: "--vscode-list-activeSelectionForeground", token: "accent-foreground" },
180
+ { variable: "--vscode-list-inactiveSelectionBackground", token: "secondary" },
181
+ { variable: "--vscode-list-hoverBackground", token: "accent" },
182
+ { variable: "--vscode-list-focusOutline", token: "ring" },
183
+ { variable: "--vscode-menu-background", token: "popover" },
184
+ { variable: "--vscode-menu-foreground", token: "popover-foreground" },
185
+ { variable: "--vscode-menu-selectionBackground", token: "accent" },
186
+ { variable: "--vscode-quickInput-background", token: "popover" },
187
+ { variable: "--vscode-quickInput-foreground", token: "popover-foreground" },
188
+ { variable: "--vscode-notifications-background", token: "popover" },
189
+ { variable: "--vscode-notifications-foreground", token: "popover-foreground" },
190
+ { variable: "--vscode-notifications-border", token: "border" },
191
+ { variable: "--vscode-sideBar-background", token: "sidebar" },
192
+ { variable: "--vscode-sideBar-foreground", token: "sidebar-foreground" },
193
+ { variable: "--vscode-sideBar-border", token: "sidebar-border" },
194
+ { variable: "--vscode-panel-background", token: "card" },
195
+ { variable: "--vscode-panel-border", token: "border" },
196
+ { variable: "--vscode-toolbar-hoverBackground", token: "accent" },
197
+ { variable: "--vscode-testing-iconPassed", token: "success" },
198
+ { variable: "--vscode-charts-foreground", token: "foreground" },
199
+ { variable: "--vscode-charts-lines", token: "border" },
200
+ { variable: "--vscode-charts-red", token: "danger" },
201
+ { variable: "--vscode-charts-yellow", token: "warning" },
202
+ { variable: "--vscode-charts-green", token: "success" },
203
+ ];
204
+ export const VSCODE_STATIC = [
205
+ { variable: "--vscode-font-family", value: FONTS.sans, from: "--font-sans" },
206
+ { variable: "--vscode-editor-font-family", value: FONTS.mono, from: "--font-mono" },
207
+ ];
208
+ /** Plain: every colour token under its own name, as concrete values. */
209
+ export const PLAIN = COLOR_TOKENS.map((token) => ({
210
+ variable: `--${token}`,
211
+ token,
212
+ }));
213
+ export const PLAIN_STATIC = [
214
+ ...Object.entries(STATIC_TOKENS).map(([key, value]) => ({
215
+ variable: `--${key}`,
216
+ value,
217
+ from: `--${key}`,
218
+ })),
219
+ { variable: "--font-sans", value: FONTS.sans, from: "--font-sans" },
220
+ { variable: "--font-mono", value: FONTS.mono, from: "--font-mono" },
221
+ { variable: "--font-head", value: FONTS.head, from: "--font-head" },
222
+ ];
@@ -1,8 +1,9 @@
1
1
  /**
2
- * The Calliope AI operator palette: one table, and the source of
3
- * `src/styles/theme.css` (`npm run theme`). Every value here is either a
4
- * ground (the surface ramp), a family accent (action colour and the lead
5
- * chart series), a semantic status, or a density step.
2
+ * The Calliope AI operator palette, typed. Every value comes from the design
3
+ * tokens in `tokens/*.json` (through `tokens.generated.ts`, written by
4
+ * `npm run theme`); this file adds the names, labels and order the code needs.
5
+ * Every value is either a ground (the surface ramp), a family accent (action
6
+ * colour and the lead chart series), a semantic status, or a density step.
6
7
  *
7
8
  * Values come from the Astrolift frontend (`app/globals.css`, origin/main
8
9
  * 8edb40d) and the operator-UI amendment of 2026-08-21: grounds are black
@@ -120,14 +121,13 @@ export interface AccentSpec {
120
121
  }
121
122
  export declare const ACCENTS: {
122
123
  readonly green: {
123
- readonly label: "Green";
124
124
  readonly dark: "#2f9e52";
125
125
  readonly onDark: "#04241b";
126
126
  readonly light: "#26803f";
127
127
  readonly onLight: "#f3fbf7";
128
+ readonly label: "Green";
128
129
  };
129
130
  readonly copper: {
130
- readonly label: "Copper";
131
131
  readonly dark: "#c97b4a";
132
132
  readonly onDark: "#140a04";
133
133
  readonly light: "#9c5730";
@@ -138,9 +138,9 @@ export declare const ACCENTS: {
138
138
  readonly "chart-5": "#2f9e52";
139
139
  };
140
140
  };
141
+ readonly label: "Copper";
141
142
  };
142
143
  readonly ice: {
143
- readonly label: "Ice";
144
144
  readonly dark: "#6e9fc4";
145
145
  readonly onDark: "#06131c";
146
146
  readonly light: "#3d6f95";
@@ -151,9 +151,9 @@ export declare const ACCENTS: {
151
151
  readonly "chart-5": "#2f9e52";
152
152
  };
153
153
  };
154
+ readonly label: "Ice";
154
155
  };
155
156
  readonly periwinkle: {
156
- readonly label: "Periwinkle";
157
157
  readonly dark: "#8b8fd9";
158
158
  readonly onDark: "#0b0c1a";
159
159
  readonly light: "#5a5fae";
@@ -164,9 +164,9 @@ export declare const ACCENTS: {
164
164
  readonly "chart-5": "#2f9e52";
165
165
  };
166
166
  };
167
+ readonly label: "Periwinkle";
167
168
  };
168
169
  readonly amber: {
169
- readonly label: "Amber";
170
170
  readonly dark: "#e0b34a";
171
171
  readonly onDark: "#1a1204";
172
172
  readonly light: "#8a6410";
@@ -176,6 +176,7 @@ export declare const ACCENTS: {
176
176
  readonly "chart-4": "#c97b4a";
177
177
  };
178
178
  };
179
+ readonly label: "Amber";
179
180
  };
180
181
  };
181
182
  export type FamilyAccent = keyof typeof ACCENTS;
@@ -0,0 +1,356 @@
1
+ export declare const TOKENS: {
2
+ readonly core: {
3
+ readonly radius: "2px";
4
+ readonly "motion-fast": "120ms";
5
+ readonly "motion-base": "200ms";
6
+ readonly "motion-slow": "320ms";
7
+ };
8
+ readonly mode: {
9
+ readonly dark: {
10
+ readonly surface: {
11
+ readonly background: "#000000";
12
+ readonly card: "#0a0a0a";
13
+ readonly popover: "#141414";
14
+ readonly secondary: "#161616";
15
+ readonly muted: "#111111";
16
+ readonly accent: "#1b1b1b";
17
+ readonly mutedForeground: "#848b88";
18
+ readonly border: "rgba(255, 255, 255, 0.1)";
19
+ readonly input: "rgba(255, 255, 255, 0.1)";
20
+ readonly sidebar: "brand";
21
+ readonly sidebarAccent: "color-mix(in oklab, var(--primary) 16%, transparent)";
22
+ readonly sidebarBorder: "rgba(255, 255, 255, 0.08)";
23
+ };
24
+ readonly foreground: "#f0f2f1";
25
+ readonly destructive: "#ff6b6b";
26
+ readonly chart: {
27
+ readonly "chart-2": "#8fd82a";
28
+ readonly "chart-3": "#cbf39d";
29
+ readonly "chart-4": "#e0b34a";
30
+ readonly "chart-5": "#0b6644";
31
+ };
32
+ readonly sidebarForeground: "#f0f2f1";
33
+ readonly status: {
34
+ readonly success: {
35
+ readonly base: "#8fd82a";
36
+ readonly fg: "#a6e34d";
37
+ readonly bg: "rgba(143, 216, 42, 0.1)";
38
+ readonly border: "rgba(143, 216, 42, 0.35)";
39
+ };
40
+ readonly warning: {
41
+ readonly base: "#f0c34e";
42
+ readonly fg: "#f0c34e";
43
+ readonly bg: "rgba(240, 195, 78, 0.1)";
44
+ readonly border: "rgba(240, 195, 78, 0.35)";
45
+ };
46
+ readonly info: {
47
+ readonly base: "#2f9e52";
48
+ readonly fg: "#5cbb79";
49
+ readonly bg: "rgba(47, 158, 82, 0.14)";
50
+ readonly border: "rgba(47, 158, 82, 0.4)";
51
+ };
52
+ readonly danger: {
53
+ readonly base: "#ff6b6b";
54
+ readonly fg: "#ff8a8a";
55
+ readonly bg: "rgba(255, 107, 107, 0.1)";
56
+ readonly border: "rgba(255, 107, 107, 0.35)";
57
+ };
58
+ };
59
+ };
60
+ readonly light: {
61
+ readonly surface: {
62
+ readonly background: "#fafaf9";
63
+ readonly card: "#ffffff";
64
+ readonly popover: "#ffffff";
65
+ readonly secondary: "#f1f1f0";
66
+ readonly muted: "#f1f1f0";
67
+ readonly accent: "#f3ebe5";
68
+ readonly mutedForeground: "#5c5b58";
69
+ readonly border: "#dfdedc";
70
+ readonly input: "#dfdedc";
71
+ readonly sidebar: "#f4f3f1";
72
+ readonly sidebarAccent: "#f3ebe5";
73
+ readonly sidebarBorder: "#dfdedc";
74
+ };
75
+ readonly foreground: "#1e1d1b";
76
+ readonly destructive: "#d40c1a";
77
+ readonly chart: {
78
+ readonly "chart-2": "#5c9c1a";
79
+ readonly "chart-3": "#8a7a5c";
80
+ readonly "chart-4": "#b8860b";
81
+ readonly "chart-5": "#26803f";
82
+ };
83
+ readonly sidebarForeground: "#1e1d1b";
84
+ readonly status: {
85
+ readonly success: {
86
+ readonly base: "#508d23";
87
+ readonly fg: "#305a12";
88
+ readonly bg: "#e3f5da";
89
+ readonly border: "#b4d7a2";
90
+ };
91
+ readonly warning: {
92
+ readonly base: "#cb7a00";
93
+ readonly fg: "#824c12";
94
+ readonly bg: "#fef0d4";
95
+ readonly border: "#e8c184";
96
+ };
97
+ readonly info: {
98
+ readonly base: "#2f8543";
99
+ readonly fg: "#1b622d";
100
+ readonly bg: "#e2f4e3";
101
+ readonly border: "#acd8b1";
102
+ };
103
+ readonly danger: {
104
+ readonly base: "#df2225";
105
+ readonly fg: "#bb0916";
106
+ readonly bg: "#ffeae9";
107
+ readonly border: "#ffb1aa";
108
+ };
109
+ };
110
+ };
111
+ };
112
+ readonly ground: {
113
+ readonly black: {
114
+ readonly background: "#000000";
115
+ readonly card: "#0a0a0a";
116
+ readonly popover: "#141414";
117
+ readonly secondary: "#161616";
118
+ readonly muted: "#111111";
119
+ readonly accent: "#1b1b1b";
120
+ readonly mutedForeground: "#848b88";
121
+ readonly border: "rgba(255, 255, 255, 0.1)";
122
+ readonly input: "rgba(255, 255, 255, 0.1)";
123
+ readonly sidebar: "brand";
124
+ readonly sidebarAccent: "color-mix(in oklab, var(--primary) 16%, transparent)";
125
+ readonly sidebarBorder: "rgba(255, 255, 255, 0.08)";
126
+ };
127
+ readonly charcoal: {
128
+ readonly background: "#0e0f10";
129
+ readonly card: "#161819";
130
+ readonly popover: "#1e2022";
131
+ readonly secondary: "#202325";
132
+ readonly muted: "#191b1c";
133
+ readonly accent: "#232628";
134
+ readonly mutedForeground: "#8b9194";
135
+ readonly border: "rgba(255, 255, 255, 0.1)";
136
+ readonly input: "rgba(255, 255, 255, 0.1)";
137
+ readonly sidebar: "brand";
138
+ readonly sidebarAccent: "color-mix(in oklab, var(--primary) 16%, transparent)";
139
+ readonly sidebarBorder: "rgba(255, 255, 255, 0.08)";
140
+ };
141
+ readonly graphite: {
142
+ readonly background: "#111214";
143
+ readonly card: "#18191b";
144
+ readonly popover: "#202124";
145
+ readonly secondary: "#222326";
146
+ readonly muted: "#1b1c1e";
147
+ readonly accent: "#26272a";
148
+ readonly mutedForeground: "#8e9296";
149
+ readonly border: "rgba(255, 255, 255, 0.09)";
150
+ readonly input: "rgba(255, 255, 255, 0.1)";
151
+ readonly sidebar: "#161719";
152
+ readonly sidebarAccent: "color-mix(in oklab, var(--primary) 14%, transparent)";
153
+ readonly sidebarBorder: "rgba(255, 255, 255, 0.07)";
154
+ };
155
+ readonly emerald: {
156
+ readonly background: "#050b08";
157
+ readonly card: "#0a1310";
158
+ readonly popover: "#0d1814";
159
+ readonly secondary: "#121d18";
160
+ readonly muted: "#101a15";
161
+ readonly accent: "#16261f";
162
+ readonly mutedForeground: "#8ba199";
163
+ readonly border: "rgba(255, 255, 255, 0.1)";
164
+ readonly input: "rgba(255, 255, 255, 0.1)";
165
+ readonly sidebar: "brand";
166
+ readonly sidebarAccent: "color-mix(in oklab, var(--primary) 16%, transparent)";
167
+ readonly sidebarBorder: "rgba(255, 255, 255, 0.08)";
168
+ };
169
+ readonly navy: {
170
+ readonly background: "#0b1120";
171
+ readonly card: "#152141";
172
+ readonly popover: "#1a284a";
173
+ readonly secondary: "#1d2b50";
174
+ readonly muted: "#182545";
175
+ readonly accent: "#213157";
176
+ readonly mutedForeground: "#97a6c2";
177
+ readonly border: "rgba(255, 255, 255, 0.1)";
178
+ readonly input: "rgba(255, 255, 255, 0.1)";
179
+ readonly sidebar: "brand";
180
+ readonly sidebarAccent: "color-mix(in oklab, var(--primary) 16%, transparent)";
181
+ readonly sidebarBorder: "rgba(255, 255, 255, 0.08)";
182
+ };
183
+ readonly paper: {
184
+ readonly background: "#faf6ee";
185
+ readonly card: "#fffdf9";
186
+ readonly popover: "#fffdf9";
187
+ readonly secondary: "#f3eee4";
188
+ readonly muted: "#f3eee4";
189
+ readonly accent: "#f0e6da";
190
+ readonly mutedForeground: "#5c5b58";
191
+ readonly border: "#dedad2";
192
+ readonly input: "#dedad2";
193
+ readonly sidebar: "#f5f0e4";
194
+ readonly sidebarAccent: "#f0e6da";
195
+ readonly sidebarBorder: "#dedad2";
196
+ };
197
+ readonly mist: {
198
+ readonly background: "#f2f7f9";
199
+ readonly card: "#ffffff";
200
+ readonly popover: "#ffffff";
201
+ readonly secondary: "#e9eff2";
202
+ readonly muted: "#e9eff2";
203
+ readonly accent: "#dfeaf0";
204
+ readonly mutedForeground: "#5c5b58";
205
+ readonly border: "#d6dcdf";
206
+ readonly input: "#d6dcdf";
207
+ readonly sidebar: "#e9f1f5";
208
+ readonly sidebarAccent: "#dfeaf0";
209
+ readonly sidebarBorder: "#d6dcdf";
210
+ };
211
+ };
212
+ readonly accent: {
213
+ readonly green: {
214
+ readonly dark: "#2f9e52";
215
+ readonly onDark: "#04241b";
216
+ readonly light: "#26803f";
217
+ readonly onLight: "#f3fbf7";
218
+ };
219
+ readonly copper: {
220
+ readonly dark: "#c97b4a";
221
+ readonly onDark: "#140a04";
222
+ readonly light: "#9c5730";
223
+ readonly onLight: "#f3fbf7";
224
+ readonly chart: {
225
+ readonly dark: {
226
+ readonly "chart-3": "#d9c7a3";
227
+ readonly "chart-5": "#2f9e52";
228
+ };
229
+ };
230
+ };
231
+ readonly ice: {
232
+ readonly dark: "#6e9fc4";
233
+ readonly onDark: "#06131c";
234
+ readonly light: "#3d6f95";
235
+ readonly onLight: "#f3fbf7";
236
+ readonly chart: {
237
+ readonly dark: {
238
+ readonly "chart-3": "#b9d4e4";
239
+ readonly "chart-5": "#2f9e52";
240
+ };
241
+ };
242
+ };
243
+ readonly periwinkle: {
244
+ readonly dark: "#8b8fd9";
245
+ readonly onDark: "#0b0c1a";
246
+ readonly light: "#5a5fae";
247
+ readonly onLight: "#f3fbf7";
248
+ readonly chart: {
249
+ readonly dark: {
250
+ readonly "chart-3": "#c3c5ec";
251
+ readonly "chart-5": "#2f9e52";
252
+ };
253
+ };
254
+ };
255
+ readonly amber: {
256
+ readonly dark: "#e0b34a";
257
+ readonly onDark: "#1a1204";
258
+ readonly light: "#8a6410";
259
+ readonly onLight: "#f3fbf7";
260
+ readonly chart: {
261
+ readonly dark: {
262
+ readonly "chart-4": "#c97b4a";
263
+ };
264
+ };
265
+ };
266
+ };
267
+ readonly density: {
268
+ readonly compact: {
269
+ readonly "row-pad-y": "0.5rem";
270
+ readonly "row-pad-x": "0.75rem";
271
+ readonly "stack-gap": "0.75rem";
272
+ readonly "panel-pad": "1rem";
273
+ readonly "list-columns": "minmax(0, 1fr)";
274
+ readonly "list-gap": "0px";
275
+ readonly "list-frame-border": "1px";
276
+ readonly "list-frame-radius": "var(--radius)";
277
+ readonly "list-item-border": "0px";
278
+ readonly "list-item-radius": "0px";
279
+ readonly "list-item-bg": "transparent";
280
+ readonly "list-item-pad": "var(--row-pad-y) var(--row-pad-x)";
281
+ readonly "list-item-direction": "row";
282
+ readonly "list-item-align": "center";
283
+ readonly "list-item-trail": "auto";
284
+ };
285
+ readonly cards: {
286
+ readonly "row-pad-y": "0.9rem";
287
+ readonly "row-pad-x": "1rem";
288
+ readonly "stack-gap": "1rem";
289
+ readonly "panel-pad": "1.25rem";
290
+ readonly "list-columns": "repeat(auto-fill, minmax(min(100%, 16rem), 1fr))";
291
+ readonly "list-gap": "var(--stack-gap)";
292
+ readonly "list-frame-border": "0px";
293
+ readonly "list-frame-radius": "0px";
294
+ readonly "list-item-border": "1px";
295
+ readonly "list-item-radius": "var(--radius)";
296
+ readonly "list-item-bg": "var(--card)";
297
+ readonly "list-item-pad": "var(--panel-pad)";
298
+ readonly "list-item-direction": "column";
299
+ readonly "list-item-align": "stretch";
300
+ readonly "list-item-trail": "0px";
301
+ };
302
+ };
303
+ readonly brand: {
304
+ readonly astrolift: {
305
+ readonly sidebar: "#04231a";
306
+ };
307
+ readonly zentinelle: {
308
+ readonly sidebar: "#0b0b19";
309
+ readonly accent: {
310
+ readonly dark: "#37efed";
311
+ readonly onDark: "#0b0b19";
312
+ readonly light: "#0d7470";
313
+ readonly onLight: "#f3fbf7";
314
+ };
315
+ };
316
+ readonly workbench: {
317
+ readonly sidebar: "#0e1730";
318
+ readonly accent: {
319
+ readonly dark: "#8fb8e8";
320
+ readonly onDark: "#0b1120";
321
+ readonly light: "#2f5d94";
322
+ readonly onLight: "#f3fbf7";
323
+ };
324
+ };
325
+ readonly "chat-studio": {
326
+ readonly sidebar: "#080808";
327
+ readonly accent: {
328
+ readonly dark: "#8ab4f8";
329
+ readonly onDark: "#0c0c0c";
330
+ readonly light: "#1d4ed8";
331
+ readonly onLight: "#ffffff";
332
+ };
333
+ };
334
+ readonly loadr: {
335
+ readonly sidebar: "#181825";
336
+ readonly accent: {
337
+ readonly dark: "#89b4fa";
338
+ readonly onDark: "#11111b";
339
+ readonly light: "#1e66f5";
340
+ readonly onLight: "#ffffff";
341
+ };
342
+ };
343
+ readonly cykick: {
344
+ readonly sidebar: "#07090e";
345
+ readonly accent: {
346
+ readonly dark: "#22d3ee";
347
+ readonly onDark: "#07090e";
348
+ readonly light: "#0e7490";
349
+ readonly onLight: "#ffffff";
350
+ };
351
+ };
352
+ readonly "deep-data-agent": {
353
+ readonly sidebar: "#1a150c";
354
+ };
355
+ };
356
+ };