@imfusion/web-ui 0.6.1-dev.6.g4adc5c3e → 0.6.1

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 (63) hide show
  1. package/LICENSE.txt +30 -0
  2. package/README.md +104 -171
  3. package/THIRD_PARTY_NOTICES.md +34 -0
  4. package/bin/install.js +28 -10
  5. package/dist/code-BFMQnmu9.js +147 -0
  6. package/dist/codegen/gen-code-highlight-theme.d.ts +1 -0
  7. package/dist/components/code/code.d.ts +5 -4
  8. package/dist/components/stack/stack.d.ts +1 -1
  9. package/dist/components/toast/index.d.ts +2 -0
  10. package/dist/components/toast/toast.d.ts +200 -0
  11. package/dist/components/toast/toast.meta.d.ts +2 -0
  12. package/dist/components/typo/typo.d.ts +23 -22
  13. package/dist/icons/icon-config.d.ts +12 -0
  14. package/dist/{icons-wBmF0U2x.js → icons-Cy1HAosO.js} +1 -1
  15. package/dist/icons.js +1 -1
  16. package/dist/index.d.ts +1 -0
  17. package/dist/index.js +1278 -1069
  18. package/dist/integrations/code-highlight/highlighter.d.ts +24 -0
  19. package/dist/integrations/code-highlight.js +80 -47
  20. package/dist/integrations/image-display-options.js +2 -2
  21. package/dist/provider/web-ui-provider.d.ts +3 -3
  22. package/dist/style.css +1 -1
  23. package/dist/{tabs-CMKvMF4E.js → tabs-DIe1Utiy.js} +2 -0
  24. package/docs/assets/imfusion-banner.svg +16 -0
  25. package/package.json +15 -8
  26. package/src/docgen/doc.gen.json +515 -1
  27. package/src/llms/install-templates/AGENTS.md +15 -18
  28. package/src/llms/llms.gen.txt +39 -33
  29. package/src/llms/skills/imf-web-ui/SKILL.md +30 -39
  30. package/src/llms/skills/imf-web-ui-audit/SKILL.md +50 -102
  31. package/src/llms/skills/imf-web-ui-components/SKILL.md +47 -104
  32. package/src/llms/skills/imf-web-ui-conventions/SKILL.md +44 -52
  33. package/src/llms/skills/imf-web-ui-conventions/templates/AUDIT_CHECKLIST.md +1 -0
  34. package/src/llms/skills/imf-web-ui-conventions/topics/agent-tooling.md +40 -62
  35. package/src/llms/skills/imf-web-ui-conventions/topics/assets.md +11 -12
  36. package/src/llms/skills/imf-web-ui-conventions/topics/authentication.md +31 -46
  37. package/src/llms/skills/imf-web-ui-conventions/topics/class-names.md +18 -23
  38. package/src/llms/skills/imf-web-ui-conventions/topics/components.md +20 -69
  39. package/src/llms/skills/imf-web-ui-conventions/topics/data.md +50 -146
  40. package/src/llms/skills/imf-web-ui-conventions/topics/docs-structure.md +17 -23
  41. package/src/llms/skills/imf-web-ui-conventions/topics/git.md +15 -20
  42. package/src/llms/skills/imf-web-ui-conventions/topics/library-boundary.md +28 -19
  43. package/src/llms/skills/imf-web-ui-conventions/topics/library-setup.md +20 -16
  44. package/src/llms/skills/imf-web-ui-conventions/topics/npm-project.md +28 -42
  45. package/src/llms/skills/imf-web-ui-conventions/topics/project-structure.md +28 -30
  46. package/src/llms/skills/imf-web-ui-conventions/topics/react.md +28 -74
  47. package/src/llms/skills/imf-web-ui-conventions/topics/styling.md +65 -62
  48. package/src/llms/skills/imf-web-ui-conventions/topics/testing.md +12 -14
  49. package/src/llms/skills/imf-web-ui-conventions/topics/tokens.md +9 -4
  50. package/src/llms/skills/imf-web-ui-conventions/topics/tooling.md +40 -68
  51. package/src/llms/skills/imf-web-ui-conventions/topics/typescript.md +26 -50
  52. package/src/llms/skills/imf-web-ui-conventions/topics/validation.md +19 -25
  53. package/src/llms/skills/imf-web-ui-setup/SKILL.md +45 -64
  54. package/src/llms/skills/imf-web-ui-update/SKILL.md +48 -114
  55. package/src/llms/skills/imf-web-ui-ux/SKILL.md +64 -92
  56. package/src/llms/skills/imf-web-ui-ux/references/forms.md +16 -36
  57. package/src/llms/skills/imf-web-ui-ux/references/usability-heuristics.md +14 -27
  58. package/src/llms/skills/imf-web-ui-ux/references/visual-design.md +22 -38
  59. package/src/llms/tokens.gen.json +5 -5
  60. package/bin/install.test.ts +0 -329
  61. package/dist/code-Blo48PGr.js +0 -136
  62. package/dist/icons/icon-config-provider.d.ts +0 -8
  63. package/dist/icons/icon-context.d.ts +0 -4
@@ -23,6 +23,30 @@ declare const LANGUAGE_DEFINITIONS: {
23
23
  readonly cmake: {
24
24
  readonly aliases: readonly [];
25
25
  };
26
+ readonly html: {
27
+ readonly aliases: readonly ["htm", "xml", "angular-html"];
28
+ };
29
+ readonly js: {
30
+ readonly aliases: readonly ["javascript", "mjs", "cjs", "js-vue"];
31
+ };
32
+ readonly jsx: {
33
+ readonly aliases: readonly [];
34
+ };
35
+ readonly markdown: {
36
+ readonly aliases: readonly ["md"];
37
+ };
38
+ readonly yaml: {
39
+ readonly aliases: readonly ["yml"];
40
+ };
41
+ readonly sql: {
42
+ readonly aliases: readonly [];
43
+ };
44
+ readonly dockerfile: {
45
+ readonly aliases: readonly [];
46
+ };
47
+ readonly toml: {
48
+ readonly aliases: readonly [];
49
+ };
26
50
  };
27
51
  export declare const SUPPORTED_LANGUAGES: string[];
28
52
  type CanonicalLanguage = keyof typeof LANGUAGE_DEFINITIONS;
@@ -1,18 +1,26 @@
1
1
  import { t as e } from "../chunk-DmhlhrBa.js";
2
2
  import { t } from "../meta-CySnRuVp.js";
3
- import { i as n, n as r, r as i } from "../code-Blo48PGr.js";
3
+ import { i as n, n as r, r as i } from "../code-BFMQnmu9.js";
4
4
  import { jsx as a } from "react/jsx-runtime";
5
5
  import { cloneElement as o, useMemo as s } from "react";
6
6
  import { createHighlighter as c, defineLanguage as l, renderNodesToHtml as u, renderTokens as d } from "@tanstack/highlight/core";
7
7
  import { css as f } from "@tanstack/highlight/languages/css";
8
- import { json as p } from "@tanstack/highlight/languages/json";
9
- import { plaintext as m } from "@tanstack/highlight/languages/plaintext";
10
- import { shell as h } from "@tanstack/highlight/languages/shell";
11
- import { ts as g } from "@tanstack/highlight/languages/ts";
12
- import { tsx as _ } from "@tanstack/highlight/languages/tsx";
13
- import { python as v } from "@tanstack/highlight/languages/python";
8
+ import { dockerfile as p } from "@tanstack/highlight/languages/dockerfile";
9
+ import { html as m } from "@tanstack/highlight/languages/html";
10
+ import { js as h } from "@tanstack/highlight/languages/js";
11
+ import { jsx as g } from "@tanstack/highlight/languages/jsx";
12
+ import { json as _ } from "@tanstack/highlight/languages/json";
13
+ import { markdown as v } from "@tanstack/highlight/languages/markdown";
14
+ import { plaintext as y } from "@tanstack/highlight/languages/plaintext";
15
+ import { shell as b } from "@tanstack/highlight/languages/shell";
16
+ import { sql as x } from "@tanstack/highlight/languages/sql";
17
+ import { toml as S } from "@tanstack/highlight/languages/toml";
18
+ import { ts as C } from "@tanstack/highlight/languages/ts";
19
+ import { tsx as w } from "@tanstack/highlight/languages/tsx";
20
+ import { yaml as T } from "@tanstack/highlight/languages/yaml";
21
+ import { python as E } from "@tanstack/highlight/languages/python";
14
22
  //#region src/integrations/code-highlight/language-patterns.ts
15
- function y(e, t, n = []) {
23
+ function D(e, t, n = []) {
16
24
  let r = [], i = new Uint8Array(e.length);
17
25
  for (let { start: e, end: t } of n) i.fill(1, e, t);
18
26
  for (let n of t) {
@@ -42,7 +50,7 @@ function y(e, t, n = []) {
42
50
  }
43
51
  //#endregion
44
52
  //#region src/integrations/code-highlight/languages/cmake.ts
45
- var b = [
53
+ var O = [
46
54
  {
47
55
  className: "string",
48
56
  regex: /"(?:\\.|[^"\\\n])*"|\[(=*)\[[\s\S]*?\]\1\]/g
@@ -75,12 +83,12 @@ var b = [
75
83
  className: "operator",
76
84
  regex: /(?:LESS_EQUAL|GREATER_EQUAL|STREQUAL|IN_LIST|MATCHES|EQUAL|LESS|GREATER|AND|OR|NOT|[=<>+*/!-])/gi
77
85
  }
78
- ], x = l({
86
+ ], k = l({
79
87
  name: "cmake",
80
88
  tokenize(e) {
81
- return y(e, b);
89
+ return D(e, O);
82
90
  }
83
- }), S = [
91
+ }), A = [
84
92
  {
85
93
  className: "comment",
86
94
  regex: /\/\/[^\n]*|\/\*[\s\S]*?\*\//g
@@ -117,7 +125,7 @@ var b = [
117
125
  className: "operator",
118
126
  regex: /(?:<<=?|>>=?|->\*|->|\+\+|--|&&|\|\||==|!=|<=|>=|::|\+=|-=|\*=|\/=|%=|&=|\|=|\^=|[-+*/%=&|^!<>?:~])/g
119
127
  }
120
- ], C = l({
128
+ ], j = l({
121
129
  name: "cpp",
122
130
  aliases: [
123
131
  "c++",
@@ -126,19 +134,19 @@ var b = [
126
134
  "hpp"
127
135
  ],
128
136
  tokenize(e) {
129
- return y(e, S);
137
+ return D(e, A);
130
138
  }
131
- }), w = [{
139
+ }), M = [{
132
140
  className: "function",
133
141
  regex: /\b[A-Za-z_]\w*(?=\s*\()/g
134
- }], T = l({
142
+ }], N = l({
135
143
  name: "python",
136
144
  aliases: ["py"],
137
145
  tokenize(e, t) {
138
- let n = v.tokenize(e, t), r = y(e, w, n);
146
+ let n = E.tokenize(e, t), r = D(e, M, n);
139
147
  return [...n, ...r];
140
148
  }
141
- }), E = {
149
+ }), P = {
142
150
  tsx: { aliases: ["typescriptreact"] },
143
151
  ts: { aliases: ["typescript"] },
144
152
  css: { aliases: ["scss"] },
@@ -156,73 +164,98 @@ var b = [
156
164
  "hpp"
157
165
  ] },
158
166
  python: { aliases: ["py"] },
159
- cmake: { aliases: [] }
160
- }, D = Object.keys(E), O = [...D, ...Object.values(E).flatMap(({ aliases: e }) => e)];
161
- function k(e) {
162
- return O.includes(e);
167
+ cmake: { aliases: [] },
168
+ html: { aliases: [
169
+ "htm",
170
+ "xml",
171
+ "angular-html"
172
+ ] },
173
+ js: { aliases: [
174
+ "javascript",
175
+ "mjs",
176
+ "cjs",
177
+ "js-vue"
178
+ ] },
179
+ jsx: { aliases: [] },
180
+ markdown: { aliases: ["md"] },
181
+ yaml: { aliases: ["yml"] },
182
+ sql: { aliases: [] },
183
+ dockerfile: { aliases: [] },
184
+ toml: { aliases: [] }
185
+ }, F = Object.keys(P), I = [...F, ...Object.values(P).flatMap(({ aliases: e }) => e)];
186
+ function L(e) {
187
+ return I.includes(e);
163
188
  }
164
- function A(e, t) {
189
+ function R(e, t) {
165
190
  return e.aliases.includes(t);
166
191
  }
167
- function j(e) {
168
- for (let [t, n] of Object.entries(E)) if (A(n, e)) return t;
192
+ function z(e) {
193
+ for (let [t, n] of Object.entries(P)) if (R(n, e)) return t;
169
194
  return e;
170
195
  }
171
- var M = c({
196
+ var B = c({
172
197
  languages: [
173
- _,
174
- g,
198
+ w,
199
+ C,
175
200
  f,
201
+ b,
202
+ _,
203
+ j,
204
+ N,
205
+ k,
206
+ m,
176
207
  h,
177
- p,
178
- C,
208
+ g,
209
+ v,
179
210
  T,
180
211
  x,
181
- m
212
+ p,
213
+ S,
214
+ y
182
215
  ],
183
216
  fallbackLanguage: "plaintext"
184
217
  });
185
- function N(e, t) {
186
- let n = j(t), { tokens: r } = M.tokenize(e, { lang: n });
218
+ function V(e, t) {
219
+ let n = z(t), { tokens: r } = B.tokenize(e, { lang: n });
187
220
  return u(d(r));
188
221
  }
189
222
  //#endregion
190
223
  //#region src/integrations/code-highlight/code-highlight.tsx
191
- var P = /* @__PURE__ */ e({
192
- Block: () => I,
193
- Inline: () => L,
224
+ var H = /* @__PURE__ */ e({
225
+ Block: () => W,
226
+ Inline: () => G,
194
227
  InlineLink: () => n
195
228
  });
196
- function F(e, t) {
229
+ function U(e, t) {
197
230
  return s(() => {
198
- if (!(t == null || e === "")) return /* @__PURE__ */ a("span", { dangerouslySetInnerHTML: { __html: N(e, t) } });
231
+ if (!(t == null || e === "")) return /* @__PURE__ */ a("span", { dangerouslySetInnerHTML: { __html: V(e, t) } });
199
232
  }, [e, t]);
200
233
  }
201
- function I({ language: e, children: t, ...n }) {
202
- let i = F(t, e);
234
+ function W({ language: e, children: t, ...n }) {
235
+ let i = U(t, e);
203
236
  return o(/* @__PURE__ */ a(r, {
204
237
  ...n,
205
238
  language: e,
206
239
  children: t
207
240
  }), { children: i ?? t });
208
241
  }
209
- I.displayName = "Code.Block";
210
- function L({ language: e, children: t, ...n }) {
211
- let r = F(t, e);
242
+ W.displayName = "Code.Block";
243
+ function G({ language: e, children: t, ...n }) {
244
+ let r = U(t, e);
212
245
  return o(/* @__PURE__ */ a(i, {
213
246
  ...n,
214
247
  children: t
215
248
  }), { children: r ?? t });
216
249
  }
217
- L.displayName = "Code.Inline";
250
+ G.displayName = "Code.Inline";
218
251
  //#endregion
219
252
  //#region src/integrations/code-highlight/code-highlight.meta.ts
220
- var R = {
253
+ var K = {
221
254
  name: "CodeHighlight",
222
255
  category: t.display,
223
256
  status: "experimental",
224
257
  namespace: !0,
225
- description: "Syntax-highlighted drop-in for the Code parts — the same Code.Block and Code.Inline, with TanStack Highlight token coloring that follows the color scheme. Imported from @imfusion/web-ui/integrations/code-highlight; requires the @tanstack/highlight peer.",
258
+ description: "Syntax-highlighted Code parts powered by TanStack Highlight. Import from the integration entry and install the optional @tanstack/highlight peer.",
226
259
  origin: "adapted",
227
260
  internalDependencies: ["Code"],
228
261
  upstream: {
@@ -233,4 +266,4 @@ var R = {
233
266
  }
234
267
  };
235
268
  //#endregion
236
- export { P as Code, D as SUPPORTED_LANGUAGES, R as codeHighlightMeta, k as isSupportedLanguage };
269
+ export { H as Code, F as SUPPORTED_LANGUAGES, K as codeHighlightMeta, L as isSupportedLanguage };
@@ -1,5 +1,5 @@
1
1
  import { t as e } from "../meta-CySnRuVp.js";
2
- import { _ as t, a as n, b as r, c as i, d as a, f as o, g as s, h as c, i as l, l as u, n as d, o as f, p, r as m, t as h, u as g, v as _, x as v, y } from "../tabs-CMKvMF4E.js";
2
+ import { _ as t, a as n, b as r, c as i, d as a, f as o, g as s, h as c, i as l, l as u, n as d, o as f, p, r as m, t as h, u as g, v as _, x as v, y } from "../tabs-DIe1Utiy.js";
3
3
  import { cva as b } from "class-variance-authority";
4
4
  import { Fragment as x, jsx as S, jsxs as C } from "react/jsx-runtime";
5
5
  import { useId as w, useMemo as T, useState as E } from "react";
@@ -297,7 +297,7 @@ var U = {
297
297
  name: "ImageDisplayOptions",
298
298
  category: e.inputs,
299
299
  status: "experimental",
300
- description: "A panel or toolbar of controls bound to an image dataset's display options.",
300
+ description: "Panel and toolbar controls for an image dataset's display options, including window, level, gamma, and invert settings.",
301
301
  origin: "adapted",
302
302
  internalDependencies: [
303
303
  "Tabs",
@@ -1,9 +1,9 @@
1
1
  import { ReactNode } from 'react';
2
- import { IconConfig } from '../icons/icon-context';
2
+ import * as IconConfig from '../icons/icon-config';
3
3
  interface Props {
4
4
  children: ReactNode;
5
- /** SVG defaults for icons in this provider's subtree; omitted fields use the defaults from icon-context.ts. */
6
- icons?: IconConfig;
5
+ /** SVG defaults for icons in this provider's subtree; omitted fields use the defaults from icon-config.tsx. */
6
+ icons?: React.ComponentProps<typeof IconConfig.Provider>["value"];
7
7
  }
8
8
  export declare function WebUIProvider({ children, icons }: Props): import("react/jsx-runtime").JSX.Element;
9
9
  export {};