@sero-ai/ui 0.3.2 → 0.4.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 (190) hide show
  1. package/.turbo/turbo-build.log +628 -0
  2. package/.turbo/turbo-typecheck.log +1 -1
  3. package/CHANGELOG.md +38 -0
  4. package/dist/components/context-editor/CapabilitySection.cjs +57 -0
  5. package/dist/components/context-editor/CapabilitySection.d.cts +20 -0
  6. package/dist/components/context-editor/CapabilitySection.d.ts +20 -0
  7. package/dist/components/context-editor/CapabilitySection.js +57 -0
  8. package/dist/components/context-editor/ContextEditor.cjs +108 -0
  9. package/dist/components/context-editor/ContextEditor.d.cts +26 -0
  10. package/dist/components/context-editor/ContextEditor.d.ts +26 -0
  11. package/dist/components/context-editor/ContextEditor.js +108 -0
  12. package/dist/components/context-editor/PresetBar.cjs +71 -0
  13. package/dist/components/context-editor/PresetBar.d.cts +19 -0
  14. package/dist/components/context-editor/PresetBar.d.ts +19 -0
  15. package/dist/components/context-editor/PresetBar.js +71 -0
  16. package/dist/components/context-editor/SkillsSection.cjs +31 -0
  17. package/dist/components/context-editor/SkillsSection.d.cts +14 -0
  18. package/dist/components/context-editor/SkillsSection.d.ts +14 -0
  19. package/dist/components/context-editor/SkillsSection.js +31 -0
  20. package/dist/components/context-editor/SystemPromptSection.cjs +58 -0
  21. package/dist/components/context-editor/SystemPromptSection.d.cts +25 -0
  22. package/dist/components/context-editor/SystemPromptSection.d.ts +25 -0
  23. package/dist/components/context-editor/SystemPromptSection.js +58 -0
  24. package/dist/components/context-editor/ToolsSection.cjs +31 -0
  25. package/dist/components/context-editor/ToolsSection.d.cts +14 -0
  26. package/dist/components/context-editor/ToolsSection.d.ts +14 -0
  27. package/dist/components/context-editor/ToolsSection.js +31 -0
  28. package/dist/components/context-editor/index.cjs +8 -0
  29. package/dist/components/context-editor/index.d.cts +5 -0
  30. package/dist/components/context-editor/index.d.ts +5 -0
  31. package/dist/components/context-editor/index.js +8 -0
  32. package/dist/components/context-editor/parts.cjs +184 -0
  33. package/dist/components/context-editor/parts.d.cts +32 -0
  34. package/dist/components/context-editor/parts.d.ts +32 -0
  35. package/dist/components/context-editor/parts.js +184 -0
  36. package/dist/components/context-editor/use-context-editor-model.cjs +194 -0
  37. package/dist/components/context-editor/use-context-editor-model.d.cts +57 -0
  38. package/dist/components/context-editor/use-context-editor-model.d.ts +57 -0
  39. package/dist/components/context-editor/use-context-editor-model.js +194 -0
  40. package/dist/components/dashboard/activity-list.cjs +59 -0
  41. package/dist/components/dashboard/activity-list.d.cts +27 -0
  42. package/dist/components/dashboard/activity-list.d.ts +27 -0
  43. package/dist/components/dashboard/activity-list.js +59 -0
  44. package/dist/components/dashboard/catalog.cjs +322 -0
  45. package/dist/components/dashboard/catalog.d.cts +14 -0
  46. package/dist/components/dashboard/catalog.d.ts +14 -0
  47. package/dist/components/dashboard/catalog.js +322 -0
  48. package/dist/components/dashboard/data-boundary.cjs +29 -0
  49. package/dist/components/dashboard/data-boundary.d.cts +21 -0
  50. package/dist/components/dashboard/data-boundary.d.ts +21 -0
  51. package/dist/components/dashboard/data-boundary.js +29 -0
  52. package/dist/components/dashboard/empty-state.cjs +49 -0
  53. package/dist/components/dashboard/empty-state.d.cts +20 -0
  54. package/dist/components/dashboard/empty-state.d.ts +20 -0
  55. package/dist/components/dashboard/empty-state.js +49 -0
  56. package/dist/components/dashboard/icon-button.cjs +40 -0
  57. package/dist/components/dashboard/icon-button.d.cts +24 -0
  58. package/dist/components/dashboard/icon-button.d.ts +24 -0
  59. package/dist/components/dashboard/icon-button.js +40 -0
  60. package/dist/components/dashboard/index.cjs +15 -0
  61. package/dist/components/dashboard/index.d.cts +24 -0
  62. package/dist/components/dashboard/index.d.ts +24 -0
  63. package/dist/components/dashboard/index.js +15 -0
  64. package/dist/components/dashboard/item-list.cjs +71 -0
  65. package/dist/components/dashboard/item-list.d.cts +28 -0
  66. package/dist/components/dashboard/item-list.d.ts +28 -0
  67. package/dist/components/dashboard/item-list.js +71 -0
  68. package/dist/components/dashboard/key-value.cjs +39 -0
  69. package/dist/components/dashboard/key-value.d.cts +17 -0
  70. package/dist/components/dashboard/key-value.d.ts +17 -0
  71. package/dist/components/dashboard/key-value.js +39 -0
  72. package/dist/components/dashboard/layout.cjs +193 -0
  73. package/dist/components/dashboard/layout.d.cts +91 -0
  74. package/dist/components/dashboard/layout.d.ts +91 -0
  75. package/dist/components/dashboard/layout.js +193 -0
  76. package/dist/components/dashboard/metric.cjs +98 -0
  77. package/dist/components/dashboard/metric.d.cts +44 -0
  78. package/dist/components/dashboard/metric.d.ts +44 -0
  79. package/dist/components/dashboard/metric.js +98 -0
  80. package/dist/components/dashboard/progress-ring.cjs +77 -0
  81. package/dist/components/dashboard/progress-ring.d.cts +25 -0
  82. package/dist/components/dashboard/progress-ring.d.ts +25 -0
  83. package/dist/components/dashboard/progress-ring.js +77 -0
  84. package/dist/components/dashboard/skeletons.cjs +54 -0
  85. package/dist/components/dashboard/skeletons.d.cts +15 -0
  86. package/dist/components/dashboard/skeletons.d.ts +15 -0
  87. package/dist/components/dashboard/skeletons.js +54 -0
  88. package/dist/components/dashboard/spacing.cjs +10 -0
  89. package/dist/components/dashboard/spacing.d.cts +4 -0
  90. package/dist/components/dashboard/spacing.d.ts +4 -0
  91. package/dist/components/dashboard/spacing.js +10 -0
  92. package/dist/components/dashboard/stale-indicator.cjs +42 -0
  93. package/dist/components/dashboard/stale-indicator.d.cts +15 -0
  94. package/dist/components/dashboard/stale-indicator.d.ts +15 -0
  95. package/dist/components/dashboard/stale-indicator.js +42 -0
  96. package/dist/components/dashboard/status.cjs +62 -0
  97. package/dist/components/dashboard/status.d.cts +15 -0
  98. package/dist/components/dashboard/status.d.ts +15 -0
  99. package/dist/components/dashboard/status.js +62 -0
  100. package/dist/components/dashboard/tone.cjs +26 -0
  101. package/dist/components/dashboard/tone.d.cts +9 -0
  102. package/dist/components/dashboard/tone.d.ts +9 -0
  103. package/dist/components/dashboard/tone.js +26 -0
  104. package/dist/components/dashboard/typography.cjs +99 -0
  105. package/dist/components/dashboard/typography.d.cts +57 -0
  106. package/dist/components/dashboard/typography.d.ts +57 -0
  107. package/dist/components/dashboard/typography.js +99 -0
  108. package/dist/components/reference/ActivityExample.cjs +47 -0
  109. package/dist/components/reference/ActivityExample.d.cts +5 -0
  110. package/dist/components/reference/ActivityExample.d.ts +5 -0
  111. package/dist/components/reference/ActivityExample.js +47 -0
  112. package/dist/components/reference/ResourceExample.cjs +54 -0
  113. package/dist/components/reference/ResourceExample.d.cts +5 -0
  114. package/dist/components/reference/ResourceExample.d.ts +5 -0
  115. package/dist/components/reference/ResourceExample.js +54 -0
  116. package/dist/components/reference/SchedulerExample.cjs +68 -0
  117. package/dist/components/reference/SchedulerExample.d.cts +5 -0
  118. package/dist/components/reference/SchedulerExample.d.ts +5 -0
  119. package/dist/components/reference/SchedulerExample.js +68 -0
  120. package/dist/components/reference/StarterExample.cjs +34 -0
  121. package/dist/components/reference/StarterExample.d.cts +5 -0
  122. package/dist/components/reference/StarterExample.d.ts +5 -0
  123. package/dist/components/reference/StarterExample.js +34 -0
  124. package/dist/components/reference/index.cjs +10 -0
  125. package/dist/components/reference/index.d.cts +5 -0
  126. package/dist/components/reference/index.d.ts +5 -0
  127. package/dist/components/reference/index.js +10 -0
  128. package/dist/components/ui/badge.cjs +5 -1
  129. package/dist/components/ui/badge.d.cts +1 -1
  130. package/dist/components/ui/badge.d.ts +1 -1
  131. package/dist/components/ui/badge.js +5 -1
  132. package/dist/dashboard-catalog.cjs +8 -0
  133. package/dist/dashboard-catalog.d.cts +1 -0
  134. package/dist/dashboard-catalog.d.ts +1 -0
  135. package/dist/dashboard-catalog.js +8 -0
  136. package/dist/index.cjs +1 -0
  137. package/dist/index.d.cts +15 -0
  138. package/dist/index.d.ts +15 -0
  139. package/dist/index.js +1 -0
  140. package/dist/reference.cjs +12 -0
  141. package/dist/reference.d.cts +5 -0
  142. package/dist/reference.d.ts +5 -0
  143. package/dist/reference.js +12 -0
  144. package/dist/styles/glass-board.css +43 -0
  145. package/dist/styles/globals.css +59 -0
  146. package/package.json +70 -41
  147. package/src/components/context-editor/CapabilitySection.tsx +85 -0
  148. package/src/components/context-editor/ContextEditor.tsx +138 -0
  149. package/src/components/context-editor/PresetBar.tsx +94 -0
  150. package/src/components/context-editor/SkillsSection.tsx +37 -0
  151. package/src/components/context-editor/SystemPromptSection.tsx +88 -0
  152. package/src/components/context-editor/ToolsSection.tsx +37 -0
  153. package/src/components/context-editor/index.ts +7 -0
  154. package/src/components/context-editor/parts.tsx +217 -0
  155. package/src/components/context-editor/use-context-editor-model.ts +296 -0
  156. package/src/components/dashboard/__tests__/catalog.test.ts +57 -0
  157. package/src/components/dashboard/__tests__/glass.test.tsx +42 -0
  158. package/src/components/dashboard/__tests__/state.test.tsx +110 -0
  159. package/src/components/dashboard/__tests__/variants.test.tsx +95 -0
  160. package/src/components/dashboard/activity-list.tsx +99 -0
  161. package/src/components/dashboard/catalog.ts +351 -0
  162. package/src/components/dashboard/data-boundary.tsx +54 -0
  163. package/src/components/dashboard/empty-state.tsx +70 -0
  164. package/src/components/dashboard/icon-button.tsx +58 -0
  165. package/src/components/dashboard/index.ts +21 -0
  166. package/src/components/dashboard/item-list.tsx +106 -0
  167. package/src/components/dashboard/key-value.tsx +54 -0
  168. package/src/components/dashboard/layout.tsx +286 -0
  169. package/src/components/dashboard/metric.tsx +139 -0
  170. package/src/components/dashboard/progress-ring.tsx +100 -0
  171. package/src/components/dashboard/skeletons.tsx +73 -0
  172. package/src/components/dashboard/spacing.ts +14 -0
  173. package/src/components/dashboard/stale-indicator.tsx +55 -0
  174. package/src/components/dashboard/status.tsx +75 -0
  175. package/src/components/dashboard/tone.ts +35 -0
  176. package/src/components/dashboard/typography.tsx +151 -0
  177. package/src/components/reference/ActivityExample.tsx +68 -0
  178. package/src/components/reference/ResourceExample.tsx +78 -0
  179. package/src/components/reference/SchedulerExample.tsx +88 -0
  180. package/src/components/reference/StarterExample.tsx +48 -0
  181. package/src/components/reference/index.ts +10 -0
  182. package/src/components/ui/badge.tsx +6 -0
  183. package/src/dashboard-catalog.ts +13 -0
  184. package/src/index.ts +5 -0
  185. package/src/reference.ts +15 -0
  186. package/src/styles/glass-board.css +43 -0
  187. package/src/styles/globals.css +59 -0
  188. package/tsup.config.ts +6 -2
  189. package/vitest.config.ts +8 -0
  190. package/LICENSE +0 -201
@@ -0,0 +1,68 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _jsxruntime = require('react/jsx-runtime');
2
+ var _lucidereact = require('lucide-react');
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+ var _dashboard = require('../dashboard');
18
+ var _button = require('../ui/button');
19
+ const UPCOMING = [
20
+ { id: "a", label: "Daily backup", timestamp: "08:00", tone: "success" },
21
+ { id: "b", label: "Publish report", timestamp: "in 2h", tone: "info" },
22
+ { id: "c", label: "Rotate API keys", timestamp: "tomorrow", tone: "warning" }
23
+ ];
24
+ function SchedulerExample() {
25
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _dashboard.WidgetContent, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _dashboard.Stack, { gap: "sm", children: [
26
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _dashboard.Inline, { justify: "between", align: "center", children: [
27
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _dashboard.Status, { tone: "success", pulse: true, children: "Scheduler active" }),
28
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _dashboard.ProgressRing, { value: 92, label: "Success rate", tone: "success", size: 40 })
29
+ ] }),
30
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _dashboard.Section, { heading: "Summary", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _dashboard.Inline, { gap: "sm", wrap: true, children: [
31
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _dashboard.MetricCard, { className: "flex-1", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _dashboard.Metric, { label: "Jobs", value: 6 }) }),
32
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _dashboard.MetricCard, { className: "flex-1", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
33
+ _dashboard.Metric,
34
+ {
35
+ label: "Runs today",
36
+ value: 18,
37
+ trend: { direction: "up", value: "+4", tone: "success" }
38
+ }
39
+ ) })
40
+ ] }) }),
41
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _dashboard.Divider, {}),
42
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
43
+ _dashboard.Section,
44
+ {
45
+ heading: "Next up",
46
+ action: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _button.Button, { size: "xs", variant: "ghost", children: [
47
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "size-3" }),
48
+ "All"
49
+ ] }),
50
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _dashboard.DataBoundary, { state: "ready", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _dashboard.ActivityList, { children: UPCOMING.map((e) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
51
+ _dashboard.ActivityListItem,
52
+ {
53
+ tone: e.tone,
54
+ label: e.label,
55
+ timestamp: e.timestamp
56
+ },
57
+ e.id
58
+ )) }) })
59
+ }
60
+ ),
61
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _dashboard.StaleIndicator, { lastUpdated: "Updated 2m ago" })
62
+ ] }) });
63
+ }
64
+ var SchedulerExample_default = SchedulerExample;
65
+
66
+
67
+
68
+ exports.SchedulerExample = SchedulerExample; exports.default = SchedulerExample_default;
@@ -0,0 +1,5 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ declare function SchedulerExample(): react_jsx_runtime.JSX.Element;
4
+
5
+ export { SchedulerExample, SchedulerExample as default };
@@ -0,0 +1,5 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ declare function SchedulerExample(): react_jsx_runtime.JSX.Element;
4
+
5
+ export { SchedulerExample, SchedulerExample as default };
@@ -0,0 +1,68 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { ExternalLink } from "lucide-react";
3
+ import {
4
+ ActivityList,
5
+ ActivityListItem,
6
+ DataBoundary,
7
+ Divider,
8
+ Inline,
9
+ Metric,
10
+ MetricCard,
11
+ ProgressRing,
12
+ Section,
13
+ Stack,
14
+ StaleIndicator,
15
+ Status,
16
+ WidgetContent
17
+ } from "../dashboard";
18
+ import { Button } from "../ui/button";
19
+ const UPCOMING = [
20
+ { id: "a", label: "Daily backup", timestamp: "08:00", tone: "success" },
21
+ { id: "b", label: "Publish report", timestamp: "in 2h", tone: "info" },
22
+ { id: "c", label: "Rotate API keys", timestamp: "tomorrow", tone: "warning" }
23
+ ];
24
+ function SchedulerExample() {
25
+ return /* @__PURE__ */ jsx(WidgetContent, { children: /* @__PURE__ */ jsxs(Stack, { gap: "sm", children: [
26
+ /* @__PURE__ */ jsxs(Inline, { justify: "between", align: "center", children: [
27
+ /* @__PURE__ */ jsx(Status, { tone: "success", pulse: true, children: "Scheduler active" }),
28
+ /* @__PURE__ */ jsx(ProgressRing, { value: 92, label: "Success rate", tone: "success", size: 40 })
29
+ ] }),
30
+ /* @__PURE__ */ jsx(Section, { heading: "Summary", children: /* @__PURE__ */ jsxs(Inline, { gap: "sm", wrap: true, children: [
31
+ /* @__PURE__ */ jsx(MetricCard, { className: "flex-1", children: /* @__PURE__ */ jsx(Metric, { label: "Jobs", value: 6 }) }),
32
+ /* @__PURE__ */ jsx(MetricCard, { className: "flex-1", children: /* @__PURE__ */ jsx(
33
+ Metric,
34
+ {
35
+ label: "Runs today",
36
+ value: 18,
37
+ trend: { direction: "up", value: "+4", tone: "success" }
38
+ }
39
+ ) })
40
+ ] }) }),
41
+ /* @__PURE__ */ jsx(Divider, {}),
42
+ /* @__PURE__ */ jsx(
43
+ Section,
44
+ {
45
+ heading: "Next up",
46
+ action: /* @__PURE__ */ jsxs(Button, { size: "xs", variant: "ghost", children: [
47
+ /* @__PURE__ */ jsx(ExternalLink, { className: "size-3" }),
48
+ "All"
49
+ ] }),
50
+ children: /* @__PURE__ */ jsx(DataBoundary, { state: "ready", children: /* @__PURE__ */ jsx(ActivityList, { children: UPCOMING.map((e) => /* @__PURE__ */ jsx(
51
+ ActivityListItem,
52
+ {
53
+ tone: e.tone,
54
+ label: e.label,
55
+ timestamp: e.timestamp
56
+ },
57
+ e.id
58
+ )) }) })
59
+ }
60
+ ),
61
+ /* @__PURE__ */ jsx(StaleIndicator, { lastUpdated: "Updated 2m ago" })
62
+ ] }) });
63
+ }
64
+ var SchedulerExample_default = SchedulerExample;
65
+ export {
66
+ SchedulerExample,
67
+ SchedulerExample_default as default
68
+ };
@@ -0,0 +1,34 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _jsxruntime = require('react/jsx-runtime');
2
+ var _lucidereact = require('lucide-react');
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+ var _dashboard = require('../dashboard');
11
+ const RECENT = [
12
+ { id: "a", label: "Nightly build", timestamp: "12m", tone: "success" },
13
+ { id: "b", label: "Deploy to staging", timestamp: "1h", tone: "info" },
14
+ { id: "c", label: "Dependency audit", timestamp: "3h", tone: "neutral" }
15
+ ];
16
+ function StarterExample() {
17
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _dashboard.WidgetContent, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _dashboard.Stack, { gap: "sm", children: [
18
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _dashboard.Metric, { label: "Tasks done", value: 12, icon: _lucidereact.CheckCircle2, tone: "success" }),
19
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _dashboard.Section, { heading: "Recent", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _dashboard.ActivityList, { children: RECENT.map((e) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
20
+ _dashboard.ActivityListItem,
21
+ {
22
+ tone: e.tone,
23
+ label: e.label,
24
+ timestamp: e.timestamp
25
+ },
26
+ e.id
27
+ )) }) })
28
+ ] }) });
29
+ }
30
+ var StarterExample_default = StarterExample;
31
+
32
+
33
+
34
+ exports.StarterExample = StarterExample; exports.default = StarterExample_default;
@@ -0,0 +1,5 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ declare function StarterExample(): react_jsx_runtime.JSX.Element;
4
+
5
+ export { StarterExample, StarterExample as default };
@@ -0,0 +1,5 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ declare function StarterExample(): react_jsx_runtime.JSX.Element;
4
+
5
+ export { StarterExample, StarterExample as default };
@@ -0,0 +1,34 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { CheckCircle2 } from "lucide-react";
3
+ import {
4
+ ActivityList,
5
+ ActivityListItem,
6
+ Metric,
7
+ Section,
8
+ Stack,
9
+ WidgetContent
10
+ } from "../dashboard";
11
+ const RECENT = [
12
+ { id: "a", label: "Nightly build", timestamp: "12m", tone: "success" },
13
+ { id: "b", label: "Deploy to staging", timestamp: "1h", tone: "info" },
14
+ { id: "c", label: "Dependency audit", timestamp: "3h", tone: "neutral" }
15
+ ];
16
+ function StarterExample() {
17
+ return /* @__PURE__ */ jsx(WidgetContent, { children: /* @__PURE__ */ jsxs(Stack, { gap: "sm", children: [
18
+ /* @__PURE__ */ jsx(Metric, { label: "Tasks done", value: 12, icon: CheckCircle2, tone: "success" }),
19
+ /* @__PURE__ */ jsx(Section, { heading: "Recent", children: /* @__PURE__ */ jsx(ActivityList, { children: RECENT.map((e) => /* @__PURE__ */ jsx(
20
+ ActivityListItem,
21
+ {
22
+ tone: e.tone,
23
+ label: e.label,
24
+ timestamp: e.timestamp
25
+ },
26
+ e.id
27
+ )) }) })
28
+ ] }) });
29
+ }
30
+ var StarterExample_default = StarterExample;
31
+ export {
32
+ StarterExample,
33
+ StarterExample_default as default
34
+ };
@@ -0,0 +1,10 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _StarterExample = require('./StarterExample');
2
+ var _SchedulerExample = require('./SchedulerExample');
3
+ var _ResourceExample = require('./ResourceExample');
4
+ var _ActivityExample = require('./ActivityExample');
5
+
6
+
7
+
8
+
9
+
10
+ exports.ActivityExample = _ActivityExample.ActivityExample; exports.ResourceExample = _ResourceExample.ResourceExample; exports.SchedulerExample = _SchedulerExample.SchedulerExample; exports.StarterExample = _StarterExample.StarterExample;
@@ -0,0 +1,5 @@
1
+ export { StarterExample } from './StarterExample.cjs';
2
+ export { SchedulerExample } from './SchedulerExample.cjs';
3
+ export { ResourceExample } from './ResourceExample.cjs';
4
+ export { ActivityExample } from './ActivityExample.cjs';
5
+ import 'react/jsx-runtime';
@@ -0,0 +1,5 @@
1
+ export { StarterExample } from './StarterExample.js';
2
+ export { SchedulerExample } from './SchedulerExample.js';
3
+ export { ResourceExample } from './ResourceExample.js';
4
+ export { ActivityExample } from './ActivityExample.js';
5
+ import 'react/jsx-runtime';
@@ -0,0 +1,10 @@
1
+ import { StarterExample } from "./StarterExample";
2
+ import { SchedulerExample } from "./SchedulerExample";
3
+ import { ResourceExample } from "./ResourceExample";
4
+ import { ActivityExample } from "./ActivityExample";
5
+ export {
6
+ ActivityExample,
7
+ ResourceExample,
8
+ SchedulerExample,
9
+ StarterExample
10
+ };
@@ -12,7 +12,11 @@ const badgeVariants = _classvarianceauthority.cva.call(void 0,
12
12
  destructive: "bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
13
13
  outline: "border-border text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground",
14
14
  ghost: "[a&]:hover:bg-accent [a&]:hover:text-accent-foreground",
15
- link: "text-primary underline-offset-4 [a&]:hover:underline"
15
+ link: "text-primary underline-offset-4 [a&]:hover:underline",
16
+ // Semantic status tones (error is covered by `destructive`).
17
+ success: "bg-[var(--status-success-muted)] text-[var(--status-success)]",
18
+ warning: "bg-[var(--status-warning-muted)] text-[var(--status-warning)]",
19
+ info: "bg-[var(--status-info-muted)] text-[var(--status-info)]"
16
20
  }
17
21
  },
18
22
  defaultVariants: {
@@ -4,7 +4,7 @@ import * as React from 'react';
4
4
  import { VariantProps } from 'class-variance-authority';
5
5
 
6
6
  declare const badgeVariants: (props?: ({
7
- variant?: "default" | "link" | "destructive" | "outline" | "secondary" | "ghost" | null | undefined;
7
+ variant?: "default" | "link" | "destructive" | "outline" | "secondary" | "ghost" | "success" | "warning" | "info" | null | undefined;
8
8
  } & class_variance_authority_types.ClassProp) | undefined) => string;
9
9
  declare function Badge({ className, variant, asChild, ...props }: React.ComponentProps<"span"> & VariantProps<typeof badgeVariants> & {
10
10
  asChild?: boolean;
@@ -4,7 +4,7 @@ import * as React from 'react';
4
4
  import { VariantProps } from 'class-variance-authority';
5
5
 
6
6
  declare const badgeVariants: (props?: ({
7
- variant?: "default" | "link" | "destructive" | "outline" | "secondary" | "ghost" | null | undefined;
7
+ variant?: "default" | "link" | "destructive" | "outline" | "secondary" | "ghost" | "success" | "warning" | "info" | null | undefined;
8
8
  } & class_variance_authority_types.ClassProp) | undefined) => string;
9
9
  declare function Badge({ className, variant, asChild, ...props }: React.ComponentProps<"span"> & VariantProps<typeof badgeVariants> & {
10
10
  asChild?: boolean;
@@ -12,7 +12,11 @@ const badgeVariants = cva(
12
12
  destructive: "bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
13
13
  outline: "border-border text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground",
14
14
  ghost: "[a&]:hover:bg-accent [a&]:hover:text-accent-foreground",
15
- link: "text-primary underline-offset-4 [a&]:hover:underline"
15
+ link: "text-primary underline-offset-4 [a&]:hover:underline",
16
+ // Semantic status tones (error is covered by `destructive`).
17
+ success: "bg-[var(--status-success-muted)] text-[var(--status-success)]",
18
+ warning: "bg-[var(--status-warning-muted)] text-[var(--status-warning)]",
19
+ info: "bg-[var(--status-info-muted)] text-[var(--status-info)]"
16
20
  }
17
21
  },
18
22
  defaultVariants: {
@@ -0,0 +1,8 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2
+
3
+ var _catalog = require('./components/dashboard/catalog'); var _catalog2 = _interopRequireDefault(_catalog);
4
+
5
+
6
+
7
+
8
+ exports.dashboardComponentCatalog = _catalog.dashboardComponentCatalog; exports.default = _catalog2.default;
@@ -0,0 +1 @@
1
+ export { DashboardComponentCatalogEntry, dashboardComponentCatalog, dashboardComponentCatalog as default } from './components/dashboard/catalog.cjs';
@@ -0,0 +1 @@
1
+ export { DashboardComponentCatalogEntry, dashboardComponentCatalog, dashboardComponentCatalog as default } from './components/dashboard/catalog.js';
@@ -0,0 +1,8 @@
1
+ import {
2
+ dashboardComponentCatalog
3
+ } from "./components/dashboard/catalog";
4
+ import { default as default2 } from "./components/dashboard/catalog";
5
+ export {
6
+ dashboardComponentCatalog,
7
+ default2 as default
8
+ };
package/dist/index.cjs CHANGED
@@ -112,6 +112,7 @@ var _transcription = require('./components/ai-elements/transcription'); _createS
112
112
  var _voiceselectoraccent = require('./components/ai-elements/voice-selector-accent'); _createStarExport(_voiceselectoraccent);
113
113
  var _voiceselector = require('./components/ai-elements/voice-selector'); _createStarExport(_voiceselector);
114
114
  var _webpreview = require('./components/ai-elements/web-preview'); _createStarExport(_webpreview);
115
+ var _dashboard = require('./components/dashboard'); _createStarExport(_dashboard);
115
116
  var _availablemodelpicker = require('./components/model-selection/available-model-picker'); _createStarExport(_availablemodelpicker);
116
117
  var _modelwarninglist = require('./components/model-selection/model-warning-list'); _createStarExport(_modelwarninglist);
117
118
  var _thinkinglevelpicker = require('./components/model-selection/thinking-level-picker'); _createStarExport(_thinkinglevelpicker);
package/dist/index.d.cts CHANGED
@@ -113,6 +113,21 @@ export { Transcription, TranscriptionProps, TranscriptionSegment, TranscriptionS
113
113
  export { VoiceSelectorAccent, VoiceSelectorAccentProps, VoiceSelectorAccentValue } from './components/ai-elements/voice-selector-accent.cjs';
114
114
  export { VoiceSelector, VoiceSelectorAge, VoiceSelectorAgeProps, VoiceSelectorAttributes, VoiceSelectorAttributesProps, VoiceSelectorBullet, VoiceSelectorBulletProps, VoiceSelectorContent, VoiceSelectorContentProps, VoiceSelectorDescription, VoiceSelectorDescriptionProps, VoiceSelectorDialog, VoiceSelectorDialogProps, VoiceSelectorEmpty, VoiceSelectorEmptyProps, VoiceSelectorGender, VoiceSelectorGenderProps, VoiceSelectorGroup, VoiceSelectorGroupProps, VoiceSelectorInput, VoiceSelectorInputProps, VoiceSelectorItem, VoiceSelectorItemProps, VoiceSelectorList, VoiceSelectorListProps, VoiceSelectorName, VoiceSelectorNameProps, VoiceSelectorPreview, VoiceSelectorPreviewProps, VoiceSelectorProps, VoiceSelectorSeparator, VoiceSelectorSeparatorProps, VoiceSelectorShortcut, VoiceSelectorShortcutProps, VoiceSelectorTrigger, VoiceSelectorTriggerProps, useVoiceSelector } from './components/ai-elements/voice-selector.cjs';
115
115
  export { WebPreview, WebPreviewBody, WebPreviewBodyProps, WebPreviewConsole, WebPreviewConsoleProps, WebPreviewContextValue, WebPreviewNavigation, WebPreviewNavigationButton, WebPreviewNavigationButtonProps, WebPreviewNavigationProps, WebPreviewProps, WebPreviewUrl, WebPreviewUrlProps } from './components/ai-elements/web-preview.cjs';
116
+ export { Tone, toneColor, toneDot, tonePill } from './components/dashboard/tone.cjs';
117
+ export { Gap, gapClass } from './components/dashboard/spacing.cjs';
118
+ export { Divider, DividerProps, Grid, GridProps, Inline, InlineProps, Section, SectionProps, Stack, StackProps, WidgetContent, WidgetContentProps } from './components/dashboard/layout.cjs';
119
+ export { Heading, HeadingProps, Icon, IconProps, Text, TextProps } from './components/dashboard/typography.cjs';
120
+ export { Metric, MetricCard, MetricCardProps, MetricGroup, MetricGroupProps, MetricProps, MetricTrend } from './components/dashboard/metric.cjs';
121
+ export { Status, StatusProps } from './components/dashboard/status.cjs';
122
+ export { KeyValue, KeyValueList, KeyValueListProps, KeyValueProps } from './components/dashboard/key-value.cjs';
123
+ export { ItemList, ItemListItem, ItemListItemProps, ItemListProps } from './components/dashboard/item-list.cjs';
124
+ export { ActivityList, ActivityListItem, ActivityListItemProps, ActivityListProps } from './components/dashboard/activity-list.cjs';
125
+ export { ProgressRing, ProgressRingProps } from './components/dashboard/progress-ring.cjs';
126
+ export { StaleIndicator, StaleIndicatorProps } from './components/dashboard/stale-indicator.cjs';
127
+ export { DataBoundary, DataBoundaryProps, DataState } from './components/dashboard/data-boundary.cjs';
128
+ export { EmptyState, EmptyStateProps } from './components/dashboard/empty-state.cjs';
129
+ export { ActivitySkeleton, ListSkeleton, MetricSkeleton, SkeletonPatternProps } from './components/dashboard/skeletons.cjs';
130
+ export { IconButton, IconButtonProps } from './components/dashboard/icon-button.cjs';
116
131
  export { AvailableModelPicker } from './components/model-selection/available-model-picker.cjs';
117
132
  export { ModelWarningList } from './components/model-selection/model-warning-list.cjs';
118
133
  export { ThinkingLevelPicker } from './components/model-selection/thinking-level-picker.cjs';
package/dist/index.d.ts CHANGED
@@ -113,6 +113,21 @@ export { Transcription, TranscriptionProps, TranscriptionSegment, TranscriptionS
113
113
  export { VoiceSelectorAccent, VoiceSelectorAccentProps, VoiceSelectorAccentValue } from './components/ai-elements/voice-selector-accent.js';
114
114
  export { VoiceSelector, VoiceSelectorAge, VoiceSelectorAgeProps, VoiceSelectorAttributes, VoiceSelectorAttributesProps, VoiceSelectorBullet, VoiceSelectorBulletProps, VoiceSelectorContent, VoiceSelectorContentProps, VoiceSelectorDescription, VoiceSelectorDescriptionProps, VoiceSelectorDialog, VoiceSelectorDialogProps, VoiceSelectorEmpty, VoiceSelectorEmptyProps, VoiceSelectorGender, VoiceSelectorGenderProps, VoiceSelectorGroup, VoiceSelectorGroupProps, VoiceSelectorInput, VoiceSelectorInputProps, VoiceSelectorItem, VoiceSelectorItemProps, VoiceSelectorList, VoiceSelectorListProps, VoiceSelectorName, VoiceSelectorNameProps, VoiceSelectorPreview, VoiceSelectorPreviewProps, VoiceSelectorProps, VoiceSelectorSeparator, VoiceSelectorSeparatorProps, VoiceSelectorShortcut, VoiceSelectorShortcutProps, VoiceSelectorTrigger, VoiceSelectorTriggerProps, useVoiceSelector } from './components/ai-elements/voice-selector.js';
115
115
  export { WebPreview, WebPreviewBody, WebPreviewBodyProps, WebPreviewConsole, WebPreviewConsoleProps, WebPreviewContextValue, WebPreviewNavigation, WebPreviewNavigationButton, WebPreviewNavigationButtonProps, WebPreviewNavigationProps, WebPreviewProps, WebPreviewUrl, WebPreviewUrlProps } from './components/ai-elements/web-preview.js';
116
+ export { Tone, toneColor, toneDot, tonePill } from './components/dashboard/tone.js';
117
+ export { Gap, gapClass } from './components/dashboard/spacing.js';
118
+ export { Divider, DividerProps, Grid, GridProps, Inline, InlineProps, Section, SectionProps, Stack, StackProps, WidgetContent, WidgetContentProps } from './components/dashboard/layout.js';
119
+ export { Heading, HeadingProps, Icon, IconProps, Text, TextProps } from './components/dashboard/typography.js';
120
+ export { Metric, MetricCard, MetricCardProps, MetricGroup, MetricGroupProps, MetricProps, MetricTrend } from './components/dashboard/metric.js';
121
+ export { Status, StatusProps } from './components/dashboard/status.js';
122
+ export { KeyValue, KeyValueList, KeyValueListProps, KeyValueProps } from './components/dashboard/key-value.js';
123
+ export { ItemList, ItemListItem, ItemListItemProps, ItemListProps } from './components/dashboard/item-list.js';
124
+ export { ActivityList, ActivityListItem, ActivityListItemProps, ActivityListProps } from './components/dashboard/activity-list.js';
125
+ export { ProgressRing, ProgressRingProps } from './components/dashboard/progress-ring.js';
126
+ export { StaleIndicator, StaleIndicatorProps } from './components/dashboard/stale-indicator.js';
127
+ export { DataBoundary, DataBoundaryProps, DataState } from './components/dashboard/data-boundary.js';
128
+ export { EmptyState, EmptyStateProps } from './components/dashboard/empty-state.js';
129
+ export { ActivitySkeleton, ListSkeleton, MetricSkeleton, SkeletonPatternProps } from './components/dashboard/skeletons.js';
130
+ export { IconButton, IconButtonProps } from './components/dashboard/icon-button.js';
116
131
  export { AvailableModelPicker } from './components/model-selection/available-model-picker.js';
117
132
  export { ModelWarningList } from './components/model-selection/model-warning-list.js';
118
133
  export { ThinkingLevelPicker } from './components/model-selection/thinking-level-picker.js';
package/dist/index.js CHANGED
@@ -112,6 +112,7 @@ export * from "./components/ai-elements/transcription";
112
112
  export * from "./components/ai-elements/voice-selector-accent";
113
113
  export * from "./components/ai-elements/voice-selector";
114
114
  export * from "./components/ai-elements/web-preview";
115
+ export * from "./components/dashboard";
115
116
  export * from "./components/model-selection/available-model-picker";
116
117
  export * from "./components/model-selection/model-warning-list";
117
118
  export * from "./components/model-selection/thinking-level-picker";
@@ -0,0 +1,12 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+
4
+
5
+
6
+ var _reference = require('./components/reference');
7
+
8
+
9
+
10
+
11
+
12
+ exports.ActivityExample = _reference.ActivityExample; exports.ResourceExample = _reference.ResourceExample; exports.SchedulerExample = _reference.SchedulerExample; exports.StarterExample = _reference.StarterExample;
@@ -0,0 +1,5 @@
1
+ export { StarterExample } from './components/reference/StarterExample.cjs';
2
+ export { SchedulerExample } from './components/reference/SchedulerExample.cjs';
3
+ export { ResourceExample } from './components/reference/ResourceExample.cjs';
4
+ export { ActivityExample } from './components/reference/ActivityExample.cjs';
5
+ import 'react/jsx-runtime';
@@ -0,0 +1,5 @@
1
+ export { StarterExample } from './components/reference/StarterExample.js';
2
+ export { SchedulerExample } from './components/reference/SchedulerExample.js';
3
+ export { ResourceExample } from './components/reference/ResourceExample.js';
4
+ export { ActivityExample } from './components/reference/ActivityExample.js';
5
+ import 'react/jsx-runtime';
@@ -0,0 +1,12 @@
1
+ import {
2
+ StarterExample,
3
+ SchedulerExample,
4
+ ResourceExample,
5
+ ActivityExample
6
+ } from "./components/reference";
7
+ export {
8
+ ActivityExample,
9
+ ResourceExample,
10
+ SchedulerExample,
11
+ StarterExample
12
+ };
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Shared glass board — the frosted-board look, framework-agnostic.
3
+ *
4
+ * `.glass-canvas` paints the ambient accent-glow backdrop; `.glass-tile`
5
+ * is a translucent, backdrop-blurred surface with a luminous hairline rim.
6
+ * The desktop dashboard and the styleguide preview both consume this file
7
+ * so widgets render on an identical board.
8
+ *
9
+ * Depends on the canonical `--glass-*` tokens in globals.css. Dark is the
10
+ * primary target; light mirrors the same relationships (frosted white
11
+ * glass over a soft tinted canvas).
12
+ */
13
+
14
+ /* ── Canvas ──────────────────────────────────────────────────────
15
+ Ambient accent glow the glass tiles pick up. */
16
+ .glass-canvas {
17
+ --glass-canvas-base: #e9eaef;
18
+ --glass-glow-a: color-mix(in srgb, var(--accent-primary) 16%, transparent);
19
+ --glass-glow-b: color-mix(in srgb, var(--brand-primary) 12%, transparent);
20
+ background:
21
+ radial-gradient(90% 70% at 85% -10%, var(--glass-glow-a), transparent 60%),
22
+ radial-gradient(80% 60% at -10% 110%, var(--glass-glow-b), transparent 60%),
23
+ var(--glass-canvas-base);
24
+ }
25
+
26
+ .dark .glass-canvas {
27
+ --glass-canvas-base: #060608;
28
+ --glass-glow-a: color-mix(in srgb, var(--accent-primary) 48%, transparent);
29
+ --glass-glow-b: color-mix(in srgb, var(--brand-primary) 30%, transparent);
30
+ }
31
+
32
+ /* ── Glass tile surface ──────────────────────────────────────────
33
+ Translucent, blurred surface floating over the canvas. The surface is
34
+ static on hover — the tile is content, not a button, so pointing at it
35
+ must not change it. (`--glass-hover` is still used for row hover *inside*
36
+ widgets.) The transition covers the drag/resize state changes only. */
37
+ .glass-tile {
38
+ background: var(--glass-tile);
39
+ border: 1px solid var(--glass-border);
40
+ backdrop-filter: blur(24px) saturate(140%);
41
+ box-shadow: inset 0 1px 0 var(--glass-rim);
42
+ transition: background-color 150ms ease, border-color 150ms ease;
43
+ }
@@ -179,6 +179,27 @@
179
179
  --sidebar-accent-foreground: var(--text-primary);
180
180
  --sidebar-border: var(--border-subtle);
181
181
  --sidebar-ring: var(--border-focus);
182
+
183
+ /* ── Glass (dashboard) ────────────────────────────────────
184
+ Canonical translucent surface language for the glass
185
+ dashboard. The host `dashboard.css` derives its `--dash-*`
186
+ tokens from these, and the `.glass` scope below remaps the
187
+ component-facing `--surface-*` tokens to them. Light =
188
+ frosted white; dark values live in the `.dark` block. */
189
+ --glass-tile: rgba(255, 255, 255, 0.52); /* base tile (host) */
190
+ --glass-surface: rgba(255, 255, 255, 0.62); /* raised card */
191
+ --glass-surface-flat: rgba(255, 255, 255, 0.40); /* flat row */
192
+ --glass-border: rgba(15, 17, 23, 0.10);
193
+ --glass-rim: rgba(255, 255, 255, 0.60);
194
+ --glass-hover: rgba(255, 255, 255, 0.72);
195
+
196
+ /* Component-facing surface tokens. Default to the solid design
197
+ tokens so components look unchanged outside the `.glass`
198
+ scope; the scope flips them to the glass values above. */
199
+ --surface-raised: var(--bg-surface);
200
+ --surface-flat: var(--bg-elevated);
201
+ --surface-line: var(--border-subtle);
202
+ --surface-rim: transparent;
182
203
  }
183
204
 
184
205
  /* ── Scrollbars ─────────────────────────────────────────────── */
@@ -421,6 +442,44 @@
421
442
  --sidebar-accent-foreground: var(--text-primary);
422
443
  --sidebar-border: var(--border-subtle);
423
444
  --sidebar-ring: var(--border-focus);
445
+
446
+ /* ── Glass (dashboard) — dark: low-opacity white over the dark
447
+ canvas glow. `--surface-*` defaults stay solid; the `.glass`
448
+ scope flips them (values shared across themes via the vars). */
449
+ --glass-tile: rgba(255, 255, 255, 0.06);
450
+ --glass-surface: rgba(255, 255, 255, 0.09);
451
+ --glass-surface-flat: rgba(255, 255, 255, 0.05);
452
+ --glass-border: rgba(255, 255, 255, 0.12);
453
+ --glass-rim: rgba(255, 255, 255, 0.08);
454
+ --glass-hover: rgba(255, 255, 255, 0.13);
455
+ }
456
+
457
+ /* ── Glass scope ─────────────────────────────────────────────────
458
+ Subtree-local class applied by `WidgetContent` (default on). It
459
+ remaps the component-facing surface tokens and the container/border
460
+ shadcn bridge tokens to the translucent glass values, so dashboard
461
+ components read as part of the frosted tile. Interactive controls
462
+ (`--input`) and portalled surfaces (`--popover`, rendered at
463
+ document.body outside this scope) stay solid for legibility. No
464
+ `backdrop-filter` here — the host tile provides the single blur. */
465
+ .glass {
466
+ /* component surface tokens */
467
+ --surface-raised: var(--glass-surface);
468
+ --surface-flat: var(--glass-surface-flat);
469
+ --surface-line: var(--glass-border);
470
+ --surface-rim: var(--glass-rim);
471
+
472
+ /* containers + borders for primitives used inside widgets */
473
+ --card: var(--glass-surface);
474
+ --secondary: var(--glass-surface-flat);
475
+ --muted: var(--glass-surface-flat);
476
+ --accent: var(--glass-surface-flat);
477
+ --border: var(--glass-border);
478
+
479
+ /* keep interactive controls + portalled surfaces solid */
480
+ --input: var(--border-subtle);
481
+ --popover: var(--bg-elevated);
482
+ --ring: var(--border-focus);
424
483
  }
425
484
 
426
485
  html {