flexdesk 0.17.5 → 0.17.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/CHANGELOG.md +36 -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 +68 -0
- package/css/flexdesk.css +68 -0
- package/css/overrides.css +0 -0
- package/css/reset.css +0 -0
- package/css/tokens.css +11 -0
- package/dist/canvas.js +0 -0
- package/dist/canvas.js.map +0 -0
- package/dist/charts.js +0 -0
- package/dist/charts.js.map +0 -0
- package/dist/chunk-3PHCPZHT.js +0 -0
- package/dist/chunk-3PHCPZHT.js.map +0 -0
- package/dist/chunk-CVMCZZX2.js +0 -0
- package/dist/chunk-CVMCZZX2.js.map +0 -0
- package/dist/chunk-D3COLZZ2.js +0 -0
- package/dist/chunk-D3COLZZ2.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-HYJYYEPK.js +0 -0
- package/dist/chunk-HYJYYEPK.js.map +0 -0
- 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-LWV23YVE.js +0 -0
- package/dist/chunk-LWV23YVE.js.map +0 -0
- package/dist/chunk-N7HC3ADV.js +0 -0
- package/dist/chunk-N7HC3ADV.js.map +0 -0
- package/dist/chunk-RKNFBX5K.js +0 -0
- package/dist/chunk-RKNFBX5K.js.map +0 -0
- package/dist/chunk-RMTRWWEO.js +0 -0
- package/dist/chunk-RMTRWWEO.js.map +0 -0
- package/dist/chunk-UURZ37SD.js +0 -0
- package/dist/chunk-UURZ37SD.js.map +0 -0
- package/dist/chunk-UWO43BZU.js +0 -0
- package/dist/chunk-UWO43BZU.js.map +0 -0
- package/dist/chunk-WVFGV5FT.js +0 -0
- package/dist/chunk-WVFGV5FT.js.map +0 -0
- package/dist/core.js +0 -0
- package/dist/core.js.map +0 -0
- package/dist/editor.js +12 -0
- package/dist/editor.js.map +2 -2
- package/dist/flexdesk.css +68 -0
- package/dist/flow.js +0 -0
- 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 +0 -0
- package/dist/tiles.js.map +0 -0
- package/dist/tokens.css +11 -0
- package/dist/widgets.js +0 -0
- package/dist/widgets.js.map +0 -0
- package/dist/wm.js +0 -0
- package/dist/wm.js.map +0 -0
- package/docs/README.md +0 -0
- package/docs/best-practices.md +0 -0
- package/docs/components/charts.md +0 -0
- 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 +21 -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 +0 -0
- package/docs/components/layout-widgets.md +38 -0
- package/docs/components/markdown-and-outline.md +0 -0
- package/docs/components/menus.md +0 -0
- package/docs/components/notifications.md +0 -0
- package/docs/components/panels-and-desktops.md +0 -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/tiles.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 +0 -0
- package/docs/concepts/styling.md +0 -0
- package/docs/quickstart.md +0 -0
- package/editor.js +0 -0
- package/flow.js +0 -0
- package/host.js +0 -0
- package/package.json +1 -1
- 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/chart_types.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/plot_config_editor.js +0 -0
- package/src/charts/plot_grid.js +0 -0
- package/src/charts/plot_popout_window.js +0 -0
- package/src/charts/plotly_wrapper.js +0 -0
- package/src/charts/series_transforms.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 +0 -0
- package/src/core/state_machine.js +0 -0
- package/src/editor/editor_pane.js +0 -0
- package/src/editor/monaco_editor_factory.js +7 -1
- package/src/editor/monaco_loader.js +37 -0
- package/src/editor/notebook_search.js +0 -0
- package/src/editor/notebook_tab_bar.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_base.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 +0 -0
- package/src/tiling/entity_sources.js +0 -0
- package/src/tiling/keymap.js +0 -0
- 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 +0 -0
- 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 +0 -0
- package/src/tiling/wm.js +0 -0
- 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/action_dropdown.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/context_menu.js +0 -0
- package/src/ui/components/conversation_view.js +0 -0
- package/src/ui/components/crosstab.js +0 -0
- package/src/ui/components/data_table.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 +0 -0
- 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 +0 -0
- 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/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,41 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.17.7 (2026-10-24)
|
|
4
|
+
|
|
5
|
+
A patch release: everything below is additive. Every fix is documented in a
|
|
6
|
+
section of the docs headed "(0.17.7)"; each entry links to it.
|
|
7
|
+
|
|
8
|
+
### Added and changed
|
|
9
|
+
|
|
10
|
+
- [`installOverlayScrollbar` is styled by flexdesk.css](docs/components/layout-widgets.md#installoverlayscrollbar-is-styled-by-flexdeskcss-0177): the `.overlay-scrollbar-v` and `.overlay-scrollbar-h` bars that `installOverlayScrollbar` (and `installCollapsibleScrollbars`, `installTabsScrollbars` and `installWorkspaceScrollbars`, which build on it) appends now have rules in flexdesk.css, so they work with only FlexDesk's stylesheets loaded. The bar is `position: absolute` at the container's right or bottom edge, `--scrollbar-size` thick, on `--z-scrollbar`; it starts at `opacity: 0` and shows on hover while the container overflows; it takes no pointer events except on its thumb, which is at least 30px long. Its colours and rounding are the new tokens `--scrollbar-track`, `--scrollbar-thumb`, `--scrollbar-thumb-hover`, `--scrollbar-thumb-active` and `--scrollbar-radius` in tokens.css. Until now no FlexDesk stylesheet styled these classes, so the bar was `position: static`, fed the container's content height and grew it without limit unless the embedder brought its own CSS (BUG-0039).
|
|
11
|
+
|
|
12
|
+
### Removed or renamed exports
|
|
13
|
+
|
|
14
|
+
None. Compared with 0.17.6, across every entry point (`core`, `widgets`, `wm`,
|
|
15
|
+
`host`, `canvas`, `flow`, `charts`, `tiles`, `editor`) and the package
|
|
16
|
+
`exports` map, no export was added, removed or renamed. Not an export but
|
|
17
|
+
worth knowing: tokens.css gains the `--scrollbar-*` and `--z-scrollbar`
|
|
18
|
+
custom properties, and flexdesk.css gains rules for `.overlay-scrollbar-v`,
|
|
19
|
+
`.overlay-scrollbar-h` and their `.track` and `.thumb` (see above).
|
|
20
|
+
|
|
21
|
+
## 0.17.6 (2026-10-24)
|
|
22
|
+
|
|
23
|
+
A patch release: everything below is additive. Every fix is documented in a
|
|
24
|
+
section of the docs headed "(0.17.6)"; each entry links to it.
|
|
25
|
+
|
|
26
|
+
### Added and changed
|
|
27
|
+
|
|
28
|
+
- [Monaco's `Canceled` rejections are hidden](docs/components/editor.md#monacos-canceled-rejections-are-hidden-0176): disposing an editor within 50 ms of it getting focus (re-rendering a view right after focus moves back to it, as an Edit > Undo from the menu bar does) no longer logs an uncaught `Canceled: Canceled` from Monaco's `Delayer.cancel`. The first `initMonaco()` that starts a load installs one window `unhandledrejection` listener that calls `preventDefault()` only when the reason has `name === 'Canceled'` and `message === 'Canceled'` (Monaco's CancellationError); every other rejection still reaches the page and its console. It is installed once per page, however often `initMonaco()` is called or retried, and stays for the life of the page (BUG-0038).
|
|
29
|
+
|
|
30
|
+
### Removed or renamed exports
|
|
31
|
+
|
|
32
|
+
None. Compared with 0.17.5, across every entry point (`core`, `widgets`, `wm`,
|
|
33
|
+
`host`, `canvas`, `flow`, `charts`, `tiles`, `editor`) and the package
|
|
34
|
+
`exports` map, no export was added, removed or renamed. Not an export but
|
|
35
|
+
worth knowing: the first `initMonaco()` that starts a load now adds a window
|
|
36
|
+
`unhandledrejection` listener, which hides Monaco's `Canceled` rejections and
|
|
37
|
+
nothing else (see above).
|
|
38
|
+
|
|
3
39
|
## 0.17.5 (2026-10-24)
|
|
4
40
|
|
|
5
41
|
A patch release: everything below is additive. Every fix is documented in a
|
package/LICENSE
CHANGED
|
File without changes
|
package/README.md
CHANGED
|
File without changes
|
package/THIRD_PARTY_LICENSES.md
CHANGED
|
File without changes
|
package/canvas.js
CHANGED
|
File without changes
|
package/charts.js
CHANGED
|
File without changes
|
package/core.js
CHANGED
|
File without changes
|
package/css/base.css
CHANGED
|
@@ -5969,6 +5969,74 @@ button.twm-about-dialog__btn--close:focus {
|
|
|
5969
5969
|
}
|
|
5970
5970
|
|
|
5971
5971
|
|
|
5972
|
+
/* ══ OVERLAY SCROLLBARS (0.17.7) ═════════════════════════════════════
|
|
5973
|
+
*
|
|
5974
|
+
* `installOverlayScrollbar(container, { orientation })`
|
|
5975
|
+
* (src/ui/utils/overlay_scrollbar.js) appends a `.overlay-scrollbar-v` or
|
|
5976
|
+
* `.overlay-scrollbar-h` holding a `.track` and a `.thumb`, and sets their
|
|
5977
|
+
* top/left/height/width from the container's scroll position. The bar is
|
|
5978
|
+
* absolute, so it takes no layout space: a static bar is content, its height
|
|
5979
|
+
* feeds the container's scrollHeight, and the container grows without limit
|
|
5980
|
+
* (BUG-0039). The script sets `data-scrollable` on the container and drives
|
|
5981
|
+
* the bar's opacity and pointer events itself (shown on hover or focus while
|
|
5982
|
+
* the container overflows, kept while the thumb is dragged); these rules are
|
|
5983
|
+
* the hidden starting state, the geometry and the colours. The bar takes no
|
|
5984
|
+
* pointer events, so content under it stays clickable; the thumb takes them
|
|
5985
|
+
* back to be dragged. */
|
|
5986
|
+
.overlay-scrollbar-v,
|
|
5987
|
+
.overlay-scrollbar-h {
|
|
5988
|
+
position: absolute;
|
|
5989
|
+
pointer-events: none;
|
|
5990
|
+
opacity: 0;
|
|
5991
|
+
transition: opacity var(--transition-fast);
|
|
5992
|
+
z-index: var(--z-scrollbar);
|
|
5993
|
+
}
|
|
5994
|
+
.overlay-scrollbar-v {
|
|
5995
|
+
top: 0;
|
|
5996
|
+
right: 0;
|
|
5997
|
+
width: var(--scrollbar-size);
|
|
5998
|
+
}
|
|
5999
|
+
.overlay-scrollbar-h {
|
|
6000
|
+
left: 0;
|
|
6001
|
+
bottom: 0;
|
|
6002
|
+
height: var(--scrollbar-size);
|
|
6003
|
+
}
|
|
6004
|
+
.overlay-scrollbar-v .track,
|
|
6005
|
+
.overlay-scrollbar-h .track {
|
|
6006
|
+
position: absolute;
|
|
6007
|
+
inset: 0;
|
|
6008
|
+
background: var(--scrollbar-track);
|
|
6009
|
+
border-radius: var(--scrollbar-radius);
|
|
6010
|
+
}
|
|
6011
|
+
.overlay-scrollbar-v .thumb,
|
|
6012
|
+
.overlay-scrollbar-h .thumb {
|
|
6013
|
+
position: absolute;
|
|
6014
|
+
background: var(--scrollbar-thumb);
|
|
6015
|
+
border-radius: var(--scrollbar-radius);
|
|
6016
|
+
pointer-events: auto;
|
|
6017
|
+
cursor: pointer;
|
|
6018
|
+
transition: background 80ms ease;
|
|
6019
|
+
}
|
|
6020
|
+
.overlay-scrollbar-v .thumb {
|
|
6021
|
+
right: 0;
|
|
6022
|
+
width: 100%;
|
|
6023
|
+
min-height: 30px;
|
|
6024
|
+
}
|
|
6025
|
+
.overlay-scrollbar-h .thumb {
|
|
6026
|
+
bottom: 0;
|
|
6027
|
+
height: 100%;
|
|
6028
|
+
min-width: 30px;
|
|
6029
|
+
}
|
|
6030
|
+
.overlay-scrollbar-v .thumb:hover,
|
|
6031
|
+
.overlay-scrollbar-h .thumb:hover {
|
|
6032
|
+
background: var(--scrollbar-thumb-hover);
|
|
6033
|
+
}
|
|
6034
|
+
.overlay-scrollbar-v .thumb:active,
|
|
6035
|
+
.overlay-scrollbar-h .thumb:active {
|
|
6036
|
+
background: var(--scrollbar-thumb-active);
|
|
6037
|
+
}
|
|
6038
|
+
|
|
6039
|
+
|
|
5972
6040
|
/* ══ RECORD LIST & FACT SHEET (0.7.0) ══════════════════════════════════
|
|
5973
6041
|
* `createRecordList` (src/ui/components/record_list.js) and
|
|
5974
6042
|
* `createFactTable` (src/ui/components/fact_table.js). Neither has a height
|
package/css/flexdesk.css
CHANGED
|
@@ -9593,6 +9593,74 @@ button.twm-alerts__ref:hover { text-decoration: underline; }
|
|
|
9593
9593
|
}
|
|
9594
9594
|
|
|
9595
9595
|
|
|
9596
|
+
/* ══ OVERLAY SCROLLBARS (0.17.7) ═════════════════════════════════════
|
|
9597
|
+
*
|
|
9598
|
+
* `installOverlayScrollbar(container, { orientation })`
|
|
9599
|
+
* (src/ui/utils/overlay_scrollbar.js) appends a `.overlay-scrollbar-v` or
|
|
9600
|
+
* `.overlay-scrollbar-h` holding a `.track` and a `.thumb`, and sets their
|
|
9601
|
+
* top/left/height/width from the container's scroll position. The bar is
|
|
9602
|
+
* absolute, so it takes no layout space: a static bar is content, its height
|
|
9603
|
+
* feeds the container's scrollHeight, and the container grows without limit
|
|
9604
|
+
* (BUG-0039). The script sets `data-scrollable` on the container and drives
|
|
9605
|
+
* the bar's opacity and pointer events itself (shown on hover or focus while
|
|
9606
|
+
* the container overflows, kept while the thumb is dragged); these rules are
|
|
9607
|
+
* the hidden starting state, the geometry and the colours. The bar takes no
|
|
9608
|
+
* pointer events, so content under it stays clickable; the thumb takes them
|
|
9609
|
+
* back to be dragged. */
|
|
9610
|
+
.overlay-scrollbar-v,
|
|
9611
|
+
.overlay-scrollbar-h {
|
|
9612
|
+
position: absolute;
|
|
9613
|
+
pointer-events: none;
|
|
9614
|
+
opacity: 0;
|
|
9615
|
+
transition: opacity var(--transition-fast);
|
|
9616
|
+
z-index: var(--z-scrollbar);
|
|
9617
|
+
}
|
|
9618
|
+
.overlay-scrollbar-v {
|
|
9619
|
+
top: 0;
|
|
9620
|
+
right: 0;
|
|
9621
|
+
width: var(--scrollbar-size);
|
|
9622
|
+
}
|
|
9623
|
+
.overlay-scrollbar-h {
|
|
9624
|
+
left: 0;
|
|
9625
|
+
bottom: 0;
|
|
9626
|
+
height: var(--scrollbar-size);
|
|
9627
|
+
}
|
|
9628
|
+
.overlay-scrollbar-v .track,
|
|
9629
|
+
.overlay-scrollbar-h .track {
|
|
9630
|
+
position: absolute;
|
|
9631
|
+
inset: 0;
|
|
9632
|
+
background: var(--scrollbar-track);
|
|
9633
|
+
border-radius: var(--scrollbar-radius);
|
|
9634
|
+
}
|
|
9635
|
+
.overlay-scrollbar-v .thumb,
|
|
9636
|
+
.overlay-scrollbar-h .thumb {
|
|
9637
|
+
position: absolute;
|
|
9638
|
+
background: var(--scrollbar-thumb);
|
|
9639
|
+
border-radius: var(--scrollbar-radius);
|
|
9640
|
+
pointer-events: auto;
|
|
9641
|
+
cursor: pointer;
|
|
9642
|
+
transition: background 80ms ease;
|
|
9643
|
+
}
|
|
9644
|
+
.overlay-scrollbar-v .thumb {
|
|
9645
|
+
right: 0;
|
|
9646
|
+
width: 100%;
|
|
9647
|
+
min-height: 30px;
|
|
9648
|
+
}
|
|
9649
|
+
.overlay-scrollbar-h .thumb {
|
|
9650
|
+
bottom: 0;
|
|
9651
|
+
height: 100%;
|
|
9652
|
+
min-width: 30px;
|
|
9653
|
+
}
|
|
9654
|
+
.overlay-scrollbar-v .thumb:hover,
|
|
9655
|
+
.overlay-scrollbar-h .thumb:hover {
|
|
9656
|
+
background: var(--scrollbar-thumb-hover);
|
|
9657
|
+
}
|
|
9658
|
+
.overlay-scrollbar-v .thumb:active,
|
|
9659
|
+
.overlay-scrollbar-h .thumb:active {
|
|
9660
|
+
background: var(--scrollbar-thumb-active);
|
|
9661
|
+
}
|
|
9662
|
+
|
|
9663
|
+
|
|
9596
9664
|
/* ══ RECORD LIST & FACT SHEET (0.7.0) ══════════════════════════════════
|
|
9597
9665
|
* `createRecordList` (src/ui/components/record_list.js) and
|
|
9598
9666
|
* `createFactTable` (src/ui/components/fact_table.js). Neither has a height
|
package/css/overrides.css
CHANGED
|
File without changes
|
package/css/reset.css
CHANGED
|
File without changes
|
package/css/tokens.css
CHANGED
|
@@ -102,6 +102,14 @@
|
|
|
102
102
|
--state-active: rgba(255, 255, 255, 0.08);
|
|
103
103
|
--state-selected: rgba(0, 122, 204, 0.15);
|
|
104
104
|
|
|
105
|
+
/* ── Overlay scrollbars (installOverlayScrollbar) ─────────── */
|
|
106
|
+
--scrollbar-size: 6px;
|
|
107
|
+
--scrollbar-radius: 3px;
|
|
108
|
+
--scrollbar-track: rgba(255, 255, 255, 0.08);
|
|
109
|
+
--scrollbar-thumb: rgba(255, 255, 255, 0.28);
|
|
110
|
+
--scrollbar-thumb-hover: rgba(255, 255, 255, 0.38);
|
|
111
|
+
--scrollbar-thumb-active: rgba(255, 255, 255, 0.48);
|
|
112
|
+
|
|
105
113
|
/* ── Shadows / elevation ──────────────────────────────────── */
|
|
106
114
|
--shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.3);
|
|
107
115
|
--shadow-md: 0 4px 12px rgba(0, 0, 0, 0.4);
|
|
@@ -119,6 +127,9 @@
|
|
|
119
127
|
stack from 6000 to 6999 (managed_window.js), so a popover at
|
|
120
128
|
--z-popover would open behind the window that opened it. */
|
|
121
129
|
--z-over-windows: 7100;
|
|
130
|
+
/* An overlay scrollbar inside a scroll container: over the container's
|
|
131
|
+
content and its dropdowns, under managed windows (6000+). */
|
|
132
|
+
--z-scrollbar: 500;
|
|
122
133
|
|
|
123
134
|
/* ── Transitions ──────────────────────────────────────────── */
|
|
124
135
|
--transition-fast: 120ms ease;
|
package/dist/canvas.js
CHANGED
|
File without changes
|
package/dist/canvas.js.map
CHANGED
|
File without changes
|
package/dist/charts.js
CHANGED
|
File without changes
|
package/dist/charts.js.map
CHANGED
|
File without changes
|
package/dist/chunk-3PHCPZHT.js
CHANGED
|
File without changes
|
|
File without changes
|
package/dist/chunk-CVMCZZX2.js
CHANGED
|
File without changes
|
|
File without changes
|
package/dist/chunk-D3COLZZ2.js
CHANGED
|
File without changes
|
|
File without changes
|
package/dist/chunk-FOOS3T5L.js
CHANGED
|
File without changes
|
|
File without changes
|
package/dist/chunk-GOQLR5WR.js
CHANGED
|
File without changes
|
|
File without changes
|
package/dist/chunk-HNU6MM2B.js
CHANGED
|
File without changes
|
|
File without changes
|
package/dist/chunk-HYJYYEPK.js
CHANGED
|
File without changes
|
|
File without changes
|
package/dist/chunk-JKZLNKG6.js
CHANGED
|
File without changes
|
|
File without changes
|
package/dist/chunk-JYWURG5T.js
CHANGED
|
File without changes
|
|
File without changes
|
package/dist/chunk-LWV23YVE.js
CHANGED
|
File without changes
|
|
File without changes
|
package/dist/chunk-N7HC3ADV.js
CHANGED
|
File without changes
|
|
File without changes
|
package/dist/chunk-RKNFBX5K.js
CHANGED
|
File without changes
|
|
File without changes
|
package/dist/chunk-RMTRWWEO.js
CHANGED
|
File without changes
|
|
File without changes
|
package/dist/chunk-UURZ37SD.js
CHANGED
|
File without changes
|
|
File without changes
|
package/dist/chunk-UWO43BZU.js
CHANGED
|
File without changes
|
|
File without changes
|
package/dist/chunk-WVFGV5FT.js
CHANGED
|
File without changes
|
|
File without changes
|
package/dist/core.js
CHANGED
|
File without changes
|
package/dist/core.js.map
CHANGED
|
File without changes
|
package/dist/editor.js
CHANGED
|
@@ -233,6 +233,17 @@ var _attempt = null;
|
|
|
233
233
|
var monacoReady = new Promise((resolve) => {
|
|
234
234
|
_resolveMonaco = resolve;
|
|
235
235
|
});
|
|
236
|
+
var _cancellationGuardInstalled = false;
|
|
237
|
+
function isMonacoCancellation(reason) {
|
|
238
|
+
return reason?.name === "Canceled" && reason?.message === "Canceled";
|
|
239
|
+
}
|
|
240
|
+
function installCancellationGuard() {
|
|
241
|
+
if (_cancellationGuardInstalled) return;
|
|
242
|
+
_cancellationGuardInstalled = true;
|
|
243
|
+
window.addEventListener?.("unhandledrejection", (event) => {
|
|
244
|
+
if (isMonacoCancellation(event.reason)) event.preventDefault();
|
|
245
|
+
});
|
|
246
|
+
}
|
|
236
247
|
function injectLoaderScript(src) {
|
|
237
248
|
return new Promise((resolve, reject) => {
|
|
238
249
|
const s = document.createElement("script");
|
|
@@ -297,6 +308,7 @@ function initMonaco(basePath) {
|
|
|
297
308
|
"[twm/editor] initMonaco() needs the path to your copy of Monaco, e.g. initMonaco('vendor/monaco'). Monaco is a peer dependency; the library does not guess where you put it."
|
|
298
309
|
));
|
|
299
310
|
}
|
|
311
|
+
installCancellationGuard();
|
|
300
312
|
const attempt = loadMonaco(basePath).then(
|
|
301
313
|
(m) => {
|
|
302
314
|
_resolveMonaco(m);
|