kitfly 0.2.0 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/CHANGELOG.md +68 -0
  2. package/README.md +25 -10
  3. package/VERSION +1 -1
  4. package/dist/_raw/content/guide/branding.md +146 -0
  5. package/dist/_raw/content/guide/data-driven-content.md +204 -0
  6. package/dist/_raw/content/reference/configuration.md +145 -7
  7. package/dist/_raw/content/reference/environment-variables.md +26 -1
  8. package/dist/_raw/content/reference/glossary.md +25 -1
  9. package/dist/_raw/content/reference/key-concepts.md +30 -2
  10. package/dist/_raw/content/reference/plugins.md +14 -0
  11. package/dist/_raw/content/reference/slides-authoring-guidelines.md +129 -0
  12. package/dist/_raw/content/reference.md +1 -0
  13. package/dist/_raw/docs/decisions/ADR-0006-data-driven-content.md +350 -0
  14. package/dist/content/deployment/preflight.html +10 -6
  15. package/dist/content/deployment/recipes/aws-s3.html +10 -6
  16. package/dist/content/deployment/recipes/cloudflare-pages.html +10 -6
  17. package/dist/content/deployment/recipes/cloudflare-r2.html +10 -6
  18. package/dist/content/deployment/recipes/fly-io.html +10 -6
  19. package/dist/content/deployment/recipes/github-pages.html +10 -6
  20. package/dist/content/deployment/recipes/netlify.html +10 -6
  21. package/dist/content/deployment/recipes/vercel.html +10 -6
  22. package/dist/content/deployment/secrets-and-env-vars.html +10 -6
  23. package/dist/content/deployment.html +10 -6
  24. package/dist/content/guide/approaches.html +10 -6
  25. package/dist/content/guide/branding.html +510 -0
  26. package/dist/content/guide/data-driven-content.html +543 -0
  27. package/dist/content/guide/features.html +10 -6
  28. package/dist/content/guide/getting-started.html +10 -6
  29. package/dist/content/guide/kitfly-overview.html +10 -6
  30. package/dist/content/reference/configuration.html +135 -9
  31. package/dist/content/reference/design-catalog.html +10 -6
  32. package/dist/content/reference/environment-variables.html +50 -8
  33. package/dist/content/reference/glossary.html +24 -8
  34. package/dist/content/reference/key-concepts.html +33 -9
  35. package/dist/content/reference/plugins.html +22 -7
  36. package/dist/content/reference/slides-authoring-guidelines.html +422 -0
  37. package/dist/content/reference/structure.html +10 -6
  38. package/dist/content/reference.html +11 -6
  39. package/dist/content/templates/crucible.html +10 -6
  40. package/dist/content/templates/handbook.html +10 -6
  41. package/dist/content/templates/minimal.html +10 -6
  42. package/dist/content/templates/overview.html +10 -6
  43. package/dist/content/templates/pipeline.html +10 -6
  44. package/dist/content/templates/productbook.html +10 -6
  45. package/dist/content/templates/runbook.html +10 -6
  46. package/dist/content/templates/servicebook.html +10 -6
  47. package/dist/content-index.json +38 -2
  48. package/dist/docs/decisions/ADR-0001-minimalist-site-code.html +10 -6
  49. package/dist/docs/decisions/ADR-0002-ai-accessibility.html +10 -6
  50. package/dist/docs/decisions/ADR-0003-single-file-bundle.html +10 -6
  51. package/dist/docs/decisions/ADR-0004-bun-runtime.html +10 -6
  52. package/dist/docs/decisions/ADR-0005-plugin-contract-and-distribution.html +10 -6
  53. package/dist/docs/decisions/ADR-0006-data-driven-content.html +752 -0
  54. package/dist/docs/decisions/DDR-0001-viewport-locked-layout.html +10 -6
  55. package/dist/docs/decisions/DDR-0002-theme-system.html +10 -6
  56. package/dist/docs/decisions/DDR-0003-bounded-logo-slot.html +10 -6
  57. package/dist/docs/decisions/DDR-0004-slides-rendering-model.html +10 -6
  58. package/dist/docs/decisions/DDR-0005-deterministic-layout-boundary.html +10 -6
  59. package/dist/docs/userguide/cli/build.html +10 -6
  60. package/dist/docs/userguide/cli/bundle.html +10 -6
  61. package/dist/docs/userguide/cli/dev.html +10 -6
  62. package/dist/docs/userguide/cli/init.html +10 -6
  63. package/dist/docs/userguide/cli/servers.html +10 -6
  64. package/dist/docs/userguide/cli/stop.html +10 -6
  65. package/dist/docs/userguide/cli/update.html +10 -6
  66. package/dist/docs/userguide/cli/version.html +10 -6
  67. package/dist/docs/userguide/cli.html +10 -6
  68. package/dist/docs/userguide/sharing.html +10 -6
  69. package/dist/index.html +10 -6
  70. package/dist/llms.txt +3 -3
  71. package/dist/provenance.json +4 -4
  72. package/dist/schemas/plugin-registry.schema.html +10 -6
  73. package/dist/schemas/plugin-schemas-notes.html +10 -6
  74. package/dist/schemas/plugin.schema.html +10 -6
  75. package/dist/schemas/plugins.schema.html +10 -6
  76. package/dist/schemas/v0/common.schema.html +14 -10
  77. package/dist/schemas/v0/plugin-registry.schema.html +13 -9
  78. package/dist/schemas/v0/plugin.schema.html +13 -9
  79. package/dist/schemas/v0/plugins.schema.html +13 -9
  80. package/dist/schemas/v0/site.schema.html +67 -7
  81. package/dist/schemas/v0/theme.schema.html +21 -17
  82. package/dist/schemas.html +10 -6
  83. package/dist/styles.css +39 -4
  84. package/package.json +1 -1
  85. package/plugins-dist/latex-runtime.js +140 -0
  86. package/plugins-dist/latex.js +178 -0
  87. package/plugins-dist/slides-charts-lite-runtime.js +179 -0
  88. package/plugins-dist/slides-charts-lite.js +198 -0
  89. package/plugins-dist/slides-visuals.css +166 -0
  90. package/plugins-dist/slides-visuals.js +124 -33
  91. package/registry/plugins.yaml +30 -5
  92. package/schemas/v0/site.schema.json +56 -0
  93. package/scripts/build.ts +195 -70
  94. package/scripts/bundle.ts +122 -11
  95. package/scripts/dev.ts +345 -178
  96. package/src/__tests__/brief.test.ts +151 -0
  97. package/src/__tests__/build.test.ts +234 -4
  98. package/src/__tests__/bundle.test.ts +134 -0
  99. package/src/__tests__/dev-plugin-errors.test.ts +20 -0
  100. package/src/__tests__/fixtures/fences/slides-visuals/invalid/flow-branching-no-source.md +5 -0
  101. package/src/__tests__/fixtures/fences/slides-visuals/invalid/flow-converging-no-target.md +6 -0
  102. package/src/__tests__/fixtures/fences/slides-visuals/invalid/staircase-empty-steps.md +3 -0
  103. package/src/__tests__/fixtures/fences/slides-visuals/invalid/timeline-horizontal-no-events.md +2 -0
  104. package/src/__tests__/fixtures/fences/slides-visuals/valid/flow-branching-no-split.md +7 -0
  105. package/src/__tests__/fixtures/fences/slides-visuals/valid/flow-branching.md +8 -0
  106. package/src/__tests__/fixtures/fences/slides-visuals/valid/flow-converging-no-merge.md +7 -0
  107. package/src/__tests__/fixtures/fences/slides-visuals/valid/flow-converging.md +8 -0
  108. package/src/__tests__/fixtures/fences/slides-visuals/valid/staircase-down.md +7 -0
  109. package/src/__tests__/fixtures/fences/slides-visuals/valid/staircase.md +8 -0
  110. package/src/__tests__/fixtures/fences/slides-visuals/valid/timeline-horizontal.md +9 -0
  111. package/src/__tests__/fixtures/fences/slides-visuals/valid/timeline-vertical.md +10 -0
  112. package/src/__tests__/init.test.ts +51 -2
  113. package/src/__tests__/latex-runtime.bun.test.ts +35 -0
  114. package/src/__tests__/shared.test.ts +621 -1
  115. package/src/__tests__/slides-charts-lite-runtime.bun.test.ts +45 -0
  116. package/src/__tests__/slides-visuals-runtime-regressions.bun.test.ts +33 -0
  117. package/src/cli.ts +11 -4
  118. package/src/commands/init.ts +1 -1
  119. package/src/shared.ts +761 -18
  120. package/src/site/styles.css +39 -4
  121. package/src/site/template.html +5 -2
  122. package/src/templates/brief.ts +486 -0
  123. package/src/templates/deck.ts +59 -0
  124. package/src/templates/driver.ts +46 -13
  125. package/src/templates/handbook.ts +32 -0
  126. package/src/templates/runbook.ts +32 -0
package/dist/index.html CHANGED
@@ -89,7 +89,7 @@
89
89
  </svg>
90
90
  </button>
91
91
  <a href="./" class="mobile-logo" title="Home" data-initial="K">
92
- <img src="./assets/brand/kitfly-neon-256.png" alt="Kitfly" class="logo-img logo-icon" onerror="this.onerror=null;this.style.display='none';this.parentElement.classList.add('logo-fallback')"/>
92
+ <img src="./assets/brand/kitfly-neon-256.png" alt="Kitfly" class="logo-img logo-icon" onerror="this.onerror=null;this.style.display='none';this.parentElement.classList.add('logo-fallback')">
93
93
  </a>
94
94
  <button class="mobile-theme-toggle" onclick="toggleTheme()" title="Toggle theme" aria-label="Toggle theme">
95
95
  <svg class="icon-sun" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
@@ -106,7 +106,7 @@
106
106
  <div class="sidebar-header">
107
107
  <div class="logo logo-icon">
108
108
  <a href="/" class="logo-icon" data-initial="K">
109
- <img src="./assets/brand/kitfly-neon-256.png" alt="Kitfly" class="logo-img" onerror="this.onerror=null;this.style.display='none';this.parentElement.classList.add('logo-fallback')"/>
109
+ <img src="./assets/brand/kitfly-neon-256.png" alt="Kitfly" class="logo-img" onerror="this.onerror=null;this.style.display='none';this.parentElement.classList.add('logo-fallback')">
110
110
  </a>
111
111
  <span class="logo-text">
112
112
  <a href="/" class="brand">Kitfly</a>
@@ -124,13 +124,13 @@
124
124
  </svg>
125
125
  </button>
126
126
  <div class="sidebar-meta">
127
- <span class="meta-version">v0.2.0</span>
127
+ <span class="meta-version">v0.2.3</span>
128
128
  <span class="meta-branch">HEAD</span>
129
129
  </div>
130
130
  </div>
131
131
  </div>
132
132
  <div class="sidebar-nav">
133
- <ul><li><a href="./index.html" class="active" class="nav-home">Home</a></li><li><span class="nav-section">Guide</span><ul><li><a href="./content/guide/approaches.html">approaches</a></li><li><a href="./content/guide/features.html">features</a></li><li><a href="./content/guide/getting-started.html">getting-started</a></li><li><a href="./content/guide/kitfly-overview.html">kitfly-overview</a></li></ul></li><li><span class="nav-section">Templates</span><ul><li><a href="./content/templates/crucible.html">crucible</a></li><li><a href="./content/templates/handbook.html">handbook</a></li><li><a href="./content/templates/minimal.html">minimal</a></li><li><a href="./content/templates/overview.html">overview</a></li><li><a href="./content/templates/pipeline.html">pipeline</a></li><li><a href="./content/templates/productbook.html">productbook</a></li><li><a href="./content/templates/runbook.html">runbook</a></li><li><a href="./content/templates/servicebook.html">servicebook</a></li></ul></li><li><a href="./content/reference.html" class="nav-section">Reference</a><ul><li><a href="./content/reference/configuration.html">configuration</a></li><li><a href="./content/reference/design-catalog.html">design-catalog</a></li><li><a href="./content/reference/environment-variables.html">environment-variables</a></li><li><a href="./content/reference/glossary.html">glossary</a></li><li><a href="./content/reference/key-concepts.html">key-concepts</a></li><li><a href="./content/reference/plugins.html">plugins</a></li><li><a href="./content/reference/structure.html">structure</a></li></ul></li><li><a href="./content/deployment.html" class="nav-section">Deployment</a><ul><li><a href="./content/deployment/preflight.html">preflight</a></li><li><details><summary class="nav-group">recipes</summary><ul><li><a href="./content/deployment/recipes/aws-s3.html">aws-s3</a></li><li><a href="./content/deployment/recipes/cloudflare-pages.html">cloudflare-pages</a></li><li><a href="./content/deployment/recipes/cloudflare-r2.html">cloudflare-r2</a></li><li><a href="./content/deployment/recipes/fly-io.html">fly-io</a></li><li><a href="./content/deployment/recipes/github-pages.html">github-pages</a></li><li><a href="./content/deployment/recipes/netlify.html">netlify</a></li><li><a href="./content/deployment/recipes/vercel.html">vercel</a></li></ul></details></li><li><a href="./content/deployment/secrets-and-env-vars.html">secrets-and-env-vars</a></li></ul></li><li><span class="nav-section">User Guide</span><ul><li><details><summary class="nav-group"><a href="./docs/userguide/cli.html">cli</a></summary><ul><li><a href="./docs/userguide/cli/build.html">build</a></li><li><a href="./docs/userguide/cli/bundle.html">bundle</a></li><li><a href="./docs/userguide/cli/dev.html">dev</a></li><li><a href="./docs/userguide/cli/init.html">init</a></li><li><a href="./docs/userguide/cli/servers.html">servers</a></li><li><a href="./docs/userguide/cli/stop.html">stop</a></li><li><a href="./docs/userguide/cli/update.html">update</a></li><li><a href="./docs/userguide/cli/version.html">version</a></li></ul></details></li><li><a href="./docs/userguide/sharing.html">sharing</a></li></ul></li><li><span class="nav-section">Decisions</span><ul><li><a href="./docs/decisions/ADR-0001-minimalist-site-code.html">ADR-0001-minimalist-site-code</a></li><li><a href="./docs/decisions/ADR-0002-ai-accessibility.html">ADR-0002-ai-accessibility</a></li><li><a href="./docs/decisions/ADR-0003-single-file-bundle.html">ADR-0003-single-file-bundle</a></li><li><a href="./docs/decisions/ADR-0004-bun-runtime.html">ADR-0004-bun-runtime</a></li><li><a href="./docs/decisions/ADR-0005-plugin-contract-and-distribution.html">ADR-0005-plugin-contract-and-distribution</a></li><li><a href="./docs/decisions/DDR-0001-viewport-locked-layout.html">DDR-0001-viewport-locked-layout</a></li><li><a href="./docs/decisions/DDR-0002-theme-system.html">DDR-0002-theme-system</a></li><li><a href="./docs/decisions/DDR-0003-bounded-logo-slot.html">DDR-0003-bounded-logo-slot</a></li><li><a href="./docs/decisions/DDR-0004-slides-rendering-model.html">DDR-0004-slides-rendering-model</a></li><li><a href="./docs/decisions/DDR-0005-deterministic-layout-boundary.html">DDR-0005-deterministic-layout-boundary</a></li></ul></li><li><a href="./schemas.html" class="nav-section">Schemas</a><ul><li><a href="./schemas/plugin-registry.schema.html">plugin-registry.schema</a></li><li><a href="./schemas/plugin-schemas-notes.html">plugin-schemas-notes</a></li><li><a href="./schemas/plugin.schema.html">plugin.schema</a></li><li><a href="./schemas/plugins.schema.html">plugins.schema</a></li><li><details><summary class="nav-group">v0</summary><ul><li><a href="./schemas/v0/common.schema.html">common.schema</a></li><li><a href="./schemas/v0/plugin-registry.schema.html">plugin-registry.schema</a></li><li><a href="./schemas/v0/plugin.schema.html">plugin.schema</a></li><li><a href="./schemas/v0/plugins.schema.html">plugins.schema</a></li><li><a href="./schemas/v0/site.schema.html">site.schema</a></li><li><a href="./schemas/v0/theme.schema.html">theme.schema</a></li></ul></details></li></ul></li></ul>
133
+ <ul><li><a href="./index.html" class="active" class="nav-home">Home</a></li><li><span class="nav-section">Guide</span><ul><li><a href="./content/guide/approaches.html">approaches</a></li><li><a href="./content/guide/branding.html">branding</a></li><li><a href="./content/guide/data-driven-content.html">data-driven-content</a></li><li><a href="./content/guide/features.html">features</a></li><li><a href="./content/guide/getting-started.html">getting-started</a></li><li><a href="./content/guide/kitfly-overview.html">kitfly-overview</a></li></ul></li><li><span class="nav-section">Templates</span><ul><li><a href="./content/templates/crucible.html">crucible</a></li><li><a href="./content/templates/handbook.html">handbook</a></li><li><a href="./content/templates/minimal.html">minimal</a></li><li><a href="./content/templates/overview.html">overview</a></li><li><a href="./content/templates/pipeline.html">pipeline</a></li><li><a href="./content/templates/productbook.html">productbook</a></li><li><a href="./content/templates/runbook.html">runbook</a></li><li><a href="./content/templates/servicebook.html">servicebook</a></li></ul></li><li><a href="./content/reference.html" class="nav-section">Reference</a><ul><li><a href="./content/reference/configuration.html">configuration</a></li><li><a href="./content/reference/design-catalog.html">design-catalog</a></li><li><a href="./content/reference/environment-variables.html">environment-variables</a></li><li><a href="./content/reference/glossary.html">glossary</a></li><li><a href="./content/reference/key-concepts.html">key-concepts</a></li><li><a href="./content/reference/plugins.html">plugins</a></li><li><a href="./content/reference/slides-authoring-guidelines.html">slides-authoring-guidelines</a></li><li><a href="./content/reference/structure.html">structure</a></li></ul></li><li><a href="./content/deployment.html" class="nav-section">Deployment</a><ul><li><a href="./content/deployment/preflight.html">preflight</a></li><li><details><summary class="nav-group">recipes</summary><ul><li><a href="./content/deployment/recipes/aws-s3.html">aws-s3</a></li><li><a href="./content/deployment/recipes/cloudflare-pages.html">cloudflare-pages</a></li><li><a href="./content/deployment/recipes/cloudflare-r2.html">cloudflare-r2</a></li><li><a href="./content/deployment/recipes/fly-io.html">fly-io</a></li><li><a href="./content/deployment/recipes/github-pages.html">github-pages</a></li><li><a href="./content/deployment/recipes/netlify.html">netlify</a></li><li><a href="./content/deployment/recipes/vercel.html">vercel</a></li></ul></details></li><li><a href="./content/deployment/secrets-and-env-vars.html">secrets-and-env-vars</a></li></ul></li><li><span class="nav-section">User Guide</span><ul><li><details><summary class="nav-group"><a href="./docs/userguide/cli.html">cli</a></summary><ul><li><a href="./docs/userguide/cli/build.html">build</a></li><li><a href="./docs/userguide/cli/bundle.html">bundle</a></li><li><a href="./docs/userguide/cli/dev.html">dev</a></li><li><a href="./docs/userguide/cli/init.html">init</a></li><li><a href="./docs/userguide/cli/servers.html">servers</a></li><li><a href="./docs/userguide/cli/stop.html">stop</a></li><li><a href="./docs/userguide/cli/update.html">update</a></li><li><a href="./docs/userguide/cli/version.html">version</a></li></ul></details></li><li><a href="./docs/userguide/sharing.html">sharing</a></li></ul></li><li><span class="nav-section">Decisions</span><ul><li><a href="./docs/decisions/ADR-0001-minimalist-site-code.html">ADR-0001-minimalist-site-code</a></li><li><a href="./docs/decisions/ADR-0002-ai-accessibility.html">ADR-0002-ai-accessibility</a></li><li><a href="./docs/decisions/ADR-0003-single-file-bundle.html">ADR-0003-single-file-bundle</a></li><li><a href="./docs/decisions/ADR-0004-bun-runtime.html">ADR-0004-bun-runtime</a></li><li><a href="./docs/decisions/ADR-0005-plugin-contract-and-distribution.html">ADR-0005-plugin-contract-and-distribution</a></li><li><a href="./docs/decisions/ADR-0006-data-driven-content.html">ADR-0006-data-driven-content</a></li><li><a href="./docs/decisions/DDR-0001-viewport-locked-layout.html">DDR-0001-viewport-locked-layout</a></li><li><a href="./docs/decisions/DDR-0002-theme-system.html">DDR-0002-theme-system</a></li><li><a href="./docs/decisions/DDR-0003-bounded-logo-slot.html">DDR-0003-bounded-logo-slot</a></li><li><a href="./docs/decisions/DDR-0004-slides-rendering-model.html">DDR-0004-slides-rendering-model</a></li><li><a href="./docs/decisions/DDR-0005-deterministic-layout-boundary.html">DDR-0005-deterministic-layout-boundary</a></li></ul></li><li><a href="./schemas.html" class="nav-section">Schemas</a><ul><li><a href="./schemas/plugin-registry.schema.html">plugin-registry.schema</a></li><li><a href="./schemas/plugin-schemas-notes.html">plugin-schemas-notes</a></li><li><a href="./schemas/plugin.schema.html">plugin.schema</a></li><li><a href="./schemas/plugins.schema.html">plugins.schema</a></li><li><details><summary class="nav-group">v0</summary><ul><li><a href="./schemas/v0/common.schema.html">common.schema</a></li><li><a href="./schemas/v0/plugin-registry.schema.html">plugin-registry.schema</a></li><li><a href="./schemas/v0/plugin.schema.html">plugin.schema</a></li><li><a href="./schemas/v0/plugins.schema.html">plugins.schema</a></li><li><a href="./schemas/v0/site.schema.html">site.schema</a></li><li><a href="./schemas/v0/theme.schema.html">theme.schema</a></li></ul></details></li></ul></li></ul>
134
134
  </div>
135
135
  </nav>
136
136
  <main class="content">
@@ -211,9 +211,10 @@ kitfly bundle ./path/to/markdown --out ./dist --name docs.html
211
211
  <footer class="site-footer">
212
212
  <div class="footer-content">
213
213
  <div class="footer-left">
214
- <span class="footer-version">v0.2.0</span>
214
+
215
+ <span class="footer-version">v0.2.3</span>
215
216
  <span class="footer-separator">·</span>
216
- <span class="footer-commit" title="Commit: 33ccd68">Published 2026-02-15</span>
217
+ <span class="footer-commit" title="Commit: 664328f">Published 2026-02-18</span>
217
218
  </div>
218
219
  <div class="footer-center">
219
220
  <span class="footer-copyright"><a href="https://3leaps.net" class="footer-link">© 2026 3 Leaps, LLC</a></span>
@@ -292,6 +293,9 @@ kitfly bundle ./path/to/markdown --out ./dist --name docs.html
292
293
  if (window.reinitMermaid) {
293
294
  window.reinitMermaid();
294
295
  }
296
+ if (window.reinitCharts) {
297
+ window.reinitCharts();
298
+ }
295
299
  }
296
300
 
297
301
  // Slides mode hash routing
package/dist/llms.txt CHANGED
@@ -3,8 +3,8 @@
3
3
 
4
4
  # Site metadata
5
5
  name: Kitfly Docs
6
- version: 0.2.0
7
- generated: 2026-02-15T17:49:07.320Z
6
+ version: 0.2.3
7
+ generated: 2026-02-18T11:50:47.815Z
8
8
 
9
9
  # Content discovery
10
10
  content-index: /content-index.json
@@ -15,4 +15,4 @@ preferred-format: markdown
15
15
 
16
16
  # Site structure
17
17
  sections: Guide, Templates, Reference, Deployment, User Guide, Decisions, Schemas
18
- total-pages: 61
18
+ total-pages: 65
@@ -1,7 +1,7 @@
1
1
  {
2
- "version": "0.2.0",
3
- "buildDate": "2026-02-15T17:49:06.928Z",
4
- "gitCommit": "33ccd68",
5
- "gitCommitDate": "2026-02-14T19:00:22-05:00",
2
+ "version": "0.2.3",
3
+ "buildDate": "2026-02-18T11:50:47.321Z",
4
+ "gitCommit": "664328f",
5
+ "gitCommitDate": "2026-02-17T21:02:55-05:00",
6
6
  "gitBranch": "HEAD"
7
7
  }
@@ -89,7 +89,7 @@
89
89
  </svg>
90
90
  </button>
91
91
  <a href="../" class="mobile-logo" title="Home" data-initial="K">
92
- <img src="../assets/brand/kitfly-neon-256.png" alt="Kitfly" class="logo-img logo-icon" onerror="this.onerror=null;this.style.display='none';this.parentElement.classList.add('logo-fallback')"/>
92
+ <img src="../assets/brand/kitfly-neon-256.png" alt="Kitfly" class="logo-img logo-icon" onerror="this.onerror=null;this.style.display='none';this.parentElement.classList.add('logo-fallback')">
93
93
  </a>
94
94
  <button class="mobile-theme-toggle" onclick="toggleTheme()" title="Toggle theme" aria-label="Toggle theme">
95
95
  <svg class="icon-sun" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
@@ -106,7 +106,7 @@
106
106
  <div class="sidebar-header">
107
107
  <div class="logo logo-icon">
108
108
  <a href="/" class="logo-icon" data-initial="K">
109
- <img src="../assets/brand/kitfly-neon-256.png" alt="Kitfly" class="logo-img" onerror="this.onerror=null;this.style.display='none';this.parentElement.classList.add('logo-fallback')"/>
109
+ <img src="../assets/brand/kitfly-neon-256.png" alt="Kitfly" class="logo-img" onerror="this.onerror=null;this.style.display='none';this.parentElement.classList.add('logo-fallback')">
110
110
  </a>
111
111
  <span class="logo-text">
112
112
  <a href="/" class="brand">Kitfly</a>
@@ -124,13 +124,13 @@
124
124
  </svg>
125
125
  </button>
126
126
  <div class="sidebar-meta">
127
- <span class="meta-version">v0.2.0</span>
127
+ <span class="meta-version">v0.2.3</span>
128
128
  <span class="meta-branch">HEAD</span>
129
129
  </div>
130
130
  </div>
131
131
  </div>
132
132
  <div class="sidebar-nav">
133
- <ul><li><a href="../index.html" class="nav-home">Home</a></li><li><span class="nav-section">Guide</span><ul><li><a href="../content/guide/approaches.html">approaches</a></li><li><a href="../content/guide/features.html">features</a></li><li><a href="../content/guide/getting-started.html">getting-started</a></li><li><a href="../content/guide/kitfly-overview.html">kitfly-overview</a></li></ul></li><li><span class="nav-section">Templates</span><ul><li><a href="../content/templates/crucible.html">crucible</a></li><li><a href="../content/templates/handbook.html">handbook</a></li><li><a href="../content/templates/minimal.html">minimal</a></li><li><a href="../content/templates/overview.html">overview</a></li><li><a href="../content/templates/pipeline.html">pipeline</a></li><li><a href="../content/templates/productbook.html">productbook</a></li><li><a href="../content/templates/runbook.html">runbook</a></li><li><a href="../content/templates/servicebook.html">servicebook</a></li></ul></li><li><a href="../content/reference.html" class="nav-section">Reference</a><ul><li><a href="../content/reference/configuration.html">configuration</a></li><li><a href="../content/reference/design-catalog.html">design-catalog</a></li><li><a href="../content/reference/environment-variables.html">environment-variables</a></li><li><a href="../content/reference/glossary.html">glossary</a></li><li><a href="../content/reference/key-concepts.html">key-concepts</a></li><li><a href="../content/reference/plugins.html">plugins</a></li><li><a href="../content/reference/structure.html">structure</a></li></ul></li><li><a href="../content/deployment.html" class="nav-section">Deployment</a><ul><li><a href="../content/deployment/preflight.html">preflight</a></li><li><details><summary class="nav-group">recipes</summary><ul><li><a href="../content/deployment/recipes/aws-s3.html">aws-s3</a></li><li><a href="../content/deployment/recipes/cloudflare-pages.html">cloudflare-pages</a></li><li><a href="../content/deployment/recipes/cloudflare-r2.html">cloudflare-r2</a></li><li><a href="../content/deployment/recipes/fly-io.html">fly-io</a></li><li><a href="../content/deployment/recipes/github-pages.html">github-pages</a></li><li><a href="../content/deployment/recipes/netlify.html">netlify</a></li><li><a href="../content/deployment/recipes/vercel.html">vercel</a></li></ul></details></li><li><a href="../content/deployment/secrets-and-env-vars.html">secrets-and-env-vars</a></li></ul></li><li><span class="nav-section">User Guide</span><ul><li><details><summary class="nav-group"><a href="../docs/userguide/cli.html">cli</a></summary><ul><li><a href="../docs/userguide/cli/build.html">build</a></li><li><a href="../docs/userguide/cli/bundle.html">bundle</a></li><li><a href="../docs/userguide/cli/dev.html">dev</a></li><li><a href="../docs/userguide/cli/init.html">init</a></li><li><a href="../docs/userguide/cli/servers.html">servers</a></li><li><a href="../docs/userguide/cli/stop.html">stop</a></li><li><a href="../docs/userguide/cli/update.html">update</a></li><li><a href="../docs/userguide/cli/version.html">version</a></li></ul></details></li><li><a href="../docs/userguide/sharing.html">sharing</a></li></ul></li><li><span class="nav-section">Decisions</span><ul><li><a href="../docs/decisions/ADR-0001-minimalist-site-code.html">ADR-0001-minimalist-site-code</a></li><li><a href="../docs/decisions/ADR-0002-ai-accessibility.html">ADR-0002-ai-accessibility</a></li><li><a href="../docs/decisions/ADR-0003-single-file-bundle.html">ADR-0003-single-file-bundle</a></li><li><a href="../docs/decisions/ADR-0004-bun-runtime.html">ADR-0004-bun-runtime</a></li><li><a href="../docs/decisions/ADR-0005-plugin-contract-and-distribution.html">ADR-0005-plugin-contract-and-distribution</a></li><li><a href="../docs/decisions/DDR-0001-viewport-locked-layout.html">DDR-0001-viewport-locked-layout</a></li><li><a href="../docs/decisions/DDR-0002-theme-system.html">DDR-0002-theme-system</a></li><li><a href="../docs/decisions/DDR-0003-bounded-logo-slot.html">DDR-0003-bounded-logo-slot</a></li><li><a href="../docs/decisions/DDR-0004-slides-rendering-model.html">DDR-0004-slides-rendering-model</a></li><li><a href="../docs/decisions/DDR-0005-deterministic-layout-boundary.html">DDR-0005-deterministic-layout-boundary</a></li></ul></li><li><a href="../schemas.html" class="nav-section">Schemas</a><ul><li><a href="../schemas/plugin-registry.schema.html" class="active">plugin-registry.schema</a></li><li><a href="../schemas/plugin-schemas-notes.html">plugin-schemas-notes</a></li><li><a href="../schemas/plugin.schema.html">plugin.schema</a></li><li><a href="../schemas/plugins.schema.html">plugins.schema</a></li><li><details><summary class="nav-group">v0</summary><ul><li><a href="../schemas/v0/common.schema.html">common.schema</a></li><li><a href="../schemas/v0/plugin-registry.schema.html">plugin-registry.schema</a></li><li><a href="../schemas/v0/plugin.schema.html">plugin.schema</a></li><li><a href="../schemas/v0/plugins.schema.html">plugins.schema</a></li><li><a href="../schemas/v0/site.schema.html">site.schema</a></li><li><a href="../schemas/v0/theme.schema.html">theme.schema</a></li></ul></details></li></ul></li></ul>
133
+ <ul><li><a href="../index.html" class="nav-home">Home</a></li><li><span class="nav-section">Guide</span><ul><li><a href="../content/guide/approaches.html">approaches</a></li><li><a href="../content/guide/branding.html">branding</a></li><li><a href="../content/guide/data-driven-content.html">data-driven-content</a></li><li><a href="../content/guide/features.html">features</a></li><li><a href="../content/guide/getting-started.html">getting-started</a></li><li><a href="../content/guide/kitfly-overview.html">kitfly-overview</a></li></ul></li><li><span class="nav-section">Templates</span><ul><li><a href="../content/templates/crucible.html">crucible</a></li><li><a href="../content/templates/handbook.html">handbook</a></li><li><a href="../content/templates/minimal.html">minimal</a></li><li><a href="../content/templates/overview.html">overview</a></li><li><a href="../content/templates/pipeline.html">pipeline</a></li><li><a href="../content/templates/productbook.html">productbook</a></li><li><a href="../content/templates/runbook.html">runbook</a></li><li><a href="../content/templates/servicebook.html">servicebook</a></li></ul></li><li><a href="../content/reference.html" class="nav-section">Reference</a><ul><li><a href="../content/reference/configuration.html">configuration</a></li><li><a href="../content/reference/design-catalog.html">design-catalog</a></li><li><a href="../content/reference/environment-variables.html">environment-variables</a></li><li><a href="../content/reference/glossary.html">glossary</a></li><li><a href="../content/reference/key-concepts.html">key-concepts</a></li><li><a href="../content/reference/plugins.html">plugins</a></li><li><a href="../content/reference/slides-authoring-guidelines.html">slides-authoring-guidelines</a></li><li><a href="../content/reference/structure.html">structure</a></li></ul></li><li><a href="../content/deployment.html" class="nav-section">Deployment</a><ul><li><a href="../content/deployment/preflight.html">preflight</a></li><li><details><summary class="nav-group">recipes</summary><ul><li><a href="../content/deployment/recipes/aws-s3.html">aws-s3</a></li><li><a href="../content/deployment/recipes/cloudflare-pages.html">cloudflare-pages</a></li><li><a href="../content/deployment/recipes/cloudflare-r2.html">cloudflare-r2</a></li><li><a href="../content/deployment/recipes/fly-io.html">fly-io</a></li><li><a href="../content/deployment/recipes/github-pages.html">github-pages</a></li><li><a href="../content/deployment/recipes/netlify.html">netlify</a></li><li><a href="../content/deployment/recipes/vercel.html">vercel</a></li></ul></details></li><li><a href="../content/deployment/secrets-and-env-vars.html">secrets-and-env-vars</a></li></ul></li><li><span class="nav-section">User Guide</span><ul><li><details><summary class="nav-group"><a href="../docs/userguide/cli.html">cli</a></summary><ul><li><a href="../docs/userguide/cli/build.html">build</a></li><li><a href="../docs/userguide/cli/bundle.html">bundle</a></li><li><a href="../docs/userguide/cli/dev.html">dev</a></li><li><a href="../docs/userguide/cli/init.html">init</a></li><li><a href="../docs/userguide/cli/servers.html">servers</a></li><li><a href="../docs/userguide/cli/stop.html">stop</a></li><li><a href="../docs/userguide/cli/update.html">update</a></li><li><a href="../docs/userguide/cli/version.html">version</a></li></ul></details></li><li><a href="../docs/userguide/sharing.html">sharing</a></li></ul></li><li><span class="nav-section">Decisions</span><ul><li><a href="../docs/decisions/ADR-0001-minimalist-site-code.html">ADR-0001-minimalist-site-code</a></li><li><a href="../docs/decisions/ADR-0002-ai-accessibility.html">ADR-0002-ai-accessibility</a></li><li><a href="../docs/decisions/ADR-0003-single-file-bundle.html">ADR-0003-single-file-bundle</a></li><li><a href="../docs/decisions/ADR-0004-bun-runtime.html">ADR-0004-bun-runtime</a></li><li><a href="../docs/decisions/ADR-0005-plugin-contract-and-distribution.html">ADR-0005-plugin-contract-and-distribution</a></li><li><a href="../docs/decisions/ADR-0006-data-driven-content.html">ADR-0006-data-driven-content</a></li><li><a href="../docs/decisions/DDR-0001-viewport-locked-layout.html">DDR-0001-viewport-locked-layout</a></li><li><a href="../docs/decisions/DDR-0002-theme-system.html">DDR-0002-theme-system</a></li><li><a href="../docs/decisions/DDR-0003-bounded-logo-slot.html">DDR-0003-bounded-logo-slot</a></li><li><a href="../docs/decisions/DDR-0004-slides-rendering-model.html">DDR-0004-slides-rendering-model</a></li><li><a href="../docs/decisions/DDR-0005-deterministic-layout-boundary.html">DDR-0005-deterministic-layout-boundary</a></li></ul></li><li><a href="../schemas.html" class="nav-section">Schemas</a><ul><li><a href="../schemas/plugin-registry.schema.html" class="active">plugin-registry.schema</a></li><li><a href="../schemas/plugin-schemas-notes.html">plugin-schemas-notes</a></li><li><a href="../schemas/plugin.schema.html">plugin.schema</a></li><li><a href="../schemas/plugins.schema.html">plugins.schema</a></li><li><details><summary class="nav-group">v0</summary><ul><li><a href="../schemas/v0/common.schema.html">common.schema</a></li><li><a href="../schemas/v0/plugin-registry.schema.html">plugin-registry.schema</a></li><li><a href="../schemas/v0/plugin.schema.html">plugin.schema</a></li><li><a href="../schemas/v0/plugins.schema.html">plugins.schema</a></li><li><a href="../schemas/v0/site.schema.html">site.schema</a></li><li><a href="../schemas/v0/theme.schema.html">theme.schema</a></li></ul></details></li></ul></li></ul>
134
134
  </div>
135
135
  </nav>
136
136
  <main class="content">
@@ -151,9 +151,10 @@
151
151
  <footer class="site-footer">
152
152
  <div class="footer-content">
153
153
  <div class="footer-left">
154
- <span class="footer-version">v0.2.0</span>
154
+
155
+ <span class="footer-version">v0.2.3</span>
155
156
  <span class="footer-separator">·</span>
156
- <span class="footer-commit" title="Commit: 33ccd68">Published 2026-02-15</span>
157
+ <span class="footer-commit" title="Commit: 664328f">Published 2026-02-18</span>
157
158
  </div>
158
159
  <div class="footer-center">
159
160
  <span class="footer-copyright"><a href="https://3leaps.net" class="footer-link">© 2026 3 Leaps, LLC</a></span>
@@ -232,6 +233,9 @@
232
233
  if (window.reinitMermaid) {
233
234
  window.reinitMermaid();
234
235
  }
236
+ if (window.reinitCharts) {
237
+ window.reinitCharts();
238
+ }
235
239
  }
236
240
 
237
241
  // Slides mode hash routing
@@ -89,7 +89,7 @@
89
89
  </svg>
90
90
  </button>
91
91
  <a href="../" class="mobile-logo" title="Home" data-initial="K">
92
- <img src="../assets/brand/kitfly-neon-256.png" alt="Kitfly" class="logo-img logo-icon" onerror="this.onerror=null;this.style.display='none';this.parentElement.classList.add('logo-fallback')"/>
92
+ <img src="../assets/brand/kitfly-neon-256.png" alt="Kitfly" class="logo-img logo-icon" onerror="this.onerror=null;this.style.display='none';this.parentElement.classList.add('logo-fallback')">
93
93
  </a>
94
94
  <button class="mobile-theme-toggle" onclick="toggleTheme()" title="Toggle theme" aria-label="Toggle theme">
95
95
  <svg class="icon-sun" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
@@ -106,7 +106,7 @@
106
106
  <div class="sidebar-header">
107
107
  <div class="logo logo-icon">
108
108
  <a href="/" class="logo-icon" data-initial="K">
109
- <img src="../assets/brand/kitfly-neon-256.png" alt="Kitfly" class="logo-img" onerror="this.onerror=null;this.style.display='none';this.parentElement.classList.add('logo-fallback')"/>
109
+ <img src="../assets/brand/kitfly-neon-256.png" alt="Kitfly" class="logo-img" onerror="this.onerror=null;this.style.display='none';this.parentElement.classList.add('logo-fallback')">
110
110
  </a>
111
111
  <span class="logo-text">
112
112
  <a href="/" class="brand">Kitfly</a>
@@ -124,13 +124,13 @@
124
124
  </svg>
125
125
  </button>
126
126
  <div class="sidebar-meta">
127
- <span class="meta-version">v0.2.0</span>
127
+ <span class="meta-version">v0.2.3</span>
128
128
  <span class="meta-branch">HEAD</span>
129
129
  </div>
130
130
  </div>
131
131
  </div>
132
132
  <div class="sidebar-nav">
133
- <ul><li><a href="../index.html" class="nav-home">Home</a></li><li><span class="nav-section">Guide</span><ul><li><a href="../content/guide/approaches.html">approaches</a></li><li><a href="../content/guide/features.html">features</a></li><li><a href="../content/guide/getting-started.html">getting-started</a></li><li><a href="../content/guide/kitfly-overview.html">kitfly-overview</a></li></ul></li><li><span class="nav-section">Templates</span><ul><li><a href="../content/templates/crucible.html">crucible</a></li><li><a href="../content/templates/handbook.html">handbook</a></li><li><a href="../content/templates/minimal.html">minimal</a></li><li><a href="../content/templates/overview.html">overview</a></li><li><a href="../content/templates/pipeline.html">pipeline</a></li><li><a href="../content/templates/productbook.html">productbook</a></li><li><a href="../content/templates/runbook.html">runbook</a></li><li><a href="../content/templates/servicebook.html">servicebook</a></li></ul></li><li><a href="../content/reference.html" class="nav-section">Reference</a><ul><li><a href="../content/reference/configuration.html">configuration</a></li><li><a href="../content/reference/design-catalog.html">design-catalog</a></li><li><a href="../content/reference/environment-variables.html">environment-variables</a></li><li><a href="../content/reference/glossary.html">glossary</a></li><li><a href="../content/reference/key-concepts.html">key-concepts</a></li><li><a href="../content/reference/plugins.html">plugins</a></li><li><a href="../content/reference/structure.html">structure</a></li></ul></li><li><a href="../content/deployment.html" class="nav-section">Deployment</a><ul><li><a href="../content/deployment/preflight.html">preflight</a></li><li><details><summary class="nav-group">recipes</summary><ul><li><a href="../content/deployment/recipes/aws-s3.html">aws-s3</a></li><li><a href="../content/deployment/recipes/cloudflare-pages.html">cloudflare-pages</a></li><li><a href="../content/deployment/recipes/cloudflare-r2.html">cloudflare-r2</a></li><li><a href="../content/deployment/recipes/fly-io.html">fly-io</a></li><li><a href="../content/deployment/recipes/github-pages.html">github-pages</a></li><li><a href="../content/deployment/recipes/netlify.html">netlify</a></li><li><a href="../content/deployment/recipes/vercel.html">vercel</a></li></ul></details></li><li><a href="../content/deployment/secrets-and-env-vars.html">secrets-and-env-vars</a></li></ul></li><li><span class="nav-section">User Guide</span><ul><li><details><summary class="nav-group"><a href="../docs/userguide/cli.html">cli</a></summary><ul><li><a href="../docs/userguide/cli/build.html">build</a></li><li><a href="../docs/userguide/cli/bundle.html">bundle</a></li><li><a href="../docs/userguide/cli/dev.html">dev</a></li><li><a href="../docs/userguide/cli/init.html">init</a></li><li><a href="../docs/userguide/cli/servers.html">servers</a></li><li><a href="../docs/userguide/cli/stop.html">stop</a></li><li><a href="../docs/userguide/cli/update.html">update</a></li><li><a href="../docs/userguide/cli/version.html">version</a></li></ul></details></li><li><a href="../docs/userguide/sharing.html">sharing</a></li></ul></li><li><span class="nav-section">Decisions</span><ul><li><a href="../docs/decisions/ADR-0001-minimalist-site-code.html">ADR-0001-minimalist-site-code</a></li><li><a href="../docs/decisions/ADR-0002-ai-accessibility.html">ADR-0002-ai-accessibility</a></li><li><a href="../docs/decisions/ADR-0003-single-file-bundle.html">ADR-0003-single-file-bundle</a></li><li><a href="../docs/decisions/ADR-0004-bun-runtime.html">ADR-0004-bun-runtime</a></li><li><a href="../docs/decisions/ADR-0005-plugin-contract-and-distribution.html">ADR-0005-plugin-contract-and-distribution</a></li><li><a href="../docs/decisions/DDR-0001-viewport-locked-layout.html">DDR-0001-viewport-locked-layout</a></li><li><a href="../docs/decisions/DDR-0002-theme-system.html">DDR-0002-theme-system</a></li><li><a href="../docs/decisions/DDR-0003-bounded-logo-slot.html">DDR-0003-bounded-logo-slot</a></li><li><a href="../docs/decisions/DDR-0004-slides-rendering-model.html">DDR-0004-slides-rendering-model</a></li><li><a href="../docs/decisions/DDR-0005-deterministic-layout-boundary.html">DDR-0005-deterministic-layout-boundary</a></li></ul></li><li><a href="../schemas.html" class="nav-section">Schemas</a><ul><li><a href="../schemas/plugin-registry.schema.html">plugin-registry.schema</a></li><li><a href="../schemas/plugin-schemas-notes.html" class="active">plugin-schemas-notes</a></li><li><a href="../schemas/plugin.schema.html">plugin.schema</a></li><li><a href="../schemas/plugins.schema.html">plugins.schema</a></li><li><details><summary class="nav-group">v0</summary><ul><li><a href="../schemas/v0/common.schema.html">common.schema</a></li><li><a href="../schemas/v0/plugin-registry.schema.html">plugin-registry.schema</a></li><li><a href="../schemas/v0/plugin.schema.html">plugin.schema</a></li><li><a href="../schemas/v0/plugins.schema.html">plugins.schema</a></li><li><a href="../schemas/v0/site.schema.html">site.schema</a></li><li><a href="../schemas/v0/theme.schema.html">theme.schema</a></li></ul></details></li></ul></li></ul>
133
+ <ul><li><a href="../index.html" class="nav-home">Home</a></li><li><span class="nav-section">Guide</span><ul><li><a href="../content/guide/approaches.html">approaches</a></li><li><a href="../content/guide/branding.html">branding</a></li><li><a href="../content/guide/data-driven-content.html">data-driven-content</a></li><li><a href="../content/guide/features.html">features</a></li><li><a href="../content/guide/getting-started.html">getting-started</a></li><li><a href="../content/guide/kitfly-overview.html">kitfly-overview</a></li></ul></li><li><span class="nav-section">Templates</span><ul><li><a href="../content/templates/crucible.html">crucible</a></li><li><a href="../content/templates/handbook.html">handbook</a></li><li><a href="../content/templates/minimal.html">minimal</a></li><li><a href="../content/templates/overview.html">overview</a></li><li><a href="../content/templates/pipeline.html">pipeline</a></li><li><a href="../content/templates/productbook.html">productbook</a></li><li><a href="../content/templates/runbook.html">runbook</a></li><li><a href="../content/templates/servicebook.html">servicebook</a></li></ul></li><li><a href="../content/reference.html" class="nav-section">Reference</a><ul><li><a href="../content/reference/configuration.html">configuration</a></li><li><a href="../content/reference/design-catalog.html">design-catalog</a></li><li><a href="../content/reference/environment-variables.html">environment-variables</a></li><li><a href="../content/reference/glossary.html">glossary</a></li><li><a href="../content/reference/key-concepts.html">key-concepts</a></li><li><a href="../content/reference/plugins.html">plugins</a></li><li><a href="../content/reference/slides-authoring-guidelines.html">slides-authoring-guidelines</a></li><li><a href="../content/reference/structure.html">structure</a></li></ul></li><li><a href="../content/deployment.html" class="nav-section">Deployment</a><ul><li><a href="../content/deployment/preflight.html">preflight</a></li><li><details><summary class="nav-group">recipes</summary><ul><li><a href="../content/deployment/recipes/aws-s3.html">aws-s3</a></li><li><a href="../content/deployment/recipes/cloudflare-pages.html">cloudflare-pages</a></li><li><a href="../content/deployment/recipes/cloudflare-r2.html">cloudflare-r2</a></li><li><a href="../content/deployment/recipes/fly-io.html">fly-io</a></li><li><a href="../content/deployment/recipes/github-pages.html">github-pages</a></li><li><a href="../content/deployment/recipes/netlify.html">netlify</a></li><li><a href="../content/deployment/recipes/vercel.html">vercel</a></li></ul></details></li><li><a href="../content/deployment/secrets-and-env-vars.html">secrets-and-env-vars</a></li></ul></li><li><span class="nav-section">User Guide</span><ul><li><details><summary class="nav-group"><a href="../docs/userguide/cli.html">cli</a></summary><ul><li><a href="../docs/userguide/cli/build.html">build</a></li><li><a href="../docs/userguide/cli/bundle.html">bundle</a></li><li><a href="../docs/userguide/cli/dev.html">dev</a></li><li><a href="../docs/userguide/cli/init.html">init</a></li><li><a href="../docs/userguide/cli/servers.html">servers</a></li><li><a href="../docs/userguide/cli/stop.html">stop</a></li><li><a href="../docs/userguide/cli/update.html">update</a></li><li><a href="../docs/userguide/cli/version.html">version</a></li></ul></details></li><li><a href="../docs/userguide/sharing.html">sharing</a></li></ul></li><li><span class="nav-section">Decisions</span><ul><li><a href="../docs/decisions/ADR-0001-minimalist-site-code.html">ADR-0001-minimalist-site-code</a></li><li><a href="../docs/decisions/ADR-0002-ai-accessibility.html">ADR-0002-ai-accessibility</a></li><li><a href="../docs/decisions/ADR-0003-single-file-bundle.html">ADR-0003-single-file-bundle</a></li><li><a href="../docs/decisions/ADR-0004-bun-runtime.html">ADR-0004-bun-runtime</a></li><li><a href="../docs/decisions/ADR-0005-plugin-contract-and-distribution.html">ADR-0005-plugin-contract-and-distribution</a></li><li><a href="../docs/decisions/ADR-0006-data-driven-content.html">ADR-0006-data-driven-content</a></li><li><a href="../docs/decisions/DDR-0001-viewport-locked-layout.html">DDR-0001-viewport-locked-layout</a></li><li><a href="../docs/decisions/DDR-0002-theme-system.html">DDR-0002-theme-system</a></li><li><a href="../docs/decisions/DDR-0003-bounded-logo-slot.html">DDR-0003-bounded-logo-slot</a></li><li><a href="../docs/decisions/DDR-0004-slides-rendering-model.html">DDR-0004-slides-rendering-model</a></li><li><a href="../docs/decisions/DDR-0005-deterministic-layout-boundary.html">DDR-0005-deterministic-layout-boundary</a></li></ul></li><li><a href="../schemas.html" class="nav-section">Schemas</a><ul><li><a href="../schemas/plugin-registry.schema.html">plugin-registry.schema</a></li><li><a href="../schemas/plugin-schemas-notes.html" class="active">plugin-schemas-notes</a></li><li><a href="../schemas/plugin.schema.html">plugin.schema</a></li><li><a href="../schemas/plugins.schema.html">plugins.schema</a></li><li><details><summary class="nav-group">v0</summary><ul><li><a href="../schemas/v0/common.schema.html">common.schema</a></li><li><a href="../schemas/v0/plugin-registry.schema.html">plugin-registry.schema</a></li><li><a href="../schemas/v0/plugin.schema.html">plugin.schema</a></li><li><a href="../schemas/v0/plugins.schema.html">plugins.schema</a></li><li><a href="../schemas/v0/site.schema.html">site.schema</a></li><li><a href="../schemas/v0/theme.schema.html">theme.schema</a></li></ul></details></li></ul></li></ul>
134
134
  </div>
135
135
  </nav>
136
136
  <main class="content">
@@ -188,9 +188,10 @@
188
188
  <footer class="site-footer">
189
189
  <div class="footer-content">
190
190
  <div class="footer-left">
191
- <span class="footer-version">v0.2.0</span>
191
+
192
+ <span class="footer-version">v0.2.3</span>
192
193
  <span class="footer-separator">·</span>
193
- <span class="footer-commit" title="Commit: 33ccd68">Published 2026-02-15</span>
194
+ <span class="footer-commit" title="Commit: 664328f">Published 2026-02-18</span>
194
195
  </div>
195
196
  <div class="footer-center">
196
197
  <span class="footer-copyright"><a href="https://3leaps.net" class="footer-link">© 2026 3 Leaps, LLC</a></span>
@@ -269,6 +270,9 @@
269
270
  if (window.reinitMermaid) {
270
271
  window.reinitMermaid();
271
272
  }
273
+ if (window.reinitCharts) {
274
+ window.reinitCharts();
275
+ }
272
276
  }
273
277
 
274
278
  // Slides mode hash routing
@@ -89,7 +89,7 @@
89
89
  </svg>
90
90
  </button>
91
91
  <a href="../" class="mobile-logo" title="Home" data-initial="K">
92
- <img src="../assets/brand/kitfly-neon-256.png" alt="Kitfly" class="logo-img logo-icon" onerror="this.onerror=null;this.style.display='none';this.parentElement.classList.add('logo-fallback')"/>
92
+ <img src="../assets/brand/kitfly-neon-256.png" alt="Kitfly" class="logo-img logo-icon" onerror="this.onerror=null;this.style.display='none';this.parentElement.classList.add('logo-fallback')">
93
93
  </a>
94
94
  <button class="mobile-theme-toggle" onclick="toggleTheme()" title="Toggle theme" aria-label="Toggle theme">
95
95
  <svg class="icon-sun" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
@@ -106,7 +106,7 @@
106
106
  <div class="sidebar-header">
107
107
  <div class="logo logo-icon">
108
108
  <a href="/" class="logo-icon" data-initial="K">
109
- <img src="../assets/brand/kitfly-neon-256.png" alt="Kitfly" class="logo-img" onerror="this.onerror=null;this.style.display='none';this.parentElement.classList.add('logo-fallback')"/>
109
+ <img src="../assets/brand/kitfly-neon-256.png" alt="Kitfly" class="logo-img" onerror="this.onerror=null;this.style.display='none';this.parentElement.classList.add('logo-fallback')">
110
110
  </a>
111
111
  <span class="logo-text">
112
112
  <a href="/" class="brand">Kitfly</a>
@@ -124,13 +124,13 @@
124
124
  </svg>
125
125
  </button>
126
126
  <div class="sidebar-meta">
127
- <span class="meta-version">v0.2.0</span>
127
+ <span class="meta-version">v0.2.3</span>
128
128
  <span class="meta-branch">HEAD</span>
129
129
  </div>
130
130
  </div>
131
131
  </div>
132
132
  <div class="sidebar-nav">
133
- <ul><li><a href="../index.html" class="nav-home">Home</a></li><li><span class="nav-section">Guide</span><ul><li><a href="../content/guide/approaches.html">approaches</a></li><li><a href="../content/guide/features.html">features</a></li><li><a href="../content/guide/getting-started.html">getting-started</a></li><li><a href="../content/guide/kitfly-overview.html">kitfly-overview</a></li></ul></li><li><span class="nav-section">Templates</span><ul><li><a href="../content/templates/crucible.html">crucible</a></li><li><a href="../content/templates/handbook.html">handbook</a></li><li><a href="../content/templates/minimal.html">minimal</a></li><li><a href="../content/templates/overview.html">overview</a></li><li><a href="../content/templates/pipeline.html">pipeline</a></li><li><a href="../content/templates/productbook.html">productbook</a></li><li><a href="../content/templates/runbook.html">runbook</a></li><li><a href="../content/templates/servicebook.html">servicebook</a></li></ul></li><li><a href="../content/reference.html" class="nav-section">Reference</a><ul><li><a href="../content/reference/configuration.html">configuration</a></li><li><a href="../content/reference/design-catalog.html">design-catalog</a></li><li><a href="../content/reference/environment-variables.html">environment-variables</a></li><li><a href="../content/reference/glossary.html">glossary</a></li><li><a href="../content/reference/key-concepts.html">key-concepts</a></li><li><a href="../content/reference/plugins.html">plugins</a></li><li><a href="../content/reference/structure.html">structure</a></li></ul></li><li><a href="../content/deployment.html" class="nav-section">Deployment</a><ul><li><a href="../content/deployment/preflight.html">preflight</a></li><li><details><summary class="nav-group">recipes</summary><ul><li><a href="../content/deployment/recipes/aws-s3.html">aws-s3</a></li><li><a href="../content/deployment/recipes/cloudflare-pages.html">cloudflare-pages</a></li><li><a href="../content/deployment/recipes/cloudflare-r2.html">cloudflare-r2</a></li><li><a href="../content/deployment/recipes/fly-io.html">fly-io</a></li><li><a href="../content/deployment/recipes/github-pages.html">github-pages</a></li><li><a href="../content/deployment/recipes/netlify.html">netlify</a></li><li><a href="../content/deployment/recipes/vercel.html">vercel</a></li></ul></details></li><li><a href="../content/deployment/secrets-and-env-vars.html">secrets-and-env-vars</a></li></ul></li><li><span class="nav-section">User Guide</span><ul><li><details><summary class="nav-group"><a href="../docs/userguide/cli.html">cli</a></summary><ul><li><a href="../docs/userguide/cli/build.html">build</a></li><li><a href="../docs/userguide/cli/bundle.html">bundle</a></li><li><a href="../docs/userguide/cli/dev.html">dev</a></li><li><a href="../docs/userguide/cli/init.html">init</a></li><li><a href="../docs/userguide/cli/servers.html">servers</a></li><li><a href="../docs/userguide/cli/stop.html">stop</a></li><li><a href="../docs/userguide/cli/update.html">update</a></li><li><a href="../docs/userguide/cli/version.html">version</a></li></ul></details></li><li><a href="../docs/userguide/sharing.html">sharing</a></li></ul></li><li><span class="nav-section">Decisions</span><ul><li><a href="../docs/decisions/ADR-0001-minimalist-site-code.html">ADR-0001-minimalist-site-code</a></li><li><a href="../docs/decisions/ADR-0002-ai-accessibility.html">ADR-0002-ai-accessibility</a></li><li><a href="../docs/decisions/ADR-0003-single-file-bundle.html">ADR-0003-single-file-bundle</a></li><li><a href="../docs/decisions/ADR-0004-bun-runtime.html">ADR-0004-bun-runtime</a></li><li><a href="../docs/decisions/ADR-0005-plugin-contract-and-distribution.html">ADR-0005-plugin-contract-and-distribution</a></li><li><a href="../docs/decisions/DDR-0001-viewport-locked-layout.html">DDR-0001-viewport-locked-layout</a></li><li><a href="../docs/decisions/DDR-0002-theme-system.html">DDR-0002-theme-system</a></li><li><a href="../docs/decisions/DDR-0003-bounded-logo-slot.html">DDR-0003-bounded-logo-slot</a></li><li><a href="../docs/decisions/DDR-0004-slides-rendering-model.html">DDR-0004-slides-rendering-model</a></li><li><a href="../docs/decisions/DDR-0005-deterministic-layout-boundary.html">DDR-0005-deterministic-layout-boundary</a></li></ul></li><li><a href="../schemas.html" class="nav-section">Schemas</a><ul><li><a href="../schemas/plugin-registry.schema.html">plugin-registry.schema</a></li><li><a href="../schemas/plugin-schemas-notes.html">plugin-schemas-notes</a></li><li><a href="../schemas/plugin.schema.html" class="active">plugin.schema</a></li><li><a href="../schemas/plugins.schema.html">plugins.schema</a></li><li><details><summary class="nav-group">v0</summary><ul><li><a href="../schemas/v0/common.schema.html">common.schema</a></li><li><a href="../schemas/v0/plugin-registry.schema.html">plugin-registry.schema</a></li><li><a href="../schemas/v0/plugin.schema.html">plugin.schema</a></li><li><a href="../schemas/v0/plugins.schema.html">plugins.schema</a></li><li><a href="../schemas/v0/site.schema.html">site.schema</a></li><li><a href="../schemas/v0/theme.schema.html">theme.schema</a></li></ul></details></li></ul></li></ul>
133
+ <ul><li><a href="../index.html" class="nav-home">Home</a></li><li><span class="nav-section">Guide</span><ul><li><a href="../content/guide/approaches.html">approaches</a></li><li><a href="../content/guide/branding.html">branding</a></li><li><a href="../content/guide/data-driven-content.html">data-driven-content</a></li><li><a href="../content/guide/features.html">features</a></li><li><a href="../content/guide/getting-started.html">getting-started</a></li><li><a href="../content/guide/kitfly-overview.html">kitfly-overview</a></li></ul></li><li><span class="nav-section">Templates</span><ul><li><a href="../content/templates/crucible.html">crucible</a></li><li><a href="../content/templates/handbook.html">handbook</a></li><li><a href="../content/templates/minimal.html">minimal</a></li><li><a href="../content/templates/overview.html">overview</a></li><li><a href="../content/templates/pipeline.html">pipeline</a></li><li><a href="../content/templates/productbook.html">productbook</a></li><li><a href="../content/templates/runbook.html">runbook</a></li><li><a href="../content/templates/servicebook.html">servicebook</a></li></ul></li><li><a href="../content/reference.html" class="nav-section">Reference</a><ul><li><a href="../content/reference/configuration.html">configuration</a></li><li><a href="../content/reference/design-catalog.html">design-catalog</a></li><li><a href="../content/reference/environment-variables.html">environment-variables</a></li><li><a href="../content/reference/glossary.html">glossary</a></li><li><a href="../content/reference/key-concepts.html">key-concepts</a></li><li><a href="../content/reference/plugins.html">plugins</a></li><li><a href="../content/reference/slides-authoring-guidelines.html">slides-authoring-guidelines</a></li><li><a href="../content/reference/structure.html">structure</a></li></ul></li><li><a href="../content/deployment.html" class="nav-section">Deployment</a><ul><li><a href="../content/deployment/preflight.html">preflight</a></li><li><details><summary class="nav-group">recipes</summary><ul><li><a href="../content/deployment/recipes/aws-s3.html">aws-s3</a></li><li><a href="../content/deployment/recipes/cloudflare-pages.html">cloudflare-pages</a></li><li><a href="../content/deployment/recipes/cloudflare-r2.html">cloudflare-r2</a></li><li><a href="../content/deployment/recipes/fly-io.html">fly-io</a></li><li><a href="../content/deployment/recipes/github-pages.html">github-pages</a></li><li><a href="../content/deployment/recipes/netlify.html">netlify</a></li><li><a href="../content/deployment/recipes/vercel.html">vercel</a></li></ul></details></li><li><a href="../content/deployment/secrets-and-env-vars.html">secrets-and-env-vars</a></li></ul></li><li><span class="nav-section">User Guide</span><ul><li><details><summary class="nav-group"><a href="../docs/userguide/cli.html">cli</a></summary><ul><li><a href="../docs/userguide/cli/build.html">build</a></li><li><a href="../docs/userguide/cli/bundle.html">bundle</a></li><li><a href="../docs/userguide/cli/dev.html">dev</a></li><li><a href="../docs/userguide/cli/init.html">init</a></li><li><a href="../docs/userguide/cli/servers.html">servers</a></li><li><a href="../docs/userguide/cli/stop.html">stop</a></li><li><a href="../docs/userguide/cli/update.html">update</a></li><li><a href="../docs/userguide/cli/version.html">version</a></li></ul></details></li><li><a href="../docs/userguide/sharing.html">sharing</a></li></ul></li><li><span class="nav-section">Decisions</span><ul><li><a href="../docs/decisions/ADR-0001-minimalist-site-code.html">ADR-0001-minimalist-site-code</a></li><li><a href="../docs/decisions/ADR-0002-ai-accessibility.html">ADR-0002-ai-accessibility</a></li><li><a href="../docs/decisions/ADR-0003-single-file-bundle.html">ADR-0003-single-file-bundle</a></li><li><a href="../docs/decisions/ADR-0004-bun-runtime.html">ADR-0004-bun-runtime</a></li><li><a href="../docs/decisions/ADR-0005-plugin-contract-and-distribution.html">ADR-0005-plugin-contract-and-distribution</a></li><li><a href="../docs/decisions/ADR-0006-data-driven-content.html">ADR-0006-data-driven-content</a></li><li><a href="../docs/decisions/DDR-0001-viewport-locked-layout.html">DDR-0001-viewport-locked-layout</a></li><li><a href="../docs/decisions/DDR-0002-theme-system.html">DDR-0002-theme-system</a></li><li><a href="../docs/decisions/DDR-0003-bounded-logo-slot.html">DDR-0003-bounded-logo-slot</a></li><li><a href="../docs/decisions/DDR-0004-slides-rendering-model.html">DDR-0004-slides-rendering-model</a></li><li><a href="../docs/decisions/DDR-0005-deterministic-layout-boundary.html">DDR-0005-deterministic-layout-boundary</a></li></ul></li><li><a href="../schemas.html" class="nav-section">Schemas</a><ul><li><a href="../schemas/plugin-registry.schema.html">plugin-registry.schema</a></li><li><a href="../schemas/plugin-schemas-notes.html">plugin-schemas-notes</a></li><li><a href="../schemas/plugin.schema.html" class="active">plugin.schema</a></li><li><a href="../schemas/plugins.schema.html">plugins.schema</a></li><li><details><summary class="nav-group">v0</summary><ul><li><a href="../schemas/v0/common.schema.html">common.schema</a></li><li><a href="../schemas/v0/plugin-registry.schema.html">plugin-registry.schema</a></li><li><a href="../schemas/v0/plugin.schema.html">plugin.schema</a></li><li><a href="../schemas/v0/plugins.schema.html">plugins.schema</a></li><li><a href="../schemas/v0/site.schema.html">site.schema</a></li><li><a href="../schemas/v0/theme.schema.html">theme.schema</a></li></ul></details></li></ul></li></ul>
134
134
  </div>
135
135
  </nav>
136
136
  <main class="content">
@@ -151,9 +151,10 @@
151
151
  <footer class="site-footer">
152
152
  <div class="footer-content">
153
153
  <div class="footer-left">
154
- <span class="footer-version">v0.2.0</span>
154
+
155
+ <span class="footer-version">v0.2.3</span>
155
156
  <span class="footer-separator">·</span>
156
- <span class="footer-commit" title="Commit: 33ccd68">Published 2026-02-15</span>
157
+ <span class="footer-commit" title="Commit: 664328f">Published 2026-02-18</span>
157
158
  </div>
158
159
  <div class="footer-center">
159
160
  <span class="footer-copyright"><a href="https://3leaps.net" class="footer-link">© 2026 3 Leaps, LLC</a></span>
@@ -232,6 +233,9 @@
232
233
  if (window.reinitMermaid) {
233
234
  window.reinitMermaid();
234
235
  }
236
+ if (window.reinitCharts) {
237
+ window.reinitCharts();
238
+ }
235
239
  }
236
240
 
237
241
  // Slides mode hash routing
@@ -89,7 +89,7 @@
89
89
  </svg>
90
90
  </button>
91
91
  <a href="../" class="mobile-logo" title="Home" data-initial="K">
92
- <img src="../assets/brand/kitfly-neon-256.png" alt="Kitfly" class="logo-img logo-icon" onerror="this.onerror=null;this.style.display='none';this.parentElement.classList.add('logo-fallback')"/>
92
+ <img src="../assets/brand/kitfly-neon-256.png" alt="Kitfly" class="logo-img logo-icon" onerror="this.onerror=null;this.style.display='none';this.parentElement.classList.add('logo-fallback')">
93
93
  </a>
94
94
  <button class="mobile-theme-toggle" onclick="toggleTheme()" title="Toggle theme" aria-label="Toggle theme">
95
95
  <svg class="icon-sun" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
@@ -106,7 +106,7 @@
106
106
  <div class="sidebar-header">
107
107
  <div class="logo logo-icon">
108
108
  <a href="/" class="logo-icon" data-initial="K">
109
- <img src="../assets/brand/kitfly-neon-256.png" alt="Kitfly" class="logo-img" onerror="this.onerror=null;this.style.display='none';this.parentElement.classList.add('logo-fallback')"/>
109
+ <img src="../assets/brand/kitfly-neon-256.png" alt="Kitfly" class="logo-img" onerror="this.onerror=null;this.style.display='none';this.parentElement.classList.add('logo-fallback')">
110
110
  </a>
111
111
  <span class="logo-text">
112
112
  <a href="/" class="brand">Kitfly</a>
@@ -124,13 +124,13 @@
124
124
  </svg>
125
125
  </button>
126
126
  <div class="sidebar-meta">
127
- <span class="meta-version">v0.2.0</span>
127
+ <span class="meta-version">v0.2.3</span>
128
128
  <span class="meta-branch">HEAD</span>
129
129
  </div>
130
130
  </div>
131
131
  </div>
132
132
  <div class="sidebar-nav">
133
- <ul><li><a href="../index.html" class="nav-home">Home</a></li><li><span class="nav-section">Guide</span><ul><li><a href="../content/guide/approaches.html">approaches</a></li><li><a href="../content/guide/features.html">features</a></li><li><a href="../content/guide/getting-started.html">getting-started</a></li><li><a href="../content/guide/kitfly-overview.html">kitfly-overview</a></li></ul></li><li><span class="nav-section">Templates</span><ul><li><a href="../content/templates/crucible.html">crucible</a></li><li><a href="../content/templates/handbook.html">handbook</a></li><li><a href="../content/templates/minimal.html">minimal</a></li><li><a href="../content/templates/overview.html">overview</a></li><li><a href="../content/templates/pipeline.html">pipeline</a></li><li><a href="../content/templates/productbook.html">productbook</a></li><li><a href="../content/templates/runbook.html">runbook</a></li><li><a href="../content/templates/servicebook.html">servicebook</a></li></ul></li><li><a href="../content/reference.html" class="nav-section">Reference</a><ul><li><a href="../content/reference/configuration.html">configuration</a></li><li><a href="../content/reference/design-catalog.html">design-catalog</a></li><li><a href="../content/reference/environment-variables.html">environment-variables</a></li><li><a href="../content/reference/glossary.html">glossary</a></li><li><a href="../content/reference/key-concepts.html">key-concepts</a></li><li><a href="../content/reference/plugins.html">plugins</a></li><li><a href="../content/reference/structure.html">structure</a></li></ul></li><li><a href="../content/deployment.html" class="nav-section">Deployment</a><ul><li><a href="../content/deployment/preflight.html">preflight</a></li><li><details><summary class="nav-group">recipes</summary><ul><li><a href="../content/deployment/recipes/aws-s3.html">aws-s3</a></li><li><a href="../content/deployment/recipes/cloudflare-pages.html">cloudflare-pages</a></li><li><a href="../content/deployment/recipes/cloudflare-r2.html">cloudflare-r2</a></li><li><a href="../content/deployment/recipes/fly-io.html">fly-io</a></li><li><a href="../content/deployment/recipes/github-pages.html">github-pages</a></li><li><a href="../content/deployment/recipes/netlify.html">netlify</a></li><li><a href="../content/deployment/recipes/vercel.html">vercel</a></li></ul></details></li><li><a href="../content/deployment/secrets-and-env-vars.html">secrets-and-env-vars</a></li></ul></li><li><span class="nav-section">User Guide</span><ul><li><details><summary class="nav-group"><a href="../docs/userguide/cli.html">cli</a></summary><ul><li><a href="../docs/userguide/cli/build.html">build</a></li><li><a href="../docs/userguide/cli/bundle.html">bundle</a></li><li><a href="../docs/userguide/cli/dev.html">dev</a></li><li><a href="../docs/userguide/cli/init.html">init</a></li><li><a href="../docs/userguide/cli/servers.html">servers</a></li><li><a href="../docs/userguide/cli/stop.html">stop</a></li><li><a href="../docs/userguide/cli/update.html">update</a></li><li><a href="../docs/userguide/cli/version.html">version</a></li></ul></details></li><li><a href="../docs/userguide/sharing.html">sharing</a></li></ul></li><li><span class="nav-section">Decisions</span><ul><li><a href="../docs/decisions/ADR-0001-minimalist-site-code.html">ADR-0001-minimalist-site-code</a></li><li><a href="../docs/decisions/ADR-0002-ai-accessibility.html">ADR-0002-ai-accessibility</a></li><li><a href="../docs/decisions/ADR-0003-single-file-bundle.html">ADR-0003-single-file-bundle</a></li><li><a href="../docs/decisions/ADR-0004-bun-runtime.html">ADR-0004-bun-runtime</a></li><li><a href="../docs/decisions/ADR-0005-plugin-contract-and-distribution.html">ADR-0005-plugin-contract-and-distribution</a></li><li><a href="../docs/decisions/DDR-0001-viewport-locked-layout.html">DDR-0001-viewport-locked-layout</a></li><li><a href="../docs/decisions/DDR-0002-theme-system.html">DDR-0002-theme-system</a></li><li><a href="../docs/decisions/DDR-0003-bounded-logo-slot.html">DDR-0003-bounded-logo-slot</a></li><li><a href="../docs/decisions/DDR-0004-slides-rendering-model.html">DDR-0004-slides-rendering-model</a></li><li><a href="../docs/decisions/DDR-0005-deterministic-layout-boundary.html">DDR-0005-deterministic-layout-boundary</a></li></ul></li><li><a href="../schemas.html" class="nav-section">Schemas</a><ul><li><a href="../schemas/plugin-registry.schema.html">plugin-registry.schema</a></li><li><a href="../schemas/plugin-schemas-notes.html">plugin-schemas-notes</a></li><li><a href="../schemas/plugin.schema.html">plugin.schema</a></li><li><a href="../schemas/plugins.schema.html" class="active">plugins.schema</a></li><li><details><summary class="nav-group">v0</summary><ul><li><a href="../schemas/v0/common.schema.html">common.schema</a></li><li><a href="../schemas/v0/plugin-registry.schema.html">plugin-registry.schema</a></li><li><a href="../schemas/v0/plugin.schema.html">plugin.schema</a></li><li><a href="../schemas/v0/plugins.schema.html">plugins.schema</a></li><li><a href="../schemas/v0/site.schema.html">site.schema</a></li><li><a href="../schemas/v0/theme.schema.html">theme.schema</a></li></ul></details></li></ul></li></ul>
133
+ <ul><li><a href="../index.html" class="nav-home">Home</a></li><li><span class="nav-section">Guide</span><ul><li><a href="../content/guide/approaches.html">approaches</a></li><li><a href="../content/guide/branding.html">branding</a></li><li><a href="../content/guide/data-driven-content.html">data-driven-content</a></li><li><a href="../content/guide/features.html">features</a></li><li><a href="../content/guide/getting-started.html">getting-started</a></li><li><a href="../content/guide/kitfly-overview.html">kitfly-overview</a></li></ul></li><li><span class="nav-section">Templates</span><ul><li><a href="../content/templates/crucible.html">crucible</a></li><li><a href="../content/templates/handbook.html">handbook</a></li><li><a href="../content/templates/minimal.html">minimal</a></li><li><a href="../content/templates/overview.html">overview</a></li><li><a href="../content/templates/pipeline.html">pipeline</a></li><li><a href="../content/templates/productbook.html">productbook</a></li><li><a href="../content/templates/runbook.html">runbook</a></li><li><a href="../content/templates/servicebook.html">servicebook</a></li></ul></li><li><a href="../content/reference.html" class="nav-section">Reference</a><ul><li><a href="../content/reference/configuration.html">configuration</a></li><li><a href="../content/reference/design-catalog.html">design-catalog</a></li><li><a href="../content/reference/environment-variables.html">environment-variables</a></li><li><a href="../content/reference/glossary.html">glossary</a></li><li><a href="../content/reference/key-concepts.html">key-concepts</a></li><li><a href="../content/reference/plugins.html">plugins</a></li><li><a href="../content/reference/slides-authoring-guidelines.html">slides-authoring-guidelines</a></li><li><a href="../content/reference/structure.html">structure</a></li></ul></li><li><a href="../content/deployment.html" class="nav-section">Deployment</a><ul><li><a href="../content/deployment/preflight.html">preflight</a></li><li><details><summary class="nav-group">recipes</summary><ul><li><a href="../content/deployment/recipes/aws-s3.html">aws-s3</a></li><li><a href="../content/deployment/recipes/cloudflare-pages.html">cloudflare-pages</a></li><li><a href="../content/deployment/recipes/cloudflare-r2.html">cloudflare-r2</a></li><li><a href="../content/deployment/recipes/fly-io.html">fly-io</a></li><li><a href="../content/deployment/recipes/github-pages.html">github-pages</a></li><li><a href="../content/deployment/recipes/netlify.html">netlify</a></li><li><a href="../content/deployment/recipes/vercel.html">vercel</a></li></ul></details></li><li><a href="../content/deployment/secrets-and-env-vars.html">secrets-and-env-vars</a></li></ul></li><li><span class="nav-section">User Guide</span><ul><li><details><summary class="nav-group"><a href="../docs/userguide/cli.html">cli</a></summary><ul><li><a href="../docs/userguide/cli/build.html">build</a></li><li><a href="../docs/userguide/cli/bundle.html">bundle</a></li><li><a href="../docs/userguide/cli/dev.html">dev</a></li><li><a href="../docs/userguide/cli/init.html">init</a></li><li><a href="../docs/userguide/cli/servers.html">servers</a></li><li><a href="../docs/userguide/cli/stop.html">stop</a></li><li><a href="../docs/userguide/cli/update.html">update</a></li><li><a href="../docs/userguide/cli/version.html">version</a></li></ul></details></li><li><a href="../docs/userguide/sharing.html">sharing</a></li></ul></li><li><span class="nav-section">Decisions</span><ul><li><a href="../docs/decisions/ADR-0001-minimalist-site-code.html">ADR-0001-minimalist-site-code</a></li><li><a href="../docs/decisions/ADR-0002-ai-accessibility.html">ADR-0002-ai-accessibility</a></li><li><a href="../docs/decisions/ADR-0003-single-file-bundle.html">ADR-0003-single-file-bundle</a></li><li><a href="../docs/decisions/ADR-0004-bun-runtime.html">ADR-0004-bun-runtime</a></li><li><a href="../docs/decisions/ADR-0005-plugin-contract-and-distribution.html">ADR-0005-plugin-contract-and-distribution</a></li><li><a href="../docs/decisions/ADR-0006-data-driven-content.html">ADR-0006-data-driven-content</a></li><li><a href="../docs/decisions/DDR-0001-viewport-locked-layout.html">DDR-0001-viewport-locked-layout</a></li><li><a href="../docs/decisions/DDR-0002-theme-system.html">DDR-0002-theme-system</a></li><li><a href="../docs/decisions/DDR-0003-bounded-logo-slot.html">DDR-0003-bounded-logo-slot</a></li><li><a href="../docs/decisions/DDR-0004-slides-rendering-model.html">DDR-0004-slides-rendering-model</a></li><li><a href="../docs/decisions/DDR-0005-deterministic-layout-boundary.html">DDR-0005-deterministic-layout-boundary</a></li></ul></li><li><a href="../schemas.html" class="nav-section">Schemas</a><ul><li><a href="../schemas/plugin-registry.schema.html">plugin-registry.schema</a></li><li><a href="../schemas/plugin-schemas-notes.html">plugin-schemas-notes</a></li><li><a href="../schemas/plugin.schema.html">plugin.schema</a></li><li><a href="../schemas/plugins.schema.html" class="active">plugins.schema</a></li><li><details><summary class="nav-group">v0</summary><ul><li><a href="../schemas/v0/common.schema.html">common.schema</a></li><li><a href="../schemas/v0/plugin-registry.schema.html">plugin-registry.schema</a></li><li><a href="../schemas/v0/plugin.schema.html">plugin.schema</a></li><li><a href="../schemas/v0/plugins.schema.html">plugins.schema</a></li><li><a href="../schemas/v0/site.schema.html">site.schema</a></li><li><a href="../schemas/v0/theme.schema.html">theme.schema</a></li></ul></details></li></ul></li></ul>
134
134
  </div>
135
135
  </nav>
136
136
  <main class="content">
@@ -151,9 +151,10 @@
151
151
  <footer class="site-footer">
152
152
  <div class="footer-content">
153
153
  <div class="footer-left">
154
- <span class="footer-version">v0.2.0</span>
154
+
155
+ <span class="footer-version">v0.2.3</span>
155
156
  <span class="footer-separator">·</span>
156
- <span class="footer-commit" title="Commit: 33ccd68">Published 2026-02-15</span>
157
+ <span class="footer-commit" title="Commit: 664328f">Published 2026-02-18</span>
157
158
  </div>
158
159
  <div class="footer-center">
159
160
  <span class="footer-copyright"><a href="https://3leaps.net" class="footer-link">© 2026 3 Leaps, LLC</a></span>
@@ -232,6 +233,9 @@
232
233
  if (window.reinitMermaid) {
233
234
  window.reinitMermaid();
234
235
  }
236
+ if (window.reinitCharts) {
237
+ window.reinitCharts();
238
+ }
235
239
  }
236
240
 
237
241
  // Slides mode hash routing