gloomberb 0.15.4 → 0.15.6
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/README.md +3 -1
- package/package.json +4 -3
- package/src/api-client/askg.ts +2 -2
- package/src/api-client/auth.ts +28 -0
- package/src/api-client/cot.ts +3 -3
- package/src/api-client/crypto-markets.ts +1 -1
- package/src/api-client/data.ts +17 -0
- package/src/api-client/debt-maturities.ts +2 -2
- package/src/api-client/earnings.ts +3 -3
- package/src/api-client/equity-screener.ts +2 -2
- package/src/api-client/estimate-revisions.ts +5 -5
- package/src/api-client/index.ts +12 -11
- package/src/api-client/ipo.ts +4 -4
- package/src/api-client/market-movers.ts +1 -1
- package/src/api-client/mna.ts +2 -2
- package/src/api-client/normalizers.ts +1 -1
- package/src/api-client/paths.ts +2 -2
- package/src/api-client/plan-rules.ts +2 -2
- package/src/api-client/rates.ts +1 -1
- package/src/api-client/request.ts +1 -1
- package/src/api-client/research-activity.ts +4 -1
- package/src/api-client/social-mentions.ts +1 -1
- package/src/api-client/types.ts +40 -32
- package/src/api-client/yield-curves.ts +47 -0
- package/src/app/app-bootstrap-state.ts +0 -2
- package/src/app/global-shortcuts.ts +21 -0
- package/src/app/keybindings/actions.ts +9 -1
- package/src/app/keybindings/chord.ts +1 -1
- package/src/app/keybindings/index.ts +0 -14
- package/src/app/keybindings/labels.ts +1 -1
- package/src/app/keybindings/resolve.ts +1 -8
- package/src/app/pane-runtime/index.tsx +9 -14
- package/src/app/pane-runtime/layout-placement.ts +1 -30
- package/src/app/pane-runtime/plugin-bindings.ts +184 -180
- package/src/app/pane-runtime/ticker-inspector-runtime.ts +5 -5
- package/src/app/pane-runtime/ticker-open-runtime.ts +5 -5
- package/src/app/pane-template-dialog-wizard.tsx +13 -5
- package/src/app/runtime/broker-import.ts +5 -3
- package/src/app/runtime/desktop-deeplink.ts +4 -4
- package/src/app/runtime/desktop-menu.ts +4 -4
- package/src/app/runtime/layout-warmup.ts +1 -1
- package/src/app/runtime/plugin-bindings.ts +187 -188
- package/src/app/runtime/update.ts +1 -1
- package/src/app.tsx +3 -3
- package/src/brokers/signed-in/adapter.ts +1 -1
- package/src/brokers/signed-in/client.ts +1 -1
- package/src/brokers/signed-in/connect.ts +1 -1
- package/src/brokers/signed-in/sign-in.ts +1 -1
- package/src/cli/commands/plugins.ts +3 -3
- package/src/cli/desktop-pane-shot.ts +3 -3
- package/src/cli/errors.ts +3 -3
- package/src/cli/pane-functions/capabilities.ts +2 -2
- package/src/cli/pane-functions/dom.ts +1 -1
- package/src/cli/pane-functions/function-help.ts +1038 -0
- package/src/cli/pane-functions/headless.ts +1 -1
- package/src/cli/pane-functions/options.ts +1 -1
- package/src/cli/pane-functions/report.ts +1 -1
- package/src/cli/pane-functions/screenshot-evidence.ts +3 -3
- package/src/cli/pane-functions/screenshot.ts +5 -6
- package/src/cli/restore-plugins.ts +1 -1
- package/src/components/chart/composite/column-layout.ts +1 -1
- package/src/components/chart/composite/composite-chart.tsx +302 -26
- package/src/components/chart/composite/downsample.ts +1 -1
- package/src/components/chart/composite/index.ts +0 -1
- package/src/components/chart/composite/interactions.ts +2 -0
- package/src/components/chart/composite/levels.ts +154 -0
- package/src/components/chart/composite/rasterizer.ts +78 -10
- package/src/components/chart/composite/scene.ts +60 -1
- package/src/components/chart/composite/session-shading.ts +99 -0
- package/src/components/chart/composite/text-renderer.ts +5 -0
- package/src/components/chart/composite/time-axis.ts +1 -1
- package/src/components/chart/composite/tools.ts +1 -1
- package/src/components/chart/composite/types.ts +42 -3
- package/src/components/chart/composite/volume-profile-paint.ts +77 -0
- package/src/components/chart/curve/index.ts +2 -2
- package/src/components/chart/curve/model.ts +7 -4
- package/src/components/chart/native/kitty/support.ts +1 -1
- package/src/components/chart/static/index.ts +0 -2
- package/src/components/chart/static/series.ts +3 -0
- package/src/components/chart/static/trail-chart-surface.tsx +1 -1
- package/src/components/chart/surface3d/model.ts +4 -4
- package/src/components/chart/surface3d/software.ts +1 -1
- package/src/components/chart-table/axis.ts +20 -0
- package/src/components/chart-table/index.ts +4 -8
- package/src/components/chart-table/layout.ts +3 -3
- package/src/components/chart-table/selection.ts +1 -1
- package/src/components/command-bar/assist/model.ts +1 -1
- package/src/components/command-bar/commands/registry.ts +4 -1
- package/src/components/command-bar/keyboard-handlers.ts +1 -1
- package/src/components/command-bar/keyboard-shortcuts.ts +1 -1
- package/src/components/command-bar/layout-items/current-layout.ts +12 -2
- package/src/components/command-bar/layout-items/focused-pane.ts +3 -3
- package/src/components/command-bar/layout-items.ts +1 -1
- package/src/components/command-bar/list/badge.ts +1 -1
- package/src/components/command-bar/multi-select-picker.tsx +1 -1
- package/src/components/command-bar/pane-actions.ts +3 -3
- package/src/components/command-bar/pane-settings.ts +1 -1
- package/src/components/command-bar/pane-templates/workflow.ts +1 -1
- package/src/components/command-bar/panel/layout.ts +1 -1
- package/src/components/command-bar/panel/runtime.ts +1 -1
- package/src/components/command-bar/panel/types.ts +1 -1
- package/src/components/command-bar/picker-activation.ts +3 -3
- package/src/components/command-bar/routes/root/help-items.ts +66 -0
- package/src/components/command-bar/routes/root/results.ts +9 -0
- package/src/components/command-bar/routes/root/search-report.ts +1 -1
- package/src/components/command-bar/routes/root/selection.ts +7 -1
- package/src/components/command-bar/routes/ticker-search/results.ts +1 -1
- package/src/components/command-bar/surface/environment.ts +0 -4
- package/src/components/command-bar/surface/index.tsx +3 -4
- package/src/components/command-bar/workflow/collection-actions.ts +17 -9
- package/src/components/command-bar/workflow/fields.ts +35 -13
- package/src/components/command-bar/workflow/ops.ts +52 -8
- package/src/components/command-bar/workflow/route-actions.ts +2 -3
- package/src/components/command-bar/workflow/submit.ts +2 -2
- package/src/components/feedback-dialog.tsx +1 -1
- package/src/components/layout/detached-pane-shell.tsx +4 -10
- package/src/components/layout/pane/cycle-order.ts +1 -1
- package/src/components/layout/pane/footer/index.tsx +0 -3
- package/src/components/layout/pane/footer/registration.tsx +0 -12
- package/src/components/layout/pane/frame.tsx +2 -1
- package/src/components/layout/pane/header.tsx +1 -1
- package/src/components/layout/pane/sidebar.tsx +0 -1
- package/src/components/layout/pane/surface.ts +26 -0
- package/src/components/layout/pane/title.ts +21 -5
- package/src/components/layout/shell/active-drag.ts +1 -1
- package/src/components/layout/shell/chrome.ts +1 -1
- package/src/components/layout/shell/cursor-occlusion.ts +1 -1
- package/src/components/layout/shell/drag/index.ts +1 -1
- package/src/components/layout/shell/drag/overlays.tsx +1 -1
- package/src/components/layout/shell/drag/runtime.ts +1 -1
- package/src/components/layout/shell/fullscreen.ts +1 -1
- package/src/components/layout/shell/index.tsx +8 -19
- package/src/components/layout/shell/layout-state.ts +1 -1
- package/src/components/layout/shell/menu.ts +1 -1
- package/src/components/layout/shell/native/pointer-runtime.ts +1 -1
- package/src/components/layout/shell/native/surfaces.ts +1 -1
- package/src/components/layout/shell/native/window-state.ts +1 -1
- package/src/components/layout/shell/pane/actions.ts +3 -3
- package/src/components/layout/shell/pane/layers.tsx +1 -1
- package/src/components/layout/shell/pane-occlusion.ts +1 -1
- package/src/components/layout/shell/terminal-pointer-runtime.ts +1 -1
- package/src/components/layout/shell/ticker-link-menu.ts +46 -23
- package/src/components/layout/shell/visible-layout.ts +1 -1
- package/src/components/layout/shell/window-mode/index.ts +2 -9
- package/src/components/layout/shell/window-mode/overlays.tsx +1 -1
- package/src/components/layout/status-bar-groups.ts +1 -1
- package/src/components/layout/status-bar.tsx +10 -6
- package/src/components/layout/titlebar-overlay.ts +1 -1
- package/src/components/layout/window-edit/mode.ts +1 -1
- package/src/components/layout/window-edit/presentation.ts +1 -1
- package/src/components/layout/window-edit/status.tsx +1 -1
- package/src/components/layout/window-fullscreen.ts +1 -1
- package/src/components/onboarding/desks-step.tsx +43 -0
- package/src/components/onboarding/first-run-workspace.ts +2 -2
- package/src/components/onboarding/onboarding-wizard.tsx +151 -26
- package/src/components/onboarding/wizard-account.ts +43 -132
- package/src/components/onboarding/wizard-broker-sync.ts +1 -1
- package/src/components/onboarding/wizard-positions.ts +20 -7
- package/src/components/quote-flash.ts +2 -2
- package/src/components/ticker/badge/index.tsx +2 -2
- package/src/components/toggle-list.tsx +18 -10
- package/src/components/ui/data-table/stable-columns.ts +1 -1
- package/src/components/ui/data-table/types.ts +1 -1
- package/src/components/ui/external-link.tsx +6 -2
- package/src/components/ui/index.ts +0 -1
- package/src/components/ui/multi-select/dialog.tsx +18 -8
- package/src/components/ui/number-prompt-dialog.tsx +1 -1
- package/src/components/ui/split-bar.tsx +1 -1
- package/src/components/ui/table-layout.ts +1 -1
- package/src/components/ui/text-prompt-dialog.tsx +4 -1
- package/src/core/app-runtime.ts +8 -6
- package/src/core/connection-health.ts +2 -2
- package/src/core/state/app/layout-reducer.ts +0 -12
- package/src/core/state/app/layout.ts +9 -19
- package/src/core/state/app/state.ts +6 -13
- package/src/core/state/app/types.ts +10 -2
- package/src/core/state/session-persistence.ts +3 -5
- package/src/data/config/chart-settings.ts +1 -1
- package/src/data/config/home.ts +1 -1
- package/src/data/config/store/node.ts +1 -1
- package/src/data/config/store/normalize.ts +3 -3
- package/src/i18n/es.ts +37 -0
- package/src/i18n/index.ts +0 -2
- package/src/i18n/ja.ts +37 -0
- package/src/i18n/ko.ts +37 -0
- package/src/i18n/languages.ts +1 -1
- package/src/i18n/zh-cn.ts +37 -0
- package/src/i18n/zh-tw.ts +37 -0
- package/src/layout/desks.ts +335 -0
- package/src/{plugins → layout}/launch-layout.ts +0 -1
- package/src/layout/pane-follow.ts +47 -0
- package/src/{plugins/pane-manager.ts → layout/pane-manager/index.ts} +8 -9
- package/src/{plugins → layout}/ticker-navigation.ts +13 -0
- package/src/layout-marketplace/api.ts +1 -1
- package/src/layout-marketplace/cloud.ts +3 -3
- package/src/layout-marketplace/gallery.tsx +1 -1
- package/src/layout-marketplace/geometry.ts +1 -1
- package/src/layout-marketplace/linked-sync.ts +1 -1
- package/src/layout-marketplace/linked.ts +2 -2
- package/src/layout-marketplace/model.ts +2 -2
- package/src/layout-marketplace/use-marketplace.ts +3 -3
- package/src/market-data/coordinator/index.ts +0 -1
- package/src/market-data/coordinator/quotes.ts +3 -3
- package/src/market-data/frame-scheduler.ts +1 -1
- package/src/market-data/history-session.ts +1 -1
- package/src/market-data/market/format.ts +15 -9
- package/src/market-data/market/freshness.ts +64 -0
- package/src/market-data/market/trading-sessions.ts +72 -0
- package/src/market-data/realized-volatility.ts +2 -2
- package/src/market-data/snapshot-provider.ts +1 -1
- package/src/news/hooks.ts +1 -1
- package/src/news/news-model.ts +1 -1
- package/src/news/types.ts +1 -1
- package/src/plugins/auto-update.ts +2 -2
- package/src/plugins/builtin/account-management/calendar-tab.tsx +196 -0
- package/src/plugins/builtin/account-management/footer.ts +5 -2
- package/src/plugins/builtin/account-management/index.tsx +2 -2
- package/src/plugins/builtin/account-management/navigation.ts +1 -1
- package/src/plugins/builtin/account-management/pane.tsx +11 -1
- package/src/plugins/builtin/alerts/levels.ts +60 -0
- package/src/plugins/builtin/alerts/research-rules.ts +2 -2
- package/src/plugins/builtin/analytics/index.tsx +16 -10
- package/src/plugins/builtin/analytics/pane-model.ts +21 -12
- package/src/plugins/builtin/analytics/risk-client.ts +2 -2
- package/src/plugins/builtin/analytics/risk-evidence.ts +4 -4
- package/src/plugins/builtin/analytics/risk-math.ts +3 -3
- package/src/plugins/builtin/analytics/risk-model.ts +2 -2
- package/src/plugins/builtin/analytics/risk-test-data.ts +1 -0
- package/src/plugins/builtin/analytics/sharpe-cadence.ts +1 -1
- package/src/plugins/builtin/backtest/client.ts +1 -1
- package/src/plugins/builtin/backtest/engine.ts +1 -1
- package/src/plugins/builtin/backtest/index.tsx +1 -1
- package/src/plugins/builtin/backtest/rules.ts +5 -5
- package/src/plugins/builtin/bond-calculator/math.ts +3 -3
- package/src/plugins/builtin/buildout/detail/company.tsx +1 -1
- package/src/plugins/builtin/buildout/format.ts +1 -1
- package/src/plugins/builtin/cds/client.ts +1 -1
- package/src/plugins/builtin/cds/headless.ts +1 -1
- package/src/plugins/builtin/chart-composer/catalog-inventory.ts +2 -2
- package/src/plugins/builtin/chart-composer/chart-spec-edit.ts +502 -0
- package/src/plugins/builtin/chart-composer/editor/controller.ts +6 -7
- package/src/plugins/builtin/chart-composer/editor/model.ts +2 -2
- package/src/plugins/builtin/chart-composer/follow-binding.ts +1 -1
- package/src/plugins/builtin/chart-composer/headless.ts +5 -3
- package/src/plugins/builtin/chart-composer/index.tsx +20 -0
- package/src/plugins/builtin/chart-composer/pane.tsx +307 -32
- package/src/plugins/builtin/chart-composer/presets.ts +7 -836
- package/src/plugins/builtin/chart-composer/price-levels.ts +80 -0
- package/src/plugins/builtin/chart-composer/quick-add.tsx +4 -4
- package/src/plugins/builtin/chart-composer/series-catalog.ts +1 -4
- package/src/plugins/builtin/chart-composer/series-expression.ts +189 -0
- package/src/{time-series → plugins/builtin/chart-composer}/session-history.ts +14 -14
- package/src/plugins/builtin/chart-composer/settings.ts +35 -14
- package/src/plugins/builtin/chart-composer/studies.ts +242 -0
- package/src/plugins/builtin/chat/channel-labels.ts +1 -1
- package/src/plugins/builtin/chat/channels.ts +1 -1
- package/src/plugins/builtin/chat/content/transcript.tsx +0 -1
- package/src/plugins/builtin/chat/layout.ts +2 -2
- package/src/plugins/builtin/chat/message/profile-popover.tsx +1 -1
- package/src/plugins/builtin/chat/pane.tsx +0 -2
- package/src/plugins/builtin/chat/profile-popover.ts +1 -1
- package/src/plugins/builtin/chat/sidebar-store.ts +2 -2
- package/src/plugins/builtin/cloud/askg/executor.ts +3 -3
- package/src/plugins/builtin/cloud/askg/manifest.ts +3 -3
- package/src/plugins/builtin/cloud/askg/model.ts +5 -5
- package/src/plugins/builtin/cloud/askg/pane.tsx +1 -1
- package/src/plugins/builtin/cloud/askg/protocol.ts +14 -14
- package/src/plugins/builtin/cloud/auth-dialog.tsx +1 -1
- package/src/plugins/builtin/cloud/auth-form.tsx +31 -94
- package/src/plugins/builtin/cloud/auth-model.ts +1 -1
- package/src/plugins/builtin/cloud/device-signin-dialog.tsx +1 -1
- package/src/plugins/builtin/cloud/email-auth-attempt.ts +173 -0
- package/src/plugins/builtin/cloud/team/capability.ts +1 -1
- package/src/plugins/builtin/cloud/team/collections.ts +1 -1
- package/src/plugins/builtin/cloud/team/command.ts +2 -2
- package/src/plugins/builtin/cloud/team/model.ts +1 -1
- package/src/plugins/builtin/cloud/team/pane-sections.tsx +1 -1
- package/src/plugins/builtin/cloud/team/pane-ui.tsx +1 -1
- package/src/plugins/builtin/cloud/team/pane.tsx +1 -1
- package/src/plugins/builtin/cloud/team/views.ts +2 -2
- package/src/plugins/builtin/cloud/thesis/exposure.ts +2 -2
- package/src/plugins/builtin/cloud/thesis/ticker-tab.tsx +0 -1
- package/src/plugins/builtin/cloud/upgrade-dialog.tsx +2 -2
- package/src/plugins/builtin/cloud-tweets/model.ts +1 -1
- package/src/{utils → plugins/builtin/cloud-tweets}/tweet-text.ts +1 -1
- package/src/plugins/builtin/composite-plugins.ts +4 -0
- package/src/plugins/builtin/congress-trades/detail.tsx +1 -1
- package/src/plugins/builtin/congress-trades/model.ts +1 -1
- package/src/plugins/builtin/congress-trades/table.tsx +1 -1
- package/src/plugins/builtin/connections/pane.tsx +1 -1
- package/src/plugins/builtin/correlation/index.tsx +2 -2
- package/src/plugins/builtin/correlation/relationship/pane.tsx +1 -1
- package/src/plugins/builtin/correlation/relationship/view-model.ts +1 -1
- package/src/plugins/builtin/cot/client.ts +1 -1
- package/src/plugins/builtin/credit-boards/client.ts +2 -2
- package/src/plugins/builtin/credit-boards/model.ts +5 -11
- package/src/plugins/builtin/credit-conditions/client.ts +1 -1
- package/src/plugins/builtin/credit-conditions/headless.ts +2 -2
- package/src/plugins/builtin/crypto-board/model.ts +4 -4
- package/src/plugins/builtin/crypto-board/pane.tsx +1 -1
- package/src/plugins/builtin/custom-view/live-quotes.ts +1 -1
- package/src/plugins/builtin/custom-view/pane.tsx +35 -23
- package/src/plugins/builtin/custom-view/view-spec.ts +9 -9
- package/src/plugins/builtin/debt-maturities/index.tsx +1 -0
- package/src/plugins/builtin/debt-maturities/model.ts +2 -18
- package/src/plugins/builtin/debt-maturities/pane.tsx +2 -2
- package/src/plugins/builtin/dividend-yield/index.tsx +1 -0
- package/src/plugins/builtin/earnings/board-model.ts +1 -1
- package/src/plugins/builtin/earnings/client.ts +2 -2
- package/src/plugins/builtin/earnings/data/cache.ts +1 -1
- package/src/plugins/builtin/earnings/estimate-basis.ts +2 -7
- package/src/plugins/builtin/earnings/headless.ts +3 -3
- package/src/plugins/builtin/earnings/history-model.ts +1 -1
- package/src/plugins/builtin/earnings-calls/headless.ts +1 -1
- package/src/plugins/builtin/econ/detail-view.tsx +1 -1
- package/src/plugins/builtin/econ/index.tsx +1 -1
- package/src/plugins/builtin/econ-statistics/detail.tsx +1 -1
- package/src/plugins/builtin/econ-statistics/pane.tsx +1 -1
- package/src/plugins/builtin/econ-statistics/view.ts +3 -3
- package/src/plugins/builtin/estimate-revisions/index.tsx +1 -0
- package/src/plugins/builtin/executives/index.tsx +1 -0
- package/src/plugins/builtin/fear-greed/headless.ts +1 -1
- package/src/plugins/builtin/fear-greed/index.tsx +0 -2
- package/src/plugins/builtin/filing-events/index.tsx +1 -0
- package/src/plugins/builtin/futures/index.tsx +1 -1
- package/src/plugins/builtin/futures/returns.ts +1 -1
- package/src/plugins/builtin/futures/use-front-returns.ts +1 -1
- package/src/plugins/builtin/futures-curve/model.ts +2 -2
- package/src/plugins/builtin/help/function-card.tsx +202 -0
- package/src/plugins/builtin/help/function-index.ts +193 -0
- package/src/plugins/builtin/help/index.tsx +31 -1
- package/src/plugins/builtin/help/shortcut-model.ts +1 -1
- package/src/plugins/builtin/help/table-cells.tsx +1 -1
- package/src/plugins/builtin/holders/index.tsx +1 -0
- package/src/plugins/builtin/insider/client.ts +1 -1
- package/src/plugins/builtin/insider/index.tsx +1 -0
- package/src/plugins/builtin/insider/model.ts +1 -1
- package/src/plugins/builtin/ipo-calendar/headless.ts +1 -1
- package/src/plugins/builtin/ipo-calendar/model.ts +1 -1
- package/src/plugins/builtin/iv-history/charts.tsx +1 -1
- package/src/plugins/builtin/iv-history/client.ts +2 -2
- package/src/plugins/builtin/iv-history/index.tsx +1 -1
- package/src/plugins/builtin/iv-history/model.ts +4 -4
- package/src/plugins/builtin/jobs/client.ts +1 -1
- package/src/plugins/builtin/jobs/model.ts +3 -3
- package/src/plugins/builtin/jobs/pane.tsx +2 -2
- package/src/plugins/builtin/kelly-sizer/model.ts +1 -1
- package/src/plugins/builtin/kelly-sizer/test-support.tsx +1 -1
- package/src/plugins/builtin/kelly-sizer/types.ts +1 -1
- package/src/plugins/builtin/layout-manager/index.tsx +76 -2
- package/src/plugins/builtin/macro-resources.ts +1 -1
- package/src/plugins/builtin/market-halts/pane.tsx +5 -1
- package/src/plugins/builtin/market-heatmap/data.ts +4 -4
- package/src/plugins/builtin/market-movers/screener.ts +1 -1
- package/src/plugins/builtin/market-valuation/align.ts +1 -1
- package/src/plugins/builtin/market-valuation/chart-projection.ts +1 -1
- package/src/plugins/builtin/market-valuation/defs.ts +3 -3
- package/src/plugins/builtin/market-valuation/headless.ts +1 -1
- package/src/plugins/builtin/market-valuation/indicators.ts +4 -4
- package/src/plugins/builtin/market-valuation/series.ts +1 -1
- package/src/plugins/builtin/market-valuation/settings.ts +1 -1
- package/src/plugins/builtin/market-valuation/sources.ts +1 -1
- package/src/plugins/builtin/market-valuation/view.ts +1 -1
- package/src/plugins/builtin/market-valuation/zone-scale/model.ts +1 -1
- package/src/plugins/builtin/mna/client.ts +3 -3
- package/src/plugins/builtin/mna/detail.tsx +1 -1
- package/src/plugins/builtin/mna/model.ts +2 -7
- package/src/plugins/builtin/mna/pane.tsx +2 -2
- package/src/plugins/builtin/news/headless.ts +1 -1
- package/src/plugins/builtin/news/index.tsx +1 -0
- package/src/plugins/builtin/news/wire/breaking/filters.ts +5 -5
- package/src/plugins/builtin/notes/store.ts +1 -1
- package/src/plugins/builtin/options/enrichment.ts +1 -1
- package/src/plugins/builtin/options/footer.ts +2 -2
- package/src/plugins/builtin/options/index.tsx +1 -0
- package/src/plugins/builtin/options/live-quotes.ts +4 -4
- package/src/plugins/builtin/options/types.ts +1 -1
- package/src/plugins/builtin/options-positioning/client.ts +105 -0
- package/src/plugins/builtin/options-positioning/headless.ts +113 -0
- package/src/plugins/builtin/options-positioning/index.tsx +70 -0
- package/src/plugins/builtin/options-positioning/model.ts +158 -0
- package/src/plugins/builtin/options-positioning/pane.tsx +597 -0
- package/src/plugins/builtin/options-scenario/client.ts +78 -21
- package/src/plugins/builtin/options-scenario/headless.ts +14 -2
- package/src/plugins/builtin/options-scenario/model.ts +5 -3
- package/src/plugins/builtin/options-scenario/pane.tsx +14 -5
- package/src/plugins/builtin/plugin-marketplace/model.ts +1 -1
- package/src/plugins/builtin/plugin-marketplace/store.ts +1 -1
- package/src/plugins/builtin/portfolio-list/account-metrics.ts +1 -1
- package/src/plugins/builtin/portfolio-list/cli/portfolio-command.ts +7 -1
- package/src/plugins/builtin/portfolio-list/cli/render.ts +13 -13
- package/src/plugins/builtin/portfolio-list/column-values.ts +1 -0
- package/src/plugins/builtin/portfolio-list/metrics.ts +1 -1
- package/src/plugins/builtin/portfolio-list/mutations.ts +71 -0
- package/src/plugins/builtin/portfolio-list/pane/index.tsx +26 -15
- package/src/plugins/builtin/portfolio-list/position-metrics.ts +1 -1
- package/src/plugins/builtin/portfolio-list/summary/index.tsx +18 -9
- package/src/plugins/builtin/portfolio-list/summary/live-accounts.ts +1 -1
- package/src/plugins/builtin/portfolio-list/summary/totals.ts +49 -8
- package/src/plugins/builtin/rate-path/model.ts +1 -1
- package/src/plugins/builtin/realized-vol/chart-model.ts +1 -1
- package/src/plugins/builtin/realized-vol/evidence.ts +1 -1
- package/src/plugins/builtin/realized-vol/index.tsx +1 -1
- package/src/plugins/builtin/realized-vol/model.ts +2 -2
- package/src/plugins/builtin/relative-rotation/model.ts +3 -3
- package/src/plugins/builtin/research/corporate-actions-pane.tsx +1 -1
- package/src/plugins/builtin/research/events-headless.ts +1 -1
- package/src/plugins/builtin/research/headless.ts +1 -1
- package/src/plugins/builtin/research/index.tsx +4 -0
- package/src/plugins/builtin/research-search/model.ts +1 -1
- package/src/plugins/builtin/revenue-breakdown/bars.tsx +1 -1
- package/src/plugins/builtin/revenue-breakdown/client.ts +1 -1
- package/src/plugins/builtin/revenue-breakdown/index.tsx +1 -0
- package/src/plugins/builtin/revenue-breakdown/model.ts +1 -1
- package/src/plugins/builtin/revenue-breakdown/pane.tsx +1 -1
- package/src/plugins/builtin/risk-factors/index.tsx +1 -0
- package/src/plugins/builtin/scanner/flow-model.ts +3 -3
- package/src/plugins/builtin/scanner/flow-pane.tsx +1 -1
- package/src/plugins/builtin/scanner/headless.ts +5 -5
- package/src/plugins/builtin/scanner/hilo-model.ts +3 -3
- package/src/plugins/builtin/seasonality/client.ts +41 -0
- package/src/plugins/builtin/seasonality/headless.ts +38 -0
- package/src/plugins/builtin/seasonality/index.tsx +20 -0
- package/src/plugins/builtin/seasonality/model.ts +124 -0
- package/src/plugins/builtin/seasonality/pane.tsx +156 -0
- package/src/plugins/builtin/sec/index.tsx +1 -0
- package/src/plugins/builtin/sec/model.ts +1 -1
- package/src/plugins/builtin/shared/cloud-upgrade.ts +2 -2
- package/src/plugins/builtin/shared/mine-tickers.ts +1 -1
- package/src/plugins/builtin/shared/series-cache.ts +2 -2
- package/src/plugins/builtin/shared/use-quote-board.ts +1 -1
- package/src/plugins/builtin/shared/volatility/options.ts +1 -1
- package/src/plugins/builtin/short-interest/index.tsx +2 -1
- package/src/plugins/builtin/short-interest/model.ts +1 -1
- package/src/plugins/builtin/short-volume/index.tsx +6 -1
- package/src/plugins/builtin/short-volume/model.ts +1 -1
- package/src/plugins/builtin/social-mentions/index.tsx +1 -1
- package/src/plugins/builtin/social-mentions/model.ts +1 -1
- package/src/plugins/builtin/thirteenf/model.ts +1 -1
- package/src/plugins/builtin/thirteenf/signals.ts +1 -1
- package/src/plugins/builtin/ticker-detail/data-panes/historical-prices.tsx +1 -1
- package/src/plugins/builtin/ticker-detail/financials/ratios.ts +1 -1
- package/src/plugins/builtin/ticker-detail/financials/schema.ts +0 -1
- package/src/plugins/builtin/ticker-detail/index.tsx +3 -0
- package/src/plugins/builtin/ticker-detail/overview/components.tsx +1 -1
- package/src/plugins/builtin/time-sales/index.tsx +1 -1
- package/src/plugins/builtin/time-sales/model.ts +1 -1
- package/src/plugins/builtin/treasury-auctions/headless.ts +2 -2
- package/src/plugins/builtin/treasury-auctions/model.ts +1 -1
- package/src/plugins/builtin/vol-surface/client.ts +4 -4
- package/src/plugins/builtin/vol-surface/live.ts +1 -1
- package/src/plugins/builtin/vol-surface/model.ts +7 -7
- package/src/plugins/builtin/vol-surface/pane.tsx +1 -1
- package/src/plugins/builtin/vol-surface/stored.ts +1 -1
- package/src/plugins/builtin/volatility/client.ts +4 -4
- package/src/plugins/builtin/volatility/headless.ts +1 -1
- package/src/plugins/builtin/volatility/model.ts +5 -5
- package/src/plugins/builtin/world-indices/headless.ts +3 -3
- package/src/plugins/builtin/yield-curve/chart.ts +61 -16
- package/src/plugins/builtin/yield-curve/curves.ts +171 -0
- package/src/plugins/builtin/yield-curve/forward.ts +102 -0
- package/src/plugins/builtin/yield-curve/headless.ts +96 -41
- package/src/plugins/builtin/yield-curve/index.tsx +331 -120
- package/src/plugins/builtin/yield-curve/world.ts +53 -0
- package/src/plugins/bundle.ts +1 -1
- package/src/plugins/catalog-browser.ts +4 -0
- package/src/plugins/catalog-manifest.ts +1 -1
- package/src/plugins/compat.ts +7 -3
- package/src/plugins/dependencies.ts +26 -6
- package/src/plugins/external-runtime.ts +1 -1
- package/src/plugins/host-link.ts +20 -1
- package/src/plugins/host-modules.ts +4 -1
- package/src/plugins/host-resolver.ts +4 -1
- package/src/plugins/installer.ts +11 -2
- package/src/plugins/loader.ts +1 -1
- package/src/plugins/ownership.ts +1 -1
- package/src/plugins/plugin-names.ts +1 -1
- package/src/plugins/registry/host-actions.ts +237 -0
- package/src/plugins/registry/index.ts +79 -146
- package/src/plugins/registry/plugin-state.ts +1 -1
- package/src/plugins/runtime/context.tsx +2 -25
- package/src/plugins/runtime/state.ts +2 -2
- package/src/public/__snapshots__/public-api.test.ts.snap +1 -0
- package/src/public/layout.ts +2 -2
- package/src/public/test-support.ts +9 -1
- package/src/react/ticker-source.ts +1 -1
- package/src/remote/controller-utils.ts +2 -3
- package/src/remote/controller.ts +14 -14
- package/src/remote/resources.ts +10 -4
- package/src/remote/schema.ts +2 -2
- package/src/remote/semantic-helpers.ts +1 -1
- package/src/remote/types.ts +3 -3
- package/src/renderers/browser/bundled-plugins.ts +31 -1
- package/src/renderers/browser/main.tsx +4 -4
- package/src/renderers/browser/ui-host.tsx +1 -1
- package/src/renderers/{electrobun/view → dom}/build-assets.ts +3 -2
- package/src/renderers/{electrobun/view → dom}/data-frames.ts +2 -2
- package/src/renderers/{electrobun/view → dom}/data-table/dom.ts +3 -3
- package/src/renderers/{electrobun/view → dom}/data-table/index.tsx +9 -9
- package/src/renderers/{electrobun/view → dom}/data-table/row.tsx +5 -5
- package/src/renderers/{electrobun/view → dom}/desktop/control-styles.ts +2 -2
- package/src/renderers/{electrobun/view → dom}/desktop/controls.tsx +16 -16
- package/src/renderers/{electrobun/view → dom}/desktop/icons.tsx +1 -1
- package/src/renderers/{electrobun/view → dom}/desktop/list-view.tsx +5 -5
- package/src/renderers/{electrobun/view → dom}/desktop/menu.tsx +1 -1
- package/src/renderers/{electrobun/view → dom}/desktop/popover.tsx +3 -3
- package/src/renderers/{electrobun/view → dom}/desktop/query-bar.tsx +1 -1
- package/src/renderers/{electrobun/view → dom}/desktop/select-field.tsx +6 -6
- package/src/renderers/{electrobun/view → dom}/dialog-host.tsx +4 -4
- package/src/renderers/{electrobun/view → dom}/dom-host-providers.tsx +2 -2
- package/src/renderers/{electrobun/view → dom}/dom-ui-host.tsx +3 -3
- package/src/renderers/{electrobun/view → dom}/host/ascii-text.ts +2 -2
- package/src/renderers/{electrobun/view → dom}/host/chart-surface.tsx +1 -1
- package/src/renderers/{electrobun/view → dom}/host/input.tsx +3 -3
- package/src/renderers/{electrobun/view → dom}/host/media-surface.tsx +1 -1
- package/src/renderers/{electrobun/view → dom}/host/mouse.ts +2 -2
- package/src/renderers/{electrobun/view → dom}/host/scroll-box.tsx +2 -2
- package/src/renderers/{electrobun/view → dom}/host/style.ts +2 -2
- package/src/renderers/{electrobun/view → dom}/host/surface-3d.tsx +4 -4
- package/src/renderers/{electrobun/view → dom}/host/tabs.tsx +2 -2
- package/src/renderers/{electrobun/view → dom}/host/text.tsx +3 -3
- package/src/renderers/{electrobun/view → dom}/input-host.tsx +3 -3
- package/src/renderers/{electrobun/view → dom}/native-renderer.ts +2 -2
- package/src/renderers/{electrobun/view → dom}/test-utils.tsx +3 -3
- package/src/renderers/{electrobun/view → dom}/toast-host.tsx +2 -2
- package/src/renderers/electrobun/bun/application-menu/index.ts +1 -0
- package/src/{theme → renderers/electrobun/bun/desktop}/app-icon.ts +5 -5
- package/src/renderers/electrobun/bun/desktop/backend-requests.ts +45 -93
- package/src/renderers/electrobun/bun/desktop/backend.ts +514 -0
- package/src/renderers/electrobun/bun/desktop/capability-bridge.ts +1 -1
- package/src/renderers/electrobun/bun/desktop/detached-windows.ts +36 -54
- package/src/renderers/electrobun/bun/desktop/host-requests.ts +62 -53
- package/src/renderers/electrobun/bun/desktop/initialization.ts +25 -78
- package/src/renderers/electrobun/bun/desktop/macos-dock-icon.ts +1 -1
- package/src/renderers/electrobun/bun/desktop/state-broadcaster.ts +1 -1
- package/src/renderers/electrobun/bun/desktop/workspace/index.ts +2 -10
- package/src/renderers/electrobun/bun/desktop/workspace/requests.ts +20 -47
- package/src/renderers/electrobun/bun/index.ts +14 -648
- package/src/renderers/electrobun/bun/window/frame.ts +1 -1
- package/src/renderers/electrobun/shared/protocol.ts +11 -11
- package/src/renderers/electrobun/view/backend-rpc.ts +1 -1
- package/src/renderers/electrobun/view/cli-pane-shot-entry.tsx +3 -4
- package/src/renderers/electrobun/view/main.tsx +3 -3
- package/src/renderers/electrobun/view/ui-host.tsx +1 -1
- package/src/renderers/opentui/host.tsx +12 -6
- package/src/renderers/opentui/test-utils.tsx +104 -3
- package/src/renderers/share/layout-view.tsx +1 -1
- package/src/renderers/share/main.tsx +1 -1
- package/src/shares/pane.ts +3 -3
- package/src/shares/payload.ts +7 -7
- package/src/{layout-marketplace/payload.ts → shares/portable-layout.ts} +7 -9
- package/src/{data → sources/gloomberb-cloud}/fred-series.ts +4 -4
- package/src/sources/gloomberb-cloud/normalizers.ts +1 -1
- package/src/sources/history-retention.ts +2 -2
- package/src/sources/provider-router/financial-routes.ts +0 -1
- package/src/sources/yahoo-finance/mappers.ts +1 -1
- package/src/state/app/bootstrap.ts +1 -1
- package/src/state/app/context/index.tsx +1 -5
- package/src/state/hooks/inline-tickers.ts +1 -1
- package/src/state/hooks/live-ticker-financials.ts +2 -2
- package/src/state/hooks/quote-streaming.ts +1 -1
- package/src/state/hooks/session-snapshot.ts +0 -2
- package/src/sync/controller.ts +1 -1
- package/src/sync/core-contributors.ts +40 -2
- package/src/sync/types.ts +4 -4
- package/src/telemetry/crash-reports-node.ts +5 -5
- package/src/test-support/broker.ts +4 -3
- package/src/test-support/plugin-runtime.ts +2 -18
- package/src/theme/font-scale.ts +2 -2
- package/src/{plugins/builtin/correlation/colors.ts → theme/heat-colors.ts} +19 -16
- package/src/time-series/alignment.ts +1 -1
- package/src/time-series/fundamentals.ts +2 -2
- package/src/time-series/hooks.ts +2 -2
- package/src/time-series/live-bars.ts +1 -1
- package/src/time-series/price-comparison.ts +1 -1
- package/src/time-series/resolve.ts +12 -4
- package/src/time-series/spec.ts +5 -1
- package/src/time-series/studies.ts +330 -2
- package/src/time-series/trader-studies.ts +188 -0
- package/src/time-series/types.ts +18 -0
- package/src/types/config.ts +23 -12
- package/src/types/desktop-deeplink.ts +1 -0
- package/src/types/desktop-window.ts +2 -1
- package/src/types/plugin.ts +8 -0
- package/src/ui/context-menu.tsx +1 -1
- package/src/ui/host.tsx +5 -1
- package/src/ui/toast.tsx +2 -0
- package/src/utils/back-navigation.ts +1 -1
- package/src/utils/futures-generic.ts +23 -2
- package/src/utils/http-proxy-response.ts +1 -1
- package/src/utils/sec-eps-basis.ts +1 -1
- /package/src/{plugins → layout}/pane-manager/dock-tree.ts +0 -0
- /package/src/{plugins → layout}/pane-manager/docking.ts +0 -0
- /package/src/{plugins → layout}/pane-manager/floating-actions.ts +0 -0
- /package/src/{plugins → layout}/pane-manager/floating.ts +0 -0
- /package/src/{plugins → layout}/pane-manager/gridlock-inference.ts +0 -0
- /package/src/{plugins → layout}/pane-manager/gridlock.ts +0 -0
- /package/src/{plugins → layout}/pane-manager/layout-state.ts +0 -0
- /package/src/{plugins → layout}/pane-manager/queries.ts +0 -0
- /package/src/{plugins → layout}/pane-manager/types.ts +0 -0
- /package/src/{plugins → layout}/pane-state.ts +0 -0
- /package/src/plugins/{seed.ts → extracted-plugins.ts} +0 -0
- /package/src/renderers/{electrobun/view → dom}/data-table/frozen-column.ts +0 -0
- /package/src/renderers/{electrobun/view → dom}/desktop/stack-header.ts +0 -0
- /package/src/renderers/{electrobun/view → dom}/host/block-glyph-canvas.tsx +0 -0
- /package/src/renderers/{electrobun/view → dom}/host/box.tsx +0 -0
- /package/src/renderers/{electrobun/view → dom}/host/focus-scope.ts +0 -0
- /package/src/renderers/{electrobun/view → dom}/host/overflow-fade.ts +0 -0
- /package/src/renderers/{electrobun/view → dom}/host/top-surface.ts +0 -0
- /package/src/renderers/{electrobun/view → dom}/key-event.ts +0 -0
- /package/src/renderers/{electrobun/view → dom}/scrollbar-activity.ts +0 -0
- /package/src/renderers/{electrobun/view → dom}/styles.css +0 -0
- /package/src/renderers/electrobun/{view → shared}/rpc-codec.ts +0 -0
- /package/src/{utils → renderers/opentui}/terminal-input-reset.ts +0 -0
package/src/api-client/types.ts
CHANGED
|
@@ -171,7 +171,7 @@ export interface BuildoutTokenResponse {
|
|
|
171
171
|
expiresAt: string;
|
|
172
172
|
}
|
|
173
173
|
|
|
174
|
-
|
|
174
|
+
interface CloudPricingTier {
|
|
175
175
|
/** Charged amount, in integer cents. */
|
|
176
176
|
amount: number;
|
|
177
177
|
}
|
|
@@ -193,6 +193,14 @@ export interface CloudPricing {
|
|
|
193
193
|
yearly: CloudPricingTier;
|
|
194
194
|
}
|
|
195
195
|
|
|
196
|
+
/** The account's private calendar feed link (`/account/calendar-feed`). */
|
|
197
|
+
export interface CalendarFeed {
|
|
198
|
+
url: string;
|
|
199
|
+
createdAt: string;
|
|
200
|
+
/** The last time a calendar app read it, to the hour. */
|
|
201
|
+
lastFetchedAt: string | null;
|
|
202
|
+
}
|
|
203
|
+
|
|
196
204
|
/** One command-bar prefix described for `/assist/command`. */
|
|
197
205
|
export interface AssistCommandDescriptor {
|
|
198
206
|
prefix: string;
|
|
@@ -370,7 +378,7 @@ export interface CloudFredSeriesPayload {
|
|
|
370
378
|
* One month of Robert Shiller's dataset. FRED carries no long-run S&P earnings,
|
|
371
379
|
* so this is what every earnings-based valuation ratio is built from.
|
|
372
380
|
*/
|
|
373
|
-
|
|
381
|
+
interface CloudShillerObservationPayload {
|
|
374
382
|
date: string;
|
|
375
383
|
price: number | null;
|
|
376
384
|
dividend: number | null;
|
|
@@ -444,7 +452,7 @@ export interface CloudCdsHistoryResponse {
|
|
|
444
452
|
points: CloudCdsHistoryPointPayload[];
|
|
445
453
|
}
|
|
446
454
|
|
|
447
|
-
|
|
455
|
+
interface CloudShortInterestPointPayload {
|
|
448
456
|
settlementDate: string;
|
|
449
457
|
sharesShort: number;
|
|
450
458
|
previousSharesShort: number | null;
|
|
@@ -585,7 +593,7 @@ export interface CloudEarningsCallPayload {
|
|
|
585
593
|
webcastUrl?: string | null;
|
|
586
594
|
}
|
|
587
595
|
|
|
588
|
-
|
|
596
|
+
interface CloudJobsSeriesPoint {
|
|
589
597
|
day: string;
|
|
590
598
|
open: number;
|
|
591
599
|
/** Null on the first observed day, when the whole board is seen for the first time. */
|
|
@@ -687,7 +695,7 @@ export interface CloudJobsSummaryPayload {
|
|
|
687
695
|
recent: CloudJobsPosting[];
|
|
688
696
|
}
|
|
689
697
|
|
|
690
|
-
|
|
698
|
+
interface CloudJobsPendingPayload {
|
|
691
699
|
status: "pending";
|
|
692
700
|
ticker: string;
|
|
693
701
|
queued: boolean;
|
|
@@ -744,7 +752,7 @@ export interface CloudExecutiveRowPayload {
|
|
|
744
752
|
total: number | null;
|
|
745
753
|
}
|
|
746
754
|
|
|
747
|
-
|
|
755
|
+
interface CloudProxyStatementSummaryPayload {
|
|
748
756
|
id: string;
|
|
749
757
|
ticker: string;
|
|
750
758
|
company: {
|
|
@@ -778,7 +786,7 @@ export interface CloudProxyStatementPayload extends CloudProxyStatementSummaryPa
|
|
|
778
786
|
otherYears: CloudProxyStatementSummaryPayload[];
|
|
779
787
|
}
|
|
780
788
|
|
|
781
|
-
|
|
789
|
+
interface CloudRiskFactorPayload {
|
|
782
790
|
heading: string;
|
|
783
791
|
group: string | null;
|
|
784
792
|
excerpt: string;
|
|
@@ -791,7 +799,7 @@ export interface CloudRiskNotePayload {
|
|
|
791
799
|
text: string;
|
|
792
800
|
}
|
|
793
801
|
|
|
794
|
-
|
|
802
|
+
interface CloudRiskReportSummaryPayload {
|
|
795
803
|
id: string;
|
|
796
804
|
ticker: string;
|
|
797
805
|
company: {
|
|
@@ -848,7 +856,7 @@ export interface CloudRiskReportListPayload {
|
|
|
848
856
|
reports: CloudRiskReportSummaryPayload[];
|
|
849
857
|
}
|
|
850
858
|
|
|
851
|
-
|
|
859
|
+
interface CloudFilingPersonPayload {
|
|
852
860
|
name: string;
|
|
853
861
|
role: string;
|
|
854
862
|
action: string;
|
|
@@ -904,7 +912,7 @@ export interface CloudTranscriptTurnPayload {
|
|
|
904
912
|
startSeconds: number | null;
|
|
905
913
|
}
|
|
906
914
|
|
|
907
|
-
|
|
915
|
+
interface CloudTranscriptKeyFigurePayload {
|
|
908
916
|
/** What the number is, e.g. "Q3 revenue guidance". */
|
|
909
917
|
label: string;
|
|
910
918
|
/** As management said it, e.g. "$108B ± 2%". */
|
|
@@ -913,7 +921,7 @@ export interface CloudTranscriptKeyFigurePayload {
|
|
|
913
921
|
note?: string;
|
|
914
922
|
}
|
|
915
923
|
|
|
916
|
-
|
|
924
|
+
interface CloudTranscriptParticipantPayload {
|
|
917
925
|
name: string;
|
|
918
926
|
role?: string;
|
|
919
927
|
company?: string;
|
|
@@ -1056,7 +1064,7 @@ export interface CloudSavedSearchInput {
|
|
|
1056
1064
|
alertChannels?: string[];
|
|
1057
1065
|
}
|
|
1058
1066
|
|
|
1059
|
-
|
|
1067
|
+
interface CloudSecFilingPayload {
|
|
1060
1068
|
accessionNumber: string;
|
|
1061
1069
|
form: string;
|
|
1062
1070
|
filingDate: string;
|
|
@@ -1072,7 +1080,7 @@ export interface CloudSecFilingPayload {
|
|
|
1072
1080
|
primaryDocumentUrl?: string;
|
|
1073
1081
|
}
|
|
1074
1082
|
|
|
1075
|
-
|
|
1083
|
+
interface CloudSecDocumentPayload {
|
|
1076
1084
|
sequence?: string;
|
|
1077
1085
|
type: string;
|
|
1078
1086
|
description?: string;
|
|
@@ -1092,7 +1100,7 @@ export interface CloudSecDocumentsResponse {
|
|
|
1092
1100
|
documents: CloudSecDocumentPayload[];
|
|
1093
1101
|
}
|
|
1094
1102
|
|
|
1095
|
-
|
|
1103
|
+
interface CloudSecForm4Payload {
|
|
1096
1104
|
filingDate: string;
|
|
1097
1105
|
reportedName: string;
|
|
1098
1106
|
title: string;
|
|
@@ -1359,7 +1367,7 @@ export type CloudEquityDiagnosticFindingKind =
|
|
|
1359
1367
|
"red_flag" | "green_flag" | "anomaly";
|
|
1360
1368
|
|
|
1361
1369
|
/** 3 is the most severe. */
|
|
1362
|
-
|
|
1370
|
+
type CloudEquityDiagnosticSeverity = 1 | 2 | 3;
|
|
1363
1371
|
|
|
1364
1372
|
export interface CloudEquityDiagnosticFinding {
|
|
1365
1373
|
id: string;
|
|
@@ -1393,7 +1401,7 @@ export interface CloudEquityDiagnosticEvidence {
|
|
|
1393
1401
|
url?: string;
|
|
1394
1402
|
}
|
|
1395
1403
|
|
|
1396
|
-
|
|
1404
|
+
interface CloudEquityDiagnosticPending {
|
|
1397
1405
|
status: "generating";
|
|
1398
1406
|
retryAfterMs: number;
|
|
1399
1407
|
}
|
|
@@ -1459,7 +1467,7 @@ export type ScannerKind = "hilo" | "flow";
|
|
|
1459
1467
|
|
|
1460
1468
|
export type ScannerStatus = "live" | "starting" | "closed" | "degraded";
|
|
1461
1469
|
|
|
1462
|
-
|
|
1470
|
+
interface ScannerWindowCounts {
|
|
1463
1471
|
highs: number;
|
|
1464
1472
|
lows: number;
|
|
1465
1473
|
}
|
|
@@ -1474,7 +1482,7 @@ export interface ScannerHiloExtreme {
|
|
|
1474
1482
|
}
|
|
1475
1483
|
|
|
1476
1484
|
/** Which entitlement tier produced the payload: free accounts get a delayed instance. */
|
|
1477
|
-
|
|
1485
|
+
interface ScannerAccessInfo {
|
|
1478
1486
|
access: "realtime" | "delayed";
|
|
1479
1487
|
/** 0 on the realtime instance, 15 on the delayed one. */
|
|
1480
1488
|
delayMinutes: number;
|
|
@@ -1559,7 +1567,7 @@ export interface QuoteStreamTarget {
|
|
|
1559
1567
|
weight?: number;
|
|
1560
1568
|
}
|
|
1561
1569
|
|
|
1562
|
-
|
|
1570
|
+
const TEAM_ACCENT_COLORS = [
|
|
1563
1571
|
"amber",
|
|
1564
1572
|
"blue",
|
|
1565
1573
|
"cyan",
|
|
@@ -1667,7 +1675,7 @@ interface TeamNotificationTeam {
|
|
|
1667
1675
|
shortName: string;
|
|
1668
1676
|
}
|
|
1669
1677
|
|
|
1670
|
-
|
|
1678
|
+
type TeamNotificationData =
|
|
1671
1679
|
| {
|
|
1672
1680
|
kind: "team-invite";
|
|
1673
1681
|
team: TeamNotificationTeam;
|
|
@@ -1685,7 +1693,7 @@ export type TeamNotificationData =
|
|
|
1685
1693
|
author: TeamActor;
|
|
1686
1694
|
};
|
|
1687
1695
|
|
|
1688
|
-
|
|
1696
|
+
type TeamNotificationType = TeamNotificationData["kind"];
|
|
1689
1697
|
|
|
1690
1698
|
export interface TeamNotification {
|
|
1691
1699
|
id: string;
|
|
@@ -1697,10 +1705,10 @@ export interface TeamNotification {
|
|
|
1697
1705
|
|
|
1698
1706
|
// Cloud notes
|
|
1699
1707
|
|
|
1700
|
-
|
|
1708
|
+
type NoteOwnerKind = "user" | "team";
|
|
1701
1709
|
export type NoteKind = "ticker" | "quick";
|
|
1702
1710
|
|
|
1703
|
-
|
|
1711
|
+
interface CloudNoteOwner {
|
|
1704
1712
|
kind: NoteOwnerKind;
|
|
1705
1713
|
id: string;
|
|
1706
1714
|
}
|
|
@@ -1733,14 +1741,14 @@ export type ThesisStatus = "watching" | "active" | "closed";
|
|
|
1733
1741
|
export type ThesisHealth = "unverified" | "intact" | "weakening" | "broken";
|
|
1734
1742
|
export type ThesisPillarStatus = ThesisHealth;
|
|
1735
1743
|
|
|
1736
|
-
|
|
1744
|
+
interface ThesisInstrument {
|
|
1737
1745
|
symbol: string;
|
|
1738
1746
|
exchange?: string;
|
|
1739
1747
|
side: "long" | "short";
|
|
1740
1748
|
role: "core" | "hedge";
|
|
1741
1749
|
}
|
|
1742
1750
|
|
|
1743
|
-
|
|
1751
|
+
interface ThesisMetricBound {
|
|
1744
1752
|
key: string;
|
|
1745
1753
|
op: ">=" | "<=";
|
|
1746
1754
|
value: number;
|
|
@@ -1783,13 +1791,13 @@ export interface ThesisDocument {
|
|
|
1783
1791
|
entry?: { date?: string; price?: number };
|
|
1784
1792
|
}
|
|
1785
1793
|
|
|
1786
|
-
|
|
1794
|
+
interface ThesisOutcome {
|
|
1787
1795
|
verdict: "right" | "wrong" | "lucky" | "unlucky";
|
|
1788
1796
|
returnPct?: number;
|
|
1789
1797
|
lesson?: string;
|
|
1790
1798
|
}
|
|
1791
1799
|
|
|
1792
|
-
|
|
1800
|
+
interface ThesisEditor {
|
|
1793
1801
|
id: string;
|
|
1794
1802
|
username: string | null;
|
|
1795
1803
|
displayName: string;
|
|
@@ -1817,11 +1825,11 @@ export interface CloudThesis {
|
|
|
1817
1825
|
closedAt: string | null;
|
|
1818
1826
|
}
|
|
1819
1827
|
|
|
1820
|
-
|
|
1821
|
-
|
|
1822
|
-
|
|
1828
|
+
type ThesisSignalTargetKind = "pillar" | "kill" | "catalyst" | "thesis";
|
|
1829
|
+
type ThesisSignalVerdict = "supports" | "challenges" | "breaks" | "neutral";
|
|
1830
|
+
type ThesisSignalStatus = "open" | "accepted" | "dismissed" | "snoozed" | "noted";
|
|
1823
1831
|
|
|
1824
|
-
|
|
1832
|
+
interface ThesisSignalSource {
|
|
1825
1833
|
kind: "news" | "filing" | "transcript" | "metric" | "review" | "user";
|
|
1826
1834
|
id?: string;
|
|
1827
1835
|
title?: string;
|
|
@@ -1893,7 +1901,7 @@ export interface TeamCollectionItem {
|
|
|
1893
1901
|
updatedAt: string;
|
|
1894
1902
|
}
|
|
1895
1903
|
|
|
1896
|
-
|
|
1904
|
+
type TeamCollectionChange =
|
|
1897
1905
|
| { change: "created"; collection: TeamCollection }
|
|
1898
1906
|
| { change: "updated"; collection: TeamCollection }
|
|
1899
1907
|
| { change: "deleted"; collectionId: string }
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/** Government bond curves stored from their official publishers, in percent. */
|
|
2
|
+
export type CloudCurveId = "us" | "us-real" | "us-breakeven" | "eu-aaa" | "de" | "gb" | "jp" | "ca";
|
|
3
|
+
|
|
4
|
+
export interface CloudCurvePoint {
|
|
5
|
+
tenor: string;
|
|
6
|
+
years: number;
|
|
7
|
+
yield: number | null;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
interface CloudCurveHeader {
|
|
11
|
+
id: CloudCurveId;
|
|
12
|
+
label: string;
|
|
13
|
+
country: string;
|
|
14
|
+
/** par: bonds priced at par; zero: spot rates; benchmark: named benchmark bonds; spread: nominal minus real. */
|
|
15
|
+
basis: "par" | "zero" | "benchmark" | "spread";
|
|
16
|
+
couponsPerYear: number;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export interface CloudCurveView {
|
|
20
|
+
curve: CloudCurveHeader;
|
|
21
|
+
requestedDate: string | null;
|
|
22
|
+
/** The session the publisher dates the curve. */
|
|
23
|
+
asOf: string;
|
|
24
|
+
points: CloudCurvePoint[];
|
|
25
|
+
lookbacks: Array<{ id: "1D" | "1W" | "1M"; requestedDate: string; asOf: string | null; points: CloudCurvePoint[] | null }>;
|
|
26
|
+
spreads: Array<{
|
|
27
|
+
id: string;
|
|
28
|
+
short: string;
|
|
29
|
+
long: string;
|
|
30
|
+
/** Long minus short, percentage points. */
|
|
31
|
+
value: number | null;
|
|
32
|
+
change1d: number | null;
|
|
33
|
+
percentile1y: number | null;
|
|
34
|
+
observations1y: number;
|
|
35
|
+
}>;
|
|
36
|
+
checkedAt: string | null;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export interface CloudWorldCurves {
|
|
40
|
+
curves: Array<{
|
|
41
|
+
curve: CloudCurveHeader;
|
|
42
|
+
asOf: string;
|
|
43
|
+
points: CloudCurvePoint[];
|
|
44
|
+
previous: { asOf: string; points: CloudCurvePoint[] } | null;
|
|
45
|
+
checkedAt: string | null;
|
|
46
|
+
}>;
|
|
47
|
+
}
|
|
@@ -73,7 +73,6 @@ function createDetachedSessionSnapshotFallback(): AppSessionSnapshot {
|
|
|
73
73
|
return {
|
|
74
74
|
paneState: {},
|
|
75
75
|
focusedPaneId: null,
|
|
76
|
-
activePanel: "left",
|
|
77
76
|
statusBarVisible: true,
|
|
78
77
|
openPaneIds: [],
|
|
79
78
|
hydrationTargets: [],
|
|
@@ -97,7 +96,6 @@ function resolveDetachedAppSessionSnapshot(
|
|
|
97
96
|
...baseSessionSnapshot,
|
|
98
97
|
paneState: desktopSnapshot.paneState,
|
|
99
98
|
focusedPaneId: desktopSnapshot.focusedPaneId,
|
|
100
|
-
activePanel: desktopSnapshot.activePanel,
|
|
101
99
|
statusBarVisible: desktopSnapshot.statusBarVisible,
|
|
102
100
|
}
|
|
103
101
|
: null;
|
|
@@ -6,9 +6,13 @@ import { useToastHost } from "../ui/toast";
|
|
|
6
6
|
import type { PluginRegistry } from "../plugins/registry";
|
|
7
7
|
import type { AppAction, AppState } from "../state/app/context";
|
|
8
8
|
import type { TickerRecord } from "../types/ticker";
|
|
9
|
+
import { findPaneInstance } from "../types/config";
|
|
9
10
|
import type { ReleaseInfo } from "../updater";
|
|
10
11
|
import { canSelfUpdate } from "../updater";
|
|
11
12
|
import { getVisiblePaneCycleOrder } from "../components/layout/pane/cycle-order";
|
|
13
|
+
import { requestFunctionHelp, useFunctionHelpHost } from "../plugins/builtin/help/function-card";
|
|
14
|
+
import { buildRegistryHelpIndex, helpFunctionForPane } from "../plugins/builtin/help/function-index";
|
|
15
|
+
import { recordFunctionOpen } from "../telemetry/usage-counts";
|
|
12
16
|
import { isMoveDownShortcut, isMoveUpShortcut } from "../components/command-bar/keyboard-handlers";
|
|
13
17
|
import {
|
|
14
18
|
copyActiveSelection,
|
|
@@ -106,6 +110,11 @@ export function useAppGlobalShortcuts({
|
|
|
106
110
|
const uiKind = useUiHost().kind;
|
|
107
111
|
const toastHost = useToastHost();
|
|
108
112
|
useKeybindingIssueNotice(keybindings, pluginRegistry, state.initialized);
|
|
113
|
+
useFunctionHelpHost({
|
|
114
|
+
closeCommandBar: () => {
|
|
115
|
+
if (state.commandBarOpen) dispatch({ type: "SET_COMMAND_BAR", open: false });
|
|
116
|
+
},
|
|
117
|
+
});
|
|
109
118
|
|
|
110
119
|
useShortcut((event) => {
|
|
111
120
|
if (isCopyShortcut(event) && copyActiveSelection(nativeRenderer)) {
|
|
@@ -207,6 +216,18 @@ export function useAppGlobalShortcuts({
|
|
|
207
216
|
return;
|
|
208
217
|
}
|
|
209
218
|
|
|
219
|
+
// A function key is never text, so the card opens from a focused field too.
|
|
220
|
+
if (action === "function-help") {
|
|
221
|
+
event.preventDefault();
|
|
222
|
+
event.stopPropagation();
|
|
223
|
+
recordFunctionOpen({ shortcut: "HELP", externalPluginId: null });
|
|
224
|
+
const instance = state.focusedPaneId ? findPaneInstance(state.config.layout, state.focusedPaneId) : undefined;
|
|
225
|
+
const fn = instance ? helpFunctionForPane(buildRegistryHelpIndex(pluginRegistry), pluginRegistry, instance) : null;
|
|
226
|
+
if (fn && requestFunctionHelp({ kind: "function", fn })) return;
|
|
227
|
+
if (!isDetachedWindow) pluginRegistry.showPane("help");
|
|
228
|
+
return;
|
|
229
|
+
}
|
|
230
|
+
|
|
210
231
|
if (state.inputCaptured) return;
|
|
211
232
|
|
|
212
233
|
if (!isDetachedWindow && action === "help") {
|
|
@@ -7,6 +7,7 @@ export type CoreKeybindingActionId =
|
|
|
7
7
|
| "command-bar"
|
|
8
8
|
| "ticker-search"
|
|
9
9
|
| "help"
|
|
10
|
+
| "function-help"
|
|
10
11
|
| "switch-layout"
|
|
11
12
|
| "focus-next-pane"
|
|
12
13
|
| "focus-prev-pane"
|
|
@@ -31,7 +32,7 @@ export type CoreKeybindingActionId =
|
|
|
31
32
|
| "window-move-mode"
|
|
32
33
|
| "window-resize-mode";
|
|
33
34
|
|
|
34
|
-
|
|
35
|
+
type KeybindingActionCategory = "Global Keys" | "Pane Management";
|
|
35
36
|
|
|
36
37
|
export interface KeybindingActionDef {
|
|
37
38
|
id: CoreKeybindingActionId;
|
|
@@ -88,6 +89,13 @@ export const KEYBINDING_ACTIONS: readonly KeybindingActionDef[] = [
|
|
|
88
89
|
description: "Open help.",
|
|
89
90
|
defaults: ["?"],
|
|
90
91
|
},
|
|
92
|
+
{
|
|
93
|
+
id: "function-help",
|
|
94
|
+
category: "Global Keys",
|
|
95
|
+
description: "Open the focused pane's help card: what it shows, its keys and how fresh its data is.",
|
|
96
|
+
// F1 is help on every platform and nothing in the app used it.
|
|
97
|
+
defaults: ["F1"],
|
|
98
|
+
},
|
|
91
99
|
{
|
|
92
100
|
id: "switch-layout",
|
|
93
101
|
category: "Global Keys",
|
|
@@ -113,7 +113,7 @@ const MODIFIER_ONLY_EVENT_NAMES = new Set([
|
|
|
113
113
|
"", "shift", "ctrl", "control", "alt", "option", "meta", "super", "cmd", "command", "capslock", "fn",
|
|
114
114
|
]);
|
|
115
115
|
|
|
116
|
-
|
|
116
|
+
function isNamedKey(key: string): boolean {
|
|
117
117
|
return NAMED_KEY_BY_ALIAS.get(key)?.key === key;
|
|
118
118
|
}
|
|
119
119
|
|
|
@@ -1,45 +1,32 @@
|
|
|
1
1
|
export {
|
|
2
|
-
KEYBINDING_ACTIONS,
|
|
3
2
|
PLUGIN_ACTION_PREFIX,
|
|
4
|
-
getKeybindingAction,
|
|
5
3
|
isCoreKeybindingActionId,
|
|
6
|
-
pluginShortcutActionId,
|
|
7
4
|
type CoreKeybindingActionId,
|
|
8
|
-
type KeybindingActionCategory,
|
|
9
|
-
type KeybindingActionDef,
|
|
10
5
|
} from "./actions";
|
|
11
6
|
export {
|
|
12
7
|
formatKeyChord,
|
|
13
8
|
isTypingChord,
|
|
14
|
-
keyChordDigit,
|
|
15
9
|
keyChordFromEvent,
|
|
16
|
-
keyChordsEqual,
|
|
17
10
|
matchesKeyChord,
|
|
18
11
|
parseKeyChord,
|
|
19
12
|
serializeKeyChord,
|
|
20
13
|
type KeyChord,
|
|
21
14
|
type KeyChordEventLike,
|
|
22
|
-
type PrimaryModifier,
|
|
23
15
|
} from "./chord";
|
|
24
16
|
export {
|
|
25
17
|
describeKeybindingIssue,
|
|
26
18
|
isPaneKeybindingAction,
|
|
27
19
|
keyChordsOverlap,
|
|
28
|
-
keybindingActionLabel,
|
|
29
20
|
matchKeybinding,
|
|
30
21
|
matchesKeybindingAction,
|
|
31
|
-
pluginShortcutDefaultChord,
|
|
32
22
|
resolveKeybindings,
|
|
33
23
|
resolvePluginShortcutChords,
|
|
34
24
|
type KeybindingCommand,
|
|
35
|
-
type KeybindingIssue,
|
|
36
|
-
type KeybindingMatch,
|
|
37
25
|
type ResolvedKeybindingAction,
|
|
38
26
|
type ResolvedKeybindings,
|
|
39
27
|
} from "./resolve";
|
|
40
28
|
export {
|
|
41
29
|
advertisedChord,
|
|
42
|
-
chordsForHost,
|
|
43
30
|
formatActionChords,
|
|
44
31
|
formatAdvertisedChord,
|
|
45
32
|
formatChordForHost,
|
|
@@ -58,5 +45,4 @@ export {
|
|
|
58
45
|
requestKeybindingCapture,
|
|
59
46
|
subscribeKeybindingCapture,
|
|
60
47
|
takeKeybindingCaptureRequest,
|
|
61
|
-
type KeybindingCaptureRequest,
|
|
62
48
|
} from "./capture-request";
|
|
@@ -34,7 +34,7 @@ export function formatChordForHost(
|
|
|
34
34
|
* Chords worth showing on this host. A terminal cannot deliver an explicit
|
|
35
35
|
* Command chord, so those rows stay out of the terminal's help.
|
|
36
36
|
*/
|
|
37
|
-
|
|
37
|
+
function chordsForHost(chords: readonly KeyChord[], mode: ShortcutDisplayMode): KeyChord[] {
|
|
38
38
|
return chords.filter((chord) => mode !== "terminal" || !chord.cmd);
|
|
39
39
|
}
|
|
40
40
|
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { KeybindingsConfig } from "../../types/config";
|
|
2
2
|
import type { KeyboardShortcut } from "../../types/plugin";
|
|
3
3
|
import {
|
|
4
|
-
getKeybindingAction,
|
|
5
4
|
isCoreKeybindingActionId,
|
|
6
5
|
KEYBINDING_ACTIONS,
|
|
7
6
|
PANE_ACTION_IDS,
|
|
@@ -66,7 +65,7 @@ export interface ResolveKeybindingsOptions {
|
|
|
66
65
|
host?: "terminal" | "desktop";
|
|
67
66
|
}
|
|
68
67
|
|
|
69
|
-
|
|
68
|
+
function pluginShortcutDefaultChord(shortcut: KeyboardShortcut): KeyChord {
|
|
70
69
|
return {
|
|
71
70
|
key: shortcut.key.toLowerCase(),
|
|
72
71
|
ctrl: shortcut.ctrl === true,
|
|
@@ -280,9 +279,3 @@ export function describeKeybindingIssue(issue: KeybindingIssue): string {
|
|
|
280
279
|
return `${serializeKeyChord(issue.chord)} is bound to ${issue.targets.join(" and ")}.`;
|
|
281
280
|
}
|
|
282
281
|
}
|
|
283
|
-
|
|
284
|
-
export function keybindingActionLabel(action: ResolvedKeybindingAction): string {
|
|
285
|
-
return action.def?.description ?? action.pluginShortcut?.description ?? action.id;
|
|
286
|
-
}
|
|
287
|
-
|
|
288
|
-
export { getKeybindingAction };
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
findDockLeaf,
|
|
8
8
|
getDockedPaneIds,
|
|
9
9
|
isPaneInLayout,
|
|
10
|
-
} from "../../
|
|
10
|
+
} from "../../layout/pane-manager";
|
|
11
11
|
import type { PluginRegistry } from "../../plugins/registry";
|
|
12
12
|
import type { LoadedExternalPlugin } from "../../plugins/loader";
|
|
13
13
|
import {
|
|
@@ -18,6 +18,7 @@ import {
|
|
|
18
18
|
type AppState,
|
|
19
19
|
} from "../../state/app/context";
|
|
20
20
|
import { scheduleConfigSave } from "../../state/config-save-scheduler";
|
|
21
|
+
import { pinFollowingPane } from "../../layout/pane-follow";
|
|
21
22
|
import {
|
|
22
23
|
createPaneInstance,
|
|
23
24
|
isTickerPaneId,
|
|
@@ -35,7 +36,6 @@ import type {
|
|
|
35
36
|
} from "../../types/plugin";
|
|
36
37
|
import type { DialogApi } from "../../ui/dialog";
|
|
37
38
|
import {
|
|
38
|
-
resolvePanelForPane,
|
|
39
39
|
resolvePaneShowTarget,
|
|
40
40
|
resolvePaneTarget as resolvePaneTargetInLayout,
|
|
41
41
|
selectEdgeAnchor,
|
|
@@ -83,6 +83,7 @@ export function useAppPaneRuntime({
|
|
|
83
83
|
const currentState = stateRef.current;
|
|
84
84
|
const normalizedLayout = normalizePaneLayout(layout, {
|
|
85
85
|
resolveOrphanSymbol: (instanceId) => resolveTickerForPane(currentState, instanceId),
|
|
86
|
+
pinOrphan: pinFollowingPane,
|
|
86
87
|
});
|
|
87
88
|
if (options?.pushHistory !== false) {
|
|
88
89
|
dispatch({ type: "PUSH_LAYOUT_HISTORY" });
|
|
@@ -95,18 +96,12 @@ export function useAppPaneRuntime({
|
|
|
95
96
|
{ ...currentState.config, layout: normalizedLayout },
|
|
96
97
|
currentState.paneState,
|
|
97
98
|
hasFocusTarget ? (options.focusedPaneId ?? null) : currentState.focusedPaneId,
|
|
98
|
-
currentState.activePanel,
|
|
99
99
|
));
|
|
100
100
|
}, [dispatch, stateRef]);
|
|
101
101
|
|
|
102
|
-
const activatePane = useCallback((paneId: string
|
|
103
|
-
dispatch({
|
|
104
|
-
type: "SET_ACTIVE_PANEL",
|
|
105
|
-
panel: resolvePanelForPane({ layout, paneId, pluginRegistry }),
|
|
106
|
-
preserveFocus: true,
|
|
107
|
-
});
|
|
102
|
+
const activatePane = useCallback((paneId: string) => {
|
|
108
103
|
dispatch({ type: "FOCUS_PANE", paneId });
|
|
109
|
-
}, [dispatch
|
|
104
|
+
}, [dispatch]);
|
|
110
105
|
|
|
111
106
|
const {
|
|
112
107
|
buildPaneBinding,
|
|
@@ -163,7 +158,7 @@ export function useAppPaneRuntime({
|
|
|
163
158
|
if (nextLayout !== state.config.layout) {
|
|
164
159
|
persistLayout(nextLayout, { pushHistory: false });
|
|
165
160
|
}
|
|
166
|
-
activatePane(paneId
|
|
161
|
+
activatePane(paneId);
|
|
167
162
|
}, [activatePane, persistLayout, state.config.layout]);
|
|
168
163
|
|
|
169
164
|
const placePaneInstance = useCallback((
|
|
@@ -171,7 +166,7 @@ export function useAppPaneRuntime({
|
|
|
171
166
|
paneDef: PaneDef,
|
|
172
167
|
options?: PaneTemplateInstanceConfig,
|
|
173
168
|
) => {
|
|
174
|
-
const { width, height } = pluginRegistry.
|
|
169
|
+
const { width, height } = pluginRegistry.getTermSize();
|
|
175
170
|
// Templates can await ticker resolution before placing their pane, so the
|
|
176
171
|
// layout from the render that started the request may be out of date.
|
|
177
172
|
const { config: { layout }, focusedPaneId } = stateRef.current;
|
|
@@ -201,7 +196,7 @@ export function useAppPaneRuntime({
|
|
|
201
196
|
}
|
|
202
197
|
|
|
203
198
|
persistLayout(nextLayout);
|
|
204
|
-
activatePane(instance.instanceId
|
|
199
|
+
activatePane(instance.instanceId);
|
|
205
200
|
}, [
|
|
206
201
|
activatePane,
|
|
207
202
|
persistLayout,
|
|
@@ -221,7 +216,7 @@ export function useAppPaneRuntime({
|
|
|
221
216
|
}
|
|
222
217
|
|
|
223
218
|
if (target.instance && isPaneInLayout(state.config.layout, target.instance.instanceId)) {
|
|
224
|
-
pluginRegistry.
|
|
219
|
+
pluginRegistry.focusPane(target.instance.instanceId);
|
|
225
220
|
return;
|
|
226
221
|
}
|
|
227
222
|
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import type { PluginRegistry } from "../../plugins/registry";
|
|
2
1
|
import {
|
|
3
2
|
getDockLeafLayouts,
|
|
4
|
-
|
|
5
|
-
} from "../../plugins/pane-manager";
|
|
3
|
+
} from "../../layout/pane-manager";
|
|
6
4
|
import {
|
|
7
5
|
findPaneInstance,
|
|
8
6
|
isTickerPaneId,
|
|
@@ -41,33 +39,6 @@ export function resolvePaneShowTarget(
|
|
|
41
39
|
};
|
|
42
40
|
}
|
|
43
41
|
|
|
44
|
-
export function resolvePanelForPane({
|
|
45
|
-
layout,
|
|
46
|
-
paneId,
|
|
47
|
-
pluginRegistry,
|
|
48
|
-
}: {
|
|
49
|
-
layout: LayoutConfig;
|
|
50
|
-
paneId: string;
|
|
51
|
-
pluginRegistry: PluginRegistry;
|
|
52
|
-
}): "left" | "right" {
|
|
53
|
-
const instanceId = resolvePaneTarget(layout, paneId);
|
|
54
|
-
if (!instanceId) return "right";
|
|
55
|
-
const instance = findPaneInstance(layout, instanceId);
|
|
56
|
-
const paneDef = instance ? pluginRegistry.panes.get(instance.paneId) : pluginRegistry.panes.get(paneId);
|
|
57
|
-
const floating = layout.floating.find((entry) => entry.instanceId === instanceId);
|
|
58
|
-
if (floating) {
|
|
59
|
-
return paneDef?.defaultPosition ?? "right";
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
const rect = getLeafRect(layout, instanceId, PANEL_RESOLUTION_BOUNDS);
|
|
63
|
-
if (!rect) {
|
|
64
|
-
return paneDef?.defaultPosition ?? "right";
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
const midpoint = PANEL_RESOLUTION_BOUNDS.width / 2;
|
|
68
|
-
return rect.x + (rect.width / 2) <= midpoint ? "left" : "right";
|
|
69
|
-
}
|
|
70
|
-
|
|
71
42
|
export function selectEdgeAnchor(layout: LayoutConfig, edge: "left" | "right"): string | null {
|
|
72
43
|
const leaves = getDockLeafLayouts(layout, PANEL_RESOLUTION_BOUNDS);
|
|
73
44
|
if (leaves.length === 0) return null;
|