flexdesk 0.17.6 → 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 +18 -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 +0 -0
- package/dist/editor.js.map +0 -0
- 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 +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 +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 +0 -0
- package/src/editor/monaco_loader.js +0 -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,23 @@
|
|
|
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
|
+
|
|
3
21
|
## 0.17.6 (2026-10-24)
|
|
4
22
|
|
|
5
23
|
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
|
File without changes
|
package/dist/editor.js.map
CHANGED
|
File without changes
|
package/dist/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/dist/flow.js
CHANGED
|
File without changes
|
package/dist/flow.js.map
CHANGED
|
File without changes
|
package/dist/host.js
CHANGED
|
File without changes
|
package/dist/host.js.map
CHANGED
|
File without changes
|
package/dist/reset.css
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/dist/tiles.js
CHANGED
|
File without changes
|
package/dist/tiles.js.map
CHANGED
|
File without changes
|
package/dist/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/widgets.js
CHANGED
|
File without changes
|
package/dist/widgets.js.map
CHANGED
|
File without changes
|
package/dist/wm.js
CHANGED
|
File without changes
|
package/dist/wm.js.map
CHANGED
|
File without changes
|
package/docs/README.md
CHANGED
|
File without changes
|
package/docs/best-practices.md
CHANGED
|
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
|
|
@@ -36,6 +36,44 @@ at the right edge of a window that was not maximized, so those panes had no
|
|
|
36
36
|
scrollbar at all (BUG-0036). `tests/autoscroll_resize_handle_not_cover.test.mjs`
|
|
37
37
|
holds it.
|
|
38
38
|
|
|
39
|
+
## `installOverlayScrollbar` is styled by flexdesk.css (0.17.7)
|
|
40
|
+
|
|
41
|
+
`installOverlayScrollbar(container, { orientation })` (from
|
|
42
|
+
`@flexdesk/widgets`) gives one container its own bar: a
|
|
43
|
+
`.overlay-scrollbar-v` or `.overlay-scrollbar-h` element, holding a `.track`
|
|
44
|
+
and a `.thumb`, appended to the container (or to its parent with
|
|
45
|
+
`externalBar: true`, as `installTabsScrollbars` does). flexdesk.css styles
|
|
46
|
+
it, so it works with only FlexDesk's stylesheets loaded:
|
|
47
|
+
|
|
48
|
+
- **It takes no layout space.** The bar is `position: absolute` at the
|
|
49
|
+
container's right edge (vertical) or bottom edge (horizontal),
|
|
50
|
+
`--scrollbar-size` thick, on `--z-scrollbar` (over the container's content,
|
|
51
|
+
under managed windows). The script keeps it pinned to the visible edge as
|
|
52
|
+
the container scrolls.
|
|
53
|
+
- **It shows on hover while the container overflows.** The script sets
|
|
54
|
+
`data-scrollable="1"` or `"0"` on the container, and shows the bar on
|
|
55
|
+
`mouseenter` and `focusin` when it is `"1"`. It hides the bar on leave,
|
|
56
|
+
unless the thumb is being dragged. The bar starts at `opacity: 0`.
|
|
57
|
+
- **The thumb drags; the rest lets clicks through.** The bar takes no
|
|
58
|
+
pointer events, so content under it stays clickable. The thumb takes them
|
|
59
|
+
back (`pointer-events: auto`) and is at least 30px long.
|
|
60
|
+
- **Colours are tokens** in tokens.css: `--scrollbar-track`,
|
|
61
|
+
`--scrollbar-thumb`, `--scrollbar-thumb-hover`, `--scrollbar-thumb-active`,
|
|
62
|
+
and `--scrollbar-radius` for the rounding. Override them to restyle every
|
|
63
|
+
overlay bar.
|
|
64
|
+
|
|
65
|
+
The rules key on the orientation classes, so a bar created with another
|
|
66
|
+
`className` (`installWorkspaceScrollbars` uses `panel-scrollbar` and
|
|
67
|
+
`tabs-scrollbar`) is styled the same way. `installCollapsibleScrollbars`,
|
|
68
|
+
`installTabsScrollbars` and `installWorkspaceScrollbars` all build on
|
|
69
|
+
`installOverlayScrollbar`, so none of them needs embedder CSS either.
|
|
70
|
+
|
|
71
|
+
Until 0.17.7 no FlexDesk stylesheet had a rule for these classes. The bar
|
|
72
|
+
was `position: static`: it sat in the scroll container's flow, its height fed
|
|
73
|
+
the container's content height, and the container grew without limit unless
|
|
74
|
+
the embedder brought its own CSS (BUG-0039).
|
|
75
|
+
`tests/overlay_scrollbar_styles.test.mjs` holds it.
|
|
76
|
+
|
|
39
77
|
## A stack of collapsible sections: `createSectionStack` (0.17.0)
|
|
40
78
|
|
|
41
79
|
Inspector-style panel content: titled sections in a column, each opened and
|
|
File without changes
|
package/docs/components/menus.md
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/docs/components/shell.md
CHANGED
|
File without changes
|
|
File without changes
|
package/docs/components/tiles.md
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/docs/concepts/styling.md
CHANGED
|
File without changes
|
package/docs/quickstart.md
CHANGED
|
File without changes
|
package/editor.js
CHANGED
|
File without changes
|
package/flow.js
CHANGED
|
File without changes
|
package/host.js
CHANGED
|
File without changes
|
package/package.json
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/src/canvas/index.js
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/src/charts/downsample.js
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/src/charts/plot_grid.js
CHANGED
|
File without changes
|