@imfusion/web-ui 0.10.1-dev.49.geca9b5e8 → 0.10.1-dev.53.gea04219d
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 +6 -0
- package/dist/components/logo/index.d.ts +1 -0
- package/dist/components/logo/product/index.d.ts +1 -0
- package/dist/components/logo/product/marks.d.ts +11 -0
- package/dist/components/logo/product/product.d.ts +17 -0
- package/dist/components/table/table.d.ts +12 -4
- package/dist/index.d.ts +1 -1
- package/dist/index.js +766 -711
- package/dist/style.css +1 -1
- package/package.json +1 -1
- package/src/docgen/doc.gen.json +28 -0
- package/src/llms/skills/imf-web-ui-ux/SKILL.md +22 -0
- package/src/llms/tokens.gen.json +9 -1
package/package.json
CHANGED
package/src/docgen/doc.gen.json
CHANGED
|
@@ -8338,6 +8338,13 @@
|
|
|
8338
8338
|
"name": "Table.Root",
|
|
8339
8339
|
"description": "Table.Root — the `<table>` element.",
|
|
8340
8340
|
"props": [
|
|
8341
|
+
{
|
|
8342
|
+
"name": "density",
|
|
8343
|
+
"required": false,
|
|
8344
|
+
"type": "\"compact\" | \"comfortable\" | \"spacious\"",
|
|
8345
|
+
"defaultValue": "comfortable",
|
|
8346
|
+
"description": "Cell padding: `compact` for dense data, `spacious` for a few rows at a glance."
|
|
8347
|
+
},
|
|
8341
8348
|
{
|
|
8342
8349
|
"name": "ref",
|
|
8343
8350
|
"required": false,
|
|
@@ -8365,6 +8372,13 @@
|
|
|
8365
8372
|
"name": "Table.Cell",
|
|
8366
8373
|
"description": "Table.Cell — a `<td>` data cell.",
|
|
8367
8374
|
"props": [
|
|
8375
|
+
{
|
|
8376
|
+
"name": "action",
|
|
8377
|
+
"required": false,
|
|
8378
|
+
"type": "boolean",
|
|
8379
|
+
"defaultValue": "false",
|
|
8380
|
+
"description": "Marks an action column: it shrinks to its content and keeps it on one line."
|
|
8381
|
+
},
|
|
8368
8382
|
{
|
|
8369
8383
|
"name": "ref",
|
|
8370
8384
|
"required": false,
|
|
@@ -8404,6 +8418,13 @@
|
|
|
8404
8418
|
"name": "Table.HeaderCell",
|
|
8405
8419
|
"description": "Table.HeaderCell — a `<th>` header cell.",
|
|
8406
8420
|
"props": [
|
|
8421
|
+
{
|
|
8422
|
+
"name": "action",
|
|
8423
|
+
"required": false,
|
|
8424
|
+
"type": "boolean",
|
|
8425
|
+
"defaultValue": "false",
|
|
8426
|
+
"description": "Marks an action column: it shrinks to its content and keeps it on one line."
|
|
8427
|
+
},
|
|
8407
8428
|
{
|
|
8408
8429
|
"name": "ref",
|
|
8409
8430
|
"required": false,
|
|
@@ -8450,6 +8471,13 @@
|
|
|
8450
8471
|
"name": "Table.SortableHeaderCell",
|
|
8451
8472
|
"description": "Table.SortableHeaderCell — a header cell whose label is a sort toggle,\npre-composing HeaderCell + HeaderButton so `aria-sort` and the direction\nindicator aren't re-derived per consumer. Omit `onToggle` for a plain cell.",
|
|
8452
8473
|
"props": [
|
|
8474
|
+
{
|
|
8475
|
+
"name": "action",
|
|
8476
|
+
"required": false,
|
|
8477
|
+
"type": "boolean",
|
|
8478
|
+
"defaultValue": null,
|
|
8479
|
+
"description": "Marks an action column: it shrinks to its content and keeps it on one line."
|
|
8480
|
+
},
|
|
8453
8481
|
{
|
|
8454
8482
|
"name": "ref",
|
|
8455
8483
|
"required": false,
|
|
@@ -80,3 +80,25 @@ When no component covers a piece, compose its primitives and use `--imf-ui-*` to
|
|
|
80
80
|
|
|
81
81
|
For a screen review, read the relevant reference under `references/`: `usability-heuristics.md`, `visual-design.md`, or
|
|
82
82
|
`forms.md`.
|
|
83
|
+
|
|
84
|
+
## Public backdrop handover
|
|
85
|
+
|
|
86
|
+
Public pages share a backdrop with the Keycloak login page: a light column with an animated line mesh, and a brand-colored
|
|
87
|
+
panel. Both sides draw the same geometry, so the cross-origin navigation between them looks seamless. Read the geometry from
|
|
88
|
+
these tokens and never from literals:
|
|
89
|
+
|
|
90
|
+
- `--imf-ui-size-backdrop-edge`: where the brand panel starts on wide landscape screens.
|
|
91
|
+
- `--imf-ui-size-backdrop-band-height`: the height of the light band on top of narrow or portrait screens, with the panel
|
|
92
|
+
below it.
|
|
93
|
+
|
|
94
|
+
The switch between the two layouts is a media query, which a token cannot carry. Use the same breakpoint as the reference
|
|
95
|
+
implementations.
|
|
96
|
+
|
|
97
|
+
The backdrop also paints before React mounts, so the first frame already matches. Put the same two columns on `body` as a
|
|
98
|
+
hard-stop `linear-gradient`, with `min-block-size: 100dvh`. In a single-page app, a marker on `html`
|
|
99
|
+
(`data-backdrop-pending`), set by an inline script in `index.html` for the routes that show the backdrop, gates that
|
|
100
|
+
gradient. The backdrop component removes the marker when it mounts. Generate that script's route list at build time from the
|
|
101
|
+
router's own source, never as a hand-written copy: with TanStack file routes, a small Vite plugin (`transformIndexHtml`)
|
|
102
|
+
reads the folder of backdrop routes and fills a placeholder in `index.html`, so a new route gets the pre-paint without anyone
|
|
103
|
+
touching the script. The ImFusion Portal's public backdrop component and the Keycloak login theme's copy of it are the
|
|
104
|
+
reference implementations.
|
package/src/llms/tokens.gen.json
CHANGED
|
@@ -913,6 +913,14 @@
|
|
|
913
913
|
"name": "--imf-ui-size-9",
|
|
914
914
|
"value": "4rem"
|
|
915
915
|
},
|
|
916
|
+
{
|
|
917
|
+
"name": "--imf-ui-size-backdrop-band-height",
|
|
918
|
+
"value": "30dvh"
|
|
919
|
+
},
|
|
920
|
+
{
|
|
921
|
+
"name": "--imf-ui-size-backdrop-edge",
|
|
922
|
+
"value": "38%"
|
|
923
|
+
},
|
|
916
924
|
{
|
|
917
925
|
"name": "--imf-ui-size-content-1",
|
|
918
926
|
"value": "20ch"
|
|
@@ -947,5 +955,5 @@
|
|
|
947
955
|
}
|
|
948
956
|
]
|
|
949
957
|
},
|
|
950
|
-
"count":
|
|
958
|
+
"count": 233
|
|
951
959
|
}
|