@open-press/cli 0.8.0 → 1.1.0

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 (250) hide show
  1. package/README.md +33 -23
  2. package/dist/cli.js +320 -252
  3. package/package.json +9 -8
  4. package/template/core/AGENTS.md +0 -126
  5. package/template/core/CHANGELOG.md +0 -215
  6. package/template/core/README.md +0 -40
  7. package/template/core/engine/cli.mjs +0 -96
  8. package/template/core/engine/commands/_shared.mjs +0 -177
  9. package/template/core/engine/commands/deploy.mjs +0 -31
  10. package/template/core/engine/commands/dev.mjs +0 -49
  11. package/template/core/engine/commands/doctor.mjs +0 -229
  12. package/template/core/engine/commands/export.mjs +0 -8
  13. package/template/core/engine/commands/init.mjs +0 -24
  14. package/template/core/engine/commands/inspect.mjs +0 -35
  15. package/template/core/engine/commands/pdf.mjs +0 -26
  16. package/template/core/engine/commands/preview.mjs +0 -26
  17. package/template/core/engine/commands/render.mjs +0 -17
  18. package/template/core/engine/commands/replace.mjs +0 -41
  19. package/template/core/engine/commands/search.mjs +0 -33
  20. package/template/core/engine/commands/typecheck.mjs +0 -5
  21. package/template/core/engine/commands/upgrade.mjs +0 -159
  22. package/template/core/engine/commands/validate.mjs +0 -17
  23. package/template/core/engine/document-export.mjs +0 -15
  24. package/template/core/engine/init.mjs +0 -90
  25. package/template/core/engine/output/chrome-pdf.d.mts +0 -34
  26. package/template/core/engine/output/chrome-pdf.mjs +0 -358
  27. package/template/core/engine/output/deploy-sync.mjs +0 -15
  28. package/template/core/engine/output/fonts.mjs +0 -62
  29. package/template/core/engine/output/katex-assets.mjs +0 -45
  30. package/template/core/engine/output/page-block.mjs +0 -30
  31. package/template/core/engine/output/pdf-media.mjs +0 -45
  32. package/template/core/engine/output/public-assets.mjs +0 -19
  33. package/template/core/engine/output/static-server.mjs +0 -532
  34. package/template/core/engine/react/caption-numbering.mjs +0 -73
  35. package/template/core/engine/react/comment-endpoint.d.mts +0 -11
  36. package/template/core/engine/react/comment-endpoint.mjs +0 -102
  37. package/template/core/engine/react/comment-marker.mjs +0 -374
  38. package/template/core/engine/react/document-entry.mjs +0 -324
  39. package/template/core/engine/react/document-export.mjs +0 -373
  40. package/template/core/engine/react/http-json.mjs +0 -24
  41. package/template/core/engine/react/mdx-compile.mjs +0 -599
  42. package/template/core/engine/react/measurement-css.mjs +0 -136
  43. package/template/core/engine/react/object-entities.mjs +0 -119
  44. package/template/core/engine/react/pagination/allocator.mjs +0 -122
  45. package/template/core/engine/react/pagination/regions.mjs +0 -81
  46. package/template/core/engine/react/pagination-constants.mjs +0 -3
  47. package/template/core/engine/react/pagination.mjs +0 -9
  48. package/template/core/engine/react/pipeline/allocate.mjs +0 -251
  49. package/template/core/engine/react/pipeline/final-render.mjs +0 -94
  50. package/template/core/engine/react/pipeline/frame-measurement.mjs +0 -302
  51. package/template/core/engine/react/pipeline/press-tree.mjs +0 -135
  52. package/template/core/engine/react/project-asset-endpoint.d.mts +0 -10
  53. package/template/core/engine/react/project-asset-endpoint.mjs +0 -361
  54. package/template/core/engine/react/section-css.mjs +0 -56
  55. package/template/core/engine/react/source-edit-endpoint.d.mts +0 -10
  56. package/template/core/engine/react/source-edit-endpoint.mjs +0 -75
  57. package/template/core/engine/react/sources/heading-numbering.mjs +0 -132
  58. package/template/core/engine/react/sources/mdx-resolver.mjs +0 -439
  59. package/template/core/engine/react/style-discovery.mjs +0 -142
  60. package/template/core/engine/runtime/config.d.mts +0 -40
  61. package/template/core/engine/runtime/config.mjs +0 -175
  62. package/template/core/engine/runtime/file-utils.mjs +0 -106
  63. package/template/core/engine/runtime/file-walk.mjs +0 -22
  64. package/template/core/engine/runtime/inspection.mjs +0 -328
  65. package/template/core/engine/runtime/issue-report.mjs +0 -44
  66. package/template/core/engine/runtime/path-utils.mjs +0 -20
  67. package/template/core/engine/runtime/source-text-tools.d.mts +0 -102
  68. package/template/core/engine/runtime/source-text-tools.mjs +0 -832
  69. package/template/core/engine/runtime/source-workspace.mjs +0 -159
  70. package/template/core/engine/runtime/validation.mjs +0 -174
  71. package/template/core/index.html +0 -13
  72. package/template/core/openpress.config.mjs +0 -12
  73. package/template/core/package.json +0 -91
  74. package/template/core/src/main.tsx +0 -16
  75. package/template/core/src/openpress/app/OpenPressApp.tsx +0 -140
  76. package/template/core/src/openpress/app/OpenPressRuntime.tsx +0 -94
  77. package/template/core/src/openpress/app/index.ts +0 -2
  78. package/template/core/src/openpress/core/Frame.tsx +0 -78
  79. package/template/core/src/openpress/core/FrameContext.tsx +0 -24
  80. package/template/core/src/openpress/core/MdxArea.tsx +0 -34
  81. package/template/core/src/openpress/core/Press.tsx +0 -34
  82. package/template/core/src/openpress/core/cn.ts +0 -4
  83. package/template/core/src/openpress/core/index.tsx +0 -40
  84. package/template/core/src/openpress/core/primitives.tsx +0 -44
  85. package/template/core/src/openpress/core/types.ts +0 -191
  86. package/template/core/src/openpress/core/useSource.ts +0 -28
  87. package/template/core/src/openpress/document-model/anchorMapModel.ts +0 -27
  88. package/template/core/src/openpress/document-model/documentIndexes.ts +0 -329
  89. package/template/core/src/openpress/document-model/documentTypes.ts +0 -138
  90. package/template/core/src/openpress/document-model/index.ts +0 -6
  91. package/template/core/src/openpress/document-model/objectEntityModel.ts +0 -51
  92. package/template/core/src/openpress/document-model/projectIdentityModel.ts +0 -15
  93. package/template/core/src/openpress/document-model/reactDocumentMetadataModel.ts +0 -27
  94. package/template/core/src/openpress/manuscript/index.tsx +0 -238
  95. package/template/core/src/openpress/mdx/index.ts +0 -88
  96. package/template/core/src/openpress/numbering/index.ts +0 -294
  97. package/template/core/src/openpress/reader/PublicReaderPage.tsx +0 -267
  98. package/template/core/src/openpress/reader/ReaderNavigationPanel.tsx +0 -123
  99. package/template/core/src/openpress/reader/index.ts +0 -10
  100. package/template/core/src/openpress/reader/pageViewportScaleModel.ts +0 -73
  101. package/template/core/src/openpress/reader/readerPageRegistry.ts +0 -41
  102. package/template/core/src/openpress/reader/readerPageRoute.ts +0 -21
  103. package/template/core/src/openpress/reader/readerScroll.ts +0 -92
  104. package/template/core/src/openpress/reader/readerStateModel.ts +0 -15
  105. package/template/core/src/openpress/reader/readerTypes.ts +0 -4
  106. package/template/core/src/openpress/reader/usePageViewportScale.ts +0 -119
  107. package/template/core/src/openpress/reader/usePanelState.ts +0 -56
  108. package/template/core/src/openpress/reader/useReaderHashSync.ts +0 -61
  109. package/template/core/src/openpress/reader/useReaderKeyboardNav.ts +0 -48
  110. package/template/core/src/openpress/reader/useReaderRuntime.ts +0 -146
  111. package/template/core/src/openpress/reader/useReaderScrollAnchor.ts +0 -64
  112. package/template/core/src/openpress/shared/Panel.tsx +0 -77
  113. package/template/core/src/openpress/shared/frameScheduler.ts +0 -32
  114. package/template/core/src/openpress/shared/index.ts +0 -4
  115. package/template/core/src/openpress/shared/numberUtils.ts +0 -3
  116. package/template/core/src/openpress/shared/runtimeMode.ts +0 -11
  117. package/template/core/src/openpress/workbench/Workbench.tsx +0 -407
  118. package/template/core/src/openpress/workbench/actions/DeploymentControl.tsx +0 -157
  119. package/template/core/src/openpress/workbench/actions/PageZoomControl.tsx +0 -182
  120. package/template/core/src/openpress/workbench/actions/SearchControl.tsx +0 -345
  121. package/template/core/src/openpress/workbench/actions/deploymentStatusModel.ts +0 -112
  122. package/template/core/src/openpress/workbench/actions/index.ts +0 -5
  123. package/template/core/src/openpress/workbench/actions/useDeploymentWorkbench.ts +0 -136
  124. package/template/core/src/openpress/workbench/dialog/WorkbenchDialog.tsx +0 -72
  125. package/template/core/src/openpress/workbench/dialog/index.ts +0 -1
  126. package/template/core/src/openpress/workbench/document/components/DocumentPanel.tsx +0 -127
  127. package/template/core/src/openpress/workbench/document/components/InlineSourceEditorLayer.tsx +0 -207
  128. package/template/core/src/openpress/workbench/document/components/ReaderStage.tsx +0 -9
  129. package/template/core/src/openpress/workbench/document/hooks/useDocumentWorkbenchModel.ts +0 -34
  130. package/template/core/src/openpress/workbench/document/hooks/useInlineDocumentEditor.ts +0 -525
  131. package/template/core/src/openpress/workbench/document/index.ts +0 -10
  132. package/template/core/src/openpress/workbench/index.ts +0 -2
  133. package/template/core/src/openpress/workbench/inspector/InlineInspectorLayer.tsx +0 -459
  134. package/template/core/src/openpress/workbench/inspector/index.ts +0 -5
  135. package/template/core/src/openpress/workbench/inspector/inlineCommentModel.ts +0 -125
  136. package/template/core/src/openpress/workbench/inspector/inspectorGeometryModel.ts +0 -160
  137. package/template/core/src/openpress/workbench/inspector/inspectorModel.ts +0 -408
  138. package/template/core/src/openpress/workbench/inspector/useInspectorComments.ts +0 -248
  139. package/template/core/src/openpress/workbench/mentions/MentionSuggestionList.tsx +0 -41
  140. package/template/core/src/openpress/workbench/mentions/index.ts +0 -2
  141. package/template/core/src/openpress/workbench/mentions/useComposerMentions.ts +0 -185
  142. package/template/core/src/openpress/workbench/panels/Panel.tsx +0 -1
  143. package/template/core/src/openpress/workbench/panels/PendingCommentsPanel.tsx +0 -76
  144. package/template/core/src/openpress/workbench/panels/WorkbenchControlPanel.tsx +0 -29
  145. package/template/core/src/openpress/workbench/panels/index.ts +0 -3
  146. package/template/core/src/openpress/workbench/project/ProjectEntryPanel.tsx +0 -523
  147. package/template/core/src/openpress/workbench/project/ProjectPreviewDialog.tsx +0 -35
  148. package/template/core/src/openpress/workbench/project/index.ts +0 -2
  149. package/template/core/src/openpress/workbench/project/projectPreviewTypes.ts +0 -11
  150. package/template/core/src/openpress/workbench/project/projectSourceModel.ts +0 -24
  151. package/template/core/src/openpress/workbench/shell/WorkbenchShell.tsx +0 -167
  152. package/template/core/src/openpress/workbench/shell/index.ts +0 -1
  153. package/template/core/src/openpress/workbench/workbenchFormatters.ts +0 -120
  154. package/template/core/src/openpress/workbench/workbenchTypes.ts +0 -35
  155. package/template/core/src/styles/openpress/app-shell.css +0 -251
  156. package/template/core/src/styles/openpress/media-workspace.css +0 -230
  157. package/template/core/src/styles/openpress/print-route.css +0 -184
  158. package/template/core/src/styles/openpress/project-preview-panel.css +0 -924
  159. package/template/core/src/styles/openpress/public-viewer.css +0 -688
  160. package/template/core/src/styles/openpress/reader-runtime.css +0 -980
  161. package/template/core/src/styles/openpress/responsive.css +0 -245
  162. package/template/core/src/styles/openpress/workbench-panels.css +0 -594
  163. package/template/core/src/styles/openpress/workbench.css +0 -1255
  164. package/template/core/src/styles/openpress.css +0 -14
  165. package/template/core/src/vite-env.d.ts +0 -9
  166. package/template/core/tsconfig.json +0 -40
  167. package/template/core/vite.config.ts +0 -584
  168. package/template/packs/academic-paper/document/chapters/01-introduction/content/01-introduction.mdx +0 -35
  169. package/template/packs/academic-paper/document/chapters/02-methods/content/01-methods.mdx +0 -50
  170. package/template/packs/academic-paper/document/chapters/03-results-and-discussion/content/01-results.mdx +0 -47
  171. package/template/packs/academic-paper/document/chapters/04-acknowledgment/content/01-acknowledgment.mdx +0 -26
  172. package/template/packs/academic-paper/document/chapters/05-references/content/01-references.mdx +0 -32
  173. package/template/packs/academic-paper/document/components/ChapterOpenerVisual/index.tsx +0 -76
  174. package/template/packs/academic-paper/document/components/Page.tsx +0 -60
  175. package/template/packs/academic-paper/document/components/TokenSwatchGrid/index.tsx +0 -46
  176. package/template/packs/academic-paper/document/components/TokenSwatchGrid/style.css +0 -63
  177. package/template/packs/academic-paper/document/components/TypeSpecimen/index.tsx +0 -38
  178. package/template/packs/academic-paper/document/components/TypeSpecimen/style.css +0 -111
  179. package/template/packs/academic-paper/document/design.md +0 -279
  180. package/template/packs/academic-paper/document/index.tsx +0 -123
  181. package/template/packs/academic-paper/document/media/README.md +0 -13
  182. package/template/packs/academic-paper/document/media/figure-placeholder.svg +0 -9
  183. package/template/packs/academic-paper/document/openpress.config.mjs +0 -26
  184. package/template/packs/academic-paper/document/theme/README.md +0 -11
  185. package/template/packs/academic-paper/document/theme/base/page-contract.css +0 -522
  186. package/template/packs/academic-paper/document/theme/base/print.css +0 -93
  187. package/template/packs/academic-paper/document/theme/base/typography.css +0 -333
  188. package/template/packs/academic-paper/document/theme/fonts.css +0 -3
  189. package/template/packs/academic-paper/document/theme/page-surfaces/back-cover.css +0 -43
  190. package/template/packs/academic-paper/document/theme/page-surfaces/chapter-opener.css +0 -205
  191. package/template/packs/academic-paper/document/theme/page-surfaces/cover.css +0 -294
  192. package/template/packs/academic-paper/document/theme/page-surfaces/toc.css +0 -149
  193. package/template/packs/academic-paper/document/theme/patterns/_chart-frame.css +0 -49
  194. package/template/packs/academic-paper/document/theme/patterns/figure-grid.css +0 -68
  195. package/template/packs/academic-paper/document/theme/patterns/table-utilities.css +0 -66
  196. package/template/packs/academic-paper/document/theme/shell/reader-controls.css +0 -761
  197. package/template/packs/academic-paper/document/theme/tokens.css +0 -80
  198. package/template/packs/academic-paper/openpress.config.mjs +0 -5
  199. package/template/packs/claude-document/document/chapters/01-document-shape/content/01-document-shape.mdx +0 -51
  200. package/template/packs/claude-document/document/chapters/02-review-loop/content/01-review-loop.mdx +0 -31
  201. package/template/packs/claude-document/document/components/ChapterOpenerVisual.tsx +0 -96
  202. package/template/packs/claude-document/document/components/Page.tsx +0 -37
  203. package/template/packs/claude-document/document/design.md +0 -142
  204. package/template/packs/claude-document/document/index.tsx +0 -94
  205. package/template/packs/claude-document/document/media/README.md +0 -13
  206. package/template/packs/claude-document/document/openpress.config.mjs +0 -26
  207. package/template/packs/claude-document/document/theme/README.md +0 -15
  208. package/template/packs/claude-document/document/theme/base/page-contract.css +0 -525
  209. package/template/packs/claude-document/document/theme/base/print.css +0 -93
  210. package/template/packs/claude-document/document/theme/base/typography.css +0 -612
  211. package/template/packs/claude-document/document/theme/fonts.css +0 -4
  212. package/template/packs/claude-document/document/theme/page-surfaces/back-cover.css +0 -72
  213. package/template/packs/claude-document/document/theme/page-surfaces/chapter-opener.css +0 -236
  214. package/template/packs/claude-document/document/theme/page-surfaces/cover.css +0 -309
  215. package/template/packs/claude-document/document/theme/page-surfaces/toc.css +0 -225
  216. package/template/packs/claude-document/document/theme/patterns/_chart-frame.css +0 -53
  217. package/template/packs/claude-document/document/theme/patterns/figure-grid.css +0 -68
  218. package/template/packs/claude-document/document/theme/patterns/table-utilities.css +0 -66
  219. package/template/packs/claude-document/document/theme/shell/reader-controls.css +0 -789
  220. package/template/packs/claude-document/document/theme/tokens.css +0 -89
  221. package/template/packs/claude-document/openpress.config.mjs +0 -5
  222. package/template/packs/editorial-monograph/document/chapters/01-product-and-use-cases/content/01-product-and-use-cases.mdx +0 -31
  223. package/template/packs/editorial-monograph/document/chapters/02-workflow/content/01-workflow.mdx +0 -89
  224. package/template/packs/editorial-monograph/document/chapters/03-agent-skills-contributors/content/01-agent-skills-contributors.mdx +0 -51
  225. package/template/packs/editorial-monograph/document/chapters/04-validation-deploy/content/01-validation-deploy.mdx +0 -39
  226. package/template/packs/editorial-monograph/document/components/ChapterOpenerVisual/index.tsx +0 -76
  227. package/template/packs/editorial-monograph/document/components/Page.tsx +0 -37
  228. package/template/packs/editorial-monograph/document/components/TokenSwatchGrid/index.tsx +0 -46
  229. package/template/packs/editorial-monograph/document/components/TokenSwatchGrid/style.css +0 -63
  230. package/template/packs/editorial-monograph/document/components/TypeSpecimen/index.tsx +0 -38
  231. package/template/packs/editorial-monograph/document/components/TypeSpecimen/style.css +0 -111
  232. package/template/packs/editorial-monograph/document/design.md +0 -279
  233. package/template/packs/editorial-monograph/document/index.tsx +0 -97
  234. package/template/packs/editorial-monograph/document/media/README.md +0 -13
  235. package/template/packs/editorial-monograph/document/openpress.config.mjs +0 -26
  236. package/template/packs/editorial-monograph/document/theme/README.md +0 -11
  237. package/template/packs/editorial-monograph/document/theme/base/page-contract.css +0 -505
  238. package/template/packs/editorial-monograph/document/theme/base/print.css +0 -93
  239. package/template/packs/editorial-monograph/document/theme/base/typography.css +0 -336
  240. package/template/packs/editorial-monograph/document/theme/fonts.css +0 -3
  241. package/template/packs/editorial-monograph/document/theme/page-surfaces/back-cover.css +0 -43
  242. package/template/packs/editorial-monograph/document/theme/page-surfaces/chapter-opener.css +0 -205
  243. package/template/packs/editorial-monograph/document/theme/page-surfaces/cover.css +0 -147
  244. package/template/packs/editorial-monograph/document/theme/page-surfaces/toc.css +0 -149
  245. package/template/packs/editorial-monograph/document/theme/patterns/_chart-frame.css +0 -49
  246. package/template/packs/editorial-monograph/document/theme/patterns/figure-grid.css +0 -68
  247. package/template/packs/editorial-monograph/document/theme/patterns/table-utilities.css +0 -66
  248. package/template/packs/editorial-monograph/document/theme/shell/reader-controls.css +0 -761
  249. package/template/packs/editorial-monograph/document/theme/tokens.css +0 -80
  250. package/template/packs/editorial-monograph/openpress.config.mjs +0 -5
@@ -1,294 +0,0 @@
1
- /* page-surfaces / cover
2
- * Cover and back-cover share most of their layout chrome (meta header, byline
3
- * footer, central main column). Shared selectors live here so cover is the
4
- * primary reference; back-cover.css only refines the parts that differ.
5
- */
6
-
7
- .reader-page--cover,
8
- .reader-page--back-cover {
9
- background: var(--openpress-color-document);
10
- padding: clamp(28px, 5cqw, 48px) clamp(24px, 4.5cqw, 42px);
11
- flex-direction: column;
12
- justify-content: space-between;
13
- gap: clamp(16px, 2.5cqw, 24px);
14
- }
15
-
16
- .reader-app.is-ready .reader-page--cover,
17
- .reader-app.is-ready .reader-page--back-cover,
18
- .reader-page--cover.is-active,
19
- .reader-page--back-cover.is-active {
20
- display: flex;
21
- }
22
-
23
- .cover-meta,
24
- .back-cover-meta {
25
- display: flex;
26
- justify-content: space-between;
27
- align-items: flex-start;
28
- gap: var(--openpress-space-3);
29
- padding-bottom: var(--openpress-space-2);
30
- border-bottom: 1px solid var(--openpress-color-ink);
31
- font-family: var(--openpress-font-body);
32
- font-size: clamp(8pt, 1.25cqw, 9.5pt);
33
- color: var(--openpress-color-muted);
34
- letter-spacing: 0.12em;
35
- flex-shrink: 0;
36
- }
37
-
38
- .mihua-logo,
39
- .openpress-logo {
40
- display: block;
41
- width: clamp(112px, 18cqw, 154px);
42
- height: auto;
43
- flex-shrink: 0;
44
- object-fit: contain;
45
- }
46
-
47
- .cover-meta-title {
48
- margin-left: auto;
49
- max-width: 48%;
50
- padding-top: 0.35em;
51
- text-align: right;
52
- white-space: nowrap;
53
- }
54
-
55
- .cover-main,
56
- .back-cover-main {
57
- display: flex;
58
- flex-direction: column;
59
- flex: 1;
60
- min-height: 0;
61
- }
62
-
63
- .cover-title {
64
- margin: 0;
65
- font-family: var(--openpress-font-serif);
66
- font-size: clamp(36px, 8.5cqw, 64px);
67
- font-weight: 300;
68
- line-height: 1;
69
- letter-spacing: 0.01em;
70
- color: var(--openpress-color-ink);
71
- }
72
-
73
- .cover-tagline {
74
- margin: var(--openpress-space-2) 0 0;
75
- font-family: var(--openpress-font-serif);
76
- font-size: clamp(14px, 2.4cqw, 20px);
77
- font-weight: 300;
78
- letter-spacing: 0.08em;
79
- color: var(--openpress-color-muted);
80
- }
81
-
82
- .cover-rule,
83
- .back-cover-rule {
84
- height: 1px;
85
- width: 40px;
86
- background: var(--openpress-color-ink);
87
- margin: var(--openpress-space-3) 0;
88
- }
89
-
90
- .cover-subtitle {
91
- margin: 0;
92
- font-family: var(--openpress-font-body);
93
- font-size: clamp(10.5pt, 1.85cqw, 12.5pt);
94
- font-weight: 400;
95
- letter-spacing: 0.02em;
96
- line-height: 1.55;
97
- color: var(--openpress-color-ink);
98
- }
99
-
100
- .cover-summary {
101
- margin: var(--openpress-space-2) 0 0;
102
- font-family: var(--openpress-font-body);
103
- font-size: clamp(9pt, 1.65cqw, 10pt);
104
- line-height: 1.8;
105
- color: var(--openpress-color-muted);
106
- max-width: 90%;
107
- }
108
-
109
- .cover-visual,
110
- .back-cover-visual {
111
- margin: var(--openpress-space-3) 0 0;
112
- flex-shrink: 0;
113
- }
114
-
115
- .cover-visual img,
116
- .back-cover-visual img {
117
- display: block;
118
- width: 100%;
119
- height: auto;
120
- max-height: 22cqh;
121
- object-fit: cover;
122
- border: 0;
123
- padding: 0;
124
- background: transparent;
125
- }
126
-
127
- .cover-byline,
128
- .back-cover-byline {
129
- display: flex;
130
- justify-content: space-between;
131
- align-items: baseline;
132
- padding-top: var(--openpress-space-2);
133
- border-top: 1px solid var(--openpress-color-ink);
134
- font-family: var(--openpress-font-body);
135
- font-size: clamp(8pt, 1.25cqw, 9.5pt);
136
- color: var(--openpress-color-muted);
137
- letter-spacing: 0.12em;
138
- flex-shrink: 0;
139
- }
140
-
141
- .cover-byline span:first-child,
142
- .back-cover-byline span:first-child {
143
- font-family: var(--openpress-font-serif);
144
- font-weight: 400;
145
- letter-spacing: 0.04em;
146
- color: var(--openpress-color-ink);
147
- }
148
-
149
- /* ─ academic-paper title block for the journal-style template ───────────── */
150
-
151
- .paper-cover {
152
- display: flex;
153
- flex-direction: column;
154
- gap: clamp(11px, 2.2cqw, 20px);
155
- padding-block: clamp(18px, 2.5cqw, 30px) 0;
156
- font-family: var(--openpress-font-serif);
157
- color: var(--openpress-color-ink);
158
- }
159
-
160
- .paper-cover-lead,
161
- .paper-cover-short-title {
162
- margin: 0;
163
- text-align: center;
164
- color: var(--openpress-color-muted);
165
- font-family: var(--openpress-font-body);
166
- font-size: clamp(8.5pt, 1.55cqw, 9.5pt);
167
- letter-spacing: 0.01em;
168
- line-height: 1.3;
169
- }
170
-
171
- .paper-cover-date {
172
- margin: 0;
173
- text-align: center;
174
- color: var(--openpress-color-muted);
175
- font-family: var(--openpress-font-body);
176
- font-size: clamp(7.8pt, 1.3cqw, 8.7pt);
177
- letter-spacing: 0;
178
- line-height: 1.25;
179
- }
180
-
181
- .paper-cover-lead {
182
- margin-top: 2mm;
183
- }
184
-
185
- .paper-cover-short-title {
186
- margin-bottom: clamp(6px, 1.2cqw, 10px);
187
- }
188
-
189
- .paper-title {
190
- font-family: var(--openpress-font-serif);
191
- font-size: clamp(32px, 4.9cqw, 45px);
192
- line-height: 1.2;
193
- font-weight: 400;
194
- text-align: center;
195
- margin: 0;
196
- letter-spacing: -0.01em;
197
- }
198
-
199
- .paper-author-contact-note {
200
- text-align: center;
201
- margin: 0;
202
- font-size: clamp(8.5pt, 1.45cqw, 9.5pt);
203
- color: var(--openpress-color-muted);
204
- line-height: 1.35;
205
- }
206
-
207
- .paper-author-line {
208
- margin: 0;
209
- text-align: center;
210
- font-size: clamp(11px, 2cqw, 13px);
211
- line-height: 1.45;
212
- font-weight: 500;
213
- }
214
-
215
- .paper-author-affiliations {
216
- margin: 0;
217
- list-style: none;
218
- padding: 0;
219
- display: flex;
220
- flex-direction: column;
221
- gap: 1mm;
222
- text-align: center;
223
- }
224
-
225
- .paper-author {
226
- display: flex;
227
- flex-direction: column;
228
- }
229
-
230
- .paper-author-affiliation {
231
- margin: 0;
232
- color: var(--openpress-color-ink);
233
- font-family: var(--openpress-font-body);
234
- font-size: clamp(9px, 1.6cqw, 10px);
235
- line-height: 1.42;
236
- }
237
-
238
- .paper-abstract,
239
- .paper-nontechnical-summary,
240
- .paper-contributions,
241
- .paper-abstract > p,
242
- .paper-nontechnical-summary > p,
243
- .paper-contributions > p {
244
- margin-top: clamp(8px, 1.6cqw, 14px);
245
- font-family: var(--openpress-font-body);
246
- font-size: clamp(10px, 1.7cqw, 11px);
247
- line-height: 1.45;
248
- text-align: justify;
249
- text-justify: inter-word;
250
- }
251
-
252
- .paper-abstract > p,
253
- .paper-nontechnical-summary > p,
254
- .paper-contributions > p {
255
- margin: 0;
256
- text-indent: 0.9em;
257
- }
258
-
259
- .paper-abstract-label {
260
- display: inline-block;
261
- font-weight: 500;
262
- text-transform: none;
263
- }
264
-
265
- .paper-section-label {
266
- font-family: var(--openpress-font-serif);
267
- font-size: 0.95em;
268
- font-weight: 500;
269
- }
270
-
271
- /* ─ academic-paper back cover ───────────────────────────────────────────── */
272
-
273
- .paper-back-cover {
274
- display: flex;
275
- flex-direction: column;
276
- gap: clamp(10px, 1.6cqw, 16px);
277
- font-family: var(--openpress-font-serif);
278
- padding-inline: clamp(24px, 4cqw, 56px);
279
- }
280
-
281
- .paper-back-kicker {
282
- font-family: var(--openpress-font-mono, monospace);
283
- font-size: 11px;
284
- letter-spacing: 0.08em;
285
- text-transform: uppercase;
286
- color: var(--openpress-color-muted);
287
- margin: 0;
288
- }
289
-
290
- .paper-back-statement {
291
- font-size: clamp(13px, 1.6cqw, 15px);
292
- line-height: 1.5;
293
- margin: 0;
294
- }
@@ -1,149 +0,0 @@
1
- /* page-surfaces / toc
2
- * Table-of-contents page surface rendered by the manuscript <Toc> helper.
3
- * Entries flow through the generated toc:<sourceId> chain and TocArea.
4
- */
5
-
6
- .reader-page--toc {
7
- padding: 0;
8
- }
9
-
10
- .reader-page--toc .page-frame {
11
- grid-template-rows: auto minmax(0, 1fr);
12
- }
13
-
14
- .reader-page--toc .toc-header {
15
- display: block;
16
- overflow: visible;
17
- opacity: 1;
18
- }
19
-
20
- .reader-page--toc .openpress-toc-area {
21
- height: 100%;
22
- }
23
-
24
- .reader-page--toc h2 {
25
- margin-top: 0;
26
- font-family: var(--openpress-font-serif);
27
- font-weight: 300;
28
- letter-spacing: 0.12em;
29
- font-size: clamp(15pt, 3.6cqw, 18pt);
30
- border-bottom: 0;
31
- padding-bottom: 0;
32
- }
33
-
34
- .reader-page--toc h2.toc-heading--continuation {
35
- display: none;
36
- }
37
-
38
- .toc-list {
39
- display: flex;
40
- flex-direction: column;
41
- gap: 0.75mm;
42
- margin: 10mm 0 0;
43
- padding: 0;
44
- list-style: none;
45
- }
46
-
47
- .toc-continuation .toc-list {
48
- margin-top: 5mm;
49
- }
50
-
51
- .toc-list li {
52
- border-bottom: 0;
53
- }
54
-
55
- .toc-list a {
56
- display: grid;
57
- grid-template-columns: 9mm minmax(0, 1fr) 12mm;
58
- column-gap: 3mm;
59
- align-items: baseline;
60
- color: var(--openpress-color-ink);
61
- text-decoration: none;
62
- font-family: var(--openpress-font-serif);
63
- padding: 1.6mm 0;
64
- font-weight: 400;
65
- line-height: 1.38;
66
- }
67
-
68
- .toc-list a:hover .toc-title {
69
- color: var(--openpress-color-muted);
70
- }
71
-
72
- .toc-index {
73
- display: inline-block;
74
- color: var(--openpress-color-muted);
75
- font-family: var(--openpress-font-mono);
76
- font-variant-numeric: tabular-nums;
77
- font-weight: 400;
78
- letter-spacing: 0;
79
- font-size: 9.5pt;
80
- text-align: left;
81
- }
82
-
83
- .toc-level-2 a {
84
- margin-top: 2.5mm;
85
- padding: 3mm 0 2mm;
86
- border-top: 1px solid rgba(169, 180, 194, 0.42);
87
- }
88
-
89
- .toc-level-2:first-child a {
90
- margin-top: 0;
91
- border-top: 0;
92
- }
93
-
94
- .toc-level-2 .toc-title {
95
- color: var(--openpress-color-ink);
96
- font-size: 12pt;
97
- font-weight: 500;
98
- }
99
-
100
- .toc-level-2 .toc-title::after {
101
- content: none;
102
- }
103
-
104
- .toc-level-2 .toc-page {
105
- color: var(--openpress-color-ink);
106
- font-size: 9.8pt;
107
- }
108
-
109
- .toc-level-3 a {
110
- grid-template-columns: 9mm minmax(0, 1fr) 12mm;
111
- padding: 1.28mm 0 1.28mm 7mm;
112
- color: var(--openpress-color-muted);
113
- font-size: 10pt;
114
- }
115
-
116
- .toc-level-3 .toc-index {
117
- font-size: 9pt;
118
- }
119
-
120
- .toc-level-3 .toc-page {
121
- font-size: 9.5pt;
122
- }
123
-
124
- .toc-title {
125
- display: flex;
126
- gap: 3mm;
127
- align-items: baseline;
128
- color: var(--openpress-color-ink);
129
- font-family: var(--openpress-font-serif);
130
- }
131
-
132
- .toc-title::after {
133
- content: "";
134
- flex: 1;
135
- min-width: 10mm;
136
- border-bottom: 1px dotted rgba(72, 101, 129, 0.32);
137
- transform: translateY(-0.22em);
138
- }
139
-
140
- .toc-page {
141
- color: var(--openpress-color-muted);
142
- font-family: var(--openpress-font-mono);
143
- font-variant-numeric: tabular-nums;
144
- font-weight: 400;
145
- font-size: 9.8pt;
146
- justify-self: end;
147
- min-width: 10mm;
148
- text-align: right;
149
- }
@@ -1,49 +0,0 @@
1
- /* _chart-frame.css
2
- * 共用圖表外框。文件圖表只要在 figure 上掛 chart-frame,
3
- * 元件自己的 class 只負責內部結構樣式。
4
- */
5
-
6
- .reader-page--content .page-body > figure.chart-frame,
7
- :where(.chart-frame) {
8
- width: 100%;
9
- max-width: none;
10
- margin: var(--openpress-space-3) 0 var(--openpress-space-4);
11
- margin-left: 0;
12
- margin-right: 0;
13
- padding: var(--openpress-space-2);
14
- border: 1px solid rgba(0, 0, 0, 0.07);
15
- background: var(--openpress-color-document);
16
- box-sizing: border-box;
17
- break-inside: avoid;
18
- }
19
-
20
- :where(.chart-frame) figcaption {
21
- margin-top: var(--openpress-space-2);
22
- color: var(--openpress-color-muted);
23
- font-size: clamp(10px, 1.05cqw, 11px);
24
- line-height: 1.55;
25
- letter-spacing: 0.04em;
26
- text-align: center;
27
- }
28
-
29
- .reader-page--content .page-body > figure svg,
30
- :where(.chart-frame) svg {
31
- display: block;
32
- max-width: 100%;
33
- height: auto;
34
- overflow: visible;
35
- }
36
-
37
- @media (max-width: 899px) {
38
- .reader-page--content .page-body > figure.chart-frame,
39
- :where(.chart-frame) {
40
- max-height: 100%;
41
- }
42
-
43
- .reader-page--content .page-body > figure svg,
44
- :where(.chart-frame) svg {
45
- width: 100%;
46
- max-height: 100%;
47
- object-fit: contain;
48
- }
49
- }
@@ -1,68 +0,0 @@
1
- /* figure-grid
2
- * Reusable image grid pattern for inline Markdown/HTML figures.
3
- */
4
-
5
- table.figure-grid {
6
- border: 0;
7
- background: transparent;
8
- table-layout: fixed;
9
- }
10
-
11
- div.figure-grid {
12
- display: grid;
13
- grid-template-columns: repeat(2, minmax(0, 1fr));
14
- gap: 4mm;
15
- margin: var(--openpress-space-4) 0 var(--openpress-space-2);
16
- break-inside: avoid;
17
- }
18
-
19
- table.figure-grid td {
20
- border: 0;
21
- padding: 0 2mm 3mm;
22
- vertical-align: top;
23
- }
24
-
25
- table.figure-grid figure,
26
- div.figure-grid figure {
27
- margin-top: 0;
28
- margin-bottom: 0;
29
- }
30
-
31
- .figure-grid img {
32
- width: auto;
33
- height: auto;
34
- max-width: 100%;
35
- max-height: 62mm;
36
- }
37
-
38
- /* Three-column triptych: one lead figure plus two siblings, centered on the
39
- * page. Use this when a section needs a coordinated trio of images at a fixed
40
- * aspect ratio (e.g. founder profile, milestone photo set). */
41
- div.figure-grid--triptych {
42
- grid-template-columns: repeat(3, minmax(0, 1fr));
43
- gap: 3mm;
44
- width: min(92%, 156mm);
45
- margin: var(--openpress-space-4) auto var(--openpress-space-2);
46
- }
47
-
48
- div.figure-grid--triptych figure {
49
- display: flex;
50
- flex-direction: column;
51
- align-items: center;
52
- margin: 0;
53
- }
54
-
55
- div.figure-grid--triptych img {
56
- width: 100%;
57
- max-height: none;
58
- aspect-ratio: 3 / 2;
59
- object-fit: cover;
60
- }
61
-
62
- div.figure-grid--triptych .figure-grid__lead img {
63
- aspect-ratio: 4 / 3;
64
- }
65
-
66
- div.figure-grid--triptych figcaption {
67
- text-align: left;
68
- }
@@ -1,66 +0,0 @@
1
- /* table-utilities
2
- * Semantic table helpers used by content Markdown.
3
- */
4
-
5
- .cell-check,
6
- .cell-partial,
7
- .cell-dash {
8
- display: inline-block;
9
- font-feature-settings: "tnum";
10
- line-height: 1;
11
- }
12
-
13
- .cell-check {
14
- color: #24a148;
15
- font-weight: 600;
16
- }
17
-
18
- .cell-partial {
19
- color: #b58105;
20
- font-weight: 500;
21
- }
22
-
23
- .cell-dash {
24
- color: var(--openpress-color-text-placeholder);
25
- letter-spacing: -0.04em;
26
- }
27
-
28
- .status-text {
29
- display: inline;
30
- font-size: inherit;
31
- line-height: inherit;
32
- white-space: nowrap;
33
- }
34
-
35
- .status-live {
36
- color: #198038;
37
- }
38
-
39
- .status-building {
40
- color: #0f62fe;
41
- }
42
-
43
- .status-planned {
44
- color: #525252;
45
- }
46
-
47
- .status-ai-full {
48
- color: #007d79;
49
- }
50
-
51
- .status-ai-partial {
52
- color: #8a5a00;
53
- }
54
-
55
- td.numeric,
56
- th.numeric {
57
- text-align: right;
58
- font-variant-numeric: tabular-nums;
59
- white-space: nowrap;
60
- }
61
-
62
- td.savings-rate,
63
- th.savings-rate {
64
- color: var(--openpress-color-green);
65
- font-weight: 600;
66
- }