@ai-matrx/design-system 0.49.55 → 0.49.56

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,12 +2,20 @@
2
2
 
3
3
  ### Unreleased
4
4
 
5
+ - **A desktop panel hosted in a bottom sheet gets 44px rows on a phone, not 36px** (W-72, PB-08 dry run, 2026-10-01). `.matrx-mobile-sheet .h-7` raised its `min-height` floor to `2.75rem` (was `2.25rem`). The rule is unlayered, so at 36px it also beat a host's layered 44px `matrx-touch-targets` floor — the chat-options sheet's Tools / Skills rows measured 36px on a phone. Proof: `styles.test.ts` "floors every mobile-sheet h-7 row" (red on HEAD). Consumer action: none.
6
+
5
7
  - **The grouped answer shows a group's attributes at a glance, says what each number counts, sorts by a pivot column, and the chart stacks Measures** (lane DRILL-FLIP-FIXES, VERIFY-DRILL-FINAL R2, R5, L2, L3, L5 — the old Spend and users usage screens' last did-better rows, 2026-10-01). `MatrxDrillAnswerTable` takes `attributes` (`MatrxDrillAttribute`: text columns beside the numbers, each the one value an outermost group holds of another Dimension — the costliest requests' person, agent, model; `read` returns undefined while reading, null for none); a Measure's or a Dimension's `description` (≤140 characters) is its column header's tooltip; each named pivot column's header sorts the groups by its own cell (`drillPivotSortKey(measure, value)` = `across:<measure>:<value>`, read by `buildDrillTree`). `MatrxDrillChart` / `drillChartQuestions` take `stack` (two or more additive Measures drawn as one stacked bar per period, no split; a Measure that does not add up is refused in words; `MatrxDrillChartPlan.stack`). Proof: `drill-flip-fixes.test.tsx` (7; red on HEAD). Consumer action: none required; a host passes `attributes`, `description` and `stack` to adopt.
6
8
 
7
9
  - **The grouped answer searches, opens a group's record, keeps a value's colour, and reads a moment** (lane DRILL-PARITY-LAST, the old users usage page's did-better rows, 2026-09-30). `MatrxDrillAnswerTable` takes `search` (a box that keeps the groups whose words hold the text — a person's email, a choice's words; an outer group stays when one of its own matches; "N of M groups"); a Dimension's `entity` (a record kind) makes each group row offer that record's own doors — open, preview and `TableDoors.menu` (new, the record kind's own menu items from the host's `resolveEntityDoors`) — in the row's ⋯ menu and on a right-click through the host's `ContextMenuBoundary` (rows carry `data-row-id`, the table its `data-matrx-table-id`); a Dimension's `colorFor` (a chart token, `drillTokenColor` / `drillValueColor`) colours that value's share bar and its chart series; a Measure's `moment` (e.g. "Last active", epoch ms) never shows a share or a change. Proof: `drill-parity-last.test.tsx` (9; 8 red on HEAD). Consumer action: none required; a host passes `search`, `entity`, `colorFor`, `moment` and `TableDoors.menu` to adopt.
8
10
  - **The drill answer's coverage and Pareto lines are labels, not sentences** (lane DRILL-LIVE-FIXES, interface text is layout, 2026-09-30). Coverage reads `$100.00 of $400.00 (25%)` (was "This slice is $100.00 of the $400.00 the whole window holds (25%)."), with "This slice's share of the whole window" in its tooltip; a Pareto line that never reaches its share reads `All 5 shown make 20% of Cost` (the groups past the limit are already the table's own "N more" row). Proof: `drill-usage-adoptions.test.tsx`, `drill-pareto-and-row-actions.test.tsx`. Consumer action: none.
9
11
  - **The drill chart's value axis says the number the Measure printed, never the raw value** (localhost walk of `/administration/usage`, 2026-09-30). When a Measure's format converts its unit (the usage explorer stores dollars and prints points at 20,000 a dollar) and the printed tick is too long for the axis, the tick used to compact the RAW value, so a 9,000,000-point day read `450` under "Cost (points) by day". `drillChartAxisNumber` now compacts the number the format printed (`9.0M`), keeping a one-character currency sign (`$1.2k`). Proof: `drill-chart-axis.test.ts`. Consumer action: none.
10
12
 
13
+ ## 0.49.56
14
+
15
+ Automatic changed-only republish (docs/metadata drift since the last tag — see
16
+ `git diff npm/design-system/v0.49.55..npm/design-system/v0.49.56 -- apps/shared/design-system`).
17
+ No source changes intended and no consumer action required.
18
+
11
19
  ## 0.49.55
12
20
 
13
21
  Automatic changed-only republish (docs/metadata drift since the last tag — see
package/dist/styles.css CHANGED
@@ -909,9 +909,12 @@
909
909
  /* h-7 rows (list rows, search fields) are below the 44pt touch target. Raise
910
910
  the floor with min-height — it wins over the utility's height without
911
911
  unpinning it. Square icon buttons (h-7 w-7) are excluded so they stay
912
- square. */
912
+ square. 2.75rem (44px), never less: this rule is UNLAYERED, so it also
913
+ beats a host's own layered 44px floor — at 2.25rem it pinned the Tools /
914
+ Skills rows of the chat-options sheet to 36px on a phone even inside
915
+ `matrx-touch-targets` (W-72, PB-08 dry run, 2026-10-01). */
913
916
  .matrx-mobile-sheet .h-7:not([class*="w-7"]) {
914
- min-height: 2.25rem;
917
+ min-height: 2.75rem;
915
918
  }
916
919
 
917
920
  /* Portaled action footers escape host touch-target subtrees. Own the floor
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-matrx/design-system",
3
- "version": "0.49.55",
3
+ "version": "0.49.56",
4
4
  "description": "AI Matrx semantic React primitives shared across Vite, Next.js, desktop, and customer-built applications.",
5
5
  "type": "module",
6
6
  "license": "MIT",