@ai-matrx/design-system 0.28.0 → 0.30.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 (39) hide show
  1. package/CHANGELOG.md +56 -0
  2. package/dist/data-table/copy-helpers.d.cts +1 -1
  3. package/dist/data-table/copy-helpers.d.ts +1 -1
  4. package/dist/data-table/filter-engine.d.cts +1 -1
  5. package/dist/data-table/filter-engine.d.ts +1 -1
  6. package/dist/data-table/host.d.cts +1 -1
  7. package/dist/data-table/host.d.ts +1 -1
  8. package/dist/data-table/index.cjs +39 -7
  9. package/dist/data-table/index.cjs.map +1 -1
  10. package/dist/data-table/index.d.cts +3 -3
  11. package/dist/data-table/index.d.ts +3 -3
  12. package/dist/data-table/index.js +39 -7
  13. package/dist/data-table/index.js.map +1 -1
  14. package/dist/data-table/infer-filter.d.cts +1 -1
  15. package/dist/data-table/infer-filter.d.ts +1 -1
  16. package/dist/data-table/layered-filters.d.cts +1 -1
  17. package/dist/data-table/layered-filters.d.ts +1 -1
  18. package/dist/data-table/query-control.d.cts +1 -1
  19. package/dist/data-table/query-control.d.ts +1 -1
  20. package/dist/data-table/spreadsheet.cjs +37 -6
  21. package/dist/data-table/spreadsheet.cjs.map +1 -1
  22. package/dist/data-table/spreadsheet.d.cts +35 -1
  23. package/dist/data-table/spreadsheet.d.ts +35 -1
  24. package/dist/data-table/spreadsheet.js +37 -6
  25. package/dist/data-table/spreadsheet.js.map +1 -1
  26. package/dist/data-table/types.cjs.map +1 -1
  27. package/dist/data-table/types.d.cts +2 -2
  28. package/dist/data-table/types.d.ts +2 -2
  29. package/dist/data-table/url-state.d.cts +1 -1
  30. package/dist/data-table/url-state.d.ts +1 -1
  31. package/dist/data-table/xlsx.d.cts +1 -1
  32. package/dist/data-table/xlsx.d.ts +1 -1
  33. package/dist/index.cjs +8 -4
  34. package/dist/index.cjs.map +1 -1
  35. package/dist/index.js +8 -4
  36. package/dist/index.js.map +1 -1
  37. package/dist/{types-D9JBR6ZU.d.ts → types-CFmCZXVn.d.ts} +24 -1
  38. package/dist/{types-jQddSUnj.d.cts → types-CYkwg9jR.d.cts} +24 -1
  39. package/package.json +1 -1
@@ -5,7 +5,7 @@ import { F as FieldFormatConfig } from './types-CJWU1Gae.js';
5
5
  import { GroupAggregateSpec, GroupOrder } from './data-table/grouping.js';
6
6
  import { CellPatch } from './data-table/fill.js';
7
7
  import { ColumnFacets } from './data-table/facets.js';
8
- import { SpreadsheetIntent } from './data-table/spreadsheet.js';
8
+ import { SpreadsheetIntent, SpreadsheetPastePlan } from './data-table/spreadsheet.js';
9
9
  import { DateColumnFilterValue } from './data-table/date-filter.js';
10
10
 
11
11
  type TableSearchRole = "id" | "name" | "description" | "other";
@@ -1269,6 +1269,29 @@ interface MatrxDataTableSpreadsheetConfig<T> {
1269
1269
  columnId: string;
1270
1270
  value: unknown;
1271
1271
  }) => string | undefined) | undefined;
1272
+ /**
1273
+ * ASK BEFORE A PASTE IS WRITTEN, AND HAND OVER THE ROWS THAT DID NOT FIT.
1274
+ *
1275
+ * Absent (the default, and byte-for-byte what a paste did before): the table
1276
+ * screens the block and applies it straight away, which is right for a paste
1277
+ * of a handful of cells into rows that already exist.
1278
+ *
1279
+ * Present: the table computes the whole plan and applies NOTHING. The
1280
+ * consumer is handed what would be written, what was refused and why, and the
1281
+ * rows that landed past the last row — and calls `apply()` itself if the
1282
+ * person says yes.
1283
+ *
1284
+ * WHY THE OVERFLOW IS HANDED OVER AT ALL. A paste of fifty spreadsheet rows
1285
+ * into a table that holds three is the ordinary way a person fills a new
1286
+ * table, and until 2026-09-21 forty-seven of those rows were counted and
1287
+ * dropped ("landed past the edge of the table and were ignored"). The table
1288
+ * cannot create rows — it does not own the writes — but it must not be the
1289
+ * reason nobody can. So it says exactly which rows they were, in the grid's
1290
+ * own column order, and a consumer that knows how to make a row makes them.
1291
+ * A consumer that does not simply leaves `overflow` alone and the sentence is
1292
+ * the same as before.
1293
+ */
1294
+ onPastePlan?: ((plan: SpreadsheetPastePlan) => void) | undefined;
1272
1295
  }
1273
1296
  /**
1274
1297
  * THE VALUES A COLUMN HOLDS, with a count beside each one.
@@ -5,7 +5,7 @@ import { F as FieldFormatConfig } from './types-CJWU1Gae.cjs';
5
5
  import { GroupAggregateSpec, GroupOrder } from './data-table/grouping.cjs';
6
6
  import { CellPatch } from './data-table/fill.cjs';
7
7
  import { ColumnFacets } from './data-table/facets.cjs';
8
- import { SpreadsheetIntent } from './data-table/spreadsheet.cjs';
8
+ import { SpreadsheetIntent, SpreadsheetPastePlan } from './data-table/spreadsheet.cjs';
9
9
  import { DateColumnFilterValue } from './data-table/date-filter.cjs';
10
10
 
11
11
  type TableSearchRole = "id" | "name" | "description" | "other";
@@ -1269,6 +1269,29 @@ interface MatrxDataTableSpreadsheetConfig<T> {
1269
1269
  columnId: string;
1270
1270
  value: unknown;
1271
1271
  }) => string | undefined) | undefined;
1272
+ /**
1273
+ * ASK BEFORE A PASTE IS WRITTEN, AND HAND OVER THE ROWS THAT DID NOT FIT.
1274
+ *
1275
+ * Absent (the default, and byte-for-byte what a paste did before): the table
1276
+ * screens the block and applies it straight away, which is right for a paste
1277
+ * of a handful of cells into rows that already exist.
1278
+ *
1279
+ * Present: the table computes the whole plan and applies NOTHING. The
1280
+ * consumer is handed what would be written, what was refused and why, and the
1281
+ * rows that landed past the last row — and calls `apply()` itself if the
1282
+ * person says yes.
1283
+ *
1284
+ * WHY THE OVERFLOW IS HANDED OVER AT ALL. A paste of fifty spreadsheet rows
1285
+ * into a table that holds three is the ordinary way a person fills a new
1286
+ * table, and until 2026-09-21 forty-seven of those rows were counted and
1287
+ * dropped ("landed past the edge of the table and were ignored"). The table
1288
+ * cannot create rows — it does not own the writes — but it must not be the
1289
+ * reason nobody can. So it says exactly which rows they were, in the grid's
1290
+ * own column order, and a consumer that knows how to make a row makes them.
1291
+ * A consumer that does not simply leaves `overflow` alone and the sentence is
1292
+ * the same as before.
1293
+ */
1294
+ onPastePlan?: ((plan: SpreadsheetPastePlan) => void) | undefined;
1272
1295
  }
1273
1296
  /**
1274
1297
  * THE VALUES A COLUMN HOLDS, with a count beside each one.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-matrx/design-system",
3
- "version": "0.28.0",
3
+ "version": "0.30.0",
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",