@alexgorbatchev/shadcn 0.0.58 → 0.0.60
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/README.md +2 -2
- package/dist/{chunk-ddbc17b4.js → chunk-6fvcqd48.js} +4 -1
- package/dist/{chunk-nrdc4t48.js → chunk-6grp5fhy.js} +1 -1
- package/dist/components/assistant-ui/elements/Chart.js +2 -2
- package/dist/components/assistant-ui/index.js +2 -2
- package/dist/components/chart/Chart.d.ts +1 -1
- package/dist/components/chart/index.js +1 -1
- package/dist/components/chart/types.d.ts +2 -0
- package/dist/prototype.js +37 -28
- package/llms/components/data-display/Chart.md +21 -0
- package/llms/setup.md +2 -2
- package/package.json +3 -21
package/README.md
CHANGED
|
@@ -275,7 +275,7 @@ The npm package includes the same index at `llms.txt` in its root and its linked
|
|
|
275
275
|
| Conversations | Attachment, Bubble, Marker, Message, MessageScroller |
|
|
276
276
|
| App configuration | DensityProvider, DirectionProvider, ThemeProvider |
|
|
277
277
|
|
|
278
|
-
Use the composed parts exported from the package root, such as `DialogTrigger`, `DialogContent`, and `DialogTitle`. Storybook provides working compositions, variants, disabled states, and action callbacks. The local preview starts with `
|
|
278
|
+
Use the composed parts exported from the package root, such as `DialogTrigger`, `DialogContent`, and `DialogTitle`. Storybook provides working compositions, variants, disabled states, and action callbacks. The local preview starts with `just storybook` and binds to `127.0.0.1:6006`.
|
|
279
279
|
|
|
280
280
|
Set `wrap` on `ItemTitle` to keep complete titles visible in narrow items, including long names without spaces. The default title presentation remains unchanged.
|
|
281
281
|
|
|
@@ -329,7 +329,7 @@ Use the Theme toolbar to select light, dark, or system palettes; Docs and exampl
|
|
|
329
329
|
|
|
330
330
|
`Carousel` supports horizontal, vertical, and right-to-left navigation. Focus its named region to use the arrow keys; arrow keys inside slide inputs retain their input behavior. Supply `opts` and `plugins` for carousel configuration, and `setApi` to receive its API. Reduced-motion preference disables programmatic slide animation.
|
|
331
331
|
|
|
332
|
-
Compose `ChartContainer`, `ChartTooltip`, and `ChartLegend` with Recharts components. Import the chart parts from `@alexgorbatchev/shadcn/chart` and install its peers listed above.
|
|
332
|
+
Compose `ChartContainer`, `ChartTooltip`, and `ChartLegend` with Recharts components. Import the chart parts from `@alexgorbatchev/shadcn/chart` and install its peers listed above. The container keeps a 16:9 aspect ratio by default; give it `height` (such as `192` or `"12rem"`) to fill the available width at that height instead. `ChartConfig` supplies series labels, icons, and either one color or light/dark colors. Use semantic values such as `var(--primary)` and keep `accessibilityLayer` enabled for keyboard tooltips. Use `labelKey` and `nameKey` for custom tooltip data, and legend content's `nameKey` for custom legend labels. Keep series selection in application state; the tooltip's `defaultIndex` only sets its initial state.
|
|
333
333
|
|
|
334
334
|
Supply HTML attributes and refs to tooltip or legend content through `htmlProps`; Recharts injects its own chart props into those content components, so those props do not go to the DOM. An `onClick` legend callback renders keyboard-accessible buttons. Omit the tooltip's `portal` prop for native floating positioning; custom portal targets own their positioning through the native `wrapperStyle` API. Tooltip and legend content preserve chart density, direction and configured colors through portals. A container's `dir` overrides DirectionProvider context, and content's `htmlProps.dir` overrides the chart direction. Reverse Recharts' `XAxis` explicitly for RTL data ordering; native keyboard movement follows that axis. See the [Chart guide](https://ui.shadcn.com/docs/components/base/chart).
|
|
335
335
|
|
|
@@ -74,6 +74,8 @@ function Chart3({
|
|
|
74
74
|
children,
|
|
75
75
|
config,
|
|
76
76
|
initialDimension = { width: 320, height: 200 },
|
|
77
|
+
height,
|
|
78
|
+
style,
|
|
77
79
|
...props
|
|
78
80
|
}) {
|
|
79
81
|
const uniqueId = useId();
|
|
@@ -89,7 +91,8 @@ function Chart3({
|
|
|
89
91
|
"data-density": resolvedDensity,
|
|
90
92
|
"data-slot": "chart",
|
|
91
93
|
"data-chart": chartId,
|
|
92
|
-
className: cn2("flex aspect-video min-w-0 justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden", className),
|
|
94
|
+
className: cn2("flex aspect-video min-w-0 justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden", height !== undefined && "aspect-auto w-full", className),
|
|
95
|
+
style: height === undefined ? style : { ...style, height },
|
|
93
96
|
...props,
|
|
94
97
|
children: [
|
|
95
98
|
/* @__PURE__ */ jsx2(ChartStyle2, {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Chart2
|
|
3
|
-
} from "../../../chunk-
|
|
3
|
+
} from "../../../chunk-6grp5fhy.js";
|
|
4
4
|
import"../../../chunk-k1f35j55.js";
|
|
5
|
-
import"../../../chunk-
|
|
5
|
+
import"../../../chunk-6fvcqd48.js";
|
|
6
6
|
import"../../../chunk-tcefvfr8.js";
|
|
7
7
|
import"../../../chunk-jpvw9xqy.js";
|
|
8
8
|
import"../../../chunk-e6hk39ev.js";
|
|
@@ -53,10 +53,10 @@ import {
|
|
|
53
53
|
CanvasSplitLine2
|
|
54
54
|
} from "../../chunk-424xrf3x.js";
|
|
55
55
|
import"../../chunk-tcefvfr8.js";
|
|
56
|
-
import"../../chunk-
|
|
56
|
+
import"../../chunk-6fvcqd48.js";
|
|
57
57
|
import {
|
|
58
58
|
Chart2
|
|
59
|
-
} from "../../chunk-
|
|
59
|
+
} from "../../chunk-6grp5fhy.js";
|
|
60
60
|
import"../../chunk-7vg045gd.js";
|
|
61
61
|
import"../../chunk-er6e5fj8.js";
|
|
62
62
|
import"../../chunk-rxjxb4vy.js";
|
|
@@ -2,7 +2,7 @@ import type { ReactElement } from "react";
|
|
|
2
2
|
import type { ChartProps, ChartTooltipContentProps, ChartLegendContentProps } from "./types.js";
|
|
3
3
|
import { Tooltip } from "recharts";
|
|
4
4
|
import { ChartStyle } from "./ChartStyle.js";
|
|
5
|
-
declare function Chart({ id, dir, density, className, children, config, initialDimension, ...props }: ChartProps): ReactElement;
|
|
5
|
+
declare function Chart({ id, dir, density, className, children, config, initialDimension, height, style, ...props }: ChartProps): ReactElement;
|
|
6
6
|
declare function ChartTooltipContent({ density, active, payload, className, indicator, hideLabel, hideIndicator, label, labelFormatter, valueFormatter, labelClassName, formatter, color, nameKey, labelKey, htmlProps, contentStyle, itemStyle, labelStyle, wrapperClassName, itemSorter, }: ChartTooltipContentProps): ReactElement | null;
|
|
7
7
|
declare function ChartLegendContent({ density, className, hideIcon, payload, verticalAlign, nameKey, onClick, onMouseEnter, onMouseLeave, formatter, htmlProps, labelStyle, inactiveColor, }: ChartLegendContentProps): ReactElement | null;
|
|
8
8
|
declare const ChartTooltip: typeof Tooltip;
|
|
@@ -22,6 +22,8 @@ export type ChartProps = ComponentProps<"div"> & IDensityProps & {
|
|
|
22
22
|
config: ChartConfig;
|
|
23
23
|
children: ComponentProps<typeof ResponsiveContainer>["children"];
|
|
24
24
|
initialDimension?: ComponentProps<typeof ResponsiveContainer>["initialDimension"];
|
|
25
|
+
/** A fixed height, such as `192` or `"12rem"`; the chart then fills the available width instead of keeping 16:9. */
|
|
26
|
+
height?: CSSProperties["height"];
|
|
25
27
|
};
|
|
26
28
|
export type ChartStyleProps = {
|
|
27
29
|
id: string;
|
package/dist/prototype.js
CHANGED
|
@@ -2051,7 +2051,7 @@ var program = new Command;
|
|
|
2051
2051
|
// package.json
|
|
2052
2052
|
var package_default = {
|
|
2053
2053
|
name: "@alexgorbatchev/shadcn",
|
|
2054
|
-
version: "0.0.
|
|
2054
|
+
version: "0.0.60",
|
|
2055
2055
|
description: "Sharp, monospace React components with compact and comfortable densities.",
|
|
2056
2056
|
license: "MIT",
|
|
2057
2057
|
repository: {
|
|
@@ -3105,25 +3105,6 @@ var package_default = {
|
|
|
3105
3105
|
access: "public",
|
|
3106
3106
|
registry: "https://registry.npmjs.org/"
|
|
3107
3107
|
},
|
|
3108
|
-
scripts: {
|
|
3109
|
-
test: "vitest run --config .storybook/vitest.config.ts && bun run test:native && bun run test:package",
|
|
3110
|
-
"test:package": "bun run build && bun test scripts/__tests__ ./.storybook/__tests__/createStorybookViteConfig.test.ts",
|
|
3111
|
-
"test:preview": "bun test scripts/storybookPreview.test.ts",
|
|
3112
|
-
"test:prototype": "bun test --config=./cli/bunfig.toml --coverage cli && vitest run --config .storybook/vitest.prototype.config.ts --coverage",
|
|
3113
|
-
"test:native": "vitest run --config .storybook/vitest.native.config.ts",
|
|
3114
|
-
"test:coverage": "vitest run --config .storybook/vitest.coverage.config.ts --coverage",
|
|
3115
|
-
"test:contrast": "vitest run --config .storybook/vitest.contrast.config.ts",
|
|
3116
|
-
build: "bun scripts/build.ts",
|
|
3117
|
-
typecheck: "tsc --noEmit",
|
|
3118
|
-
lint: "oxlint --deny-warnings src .storybook scripts cli templates/prototype/src templates/prototype/vite.config.ts && oxfmt --check . && bun run lint:unused",
|
|
3119
|
-
"lint:unused": "ts-unused check tsconfig.json",
|
|
3120
|
-
storybook: "bun scripts/buildLlmDocs.ts && storybook dev --host 127.0.0.1 -p 6006 --no-open",
|
|
3121
|
-
"build-storybook": "bun scripts/buildLlmDocs.ts && storybook build",
|
|
3122
|
-
prepack: "bun run build",
|
|
3123
|
-
"test:reduced-motion": "vitest run --config .storybook/vitest.reduced-motion.config.ts",
|
|
3124
|
-
"test:visual": "vitest run --config .storybook/vitest.visual.config.ts Button.stories.tsx Badge.stories.tsx Card.stories.tsx Input.stories.tsx ScrollArea.stories.tsx",
|
|
3125
|
-
"test:visual:update": "bun run test:visual --update"
|
|
3126
|
-
},
|
|
3127
3108
|
devDependencies: {
|
|
3128
3109
|
"@assistant-ui/ai-sdk": "0.0.14",
|
|
3129
3110
|
"@assistant-ui/generative-ui": "0.0.6",
|
|
@@ -3187,6 +3168,7 @@ var package_default = {
|
|
|
3187
3168
|
"embla-carousel-autoplay": "8.6.0",
|
|
3188
3169
|
"embla-carousel-react": "^8.6.0",
|
|
3189
3170
|
"es-toolkit": "1.52.0",
|
|
3171
|
+
execa: "10.2.1",
|
|
3190
3172
|
"heat-graph": "0.0.25",
|
|
3191
3173
|
"input-otp": "1.5.0",
|
|
3192
3174
|
leaflet: "^1.9.4",
|
|
@@ -3195,7 +3177,7 @@ var package_default = {
|
|
|
3195
3177
|
oxfmt: "^0.72.0",
|
|
3196
3178
|
oxlint: "^1.87.0",
|
|
3197
3179
|
"parse-diff": "0.12.0",
|
|
3198
|
-
playwright: "
|
|
3180
|
+
playwright: "1.64.1",
|
|
3199
3181
|
"react-big-calendar": "1.20.0",
|
|
3200
3182
|
"react-colorful": "5.8.1",
|
|
3201
3183
|
"react-dropzone": "20.1.4",
|
|
@@ -3577,28 +3559,55 @@ async function runWorkspace(directory, action, port) {
|
|
|
3577
3559
|
|
|
3578
3560
|
// cli/createProgram.ts
|
|
3579
3561
|
function createProgram(options) {
|
|
3562
|
+
const width = Number.isFinite(options.width) && options.width >= 1 ? Math.floor(options.width) : 100;
|
|
3580
3563
|
const program = new Command("shadcn-prototype").description("Create and preview editable React mockups.").version(package_default.version).exitOverride().showHelpAfterError();
|
|
3581
3564
|
program.configureOutput({ writeOut: options.writeOut, writeErr: options.writeErr });
|
|
3582
3565
|
program.configureHelp({
|
|
3566
|
+
helpWidth: width,
|
|
3567
|
+
minWidthToWrap: 1,
|
|
3568
|
+
displayWidth: Bun.stringWidth,
|
|
3583
3569
|
formatHelp(command, helper) {
|
|
3584
|
-
const
|
|
3585
|
-
|
|
3586
|
-
|
|
3570
|
+
const wrap = (text) => options.isAgent ? text : helper.boxWrap(text, width);
|
|
3571
|
+
const formatItem = (term, description, prefix = " ", continuation = " ") => {
|
|
3572
|
+
const prefixWidth = helper.displayWidth(prefix);
|
|
3573
|
+
const descriptionColumn = Math.max(prefixWidth + 2, Math.min(45, Math.floor(width / 2)));
|
|
3574
|
+
const termWidth = descriptionColumn - 4;
|
|
3575
|
+
const connect = (line) => continuation + line.slice(continuation.length);
|
|
3576
|
+
if (prefixWidth + helper.displayWidth(term) + 2 > descriptionColumn) {
|
|
3577
|
+
const wrappedTerm = helper.boxWrap(term, Math.max(1, width - prefixWidth)).split(`
|
|
3578
|
+
`).map((line, index) => `${index === 0 ? prefix : continuation}${line}`).join(`
|
|
3579
|
+
`);
|
|
3580
|
+
if (!description)
|
|
3581
|
+
return wrappedTerm;
|
|
3582
|
+
const wrappedDescription = helper.formatItem("", termWidth, description, helper).split(`
|
|
3583
|
+
`).map(connect);
|
|
3584
|
+
return [wrappedTerm, ...wrappedDescription].join(`
|
|
3585
|
+
`);
|
|
3586
|
+
}
|
|
3587
|
+
return helper.formatItem(`${prefix.slice(2)}${term}`, termWidth, description, helper).split(`
|
|
3588
|
+
`).map((line, index) => index === 0 ? line : connect(line)).join(`
|
|
3589
|
+
`);
|
|
3590
|
+
};
|
|
3591
|
+
const lines = [wrap(`Usage: ${helper.commandUsage(command)}`), "", wrap(command.description()), "", "Options:"];
|
|
3592
|
+
for (const option of helper.visibleOptions(command)) {
|
|
3593
|
+
lines.push(options.isAgent ? ` ${option.flags} ${option.description}` : formatItem(option.flags, option.description));
|
|
3594
|
+
}
|
|
3587
3595
|
const visit = (parent, prefix) => {
|
|
3588
3596
|
const commands = helper.visibleCommands(parent);
|
|
3589
3597
|
for (const [index, child] of commands.entries()) {
|
|
3590
3598
|
const isLast = index === commands.length - 1;
|
|
3591
3599
|
const marker = options.isAgent ? "- " : isLast ? "\u2570\u2500 " : "\u251C\u2500 ";
|
|
3592
|
-
const
|
|
3593
|
-
|
|
3594
|
-
|
|
3600
|
+
const term = helper.subcommandTerm(child);
|
|
3601
|
+
const continuation = `${prefix}${options.isAgent ? " " : isLast ? " " : "\u2502 "}`;
|
|
3602
|
+
lines.push(options.isAgent ? `${prefix}${marker}${term}: ${child.description()}` : formatItem(term, child.description(), `${prefix}${marker}`, continuation));
|
|
3603
|
+
visit(child, continuation);
|
|
3595
3604
|
}
|
|
3596
3605
|
};
|
|
3597
3606
|
if (command.commands.length) {
|
|
3598
3607
|
lines.push("", "Commands:");
|
|
3599
3608
|
visit(command, " ");
|
|
3600
3609
|
}
|
|
3601
|
-
const body = lines.
|
|
3610
|
+
const body = lines.join(`
|
|
3602
3611
|
`) + `
|
|
3603
3612
|
`;
|
|
3604
3613
|
return options.isAgent ? "ALERT: Agents must read `AGENT=1 shadcn-prototype skill` before using this tool.\n" + body : body;
|
|
@@ -113,6 +113,27 @@ Storybook CSF excerpts. Default args and render apply unless overridden. Local h
|
|
|
113
113
|
}
|
|
114
114
|
```
|
|
115
115
|
|
|
116
|
+
### FixedHeight
|
|
117
|
+
|
|
118
|
+
```tsx
|
|
119
|
+
{
|
|
120
|
+
args: { className: undefined, height: 192 },
|
|
121
|
+
render: function Render(args) {
|
|
122
|
+
const [isWide, setWide] = useState(false);
|
|
123
|
+
return (<>
|
|
124
|
+
<Button onClick={() => setWide(!isWide)}>Resize chart</Button>
|
|
125
|
+
<div className={isWide ? "w-96" : "w-64"}>
|
|
126
|
+
<ChartContainer {...args}>
|
|
127
|
+
<BarChart accessibilityLayer data={data}>
|
|
128
|
+
<Bar dataKey="desktop" fill="var(--color-desktop)" isAnimationActive={false}/>
|
|
129
|
+
</BarChart>
|
|
130
|
+
</ChartContainer>
|
|
131
|
+
</div>
|
|
132
|
+
</>);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
```
|
|
136
|
+
|
|
116
137
|
### ResponsiveGrid
|
|
117
138
|
|
|
118
139
|
```tsx
|
package/llms/setup.md
CHANGED
|
@@ -275,7 +275,7 @@ The npm package includes the same index at `llms.txt` in its root and its linked
|
|
|
275
275
|
| Conversations | Attachment, Bubble, Marker, Message, MessageScroller |
|
|
276
276
|
| App configuration | DensityProvider, DirectionProvider, ThemeProvider |
|
|
277
277
|
|
|
278
|
-
Use the composed parts exported from the package root, such as `DialogTrigger`, `DialogContent`, and `DialogTitle`. Storybook provides working compositions, variants, disabled states, and action callbacks. The local preview starts with `
|
|
278
|
+
Use the composed parts exported from the package root, such as `DialogTrigger`, `DialogContent`, and `DialogTitle`. Storybook provides working compositions, variants, disabled states, and action callbacks. The local preview starts with `just storybook` and binds to `127.0.0.1:6006`.
|
|
279
279
|
|
|
280
280
|
Set `wrap` on `ItemTitle` to keep complete titles visible in narrow items, including long names without spaces. The default title presentation remains unchanged.
|
|
281
281
|
|
|
@@ -329,7 +329,7 @@ Use the Theme toolbar to select light, dark, or system palettes; Docs and exampl
|
|
|
329
329
|
|
|
330
330
|
`Carousel` supports horizontal, vertical, and right-to-left navigation. Focus its named region to use the arrow keys; arrow keys inside slide inputs retain their input behavior. Supply `opts` and `plugins` for carousel configuration, and `setApi` to receive its API. Reduced-motion preference disables programmatic slide animation.
|
|
331
331
|
|
|
332
|
-
Compose `ChartContainer`, `ChartTooltip`, and `ChartLegend` with Recharts components. Import the chart parts from `@alexgorbatchev/shadcn/chart` and install its peers listed above.
|
|
332
|
+
Compose `ChartContainer`, `ChartTooltip`, and `ChartLegend` with Recharts components. Import the chart parts from `@alexgorbatchev/shadcn/chart` and install its peers listed above. The container keeps a 16:9 aspect ratio by default; give it `height` (such as `192` or `"12rem"`) to fill the available width at that height instead. `ChartConfig` supplies series labels, icons, and either one color or light/dark colors. Use semantic values such as `var(--primary)` and keep `accessibilityLayer` enabled for keyboard tooltips. Use `labelKey` and `nameKey` for custom tooltip data, and legend content's `nameKey` for custom legend labels. Keep series selection in application state; the tooltip's `defaultIndex` only sets its initial state.
|
|
333
333
|
|
|
334
334
|
Supply HTML attributes and refs to tooltip or legend content through `htmlProps`; Recharts injects its own chart props into those content components, so those props do not go to the DOM. An `onClick` legend callback renders keyboard-accessible buttons. Omit the tooltip's `portal` prop for native floating positioning; custom portal targets own their positioning through the native `wrapperStyle` API. Tooltip and legend content preserve chart density, direction and configured colors through portals. A container's `dir` overrides DirectionProvider context, and content's `htmlProps.dir` overrides the chart direction. Reverse Recharts' `XAxis` explicitly for RTL data ordering; native keyboard movement follows that axis. See the [Chart guide](https://ui.shadcn.com/docs/components/base/chart).
|
|
335
335
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alexgorbatchev/shadcn",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.60",
|
|
4
4
|
"description": "Sharp, monospace React components with compact and comfortable densities.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -1054,25 +1054,6 @@
|
|
|
1054
1054
|
"access": "public",
|
|
1055
1055
|
"registry": "https://registry.npmjs.org/"
|
|
1056
1056
|
},
|
|
1057
|
-
"scripts": {
|
|
1058
|
-
"test": "vitest run --config .storybook/vitest.config.ts && bun run test:native && bun run test:package",
|
|
1059
|
-
"test:package": "bun run build && bun test scripts/__tests__ ./.storybook/__tests__/createStorybookViteConfig.test.ts",
|
|
1060
|
-
"test:preview": "bun test scripts/storybookPreview.test.ts",
|
|
1061
|
-
"test:prototype": "bun test --config=./cli/bunfig.toml --coverage cli && vitest run --config .storybook/vitest.prototype.config.ts --coverage",
|
|
1062
|
-
"test:native": "vitest run --config .storybook/vitest.native.config.ts",
|
|
1063
|
-
"test:coverage": "vitest run --config .storybook/vitest.coverage.config.ts --coverage",
|
|
1064
|
-
"test:contrast": "vitest run --config .storybook/vitest.contrast.config.ts",
|
|
1065
|
-
"build": "bun scripts/build.ts",
|
|
1066
|
-
"typecheck": "tsc --noEmit",
|
|
1067
|
-
"lint": "oxlint --deny-warnings src .storybook scripts cli templates/prototype/src templates/prototype/vite.config.ts && oxfmt --check . && bun run lint:unused",
|
|
1068
|
-
"lint:unused": "ts-unused check tsconfig.json",
|
|
1069
|
-
"storybook": "bun scripts/buildLlmDocs.ts && storybook dev --host 127.0.0.1 -p 6006 --no-open",
|
|
1070
|
-
"build-storybook": "bun scripts/buildLlmDocs.ts && storybook build",
|
|
1071
|
-
"prepack": "bun run build",
|
|
1072
|
-
"test:reduced-motion": "vitest run --config .storybook/vitest.reduced-motion.config.ts",
|
|
1073
|
-
"test:visual": "vitest run --config .storybook/vitest.visual.config.ts Button.stories.tsx Badge.stories.tsx Card.stories.tsx Input.stories.tsx ScrollArea.stories.tsx",
|
|
1074
|
-
"test:visual:update": "bun run test:visual --update"
|
|
1075
|
-
},
|
|
1076
1057
|
"devDependencies": {
|
|
1077
1058
|
"@assistant-ui/ai-sdk": "0.0.14",
|
|
1078
1059
|
"@assistant-ui/generative-ui": "0.0.6",
|
|
@@ -1136,6 +1117,7 @@
|
|
|
1136
1117
|
"embla-carousel-autoplay": "8.6.0",
|
|
1137
1118
|
"embla-carousel-react": "^8.6.0",
|
|
1138
1119
|
"es-toolkit": "1.52.0",
|
|
1120
|
+
"execa": "10.2.1",
|
|
1139
1121
|
"heat-graph": "0.0.25",
|
|
1140
1122
|
"input-otp": "1.5.0",
|
|
1141
1123
|
"leaflet": "^1.9.4",
|
|
@@ -1144,7 +1126,7 @@
|
|
|
1144
1126
|
"oxfmt": "^0.72.0",
|
|
1145
1127
|
"oxlint": "^1.87.0",
|
|
1146
1128
|
"parse-diff": "0.12.0",
|
|
1147
|
-
"playwright": "
|
|
1129
|
+
"playwright": "1.64.1",
|
|
1148
1130
|
"react-big-calendar": "1.20.0",
|
|
1149
1131
|
"react-colorful": "5.8.1",
|
|
1150
1132
|
"react-dropzone": "20.1.4",
|