@imfusion/web-ui 0.8.1-dev.2.g74f81c31 → 0.8.1-dev.20.g50b02289
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 +51 -1
- package/README.md +17 -17
- package/dist/components/account-card/account-card.d.ts +42 -12
- 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/index.js +1256 -1172
- 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/separator-BAxxttef.js +26 -0
- package/dist/slider-gyIYWSy3.js +116 -0
- package/dist/style.css +1 -1
- package/dist/tabs-9d4oaDwZ.js +295 -0
- package/dist/utils/break-hints.d.ts +3 -0
- package/dist/utils/status-glyphs.d.ts +4 -0
- package/dist/vite.js +1 -1
- package/dist/web-ui-cli.js +1 -1
- package/docs/user-guide/AgentTooling.mdx +8 -3
- package/package.json +1 -1
- package/src/docgen/doc.gen.json +188 -20
- package/src/llms/llms.gen.txt +9 -3
- 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 +1 -0
- 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/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/dist/tabs-BS6rqrrA.js +0 -398
- /package/dist/{paths-Oi0v8x-w.js → paths-CUyf9wjm.js} +0 -0
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
import { t as e } from "./chunk-DmhlhrBa.js";
|
|
2
|
+
import { l as t, u as n } from "./slider-gyIYWSy3.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-CUyf9wjm.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";
|
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-CUyf9wjm.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