@ai-matrx/design-system 0.18.4 → 0.18.6

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 (56) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/content-transfer.cjs +12 -5
  3. package/dist/content-transfer.cjs.map +1 -1
  4. package/dist/content-transfer.d.cts +4 -0
  5. package/dist/content-transfer.d.ts +4 -0
  6. package/dist/content-transfer.js +12 -5
  7. package/dist/content-transfer.js.map +1 -1
  8. package/dist/data-table/copy-helpers.cjs +53 -0
  9. package/dist/data-table/copy-helpers.cjs.map +1 -1
  10. package/dist/data-table/copy-helpers.d.cts +13 -2
  11. package/dist/data-table/copy-helpers.d.ts +13 -2
  12. package/dist/data-table/copy-helpers.js +55 -0
  13. package/dist/data-table/copy-helpers.js.map +1 -1
  14. package/dist/data-table/copy-types.cjs.map +1 -1
  15. package/dist/data-table/copy-types.d.cts +5 -0
  16. package/dist/data-table/copy-types.d.ts +5 -0
  17. package/dist/data-table/data-row-inspector.cjs +70 -50
  18. package/dist/data-table/data-row-inspector.cjs.map +1 -1
  19. package/dist/data-table/data-row-inspector.js +70 -50
  20. package/dist/data-table/data-row-inspector.js.map +1 -1
  21. package/dist/data-table/data-row-window.cjs +70 -50
  22. package/dist/data-table/data-row-window.cjs.map +1 -1
  23. package/dist/data-table/data-row-window.js +70 -50
  24. package/dist/data-table/data-row-window.js.map +1 -1
  25. package/dist/data-table/filter-engine.d.cts +1 -1
  26. package/dist/data-table/filter-engine.d.ts +1 -1
  27. package/dist/data-table/index.cjs +621 -422
  28. package/dist/data-table/index.cjs.map +1 -1
  29. package/dist/data-table/index.d.cts +2 -2
  30. package/dist/data-table/index.d.ts +2 -2
  31. package/dist/data-table/index.js +623 -422
  32. package/dist/data-table/index.js.map +1 -1
  33. package/dist/data-table/infer-filter.d.cts +1 -1
  34. package/dist/data-table/infer-filter.d.ts +1 -1
  35. package/dist/data-table/layered-filters.d.cts +1 -1
  36. package/dist/data-table/layered-filters.d.ts +1 -1
  37. package/dist/data-table/pagination.cjs +148 -90
  38. package/dist/data-table/pagination.cjs.map +1 -1
  39. package/dist/data-table/pagination.js +143 -85
  40. package/dist/data-table/pagination.js.map +1 -1
  41. package/dist/data-table/query-control.d.cts +1 -1
  42. package/dist/data-table/query-control.d.ts +1 -1
  43. package/dist/data-table/types.cjs.map +1 -1
  44. package/dist/data-table/types.d.cts +1 -1
  45. package/dist/data-table/types.d.ts +1 -1
  46. package/dist/data-table/url-state.d.cts +1 -1
  47. package/dist/data-table/url-state.d.ts +1 -1
  48. package/dist/data-table/uuid-cell.cjs +58 -45
  49. package/dist/data-table/uuid-cell.cjs.map +1 -1
  50. package/dist/data-table/uuid-cell.js +58 -45
  51. package/dist/data-table/uuid-cell.js.map +1 -1
  52. package/dist/data-table/xlsx.d.cts +1 -1
  53. package/dist/data-table/xlsx.d.ts +1 -1
  54. package/dist/{types-Bx9SfdJM.d.cts → types-0CNCWvdK.d.cts} +2 -2
  55. package/dist/{types-DyByb6tW.d.ts → types-cH8oLqUx.d.ts} +2 -2
  56. package/package.json +1 -1
@@ -1571,14 +1571,21 @@ function MatrxCopyMenuSession(props) {
1571
1571
  ))
1572
1572
  throw new Error("Sheet rows must be JSON objects.");
1573
1573
  const rows = value;
1574
- const keys = [...new Set(rows.flatMap((row) => Object.keys(row)))];
1574
+ const suppliedColumns = props.export.sheetColumns?.();
1575
+ const columns = suppliedColumns ?? [...new Set(rows.flatMap((row) => Object.keys(row)))].map((id) => ({ id, label: id }));
1576
+ const ids = /* @__PURE__ */ new Set();
1577
+ for (const column of columns) {
1578
+ if (!column.id || !column.label || ids.has(column.id)) throw new Error("Sheet columns require unique nonempty ids and labels.");
1579
+ ids.add(column.id);
1580
+ }
1581
+ for (const row of rows) for (const key of Object.keys(row)) if (!ids.has(key)) throw new Error("Table data contains a field outside its declared columns.");
1575
1582
  return {
1576
1583
  kind: "rows",
1577
1584
  rows,
1578
- columns: keys.map((key) => ({
1579
- id: key,
1580
- label: key,
1581
- path: `/${key.replace(/~/g, "~0").replace(/\//g, "~1")}`,
1585
+ columns: columns.map((column) => ({
1586
+ id: column.id,
1587
+ label: column.label,
1588
+ path: `/${column.id.replace(/~/g, "~0").replace(/\//g, "~1")}`,
1582
1589
  visible: true
1583
1590
  }))
1584
1591
  };
@@ -2232,7 +2239,7 @@ function MatrxUuidCell({
2232
2239
  }
2233
2240
  return /* @__PURE__ */ jsx14("span", { className: "min-w-0 truncate font-mono text-xs text-muted-foreground tabular-nums select-all", children: display });
2234
2241
  })();
2235
- return /* @__PURE__ */ jsxs8(
2242
+ return /* @__PURE__ */ jsx14(TooltipProvider, { delayDuration: 200, children: /* @__PURE__ */ jsxs8(
2236
2243
  "span",
2237
2244
  {
2238
2245
  "data-matrx-cell-control": true,
@@ -2242,51 +2249,64 @@ function MatrxUuidCell({
2242
2249
  ),
2243
2250
  onClick: stop,
2244
2251
  children: [
2245
- /* @__PURE__ */ jsx14(TooltipProvider, { delayDuration: 200, children: /* @__PURE__ */ jsxs8(Tooltip, { children: [
2252
+ /* @__PURE__ */ jsxs8(Tooltip, { children: [
2246
2253
  /* @__PURE__ */ jsx14(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx14("span", { className: "inline-flex min-w-0 max-w-full items-center", children: idNode }) }),
2247
2254
  /* @__PURE__ */ jsx14(TooltipContent, { side: "top", className: "max-w-sm break-all font-mono", children: forbidden ? `No access \xB7 ${tip}` : tip })
2248
- ] }) }),
2249
- /* @__PURE__ */ jsx14(
2250
- "button",
2251
- {
2252
- type: "button",
2253
- onClick: onCopy,
2254
- "aria-label": copied ? "Copied" : `Copy ${label ?? "id"}`,
2255
- title: `Copy ${label ?? "id"}: ${value}`,
2256
- className: cn(
2257
- "inline-flex h-4 w-4 shrink-0 items-center justify-center rounded text-muted-foreground transition-colors hover:text-foreground focus:outline-none",
2258
- copied && "text-primary"
2259
- ),
2260
- children: copied ? /* @__PURE__ */ jsx14(Check, { className: "h-3 w-3" }) : /* @__PURE__ */ jsx14(Copy, { className: "h-3 w-3" })
2261
- }
2262
- ),
2263
- canPeek ? /* @__PURE__ */ jsx14(
2264
- "button",
2265
- {
2266
- type: "button",
2267
- onClick: (e) => {
2268
- stop(e);
2269
- setPeekOpen(true);
2270
- },
2271
- "aria-label": `Quick look at ${label ?? "record"}`,
2272
- title: `Quick look at ${label ?? "record"}`,
2273
- className: "inline-flex h-4 w-4 shrink-0 items-center justify-center rounded text-muted-foreground transition-colors hover:text-foreground focus:outline-none",
2274
- children: /* @__PURE__ */ jsx14(Lightbulb, { className: "h-3 w-3" })
2275
- }
2276
- ) : null,
2277
- onOpen && resolvedHref && !forbidden ? /* @__PURE__ */ jsx14(
2278
- "a",
2279
- {
2280
- href: resolvedHref,
2281
- target: "_blank",
2282
- rel: "noopener noreferrer",
2283
- onClick: stop,
2284
- "aria-label": `Open ${label ?? "record"} in a new tab`,
2285
- title: `Open ${label ?? "record"} in a new tab`,
2286
- className: "inline-flex h-4 w-4 shrink-0 items-center justify-center rounded text-muted-foreground transition-colors hover:text-foreground focus:outline-none",
2287
- children: /* @__PURE__ */ jsx14(ExternalLink, { className: "h-3 w-3" })
2288
- }
2289
- ) : null,
2255
+ ] }),
2256
+ /* @__PURE__ */ jsxs8(Tooltip, { children: [
2257
+ /* @__PURE__ */ jsx14(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx14(
2258
+ "button",
2259
+ {
2260
+ type: "button",
2261
+ onClick: onCopy,
2262
+ "aria-label": copied ? "Copied" : `Copy ${label ?? "id"}`,
2263
+ className: cn(
2264
+ "inline-flex h-4 w-4 shrink-0 items-center justify-center rounded text-muted-foreground transition-colors hover:text-foreground focus:outline-none",
2265
+ copied && "text-primary"
2266
+ ),
2267
+ children: copied ? /* @__PURE__ */ jsx14(Check, { className: "h-3 w-3" }) : /* @__PURE__ */ jsx14(Copy, { className: "h-3 w-3" })
2268
+ }
2269
+ ) }),
2270
+ /* @__PURE__ */ jsx14(TooltipContent, { side: "top", children: copied ? "Copied" : `Copy ${label ?? "id"}: ${value}` })
2271
+ ] }),
2272
+ canPeek ? /* @__PURE__ */ jsxs8(Tooltip, { children: [
2273
+ /* @__PURE__ */ jsx14(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx14(
2274
+ "button",
2275
+ {
2276
+ type: "button",
2277
+ onClick: (e) => {
2278
+ stop(e);
2279
+ setPeekOpen(true);
2280
+ },
2281
+ "aria-label": `Quick look at ${label ?? "record"}`,
2282
+ className: "inline-flex h-4 w-4 shrink-0 items-center justify-center rounded text-muted-foreground transition-colors hover:text-foreground focus:outline-none",
2283
+ children: /* @__PURE__ */ jsx14(Lightbulb, { className: "h-3 w-3" })
2284
+ }
2285
+ ) }),
2286
+ /* @__PURE__ */ jsxs8(TooltipContent, { side: "top", children: [
2287
+ "Quick look at ",
2288
+ label ?? "record"
2289
+ ] })
2290
+ ] }) : null,
2291
+ onOpen && resolvedHref && !forbidden ? /* @__PURE__ */ jsxs8(Tooltip, { children: [
2292
+ /* @__PURE__ */ jsx14(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx14(
2293
+ "a",
2294
+ {
2295
+ href: resolvedHref,
2296
+ target: "_blank",
2297
+ rel: "noopener noreferrer",
2298
+ onClick: stop,
2299
+ "aria-label": `Open ${label ?? "record"} in a new tab`,
2300
+ className: "inline-flex h-4 w-4 shrink-0 items-center justify-center rounded text-muted-foreground transition-colors hover:text-foreground focus:outline-none",
2301
+ children: /* @__PURE__ */ jsx14(ExternalLink, { className: "h-3 w-3" })
2302
+ }
2303
+ ) }),
2304
+ /* @__PURE__ */ jsxs8(TooltipContent, { side: "top", children: [
2305
+ "Open ",
2306
+ label ?? "record",
2307
+ " in a new tab"
2308
+ ] })
2309
+ ] }) : null,
2290
2310
  trailing,
2291
2311
  notice,
2292
2312
  canPeek && peekOpen && ResourcePeek ? /* @__PURE__ */ jsx14(
@@ -2300,7 +2320,7 @@ function MatrxUuidCell({
2300
2320
  ) : null
2301
2321
  ]
2302
2322
  }
2303
- );
2323
+ ) });
2304
2324
  }
2305
2325
 
2306
2326
  // src/data-table/entity.ts