@imfusion/web-ui 0.6.4-dev.8.g41d03f2f → 0.6.4-dev.84.gbfc0d437

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 (139) hide show
  1. package/README.md +19 -55
  2. package/dist/assets/vendors/base-ui.d.ts +2 -3
  3. package/dist/breakpoints/min-width.d.ts +3 -7
  4. package/dist/breakpoints/registry.d.ts +3 -9
  5. package/dist/{code-Ce8uiPsv.js → code-D2lwxHgd.js} +15 -15
  6. package/dist/codegen/gen-breakpoints-css.d.ts +0 -4
  7. package/dist/codegen/gen-token-css.d.ts +0 -2
  8. package/dist/components/app-shell/app-shell.d.ts +7 -11
  9. package/dist/components/button/button.d.ts +7 -12
  10. package/dist/components/callout/callout.d.ts +11 -18
  11. package/dist/components/card/card.d.ts +11 -10
  12. package/dist/components/checkbox/checkbox.d.ts +2 -38
  13. package/dist/components/chip/chip.cva.d.ts +2 -4
  14. package/dist/components/chip/chip.d.ts +1 -1
  15. package/dist/components/code/code.d.ts +2 -2
  16. package/dist/components/collapsible/collapsible.d.ts +4 -35
  17. package/dist/components/copy-button/copy-button.d.ts +1 -1
  18. package/dist/components/drawer/drawer.d.ts +17 -100
  19. package/dist/components/field/field.d.ts +7 -67
  20. package/dist/components/fieldset/fieldset.d.ts +2 -15
  21. package/dist/components/icon/icon.d.ts +2 -2
  22. package/dist/components/input/input.d.ts +2 -8
  23. package/dist/components/logo/imfusion/imfusion.d.ts +2 -5
  24. package/dist/components/logo/imfusion/marks.d.ts +10 -0
  25. package/dist/components/logo/logo.d.ts +3 -3
  26. package/dist/components/navigation-menu/subs/flyout-link.d.ts +5 -19
  27. package/dist/components/navigation-menu/subs/inline-submenu.d.ts +2 -4
  28. package/dist/components/navigation-menu/subs/link.d.ts +6 -23
  29. package/dist/components/navigation-menu/subs/overlay.d.ts +6 -51
  30. package/dist/components/navigation-menu/subs/shared.d.ts +4 -14
  31. package/dist/components/navigation-menu/subs/structure.d.ts +7 -29
  32. package/dist/components/navigation-menu/subs/trigger.d.ts +11 -20
  33. package/dist/components/number-field/index.d.ts +2 -0
  34. package/dist/components/number-field/number-field.d.ts +72 -0
  35. package/dist/components/number-field/number-field.meta.d.ts +2 -0
  36. package/dist/components/popover/popover.d.ts +23 -98
  37. package/dist/components/row/row.d.ts +1 -1
  38. package/dist/components/select/select.d.ts +26 -189
  39. package/dist/components/separator/separator.d.ts +5 -4
  40. package/dist/components/slider/slider.d.ts +7 -77
  41. package/dist/components/spinner/spinner.d.ts +13 -8
  42. package/dist/components/stack/stack.d.ts +3 -4
  43. package/dist/components/switch/switch.d.ts +2 -31
  44. package/dist/components/table/table.d.ts +10 -18
  45. package/dist/components/tabs/tabs.d.ts +18 -52
  46. package/dist/components/toast/toast.d.ts +16 -103
  47. package/dist/components/toggle/toggle.d.ts +3 -21
  48. package/dist/components/toggle-group/toggle-group.d.ts +3 -20
  49. package/dist/components/tooltip/tooltip.d.ts +26 -85
  50. package/dist/components/typo/typo.d.ts +25 -25
  51. package/dist/docgen/gen-docgen.utils.d.ts +3 -4
  52. package/dist/hooks/use-color-scheme.d.ts +5 -11
  53. package/dist/hooks/use-media-query.d.ts +2 -7
  54. package/dist/{icons-Cy1HAosO.js → icons-CaGCCwG-.js} +7 -7
  55. package/dist/icons.js +1 -1
  56. package/dist/index.d.ts +1 -0
  57. package/dist/index.js +1486 -1368
  58. package/dist/integrations/code-highlight/highlighter.d.ts +1 -56
  59. package/dist/integrations/code-highlight.js +41 -189
  60. package/dist/integrations/image-display-options/image-display-options-view.utils.d.ts +0 -1
  61. package/dist/integrations/image-display-options.js +54 -54
  62. package/dist/llms/evals/runner/affected.d.ts +2 -0
  63. package/dist/llms/evals/runner/benchmark.d.ts +12 -0
  64. package/dist/llms/evals/runner/compare.d.ts +2 -0
  65. package/dist/llms/evals/runner/config.d.ts +29 -0
  66. package/dist/llms/evals/runner/evidence.d.ts +7 -0
  67. package/dist/llms/evals/runner/execute.d.ts +32 -0
  68. package/dist/llms/evals/runner/grade.d.ts +10 -0
  69. package/dist/llms/evals/runner/report-md.d.ts +2 -0
  70. package/dist/llms/evals/runner/report.d.ts +4 -0
  71. package/dist/llms/evals/runner/run.d.ts +2 -0
  72. package/dist/llms/evals/runner/scenario.d.ts +3 -0
  73. package/dist/llms/evals/runner/types.d.ts +140 -0
  74. package/dist/llms/evals/runner/workspace.d.ts +2 -0
  75. package/dist/llms/evals/runner/write-generated.d.ts +1 -0
  76. package/dist/provider/web-ui-provider.d.ts +4 -1
  77. package/dist/style.css +1 -1
  78. package/dist/{tabs-DIe1Utiy.js → tabs-By5ir2pt.js} +162 -159
  79. package/dist/tokens/apply.d.ts +4 -9
  80. package/dist/tokens/control-registry.d.ts +3 -6
  81. package/dist/tokens/types.d.ts +7 -24
  82. package/dist/tokens/use-token-controls.d.ts +3 -12
  83. package/dist/types/meta.d.ts +15 -32
  84. package/dist/utils/index.d.ts +1 -0
  85. package/dist/utils/resolve-state-props.d.ts +4 -0
  86. package/dist/vite/brand-assets.d.ts +3 -0
  87. package/dist/vite/index.d.ts +2 -0
  88. package/dist/vite/readable-css-module-names.d.ts +11 -0
  89. package/dist/vite.js +55 -0
  90. package/dist/web-ui-cli.js +322 -0
  91. package/docs/user-guide/AgentTooling.mdx +127 -0
  92. package/docs/user-guide/BrandAssets.mdx +102 -0
  93. package/docs/user-guide/Changelog.mdx +23 -0
  94. package/docs/user-guide/GettingStarted.mdx +70 -0
  95. package/docs/user-guide/HowItsBuilt.mdx +113 -0
  96. package/docs/user-guide/Tokens.mdx +87 -0
  97. package/docs/user-guide/UsagePatterns.mdx +122 -0
  98. package/package.json +27 -22
  99. package/src/assets/public/favicon/apple-touch-icon.png +0 -0
  100. package/src/assets/public/favicon/favicon-16.png +0 -0
  101. package/src/assets/public/favicon/favicon-32.png +0 -0
  102. package/src/assets/public/favicon/favicon.ico +0 -0
  103. package/src/assets/public/favicon/favicon.svg +7 -0
  104. package/src/assets/public/favicon/icon-192.png +0 -0
  105. package/src/assets/public/favicon/icon-512.png +0 -0
  106. package/src/assets/public/favicon/og-image.png +0 -0
  107. package/src/assets/public/spinner/imfusion-spinner-black.webp +0 -0
  108. package/src/assets/public/spinner/imfusion-spinner-blue.webp +0 -0
  109. package/src/assets/public/spinner/imfusion-spinner-white.webp +0 -0
  110. package/src/docgen/doc.gen.json +3255 -603
  111. package/src/llms/install-templates/AGENTS.md +4 -4
  112. package/src/llms/install-templates/hooks/baseline-staleness.sh +9 -2
  113. package/src/llms/llms.gen.txt +7 -1
  114. package/src/llms/skills/imf-web-ui/SKILL.md +44 -21
  115. package/src/llms/skills/imf-web-ui-audit/SKILL.md +25 -11
  116. package/src/llms/skills/imf-web-ui-components/SKILL.md +4 -1
  117. package/src/llms/skills/imf-web-ui-conventions/SKILL.md +2 -2
  118. package/src/llms/skills/imf-web-ui-conventions/templates/AUDIT_CHECKLIST.md +0 -1
  119. package/src/llms/skills/imf-web-ui-conventions/templates/REPORT.md +21 -2
  120. package/src/llms/skills/imf-web-ui-conventions/topics/agent-tooling.md +15 -10
  121. package/src/llms/skills/imf-web-ui-conventions/topics/assets.md +7 -4
  122. package/src/llms/skills/imf-web-ui-conventions/topics/data.md +3 -1
  123. package/src/llms/skills/imf-web-ui-conventions/topics/docs-structure.md +2 -2
  124. package/src/llms/skills/imf-web-ui-conventions/topics/git.md +4 -2
  125. package/src/llms/skills/imf-web-ui-conventions/topics/library-setup.md +10 -1
  126. package/src/llms/skills/imf-web-ui-conventions/topics/styling.md +2 -2
  127. package/src/llms/skills/imf-web-ui-conventions/topics/tokens.md +4 -2
  128. package/src/llms/skills/imf-web-ui-conventions/topics/tooling.md +13 -11
  129. package/src/llms/skills/imf-web-ui-setup/SKILL.md +17 -9
  130. package/src/llms/skills/imf-web-ui-update/SKILL.md +36 -14
  131. package/src/llms/skills/imf-web-ui-ux/SKILL.md +5 -3
  132. package/src/llms/tokens.gen.json +71 -7
  133. package/bin/install.js +0 -446
  134. package/dist/build/vite-css-module-names/index.d.ts +0 -20
  135. package/dist/build/vite-css-module-names.js +0 -17
  136. package/dist/components/spinner/spinner.geometry.d.ts +0 -37
  137. package/dist/integrations/code-highlight/languages/cmake.d.ts +0 -1
  138. package/dist/integrations/code-highlight/languages/cpp.d.ts +0 -1
  139. /package/dist/{meta-CySnRuVp.js → meta-j-7HGrWv.js} +0 -0
@@ -18,30 +18,51 @@ Never overwrite user changes or commit without fresh approval.
18
18
  1. Work from the frontend package root. In a monorepo, find the package that owns the Web UI dependency.
19
19
  2. Read its `package.json`, lockfile, and repository instructions. npm with `package-lock.json` is the expected setup; stop
20
20
  if another lockfile is the active one.
21
- 3. Record `git status --short`, the installed Web UI version, the installed skill targets, hooks, registrations, and
21
+ 3. Record `git status --short`, the installed Web UI version, the installed skill harness(es), hooks, registrations, and
22
22
  `AGENTS.md` fence.
23
- 4. Check for another npm process and stop on a conflict. A dirty file this workflow needs is also a conflict. Do not reset,
24
- clean, restore, or hide it.
23
+ 4. Check for another npm process and stop on a conflict. Uncommitted work is also a conflict: report it and stop before the
24
+ first mutating command, even if it looks unrelated to this workflow: what the update touches is only known once it runs,
25
+ and the person can commit, stash, or wave it through in one reply. Never reset, clean, restore, or hide it.
25
26
  5. With `--dry-run`, stop after reporting what would happen. Do not install, format, stage, commit, or ask for commit
26
27
  approval.
27
28
 
28
29
  ## Update the base
29
30
 
30
- Run from the consumer package root:
31
+ Before installing, query the registry from the consumer package root:
31
32
 
32
33
  ```sh
33
- npm install @imfusion/web-ui
34
- npx web-ui-install
35
- npx web-ui-install --hooks
34
+ npm view @imfusion/web-ui dist-tags --json
36
35
  ```
37
36
 
38
- Use `npm install @imfusion/web-ui@<version>` when the user supplied an explicit version. Stop on install failure. Preserve
39
- the installer's existing target. Do not use `--force` or `--legacy-peer-deps`.
37
+ Honor an explicitly requested version or tag. Otherwise, target `latest`; if the installed version is a prerelease, ask
38
+ whether to use `latest` or `dev` before proceeding. Resolve the selected tag or version with
39
+ `npm view @imfusion/web-ui@<selected-tag-or-version> version --json` and record the exact target version. Stop if the
40
+ registry lookup fails. Report "already current" only when the pre-update version matches this resolved target; npm's "up to
41
+ date" message alone does not prove that.
40
42
 
41
- The installer owns the vendored skills, its `AGENTS.md` fence, and hook scripts. Run both installer commands after the
42
- package update even when the existing registrations look complete: they refresh scripts, prune retired registrations, and
43
- merge installer-owned entries idempotently into `.claude/settings.json` and `.codex/hooks.json`. Stop on malformed settings
44
- or installer conflicts. Read existing host registrations first and do not stack an event the project already covers.
43
+ Install the resolved version, then refresh the existing installer harness (run `install hooks` too only if the project
44
+ already has hooks installed):
45
+
46
+ ```sh
47
+ npm install @imfusion/web-ui@<resolved-version>
48
+ npx web-ui install skills
49
+ npx web-ui install hooks
50
+ ```
51
+
52
+ Both commands reuse the recorded harness. An install from the old `web-ui-install` has no record: pass the project's existing
53
+ harness once, e.g. `--harness=all`. Stop on install failure. Do not use `--force` or `--legacy-peer-deps`.
54
+
55
+ The installer owns the vendored skills, its `AGENTS.md` fence, and hook scripts. Run the installer commands after the package
56
+ update even when the existing registrations look complete: they refresh scripts, prune retired registrations, and merge
57
+ installer-owned entries idempotently into the registration file for the chosen harness (`.claude/settings.json`,
58
+ `.codex/hooks.json`, or both). Stop on malformed settings or installer conflicts. Read existing host registrations first and
59
+ do not stack an event the project already covers.
60
+
61
+ After the installer command, inspect the installed skill diffs and briefly report any guidance changes; version-marker
62
+ changes alone do not count. Re-read changed skills and references relevant to the remaining work, including this update skill
63
+ if it changed. Continue from the current step using the updated guidance, keeping the original baseline, user choices, and
64
+ completed changes in mind. Check for newly required steps without repeating completed mutations or expanding the approved
65
+ scope.
45
66
 
46
67
  ## Verify the base update
47
68
 
@@ -51,7 +72,8 @@ change.
51
72
  Run the consumer's documented full verification. Read its scripts first; prefer an aggregate check, otherwise run the
52
73
  non-watch format, lint, typecheck, test, and build commands that exist.
53
74
 
54
- Check the dependency and lockfile, skill markers, `AGENTS.md` fence, hook registrations, and final update-owned path list.
75
+ Verify that the installed package, manifest, and lockfile match the recorded target version. A mismatch is a base-update
76
+ conflict. Check skill markers, the `AGENTS.md` fence, hook registrations, and the final update-owned path list.
55
77
 
56
78
  Report before the first commit:
57
79
 
@@ -15,7 +15,9 @@ when it is used across many call sites so API movement stays local.
15
15
 
16
16
  ## Ask only what matters
17
17
 
18
- If the request is vague and a human can answer, ask these questions one at a time and stop once the choice is clear:
18
+ When the request is vague and a human is there to answer, the first reply is a question and nothing else. No default, no
19
+ options table, no recommendation held in reserve: any of those end the conversation, because the person now has an answer and
20
+ no reason to reply. Ask one at a time, and stop once the choice is clear:
19
21
 
20
22
  1. Who uses the screen, and how often?
21
23
  2. What is its one primary action?
@@ -23,8 +25,8 @@ If the request is vague and a human can answer, ask these questions one at a tim
23
25
  4. What should users see when it is empty, loading, or failing?
24
26
  5. Is it a full page or part of another flow?
25
27
 
26
- If the prompt already answers a question, do not ask it again. If nobody can answer, make the conservative choice and state
27
- the assumption.
28
+ If the prompt already answers a question, do not ask it again. Only when nobody is there to answer, or a question has gone
29
+ unanswered, make the conservative choice and state the assumption.
28
30
 
29
31
  ## Choose a surface
30
32
 
@@ -153,7 +153,7 @@
153
153
  },
154
154
  {
155
155
  "name": "--imf-ui-color-bg-minor",
156
- "value": "light-dark( oklch( calc(var(--imf-ui-color-surface-bg-luma-light) - 0.04) var(--imf-ui-color-surface-chroma) var(--imf-ui-color-surface-minor-hue) ), oklch( calc(var(--imf-ui-color-surface-bg-luma-dark) + 0.04) var(--imf-ui-color-surface-chroma) var(--imf-ui-color-surface-minor-hue) ) )"
156
+ "value": "light-dark( oklch( calc(var(--imf-ui-color-surface-bg-luma-light) - 0.05) var(--imf-ui-color-surface-chroma) var(--imf-ui-color-surface-minor-hue) ), oklch( calc(var(--imf-ui-color-surface-bg-luma-dark) + 0.05) var(--imf-ui-color-surface-chroma) var(--imf-ui-color-surface-minor-hue) ) )"
157
157
  },
158
158
  {
159
159
  "name": "--imf-ui-color-bg-negative",
@@ -177,7 +177,7 @@
177
177
  },
178
178
  {
179
179
  "name": "--imf-ui-color-bg-support",
180
- "value": "light-dark( oklch( calc(var(--imf-ui-color-surface-bg-luma-light) - 0.02) var(--imf-ui-color-surface-chroma) var(--imf-ui-color-surface-support-hue) ), oklch( calc(var(--imf-ui-color-surface-bg-luma-dark) + 0.02) var(--imf-ui-color-surface-chroma) var(--imf-ui-color-surface-support-hue) ) )"
180
+ "value": "light-dark( oklch( calc(var(--imf-ui-color-surface-bg-luma-light) - 0.025) var(--imf-ui-color-surface-chroma) var(--imf-ui-color-surface-support-hue) ), oklch( calc(var(--imf-ui-color-surface-bg-luma-dark) + 0.025) var(--imf-ui-color-surface-chroma) var(--imf-ui-color-surface-support-hue) ) )"
181
181
  },
182
182
  {
183
183
  "name": "--imf-ui-color-bg-warning",
@@ -313,7 +313,7 @@
313
313
  },
314
314
  {
315
315
  "name": "--imf-ui-color-surface-bg-luma-dark",
316
- "value": "0.205"
316
+ "value": "0.35"
317
317
  },
318
318
  {
319
319
  "name": "--imf-ui-color-surface-bg-luma-light",
@@ -487,6 +487,22 @@
487
487
  "name": "--imf-ui-font-family-ui",
488
488
  "value": "var(--imf-ui-font-family-sans)"
489
489
  },
490
+ {
491
+ "name": "--imf-ui-font-letterspacing-body",
492
+ "value": "clamp(-0.0125rem, -0.0094rem - 0.0026vw, -0.01rem)"
493
+ },
494
+ {
495
+ "name": "--imf-ui-font-letterspacing-brand",
496
+ "value": "-0.02em"
497
+ },
498
+ {
499
+ "name": "--imf-ui-font-letterspacing-display",
500
+ "value": "clamp(-0.18rem, -0.0323rem - 0.1231vw, -0.06rem)"
501
+ },
502
+ {
503
+ "name": "--imf-ui-font-letterspacing-hero",
504
+ "value": "-0.04em"
505
+ },
490
506
  {
491
507
  "name": "--imf-ui-font-letterspacing-loose",
492
508
  "value": "0.1em"
@@ -499,6 +515,10 @@
499
515
  "name": "--imf-ui-font-letterspacing-tight",
500
516
  "value": "-0.025em"
501
517
  },
518
+ {
519
+ "name": "--imf-ui-font-letterspacing-title",
520
+ "value": "clamp(-0.04rem, -0.0062rem - 0.0282vw, -0.0125rem)"
521
+ },
502
522
  {
503
523
  "name": "--imf-ui-font-letterspacing-wide",
504
524
  "value": "0.06em"
@@ -531,6 +551,30 @@
531
551
  "name": "--imf-ui-font-lineheight-5",
532
552
  "value": "2"
533
553
  },
554
+ {
555
+ "name": "--imf-ui-font-lineheight-body",
556
+ "value": "clamp(1.5rem, 1.4135rem + 0.3846vw, 1.875rem)"
557
+ },
558
+ {
559
+ "name": "--imf-ui-font-lineheight-display",
560
+ "value": "clamp(2rem, 1.4231rem + 2.5641vw, 4.5rem)"
561
+ },
562
+ {
563
+ "name": "--imf-ui-font-lineheight-hero",
564
+ "value": "1"
565
+ },
566
+ {
567
+ "name": "--imf-ui-font-lineheight-lead",
568
+ "value": "1.3"
569
+ },
570
+ {
571
+ "name": "--imf-ui-font-lineheight-metadata",
572
+ "value": "1.15"
573
+ },
574
+ {
575
+ "name": "--imf-ui-font-lineheight-title",
576
+ "value": "clamp(2.0125rem, 1.8134rem + 0.8846vw, 2.5875rem)"
577
+ },
534
578
  {
535
579
  "name": "--imf-ui-font-size-0",
536
580
  "value": "0.75rem"
@@ -575,9 +619,13 @@
575
619
  "name": "--imf-ui-font-size-8",
576
620
  "value": "3.5rem"
577
621
  },
622
+ {
623
+ "name": "--imf-ui-font-size-body",
624
+ "value": "clamp(1rem, 0.9423rem + 0.2564vw, 1.25rem)"
625
+ },
578
626
  {
579
627
  "name": "--imf-ui-font-size-fluid-0",
580
- "value": "clamp(1.125rem, 4.5vw, 1.25rem)"
628
+ "value": "clamp(1.125rem, 4.5vw, 1.3125rem)"
581
629
  },
582
630
  {
583
631
  "name": "--imf-ui-font-size-fluid-1",
@@ -585,11 +633,15 @@
585
633
  },
586
634
  {
587
635
  "name": "--imf-ui-font-size-fluid-2",
588
- "value": "clamp(1.25rem, 6vw, 1.875rem)"
636
+ "value": "clamp(1.75rem, 1.5769rem + 0.7692vw, 2.25rem)"
589
637
  },
590
638
  {
591
639
  "name": "--imf-ui-font-size-fluid-3",
592
- "value": "clamp(2rem, 9vw, 2.75rem)"
640
+ "value": "clamp(2rem, 1.1154rem + 2.8205vw, 4.5rem)"
641
+ },
642
+ {
643
+ "name": "--imf-ui-font-size-hero",
644
+ "value": "clamp(3rem, 1.8rem + 6vw, 9rem)"
593
645
  },
594
646
  {
595
647
  "name": "--imf-ui-font-weight-1",
@@ -626,6 +678,18 @@
626
678
  {
627
679
  "name": "--imf-ui-font-weight-9",
628
680
  "value": "900"
681
+ },
682
+ {
683
+ "name": "--imf-ui-font-weight-medium",
684
+ "value": "500"
685
+ },
686
+ {
687
+ "name": "--imf-ui-font-weight-regular",
688
+ "value": "450"
689
+ },
690
+ {
691
+ "name": "--imf-ui-font-weight-strong",
692
+ "value": "600"
629
693
  }
630
694
  ],
631
695
  "inner-*": [
@@ -883,5 +947,5 @@
883
947
  }
884
948
  ]
885
949
  },
886
- "count": 215
950
+ "count": 231
887
951
  }