diff --git a/.changeset/components-config.md b/.changeset/components-config.md deleted file mode 100644 index 30a296e..0000000 --- a/.changeset/components-config.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -'@edoxen/browser': minor ---- - -Config-driven component layout. - -New `components` config block exposes visibility and (for the card meta row) order via three list-shaped fields, each backed by a closed Zod enum for typo safety: - -- **`components.meetingCard.metaItems`** — iterates in the configured order. Fully reorderable. Drop an item to hide it. Default: `['date', 'type', 'status', 'committee', 'count']`. -- **`components.meetingDetail.sections`** — visibility filter (`includes()` check). Source order preserved. Default: the 13 sections already on the page. -- **`components.decisionDetail.sections`** — visibility filter. Default: the 8 sections already on the page. - -Adding a new meta item type = extending the `MeetingCardMetaItem` union + adding a branch in the renderer. OCP-compliant: the renderer is a generic `.map()` over the configured list, not a switch that grows. - -Defaults preserve current behavior — existing consumers see no change unless they opt in. - -### Why meetingCard iterates but detail sections only filter - -The card meta items are simple inline elements that fit cleanly in a `.map()`. The detail sections are 21 complex blocks with deep conditional logic (resolving committees, three-tier venue resolution, agenda+decisions interplay, etc.). Full reorder for detail sections requires extracting each section to its own component file — tracked separately in https://github.com/edoxen/browser/issues/53. diff --git a/examples/bilingual/CHANGELOG.md b/examples/bilingual/CHANGELOG.md index 37b0d0b..c0c5e6f 100644 --- a/examples/bilingual/CHANGELOG.md +++ b/examples/bilingual/CHANGELOG.md @@ -1,5 +1,12 @@ # @edoxen/browser-example-bilingual +## 0.0.20 + +### Patch Changes + +- Updated dependencies [cccfdf1] + - @edoxen/browser@0.12.0 + ## 0.0.19 ### Patch Changes diff --git a/examples/bilingual/package.json b/examples/bilingual/package.json index 3f7c6b0..1353362 100644 --- a/examples/bilingual/package.json +++ b/examples/bilingual/package.json @@ -1,6 +1,6 @@ { "name": "@edoxen/browser-example-bilingual", - "version": "0.0.19", + "version": "0.0.20", "private": true, "type": "module", "description": "Bilingual @edoxen/browser example — EN + FR content via per-field LocalizedString.", diff --git a/examples/minimal/CHANGELOG.md b/examples/minimal/CHANGELOG.md index a0dcf85..f4c9abe 100644 --- a/examples/minimal/CHANGELOG.md +++ b/examples/minimal/CHANGELOG.md @@ -1,5 +1,12 @@ # @edoxen/browser-example-minimal +## 0.0.20 + +### Patch Changes + +- Updated dependencies [cccfdf1] + - @edoxen/browser@0.12.0 + ## 0.0.19 ### Patch Changes diff --git a/examples/minimal/package.json b/examples/minimal/package.json index 61605ba..cbebdd9 100644 --- a/examples/minimal/package.json +++ b/examples/minimal/package.json @@ -1,6 +1,6 @@ { "name": "@edoxen/browser-example-minimal", - "version": "0.0.19", + "version": "0.0.20", "private": true, "type": "module", "description": "Minimal @edoxen/browser example — single-locale, decisions-only.", diff --git a/examples/multibody/CHANGELOG.md b/examples/multibody/CHANGELOG.md index 1f5a278..59ef51c 100644 --- a/examples/multibody/CHANGELOG.md +++ b/examples/multibody/CHANGELOG.md @@ -1,5 +1,12 @@ # @edoxen/browser-example-multibody +## 0.0.20 + +### Patch Changes + +- Updated dependencies [cccfdf1] + - @edoxen/browser@0.12.0 + ## 0.0.19 ### Patch Changes diff --git a/examples/multibody/package.json b/examples/multibody/package.json index ad4d2f4..b30d55c 100644 --- a/examples/multibody/package.json +++ b/examples/multibody/package.json @@ -1,6 +1,6 @@ { "name": "@edoxen/browser-example-multibody", - "version": "0.0.19", + "version": "0.0.20", "private": true, "type": "module", "description": "Multi-body @edoxen/browser example — CIML + Conference + DC badges.", diff --git a/examples/standalone/CHANGELOG.md b/examples/standalone/CHANGELOG.md index 2330f9c..3cc3ae5 100644 --- a/examples/standalone/CHANGELOG.md +++ b/examples/standalone/CHANGELOG.md @@ -1,5 +1,12 @@ # @edoxen/browser-example-standalone +## 0.0.20 + +### Patch Changes + +- Updated dependencies [cccfdf1] + - @edoxen/browser@0.12.0 + ## 0.0.19 ### Patch Changes diff --git a/examples/standalone/package.json b/examples/standalone/package.json index b253309..0708cf0 100644 --- a/examples/standalone/package.json +++ b/examples/standalone/package.json @@ -1,6 +1,6 @@ { "name": "@edoxen/browser-example-standalone", - "version": "0.0.19", + "version": "0.0.20", "private": true, "type": "module", "description": "Standalone-mode @edoxen/browser showcase — no astro.config: edoxen.config.ts + data + src/styles/override.css theming demo.", diff --git a/packages/browser/CHANGELOG.md b/packages/browser/CHANGELOG.md index 27d09f1..694cdf9 100644 --- a/packages/browser/CHANGELOG.md +++ b/packages/browser/CHANGELOG.md @@ -1,5 +1,25 @@ # @edoxen/browser +## 0.12.0 + +### Minor Changes + +- cccfdf1: Config-driven component layout. + + New `components` config block exposes visibility and (for the card meta row) order via three list-shaped fields, each backed by a closed Zod enum for typo safety: + + - **`components.meetingCard.metaItems`** — iterates in the configured order. Fully reorderable. Drop an item to hide it. Default: `['date', 'type', 'status', 'committee', 'count']`. + - **`components.meetingDetail.sections`** — visibility filter (`includes()` check). Source order preserved. Default: the 13 sections already on the page. + - **`components.decisionDetail.sections`** — visibility filter. Default: the 8 sections already on the page. + + Adding a new meta item type = extending the `MeetingCardMetaItem` union + adding a branch in the renderer. OCP-compliant: the renderer is a generic `.map()` over the configured list, not a switch that grows. + + Defaults preserve current behavior — existing consumers see no change unless they opt in. + + ### Why meetingCard iterates but detail sections only filter + + The card meta items are simple inline elements that fit cleanly in a `.map()`. The detail sections are 21 complex blocks with deep conditional logic (resolving committees, three-tier venue resolution, agenda+decisions interplay, etc.). Full reorder for detail sections requires extracting each section to its own component file — tracked separately in https://github.com/edoxen/browser/issues/53. + ## 0.11.0 ### Minor Changes diff --git a/packages/browser/package.json b/packages/browser/package.json index 8b359f1..34e1e3d 100644 --- a/packages/browser/package.json +++ b/packages/browser/package.json @@ -1,6 +1,6 @@ { "name": "@edoxen/browser", - "version": "0.11.0", + "version": "0.12.0", "description": "Astro-based browser for edoxen YAML data — drop in your data and ship a resolutions archive site.", "type": "module", "license": "BSD-2-Clause",