@ai-matrx/summon 0.1.0 → 0.1.2
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 +15 -0
- package/README.md +2 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/persistence-data.cjs.map +1 -1
- package/dist/persistence-data.d.cts +2 -2
- package/dist/persistence-data.d.ts +2 -2
- package/dist/persistence-data.js.map +1 -1
- package/dist/persistence.cjs +3 -1
- package/dist/persistence.cjs.map +1 -1
- package/dist/persistence.js +3 -1
- package/dist/persistence.js.map +1 -1
- package/dist/react.cjs +15 -10
- package/dist/react.cjs.map +1 -1
- package/dist/react.d.cts +6 -1
- package/dist/react.d.ts +6 -1
- package/dist/react.js +17 -12
- package/dist/react.js.map +1 -1
- package/dist/sheet.cjs +4 -26
- package/dist/sheet.cjs.map +1 -1
- package/dist/sheet.d.cts +3 -2
- package/dist/sheet.d.ts +3 -2
- package/dist/sheet.js +1 -23
- package/dist/sheet.js.map +1 -1
- package/dist/window.cjs +24 -20
- package/dist/window.cjs.map +1 -1
- package/dist/window.js +24 -20
- package/dist/window.js.map +1 -1
- package/package.json +4 -4
package/dist/window.js
CHANGED
|
@@ -245,6 +245,7 @@ function LayoutIconButton({
|
|
|
245
245
|
}
|
|
246
246
|
|
|
247
247
|
// src/window/useWindowPanel.ts
|
|
248
|
+
import { globalSlot as globalSlot2 } from "@ai-matrx/kit/global-slot";
|
|
248
249
|
import { useEffect, useRef, useCallback, useId, useState } from "react";
|
|
249
250
|
import { useSummonDispatch, useSummonSelector, useSummonStore } from "@ai-matrx/summon/react";
|
|
250
251
|
import {
|
|
@@ -431,10 +432,11 @@ function nextCascadeStep() {
|
|
|
431
432
|
return seen % CASCADE_WRAP * CASCADE_STEP;
|
|
432
433
|
}
|
|
433
434
|
var NARROW_VIEWPORT = 768;
|
|
434
|
-
var
|
|
435
|
-
var
|
|
436
|
-
|
|
437
|
-
|
|
435
|
+
var autoPlacement = () => globalSlot2("ai-matrx.summon.window.autoPlacement", () => ({ docked: /* @__PURE__ */ new Set(), order: /* @__PURE__ */ new Map(), next: 0 }));
|
|
436
|
+
var earlierDocked = (id) => (other) => {
|
|
437
|
+
const { docked, order } = autoPlacement();
|
|
438
|
+
return other.id !== id && other.state === "windowed" && docked.has(other.id) && (order.get(other.id) ?? 0) < (order.get(id) ?? 0);
|
|
439
|
+
};
|
|
438
440
|
var AUTO_REPLACE_TICKS = 40;
|
|
439
441
|
function shellHeaderClearance() {
|
|
440
442
|
const GAP2 = 12;
|
|
@@ -495,7 +497,10 @@ function useWindowPanel(opts = {}) {
|
|
|
495
497
|
const { vw, vh } = safeViewportDims();
|
|
496
498
|
let autoPlaced = null;
|
|
497
499
|
if (opts.autoOpened && vw >= NARROW_VIEWPORT) {
|
|
498
|
-
|
|
500
|
+
{
|
|
501
|
+
const ap = autoPlacement();
|
|
502
|
+
if (!ap.order.has(id)) ap.order.set(id, ap.next++);
|
|
503
|
+
}
|
|
499
504
|
const siblings = Object.values(store.getState().windowManager.windows).filter(earlierDocked(id)).map((win) => win.windowed);
|
|
500
505
|
autoPlaced = resolveAutoOpenPlacement({
|
|
501
506
|
width: w,
|
|
@@ -506,7 +511,7 @@ function useWindowPanel(opts = {}) {
|
|
|
506
511
|
viewport: { vw, vh },
|
|
507
512
|
siblings
|
|
508
513
|
});
|
|
509
|
-
if (!autoPlaced.minimized)
|
|
514
|
+
if (!autoPlaced.minimized) autoPlacement().docked.add(id);
|
|
510
515
|
else if (opts.onAutoNoRoom) window.setTimeout(() => opts.onAutoNoRoom?.(), 0);
|
|
511
516
|
}
|
|
512
517
|
const pos = autoPlaced ? { x: autoPlaced.rect.x, y: autoPlaced.rect.y } : opts.initialRect?.x !== void 0 || opts.initialRect?.y !== void 0 ? {
|
|
@@ -535,8 +540,8 @@ function useWindowPanel(opts = {}) {
|
|
|
535
540
|
}, 0) : null;
|
|
536
541
|
return () => {
|
|
537
542
|
if (confirmationTimer !== null) window.clearTimeout(confirmationTimer);
|
|
538
|
-
|
|
539
|
-
|
|
543
|
+
autoPlacement().docked.delete(id);
|
|
544
|
+
autoPlacement().order.delete(id);
|
|
540
545
|
dispatch(unregisterWindow(id));
|
|
541
546
|
};
|
|
542
547
|
}, [id]);
|
|
@@ -575,7 +580,7 @@ function useWindowPanel(opts = {}) {
|
|
|
575
580
|
siblings
|
|
576
581
|
});
|
|
577
582
|
if (next.minimized) {
|
|
578
|
-
|
|
583
|
+
autoPlacement().docked.delete(id);
|
|
579
584
|
if (opts.onAutoNoRoom) {
|
|
580
585
|
window.clearInterval(timer);
|
|
581
586
|
opts.onAutoNoRoom();
|
|
@@ -587,7 +592,7 @@ function useWindowPanel(opts = {}) {
|
|
|
587
592
|
lastMinimized = true;
|
|
588
593
|
return;
|
|
589
594
|
}
|
|
590
|
-
|
|
595
|
+
autoPlacement().docked.add(id);
|
|
591
596
|
if (isMin) dispatch(restoreWindow(id));
|
|
592
597
|
const cur = store.getState().windowManager.windows[id]?.windowed;
|
|
593
598
|
if (!cur || Math.abs(cur.x - next.rect.x) > 4 || Math.abs(cur.y - next.rect.y) > 4 || Math.abs(cur.width - next.rect.width) > 4 || Math.abs(cur.height - next.rect.height) > 4) {
|
|
@@ -1374,8 +1379,8 @@ import {
|
|
|
1374
1379
|
|
|
1375
1380
|
// src/window/popout/popoutWindowMap.ts
|
|
1376
1381
|
import { useSyncExternalStore as useSyncExternalStore3 } from "react";
|
|
1377
|
-
import { globalSlot as
|
|
1378
|
-
var slot = () =>
|
|
1382
|
+
import { globalSlot as globalSlot3 } from "@ai-matrx/kit/global-slot";
|
|
1383
|
+
var slot = () => globalSlot3("ai-matrx.summon.window.popoutWindows", () => ({ map: /* @__PURE__ */ new Map(), listeners: /* @__PURE__ */ new Set() }));
|
|
1379
1384
|
function notify() {
|
|
1380
1385
|
for (const fn of slot().listeners) fn();
|
|
1381
1386
|
}
|
|
@@ -1794,8 +1799,8 @@ import {
|
|
|
1794
1799
|
dockWindow as dockWindow2
|
|
1795
1800
|
} from "@ai-matrx/summon";
|
|
1796
1801
|
import { buildDockWindowPayload as buildDockWindowPayload2 } from "@ai-matrx/summon";
|
|
1797
|
-
import { globalSlot as
|
|
1798
|
-
var openers = () =>
|
|
1802
|
+
import { globalSlot as globalSlot4 } from "@ai-matrx/kit/global-slot";
|
|
1803
|
+
var openers = () => globalSlot4("ai-matrx.summon.window.popoutOpeners", () => /* @__PURE__ */ new Map());
|
|
1799
1804
|
function registerPopoutOpener(windowId, fn) {
|
|
1800
1805
|
openers().set(windowId, fn);
|
|
1801
1806
|
return () => {
|
|
@@ -1890,9 +1895,9 @@ function PopoutPortal({ windowId, children }) {
|
|
|
1890
1895
|
}
|
|
1891
1896
|
|
|
1892
1897
|
// src/window/tray/traySnapshotMap.ts
|
|
1893
|
-
import { globalSlot as
|
|
1898
|
+
import { globalSlot as globalSlot5 } from "@ai-matrx/kit/global-slot";
|
|
1894
1899
|
var MAX_SNAPSHOTS = 16;
|
|
1895
|
-
var state = () =>
|
|
1900
|
+
var state = () => globalSlot5("ai-matrx.summon.window.traySnapshots", () => ({ map: /* @__PURE__ */ new Map(), listeners: /* @__PURE__ */ new Set() }));
|
|
1896
1901
|
function notify2() {
|
|
1897
1902
|
for (const fn of state().listeners) fn();
|
|
1898
1903
|
}
|
|
@@ -2318,7 +2323,6 @@ function WindowPanel({
|
|
|
2318
2323
|
onResizeStart,
|
|
2319
2324
|
onFocus,
|
|
2320
2325
|
onRestore,
|
|
2321
|
-
onMaximize,
|
|
2322
2326
|
onMinimize,
|
|
2323
2327
|
onToggleMaximize,
|
|
2324
2328
|
isInteracting
|
|
@@ -3464,7 +3468,7 @@ function GreenTrafficLight({
|
|
|
3464
3468
|
"w-3.5 h-3.5 rounded-full flex items-center justify-center transition-colors shrink-0",
|
|
3465
3469
|
"matrx-window-light-maximize cursor-pointer"
|
|
3466
3470
|
),
|
|
3467
|
-
onClick: (
|
|
3471
|
+
onClick: () => {
|
|
3468
3472
|
if ("ontouchstart" in window || navigator.maxTouchPoints > 0) {
|
|
3469
3473
|
setDropdownOpen((prev) => !prev);
|
|
3470
3474
|
} else {
|
|
@@ -3900,8 +3904,8 @@ function mayRaiseUnbidden(overlayId, pathname) {
|
|
|
3900
3904
|
}
|
|
3901
3905
|
|
|
3902
3906
|
// src/window/utils/lazy-bundle-guard.ts
|
|
3903
|
-
import { globalSlot as
|
|
3904
|
-
var guard = () =>
|
|
3907
|
+
import { globalSlot as globalSlot6 } from "@ai-matrx/kit/global-slot";
|
|
3908
|
+
var guard = () => globalSlot6("ai-matrx.summon.lazyBundleGuard", () => {
|
|
3905
3909
|
const state2 = { bootInProgress: typeof window !== "undefined", reported: /* @__PURE__ */ new Set() };
|
|
3906
3910
|
if (state2.bootInProgress) {
|
|
3907
3911
|
setTimeout(() => {
|