@nuvin/ui-design-system 0.1.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/dist/components/ApprovalCard.d.ts +25 -0
- package/dist/components/ApprovalCard.stories.d.ts +25 -0
- package/dist/components/AssistantMessage.d.ts +7 -0
- package/dist/components/AssistantMessage.stories.d.ts +15 -0
- package/dist/components/Badge.d.ts +9 -0
- package/dist/components/Button.d.ts +10 -0
- package/dist/components/Button.stories.d.ts +17 -0
- package/dist/components/Callout.d.ts +23 -0
- package/dist/components/Card.d.ts +10 -0
- package/dist/components/Chip.d.ts +2 -0
- package/dist/components/Composer.d.ts +19 -0
- package/dist/components/Composer.stories.d.ts +13 -0
- package/dist/components/DiffBlock.d.ts +17 -0
- package/dist/components/DiffBlock.stories.d.ts +49 -0
- package/dist/components/Markdown.d.ts +9 -0
- package/dist/components/Markdown.stories.d.ts +13 -0
- package/dist/components/ReasoningDisclosure.d.ts +10 -0
- package/dist/components/ReasoningDisclosure.stories.d.ts +14 -0
- package/dist/components/Spinner.d.ts +2 -0
- package/dist/components/StatusLine.d.ts +12 -0
- package/dist/components/StatusLine.stories.d.ts +11 -0
- package/dist/components/ToolCard.d.ts +17 -0
- package/dist/components/ToolCard.stories.d.ts +19 -0
- package/dist/components/ToolGroup.d.ts +20 -0
- package/dist/components/ToolGroup.stories.d.ts +14 -0
- package/dist/components/UserMessage.d.ts +7 -0
- package/dist/components/UserMessage.stories.d.ts +16 -0
- package/dist/components/data/Avatar.d.ts +13 -0
- package/dist/components/data/Avatar.stories.d.ts +11 -0
- package/dist/components/data/CopyButton.d.ts +7 -0
- package/dist/components/data/CopyButton.stories.d.ts +9 -0
- package/dist/components/data/Kbd.d.ts +5 -0
- package/dist/components/data/Kbd.stories.d.ts +13 -0
- package/dist/components/data/StatCard.d.ts +10 -0
- package/dist/components/data/StatCard.stories.d.ts +13 -0
- package/dist/components/data/Table.d.ts +34 -0
- package/dist/components/data/Table.stories.d.ts +14 -0
- package/dist/components/disclosure/Accordion.d.ts +6 -0
- package/dist/components/disclosure/Accordion.stories.d.ts +9 -0
- package/dist/components/feedback/AlertBanner.d.ts +12 -0
- package/dist/components/feedback/AlertBanner.stories.d.ts +16 -0
- package/dist/components/feedback/Progress.d.ts +7 -0
- package/dist/components/feedback/Progress.stories.d.ts +11 -0
- package/dist/components/forms/Checkbox.d.ts +9 -0
- package/dist/components/forms/Checkbox.stories.d.ts +15 -0
- package/dist/components/forms/Combobox.d.ts +16 -0
- package/dist/components/forms/Combobox.stories.d.ts +20 -0
- package/dist/components/forms/Field.d.ts +19 -0
- package/dist/components/forms/Field.stories.d.ts +10 -0
- package/dist/components/forms/Input.d.ts +13 -0
- package/dist/components/forms/Input.stories.d.ts +17 -0
- package/dist/components/forms/RadioGroup.d.ts +9 -0
- package/dist/components/forms/RadioGroup.stories.d.ts +20 -0
- package/dist/components/forms/Select.d.ts +17 -0
- package/dist/components/forms/Select.stories.d.ts +19 -0
- package/dist/components/forms/Switch.d.ts +10 -0
- package/dist/components/forms/Switch.stories.d.ts +15 -0
- package/dist/components/forms/Textarea.d.ts +10 -0
- package/dist/components/forms/Textarea.stories.d.ts +14 -0
- package/dist/components/layout/Box.d.ts +12 -0
- package/dist/components/layout/Divider.d.ts +6 -0
- package/dist/components/layout/Inline.d.ts +10 -0
- package/dist/components/layout/ScrollArea.d.ts +8 -0
- package/dist/components/layout/ScrollArea.stories.d.ts +10 -0
- package/dist/components/layout/Separator.d.ts +11 -0
- package/dist/components/layout/Separator.stories.d.ts +10 -0
- package/dist/components/layout/Stack.d.ts +9 -0
- package/dist/components/layout/layout.stories.d.ts +9 -0
- package/dist/components/layout/space-maps.d.ts +66 -0
- package/dist/components/navigation/Breadcrumb.d.ts +14 -0
- package/dist/components/navigation/Breadcrumb.stories.d.ts +11 -0
- package/dist/components/navigation/CommandPalette.d.ts +27 -0
- package/dist/components/navigation/CommandPalette.stories.d.ts +18 -0
- package/dist/components/navigation/Pagination.d.ts +8 -0
- package/dist/components/navigation/Pagination.stories.d.ts +17 -0
- package/dist/components/navigation/Sidebar.d.ts +16 -0
- package/dist/components/navigation/Sidebar.stories.d.ts +11 -0
- package/dist/components/navigation/Tabs.d.ts +6 -0
- package/dist/components/navigation/Tabs.stories.d.ts +9 -0
- package/dist/components/overlays/ConfirmDialog.d.ts +14 -0
- package/dist/components/overlays/ConfirmDialog.stories.d.ts +11 -0
- package/dist/components/overlays/DropdownMenu.d.ts +17 -0
- package/dist/components/overlays/DropdownMenu.stories.d.ts +12 -0
- package/dist/components/overlays/EmptyState.d.ts +13 -0
- package/dist/components/overlays/EmptyState.stories.d.ts +11 -0
- package/dist/components/overlays/Modal.d.ts +15 -0
- package/dist/components/overlays/Modal.stories.d.ts +11 -0
- package/dist/components/overlays/Popover.d.ts +5 -0
- package/dist/components/overlays/Popover.stories.d.ts +9 -0
- package/dist/components/overlays/Skeleton.d.ts +5 -0
- package/dist/components/overlays/Skeleton.stories.d.ts +10 -0
- package/dist/components/overlays/Toast.stories.d.ts +10 -0
- package/dist/components/overlays/Toaster.d.ts +3 -0
- package/dist/components/overlays/Tooltip.d.ts +11 -0
- package/dist/components/overlays/Tooltip.stories.d.ts +10 -0
- package/dist/components/overlays/toast.d.ts +26 -0
- package/dist/components/typography/Code.d.ts +5 -0
- package/dist/components/typography/Heading.d.ts +10 -0
- package/dist/components/typography/Link.d.ts +5 -0
- package/dist/components/typography/Text.d.ts +9 -0
- package/dist/components/typography/type-maps.d.ts +25 -0
- package/dist/components/typography/typography.stories.d.ts +7 -0
- package/dist/highlighted-body-KPVGNVTW-B7V4eq0Z.js +19 -0
- package/dist/highlighted-body-KPVGNVTW-BzLVG-SF.cjs +1 -0
- package/dist/index-B8qLWEuY.js +34699 -0
- package/dist/index-Ctl3DYP3.cjs +312 -0
- package/dist/index.cjs +1 -0
- package/dist/index.d.ts +59 -0
- package/dist/index.js +84 -0
- package/dist/lib/cn.d.ts +2 -0
- package/dist/mermaid-HWGCJPDP-B921Bgi1.js +4 -0
- package/dist/mermaid-HWGCJPDP-DwanGdS4.cjs +1 -0
- package/dist/primitives.css +34 -0
- package/dist/semantic.css +98 -0
- package/dist/showcases/Conversation.stories.d.ts +13 -0
- package/dist/spacing.css +16 -0
- package/dist/styles.css +5 -0
- package/dist/theme/ThemeProvider.d.ts +14 -0
- package/dist/theme.css +96 -0
- package/dist/themes/light.css +55 -0
- package/package.json +81 -0
package/dist/index.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-Ctl3DYP3.cjs");exports.Accordion=e.Accordion;exports.AccordionContent=e.AccordionContent;exports.AccordionItem=e.AccordionItem;exports.AccordionTrigger=e.AccordionTrigger;exports.AlertBanner=e.AlertBanner;exports.ApprovalCard=e.ApprovalCard;exports.AssistantMessage=e.AssistantMessage;exports.Avatar=e.Avatar;exports.Badge=e.Badge;exports.Box=e.Box;exports.Breadcrumb=e.Breadcrumb;exports.BreadcrumbItem=e.BreadcrumbItem;exports.BreadcrumbLink=e.BreadcrumbLink;exports.BreadcrumbList=e.BreadcrumbList;exports.BreadcrumbPage=e.BreadcrumbPage;exports.BreadcrumbSeparator=e.BreadcrumbSeparator;exports.Button=e.Button;exports.Callout=e.Callout;exports.Card=e.Card;exports.Checkbox=e.Checkbox;exports.Chip=e.Chip;exports.Code=e.Code;exports.Combobox=e.Combobox;exports.CommandPalette=e.CommandPalette;exports.Composer=e.Composer;exports.ConfirmDialog=e.ConfirmDialog;exports.CopyButton=e.CopyButton;exports.DiffBlock=e.DiffBlock;exports.Divider=e.Divider;exports.DropdownMenu=e.DropdownMenu;exports.DropdownMenuItem=e.DropdownMenuItem;exports.DropdownMenuLabel=e.DropdownMenuLabel;exports.DropdownMenuSeparator=e.DropdownMenuSeparator;exports.DropdownMenuTrigger=e.DropdownMenuTrigger;exports.EmptyState=e.EmptyState;exports.Field=e.Field;exports.Heading=e.Heading;exports.Inline=e.Inline;exports.Input=e.Input;exports.Kbd=e.Kbd;exports.Link=e.Link;exports.Markdown=e.Markdown;exports.Modal=e.Modal;exports.Pagination=e.Pagination;exports.Popover=e.Popover;exports.PopoverContent=e.PopoverContent;exports.PopoverTrigger=e.PopoverTrigger;exports.Progress=e.Progress;exports.RadioGroup=e.RadioGroup;exports.ReasoningDisclosure=e.ReasoningDisclosure;exports.ScrollArea=e.ScrollArea;exports.Select=e.Select;exports.Separator=e.Separator;exports.Sidebar=e.Sidebar;exports.SidebarFooter=e.SidebarFooter;exports.SidebarHeader=e.SidebarHeader;exports.SidebarNav=e.SidebarNav;exports.SidebarNavItem=e.SidebarNavItem;exports.Skeleton=e.Skeleton;exports.Spinner=e.Spinner;exports.Stack=e.Stack;exports.StatCard=e.StatCard;exports.StatusLine=e.StatusLine;exports.Switch=e.Switch;exports.Table=e.Table;exports.Tabs=e.Tabs;exports.TabsContent=e.TabsContent;exports.TabsList=e.TabsList;exports.TabsTrigger=e.TabsTrigger;exports.Text=e.Text;exports.Textarea=e.Textarea;exports.ThemeProvider=e.ThemeProvider;exports.Toaster=e.Toaster;exports.ToolCard=e.ToolCard;exports.ToolGroup=e.ToolGroup;exports.Tooltip=e.Tooltip;exports.UserMessage=e.UserMessage;exports.cn=e.cn;exports.toast=e.toast;exports.useField=e.useField;exports.useTheme=e.useTheme;
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
export { cn } from "./lib/cn.js";
|
|
2
|
+
export { ThemeProvider, useTheme, type ThemeMode } from "./theme/ThemeProvider.js";
|
|
3
|
+
export { Button, type ButtonProps } from "./components/Button.js";
|
|
4
|
+
export { Spinner } from "./components/Spinner.js";
|
|
5
|
+
export { ToolCard, type ToolCardProps, type ToolStatus, type ToolKind, } from "./components/ToolCard.js";
|
|
6
|
+
export { ToolGroup, type ToolGroupProps, type ToolGroupFacts } from "./components/ToolGroup.js";
|
|
7
|
+
export { Badge, type BadgeProps } from "./components/Badge.js";
|
|
8
|
+
export { Chip } from "./components/Chip.js";
|
|
9
|
+
export { Card } from "./components/Card.js";
|
|
10
|
+
export { Callout, type CalloutProps } from "./components/Callout.js";
|
|
11
|
+
export { UserMessage, type UserMessageProps, } from "./components/UserMessage.js";
|
|
12
|
+
export { AssistantMessage, type AssistantMessageProps, } from "./components/AssistantMessage.js";
|
|
13
|
+
export { DiffBlock, type DiffBlockProps, type DiffLine } from "./components/DiffBlock.js";
|
|
14
|
+
export { Markdown, type MarkdownProps } from "./components/Markdown.js";
|
|
15
|
+
export { ReasoningDisclosure, type ReasoningDisclosureProps, } from "./components/ReasoningDisclosure.js";
|
|
16
|
+
export { ApprovalCard, type ApprovalCardProps, type ApprovalDecision, } from "./components/ApprovalCard.js";
|
|
17
|
+
export { Composer, type ComposerProps, type ComposerCommand, } from "./components/Composer.js";
|
|
18
|
+
export { StatusLine, type StatusLineProps } from "./components/StatusLine.js";
|
|
19
|
+
export { Field, useField, type FieldProps, type FieldContextValue, } from "./components/forms/Field.js";
|
|
20
|
+
export { Input, type InputProps } from "./components/forms/Input.js";
|
|
21
|
+
export { Textarea, type TextareaProps } from "./components/forms/Textarea.js";
|
|
22
|
+
export { Select, type SelectProps, type SelectOption } from "./components/forms/Select.js";
|
|
23
|
+
export { Combobox, type ComboboxProps, type ComboboxOption, } from "./components/forms/Combobox.js";
|
|
24
|
+
export { Checkbox, type CheckboxProps } from "./components/forms/Checkbox.js";
|
|
25
|
+
export { RadioGroup, type RadioGroupProps } from "./components/forms/RadioGroup.js";
|
|
26
|
+
export { Switch, type SwitchProps } from "./components/forms/Switch.js";
|
|
27
|
+
export { Modal, type ModalProps } from "./components/overlays/Modal.js";
|
|
28
|
+
export { ConfirmDialog, type ConfirmDialogProps } from "./components/overlays/ConfirmDialog.js";
|
|
29
|
+
export { DropdownMenu, DropdownMenuTrigger, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuLabel, } from "./components/overlays/DropdownMenu.js";
|
|
30
|
+
export { Popover, PopoverTrigger, PopoverContent } from "./components/overlays/Popover.js";
|
|
31
|
+
export { Tooltip, type TooltipProps } from "./components/overlays/Tooltip.js";
|
|
32
|
+
export { Toaster } from "./components/overlays/Toaster.js";
|
|
33
|
+
export { toast, type ToastOptions } from "./components/overlays/toast.js";
|
|
34
|
+
export { Skeleton, type SkeletonProps } from "./components/overlays/Skeleton.js";
|
|
35
|
+
export { EmptyState, type EmptyStateProps } from "./components/overlays/EmptyState.js";
|
|
36
|
+
export { Kbd, type KbdProps } from "./components/data/Kbd.js";
|
|
37
|
+
export { CopyButton, type CopyButtonProps } from "./components/data/CopyButton.js";
|
|
38
|
+
export { Avatar, type AvatarProps } from "./components/data/Avatar.js";
|
|
39
|
+
export { StatCard, type StatCardProps } from "./components/data/StatCard.js";
|
|
40
|
+
export { Table } from "./components/data/Table.js";
|
|
41
|
+
export type { TableColumn, SortState, FilterState, TableProps } from "./components/data/Table.js";
|
|
42
|
+
export { Box, type BoxProps } from "./components/layout/Box.js";
|
|
43
|
+
export { Stack, type StackProps } from "./components/layout/Stack.js";
|
|
44
|
+
export { Inline, type InlineProps } from "./components/layout/Inline.js";
|
|
45
|
+
export { Divider, type DividerProps } from "./components/layout/Divider.js";
|
|
46
|
+
export { ScrollArea, type ScrollAreaProps } from "./components/layout/ScrollArea.js";
|
|
47
|
+
export { Separator, type SeparatorProps } from "./components/layout/Separator.js";
|
|
48
|
+
export { Heading, type HeadingProps } from "./components/typography/Heading.js";
|
|
49
|
+
export { Text, type TextProps } from "./components/typography/Text.js";
|
|
50
|
+
export { Code, type CodeProps } from "./components/typography/Code.js";
|
|
51
|
+
export { Link, type LinkProps } from "./components/typography/Link.js";
|
|
52
|
+
export { CommandPalette, type CommandPaletteProps, type CommandPaletteGroup, type CommandPaletteItem, } from "./components/navigation/CommandPalette.js";
|
|
53
|
+
export { Tabs, TabsList, TabsTrigger, TabsContent } from "./components/navigation/Tabs.js";
|
|
54
|
+
export { Pagination, type PaginationProps } from "./components/navigation/Pagination.js";
|
|
55
|
+
export { Breadcrumb, BreadcrumbList, BreadcrumbItem, BreadcrumbLink, BreadcrumbSeparator, BreadcrumbPage, type BreadcrumbProps, type BreadcrumbListProps, type BreadcrumbItemProps, type BreadcrumbLinkProps, type BreadcrumbSeparatorProps, type BreadcrumbPageProps, } from "./components/navigation/Breadcrumb.js";
|
|
56
|
+
export { Sidebar, SidebarHeader, SidebarNav, SidebarNavItem, SidebarFooter, type SidebarProps, type SidebarHeaderProps, type SidebarNavProps, type SidebarNavItemProps, type SidebarFooterProps, } from "./components/navigation/Sidebar.js";
|
|
57
|
+
export { Accordion, AccordionItem, AccordionTrigger, AccordionContent, } from "./components/disclosure/Accordion.js";
|
|
58
|
+
export { Progress, type ProgressProps } from "./components/feedback/Progress.js";
|
|
59
|
+
export { AlertBanner, type AlertBannerProps, type AlertBannerVariant, } from "./components/feedback/AlertBanner.js";
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { A as e, a as r, b as o, d as t, e as n, f as i, g as d, h as p, B as b, i as c, j as l, k as u, l as m, m as g, n as T, o as C, p as S, C as B, q as v, r as A, s as D, t as M, u as k, v as P, w, x as h, y as x, D as I, z as L, F as f, G as F, H as y, I as G, J as H, K as N, L as R, M as j, N as q, O as K, P as U, Q as z, R as E, T as J, U as O, W as Q, X as W, Y as X, Z as Y, _ as Z, $ as _, a0 as $, a1 as V, a2 as aa, a3 as sa, a4 as ea, a5 as ra, a6 as oa, a7 as ta, a8 as na, a9 as ia, aa as da, ab as pa, ac as ba, ad as ca, ae as la, af as ua, ag as ma, ah as ga, ai as Ta, aj as Ca, ak as Sa, al as Ba, am as va, an as Aa, ao as Da, ap as Ma, aq as ka, ar as Pa, as as wa, at as ha, au as xa } from "./index-B8qLWEuY.js";
|
|
2
|
+
export {
|
|
3
|
+
e as Accordion,
|
|
4
|
+
r as AccordionContent,
|
|
5
|
+
o as AccordionItem,
|
|
6
|
+
t as AccordionTrigger,
|
|
7
|
+
n as AlertBanner,
|
|
8
|
+
i as ApprovalCard,
|
|
9
|
+
d as AssistantMessage,
|
|
10
|
+
p as Avatar,
|
|
11
|
+
b as Badge,
|
|
12
|
+
c as Box,
|
|
13
|
+
l as Breadcrumb,
|
|
14
|
+
u as BreadcrumbItem,
|
|
15
|
+
m as BreadcrumbLink,
|
|
16
|
+
g as BreadcrumbList,
|
|
17
|
+
T as BreadcrumbPage,
|
|
18
|
+
C as BreadcrumbSeparator,
|
|
19
|
+
S as Button,
|
|
20
|
+
B as Callout,
|
|
21
|
+
v as Card,
|
|
22
|
+
A as Checkbox,
|
|
23
|
+
D as Chip,
|
|
24
|
+
M as Code,
|
|
25
|
+
k as Combobox,
|
|
26
|
+
P as CommandPalette,
|
|
27
|
+
w as Composer,
|
|
28
|
+
h as ConfirmDialog,
|
|
29
|
+
x as CopyButton,
|
|
30
|
+
I as DiffBlock,
|
|
31
|
+
L as Divider,
|
|
32
|
+
f as DropdownMenu,
|
|
33
|
+
F as DropdownMenuItem,
|
|
34
|
+
y as DropdownMenuLabel,
|
|
35
|
+
G as DropdownMenuSeparator,
|
|
36
|
+
H as DropdownMenuTrigger,
|
|
37
|
+
N as EmptyState,
|
|
38
|
+
R as Field,
|
|
39
|
+
j as Heading,
|
|
40
|
+
q as Inline,
|
|
41
|
+
K as Input,
|
|
42
|
+
U as Kbd,
|
|
43
|
+
z as Link,
|
|
44
|
+
E as Markdown,
|
|
45
|
+
J as Modal,
|
|
46
|
+
O as Pagination,
|
|
47
|
+
Q as Popover,
|
|
48
|
+
W as PopoverContent,
|
|
49
|
+
X as PopoverTrigger,
|
|
50
|
+
Y as Progress,
|
|
51
|
+
Z as RadioGroup,
|
|
52
|
+
_ as ReasoningDisclosure,
|
|
53
|
+
$ as ScrollArea,
|
|
54
|
+
V as Select,
|
|
55
|
+
aa as Separator,
|
|
56
|
+
sa as Sidebar,
|
|
57
|
+
ea as SidebarFooter,
|
|
58
|
+
ra as SidebarHeader,
|
|
59
|
+
oa as SidebarNav,
|
|
60
|
+
ta as SidebarNavItem,
|
|
61
|
+
na as Skeleton,
|
|
62
|
+
ia as Spinner,
|
|
63
|
+
da as Stack,
|
|
64
|
+
pa as StatCard,
|
|
65
|
+
ba as StatusLine,
|
|
66
|
+
ca as Switch,
|
|
67
|
+
la as Table,
|
|
68
|
+
ua as Tabs,
|
|
69
|
+
ma as TabsContent,
|
|
70
|
+
ga as TabsList,
|
|
71
|
+
Ta as TabsTrigger,
|
|
72
|
+
Ca as Text,
|
|
73
|
+
Sa as Textarea,
|
|
74
|
+
Ba as ThemeProvider,
|
|
75
|
+
va as Toaster,
|
|
76
|
+
Aa as ToolCard,
|
|
77
|
+
Da as ToolGroup,
|
|
78
|
+
Ma as Tooltip,
|
|
79
|
+
ka as UserMessage,
|
|
80
|
+
Pa as cn,
|
|
81
|
+
wa as toast,
|
|
82
|
+
ha as useField,
|
|
83
|
+
xa as useTheme
|
|
84
|
+
};
|
package/dist/lib/cn.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-Ctl3DYP3.cjs");exports.Mermaid=e.Vo;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/* Tier 1 — primitive tokens. NOT a public contract; consumers must bind only
|
|
2
|
+
to semantic names. Values are oklch conversions of the sketch hex palette. */
|
|
3
|
+
|
|
4
|
+
:root {
|
|
5
|
+
/* Hue ramps derived from sketch accents (green/red/yellow/orange/magenta/cyan) */
|
|
6
|
+
--ui-green-500: oklch(0.871 0.117 145.5); /* #a6e3a1 */
|
|
7
|
+
--ui-red-500: oklch(0.762 0.14 356.9); /* #f38ba8 */
|
|
8
|
+
--ui-yellow-500: oklch(0.83 0.11 60); /* #fab387 */
|
|
9
|
+
--ui-orange-500: oklch(0.806 0.098 55.8); /* #e8a878 */
|
|
10
|
+
--ui-magenta-500: oklch(0.883 0.069 320.4); /* #f5c2e7 */
|
|
11
|
+
--ui-cyan-500: oklch(0.906 0.062 213.9); /* #89dceb */
|
|
12
|
+
--ui-brand-500: oklch(0.736 0.098 51.7); /* #dd945d */
|
|
13
|
+
|
|
14
|
+
/* Neutral ramp anchored on sketch bg #18181f → text #e2e4ef */
|
|
15
|
+
--ui-neutral-900: oklch(0.183 0.012 285.8); /* #18181f bg */
|
|
16
|
+
--ui-neutral-800: oklch(0.223 0.013 285.8); /* #1f1f27 panel */
|
|
17
|
+
--ui-neutral-700: oklch(0.263 0.014 285.8); /* #26262f panel-2 */
|
|
18
|
+
--ui-neutral-600: oklch(0.32 0.015 285.8); /* #30303c border */
|
|
19
|
+
--ui-neutral-300: oklch(0.75 0.02 264.3); /* #a6adc8 text-2 */
|
|
20
|
+
--ui-neutral-200: oklch(0.94 0.01 260); /* #e2e4ef text-1 */
|
|
21
|
+
--ui-neutral-100: oklch(0.98 0.005 260);
|
|
22
|
+
|
|
23
|
+
/* User bubble tint #24304a and code bg #14141b */
|
|
24
|
+
--ui-blue-tint: oklch(0.293 0.048 264.5);
|
|
25
|
+
--ui-code-black: oklch(0.157 0.012 285.8);
|
|
26
|
+
|
|
27
|
+
/* Type */
|
|
28
|
+
--ui-font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, Roboto,
|
|
29
|
+
sans-serif;
|
|
30
|
+
--ui-font-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
|
|
31
|
+
|
|
32
|
+
/* Base radius (scale derives via calc in @theme) */
|
|
33
|
+
--ui-radius-base: 12px;
|
|
34
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/* Tier 2 — SEMANTIC TOKENS. This file is the public token contract.
|
|
2
|
+
Dark is the default (:root); light overrides live in themes/light.css.
|
|
3
|
+
Names follow shadcn-compatible pairs where applicable plus chat-domain roles. */
|
|
4
|
+
|
|
5
|
+
@layer theme {
|
|
6
|
+
:root {
|
|
7
|
+
color-scheme: dark;
|
|
8
|
+
|
|
9
|
+
/* Surfaces */
|
|
10
|
+
--color-background: var(--ui-neutral-900);
|
|
11
|
+
--color-panel: var(--ui-neutral-800);
|
|
12
|
+
--color-panel-2: var(--ui-neutral-700);
|
|
13
|
+
--color-border: var(--ui-neutral-600);
|
|
14
|
+
--color-input: var(--ui-neutral-600);
|
|
15
|
+
--color-overlay: color-mix(in srgb, var(--ui-neutral-900) 70%, transparent);
|
|
16
|
+
|
|
17
|
+
/* Text */
|
|
18
|
+
--color-foreground: var(--ui-neutral-200);
|
|
19
|
+
--color-text-2: var(--ui-neutral-300);
|
|
20
|
+
--color-text-3: oklch(0.58 0.02 264.3); /* #6c7086 dim */
|
|
21
|
+
|
|
22
|
+
/* Brand + accent */
|
|
23
|
+
--color-brand: var(--ui-brand-500);
|
|
24
|
+
--color-primary: var(--ui-green-500);
|
|
25
|
+
--color-primary-foreground: oklch(0.22 0.05 150); /* dark green ink #14201a-ish */
|
|
26
|
+
--color-accent: var(--ui-yellow-500);
|
|
27
|
+
|
|
28
|
+
/* Feedback (shadcn-compatible destructive) */
|
|
29
|
+
--color-destructive: var(--ui-red-500);
|
|
30
|
+
--color-destructive-foreground: oklch(0.98 0.005 260);
|
|
31
|
+
--color-muted: var(--ui-neutral-700);
|
|
32
|
+
--color-muted-foreground: var(--ui-neutral-300);
|
|
33
|
+
--color-ring: color-mix(in srgb, var(--ui-green-500) 45%, transparent);
|
|
34
|
+
|
|
35
|
+
/* Chat domain */
|
|
36
|
+
--color-bubble-user: var(--ui-blue-tint);
|
|
37
|
+
--color-bubble-assistant: transparent;
|
|
38
|
+
--color-code-bg: var(--ui-code-black);
|
|
39
|
+
--color-add-bg: color-mix(in srgb, var(--ui-green-500) 8%, transparent);
|
|
40
|
+
--color-del-bg: color-mix(in srgb, var(--ui-red-500) 8%, transparent);
|
|
41
|
+
|
|
42
|
+
/* Tool status */
|
|
43
|
+
--color-status-ok: var(--ui-green-500);
|
|
44
|
+
--color-status-error: var(--ui-red-500);
|
|
45
|
+
--color-status-warning: var(--ui-yellow-500);
|
|
46
|
+
--color-status-running: var(--ui-orange-500);
|
|
47
|
+
--color-status-pending: var(--ui-yellow-500);
|
|
48
|
+
|
|
49
|
+
/* Informational accent (info callouts, read-tool glyph, diff file paths) */
|
|
50
|
+
--color-info: var(--ui-cyan-500);
|
|
51
|
+
|
|
52
|
+
/* Shape */
|
|
53
|
+
--radius: var(--ui-radius-base);
|
|
54
|
+
|
|
55
|
+
/* Typography */
|
|
56
|
+
--text-xs: 0.75rem;
|
|
57
|
+
--text-sm: 0.875rem;
|
|
58
|
+
--text-base: 1rem;
|
|
59
|
+
--text-lg: 1.125rem;
|
|
60
|
+
--text-xl: 1.25rem;
|
|
61
|
+
--text-2xl: 1.5rem;
|
|
62
|
+
|
|
63
|
+
--leading-tight: 1.25;
|
|
64
|
+
--leading-normal: 1.5;
|
|
65
|
+
--leading-relaxed: 1.75;
|
|
66
|
+
|
|
67
|
+
--font-normal: 400;
|
|
68
|
+
--font-medium: 500;
|
|
69
|
+
--font-semibold: 600;
|
|
70
|
+
--font-bold: 700;
|
|
71
|
+
|
|
72
|
+
/* Shadows */
|
|
73
|
+
--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.15);
|
|
74
|
+
--shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.2), 0 2px 4px -2px rgb(0 0 0 / 0.15);
|
|
75
|
+
--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.25), 0 4px 6px -4px rgb(0 0 0 / 0.2);
|
|
76
|
+
--shadow-overlay: 0 20px 25px -5px rgb(0 0 0 / 0.3), 0 8px 10px -6px rgb(0 0 0 / 0.2);
|
|
77
|
+
|
|
78
|
+
/* Z-index */
|
|
79
|
+
--z-dropdown: 40;
|
|
80
|
+
--z-overlay: 45;
|
|
81
|
+
--z-modal: 50;
|
|
82
|
+
--z-popover: 50;
|
|
83
|
+
--z-tooltip: 55;
|
|
84
|
+
--z-toast: 60;
|
|
85
|
+
|
|
86
|
+
/* Motion */
|
|
87
|
+
--duration-75: 75ms;
|
|
88
|
+
--duration-100: 100ms;
|
|
89
|
+
--duration-150: 150ms;
|
|
90
|
+
--duration-200: 200ms;
|
|
91
|
+
--duration-300: 300ms;
|
|
92
|
+
--duration-500: 500ms;
|
|
93
|
+
|
|
94
|
+
--ease-in: cubic-bezier(0.4, 0, 1, 1);
|
|
95
|
+
--ease-out: cubic-bezier(0, 0, 0.2, 1);
|
|
96
|
+
--ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { StoryObj } from "@storybook/react-vite";
|
|
2
|
+
declare function ConversationScene(): import("react").JSX.Element;
|
|
3
|
+
declare const meta: {
|
|
4
|
+
title: string;
|
|
5
|
+
component: typeof ConversationScene;
|
|
6
|
+
parameters: {
|
|
7
|
+
layout: string;
|
|
8
|
+
};
|
|
9
|
+
tags: string[];
|
|
10
|
+
};
|
|
11
|
+
export default meta;
|
|
12
|
+
type Story = StoryObj<typeof meta>;
|
|
13
|
+
export declare const DemoTranscript: Story;
|
package/dist/spacing.css
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/* src/tokens/spacing.css — Tier 1.5: layout spacing scale (4px grid).
|
|
2
|
+
Tailwind convention: --space-N = N * 0.25rem. Public contract. */
|
|
3
|
+
|
|
4
|
+
:root {
|
|
5
|
+
--space-0: 0;
|
|
6
|
+
--space-1: 0.25rem; /* 4px */
|
|
7
|
+
--space-2: 0.5rem; /* 8px */
|
|
8
|
+
--space-3: 0.75rem; /* 12px */
|
|
9
|
+
--space-4: 1rem; /* 16px */
|
|
10
|
+
--space-5: 1.25rem; /* 20px */
|
|
11
|
+
--space-6: 1.5rem; /* 24px */
|
|
12
|
+
--space-8: 2rem; /* 32px */
|
|
13
|
+
--space-10: 2.5rem; /* 40px */
|
|
14
|
+
--space-12: 3rem; /* 48px */
|
|
15
|
+
--space-16: 4rem; /* 64px */
|
|
16
|
+
}
|
package/dist/styles.css
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
export type ThemeMode = "dark" | "light";
|
|
3
|
+
type ThemeContextValue = {
|
|
4
|
+
mode: ThemeMode;
|
|
5
|
+
setMode: (mode: ThemeMode) => void;
|
|
6
|
+
toggleMode: () => void;
|
|
7
|
+
};
|
|
8
|
+
export declare function ThemeProvider({ children, defaultMode, storageKey, }: {
|
|
9
|
+
children?: ReactNode;
|
|
10
|
+
defaultMode?: ThemeMode | "system";
|
|
11
|
+
storageKey?: string;
|
|
12
|
+
}): import("react").JSX.Element;
|
|
13
|
+
export declare function useTheme(): ThemeContextValue;
|
|
14
|
+
export {};
|
package/dist/theme.css
ADDED
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/* Consumer entry: after "@import 'tailwindcss';" import this file.
|
|
2
|
+
Maps semantic variables into Tailwind namespaces so utilities respond to
|
|
3
|
+
live [data-theme] switching. @theme inline is REQUIRED: without it, var()
|
|
4
|
+
resolution binds at declaration scope and theme overrides silently fail. */
|
|
5
|
+
|
|
6
|
+
@import "tw-animate-css";
|
|
7
|
+
@import "./primitives.css";
|
|
8
|
+
@import "./spacing.css";
|
|
9
|
+
@import "./semantic.css";
|
|
10
|
+
@import "./themes/light.css";
|
|
11
|
+
|
|
12
|
+
@custom-variant dark (&:where([data-theme="dark"], [data-theme="dark"] *));
|
|
13
|
+
|
|
14
|
+
@theme inline {
|
|
15
|
+
--color-background: var(--color-background);
|
|
16
|
+
--color-foreground: var(--color-foreground);
|
|
17
|
+
--color-panel: var(--color-panel);
|
|
18
|
+
--color-panel-2: var(--color-panel-2);
|
|
19
|
+
--color-border: var(--color-border);
|
|
20
|
+
--color-input: var(--color-input);
|
|
21
|
+
--color-text-2: var(--color-text-2);
|
|
22
|
+
--color-text-3: var(--color-text-3);
|
|
23
|
+
--color-brand: var(--color-brand);
|
|
24
|
+
--color-primary: var(--color-primary);
|
|
25
|
+
--color-primary-foreground: var(--color-primary-foreground);
|
|
26
|
+
--color-accent: var(--color-accent);
|
|
27
|
+
--color-destructive: var(--color-destructive);
|
|
28
|
+
--color-destructive-foreground: var(--color-destructive-foreground);
|
|
29
|
+
--color-muted: var(--color-muted);
|
|
30
|
+
--color-muted-foreground: var(--color-muted-foreground);
|
|
31
|
+
--color-ring: var(--color-ring);
|
|
32
|
+
--color-bubble-user: var(--color-bubble-user);
|
|
33
|
+
--color-bubble-assistant: var(--color-bubble-assistant);
|
|
34
|
+
--color-code-bg: var(--color-code-bg);
|
|
35
|
+
--color-add-bg: var(--color-add-bg);
|
|
36
|
+
--color-del-bg: var(--color-del-bg);
|
|
37
|
+
--color-status-ok: var(--color-status-ok);
|
|
38
|
+
--color-status-error: var(--color-status-error);
|
|
39
|
+
--color-status-warning: var(--color-status-warning);
|
|
40
|
+
--color-status-running: var(--color-status-running);
|
|
41
|
+
--color-status-pending: var(--color-status-pending);
|
|
42
|
+
--color-info: var(--color-info);
|
|
43
|
+
--color-overlay: var(--color-overlay);
|
|
44
|
+
|
|
45
|
+
--font-sans: var(--ui-font-sans);
|
|
46
|
+
--font-mono: var(--ui-font-mono);
|
|
47
|
+
|
|
48
|
+
--spacing-0: var(--space-0);
|
|
49
|
+
--spacing-1: var(--space-1);
|
|
50
|
+
--spacing-2: var(--space-2);
|
|
51
|
+
--spacing-3: var(--space-3);
|
|
52
|
+
--spacing-4: var(--space-4);
|
|
53
|
+
--spacing-5: var(--space-5);
|
|
54
|
+
--spacing-6: var(--space-6);
|
|
55
|
+
--spacing-8: var(--space-8);
|
|
56
|
+
--spacing-10: var(--space-10);
|
|
57
|
+
--spacing-12: var(--space-12);
|
|
58
|
+
--spacing-16: var(--space-16);
|
|
59
|
+
|
|
60
|
+
--radius-sm: calc(var(--radius) - 4px);
|
|
61
|
+
--radius-md: calc(var(--radius) - 2px);
|
|
62
|
+
--radius-lg: var(--radius);
|
|
63
|
+
--radius-xl: calc(var(--radius) + 4px);
|
|
64
|
+
|
|
65
|
+
--text-xs: var(--text-xs);
|
|
66
|
+
--text-sm: var(--text-sm);
|
|
67
|
+
--text-base: var(--text-base);
|
|
68
|
+
--text-lg: var(--text-lg);
|
|
69
|
+
--text-xl: var(--text-xl);
|
|
70
|
+
--text-2xl: var(--text-2xl);
|
|
71
|
+
|
|
72
|
+
--leading-tight: var(--leading-tight);
|
|
73
|
+
--leading-normal: var(--leading-normal);
|
|
74
|
+
--leading-relaxed: var(--leading-relaxed);
|
|
75
|
+
|
|
76
|
+
--font-normal: var(--font-normal);
|
|
77
|
+
--font-medium: var(--font-medium);
|
|
78
|
+
--font-semibold: var(--font-semibold);
|
|
79
|
+
--font-bold: var(--font-bold);
|
|
80
|
+
|
|
81
|
+
--shadow-sm: var(--shadow-sm);
|
|
82
|
+
--shadow-md: var(--shadow-md);
|
|
83
|
+
--shadow-lg: var(--shadow-lg);
|
|
84
|
+
--shadow-overlay: var(--shadow-overlay);
|
|
85
|
+
|
|
86
|
+
--duration-75: var(--duration-75);
|
|
87
|
+
--duration-100: var(--duration-100);
|
|
88
|
+
--duration-150: var(--duration-150);
|
|
89
|
+
--duration-200: var(--duration-200);
|
|
90
|
+
--duration-300: var(--duration-300);
|
|
91
|
+
--duration-500: var(--duration-500);
|
|
92
|
+
|
|
93
|
+
--ease-in: var(--ease-in);
|
|
94
|
+
--ease-out: var(--ease-out);
|
|
95
|
+
--ease-in-out: var(--ease-in-out);
|
|
96
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/* Light theme — same semantic contract, light values (Catppuccin Latte-leaning). */
|
|
2
|
+
|
|
3
|
+
@layer theme {
|
|
4
|
+
[data-theme="light"] {
|
|
5
|
+
color-scheme: light;
|
|
6
|
+
|
|
7
|
+
--color-background: oklch(0.968 0.008 247.9); /* #eff1f5 */
|
|
8
|
+
--color-panel: oklch(0.955 0.008 236.8); /* #eef2f5 */
|
|
9
|
+
--color-panel-2: oklch(0.92 0.01 240);
|
|
10
|
+
--color-border: oklch(0.85 0.015 240);
|
|
11
|
+
--color-input: oklch(0.85 0.015 240);
|
|
12
|
+
--color-overlay: color-mix(in srgb, oklch(0.47 0.03 264.4) 30%, transparent);
|
|
13
|
+
|
|
14
|
+
--color-foreground: oklch(0.47 0.03 264.4); /* #4c4f69 */
|
|
15
|
+
--color-text-2: oklch(0.52 0.025 254.7); /* #5c5f77 */
|
|
16
|
+
--color-text-3: oklch(0.72 0.02 255);
|
|
17
|
+
|
|
18
|
+
--color-brand: oklch(0.65 0.17 40); /* #fe640b-leaning */
|
|
19
|
+
--color-primary: oklch(0.59 0.13 149.3); /* #40a02b */
|
|
20
|
+
--color-primary-foreground: oklch(0.98 0.005 260);
|
|
21
|
+
--color-accent: oklch(0.71 0.14 66.4); /* #df8e1d */
|
|
22
|
+
|
|
23
|
+
--color-destructive: oklch(0.57 0.21 17.5); /* #d20f39 */
|
|
24
|
+
--color-destructive-foreground: oklch(0.98 0.005 260);
|
|
25
|
+
--color-muted: oklch(0.92 0.01 240);
|
|
26
|
+
--color-muted-foreground: oklch(0.52 0.025 254.7);
|
|
27
|
+
--color-ring: color-mix(in srgb, oklch(0.59 0.13 149.3) 45%, transparent);
|
|
28
|
+
|
|
29
|
+
--color-bubble-user: oklch(0.93 0.03 247.9); /* #e1ecf7 */
|
|
30
|
+
--color-bubble-assistant: transparent;
|
|
31
|
+
--color-code-bg: oklch(0.93 0.01 250);
|
|
32
|
+
--color-add-bg: color-mix(in srgb, oklch(0.59 0.13 149.3) 10%, transparent);
|
|
33
|
+
--color-del-bg: color-mix(in srgb, oklch(0.57 0.21 17.5) 10%, transparent);
|
|
34
|
+
|
|
35
|
+
/* Tool status — dark pastels are illegible on light; these values keep the
|
|
36
|
+
Catppuccin Latte hues but lower lightness so small text passes WCAG AA
|
|
37
|
+
(≥4.5:1 vs --color-panel #ebf1f5). */
|
|
38
|
+
--color-status-ok: oklch(0.51 0.13 149.3); /* #1e7b3b-leaning */
|
|
39
|
+
--color-status-error: oklch(0.56 0.21 17.5); /* #d31e44-leaning */
|
|
40
|
+
--color-status-warning: oklch(0.54 0.14 66.4); /* #a35a00-leaning */
|
|
41
|
+
--color-status-running: oklch(0.55 0.17 40); /* #bf4306-leaning */
|
|
42
|
+
--color-status-pending: oklch(0.54 0.14 66.4); /* #a35a00-leaning */
|
|
43
|
+
|
|
44
|
+
/* Informational accent — dark cyan is too light on Latte bg */
|
|
45
|
+
--color-info: oklch(0.52 0.11 222); /* #007696-leaning */
|
|
46
|
+
|
|
47
|
+
--radius: var(--ui-radius-base);
|
|
48
|
+
|
|
49
|
+
/* Shadows */
|
|
50
|
+
--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
|
|
51
|
+
--shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.07), 0 2px 4px -2px rgb(0 0 0 / 0.05);
|
|
52
|
+
--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.08), 0 4px 6px -4px rgb(0 0 0 / 0.06);
|
|
53
|
+
--shadow-overlay: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.07);
|
|
54
|
+
}
|
|
55
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@nuvin/ui-design-system",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "git+https://github.com/marschhuynh/ui-design-system.git",
|
|
8
|
+
"directory": "packages/ui"
|
|
9
|
+
},
|
|
10
|
+
"main": "./dist/index.cjs",
|
|
11
|
+
"module": "./dist/index.js",
|
|
12
|
+
"types": "./dist/index.d.ts",
|
|
13
|
+
"exports": {
|
|
14
|
+
".": {
|
|
15
|
+
"types": "./dist/index.d.ts",
|
|
16
|
+
"import": "./dist/index.js",
|
|
17
|
+
"require": "./dist/index.cjs"
|
|
18
|
+
},
|
|
19
|
+
"./theme.css": "./dist/theme.css",
|
|
20
|
+
"./styles.css": "./dist/styles.css"
|
|
21
|
+
},
|
|
22
|
+
"files": ["dist"],
|
|
23
|
+
"scripts": {
|
|
24
|
+
"build": "vite build && tsc --emitDeclarationOnly && cp src/tokens/theme.css src/tokens/styles.css src/tokens/primitives.css src/tokens/spacing.css src/tokens/semantic.css dist/ && mkdir -p dist/themes && cp src/tokens/themes/light.css dist/themes/",
|
|
25
|
+
"storybook": "storybook dev -p 6006",
|
|
26
|
+
"build-storybook": "storybook build",
|
|
27
|
+
"test": "vitest run",
|
|
28
|
+
"test:watch": "vitest",
|
|
29
|
+
"changeset": "changeset",
|
|
30
|
+
"changeset:version": "changeset version"
|
|
31
|
+
},
|
|
32
|
+
"peerDependencies": {
|
|
33
|
+
"react": "^18.0.0 || ^19.0.0",
|
|
34
|
+
"react-dom": "^18.0.0 || ^19.0.0"
|
|
35
|
+
},
|
|
36
|
+
"dependencies": {
|
|
37
|
+
"@radix-ui/react-accordion": "^1.2.20",
|
|
38
|
+
"@radix-ui/react-checkbox": "^1.3.11",
|
|
39
|
+
"@radix-ui/react-collapsible": "^1.1.2",
|
|
40
|
+
"@radix-ui/react-dialog": "^1.1.23",
|
|
41
|
+
"@radix-ui/react-dropdown-menu": "^2.1.24",
|
|
42
|
+
"@radix-ui/react-popover": "^1.1.23",
|
|
43
|
+
"@radix-ui/react-progress": "^1.1.16",
|
|
44
|
+
"@radix-ui/react-radio-group": "^1.4.7",
|
|
45
|
+
"@radix-ui/react-scroll-area": "^1.2.10",
|
|
46
|
+
"@radix-ui/react-select": "^2.3.7",
|
|
47
|
+
"@radix-ui/react-separator": "^1.1.15",
|
|
48
|
+
"@radix-ui/react-switch": "^1.3.7",
|
|
49
|
+
"@radix-ui/react-tabs": "^1.1.21",
|
|
50
|
+
"@radix-ui/react-toast": "^1.2.23",
|
|
51
|
+
"@radix-ui/react-tooltip": "^1.2.16",
|
|
52
|
+
"class-variance-authority": "^0.7.1",
|
|
53
|
+
"clsx": "^2.1.1",
|
|
54
|
+
"cmdk": "^1.1.1",
|
|
55
|
+
"lucide-react": "^1.33.0",
|
|
56
|
+
"streamdown": "^2.6.0",
|
|
57
|
+
"tailwind-merge": "^2.6.0",
|
|
58
|
+
"tw-animate-css": "^1.4.0"
|
|
59
|
+
},
|
|
60
|
+
"devDependencies": {
|
|
61
|
+
"@storybook/addon-a11y": "^10.6.0",
|
|
62
|
+
"@storybook/addon-docs": "^10.6.0",
|
|
63
|
+
"@storybook/addon-themes": "^10.6.0",
|
|
64
|
+
"@storybook/react-vite": "^10.6.0",
|
|
65
|
+
"@tailwindcss/vite": "^4",
|
|
66
|
+
"@testing-library/jest-dom": "^6.6.3",
|
|
67
|
+
"@testing-library/react": "^16.2.0",
|
|
68
|
+
"@testing-library/user-event": "^14.6.6",
|
|
69
|
+
"@types/react": "^19.3.0",
|
|
70
|
+
"@types/react-dom": "^19.3.0",
|
|
71
|
+
"jsdom": "^25.0.1",
|
|
72
|
+
"react": "^19.3.0",
|
|
73
|
+
"react-dom": "^19.3.0",
|
|
74
|
+
"storybook": "^10.6.0",
|
|
75
|
+
"tailwindcss": "^4.0.0",
|
|
76
|
+
"typescript": "^5.7.2",
|
|
77
|
+
"vite": "^6.0.7",
|
|
78
|
+
"vite-plugin-dts": "^4.5.0",
|
|
79
|
+
"vitest": "^2.1.8"
|
|
80
|
+
}
|
|
81
|
+
}
|