flexdesk 0.17.7 → 0.17.9
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 +43 -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 +21 -1
- package/css/flexdesk.css +30 -3
- package/css/overrides.css +0 -0
- package/css/reset.css +0 -0
- package/dist/canvas.js +0 -0
- package/dist/canvas.js.map +0 -0
- package/dist/charts.js +7 -6
- package/dist/charts.js.map +2 -2
- package/dist/{chunk-RMTRWWEO.js → chunk-2YTM3GJE.js} +67 -26
- package/dist/chunk-2YTM3GJE.js.map +7 -0
- package/dist/chunk-3PHCPZHT.js +0 -0
- package/dist/chunk-3PHCPZHT.js.map +0 -0
- package/dist/{chunk-UURZ37SD.js → chunk-7U4IB65H.js} +27 -9
- package/dist/chunk-7U4IB65H.js.map +7 -0
- package/dist/{chunk-D3COLZZ2.js → chunk-BE2PU3LL.js} +2 -2
- package/dist/{chunk-D3COLZZ2.js.map → chunk-BE2PU3LL.js.map} +0 -0
- package/dist/chunk-CVMCZZX2.js +0 -0
- package/dist/chunk-CVMCZZX2.js.map +0 -0
- package/dist/{chunk-UWO43BZU.js → chunk-F35XSQWA.js} +16 -20
- package/dist/chunk-F35XSQWA.js.map +7 -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-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-RKNFBX5K.js → chunk-MIW7D6WC.js} +16 -4
- package/dist/{chunk-RKNFBX5K.js.map → chunk-MIW7D6WC.js.map} +2 -2
- package/dist/chunk-N7HC3ADV.js +0 -0
- package/dist/chunk-N7HC3ADV.js.map +0 -0
- package/dist/{chunk-LWV23YVE.js → chunk-NIJEJAZ7.js} +42 -18
- package/dist/chunk-NIJEJAZ7.js.map +7 -0
- package/dist/{chunk-HYJYYEPK.js → chunk-REJ5HLIM.js} +2 -2
- package/dist/{chunk-HYJYYEPK.js.map → chunk-REJ5HLIM.js.map} +0 -0
- package/dist/{chunk-WVFGV5FT.js → chunk-WUFLGETN.js} +39 -2
- package/dist/{chunk-WVFGV5FT.js.map → chunk-WUFLGETN.js.map} +3 -3
- package/dist/core.js +0 -0
- package/dist/core.js.map +0 -0
- package/dist/editor.js +2 -2
- package/dist/editor.js.map +0 -0
- package/dist/flexdesk.css +30 -3
- 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 +63 -20
- package/dist/tiles.js.map +2 -2
- package/dist/widgets.js +6 -6
- package/dist/widgets.js.map +0 -0
- package/dist/wm.js +5 -5
- 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 +95 -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/markdown-and-outline.md +0 -0
- package/docs/components/menus.md +41 -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 +25 -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 +3 -2
- 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 +8 -2
- package/src/charts/plot_grid.js +16 -4
- package/src/charts/plot_popout_window.js +2 -1
- package/src/charts/plotly_wrapper.js +0 -0
- package/src/charts/series_transforms.js +114 -20
- 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 +26 -7
- 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 +67 -16
- 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 +19 -6
- 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 +20 -20
- package/src/ui/components/conversation_view.js +0 -0
- package/src/ui/components/crosstab.js +0 -0
- package/src/ui/components/data_table.js +45 -19
- 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/menu_viewport.js +81 -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-LWV23YVE.js.map +0 -7
- package/dist/chunk-RMTRWWEO.js.map +0 -7
- package/dist/chunk-UURZ37SD.js.map +0 -7
- package/dist/chunk-UWO43BZU.js.map +0 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,48 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.17.9 (2026-10-25)
|
|
4
|
+
|
|
5
|
+
A patch release: everything below is additive. Every fix is documented in a
|
|
6
|
+
section of the docs headed "(0.17.9)"; each entry links to it.
|
|
7
|
+
|
|
8
|
+
### Added and changed
|
|
9
|
+
|
|
10
|
+
- [Context menus stay inside the window](docs/components/menus.md#context-menus-stay-inside-the-window-0179): `showContextMenu(x, y, items, onAction)`, the DataTable's right-click menu and `NotebookTabBar`'s tab menu are placed the same way, however many items they hold. A menu is capped at the window's height less 8px above and below and scrolls inside when it is longer (flexdesk.css gives `.twm-context-menu` and `.nb-context-menu` `overflow-y: auto` and `box-sizing: border-box`); it opens with its top-left corner at the pointer and moves left or up only as far as it must to fit, never past the window's top or left edge. Before, a menu had no cap: the DataTable's opened above the window's top edge and `showContextMenu`'s ran off the bottom, so the items past the edge could not be reached. All three now take focus on the first enabled item, move it with Up/Down (wrapping), Home and End, scrolling the focused item into view, choose with Enter or Space, close with Escape and give focus back when they close (before, only `showContextMenu` did); scrolling the menu itself does not close it. Nothing changes in how you call them (BUG-0040).
|
|
11
|
+
- [The plot config editor writes no stray "null"](docs/components/charts.md#the-plot-config-editor-writes-no-stray-null-0179): `renderPlotConfigEditor` appended the sections a subplot does not have as `null`, which `Element.append()` writes as the text `null`, so every 2D subplot showed a `null` line where a 3D chart's **Z axis** goes, and an editor without `seriesTransforms` showed another where **Derived series** goes. A section the subplot does not have is now left out; nothing else about the editor changed (BUG-0041).
|
|
12
|
+
- [Interpolation `'auto'` is a listed choice](docs/components/charts.md#interpolation-auto-is-a-listed-choice-0179): a subplot's `interpolation` is `'linear'`, `'step'`, `'cubic'` or `'auto'`, and `'auto'` draws straight segments exactly as `'linear'` does (`buildTrace` gives both the Plotly line shape `linear`, as it always has). `renderPlotConfigEditor`'s **Interpolation** select now offers **Auto**, **Linear**, **Step** and **Cubic spline**, so a subplot saved with `'auto'` opens with Auto chosen instead of `auto (not found)` and keeps `'auto'` until another value is picked. A new subplot is still `'linear'`, and every value draws as before (BUG-0042).
|
|
13
|
+
- [Action dropdowns: positioning against the end edge](docs/components/menus.md#action-dropdowns-positioning-against-the-end-edge-0179): `ActionDropdown.position(trigger, menu, { align })` takes an optional third argument. `align: 'start'` (the default, and what it did before) lines the menu up with the trigger's left edge first, `'end'` with its right edge; either flips to the other edge when the menu would leave the window (BUG-0043).
|
|
14
|
+
- [A tile's ⋯ menu is drawn over the page](docs/components/tiles.md#the--menu-is-drawn-over-the-page-0179): a tile's **More actions** menu (`.tile-menu-dropdown`) is no longer drawn inside the tile. While it is open it is moved to `document.body` (or to the open modal's host, as `showContextMenu` does), placed with `ActionDropdown.position(button, menu, { align: 'end' })` as `position: fixed` on `--z-over-windows`, so neighbouring tiles and the managed window a grid sits in no longer clip it, and it stays 8px inside the window, opening under the button when it fits there, else above it when it fits there, else on the side with more room, scrolling inside. Choosing an entry, a press outside it or the ⋯ button again closes it and puts it back in the tile's header; `dispose()` closes an open menu first. Until 0.17.8 the menu was `position: absolute` inside the tile, so in a tile narrower than about 220px its left part and its labels were cut off (BUG-0043).
|
|
15
|
+
|
|
16
|
+
### Removed or renamed exports
|
|
17
|
+
|
|
18
|
+
None. Compared with 0.17.8, across every entry point (`core`, `widgets`, `wm`,
|
|
19
|
+
`host`, `canvas`, `flow`, `charts`, `tiles`, `editor`) and the package
|
|
20
|
+
`exports` map, no export was added, removed or renamed. Not an export but
|
|
21
|
+
worth knowing: `ActionDropdown.position` takes an optional third argument,
|
|
22
|
+
`{ align }`; `renderPlotConfigEditor` lists `'auto'` among the interpolations;
|
|
23
|
+
an open tile ⋯ menu lives outside `tile.element` until it closes; and
|
|
24
|
+
flexdesk.css caps `.twm-context-menu` and `.nb-context-menu` at the window's
|
|
25
|
+
height with `overflow-y: auto`, and draws `.tile-menu-dropdown` on
|
|
26
|
+
`--z-over-windows` (see above).
|
|
27
|
+
|
|
28
|
+
## 0.17.8 (2026-10-24)
|
|
29
|
+
|
|
30
|
+
A patch release: everything below is additive. Every fix is documented in a
|
|
31
|
+
section of the docs headed "(0.17.8)"; each entry links to it.
|
|
32
|
+
|
|
33
|
+
### Added and changed
|
|
34
|
+
|
|
35
|
+
- [A series transform knows its series, and takes a choice parameter](docs/components/charts.md#a-series-transform-knows-its-series-and-takes-a-choice-parameter-0178): a `seriesTransforms` entry's `run` gets a third argument, `run(y, params, { series, subplot, results, resolveSeries })`: the subplot's series entry the trace was drawn from (null for any other trace, such as an overlay), the subplot config, the results the figure was drawn from and the `resolveSeries` it was drawn with, so a transform can resolve the same series from other results (a baseline scenario) the same way. `renderPlotGrid`, and so `PlotPopoutWindow`, run transforms on the same traces as in 0.17.7 and draw the same derived traces; `deriveSeriesTraces` takes the new optional `seriesOf`, `results` and `resolveSeries` options, and without them passes `series`, `results` and `resolveSeries` as null. A parameter declared `{ type: 'choice', options }` (an array of `{ value, label }`, or a function `(subplot) => options`) is drawn by `renderSeriesTransformControls` as a select (choice_controls' `selectBox`, styled by the new `.twm-series-transforms__select` rule) instead of a number field; the pick is saved under `subplot.transforms.<id>.params` and passed to `run` like a number, and without a `default` or a saved value it is the first enabled option. A transform written as `run(y, params)` with number parameters works and draws exactly as before (STORY-0111).
|
|
36
|
+
|
|
37
|
+
### Removed or renamed exports
|
|
38
|
+
|
|
39
|
+
None. Compared with 0.17.7, across every entry point (`core`, `widgets`, `wm`,
|
|
40
|
+
`host`, `canvas`, `flow`, `charts`, `tiles`, `editor`) and the package
|
|
41
|
+
`exports` map, no export was added, removed or renamed. Not an export but
|
|
42
|
+
worth knowing: a series transform's `run` gets a third argument and
|
|
43
|
+
`deriveSeriesTraces` takes three more options, all optional, and flexdesk.css
|
|
44
|
+
gains a `.twm-series-transforms__select` rule (see above).
|
|
45
|
+
|
|
3
46
|
## 0.17.7 (2026-10-24)
|
|
4
47
|
|
|
5
48
|
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
|
@@ -3434,11 +3434,14 @@ body.twm-window-maximized .twm-resize-handle {
|
|
|
3434
3434
|
position: relative;
|
|
3435
3435
|
}
|
|
3436
3436
|
|
|
3437
|
+
/* While open the menu is moved to document.body and placed `position: fixed`
|
|
3438
|
+
by `ActionDropdown.position` (inline styles), so a narrow tile cannot clip
|
|
3439
|
+
it; --z-over-windows keeps it over a managed window holding the grid. */
|
|
3437
3440
|
.tile-menu-dropdown {
|
|
3438
3441
|
position: absolute;
|
|
3439
3442
|
top: 100%;
|
|
3440
3443
|
right: 0;
|
|
3441
|
-
z-index: var(--z-
|
|
3444
|
+
z-index: var(--z-over-windows);
|
|
3442
3445
|
min-width: 180px;
|
|
3443
3446
|
padding: var(--space-xs) 0;
|
|
3444
3447
|
background: var(--surface-2);
|
|
@@ -5604,6 +5607,23 @@ button.twm-about-dialog__btn--close:focus {
|
|
|
5604
5607
|
|
|
5605
5608
|
.nb-context-menu.visible { opacity: 1; }
|
|
5606
5609
|
|
|
5610
|
+
/* ── Context menus stay inside the window (0.17.9, BUG-0040) ─────────
|
|
5611
|
+
* `showContextMenu`, the DataTable's right-click menu and NotebookTabBar's tab
|
|
5612
|
+
* menu are placed by src/ui/utils/menu_viewport.js, which sets an inline
|
|
5613
|
+
* max-height of the window's height less a margin top and bottom. Here: the
|
|
5614
|
+
* same cap for a menu placed before that runs, border-box so the cap includes
|
|
5615
|
+
* padding and border, and scrolling inside when the items are longer — they
|
|
5616
|
+
* had no max-height and no overflow, so a 100-item menu ran off the window and
|
|
5617
|
+
* its far items could not be reached. */
|
|
5618
|
+
.twm-context-menu,
|
|
5619
|
+
.nb-context-menu {
|
|
5620
|
+
box-sizing: border-box;
|
|
5621
|
+
max-height: calc(100vh - 2 * var(--space-md));
|
|
5622
|
+
overflow-x: hidden;
|
|
5623
|
+
overflow-y: auto;
|
|
5624
|
+
overscroll-behavior: contain;
|
|
5625
|
+
}
|
|
5626
|
+
|
|
5607
5627
|
.nb-context-menu__item {
|
|
5608
5628
|
display: flex;
|
|
5609
5629
|
align-items: center;
|
package/css/flexdesk.css
CHANGED
|
@@ -3959,11 +3959,14 @@ body.twm-window-maximized .twm-resize-handle {
|
|
|
3959
3959
|
position: relative;
|
|
3960
3960
|
}
|
|
3961
3961
|
|
|
3962
|
+
/* While open the menu is moved to document.body and placed `position: fixed`
|
|
3963
|
+
by `ActionDropdown.position` (inline styles), so a narrow tile cannot clip
|
|
3964
|
+
it; --z-over-windows keeps it over a managed window holding the grid. */
|
|
3962
3965
|
.tile-menu-dropdown {
|
|
3963
3966
|
position: absolute;
|
|
3964
3967
|
top: 100%;
|
|
3965
3968
|
right: 0;
|
|
3966
|
-
z-index: var(--z-
|
|
3969
|
+
z-index: var(--z-over-windows);
|
|
3967
3970
|
min-width: 180px;
|
|
3968
3971
|
padding: var(--space-xs) 0;
|
|
3969
3972
|
background: var(--surface-2);
|
|
@@ -7629,6 +7632,23 @@ body.twm-dragging * { user-select: none; }
|
|
|
7629
7632
|
transition: opacity 90ms ease-out;
|
|
7630
7633
|
}
|
|
7631
7634
|
.nb-context-menu.visible { opacity: 1; }
|
|
7635
|
+
|
|
7636
|
+
/* ── Context menus stay inside the window (0.17.9, BUG-0040) ─────────
|
|
7637
|
+
* `showContextMenu`, the DataTable's right-click menu and NotebookTabBar's tab
|
|
7638
|
+
* menu are placed by src/ui/utils/menu_viewport.js, which sets an inline
|
|
7639
|
+
* max-height of the window's height less a margin top and bottom. Here: the
|
|
7640
|
+
* same cap for a menu placed before that runs, border-box so the cap includes
|
|
7641
|
+
* padding and border, and scrolling inside when the items are longer — they
|
|
7642
|
+
* had no max-height and no overflow, so a 100-item menu ran off the window and
|
|
7643
|
+
* its far items could not be reached. */
|
|
7644
|
+
.twm-context-menu,
|
|
7645
|
+
.nb-context-menu {
|
|
7646
|
+
box-sizing: border-box;
|
|
7647
|
+
max-height: calc(100vh - 2 * var(--space-md));
|
|
7648
|
+
overflow-x: hidden;
|
|
7649
|
+
overflow-y: auto;
|
|
7650
|
+
overscroll-behavior: contain;
|
|
7651
|
+
}
|
|
7632
7652
|
.nb-context-menu__item {
|
|
7633
7653
|
display: flex;
|
|
7634
7654
|
align-items: center;
|
|
@@ -10808,8 +10828,8 @@ button.twm-alerts__ref:hover { text-decoration: underline; }
|
|
|
10808
10828
|
/* ══ SERIES TRANSFORMS ═══════════════════════════════════════════════
|
|
10809
10829
|
*
|
|
10810
10830
|
* `renderSeriesTransformControls` (src/charts/series_transforms.js): per
|
|
10811
|
-
* injected transform, a group with a toggle per output and a number field
|
|
10812
|
-
* parameter, in a subplot's config. */
|
|
10831
|
+
* injected transform, a group with a toggle per output and a number field (or,
|
|
10832
|
+
* for a choice parameter, a select) per parameter, in a subplot's config. */
|
|
10813
10833
|
.twm-series-transforms {
|
|
10814
10834
|
display: flex;
|
|
10815
10835
|
flex-direction: column;
|
|
@@ -10849,6 +10869,13 @@ button.twm-alerts__ref:hover { text-decoration: underline; }
|
|
|
10849
10869
|
.twm-series-transforms__param:disabled {
|
|
10850
10870
|
opacity: 0.5;
|
|
10851
10871
|
}
|
|
10872
|
+
/* A choice parameter's select (0.17.8): as wide as its option labels. */
|
|
10873
|
+
.twm-series-transforms__select {
|
|
10874
|
+
width: auto;
|
|
10875
|
+
min-width: 96px;
|
|
10876
|
+
max-width: 60%;
|
|
10877
|
+
cursor: pointer;
|
|
10878
|
+
}
|
|
10852
10879
|
/* ══ end SERIES TRANSFORMS ══ */
|
|
10853
10880
|
|
|
10854
10881
|
/* ══ PLOT GRID ════════════════════════════════════════════════════════
|
package/css/overrides.css
CHANGED
|
File without changes
|
package/css/reset.css
CHANGED
|
File without changes
|
package/dist/canvas.js
CHANGED
|
File without changes
|
package/dist/canvas.js.map
CHANGED
|
File without changes
|
package/dist/charts.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createTabs
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-REJ5HLIM.js";
|
|
4
4
|
import {
|
|
5
5
|
ALL_CHART_TYPES,
|
|
6
6
|
CHART_TYPES_2D,
|
|
@@ -55,11 +55,11 @@ import {
|
|
|
55
55
|
strideIndices,
|
|
56
56
|
uid,
|
|
57
57
|
updateChart
|
|
58
|
-
} from "./chunk-
|
|
58
|
+
} from "./chunk-2YTM3GJE.js";
|
|
59
59
|
import {
|
|
60
60
|
AutocompleteField,
|
|
61
61
|
createRafResizeObserver
|
|
62
|
-
} from "./chunk-
|
|
62
|
+
} from "./chunk-NIJEJAZ7.js";
|
|
63
63
|
import {
|
|
64
64
|
ColorField,
|
|
65
65
|
ManagedWindow,
|
|
@@ -68,7 +68,7 @@ import {
|
|
|
68
68
|
} from "./chunk-CVMCZZX2.js";
|
|
69
69
|
import "./chunk-HNU6MM2B.js";
|
|
70
70
|
import "./chunk-N7HC3ADV.js";
|
|
71
|
-
import "./chunk-
|
|
71
|
+
import "./chunk-WUFLGETN.js";
|
|
72
72
|
import "./chunk-JYWURG5T.js";
|
|
73
73
|
|
|
74
74
|
// src/charts/data_series_plot_window.js
|
|
@@ -720,6 +720,7 @@ var LEGEND_POSITIONS2 = Object.freeze([
|
|
|
720
720
|
{ value: "right", label: "Right" }
|
|
721
721
|
]);
|
|
722
722
|
var INTERPOLATIONS = Object.freeze([
|
|
723
|
+
{ value: "auto", label: "Auto" },
|
|
723
724
|
{ value: "linear", label: "Linear" },
|
|
724
725
|
{ value: "step", label: "Step" },
|
|
725
726
|
{ value: "cubic", label: "Cubic spline" }
|
|
@@ -977,7 +978,7 @@ function renderPlotConfigEditor(container, config, options = {}) {
|
|
|
977
978
|
const is3D = is3DChart(sp.chartType);
|
|
978
979
|
let sources = null;
|
|
979
980
|
const overlaySources = () => sources ??= Promise.resolve().then(() => opts.overlaySources());
|
|
980
|
-
body.append(
|
|
981
|
+
body.append(...[
|
|
981
982
|
section("Subplot", field("Title", textInput(
|
|
982
983
|
sp.displayName,
|
|
983
984
|
(v) => {
|
|
@@ -993,7 +994,7 @@ function renderPlotConfigEditor(container, config, options = {}) {
|
|
|
993
994
|
section("Reference lines", referenceLinesEditor(sp)),
|
|
994
995
|
section("Shaded bands", shadedBandsEditor(sp)),
|
|
995
996
|
transformsSection(sp)
|
|
996
|
-
);
|
|
997
|
+
].filter(Boolean));
|
|
997
998
|
}
|
|
998
999
|
function displayFields(sp) {
|
|
999
1000
|
return [
|