@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,95 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: imf-web-ui-user-profile
|
|
3
|
+
description:
|
|
4
|
+
"Read or create the person's profile: technical background, experience, how they want things explained, and how they like
|
|
5
|
+
to work. Invoke it first in every Web UI skill, and when the person asks to change their profile or how the agent explains
|
|
6
|
+
or paces work."
|
|
7
|
+
user-invocable: false
|
|
8
|
+
allowed-tools: Bash Read Write
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Fit the work to the person
|
|
12
|
+
|
|
13
|
+
The profile records who the person is and how they learn, so every Web UI workflow explains what they need and paces the work
|
|
14
|
+
the way they like. Read it once per session; later skills in the same session reuse what is already loaded.
|
|
15
|
+
|
|
16
|
+
## Read the profile
|
|
17
|
+
|
|
18
|
+
Resolve the profile path with the shell, then read that exact path:
|
|
19
|
+
|
|
20
|
+
```sh
|
|
21
|
+
printf '%s\n' "${XDG_CONFIG_HOME:-$HOME/.config}/imfusion/web-ui/consumer-profile.md"
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
The profile sits outside the project: it belongs to the person, never to the repository, so read-only promises such as the
|
|
25
|
+
audit's still hold when this skill writes it.
|
|
26
|
+
|
|
27
|
+
When the file exists, apply it and return to the calling workflow without comment. When it is missing, run the interview
|
|
28
|
+
before the workflow starts. When the router skips companions for a small task, do the task first and offer the interview
|
|
29
|
+
afterwards.
|
|
30
|
+
|
|
31
|
+
## Interview
|
|
32
|
+
|
|
33
|
+
Open with one question: may you ask six short questions and save the answers to the profile path, so every later workflow
|
|
34
|
+
fits them and they are never asked again? Mention that they can decline any single question. On no, use the defaults below
|
|
35
|
+
for this session and do not offer the interview again in it.
|
|
36
|
+
|
|
37
|
+
On yes, ask one question per message, in plain prose, and wait for each answer:
|
|
38
|
+
|
|
39
|
+
1. What is your name?
|
|
40
|
+
2. What is your technical background: the languages and tools you work with?
|
|
41
|
+
3. How much have you built for the web, for example with React, HTML, and CSS?
|
|
42
|
+
4. Beyond Git, how comfortable are you with npm and the terminal?
|
|
43
|
+
5. How much explanation do you want: just the results, a short gloss for new terms, or the reasoning behind each step?
|
|
44
|
+
6. How do you like to work: pause after every step, pause after each finished piece, or work freely and stop only before a
|
|
45
|
+
commit?
|
|
46
|
+
|
|
47
|
+
Derive the levels from the answers; ask a short follow-up only when an answer fits no level. The person can decline any
|
|
48
|
+
question: its field stays out of the file, and its default applies: `some`, `comfortable`, `terms`, `slice`.
|
|
49
|
+
|
|
50
|
+
## The file
|
|
51
|
+
|
|
52
|
+
Show the profile below before writing it. The person can correct or remove any line, or reject the whole profile; on a
|
|
53
|
+
rejection, save nothing and use the defaults for this session. After they confirm, write it and name its path so they can
|
|
54
|
+
edit or delete it later:
|
|
55
|
+
|
|
56
|
+
```markdown
|
|
57
|
+
---
|
|
58
|
+
name: <their name>
|
|
59
|
+
frontend: none | some | seasoned
|
|
60
|
+
tooling: new | comfortable
|
|
61
|
+
explanation: results | terms | reasoning
|
|
62
|
+
pace: step | slice | commit
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Background
|
|
66
|
+
|
|
67
|
+
<their answer to question 2, in their words>
|
|
68
|
+
|
|
69
|
+
## Notes
|
|
70
|
+
|
|
71
|
+
- <lasting preferences learned later>
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
When the write fails, keep the answers for this session. When the person later states a lasting preference about how to work
|
|
75
|
+
with them, such as a language, a term they want avoided, or a tool they already know, add it under `Notes` and tell them.
|
|
76
|
+
When they ask to change their profile, run the interview again with the current answers as defaults.
|
|
77
|
+
|
|
78
|
+
## Apply the profile
|
|
79
|
+
|
|
80
|
+
The fields apply independently.
|
|
81
|
+
|
|
82
|
+
- **Name**: address the person by name.
|
|
83
|
+
- **Background**: explain by analogy to what they already know, such as a component compared to a class for a Java developer.
|
|
84
|
+
- **Frontend `none` or `some`**: give a one-line gloss the first time a frontend term appears, such as component, prop,
|
|
85
|
+
design token, CSS layer, or Storybook. For `none`, also say what a finding means for the running app.
|
|
86
|
+
- **Tooling `new`**: gloss tooling terms on first use, such as lockfile, dist-tag, prerelease, hook, harness, or the
|
|
87
|
+
`AGENTS.md` fence; say in one plain sentence what each command does before it runs, read-only checks included; and before
|
|
88
|
+
an approval question, say what yes changes and how to undo it.
|
|
89
|
+
- **Explanation**: `results` adds nothing beyond what the experience levels call for; `terms` glosses every new term;
|
|
90
|
+
`reasoning` also says why each step happens, and after a report block, what happened and what comes next.
|
|
91
|
+
- **Pace**: `step` ends the reply after each step or phase of the calling workflow and waits for a go-ahead; `slice` pauses
|
|
92
|
+
after each working piece; `commit` runs freely between the workflow's own approval points.
|
|
93
|
+
|
|
94
|
+
Pace adds pauses on top of the calling workflow's approval gates and keeps every one of them. Put explanations around report
|
|
95
|
+
blocks and approval questions, never inside them.
|
|
@@ -10,6 +10,8 @@ description:
|
|
|
10
10
|
Use this skill for screen-level decisions. Verify component APIs with `imf-web-ui-components`; put code and styling rules in
|
|
11
11
|
`imf-web-ui-conventions`.
|
|
12
12
|
|
|
13
|
+
Invoke `imf-web-ui-user-profile` first and explain at its levels throughout.
|
|
14
|
+
|
|
13
15
|
The identity index marks components as stable or experimental. Experimental components are usable, but prefer wrapping one
|
|
14
16
|
when it is used across many call sites so API movement stays local.
|
|
15
17
|
|
package/dist/tabs-BS6rqrrA.js
DELETED
|
@@ -1,398 +0,0 @@
|
|
|
1
|
-
import { t as e } from "./chunk-DmhlhrBa.js";
|
|
2
|
-
import { cva as t } from "class-variance-authority";
|
|
3
|
-
import { jsx as n } from "react/jsx-runtime";
|
|
4
|
-
import { Children as r, useCallback as i } from "react";
|
|
5
|
-
import { Slider as a } from "@base-ui/react/slider";
|
|
6
|
-
import { Switch as o } from "@base-ui/react/switch";
|
|
7
|
-
import { Toggle as s } from "@base-ui/react/toggle";
|
|
8
|
-
import { ToggleGroup as c } from "@base-ui/react/toggle-group";
|
|
9
|
-
import { Tabs as l } from "@base-ui/react/tabs";
|
|
10
|
-
//#region src/utils/resolve-state-props.ts
|
|
11
|
-
function u(e, t) {
|
|
12
|
-
return e instanceof Function ? e(t) : e;
|
|
13
|
-
}
|
|
14
|
-
function d(e, t) {
|
|
15
|
-
return u(e, t);
|
|
16
|
-
}
|
|
17
|
-
function f(e, t) {
|
|
18
|
-
return u(e, t);
|
|
19
|
-
}
|
|
20
|
-
var p = {
|
|
21
|
-
control: "imf-ui-slider-module-control",
|
|
22
|
-
indicator: "imf-ui-slider-module-indicator",
|
|
23
|
-
label: "imf-ui-slider-module-label",
|
|
24
|
-
root: "imf-ui-slider-module-root",
|
|
25
|
-
thumb: "imf-ui-slider-module-thumb",
|
|
26
|
-
track: "imf-ui-slider-module-track",
|
|
27
|
-
value: "imf-ui-slider-module-value"
|
|
28
|
-
}, m = /* @__PURE__ */ e({
|
|
29
|
-
Control: () => w,
|
|
30
|
-
Indicator: () => E,
|
|
31
|
-
Label: () => S,
|
|
32
|
-
Root: () => x,
|
|
33
|
-
Thumb: () => D,
|
|
34
|
-
Track: () => T,
|
|
35
|
-
Value: () => C
|
|
36
|
-
}), ee = t(p.root), h = t(p.label), g = t(p.value), _ = t(p.control), v = t(p.track), y = t(p.indicator), b = t(p.thumb);
|
|
37
|
-
function x({ value: e, defaultValue: t, onValueChange: r, onValueCommitted: i, min: o = 0, max: s = 100, step: c = 1, largeStep: l = 10, minStepsBetweenValues: u = 0, disabled: f = !1, orientation: p = "horizontal", name: m, form: h, locale: g, thumbAlignment: _ = "edge", thumbCollisionBehavior: v = "push", format: y, ...b }) {
|
|
38
|
-
return /* @__PURE__ */ n(a.Root, {
|
|
39
|
-
...b,
|
|
40
|
-
"data-imf-ui-component": "Slider.Root",
|
|
41
|
-
"data-orientation": p,
|
|
42
|
-
className: (e) => ee({ className: d(b.className, e) }),
|
|
43
|
-
value: e,
|
|
44
|
-
defaultValue: t,
|
|
45
|
-
onValueChange: r,
|
|
46
|
-
onValueCommitted: i,
|
|
47
|
-
min: o,
|
|
48
|
-
max: s,
|
|
49
|
-
step: c,
|
|
50
|
-
largeStep: l,
|
|
51
|
-
minStepsBetweenValues: u,
|
|
52
|
-
disabled: f,
|
|
53
|
-
orientation: p,
|
|
54
|
-
name: m,
|
|
55
|
-
form: h,
|
|
56
|
-
locale: g,
|
|
57
|
-
thumbAlignment: _,
|
|
58
|
-
thumbCollisionBehavior: v,
|
|
59
|
-
format: y
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
x.displayName = "Slider.Root";
|
|
63
|
-
function S(e) {
|
|
64
|
-
return /* @__PURE__ */ n(a.Label, {
|
|
65
|
-
...e,
|
|
66
|
-
"data-imf-ui-component": "Slider.Label",
|
|
67
|
-
className: (t) => h({ className: d(e.className, t) })
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
S.displayName = "Slider.Label";
|
|
71
|
-
function C({ children: e, ...t }) {
|
|
72
|
-
return /* @__PURE__ */ n(a.Value, {
|
|
73
|
-
...t,
|
|
74
|
-
"data-imf-ui-component": "Slider.Value",
|
|
75
|
-
className: (e) => g({ className: d(t.className, e) }),
|
|
76
|
-
children: e
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
C.displayName = "Slider.Value";
|
|
80
|
-
function w(e) {
|
|
81
|
-
return /* @__PURE__ */ n(a.Control, {
|
|
82
|
-
...e,
|
|
83
|
-
"data-imf-ui-component": "Slider.Control",
|
|
84
|
-
className: (t) => _({ className: d(e.className, t) })
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
w.displayName = "Slider.Control";
|
|
88
|
-
function T(e) {
|
|
89
|
-
return /* @__PURE__ */ n(a.Track, {
|
|
90
|
-
...e,
|
|
91
|
-
"data-imf-ui-component": "Slider.Track",
|
|
92
|
-
className: (t) => v({ className: d(e.className, t) })
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
T.displayName = "Slider.Track";
|
|
96
|
-
function E(e) {
|
|
97
|
-
return /* @__PURE__ */ n(a.Indicator, {
|
|
98
|
-
...e,
|
|
99
|
-
"data-imf-ui-component": "Slider.Indicator",
|
|
100
|
-
className: (t) => y({ className: d(e.className, t) })
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
E.displayName = "Slider.Indicator";
|
|
104
|
-
function D({ index: e, ...t }) {
|
|
105
|
-
return /* @__PURE__ */ n(a.Thumb, {
|
|
106
|
-
...t,
|
|
107
|
-
"data-imf-ui-component": "Slider.Thumb",
|
|
108
|
-
className: (e) => b({ className: d(t.className, e) }),
|
|
109
|
-
index: e
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
D.displayName = "Slider.Thumb";
|
|
113
|
-
var O = {
|
|
114
|
-
root: "imf-ui-switch-module-root",
|
|
115
|
-
thumb: "imf-ui-switch-module-thumb"
|
|
116
|
-
}, te = /* @__PURE__ */ e({
|
|
117
|
-
Root: () => A,
|
|
118
|
-
Thumb: () => j
|
|
119
|
-
}), ne = t(O.root), k = t(O.thumb);
|
|
120
|
-
function A(e) {
|
|
121
|
-
return /* @__PURE__ */ n(o.Root, {
|
|
122
|
-
...e,
|
|
123
|
-
"data-imf-ui-component": "Switch.Root",
|
|
124
|
-
className: (t) => ne({ className: d(e.className, t) })
|
|
125
|
-
});
|
|
126
|
-
}
|
|
127
|
-
A.displayName = "Switch.Root";
|
|
128
|
-
function j(e) {
|
|
129
|
-
return /* @__PURE__ */ n(o.Thumb, {
|
|
130
|
-
...e,
|
|
131
|
-
"data-imf-ui-component": "Switch.Thumb",
|
|
132
|
-
className: (t) => k({ className: d(e.className, t) })
|
|
133
|
-
});
|
|
134
|
-
}
|
|
135
|
-
j.displayName = "Switch.Thumb";
|
|
136
|
-
//#endregion
|
|
137
|
-
//#region src/components/toggle/toggle.tsx
|
|
138
|
-
var M = t({ root: "imf-ui-toggle-module-root" }.root), N = 2;
|
|
139
|
-
function P(e) {
|
|
140
|
-
let t = 0;
|
|
141
|
-
return r.forEach(e, (e) => {
|
|
142
|
-
typeof e == "string" || typeof e == "number" ? t += String(e).trim().length : e != null && typeof e != "boolean" && (t += N);
|
|
143
|
-
}), t;
|
|
144
|
-
}
|
|
145
|
-
function F({ style: e, children: t, ...r }) {
|
|
146
|
-
let i = {
|
|
147
|
-
"--glyph-count": P(t),
|
|
148
|
-
"--max-glyphs": N
|
|
149
|
-
};
|
|
150
|
-
return /* @__PURE__ */ n(s, {
|
|
151
|
-
...r,
|
|
152
|
-
"data-imf-ui-component": "Toggle",
|
|
153
|
-
style: (t) => ({
|
|
154
|
-
...i,
|
|
155
|
-
...f(e, t)
|
|
156
|
-
}),
|
|
157
|
-
className: (e) => M({ className: d(r.className, e) }),
|
|
158
|
-
children: t
|
|
159
|
-
});
|
|
160
|
-
}
|
|
161
|
-
//#endregion
|
|
162
|
-
//#region src/components/toggle-group/toggle-group.tsx
|
|
163
|
-
var I = t({ root: "imf-ui-toggle-group-module-root" }.root);
|
|
164
|
-
function L(e) {
|
|
165
|
-
return /* @__PURE__ */ n(c, {
|
|
166
|
-
...e,
|
|
167
|
-
"data-imf-ui-component": "ToggleGroup",
|
|
168
|
-
className: (t) => I({ className: d(e.className, t) })
|
|
169
|
-
});
|
|
170
|
-
}
|
|
171
|
-
var R = {
|
|
172
|
-
alignCenter: "imf-ui-row-module-alignCenter",
|
|
173
|
-
alignEnd: "imf-ui-row-module-alignEnd",
|
|
174
|
-
alignStart: "imf-ui-row-module-alignStart",
|
|
175
|
-
alignStretch: "imf-ui-row-module-alignStretch",
|
|
176
|
-
gap1: "imf-ui-row-module-gap1",
|
|
177
|
-
gap10: "imf-ui-row-module-gap10",
|
|
178
|
-
gap2: "imf-ui-row-module-gap2",
|
|
179
|
-
gap3: "imf-ui-row-module-gap3",
|
|
180
|
-
gap4: "imf-ui-row-module-gap4",
|
|
181
|
-
gap5: "imf-ui-row-module-gap5",
|
|
182
|
-
gap6: "imf-ui-row-module-gap6",
|
|
183
|
-
gap7: "imf-ui-row-module-gap7",
|
|
184
|
-
gap8: "imf-ui-row-module-gap8",
|
|
185
|
-
gap9: "imf-ui-row-module-gap9",
|
|
186
|
-
justifyAround: "imf-ui-row-module-justifyAround",
|
|
187
|
-
justifyBetween: "imf-ui-row-module-justifyBetween",
|
|
188
|
-
justifyCenter: "imf-ui-row-module-justifyCenter",
|
|
189
|
-
justifyEnd: "imf-ui-row-module-justifyEnd",
|
|
190
|
-
justifyEvenly: "imf-ui-row-module-justifyEvenly",
|
|
191
|
-
justifyStart: "imf-ui-row-module-justifyStart",
|
|
192
|
-
root: "imf-ui-row-module-root",
|
|
193
|
-
wrap: "imf-ui-row-module-wrap"
|
|
194
|
-
}, z = t(R.root, { variants: {
|
|
195
|
-
gap: {
|
|
196
|
-
1: R.gap1,
|
|
197
|
-
2: R.gap2,
|
|
198
|
-
3: R.gap3,
|
|
199
|
-
4: R.gap4,
|
|
200
|
-
5: R.gap5,
|
|
201
|
-
6: R.gap6,
|
|
202
|
-
7: R.gap7,
|
|
203
|
-
8: R.gap8,
|
|
204
|
-
9: R.gap9,
|
|
205
|
-
10: R.gap10
|
|
206
|
-
},
|
|
207
|
-
align: {
|
|
208
|
-
start: R.alignStart,
|
|
209
|
-
center: R.alignCenter,
|
|
210
|
-
end: R.alignEnd,
|
|
211
|
-
stretch: R.alignStretch
|
|
212
|
-
},
|
|
213
|
-
justify: {
|
|
214
|
-
start: R.justifyStart,
|
|
215
|
-
center: R.justifyCenter,
|
|
216
|
-
end: R.justifyEnd,
|
|
217
|
-
between: R.justifyBetween,
|
|
218
|
-
around: R.justifyAround,
|
|
219
|
-
evenly: R.justifyEvenly
|
|
220
|
-
},
|
|
221
|
-
wrap: {
|
|
222
|
-
true: R.wrap,
|
|
223
|
-
false: null
|
|
224
|
-
}
|
|
225
|
-
} });
|
|
226
|
-
function B({ gap: e = "2", align: t = "stretch", justify: r = "start", wrap: i = !1, ...a }) {
|
|
227
|
-
return /* @__PURE__ */ n("div", {
|
|
228
|
-
...a,
|
|
229
|
-
"data-imf-ui-component": "Row",
|
|
230
|
-
className: z({
|
|
231
|
-
gap: e,
|
|
232
|
-
align: t,
|
|
233
|
-
justify: r,
|
|
234
|
-
wrap: i,
|
|
235
|
-
className: a.className
|
|
236
|
-
})
|
|
237
|
-
});
|
|
238
|
-
}
|
|
239
|
-
var V = {
|
|
240
|
-
alignCenter: "imf-ui-stack-module-alignCenter",
|
|
241
|
-
alignEnd: "imf-ui-stack-module-alignEnd",
|
|
242
|
-
alignStart: "imf-ui-stack-module-alignStart",
|
|
243
|
-
alignStretch: "imf-ui-stack-module-alignStretch",
|
|
244
|
-
gap0: "imf-ui-stack-module-gap0",
|
|
245
|
-
gap1: "imf-ui-stack-module-gap1",
|
|
246
|
-
gap10: "imf-ui-stack-module-gap10",
|
|
247
|
-
gap2: "imf-ui-stack-module-gap2",
|
|
248
|
-
gap3: "imf-ui-stack-module-gap3",
|
|
249
|
-
gap4: "imf-ui-stack-module-gap4",
|
|
250
|
-
gap5: "imf-ui-stack-module-gap5",
|
|
251
|
-
gap6: "imf-ui-stack-module-gap6",
|
|
252
|
-
gap7: "imf-ui-stack-module-gap7",
|
|
253
|
-
gap8: "imf-ui-stack-module-gap8",
|
|
254
|
-
gap9: "imf-ui-stack-module-gap9",
|
|
255
|
-
justifyAround: "imf-ui-stack-module-justifyAround",
|
|
256
|
-
justifyBetween: "imf-ui-stack-module-justifyBetween",
|
|
257
|
-
justifyCenter: "imf-ui-stack-module-justifyCenter",
|
|
258
|
-
justifyEnd: "imf-ui-stack-module-justifyEnd",
|
|
259
|
-
justifyEvenly: "imf-ui-stack-module-justifyEvenly",
|
|
260
|
-
justifyStart: "imf-ui-stack-module-justifyStart",
|
|
261
|
-
root: "imf-ui-stack-module-root"
|
|
262
|
-
}, H = t(V.root, { variants: {
|
|
263
|
-
gap: {
|
|
264
|
-
0: V.gap0,
|
|
265
|
-
1: V.gap1,
|
|
266
|
-
2: V.gap2,
|
|
267
|
-
3: V.gap3,
|
|
268
|
-
4: V.gap4,
|
|
269
|
-
5: V.gap5,
|
|
270
|
-
6: V.gap6,
|
|
271
|
-
7: V.gap7,
|
|
272
|
-
8: V.gap8,
|
|
273
|
-
9: V.gap9,
|
|
274
|
-
10: V.gap10
|
|
275
|
-
},
|
|
276
|
-
align: {
|
|
277
|
-
start: V.alignStart,
|
|
278
|
-
center: V.alignCenter,
|
|
279
|
-
end: V.alignEnd,
|
|
280
|
-
stretch: V.alignStretch
|
|
281
|
-
},
|
|
282
|
-
justify: {
|
|
283
|
-
start: V.justifyStart,
|
|
284
|
-
center: V.justifyCenter,
|
|
285
|
-
end: V.justifyEnd,
|
|
286
|
-
between: V.justifyBetween,
|
|
287
|
-
around: V.justifyAround,
|
|
288
|
-
evenly: V.justifyEvenly
|
|
289
|
-
}
|
|
290
|
-
} });
|
|
291
|
-
function U({ gap: e = "4", align: t = "stretch", justify: r = "start", ...i }) {
|
|
292
|
-
return /* @__PURE__ */ n("div", {
|
|
293
|
-
...i,
|
|
294
|
-
"data-imf-ui-component": "Stack",
|
|
295
|
-
className: H({
|
|
296
|
-
gap: e,
|
|
297
|
-
align: t,
|
|
298
|
-
justify: r,
|
|
299
|
-
className: i.className
|
|
300
|
-
})
|
|
301
|
-
});
|
|
302
|
-
}
|
|
303
|
-
var W = {
|
|
304
|
-
indicator: "imf-ui-tabs-module-indicator",
|
|
305
|
-
list: "imf-ui-tabs-module-list",
|
|
306
|
-
listFill: "imf-ui-tabs-module-listFill",
|
|
307
|
-
panel: "imf-ui-tabs-module-panel",
|
|
308
|
-
panelViewport: "imf-ui-tabs-module-panelViewport",
|
|
309
|
-
root: "imf-ui-tabs-module-root",
|
|
310
|
-
tab: "imf-ui-tabs-module-tab"
|
|
311
|
-
}, G = /* @__PURE__ */ e({
|
|
312
|
-
Indicator: () => Z,
|
|
313
|
-
List: () => Y,
|
|
314
|
-
Panel: () => $,
|
|
315
|
-
PanelViewport: () => Q,
|
|
316
|
-
Root: () => J,
|
|
317
|
-
Tab: () => X
|
|
318
|
-
}), K = t(W.list, { variants: { fill: {
|
|
319
|
-
true: W.listFill,
|
|
320
|
-
false: null
|
|
321
|
-
} } }), re = t(W.root), ie = t(W.tab), ae = t(W.indicator), oe = t(W.panelViewport), se = t(W.panel);
|
|
322
|
-
function q(e, t) {
|
|
323
|
-
typeof e == "function" ? e(t) : e && (e.current = t);
|
|
324
|
-
}
|
|
325
|
-
function ce(e) {
|
|
326
|
-
let t = new ResizeObserver(() => {
|
|
327
|
-
let t = e.dataset.orientation === "vertical" ? e.scrollHeight > e.clientHeight : e.scrollWidth > e.clientWidth;
|
|
328
|
-
e.toggleAttribute("data-overflowing", t);
|
|
329
|
-
}), n = () => {
|
|
330
|
-
t.disconnect(), t.observe(e);
|
|
331
|
-
for (let n of e.children) t.observe(n);
|
|
332
|
-
}, r = new MutationObserver(n);
|
|
333
|
-
return r.observe(e, { childList: !0 }), n(), () => {
|
|
334
|
-
t.disconnect(), r.disconnect();
|
|
335
|
-
};
|
|
336
|
-
}
|
|
337
|
-
function J(e) {
|
|
338
|
-
return /* @__PURE__ */ n(l.Root, {
|
|
339
|
-
...e,
|
|
340
|
-
"data-imf-ui-component": "Tabs.Root",
|
|
341
|
-
className: (t) => re({ className: d(e.className, t) })
|
|
342
|
-
});
|
|
343
|
-
}
|
|
344
|
-
J.displayName = "Tabs.Root";
|
|
345
|
-
function Y({ fill: e = !1, ref: t, ...r }) {
|
|
346
|
-
let a = i((e) => {
|
|
347
|
-
if (!e) return;
|
|
348
|
-
q(t, e);
|
|
349
|
-
let n = ce(e);
|
|
350
|
-
return () => {
|
|
351
|
-
n(), q(t, null);
|
|
352
|
-
};
|
|
353
|
-
}, [t]);
|
|
354
|
-
return /* @__PURE__ */ n(l.List, {
|
|
355
|
-
...r,
|
|
356
|
-
ref: a,
|
|
357
|
-
"data-imf-ui-component": "Tabs.List",
|
|
358
|
-
className: (t) => K({
|
|
359
|
-
fill: e,
|
|
360
|
-
className: d(r.className, t)
|
|
361
|
-
})
|
|
362
|
-
});
|
|
363
|
-
}
|
|
364
|
-
Y.displayName = "Tabs.List";
|
|
365
|
-
function X(e) {
|
|
366
|
-
return /* @__PURE__ */ n(l.Tab, {
|
|
367
|
-
...e,
|
|
368
|
-
"data-imf-ui-component": "Tabs.Tab",
|
|
369
|
-
className: (t) => ie({ className: d(e.className, t) })
|
|
370
|
-
});
|
|
371
|
-
}
|
|
372
|
-
X.displayName = "Tabs.Tab";
|
|
373
|
-
function Z(e) {
|
|
374
|
-
return /* @__PURE__ */ n(l.Indicator, {
|
|
375
|
-
...e,
|
|
376
|
-
"data-imf-ui-component": "Tabs.Indicator",
|
|
377
|
-
className: (t) => ae({ className: d(e.className, t) })
|
|
378
|
-
});
|
|
379
|
-
}
|
|
380
|
-
Z.displayName = "Tabs.Indicator";
|
|
381
|
-
function Q(e) {
|
|
382
|
-
return /* @__PURE__ */ n("div", {
|
|
383
|
-
...e,
|
|
384
|
-
"data-imf-ui-component": "Tabs.PanelViewport",
|
|
385
|
-
className: oe({ className: e.className })
|
|
386
|
-
});
|
|
387
|
-
}
|
|
388
|
-
Q.displayName = "Tabs.PanelViewport";
|
|
389
|
-
function $(e) {
|
|
390
|
-
return /* @__PURE__ */ n(l.Panel, {
|
|
391
|
-
...e,
|
|
392
|
-
"data-imf-ui-component": "Tabs.Panel",
|
|
393
|
-
className: (t) => se({ className: d(e.className, t) })
|
|
394
|
-
});
|
|
395
|
-
}
|
|
396
|
-
$.displayName = "Tabs.Panel";
|
|
397
|
-
//#endregion
|
|
398
|
-
export { d as C, m as S, S as _, J as a, T as b, U as c, F as d, A as f, E as g, w as h, Q as i, B as l, te as m, Y as n, X as o, j as p, $ as r, G as s, Z as t, L as u, x as v, C as x, D as y };
|
|
File without changes
|