@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.
- package/CHANGELOG.md +32 -0
- package/dist/content-transfer.cjs +39 -0
- package/dist/content-transfer.cjs.map +1 -1
- package/dist/content-transfer.js +39 -0
- package/dist/content-transfer.js.map +1 -1
- package/dist/data-table/copy-helpers.d.cts +1 -1
- package/dist/data-table/copy-helpers.d.ts +1 -1
- package/dist/data-table/data-row-inspector.cjs +39 -0
- package/dist/data-table/data-row-inspector.cjs.map +1 -1
- package/dist/data-table/data-row-inspector.js +41 -2
- package/dist/data-table/data-row-inspector.js.map +1 -1
- package/dist/data-table/data-row-window.cjs +39 -0
- package/dist/data-table/data-row-window.cjs.map +1 -1
- package/dist/data-table/data-row-window.js +43 -4
- package/dist/data-table/data-row-window.js.map +1 -1
- package/dist/data-table/filter-engine.d.cts +1 -1
- package/dist/data-table/filter-engine.d.ts +1 -1
- package/dist/data-table/host.d.cts +1 -1
- package/dist/data-table/host.d.ts +1 -1
- package/dist/data-table/index.cjs +114 -3
- package/dist/data-table/index.cjs.map +1 -1
- package/dist/data-table/index.d.cts +2 -2
- package/dist/data-table/index.d.ts +2 -2
- package/dist/data-table/index.js +151 -40
- package/dist/data-table/index.js.map +1 -1
- package/dist/data-table/infer-filter.d.cts +1 -1
- package/dist/data-table/infer-filter.d.ts +1 -1
- package/dist/data-table/layered-filters.d.cts +1 -1
- package/dist/data-table/layered-filters.d.ts +1 -1
- package/dist/data-table/query-control.d.cts +1 -1
- package/dist/data-table/query-control.d.ts +1 -1
- package/dist/data-table/spreadsheet.cjs +68 -1
- package/dist/data-table/spreadsheet.cjs.map +1 -1
- package/dist/data-table/spreadsheet.d.cts +55 -1
- package/dist/data-table/spreadsheet.d.ts +55 -1
- package/dist/data-table/spreadsheet.js +68 -1
- package/dist/data-table/spreadsheet.js.map +1 -1
- package/dist/data-table/types.cjs.map +1 -1
- package/dist/data-table/types.d.cts +1 -1
- package/dist/data-table/types.d.ts +1 -1
- package/dist/data-table/url-state.d.cts +1 -1
- package/dist/data-table/url-state.d.ts +1 -1
- package/dist/data-table/xlsx.d.cts +1 -1
- package/dist/data-table/xlsx.d.ts +1 -1
- package/dist/index.cjs +43 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +28 -1
- package/dist/index.d.ts +28 -1
- package/dist/index.js +48 -5
- package/dist/index.js.map +1 -1
- package/dist/{types-afUz93xo.d.ts → types-CUR8Hbt5.d.ts} +12 -0
- package/dist/{types-q5ficDSo.d.cts → types-CqU57qk8.d.cts} +12 -0
- 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
|
|
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
|
-
|
|
3189
|
+
useEffect5(
|
|
3151
3190
|
() => () => {
|
|
3152
3191
|
if (timer.current) clearTimeout(timer.current);
|
|
3153
3192
|
},
|