Merge remote-tracking branch 'origin/development' into HEAD

This commit is contained in:
Doxa Maps 2026-09-30 04:27:17 +00:00
commit a77ea9d512

View file

@ -84,8 +84,17 @@ provided instance. Drop the provide and a host can no longer set your plugin's l
- **Don't edit `library/` to customise one plugin.** A library change reaches every plugin that
imports it, so it needs every consumer rebuilt. On a team with a build owner, hand library
changes to that owner rather than landing them yourself.
- **Graduate late.** Move code into `library/` only when a second plugin needs the same thing
and it takes props instead of hard-coded specifics.
- **Reusable by default.** If a component could serve more than one plugin, build it once in
`library/`, driven by props rather than hard-coded to your plugin, and land it through the build owner.
Other plugins then adopt it instead of copying it.
- **A new pattern is piloted, approved, then rolled out.** It starts on one plugin, built by that
plugin's owner, and a maintainer approves it on the dev server (the Plugin Studio). Only then do
the owners of the other plugins it applies to adopt it, each in their own plugin.
- **One shape per kind of control.** Controls on a map are round and spaced apart: put them in
`MapToolbar`, whose default is a spaced column of round `MapControlButton`s (both in
`library/components/map-controls/`), not its grouped square card (`controls="square"`). Buttons in
a dashboard's header bar are rounded squares with the vertical tabs' corner radius
(`var(--vtl-radius, 8px)` in `library/layouts/VerticalTabsLayout.vue`).
## 4. The universal props — every plugin honours these