@imfusion/web-ui 0.9.0 → 0.9.1-dev.7.g0a2385ef
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 +40 -0
- package/dist/components/rich-link/index.d.ts +2 -0
- package/dist/components/rich-link/rich-link.d.ts +18 -0
- package/dist/components/rich-link/rich-link.meta.d.ts +2 -0
- package/dist/components/skeleton/skeleton.d.ts +7 -4
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1465 -1382
- package/dist/style.css +1 -1
- package/package.json +1 -1
- package/src/docgen/doc.gen.json +53 -2
- package/src/llms/llms.gen.txt +5 -0
- package/src/llms/skills/imf-web-ui-conventions/topics/library-boundary.md +6 -0
- package/src/llms/skills/imf-web-ui-ux/SKILL.md +2 -0
- package/src/llms/tokens.gen.json +6 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,45 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [Unreleased]
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- `RichLink` is a link that fills a row: an optional icon on a tile tinted in the primary color, a label, an optional
|
|
8
|
+
description line, and a trailing arrow for where it leads, which `endGlyph` replaces. It renders a plain anchor, so
|
|
9
|
+
TanStack Router's `createLink` can wrap it
|
|
10
|
+
([WEBSDK-272](https://imfusion.atlassian.net/browse/WEBSDK-272)) — Nikolaus Brunner <brunner@imfusion.com>
|
|
11
|
+
- Agent skills — Nikolaus Brunner <brunner@imfusion.com>
|
|
12
|
+
- `imf-web-ui-conventions` puts a stand-in for a missing Web UI component in `components/web-ui-pending/`, built as
|
|
13
|
+
the library would ship it and deleted once it does.
|
|
14
|
+
- Components — Nikolaus Brunner <brunner@imfusion.com>
|
|
15
|
+
- `Skeleton.Root` takes `loading` and fades the data in over the bones when it turns false.
|
|
16
|
+
|
|
17
|
+
### Changed
|
|
18
|
+
|
|
19
|
+
- Agent skills — Nikolaus Brunner <brunner@imfusion.com>
|
|
20
|
+
- `imf-web-ui-ux` picks `ChipLink` for a link inside text or a row of chips and `RichLink` for a link that fills its own
|
|
21
|
+
row ([WEBSDK-272](https://imfusion.atlassian.net/browse/WEBSDK-272)).
|
|
22
|
+
- Components — Nikolaus Brunner <brunner@imfusion.com>
|
|
23
|
+
- The `variant="position"` Slider thumb is primary at rest and gray on hover, with an outline ring on keyboard focus. It is
|
|
24
|
+
opaque, so a `Slider.Indicator` under it stays hidden.
|
|
25
|
+
- Typography — Nikolaus Brunner <brunner@imfusion.com>
|
|
26
|
+
- Every fluid font size grows across the same viewport range, 360px to 1920px, so the type hierarchy keeps its order at
|
|
27
|
+
every width. `--imf-ui-font-size-fluid-0` to `fluid-2` follow one ratio scale above `--imf-ui-font-size-body`:
|
|
28
|
+
`fluid-0` runs from 19.2px to 25px, `fluid-1` from 23px to 31.25px, and `fluid-2` from 27.6px to 39px.
|
|
29
|
+
- `Typo.H3` uses `--imf-ui-font-size-fluid-1` and `Typo.H4` uses `--imf-ui-font-size-fluid-0`, both at the regular
|
|
30
|
+
weight. `Typo.H2` uses the medium weight, and `Typo.Blockquote` uses `--imf-ui-font-size-fluid-0`.
|
|
31
|
+
- `--imf-ui-font-lineheight-title` follows the larger H2 range.
|
|
32
|
+
- The Typo page has a Hierarchy story that renders every member at 360px, 768px, 1440px, and 1920px side by side.
|
|
33
|
+
|
|
34
|
+
### Fixed
|
|
35
|
+
|
|
36
|
+
- Components — Nikolaus Brunner <brunner@imfusion.com>
|
|
37
|
+
- Slider thumbs draw their focus ring on keyboard focus.
|
|
38
|
+
- Storybook — Nikolaus Brunner <brunner@imfusion.com>
|
|
39
|
+
- The Slider `All` story renders the position variant without an indicator, as the `Position` story does.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
3
43
|
## `0.9.0` 2026.10.14
|
|
4
44
|
|
|
5
45
|
### Highlights
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { IconComponent } from '../icon';
|
|
2
|
+
type Props = React.ComponentProps<"a"> & {
|
|
3
|
+
/** Leading icon from `@imfusion/web-ui/icons`, shown on a tile in the primary color. */
|
|
4
|
+
glyph?: IconComponent;
|
|
5
|
+
/** Second line under the label. When set, the label turns bold. */
|
|
6
|
+
description?: React.ReactNode;
|
|
7
|
+
/** Link target scope. `"external"` (default) opens in a new tab with a diagonal `ArrowUpRight` icon; `"internal"` stays in the current tab with a horizontal `ArrowRight` icon. */
|
|
8
|
+
kind?: "external" | "internal";
|
|
9
|
+
/** Trailing icon from `@imfusion/web-ui/icons`, replacing the arrow `kind` picks, such as `Download` for a file. */
|
|
10
|
+
endGlyph?: IconComponent;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* RichLink — a link as a whole row: an optional leading icon on a tinted tile, the label with an optional description
|
|
14
|
+
* line, and a trailing icon for where it leads. Draws no divider; stacked links get their spacing from the layout. Wrap it
|
|
15
|
+
* with TanStack Router's `createLink` to use it as a router link.
|
|
16
|
+
*/
|
|
17
|
+
export declare function RichLink({ glyph, description, kind, endGlyph, children, ...props }: Props): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
export {};
|
|
@@ -2,14 +2,17 @@ import { useRender } from '@base-ui/react/use-render';
|
|
|
2
2
|
type RootProps = useRender.ComponentProps<"div"> & {
|
|
3
3
|
/** Announced once through a visually hidden status. Pass `""` when something else already speaks for the region. */
|
|
4
4
|
label: string;
|
|
5
|
-
/**
|
|
5
|
+
/** Whether the region is still loading. Root stays mounted and reveals the data when this turns false. */
|
|
6
|
+
loading?: boolean;
|
|
7
|
+
/** `none` holds every bone inside still and swaps in the data without a reveal. */
|
|
6
8
|
animation?: "shimmer" | "none";
|
|
7
9
|
};
|
|
8
10
|
/**
|
|
9
|
-
* Skeleton.Root — marks a region as loading. The view inside renders for real; bones stand in for the data.
|
|
10
|
-
* `aria-busy` and announces `label` once, however many bones it holds.
|
|
11
|
+
* Skeleton.Root — marks a region as loading. The view inside renders for real; bones stand in for the data. While
|
|
12
|
+
* `loading`, sets `aria-busy` and announces `label` once, however many bones it holds. When `loading` turns false, the
|
|
13
|
+
* data fades in over the bones.
|
|
11
14
|
*/
|
|
12
|
-
declare function Root({ label, animation, render, ...props }: RootProps): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
declare function Root({ label, loading, animation, render, children, ...props }: RootProps): import("react/jsx-runtime").JSX.Element;
|
|
13
16
|
declare namespace Root {
|
|
14
17
|
var displayName: string;
|
|
15
18
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export { Button, buttonMeta } from './components/button';
|
|
|
2
2
|
export { ChipLink, chipLinkMeta } from './components/chip-link';
|
|
3
3
|
export { CopyButton, copyButtonMeta } from './components/copy-button';
|
|
4
4
|
export { IconButton, iconButtonMeta } from './components/icon-button';
|
|
5
|
+
export { RichLink, richLinkMeta } from './components/rich-link';
|
|
5
6
|
export { Checkbox, checkboxMeta } from './components/checkbox';
|
|
6
7
|
export { Field, fieldMeta } from './components/field';
|
|
7
8
|
export { Fieldset, fieldsetMeta } from './components/fieldset';
|