flexdesk 0.17.12 → 0.17.14
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 +44 -0
- package/LICENSE +0 -0
- package/README.md +0 -0
- package/THIRD_PARTY_LICENSES.md +0 -0
- package/canvas.js +0 -0
- package/charts.js +0 -0
- package/core.js +0 -0
- package/css/base.css +61 -0
- package/css/flexdesk.css +85 -2
- package/css/overrides.css +24 -2
- package/css/reset.css +0 -0
- package/dist/canvas.js +0 -0
- package/dist/canvas.js.map +0 -0
- package/dist/charts.js +3 -3
- package/dist/{chunk-NIJEJAZ7.js → chunk-2PM6ZMNS.js} +2 -2
- package/dist/chunk-3PHCPZHT.js +0 -0
- package/dist/chunk-3PHCPZHT.js.map +0 -0
- package/dist/chunk-FOOS3T5L.js +0 -0
- package/dist/chunk-FOOS3T5L.js.map +0 -0
- package/dist/chunk-GOQLR5WR.js +0 -0
- package/dist/chunk-GOQLR5WR.js.map +0 -0
- package/dist/chunk-HNU6MM2B.js +0 -0
- package/dist/chunk-HNU6MM2B.js.map +0 -0
- package/dist/{chunk-F35XSQWA.js → chunk-IG74S3ZH.js} +2 -2
- package/dist/chunk-JKZLNKG6.js +0 -0
- package/dist/chunk-JKZLNKG6.js.map +0 -0
- package/dist/chunk-JYWURG5T.js +0 -0
- package/dist/chunk-JYWURG5T.js.map +0 -0
- package/dist/{chunk-CVMCZZX2.js → chunk-MADMGRX2.js} +18 -7
- package/dist/chunk-MADMGRX2.js.map +7 -0
- package/dist/chunk-N7HC3ADV.js +0 -0
- package/dist/chunk-N7HC3ADV.js.map +0 -0
- package/dist/{chunk-75FLVAUT.js → chunk-TLIV6QSU.js} +3 -3
- package/dist/{chunk-BE2PU3LL.js → chunk-ZMH3OC7H.js} +2 -2
- package/dist/core.js +3 -18
- package/dist/core.js.map +2 -2
- package/dist/editor.js.map +0 -0
- package/dist/flexdesk.css +85 -2
- package/dist/flow.js +3 -3
- package/dist/flow.js.map +0 -0
- package/dist/host.js +0 -0
- package/dist/host.js.map +0 -0
- package/dist/reset.css +0 -0
- package/dist/tile_registry-6WZPTUZV.js +0 -0
- package/dist/tile_registry-6WZPTUZV.js.map +0 -0
- package/dist/tiles.js +5 -5
- package/dist/widgets.js +31 -22
- package/dist/widgets.js.map +2 -2
- package/dist/wm.js +198 -31
- package/dist/wm.js.map +3 -3
- package/docs/README.md +1 -1
- package/docs/best-practices.md +1 -1
- package/docs/components/command-palette.md +0 -0
- package/docs/components/conversation.md +0 -0
- package/docs/components/data-table-grid.md +0 -0
- package/docs/components/data-table.md +0 -0
- package/docs/components/editor.md +0 -0
- package/docs/components/flow-canvas-editor.md +0 -0
- package/docs/components/flow-editors.md +0 -0
- package/docs/components/flow-lane-editor.md +0 -0
- package/docs/components/flow-outline-editor.md +0 -0
- package/docs/components/forms-and-dialogs.md +0 -0
- package/docs/components/input-fields.md +0 -0
- package/docs/components/keymap.md +66 -3
- package/docs/components/layout-widgets.md +32 -0
- package/docs/components/markdown-and-outline.md +0 -0
- package/docs/components/menus.md +63 -0
- package/docs/components/notifications.md +0 -0
- package/docs/components/panels-and-desktops.md +56 -0
- package/docs/components/record-list-and-fact-table.md +0 -0
- package/docs/components/settings-view.md +0 -0
- package/docs/components/shell.md +0 -0
- package/docs/components/slide-out-panel.md +0 -0
- package/docs/components/wizard.md +0 -0
- package/docs/concepts/building-and-packaging.md +0 -0
- package/docs/concepts/domain-neutrality.md +0 -0
- package/docs/concepts/host-port.md +0 -0
- package/docs/concepts/packages-and-entry-points.md +0 -0
- package/docs/concepts/peer-dependencies.md +0 -0
- package/docs/concepts/state-guard.md +65 -2
- package/docs/concepts/styling.md +24 -6
- package/docs/quickstart.md +0 -0
- package/editor.js +0 -0
- package/flow.js +0 -0
- package/host.js +0 -0
- package/package.json +2 -2
- package/src/canvas/canvas_adapter.js +0 -0
- package/src/canvas/edge_router.js +0 -0
- package/src/canvas/graph/connector_router.js +0 -0
- package/src/canvas/graph/history_service.js +0 -0
- package/src/canvas/graph/node_platform.js +0 -0
- package/src/canvas/index.js +0 -0
- package/src/canvas/layered_layout.js +0 -0
- package/src/charts/data_series_plot_window.js +0 -0
- package/src/charts/downsample.js +0 -0
- package/src/charts/plot_config.js +0 -0
- package/src/charts/plotly_wrapper.js +0 -0
- package/src/core/event_bus.js +0 -0
- package/src/core/logging.js +0 -0
- package/src/core/settings.js +0 -0
- package/src/core/state_guard.js +0 -0
- package/src/core/state_guard_config.js +19 -18
- package/src/core/state_machine.js +0 -0
- package/src/editor/editor_pane.js +0 -0
- package/src/editor/monaco_editor_factory.js +0 -0
- package/src/editor/monaco_loader.js +0 -0
- package/src/editor/notebook_search.js +0 -0
- package/src/editor/notebook_undo_manager.js +0 -0
- package/src/editor/split_pane_container.js +0 -0
- package/src/flow/canvas_editor/connections.js +0 -0
- package/src/flow/canvas_editor/editor.js +0 -0
- package/src/flow/canvas_editor/index.js +0 -0
- package/src/flow/canvas_editor/layout.js +0 -0
- package/src/flow/canvas_editor/strings.js +0 -0
- package/src/flow/kit/always_before.js +0 -0
- package/src/flow/kit/catalogue.js +0 -0
- package/src/flow/kit/chip_input.js +0 -0
- package/src/flow/kit/dom.js +0 -0
- package/src/flow/kit/findings.js +0 -0
- package/src/flow/kit/history.js +0 -0
- package/src/flow/kit/index.js +0 -0
- package/src/flow/kit/keys.js +0 -0
- package/src/flow/kit/logic_graph.js +0 -0
- package/src/flow/kit/references.js +0 -0
- package/src/flow/kit/settings_panel.js +0 -0
- package/src/flow/kit/settings_schema.js +0 -0
- package/src/flow/kit/step_picker.js +0 -0
- package/src/flow/kit/strings.js +0 -0
- package/src/flow/kit/value_picker.js +0 -0
- package/src/flow/kit/widgets.js +0 -0
- package/src/flow/lanes/editor.js +0 -0
- package/src/flow/lanes/index.js +0 -0
- package/src/flow/lanes/layout.js +0 -0
- package/src/flow/lanes/pipeline.js +0 -0
- package/src/flow/lanes/preview.js +0 -0
- package/src/flow/lanes/strings.js +0 -0
- package/src/flow/outline/editor.js +0 -0
- package/src/flow/outline/index.js +0 -0
- package/src/flow/outline/mapping.js +0 -0
- package/src/flow/outline/menu.js +0 -0
- package/src/flow/outline/operations.js +0 -0
- package/src/flow/outline/recognise.js +0 -0
- package/src/flow/outline/strings.js +0 -0
- package/src/help/help_modal.js +0 -0
- package/src/help/help_registry.js +0 -0
- package/src/host/external_links.js +0 -0
- package/src/host/file_picker.js +0 -0
- package/src/host/host.js +0 -0
- package/src/host/photino_host.js +0 -0
- package/src/host/photino_host.md +0 -0
- package/src/host/pywebview_host.js +0 -0
- package/src/tiles/chart_tiles.js +0 -0
- package/src/tiles/config_schema.js +0 -0
- package/src/tiles/figure_tile.js +0 -0
- package/src/tiles/layout_persistence.js +0 -0
- package/src/tiles/list_tiles.js +0 -0
- package/src/tiles/scope_picker.js +0 -0
- package/src/tiles/tile_config_form.js +0 -0
- package/src/tiles/tile_grid.js +0 -0
- package/src/tiles/tile_registry.js +0 -0
- package/src/tiling/bottom_panel_tabs.js +0 -0
- package/src/tiling/command_palette.js +0 -0
- package/src/tiling/content_registry.js +0 -0
- package/src/tiling/desktops.js +79 -16
- package/src/tiling/entity_sources.js +0 -0
- package/src/tiling/keymap.js +70 -2
- package/src/tiling/kind_taxonomy.js +0 -0
- package/src/tiling/landing_table.js +0 -0
- package/src/tiling/loading_overlay.js +0 -0
- package/src/tiling/nav_panel.js +0 -0
- package/src/tiling/page_factory.js +0 -0
- package/src/tiling/panel_availability.js +0 -0
- package/src/tiling/panel_keys.js +0 -0
- package/src/tiling/shell.js +9 -2
- package/src/tiling/tab_strip.js +0 -0
- package/src/tiling/tile_breadcrumb.js +0 -0
- package/src/tiling/tile_renderer.js +0 -0
- package/src/tiling/tile_tab_menu.js +0 -0
- package/src/tiling/tile_tree.js +63 -5
- package/src/tiling/wm.js +59 -6
- package/src/tiling/zoom.js +0 -0
- package/src/ui/base/component_base.js +0 -0
- package/src/ui/base/controller_base.js +0 -0
- package/src/ui/base/page_base.js +0 -0
- package/src/ui/components/about_dialog.js +0 -0
- package/src/ui/components/alert_log.js +0 -0
- package/src/ui/components/alerts_pane.js +0 -0
- package/src/ui/components/attribute_list_editor.js +0 -0
- package/src/ui/components/autocomplete_field.js +0 -0
- package/src/ui/components/cell_editor_host.js +0 -0
- package/src/ui/components/cell_editors.js +0 -0
- package/src/ui/components/cell_grid.js +0 -0
- package/src/ui/components/cell_paste.js +0 -0
- package/src/ui/components/cell_selection.js +0 -0
- package/src/ui/components/choice_controls.js +0 -0
- package/src/ui/components/color_field.js +0 -0
- package/src/ui/components/color_list_field.js +0 -0
- package/src/ui/components/column_fit.js +0 -0
- package/src/ui/components/column_groups.js +0 -0
- package/src/ui/components/column_order.js +0 -0
- package/src/ui/components/computing_status_window.js +0 -0
- package/src/ui/components/confirm_dialog.js +0 -0
- package/src/ui/components/conversation_view.js +0 -0
- package/src/ui/components/crosstab.js +0 -0
- package/src/ui/components/detail_header.js +0 -0
- package/src/ui/components/document_outline.js +0 -0
- package/src/ui/components/drag_reorder.js +0 -0
- package/src/ui/components/fact_table.js +0 -0
- package/src/ui/components/fill_handle.js +0 -0
- package/src/ui/components/gallery_picker.js +0 -0
- package/src/ui/components/header_actions.js +0 -0
- package/src/ui/components/inline_renamer.js +0 -0
- package/src/ui/components/job_progress.js +0 -0
- package/src/ui/components/managed_window.js +24 -6
- package/src/ui/components/menu_bar.js +0 -0
- package/src/ui/components/modal.js +0 -0
- package/src/ui/components/notification_history.js +0 -0
- package/src/ui/components/progress.js +0 -0
- package/src/ui/components/record_list.js +0 -0
- package/src/ui/components/row_activation.js +0 -0
- package/src/ui/components/section_stack.js +0 -0
- package/src/ui/components/series.js +0 -0
- package/src/ui/components/settings_view.js +0 -0
- package/src/ui/components/slide_out_panel.js +0 -0
- package/src/ui/components/slider_field.js +0 -0
- package/src/ui/components/sortable_list.js +0 -0
- package/src/ui/components/staged_edits.js +0 -0
- package/src/ui/components/staged_history.js +0 -0
- package/src/ui/components/table_filter_chips.js +0 -0
- package/src/ui/components/table_state_store.js +0 -0
- package/src/ui/components/table_structure.js +0 -0
- package/src/ui/components/table_values.js +0 -0
- package/src/ui/components/tabs.js +0 -0
- package/src/ui/components/tag_input.js +0 -0
- package/src/ui/components/toast.js +0 -0
- package/src/ui/components/toggle_field.js +0 -0
- package/src/ui/components/tree_view.js +41 -18
- package/src/ui/components/tsv.js +0 -0
- package/src/ui/components/window_taskbar.js +0 -0
- package/src/ui/components/wizard.js +0 -0
- package/src/ui/controllers/window_chrome_controller.js +0 -0
- package/src/ui/notification_center.js +0 -0
- package/src/ui/utils/auto_scrollbars.js +0 -0
- package/src/ui/utils/markdown.js +0 -0
- package/src/ui/utils/native_context_menu.js +0 -0
- package/src/ui/utils/overlay_scrollbar.js +0 -0
- package/src/ui/utils/raf_resize_observer.js +0 -0
- package/src/ui/utils/scroll_lock.js +0 -0
- package/src/ui/utils/strip_scroll.js +0 -0
- package/src/ui/utils/tooltip_service.js +0 -0
- package/tiles.js +0 -0
- package/widgets.js +0 -0
- package/wm.js +0 -0
- package/dist/chunk-CVMCZZX2.js.map +0 -7
- /package/dist/{chunk-NIJEJAZ7.js.map → chunk-2PM6ZMNS.js.map} +0 -0
- /package/dist/{chunk-F35XSQWA.js.map → chunk-IG74S3ZH.js.map} +0 -0
- /package/dist/{chunk-75FLVAUT.js.map → chunk-TLIV6QSU.js.map} +0 -0
- /package/dist/{chunk-BE2PU3LL.js.map → chunk-ZMH3OC7H.js.map} +0 -0
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -34,6 +34,17 @@ const MAX_Z_INDEX = 6999;
|
|
|
34
34
|
const TOP_BAR_HEIGHT = 35;
|
|
35
35
|
const BOTTOM_BAR_HEIGHT = 22;
|
|
36
36
|
|
|
37
|
+
/** STORY-0119. The space above a window on `document.body`: the top bar, and
|
|
38
|
+
* under it a shell's menu row (`.twm-global-menu-bar`, a sibling of the top
|
|
39
|
+
* bar in body.twm-body's column) when the page has one. The row is measured,
|
|
40
|
+
* not assumed, because its height is its content's. Without a row this is
|
|
41
|
+
* TOP_BAR_HEIGHT, exactly as before. */
|
|
42
|
+
function _topInset() {
|
|
43
|
+
const row = typeof document !== 'undefined'
|
|
44
|
+
? document.querySelector('body > .twm-global-menu-bar') : null;
|
|
45
|
+
return TOP_BAR_HEIGHT + (row ? row.getBoundingClientRect().height : 0);
|
|
46
|
+
}
|
|
47
|
+
|
|
37
48
|
/** C11. How close to an edge the POINTER must come for a snap zone to arm.
|
|
38
49
|
* Small enough that it takes intent, large enough to hit without aiming. */
|
|
39
50
|
const SNAP_EDGE = 12;
|
|
@@ -953,6 +964,10 @@ export class ManagedWindow {
|
|
|
953
964
|
* width = window.innerWidth
|
|
954
965
|
* height = window.innerHeight - TOP_BAR_HEIGHT - BOTTOM_BAR_HEIGHT
|
|
955
966
|
*
|
|
967
|
+
* (STORY-0119: TOP_BAR_HEIGHT here is `_topInset()`, which is
|
|
968
|
+
* TOP_BAR_HEIGHT on a page without a menu row and adds the row's height
|
|
969
|
+
* on a page with one.)
|
|
970
|
+
*
|
|
956
971
|
* so, substituting into the clamps below:
|
|
957
972
|
*
|
|
958
973
|
* maxWidth = width = window.innerWidth ✓
|
|
@@ -1005,11 +1020,12 @@ export class ManagedWindow {
|
|
|
1005
1020
|
height: this.container.clientHeight,
|
|
1006
1021
|
};
|
|
1007
1022
|
}
|
|
1023
|
+
const top = _topInset();
|
|
1008
1024
|
return {
|
|
1009
1025
|
minX: 0,
|
|
1010
|
-
minY:
|
|
1026
|
+
minY: top,
|
|
1011
1027
|
width: window.innerWidth,
|
|
1012
|
-
height: window.innerHeight -
|
|
1028
|
+
height: window.innerHeight - top - BOTTOM_BAR_HEIGHT,
|
|
1013
1029
|
};
|
|
1014
1030
|
}
|
|
1015
1031
|
|
|
@@ -1266,7 +1282,8 @@ export class ManagedWindow {
|
|
|
1266
1282
|
} else {
|
|
1267
1283
|
// Center on screen (between top and bottom bars)
|
|
1268
1284
|
this.x = Math.max(0, (maxWidth - this.width) / 2);
|
|
1269
|
-
|
|
1285
|
+
const top = _topInset();
|
|
1286
|
+
this.y = Math.max(top, top + (maxHeight - this.height) / 2);
|
|
1270
1287
|
}
|
|
1271
1288
|
}
|
|
1272
1289
|
|
|
@@ -1584,7 +1601,8 @@ export class ManagedWindow {
|
|
|
1584
1601
|
|
|
1585
1602
|
// Calculate max available dimensions
|
|
1586
1603
|
const maxWidth = window.innerWidth;
|
|
1587
|
-
const
|
|
1604
|
+
const top = _topInset();
|
|
1605
|
+
const maxHeight = window.innerHeight - top - BOTTOM_BAR_HEIGHT;
|
|
1588
1606
|
|
|
1589
1607
|
let newX = state.startWinX;
|
|
1590
1608
|
let newY = state.startWinY;
|
|
@@ -1604,12 +1622,12 @@ export class ManagedWindow {
|
|
|
1604
1622
|
|
|
1605
1623
|
// Handle vertical resize
|
|
1606
1624
|
if (dir.includes('s')) {
|
|
1607
|
-
newH = Math.max(this.minHeight, Math.min(state.startHeight + dy, maxHeight - (newY -
|
|
1625
|
+
newH = Math.max(this.minHeight, Math.min(state.startHeight + dy, maxHeight - (newY - top)));
|
|
1608
1626
|
}
|
|
1609
1627
|
if (dir.includes('n')) {
|
|
1610
1628
|
const maxDy = state.startHeight - this.minHeight;
|
|
1611
1629
|
const actualDy = Math.min(dy, maxDy);
|
|
1612
|
-
newY = Math.max(
|
|
1630
|
+
newY = Math.max(top, state.startWinY + actualDy);
|
|
1613
1631
|
newH = state.startHeight - (newY - state.startWinY);
|
|
1614
1632
|
}
|
|
1615
1633
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -128,28 +128,39 @@ export function createTreeNode(options) {
|
|
|
128
128
|
`;
|
|
129
129
|
setText(node, '.twm-tree-node__label', label);
|
|
130
130
|
|
|
131
|
-
|
|
132
|
-
if (actions) {
|
|
133
|
-
const actionsEl = node.querySelector('.twm-tree-node__actions');
|
|
134
|
-
Object.entries(actions).forEach(([actionId, actionConfig]) => {
|
|
135
|
-
const btn = document.createElement('button');
|
|
136
|
-
btn.className = 'twm-tree-node__action-btn';
|
|
137
|
-
btn.dataset.action = actionId;
|
|
138
|
-
btn.title = actionConfig.title || actionId;
|
|
139
|
-
btn.innerHTML = `<span class="material-symbols-outlined">${actionConfig.icon}</span>`;
|
|
140
|
-
if (actionConfig.onClick) {
|
|
141
|
-
btn.addEventListener('click', (e) => {
|
|
142
|
-
e.stopPropagation();
|
|
143
|
-
actionConfig.onClick(id, e);
|
|
144
|
-
});
|
|
145
|
-
}
|
|
146
|
-
actionsEl.appendChild(btn);
|
|
147
|
-
});
|
|
148
|
-
}
|
|
131
|
+
if (actions) appendActionButtons(node.querySelector('.twm-tree-node__actions'), id, actions);
|
|
149
132
|
|
|
150
133
|
return node;
|
|
151
134
|
}
|
|
152
135
|
|
|
136
|
+
/**
|
|
137
|
+
* Fill a node's or an item's actions slot: one `.twm-tree-node__action-btn`
|
|
138
|
+
* per entry. A click on an entry with `onClick` runs `onClick(id, event)` and
|
|
139
|
+
* goes no further, so it neither selects the item nor toggles the node; nor
|
|
140
|
+
* does a double-click, so it never reaches TreeView's onItemDoubleClick.
|
|
141
|
+
* @param {HTMLElement} actionsEl
|
|
142
|
+
* @param {string} id - The node's or item's id
|
|
143
|
+
* @param {Object<string, { icon: string, title?: string, onClick?: Function }>} actions
|
|
144
|
+
*/
|
|
145
|
+
function appendActionButtons(actionsEl, id, actions) {
|
|
146
|
+
Object.entries(actions).forEach(([actionId, actionConfig]) => {
|
|
147
|
+
const btn = document.createElement('button');
|
|
148
|
+
btn.type = 'button';
|
|
149
|
+
btn.className = 'twm-tree-node__action-btn';
|
|
150
|
+
btn.dataset.action = actionId;
|
|
151
|
+
btn.title = actionConfig.title || actionId;
|
|
152
|
+
btn.innerHTML = `<span class="material-symbols-outlined">${actionConfig.icon}</span>`;
|
|
153
|
+
if (actionConfig.onClick) {
|
|
154
|
+
btn.addEventListener('click', (e) => {
|
|
155
|
+
e.stopPropagation();
|
|
156
|
+
actionConfig.onClick(id, e);
|
|
157
|
+
});
|
|
158
|
+
btn.addEventListener('dblclick', (e) => e.stopPropagation());
|
|
159
|
+
}
|
|
160
|
+
actionsEl.appendChild(btn);
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
|
|
153
164
|
/**
|
|
154
165
|
* Create a tree item (leaf node)
|
|
155
166
|
* @param {Object} options - Item options
|
|
@@ -164,6 +175,10 @@ export function createTreeNode(options) {
|
|
|
164
175
|
* @param {Object} [options.badge] - Optional badge config
|
|
165
176
|
* @param {string} [options.badge.text] - Badge text (if empty, renders as status dot)
|
|
166
177
|
* @param {string} [options.badge.variant] - 'muted'|'pass'|'fail'|'error'
|
|
178
|
+
* @param {Object} [options.actions] - Row actions, as createTreeNode takes them
|
|
179
|
+
* ({ id: { icon, title, onClick(id, event) } }): buttons in one line at the
|
|
180
|
+
* row's end (`.twm-tree-item__actions`), shown on hover, on focus within and
|
|
181
|
+
* on the selected item
|
|
167
182
|
* @returns {HTMLElement} - Item element
|
|
168
183
|
*/
|
|
169
184
|
export function createTreeItem(options) {
|
|
@@ -177,6 +192,7 @@ export function createTreeItem(options) {
|
|
|
177
192
|
subtitle = null,
|
|
178
193
|
data = null,
|
|
179
194
|
badge = null,
|
|
195
|
+
actions = null,
|
|
180
196
|
} = options;
|
|
181
197
|
|
|
182
198
|
const item = document.createElement('div');
|
|
@@ -220,6 +236,13 @@ export function createTreeItem(options) {
|
|
|
220
236
|
if (subtitle) setText(item, '.twm-tree-item__subtitle', subtitle);
|
|
221
237
|
if (badge?.text) setText(item, '.twm-tree-item__badge', badge.text);
|
|
222
238
|
|
|
239
|
+
if (actions) {
|
|
240
|
+
const actionsEl = document.createElement('span');
|
|
241
|
+
actionsEl.className = 'twm-tree-item__actions';
|
|
242
|
+
appendActionButtons(actionsEl, id, actions);
|
|
243
|
+
item.appendChild(actionsEl);
|
|
244
|
+
}
|
|
245
|
+
|
|
223
246
|
return item;
|
|
224
247
|
}
|
|
225
248
|
|
package/src/ui/components/tsv.js
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/src/ui/utils/markdown.js
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/tiles.js
CHANGED
|
File without changes
|
package/widgets.js
CHANGED
|
File without changes
|
package/wm.js
CHANGED
|
File without changes
|