@ai-matrx/design-system 0.20.21 → 0.21.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 (50) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/dist/content-transfer.cjs +15 -0
  3. package/dist/content-transfer.cjs.map +1 -1
  4. package/dist/content-transfer.js +15 -0
  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 +15 -0
  9. package/dist/data-table/data-row-inspector.cjs.map +1 -1
  10. package/dist/data-table/data-row-inspector.js +15 -0
  11. package/dist/data-table/data-row-inspector.js.map +1 -1
  12. package/dist/data-table/data-row-window.cjs +15 -0
  13. package/dist/data-table/data-row-window.cjs.map +1 -1
  14. package/dist/data-table/data-row-window.js +15 -0
  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 +34 -11
  21. package/dist/data-table/index.cjs.map +1 -1
  22. package/dist/data-table/index.d.cts +4 -3
  23. package/dist/data-table/index.d.ts +4 -3
  24. package/dist/data-table/index.js +34 -11
  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/pagination.cjs +15 -0
  31. package/dist/data-table/pagination.cjs.map +1 -1
  32. package/dist/data-table/pagination.js +15 -0
  33. package/dist/data-table/pagination.js.map +1 -1
  34. package/dist/data-table/query-control.d.cts +1 -1
  35. package/dist/data-table/query-control.d.ts +1 -1
  36. package/dist/data-table/types.cjs.map +1 -1
  37. package/dist/data-table/types.d.cts +1 -1
  38. package/dist/data-table/types.d.ts +1 -1
  39. package/dist/data-table/url-state.d.cts +1 -1
  40. package/dist/data-table/url-state.d.ts +1 -1
  41. package/dist/data-table/xlsx.d.cts +1 -1
  42. package/dist/data-table/xlsx.d.ts +1 -1
  43. package/dist/index.cjs +15 -0
  44. package/dist/index.cjs.map +1 -1
  45. package/dist/index.js +15 -0
  46. package/dist/index.js.map +1 -1
  47. package/dist/styles.css +26 -0
  48. package/dist/{types-n8d2I1Gu.d.cts → types-B99KFITZ.d.cts} +9 -2
  49. package/dist/{types-D_UZxZC5.d.ts → types-CryQuMmz.d.ts} +9 -2
  50. package/package.json +1 -1
package/dist/styles.css CHANGED
@@ -912,6 +912,32 @@
912
912
  }
913
913
  }
914
914
 
915
+ /* THE BUTTON TOUCH FLOOR (2026-09-17).
916
+
917
+ Every rung of `buttonVariants`' size scale below `xl` is shorter than the
918
+ 44px platform touch target (`xs` 24 … `lg` 40). `button.tsx` stamps
919
+ `data-tap-floor` on those rungs and `data-tap-floor-square` on the icon
920
+ boxes; this is the rule that lifts them, and the reasoning — why every
921
+ sub-44 rung and not just `sm`, and why growth rather than an invisible hit
922
+ ring — is written out at the top of `button.tsx`.
923
+
924
+ Unlayered on purpose: a host's `h-8` utility is layered, and `min-height`
925
+ here has to beat it (it does not unpin `height`, it raises the floor under
926
+ it), exactly as the sheet/footer floors above do.
927
+
928
+ `(pointer: coarse)` ONLY — deliberately WITHOUT the `(max-width: 1023px)`
929
+ half the dialog-footer floor carries. A narrow desktop window is a small
930
+ viewport, not a finger, and desktop density must not move. */
931
+ @media (pointer: coarse) {
932
+ [data-matrx-button][data-tap-floor]:not([data-touch-exempt]) {
933
+ min-height: 2.75rem;
934
+ }
935
+
936
+ [data-matrx-button][data-tap-floor-square]:not([data-touch-exempt]) {
937
+ min-width: 2.75rem;
938
+ }
939
+ }
940
+
915
941
  /* MatrxDataTable's structure cannot depend on a consumer's Tailwind build.
916
942
  These hooks are intentionally limited to durable layout invariants; visual
917
943
  styling remains in the component's token-backed utility classes. */
@@ -1,6 +1,6 @@
1
1
  import { C as ContentTransferReference } from './extensions-DCHtNwG3.cjs';
2
2
  import { ReactNode } from 'react';
3
- import { AiVariant, AiCustomSource } from './data-table/copy-types.cjs';
3
+ import { AiVariant, AiCustomSource, CopyExportConfig } from './data-table/copy-types.cjs';
4
4
 
5
5
  type TableSearchRole = "id" | "name" | "description" | "other";
6
6
  interface TableSearchScope {
@@ -450,6 +450,11 @@ type ToolbarFacet = {
450
450
  type: "custom";
451
451
  id: string;
452
452
  render: () => ReactNode;
453
+ /** Declare filter state and its reset together so global Clear includes custom controls. */
454
+ filter?: {
455
+ active: boolean;
456
+ onReset: () => void;
457
+ };
453
458
  };
454
459
  /**
455
460
  * Cross-column OR search — matches if ANY listed column contains the query.
@@ -477,7 +482,7 @@ interface MatrxDataTableToolbar {
477
482
  searchMatch?: {
478
483
  defaultMode?: TableSearchMatchMode;
479
484
  };
480
- /** Prototype ranked search. Local tables rank complete loaded rows before pagination. */
485
+ /** Optional field-scope controls. Local search always ranks all loaded fields before pagination. */
481
486
  intelligentSearch?: {
482
487
  roles?: Readonly<Record<string, TableSearchRole>>;
483
488
  scopes?: readonly TableSearchScope[];
@@ -593,6 +598,8 @@ interface MatrxDataTableCopyConfig<T> {
593
598
  aiVariants?: (visible: T[], all: T[]) => AiVariant[];
594
599
  /** Custom-preview source (options dialog + live size counts) for the view. */
595
600
  aiCustom?: (visible: T[], all: T[]) => AiCustomSource;
601
+ /** Additional domain exports in the same canonical menu; builders run on demand. */
602
+ export?: (visible: T[], all: T[]) => CopyExportConfig;
596
603
  /** Show toolbar copy (this view). Default true when copy is set. */
597
604
  showToolbar?: boolean;
598
605
  /** Show per-row copy. Default true when copy is set. */
@@ -1,6 +1,6 @@
1
1
  import { C as ContentTransferReference } from './extensions-DCHtNwG3.js';
2
2
  import { ReactNode } from 'react';
3
- import { AiVariant, AiCustomSource } from './data-table/copy-types.js';
3
+ import { AiVariant, AiCustomSource, CopyExportConfig } from './data-table/copy-types.js';
4
4
 
5
5
  type TableSearchRole = "id" | "name" | "description" | "other";
6
6
  interface TableSearchScope {
@@ -450,6 +450,11 @@ type ToolbarFacet = {
450
450
  type: "custom";
451
451
  id: string;
452
452
  render: () => ReactNode;
453
+ /** Declare filter state and its reset together so global Clear includes custom controls. */
454
+ filter?: {
455
+ active: boolean;
456
+ onReset: () => void;
457
+ };
453
458
  };
454
459
  /**
455
460
  * Cross-column OR search — matches if ANY listed column contains the query.
@@ -477,7 +482,7 @@ interface MatrxDataTableToolbar {
477
482
  searchMatch?: {
478
483
  defaultMode?: TableSearchMatchMode;
479
484
  };
480
- /** Prototype ranked search. Local tables rank complete loaded rows before pagination. */
485
+ /** Optional field-scope controls. Local search always ranks all loaded fields before pagination. */
481
486
  intelligentSearch?: {
482
487
  roles?: Readonly<Record<string, TableSearchRole>>;
483
488
  scopes?: readonly TableSearchScope[];
@@ -593,6 +598,8 @@ interface MatrxDataTableCopyConfig<T> {
593
598
  aiVariants?: (visible: T[], all: T[]) => AiVariant[];
594
599
  /** Custom-preview source (options dialog + live size counts) for the view. */
595
600
  aiCustom?: (visible: T[], all: T[]) => AiCustomSource;
601
+ /** Additional domain exports in the same canonical menu; builders run on demand. */
602
+ export?: (visible: T[], all: T[]) => CopyExportConfig;
596
603
  /** Show toolbar copy (this view). Default true when copy is set. */
597
604
  showToolbar?: boolean;
598
605
  /** Show per-row copy. Default true when copy is set. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-matrx/design-system",
3
- "version": "0.20.21",
3
+ "version": "0.21.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",