@liberation-data/desk 0.1.0 → 0.3.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/README.md +126 -1
- package/dist/core/desk.d.ts.map +1 -1
- package/dist/core/desk.js +19 -2
- package/dist/core/desk.js.map +1 -1
- package/dist/core/index.d.ts +2 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +1 -0
- package/dist/core/index.js.map +1 -1
- package/dist/core/layouts.d.ts +26 -0
- package/dist/core/layouts.d.ts.map +1 -0
- package/dist/core/layouts.js +70 -0
- package/dist/core/layouts.js.map +1 -0
- package/dist/core/types.d.ts +3 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/desk.css +252 -1
- package/dist/react/Desktop.d.ts +7 -1
- package/dist/react/Desktop.d.ts.map +1 -1
- package/dist/react/Desktop.js +4 -4
- package/dist/react/Desktop.js.map +1 -1
- package/dist/react/Dock.d.ts +16 -1
- package/dist/react/Dock.d.ts.map +1 -1
- package/dist/react/Dock.js +44 -6
- package/dist/react/Dock.js.map +1 -1
- package/dist/react/MenuBar.d.ts +16 -0
- package/dist/react/MenuBar.d.ts.map +1 -1
- package/dist/react/MenuBar.js +36 -27
- package/dist/react/MenuBar.js.map +1 -1
- package/dist/react/context.d.ts +2 -0
- package/dist/react/context.d.ts.map +1 -1
- package/dist/react/context.js +2 -0
- package/dist/react/context.js.map +1 -1
- package/dist/react/contextMenu.d.ts +22 -0
- package/dist/react/contextMenu.d.ts.map +1 -0
- package/dist/react/contextMenu.js +146 -0
- package/dist/react/contextMenu.js.map +1 -0
- package/dist/react/iconView.d.ts +34 -0
- package/dist/react/iconView.d.ts.map +1 -0
- package/dist/react/iconView.js +112 -0
- package/dist/react/iconView.js.map +1 -0
- package/dist/react/index.d.ts +10 -2
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +5 -1
- package/dist/react/index.js.map +1 -1
- package/dist/react/infoTip.d.ts +11 -0
- package/dist/react/infoTip.d.ts.map +1 -0
- package/dist/react/infoTip.js +8 -0
- package/dist/react/infoTip.js.map +1 -0
- package/dist/react/pane.d.ts +28 -0
- package/dist/react/pane.d.ts.map +1 -0
- package/dist/react/pane.js +9 -0
- package/dist/react/pane.js.map +1 -0
- package/llms.txt +34 -4
- package/package.json +1 -1
- package/src/core/desk.ts +17 -2
- package/src/core/index.ts +2 -0
- package/src/core/layouts.ts +88 -0
- package/src/core/types.ts +4 -0
- package/src/desk.css +252 -1
- package/src/react/Desktop.tsx +11 -2
- package/src/react/Dock.tsx +74 -5
- package/src/react/MenuBar.tsx +43 -30
- package/src/react/context.tsx +3 -0
- package/src/react/contextMenu.tsx +198 -0
- package/src/react/iconView.tsx +206 -0
- package/src/react/index.ts +10 -2
- package/src/react/infoTip.tsx +48 -0
- package/src/react/pane.tsx +65 -0
package/README.md
CHANGED
|
@@ -18,6 +18,19 @@ Drag a window by its title bar to free it where it sits. Drop it against the lef
|
|
|
18
18
|
that half. Resize from the sides, the bottom or the corner. Double-click the title bar, or press the green
|
|
19
19
|
control, to fill the desk and back.
|
|
20
20
|
|
|
21
|
+
Give the desk somewhere to keep layouts and windows come back the way they were left:
|
|
22
|
+
|
|
23
|
+
```ts
|
|
24
|
+
const desk = createDesk({ layouts: localLayoutStore('rides') })
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
A window you made small and moved to a corner opens small and in the corner next time; one you zoomed opens
|
|
28
|
+
filling the desk. It is remembered per kind of window, so `query#2` opens where `query` was left. If the desk
|
|
29
|
+
has shrunk since, the window is moved back on and made smaller, and opens filled if it would be too small to
|
|
30
|
+
use. Another window of a kind already open steps down and to the right of it, wrapping to the top-left at the
|
|
31
|
+
edge. Arrange and a frame passed to `open` are not remembered. `LayoutStore` is two synchronous functions,
|
|
32
|
+
`load(type)` and `save(type, layout)`, for keeping layouts somewhere other than this browser.
|
|
33
|
+
|
|
21
34
|
## Use it
|
|
22
35
|
|
|
23
36
|
```tsx
|
|
@@ -57,6 +70,21 @@ what went wrong and offers Reload, which tries the import again rather than reme
|
|
|
57
70
|
`renderWindow` is called with a window's id. The desk never owns your content, and a window keeps its DOM
|
|
58
71
|
when focus moves, so scroll positions, carets and iframes survive.
|
|
59
72
|
|
|
73
|
+
### What a window is looking at
|
|
74
|
+
|
|
75
|
+
```tsx
|
|
76
|
+
<Desktop
|
|
77
|
+
title={id => TITLES[id]}
|
|
78
|
+
note={id => (id === 'logs' ? 'GET /api/v1/admin/logs' : null)}
|
|
79
|
+
renderWindow={render}
|
|
80
|
+
/>
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
`note` puts a quiet line on the trailing side of a window's title bar: the request behind it, the file being
|
|
84
|
+
edited, how many rows were found. It is text, not a control — the title names the window, the note says what
|
|
85
|
+
this one is looking at, and in a narrow window the note is cut before the title is. Return null for a window
|
|
86
|
+
with nothing to say. Controls belong in `actions`, which sits after it.
|
|
87
|
+
|
|
60
88
|
## Touch: one window at a time
|
|
61
89
|
|
|
62
90
|
`<Desktop layout="auto">` (the default) reads the device. A touch screen that cannot hover gets
|
|
@@ -89,6 +117,67 @@ The dock is one tab stop: arrow keys move along it, Enter opens, Escape folds a
|
|
|
89
117
|
to it. With `placement="overlay"` (the default) it floats over the bottom of its positioned parent; set
|
|
90
118
|
`--desk-inset-bottom` so windows stop above it.
|
|
91
119
|
|
|
120
|
+
### Keeping things in the dock
|
|
121
|
+
|
|
122
|
+
```tsx
|
|
123
|
+
<Dock
|
|
124
|
+
entries={[
|
|
125
|
+
...fixed,
|
|
126
|
+
dockSeparator('kept'),
|
|
127
|
+
...kept.map(app =>
|
|
128
|
+
dockItem({
|
|
129
|
+
id: `app#${app.id}`,
|
|
130
|
+
label: app.name,
|
|
131
|
+
icon: <AppIcon app={app} />,
|
|
132
|
+
movable: true,
|
|
133
|
+
contextMenu: () => [menuAction('Open', () => desk.open(`app#${app.id}`)), menuAction('Remove from Dock', () => unpin(app.id))],
|
|
134
|
+
}),
|
|
135
|
+
),
|
|
136
|
+
]}
|
|
137
|
+
pins={{ accepts: 'app', onPin: (drag, before) => pin(drag.payload, before), onMove: (id, before) => move(id, before) }}
|
|
138
|
+
/>
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
The dock does not store what is kept; the app does, beside its other preferences, and passes it back as
|
|
142
|
+
entries. Drop something the dock `accepts` on it to keep it: on the dock it goes at the end, on a `movable`
|
|
143
|
+
item it goes in front of that one, and the fixed items are never split. A `movable` item can be carried along
|
|
144
|
+
the dock to a new place. `contextMenu` gives any item a right-click menu; an item that is `disabled` but has
|
|
145
|
+
a menu stays reachable, so something that can no longer open can still be removed.
|
|
146
|
+
|
|
147
|
+
## Inside a window: a pane
|
|
148
|
+
|
|
149
|
+
```tsx
|
|
150
|
+
import { Button, InfoTip, Pane, Toolbar } from '@liberation-data/desk/react'
|
|
151
|
+
|
|
152
|
+
<Pane
|
|
153
|
+
label="Log"
|
|
154
|
+
header={
|
|
155
|
+
<Toolbar
|
|
156
|
+
label="Log controls"
|
|
157
|
+
trailing={<><Button onClick={pause}>Pause</Button><Button onClick={load}>Refresh</Button></>}
|
|
158
|
+
>
|
|
159
|
+
<TextField className="desk-grow" label="Filter" value={filter} onChange={…} />
|
|
160
|
+
<InfoTip label="About these logs">This process only, and nothing that survives a restart.</InfoTip>
|
|
161
|
+
</Toolbar>
|
|
162
|
+
}
|
|
163
|
+
footer={<p>{lines.length} lines</p>}
|
|
164
|
+
>
|
|
165
|
+
{lines.map(line => <LogLine key={line.id} line={line} />)}
|
|
166
|
+
</Pane>
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
A window is a fixed height, so something inside it has to give. A pane fills the window and scrolls only
|
|
170
|
+
its middle: the toolbar and the footer stay where the pointer left them, and the window itself never
|
|
171
|
+
scrolls. Name the pane and the scrolling part can be reached and scrolled from the keyboard. `bodyRef` and `onScroll`
|
|
172
|
+
hand over the scrolling element itself, for a view that follows its own tail.
|
|
173
|
+
|
|
174
|
+
`Toolbar` is one aligned row — every control on the same centre line whatever its own height, `trailing`
|
|
175
|
+
pushed to the end, and `className="desk-grow"` on the one item that should take the spare room.
|
|
176
|
+
|
|
177
|
+
`InfoTip` is an (i) holding what the view would explain if asked, so a window does not open with a
|
|
178
|
+
paragraph everyone reads once. Explanation only: a warning belongs in front of people, not behind a
|
|
179
|
+
disclosure.
|
|
180
|
+
|
|
92
181
|
## Controls
|
|
93
182
|
|
|
94
183
|
```tsx
|
|
@@ -355,6 +444,42 @@ own their shortcuts, as in AppKit — a command item's `shortcut` is shown and b
|
|
|
355
444
|
the bar, arrow keys move between menus and items (skipping separators and disabled items), a letter jumps
|
|
356
445
|
to an item, Enter chooses, Escape closes.
|
|
357
446
|
|
|
447
|
+
|
|
448
|
+
### Context menus
|
|
449
|
+
|
|
450
|
+
```tsx
|
|
451
|
+
function RideRow({ ride }) {
|
|
452
|
+
const { target, menu } = useContextMenu({
|
|
453
|
+
label: `Actions for ${ride.name}`,
|
|
454
|
+
items: () => [menuAction('Open', () => open(ride)), menuSeparator(), menuCommand('Export', 'rides.export')],
|
|
455
|
+
})
|
|
456
|
+
return <><button {...target} onClick={() => open(ride)}>{ride.name}</button>{menu}</>
|
|
457
|
+
}
|
|
458
|
+
```
|
|
459
|
+
|
|
460
|
+
A right-click opens the menu where the pointer is; the Menu key or Shift+F10 opens it at the item, with the
|
|
461
|
+
first item ready. Items are the menu bar's, so a command asks the responder chain whether it is enabled and
|
|
462
|
+
runs from the item that was right-clicked. It closes on Escape, a click elsewhere, scrolling or resizing, and
|
|
463
|
+
gives focus back. The HIG's rule stands: nothing lives only in a context menu.
|
|
464
|
+
|
|
465
|
+
### Icon view
|
|
466
|
+
|
|
467
|
+
```tsx
|
|
468
|
+
<IconView
|
|
469
|
+
label="Apps"
|
|
470
|
+
items={apps.map(app => ({ id: app.id, label: app.name, subtitle: app.scope, icon: <AppIcon app={app} /> }))}
|
|
471
|
+
onOpen={app => desk.open(`app#${app.id}`)}
|
|
472
|
+
contextMenu={app => [menuAction('Open', () => desk.open(`app#${app.id}`))]}
|
|
473
|
+
drag={{ type: 'app', payload: app => app }}
|
|
474
|
+
empty="No apps yet."
|
|
475
|
+
/>
|
|
476
|
+
```
|
|
477
|
+
|
|
478
|
+
A Finder's icons, in rows that follow the window's width. A click selects and a double-click opens;
|
|
479
|
+
`openOn="single"` opens on one click, for a launcher. Arrows move through the grid (up and down by however
|
|
480
|
+
many fit in a row), Home and End go to the ends, typing a name jumps to it, Return opens, and the Menu key
|
|
481
|
+
opens the item's context menu. With `drag`, an icon can be carried to a drop target such as the dock.
|
|
482
|
+
|
|
358
483
|
## Commands and the responder chain
|
|
359
484
|
|
|
360
485
|
Some commands name no target — Copy, Close, Find. They go to whoever is responsible, the way AppKit's
|
|
@@ -425,7 +550,7 @@ npm install
|
|
|
425
550
|
npm test # vitest
|
|
426
551
|
npm run typecheck
|
|
427
552
|
npm run example # the Garage sample in examples/garage
|
|
428
|
-
npm run size # the gzipped budget: core
|
|
553
|
+
npm run size # the gzipped budget: core 11 KiB, react 46, css 10
|
|
429
554
|
npm run check # everything CI runs
|
|
430
555
|
npm run check:browser # the generated-app bridge in real Chrome, against a running sample
|
|
431
556
|
npm run build # dist/
|
package/dist/core/desk.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"desk.d.ts","sourceRoot":"","sources":["../../src/core/desk.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,WAAW,EACX,SAAS,EACT,UAAU,EACV,KAAK,EACL,WAAW,EACX,IAAI,EACJ,QAAQ,EACT,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"desk.d.ts","sourceRoot":"","sources":["../../src/core/desk.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,WAAW,EACX,SAAS,EACT,UAAU,EACV,KAAK,EACL,WAAW,EACX,IAAI,EACJ,QAAQ,EACT,MAAM,YAAY,CAAA;AAGnB,MAAM,WAAW,IAAI;IACnB,QAAQ,IAAI,SAAS,CAAA;IACrB,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,GAAG,MAAM,IAAI,CAAA;IAC3D,4GAA4G;IAC5G,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;IAC/C,6FAA6F;IAC7F,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,QAAQ,CAAA;IAC3D,KAAK,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAAA;IACzB,QAAQ,IAAI,IAAI,CAAA;IAChB,KAAK,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAAA;IACzB,2GAA2G;IAC3G,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAAA;IACxC,+FAA+F;IAC/F,IAAI,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAAA;IACxB,yDAAyD;IACzD,UAAU,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAAA;IAC9B,qFAAqF;IACrF,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,GAAG,IAAI,CAAA;IACzD,6FAA6F;IAC7F,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAA;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,GAAG,IAAI,CAAA;CAClC;AAED,eAAO,MAAM,KAAK,EAAE,SAAsC,CAAA;AAY1D,eAAO,MAAM,SAAS,UAAW,SAAS,KAAG,QAAQ,GAAG,IAAkC,CAAA;AAE1F;;;;GAIG;AACH,eAAO,MAAM,UAAU,OAAQ,QAAQ,KAAG,MAAgC,CAAA;AAE1E,eAAO,MAAM,WAAW,UAAW,SAAS,QAAQ,MAAM,KAAG,SAAS,UAAU,EAC1B,CAAA;AAEtD,eAAO,MAAM,MAAM,UAAW,SAAS,MAAM,QAAQ,KAAG,OAA+C,CAAA;AAEvG,wBAAgB,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,GAAE,cAAgC,GAAG,KAAK,CAUjH;AAED,kFAAkF;AAClF,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,GAAE,cAAgC,GAAG,MAAM,CAMxG;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,GAAE,cAAgC,GAAG,KAAK,CAM9H;AAED,sEAAsE;AACtE,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,CAMrD;AAED,wBAAgB,UAAU,CAAC,OAAO,GAAE,WAAgB,GAAG,IAAI,CA2I1D"}
|
package/dist/core/desk.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { fitFrame, stepFrom } from './layouts.js';
|
|
1
2
|
export const EMPTY = { windows: [], stack: [] };
|
|
2
3
|
const DEFAULT_CASCADE = {
|
|
3
4
|
maxWidth: 720,
|
|
@@ -61,6 +62,7 @@ export function createDesk(options = {}) {
|
|
|
61
62
|
let stage = options.stage ?? (() => DEFAULT_STAGE);
|
|
62
63
|
let state = normalise(options.initial ?? EMPTY);
|
|
63
64
|
const listeners = new Set();
|
|
65
|
+
const layouts = options.layouts;
|
|
64
66
|
const commit = (next) => {
|
|
65
67
|
if (next === state)
|
|
66
68
|
return;
|
|
@@ -93,6 +95,7 @@ export function createDesk(options = {}) {
|
|
|
93
95
|
const next = frame ?? fits(remembered.get(id)) ?? nextFrame(state);
|
|
94
96
|
if (frame)
|
|
95
97
|
remembered.set(id, frame);
|
|
98
|
+
layouts?.save(windowType(id), { mode: 'floating', frame: next });
|
|
96
99
|
commit(toFront(replace(state, { id, mode: 'floating', frame: next }), id));
|
|
97
100
|
};
|
|
98
101
|
const fill = (id) => {
|
|
@@ -100,6 +103,7 @@ export function createDesk(options = {}) {
|
|
|
100
103
|
if (!window || window.mode === 'filled')
|
|
101
104
|
return;
|
|
102
105
|
remembered.set(id, window.frame);
|
|
106
|
+
layouts?.save(windowType(id), { mode: 'filled' });
|
|
103
107
|
commit(toFront(replace(state, { id, mode: 'filled' }), id));
|
|
104
108
|
};
|
|
105
109
|
return {
|
|
@@ -115,8 +119,21 @@ export function createDesk(options = {}) {
|
|
|
115
119
|
commit(toFront(state, id));
|
|
116
120
|
return;
|
|
117
121
|
}
|
|
118
|
-
const
|
|
119
|
-
const
|
|
122
|
+
const saved = opts.mode || opts.frame ? undefined : layouts?.load(windowType(id));
|
|
123
|
+
const kept = saved?.mode === 'floating' ? fitFrame(saved.frame, stage()) : null;
|
|
124
|
+
const mode = opts.mode ?? (opts.frame || kept ? 'floating' : 'filled');
|
|
125
|
+
const frame = () => {
|
|
126
|
+
if (opts.frame)
|
|
127
|
+
return opts.frame;
|
|
128
|
+
if (!kept)
|
|
129
|
+
return nextFrame(state);
|
|
130
|
+
const siblings = state.stack.flatMap(other => {
|
|
131
|
+
const w = find(other);
|
|
132
|
+
return w?.mode === 'floating' && windowType(w.id) === windowType(id) ? [w.frame] : [];
|
|
133
|
+
});
|
|
134
|
+
return stepFrom(kept, siblings, stage(), cascade.step, cascade.margin);
|
|
135
|
+
};
|
|
136
|
+
const window = mode === 'filled' ? { id, mode } : { id, mode, frame: frame() };
|
|
120
137
|
commit({ windows: [...state.windows, window], stack: [...state.stack, id] });
|
|
121
138
|
},
|
|
122
139
|
openInstance(type, opts = {}) {
|
package/dist/core/desk.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"desk.js","sourceRoot":"","sources":["../../src/core/desk.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"desk.js","sourceRoot":"","sources":["../../src/core/desk.ts"],"names":[],"mappings":"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"}
|
package/dist/core/index.d.ts
CHANGED
|
@@ -8,6 +8,8 @@ export { bindShortcuts, formatShortcut, isApplePlatform, isInstalledApp, matches
|
|
|
8
8
|
export type { Keymap, Shortcut, ShortcutOptions } from './shortcuts.js';
|
|
9
9
|
export { parse, serialize, syncWithLocation } from './location.js';
|
|
10
10
|
export { isTitleCase, titleCase } from './titles.js';
|
|
11
|
+
export { fitFrame, localLayoutStore, stepFrom } from './layouts.js';
|
|
12
|
+
export type { LayoutStore, SavedLayout } from './layouts.js';
|
|
11
13
|
export type { LocationEnv, LocationOptions } from './location.js';
|
|
12
14
|
export type { CascadeOptions, DeskOptions, DeskState, DeskWindow, Frame, OpenOptions, Size, WindowId, WindowMode, } from './types.js';
|
|
13
15
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/core/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,YAAY,EACZ,WAAW,EACX,SAAS,EACT,WAAW,EACX,MAAM,EACN,gBAAgB,EAChB,SAAS,EACT,UAAU,EACV,KAAK,GACN,MAAM,WAAW,CAAA;AAClB,YAAY,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,UAAU,EACV,UAAU,EACV,YAAY,EACZ,OAAO,EACP,eAAe,EACf,gBAAgB,EAChB,aAAa,GACd,MAAM,eAAe,CAAA;AACtB,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC5F,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AACpE,YAAY,EAAE,GAAG,EAAE,SAAS,EAAE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AACnG,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC/H,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACvE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAClE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACpD,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AACjE,YAAY,EACV,cAAc,EACd,WAAW,EACX,SAAS,EACT,UAAU,EACV,KAAK,EACL,WAAW,EACX,IAAI,EACJ,QAAQ,EACR,UAAU,GACX,MAAM,YAAY,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,YAAY,EACZ,WAAW,EACX,SAAS,EACT,WAAW,EACX,MAAM,EACN,gBAAgB,EAChB,SAAS,EACT,UAAU,EACV,KAAK,GACN,MAAM,WAAW,CAAA;AAClB,YAAY,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,UAAU,EACV,UAAU,EACV,YAAY,EACZ,OAAO,EACP,eAAe,EACf,gBAAgB,EAChB,aAAa,GACd,MAAM,eAAe,CAAA;AACtB,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC5F,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AACpE,YAAY,EAAE,GAAG,EAAE,SAAS,EAAE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AACnG,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC/H,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACvE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAClE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AACnE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC5D,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AACjE,YAAY,EACV,cAAc,EACd,WAAW,EACX,SAAS,EACT,UAAU,EACV,KAAK,EACL,WAAW,EACX,IAAI,EACJ,QAAQ,EACR,UAAU,GACX,MAAM,YAAY,CAAA"}
|
package/dist/core/index.js
CHANGED
|
@@ -4,4 +4,5 @@ export { createBus, InputCommands, topicMatches } from './events.js';
|
|
|
4
4
|
export { bindShortcuts, formatShortcut, isApplePlatform, isInstalledApp, matchesShortcut, parseShortcut } from './shortcuts.js';
|
|
5
5
|
export { parse, serialize, syncWithLocation } from './location.js';
|
|
6
6
|
export { isTitleCase, titleCase } from './titles.js';
|
|
7
|
+
export { fitFrame, localLayoutStore, stepFrom } from './layouts.js';
|
|
7
8
|
//# sourceMappingURL=index.js.map
|
package/dist/core/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,YAAY,EACZ,WAAW,EACX,SAAS,EACT,WAAW,EACX,MAAM,EACN,gBAAgB,EAChB,SAAS,EACT,UAAU,EACV,KAAK,GACN,MAAM,WAAW,CAAA;AAElB,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,UAAU,EACV,UAAU,EACV,YAAY,EACZ,OAAO,EACP,eAAe,EACf,gBAAgB,EAChB,aAAa,GACd,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAEpE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAE/H,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAClE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,YAAY,EACZ,WAAW,EACX,SAAS,EACT,WAAW,EACX,MAAM,EACN,gBAAgB,EAChB,SAAS,EACT,UAAU,EACV,KAAK,GACN,MAAM,WAAW,CAAA;AAElB,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,UAAU,EACV,UAAU,EACV,YAAY,EACZ,OAAO,EACP,eAAe,EACf,gBAAgB,EAChB,aAAa,GACd,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAEpE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAE/H,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAClE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { Frame, Size } from './types.js';
|
|
2
|
+
export type SavedLayout = {
|
|
3
|
+
readonly mode: 'filled';
|
|
4
|
+
} | {
|
|
5
|
+
readonly mode: 'floating';
|
|
6
|
+
readonly frame: Frame;
|
|
7
|
+
};
|
|
8
|
+
/** Where layouts are kept. Synchronous: a window opens now, not after a round trip. */
|
|
9
|
+
export interface LayoutStore {
|
|
10
|
+
load(type: string): SavedLayout | undefined;
|
|
11
|
+
save(type: string, layout: SavedLayout): void;
|
|
12
|
+
}
|
|
13
|
+
/** Keeps layouts in this browser, under `desk.layouts.<key>`. */
|
|
14
|
+
export declare function localLayoutStore(key: string): LayoutStore;
|
|
15
|
+
/** A remembered frame on today's desk: on screen, no bigger than the desk, or null if too small to use. */
|
|
16
|
+
export declare function fitFrame(frame: Frame, stage: Size, min?: Size): Frame | null;
|
|
17
|
+
/**
|
|
18
|
+
* Where another window of a kind goes when some are already free on the desk: a step down and right
|
|
19
|
+
* of the one in front, back to the top-left when that would run off the desk, and never exactly on
|
|
20
|
+
* top of one already there.
|
|
21
|
+
*/
|
|
22
|
+
export declare function stepFrom(frame: Frame, open: readonly Frame[], stage: Size, step: {
|
|
23
|
+
x: number;
|
|
24
|
+
y: number;
|
|
25
|
+
}, margin: number): Frame;
|
|
26
|
+
//# sourceMappingURL=layouts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layouts.d.ts","sourceRoot":"","sources":["../../src/core/layouts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAc7C,MAAM,MAAM,WAAW,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAAA;AAE5G,uFAAuF;AACvF,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAAA;IAC3C,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAAA;CAC9C;AAID,iEAAiE;AACjE,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAqBzD;AAYD,2GAA2G;AAC3G,wBAAgB,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,GAAE,IAAU,GAAG,KAAK,GAAG,IAAI,CAUjF;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK,CAWjI"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
const MIN = { width: 240, height: 160 };
|
|
2
|
+
/** Keeps layouts in this browser, under `desk.layouts.<key>`. */
|
|
3
|
+
export function localLayoutStore(key) {
|
|
4
|
+
const name = `desk.layouts.${key}`;
|
|
5
|
+
const read = () => {
|
|
6
|
+
try {
|
|
7
|
+
const raw = globalThis.localStorage?.getItem(name);
|
|
8
|
+
const parsed = raw ? JSON.parse(raw) : {};
|
|
9
|
+
return parsed && typeof parsed === 'object' ? parsed : {};
|
|
10
|
+
}
|
|
11
|
+
catch {
|
|
12
|
+
return {};
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
return {
|
|
16
|
+
load: type => valid(read()[type]),
|
|
17
|
+
save(type, layout) {
|
|
18
|
+
try {
|
|
19
|
+
globalThis.localStorage?.setItem(name, JSON.stringify({ ...read(), [type]: layout }));
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
// Private windows and full storage: windows still open, just not where they were.
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
const finite = (...values) => values.every(v => typeof v === 'number' && Number.isFinite(v));
|
|
28
|
+
/** Storage is outside the program: anything that is not a layout is treated as none. */
|
|
29
|
+
function valid(layout) {
|
|
30
|
+
const l = layout;
|
|
31
|
+
if (l?.mode === 'filled')
|
|
32
|
+
return l;
|
|
33
|
+
if (l?.mode === 'floating' && l.frame && finite(l.frame.x, l.frame.y, l.frame.width, l.frame.height))
|
|
34
|
+
return l;
|
|
35
|
+
return undefined;
|
|
36
|
+
}
|
|
37
|
+
/** A remembered frame on today's desk: on screen, no bigger than the desk, or null if too small to use. */
|
|
38
|
+
export function fitFrame(frame, stage, min = MIN) {
|
|
39
|
+
const width = Math.min(frame.width, stage.width);
|
|
40
|
+
const height = Math.min(frame.height, stage.height);
|
|
41
|
+
if (width < min.width || height < min.height)
|
|
42
|
+
return null;
|
|
43
|
+
return {
|
|
44
|
+
x: Math.max(0, Math.min(frame.x, stage.width - width)),
|
|
45
|
+
y: Math.max(0, Math.min(frame.y, stage.height - height)),
|
|
46
|
+
width,
|
|
47
|
+
height,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Where another window of a kind goes when some are already free on the desk: a step down and right
|
|
52
|
+
* of the one in front, back to the top-left when that would run off the desk, and never exactly on
|
|
53
|
+
* top of one already there.
|
|
54
|
+
*/
|
|
55
|
+
export function stepFrom(frame, open, stage, step, margin) {
|
|
56
|
+
const front = open.at(-1);
|
|
57
|
+
if (!front)
|
|
58
|
+
return frame;
|
|
59
|
+
const taken = (f) => open.some(o => o.x === f.x && o.y === f.y);
|
|
60
|
+
let next = { ...frame, x: front.x + step.x, y: front.y + step.y };
|
|
61
|
+
for (let tries = 0; tries <= open.length; tries++) {
|
|
62
|
+
if (next.x + next.width > stage.width || next.y + next.height > stage.height)
|
|
63
|
+
next = { ...next, x: margin, y: margin };
|
|
64
|
+
if (!taken(next))
|
|
65
|
+
return next;
|
|
66
|
+
next = { ...next, x: next.x + step.x, y: next.y + step.y };
|
|
67
|
+
}
|
|
68
|
+
return next;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=layouts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layouts.js","sourceRoot":"","sources":["../../src/core/layouts.ts"],"names":[],"mappings":"AAsBA,MAAM,GAAG,GAAS,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAA;AAE7C,iEAAiE;AACjE,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,MAAM,IAAI,GAAG,gBAAgB,GAAG,EAAE,CAAA;IAClC,MAAM,IAAI,GAAG,GAAgC,EAAE;QAC7C,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,UAAU,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;YAClD,MAAM,MAAM,GAAY,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;YAClD,OAAO,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAE,MAAsC,CAAC,CAAC,CAAC,EAAE,CAAA;QAC5F,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAA;QACX,CAAC;IACH,CAAC,CAAA;IACD,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,EAAE,MAAM;YACf,IAAI,CAAC;gBACH,UAAU,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;YACvF,CAAC;YAAC,MAAM,CAAC;gBACP,kFAAkF;YACpF,CAAC;QACH,CAAC;KACF,CAAA;AACH,CAAC;AAED,MAAM,MAAM,GAAG,CAAC,GAAG,MAAiB,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;AAEvG,wFAAwF;AACxF,SAAS,KAAK,CAAC,MAAe;IAC5B,MAAM,CAAC,GAAG,MAAiC,CAAA;IAC3C,IAAI,CAAC,EAAE,IAAI,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAA;IAClC,IAAI,CAAC,EAAE,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;QAAE,OAAO,CAAC,CAAA;IAC9G,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,2GAA2G;AAC3G,MAAM,UAAU,QAAQ,CAAC,KAAY,EAAE,KAAW,EAAE,GAAG,GAAS,GAAG;IACjE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;IAChD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IACnD,IAAI,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM;QAAE,OAAO,IAAI,CAAA;IACzD,OAAO;QACL,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC;QACtD,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;QACxD,KAAK;QACL,MAAM;KACP,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAY,EAAE,IAAsB,EAAE,KAAW,EAAE,IAA8B,EAAE,MAAc;IACxH,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IACzB,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAA;IACxB,MAAM,KAAK,GAAG,CAAC,CAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACtE,IAAI,IAAI,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAA;IACjE,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QAClD,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;YAAE,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAA;QACtH,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAA;QAC7B,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAA;IAC5D,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC"}
|
package/dist/core/types.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { LayoutStore } from './layouts.js';
|
|
1
2
|
export type WindowId = string;
|
|
2
3
|
export interface Frame {
|
|
3
4
|
readonly x: number;
|
|
@@ -42,6 +43,8 @@ export interface DeskOptions {
|
|
|
42
43
|
/** Reports the stage's size, so floating windows open inside it. */
|
|
43
44
|
readonly stage?: () => Size;
|
|
44
45
|
readonly initial?: DeskState;
|
|
46
|
+
/** Remembers how each kind of window was left, and opens it that way again. */
|
|
47
|
+
readonly layouts?: LayoutStore;
|
|
45
48
|
}
|
|
46
49
|
export interface OpenOptions {
|
|
47
50
|
/** Open as a free window rather than filling the desk. Given a frame, it floats there. */
|
package/dist/core/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAA;AAE7B,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,IAAI;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,MAAM,UAAU;AACpB,oDAAoD;AAClD;IAAE,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClD;IAAE,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAAA;AAE/E,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAA;AAE3C,MAAM,WAAW,SAAS;IACxB,0HAA0H;IAC1H,QAAQ,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE,CAAA;IACvC,wDAAwD;IACxD,QAAQ,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,CAAA;CACpC;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACzD,+EAA+E;IAC/E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;IAC1C,oEAAoE;IACpE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAA;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE/C,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAA;AAE7B,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,IAAI;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,MAAM,UAAU;AACpB,oDAAoD;AAClD;IAAE,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClD;IAAE,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAAA;AAE/E,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAA;AAE3C,MAAM,WAAW,SAAS;IACxB,0HAA0H;IAC1H,QAAQ,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE,CAAA;IACvC,wDAAwD;IACxD,QAAQ,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,CAAA;CACpC;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACzD,+EAA+E;IAC/E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;IAC1C,oEAAoE;IACpE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAA;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAA;IAC5B,+EAA+E;IAC/E,QAAQ,CAAC,OAAO,CAAC,EAAE,WAAW,CAAA;CAC/B;AAED,MAAM,WAAW,WAAW;IAC1B,0FAA0F;IAC1F,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAA;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAA;CACvB"}
|