flexdesk 0.4.6 → 0.4.7

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/package.json CHANGED
@@ -1,81 +1,81 @@
1
- {
2
- "name": "flexdesk",
3
- "version": "0.4.6",
4
- "description": "A tiling window manager and widget set for desktop-class web applications. Zero runtime dependencies.",
5
- "license": "MIT",
6
- "repository": {
7
- "type": "git",
8
- "url": "git+ssh://git@github.com/nor-os/FlexDesk.git"
9
- },
10
- "homepage": "https://github.com/nor-os/FlexDesk",
11
- "bugs": {
12
- "url": "https://github.com/nor-os/FlexDesk/issues"
13
- },
14
- "type": "module",
15
- "sideEffects": [
16
- "*.css"
17
- ],
18
- "files": [
19
- "dist",
20
- "src",
21
- "css",
22
- "README.md",
23
- "LICENSE",
24
- "THIRD_PARTY_LICENSES.md"
25
- ],
26
- "exports": {
27
- "./core": {
28
- "import": "./dist/core.js",
29
- "development": "./core.js"
30
- },
31
- "./host": {
32
- "import": "./dist/host.js",
33
- "development": "./host.js"
34
- },
35
- "./wm": {
36
- "import": "./dist/wm.js",
37
- "development": "./wm.js"
38
- },
39
- "./widgets": {
40
- "import": "./dist/widgets.js",
41
- "development": "./widgets.js"
42
- },
43
- "./css": "./dist/flexdesk.css",
44
- "./css/tokens": "./css/tokens.css",
45
- "./charts": {
46
- "import": "./dist/charts.js",
47
- "development": "./charts.js"
48
- },
49
- "./tiles": {
50
- "import": "./dist/tiles.js",
51
- "development": "./tiles.js"
52
- },
53
- "./editor": {
54
- "import": "./dist/editor.js",
55
- "development": "./editor.js"
56
- }
57
- },
58
- "scripts": {
59
- "build": "node build.mjs",
60
- "check": "node build.mjs --check",
61
- "test": "node tests/run.mjs"
62
- },
63
- "devDependencies": {
64
- "esbuild": "^0.28.1"
65
- },
66
- "peerDependenciesMeta": {
67
- "plotly.js": {
68
- "optional": true
69
- },
70
- "monaco-editor": {
71
- "optional": true
72
- }
73
- },
74
- "keywords": [
75
- "tiling",
76
- "window-manager",
77
- "datatable",
78
- "command-palette",
79
- "ui"
80
- ]
81
- }
1
+ {
2
+ "name": "flexdesk",
3
+ "version": "0.4.7",
4
+ "description": "A tiling window manager and widget set for desktop-class web applications. Zero runtime dependencies.",
5
+ "license": "MIT",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+ssh://git@github.com/nor-os/FlexDesk.git"
9
+ },
10
+ "homepage": "https://github.com/nor-os/FlexDesk",
11
+ "bugs": {
12
+ "url": "https://github.com/nor-os/FlexDesk/issues"
13
+ },
14
+ "type": "module",
15
+ "sideEffects": [
16
+ "*.css"
17
+ ],
18
+ "files": [
19
+ "dist",
20
+ "src",
21
+ "css",
22
+ "README.md",
23
+ "LICENSE",
24
+ "THIRD_PARTY_LICENSES.md"
25
+ ],
26
+ "exports": {
27
+ "./core": {
28
+ "import": "./dist/core.js",
29
+ "development": "./core.js"
30
+ },
31
+ "./host": {
32
+ "import": "./dist/host.js",
33
+ "development": "./host.js"
34
+ },
35
+ "./wm": {
36
+ "import": "./dist/wm.js",
37
+ "development": "./wm.js"
38
+ },
39
+ "./widgets": {
40
+ "import": "./dist/widgets.js",
41
+ "development": "./widgets.js"
42
+ },
43
+ "./css": "./dist/flexdesk.css",
44
+ "./css/tokens": "./css/tokens.css",
45
+ "./charts": {
46
+ "import": "./dist/charts.js",
47
+ "development": "./charts.js"
48
+ },
49
+ "./tiles": {
50
+ "import": "./dist/tiles.js",
51
+ "development": "./tiles.js"
52
+ },
53
+ "./editor": {
54
+ "import": "./dist/editor.js",
55
+ "development": "./editor.js"
56
+ }
57
+ },
58
+ "scripts": {
59
+ "build": "node build.mjs",
60
+ "check": "node build.mjs --check",
61
+ "test": "node tests/run.mjs"
62
+ },
63
+ "devDependencies": {
64
+ "esbuild": "^0.28.1"
65
+ },
66
+ "peerDependenciesMeta": {
67
+ "plotly.js": {
68
+ "optional": true
69
+ },
70
+ "monaco-editor": {
71
+ "optional": true
72
+ }
73
+ },
74
+ "keywords": [
75
+ "tiling",
76
+ "window-manager",
77
+ "datatable",
78
+ "command-palette",
79
+ "ui"
80
+ ]
81
+ }
@@ -206,6 +206,27 @@ function _segments(kind, props, taxonomy, rootCrumb, rootLabel, navigate, trail)
206
206
  return segs;
207
207
  }
208
208
 
209
+ /**
210
+ * C37. THE SAME STRIP FOR A CONTENT'S OWN LEVELS — the markup every tile
211
+ * breadcrumb draws, with segments the caller routes itself.
212
+ *
213
+ * `mountTileBreadcrumb` names where the TILE is, and every one of its segments
214
+ * climbs through the window manager. A page with levels that are not tabs (a
215
+ * section's list, one record opened in its place) has a trail the taxonomy
216
+ * cannot know and segments the WM cannot route; it draws them here, in the same
217
+ * markup and so the same look, and pairs it with a `navigateBack()` from its
218
+ * mount so Backspace climbs the same levels (`wm.navigateBack`, step 0).
219
+ *
220
+ * `segments` is `[{label, icon?, onClick?}]`; the last one — and any with no
221
+ * `onClick` — is drawn as the current one, as text. Redraws `container` in full.
222
+ *
223
+ * @param {HTMLElement} container
224
+ * @param {Array<{label: string, icon?: string, onClick?: Function}>} segments
225
+ */
226
+ export function renderBreadcrumb(container, segments) {
227
+ _renderInto(container, segments);
228
+ }
229
+
209
230
  function _renderInto(container, segments) {
210
231
  container.innerHTML = '';
211
232
  if (!segments?.length) return;
@@ -839,6 +839,17 @@ export class TileRenderer {
839
839
  return (leaf && leaf.kind === 'leaf') ? this._leafKindKey(leaf) : null;
840
840
  }
841
841
 
842
+ /**
843
+ * C37. WHAT A LEAF'S CONTENT FACTORY RETURNED for the tab on screen, or
844
+ * `null` — so the window manager can ask the content a question about
845
+ * itself (`wm.navigateBack`: *"have you a level of your own to go up?"*)
846
+ * without reaching into the cache. Read-only; a leaf that has not been
847
+ * rendered yet has none.
848
+ */
849
+ contentOf(leafId) {
850
+ return this._leafCache.get(leafId)?.content ?? null;
851
+ }
852
+
842
853
  /**
843
854
  * C34. ACCEPT A PROPS WRITE THE CONTENT MADE ABOUT ITSELF, WITHOUT
844
855
  * REBUILDING THE TILE THAT MADE IT.