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

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 (141) hide show
  1. package/CHANGELOG.md +391 -0
  2. package/README.md +22 -55
  3. package/dist/assets/vendors/base-ui.d.ts +2 -3
  4. package/dist/breakpoints/min-width.d.ts +3 -7
  5. package/dist/breakpoints/registry.d.ts +3 -9
  6. package/dist/{code-Ce8uiPsv.js → code-D2lwxHgd.js} +15 -15
  7. package/dist/codegen/gen-breakpoints-css.d.ts +0 -4
  8. package/dist/codegen/gen-token-css.d.ts +0 -2
  9. package/dist/components/app-shell/app-shell.d.ts +7 -11
  10. package/dist/components/button/button.d.ts +7 -12
  11. package/dist/components/callout/callout.d.ts +11 -18
  12. package/dist/components/card/card.d.ts +11 -10
  13. package/dist/components/checkbox/checkbox.d.ts +2 -38
  14. package/dist/components/chip/chip.cva.d.ts +2 -4
  15. package/dist/components/chip/chip.d.ts +1 -1
  16. package/dist/components/code/code.d.ts +2 -2
  17. package/dist/components/collapsible/collapsible.d.ts +4 -35
  18. package/dist/components/copy-button/copy-button.d.ts +1 -1
  19. package/dist/components/drawer/drawer.d.ts +17 -100
  20. package/dist/components/field/field.d.ts +7 -67
  21. package/dist/components/fieldset/fieldset.d.ts +2 -15
  22. package/dist/components/icon/icon.d.ts +2 -2
  23. package/dist/components/input/input.d.ts +2 -8
  24. package/dist/components/logo/imfusion/imfusion.d.ts +2 -5
  25. package/dist/components/logo/imfusion/marks.d.ts +10 -0
  26. package/dist/components/logo/logo.d.ts +3 -3
  27. package/dist/components/navigation-menu/subs/flyout-link.d.ts +5 -19
  28. package/dist/components/navigation-menu/subs/inline-submenu.d.ts +2 -4
  29. package/dist/components/navigation-menu/subs/link.d.ts +6 -23
  30. package/dist/components/navigation-menu/subs/overlay.d.ts +6 -51
  31. package/dist/components/navigation-menu/subs/shared.d.ts +4 -14
  32. package/dist/components/navigation-menu/subs/structure.d.ts +7 -29
  33. package/dist/components/navigation-menu/subs/trigger.d.ts +11 -20
  34. package/dist/components/number-field/index.d.ts +2 -0
  35. package/dist/components/number-field/number-field.d.ts +72 -0
  36. package/dist/components/number-field/number-field.meta.d.ts +2 -0
  37. package/dist/components/popover/popover.d.ts +23 -98
  38. package/dist/components/row/row.d.ts +1 -1
  39. package/dist/components/select/select.d.ts +26 -189
  40. package/dist/components/separator/separator.d.ts +5 -4
  41. package/dist/components/slider/slider.d.ts +7 -77
  42. package/dist/components/spinner/spinner.d.ts +13 -8
  43. package/dist/components/stack/stack.d.ts +3 -4
  44. package/dist/components/switch/switch.d.ts +2 -31
  45. package/dist/components/table/table.d.ts +10 -18
  46. package/dist/components/tabs/tabs.d.ts +18 -52
  47. package/dist/components/toast/toast.d.ts +16 -103
  48. package/dist/components/toggle/toggle.d.ts +3 -21
  49. package/dist/components/toggle-group/toggle-group.d.ts +3 -20
  50. package/dist/components/tooltip/tooltip.d.ts +26 -85
  51. package/dist/components/typo/typo.d.ts +25 -25
  52. package/dist/docgen/gen-docgen.utils.d.ts +3 -4
  53. package/dist/hooks/use-color-scheme.d.ts +5 -11
  54. package/dist/hooks/use-media-query.d.ts +2 -7
  55. package/dist/{icons-Cy1HAosO.js → icons-CaGCCwG-.js} +7 -7
  56. package/dist/icons.js +1 -1
  57. package/dist/index.d.ts +1 -0
  58. package/dist/index.js +1486 -1368
  59. package/dist/integrations/code-highlight/highlighter.d.ts +1 -56
  60. package/dist/integrations/code-highlight.js +41 -189
  61. package/dist/integrations/image-display-options/image-display-options-view.utils.d.ts +0 -1
  62. package/dist/integrations/image-display-options.js +54 -54
  63. package/dist/llms/evals/runner/affected.d.ts +2 -0
  64. package/dist/llms/evals/runner/benchmark.d.ts +12 -0
  65. package/dist/llms/evals/runner/compare.d.ts +2 -0
  66. package/dist/llms/evals/runner/config.d.ts +29 -0
  67. package/dist/llms/evals/runner/evidence.d.ts +7 -0
  68. package/dist/llms/evals/runner/execute.d.ts +32 -0
  69. package/dist/llms/evals/runner/grade.d.ts +10 -0
  70. package/dist/llms/evals/runner/report-md.d.ts +2 -0
  71. package/dist/llms/evals/runner/report.d.ts +4 -0
  72. package/dist/llms/evals/runner/run.d.ts +2 -0
  73. package/dist/llms/evals/runner/scenario.d.ts +3 -0
  74. package/dist/llms/evals/runner/types.d.ts +140 -0
  75. package/dist/llms/evals/runner/workspace.d.ts +2 -0
  76. package/dist/llms/evals/runner/write-generated.d.ts +1 -0
  77. package/dist/provider/web-ui-provider.d.ts +4 -1
  78. package/dist/style.css +1 -1
  79. package/dist/tabs-BS6rqrrA.js +398 -0
  80. package/dist/tokens/apply.d.ts +4 -9
  81. package/dist/tokens/control-registry.d.ts +3 -6
  82. package/dist/tokens/types.d.ts +7 -24
  83. package/dist/tokens/use-token-controls.d.ts +3 -12
  84. package/dist/types/meta.d.ts +15 -32
  85. package/dist/utils/index.d.ts +1 -0
  86. package/dist/utils/resolve-state-props.d.ts +4 -0
  87. package/dist/vite/brand-assets.d.ts +3 -0
  88. package/dist/vite/index.d.ts +2 -0
  89. package/dist/vite/readable-css-module-names.d.ts +11 -0
  90. package/dist/vite.js +55 -0
  91. package/dist/web-ui-cli.js +322 -0
  92. package/docs/user-guide/AgentTooling.mdx +133 -0
  93. package/docs/user-guide/BrandAssets.mdx +103 -0
  94. package/docs/user-guide/Changelog.mdx +26 -0
  95. package/docs/user-guide/GettingStarted.mdx +71 -0
  96. package/docs/user-guide/HowItsBuilt.mdx +114 -0
  97. package/docs/user-guide/Tokens.mdx +88 -0
  98. package/docs/user-guide/UsagePatterns.mdx +123 -0
  99. package/package.json +28 -22
  100. package/src/assets/public/favicon/apple-touch-icon.png +0 -0
  101. package/src/assets/public/favicon/favicon-16.png +0 -0
  102. package/src/assets/public/favicon/favicon-32.png +0 -0
  103. package/src/assets/public/favicon/favicon.ico +0 -0
  104. package/src/assets/public/favicon/favicon.svg +7 -0
  105. package/src/assets/public/favicon/icon-192.png +0 -0
  106. package/src/assets/public/favicon/icon-512.png +0 -0
  107. package/src/assets/public/favicon/og-image.png +0 -0
  108. package/src/assets/public/spinner/imfusion-spinner-black.webp +0 -0
  109. package/src/assets/public/spinner/imfusion-spinner-blue.webp +0 -0
  110. package/src/assets/public/spinner/imfusion-spinner-white.webp +0 -0
  111. package/src/docgen/doc.gen.json +3255 -603
  112. package/src/llms/install-templates/AGENTS.md +4 -4
  113. package/src/llms/install-templates/hooks/baseline-staleness.sh +9 -2
  114. package/src/llms/llms.gen.txt +7 -1
  115. package/src/llms/skills/imf-web-ui/SKILL.md +44 -21
  116. package/src/llms/skills/imf-web-ui-audit/SKILL.md +25 -11
  117. package/src/llms/skills/imf-web-ui-components/SKILL.md +7 -3
  118. package/src/llms/skills/imf-web-ui-conventions/SKILL.md +3 -2
  119. package/src/llms/skills/imf-web-ui-conventions/templates/AUDIT_CHECKLIST.md +0 -1
  120. package/src/llms/skills/imf-web-ui-conventions/templates/REPORT.md +21 -2
  121. package/src/llms/skills/imf-web-ui-conventions/topics/agent-tooling.md +15 -10
  122. package/src/llms/skills/imf-web-ui-conventions/topics/assets.md +7 -4
  123. package/src/llms/skills/imf-web-ui-conventions/topics/data.md +3 -1
  124. package/src/llms/skills/imf-web-ui-conventions/topics/docs-structure.md +2 -2
  125. package/src/llms/skills/imf-web-ui-conventions/topics/git.md +4 -2
  126. package/src/llms/skills/imf-web-ui-conventions/topics/library-setup.md +10 -1
  127. package/src/llms/skills/imf-web-ui-conventions/topics/styling.md +2 -2
  128. package/src/llms/skills/imf-web-ui-conventions/topics/tokens.md +4 -2
  129. package/src/llms/skills/imf-web-ui-conventions/topics/tooling.md +13 -11
  130. package/src/llms/skills/imf-web-ui-setup/SKILL.md +17 -9
  131. package/src/llms/skills/imf-web-ui-update/SKILL.md +47 -19
  132. package/src/llms/skills/imf-web-ui-ux/SKILL.md +6 -3
  133. package/src/llms/tokens.gen.json +79 -15
  134. package/bin/install.js +0 -446
  135. package/dist/build/vite-css-module-names/index.d.ts +0 -20
  136. package/dist/build/vite-css-module-names.js +0 -17
  137. package/dist/components/spinner/spinner.geometry.d.ts +0 -37
  138. package/dist/integrations/code-highlight/languages/cmake.d.ts +0 -1
  139. package/dist/integrations/code-highlight/languages/cpp.d.ts +0 -1
  140. package/dist/tabs-DIe1Utiy.js +0 -371
  141. /package/dist/{meta-CySnRuVp.js → meta-j-7HGrWv.js} +0 -0
@@ -1,4 +1,3 @@
1
- type RootProps = React.HTMLAttributes<HTMLDivElement>;
2
1
  /**
3
2
  * AppShell — application layout shell.
4
3
  *
@@ -20,12 +19,11 @@ type RootProps = React.HTMLAttributes<HTMLDivElement>;
20
19
  *
21
20
  * @see https://mantine.dev/llms/core-app-shell.md
22
21
  */
23
- declare function Root({ className, ...props }: RootProps): import("react/jsx-runtime").JSX.Element;
22
+ declare function Root(props: React.HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
24
23
  declare namespace Root {
25
24
  var displayName: string;
26
25
  }
27
- type HeaderProps = React.HTMLAttributes<HTMLElement>;
28
- declare function Header({ className, ...props }: HeaderProps): import("react/jsx-runtime").JSX.Element;
26
+ declare function Header(props: React.HTMLAttributes<HTMLElement>): import("react/jsx-runtime").JSX.Element;
29
27
  declare namespace Header {
30
28
  var displayName: string;
31
29
  }
@@ -33,7 +31,7 @@ type NavbarProps = React.HTMLAttributes<HTMLElement> & {
33
31
  /** Whether the mobile overlay is open. Ignored above the `md` breakpoint, where the navbar is always visible. */
34
32
  open?: boolean;
35
33
  };
36
- declare function Navbar({ className, open, ...props }: NavbarProps): import("react/jsx-runtime").JSX.Element;
34
+ declare function Navbar({ open, ...props }: NavbarProps): import("react/jsx-runtime").JSX.Element;
37
35
  declare namespace Navbar {
38
36
  var displayName: string;
39
37
  }
@@ -41,17 +39,15 @@ type AsideProps = React.HTMLAttributes<HTMLElement> & {
41
39
  /** Whether the mobile overlay is open. Ignored above the `lg` breakpoint, where the aside is always visible. */
42
40
  open?: boolean;
43
41
  };
44
- declare function Aside({ className, open, ...props }: AsideProps): import("react/jsx-runtime").JSX.Element;
42
+ declare function Aside({ open, ...props }: AsideProps): import("react/jsx-runtime").JSX.Element;
45
43
  declare namespace Aside {
46
44
  var displayName: string;
47
45
  }
48
- type FooterProps = React.HTMLAttributes<HTMLElement>;
49
- declare function Footer({ className, ...props }: FooterProps): import("react/jsx-runtime").JSX.Element;
46
+ declare function Footer(props: React.HTMLAttributes<HTMLElement>): import("react/jsx-runtime").JSX.Element;
50
47
  declare namespace Footer {
51
48
  var displayName: string;
52
49
  }
53
- type MainProps = React.HTMLAttributes<HTMLElement>;
54
- declare function Main({ className, ...props }: MainProps): import("react/jsx-runtime").JSX.Element;
50
+ declare function Main(props: React.HTMLAttributes<HTMLElement>): import("react/jsx-runtime").JSX.Element;
55
51
  declare namespace Main {
56
52
  var displayName: string;
57
53
  }
@@ -59,7 +55,7 @@ type SectionProps = React.HTMLAttributes<HTMLDivElement> & {
59
55
  /** If set, the section expands to fill the remaining space in its sidebar. */
60
56
  grow?: boolean;
61
57
  };
62
- declare function Section({ className, grow, ...props }: SectionProps): import("react/jsx-runtime").JSX.Element;
58
+ declare function Section({ grow, ...props }: SectionProps): import("react/jsx-runtime").JSX.Element;
63
59
  declare namespace Section {
64
60
  var displayName: string;
65
61
  }
@@ -5,26 +5,21 @@ declare const button: (props?: ({
5
5
  size?: "sm" | "md" | "lg" | "hero" | null | undefined;
6
6
  chamfer?: boolean | null | undefined;
7
7
  radius?: "sm" | "md" | "lg" | "none" | "round" | null | undefined;
8
+ context?: "default" | "oncolor" | null | undefined;
8
9
  } & import('class-variance-authority/types').ClassProp) | undefined) => string;
9
- type UpstreamButton = React.ComponentProps<typeof ButtonPrimitive>;
10
- type Props = Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "className" | "style"> & VariantProps<typeof button> & {
11
- /** @default false */
12
- focusableWhenDisabled?: boolean;
13
- /** @default true */
14
- nativeButton?: boolean;
10
+ interface Props extends React.ComponentProps<typeof ButtonPrimitive>, VariantProps<typeof button> {
15
11
  /** Leading slot — typically a label. When present, the label aligns right and the icon pins left. */
16
12
  startIcon?: React.ReactNode;
17
13
  /** Trailing slot — typically an icon. When present, the label aligns left and the icon pins right. */
18
14
  endIcon?: React.ReactNode;
19
- className?: UpstreamButton["className"];
20
- style?: UpstreamButton["style"];
21
- render?: UpstreamButton["render"];
22
- };
15
+ }
23
16
  /**
24
- * Button component
17
+ * Button
25
18
  *
26
19
  * @doc https://base-ui.com/react/components/button
27
20
  * @llm https://base-ui.com/react/components/button.md
28
21
  */
29
- export declare function Button({ variant, size, chamfer, radius, className, startIcon, endIcon, children, ...props }: Props): import("react/jsx-runtime").JSX.Element;
22
+ export declare function Button({ variant, size,
23
+ /** Explicit saturated-surface context; this is never inferred from an ancestor. */
24
+ context, chamfer, radius, startIcon, endIcon, children, ...props }: Props): import("react/jsx-runtime").JSX.Element;
30
25
  export {};
@@ -3,39 +3,32 @@ declare const root: (props?: ({
3
3
  variant?: "positive" | "negative" | "warning" | "info" | "accent-1" | "accent-2" | "accent-3" | null | undefined;
4
4
  maxWidth?: "sm" | "md" | "lg" | "full" | null | undefined;
5
5
  } & import('class-variance-authority/types').ClassProp) | undefined) => string;
6
- type RootProps = React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof root>;
7
6
  /**
8
- * Callout.Root — the banner container. Sets the `variant` (which tints the
9
- * surface and colours the icon and text) and lays out a leading `Callout.Icon`
10
- * beside a text region of `Callout.Title` / `Callout.Description`. `maxWidth`
11
- * caps the banner so it reads as a block region rather than stretching full
12
- * container width. A persistent element in the content flow — not a transient
13
- * Toast, not a modal Alert Dialog.
7
+ * Callout.Root — the banner container. Sets `variant` (tints surface, icon, and text) and lays
8
+ * out a leading `Callout.Icon` beside `Callout.Title` / `Callout.Description`. `maxWidth` caps
9
+ * the banner so it reads as a block region, not full container width. A persistent content-flow
10
+ * element — not a transient Toast, not a modal Alert Dialog.
14
11
  */
15
- declare function Root({ variant, maxWidth, className, children, ...props }: RootProps): import("react/jsx-runtime").JSX.Element;
12
+ declare function Root({ variant, maxWidth, children, ...props }: React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof root>): import("react/jsx-runtime").JSX.Element;
16
13
  declare namespace Root {
17
14
  var displayName: string;
18
15
  }
19
- type IconProps = React.HTMLAttributes<HTMLSpanElement>;
20
16
  /**
21
- * Callout.Icon — the leading status glyph. With no children it renders the
22
- * variant's default local icon; pass a custom icon as children to override.
23
- * `aria-hidden` (the variant is conveyed by copy, not the glyph) and inherits
24
- * the status colour via `currentColor`.
17
+ * Callout.Icon — the leading status glyph. Renders the variant's default icon when no children
18
+ * are passed; pass a custom icon as children to override. `aria-hidden` (variant is conveyed by
19
+ * copy) and inherits colour via `currentColor`.
25
20
  */
26
- declare function Icon({ className, children, ...props }: IconProps): import("react/jsx-runtime").JSX.Element;
21
+ declare function Icon({ children, ...props }: React.HTMLAttributes<HTMLSpanElement>): import("react/jsx-runtime").JSX.Element;
27
22
  declare namespace Icon {
28
23
  var displayName: string;
29
24
  }
30
- type TitleProps = React.HTMLAttributes<HTMLDivElement>;
31
25
  /** Callout.Title — an optional short heading, set in the semi-mono UPPERCASE technical voice. */
32
- declare function Title({ className, ...props }: TitleProps): import("react/jsx-runtime").JSX.Element;
26
+ declare function Title(props: React.HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
33
27
  declare namespace Title {
34
28
  var displayName: string;
35
29
  }
36
- type DescriptionProps = React.HTMLAttributes<HTMLDivElement>;
37
30
  /** Callout.Description — the message body, set in the editorial (grotesk) body voice. */
38
- declare function Description({ className, ...props }: DescriptionProps): import("react/jsx-runtime").JSX.Element;
31
+ declare function Description(props: React.HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
39
32
  declare namespace Description {
40
33
  var displayName: string;
41
34
  }
@@ -23,32 +23,33 @@ type RootProps = React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof root
23
23
  * The image is always the first entry in the stack, so `orientation` just
24
24
  * switches the stack between a column and a row without reordering slots.
25
25
  *
26
- * The ImFusion brand ships flat (`shadow="none"`), but the shadow scale is a
27
- * first-class opt-in axis for third-party consumers. `shadow` picks the elevation
28
- * level only — how hard or spread that shadow reads is a global lighting decision,
29
- * owned by the `--imf-ui-shadow-hardness` / `--imf-ui-shadow-spread` tokens.
26
+ * `shadow` defaults to `lg`; `shadow="none"` gives the flat surface. It picks the elevation level only: how hard or
27
+ * spread the shadow reads is global, set by `--imf-ui-shadow-hardness` and `--imf-ui-shadow-spread`.
30
28
  */
31
- declare function Root({ density, variant, shadow, radius, orientation, withBorder, className, ...props }: RootProps): import("react/jsx-runtime").JSX.Element;
29
+ declare function Root({ density, variant, shadow, radius, orientation, withBorder, ...props }: RootProps): import("react/jsx-runtime").JSX.Element;
32
30
  declare namespace Root {
33
31
  var displayName: string;
34
32
  }
35
- type ImageProps = React.ImgHTMLAttributes<HTMLImageElement>;
33
+ type ImageProps = React.ImgHTMLAttributes<HTMLImageElement> & {
34
+ /** Width divided by height, or "auto" to use the image's intrinsic ratio. */
35
+ aspectRatio?: number | "auto";
36
+ };
36
37
  /**
37
38
  * Card.Image — an edge-to-edge media slot. Has no padding, so the image bleeds
38
39
  * to the card edges. Always place it first among the slots.
39
40
  */
40
- declare function Image({ className, alt, ...props }: ImageProps): import("react/jsx-runtime").JSX.Element;
41
+ declare function Image({ alt, aspectRatio, style, ...props }: ImageProps): import("react/jsx-runtime").JSX.Element;
41
42
  declare namespace Image {
42
43
  var displayName: string;
43
44
  }
44
45
  type SlotProps = React.HTMLAttributes<HTMLDivElement>;
45
46
  /** Card.Header — the padded title region at the top of the card body. */
46
- declare function Header({ className, ...props }: SlotProps): import("react/jsx-runtime").JSX.Element;
47
+ declare function Header(props: SlotProps): import("react/jsx-runtime").JSX.Element;
47
48
  declare namespace Header {
48
49
  var displayName: string;
49
50
  }
50
51
  /** Card.Content — the padded main body of the card. */
51
- declare function Content({ className, ...props }: SlotProps): import("react/jsx-runtime").JSX.Element;
52
+ declare function Content(props: SlotProps): import("react/jsx-runtime").JSX.Element;
52
53
  declare namespace Content {
53
54
  var displayName: string;
54
55
  }
@@ -57,7 +58,7 @@ declare namespace Content {
57
58
  * the card fill by default; override `background` in `style` for a distinct
58
59
  * action bar.
59
60
  */
60
- declare function Footer({ className, ...props }: SlotProps): import("react/jsx-runtime").JSX.Element;
61
+ declare function Footer(props: SlotProps): import("react/jsx-runtime").JSX.Element;
61
62
  declare namespace Footer {
62
63
  var displayName: string;
63
64
  }
@@ -1,56 +1,20 @@
1
1
  import { Checkbox as CheckboxPrimitive } from '@base-ui/react/checkbox';
2
- type UpstreamRoot = React.ComponentProps<typeof CheckboxPrimitive.Root>;
3
- type UpstreamIndicator = React.ComponentProps<typeof CheckboxPrimitive.Indicator>;
4
- type RootProps = Omit<React.HTMLAttributes<HTMLSpanElement>, "className" | "style"> & {
5
- /** @default false */
6
- defaultChecked?: boolean;
7
- checked?: boolean;
8
- onCheckedChange?: UpstreamRoot["onCheckedChange"];
9
- /** @default false */
10
- indeterminate?: boolean;
11
- /** @default false */
12
- disabled?: boolean;
13
- /** @default false */
14
- readOnly?: boolean;
15
- /** @default false */
16
- required?: boolean;
17
- /** @default false */
18
- nativeButton?: boolean;
19
- /** @default false */
20
- parent?: boolean;
21
- name?: string;
22
- value?: string;
23
- uncheckedValue?: string;
24
- form?: string;
25
- inputRef?: React.Ref<HTMLInputElement>;
26
- className?: UpstreamRoot["className"];
27
- style?: UpstreamRoot["style"];
28
- render?: UpstreamRoot["render"];
29
- };
30
2
  /**
31
3
  * Checkbox.Root — binary form control; renders a `<span>` plus a hidden `<input>`.
32
4
  *
33
5
  * @doc https://base-ui.com/react/components/checkbox
34
6
  * @llm https://base-ui.com/react/components/checkbox.md
35
7
  */
36
- export declare function Root({ className, ...props }: RootProps): import("react/jsx-runtime").JSX.Element;
8
+ export declare function Root(props: React.ComponentProps<typeof CheckboxPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
37
9
  export declare namespace Root {
38
10
  var displayName: string;
39
11
  }
40
- type IndicatorProps = Omit<React.HTMLAttributes<HTMLSpanElement>, "className" | "style"> & {
41
- /** @default false */
42
- keepMounted?: boolean;
43
- className?: UpstreamIndicator["className"];
44
- style?: UpstreamIndicator["style"];
45
- render?: UpstreamIndicator["render"];
46
- };
47
12
  /**
48
13
  * Checkbox.Indicator — shows the checked / indeterminate mark. Ships brand
49
14
  * icons by default (check, and a minus while `indeterminate`); pass children
50
15
  * to replace them.
51
16
  */
52
- export declare function Indicator({ className, children, ...props }: IndicatorProps): import("react/jsx-runtime").JSX.Element;
17
+ export declare function Indicator({ children, ...props }: React.ComponentProps<typeof CheckboxPrimitive.Indicator>): import("react/jsx-runtime").JSX.Element;
53
18
  export declare namespace Indicator {
54
19
  var displayName: string;
55
20
  }
56
- export {};
@@ -1,9 +1,7 @@
1
1
  /**
2
2
  * Shared variants for `Chip` and any sibling primitive that renders the same
3
- * Chip visual on a different element (`ChipLink` renders `<a>`; a future
4
- * `ChipButton` would render `<button>`). Keeping them in their own module
5
- * means variant axes stay aligned without cross-component imports of a
6
- * component file.
3
+ * visual on a different element (`ChipLink` renders `<a>`). Keeping them here
4
+ * avoids cross-component imports between Chip and its siblings.
7
5
  */
8
6
  export declare const chip: (props?: ({
9
7
  variant?: "primary" | "positive" | "negative" | "main" | "support" | "minor" | "brand" | "warning" | "info" | "accent-1" | "accent-2" | "accent-3" | null | undefined;
@@ -7,5 +7,5 @@ type Props = React.HTMLAttributes<HTMLSpanElement> & VariantProps<typeof chip> &
7
7
  * Chip — compact inline label for status or category.
8
8
  * Not based on any upstream component.
9
9
  */
10
- export declare function Chip({ variant, appearance, inline, className, ...props }: Props): import("react/jsx-runtime").JSX.Element;
10
+ export declare function Chip({ variant, appearance, inline, ...props }: Props): import("react/jsx-runtime").JSX.Element;
11
11
  export {};
@@ -10,7 +10,7 @@ type InlineProps = Omit<useRender.ComponentProps<"code">, "children"> & {
10
10
  * text. `Typo.InlineCode` renders this under the hood so inline-code chrome is
11
11
  * defined in one place. The copy button copies the rendered text.
12
12
  */
13
- export declare function Inline({ className, copyable, children, render, ...props }: InlineProps): import('react').ReactElement<unknown, string | import('react').JSXElementConstructor<any>>;
13
+ export declare function Inline({ copyable, children, render, ...props }: InlineProps): import('react').ReactElement<unknown, string | import('react').JSXElementConstructor<any>>;
14
14
  export declare namespace Inline {
15
15
  var displayName: string;
16
16
  }
@@ -22,7 +22,7 @@ type InlineLinkProps = useRender.ComponentProps<"a"> & {
22
22
  /**
23
23
  * Code.InlineLink — the inline-code chip rendered as a link: the same hairline
24
24
  * box, with an optional directional arrow behind the separator instead of a copy button.
25
- * Sibling of `Code.Inline`, sharing its chip visual (`.inline`) — never both a
25
+ * Sibling of `Code.Inline`, sharing its chip visual (`.inline`). Never both a
26
26
  * copy button and a link on the same chip. Mirrors `ChipLink`'s shape (anchor
27
27
  * is the chip root, trailing icon nudges on hover, `data-kind` picks the icon).
28
28
  */
@@ -1,56 +1,25 @@
1
1
  import { Collapsible as CollapsiblePrimitive } from '@base-ui/react/collapsible';
2
2
  import { VariantProps } from 'class-variance-authority';
3
- type UpstreamRoot = React.ComponentProps<typeof CollapsiblePrimitive.Root>;
4
- type UpstreamTrigger = React.ComponentProps<typeof CollapsiblePrimitive.Trigger>;
5
- type UpstreamPanel = React.ComponentProps<typeof CollapsiblePrimitive.Panel>;
6
3
  declare const collapsibleRoot: (props?: ({
7
- variant?: "solid" | "default" | null | undefined;
4
+ variant?: "default" | "solid" | null | undefined;
8
5
  } & import('class-variance-authority/types').ClassProp) | undefined) => string;
9
- type RootProps = Omit<React.HTMLAttributes<HTMLDivElement>, "className" | "style"> & VariantProps<typeof collapsibleRoot> & {
10
- /** Visual treatment applied to the trigger. `solid` gives the trigger a contained surface background; `default` is transparent at rest and drenched-blue when open. */
11
- /** @default false */
12
- defaultOpen?: UpstreamRoot["defaultOpen"];
13
- open?: UpstreamRoot["open"];
14
- onOpenChange?: UpstreamRoot["onOpenChange"];
15
- /** @default false */
16
- disabled?: UpstreamRoot["disabled"];
17
- className?: UpstreamRoot["className"];
18
- style?: UpstreamRoot["style"];
19
- render?: UpstreamRoot["render"];
20
- };
21
6
  /**
22
7
  * Collapsible.Root — container that manages open/closed state for a trigger–panel pair.
23
8
  *
24
9
  * @see https://base-ui.com/react/components/collapsible
25
10
  * @llm https://base-ui.com/react/components/collapsible.md
26
11
  */
27
- export declare function Root({ variant, className, ...props }: RootProps): import("react/jsx-runtime").JSX.Element;
12
+ export declare function Root({ variant, ...props }: React.ComponentProps<typeof CollapsiblePrimitive.Root> & VariantProps<typeof collapsibleRoot>): import("react/jsx-runtime").JSX.Element;
28
13
  export declare namespace Root {
29
14
  var displayName: string;
30
15
  }
31
- type TriggerProps = Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "className" | "style"> & {
32
- /** @default true */
33
- nativeButton?: UpstreamTrigger["nativeButton"];
34
- className?: UpstreamTrigger["className"];
35
- style?: UpstreamTrigger["style"];
36
- render?: UpstreamTrigger["render"];
37
- };
38
16
  /** Collapsible.Trigger — button that toggles the panel open and closed. */
39
- export declare function Trigger({ className, children, ...props }: TriggerProps): import("react/jsx-runtime").JSX.Element;
17
+ export declare function Trigger({ children, ...props }: React.ComponentProps<typeof CollapsiblePrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
40
18
  export declare namespace Trigger {
41
19
  var displayName: string;
42
20
  }
43
- type PanelProps = Omit<React.HTMLAttributes<HTMLDivElement>, "className" | "style"> & {
44
- /** @default false */
45
- hiddenUntilFound?: UpstreamPanel["hiddenUntilFound"];
46
- /** @default false */
47
- keepMounted?: UpstreamPanel["keepMounted"];
48
- className?: UpstreamPanel["className"];
49
- style?: UpstreamPanel["style"];
50
- render?: UpstreamPanel["render"];
51
- };
52
21
  /** Collapsible.Panel — region that expands and collapses when the trigger is activated. */
53
- export declare function Panel({ className, ...props }: PanelProps): import("react/jsx-runtime").JSX.Element;
22
+ export declare function Panel(props: React.ComponentProps<typeof CollapsiblePrimitive.Panel>): import("react/jsx-runtime").JSX.Element;
54
23
  export declare namespace Panel {
55
24
  var displayName: string;
56
25
  }
@@ -14,7 +14,7 @@ type Props = Omit<React.ComponentProps<typeof Button>, "children" | "onClick"> &
14
14
  * transient confirmation (Copy → Check). Composes Button rather than rendering
15
15
  * its own element, so all Button variants and native attributes pass through.
16
16
  */
17
- export declare function CopyButton({ value, label, copiedLabel, variant, size, className, ...props }: Props): import("react/jsx-runtime").JSX.Element;
17
+ export declare function CopyButton({ value, label, copiedLabel, variant, size, ...props }: Props): import("react/jsx-runtime").JSX.Element;
18
18
  export declare namespace CopyButton {
19
19
  var displayName: string;
20
20
  }
@@ -1,36 +1,7 @@
1
1
  import { Drawer as DrawerPrimitive } from '@base-ui/react/drawer';
2
2
  type BorderColor = "primary" | "fg-minor" | "fg-support" | "none";
3
3
  type BorderStyle = "solid" | "dashed" | "none";
4
- type UpstreamRoot = React.ComponentProps<typeof DrawerPrimitive.Root>;
5
- type UpstreamTrigger = React.ComponentProps<typeof DrawerPrimitive.Trigger>;
6
- type UpstreamPortal = React.ComponentProps<typeof DrawerPrimitive.Portal>;
7
- type UpstreamBackdrop = React.ComponentProps<typeof DrawerPrimitive.Backdrop>;
8
- type UpstreamViewport = React.ComponentProps<typeof DrawerPrimitive.Viewport>;
9
- type UpstreamPopup = React.ComponentProps<typeof DrawerPrimitive.Popup>;
10
- type UpstreamContent = React.ComponentProps<typeof DrawerPrimitive.Content>;
11
- type UpstreamTitle = React.ComponentProps<typeof DrawerPrimitive.Title>;
12
- type UpstreamDescription = React.ComponentProps<typeof DrawerPrimitive.Description>;
13
- type UpstreamClose = React.ComponentProps<typeof DrawerPrimitive.Close>;
14
- type UpstreamIndent = React.ComponentProps<typeof DrawerPrimitive.Indent>;
15
- type UpstreamIndentBackground = React.ComponentProps<typeof DrawerPrimitive.IndentBackground>;
16
- type UpstreamSwipeArea = React.ComponentProps<typeof DrawerPrimitive.SwipeArea>;
17
- type RootProps = {
18
- open?: UpstreamRoot["open"];
19
- /** @default false */
20
- defaultOpen?: UpstreamRoot["defaultOpen"];
21
- onOpenChange?: UpstreamRoot["onOpenChange"];
22
- onOpenChangeComplete?: UpstreamRoot["onOpenChangeComplete"];
23
- /** @default true */
24
- modal?: UpstreamRoot["modal"];
25
- /** @default 'down' */
26
- swipeDirection?: UpstreamRoot["swipeDirection"];
27
- snapPoints?: UpstreamRoot["snapPoints"];
28
- snapPoint?: UpstreamRoot["snapPoint"];
29
- onSnapPointChange?: UpstreamRoot["onSnapPointChange"];
30
- /** @default false */
31
- disablePointerDismissal?: UpstreamRoot["disablePointerDismissal"];
32
- /** @default false */
33
- snapToSequentialPoints?: UpstreamRoot["snapToSequentialPoints"];
4
+ interface RootProps<Payload = unknown> extends React.ComponentProps<typeof DrawerPrimitive.Root<Payload>> {
34
5
  /**
35
6
  * Colour of the border on the panel's open edge. Inherited by Drawer.Popup;
36
7
  * a Popup-level prop overrides it.
@@ -43,57 +14,38 @@ type RootProps = {
43
14
  * @default 'solid'
44
15
  */
45
16
  borderStyle?: BorderStyle;
46
- children?: UpstreamRoot["children"];
47
- };
17
+ }
48
18
  /**
49
19
  * Drawer.Root — container that manages open/closed state and gesture interaction.
50
20
  *
51
21
  * @see https://base-ui.com/react/components/drawer
52
22
  * @llm https://base-ui.com/react/components/drawer.md
53
23
  */
54
- export declare function Root({ borderColor, borderStyle, ...props }: RootProps): import("react/jsx-runtime").JSX.Element;
24
+ export declare function Root<Payload = unknown>({ borderColor, borderStyle, ...props }: RootProps<Payload>): import("react/jsx-runtime").JSX.Element;
55
25
  export declare namespace Root {
56
26
  var displayName: string;
57
27
  }
58
- type TriggerProps = Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "className"> & {
59
- /** @default true */
60
- nativeButton?: UpstreamTrigger["nativeButton"];
61
- className?: UpstreamTrigger["className"];
62
- render?: UpstreamTrigger["render"];
63
- };
64
28
  /** Drawer.Trigger — button that opens the drawer. */
65
- export declare function Trigger({ className, ...props }: TriggerProps): import("react/jsx-runtime").JSX.Element;
29
+ export declare function Trigger(props: React.ComponentProps<typeof DrawerPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
66
30
  export declare namespace Trigger {
67
31
  var displayName: string;
68
32
  }
69
- type PortalProps = {
70
- container?: UpstreamPortal["container"];
71
- children?: UpstreamPortal["children"];
72
- };
73
33
  /** Drawer.Portal — renders backdrop and popup in a portal outside the main document flow. */
74
- export declare function Portal(props: PortalProps): import("react/jsx-runtime").JSX.Element;
34
+ export declare function Portal(props: React.ComponentProps<typeof DrawerPrimitive.Portal>): import("react/jsx-runtime").JSX.Element;
75
35
  export declare namespace Portal {
76
36
  var displayName: string;
77
37
  }
78
- type BackdropProps = Omit<React.HTMLAttributes<HTMLDivElement>, "className"> & {
79
- className?: UpstreamBackdrop["className"];
80
- render?: UpstreamBackdrop["render"];
81
- };
82
38
  /** Drawer.Backdrop — semi-transparent overlay that dims the page content behind the drawer. */
83
- export declare function Backdrop({ className, ...props }: BackdropProps): import("react/jsx-runtime").JSX.Element;
39
+ export declare function Backdrop(props: React.ComponentProps<typeof DrawerPrimitive.Backdrop>): import("react/jsx-runtime").JSX.Element;
84
40
  export declare namespace Backdrop {
85
41
  var displayName: string;
86
42
  }
87
- type ViewportProps = Omit<React.HTMLAttributes<HTMLDivElement>, "className"> & {
88
- className?: UpstreamViewport["className"];
89
- render?: UpstreamViewport["render"];
90
- };
91
43
  /** Drawer.Viewport — full-screen container that positions the popup. */
92
- export declare function Viewport({ className, ...props }: ViewportProps): import("react/jsx-runtime").JSX.Element;
44
+ export declare function Viewport(props: React.ComponentProps<typeof DrawerPrimitive.Viewport>): import("react/jsx-runtime").JSX.Element;
93
45
  export declare namespace Viewport {
94
46
  var displayName: string;
95
47
  }
96
- type PopupProps = Omit<React.HTMLAttributes<HTMLDivElement>, "className"> & {
48
+ interface PopupProps extends React.ComponentProps<typeof DrawerPrimitive.Popup> {
97
49
  /**
98
50
  * Colour of the border on the open edge. Overrides the value inherited from
99
51
  * Drawer.Root; defaults to it when unset.
@@ -104,49 +56,29 @@ type PopupProps = Omit<React.HTMLAttributes<HTMLDivElement>, "className"> & {
104
56
  * from Drawer.Root; defaults to it when unset.
105
57
  */
106
58
  borderStyle?: BorderStyle;
107
- initialFocus?: UpstreamPopup["initialFocus"];
108
- finalFocus?: UpstreamPopup["finalFocus"];
109
- className?: UpstreamPopup["className"];
110
- render?: UpstreamPopup["render"];
111
- };
59
+ }
112
60
  /** Drawer.Popup — the visible panel surface. Positioning is driven automatically by the nearest Drawer.Root's swipeDirection. */
113
- export declare function Popup({ borderColor, borderStyle, className, ...props }: PopupProps): import("react/jsx-runtime").JSX.Element;
61
+ export declare function Popup({ borderColor, borderStyle, ...props }: PopupProps): import("react/jsx-runtime").JSX.Element;
114
62
  export declare namespace Popup {
115
63
  var displayName: string;
116
64
  }
117
- type ContentProps = Omit<React.HTMLAttributes<HTMLDivElement>, "className"> & {
118
- className?: UpstreamContent["className"];
119
- render?: UpstreamContent["render"];
120
- };
121
65
  /** Drawer.Content — scrollable content wrapper inside the popup. */
122
- export declare function Content({ className, ...props }: ContentProps): import("react/jsx-runtime").JSX.Element;
66
+ export declare function Content(props: React.ComponentProps<typeof DrawerPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
123
67
  export declare namespace Content {
124
68
  var displayName: string;
125
69
  }
126
- type TitleProps = React.HTMLAttributes<HTMLHeadingElement> & {
127
- render?: UpstreamTitle["render"];
128
- };
129
70
  /** Drawer.Title — semantic heading for the drawer for screen readers. */
130
- export declare function Title({ className, ...props }: TitleProps): import("react/jsx-runtime").JSX.Element;
71
+ export declare function Title(props: React.ComponentProps<typeof DrawerPrimitive.Title>): import("react/jsx-runtime").JSX.Element;
131
72
  export declare namespace Title {
132
73
  var displayName: string;
133
74
  }
134
- type CloseProps = Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "className"> & {
135
- /** @default true */
136
- nativeButton?: UpstreamClose["nativeButton"];
137
- className?: UpstreamClose["className"];
138
- render?: UpstreamClose["render"];
139
- };
140
75
  /** Drawer.Close — button that closes the drawer. */
141
- export declare function Close({ className, ...props }: CloseProps): import("react/jsx-runtime").JSX.Element;
76
+ export declare function Close(props: React.ComponentProps<typeof DrawerPrimitive.Close>): import("react/jsx-runtime").JSX.Element;
142
77
  export declare namespace Close {
143
78
  var displayName: string;
144
79
  }
145
- type DescriptionProps = React.HTMLAttributes<HTMLParagraphElement> & {
146
- render?: UpstreamDescription["render"];
147
- };
148
80
  /** Drawer.Description — supplementary paragraph describing the drawer's purpose for screen readers. */
149
- export declare function Description({ className, ...props }: DescriptionProps): import("react/jsx-runtime").JSX.Element;
81
+ export declare function Description(props: React.ComponentProps<typeof DrawerPrimitive.Description>): import("react/jsx-runtime").JSX.Element;
150
82
  export declare namespace Description {
151
83
  var displayName: string;
152
84
  }
@@ -158,33 +90,18 @@ export declare function Provider(props: ProviderProps): import("react/jsx-runtim
158
90
  export declare namespace Provider {
159
91
  var displayName: string;
160
92
  }
161
- type IndentProps = Omit<React.HTMLAttributes<HTMLDivElement>, "className"> & {
162
- className?: UpstreamIndent["className"];
163
- render?: UpstreamIndent["render"];
164
- };
165
93
  /** Drawer.Indent — wraps app content that scales and lifts when a drawer opens. Receives `data-active` from Base UI; use `--drawer-swipe-progress` in CSS to drive the animation. */
166
- export declare function Indent({ className, ...props }: IndentProps): import("react/jsx-runtime").JSX.Element;
94
+ export declare function Indent(props: React.ComponentProps<typeof DrawerPrimitive.Indent>): import("react/jsx-runtime").JSX.Element;
167
95
  export declare namespace Indent {
168
96
  var displayName: string;
169
97
  }
170
- type IndentBackgroundProps = Omit<React.HTMLAttributes<HTMLDivElement>, "className"> & {
171
- className?: UpstreamIndentBackground["className"];
172
- render?: UpstreamIndentBackground["render"];
173
- };
174
98
  /** Drawer.IndentBackground — background layer placed behind Drawer.Indent. Styled to reveal a dark surface as the app content scales away. */
175
- export declare function IndentBackground({ className, ...props }: IndentBackgroundProps): import("react/jsx-runtime").JSX.Element;
99
+ export declare function IndentBackground(props: React.ComponentProps<typeof DrawerPrimitive.IndentBackground>): import("react/jsx-runtime").JSX.Element;
176
100
  export declare namespace IndentBackground {
177
101
  var displayName: string;
178
102
  }
179
- type SwipeAreaProps = Omit<React.HTMLAttributes<HTMLDivElement>, "className"> & {
180
- /** @default false */
181
- disabled?: UpstreamSwipeArea["disabled"];
182
- swipeDirection?: UpstreamSwipeArea["swipeDirection"];
183
- className?: UpstreamSwipeArea["className"];
184
- render?: UpstreamSwipeArea["render"];
185
- };
186
103
  /** Drawer.SwipeArea — invisible fixed region that listens for swipe gestures to open the drawer. Position and size it at the screen edge relevant to the swipeDirection. */
187
- export declare function SwipeArea({ className, ...props }: SwipeAreaProps): import("react/jsx-runtime").JSX.Element;
104
+ export declare function SwipeArea(props: React.ComponentProps<typeof DrawerPrimitive.SwipeArea>): import("react/jsx-runtime").JSX.Element;
188
105
  export declare namespace SwipeArea {
189
106
  var displayName: string;
190
107
  }