@imfusion/web-ui 0.7.2-dev.15.g211a27e5 → 0.7.2-dev.18.g7ab1515e

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,8 +2,18 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ### Breaking
6
+
7
+ - **Breaking:** Web UI components have no outer margin. `Stack` and `Row` gaps space UI, and `Prose` spaces long-form text. — Nikolaus Brunner <brunner@imfusion.com>
8
+ - Block `Typo` members (`Hero`, `H1`–`H4`, `P`, `Lead`, `Blockquote`, and the lists) have no default margin and no
9
+ `spacing` prop.
10
+ - `Callout.Root`, `Table.Root`, and `Code.Block` have no bottom margin.
11
+ - `Separator` has no `spacing` prop.
12
+
5
13
  ### Added
6
14
 
15
+ - Components — Nikolaus Brunner <brunner@imfusion.com>
16
+ - `Prose` spaces long-form text and the blocks inside it.
7
17
  - Vite plugins — Nikolaus Brunner <brunner@imfusion.com>
8
18
  - `localWebUILink` dedupes the library's peer dependencies in an app that links a local checkout.
9
19
  - Storybook — Nikolaus Brunner <brunner@imfusion.com>
@@ -12,11 +22,15 @@
12
22
  ### Changed
13
23
 
14
24
  - Components — Nikolaus Brunner <brunner@imfusion.com>
25
+ - Read-only `Input`, `NumberField`, and `Select` share a dashed border, muted text, and no fill.
15
26
  - `Drawer` draws its open-edge border at `--imf-ui-border-size-1`.
16
27
  - `NavigationMenu.Link` has no hover arrow, so its label sits centered between even padding.
17
28
  - `NavigationMenu` flyout text and padding scale with the fluid body size.
18
29
  - `NavigationMenu.InlineSubmenu` spaces its rail and detail pane with one flyout padding.
19
30
  - Agent skills — Nikolaus Brunner <brunner@imfusion.com>
31
+ - `imf-web-ui-conventions` says when a locked field uses `readOnly`, `disabled`, or plain text.
32
+ - `imf-web-ui-conventions` has a Spacing section, and `imf-web-ui-audit` checks it.
33
+ - `imf-web-ui-update` finds the call sites of a style-only breaking change by component usage.
20
34
  - `imf-web-ui-update` measures the delta from a prerelease baseline by diffing the old package's types and styles.
21
35
  - The component and story dev skills name the Storybook CLI command for each lookup and check, and route only pixels, DOM,
22
36
  focus, and console checks to Chrome DevTools.
@@ -25,6 +39,9 @@
25
39
 
26
40
  ### Fixed
27
41
 
42
+ - Components — Nikolaus Brunner <brunner@imfusion.com>
43
+ - A read-only search `Input` has no clear button.
44
+ - `WebUIProvider` and `useColorScheme` render on the server and hydrate from the stored and OS color scheme.
28
45
  - Storybook — Nikolaus Brunner <brunner@imfusion.com>
29
46
  - Nested sidebar groups and components indent under their parent group.
30
47
  - Sidebar components line up with the stories and docs beside them.
@@ -0,0 +1,2 @@
1
+ export { Prose } from './prose';
2
+ export { proseMeta } from './prose.meta';
@@ -0,0 +1 @@
1
+ export declare function Prose(props: React.HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { ComponentMeta } from '../../types/meta';
2
+ export declare const proseMeta: ComponentMeta;
@@ -2,7 +2,6 @@ import { Separator as SeparatorPrimitive } from '@base-ui/react/separator';
2
2
  import { VariantProps } from 'class-variance-authority';
3
3
  declare const separator: (props?: ({
4
4
  variant?: "solid" | "dashed" | "dotted" | null | undefined;
5
- spacing?: "none" | "small" | "medium" | "large" | "spacious" | null | undefined;
6
5
  } & import('class-variance-authority/types').ClassProp) | undefined) => string;
7
6
  interface Props extends React.ComponentProps<typeof SeparatorPrimitive>, VariantProps<typeof separator> {
8
7
  }
@@ -12,5 +11,5 @@ interface Props extends React.ComponentProps<typeof SeparatorPrimitive>, Variant
12
11
  * @see https://base-ui.com/react/components/separator
13
12
  * @llm https://base-ui.com/react/components/separator.md
14
13
  */
15
- export declare function Separator({ orientation, variant, spacing, ...props }: Props): import("react/jsx-runtime").JSX.Element;
14
+ export declare function Separator({ orientation, variant, ...props }: Props): import("react/jsx-runtime").JSX.Element;
16
15
  export {};
@@ -4,54 +4,50 @@ import { Code } from '../code';
4
4
  declare const typo: (props?: ({
5
5
  variant?: "primary" | "positive" | "negative" | "oncolor" | "main" | "support" | "minor" | "brand" | "warning" | "info" | "accent-1" | "accent-2" | "accent-3" | null | undefined;
6
6
  } & import('class-variance-authority/types').ClassProp) | undefined) => string;
7
- declare const spacingVariants: (props?: ({
8
- spacing?: "none" | "default" | null | undefined;
9
- } & import('class-variance-authority/types').ClassProp) | undefined) => string;
10
7
  type TypoProps = VariantProps<typeof typo>;
11
- type SpacingProps = VariantProps<typeof spacingVariants>;
12
- type HeadingProps = useRender.ComponentProps<"h1"> & TypoProps & SpacingProps;
8
+ type HeadingProps = useRender.ComponentProps<"h1"> & TypoProps;
13
9
  type LongHeadingProps = HeadingProps & {
14
10
  /** Whether lines after the first use a translucent text color. */
15
11
  fadeAfterFirstLine?: boolean;
16
12
  };
17
- type ParagraphProps = useRender.ComponentProps<"p"> & TypoProps & SpacingProps;
13
+ type ParagraphProps = useRender.ComponentProps<"p"> & TypoProps;
18
14
  export type TypoLinkKind = "external" | "internal";
19
15
  type LinkProps = useRender.ComponentProps<"a"> & TypoProps & {
20
16
  /** Link target scope. `"external"` (default) opens in a new tab; `"internal"` stays in the current tab. */
21
17
  kind?: TypoLinkKind;
22
18
  };
23
19
  /** Typo.Hero — oversized page heading. */
24
- export declare function Hero({ variant, spacing, fadeAfterFirstLine, render, ...props }: LongHeadingProps): import('react').ReactElement<unknown, string | import('react').JSXElementConstructor<any>>;
20
+ export declare function Hero({ variant, fadeAfterFirstLine, render, ...props }: LongHeadingProps): import('react').ReactElement<unknown, string | import('react').JSXElementConstructor<any>>;
25
21
  export declare namespace Hero {
26
22
  var displayName: string;
27
23
  }
28
24
  /** Typo.H1 — top-level page heading. */
29
- export declare function H1({ variant, spacing, fadeAfterFirstLine, render, ...props }: LongHeadingProps): import('react').ReactElement<unknown, string | import('react').JSXElementConstructor<any>>;
25
+ export declare function H1({ variant, fadeAfterFirstLine, render, ...props }: LongHeadingProps): import('react').ReactElement<unknown, string | import('react').JSXElementConstructor<any>>;
30
26
  export declare namespace H1 {
31
27
  var displayName: string;
32
28
  }
33
29
  /** Typo.H2 — section heading. */
34
- export declare function H2({ variant, spacing, fadeAfterFirstLine, render, ...props }: LongHeadingProps): import('react').ReactElement<unknown, string | import('react').JSXElementConstructor<any>>;
30
+ export declare function H2({ variant, fadeAfterFirstLine, render, ...props }: LongHeadingProps): import('react').ReactElement<unknown, string | import('react').JSXElementConstructor<any>>;
35
31
  export declare namespace H2 {
36
32
  var displayName: string;
37
33
  }
38
34
  /** Typo.H3 — sub-section heading. */
39
- export declare function H3({ variant, spacing, render, ...props }: HeadingProps): import('react').ReactElement<unknown, string | import('react').JSXElementConstructor<any>>;
35
+ export declare function H3({ variant, render, ...props }: HeadingProps): import('react').ReactElement<unknown, string | import('react').JSXElementConstructor<any>>;
40
36
  export declare namespace H3 {
41
37
  var displayName: string;
42
38
  }
43
39
  /** Typo.H4 — minor heading. */
44
- export declare function H4({ variant, spacing, render, ...props }: HeadingProps): import('react').ReactElement<unknown, string | import('react').JSXElementConstructor<any>>;
40
+ export declare function H4({ variant, render, ...props }: HeadingProps): import('react').ReactElement<unknown, string | import('react').JSXElementConstructor<any>>;
45
41
  export declare namespace H4 {
46
42
  var displayName: string;
47
43
  }
48
44
  /** Typo.P — body paragraph. */
49
- export declare function P({ variant, spacing, render, ...props }: ParagraphProps): import('react').ReactElement<unknown, string | import('react').JSXElementConstructor<any>>;
45
+ export declare function P({ variant, render, ...props }: ParagraphProps): import('react').ReactElement<unknown, string | import('react').JSXElementConstructor<any>>;
50
46
  export declare namespace P {
51
47
  var displayName: string;
52
48
  }
53
49
  /** Typo.Lead — emphasised intro paragraph. */
54
- export declare function Lead({ variant, spacing, render, ...props }: ParagraphProps): import('react').ReactElement<unknown, string | import('react').JSXElementConstructor<any>>;
50
+ export declare function Lead({ variant, render, ...props }: ParagraphProps): import('react').ReactElement<unknown, string | import('react').JSXElementConstructor<any>>;
55
51
  export declare namespace Lead {
56
52
  var displayName: string;
57
53
  }
@@ -66,7 +62,7 @@ export declare namespace Small {
66
62
  var displayName: string;
67
63
  }
68
64
  /** Typo.Blockquote — pulled quotation. */
69
- export declare function Blockquote({ variant, spacing, render, ...props }: useRender.ComponentProps<"blockquote"> & TypoProps & SpacingProps): import('react').ReactElement<unknown, string | import('react').JSXElementConstructor<any>>;
65
+ export declare function Blockquote({ variant, render, ...props }: useRender.ComponentProps<"blockquote"> & TypoProps): import('react').ReactElement<unknown, string | import('react').JSXElementConstructor<any>>;
70
66
  export declare namespace Blockquote {
71
67
  var displayName: string;
72
68
  }
@@ -89,12 +85,12 @@ export declare namespace Link {
89
85
  var displayName: string;
90
86
  }
91
87
  /** Typo.OrderedList — numbered list. */
92
- export declare function OrderedList({ variant, spacing, render, ...props }: useRender.ComponentProps<"ol"> & TypoProps & SpacingProps): import('react').ReactElement<unknown, string | import('react').JSXElementConstructor<any>>;
88
+ export declare function OrderedList({ variant, render, ...props }: useRender.ComponentProps<"ol"> & TypoProps): import('react').ReactElement<unknown, string | import('react').JSXElementConstructor<any>>;
93
89
  export declare namespace OrderedList {
94
90
  var displayName: string;
95
91
  }
96
92
  /** Typo.UnorderedList — bulleted list. */
97
- export declare function UnorderedList({ variant, spacing, render, ...props }: useRender.ComponentProps<"ul"> & TypoProps & SpacingProps): import('react').ReactElement<unknown, string | import('react').JSXElementConstructor<any>>;
93
+ export declare function UnorderedList({ variant, render, ...props }: useRender.ComponentProps<"ul"> & TypoProps): import('react').ReactElement<unknown, string | import('react').JSXElementConstructor<any>>;
98
94
  export declare namespace UnorderedList {
99
95
  var displayName: string;
100
96
  }
package/dist/index.d.ts CHANGED
@@ -15,6 +15,7 @@ export { AppShell, appShellMeta } from './components/app-shell';
15
15
  export { Card, cardMeta } from './components/card';
16
16
  export { Drawer, drawerMeta } from './components/drawer';
17
17
  export { Popover, popoverMeta } from './components/popover';
18
+ export { Prose, proseMeta } from './components/prose';
18
19
  export { Row, rowMeta } from './components/row';
19
20
  export { Separator, separatorMeta } from './components/separator';
20
21
  export { Stack, stackMeta } from './components/stack';