@ai-matrx/design-system 0.42.1 → 0.44.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 (53) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/dist/content-transfer.cjs +39 -0
  3. package/dist/content-transfer.cjs.map +1 -1
  4. package/dist/content-transfer.js +39 -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 +39 -0
  9. package/dist/data-table/data-row-inspector.cjs.map +1 -1
  10. package/dist/data-table/data-row-inspector.js +41 -2
  11. package/dist/data-table/data-row-inspector.js.map +1 -1
  12. package/dist/data-table/data-row-window.cjs +39 -0
  13. package/dist/data-table/data-row-window.cjs.map +1 -1
  14. package/dist/data-table/data-row-window.js +43 -4
  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 +114 -3
  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 +151 -40
  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/spreadsheet.cjs +68 -1
  33. package/dist/data-table/spreadsheet.cjs.map +1 -1
  34. package/dist/data-table/spreadsheet.d.cts +55 -1
  35. package/dist/data-table/spreadsheet.d.ts +55 -1
  36. package/dist/data-table/spreadsheet.js +68 -1
  37. package/dist/data-table/spreadsheet.js.map +1 -1
  38. package/dist/data-table/types.cjs.map +1 -1
  39. package/dist/data-table/types.d.cts +1 -1
  40. package/dist/data-table/types.d.ts +1 -1
  41. package/dist/data-table/url-state.d.cts +1 -1
  42. package/dist/data-table/url-state.d.ts +1 -1
  43. package/dist/data-table/xlsx.d.cts +1 -1
  44. package/dist/data-table/xlsx.d.ts +1 -1
  45. package/dist/index.cjs +43 -0
  46. package/dist/index.cjs.map +1 -1
  47. package/dist/index.d.cts +28 -1
  48. package/dist/index.d.ts +28 -1
  49. package/dist/index.js +48 -5
  50. package/dist/index.js.map +1 -1
  51. package/dist/{types-afUz93xo.d.ts → types-CUR8Hbt5.d.ts} +12 -0
  52. package/dist/{types-q5ficDSo.d.cts → types-CqU57qk8.d.cts} +12 -0
  53. package/package.json +1 -1
@@ -221,6 +221,15 @@ function useIsMobile() {
221
221
  return isMobile;
222
222
  }
223
223
 
224
+ // src/layer-front.ts
225
+ var LAYER_FRONT_EVENT = "matrx:layer-front";
226
+ function announceLayerFront(element) {
227
+ if (typeof document === "undefined") return;
228
+ document.dispatchEvent(
229
+ new CustomEvent(LAYER_FRONT_EVENT, { detail: { element } })
230
+ );
231
+ }
232
+
224
233
  // src/dialog.tsx
225
234
  import { jsx as jsx5, jsxs as jsxs2 } from "react/jsx-runtime";
226
235
  var DialogWindowedByDefaultContext = React5.createContext(false);
@@ -291,6 +300,8 @@ var DialogContent = React5.forwardRef(
291
300
  dismissOnOutsideClick = false,
292
301
  onInteractOutside,
293
302
  onEscapeKeyDown,
303
+ onPointerDownCapture,
304
+ onFocusCapture,
294
305
  style,
295
306
  ...props
296
307
  }, ref) => {
@@ -303,6 +314,24 @@ var DialogContent = React5.forwardRef(
303
314
  const [containerEl, setContainerEl] = React5.useState(
304
315
  null
305
316
  );
317
+ const stacks = windowed && windowedByDefault;
318
+ const [behind, setBehind] = React5.useState(false);
319
+ React5.useEffect(() => {
320
+ if (!stacks || !containerEl) return;
321
+ const onFront = (event) => {
322
+ const element = event.detail?.element ?? null;
323
+ if (element && (element === containerEl || containerEl.contains(element))) return;
324
+ setBehind(true);
325
+ };
326
+ document.addEventListener(LAYER_FRONT_EVENT, onFront);
327
+ announceLayerFront(containerEl);
328
+ return () => document.removeEventListener(LAYER_FRONT_EVENT, onFront);
329
+ }, [stacks, containerEl]);
330
+ const bringToFront = () => {
331
+ if (!stacks || !containerEl) return;
332
+ setBehind(false);
333
+ announceLayerFront(containerEl);
334
+ };
306
335
  const [offset, setOffset] = React5.useState({ x: 0, y: 0 });
307
336
  const dragRef = React5.useRef(null);
308
337
  const handle = React5.useMemo(() => {
@@ -361,10 +390,20 @@ var DialogContent = React5.forwardRef(
361
390
  // z=1000); staying below that boundary makes a newly focused window
362
391
  // usable without coupling the two systems.
363
392
  !isModal && !windowedByDefault && "z-[900]",
393
+ // Another layer came to the front after this window (layer-front.ts).
394
+ stacks && behind && "z-[999]",
364
395
  // Without an overlay the card needs its own separation from the page.
365
396
  windowed && "shadow-2xl ring-1 ring-border/60"
366
397
  ),
367
398
  style: windowed && (offset.x !== 0 || offset.y !== 0) ? { ...style, translate: `${offset.x}px ${offset.y}px` } : style,
399
+ onPointerDownCapture: (event) => {
400
+ onPointerDownCapture?.(event);
401
+ if (behind) bringToFront();
402
+ },
403
+ onFocusCapture: (event) => {
404
+ onFocusCapture?.(event);
405
+ if (behind) bringToFront();
406
+ },
368
407
  onInteractOutside: (event) => {
369
408
  onInteractOutside?.(event);
370
409
  if (windowed && !dismissOnOutsideClick) event.preventDefault();
@@ -3057,7 +3096,7 @@ function CopyButtons(props) {
3057
3096
 
3058
3097
  // src/data-table/MatrxUuidCell.tsx
3059
3098
  import {
3060
- useEffect as useEffect4,
3099
+ useEffect as useEffect5,
3061
3100
  useRef as useRef5,
3062
3101
  useState as useState7
3063
3102
  } from "react";
@@ -3147,7 +3186,7 @@ function MatrxUuidCell({
3147
3186
  const [opening, setOpening] = useState7(false);
3148
3187
  const [peekOpen, setPeekOpen] = useState7(false);
3149
3188
  const timer = useRef5(null);
3150
- useEffect4(
3189
+ useEffect5(
3151
3190
  () => () => {
3152
3191
  if (timer.current) clearTimeout(timer.current);
3153
3192
  },