@imfusion/web-ui 0.11.1-dev.1.g5777bd0b → 0.11.1-dev.16.g726f3414

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 CHANGED
@@ -2,11 +2,53 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ### Added
6
+
7
+ - `minWidth` and the `BreakpointName` type are exported, so `useMediaQuery(minWidth("md"))` works as the `styling` topic
8
+ shows. — Nikolaus Brunner <brunner@imfusion.com>
9
+ - `@imfusion/web-ui/icons` adds four viewport layout icons in the Layout category: `LayoutAuto`, `LayoutRows`,
10
+ `LayoutFocusPlusStack`, and `LayoutFocusPlusRows`. [Iconography](src/icons/iconography.stories.tsx#Iconography)
11
+ — Stephan Wenninger <wenninger@imfusion.com>
12
+ - `Typo.UnorderedList` takes `markerVariant` to colour its dash apart from the text, such as the brand dash on main text.
13
+ [Typo](src/components/typo/typo.stories.tsx#MarkerVariant) — Nikolaus Brunner <brunner@imfusion.com>
14
+
5
15
  ### Changed
6
16
 
17
+ - `Typo.UnorderedList` draws its dash in the text colour by default; `markerVariant="primary"` gives the brand dash.
18
+ — Nikolaus Brunner <brunner@imfusion.com>
19
+ - `Callout.Root` defaults to `maxWidth="lg"`, keeps a minimum width of 15rem, and spaces its title, description, and list
20
+ items more evenly. [Callout](src/components/callout/callout.stories.tsx#WithList) — Nikolaus Brunner <brunner@imfusion.com>
7
21
  - Agent skills — Nikolaus Brunner <brunner@imfusion.com>
8
22
  - `imf-web-ui-conventions` exempts React components from the explicit return type on exported functions.
23
+ - The `project-structure` topic keeps a route's only view, such as a form, in the route file and moves views to the `-`
24
+ folder only when the page composes several. `imf-web-ui-audit` reports by views, not line counts.
9
25
  - The `imf-web-ui-conventions` audit checklist names the assets box "Photographs: WebP", like its topic heading.
26
+ - `web-ui-dev-new-component`, `web-ui-dev-update-component`, and `web-ui-dev-design-component` draft on the shared
27
+ Web UI Component Drafts canvas: a block per component on its Storybook group's page, one row per fidelity rung.
28
+ - `web-ui-dev-new-component` and `web-ui-dev-update-component` wait for the user to approve the design on the canvas
29
+ before writing the plan.
30
+ - Agents verify visual work on their own Storybook, started with `npm run dev`, against the approved canvas design.
31
+ - The `imf-web-ui-conventions` `styling` topic shows a container setting a custom property that its child reads with
32
+ its own default as the fallback.
33
+ - `web-ui-dev-release` syncs the Claude Design system once npm serves the stable version.
34
+ - Documentation — Nikolaus Brunner <brunner@imfusion.com>
35
+ - `docs/design-system.md` describes the Web UI Component Drafts canvas, and `AGENTS.md` links it. A shipped component
36
+ keeps its block under an "Implemented" note that names its story.
37
+ - `docs/conventions.md` shows how a component declares its default as a custom-property fallback that a container
38
+ overrides.
39
+ - Storybook — Nikolaus Brunner <brunner@imfusion.com>
40
+ - The Controls table lists a component's own props first, then the props it inherits from Base UI or React.
41
+
42
+ ### Fixed
43
+
44
+ - Typo inside `Callout.Description`, such as `Typo.UnorderedList` or `Typo.P`, matches the description's size and takes
45
+ the variant's colour. [Callout](src/components/callout/callout.stories.tsx#WithList) — Nikolaus Brunner <brunner@imfusion.com>
46
+ - `Table.RowLink` covers its whole row: a click anywhere in the row follows the link, while buttons, checkboxes, switches,
47
+ links, and form fields in the row keep their own click. — Nikolaus Brunner <brunner@imfusion.com>
48
+ - `npm run dev` starts Storybook on the next free port again while another checkout's Storybook runs. — Nikolaus Brunner
49
+ <brunner@imfusion.com>
50
+ - Components — Nikolaus Brunner <brunner@imfusion.com>
51
+ - A `Drawer.Close` or `Popover.Close` rendered as another component, such as a `Button`, keeps that component's styles.
10
52
 
11
53
  ---
12
54
 
@@ -1,5 +1,5 @@
1
1
  import { r as e } from "./resolve-state-props-DQf9WiGv.js";
2
- import { Xo as t, ja as n, pM as r } from "./icons-BsK_o-Cb.js";
2
+ import { Xo as t, _M as n, ja as r } from "./icons-vc1WZCxX.js";
3
3
  import { t as i } from "./meta-V_KyLeGn.js";
4
4
  import { a, i as o, n as s, o as c, s as l } from "./scroll-area-z9Lf9uIk.js";
5
5
  import { cx as u } from "class-variance-authority";
@@ -34,7 +34,7 @@ var x = {
34
34
  InlineLink: () => w
35
35
  });
36
36
  function C({ copyable: e = !1, children: i, render: a, ...o }) {
37
- let { copied: s, copy: c } = b(), l = g(null), u = s ? n : t;
37
+ let { copied: s, copy: c } = b(), l = g(null), u = s ? r : t;
38
38
  return y({
39
39
  defaultTagName: "code",
40
40
  render: a,
@@ -53,7 +53,7 @@ function C({ copyable: e = !1, children: i, render: a, ...o }) {
53
53
  "data-copied": s || void 0,
54
54
  "aria-label": s ? "Copied" : "Copy",
55
55
  onClick: () => c(l.current?.textContent ?? ""),
56
- children: /* @__PURE__ */ f(r, {
56
+ children: /* @__PURE__ */ f(n, {
57
57
  glyph: u,
58
58
  size: 12,
59
59
  strokeWidth: 2,
@@ -87,7 +87,7 @@ function w({ kind: e = "external", ...t }) {
87
87
  }
88
88
  w.displayName = "Code.InlineLink";
89
89
  function T({ className: e, language: i, hideCopy: d = !1, children: m, ...h }) {
90
- let { copied: _, copy: v } = b(), y = g(null), S = _ ? n : t;
90
+ let { copied: _, copy: v } = b(), y = g(null), S = _ ? r : t;
91
91
  return /* @__PURE__ */ p("div", {
92
92
  "data-imf-ui-component": "Code.Block",
93
93
  className: u(x.block, e),
@@ -102,7 +102,7 @@ function T({ className: e, language: i, hideCopy: d = !1, children: m, ...h }) {
102
102
  "data-copied": _ || void 0,
103
103
  "aria-label": _ ? "Copied" : "Copy",
104
104
  onClick: () => v(y.current?.textContent ?? ""),
105
- children: /* @__PURE__ */ f(r, {
105
+ children: /* @__PURE__ */ f(n, {
106
106
  glyph: S,
107
107
  size: 12,
108
108
  strokeWidth: 2,
@@ -9,6 +9,10 @@ type WeightProps = {
9
9
  /** Font weight. Omit to keep the member's default; `medium` firms up short body text on cards. */
10
10
  weight?: "regular" | "medium" | "strong";
11
11
  };
12
+ type MarkerProps = {
13
+ /** Colour of the dash. Omit to follow the text colour. */
14
+ markerVariant?: TypoProps["variant"];
15
+ };
12
16
  type HeadingProps = useRender.ComponentProps<"h1"> & TypoProps;
13
17
  type LongHeadingProps = HeadingProps & {
14
18
  /** Whether lines after the first use a translucent text color. */
@@ -99,7 +103,7 @@ export declare namespace OrderedList {
99
103
  var displayName: string;
100
104
  }
101
105
  /** Typo.UnorderedList — bulleted list. */
102
- export declare function UnorderedList({ variant, weight, render, ...props }: useRender.ComponentProps<"ul"> & TypoProps & WeightProps): import('react').ReactElement<unknown, string | import('react').JSXElementConstructor<any>>;
106
+ export declare function UnorderedList({ variant, markerVariant, weight, render, ...props }: useRender.ComponentProps<"ul"> & TypoProps & WeightProps & MarkerProps): import('react').ReactElement<unknown, string | import('react').JSXElementConstructor<any>>;
103
107
  export declare namespace UnorderedList {
104
108
  var displayName: string;
105
109
  }
@@ -4,4 +4,8 @@ export type ComponentSource = {
4
4
  componentFile: string;
5
5
  metaFile: string;
6
6
  };
7
+ /**
8
+ * A component folder is public when the package index exports it; an unexported folder is internal.
9
+ * Integrations ship through their own entry points and are always public.
10
+ */
7
11
  export declare function publicComponentSources(srcDir: string): ComponentSource[];
@@ -6011,6 +6011,27 @@ export declare const ICON_CATALOG: readonly [{
6011
6011
  readonly style: "regular";
6012
6012
  readonly origin: "iconoir";
6013
6013
  readonly file: "regular/laptop-warning.svg";
6014
+ }, {
6015
+ readonly name: "LayoutAuto";
6016
+ readonly category: "Layout";
6017
+ readonly tags: readonly ["layout", "auto", "masonry", "viewports", "tiles", "grid"];
6018
+ readonly style: "regular";
6019
+ readonly origin: "imfusion";
6020
+ readonly file: "regular/layout-auto.svg";
6021
+ }, {
6022
+ readonly name: "LayoutFocusPlusRows";
6023
+ readonly category: "Layout";
6024
+ readonly tags: readonly ["layout", "focus", "rows", "main viewport", "viewports", "split"];
6025
+ readonly style: "regular";
6026
+ readonly origin: "imfusion";
6027
+ readonly file: "regular/layout-focus-plus-rows.svg";
6028
+ }, {
6029
+ readonly name: "LayoutFocusPlusStack";
6030
+ readonly category: "Layout";
6031
+ readonly tags: readonly ["layout", "focus", "stack", "main viewport", "sidebar", "viewports"];
6032
+ readonly style: "regular";
6033
+ readonly origin: "imfusion";
6034
+ readonly file: "regular/layout-focus-plus-stack.svg";
6014
6035
  }, {
6015
6036
  readonly name: "LayoutLeft";
6016
6037
  readonly category: "Layout";
@@ -6025,6 +6046,13 @@ export declare const ICON_CATALOG: readonly [{
6025
6046
  readonly style: "regular";
6026
6047
  readonly origin: "iconoir";
6027
6048
  readonly file: "regular/layout-right.svg";
6049
+ }, {
6050
+ readonly name: "LayoutRows";
6051
+ readonly category: "Layout";
6052
+ readonly tags: readonly ["layout", "rows", "viewports", "grid", "2x2", "tiles"];
6053
+ readonly style: "regular";
6054
+ readonly origin: "imfusion";
6055
+ readonly file: "regular/layout-rows.svg";
6028
6056
  }, {
6029
6057
  readonly name: "Leaderboard";
6030
6058
  readonly category: "Activities";
@@ -857,8 +857,12 @@ export declare const LaptopCharging: import('.').IconComponent;
857
857
  export declare const LaptopDevMode: import('.').IconComponent;
858
858
  export declare const LaptopFix: import('.').IconComponent;
859
859
  export declare const LaptopWarning: import('.').IconComponent;
860
+ export declare const LayoutAuto: import('.').IconComponent;
861
+ export declare const LayoutFocusPlusRows: import('.').IconComponent;
862
+ export declare const LayoutFocusPlusStack: import('.').IconComponent;
860
863
  export declare const LayoutLeft: import('.').IconComponent;
861
864
  export declare const LayoutRight: import('.').IconComponent;
865
+ export declare const LayoutRows: import('.').IconComponent;
862
866
  export declare const Leaderboard: import('.').IconComponent;
863
867
  export declare const LeaderboardStar: import('.').IconComponent;
864
868
  export declare const Leaf: import('.').IconComponent;