@peaske7/readit 0.1.4 → 0.1.5

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 (320) hide show
  1. package/.agents/skills/remotion-best-practices/SKILL.md +61 -0
  2. package/.agents/skills/remotion-best-practices/rules/3d.md +86 -0
  3. package/.agents/skills/remotion-best-practices/rules/animations.md +27 -0
  4. package/.agents/skills/remotion-best-practices/rules/assets/charts-bar-chart.tsx +178 -0
  5. package/.agents/skills/remotion-best-practices/rules/assets/text-animations-typewriter.tsx +100 -0
  6. package/.agents/skills/remotion-best-practices/rules/assets/text-animations-word-highlight.tsx +108 -0
  7. package/.agents/skills/remotion-best-practices/rules/assets.md +78 -0
  8. package/.agents/skills/remotion-best-practices/rules/audio-visualization.md +198 -0
  9. package/.agents/skills/remotion-best-practices/rules/audio.md +169 -0
  10. package/.agents/skills/remotion-best-practices/rules/calculate-metadata.md +134 -0
  11. package/.agents/skills/remotion-best-practices/rules/can-decode.md +75 -0
  12. package/.agents/skills/remotion-best-practices/rules/charts.md +120 -0
  13. package/.agents/skills/remotion-best-practices/rules/compositions.md +154 -0
  14. package/.agents/skills/remotion-best-practices/rules/display-captions.md +184 -0
  15. package/.agents/skills/remotion-best-practices/rules/extract-frames.md +229 -0
  16. package/.agents/skills/remotion-best-practices/rules/ffmpeg.md +38 -0
  17. package/.agents/skills/remotion-best-practices/rules/fonts.md +152 -0
  18. package/.agents/skills/remotion-best-practices/rules/get-audio-duration.md +58 -0
  19. package/.agents/skills/remotion-best-practices/rules/get-video-dimensions.md +68 -0
  20. package/.agents/skills/remotion-best-practices/rules/get-video-duration.md +60 -0
  21. package/.agents/skills/remotion-best-practices/rules/gifs.md +141 -0
  22. package/.agents/skills/remotion-best-practices/rules/images.md +134 -0
  23. package/.agents/skills/remotion-best-practices/rules/import-srt-captions.md +69 -0
  24. package/.agents/skills/remotion-best-practices/rules/light-leaks.md +73 -0
  25. package/.agents/skills/remotion-best-practices/rules/lottie.md +70 -0
  26. package/.agents/skills/remotion-best-practices/rules/maps.md +412 -0
  27. package/.agents/skills/remotion-best-practices/rules/measuring-dom-nodes.md +34 -0
  28. package/.agents/skills/remotion-best-practices/rules/measuring-text.md +140 -0
  29. package/.agents/skills/remotion-best-practices/rules/parameters.md +109 -0
  30. package/.agents/skills/remotion-best-practices/rules/sequencing.md +118 -0
  31. package/.agents/skills/remotion-best-practices/rules/sfx.md +26 -0
  32. package/.agents/skills/remotion-best-practices/rules/subtitles.md +36 -0
  33. package/.agents/skills/remotion-best-practices/rules/tailwind.md +11 -0
  34. package/.agents/skills/remotion-best-practices/rules/text-animations.md +20 -0
  35. package/.agents/skills/remotion-best-practices/rules/timing.md +179 -0
  36. package/.agents/skills/remotion-best-practices/rules/transcribe-captions.md +70 -0
  37. package/.agents/skills/remotion-best-practices/rules/transitions.md +197 -0
  38. package/.agents/skills/remotion-best-practices/rules/transparent-videos.md +106 -0
  39. package/.agents/skills/remotion-best-practices/rules/trimming.md +51 -0
  40. package/.agents/skills/remotion-best-practices/rules/videos.md +171 -0
  41. package/.agents/skills/remotion-best-practices/rules/voiceover.md +99 -0
  42. package/.agents/skills/simple/SKILL.md +52 -0
  43. package/.agents/skills/vercel-react-best-practices/AGENTS.md +3254 -0
  44. package/.agents/skills/vercel-react-best-practices/README.md +123 -0
  45. package/.agents/skills/vercel-react-best-practices/SKILL.md +141 -0
  46. package/.agents/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
  47. package/.agents/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
  48. package/.agents/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
  49. package/.agents/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
  50. package/.agents/skills/vercel-react-best-practices/rules/async-defer-await.md +80 -0
  51. package/.agents/skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
  52. package/.agents/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
  53. package/.agents/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
  54. package/.agents/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +59 -0
  55. package/.agents/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
  56. package/.agents/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
  57. package/.agents/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
  58. package/.agents/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
  59. package/.agents/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
  60. package/.agents/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
  61. package/.agents/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
  62. package/.agents/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
  63. package/.agents/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
  64. package/.agents/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
  65. package/.agents/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
  66. package/.agents/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
  67. package/.agents/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
  68. package/.agents/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
  69. package/.agents/skills/vercel-react-best-practices/rules/js-flatmap-filter.md +60 -0
  70. package/.agents/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
  71. package/.agents/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
  72. package/.agents/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
  73. package/.agents/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
  74. package/.agents/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
  75. package/.agents/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
  76. package/.agents/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
  77. package/.agents/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
  78. package/.agents/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
  79. package/.agents/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
  80. package/.agents/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
  81. package/.agents/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
  82. package/.agents/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
  83. package/.agents/skills/vercel-react-best-practices/rules/rendering-resource-hints.md +85 -0
  84. package/.agents/skills/vercel-react-best-practices/rules/rendering-script-defer-async.md +68 -0
  85. package/.agents/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
  86. package/.agents/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
  87. package/.agents/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
  88. package/.agents/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
  89. package/.agents/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
  90. package/.agents/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
  91. package/.agents/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
  92. package/.agents/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
  93. package/.agents/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
  94. package/.agents/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
  95. package/.agents/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
  96. package/.agents/skills/vercel-react-best-practices/rules/rerender-no-inline-components.md +82 -0
  97. package/.agents/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
  98. package/.agents/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
  99. package/.agents/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
  100. package/.agents/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
  101. package/.agents/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
  102. package/.agents/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
  103. package/.agents/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
  104. package/.agents/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
  105. package/.agents/skills/vercel-react-best-practices/rules/server-hoist-static-io.md +142 -0
  106. package/.agents/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
  107. package/.agents/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
  108. package/.claude/CLAUDE.md +142 -0
  109. package/.claude/commands/review.md +120 -0
  110. package/.claude/commands/sync-docs.md +71 -0
  111. package/.claude/roadmap.md +98 -0
  112. package/.claude/rules/style-guide.md +830 -0
  113. package/.claude/settings.json +18 -0
  114. package/.claude/user-stories.md +248 -0
  115. package/AGENTS.md +64 -0
  116. package/README.md +7 -7
  117. package/biome.json +69 -0
  118. package/bun.lock +1124 -0
  119. package/docs/design.md +563 -0
  120. package/docs/plans/2026-03-13-keyboard-shortcuts-design.md +129 -0
  121. package/docs/plans/2026-03-13-keyboard-shortcuts-plan.md +1471 -0
  122. package/docs/plans/2026-03-13-multi-document-design.md +183 -0
  123. package/docs/plans/2026-03-13-performance-benchmarks-design.md +121 -0
  124. package/e2e/comments.spec.ts +125 -0
  125. package/e2e/document-load.spec.ts +54 -0
  126. package/e2e/export.spec.ts +58 -0
  127. package/e2e/fixtures/sample.html +13 -0
  128. package/e2e/fixtures/sample.md +7 -0
  129. package/e2e/persistence-file.spec.ts +342 -0
  130. package/e2e/utils/cli.ts +84 -0
  131. package/e2e/utils/selection.ts +135 -0
  132. package/{dist/index.html → index.html} +8 -2
  133. package/lefthook.yml +8 -0
  134. package/package.json +17 -39
  135. package/playwright.config.ts +22 -0
  136. package/skills-lock.json +20 -0
  137. package/src/App.tsx +396 -0
  138. package/src/cli/index.ts +328 -0
  139. package/src/components/ActionsMenu.tsx +110 -0
  140. package/src/components/DocumentViewer/CodeBlock.tsx +83 -0
  141. package/src/components/DocumentViewer/DocumentViewer.tsx +257 -0
  142. package/src/components/DocumentViewer/IframeContainer.tsx +251 -0
  143. package/src/components/DocumentViewer/MermaidDiagram.tsx +137 -0
  144. package/src/components/DocumentViewer/index.ts +1 -0
  145. package/src/components/FloatingTOC.tsx +59 -0
  146. package/src/components/Header.tsx +63 -0
  147. package/src/components/InlineEditor.tsx +72 -0
  148. package/src/components/MarginNote.tsx +198 -0
  149. package/src/components/MarginNotes.tsx +50 -0
  150. package/src/components/RawModal.tsx +141 -0
  151. package/src/components/ReanchorConfirm.tsx +33 -0
  152. package/src/components/SettingsModal.tsx +221 -0
  153. package/src/components/ShortcutCapture.tsx +45 -0
  154. package/src/components/ShortcutList.tsx +157 -0
  155. package/src/components/TabBar.tsx +60 -0
  156. package/src/components/TableOfContents.tsx +108 -0
  157. package/src/components/comments/CommentBadge.tsx +43 -0
  158. package/src/components/comments/CommentInput.tsx +119 -0
  159. package/src/components/comments/CommentListItem.tsx +82 -0
  160. package/src/components/comments/CommentManager.tsx +106 -0
  161. package/src/components/comments/CommentMinimap.tsx +62 -0
  162. package/src/components/comments/CommentNav.tsx +104 -0
  163. package/src/components/ui/ActionBar.tsx +16 -0
  164. package/src/components/ui/ActionLink.tsx +32 -0
  165. package/src/components/ui/Button.tsx +55 -0
  166. package/src/components/ui/Dialog.tsx +156 -0
  167. package/src/components/ui/DropdownMenu.tsx +114 -0
  168. package/src/components/ui/SeparatorDot.tsx +9 -0
  169. package/src/components/ui/Text.tsx +54 -0
  170. package/src/contexts/CommentContext.tsx +222 -0
  171. package/src/contexts/LayoutContext.tsx +76 -0
  172. package/src/hooks/useClickOutside.ts +35 -0
  173. package/src/hooks/useClipboard.ts +79 -0
  174. package/src/hooks/useCommentNavigation.ts +130 -0
  175. package/src/hooks/useComments.ts +323 -0
  176. package/src/hooks/useDocument.ts +131 -0
  177. package/src/hooks/useFontPreference.ts +76 -0
  178. package/src/hooks/useHeadings.test.ts +159 -0
  179. package/src/hooks/useHeadings.ts +129 -0
  180. package/src/hooks/useKeybindings.ts +120 -0
  181. package/src/hooks/useKeyboardShortcuts.ts +63 -0
  182. package/src/hooks/useLayoutMode.ts +44 -0
  183. package/src/hooks/useReanchorMode.ts +33 -0
  184. package/src/hooks/useScrollMetrics.ts +56 -0
  185. package/src/hooks/useScrollSpy.ts +81 -0
  186. package/src/hooks/useTextSelection.ts +123 -0
  187. package/src/hooks/useThemePreference.ts +66 -0
  188. package/src/index.css +823 -0
  189. package/src/lib/__fixtures__/bench-data.ts +167 -0
  190. package/src/lib/anchor.bench.ts +112 -0
  191. package/src/lib/anchor.test.ts +531 -0
  192. package/src/lib/anchor.ts +465 -0
  193. package/src/lib/comment-storage.bench.ts +63 -0
  194. package/src/lib/comment-storage.test.ts +624 -0
  195. package/src/lib/comment-storage.ts +263 -0
  196. package/src/lib/context.bench.ts +41 -0
  197. package/src/lib/context.test.ts +224 -0
  198. package/src/lib/context.ts +193 -0
  199. package/src/lib/export.bench.ts +35 -0
  200. package/src/lib/export.ts +43 -0
  201. package/src/lib/highlight/colors.ts +37 -0
  202. package/src/lib/highlight/core.test.ts +98 -0
  203. package/src/lib/highlight/core.ts +54 -0
  204. package/src/lib/highlight/dom.ts +342 -0
  205. package/src/lib/highlight/highlighter.ts +427 -0
  206. package/src/lib/highlight/index.ts +23 -0
  207. package/src/lib/highlight/script-builder.ts +485 -0
  208. package/src/lib/highlight/types.ts +57 -0
  209. package/src/lib/html-processor.test.tsx +170 -0
  210. package/src/lib/html-processor.tsx +95 -0
  211. package/src/lib/layout-constants.ts +12 -0
  212. package/src/lib/margin-layout.bench.ts +28 -0
  213. package/src/lib/margin-layout.ts +100 -0
  214. package/src/lib/scroll.test.ts +118 -0
  215. package/src/lib/scroll.ts +47 -0
  216. package/src/lib/shortcut-registry.test.ts +173 -0
  217. package/src/lib/shortcut-registry.ts +209 -0
  218. package/src/lib/utils.test.ts +110 -0
  219. package/src/lib/utils.ts +50 -0
  220. package/src/main.tsx +10 -0
  221. package/src/server/index.ts +766 -0
  222. package/src/store/index.test.ts +220 -0
  223. package/src/store/index.ts +234 -0
  224. package/src/test-setup.ts +1 -0
  225. package/src/types/index.ts +115 -0
  226. package/test.md +74 -0
  227. package/tsconfig.cli.json +12 -0
  228. package/tsconfig.json +20 -0
  229. package/vite.config.ts +19 -0
  230. package/vitest.config.ts +15 -0
  231. package/dist/assets/_basePickBy-hOr-yGsE.js +0 -1
  232. package/dist/assets/_baseUniq-b7bzdUSn.js +0 -1
  233. package/dist/assets/arc-D65wG9gm.js +0 -1
  234. package/dist/assets/architecture-PBZL5I3N-DBa6CAv_.js +0 -1
  235. package/dist/assets/architectureDiagram-2XIMDMQ5-Djwpsh98.js +0 -36
  236. package/dist/assets/array-DOVTz2Mq.js +0 -1
  237. package/dist/assets/blockDiagram-WCTKOSBZ-BdW5TTxj.js +0 -132
  238. package/dist/assets/c4Diagram-IC4MRINW-DTmkHEXu.js +0 -10
  239. package/dist/assets/channel-B3MUFipN.js +0 -1
  240. package/dist/assets/chunk-4BX2VUAB-DEqzsvDc.js +0 -1
  241. package/dist/assets/chunk-55IACEB6-BzVuSUV8.js +0 -1
  242. package/dist/assets/chunk-7E7YKBS2-CZ8IcA4c.js +0 -1
  243. package/dist/assets/chunk-7R4GIKGN-CWVVC8HX.js +0 -79
  244. package/dist/assets/chunk-C72U2L5F-B1Tso5TH.js +0 -1
  245. package/dist/assets/chunk-EGIJ26TM-Cx_7CFik.js +0 -1
  246. package/dist/assets/chunk-FMBD7UC4-Cfk_iGhv.js +0 -15
  247. package/dist/assets/chunk-GEFDOKGD-C_5hRbJt.js +0 -2
  248. package/dist/assets/chunk-GLR3WWYH-CkY7IyBj.js +0 -2
  249. package/dist/assets/chunk-HHEYEP7N-B0I4X5cr.js +0 -1
  250. package/dist/assets/chunk-JSJVCQXG-CAjwlVLg.js +0 -1
  251. package/dist/assets/chunk-KX2RTZJC-DWqnZZ02.js +0 -1
  252. package/dist/assets/chunk-KYZI473N-gjRVhJgJ.js +0 -53
  253. package/dist/assets/chunk-L3YUKLVL-D7C9GuxL.js +0 -1
  254. package/dist/assets/chunk-MX3YWQON-i-77iuVj.js +0 -1
  255. package/dist/assets/chunk-NQ4KR5QH-B22Pvemm.js +0 -220
  256. package/dist/assets/chunk-O4XLMI2P-ZQd5L6ZD.js +0 -7
  257. package/dist/assets/chunk-OZEHJAEY-BaPKTELw.js +0 -1
  258. package/dist/assets/chunk-PQ6SQG4A-DqE1eupT.js +0 -1
  259. package/dist/assets/chunk-PU5JKC2W-BTqWqedh.js +0 -70
  260. package/dist/assets/chunk-QZHKN3VN-Nm9TvMss.js +0 -1
  261. package/dist/assets/chunk-R5LLSJPH-DkiNs1dN.js +0 -1
  262. package/dist/assets/chunk-WL4C6EOR-CioD2fv2.js +0 -189
  263. package/dist/assets/chunk-XIRO2GV7-B4GGQONY.js +0 -1
  264. package/dist/assets/chunk-XPW4576I-C0IbbQos.js +0 -32
  265. package/dist/assets/chunk-XZSTWKYB-DMOqFWmT.js +0 -94
  266. package/dist/assets/chunk-YBOYWFTD-CoeQgeVY.js +0 -1
  267. package/dist/assets/classDiagram-VBA2DB6C-DV9ltQ7h.js +0 -1
  268. package/dist/assets/classDiagram-v2-RAHNMMFH-C6nD9wmM.js +0 -1
  269. package/dist/assets/clone-DuY6BQEm.js +0 -1
  270. package/dist/assets/cose-bilkent-S5V4N54A-B6FexK6p.js +0 -1
  271. package/dist/assets/cytoscape.esm-DoTFyJaN.js +0 -321
  272. package/dist/assets/dagre-CCcocoCU.js +0 -1
  273. package/dist/assets/dagre-KLK3FWXG-DIELowj9.js +0 -4
  274. package/dist/assets/defaultLocale-Ck2Xxk-C.js +0 -1
  275. package/dist/assets/diagram-E7M64L7V-D1mm0PoO.js +0 -24
  276. package/dist/assets/diagram-IFDJBPK2-7DVjly8y.js +0 -43
  277. package/dist/assets/diagram-P4PSJMXO-jO7pfyMb.js +0 -24
  278. package/dist/assets/dist-BywRdrPx.js +0 -1
  279. package/dist/assets/erDiagram-INFDFZHY-DSRxlRFy.js +0 -70
  280. package/dist/assets/flowDiagram-PKNHOUZH-CgKzzNdR.js +0 -162
  281. package/dist/assets/ganttDiagram-A5KZAMGK-CtsE7Y4E.js +0 -292
  282. package/dist/assets/gitGraph-HDMCJU4V-BU9uhwtz.js +0 -1
  283. package/dist/assets/gitGraphDiagram-K3NZZRJ6-DOU8RGdw.js +0 -65
  284. package/dist/assets/graphlib-WkJoBgka.js +0 -1
  285. package/dist/assets/index-CKVArt9D.js +0 -562
  286. package/dist/assets/index-DzRKJazf.css +0 -2
  287. package/dist/assets/info-3K5VOQVL-CPpvM-SG.js +0 -1
  288. package/dist/assets/infoDiagram-LFFYTUFH-VKLs5DsF.js +0 -2
  289. package/dist/assets/init-Bft5Ffpj.js +0 -1
  290. package/dist/assets/isArrayLikeObject-icl0H0jo.js +0 -1
  291. package/dist/assets/isEmpty-Du8sNmkE.js +0 -1
  292. package/dist/assets/ishikawaDiagram-PHBUUO56-CsWvEjux.js +0 -70
  293. package/dist/assets/journeyDiagram-4ABVD52K-BzJGTdIT.js +0 -139
  294. package/dist/assets/kanban-definition-K7BYSVSG-B_9ClJ1A.js +0 -89
  295. package/dist/assets/katex-BJrMXEjr.js +0 -261
  296. package/dist/assets/line-CC_tDGId.js +0 -1
  297. package/dist/assets/linear-Cts_d04Y.js +0 -1
  298. package/dist/assets/math-CNhlSIO3.js +0 -1
  299. package/dist/assets/mermaid-parser.core-Vb9KKv1R.js +0 -4
  300. package/dist/assets/mermaid.core-C_7xsp3d.js +0 -11
  301. package/dist/assets/mindmap-definition-YRQLILUH-BWmfy5wB.js +0 -68
  302. package/dist/assets/ordinal-DIg8h6NI.js +0 -1
  303. package/dist/assets/packet-RMMSAZCW-Q-WG6o3b.js +0 -1
  304. package/dist/assets/path-DfRbCp9y.js +0 -1
  305. package/dist/assets/pie-UPGHQEXC-Cwi2tLlt.js +0 -1
  306. package/dist/assets/pieDiagram-SKSYHLDU-Dyf3X_in.js +0 -30
  307. package/dist/assets/quadrantDiagram-337W2JSQ-B5_5m61Q.js +0 -7
  308. package/dist/assets/radar-KQ55EAFF-Dtw2VzxY.js +0 -1
  309. package/dist/assets/requirementDiagram-Z7DCOOCP-BSERBnlW.js +0 -73
  310. package/dist/assets/rough.esm-KjoEK0it.js +0 -1
  311. package/dist/assets/sankeyDiagram-WA2Y5GQK-CMcEY8Cz.js +0 -10
  312. package/dist/assets/sequenceDiagram-2WXFIKYE-D28qcXwC.js +0 -145
  313. package/dist/assets/src-C8kkzlHX.js +0 -1
  314. package/dist/assets/stateDiagram-RAJIS63D-7oVrCmRl.js +0 -1
  315. package/dist/assets/stateDiagram-v2-FVOUBMTO-DtFptQAd.js +0 -1
  316. package/dist/assets/timeline-definition-YZTLITO2-rbCfBEvG.js +0 -61
  317. package/dist/assets/treemap-KZPCXAKY-BlRvF0um.js +0 -1
  318. package/dist/assets/vennDiagram-LZ73GAT5-DBit3zWa.js +0 -34
  319. package/dist/assets/xychartDiagram-JWTSCODW-BVYXv51y.js +0 -7
  320. package/dist/index.js +0 -1040
package/src/index.css ADDED
@@ -0,0 +1,823 @@
1
+ @import "tailwindcss";
2
+ @custom-variant dark (&:where(.dark, .dark *));
3
+
4
+ /* Font family system */
5
+ .font-serif {
6
+ font-family: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;
7
+ }
8
+
9
+ .font-sans {
10
+ font-family:
11
+ ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI",
12
+ Roboto, sans-serif;
13
+ }
14
+
15
+ /* Selection highlight */
16
+ ::selection {
17
+ background: var(--selection-bg);
18
+ }
19
+
20
+ /* Smooth scrolling */
21
+ html {
22
+ scroll-behavior: smooth;
23
+ }
24
+
25
+ /* Custom scrollbar */
26
+ ::-webkit-scrollbar {
27
+ width: 8px;
28
+ height: 8px;
29
+ }
30
+
31
+ ::-webkit-scrollbar-track {
32
+ background: var(--scrollbar-track);
33
+ }
34
+
35
+ ::-webkit-scrollbar-thumb {
36
+ background: var(--scrollbar-thumb);
37
+ border-radius: 4px;
38
+ }
39
+
40
+ ::-webkit-scrollbar-thumb:hover {
41
+ background: var(--scrollbar-thumb-hover);
42
+ }
43
+
44
+ /* ========================================
45
+ Theme Variables
46
+ ======================================== */
47
+
48
+ :root {
49
+ /* Page / chrome */
50
+ --page-bg: #ffffff;
51
+ --selection-bg: rgba(59, 130, 246, 0.3);
52
+
53
+ /* Scrollbar */
54
+ --scrollbar-track: #f4f4f5;
55
+ --scrollbar-thumb: #cccccc;
56
+ --scrollbar-thumb-hover: #aaaaaa;
57
+
58
+ /* Prose */
59
+ --prose-body: #3f3f46;
60
+ --prose-headings: #18181b;
61
+ --prose-links: #2563eb;
62
+ --prose-links-hover: #1d4ed8;
63
+ --prose-bold: #18181b;
64
+ --prose-code-bg: #f4f4f5;
65
+ --prose-border: #e4e4e7;
66
+ --prose-table-header-bg: #fafafa;
67
+ --prose-table-even-bg: #fafafa;
68
+ --prose-blockquote: #71717a;
69
+ --prose-summary-marker: #a1a1aa;
70
+
71
+ /* TOC */
72
+ --toc-text: rgba(26, 26, 26, 0.5);
73
+ --toc-text-l2: rgba(26, 26, 26, 0.45);
74
+ --toc-text-l3: rgba(26, 26, 26, 0.4);
75
+ --toc-text-deep: rgba(26, 26, 26, 0.35);
76
+ --toc-hover: rgba(26, 26, 26, 0.75);
77
+ --toc-active: rgba(26, 26, 26, 0.85);
78
+
79
+ /* Mermaid */
80
+ --mermaid-grid: #e4e4e7;
81
+
82
+ /* Comment highlight colors */
83
+ /* Amber (default) - warm, paper-like */
84
+ --comment-color-0-bg: rgba(245, 222, 160, 0.5);
85
+ --comment-color-0-bg-focused: rgba(228, 195, 110, 0.65);
86
+ --comment-color-0-border: #c9a84a;
87
+
88
+ /* Blue - muted slate-blue */
89
+ --comment-color-1-bg: rgba(168, 196, 228, 0.5);
90
+ --comment-color-1-bg-focused: rgba(130, 168, 210, 0.65);
91
+ --comment-color-1-border: #5b7fa8;
92
+
93
+ /* Green - sage */
94
+ --comment-color-2-bg: rgba(170, 210, 170, 0.5);
95
+ --comment-color-2-bg-focused: rgba(130, 185, 135, 0.65);
96
+ --comment-color-2-border: #5a9a62;
97
+
98
+ /* Rose - dusty rose */
99
+ --comment-color-3-bg: rgba(225, 180, 185, 0.5);
100
+ --comment-color-3-bg-focused: rgba(205, 145, 155, 0.65);
101
+ --comment-color-3-border: #b86b78;
102
+
103
+ /* Pending - neutral gray */
104
+ --pending-bg: rgba(180, 180, 180, 0.3);
105
+ }
106
+
107
+ .dark {
108
+ --page-bg: #18181b;
109
+ --selection-bg: rgba(96, 165, 250, 0.35);
110
+
111
+ --scrollbar-track: #27272a;
112
+ --scrollbar-thumb: #52525b;
113
+ --scrollbar-thumb-hover: #71717a;
114
+
115
+ --prose-body: #d4d4d8;
116
+ --prose-headings: #fafafa;
117
+ --prose-links: #60a5fa;
118
+ --prose-links-hover: #93c5fd;
119
+ --prose-bold: #fafafa;
120
+ --prose-code-bg: #27272a;
121
+ --prose-border: #3f3f46;
122
+ --prose-table-header-bg: #27272a;
123
+ --prose-table-even-bg: #1f1f23;
124
+ --prose-blockquote: #a1a1aa;
125
+ --prose-summary-marker: #71717a;
126
+
127
+ --toc-text: rgba(228, 228, 231, 0.5);
128
+ --toc-text-l2: rgba(228, 228, 231, 0.45);
129
+ --toc-text-l3: rgba(228, 228, 231, 0.4);
130
+ --toc-text-deep: rgba(228, 228, 231, 0.35);
131
+ --toc-hover: rgba(228, 228, 231, 0.75);
132
+ --toc-active: rgba(228, 228, 231, 0.85);
133
+
134
+ --mermaid-grid: #3f3f46;
135
+
136
+ --comment-color-0-bg: rgba(202, 168, 74, 0.35);
137
+ --comment-color-0-bg-focused: rgba(202, 168, 74, 0.55);
138
+ --comment-color-0-border: #d4b548;
139
+
140
+ --comment-color-1-bg: rgba(91, 127, 168, 0.35);
141
+ --comment-color-1-bg-focused: rgba(91, 127, 168, 0.55);
142
+ --comment-color-1-border: #7da3c8;
143
+
144
+ --comment-color-2-bg: rgba(90, 154, 98, 0.35);
145
+ --comment-color-2-bg-focused: rgba(90, 154, 98, 0.55);
146
+ --comment-color-2-border: #7ab882;
147
+
148
+ --comment-color-3-bg: rgba(184, 107, 120, 0.35);
149
+ --comment-color-3-bg-focused: rgba(184, 107, 120, 0.55);
150
+ --comment-color-3-border: #d08a98;
151
+
152
+ --pending-bg: rgba(100, 100, 100, 0.3);
153
+ }
154
+
155
+ /* ========================================
156
+ Comment Highlight Styles
157
+ ======================================== */
158
+
159
+ /* Base highlight - subtle by default */
160
+ mark[data-comment-id] {
161
+ background-color: var(--highlight-bg, var(--comment-color-0-bg));
162
+ cursor: pointer;
163
+ transition:
164
+ background-color 150ms ease,
165
+ opacity 150ms ease;
166
+ }
167
+
168
+ /* Color variants based on data-color-index */
169
+ mark[data-comment-id][data-color-index="0"] {
170
+ --highlight-bg: var(--comment-color-0-bg);
171
+ --highlight-bg-focused: var(--comment-color-0-bg-focused);
172
+ --highlight-border: var(--comment-color-0-border);
173
+ }
174
+
175
+ mark[data-comment-id][data-color-index="1"] {
176
+ --highlight-bg: var(--comment-color-1-bg);
177
+ --highlight-bg-focused: var(--comment-color-1-bg-focused);
178
+ --highlight-border: var(--comment-color-1-border);
179
+ }
180
+
181
+ mark[data-comment-id][data-color-index="2"] {
182
+ --highlight-bg: var(--comment-color-2-bg);
183
+ --highlight-bg-focused: var(--comment-color-2-bg-focused);
184
+ --highlight-border: var(--comment-color-2-border);
185
+ }
186
+
187
+ mark[data-comment-id][data-color-index="3"] {
188
+ --highlight-bg: var(--comment-color-3-bg);
189
+ --highlight-bg-focused: var(--comment-color-3-bg-focused);
190
+ --highlight-border: var(--comment-color-3-border);
191
+ }
192
+
193
+ /* Focused state - this highlight is hovered */
194
+ mark[data-comment-id][data-focused="true"] {
195
+ background-color: var(
196
+ --highlight-bg-focused,
197
+ var(--comment-color-0-bg-focused)
198
+ );
199
+ }
200
+
201
+ /* Hover on highlight itself */
202
+ mark[data-comment-id]:hover {
203
+ background-color: var(
204
+ --highlight-bg-focused,
205
+ var(--comment-color-0-bg-focused)
206
+ );
207
+ }
208
+
209
+ /* ========================================
210
+ Bracket Mode for Long Selections
211
+ ======================================== */
212
+
213
+ /* Container for bracket-mode highlights */
214
+ mark[data-comment-id][data-bracket-mode="true"] {
215
+ background-color: transparent;
216
+ position: relative;
217
+ }
218
+
219
+ /* Only show background on first segment in bracket mode */
220
+ mark[data-comment-id][data-bracket-start="true"] {
221
+ background-color: var(--highlight-bg, var(--comment-color-0-bg));
222
+ border-radius: 2px 2px 0 0;
223
+ }
224
+
225
+ /* Focused bracket mode shows full highlight */
226
+ mark[data-comment-id][data-bracket-mode="true"][data-focused="true"],
227
+ mark[data-comment-id][data-bracket-mode="true"]:hover {
228
+ background-color: var(
229
+ --highlight-bg-focused,
230
+ var(--comment-color-0-bg-focused)
231
+ );
232
+ }
233
+
234
+ /* Gutter line for bracket mode */
235
+ .bracket-gutter-line {
236
+ position: absolute;
237
+ left: -20px;
238
+ width: 2px;
239
+ background-color: var(--bracket-color, var(--comment-color-0-border));
240
+ border-radius: 1px;
241
+ opacity: 0.6;
242
+ transition: opacity 150ms ease;
243
+ pointer-events: none;
244
+ }
245
+
246
+ .bracket-gutter-line[data-focused="true"],
247
+ .bracket-gutter-line:hover {
248
+ opacity: 1;
249
+ }
250
+
251
+ /* Bracket markers */
252
+ .bracket-marker {
253
+ position: absolute;
254
+ left: -24px;
255
+ font-family: monospace;
256
+ font-size: 10px;
257
+ color: var(--bracket-color, var(--comment-color-0-border));
258
+ opacity: 0.6;
259
+ pointer-events: none;
260
+ transition: opacity 150ms ease;
261
+ }
262
+
263
+ .bracket-marker-start {
264
+ top: -2px;
265
+ }
266
+
267
+ .bracket-marker-end {
268
+ bottom: -2px;
269
+ }
270
+
271
+ .bracket-marker[data-focused="true"] {
272
+ opacity: 1;
273
+ }
274
+
275
+ /* ========================================
276
+ Anchor Lines
277
+ ======================================== */
278
+
279
+ .anchor-line {
280
+ fill: none;
281
+ stroke: var(--anchor-color, var(--comment-color-0-border));
282
+ stroke-width: 1.5;
283
+ opacity: 0;
284
+ transition: opacity 150ms ease;
285
+ pointer-events: none;
286
+ }
287
+
288
+ .anchor-line[data-visible="true"] {
289
+ opacity: 0.5;
290
+ }
291
+
292
+ .anchor-line-dot {
293
+ fill: var(--anchor-color, var(--comment-color-0-border));
294
+ opacity: 0;
295
+ transition: opacity 150ms ease;
296
+ }
297
+
298
+ .anchor-line-dot[data-visible="true"] {
299
+ opacity: 0.7;
300
+ }
301
+
302
+ /* Pending selection highlight - neutral gray */
303
+ mark[data-pending] {
304
+ background-color: var(--pending-bg);
305
+ cursor: text;
306
+ }
307
+
308
+ /* Ensure highlights are visible in all contexts including headings */
309
+ .prose mark[data-pending],
310
+ .prose h1 mark[data-pending],
311
+ .prose h2 mark[data-pending],
312
+ .prose h3 mark[data-pending],
313
+ .prose h4 mark[data-pending],
314
+ .prose h5 mark[data-pending],
315
+ .prose h6 mark[data-pending] {
316
+ background-color: var(--pending-bg) !important;
317
+ display: inline !important;
318
+ }
319
+
320
+ /* Ensure comment highlights are visible inside headings (prose overrides) */
321
+ .prose h1 mark[data-comment-id],
322
+ .prose h2 mark[data-comment-id],
323
+ .prose h3 mark[data-comment-id],
324
+ .prose h4 mark[data-comment-id],
325
+ .prose h5 mark[data-comment-id],
326
+ .prose h6 mark[data-comment-id] {
327
+ background-color: var(--highlight-bg, var(--comment-color-0-bg)) !important;
328
+ display: inline !important;
329
+ }
330
+
331
+ /* Bracket mode in headings - override transparent background */
332
+ .prose h1 mark[data-comment-id][data-bracket-mode="true"],
333
+ .prose h2 mark[data-comment-id][data-bracket-mode="true"],
334
+ .prose h3 mark[data-comment-id][data-bracket-mode="true"],
335
+ .prose h4 mark[data-comment-id][data-bracket-mode="true"],
336
+ .prose h5 mark[data-comment-id][data-bracket-mode="true"],
337
+ .prose h6 mark[data-comment-id][data-bracket-mode="true"] {
338
+ background-color: var(--highlight-bg, var(--comment-color-0-bg)) !important;
339
+ }
340
+
341
+ /* Hover state for comment highlights in headings */
342
+ .prose h1 mark[data-comment-id]:hover,
343
+ .prose h2 mark[data-comment-id]:hover,
344
+ .prose h3 mark[data-comment-id]:hover,
345
+ .prose h4 mark[data-comment-id]:hover,
346
+ .prose h5 mark[data-comment-id]:hover,
347
+ .prose h6 mark[data-comment-id]:hover,
348
+ .prose h1 mark[data-comment-id][data-focused="true"],
349
+ .prose h2 mark[data-comment-id][data-focused="true"],
350
+ .prose h3 mark[data-comment-id][data-focused="true"],
351
+ .prose h4 mark[data-comment-id][data-focused="true"],
352
+ .prose h5 mark[data-comment-id][data-focused="true"],
353
+ .prose h6 mark[data-comment-id][data-focused="true"] {
354
+ background-color: var(
355
+ --highlight-bg-focused,
356
+ var(--comment-color-0-bg-focused)
357
+ ) !important;
358
+ }
359
+
360
+ /* Toast animation */
361
+ [data-sonner-toast] {
362
+ animation: toast-in 0.2s ease-out;
363
+ }
364
+
365
+ @keyframes toast-in {
366
+ from {
367
+ opacity: 0;
368
+ transform: translateY(4px);
369
+ }
370
+ to {
371
+ opacity: 1;
372
+ transform: translateY(0);
373
+ }
374
+ }
375
+
376
+ /* Dropdown menu animation */
377
+ .animate-in {
378
+ animation: menu-in 0.15s ease-out;
379
+ }
380
+
381
+ @keyframes menu-in {
382
+ from {
383
+ opacity: 0;
384
+ transform: translateY(-4px);
385
+ }
386
+ to {
387
+ opacity: 1;
388
+ transform: translateY(0);
389
+ }
390
+ }
391
+
392
+ /* Table of Contents - Whisper aesthetic */
393
+ .toc {
394
+ font-size: 14px;
395
+ line-height: 1.7;
396
+ }
397
+
398
+ .toc-item {
399
+ display: block;
400
+ color: var(--toc-text);
401
+ text-decoration: none;
402
+ padding: 3px 0;
403
+ transition: color 0.2s ease;
404
+ white-space: nowrap;
405
+ overflow: hidden;
406
+ text-overflow: ellipsis;
407
+ max-width: 180px;
408
+ }
409
+
410
+ /* Hierarchy via indentation + size */
411
+ .toc-level-1 {
412
+ padding-left: 0;
413
+ font-size: 14px;
414
+ }
415
+
416
+ .toc-level-2 {
417
+ padding-left: 12px;
418
+ font-size: 13px;
419
+ color: var(--toc-text-l2);
420
+ }
421
+
422
+ .toc-level-3 {
423
+ padding-left: 24px;
424
+ font-size: 12px;
425
+ color: var(--toc-text-l3);
426
+ }
427
+
428
+ .toc-level-4,
429
+ .toc-level-5,
430
+ .toc-level-6 {
431
+ padding-left: 36px;
432
+ font-size: 11px;
433
+ color: var(--toc-text-deep);
434
+ }
435
+
436
+ /* Hover - slightly more visible */
437
+ .toc-item:hover {
438
+ color: var(--toc-hover);
439
+ }
440
+
441
+ /* Active - clearly readable */
442
+ .toc-active {
443
+ color: var(--toc-active);
444
+ font-weight: 500;
445
+ }
446
+
447
+ /* Toggle indicator for collapsible sections */
448
+ .toc-toggle {
449
+ font-size: 10px;
450
+ vertical-align: middle;
451
+ transition: opacity 0.15s ease;
452
+ }
453
+
454
+ .toc-item:hover .toc-toggle {
455
+ opacity: 0.7;
456
+ }
457
+
458
+ /* ========================================
459
+ Prose Typography - Optimal Reading
460
+ ======================================== */
461
+
462
+ .prose {
463
+ max-width: 65ch;
464
+ margin-left: auto;
465
+ margin-right: auto;
466
+ line-height: 1.75;
467
+ color: var(--prose-body);
468
+ user-select: text;
469
+ -webkit-user-select: text;
470
+ }
471
+
472
+ /* Headings */
473
+ .prose h1,
474
+ .prose h2,
475
+ .prose h3,
476
+ .prose h4,
477
+ .prose h5,
478
+ .prose h6 {
479
+ font-weight: 600;
480
+ line-height: 1.25;
481
+ margin-top: 2em;
482
+ margin-bottom: 0.75em;
483
+ color: var(--prose-headings);
484
+ }
485
+
486
+ .prose h1 {
487
+ font-size: 2.25em;
488
+ margin-top: 0;
489
+ }
490
+
491
+ .prose h2 {
492
+ font-size: 1.5em;
493
+ }
494
+
495
+ .prose h3 {
496
+ font-size: 1.25em;
497
+ }
498
+
499
+ .prose h4 {
500
+ font-size: 1.125em;
501
+ }
502
+
503
+ /* Paragraphs and spacing */
504
+ .prose p {
505
+ margin: 1.25em 0;
506
+ }
507
+
508
+ .prose > :first-child {
509
+ margin-top: 0;
510
+ }
511
+
512
+ .prose > :last-child {
513
+ margin-bottom: 0;
514
+ }
515
+
516
+ /* Lists */
517
+ .prose ul,
518
+ .prose ol {
519
+ padding-left: 1.5em;
520
+ margin: 1.25em 0;
521
+ }
522
+
523
+ .prose li {
524
+ margin: 0.5em 0;
525
+ }
526
+
527
+ .prose ul {
528
+ list-style-type: disc;
529
+ }
530
+
531
+ .prose ol {
532
+ list-style-type: decimal;
533
+ }
534
+
535
+ /* Nested lists */
536
+ .prose li > ul,
537
+ .prose li > ol {
538
+ margin: 0.5em 0;
539
+ }
540
+
541
+ /* Code */
542
+ .prose code {
543
+ background: var(--prose-code-bg);
544
+ padding: 0.2em 0.4em;
545
+ border-radius: 0.25em;
546
+ font-size: 0.875em;
547
+ }
548
+
549
+ .prose pre {
550
+ margin: 1.5em 0;
551
+ }
552
+
553
+ .prose pre code {
554
+ background: transparent;
555
+ padding: 0;
556
+ font-size: 0.875em;
557
+ color: inherit;
558
+ }
559
+
560
+ /* Tables */
561
+ .prose table {
562
+ width: 100%;
563
+ border-collapse: collapse;
564
+ margin: 1.5em 0;
565
+ font-size: 0.9em;
566
+ }
567
+
568
+ .prose th,
569
+ .prose td {
570
+ border: 1px solid var(--prose-border);
571
+ padding: 0.75em 1em;
572
+ text-align: left;
573
+ }
574
+
575
+ .prose th {
576
+ background: var(--prose-table-header-bg);
577
+ font-weight: 600;
578
+ }
579
+
580
+ .prose tr:nth-child(even) {
581
+ background: var(--prose-table-even-bg);
582
+ }
583
+
584
+ /* Blockquotes */
585
+ .prose blockquote {
586
+ border-left: 4px solid var(--prose-border);
587
+ padding-left: 1em;
588
+ margin: 1.5em 0;
589
+ color: var(--prose-blockquote);
590
+ font-style: italic;
591
+ }
592
+
593
+ .prose blockquote p {
594
+ margin: 0.5em 0;
595
+ }
596
+
597
+ /* Links */
598
+ .prose a {
599
+ color: var(--prose-links);
600
+ text-decoration: underline;
601
+ }
602
+
603
+ .prose a:hover {
604
+ color: var(--prose-links-hover);
605
+ }
606
+
607
+ /* Horizontal rules */
608
+ .prose hr {
609
+ border: none;
610
+ border-top: 1px solid var(--prose-border);
611
+ margin: 2em 0;
612
+ }
613
+
614
+ /* Task lists (checkboxes) */
615
+ .prose input[type="checkbox"] {
616
+ margin-right: 0.5em;
617
+ }
618
+
619
+ /* Images */
620
+ .prose img {
621
+ max-width: 100%;
622
+ height: auto;
623
+ margin: 1.5em 0;
624
+ border-radius: 0.5em;
625
+ }
626
+
627
+ /* Strong and emphasis */
628
+ .prose strong {
629
+ font-weight: 600;
630
+ color: var(--prose-bold);
631
+ }
632
+
633
+ .prose em {
634
+ font-style: italic;
635
+ }
636
+
637
+ /* Fullscreen prose - left-aligned, full width */
638
+ .prose-fullscreen {
639
+ max-width: none;
640
+ margin-left: 0;
641
+ margin-right: 0;
642
+ }
643
+
644
+ /* Prose font family variants */
645
+ .prose.prose-serif,
646
+ .prose.prose-serif h1,
647
+ .prose.prose-serif h2,
648
+ .prose.prose-serif h3,
649
+ .prose.prose-serif h4,
650
+ .prose.prose-serif h5,
651
+ .prose.prose-serif h6 {
652
+ font-family: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;
653
+ }
654
+
655
+ .prose.prose-sans,
656
+ .prose.prose-sans h1,
657
+ .prose.prose-sans h2,
658
+ .prose.prose-sans h3,
659
+ .prose.prose-sans h4,
660
+ .prose.prose-sans h5,
661
+ .prose.prose-sans h6 {
662
+ font-family:
663
+ ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI",
664
+ Roboto, sans-serif;
665
+ }
666
+
667
+ /* Collapsible details/summary */
668
+ .prose details {
669
+ margin: 1.25em 0;
670
+ border: 1px solid var(--prose-border);
671
+ border-radius: 0.5em;
672
+ padding: 0 1em;
673
+ }
674
+
675
+ .prose summary {
676
+ cursor: pointer;
677
+ font-weight: 500;
678
+ padding: 0.75em 0;
679
+ list-style: none;
680
+ }
681
+
682
+ .prose summary::-webkit-details-marker {
683
+ display: none;
684
+ }
685
+
686
+ .prose summary::before {
687
+ content: "▸";
688
+ margin-right: 0.5em;
689
+ color: var(--prose-summary-marker);
690
+ transition: transform 0.15s ease;
691
+ display: inline-block;
692
+ }
693
+
694
+ .prose details[open] summary::before {
695
+ transform: rotate(90deg);
696
+ }
697
+
698
+ .prose details[open] summary {
699
+ border-bottom: 1px solid var(--prose-border);
700
+ margin-bottom: 0.75em;
701
+ }
702
+
703
+ .prose details > *:not(summary) {
704
+ margin-left: 0;
705
+ }
706
+
707
+ /* ========================================
708
+ Mermaid Diagram Styles
709
+ ======================================== */
710
+
711
+ /* Container - break out of prose width for larger diagrams */
712
+ .mermaid-container {
713
+ margin-left: -3rem;
714
+ margin-right: -3rem;
715
+ padding: 1rem 0;
716
+ }
717
+
718
+ .mermaid-container > svg {
719
+ max-width: 100%;
720
+ height: auto;
721
+ }
722
+
723
+ /* Typography overrides - make text more readable */
724
+ .mermaid-container text {
725
+ font-size: 14px !important;
726
+ }
727
+
728
+ .mermaid-container .section {
729
+ font-size: 13px !important;
730
+ font-weight: 500;
731
+ }
732
+
733
+ .mermaid-container .taskText {
734
+ font-size: 13px !important;
735
+ }
736
+
737
+ .mermaid-container .taskTextOutsideRight,
738
+ .mermaid-container .taskTextOutsideLeft {
739
+ font-size: 12px !important;
740
+ }
741
+
742
+ .mermaid-container .titleText {
743
+ font-size: 18px !important;
744
+ font-weight: 600;
745
+ }
746
+
747
+ /* Flowchart specific */
748
+ .mermaid-container .nodeLabel {
749
+ font-size: 14px !important;
750
+ }
751
+
752
+ .mermaid-container .edgeLabel {
753
+ font-size: 12px !important;
754
+ }
755
+
756
+ .mermaid-container .cluster-label {
757
+ font-size: 14px !important;
758
+ font-weight: 500;
759
+ }
760
+
761
+ /* Sequence diagram specific */
762
+ .mermaid-container .actor {
763
+ font-size: 14px !important;
764
+ }
765
+
766
+ .mermaid-container .messageText {
767
+ font-size: 13px !important;
768
+ }
769
+
770
+ .mermaid-container .noteText {
771
+ font-size: 12px !important;
772
+ }
773
+
774
+ /* Grid lines - subtle */
775
+ .mermaid-container .grid path {
776
+ stroke: var(--mermaid-grid) !important;
777
+ stroke-width: 1px;
778
+ }
779
+
780
+ /* Today line in Gantt - distinct */
781
+ .mermaid-container .today {
782
+ stroke: #b86b78 !important;
783
+ stroke-width: 2px;
784
+ }
785
+
786
+ /* Improve stroke contrast */
787
+ .mermaid-container path.path {
788
+ stroke-width: 1.5px;
789
+ }
790
+
791
+ /* Responsive breakout margins */
792
+ @media (max-width: 768px) {
793
+ .mermaid-container {
794
+ margin-left: -1rem;
795
+ margin-right: -1rem;
796
+ }
797
+ }
798
+
799
+ @media (min-width: 1280px) {
800
+ .mermaid-container {
801
+ margin-left: -4rem;
802
+ margin-right: -4rem;
803
+ }
804
+ }
805
+
806
+ /* ========================================
807
+ Floating TOC Panel
808
+ ======================================== */
809
+
810
+ .floating-toc-panel {
811
+ animation: floating-toc-in 0.2s ease-out;
812
+ }
813
+
814
+ @keyframes floating-toc-in {
815
+ from {
816
+ opacity: 0;
817
+ transform: translateX(-8px);
818
+ }
819
+ to {
820
+ opacity: 1;
821
+ transform: translateX(0);
822
+ }
823
+ }