mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-04 02:14:01 +00:00
docs: require Vue views, Pinia stores and the kit for new UI
CONTRIBUTING gains a Building UI section: new UX elements are Vue components rendering a Pinia store their owner publishes to, portable owners stay framework-free behind a publish option, controls come from src/ui/kit first, controllers don't bind the DOM by hand (Teleport where a view renders elsewhere; body classes, focus, same-task measured positions and painted surfaces stay imperative), text goes through t()/tn() with msg() for stored English, and tests mount components. The README and the architecture summary drop the stale vanilla-JS claim, the UI ownership doc points to the guide, and the migration doc's UiPanel note names v-panel-state as what draws a panel's collapse.
This commit is contained in:
1 parent
fd4b69ff52
commit
19ca67a6e5
4 files changed
+69
-7
No files matched your search
@@ -18,6 +18,11 @@ scene playback and voice. It delegates; new behavior belongs with its owner.
|
||||
| `shareRestoration.js` | Initial share/layer restoration and cancellation |
|
||||
| `shellFeedback.js` | Loading feedback, notices and toast lifetime |
|
||||
|
||||
Owners that present UI do so through Vue: they publish plain view objects to a
|
||||
Pinia store in `src/ui/stores/`, views in `src/ui/views/` render them, and user
|
||||
actions return through the handlers the owner connects to that store. See
|
||||
[Building UI](../CONTRIBUTING.md#building-ui).
|
||||
|
||||
Owners receive named services, elements, operations and readers. They do not
|
||||
receive the application shell itself. Readers resolve a replaceable collaborator
|
||||
at use time; operations cross an ownership boundary without copying its state.
|
||||
|
||||
@@ -48,9 +48,9 @@ existing stylesheet and custom properties; a kit class such as
|
||||
`ui-button--icon` carries no Core style yet, and a converted control keeps
|
||||
its own classes beside it. They contain no application state.
|
||||
`UiPanel` takes ui-vue's `title`, slots and `v-model:collapsed`, but its
|
||||
`collapsed` drives only the button and `ui-panel--collapsed`: the panel's
|
||||
owner hides the body by writing the root's `collapsed` class at once, and
|
||||
there is no `closable`, since Core's panels collapse rather than close.
|
||||
`collapsed` drives only the button and `ui-panel--collapsed`: the root's
|
||||
`collapsed` class, which hides the body, is drawn at once by `v-panel-state`
|
||||
from the panel chrome store, and there is no `closable`, since Core's panels collapse rather than close.
|
||||
`UiSegmented` adds `keyboard` (`none`, `arrows` as in ui-vue, or `radio` with
|
||||
Home and End), since each of Core's groups keeps its own keyboard policy, and
|
||||
`itemClass`/`activeClass` for Core's segment classes. A key moves focus at
|
||||
|
||||
Reference in new issue
Block a user