diff --git a/changelog.d/0000-vue-and-pinia.md b/changelog.d/1499-vue-and-pinia.md similarity index 92% rename from changelog.d/0000-vue-and-pinia.md rename to changelog.d/1499-vue-and-pinia.md index 9ac910934..fb721fa2a 100644 --- a/changelog.d/0000-vue-and-pinia.md +++ b/changelog.d/1499-vue-and-pinia.md @@ -4,18 +4,18 @@ the page's `data-i18n` markup follow. `persistLocale` replaces `persistLocaleAndReload`, and `registerUnsavedWork` and the switch's unsaved-work prompt are removed, since a switch no longer loses anything - (samehkhamis, #0000). + (samehkhamis, #1499). - A map source's `unavailableReason` may be a function, read when the reason is shown so it follows the locale; the sources from `createDefaultMapSources` (`./maps/defaults`) give functions. `MapSourceController` reads either form - (samehkhamis, #0000). + (samehkhamis, #1499). - The application views translate their text with `t()` as they render, so it follows the active locale; they no longer carry `data-i18n*` attributes, and `npm run i18n` rejects those in a Vue template. The boot pass (`applyDocumentTranslations`) still translates static page markup - such as the loading screen and a host's own markup (samehkhamis, #0000). + such as the loading screen and a host's own markup (samehkhamis, #1499). - The page's locale lives in a vue-i18n instance installed in every application view, and `t()`, `tn()` and the Intl formatters read it from @@ -23,23 +23,23 @@ locale changes. `bindLocale` (`src/i18n/index.js`) keeps the locale in a given ref; Core's Vite config builds vue-i18n without its message compiler. Catalogs, messages and call sites are unchanged - (samehkhamis, #0000). + (samehkhamis, #1499). - Cockpit's Display popover shows the Display panel's own HUD, Detection, Parameters and 3D groups through Vue teleports: `CockpitDisplayPortal` publishes the popover's slots (`publish`, with `afterRender` to lay out once - they have moved) instead of moving the groups itself (samehkhamis, #0000). + they have moved) instead of moving the groups itself (samehkhamis, #1499). - The Cockpit utility strip's measured layout renders from the `gev-cockpit` store: the layout pass publishes `utilityLayout` (the HUD's `--cockpit-utility-*` lengths, `primaryOnly` and `hideCollapsed`), and a host constructing `CockpitController` passes `publish.utilityLayout` beside its - other publishers (samehkhamis, #0000). + other publishers (samehkhamis, #1499). - The Cockpit Contact and briefing cards' collapse renders from the `gev-cockpit` store: the controller publishes `contextCollapsed` and `signalCollapsed` in its presence, and each card's `data-collapsed` and its - toggle's state, words and icon follow it (samehkhamis, #0000). + toggle's state, words and icon follow it (samehkhamis, #1499). - The panels' own state classes (`collapsed`, `dock-pinned`, `dock-pinned-top`, `layout-auto-collapsed`, `accordion-collapsed`) render from the @@ -49,14 +49,14 @@ `onCollapse(panel, {collapsed, auto})` and leave drawing it to the host. Without a shell to own the panels, the voice tools' `set_panel_open` now reports that there is no panel to open instead of writing its classes - (samehkhamis, #0000). + (samehkhamis, #1499). - The shell's panel chrome no longer writes the panels' collapse buttons, the dock tray toggles' names or the dock pins' pressed state: it presents each panel's open and pinned state to the `gev-panel-chrome` store, and the buttons, now views, call it there. `bindPanelDisclosure` (`./ui/panels`) binds only a panel's Escape; it no longer takes `buttons` or `onChange`. `UiButton` - joins the component kit with ui-vue's props (samehkhamis, #0000). + joins the component kit with ui-vue's props (samehkhamis, #1499). - `SceneControls` (`./ui/scenes`) no longer takes `elements` or writes the Scene panel's buttons, status, progress or runtime chip: it presents them to the @@ -64,12 +64,12 @@ `sceneElements`, `presentSceneButtons`, `presentSceneProgress` and `presentSceneRuntime` give way to `sceneButtonsDisabled` and `scenePercent`. It no longer stands down when the page has no Scene panel: ESC still stops a - playing scene and the runtime chip still shows (samehkhamis, #0000). + playing scene and the runtime chip still shows (samehkhamis, #1499). - `initFirstRunExperience` (via `./application/chrome`) no longer writes the launcher's classes, attributes or text, or removes the card: it presents them to the welcome view's `gev-first-run` store (its new `store` option) and - connects the controls the view's buttons call (samehkhamis, #0000). + connects the controls the view's buttons call (samehkhamis, #1499). - `IntelHUD` (`./ui/hud`) no longer builds or writes `#intel-hud`: it hands its readouts, visibility, layout variant and style colors to its `publish` option, @@ -78,7 +78,7 @@ `#intel-hud` element. `./layers/vessels` shows the selected vessel's HUD readout through `services.readouts.presentSelectedVessel()` instead of writing `#hud-ais-vessel`; the application passes `src/hudReadouts.js`, which IntelHUD - follows (samehkhamis, #0000). + follows (samehkhamis, #1499). - `LocationControls` (`./ui/location`) no longer builds the city and landmark pills or writes the mini status: it presents the tray, including the search @@ -94,13 +94,13 @@ `NavigationController` a `settleSearch` option in place of `searchInput`. `createOrbitIndicator()` is replaced by `showOrbit(active)`, which adds the ORBIT indicator to the presented tray as `orbit: { active }` (null until - offered) (samehkhamis, #0000). + offered) (samehkhamis, #1499). - `createMapSourceControls()` (`./ui/maps`) no longer renders the map source chips into a `container` or writes a `statusElement`: it presents the chip row and status badge and hands them to its `publish` option, and Core's dock renders them and calls `select()`. `renderMapStackChips`, `syncMapStackChips` - and `MAP_STACK_CHIP_CLASS` are removed (samehkhamis, #0000). + and `MAP_STACK_CHIP_CLASS` are removed (samehkhamis, #1499). - `./layers/launches` no longer writes the Space Missions roster or the selected mission panel into `#space-mission-panel-host`: the layer publishes both @@ -111,7 +111,7 @@ `cancelReplay`, `setReplaySpeed` and the `roster*` preview inputs). The `bindMissionRosterItemKeyboardPreview`, `captureMissionRosterFocus` and `restoreMissionRosterFocus` helpers are gone; the roster keeps focus itself - (samehkhamis, #0000). + (samehkhamis, #1499). - `./layers/awareness` no longer writes the Contacts panel into `#military-awareness-panel`: the layer publishes a plain panel view through @@ -119,11 +119,11 @@ layer's `navigatePrevious`, `focusCurrent`, `navigateNext` and `focusTarget`. The `awarenessPanelControlKey`, `captureAwarenessPanelFocus` and `restoreAwarenessPanelFocus` helpers are gone; the view keeps focus itself - (samehkhamis, #0000). + (samehkhamis, #1499). - `./ui/cctv` and `./ui/radio` import Vue and Pinia: their controllers publish the panel's state to a store that the CCTV and Radio views render, instead of - writing the panel's markup themselves (samehkhamis, #0000). + writing the panel's markup themselves (samehkhamis, #1499). - `./ui/display`'s `bindDisplayControls` is gone: the Display panel's controls and the dock's style buttons call their owner through the display store's @@ -158,11 +158,11 @@ (`./ui/input`; the Display panel renders the style parameters VisualSettings publishes to the display store) are deprecated: the Display view, the rail and the globe actions view now own what they did. `./ui/input` imports Vue - (samehkhamis, #0000). + (samehkhamis, #1499). - `./scenes` presents the scene sharing dialogs and the EDIT DETAILS / SHARE SCENE bar through a store that the scene panels view renders, so a page that - omits `layer-panels` shows neither (samehkhamis, #0000). + omits `layer-panels` shows neither (samehkhamis, #1499). - `./voice/control`'s `createVoiceControl({ panel })` returns the voice control's presenter instead of element handles: owners write it by part @@ -170,19 +170,19 @@ command dock renders it from a store. `createVoiceCommands`' `createControl` and `VoiceCardControls` (`{ ui }` instead of `{ root }`) take the same presenter; the `reset` option is gone, since a newer control replaces the - previous one (samehkhamis, #0000). + previous one (samehkhamis, #1499). - Pages place each view with a `