@imfusion/web-ui 0.10.1-dev.49.geca9b5e8 → 0.10.1-dev.51.gc342cd5f

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
@@ -60,9 +60,11 @@ never changes the character width, so columns stay aligned. CoFo Sans Mono still
60
60
 
61
61
  ### Added
62
62
 
63
+ - `ProductLogo` renders the ImFusion Labels, Suite, and SDK product logos on the `Logo` sizes and color variants. The name is solid by default and cut out of the plate with `cutout`. [Product](src/components/logo/product/product.stories.tsx#Default) — Nikolaus Brunner <brunner@imfusion.com>
63
64
  - `imf-web-ui-update` proposes and `imf-web-ui-audit` reports aligning the core runtime packages (React, Base UI, Vite+) with the versions Web UI builds with. — Nikolaus Brunner <brunner@imfusion.com>
64
65
  - `localWebUILink()` and a `paths` block in `tsconfig.json` let an app run against a symlinked web-ui checkout with one React and one set of types. `imf-web-ui-setup` proposes both and `imf-web-ui-audit` reports a missing one. — Nikolaus Brunner <brunner@imfusion.com>
65
66
  - The shell's navigation toggle sets `aria-controls` from the navbar, and reads the `id` the navbar generates. A consumer `id` on the Navbar is what it points at. — Nikolaus Brunner <brunner@imfusion.com>
67
+ - `Table.HeaderCell` and `Table.Cell` take `action` for a column of buttons: it shrinks to its content, so the data columns keep the width. — Nikolaus Brunner <brunner@imfusion.com>
66
68
  - [`useDisclosure`](src/hooks/use-disclosure.stories.tsx#UseDisclosure) keeps an open state that works controlled or uncontrolled, and returns `open`, `setOpen`, and `toggle`. — Nikolaus Brunner <brunner@imfusion.com>
67
69
  - `AppShell.Navbar` and `AppShell.Aside` take `defaultOpen` and keep their own open state when `open` is omitted, and close an uncontrolled drawer when they dock. A controlled `open` is never changed by docking. — Nikolaus Brunner <brunner@imfusion.com>
68
70
  - An `AppShell.Aside` opens from the consumer's state, such as a row selection, through `open` and `onOpenChange`. — Nikolaus Brunner <brunner@imfusion.com>
@@ -1,3 +1,4 @@
1
1
  export { Logo } from './logo';
2
2
  export { logoMeta } from './logo.meta';
3
3
  export { ImFusionLogo } from './imfusion';
4
+ export { ProductLogo } from './product';
@@ -0,0 +1 @@
1
+ export { ProductLogo } from './product';
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Product logo geometry. The plate is shared; each product adds its name as a separate path so the
3
+ * name can be filled on its own or cut out of the plate. Not exported from the package.
4
+ */
5
+ export declare const productViewBox = "0 0 842.21 335.39";
6
+ export declare const productPlate = "M842.21,99.26L742.95,0L0,0L0,236.13L99.26,335.39L842.21,335.39Z";
7
+ export declare const productWords: {
8
+ labels: string;
9
+ suite: string;
10
+ sdk: string;
11
+ };
@@ -0,0 +1,17 @@
1
+ import { Logo } from '../logo';
2
+ import { productWords } from './marks';
3
+ type LogoVariant = NonNullable<React.ComponentProps<typeof Logo>["variant"]>;
4
+ type Props = Omit<React.ComponentProps<typeof Logo>, "src" | "alt" | "variant"> & {
5
+ product: keyof typeof productWords;
6
+ /** Cut the product name out of the plate so the background shows through. */
7
+ cutout?: boolean;
8
+ /** Override the accessible label. Defaults to the product name, e.g. "ImFusion SDK". */
9
+ alt?: string;
10
+ variant?: Exclude<LogoVariant, "minor">;
11
+ };
12
+ /**
13
+ * An ImFusion product logo (Labels, Suite, SDK) — the generic {@link Logo} primitive pre-wired
14
+ * with the product plate. The name is filled to contrast with the plate unless `cutout` is set.
15
+ */
16
+ export declare function ProductLogo({ product, cutout, alt, variant, ...props }: Props): import("react/jsx-runtime").JSX.Element;
17
+ export {};
@@ -1,5 +1,9 @@
1
1
  import { useRender } from '@base-ui/react/use-render';
2
- type HeaderCellProps = React.ComponentProps<"th">;
2
+ type CellActionProps = {
3
+ /** Marks an action column: it shrinks to its content and keeps it on one line. */
4
+ action?: boolean;
5
+ };
6
+ type HeaderCellProps = React.ComponentProps<"th"> & CellActionProps;
3
7
  /** Table.Root — the `<table>` element. */
4
8
  export declare function Root(props: React.ComponentProps<"table">): import("react/jsx-runtime").JSX.Element;
5
9
  export declare namespace Root {
@@ -21,12 +25,12 @@ export declare namespace Row {
21
25
  var displayName: string;
22
26
  }
23
27
  /** Table.HeaderCell — a `<th>` header cell. */
24
- export declare function HeaderCell(props: HeaderCellProps): import("react/jsx-runtime").JSX.Element;
28
+ export declare function HeaderCell({ action, ...props }: HeaderCellProps): import("react/jsx-runtime").JSX.Element;
25
29
  export declare namespace HeaderCell {
26
30
  var displayName: string;
27
31
  }
28
32
  /** Table.Cell — a `<td>` data cell. */
29
- export declare function Cell(props: React.ComponentProps<"td">): import("react/jsx-runtime").JSX.Element;
33
+ export declare function Cell({ action, ...props }: React.ComponentProps<"td"> & CellActionProps): import("react/jsx-runtime").JSX.Element;
30
34
  export declare namespace Cell {
31
35
  var displayName: string;
32
36
  }
package/dist/index.d.ts CHANGED
@@ -42,7 +42,7 @@ export { Tabs, tabsMeta } from './components/tabs';
42
42
  export { Toast, toastMeta } from './components/toast';
43
43
  export { Tooltip, tooltipMeta } from './components/tooltip';
44
44
  export { Typo, typoMeta } from './components/typo';
45
- export { ImFusionLogo } from './components/logo';
45
+ export { ImFusionLogo, ProductLogo } from './components/logo';
46
46
  export { WebUIProvider } from './provider';
47
47
  export { useClipboard, useColorScheme, useDisclosure, useMediaQuery } from './hooks';
48
48
  export type { UseClipboardOptions, UseDisclosureOptions, UseMediaQueryOptions } from './hooks';