@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.
- package/CHANGELOG.md +89 -0
- package/README.md +26 -18
- package/dist/{code-D2lwxHgd.js → code-DBIxhqGE.js} +3 -3
- package/dist/components/card/card.d.ts +15 -1
- package/dist/components/field/field.d.ts +5 -2
- package/dist/components/slider/slider.d.ts +11 -1
- package/dist/components/typo/typo.d.ts +20 -11
- package/dist/{icons-CaGCCwG-.js → icons-CM68Ql5d.js} +1 -1
- package/dist/icons.js +1 -1
- package/dist/index.js +1381 -1345
- package/dist/integrations/code-highlight.js +6 -4
- package/dist/integrations/frame-selection/frame-selection-view.d.ts +24 -0
- package/dist/integrations/frame-selection/frame-selection.d.ts +21 -0
- package/dist/integrations/frame-selection/frame-selection.meta.d.ts +2 -0
- package/dist/integrations/frame-selection/index.d.ts +2 -0
- package/dist/integrations/frame-selection.js +121 -0
- package/dist/integrations/image-display-options.js +71 -70
- package/dist/llms/evals/runner/config.d.ts +1 -0
- package/dist/llms/gen-tokens.d.ts +1 -1
- package/dist/{paths-Oi0v8x-w.js → paths-B5Ht3ETc.js} +2 -2
- package/dist/separator-lzz4A3x_.js +26 -0
- package/dist/slider-Cqpreglu.js +116 -0
- package/dist/style.css +1 -1
- package/dist/tabs-Dsfp8Ogj.js +295 -0
- package/dist/utils/status-glyphs.d.ts +4 -0
- package/dist/vite.js +2 -2
- package/dist/web-ui-cli.js +1 -1
- package/docs/user-guide/AgentTooling.mdx +8 -3
- package/package.json +33 -36
- package/src/docgen/doc.gen.json +149 -2
- package/src/llms/llms.gen.txt +8 -2
- package/src/llms/skills/imf-web-ui/SKILL.md +2 -0
- package/src/llms/skills/imf-web-ui-audit/SKILL.md +5 -3
- package/src/llms/skills/imf-web-ui-components/SKILL.md +3 -1
- package/src/llms/skills/imf-web-ui-conventions/templates/AUDIT_CHECKLIST.md +4 -2
- package/src/llms/skills/imf-web-ui-conventions/topics/authentication.md +2 -1
- package/src/llms/skills/imf-web-ui-conventions/topics/data.md +5 -3
- package/src/llms/skills/imf-web-ui-conventions/topics/git.md +2 -3
- package/src/llms/skills/imf-web-ui-conventions/topics/npm-project.md +3 -4
- package/src/llms/skills/imf-web-ui-conventions/topics/styling.md +4 -2
- package/src/llms/skills/imf-web-ui-conventions/topics/tooling.md +66 -28
- package/src/llms/skills/imf-web-ui-conventions/topics/typescript.md +14 -0
- package/src/llms/skills/imf-web-ui-setup/SKILL.md +2 -0
- package/src/llms/skills/imf-web-ui-update/SKILL.md +37 -6
- package/src/llms/skills/imf-web-ui-user-profile/SKILL.md +95 -0
- package/src/llms/skills/imf-web-ui-ux/SKILL.md +2 -0
- package/src/llms/tokens.gen.json +3 -3
- package/dist/tabs-BS6rqrrA.js +0 -398
- /package/dist/{meta-j-7HGrWv.js → meta-V_KyLeGn.js} +0 -0
- /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 };
|
package/dist/vite.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as e } from "./paths-
|
|
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 (
|
|
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
|
} };
|
package/dist/web-ui-cli.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { n as e, r as t, t as n } from "./paths-
|
|
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.
|
|
59
|
-
|
|
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
|
+
"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\" \"
|
|
66
|
-
"build": "npm run codegen && rm -rf dist &&
|
|
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": "
|
|
78
|
-
"verify:lint": "
|
|
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": "
|
|
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:
|
|
85
|
+
"verify:generated": "tsx scripts/verify/generated.ts",
|
|
86
86
|
"verify:full": "tsx scripts/verify/full.ts",
|
|
87
|
-
"format": "
|
|
88
|
-
"lint": "
|
|
89
|
-
"
|
|
90
|
-
"test:
|
|
91
|
-
"test:
|
|
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": "
|
|
102
|
-
"@imfusion/sdk-react": "
|
|
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.
|
|
131
|
-
"@storybook/addon-docs": "10.6.
|
|
132
|
-
"@storybook/addon-mcp": "10.6.
|
|
133
|
-
"@storybook/addon-vitest": "10.6.
|
|
134
|
-
"@storybook/react-vite": "10.6.
|
|
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": "
|
|
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.
|
|
150
|
+
"storybook": "10.6.2",
|
|
162
151
|
"tsx": "4.21.0",
|
|
163
152
|
"typescript": "6.0.3",
|
|
164
|
-
"
|
|
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
|
-
"
|
|
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
|
}
|