flexdesk 0.2.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/css/base.css +1484 -181
- package/css/flexdesk.css +1311 -18
- package/css/overrides.css +44 -0
- package/css/tokens.css +45 -0
- package/dist/charts.js +5 -3
- package/dist/charts.js.map +1 -1
- package/dist/{chunk-DVU44T77.js → chunk-ELXVW542.js} +196 -75
- package/dist/chunk-ELXVW542.js.map +7 -0
- package/dist/chunk-LH5TSOZW.js +1237 -0
- package/dist/chunk-LH5TSOZW.js.map +7 -0
- package/dist/{chunk-TLZUUFOE.js → chunk-O5OHMWBB.js} +10 -2
- package/dist/chunk-O5OHMWBB.js.map +7 -0
- package/dist/{chunk-CT4YXXLP.js → chunk-QIU5S2RU.js} +371 -73
- package/dist/chunk-QIU5S2RU.js.map +7 -0
- package/dist/chunk-QNQHQ24V.js +408 -0
- package/dist/chunk-QNQHQ24V.js.map +7 -0
- package/dist/{chunk-DRYCDMEG.js → chunk-XKDTIT4Q.js} +168 -12
- package/dist/chunk-XKDTIT4Q.js.map +7 -0
- package/dist/editor.js +3 -380
- package/dist/editor.js.map +3 -3
- package/dist/flexdesk.css +1311 -18
- package/dist/tiles.js +168 -41
- package/dist/tiles.js.map +2 -2
- package/dist/tokens.css +45 -0
- package/dist/widgets.js +44 -14
- package/dist/widgets.js.map +2 -2
- package/dist/wm.js +2983 -142
- package/dist/wm.js.map +4 -4
- package/package.json +3 -2
- package/src/charts/chart_types.js +167 -0
- package/src/charts/plotly_wrapper.js +178 -10
- package/src/editor/notebook_tab_bar.js +39 -3
- package/src/tiles/tile_base.js +143 -35
- package/src/tiles/tile_grid.js +52 -1
- package/src/tiling/command_palette.js +71 -18
- package/src/tiling/desktops.js +36 -12
- package/src/tiling/keymap.js +24 -4
- package/src/tiling/shell.js +135 -24
- package/src/tiling/tab_strip.js +184 -0
- package/src/tiling/tile_breadcrumb.js +34 -2
- package/src/tiling/tile_renderer.js +1386 -21
- package/src/tiling/tile_tab_menu.js +101 -0
- package/src/tiling/tile_tree.js +82 -0
- package/src/tiling/wm.js +2352 -74
- package/src/ui/components/action_dropdown.js +34 -3
- package/src/ui/components/autocomplete_field.js +65 -13
- package/src/ui/components/context_menu.js +79 -8
- package/src/ui/components/data_table.js +508 -84
- package/src/ui/components/managed_window.js +928 -36
- package/src/ui/components/modal.js +214 -8
- package/dist/chunk-CT4YXXLP.js.map +0 -7
- package/dist/chunk-DRYCDMEG.js.map +0 -7
- package/dist/chunk-DVU44T77.js.map +0 -7
- package/dist/chunk-TLZUUFOE.js.map +0 -7
- package/dist/chunk-UCJ2WD4D.js +0 -625
- package/dist/chunk-UCJ2WD4D.js.map +0 -7
package/dist/tokens.css
CHANGED
|
@@ -134,4 +134,49 @@
|
|
|
134
134
|
--panel-surface, --panel-header-bg, --primary-color-hover) removed
|
|
135
135
|
in Phase 7 — all page CSS now references canonical tokens
|
|
136
136
|
directly. */
|
|
137
|
+
|
|
138
|
+
/* ── `--ea-*` — density and chrome tokens `flexdesk.css` DEPENDS ON ──
|
|
139
|
+
These are not EcoAgent's private variables any more. `flexdesk.css`
|
|
140
|
+
was extracted from EcoAgent's stylesheets and 27 `--ea-*` names came
|
|
141
|
+
with it — 47 declarations across the framework's own components read
|
|
142
|
+
them. FIVE have no fallback:
|
|
143
|
+
|
|
144
|
+
--ea-pad-snug (21 uses) --ea-pad-loose (9 uses)
|
|
145
|
+
--ea-font-body (14 uses) --ea-pad-tight (2 uses)
|
|
146
|
+
--ea-input-pad (1 use)
|
|
147
|
+
|
|
148
|
+
In EcoAgent they resolve, because EcoAgent defines them in
|
|
149
|
+
`ecoagent_extra_modes.css`. In ANY OTHER consumer they resolve to
|
|
150
|
+
nothing, and `padding: 0 var(--ea-pad-loose)` with no fallback is not
|
|
151
|
+
a smaller padding — it is an invalid declaration that is dropped. The
|
|
152
|
+
symptom is a modal with misplaced titlebar icons, no body padding,
|
|
153
|
+
wrong proportions and scrollbars where the content would otherwise
|
|
154
|
+
have fitted.
|
|
155
|
+
|
|
156
|
+
Values are EcoAgent's own (`ecoagent_extra_modes.css:32-52`), so this
|
|
157
|
+
is additive and changes nothing for EcoAgent, which still defines its
|
|
158
|
+
copies later and wins. The colour tokens alias the canonical ones
|
|
159
|
+
above rather than repeating literals. */
|
|
160
|
+
--ea-pad-tight: 2px;
|
|
161
|
+
--ea-pad-snug: 6px;
|
|
162
|
+
--ea-pad-loose: 10px;
|
|
163
|
+
--ea-input-pad: 4px 8px;
|
|
164
|
+
--ea-row-h: 18px;
|
|
165
|
+
--ea-font-body: 11px;
|
|
166
|
+
--ea-font-small: 10px;
|
|
167
|
+
--ea-font-mono: 10.5px;
|
|
168
|
+
--ea-font-title: 11px;
|
|
169
|
+
--ea-mono: var(--font-family-mono);
|
|
170
|
+
|
|
171
|
+
--ea-bg-chrome: #1a1a1a;
|
|
172
|
+
--ea-bg-content: #212121;
|
|
173
|
+
--ea-bg-well: #0d0d0d;
|
|
174
|
+
--ea-bg-strip: var(--surface-2);
|
|
175
|
+
--ea-input-bg: var(--surface-3);
|
|
176
|
+
--ea-border: #333;
|
|
177
|
+
--ea-border-soft: #2a2a2a;
|
|
178
|
+
--ea-text: var(--text-body);
|
|
179
|
+
--ea-text-muted: var(--text-muted);
|
|
180
|
+
--ea-text-dim: var(--text-dim);
|
|
181
|
+
--ea-accent: var(--accent-bright);
|
|
137
182
|
}
|
package/dist/widgets.js
CHANGED
|
@@ -7,22 +7,24 @@ import {
|
|
|
7
7
|
helpCopy,
|
|
8
8
|
helpProvider,
|
|
9
9
|
hideContextMenu,
|
|
10
|
+
modalHost,
|
|
10
11
|
openConfirm,
|
|
11
12
|
openForm,
|
|
12
13
|
openModal,
|
|
13
14
|
setHelpProvider,
|
|
15
|
+
setModalHost,
|
|
14
16
|
showContextMenu
|
|
15
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-ELXVW542.js";
|
|
16
18
|
import {
|
|
17
19
|
ActionDropdown
|
|
18
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-O5OHMWBB.js";
|
|
19
21
|
import {
|
|
20
22
|
DataTable,
|
|
21
23
|
createRafResizeObserver
|
|
22
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-QIU5S2RU.js";
|
|
23
25
|
import {
|
|
24
26
|
ManagedWindow
|
|
25
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-LH5TSOZW.js";
|
|
26
28
|
import {
|
|
27
29
|
getSetting
|
|
28
30
|
} from "./chunk-FL5KFNQH.js";
|
|
@@ -1113,6 +1115,7 @@ var AutocompleteField = class {
|
|
|
1113
1115
|
this._activeIndex = -1;
|
|
1114
1116
|
this._isOpen = false;
|
|
1115
1117
|
this._disposers = [];
|
|
1118
|
+
this._suggestSeq = 0;
|
|
1116
1119
|
}
|
|
1117
1120
|
getValue() {
|
|
1118
1121
|
return this.#composeValue();
|
|
@@ -1402,24 +1405,48 @@ var AutocompleteField = class {
|
|
|
1402
1405
|
}
|
|
1403
1406
|
#updateSuggestions() {
|
|
1404
1407
|
const fragment = this.#getInputFragment();
|
|
1408
|
+
const request = ++this._suggestSeq;
|
|
1409
|
+
let produced;
|
|
1405
1410
|
try {
|
|
1406
|
-
|
|
1411
|
+
produced = this.provider({
|
|
1407
1412
|
value: fragment,
|
|
1408
1413
|
scope: this.scope,
|
|
1409
1414
|
namespace: this.selectedNamespace
|
|
1410
|
-
})
|
|
1411
|
-
this._items = Array.isArray(items) ? items : [];
|
|
1412
|
-
this._activeIndex = items.length > 0 ? 0 : -1;
|
|
1413
|
-
this.#renderDropdown();
|
|
1414
|
-
if (items.length > 0) {
|
|
1415
|
-
this.#open();
|
|
1416
|
-
} else {
|
|
1417
|
-
this.#close();
|
|
1418
|
-
}
|
|
1415
|
+
});
|
|
1419
1416
|
} catch (err) {
|
|
1420
1417
|
this.logger?.warn?.("autocomplete", "Provider error", { err });
|
|
1421
1418
|
this._items = [];
|
|
1422
1419
|
this.#close();
|
|
1420
|
+
return;
|
|
1421
|
+
}
|
|
1422
|
+
if (produced && typeof produced.then === "function") {
|
|
1423
|
+
produced.then(
|
|
1424
|
+
(items) => {
|
|
1425
|
+
if (request !== this._suggestSeq) return;
|
|
1426
|
+
this.#applySuggestions(items);
|
|
1427
|
+
},
|
|
1428
|
+
(err) => {
|
|
1429
|
+
this.logger?.warn?.("autocomplete", "Provider error", { err });
|
|
1430
|
+
if (request !== this._suggestSeq) return;
|
|
1431
|
+
this._items = [];
|
|
1432
|
+
this.#close();
|
|
1433
|
+
}
|
|
1434
|
+
);
|
|
1435
|
+
return;
|
|
1436
|
+
}
|
|
1437
|
+
this.#applySuggestions(produced);
|
|
1438
|
+
}
|
|
1439
|
+
/** Draw whatever the provider produced. Split out of `#updateSuggestions`
|
|
1440
|
+
* so the synchronous and the awaited paths cannot drift apart. */
|
|
1441
|
+
#applySuggestions(produced) {
|
|
1442
|
+
const items = Array.isArray(produced) ? produced : [];
|
|
1443
|
+
this._items = items;
|
|
1444
|
+
this._activeIndex = items.length > 0 ? 0 : -1;
|
|
1445
|
+
this.#renderDropdown();
|
|
1446
|
+
if (items.length > 0) {
|
|
1447
|
+
this.#open();
|
|
1448
|
+
} else {
|
|
1449
|
+
this.#close();
|
|
1423
1450
|
}
|
|
1424
1451
|
}
|
|
1425
1452
|
#renderDropdown() {
|
|
@@ -1615,6 +1642,7 @@ var AutocompleteField = class {
|
|
|
1615
1642
|
});
|
|
1616
1643
|
}
|
|
1617
1644
|
dispose() {
|
|
1645
|
+
this._suggestSeq += 1;
|
|
1618
1646
|
this.#close();
|
|
1619
1647
|
this._disposers.forEach((fn) => {
|
|
1620
1648
|
try {
|
|
@@ -5409,6 +5437,7 @@ export {
|
|
|
5409
5437
|
installOverlayScrollbar,
|
|
5410
5438
|
installTabsScrollbars,
|
|
5411
5439
|
installWorkspaceScrollbars,
|
|
5440
|
+
modalHost,
|
|
5412
5441
|
mountAttributeListEditor,
|
|
5413
5442
|
mountGalleryPicker,
|
|
5414
5443
|
openConfirm,
|
|
@@ -5418,6 +5447,7 @@ export {
|
|
|
5418
5447
|
reportBridgeError,
|
|
5419
5448
|
selectItem,
|
|
5420
5449
|
setHelpProvider,
|
|
5450
|
+
setModalHost,
|
|
5421
5451
|
showAboutDialog,
|
|
5422
5452
|
showChoiceDialog,
|
|
5423
5453
|
showCloseConfirmDialog,
|