★ LANDING 4 AS I SCOPED IT IS NOT POSSIBLE, AND THE SPEC WAS WRONG ABOUT THAT. go-int asked for the facet rail next and I agreed. Then the first step of a landing — look before moving — found that DashboardFacetRail imports FOUR plugin-local modules: useDashboardAggregations, useDashboardShell, useTreeLegendColors and useTreeLegendLabels. Moving the rail into library/ would have made a library component import plugin composables, which check:no-cross-plugin-imports rightly refuses. And two of those four are research-specific by my own spec's reckoning — useTreeLegendColors carries the DOXA colour strategies and is supposed to STAY in the plugin — so the rail cannot become library code by moving alone. Its colour and label dependencies have to be inverted into injection first, which section 8 named as a risk and then ordered as if it were free. So landing 4 is three commits, not one, and this is the first: the piece the rail stands on. THE SEARCH WAS NEVER A SHELL CONCERN. buildSearchAccessors, makeSearchMatcher and filterRowsBySearch were exported from useDashboardShell, and EIGHT files reached into the shell to get them — the table, the map panel, the charts rail, the facet rail, the research filters, the top bar, the profile and the config. A module that eight things import is a module, not a corner of another one. Nothing in it is domain-specific: the accessors come from config.facets / config.columns / config.searchKeys, and the matching comes from the already-shared fuzzy.js. Bodies are verbatim; this is a move. The shell re-exports the three names for one cycle, so none of the eight importers changes in this commit — a barrel line rather than a shim file, so there is nothing to delete later, only a line to remove when the eight point at the library directly. The now-dead fuzzy.js import is removed from the shell rather than left. An import nothing uses is the kind of thing that survives three more landings because it looks load-bearing. WHAT THIS DELIBERATELY DOES NOT TOUCH: the shell keeps rowMatchesFilters and the URL-hash escape helpers, which are what check:filter-multivalue reads out of it by path. I checked that before slicing, so no gate path moves in this commit. Library index regenerated in-commit. Source only; no rebuild needed beyond the usual, since every importer still resolves through the shell. |
||
|---|---|---|
| .. | ||
| architecture | ||
| assets | ||
| contributing | ||
| needs-eyes | ||
| readme-images | ||
| screenshots | ||
| CONTRIBUTING.md | ||
| develop-a-plugin-and-see-it-live.md | ||
| explanation.md | ||
| how-to.md | ||
| README-embed-example.md | ||
| README-embed-gospel-resources.md | ||
| README-SECTION-3-cli-commands.md | ||
| README.md | ||
| reference-capability-exemplars.md | ||
| reference-library-index.md | ||
| reference-universal-props.md | ||
| reference.md | ||
| tutorial.md | ||
| vendored-font-noto-serif-devanagari.md | ||
| why.md | ||
documentation/ — pick your path
"what is this?" "teach me" "how do I …?" "look it up" "all the detail"
│ │ │ │ │
why.md ──────────► tutorial.md ────► how-to.md ────► reference.md ───► architecture/
(2 min, 1 diagram) (first map) (task recipes) (tables) (contracts)
- why.md — the problem and the "map islands" idea. Start here.
- tutorial.md — build your first map, no jargon.
- how-to.md — recipes: embed, iframe, SPA, colors, CDN, mobile, tokens.
- reference.md — config fields, build scripts, the
profile-configcontract. - explanation.md — the model in 15 lines.
- architecture/ — the deep end: full contracts, the per-file catalog.
- README-embed-example.md — the drop-in README used when this bundler is embedded inside a host repo.
- README-embed-gospel-resources.md — the gospel map's URL contract for partner embeds: bring your own ISO 639-3 list, one country, one group, or the zero-access view.
Working on the repo:
- develop-a-plugin-and-see-it-live.md — ★ the golden path: zero to a plugin live, in 6 steps.
- README-SECTION-3-cli-commands.md — every command, per deployment method, with prerequisites.
- reference-capability-exemplars.md — which bundle is at which capability tier (generated).
- reference-library-index.md — the reusable
library/pieces you can import (generated). - CONTRIBUTING.md and contributing/ — how to contribute, and the bar for
library/.
Nothing on the simple path is longer than a few minutes; everything complex lives in
architecture/, linked from where you'd need it.