@imfusion/web-ui 0.8.1-dev.3.g40eaad1c → 0.8.1-dev.36.g641eac85

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/CHANGELOG.md +89 -0
  2. package/README.md +26 -18
  3. package/dist/{code-D2lwxHgd.js → code-DBIxhqGE.js} +3 -3
  4. package/dist/components/card/card.d.ts +15 -1
  5. package/dist/components/field/field.d.ts +5 -2
  6. package/dist/components/slider/slider.d.ts +11 -1
  7. package/dist/components/typo/typo.d.ts +20 -11
  8. package/dist/{icons-CaGCCwG-.js → icons-CM68Ql5d.js} +1 -1
  9. package/dist/icons.js +1 -1
  10. package/dist/index.js +1381 -1345
  11. package/dist/integrations/code-highlight.js +6 -4
  12. package/dist/integrations/frame-selection/frame-selection-view.d.ts +24 -0
  13. package/dist/integrations/frame-selection/frame-selection.d.ts +21 -0
  14. package/dist/integrations/frame-selection/frame-selection.meta.d.ts +2 -0
  15. package/dist/integrations/frame-selection/index.d.ts +2 -0
  16. package/dist/integrations/frame-selection.js +121 -0
  17. package/dist/integrations/image-display-options.js +71 -70
  18. package/dist/llms/evals/runner/config.d.ts +1 -0
  19. package/dist/llms/gen-tokens.d.ts +1 -1
  20. package/dist/{paths-Oi0v8x-w.js → paths-B5Ht3ETc.js} +2 -2
  21. package/dist/separator-lzz4A3x_.js +26 -0
  22. package/dist/slider-Cqpreglu.js +116 -0
  23. package/dist/style.css +1 -1
  24. package/dist/tabs-Dsfp8Ogj.js +295 -0
  25. package/dist/utils/status-glyphs.d.ts +4 -0
  26. package/dist/vite.js +2 -2
  27. package/dist/web-ui-cli.js +1 -1
  28. package/docs/user-guide/AgentTooling.mdx +8 -3
  29. package/package.json +33 -36
  30. package/src/docgen/doc.gen.json +149 -2
  31. package/src/llms/llms.gen.txt +8 -2
  32. package/src/llms/skills/imf-web-ui/SKILL.md +2 -0
  33. package/src/llms/skills/imf-web-ui-audit/SKILL.md +5 -3
  34. package/src/llms/skills/imf-web-ui-components/SKILL.md +3 -1
  35. package/src/llms/skills/imf-web-ui-conventions/templates/AUDIT_CHECKLIST.md +4 -2
  36. package/src/llms/skills/imf-web-ui-conventions/topics/authentication.md +2 -1
  37. package/src/llms/skills/imf-web-ui-conventions/topics/data.md +5 -3
  38. package/src/llms/skills/imf-web-ui-conventions/topics/git.md +2 -3
  39. package/src/llms/skills/imf-web-ui-conventions/topics/npm-project.md +3 -4
  40. package/src/llms/skills/imf-web-ui-conventions/topics/styling.md +4 -2
  41. package/src/llms/skills/imf-web-ui-conventions/topics/tooling.md +66 -28
  42. package/src/llms/skills/imf-web-ui-conventions/topics/typescript.md +14 -0
  43. package/src/llms/skills/imf-web-ui-setup/SKILL.md +2 -0
  44. package/src/llms/skills/imf-web-ui-update/SKILL.md +37 -6
  45. package/src/llms/skills/imf-web-ui-user-profile/SKILL.md +95 -0
  46. package/src/llms/skills/imf-web-ui-ux/SKILL.md +2 -0
  47. package/src/llms/tokens.gen.json +3 -3
  48. package/dist/tabs-BS6rqrrA.js +0 -398
  49. /package/dist/{meta-j-7HGrWv.js → meta-V_KyLeGn.js} +0 -0
  50. /package/dist/{chunk-DmhlhrBa.js → rolldown-runtime-Dy4uBu1J.js} +0 -0
@@ -0,0 +1,295 @@
1
+ import { t as e } from "./rolldown-runtime-Dy4uBu1J.js";
2
+ import { l as t, u as n } from "./slider-Cqpreglu.js";
3
+ import { cva as r } from "class-variance-authority";
4
+ import { jsx as i } from "react/jsx-runtime";
5
+ import { Children as a, useCallback as o } from "react";
6
+ import { Switch as s } from "@base-ui/react/switch";
7
+ import { Toggle as c } from "@base-ui/react/toggle";
8
+ import { ToggleGroup as l } from "@base-ui/react/toggle-group";
9
+ import { Tabs as u } from "@base-ui/react/tabs";
10
+ var d = {
11
+ root: "imf-ui-switch-module-root",
12
+ thumb: "imf-ui-switch-module-thumb"
13
+ }, f = /* @__PURE__ */ e({
14
+ Root: () => h,
15
+ Thumb: () => g
16
+ }), p = r(d.root), m = r(d.thumb);
17
+ function h(e) {
18
+ return /* @__PURE__ */ i(s.Root, {
19
+ ...e,
20
+ "data-imf-ui-component": "Switch.Root",
21
+ className: (n) => p({ className: t(e.className, n) })
22
+ });
23
+ }
24
+ h.displayName = "Switch.Root";
25
+ function g(e) {
26
+ return /* @__PURE__ */ i(s.Thumb, {
27
+ ...e,
28
+ "data-imf-ui-component": "Switch.Thumb",
29
+ className: (n) => m({ className: t(e.className, n) })
30
+ });
31
+ }
32
+ g.displayName = "Switch.Thumb";
33
+ //#endregion
34
+ //#region src/components/toggle/toggle.tsx
35
+ var _ = r({ root: "imf-ui-toggle-module-root" }.root), v = 2;
36
+ function y(e) {
37
+ let t = 0;
38
+ return a.forEach(e, (e) => {
39
+ typeof e == "string" || typeof e == "number" ? t += String(e).trim().length : e != null && typeof e != "boolean" && (t += v);
40
+ }), t;
41
+ }
42
+ function b({ style: e, children: r, ...a }) {
43
+ let o = {
44
+ "--glyph-count": y(r),
45
+ "--max-glyphs": v
46
+ };
47
+ return /* @__PURE__ */ i(c, {
48
+ ...a,
49
+ "data-imf-ui-component": "Toggle",
50
+ style: (t) => ({
51
+ ...o,
52
+ ...n(e, t)
53
+ }),
54
+ className: (e) => _({ className: t(a.className, e) }),
55
+ children: r
56
+ });
57
+ }
58
+ //#endregion
59
+ //#region src/components/toggle-group/toggle-group.tsx
60
+ var x = r({ root: "imf-ui-toggle-group-module-root" }.root);
61
+ function S(e) {
62
+ return /* @__PURE__ */ i(l, {
63
+ ...e,
64
+ "data-imf-ui-component": "ToggleGroup",
65
+ className: (n) => x({ className: t(e.className, n) })
66
+ });
67
+ }
68
+ var C = {
69
+ alignCenter: "imf-ui-row-module-alignCenter",
70
+ alignEnd: "imf-ui-row-module-alignEnd",
71
+ alignStart: "imf-ui-row-module-alignStart",
72
+ alignStretch: "imf-ui-row-module-alignStretch",
73
+ gap1: "imf-ui-row-module-gap1",
74
+ gap10: "imf-ui-row-module-gap10",
75
+ gap2: "imf-ui-row-module-gap2",
76
+ gap3: "imf-ui-row-module-gap3",
77
+ gap4: "imf-ui-row-module-gap4",
78
+ gap5: "imf-ui-row-module-gap5",
79
+ gap6: "imf-ui-row-module-gap6",
80
+ gap7: "imf-ui-row-module-gap7",
81
+ gap8: "imf-ui-row-module-gap8",
82
+ gap9: "imf-ui-row-module-gap9",
83
+ justifyAround: "imf-ui-row-module-justifyAround",
84
+ justifyBetween: "imf-ui-row-module-justifyBetween",
85
+ justifyCenter: "imf-ui-row-module-justifyCenter",
86
+ justifyEnd: "imf-ui-row-module-justifyEnd",
87
+ justifyEvenly: "imf-ui-row-module-justifyEvenly",
88
+ justifyStart: "imf-ui-row-module-justifyStart",
89
+ root: "imf-ui-row-module-root",
90
+ wrap: "imf-ui-row-module-wrap"
91
+ }, w = r(C.root, { variants: {
92
+ gap: {
93
+ 1: C.gap1,
94
+ 2: C.gap2,
95
+ 3: C.gap3,
96
+ 4: C.gap4,
97
+ 5: C.gap5,
98
+ 6: C.gap6,
99
+ 7: C.gap7,
100
+ 8: C.gap8,
101
+ 9: C.gap9,
102
+ 10: C.gap10
103
+ },
104
+ align: {
105
+ start: C.alignStart,
106
+ center: C.alignCenter,
107
+ end: C.alignEnd,
108
+ stretch: C.alignStretch
109
+ },
110
+ justify: {
111
+ start: C.justifyStart,
112
+ center: C.justifyCenter,
113
+ end: C.justifyEnd,
114
+ between: C.justifyBetween,
115
+ around: C.justifyAround,
116
+ evenly: C.justifyEvenly
117
+ },
118
+ wrap: {
119
+ true: C.wrap,
120
+ false: null
121
+ }
122
+ } });
123
+ function T({ gap: e = "2", align: t = "stretch", justify: n = "start", wrap: r = !1, ...a }) {
124
+ return /* @__PURE__ */ i("div", {
125
+ ...a,
126
+ "data-imf-ui-component": "Row",
127
+ className: w({
128
+ gap: e,
129
+ align: t,
130
+ justify: n,
131
+ wrap: r,
132
+ className: a.className
133
+ })
134
+ });
135
+ }
136
+ var E = {
137
+ alignCenter: "imf-ui-stack-module-alignCenter",
138
+ alignEnd: "imf-ui-stack-module-alignEnd",
139
+ alignStart: "imf-ui-stack-module-alignStart",
140
+ alignStretch: "imf-ui-stack-module-alignStretch",
141
+ gap0: "imf-ui-stack-module-gap0",
142
+ gap1: "imf-ui-stack-module-gap1",
143
+ gap10: "imf-ui-stack-module-gap10",
144
+ gap2: "imf-ui-stack-module-gap2",
145
+ gap3: "imf-ui-stack-module-gap3",
146
+ gap4: "imf-ui-stack-module-gap4",
147
+ gap5: "imf-ui-stack-module-gap5",
148
+ gap6: "imf-ui-stack-module-gap6",
149
+ gap7: "imf-ui-stack-module-gap7",
150
+ gap8: "imf-ui-stack-module-gap8",
151
+ gap9: "imf-ui-stack-module-gap9",
152
+ justifyAround: "imf-ui-stack-module-justifyAround",
153
+ justifyBetween: "imf-ui-stack-module-justifyBetween",
154
+ justifyCenter: "imf-ui-stack-module-justifyCenter",
155
+ justifyEnd: "imf-ui-stack-module-justifyEnd",
156
+ justifyEvenly: "imf-ui-stack-module-justifyEvenly",
157
+ justifyStart: "imf-ui-stack-module-justifyStart",
158
+ root: "imf-ui-stack-module-root"
159
+ }, D = r(E.root, { variants: {
160
+ gap: {
161
+ 0: E.gap0,
162
+ 1: E.gap1,
163
+ 2: E.gap2,
164
+ 3: E.gap3,
165
+ 4: E.gap4,
166
+ 5: E.gap5,
167
+ 6: E.gap6,
168
+ 7: E.gap7,
169
+ 8: E.gap8,
170
+ 9: E.gap9,
171
+ 10: E.gap10
172
+ },
173
+ align: {
174
+ start: E.alignStart,
175
+ center: E.alignCenter,
176
+ end: E.alignEnd,
177
+ stretch: E.alignStretch
178
+ },
179
+ justify: {
180
+ start: E.justifyStart,
181
+ center: E.justifyCenter,
182
+ end: E.justifyEnd,
183
+ between: E.justifyBetween,
184
+ around: E.justifyAround,
185
+ evenly: E.justifyEvenly
186
+ }
187
+ } });
188
+ function O({ gap: e = "4", align: t = "stretch", justify: n = "start", ...r }) {
189
+ return /* @__PURE__ */ i("div", {
190
+ ...r,
191
+ "data-imf-ui-component": "Stack",
192
+ className: D({
193
+ gap: e,
194
+ align: t,
195
+ justify: n,
196
+ className: r.className
197
+ })
198
+ });
199
+ }
200
+ var k = {
201
+ indicator: "imf-ui-tabs-module-indicator",
202
+ list: "imf-ui-tabs-module-list",
203
+ listFill: "imf-ui-tabs-module-listFill",
204
+ panel: "imf-ui-tabs-module-panel",
205
+ panelViewport: "imf-ui-tabs-module-panelViewport",
206
+ root: "imf-ui-tabs-module-root",
207
+ tab: "imf-ui-tabs-module-tab"
208
+ }, A = /* @__PURE__ */ e({
209
+ Indicator: () => H,
210
+ List: () => B,
211
+ Panel: () => W,
212
+ PanelViewport: () => U,
213
+ Root: () => z,
214
+ Tab: () => V
215
+ }), j = r(k.list, { variants: { fill: {
216
+ true: k.listFill,
217
+ false: null
218
+ } } }), M = r(k.root), N = r(k.tab), P = r(k.indicator), F = r(k.panelViewport), I = r(k.panel);
219
+ function L(e, t) {
220
+ typeof e == "function" ? e(t) : e && (e.current = t);
221
+ }
222
+ function R(e) {
223
+ let t = new ResizeObserver(() => {
224
+ let t = e.dataset.orientation === "vertical" ? e.scrollHeight > e.clientHeight : e.scrollWidth > e.clientWidth;
225
+ e.toggleAttribute("data-overflowing", t);
226
+ }), n = () => {
227
+ t.disconnect(), t.observe(e);
228
+ for (let n of e.children) t.observe(n);
229
+ }, r = new MutationObserver(n);
230
+ return r.observe(e, { childList: !0 }), n(), () => {
231
+ t.disconnect(), r.disconnect();
232
+ };
233
+ }
234
+ function z(e) {
235
+ return /* @__PURE__ */ i(u.Root, {
236
+ ...e,
237
+ "data-imf-ui-component": "Tabs.Root",
238
+ className: (n) => M({ className: t(e.className, n) })
239
+ });
240
+ }
241
+ z.displayName = "Tabs.Root";
242
+ function B({ fill: e = !1, ref: n, ...r }) {
243
+ let a = o((e) => {
244
+ if (!e) return;
245
+ L(n, e);
246
+ let t = R(e);
247
+ return () => {
248
+ t(), L(n, null);
249
+ };
250
+ }, [n]);
251
+ return /* @__PURE__ */ i(u.List, {
252
+ ...r,
253
+ ref: a,
254
+ "data-imf-ui-component": "Tabs.List",
255
+ className: (n) => j({
256
+ fill: e,
257
+ className: t(r.className, n)
258
+ })
259
+ });
260
+ }
261
+ B.displayName = "Tabs.List";
262
+ function V(e) {
263
+ return /* @__PURE__ */ i(u.Tab, {
264
+ ...e,
265
+ "data-imf-ui-component": "Tabs.Tab",
266
+ className: (n) => N({ className: t(e.className, n) })
267
+ });
268
+ }
269
+ V.displayName = "Tabs.Tab";
270
+ function H(e) {
271
+ return /* @__PURE__ */ i(u.Indicator, {
272
+ ...e,
273
+ "data-imf-ui-component": "Tabs.Indicator",
274
+ className: (n) => P({ className: t(e.className, n) })
275
+ });
276
+ }
277
+ H.displayName = "Tabs.Indicator";
278
+ function U(e) {
279
+ return /* @__PURE__ */ i("div", {
280
+ ...e,
281
+ "data-imf-ui-component": "Tabs.PanelViewport",
282
+ className: F({ className: e.className })
283
+ });
284
+ }
285
+ U.displayName = "Tabs.PanelViewport";
286
+ function W(e) {
287
+ return /* @__PURE__ */ i(u.Panel, {
288
+ ...e,
289
+ "data-imf-ui-component": "Tabs.Panel",
290
+ className: (n) => I({ className: t(e.className, n) })
291
+ });
292
+ }
293
+ W.displayName = "Tabs.Panel";
294
+ //#endregion
295
+ export { z as a, O as c, b as d, h as f, U as i, T as l, f as m, B as n, V as o, g as p, W as r, A as s, H as t, S as u };
@@ -0,0 +1,4 @@
1
+ import { IconComponent } from '../icons';
2
+ export type Status = "info" | "positive" | "warning" | "negative";
3
+ /** The glyph each status shows wherever a component marks it with an icon. */
4
+ export declare const statusGlyphs: Record<Status, IconComponent>;
package/dist/vite.js CHANGED
@@ -1,4 +1,4 @@
1
- import { n as e } from "./paths-Oi0v8x-w.js";
1
+ import { n as e } from "./paths-B5Ht3ETc.js";
2
2
  import { readFileSync as t, readdirSync as n, realpathSync as r } from "node:fs";
3
3
  import { dirname as i, join as a, resolve as o, sep as s } from "node:path";
4
4
  import { fileURLToPath as c } from "node:url";
@@ -54,7 +54,7 @@ function h() {
54
54
  //#region src/vite/readable-css-module-names.ts
55
55
  function g(e, t) {
56
56
  let { lightningcss: n, modules: r, transformer: i } = e.css ?? {}, a = n?.cssModules;
57
- if (!(typeof a == "boolean" || r === !1) && !a?.pattern && !(typeof r == "object" && r.generateScopedName)) return i === "postcss" ? { css: { modules: { generateScopedName: t } } } : { css: {
57
+ if (typeof a != "boolean" && r !== !1 && !a?.pattern && !(typeof r == "object" && r.generateScopedName)) return i === "postcss" ? { css: { modules: { generateScopedName: t } } } : { css: {
58
58
  transformer: "lightningcss",
59
59
  lightningcss: { cssModules: { pattern: t } }
60
60
  } };
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { n as e, r as t, t as n } from "./paths-Oi0v8x-w.js";
2
+ import { n as e, r as t, t as n } from "./paths-B5Ht3ETc.js";
3
3
  import { chmodSync as r, cpSync as i, existsSync as a, lstatSync as o, mkdirSync as s, readFileSync as c, readdirSync as l, readlinkSync as u, realpathSync as d, rmSync as f, symlinkSync as p, writeFileSync as m } from "node:fs";
4
4
  import { dirname as h, relative as g, resolve as _ } from "node:path";
5
5
  import { Command as ee, Option as te } from "commander";
@@ -55,8 +55,12 @@ With the hooks installed, the agent is pointed at the router at the start of eve
55
55
  picks it up from the skill's description; invoke it by name when it does not.
56
56
 
57
57
  The router answers library questions from the packaged user guides and hands other tasks to a skill. Setup, audit, and UX
58
- work from `imf-web-ui-conventions`, a knowledge skill that holds the ImFusion frontend conventions. Solid outlines are the
59
- skills you run; dashed boxes are knowledge the agent reads:
58
+ work from `imf-web-ui-conventions`, a knowledge skill that holds the ImFusion frontend conventions. Every skill
59
+ you run first reads `imf-web-ui-user-profile`. On the first run it asks a few questions about your name, your
60
+ background, your experience, how much explanation you want, and how you like to work, then saves the answers to
61
+ `~/.config/imfusion/web-ui/consumer-profile.md` if you agree. Say "change my profile" to answer again.
62
+
63
+ Solid outlines are the skills you run; dashed boxes are knowledge the agent reads:
60
64
 
61
65
  <ConsumerLlmFrameworkDiagram />
62
66
 
@@ -83,7 +87,8 @@ The hooks put the agent on the right skill at the right moment and ask it to ver
83
87
  ## Keeping it current
84
88
 
85
89
  Ask the agent to update the library, for example "Update @imfusion/web-ui". That runs `/imf-web-ui-update`, which installs
86
- the newer package and refreshes the skills, hook scripts, and registrations to match it.
90
+ the newer package and refreshes the skills, hook scripts, and registrations to match it. It then reports what the new
91
+ releases change for your code and offers `/imf-web-ui-audit full` as a wider check of the project.
87
92
 
88
93
  To do the same by hand, update the package, then run:
89
94
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@imfusion/web-ui",
3
- "version": "0.8.1-dev.3.g40eaad1c",
3
+ "version": "0.8.1-dev.36.g641eac85",
4
4
  "description": "The official Web UI component library for ImFusion web apps",
5
5
  "author": "ImFusion GmbH",
6
6
  "homepage": "https://imfusion.com",
@@ -62,8 +62,8 @@
62
62
  "scripts": {
63
63
  "dev": "tsx scripts/dev.ts",
64
64
  "dev:host": "tsx scripts/dev.ts --host",
65
- "dev:lib": "concurrently -n codegen,lib -c yellow,blue \"npm run codegen:watch\" \"vite build --watch\"",
66
- "build": "npm run codegen && rm -rf dist && vite build && chmod +x dist/web-ui-cli.js && npm run codegen:docgen && npm run codegen:llms && npm run codegen:tokens",
65
+ "dev:lib": "concurrently -n codegen,lib -c yellow,blue \"npm run codegen:watch\" \"vp build --watch\"",
66
+ "build": "npm run codegen && rm -rf dist && vp build && chmod +x dist/web-ui-cli.js && npm run codegen:docgen && npm run codegen:llms && npm run codegen:tokens",
67
67
  "build:storybook": "npm run codegen:storybook && storybook build",
68
68
  "ci:status": "teamcity run list --job WebSDK_WebUI_BuildTest --limit 3 --json=id,number,status,state,branchName,buildType.name,triggered.type,triggered.user.name,startDate,finishDate,webUrl | tsx scripts/ci-status.ts",
69
69
  "storybook": "npm run codegen:storybook && storybook dev -p 6006 --no-open --ci",
@@ -74,32 +74,31 @@
74
74
  "codegen:docgen": "tsx src/docgen/gen-docgen.ts",
75
75
  "codegen:llms": "tsx src/llms/gen-llms.ts",
76
76
  "codegen:tokens": "tsx src/llms/gen-tokens.ts",
77
- "verify:format": "prettier --check . --ignore-path .gitignore --ignore-path .prettierignore --ignore-path $(git rev-parse --path-format=absolute --git-path info/exclude)",
78
- "verify:lint": "eslint . --cache --max-warnings=0",
77
+ "verify:format": "vp fmt --check . --ignore-path .gitignore --ignore-path $(git rev-parse --path-format=absolute --git-path info/exclude)",
78
+ "verify:lint": "vp lint . --max-warnings=0",
79
79
  "verify:typecheck": "npm run codegen && tsc -p tsconfig.json --noEmit && tsc -p tsconfig.lib.json --noEmit && tsc -p .storybook/tsconfig.json --noEmit",
80
- "verify:tests": "vitest run",
80
+ "verify:tests": "vp test run",
81
81
  "verify:knip": "knip",
82
82
  "verify:deps": "tsx scripts/check-pinned-dependencies.ts",
83
83
  "verify:icons": "tsx scripts/verify/icons-public-api.ts",
84
84
  "verify:changelog": "tsx scripts/verify/changelog.ts",
85
- "verify:staged": "tsx scripts/verify/staged.ts",
85
+ "verify:generated": "tsx scripts/verify/generated.ts",
86
86
  "verify:full": "tsx scripts/verify/full.ts",
87
- "format": "prettier --write .",
88
- "lint": "eslint . --cache --fix",
89
- "lint:inspect": "npx @eslint/config-inspector@latest",
90
- "test:unit": "vitest run --project unit",
91
- "test:stories": "vitest run --project storybook",
92
- "test:watch": "vitest",
87
+ "format": "vp fmt .",
88
+ "lint": "vp lint . --fix",
89
+ "test:unit": "vp test run --project unit",
90
+ "test:stories": "vp test run --project storybook",
91
+ "test:watch": "vp test",
93
92
  "skills:eval": "tsx src/llms/evals/runner/run.ts",
94
- "skills:eval:dev": "WEB_UI_SKILL_EVAL_ROOT=/private/tmp/web-ui-dev-skill-evals WEB_UI_SKILL_EVAL_RESULTS_DIR=.agents/evals/results WEB_UI_SKILL_EVAL_REPORT_PATH=.agents/evals/REPORT.md WEB_UI_SKILL_EVAL_SKILL_FAMILY=web-ui-dev WEB_UI_SKILL_EVAL_WORKSPACE_LABEL='development repository' tsx src/llms/evals/runner/run.ts --scenarios-dir .agents/evals/scenarios --setup .agents/evals/setup-env.sh",
93
+ "skills:eval:dev": "WEB_UI_SKILL_EVAL_SCENARIOS_DIR=.agents/evals/scenarios WEB_UI_SKILL_EVAL_SKILLS_DIR=.agents/skills WEB_UI_SKILL_EVAL_ROOT=/private/tmp/web-ui-dev-skill-evals WEB_UI_SKILL_EVAL_RESULTS_DIR=.agents/evals/results WEB_UI_SKILL_EVAL_REPORT_PATH=.agents/evals/REPORT.md WEB_UI_SKILL_EVAL_SKILL_FAMILY=web-ui-dev WEB_UI_SKILL_EVAL_WORKSPACE_LABEL='development repository' tsx src/llms/evals/runner/run.ts --scenarios-dir .agents/evals/scenarios --setup .agents/evals/setup-env.sh",
95
94
  "skills:eval:compare": "tsx src/llms/evals/runner/compare.ts",
96
95
  "skills:eval:affected": "tsx src/llms/evals/runner/affected.ts",
97
96
  "skills:eval:report": "tsx src/llms/evals/runner/report.ts",
98
97
  "git:config": "git config core.hooksPath .githooks && git config pull.rebase true && git config merge.ff only"
99
98
  },
100
99
  "peerDependencies": {
101
- "@imfusion/sdk": "^1.0.0 || >=1.1.1-dev.0 <1.1.1",
102
- "@imfusion/sdk-react": "^1.0.0 || >=1.1.1-dev.0 <1.1.1",
100
+ "@imfusion/sdk": "*",
101
+ "@imfusion/sdk-react": "*",
103
102
  "@tanstack/highlight": "^0.1.0",
104
103
  "react": "^19.0.0",
105
104
  "react-dom": "^19.0.0"
@@ -123,15 +122,13 @@
123
122
  "iconoir-react": "7.12.1"
124
123
  },
125
124
  "devDependencies": {
126
- "@eslint/compat": "1.4.1",
127
- "@eslint/js": "9.39.4",
128
125
  "@imfusion/sdk": "1.0.0",
129
126
  "@imfusion/sdk-react": "1.0.0",
130
- "@storybook/addon-a11y": "10.6.0",
131
- "@storybook/addon-docs": "10.6.0",
132
- "@storybook/addon-mcp": "10.6.0",
133
- "@storybook/addon-vitest": "10.6.0",
134
- "@storybook/react-vite": "10.6.0",
127
+ "@storybook/addon-a11y": "10.6.2",
128
+ "@storybook/addon-docs": "10.6.2",
129
+ "@storybook/addon-mcp": "10.6.2",
130
+ "@storybook/addon-vitest": "10.6.2",
131
+ "@storybook/react-vite": "10.6.2",
135
132
  "@tanstack/highlight": "0.1.0",
136
133
  "@tanstack/react-pacer": "0.22.1",
137
134
  "@types/culori": "4.0.1",
@@ -140,17 +137,9 @@
140
137
  "@types/react": "19.2.14",
141
138
  "@types/react-dom": "19.2.3",
142
139
  "@vitejs/plugin-react": "6.0.1",
143
- "@vitest/browser-playwright": "4.1.6",
140
+ "@vitest/browser-playwright": "5.0.3",
144
141
  "concurrently": "9.2.1",
145
142
  "culori": "4.0.2",
146
- "eslint": "9.39.4",
147
- "eslint-plugin-jsx-a11y": "6.10.2",
148
- "eslint-plugin-mdx": "3.7.0",
149
- "eslint-plugin-react": "7.37.5",
150
- "eslint-plugin-react-hooks": "5.2.0",
151
- "eslint-plugin-react-refresh": "0.4.26",
152
- "globals": "15.15.0",
153
- "jiti": "2.7.0",
154
143
  "knip": "6.14.2",
155
144
  "lightningcss": "1.32.0",
156
145
  "mermaid": "12.0.0",
@@ -158,12 +147,20 @@
158
147
  "prettier": "3.8.3",
159
148
  "react-docgen-typescript": "2.4.0",
160
149
  "remark-gfm": "4.0.1",
161
- "storybook": "10.6.0",
150
+ "storybook": "10.6.2",
162
151
  "tsx": "4.21.0",
163
152
  "typescript": "6.0.3",
164
- "typescript-eslint": "8.59.3",
165
- "vite": "8.0.10",
153
+ "vite": "npm:@voidzero-dev/vite-plus-core@1.1.0",
166
154
  "vite-plugin-dts": "5.0.0",
167
- "vitest": "4.1.6"
155
+ "vite-plus": "1.1.0",
156
+ "vitest": "5.0.3"
157
+ },
158
+ "overrides": {
159
+ "vite": "npm:@voidzero-dev/vite-plus-core@1.1.0",
160
+ "vitest": "5.0.3",
161
+ "storybook": {
162
+ ".": "$storybook",
163
+ "vite-plus": "$vite-plus"
164
+ }
168
165
  }
169
166
  }