@hiai-gg/hiai-opencode 0.2.1 → 0.2.2

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 (477) hide show
  1. package/.env.example +4 -0
  2. package/AGENTS.md +34 -38
  3. package/ARCHITECTURE.md +4 -3
  4. package/LICENSE.md +14 -0
  5. package/README.md +52 -21
  6. package/config/hiai-opencode.schema.json +11 -13
  7. package/dist/agents/{bob.d.ts → bob/claude.d.ts} +6 -2
  8. package/dist/agents/bob/core.d.ts +6 -0
  9. package/dist/agents/bob/gpt.d.ts +11 -0
  10. package/dist/agents/bob/index.d.ts +3 -0
  11. package/dist/agents/coder/core.d.ts +4 -0
  12. package/dist/agents/coder/gpt.d.ts +1 -4
  13. package/dist/agents/coder/index.d.ts +1 -0
  14. package/dist/agents/manager/agent.d.ts +1 -1
  15. package/dist/agents/manager/default-prompt-sections.d.ts +3 -3
  16. package/dist/agents/manager/guard-integration.d.ts +1 -0
  17. package/dist/agents/prompt-library/index.d.ts +0 -1
  18. package/dist/agents/prompt-library/shared-execution.d.ts +9 -0
  19. package/dist/agents/strategist/behavioral-summary.d.ts +1 -1
  20. package/dist/agents/strategist/identity-constraints.d.ts +1 -1
  21. package/dist/agents/strategist/plan-generation.d.ts +1 -1
  22. package/dist/agents/types.d.ts +2 -1
  23. package/dist/config/defaults.d.ts +1 -0
  24. package/dist/config/platform-schema.d.ts +26 -26
  25. package/dist/config/schema/agent-names.d.ts +6 -6
  26. package/dist/config/schema/agent-overrides.d.ts +0 -128
  27. package/dist/config/schema/hiai-opencode-config.d.ts +0 -128
  28. package/dist/config/types.d.ts +2 -2
  29. package/dist/features/background-agent/manager-notifier.d.ts +46 -0
  30. package/dist/features/background-agent/manager-types.d.ts +40 -0
  31. package/dist/features/background-agent/manager.d.ts +3 -19
  32. package/dist/features/background-agent/polling-manager.d.ts +51 -0
  33. package/dist/features/boulder-state/storage.d.ts +1 -0
  34. package/dist/features/builtin-commands/templates/loop.d.ts +2 -0
  35. package/dist/features/builtin-commands/templates/start-work.d.ts +1 -1
  36. package/dist/features/builtin-skills/skills/interview-me.d.ts +2 -0
  37. package/dist/features/builtin-skills/skills/planning-and-task-breakdown.d.ts +2 -0
  38. package/dist/hooks/reasoning-content-cache/hook.d.ts +11 -0
  39. package/dist/hooks/reasoning-content-cache/index.d.ts +1 -0
  40. package/dist/hooks/session-recovery/checkpoint.d.ts +48 -0
  41. package/dist/hooks/session-recovery/enhanced-hook.d.ts +30 -0
  42. package/dist/hooks/session-recovery/state-backup.d.ts +76 -0
  43. package/dist/hooks/shared/compaction-in-progress.d.ts +4 -0
  44. package/dist/hooks/start-work/git-operations.d.ts +47 -0
  45. package/dist/hooks/token-budget.d.ts +30 -0
  46. package/dist/index.js +1185 -1078
  47. package/dist/mcp/rate-limiter.d.ts +68 -0
  48. package/dist/plugin/chat-message.d.ts +8 -0
  49. package/dist/plugin/command-execute-before.d.ts +1 -1
  50. package/dist/plugin/event-handlers/message-updated.d.ts +2 -0
  51. package/dist/plugin/event-handlers/session-error.d.ts +2 -0
  52. package/dist/plugin/event-handlers/session-status.d.ts +2 -0
  53. package/dist/plugin/event-handlers/types.d.ts +62 -0
  54. package/dist/plugin/event-handlers/utils.d.ts +11 -0
  55. package/dist/plugin/event.d.ts +1 -1
  56. package/dist/shared/data-path.d.ts +1 -1
  57. package/dist/shared/errors.d.ts +70 -0
  58. package/dist/shared/extract-session-id.d.ts +8 -0
  59. package/dist/shared/git-worktree/get-git-state-summary.d.ts +14 -0
  60. package/dist/shared/index.d.ts +67 -68
  61. package/dist/shared/internal-initiator-marker.d.ts +1 -1
  62. package/dist/shared/logger.d.ts +5 -1
  63. package/dist/shared/reasoning-content-cache.d.ts +68 -0
  64. package/dist/shared/safe-create-hook.d.ts +4 -4
  65. package/dist/tools/call-hiai-agent/constants.d.ts +2 -2
  66. package/dist/tools/delegate-task/sub-agent.d.ts +1 -1
  67. package/dist/tools/look-at/constants.d.ts +1 -1
  68. package/docs/architecture/bob-manager-architecture.md +244 -0
  69. package/docs/hiai-opencode/adr/ADR-001-agent-identity-section-injection.md +66 -0
  70. package/docs/hiai-opencode/adr/ADR-002-anti-loop-guard-priority.md +63 -0
  71. package/docs/hiai-opencode/adr/ADR-003-compaction-mechanism.md +71 -0
  72. package/docs/hiai-opencode/adr/ADR-004-session-recovery.md +76 -0
  73. package/docs/hiai-opencode/api.md +305 -0
  74. package/docs/hiai-opencode/hooks-architecture.md +225 -0
  75. package/docs/hiai-opencode/migration.md +209 -0
  76. package/docs/skill-discovery.md +288 -0
  77. package/package.json +1 -1
  78. package/skills/agent-browser/SKILL.md +193 -0
  79. package/skills/apple-hig/SKILL.md +43 -0
  80. package/skills/article-magazine/SKILL.md +46 -0
  81. package/skills/article-magazine/example.html +81 -0
  82. package/skills/article-magazine/example.md +38 -0
  83. package/skills/canvas-design/SKILL.md +45 -0
  84. package/skills/design-templates/audio-jingle/SKILL.md +132 -0
  85. package/skills/design-templates/audio-jingle/example.html +128 -0
  86. package/skills/design-templates/blog-post/SKILL.md +80 -0
  87. package/skills/design-templates/blog-post/example.html +80 -0
  88. package/skills/design-templates/clinical-case-report/SKILL.md +209 -0
  89. package/skills/design-templates/clinical-case-report/example.html +698 -0
  90. package/skills/design-templates/clinical-case-report/examples/example-stemi.html +698 -0
  91. package/skills/design-templates/clinical-case-report/references/case-formats.md +94 -0
  92. package/skills/design-templates/clinical-case-report/references/checklist.md +41 -0
  93. package/skills/design-templates/critique/SKILL.md +258 -0
  94. package/skills/design-templates/critique/example.html +671 -0
  95. package/skills/design-templates/dashboard/SKILL.md +76 -0
  96. package/skills/design-templates/dashboard/example.html +118 -0
  97. package/skills/design-templates/dating-web/SKILL.md +92 -0
  98. package/skills/design-templates/dating-web/example.html +265 -0
  99. package/skills/design-templates/dcf-valuation/SKILL.md +140 -0
  100. package/skills/design-templates/dcf-valuation/references/sector-wacc.md +42 -0
  101. package/skills/design-templates/digital-eguide/SKILL.md +94 -0
  102. package/skills/design-templates/digital-eguide/example.html +204 -0
  103. package/skills/design-templates/docs-page/SKILL.md +80 -0
  104. package/skills/design-templates/docs-page/example.html +122 -0
  105. package/skills/design-templates/email-marketing/SKILL.md +84 -0
  106. package/skills/design-templates/email-marketing/example.html +159 -0
  107. package/skills/design-templates/eng-runbook/SKILL.md +51 -0
  108. package/skills/design-templates/eng-runbook/example.html +250 -0
  109. package/skills/design-templates/finance-report/SKILL.md +61 -0
  110. package/skills/design-templates/finance-report/example.html +242 -0
  111. package/skills/design-templates/flowai-live-dashboard-template/SKILL.md +87 -0
  112. package/skills/design-templates/flowai-live-dashboard-template/assets/template.html +387 -0
  113. package/skills/design-templates/flowai-live-dashboard-template/example.html +13 -0
  114. package/skills/design-templates/flowai-live-dashboard-template/references/checklist.md +35 -0
  115. package/skills/design-templates/gamified-app/SKILL.md +108 -0
  116. package/skills/design-templates/gamified-app/example.html +292 -0
  117. package/skills/design-templates/github-dashboard/SKILL.md +130 -0
  118. package/skills/design-templates/github-dashboard/example.html +473 -0
  119. package/skills/design-templates/github-dashboard/references/README.md +10 -0
  120. package/skills/design-templates/github-dashboard/references/artifact-example.json +15 -0
  121. package/skills/design-templates/github-dashboard/references/example-data.json +138 -0
  122. package/skills/design-templates/github-dashboard/references/provenance-example.json +92 -0
  123. package/skills/design-templates/github-dashboard/references/template.html +473 -0
  124. package/skills/design-templates/guizang-ppt/LICENSE +21 -0
  125. package/skills/design-templates/guizang-ppt/README.en.md +119 -0
  126. package/skills/design-templates/guizang-ppt/README.md +120 -0
  127. package/skills/design-templates/guizang-ppt/README.pt-BR.md +121 -0
  128. package/skills/design-templates/guizang-ppt/SKILL.md +313 -0
  129. package/skills/design-templates/guizang-ppt/assets/example-slides.html +318 -0
  130. package/skills/design-templates/guizang-ppt/assets/template.html +647 -0
  131. package/skills/design-templates/guizang-ppt/references/checklist.md +265 -0
  132. package/skills/design-templates/guizang-ppt/references/components.md +363 -0
  133. package/skills/design-templates/guizang-ppt/references/layouts.md +630 -0
  134. package/skills/design-templates/guizang-ppt/references/styles.md +195 -0
  135. package/skills/design-templates/guizang-ppt/references/themes.md +122 -0
  136. package/skills/design-templates/hr-onboarding/SKILL.md +52 -0
  137. package/skills/design-templates/hr-onboarding/example.html +219 -0
  138. package/skills/design-templates/html-ppt/.clawscan-allow +12 -0
  139. package/skills/design-templates/html-ppt/LICENSE +21 -0
  140. package/skills/design-templates/html-ppt/README.md +234 -0
  141. package/skills/design-templates/html-ppt/README.pt-BR.md +239 -0
  142. package/skills/design-templates/html-ppt/README.zh-CN.md +238 -0
  143. package/skills/design-templates/html-ppt/SKILL.md +250 -0
  144. package/skills/design-templates/html-ppt/assets/animations/animations.css +138 -0
  145. package/skills/design-templates/html-ppt/assets/animations/fx/_util.js +63 -0
  146. package/skills/design-templates/html-ppt/assets/animations/fx/chain-react.js +41 -0
  147. package/skills/design-templates/html-ppt/assets/animations/fx/confetti-cannon.js +49 -0
  148. package/skills/design-templates/html-ppt/assets/animations/fx/constellation.js +44 -0
  149. package/skills/design-templates/html-ppt/assets/animations/fx/counter-explosion.js +58 -0
  150. package/skills/design-templates/html-ppt/assets/animations/fx/data-stream.js +45 -0
  151. package/skills/design-templates/html-ppt/assets/animations/fx/firework.js +51 -0
  152. package/skills/design-templates/html-ppt/assets/animations/fx/galaxy-swirl.js +33 -0
  153. package/skills/design-templates/html-ppt/assets/animations/fx/gradient-blob.js +39 -0
  154. package/skills/design-templates/html-ppt/assets/animations/fx/knowledge-graph.js +69 -0
  155. package/skills/design-templates/html-ppt/assets/animations/fx/letter-explode.js +50 -0
  156. package/skills/design-templates/html-ppt/assets/animations/fx/magnetic-field.js +40 -0
  157. package/skills/design-templates/html-ppt/assets/animations/fx/matrix-rain.js +33 -0
  158. package/skills/design-templates/html-ppt/assets/animations/fx/neural-net.js +75 -0
  159. package/skills/design-templates/html-ppt/assets/animations/fx/orbit-ring.js +38 -0
  160. package/skills/design-templates/html-ppt/assets/animations/fx/particle-burst.js +42 -0
  161. package/skills/design-templates/html-ppt/assets/animations/fx/shockwave.js +39 -0
  162. package/skills/design-templates/html-ppt/assets/animations/fx/sparkle-trail.js +62 -0
  163. package/skills/design-templates/html-ppt/assets/animations/fx/starfield.js +30 -0
  164. package/skills/design-templates/html-ppt/assets/animations/fx/typewriter-multi.js +51 -0
  165. package/skills/design-templates/html-ppt/assets/animations/fx/word-cascade.js +47 -0
  166. package/skills/design-templates/html-ppt/assets/animations/fx-runtime.js +99 -0
  167. package/skills/design-templates/html-ppt/assets/base.css +150 -0
  168. package/skills/design-templates/html-ppt/assets/fonts.css +9 -0
  169. package/skills/design-templates/html-ppt/assets/runtime.js +960 -0
  170. package/skills/design-templates/html-ppt/assets/themes/academic-paper.css +23 -0
  171. package/skills/design-templates/html-ppt/assets/themes/arctic-cool.css +14 -0
  172. package/skills/design-templates/html-ppt/assets/themes/aurora.css +20 -0
  173. package/skills/design-templates/html-ppt/assets/themes/bauhaus.css +16 -0
  174. package/skills/design-templates/html-ppt/assets/themes/blueprint.css +19 -0
  175. package/skills/design-templates/html-ppt/assets/themes/catppuccin-latte.css +14 -0
  176. package/skills/design-templates/html-ppt/assets/themes/catppuccin-mocha.css +14 -0
  177. package/skills/design-templates/html-ppt/assets/themes/corporate-clean.css +19 -0
  178. package/skills/design-templates/html-ppt/assets/themes/cyberpunk-neon.css +23 -0
  179. package/skills/design-templates/html-ppt/assets/themes/dracula.css +14 -0
  180. package/skills/design-templates/html-ppt/assets/themes/editorial-serif.css +18 -0
  181. package/skills/design-templates/html-ppt/assets/themes/engineering-whiteprint.css +26 -0
  182. package/skills/design-templates/html-ppt/assets/themes/glassmorphism.css +21 -0
  183. package/skills/design-templates/html-ppt/assets/themes/gruvbox-dark.css +14 -0
  184. package/skills/design-templates/html-ppt/assets/themes/japanese-minimal.css +21 -0
  185. package/skills/design-templates/html-ppt/assets/themes/magazine-bold.css +21 -0
  186. package/skills/design-templates/html-ppt/assets/themes/memphis-pop.css +20 -0
  187. package/skills/design-templates/html-ppt/assets/themes/midcentury.css +19 -0
  188. package/skills/design-templates/html-ppt/assets/themes/minimal-white.css +16 -0
  189. package/skills/design-templates/html-ppt/assets/themes/neo-brutalism.css +17 -0
  190. package/skills/design-templates/html-ppt/assets/themes/news-broadcast.css +20 -0
  191. package/skills/design-templates/html-ppt/assets/themes/nord.css +14 -0
  192. package/skills/design-templates/html-ppt/assets/themes/pitch-deck-vc.css +21 -0
  193. package/skills/design-templates/html-ppt/assets/themes/rainbow-gradient.css +16 -0
  194. package/skills/design-templates/html-ppt/assets/themes/retro-tv.css +22 -0
  195. package/skills/design-templates/html-ppt/assets/themes/rose-pine.css +14 -0
  196. package/skills/design-templates/html-ppt/assets/themes/sharp-mono.css +17 -0
  197. package/skills/design-templates/html-ppt/assets/themes/soft-pastel.css +14 -0
  198. package/skills/design-templates/html-ppt/assets/themes/solarized-light.css +14 -0
  199. package/skills/design-templates/html-ppt/assets/themes/sunset-warm.css +14 -0
  200. package/skills/design-templates/html-ppt/assets/themes/swiss-grid.css +17 -0
  201. package/skills/design-templates/html-ppt/assets/themes/terminal-green.css +18 -0
  202. package/skills/design-templates/html-ppt/assets/themes/tokyo-night.css +14 -0
  203. package/skills/design-templates/html-ppt/assets/themes/vaporwave.css +21 -0
  204. package/skills/design-templates/html-ppt/assets/themes/xiaohongshu-white.css +16 -0
  205. package/skills/design-templates/html-ppt/assets/themes/y2k-chrome.css +20 -0
  206. package/skills/design-templates/html-ppt/docs/readme/_theme-cell.html +56 -0
  207. package/skills/design-templates/html-ppt/docs/readme/animations.png +0 -0
  208. package/skills/design-templates/html-ppt/docs/readme/hero.gif +0 -0
  209. package/skills/design-templates/html-ppt/docs/readme/layouts-live.gif +0 -0
  210. package/skills/design-templates/html-ppt/docs/readme/layouts.png +0 -0
  211. package/skills/design-templates/html-ppt/docs/readme/montage-animations.html +61 -0
  212. package/skills/design-templates/html-ppt/docs/readme/montage-layouts.html +72 -0
  213. package/skills/design-templates/html-ppt/docs/readme/montage-templates.html +72 -0
  214. package/skills/design-templates/html-ppt/docs/readme/montage-themes.html +38 -0
  215. package/skills/design-templates/html-ppt/docs/readme/presenter-mode.png +0 -0
  216. package/skills/design-templates/html-ppt/docs/readme/templates.png +0 -0
  217. package/skills/design-templates/html-ppt/docs/readme/themes.png +0 -0
  218. package/skills/design-templates/html-ppt/examples/demo-deck/index.html +161 -0
  219. package/skills/design-templates/html-ppt/references/animations.md +147 -0
  220. package/skills/design-templates/html-ppt/references/authoring-guide.md +141 -0
  221. package/skills/design-templates/html-ppt/references/full-decks.md +98 -0
  222. package/skills/design-templates/html-ppt/references/layouts.md +103 -0
  223. package/skills/design-templates/html-ppt/references/presenter-mode.md +240 -0
  224. package/skills/design-templates/html-ppt/references/themes.md +107 -0
  225. package/skills/design-templates/html-ppt/scripts/new-deck.sh +46 -0
  226. package/skills/design-templates/html-ppt/scripts/render.sh +71 -0
  227. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_01.png +0 -0
  228. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_02.png +0 -0
  229. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_03.png +0 -0
  230. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_04.png +0 -0
  231. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_05.png +0 -0
  232. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_06.png +0 -0
  233. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_07.png +0 -0
  234. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_08.png +0 -0
  235. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_09.png +0 -0
  236. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_10.png +0 -0
  237. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_11.png +0 -0
  238. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_12.png +0 -0
  239. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_13.png +0 -0
  240. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_14.png +0 -0
  241. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_15.png +0 -0
  242. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_16.png +0 -0
  243. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_17.png +0 -0
  244. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_18.png +0 -0
  245. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_19.png +0 -0
  246. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_20.png +0 -0
  247. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_01.png +0 -0
  248. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_02.png +0 -0
  249. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_03.png +0 -0
  250. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_04.png +0 -0
  251. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_05.png +0 -0
  252. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_06.png +0 -0
  253. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_07.png +0 -0
  254. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_08.png +0 -0
  255. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_09.png +0 -0
  256. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_10.png +0 -0
  257. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_11.png +0 -0
  258. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_12.png +0 -0
  259. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_13.png +0 -0
  260. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_14.png +0 -0
  261. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_15.png +0 -0
  262. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_16.png +0 -0
  263. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_17.png +0 -0
  264. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_18.png +0 -0
  265. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_19.png +0 -0
  266. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_20.png +0 -0
  267. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_21.png +0 -0
  268. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_22.png +0 -0
  269. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_23.png +0 -0
  270. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_24.png +0 -0
  271. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_25.png +0 -0
  272. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_26.png +0 -0
  273. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_27.png +0 -0
  274. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_28.png +0 -0
  275. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_29.png +0 -0
  276. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_30.png +0 -0
  277. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_31.png +0 -0
  278. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_32.png +0 -0
  279. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_33.png +0 -0
  280. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_34.png +0 -0
  281. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_35.png +0 -0
  282. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_36.png +0 -0
  283. package/skills/design-templates/html-ppt/templates/animation-showcase.html +172 -0
  284. package/skills/design-templates/html-ppt/templates/deck.html +69 -0
  285. package/skills/design-templates/html-ppt/templates/full-decks/course-module/README.md +8 -0
  286. package/skills/design-templates/html-ppt/templates/full-decks/course-module/index.html +189 -0
  287. package/skills/design-templates/html-ppt/templates/full-decks/course-module/style.css +46 -0
  288. package/skills/design-templates/html-ppt/templates/full-decks/dir-key-nav-minimal/README.md +11 -0
  289. package/skills/design-templates/html-ppt/templates/full-decks/dir-key-nav-minimal/index.html +138 -0
  290. package/skills/design-templates/html-ppt/templates/full-decks/dir-key-nav-minimal/style.css +60 -0
  291. package/skills/design-templates/html-ppt/templates/full-decks/graphify-dark-graph/README.md +11 -0
  292. package/skills/design-templates/html-ppt/templates/full-decks/graphify-dark-graph/index.html +180 -0
  293. package/skills/design-templates/html-ppt/templates/full-decks/graphify-dark-graph/style.css +54 -0
  294. package/skills/design-templates/html-ppt/templates/full-decks/hermes-cyber-terminal/README.md +11 -0
  295. package/skills/design-templates/html-ppt/templates/full-decks/hermes-cyber-terminal/index.html +199 -0
  296. package/skills/design-templates/html-ppt/templates/full-decks/hermes-cyber-terminal/style.css +55 -0
  297. package/skills/design-templates/html-ppt/templates/full-decks/knowledge-arch-blueprint/README.md +11 -0
  298. package/skills/design-templates/html-ppt/templates/full-decks/knowledge-arch-blueprint/index.html +190 -0
  299. package/skills/design-templates/html-ppt/templates/full-decks/knowledge-arch-blueprint/style.css +49 -0
  300. package/skills/design-templates/html-ppt/templates/full-decks/obsidian-claude-gradient/README.md +11 -0
  301. package/skills/design-templates/html-ppt/templates/full-decks/obsidian-claude-gradient/index.html +144 -0
  302. package/skills/design-templates/html-ppt/templates/full-decks/obsidian-claude-gradient/style.css +59 -0
  303. package/skills/design-templates/html-ppt/templates/full-decks/pitch-deck/README.md +9 -0
  304. package/skills/design-templates/html-ppt/templates/full-decks/pitch-deck/index.html +148 -0
  305. package/skills/design-templates/html-ppt/templates/full-decks/pitch-deck/style.css +40 -0
  306. package/skills/design-templates/html-ppt/templates/full-decks/presenter-mode-reveal/README.md +102 -0
  307. package/skills/design-templates/html-ppt/templates/full-decks/presenter-mode-reveal/index.html +187 -0
  308. package/skills/design-templates/html-ppt/templates/full-decks/presenter-mode-reveal/style.css +216 -0
  309. package/skills/design-templates/html-ppt/templates/full-decks/product-launch/README.md +8 -0
  310. package/skills/design-templates/html-ppt/templates/full-decks/product-launch/index.html +121 -0
  311. package/skills/design-templates/html-ppt/templates/full-decks/product-launch/style.css +39 -0
  312. package/skills/design-templates/html-ppt/templates/full-decks/tech-sharing/README.md +8 -0
  313. package/skills/design-templates/html-ppt/templates/full-decks/tech-sharing/index.html +156 -0
  314. package/skills/design-templates/html-ppt/templates/full-decks/tech-sharing/style.css +49 -0
  315. package/skills/design-templates/html-ppt/templates/full-decks/testing-safety-alert/README.md +11 -0
  316. package/skills/design-templates/html-ppt/templates/full-decks/testing-safety-alert/index.html +183 -0
  317. package/skills/design-templates/html-ppt/templates/full-decks/testing-safety-alert/style.css +62 -0
  318. package/skills/design-templates/html-ppt/templates/full-decks/weekly-report/README.md +8 -0
  319. package/skills/design-templates/html-ppt/templates/full-decks/weekly-report/index.html +127 -0
  320. package/skills/design-templates/html-ppt/templates/full-decks/weekly-report/style.css +55 -0
  321. package/skills/design-templates/html-ppt/templates/full-decks/xhs-pastel-card/README.md +11 -0
  322. package/skills/design-templates/html-ppt/templates/full-decks/xhs-pastel-card/index.html +147 -0
  323. package/skills/design-templates/html-ppt/templates/full-decks/xhs-pastel-card/style.css +66 -0
  324. package/skills/design-templates/html-ppt/templates/full-decks/xhs-post/README.md +9 -0
  325. package/skills/design-templates/html-ppt/templates/full-decks/xhs-post/index.html +133 -0
  326. package/skills/design-templates/html-ppt/templates/full-decks/xhs-post/style.css +47 -0
  327. package/skills/design-templates/html-ppt/templates/full-decks/xhs-white-editorial/README.md +11 -0
  328. package/skills/design-templates/html-ppt/templates/full-decks/xhs-white-editorial/index.html +187 -0
  329. package/skills/design-templates/html-ppt/templates/full-decks/xhs-white-editorial/style.css +63 -0
  330. package/skills/design-templates/html-ppt/templates/full-decks-index.html +82 -0
  331. package/skills/design-templates/html-ppt/templates/layout-showcase.html +47 -0
  332. package/skills/design-templates/html-ppt/templates/single-page/arch-diagram.html +46 -0
  333. package/skills/design-templates/html-ppt/templates/single-page/big-quote.html +18 -0
  334. package/skills/design-templates/html-ppt/templates/single-page/bullets.html +19 -0
  335. package/skills/design-templates/html-ppt/templates/single-page/chart-bar.html +30 -0
  336. package/skills/design-templates/html-ppt/templates/single-page/chart-line.html +35 -0
  337. package/skills/design-templates/html-ppt/templates/single-page/chart-pie.html +36 -0
  338. package/skills/design-templates/html-ppt/templates/single-page/chart-radar.html +31 -0
  339. package/skills/design-templates/html-ppt/templates/single-page/code.html +33 -0
  340. package/skills/design-templates/html-ppt/templates/single-page/comparison.html +47 -0
  341. package/skills/design-templates/html-ppt/templates/single-page/cover.html +32 -0
  342. package/skills/design-templates/html-ppt/templates/single-page/cta.html +27 -0
  343. package/skills/design-templates/html-ppt/templates/single-page/diff.html +35 -0
  344. package/skills/design-templates/html-ppt/templates/single-page/flow-diagram.html +33 -0
  345. package/skills/design-templates/html-ppt/templates/single-page/gantt.html +29 -0
  346. package/skills/design-templates/html-ppt/templates/single-page/image-grid.html +34 -0
  347. package/skills/design-templates/html-ppt/templates/single-page/image-hero.html +33 -0
  348. package/skills/design-templates/html-ppt/templates/single-page/kpi-grid.html +19 -0
  349. package/skills/design-templates/html-ppt/templates/single-page/mindmap.html +38 -0
  350. package/skills/design-templates/html-ppt/templates/single-page/process-steps.html +27 -0
  351. package/skills/design-templates/html-ppt/templates/single-page/pros-cons.html +31 -0
  352. package/skills/design-templates/html-ppt/templates/single-page/roadmap.html +46 -0
  353. package/skills/design-templates/html-ppt/templates/single-page/section-divider.html +17 -0
  354. package/skills/design-templates/html-ppt/templates/single-page/stat-highlight.html +17 -0
  355. package/skills/design-templates/html-ppt/templates/single-page/table.html +33 -0
  356. package/skills/design-templates/html-ppt/templates/single-page/terminal.html +35 -0
  357. package/skills/design-templates/html-ppt/templates/single-page/thanks.html +21 -0
  358. package/skills/design-templates/html-ppt/templates/single-page/three-column.html +18 -0
  359. package/skills/design-templates/html-ppt/templates/single-page/timeline.html +32 -0
  360. package/skills/design-templates/html-ppt/templates/single-page/toc.html +26 -0
  361. package/skills/design-templates/html-ppt/templates/single-page/todo-checklist.html +33 -0
  362. package/skills/design-templates/html-ppt/templates/single-page/two-column.html +39 -0
  363. package/skills/design-templates/html-ppt/templates/theme-showcase.html +151 -0
  364. package/skills/design-templates/html-ppt-course-module/SKILL.md +78 -0
  365. package/skills/design-templates/html-ppt-course-module/example.html +542 -0
  366. package/skills/design-templates/html-ppt-dir-key-nav-minimal/SKILL.md +77 -0
  367. package/skills/design-templates/html-ppt-dir-key-nav-minimal/example.html +366 -0
  368. package/skills/design-templates/html-ppt-graphify-dark-graph/SKILL.md +77 -0
  369. package/skills/design-templates/html-ppt-graphify-dark-graph/example.html +402 -0
  370. package/skills/design-templates/html-ppt-hermes-cyber-terminal/SKILL.md +77 -0
  371. package/skills/design-templates/html-ppt-hermes-cyber-terminal/example.html +422 -0
  372. package/skills/design-templates/html-ppt-knowledge-arch-blueprint/SKILL.md +77 -0
  373. package/skills/design-templates/html-ppt-knowledge-arch-blueprint/example.html +407 -0
  374. package/skills/design-templates/html-ppt-obsidian-claude-gradient/SKILL.md +77 -0
  375. package/skills/design-templates/html-ppt-obsidian-claude-gradient/example.html +371 -0
  376. package/skills/design-templates/html-ppt-pitch-deck/SKILL.md +78 -0
  377. package/skills/design-templates/html-ppt-pitch-deck/example.html +495 -0
  378. package/skills/design-templates/html-ppt-presenter-mode-reveal/SKILL.md +78 -0
  379. package/skills/design-templates/html-ppt-presenter-mode-reveal/example.html +725 -0
  380. package/skills/design-templates/html-ppt-product-launch/SKILL.md +77 -0
  381. package/skills/design-templates/html-ppt-product-launch/example.html +467 -0
  382. package/skills/design-templates/html-ppt-taste-brutalist/SKILL.md +70 -0
  383. package/skills/design-templates/html-ppt-taste-brutalist/example.html +774 -0
  384. package/skills/design-templates/html-ppt-taste-editorial/SKILL.md +62 -0
  385. package/skills/design-templates/html-ppt-taste-editorial/example.html +689 -0
  386. package/skills/design-templates/html-ppt-tech-sharing/SKILL.md +77 -0
  387. package/skills/design-templates/html-ppt-tech-sharing/example.html +512 -0
  388. package/skills/design-templates/html-ppt-testing-safety-alert/SKILL.md +78 -0
  389. package/skills/design-templates/html-ppt-testing-safety-alert/example.html +413 -0
  390. package/skills/design-templates/html-ppt-weekly-report/SKILL.md +77 -0
  391. package/skills/design-templates/html-ppt-weekly-report/example.html +489 -0
  392. package/skills/design-templates/html-ppt-xhs-pastel-card/SKILL.md +78 -0
  393. package/skills/design-templates/html-ppt-xhs-pastel-card/example.html +381 -0
  394. package/skills/design-templates/html-ppt-xhs-post/SKILL.md +78 -0
  395. package/skills/design-templates/html-ppt-xhs-post/example.html +487 -0
  396. package/skills/design-templates/html-ppt-xhs-white-editorial/SKILL.md +77 -0
  397. package/skills/design-templates/html-ppt-xhs-white-editorial/example.html +418 -0
  398. package/skills/design-templates/html-ppt-zhangzara-8-bit-orbit/LICENSE +21 -0
  399. package/skills/design-templates/html-ppt-zhangzara-8-bit-orbit/SKILL.md +93 -0
  400. package/skills/design-templates/html-ppt-zhangzara-8-bit-orbit/example.html +1640 -0
  401. package/skills/design-templates/html-ppt-zhangzara-8-bit-orbit/template.json +48 -0
  402. package/skills/design-templates/html-ppt-zhangzara-biennale-yellow/LICENSE +21 -0
  403. package/skills/design-templates/html-ppt-zhangzara-biennale-yellow/SKILL.md +93 -0
  404. package/skills/design-templates/html-ppt-zhangzara-biennale-yellow/example.html +833 -0
  405. package/skills/design-templates/html-ppt-zhangzara-biennale-yellow/template.json +49 -0
  406. package/skills/design-templates/html-ppt-zhangzara-block-frame/LICENSE +21 -0
  407. package/skills/design-templates/html-ppt-zhangzara-block-frame/SKILL.md +93 -0
  408. package/skills/design-templates/html-ppt-zhangzara-block-frame/example.html +1453 -0
  409. package/skills/design-templates/html-ppt-zhangzara-block-frame/template.json +47 -0
  410. package/skills/design-templates/html-ppt-zhangzara-blue-professional/LICENSE +21 -0
  411. package/skills/design-templates/html-ppt-zhangzara-blue-professional/SKILL.md +93 -0
  412. package/skills/design-templates/html-ppt-zhangzara-blue-professional/example.html +1423 -0
  413. package/skills/design-templates/html-ppt-zhangzara-blue-professional/template.json +44 -0
  414. package/skills/design-templates/html-ppt-zhangzara-bold-poster/LICENSE +21 -0
  415. package/skills/design-templates/html-ppt-zhangzara-bold-poster/SKILL.md +93 -0
  416. package/skills/design-templates/html-ppt-zhangzara-bold-poster/example.html +876 -0
  417. package/skills/design-templates/html-ppt-zhangzara-bold-poster/template.json +45 -0
  418. package/skills/design-templates/html-ppt-zhangzara-broadside/LICENSE +21 -0
  419. package/skills/design-templates/html-ppt-zhangzara-broadside/SKILL.md +92 -0
  420. package/skills/design-templates/html-ppt-zhangzara-broadside/example.html +2144 -0
  421. package/skills/design-templates/html-ppt-zhangzara-broadside/template.json +49 -0
  422. package/skills/design-templates/html-ppt-zhangzara-capsule/LICENSE +21 -0
  423. package/skills/design-templates/html-ppt-zhangzara-capsule/SKILL.md +92 -0
  424. package/skills/design-templates/html-ppt-zhangzara-capsule/example.html +1413 -0
  425. package/skills/design-templates/html-ppt-zhangzara-capsule/template.json +51 -0
  426. package/skills/design-templates/html-ppt-zhangzara-cartesian/LICENSE +21 -0
  427. package/skills/design-templates/html-ppt-zhangzara-cartesian/SKILL.md +92 -0
  428. package/skills/design-templates/html-ppt-zhangzara-cartesian/example.html +1136 -0
  429. package/skills/design-templates/html-ppt-zhangzara-cartesian/template.json +47 -0
  430. package/skills/design-templates/html-ppt-zhangzara-cobalt-grid/LICENSE +21 -0
  431. package/skills/design-templates/html-ppt-zhangzara-cobalt-grid/SKILL.md +93 -0
  432. package/skills/design-templates/html-ppt-zhangzara-cobalt-grid/example.html +1205 -0
  433. package/skills/design-templates/html-ppt-zhangzara-cobalt-grid/template.json +49 -0
  434. package/skills/design-templates/html-ppt-zhangzara-coral/LICENSE +21 -0
  435. package/skills/design-templates/html-ppt-zhangzara-coral/SKILL.md +92 -0
  436. package/skills/design-templates/html-ppt-zhangzara-coral/example.html +1487 -0
  437. package/skills/design-templates/html-ppt-zhangzara-coral/template.json +45 -0
  438. package/skills/design-templates/html-ppt-zhangzara-creative-mode/LICENSE +21 -0
  439. package/skills/design-templates/html-ppt-zhangzara-creative-mode/SKILL.md +99 -0
  440. package/skills/design-templates/html-ppt-zhangzara-creative-mode/assets/deck-stage.js +619 -0
  441. package/skills/design-templates/html-ppt-zhangzara-creative-mode/example.html +636 -0
  442. package/skills/design-templates/html-ppt-zhangzara-creative-mode/template.json +47 -0
  443. package/skills/design-templates/html-ppt-zhangzara-daisy-days/LICENSE +21 -0
  444. package/skills/design-templates/html-ppt-zhangzara-daisy-days/SKILL.md +93 -0
  445. package/skills/design-templates/html-ppt-zhangzara-daisy-days/example.html +469 -0
  446. package/skills/design-templates/html-ppt-zhangzara-daisy-days/template.json +54 -0
  447. package/skills/design-templates/html-ppt-zhangzara-editorial-tri-tone/LICENSE +21 -0
  448. package/skills/design-templates/html-ppt-zhangzara-editorial-tri-tone/SKILL.md +98 -0
  449. package/skills/design-templates/html-ppt-zhangzara-editorial-tri-tone/assets/deck-stage.js +619 -0
  450. package/skills/design-templates/html-ppt-zhangzara-editorial-tri-tone/example.html +737 -0
  451. package/skills/design-templates/html-ppt-zhangzara-editorial-tri-tone/template.json +44 -0
  452. package/skills/design-templates/html-ppt-zhangzara-grove/LICENSE +21 -0
  453. package/skills/design-templates/html-ppt-zhangzara-grove/SKILL.md +92 -0
  454. package/skills/design-templates/html-ppt-zhangzara-grove/example.html +1676 -0
  455. package/skills/design-templates/html-ppt-zhangzara-grove/template.json +51 -0
  456. package/skills/figma-code-connect-components/SKILL.md +42 -0
  457. package/skills/figma-create-design-system-rules/SKILL.md +42 -0
  458. package/skills/figma-create-new-file/SKILL.md +41 -0
  459. package/skills/figma-generate-design/SKILL.md +42 -0
  460. package/skills/figma-generate-library/SKILL.md +42 -0
  461. package/skills/figma-implement-design/SKILL.md +42 -0
  462. package/skills/figma-use/SKILL.md +42 -0
  463. package/skills/full-page-screenshot/SKILL.md +42 -0
  464. package/skills/interview-me/SKILL.md +64 -0
  465. package/skills/planning-and-task-breakdown/SKILL.md +52 -0
  466. package/skills/sora/SKILL.md +43 -0
  467. package/skills/theme-factory/SKILL.md +43 -0
  468. package/skills/web-design-guidelines/SKILL.md +42 -0
  469. package/dist/agents/prompt-library/orchestration.d.ts +0 -4
  470. package/skills/brainstorming/SKILL.md +0 -164
  471. package/skills/brainstorming/scripts/frame-template.html +0 -214
  472. package/skills/brainstorming/scripts/helper.js +0 -88
  473. package/skills/brainstorming/scripts/server.cjs +0 -354
  474. package/skills/brainstorming/scripts/start-server.sh +0 -148
  475. package/skills/brainstorming/scripts/stop-server.sh +0 -56
  476. package/skills/brainstorming/spec-document-reviewer-prompt.md +0 -49
  477. package/skills/brainstorming/visual-companion.md +0 -287
@@ -0,0 +1,1136 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Cartesian Presentation Template</title>
7
+ <script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.7/dist/chart.umd.min.js"></script>
8
+ <link href="https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,600;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap" rel="stylesheet">
9
+ <style>
10
+ * {
11
+ margin: 0;
12
+ padding: 0;
13
+ box-sizing: border-box;
14
+ }
15
+
16
+ :root {
17
+ --bg-primary: #ede8e0;
18
+ --bg-secondary: #e2dbd1;
19
+ --text-primary: #1a1a1a;
20
+ --text-secondary: #5a5a5a;
21
+ --accent: #8a8178;
22
+ --line: #b8b0a4;
23
+ }
24
+
25
+ body {
26
+ font-family: 'Inter', sans-serif;
27
+ background: var(--bg-primary);
28
+ color: var(--text-primary);
29
+ overflow: hidden;
30
+ }
31
+
32
+ .presentation {
33
+ width: 100vw;
34
+ height: 100vh;
35
+ position: relative;
36
+ }
37
+
38
+ .slide {
39
+ width: 100vw;
40
+ height: 100vh;
41
+ position: absolute;
42
+ top: 0;
43
+ left: 0;
44
+ opacity: 0;
45
+ visibility: hidden;
46
+ transition: opacity 0.6s ease, visibility 0.6s ease;
47
+ display: flex;
48
+ flex-direction: column;
49
+ padding: 4vh 4vw;
50
+ background: var(--bg-primary);
51
+ overflow: hidden;
52
+ }
53
+
54
+ .slide.active {
55
+ opacity: 1;
56
+ visibility: visible;
57
+ }
58
+
59
+ /* Geometric decorations */
60
+ .geo-lines {
61
+ position: absolute;
62
+ top: 0;
63
+ right: 0;
64
+ width: 45vw;
65
+ height: 45vh;
66
+ pointer-events: none;
67
+ z-index: 0;
68
+ }
69
+
70
+ .geo-circle {
71
+ position: absolute;
72
+ border: 1px solid var(--line);
73
+ border-radius: 50%;
74
+ opacity: 0.5;
75
+ }
76
+
77
+ .geo-arc {
78
+ position: absolute;
79
+ border: 1px dashed var(--line);
80
+ border-radius: 50%;
81
+ opacity: 0.3;
82
+ }
83
+
84
+ /* Navigation */
85
+ .nav-dots {
86
+ position: fixed;
87
+ right: 2vw;
88
+ top: 50%;
89
+ transform: translateY(-50%);
90
+ display: flex;
91
+ flex-direction: column;
92
+ gap: 12px;
93
+ z-index: 100;
94
+ }
95
+
96
+ .nav-dot {
97
+ width: 8px;
98
+ height: 8px;
99
+ border-radius: 50%;
100
+ background: var(--line);
101
+ cursor: pointer;
102
+ transition: all 0.3s ease;
103
+ }
104
+
105
+ .nav-dot.active {
106
+ background: var(--text-primary);
107
+ transform: scale(1.3);
108
+ }
109
+
110
+ .slide-counter {
111
+ position: fixed;
112
+ bottom: 3vh;
113
+ right: 3vw;
114
+ font-family: 'Inter', sans-serif;
115
+ font-size: 0.75rem;
116
+ color: var(--accent);
117
+ letter-spacing: 2px;
118
+ z-index: 100;
119
+ }
120
+
121
+ .nav-arrows {
122
+ position: fixed;
123
+ bottom: 3vh;
124
+ left: 3vw;
125
+ display: flex;
126
+ gap: 16px;
127
+ z-index: 100;
128
+ }
129
+
130
+ .nav-arrow {
131
+ width: 40px;
132
+ height: 40px;
133
+ border: 1px solid var(--line);
134
+ background: transparent;
135
+ cursor: pointer;
136
+ display: flex;
137
+ align-items: center;
138
+ justify-content: center;
139
+ font-size: 1.2rem;
140
+ color: var(--text-primary);
141
+ transition: all 0.3s ease;
142
+ }
143
+
144
+ .nav-arrow:hover {
145
+ background: var(--text-primary);
146
+ color: var(--bg-primary);
147
+ }
148
+
149
+ /* Typography */
150
+ h1, h2, h3 {
151
+ font-family: 'Playfair Display', serif;
152
+ font-weight: 400;
153
+ line-height: 1.1;
154
+ }
155
+
156
+ h1 {
157
+ font-size: clamp(2.5rem, 5vw, 4.5rem);
158
+ }
159
+
160
+ h2 {
161
+ font-size: clamp(1.8rem, 3.5vw, 3rem);
162
+ }
163
+
164
+ h3 {
165
+ font-size: clamp(1.2rem, 2vw, 1.6rem);
166
+ }
167
+
168
+ p, li {
169
+ font-family: 'Inter', sans-serif;
170
+ font-size: clamp(0.9rem, 1.2vw, 1.1rem);
171
+ line-height: 1.6;
172
+ color: var(--text-secondary);
173
+ }
174
+
175
+ .label {
176
+ font-family: 'Inter', sans-serif;
177
+ font-size: 0.75rem;
178
+ text-transform: uppercase;
179
+ letter-spacing: 3px;
180
+ color: var(--accent);
181
+ font-weight: 500;
182
+ }
183
+
184
+ /* Slide 1: Title */
185
+ .slide-title {
186
+ justify-content: center;
187
+ }
188
+
189
+ .slide-title .content {
190
+ position: relative;
191
+ z-index: 1;
192
+ max-width: 65vw;
193
+ }
194
+
195
+ .slide-title .label {
196
+ margin-bottom: 3vh;
197
+ }
198
+
199
+ .slide-title h1 {
200
+ font-size: clamp(3rem, 6vw, 5.5rem);
201
+ margin-bottom: 2vh;
202
+ }
203
+
204
+ .slide-title .subtitle {
205
+ font-family: 'Inter', sans-serif;
206
+ font-size: clamp(1rem, 1.5vw, 1.3rem);
207
+ color: var(--text-secondary);
208
+ max-width: 40vw;
209
+ }
210
+
211
+ /* All geo-decoration instances are decorative overlays, not flex
212
+ items — they must be absolutely positioned in their slide. The
213
+ slide-statement instance uses inline left/top/width/height to
214
+ override the defaults below. */
215
+ .geo-decoration {
216
+ position: absolute;
217
+ border: 1px solid var(--line);
218
+ border-radius: 50%;
219
+ pointer-events: none;
220
+ z-index: 0;
221
+ }
222
+
223
+ .slide-title .geo-decoration {
224
+ right: 5vw;
225
+ bottom: 10vh;
226
+ width: 30vw;
227
+ height: 30vw;
228
+ opacity: 0.4;
229
+ }
230
+
231
+ .slide-title .geo-decoration::before {
232
+ content: '';
233
+ position: absolute;
234
+ top: 10%;
235
+ left: 10%;
236
+ width: 80%;
237
+ height: 80%;
238
+ border: 1px dashed var(--line);
239
+ border-radius: 50%;
240
+ }
241
+
242
+ /* Slide 2: Agenda */
243
+ .slide-agenda .content {
244
+ display: grid;
245
+ grid-template-columns: 1fr 1fr;
246
+ gap: 6vw;
247
+ align-items: center;
248
+ height: 100%;
249
+ position: relative;
250
+ z-index: 1;
251
+ }
252
+
253
+ .slide-agenda .left-col h2 {
254
+ margin-bottom: 3vh;
255
+ }
256
+
257
+ .slide-agenda .left-col p {
258
+ max-width: 30vw;
259
+ }
260
+
261
+ .slide-agenda .agenda-list {
262
+ list-style: none;
263
+ }
264
+
265
+ .slide-agenda .agenda-list li {
266
+ padding: 2vh 0;
267
+ border-bottom: 1px solid var(--line);
268
+ display: flex;
269
+ align-items: baseline;
270
+ gap: 2vw;
271
+ }
272
+
273
+ .slide-agenda .agenda-number {
274
+ font-family: 'Playfair Display', serif;
275
+ font-size: 1.5rem;
276
+ color: var(--accent);
277
+ min-width: 3vw;
278
+ }
279
+
280
+ /* Slide 3: Statement */
281
+ .slide-statement {
282
+ justify-content: center;
283
+ align-items: center;
284
+ text-align: center;
285
+ }
286
+
287
+ .slide-statement .content {
288
+ max-width: 60vw;
289
+ position: relative;
290
+ z-index: 1;
291
+ display: flex;
292
+ flex-direction: column;
293
+ justify-content: center;
294
+ align-items: center;
295
+ height: 100%;
296
+ }
297
+
298
+ .slide-statement .quote-mark {
299
+ font-family: 'Playfair Display', serif;
300
+ font-size: 5rem;
301
+ line-height: 1;
302
+ color: var(--line);
303
+ opacity: 0.5;
304
+ display: block;
305
+ margin-bottom: 2vh;
306
+ }
307
+
308
+ .slide-statement h2 {
309
+ font-style: italic;
310
+ margin-bottom: 3vh;
311
+ }
312
+
313
+ .slide-statement .attribution {
314
+ font-size: 0.85rem;
315
+ color: var(--accent);
316
+ text-transform: uppercase;
317
+ letter-spacing: 2px;
318
+ }
319
+
320
+ /* Slide 4: Bar Chart */
321
+ .slide-barchart .content {
322
+ display: grid;
323
+ grid-template-columns: 1fr 1.5fr;
324
+ gap: 5vw;
325
+ align-items: center;
326
+ height: 100%;
327
+ position: relative;
328
+ z-index: 1;
329
+ }
330
+
331
+ .slide-barchart .left-col h2 {
332
+ margin-bottom: 2vh;
333
+ }
334
+
335
+ .slide-barchart .chart-container {
336
+ position: relative;
337
+ height: 55vh;
338
+ width: 100%;
339
+ }
340
+
341
+ /* Slide 5: Two Column */
342
+ .slide-twocol .content {
343
+ display: grid;
344
+ grid-template-columns: 1fr 1fr;
345
+ gap: 5vw;
346
+ align-items: center;
347
+ height: 100%;
348
+ position: relative;
349
+ z-index: 1;
350
+ }
351
+
352
+ .slide-twocol .image-placeholder {
353
+ width: 100%;
354
+ height: 60vh;
355
+ background: var(--bg-secondary);
356
+ display: flex;
357
+ align-items: center;
358
+ justify-content: center;
359
+ border: 1px solid var(--line);
360
+ position: relative;
361
+ overflow: hidden;
362
+ }
363
+
364
+ .slide-twocol .image-placeholder::before {
365
+ content: '';
366
+ position: absolute;
367
+ width: 150%;
368
+ height: 1px;
369
+ background: var(--line);
370
+ transform: rotate(-30deg);
371
+ }
372
+
373
+ .slide-twocol .image-placeholder::after {
374
+ content: '';
375
+ position: absolute;
376
+ width: 150%;
377
+ height: 1px;
378
+ background: var(--line);
379
+ transform: rotate(30deg);
380
+ }
381
+
382
+ .slide-twocol .image-label {
383
+ position: relative;
384
+ z-index: 1;
385
+ font-size: 0.8rem;
386
+ text-transform: uppercase;
387
+ letter-spacing: 2px;
388
+ color: var(--accent);
389
+ }
390
+
391
+ .slide-twocol .right-col h2 {
392
+ margin-bottom: 2vh;
393
+ }
394
+
395
+ .slide-twocol .right-col p {
396
+ margin-bottom: 2vh;
397
+ }
398
+
399
+ .slide-twocol .stats {
400
+ display: flex;
401
+ gap: 3vw;
402
+ margin-top: 4vh;
403
+ padding-top: 3vh;
404
+ border-top: 1px solid var(--line);
405
+ }
406
+
407
+ .slide-twocol .stat-item h4 {
408
+ font-family: 'Playfair Display', serif;
409
+ font-size: 2rem;
410
+ margin-bottom: 0.5vh;
411
+ }
412
+
413
+ .slide-twocol .stat-item span {
414
+ font-size: 0.8rem;
415
+ color: var(--accent);
416
+ text-transform: uppercase;
417
+ letter-spacing: 1px;
418
+ }
419
+
420
+ /* Slide 6: Three Cards */
421
+ .slide-cards {
422
+ justify-content: center;
423
+ }
424
+
425
+ .slide-cards .content {
426
+ position: relative;
427
+ z-index: 1;
428
+ height: 100%;
429
+ display: flex;
430
+ flex-direction: column;
431
+ justify-content: center;
432
+ }
433
+
434
+ .slide-cards .header {
435
+ text-align: center;
436
+ margin-bottom: 6vh;
437
+ }
438
+
439
+ .slide-cards .header h2 {
440
+ margin-bottom: 1vh;
441
+ }
442
+
443
+ .slide-cards .cards-grid {
444
+ display: grid;
445
+ grid-template-columns: repeat(3, 1fr);
446
+ gap: 3vw;
447
+ }
448
+
449
+ .slide-cards .card {
450
+ border: 1px solid var(--line);
451
+ padding: 4vh 2vw;
452
+ background: rgba(255,255,255,0.3);
453
+ }
454
+
455
+ .slide-cards .card-icon {
456
+ width: 40px;
457
+ height: 40px;
458
+ border: 1px solid var(--line);
459
+ border-radius: 50%;
460
+ display: flex;
461
+ align-items: center;
462
+ justify-content: center;
463
+ margin-bottom: 3vh;
464
+ font-size: 1rem;
465
+ color: var(--accent);
466
+ }
467
+
468
+ .slide-cards .card h3 {
469
+ margin-bottom: 2vh;
470
+ font-size: 1.3rem;
471
+ }
472
+
473
+ .slide-cards .card p {
474
+ font-size: 0.9rem;
475
+ }
476
+
477
+ /* Slide 7: Line Chart */
478
+ .slide-linechart .content {
479
+ display: flex;
480
+ flex-direction: column;
481
+ height: 100%;
482
+ position: relative;
483
+ z-index: 1;
484
+ }
485
+
486
+ .slide-linechart .header {
487
+ display: flex;
488
+ justify-content: space-between;
489
+ align-items: baseline;
490
+ margin-bottom: 4vh;
491
+ }
492
+
493
+ .slide-linechart .chart-wrapper {
494
+ flex: 1;
495
+ position: relative;
496
+ min-height: 0;
497
+ }
498
+
499
+ .slide-linechart .chart-wrapper canvas {
500
+ max-height: 100%;
501
+ }
502
+
503
+ /* Slide 8: Timeline */
504
+ .slide-timeline .content {
505
+ display: flex;
506
+ flex-direction: column;
507
+ justify-content: center;
508
+ height: 100%;
509
+ position: relative;
510
+ z-index: 1;
511
+ }
512
+
513
+ .slide-timeline .header {
514
+ margin-bottom: 6vh;
515
+ }
516
+
517
+ .slide-timeline .timeline {
518
+ display: flex;
519
+ justify-content: space-between;
520
+ position: relative;
521
+ padding-top: 3vh;
522
+ }
523
+
524
+ .slide-timeline .timeline::before {
525
+ content: '';
526
+ position: absolute;
527
+ top: 0;
528
+ left: 0;
529
+ right: 0;
530
+ height: 1px;
531
+ background: var(--line);
532
+ }
533
+
534
+ .slide-timeline .timeline-item {
535
+ flex: 1;
536
+ padding-right: 3vw;
537
+ position: relative;
538
+ }
539
+
540
+ /* Phase markers removed — the labels alone provide enough structure
541
+ and the small circles were colliding with the start of each label. */
542
+ .slide-timeline .timeline-item::before {
543
+ content: none;
544
+ }
545
+
546
+ .slide-timeline .timeline-item h4 {
547
+ font-family: 'Playfair Display', serif;
548
+ font-size: 1.2rem;
549
+ margin-bottom: 1vh;
550
+ margin-top: 2vh;
551
+ }
552
+
553
+ .slide-timeline .timeline-item .year {
554
+ font-size: 0.75rem;
555
+ color: var(--accent);
556
+ text-transform: uppercase;
557
+ letter-spacing: 2px;
558
+ margin-bottom: 1vh;
559
+ }
560
+
561
+ .slide-timeline .timeline-item p {
562
+ font-size: 0.85rem;
563
+ }
564
+
565
+ /* Slide 9: Team */
566
+ .slide-team .content {
567
+ display: flex;
568
+ flex-direction: column;
569
+ justify-content: center;
570
+ height: 100%;
571
+ position: relative;
572
+ z-index: 1;
573
+ }
574
+
575
+ .slide-team .header {
576
+ text-align: center;
577
+ margin-bottom: 6vh;
578
+ }
579
+
580
+ .slide-team .team-grid {
581
+ display: flex;
582
+ justify-content: center;
583
+ gap: 4vw;
584
+ }
585
+
586
+ .slide-team .team-member {
587
+ text-align: center;
588
+ }
589
+
590
+ .slide-team .member-photo {
591
+ width: 12vw;
592
+ height: 12vw;
593
+ border-radius: 50%;
594
+ background: var(--bg-secondary);
595
+ margin: 0 auto 2vh;
596
+ border: 1px solid var(--line);
597
+ display: flex;
598
+ align-items: center;
599
+ justify-content: center;
600
+ font-size: 2rem;
601
+ color: var(--accent);
602
+ }
603
+
604
+ .slide-team .team-member h4 {
605
+ font-family: 'Playfair Display', serif;
606
+ font-size: 1.2rem;
607
+ margin-bottom: 0.5vh;
608
+ }
609
+
610
+ .slide-team .team-member span {
611
+ font-size: 0.8rem;
612
+ color: var(--accent);
613
+ text-transform: uppercase;
614
+ letter-spacing: 1px;
615
+ }
616
+
617
+ /* Slide 10: Closing */
618
+ .slide-closing {
619
+ justify-content: center;
620
+ align-items: center;
621
+ text-align: center;
622
+ }
623
+
624
+ .slide-closing .content {
625
+ position: relative;
626
+ z-index: 1;
627
+ }
628
+
629
+ .slide-closing h1 {
630
+ margin-bottom: 3vh;
631
+ }
632
+
633
+ .slide-closing p {
634
+ margin-bottom: 4vh;
635
+ color: var(--accent);
636
+ text-transform: uppercase;
637
+ letter-spacing: 3px;
638
+ font-size: 0.9rem;
639
+ }
640
+
641
+ .slide-closing .geo-ring {
642
+ position: absolute;
643
+ top: 50%;
644
+ left: 50%;
645
+ transform: translate(-50%, -50%);
646
+ width: 50vw;
647
+ height: 50vw;
648
+ border: 1px solid var(--line);
649
+ border-radius: 50%;
650
+ opacity: 0.3;
651
+ z-index: 0;
652
+ }
653
+
654
+ .slide-closing .geo-ring::before {
655
+ content: '';
656
+ position: absolute;
657
+ top: 15%;
658
+ left: 15%;
659
+ width: 70%;
660
+ height: 70%;
661
+ border: 1px dashed var(--line);
662
+ border-radius: 50%;
663
+ }
664
+
665
+ /* Vertical line decoration */
666
+ .vertical-line {
667
+ position: absolute;
668
+ left: 8vw;
669
+ top: 0;
670
+ width: 1px;
671
+ height: 100%;
672
+ background: var(--line);
673
+ opacity: 0.3;
674
+ z-index: 0;
675
+ }
676
+
677
+ /* Horizontal accent */
678
+ .horizontal-accent {
679
+ position: absolute;
680
+ bottom: 15vh;
681
+ left: 0;
682
+ width: 20vw;
683
+ height: 1px;
684
+ background: var(--text-primary);
685
+ z-index: 0;
686
+ }
687
+
688
+ @media (max-aspect-ratio: 4/3) {
689
+ .slide-agenda .content,
690
+ .slide-barchart .content,
691
+ .slide-twocol .content {
692
+ grid-template-columns: 1fr;
693
+ gap: 3vh;
694
+ }
695
+
696
+ .slide-cards .cards-grid {
697
+ grid-template-columns: 1fr;
698
+ }
699
+
700
+ .slide-timeline .timeline {
701
+ flex-direction: column;
702
+ gap: 3vh;
703
+ }
704
+
705
+ .slide-timeline .timeline::before {
706
+ display: none;
707
+ }
708
+
709
+ .slide-team .team-grid {
710
+ flex-direction: column;
711
+ gap: 3vh;
712
+ }
713
+ }
714
+ </style>
715
+ </head>
716
+ <body>
717
+ <div class="presentation">
718
+ <!-- Slide 1: Title -->
719
+ <div class="slide slide-title active">
720
+ <div class="geo-decoration"></div>
721
+ <div class="content">
722
+ <div class="label">Presentation Template</div>
723
+ <h1>Cartesian</h1>
724
+ <p class="subtitle">A minimalist framework for strategic narratives. Clean geometry meets editorial refinement.</p>
725
+ </div>
726
+ </div>
727
+
728
+ <!-- Slide 2: Agenda -->
729
+ <div class="slide slide-agenda">
730
+ <div class="content">
731
+ <div class="left-col">
732
+ <div class="label">Overview</div>
733
+ <h2>Session Agenda</h2>
734
+ <p>An outline of key discussion points structured to guide our strategic conversation forward.</p>
735
+ </div>
736
+ <div class="right-col">
737
+ <ul class="agenda-list">
738
+ <li><span class="agenda-number">01</span> Market Position Analysis</li>
739
+ <li><span class="agenda-number">02</span> Core Value Proposition</li>
740
+ <li><span class="agenda-number">03</span> Growth Trajectory</li>
741
+ <li><span class="agenda-number">04</span> Implementation Roadmap</li>
742
+ </ul>
743
+ </div>
744
+ </div>
745
+ </div>
746
+
747
+ <!-- Slide 3: Statement -->
748
+ <div class="slide slide-statement">
749
+ <div class="content">
750
+ <span class="quote-mark">"</span>
751
+ <h2>Precision in approach defines the boundary between noise and signal.</h2>
752
+ <div class="attribution">Guiding Principle</div>
753
+ </div>
754
+ <div class="geo-decoration" style="left: -10vw; top: 10vh; width: 40vw; height: 40vw; opacity: 0.2;"></div>
755
+ </div>
756
+
757
+ <!-- Slide 4: Bar Chart -->
758
+ <div class="slide slide-barchart">
759
+ <div class="content">
760
+ <div class="left-col">
761
+ <div class="label">Performance Data</div>
762
+ <h2>Quarterly Metrics</h2>
763
+ <p>Comparative analysis across key business indicators demonstrating sustained momentum and operational efficiency.</p>
764
+ </div>
765
+ <div class="right-col">
766
+ <div class="chart-container">
767
+ <canvas id="barChart"></canvas>
768
+ </div>
769
+ </div>
770
+ </div>
771
+ </div>
772
+
773
+ <!-- Slide 5: Two Column -->
774
+ <div class="slide slide-twocol">
775
+ <div class="content">
776
+ <div class="left-col">
777
+ <div class="image-placeholder">
778
+ <span class="image-label">Visual Reference</span>
779
+ </div>
780
+ </div>
781
+ <div class="right-col">
782
+ <div class="label">Case Study</div>
783
+ <h2>Structural Overview</h2>
784
+ <p>A comprehensive examination of foundational elements that define our operational framework and strategic positioning within the market landscape.</p>
785
+ <p>Through iterative refinement and measured adaptation, the methodology ensures alignment with evolving objectives and stakeholder expectations.</p>
786
+ <div class="stats">
787
+ <div class="stat-item">
788
+ <h4>47%</h4>
789
+ <span>Efficiency Gain</span>
790
+ </div>
791
+ <div class="stat-item">
792
+ <h4>12x</h4>
793
+ <span>Scale Factor</span>
794
+ </div>
795
+ <div class="stat-item">
796
+ <h4>3.2M</h4>
797
+ <span>Revenue Impact</span>
798
+ </div>
799
+ </div>
800
+ </div>
801
+ </div>
802
+ </div>
803
+
804
+ <!-- Slide 6: Three Cards -->
805
+ <div class="slide slide-cards">
806
+ <div class="content">
807
+ <div class="header">
808
+ <div class="label">Capabilities</div>
809
+ <h2>Core Competencies</h2>
810
+ </div>
811
+ <div class="cards-grid">
812
+ <div class="card">
813
+ <div class="card-icon">I</div>
814
+ <h3>Analytical Depth</h3>
815
+ <p>Rigorous data-driven methodologies that transform raw information into actionable strategic intelligence.</p>
816
+ </div>
817
+ <div class="card">
818
+ <div class="card-icon">II</div>
819
+ <h3>Operational Scale</h3>
820
+ <p>Streamlined processes designed to expand seamlessly while maintaining quality and consistency.</p>
821
+ </div>
822
+ <div class="card">
823
+ <div class="card-icon">III</div>
824
+ <h3>Adaptive Design</h3>
825
+ <p>Flexible frameworks that evolve with changing conditions and emerging opportunities.</p>
826
+ </div>
827
+ </div>
828
+ </div>
829
+ </div>
830
+
831
+ <!-- Slide 7: Line Chart -->
832
+ <div class="slide slide-linechart">
833
+ <div class="content">
834
+ <div class="header">
835
+ <div>
836
+ <div class="label">Trend Analysis</div>
837
+ <h2>Growth Projection</h2>
838
+ </div>
839
+ <p style="max-width: 25vw; text-align: right;">Multi-year trajectory illustrating compound growth patterns and market penetration metrics.</p>
840
+ </div>
841
+ <div class="chart-wrapper">
842
+ <canvas id="lineChart"></canvas>
843
+ </div>
844
+ </div>
845
+ </div>
846
+
847
+ <!-- Slide 8: Timeline -->
848
+ <div class="slide slide-timeline">
849
+ <div class="content">
850
+ <div class="header">
851
+ <div class="label">Roadmap</div>
852
+ <h2>Implementation Phases</h2>
853
+ </div>
854
+ <div class="timeline">
855
+ <div class="timeline-item">
856
+ <div class="year">Phase One</div>
857
+ <h4>Discovery</h4>
858
+ <p>Initial assessment and comprehensive audit of existing systems and processes.</p>
859
+ </div>
860
+ <div class="timeline-item">
861
+ <div class="year">Phase Two</div>
862
+ <h4>Strategy</h4>
863
+ <p>Development of tailored frameworks aligned with organizational objectives.</p>
864
+ </div>
865
+ <div class="timeline-item">
866
+ <div class="year">Phase Three</div>
867
+ <h4>Execution</h4>
868
+ <p>Phased rollout with continuous monitoring and iterative optimization.</p>
869
+ </div>
870
+ <div class="timeline-item">
871
+ <div class="year">Phase Four</div>
872
+ <h4>Scale</h4>
873
+ <p>Expansion of proven methodologies across all operational units.</p>
874
+ </div>
875
+ </div>
876
+ </div>
877
+ </div>
878
+
879
+ <!-- Slide 9: Team -->
880
+ <div class="slide slide-team">
881
+ <div class="content">
882
+ <div class="header">
883
+ <div class="label">Leadership</div>
884
+ <h2>Key Contributors</h2>
885
+ </div>
886
+ <div class="team-grid">
887
+ <div class="team-member">
888
+ <div class="member-photo">A</div>
889
+ <h4>Alex Morgan</h4>
890
+ <span>Strategy Director</span>
891
+ </div>
892
+ <div class="team-member">
893
+ <div class="member-photo">J</div>
894
+ <h4>Jordan Lee</h4>
895
+ <span>Operations Lead</span>
896
+ </div>
897
+ <div class="team-member">
898
+ <div class="member-photo">S</div>
899
+ <h4>Sam Taylor</h4>
900
+ <span>Research Head</span>
901
+ </div>
902
+ <div class="team-member">
903
+ <div class="member-photo">R</div>
904
+ <h4>Reese Park</h4>
905
+ <span>Design Principal</span>
906
+ </div>
907
+ </div>
908
+ </div>
909
+ </div>
910
+
911
+ <!-- Slide 10: Closing -->
912
+ <div class="slide slide-closing">
913
+ <div class="geo-ring"></div>
914
+ <div class="content">
915
+ <div class="label">Conclusion</div>
916
+ <h1>Thank You</h1>
917
+ <p>Questions & Discussion</p>
918
+ <div style="margin-top: 4vh; font-size: 0.85rem; color: var(--accent);">
919
+ contact@example.com
920
+ </div>
921
+ </div>
922
+ </div>
923
+ </div>
924
+
925
+ <!-- Navigation -->
926
+ <div class="nav-dots">
927
+ <div class="nav-dot active" data-slide="0"></div>
928
+ <div class="nav-dot" data-slide="1"></div>
929
+ <div class="nav-dot" data-slide="2"></div>
930
+ <div class="nav-dot" data-slide="3"></div>
931
+ <div class="nav-dot" data-slide="4"></div>
932
+ <div class="nav-dot" data-slide="5"></div>
933
+ <div class="nav-dot" data-slide="6"></div>
934
+ <div class="nav-dot" data-slide="7"></div>
935
+ <div class="nav-dot" data-slide="8"></div>
936
+ <div class="nav-dot" data-slide="9"></div>
937
+ </div>
938
+
939
+ <div class="nav-arrows">
940
+ <button class="nav-arrow" id="prevBtn">&#8592;</button>
941
+ <button class="nav-arrow" id="nextBtn">&#8594;</button>
942
+ </div>
943
+
944
+ <div class="slide-counter">
945
+ <span id="currentSlide">01</span> / <span id="totalSlides">10</span>
946
+ </div>
947
+
948
+ <script>
949
+ const slides = document.querySelectorAll('.slide');
950
+ const dots = document.querySelectorAll('.nav-dot');
951
+ let currentSlide = 0;
952
+ const totalSlides = slides.length;
953
+
954
+ document.getElementById('totalSlides').textContent = String(totalSlides).padStart(2, '0');
955
+
956
+ function showSlide(index) {
957
+ slides.forEach((slide, i) => {
958
+ slide.classList.toggle('active', i === index);
959
+ });
960
+ dots.forEach((dot, i) => {
961
+ dot.classList.toggle('active', i === index);
962
+ });
963
+ document.getElementById('currentSlide').textContent = String(index + 1).padStart(2, '0');
964
+ currentSlide = index;
965
+ }
966
+
967
+ function nextSlide() {
968
+ const next = (currentSlide + 1) % totalSlides;
969
+ showSlide(next);
970
+ }
971
+
972
+ function prevSlide() {
973
+ const prev = (currentSlide - 1 + totalSlides) % totalSlides;
974
+ showSlide(prev);
975
+ }
976
+
977
+ document.getElementById('nextBtn').addEventListener('click', nextSlide);
978
+ document.getElementById('prevBtn').addEventListener('click', prevSlide);
979
+
980
+ dots.forEach(dot => {
981
+ dot.addEventListener('click', () => {
982
+ showSlide(parseInt(dot.dataset.slide));
983
+ });
984
+ });
985
+
986
+ document.addEventListener('keydown', (e) => {
987
+ if (e.key === 'ArrowRight' || e.key === ' ') {
988
+ e.preventDefault();
989
+ nextSlide();
990
+ } else if (e.key === 'ArrowLeft') {
991
+ e.preventDefault();
992
+ prevSlide();
993
+ }
994
+ });
995
+
996
+ // Bar Chart
997
+ const barCtx = document.getElementById('barChart').getContext('2d');
998
+ new Chart(barCtx, {
999
+ type: 'bar',
1000
+ data: {
1001
+ labels: ['Q1', 'Q2', 'Q3', 'Q4'],
1002
+ datasets: [{
1003
+ label: 'Revenue',
1004
+ data: [2.4, 3.1, 3.8, 4.5],
1005
+ backgroundColor: '#1a1a1a',
1006
+ borderColor: '#1a1a1a',
1007
+ borderWidth: 1
1008
+ }, {
1009
+ label: 'Target',
1010
+ data: [2.5, 3.0, 3.5, 4.2],
1011
+ backgroundColor: 'transparent',
1012
+ borderColor: '#b8b0a4',
1013
+ borderWidth: 2,
1014
+ borderDash: [5, 5]
1015
+ }]
1016
+ },
1017
+ options: {
1018
+ responsive: true,
1019
+ maintainAspectRatio: false,
1020
+ plugins: {
1021
+ legend: {
1022
+ position: 'bottom',
1023
+ labels: {
1024
+ font: { family: 'Inter', size: 11 },
1025
+ color: '#5a5a5a',
1026
+ usePointStyle: true,
1027
+ padding: 20
1028
+ }
1029
+ }
1030
+ },
1031
+ scales: {
1032
+ y: {
1033
+ beginAtZero: true,
1034
+ grid: {
1035
+ color: '#e2dbd1',
1036
+ drawBorder: false
1037
+ },
1038
+ ticks: {
1039
+ font: { family: 'Inter', size: 11 },
1040
+ color: '#8a8178',
1041
+ padding: 10
1042
+ }
1043
+ },
1044
+ x: {
1045
+ grid: {
1046
+ display: false,
1047
+ drawBorder: false
1048
+ },
1049
+ ticks: {
1050
+ font: { family: 'Inter', size: 12 },
1051
+ color: '#1a1a1a',
1052
+ padding: 10
1053
+ }
1054
+ }
1055
+ }
1056
+ }
1057
+ });
1058
+
1059
+ // Line Chart
1060
+ const lineCtx = document.getElementById('lineChart').getContext('2d');
1061
+ new Chart(lineCtx, {
1062
+ type: 'line',
1063
+ data: {
1064
+ labels: ['2020', '2021', '2022', '2023', '2024', '2025'],
1065
+ datasets: [{
1066
+ label: 'Market Share',
1067
+ data: [12, 18, 25, 34, 42, 51],
1068
+ borderColor: '#1a1a1a',
1069
+ backgroundColor: 'rgba(26, 26, 26, 0.05)',
1070
+ borderWidth: 2,
1071
+ fill: true,
1072
+ tension: 0.4,
1073
+ pointBackgroundColor: '#1a1a1a',
1074
+ pointBorderColor: '#ede8e0',
1075
+ pointBorderWidth: 2,
1076
+ pointRadius: 5
1077
+ }, {
1078
+ label: 'Industry Average',
1079
+ data: [10, 14, 19, 24, 30, 36],
1080
+ borderColor: '#b8b0a4',
1081
+ backgroundColor: 'transparent',
1082
+ borderWidth: 2,
1083
+ borderDash: [5, 5],
1084
+ fill: false,
1085
+ tension: 0.4,
1086
+ pointBackgroundColor: '#b8b0a4',
1087
+ pointRadius: 4
1088
+ }]
1089
+ },
1090
+ options: {
1091
+ responsive: true,
1092
+ maintainAspectRatio: false,
1093
+ plugins: {
1094
+ legend: {
1095
+ position: 'bottom',
1096
+ labels: {
1097
+ font: { family: 'Inter', size: 11 },
1098
+ color: '#5a5a5a',
1099
+ usePointStyle: true,
1100
+ padding: 20
1101
+ }
1102
+ }
1103
+ },
1104
+ scales: {
1105
+ y: {
1106
+ beginAtZero: true,
1107
+ grid: {
1108
+ color: '#e2dbd1',
1109
+ drawBorder: false
1110
+ },
1111
+ ticks: {
1112
+ font: { family: 'Inter', size: 11 },
1113
+ color: '#8a8178',
1114
+ padding: 10,
1115
+ callback: function(value) {
1116
+ return value + '%';
1117
+ }
1118
+ }
1119
+ },
1120
+ x: {
1121
+ grid: {
1122
+ display: false,
1123
+ drawBorder: false
1124
+ },
1125
+ ticks: {
1126
+ font: { family: 'Inter', size: 12 },
1127
+ color: '#1a1a1a',
1128
+ padding: 10
1129
+ }
1130
+ }
1131
+ }
1132
+ }
1133
+ });
1134
+ </script>
1135
+ </body>
1136
+ </html>