2 Commits (5ded37a9704ce4a33a2afdce322198895d9c3de5)

Author SHA1 Message Date
Buddy 5ded37a970 docs: JSDoc every public symbol + module docs for JSR score
JSR's score docked "module docs in all entrypoints" and "docs for most
symbols" (0% documented). This adds:

- `@module` doc comments to `src/index.ts` and `src/elements/index.ts`
- JSDoc on every top-level exported symbol reachable from those entrypoints:
  all `props.ts` types + codec factories, the `WithProps` mixin and its
  types, the `register.ts` events and `emit*` helpers, the `shared-props.ts`
  fragments and structural interfaces, every `event-types.ts` family, and all
  25 `Leaflet*Element` classes
- field-level docs on the `PropDef` and `LeafletElement` interfaces

Existing `//` explanations were converted in place; no behaviour change.
`jsr publish --dry-run` still clean; typecheck / lint / test / build pass.
2 weeks ago
Buddy f9c07a263d refactor: split element classes from customElements.define
Every component is now two modules sharing a basename:

- src/elements/leaflet-foo.ts -- `export default class LeafletFooElement
  extends WithProps(...)`, the class only, no customElements.define, no
  side effects. src/elements/index.ts is an order-free barrel.
- src/components/leaflet-foo.ts -- three lines: import the class, define
  the tag, re-export. Importing this (or src/index.ts) registers the tag.

Plugin authors can now import a class without triggering the built-in
define, to subclass it or register it under a different tag name. Package
subpath exports `leaflet-components/elements`,
`leaflet-components/elements/leaflet-foo.js`, and
`leaflet-components/components/leaflet-foo.js` map onto dist/; jsr.json
gains an `./elements` entry.

The load-bearing ordering moves from the export statements in src/index.ts
to its `./components/*` side-effect imports (the elements barrel carries no
define, so its order is free). Classes are renamed LeafletFoo ->
LeafletFooElement, including in the HTMLElementTagNameMap augmentation.

Docs (CLAUDE.md, docs/, README.md) updated for the new layout.
2 weeks ago