@sero-ai/ui 0.4.1 → 0.5.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/.turbo/turbo-build.log +397 -384
- package/.turbo/turbo-test.log +18 -0
- package/.turbo/turbo-typecheck.log +1 -1
- package/CHANGELOG.md +18 -0
- package/dist/components/ai-elements/agent.cjs +6 -6
- package/dist/components/ai-elements/agent.js +6 -6
- package/dist/components/ai-elements/artifact.cjs +2 -2
- package/dist/components/ai-elements/artifact.js +2 -2
- package/dist/components/ai-elements/attachments.cjs +2 -2
- package/dist/components/ai-elements/attachments.js +2 -2
- package/dist/components/ai-elements/chain-of-thought.cjs +2 -2
- package/dist/components/ai-elements/chain-of-thought.js +2 -2
- package/dist/components/ai-elements/code-block.cjs +7 -5
- package/dist/components/ai-elements/code-block.d.cts +2 -1
- package/dist/components/ai-elements/code-block.d.ts +2 -1
- package/dist/components/ai-elements/code-block.js +7 -5
- package/dist/components/ai-elements/commit.cjs +2 -2
- package/dist/components/ai-elements/commit.js +2 -2
- package/dist/components/ai-elements/confirmation.cjs +1 -1
- package/dist/components/ai-elements/confirmation.js +1 -1
- package/dist/components/ai-elements/conversation.cjs +2 -2
- package/dist/components/ai-elements/conversation.js +2 -2
- package/dist/components/ai-elements/environment-variables.cjs +3 -3
- package/dist/components/ai-elements/environment-variables.js +3 -3
- package/dist/components/ai-elements/file-tree.cjs +1 -1
- package/dist/components/ai-elements/file-tree.js +1 -1
- package/dist/components/ai-elements/inline-citation.cjs +3 -3
- package/dist/components/ai-elements/inline-citation.js +3 -3
- package/dist/components/ai-elements/jsx-preview.cjs +1 -1
- package/dist/components/ai-elements/jsx-preview.js +1 -1
- package/dist/components/ai-elements/message.cjs +1 -1
- package/dist/components/ai-elements/message.js +1 -1
- package/dist/components/ai-elements/package-info.cjs +4 -4
- package/dist/components/ai-elements/package-info.js +4 -4
- package/dist/components/ai-elements/prompt-input-context.cjs +2 -3
- package/dist/components/ai-elements/prompt-input-context.js +2 -3
- package/dist/components/ai-elements/queue.cjs +2 -2
- package/dist/components/ai-elements/queue.js +2 -2
- package/dist/components/ai-elements/reasoning.cjs +2 -2
- package/dist/components/ai-elements/reasoning.js +2 -2
- package/dist/components/ai-elements/sandbox.cjs +3 -3
- package/dist/components/ai-elements/sandbox.js +3 -3
- package/dist/components/ai-elements/schema-display.cjs +12 -12
- package/dist/components/ai-elements/schema-display.js +12 -12
- package/dist/components/ai-elements/speech-input.cjs +18 -2
- package/dist/components/ai-elements/speech-input.js +16 -0
- package/dist/components/ai-elements/stack-trace.cjs +1 -1
- package/dist/components/ai-elements/stack-trace.js +1 -1
- package/dist/components/ai-elements/task.cjs +3 -3
- package/dist/components/ai-elements/task.js +3 -3
- package/dist/components/ai-elements/terminal.cjs +2 -2
- package/dist/components/ai-elements/terminal.js +2 -2
- package/dist/components/ai-elements/test-results.cjs +4 -4
- package/dist/components/ai-elements/test-results.js +4 -4
- package/dist/components/ai-elements/tool.cjs +4 -4
- package/dist/components/ai-elements/tool.js +4 -4
- package/dist/components/ai-elements/transcription.cjs +1 -1
- package/dist/components/ai-elements/transcription.js +1 -1
- package/dist/components/ai-elements/web-preview.cjs +2 -2
- package/dist/components/ai-elements/web-preview.js +2 -2
- package/dist/components/context-editor/CapabilitySection.cjs +2 -2
- package/dist/components/context-editor/CapabilitySection.js +2 -2
- package/dist/components/context-editor/ContextEditor.cjs +2 -2
- package/dist/components/context-editor/ContextEditor.js +2 -2
- package/dist/components/context-editor/PresetBar.cjs +3 -3
- package/dist/components/context-editor/PresetBar.js +3 -3
- package/dist/components/context-editor/SystemPromptSection.cjs +4 -4
- package/dist/components/context-editor/SystemPromptSection.js +4 -4
- package/dist/components/context-editor/parts.cjs +6 -6
- package/dist/components/context-editor/parts.js +6 -6
- package/dist/components/dashboard/activity-list.cjs +2 -2
- package/dist/components/dashboard/activity-list.js +2 -2
- package/dist/components/dashboard/empty-state.cjs +1 -1
- package/dist/components/dashboard/empty-state.js +1 -1
- package/dist/components/dashboard/item-list.cjs +2 -2
- package/dist/components/dashboard/item-list.js +2 -2
- package/dist/components/dashboard/layout.cjs +1 -1
- package/dist/components/dashboard/layout.js +1 -1
- package/dist/components/dashboard/metric.cjs +1 -1
- package/dist/components/dashboard/metric.js +1 -1
- package/dist/components/dashboard/stale-indicator.cjs +1 -1
- package/dist/components/dashboard/stale-indicator.js +1 -1
- package/dist/components/dashboard/typography.cjs +4 -4
- package/dist/components/dashboard/typography.d.cts +1 -1
- package/dist/components/dashboard/typography.d.ts +1 -1
- package/dist/components/dashboard/typography.js +4 -4
- package/dist/components/model-selection/available-model-picker.cjs +6 -6
- package/dist/components/model-selection/available-model-picker.js +6 -6
- package/dist/components/model-selection/thinking-level-picker.cjs +1 -1
- package/dist/components/model-selection/thinking-level-picker.js +1 -1
- package/dist/components/model-selection/thinking-picker.cjs +70 -0
- package/dist/components/model-selection/thinking-picker.d.cts +12 -0
- package/dist/components/model-selection/thinking-picker.d.ts +12 -0
- package/dist/components/model-selection/thinking-picker.js +70 -0
- package/dist/components/ui/accordion.cjs +2 -2
- package/dist/components/ui/accordion.js +2 -2
- package/dist/components/ui/alert-dialog.cjs +4 -2
- package/dist/components/ui/alert-dialog.js +4 -2
- package/dist/components/ui/alert.cjs +2 -2
- package/dist/components/ui/alert.js +2 -2
- package/dist/components/ui/avatar.cjs +2 -2
- package/dist/components/ui/avatar.js +2 -2
- package/dist/components/ui/breadcrumb.cjs +1 -1
- package/dist/components/ui/breadcrumb.js +1 -1
- package/dist/components/ui/button-group.cjs +1 -1
- package/dist/components/ui/button-group.js +1 -1
- package/dist/components/ui/button.cjs +1 -1
- package/dist/components/ui/button.js +1 -1
- package/dist/components/ui/calendar.cjs +2 -2
- package/dist/components/ui/calendar.js +2 -2
- package/dist/components/ui/card.cjs +1 -1
- package/dist/components/ui/card.js +1 -1
- package/dist/components/ui/carousel.cjs +3 -2
- package/dist/components/ui/carousel.js +2 -1
- package/dist/components/ui/chart.cjs +36 -27
- package/dist/components/ui/chart.d.cts +21 -17
- package/dist/components/ui/chart.d.ts +21 -17
- package/dist/components/ui/chart.js +30 -21
- package/dist/components/ui/combobox.cjs +7 -5
- package/dist/components/ui/combobox.js +7 -5
- package/dist/components/ui/command.cjs +3 -3
- package/dist/components/ui/command.js +3 -3
- package/dist/components/ui/context-menu.cjs +10 -7
- package/dist/components/ui/context-menu.js +10 -7
- package/dist/components/ui/dialog.cjs +4 -2
- package/dist/components/ui/dialog.js +4 -2
- package/dist/components/ui/drawer.cjs +4 -2
- package/dist/components/ui/drawer.js +4 -2
- package/dist/components/ui/dropdown-menu.cjs +10 -7
- package/dist/components/ui/dropdown-menu.js +10 -7
- package/dist/components/ui/empty.cjs +2 -2
- package/dist/components/ui/empty.js +2 -2
- package/dist/components/ui/field.cjs +5 -5
- package/dist/components/ui/field.js +5 -5
- package/dist/components/ui/form.cjs +2 -2
- package/dist/components/ui/form.d.cts +1 -1
- package/dist/components/ui/form.d.ts +1 -1
- package/dist/components/ui/form.js +2 -2
- package/dist/components/ui/hover-card.cjs +3 -1
- package/dist/components/ui/hover-card.js +3 -1
- package/dist/components/ui/input-group.cjs +3 -3
- package/dist/components/ui/input-group.js +3 -3
- package/dist/components/ui/input-otp.cjs +1 -1
- package/dist/components/ui/input-otp.js +1 -1
- package/dist/components/ui/input.cjs +1 -1
- package/dist/components/ui/input.js +1 -1
- package/dist/components/ui/item.cjs +3 -3
- package/dist/components/ui/item.js +3 -3
- package/dist/components/ui/label.cjs +1 -1
- package/dist/components/ui/label.js +1 -1
- package/dist/components/ui/menubar.cjs +9 -7
- package/dist/components/ui/menubar.js +9 -7
- package/dist/components/ui/native-select.cjs +1 -1
- package/dist/components/ui/native-select.js +1 -1
- package/dist/components/ui/navigation-menu.cjs +2 -2
- package/dist/components/ui/navigation-menu.js +2 -2
- package/dist/components/ui/plugin-safety-disclaimer.cjs +1 -1
- package/dist/components/ui/plugin-safety-disclaimer.js +1 -1
- package/dist/components/ui/popover.cjs +4 -2
- package/dist/components/ui/popover.js +4 -2
- package/dist/components/ui/select.cjs +5 -3
- package/dist/components/ui/select.js +5 -3
- package/dist/components/ui/sheet.cjs +4 -2
- package/dist/components/ui/sheet.js +4 -2
- package/dist/components/ui/sidebar.cjs +5 -5
- package/dist/components/ui/sidebar.js +5 -5
- package/dist/components/ui/table.cjs +2 -2
- package/dist/components/ui/table.js +2 -2
- package/dist/components/ui/tabs.cjs +1 -1
- package/dist/components/ui/tabs.js +1 -1
- package/dist/components/ui/textarea.cjs +1 -1
- package/dist/components/ui/textarea.js +1 -1
- package/dist/components/ui/toggle.cjs +1 -1
- package/dist/components/ui/toggle.js +1 -1
- package/dist/components/ui/tooltip.cjs +3 -1
- package/dist/components/ui/tooltip.js +3 -1
- package/dist/index.cjs +5 -56
- package/dist/index.d.cts +2 -65
- package/dist/index.d.ts +2 -65
- package/dist/index.js +5 -56
- package/dist/plugin-style-scope-context.cjs +10 -0
- package/dist/plugin-style-scope-context.d.cts +13 -0
- package/dist/plugin-style-scope-context.d.ts +13 -0
- package/dist/plugin-style-scope-context.js +10 -0
- package/dist/plugin-style-scope.cjs +25 -0
- package/dist/plugin-style-scope.d.cts +11 -0
- package/dist/plugin-style-scope.d.ts +11 -0
- package/dist/plugin-style-scope.js +25 -0
- package/dist/reference.cjs +71 -98
- package/dist/reference.js +71 -98
- package/dist/styles/ai-elements.css +2 -0
- package/dist/styles/context-editor.css +2 -0
- package/dist/styles/globals.css +22 -3
- package/dist/styles/model-selection.css +2 -0
- package/dist/styles/plugin-theme.css +80 -0
- package/dist/styles/plugin.css +17 -2
- package/package.json +32 -19
- package/scripts/smoke-dist.mjs +104 -2
- package/src/components/ai-elements/agent.tsx +6 -6
- package/src/components/ai-elements/artifact.tsx +2 -2
- package/src/components/ai-elements/attachments.tsx +2 -2
- package/src/components/ai-elements/chain-of-thought.tsx +2 -2
- package/src/components/ai-elements/code-block.tsx +6 -3
- package/src/components/ai-elements/commit.tsx +2 -2
- package/src/components/ai-elements/confirmation.tsx +1 -1
- package/src/components/ai-elements/conversation.tsx +2 -2
- package/src/components/ai-elements/environment-variables.tsx +3 -3
- package/src/components/ai-elements/file-tree.tsx +1 -1
- package/src/components/ai-elements/inline-citation.tsx +3 -3
- package/src/components/ai-elements/jsx-preview.tsx +1 -1
- package/src/components/ai-elements/message.tsx +1 -1
- package/src/components/ai-elements/package-info.tsx +4 -4
- package/src/components/ai-elements/prompt-input-context.tsx +3 -2
- package/src/components/ai-elements/queue.tsx +2 -2
- package/src/components/ai-elements/reasoning.tsx +2 -2
- package/src/components/ai-elements/sandbox.tsx +3 -3
- package/src/components/ai-elements/schema-display.tsx +12 -12
- package/src/components/ai-elements/speech-input.tsx +17 -0
- package/src/components/ai-elements/stack-trace.tsx +1 -1
- package/src/components/ai-elements/task.tsx +3 -3
- package/src/components/ai-elements/terminal.tsx +2 -2
- package/src/components/ai-elements/test-results.tsx +4 -4
- package/src/components/ai-elements/tool.tsx +4 -4
- package/src/components/ai-elements/transcription.tsx +1 -1
- package/src/components/ai-elements/web-preview.tsx +2 -2
- package/src/components/context-editor/CapabilitySection.tsx +2 -2
- package/src/components/context-editor/ContextEditor.tsx +2 -2
- package/src/components/context-editor/PresetBar.tsx +3 -3
- package/src/components/context-editor/SystemPromptSection.tsx +4 -4
- package/src/components/context-editor/parts.tsx +6 -6
- package/src/components/dashboard/activity-list.tsx +2 -2
- package/src/components/dashboard/empty-state.tsx +1 -1
- package/src/components/dashboard/item-list.tsx +2 -2
- package/src/components/dashboard/layout.tsx +1 -1
- package/src/components/dashboard/metric.tsx +1 -1
- package/src/components/dashboard/stale-indicator.tsx +1 -1
- package/src/components/dashboard/typography.tsx +5 -5
- package/src/components/model-selection/available-model-picker.tsx +7 -7
- package/src/components/model-selection/thinking-level-picker.tsx +1 -1
- package/src/components/model-selection/thinking-picker.tsx +90 -0
- package/src/components/ui/accordion.tsx +2 -2
- package/src/components/ui/alert-dialog.tsx +4 -2
- package/src/components/ui/alert.tsx +2 -2
- package/src/components/ui/avatar.tsx +2 -2
- package/src/components/ui/breadcrumb.tsx +1 -1
- package/src/components/ui/button-group.tsx +1 -1
- package/src/components/ui/button.tsx +1 -1
- package/src/components/ui/calendar.tsx +3 -3
- package/src/components/ui/card.tsx +1 -1
- package/src/components/ui/carousel.tsx +2 -1
- package/src/components/ui/chart.tsx +54 -36
- package/src/components/ui/combobox.tsx +7 -5
- package/src/components/ui/command.tsx +3 -3
- package/src/components/ui/context-menu.tsx +10 -7
- package/src/components/ui/dialog.tsx +4 -2
- package/src/components/ui/drawer.tsx +4 -2
- package/src/components/ui/dropdown-menu.tsx +10 -7
- package/src/components/ui/empty.tsx +2 -2
- package/src/components/ui/field.tsx +5 -5
- package/src/components/ui/form.tsx +2 -2
- package/src/components/ui/hover-card.tsx +3 -1
- package/src/components/ui/input-group.tsx +3 -3
- package/src/components/ui/input-otp.tsx +1 -1
- package/src/components/ui/input.tsx +1 -1
- package/src/components/ui/item.tsx +3 -3
- package/src/components/ui/label.tsx +1 -1
- package/src/components/ui/menubar.tsx +9 -7
- package/src/components/ui/native-select.tsx +1 -1
- package/src/components/ui/navigation-menu.tsx +2 -2
- package/src/components/ui/plugin-safety-disclaimer.tsx +1 -1
- package/src/components/ui/popover.tsx +4 -2
- package/src/components/ui/select.tsx +5 -3
- package/src/components/ui/sheet.tsx +4 -2
- package/src/components/ui/sidebar.tsx +5 -5
- package/src/components/ui/table.tsx +2 -2
- package/src/components/ui/tabs.tsx +1 -1
- package/src/components/ui/textarea.tsx +1 -1
- package/src/components/ui/toggle.tsx +1 -1
- package/src/components/ui/tooltip.tsx +3 -1
- package/src/index.ts +6 -63
- package/src/plugin-style-scope-context.ts +21 -0
- package/src/plugin-style-scope.test.tsx +38 -0
- package/src/plugin-style-scope.tsx +35 -0
- package/src/styles/ai-elements.css +2 -0
- package/src/styles/context-editor.css +2 -0
- package/src/styles/globals.css +22 -3
- package/src/styles/model-selection.css +2 -0
- package/src/styles/plugin-theme.css +80 -0
- package/src/styles/plugin.css +17 -2
package/dist/reference.js
CHANGED
|
@@ -226,7 +226,7 @@ function Section({
|
|
|
226
226
|
children: [
|
|
227
227
|
(heading || action) && /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-2", children: [
|
|
228
228
|
/* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-col gap-0.5", children: [
|
|
229
|
-
heading && /* @__PURE__ */ jsx2("h3", { className: "truncate text-
|
|
229
|
+
heading && /* @__PURE__ */ jsx2("h3", { className: "truncate text-sm font-semibold uppercase tracking-wider text-[var(--text-muted)]", children: heading }),
|
|
230
230
|
description && /* @__PURE__ */ jsx2("p", { className: "truncate text-xs text-[var(--text-muted)]", children: description })
|
|
231
231
|
] }),
|
|
232
232
|
action && /* @__PURE__ */ jsx2("div", { className: "shrink-0", children: action })
|
|
@@ -263,11 +263,11 @@ import { jsx as jsx3 } from "react/jsx-runtime";
|
|
|
263
263
|
var textVariants = cva2("min-w-0", {
|
|
264
264
|
variants: {
|
|
265
265
|
variant: {
|
|
266
|
-
body: "text-
|
|
267
|
-
label: "text-
|
|
266
|
+
body: "text-base text-[var(--text-primary)]",
|
|
267
|
+
label: "text-sm font-semibold uppercase tracking-wider text-[var(--text-muted)]",
|
|
268
268
|
supporting: "text-xs text-[var(--text-secondary)]",
|
|
269
269
|
muted: "text-xs text-[var(--text-muted)]",
|
|
270
|
-
numeric: "text-
|
|
270
|
+
numeric: "text-base font-semibold tabular-nums text-[var(--text-primary)]"
|
|
271
271
|
}
|
|
272
272
|
},
|
|
273
273
|
defaultVariants: { variant: "body" }
|
|
@@ -301,7 +301,7 @@ function Text({
|
|
|
301
301
|
}
|
|
302
302
|
var headingSize = {
|
|
303
303
|
sm: "text-xs font-semibold",
|
|
304
|
-
md: "text-
|
|
304
|
+
md: "text-base font-semibold",
|
|
305
305
|
lg: "text-base font-semibold"
|
|
306
306
|
};
|
|
307
307
|
function Heading({
|
|
@@ -384,7 +384,7 @@ function Metric({
|
|
|
384
384
|
children: [
|
|
385
385
|
/* @__PURE__ */ jsxs2("div", { className: "flex items-center gap-1.5", children: [
|
|
386
386
|
icon && /* @__PURE__ */ jsx4(Icon, { icon, size: "sm" }),
|
|
387
|
-
/* @__PURE__ */ jsx4("span", { className: "truncate text-
|
|
387
|
+
/* @__PURE__ */ jsx4("span", { className: "truncate text-sm font-medium uppercase tracking-wide text-[var(--text-muted)]", children: label })
|
|
388
388
|
] }),
|
|
389
389
|
/* @__PURE__ */ jsxs2("div", { className: "flex items-baseline gap-1.5", children: [
|
|
390
390
|
/* @__PURE__ */ jsx4(
|
|
@@ -546,7 +546,7 @@ import { cva as cva3 } from "class-variance-authority";
|
|
|
546
546
|
import { Slot } from "radix-ui";
|
|
547
547
|
import { jsx as jsx7 } from "react/jsx-runtime";
|
|
548
548
|
var itemVariants = cva3(
|
|
549
|
-
"group/item flex items-center border border-transparent text-
|
|
549
|
+
"group/item flex items-center border border-transparent text-base rounded-md transition-colors [a]:hover:bg-accent/50 [a]:transition-colors duration-100 flex-wrap outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
|
|
550
550
|
{
|
|
551
551
|
variants: {
|
|
552
552
|
variant: {
|
|
@@ -633,7 +633,7 @@ function ItemTitle({ className, ...props }) {
|
|
|
633
633
|
{
|
|
634
634
|
"data-slot": "item-title",
|
|
635
635
|
className: cn(
|
|
636
|
-
"flex w-fit items-center gap-2 text-
|
|
636
|
+
"flex w-fit items-center gap-2 text-base leading-snug font-medium",
|
|
637
637
|
className
|
|
638
638
|
),
|
|
639
639
|
...props
|
|
@@ -646,7 +646,7 @@ function ItemDescription({ className, ...props }) {
|
|
|
646
646
|
{
|
|
647
647
|
"data-slot": "item-description",
|
|
648
648
|
className: cn(
|
|
649
|
-
"text-muted-foreground line-clamp-2 text-
|
|
649
|
+
"text-muted-foreground line-clamp-2 text-base leading-normal font-normal text-balance",
|
|
650
650
|
"[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4",
|
|
651
651
|
className
|
|
652
652
|
),
|
|
@@ -694,7 +694,7 @@ function ItemListItem({
|
|
|
694
694
|
/* @__PURE__ */ jsx8(ItemTitle, { className: "truncate text-xs font-medium text-[var(--text-primary)]", children: primary }),
|
|
695
695
|
secondary && /* @__PURE__ */ jsx8(ItemDescription, { className: "line-clamp-1 text-xs text-[var(--text-muted)]", children: secondary })
|
|
696
696
|
] }),
|
|
697
|
-
trailing && /* @__PURE__ */ jsx8("span", { className: "shrink-0 text-
|
|
697
|
+
trailing && /* @__PURE__ */ jsx8("span", { className: "shrink-0 text-sm tabular-nums text-[var(--text-muted)]", children: trailing }),
|
|
698
698
|
actions && /* @__PURE__ */ jsx8(ItemActions, { children: actions })
|
|
699
699
|
]
|
|
700
700
|
}
|
|
@@ -715,7 +715,7 @@ function ItemList({
|
|
|
715
715
|
...props,
|
|
716
716
|
children: [
|
|
717
717
|
children,
|
|
718
|
-
overflowCount > 0 && /* @__PURE__ */ jsxs5("span", { className: "px-2 text-
|
|
718
|
+
overflowCount > 0 && /* @__PURE__ */ jsxs5("span", { className: "px-2 text-sm text-[var(--text-muted)]", children: [
|
|
719
719
|
"+",
|
|
720
720
|
overflowCount,
|
|
721
721
|
" more"
|
|
@@ -747,7 +747,7 @@ function ActivityListItem({
|
|
|
747
747
|
/* @__PURE__ */ jsxs6("div", { className: "flex min-w-0 flex-1 flex-col gap-0.5", children: [
|
|
748
748
|
/* @__PURE__ */ jsxs6("div", { className: "flex items-baseline justify-between gap-2", children: [
|
|
749
749
|
/* @__PURE__ */ jsx9("span", { className: "truncate text-xs text-[var(--text-primary)]", children: label }),
|
|
750
|
-
timestamp && /* @__PURE__ */ jsx9("span", { className: "shrink-0 text-
|
|
750
|
+
timestamp && /* @__PURE__ */ jsx9("span", { className: "shrink-0 text-sm tabular-nums text-[var(--text-muted)]", children: timestamp })
|
|
751
751
|
] }),
|
|
752
752
|
detail && /* @__PURE__ */ jsx9("span", { className: "line-clamp-1 text-xs text-[var(--text-muted)]", children: detail })
|
|
753
753
|
] })
|
|
@@ -769,7 +769,7 @@ function ActivityList({
|
|
|
769
769
|
...props,
|
|
770
770
|
children: [
|
|
771
771
|
children,
|
|
772
|
-
overflowCount > 0 && /* @__PURE__ */ jsxs6("li", { className: "pl-5 pt-0.5 text-
|
|
772
|
+
overflowCount > 0 && /* @__PURE__ */ jsxs6("li", { className: "pl-5 pt-0.5 text-sm text-[var(--text-muted)]", children: [
|
|
773
773
|
"+",
|
|
774
774
|
overflowCount,
|
|
775
775
|
" more"
|
|
@@ -861,7 +861,7 @@ import { cva as cva4 } from "class-variance-authority";
|
|
|
861
861
|
import { Slot as Slot2 } from "radix-ui";
|
|
862
862
|
import { jsx as jsx11 } from "react/jsx-runtime";
|
|
863
863
|
var buttonVariants = cva4(
|
|
864
|
-
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-
|
|
864
|
+
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-base font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
|
|
865
865
|
{
|
|
866
866
|
variants: {
|
|
867
867
|
variant: {
|
|
@@ -959,7 +959,7 @@ function StaleIndicator({
|
|
|
959
959
|
{
|
|
960
960
|
"data-slot": "stale-indicator",
|
|
961
961
|
className: cn(
|
|
962
|
-
"flex items-center gap-1.5 text-
|
|
962
|
+
"flex items-center gap-1.5 text-sm text-[var(--text-muted)]",
|
|
963
963
|
className
|
|
964
964
|
),
|
|
965
965
|
...props,
|
|
@@ -1010,44 +1010,17 @@ function DataBoundary({
|
|
|
1010
1010
|
}
|
|
1011
1011
|
}
|
|
1012
1012
|
|
|
1013
|
-
// src/components/ui/empty.tsx
|
|
1014
|
-
import { cva as cva5 } from "class-variance-authority";
|
|
1015
|
-
import { jsx as jsx15 } from "react/jsx-runtime";
|
|
1016
|
-
var emptyMediaVariants = cva5(
|
|
1017
|
-
"flex shrink-0 items-center justify-center mb-2 [&_svg]:pointer-events-none [&_svg]:shrink-0",
|
|
1018
|
-
{
|
|
1019
|
-
variants: {
|
|
1020
|
-
variant: {
|
|
1021
|
-
default: "bg-transparent",
|
|
1022
|
-
icon: "bg-muted text-foreground flex size-10 shrink-0 items-center justify-center rounded-lg [&_svg:not([class*='size-'])]:size-6"
|
|
1023
|
-
}
|
|
1024
|
-
},
|
|
1025
|
-
defaultVariants: {
|
|
1026
|
-
variant: "default"
|
|
1027
|
-
}
|
|
1028
|
-
}
|
|
1029
|
-
);
|
|
1030
|
-
|
|
1031
|
-
// src/components/dashboard/empty-state.tsx
|
|
1032
|
-
import { jsx as jsx16, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
1033
|
-
|
|
1034
|
-
// src/components/ui/skeleton.tsx
|
|
1035
|
-
import { jsx as jsx17 } from "react/jsx-runtime";
|
|
1036
|
-
|
|
1037
|
-
// src/components/dashboard/skeletons.tsx
|
|
1038
|
-
import { jsx as jsx18, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
1039
|
-
|
|
1040
1013
|
// src/components/reference/StarterExample.tsx
|
|
1041
|
-
import { jsx as
|
|
1014
|
+
import { jsx as jsx15, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
1042
1015
|
var RECENT = [
|
|
1043
1016
|
{ id: "a", label: "Nightly build", timestamp: "12m", tone: "success" },
|
|
1044
1017
|
{ id: "b", label: "Deploy to staging", timestamp: "1h", tone: "info" },
|
|
1045
1018
|
{ id: "c", label: "Dependency audit", timestamp: "3h", tone: "neutral" }
|
|
1046
1019
|
];
|
|
1047
1020
|
function StarterExample() {
|
|
1048
|
-
return /* @__PURE__ */
|
|
1049
|
-
/* @__PURE__ */
|
|
1050
|
-
/* @__PURE__ */
|
|
1021
|
+
return /* @__PURE__ */ jsx15(WidgetContent, { children: /* @__PURE__ */ jsxs10(Stack, { gap: "sm", children: [
|
|
1022
|
+
/* @__PURE__ */ jsx15(Metric, { label: "Tasks done", value: 12, icon: CheckCircle2, tone: "success" }),
|
|
1023
|
+
/* @__PURE__ */ jsx15(Section, { heading: "Recent", children: /* @__PURE__ */ jsx15(ActivityList, { children: RECENT.map((e) => /* @__PURE__ */ jsx15(
|
|
1051
1024
|
ActivityListItem,
|
|
1052
1025
|
{
|
|
1053
1026
|
tone: e.tone,
|
|
@@ -1061,21 +1034,21 @@ function StarterExample() {
|
|
|
1061
1034
|
|
|
1062
1035
|
// src/components/reference/SchedulerExample.tsx
|
|
1063
1036
|
import { ExternalLink } from "lucide-react";
|
|
1064
|
-
import { jsx as
|
|
1037
|
+
import { jsx as jsx16, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
1065
1038
|
var UPCOMING = [
|
|
1066
1039
|
{ id: "a", label: "Daily backup", timestamp: "08:00", tone: "success" },
|
|
1067
1040
|
{ id: "b", label: "Publish report", timestamp: "in 2h", tone: "info" },
|
|
1068
1041
|
{ id: "c", label: "Rotate API keys", timestamp: "tomorrow", tone: "warning" }
|
|
1069
1042
|
];
|
|
1070
1043
|
function SchedulerExample() {
|
|
1071
|
-
return /* @__PURE__ */
|
|
1072
|
-
/* @__PURE__ */
|
|
1073
|
-
/* @__PURE__ */
|
|
1074
|
-
/* @__PURE__ */
|
|
1044
|
+
return /* @__PURE__ */ jsx16(WidgetContent, { children: /* @__PURE__ */ jsxs11(Stack, { gap: "sm", children: [
|
|
1045
|
+
/* @__PURE__ */ jsxs11(Inline, { justify: "between", align: "center", children: [
|
|
1046
|
+
/* @__PURE__ */ jsx16(Status, { tone: "success", pulse: true, children: "Scheduler active" }),
|
|
1047
|
+
/* @__PURE__ */ jsx16(ProgressRing, { value: 92, label: "Success rate", tone: "success", size: 40 })
|
|
1075
1048
|
] }),
|
|
1076
|
-
/* @__PURE__ */
|
|
1077
|
-
/* @__PURE__ */
|
|
1078
|
-
/* @__PURE__ */
|
|
1049
|
+
/* @__PURE__ */ jsx16(Section, { heading: "Summary", children: /* @__PURE__ */ jsxs11(Inline, { gap: "sm", wrap: true, children: [
|
|
1050
|
+
/* @__PURE__ */ jsx16(MetricCard, { className: "flex-1", children: /* @__PURE__ */ jsx16(Metric, { label: "Jobs", value: 6 }) }),
|
|
1051
|
+
/* @__PURE__ */ jsx16(MetricCard, { className: "flex-1", children: /* @__PURE__ */ jsx16(
|
|
1079
1052
|
Metric,
|
|
1080
1053
|
{
|
|
1081
1054
|
label: "Runs today",
|
|
@@ -1084,16 +1057,16 @@ function SchedulerExample() {
|
|
|
1084
1057
|
}
|
|
1085
1058
|
) })
|
|
1086
1059
|
] }) }),
|
|
1087
|
-
/* @__PURE__ */
|
|
1088
|
-
/* @__PURE__ */
|
|
1060
|
+
/* @__PURE__ */ jsx16(Divider, {}),
|
|
1061
|
+
/* @__PURE__ */ jsx16(
|
|
1089
1062
|
Section,
|
|
1090
1063
|
{
|
|
1091
1064
|
heading: "Next up",
|
|
1092
|
-
action: /* @__PURE__ */
|
|
1093
|
-
/* @__PURE__ */
|
|
1065
|
+
action: /* @__PURE__ */ jsxs11(Button, { size: "xs", variant: "ghost", children: [
|
|
1066
|
+
/* @__PURE__ */ jsx16(ExternalLink, { className: "size-3" }),
|
|
1094
1067
|
"All"
|
|
1095
1068
|
] }),
|
|
1096
|
-
children: /* @__PURE__ */
|
|
1069
|
+
children: /* @__PURE__ */ jsx16(DataBoundary, { state: "ready", children: /* @__PURE__ */ jsx16(ActivityList, { children: UPCOMING.map((e) => /* @__PURE__ */ jsx16(
|
|
1097
1070
|
ActivityListItem,
|
|
1098
1071
|
{
|
|
1099
1072
|
tone: e.tone,
|
|
@@ -1104,42 +1077,42 @@ function SchedulerExample() {
|
|
|
1104
1077
|
)) }) })
|
|
1105
1078
|
}
|
|
1106
1079
|
),
|
|
1107
|
-
/* @__PURE__ */
|
|
1080
|
+
/* @__PURE__ */ jsx16(StaleIndicator, { lastUpdated: "Updated 2m ago" })
|
|
1108
1081
|
] }) });
|
|
1109
1082
|
}
|
|
1110
1083
|
|
|
1111
1084
|
// src/components/reference/ResourceExample.tsx
|
|
1112
|
-
import { jsx as
|
|
1085
|
+
import { jsx as jsx17, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
1113
1086
|
function Ring({
|
|
1114
1087
|
value,
|
|
1115
1088
|
label,
|
|
1116
1089
|
tone
|
|
1117
1090
|
}) {
|
|
1118
|
-
return /* @__PURE__ */
|
|
1119
|
-
/* @__PURE__ */
|
|
1120
|
-
/* @__PURE__ */
|
|
1091
|
+
return /* @__PURE__ */ jsxs12(Stack, { gap: "xs", align: "center", children: [
|
|
1092
|
+
/* @__PURE__ */ jsx17(ProgressRing, { value, label, tone }),
|
|
1093
|
+
/* @__PURE__ */ jsx17(Text, { variant: "muted", children: label })
|
|
1121
1094
|
] });
|
|
1122
1095
|
}
|
|
1123
1096
|
function ResourceExample() {
|
|
1124
|
-
return /* @__PURE__ */
|
|
1125
|
-
/* @__PURE__ */
|
|
1126
|
-
/* @__PURE__ */
|
|
1127
|
-
/* @__PURE__ */
|
|
1128
|
-
/* @__PURE__ */
|
|
1129
|
-
/* @__PURE__ */
|
|
1097
|
+
return /* @__PURE__ */ jsx17(WidgetContent, { scroll: true, children: /* @__PURE__ */ jsxs12(Stack, { gap: "sm", children: [
|
|
1098
|
+
/* @__PURE__ */ jsx17(Heading, { level: 2, size: "md", children: "Resources" }),
|
|
1099
|
+
/* @__PURE__ */ jsxs12(MetricGroup, { children: [
|
|
1100
|
+
/* @__PURE__ */ jsx17(Metric, { label: "CPU", value: "42%", tone: "success" }),
|
|
1101
|
+
/* @__PURE__ */ jsx17(Metric, { label: "Memory", value: "6.1 GB" }),
|
|
1102
|
+
/* @__PURE__ */ jsx17(Metric, { label: "Disk", value: "71%", tone: "warning" })
|
|
1130
1103
|
] }),
|
|
1131
|
-
/* @__PURE__ */
|
|
1132
|
-
/* @__PURE__ */
|
|
1133
|
-
/* @__PURE__ */
|
|
1134
|
-
/* @__PURE__ */
|
|
1135
|
-
/* @__PURE__ */
|
|
1104
|
+
/* @__PURE__ */ jsx17(Divider, {}),
|
|
1105
|
+
/* @__PURE__ */ jsx17(Section, { heading: "Usage", children: /* @__PURE__ */ jsxs12(Grid, { columns: 3, gap: "sm", children: [
|
|
1106
|
+
/* @__PURE__ */ jsx17(Ring, { value: 42, label: "CPU", tone: "success" }),
|
|
1107
|
+
/* @__PURE__ */ jsx17(Ring, { value: 61, label: "Memory", tone: "info" }),
|
|
1108
|
+
/* @__PURE__ */ jsx17(Ring, { value: 71, label: "Disk", tone: "warning" })
|
|
1136
1109
|
] }) }),
|
|
1137
|
-
/* @__PURE__ */
|
|
1138
|
-
/* @__PURE__ */
|
|
1139
|
-
/* @__PURE__ */
|
|
1140
|
-
/* @__PURE__ */
|
|
1141
|
-
/* @__PURE__ */
|
|
1142
|
-
/* @__PURE__ */
|
|
1110
|
+
/* @__PURE__ */ jsx17(Divider, {}),
|
|
1111
|
+
/* @__PURE__ */ jsx17(Section, { heading: "Host", children: /* @__PURE__ */ jsxs12(KeyValueList, { children: [
|
|
1112
|
+
/* @__PURE__ */ jsx17(KeyValue, { label: "Region", value: "eu-west-1", mono: true }),
|
|
1113
|
+
/* @__PURE__ */ jsx17(KeyValue, { label: "Instance", value: "c7g.xlarge", mono: true }),
|
|
1114
|
+
/* @__PURE__ */ jsx17(KeyValue, { label: "Uptime", value: "14d 6h", mono: true }),
|
|
1115
|
+
/* @__PURE__ */ jsx17(KeyValue, { label: "Status", value: /* @__PURE__ */ jsx17(Status, { tone: "success", children: "Healthy" }) })
|
|
1143
1116
|
] }) })
|
|
1144
1117
|
] }) });
|
|
1145
1118
|
}
|
|
@@ -1148,10 +1121,10 @@ function ResourceExample() {
|
|
|
1148
1121
|
import { FileText } from "lucide-react";
|
|
1149
1122
|
|
|
1150
1123
|
// src/components/ui/badge.tsx
|
|
1151
|
-
import { cva as
|
|
1124
|
+
import { cva as cva5 } from "class-variance-authority";
|
|
1152
1125
|
import { Slot as Slot3 } from "radix-ui";
|
|
1153
|
-
import { jsx as
|
|
1154
|
-
var badgeVariants =
|
|
1126
|
+
import { jsx as jsx18 } from "react/jsx-runtime";
|
|
1127
|
+
var badgeVariants = cva5(
|
|
1155
1128
|
"inline-flex items-center justify-center rounded-full border border-transparent px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",
|
|
1156
1129
|
{
|
|
1157
1130
|
variants: {
|
|
@@ -1180,7 +1153,7 @@ function Badge({
|
|
|
1180
1153
|
...props
|
|
1181
1154
|
}) {
|
|
1182
1155
|
const Comp = asChild ? Slot3.Root : "span";
|
|
1183
|
-
return /* @__PURE__ */
|
|
1156
|
+
return /* @__PURE__ */ jsx18(
|
|
1184
1157
|
Comp,
|
|
1185
1158
|
{
|
|
1186
1159
|
"data-slot": "badge",
|
|
@@ -1192,33 +1165,33 @@ function Badge({
|
|
|
1192
1165
|
}
|
|
1193
1166
|
|
|
1194
1167
|
// src/components/reference/ActivityExample.tsx
|
|
1195
|
-
import { jsx as
|
|
1168
|
+
import { jsx as jsx19, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
1196
1169
|
var ITEMS = [
|
|
1197
1170
|
{ id: "1", title: "quarterly-report.pdf", meta: "2h", badge: "PDF" },
|
|
1198
1171
|
{ id: "2", title: "design-tokens.json", meta: "5h", badge: "JSON" },
|
|
1199
1172
|
{ id: "3", title: "release-notes.md", meta: "1d", badge: "MD" }
|
|
1200
1173
|
];
|
|
1201
1174
|
function ActivityExample() {
|
|
1202
|
-
return /* @__PURE__ */
|
|
1203
|
-
/* @__PURE__ */
|
|
1204
|
-
/* @__PURE__ */
|
|
1205
|
-
/* @__PURE__ */
|
|
1175
|
+
return /* @__PURE__ */ jsx19(WidgetContent, { children: /* @__PURE__ */ jsxs13(Stack, { gap: "sm", fill: true, children: [
|
|
1176
|
+
/* @__PURE__ */ jsx19(Inline, { justify: "between", align: "center", children: /* @__PURE__ */ jsxs13(Inline, { gap: "xs", align: "center", children: [
|
|
1177
|
+
/* @__PURE__ */ jsx19(Text, { variant: "label", children: "Recent files" }),
|
|
1178
|
+
/* @__PURE__ */ jsx19(Badge, { variant: "info", children: ITEMS.length })
|
|
1206
1179
|
] }) }),
|
|
1207
|
-
/* @__PURE__ */
|
|
1180
|
+
/* @__PURE__ */ jsx19(Stack, { gap: "none", scroll: true, children: /* @__PURE__ */ jsx19(ItemList, { children: ITEMS.map((f) => /* @__PURE__ */ jsx19(
|
|
1208
1181
|
ItemListItem,
|
|
1209
1182
|
{
|
|
1210
|
-
leading: /* @__PURE__ */
|
|
1183
|
+
leading: /* @__PURE__ */ jsx19(FileText, { className: "size-4 text-[var(--text-muted)]" }),
|
|
1211
1184
|
primary: f.title,
|
|
1212
|
-
trailing: /* @__PURE__ */
|
|
1213
|
-
/* @__PURE__ */
|
|
1214
|
-
/* @__PURE__ */
|
|
1185
|
+
trailing: /* @__PURE__ */ jsxs13(Inline, { gap: "xs", align: "center", children: [
|
|
1186
|
+
/* @__PURE__ */ jsx19(Badge, { variant: "secondary", children: f.badge }),
|
|
1187
|
+
/* @__PURE__ */ jsx19("span", { children: f.meta })
|
|
1215
1188
|
] })
|
|
1216
1189
|
},
|
|
1217
1190
|
f.id
|
|
1218
1191
|
)) }) }),
|
|
1219
|
-
/* @__PURE__ */
|
|
1220
|
-
/* @__PURE__ */
|
|
1221
|
-
/* @__PURE__ */
|
|
1192
|
+
/* @__PURE__ */ jsxs13(Inline, { justify: "between", align: "center", children: [
|
|
1193
|
+
/* @__PURE__ */ jsx19(Status, { tone: "info", variant: "pill", children: "Synced" }),
|
|
1194
|
+
/* @__PURE__ */ jsx19(StaleIndicator, { lastUpdated: "Synced 30s ago" })
|
|
1222
1195
|
] })
|
|
1223
1196
|
] }) });
|
|
1224
1197
|
}
|
package/dist/styles/globals.css
CHANGED
|
@@ -116,7 +116,7 @@
|
|
|
116
116
|
/* Typography (themeable) */
|
|
117
117
|
--font-sans: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
|
118
118
|
--font-mono: 'JetBrains Mono', 'SF Mono', 'Fira Code', 'Cascadia Code', Menlo, monospace;
|
|
119
|
-
--font-size-base:
|
|
119
|
+
--font-size-base: 13px;
|
|
120
120
|
|
|
121
121
|
/* Spacing */
|
|
122
122
|
--space-xs: 4px;
|
|
@@ -132,7 +132,7 @@
|
|
|
132
132
|
|
|
133
133
|
/* Sero font sizes (legacy — use Tailwind text-* for new components) */
|
|
134
134
|
--sero-text-xs: 12px;
|
|
135
|
-
--sero-text-
|
|
135
|
+
--sero-text-base: 13px;
|
|
136
136
|
--sero-text-base: 14px;
|
|
137
137
|
--sero-text-lg: 15px;
|
|
138
138
|
--sero-text-xl: 16px;
|
|
@@ -236,6 +236,14 @@
|
|
|
236
236
|
}
|
|
237
237
|
|
|
238
238
|
@theme inline {
|
|
239
|
+
--text-xs: 0.8rem;
|
|
240
|
+
--text-xs--line-height: 1rem;
|
|
241
|
+
|
|
242
|
+
--text-sm: 0.9rem;
|
|
243
|
+
--text-sm--line-height: 1.2rem;
|
|
244
|
+
|
|
245
|
+
--text-base--line-height: 1.4rem;
|
|
246
|
+
|
|
239
247
|
--radius-sm: calc(var(--radius) - 4px);
|
|
240
248
|
--radius-md: calc(var(--radius) - 2px);
|
|
241
249
|
--radius-lg: var(--radius);
|
|
@@ -483,7 +491,7 @@
|
|
|
483
491
|
}
|
|
484
492
|
|
|
485
493
|
html {
|
|
486
|
-
font-size: var(--font-size-base,
|
|
494
|
+
font-size: var(--font-size-base, 13px);
|
|
487
495
|
font-family: var(--font-sans);
|
|
488
496
|
}
|
|
489
497
|
|
|
@@ -495,3 +503,14 @@ html {
|
|
|
495
503
|
@apply bg-background text-foreground;
|
|
496
504
|
}
|
|
497
505
|
}
|
|
506
|
+
|
|
507
|
+
@media (prefers-reduced-motion: reduce) {
|
|
508
|
+
*,
|
|
509
|
+
*::before,
|
|
510
|
+
*::after {
|
|
511
|
+
animation-duration: 0.01ms !important;
|
|
512
|
+
animation-iteration-count: 1 !important;
|
|
513
|
+
scroll-behavior: auto !important;
|
|
514
|
+
transition-duration: 0.01ms !important;
|
|
515
|
+
}
|
|
516
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
@theme inline {
|
|
2
|
+
--text-xs: 0.8rem;
|
|
3
|
+
--text-xs--line-height: 1rem;
|
|
4
|
+
|
|
5
|
+
--text-sm: 0.9rem;
|
|
6
|
+
--text-sm--line-height: 1.2rem;
|
|
7
|
+
|
|
8
|
+
--text-base--line-height: 1.4rem;
|
|
9
|
+
|
|
10
|
+
--radius-sm: calc(var(--radius) - 4px);
|
|
11
|
+
--radius-md: calc(var(--radius) - 2px);
|
|
12
|
+
--radius-lg: var(--radius);
|
|
13
|
+
--radius-xl: calc(var(--radius) + 4px);
|
|
14
|
+
--radius-2xl: calc(var(--radius) + 8px);
|
|
15
|
+
--radius-3xl: calc(var(--radius) + 12px);
|
|
16
|
+
--radius-4xl: calc(var(--radius) + 16px);
|
|
17
|
+
--color-background: var(--background);
|
|
18
|
+
--color-foreground: var(--foreground);
|
|
19
|
+
--color-brand-primary: var(--brand-primary);
|
|
20
|
+
--color-brand-primary-foreground: var(--brand-primary-foreground);
|
|
21
|
+
--color-brand-primary-muted: var(--brand-primary-muted);
|
|
22
|
+
--color-brand-primary-subtle: var(--brand-primary-subtle);
|
|
23
|
+
--color-brand-primary-faint: var(--brand-primary-faint);
|
|
24
|
+
--color-brand-primary-border: var(--brand-primary-border);
|
|
25
|
+
--color-brand-secondary: var(--brand-secondary);
|
|
26
|
+
--color-brand-secondary-foreground: var(--brand-secondary-foreground);
|
|
27
|
+
--color-brand-secondary-muted: var(--brand-secondary-muted);
|
|
28
|
+
--color-brand-secondary-subtle: var(--brand-secondary-subtle);
|
|
29
|
+
--color-brand-secondary-faint: var(--brand-secondary-faint);
|
|
30
|
+
--color-brand-secondary-border: var(--brand-secondary-border);
|
|
31
|
+
--color-status-success: var(--status-success);
|
|
32
|
+
--color-status-success-muted: var(--status-success-muted);
|
|
33
|
+
--color-status-success-subtle: var(--status-success-subtle);
|
|
34
|
+
--color-status-success-faint: var(--status-success-faint);
|
|
35
|
+
--color-status-success-border: var(--status-success-border);
|
|
36
|
+
--color-status-warning: var(--status-warning);
|
|
37
|
+
--color-status-warning-muted: var(--status-warning-muted);
|
|
38
|
+
--color-status-warning-subtle: var(--status-warning-subtle);
|
|
39
|
+
--color-status-warning-faint: var(--status-warning-faint);
|
|
40
|
+
--color-status-warning-border: var(--status-warning-border);
|
|
41
|
+
--color-status-error: var(--status-error);
|
|
42
|
+
--color-status-error-muted: var(--status-error-muted);
|
|
43
|
+
--color-status-error-subtle: var(--status-error-subtle);
|
|
44
|
+
--color-status-error-faint: var(--status-error-faint);
|
|
45
|
+
--color-status-error-border: var(--status-error-border);
|
|
46
|
+
--color-status-info: var(--status-info);
|
|
47
|
+
--color-status-info-muted: var(--status-info-muted);
|
|
48
|
+
--color-status-info-subtle: var(--status-info-subtle);
|
|
49
|
+
--color-status-info-faint: var(--status-info-faint);
|
|
50
|
+
--color-status-info-border: var(--status-info-border);
|
|
51
|
+
--color-card: var(--card);
|
|
52
|
+
--color-card-foreground: var(--card-foreground);
|
|
53
|
+
--color-popover: var(--popover);
|
|
54
|
+
--color-popover-foreground: var(--popover-foreground);
|
|
55
|
+
--color-primary: var(--primary);
|
|
56
|
+
--color-primary-foreground: var(--primary-foreground);
|
|
57
|
+
--color-secondary: var(--secondary);
|
|
58
|
+
--color-secondary-foreground: var(--secondary-foreground);
|
|
59
|
+
--color-muted: var(--muted);
|
|
60
|
+
--color-muted-foreground: var(--muted-foreground);
|
|
61
|
+
--color-accent: var(--accent);
|
|
62
|
+
--color-accent-foreground: var(--accent-foreground);
|
|
63
|
+
--color-destructive: var(--destructive);
|
|
64
|
+
--color-border: var(--border);
|
|
65
|
+
--color-input: var(--input);
|
|
66
|
+
--color-ring: var(--ring);
|
|
67
|
+
--color-chart-1: var(--chart-1);
|
|
68
|
+
--color-chart-2: var(--chart-2);
|
|
69
|
+
--color-chart-3: var(--chart-3);
|
|
70
|
+
--color-chart-4: var(--chart-4);
|
|
71
|
+
--color-chart-5: var(--chart-5);
|
|
72
|
+
--color-sidebar: var(--sidebar);
|
|
73
|
+
--color-sidebar-foreground: var(--sidebar-foreground);
|
|
74
|
+
--color-sidebar-primary: var(--sidebar-primary);
|
|
75
|
+
--color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
|
|
76
|
+
--color-sidebar-accent: var(--sidebar-accent);
|
|
77
|
+
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
|
|
78
|
+
--color-sidebar-border: var(--sidebar-border);
|
|
79
|
+
--color-sidebar-ring: var(--sidebar-ring);
|
|
80
|
+
}
|
package/dist/styles/plugin.css
CHANGED
|
@@ -1,4 +1,19 @@
|
|
|
1
|
-
@import "
|
|
1
|
+
@import "tailwindcss";
|
|
2
|
+
@import "tw-animate-css";
|
|
3
|
+
@import "shadcn/tailwind.css";
|
|
4
|
+
@import "./plugin-theme.css";
|
|
5
|
+
|
|
6
|
+
/* Match the lightweight package root. Specialized components opt into their
|
|
7
|
+
own source files through a matching stylesheet under styles/. */
|
|
8
|
+
@source "../components/ui";
|
|
9
|
+
@source "../components/dashboard";
|
|
10
|
+
|
|
11
|
+
@custom-variant dark (&:is(.dark *));
|
|
2
12
|
|
|
3
13
|
/* Federated Sero plugins should import this file, then add plugin-local
|
|
4
|
-
@source directives.
|
|
14
|
+
@source directives. The seroPluginCssScope Vite helper rewrites this file's
|
|
15
|
+
document-level selectors (:root/:host theme blocks, html/body preflight) to
|
|
16
|
+
:scope, so a plugin's default Tailwind theme and resets are self-contained on
|
|
17
|
+
its own scope root. Sero design tokens (--background, --brand-*, …) are still
|
|
18
|
+
owned by the host: plugin-theme.css references them via @theme inline, so
|
|
19
|
+
they inherit from the host document root. */
|
package/package.json
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sero-ai/ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "Shared UI components, AI elements, and design tokens for the Sero platform",
|
|
5
5
|
"type": "module",
|
|
6
|
+
"sideEffects": [
|
|
7
|
+
"**/*.css"
|
|
8
|
+
],
|
|
6
9
|
"main": "./dist/index.js",
|
|
7
10
|
"types": "./dist/index.d.ts",
|
|
8
11
|
"exports": {
|
|
@@ -11,6 +14,16 @@
|
|
|
11
14
|
"import": "./dist/index.js",
|
|
12
15
|
"require": "./dist/index.cjs"
|
|
13
16
|
},
|
|
17
|
+
"./ai-elements/*": {
|
|
18
|
+
"types": "./dist/components/ai-elements/*.d.ts",
|
|
19
|
+
"import": "./dist/components/ai-elements/*.js",
|
|
20
|
+
"require": "./dist/components/ai-elements/*.cjs"
|
|
21
|
+
},
|
|
22
|
+
"./model-selection/*": {
|
|
23
|
+
"types": "./dist/components/model-selection/*.d.ts",
|
|
24
|
+
"import": "./dist/components/model-selection/*.js",
|
|
25
|
+
"require": "./dist/components/model-selection/*.cjs"
|
|
26
|
+
},
|
|
14
27
|
"./dashboard-catalog.json": "./dist/components/dashboard/catalog.json",
|
|
15
28
|
"./reference": {
|
|
16
29
|
"types": "./dist/reference.d.ts",
|
|
@@ -40,48 +53,48 @@
|
|
|
40
53
|
"react-dom": "^19.2.4"
|
|
41
54
|
},
|
|
42
55
|
"dependencies": {
|
|
43
|
-
"@base-ui/react": "^1.
|
|
44
|
-
"@headless-tree/core": "^1.
|
|
45
|
-
"@headless-tree/react": "^1.
|
|
46
|
-
"@radix-ui/react-use-controllable-state": "^1.2.
|
|
56
|
+
"@base-ui/react": "^1.6.0",
|
|
57
|
+
"@headless-tree/core": "^1.7.0",
|
|
58
|
+
"@headless-tree/react": "^1.7.0",
|
|
59
|
+
"@radix-ui/react-use-controllable-state": "^1.2.5",
|
|
47
60
|
"@remixicon/react": "^4.9.0",
|
|
48
|
-
"@rive-app/react-webgl2": "^4.
|
|
61
|
+
"@rive-app/react-webgl2": "^4.29.5",
|
|
49
62
|
"@streamdown/cjk": "^1.0.2",
|
|
50
63
|
"@streamdown/code": "^1.1.0",
|
|
51
64
|
"@streamdown/math": "^1.0.2",
|
|
52
65
|
"@streamdown/mermaid": "^1.0.2",
|
|
53
|
-
"@xyflow/react": "^12.
|
|
66
|
+
"@xyflow/react": "^12.11.2",
|
|
54
67
|
"ai": "^6.0.116",
|
|
55
68
|
"ansi-to-react": "^6.2.6",
|
|
56
69
|
"class-variance-authority": "^0.7.1",
|
|
57
70
|
"clsx": "^2.1.1",
|
|
58
71
|
"cmdk": "^1.1.1",
|
|
59
|
-
"date-fns": "^4.
|
|
72
|
+
"date-fns": "^4.4.0",
|
|
60
73
|
"embla-carousel-react": "^8.6.0",
|
|
61
74
|
"input-otp": "^1.4.2",
|
|
62
|
-
"lucide-react": "^
|
|
63
|
-
"media-chrome": "^4.
|
|
75
|
+
"lucide-react": "^1.26.0",
|
|
76
|
+
"media-chrome": "^4.19.2",
|
|
64
77
|
"motion": "^12.34.0",
|
|
65
78
|
"nanoid": "^5.1.11",
|
|
66
79
|
"next-themes": "^0.4.6",
|
|
67
|
-
"radix-ui": "^1.
|
|
80
|
+
"radix-ui": "^1.6.5",
|
|
68
81
|
"react-day-picker": "^9.14.0",
|
|
69
|
-
"react-hook-form": "^7.
|
|
82
|
+
"react-hook-form": "^7.82.0",
|
|
70
83
|
"react-jsx-parser": "^2.4.1",
|
|
71
|
-
"react-resizable-panels": "^4.
|
|
84
|
+
"react-resizable-panels": "^4.12.2",
|
|
72
85
|
"react-syntax-highlighter": "^16.1.1",
|
|
73
|
-
"recharts": "
|
|
86
|
+
"recharts": "3.10.0",
|
|
74
87
|
"shiki": "^3.23.0",
|
|
75
88
|
"sonner": "^2.0.7",
|
|
76
89
|
"streamdown": "^2.5.0",
|
|
77
|
-
"tailwind-merge": "^3.
|
|
90
|
+
"tailwind-merge": "^3.6.0",
|
|
78
91
|
"tokenlens": "^1.3.1",
|
|
79
|
-
"use-stick-to-bottom": "^1.1.
|
|
92
|
+
"use-stick-to-bottom": "^1.1.6",
|
|
80
93
|
"vaul": "^1.1.2",
|
|
81
|
-
"@sero-ai/common": "0.
|
|
94
|
+
"@sero-ai/common": "0.8.0"
|
|
82
95
|
},
|
|
83
96
|
"devDependencies": {
|
|
84
|
-
"@hookform/resolvers": "^5.
|
|
97
|
+
"@hookform/resolvers": "^5.4.0",
|
|
85
98
|
"@types/react": "^19.2.13",
|
|
86
99
|
"@types/react-dom": "^19.2.3",
|
|
87
100
|
"@types/react-syntax-highlighter": "^15.5.13",
|
|
@@ -96,7 +109,7 @@
|
|
|
96
109
|
"vitest": "^4.1.7"
|
|
97
110
|
},
|
|
98
111
|
"scripts": {
|
|
99
|
-
"build": "tsup && tsup --config tsup.reference.config.ts",
|
|
112
|
+
"build": "tsup && tsup --config tsup.reference.config.ts && node scripts/smoke-dist.mjs",
|
|
100
113
|
"typecheck": "tsc --noEmit",
|
|
101
114
|
"test": "vitest run",
|
|
102
115
|
"smoke": "node scripts/smoke-dist.mjs"
|