@ai-matrx/design-system 0.34.0 → 0.35.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 (47) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/dist/content-transfer.cjs +3 -1
  3. package/dist/content-transfer.cjs.map +1 -1
  4. package/dist/content-transfer.js +3 -1
  5. package/dist/content-transfer.js.map +1 -1
  6. package/dist/data-table/copy-helpers.d.cts +1 -1
  7. package/dist/data-table/copy-helpers.d.ts +1 -1
  8. package/dist/data-table/data-row-inspector.cjs +3 -1
  9. package/dist/data-table/data-row-inspector.cjs.map +1 -1
  10. package/dist/data-table/data-row-inspector.js +3 -1
  11. package/dist/data-table/data-row-inspector.js.map +1 -1
  12. package/dist/data-table/data-row-window.cjs +3 -1
  13. package/dist/data-table/data-row-window.cjs.map +1 -1
  14. package/dist/data-table/data-row-window.js +3 -1
  15. package/dist/data-table/data-row-window.js.map +1 -1
  16. package/dist/data-table/filter-engine.d.cts +1 -1
  17. package/dist/data-table/filter-engine.d.ts +1 -1
  18. package/dist/data-table/host.d.cts +1 -1
  19. package/dist/data-table/host.d.ts +1 -1
  20. package/dist/data-table/index.cjs +39 -22
  21. package/dist/data-table/index.cjs.map +1 -1
  22. package/dist/data-table/index.d.cts +2 -2
  23. package/dist/data-table/index.d.ts +2 -2
  24. package/dist/data-table/index.js +39 -22
  25. package/dist/data-table/index.js.map +1 -1
  26. package/dist/data-table/infer-filter.d.cts +1 -1
  27. package/dist/data-table/infer-filter.d.ts +1 -1
  28. package/dist/data-table/layered-filters.d.cts +1 -1
  29. package/dist/data-table/layered-filters.d.ts +1 -1
  30. package/dist/data-table/query-control.d.cts +1 -1
  31. package/dist/data-table/query-control.d.ts +1 -1
  32. package/dist/data-table/types.cjs.map +1 -1
  33. package/dist/data-table/types.d.cts +1 -1
  34. package/dist/data-table/types.d.ts +1 -1
  35. package/dist/data-table/url-state.d.cts +1 -1
  36. package/dist/data-table/url-state.d.ts +1 -1
  37. package/dist/data-table/xlsx.d.cts +1 -1
  38. package/dist/data-table/xlsx.d.ts +1 -1
  39. package/dist/index.cjs +4 -2
  40. package/dist/index.cjs.map +1 -1
  41. package/dist/index.d.cts +28 -0
  42. package/dist/index.d.ts +28 -0
  43. package/dist/index.js +4 -2
  44. package/dist/index.js.map +1 -1
  45. package/dist/{types-CFmCZXVn.d.ts → types-Cxm5XK0L.d.ts} +25 -7
  46. package/dist/{types-CYkwg9jR.d.cts → types-kiV-CAuZ.d.cts} +25 -7
  47. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,31 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.35.0 — 2026-09-22
4
+
5
+ **A popover may now be sized by its CONTENT, because a fixed width cannot be right for a
6
+ name nobody chose the length of.** (lane FIX-14.)
7
+
8
+ `PopoverContent` was `w-72` for everyone, so every surface showing content of unknown
9
+ length pasted its own width over it — and `@ai-matrx/records-ui`'s relation picker pasted
10
+ `w-64`, which is how the one control whose job is to show the name you are about to create
11
+ came to read `Create “Marisol Okonkwo — 418 Calle Pu`, cut mid-word.
12
+
13
+ * New `sizing` prop. `"fixed"` (default) is exactly the old `w-72` — nothing moves for any
14
+ existing caller. `"content"` grows to its content between an honest floor and an honest
15
+ ceiling: at least the trigger's width and at least 20rem (the width Airtable's and
16
+ Notion's link-record pickers settle on), at most 28rem, and never wider than the viewport
17
+ less a 1rem gutter each side. The floor is clamped by the same gutter, so on a very
18
+ narrow screen the ceiling still wins.
19
+ * **Consumer action:** a popover whose body shows a record title, a person's name, or any
20
+ other value the system did not choose passes `sizing="content"` and removes its own
21
+ `w-*` class. Content beyond the ceiling truncates with an ellipsis and a `title` — that
22
+ part belongs to the caller.
23
+
24
+ Measured headlessly at 1600×1000 and at 375 wide on the records-ui harness against the live
25
+ store: the picker's popover is 408px and shows the whole name on the desktop viewport, and
26
+ 343px with a real `text-overflow: ellipsis` on the phone, inside the viewport both times.
27
+ Suite: 103 files / 1114 tests green, `tsc --noEmit` clean.
28
+
3
29
  ## 0.34.0 — 2026-09-21
4
30
 
5
31
  **The release gate was red on main, and the red was a stale expectation.**
@@ -597,6 +597,7 @@ var PopoverContent = React7.forwardRef(
597
597
  sideOffset = 4,
598
598
  container,
599
599
  animated = true,
600
+ sizing = "fixed",
600
601
  ...props
601
602
  }, ref) => {
602
603
  const portalContainer = usePortalContainer(container);
@@ -613,7 +614,8 @@ var PopoverContent = React7.forwardRef(
613
614
  // z, DOM portal order decides, so a dialog opened FROM a popover stacks
614
615
  // above it, and a popover opened from a dialog still stacks above the
615
616
  // dialog. z-[10001] buried dialogs behind fullscreen popovers.
616
- "z-[10000] w-72 max-h-[var(--radix-popover-content-available-height)] overflow-y-auto overscroll-contain rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none",
617
+ "z-[10000] max-h-[var(--radix-popover-content-available-height)] overflow-y-auto overscroll-contain rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none",
618
+ sizing === "content" ? "w-auto min-w-[min(max(var(--radix-popover-trigger-width),20rem),calc(100vw-2rem))] max-w-[min(28rem,calc(100vw-2rem))]" : "w-72",
617
619
  animated && MOTION_POPPER,
618
620
  className
619
621
  ),