@imfusion/web-ui 0.10.1-dev.51.gc342cd5f → 0.10.1-dev.53.gea04219d

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,10 +60,12 @@ never changes the character width, so columns stay aligned. CoFo Sans Mono still
60
60
 
61
61
  ### Added
62
62
 
63
+ - `--imf-ui-size-backdrop-edge` (`38%`) and `--imf-ui-size-backdrop-band-height` (`30dvh`) are the public backdrop's geometry tokens. The `imf-web-ui-ux` skill describes the handover. — Nikolaus Brunner <brunner@imfusion.com>
63
64
  - `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>
64
65
  - `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>
65
66
  - `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>
66
67
  - 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>
68
+ - `Table.Root` takes `density` (`compact`, `comfortable`, `spacious`) for the cell padding. — Nikolaus Brunner <brunner@imfusion.com>
67
69
  - `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>
68
70
  - [`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>
69
71
  - `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>
@@ -108,6 +110,8 @@ never changes the character width, so columns stay aligned. CoFo Sans Mono still
108
110
 
109
111
  ### Changed
110
112
 
113
+ - The `Meter` track is translucent ink (8% `fg-main`), so it stays visible on tinted surfaces such as a selected table row. — Nikolaus Brunner <brunner@imfusion.com>
114
+ - `Table` reads lighter: the header has no band, its mono labels are muted with a 1px rule under them, body rows have no rules, and cells get more vertical padding. A selected row sits one neutral step darker than a hovered row, in place of the primary tint. — Nikolaus Brunner <brunner@imfusion.com>
111
115
  - [`AppShell.Header`](src/components/app-shell/app-shell.mdx) is a page row that shows at every width, below the shell's bar on mobile. — Nikolaus Brunner <brunner@imfusion.com>
112
116
  - The header pads its inline sides with `--imf-ui-appshell-padding`, so its content lines up with Main's.
113
117
  - AppShell — Nikolaus Brunner <brunner@imfusion.com>
@@ -4,8 +4,12 @@ type CellActionProps = {
4
4
  action?: boolean;
5
5
  };
6
6
  type HeaderCellProps = React.ComponentProps<"th"> & CellActionProps;
7
+ type RootProps = React.ComponentProps<"table"> & {
8
+ /** Cell padding: `compact` for dense data, `spacious` for a few rows at a glance. */
9
+ density?: "compact" | "comfortable" | "spacious";
10
+ };
7
11
  /** Table.Root — the `<table>` element. */
8
- export declare function Root(props: React.ComponentProps<"table">): import("react/jsx-runtime").JSX.Element;
12
+ export declare function Root({ density, ...props }: RootProps): import("react/jsx-runtime").JSX.Element;
9
13
  export declare namespace Root {
10
14
  var displayName: string;
11
15
  }
package/dist/index.js CHANGED
@@ -3857,6 +3857,8 @@ var Rc = {
3857
3857
  action: "imf-ui-table-module-action",
3858
3858
  body: "imf-ui-table-module-body",
3859
3859
  cell: "imf-ui-table-module-cell",
3860
+ densityCompact: "imf-ui-table-module-densityCompact",
3861
+ densitySpacious: "imf-ui-table-module-densitySpacious",
3860
3862
  header: "imf-ui-table-module-header",
3861
3863
  headerButton: "imf-ui-table-module-headerButton",
3862
3864
  headerCell: "imf-ui-table-module-headerCell",
@@ -3874,15 +3876,22 @@ var Rc = {
3874
3876
  Row: () => $c,
3875
3877
  RowLink: () => nl,
3876
3878
  SortableHeaderCell: () => ol
3877
- }), Bc = g(Z.root), Vc = g(Z.header), Hc = g(Z.body), Uc = g(Z.row), Wc = { action: {
3879
+ }), Bc = g(Z.root, { variants: { density: {
3880
+ compact: Z.densityCompact,
3881
+ comfortable: null,
3882
+ spacious: Z.densitySpacious
3883
+ } } }), Vc = g(Z.header), Hc = g(Z.body), Uc = g(Z.row), Wc = { action: {
3878
3884
  false: null,
3879
3885
  true: Z.action
3880
3886
  } }, Gc = g(Z.headerCell, { variants: Wc }), Kc = g(Z.cell, { variants: Wc }), qc = g(Z.rowLink), Jc = g(Z.headerButton), Yc = g(Z.sortIndicator);
3881
- function Xc(e) {
3887
+ function Xc({ density: e = "comfortable", ...t }) {
3882
3888
  return /* @__PURE__ */ v("table", {
3883
- ...e,
3889
+ ...t,
3884
3890
  "data-imf-ui-component": "Table.Root",
3885
- className: Bc({ className: e.className })
3891
+ className: Bc({
3892
+ density: e,
3893
+ className: t.className
3894
+ })
3886
3895
  });
3887
3896
  }
3888
3897
  Xc.displayName = "Table.Root";