@open-press/cli 1.0.0 → 1.1.1

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 (175) hide show
  1. package/README.md +11 -12
  2. package/dist/cli.js +298 -79
  3. package/package.json +9 -7
  4. package/template/core/AGENTS.md +0 -130
  5. package/template/core/CHANGELOG.md +0 -218
  6. package/template/core/README.md +0 -43
  7. package/template/core/engine/cli.mjs +0 -96
  8. package/template/core/engine/commands/_shared.mjs +0 -199
  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/image.mjs +0 -29
  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/skills-sync.mjs +0 -71
  21. package/template/core/engine/commands/typecheck.mjs +0 -67
  22. package/template/core/engine/commands/upgrade.mjs +0 -159
  23. package/template/core/engine/commands/validate.mjs +0 -17
  24. package/template/core/engine/document-export.mjs +0 -15
  25. package/template/core/engine/output/chrome-pdf.d.mts +0 -34
  26. package/template/core/engine/output/chrome-pdf.mjs +0 -450
  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 -571
  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 -331
  39. package/template/core/engine/react/document-export.mjs +0 -512
  40. package/template/core/engine/react/http-json.mjs +0 -24
  41. package/template/core/engine/react/mdx-compile.mjs +0 -629
  42. package/template/core/engine/react/measurement-css.mjs +0 -157
  43. package/template/core/engine/react/object-entities.mjs +0 -204
  44. package/template/core/engine/react/pagination/allocator.mjs +0 -167
  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 -217
  49. package/template/core/engine/react/pipeline/final-render.mjs +0 -94
  50. package/template/core/engine/react/pipeline/frame-measurement.mjs +0 -306
  51. package/template/core/engine/react/pipeline/press-tree.mjs +0 -135
  52. package/template/core/engine/react/press-tree-inspection.mjs +0 -172
  53. package/template/core/engine/react/project-asset-endpoint.d.mts +0 -10
  54. package/template/core/engine/react/project-asset-endpoint.mjs +0 -361
  55. package/template/core/engine/react/section-css.mjs +0 -56
  56. package/template/core/engine/react/source-edit-endpoint.d.mts +0 -10
  57. package/template/core/engine/react/source-edit-endpoint.mjs +0 -75
  58. package/template/core/engine/react/sources/heading-numbering.mjs +0 -132
  59. package/template/core/engine/react/sources/mdx-resolver.mjs +0 -439
  60. package/template/core/engine/react/style-discovery.mjs +0 -160
  61. package/template/core/engine/runtime/config.d.mts +0 -48
  62. package/template/core/engine/runtime/config.mjs +0 -172
  63. package/template/core/engine/runtime/file-utils.mjs +0 -114
  64. package/template/core/engine/runtime/file-walk.mjs +0 -22
  65. package/template/core/engine/runtime/inspection.mjs +0 -328
  66. package/template/core/engine/runtime/issue-report.mjs +0 -44
  67. package/template/core/engine/runtime/page-geometry.mjs +0 -131
  68. package/template/core/engine/runtime/path-utils.mjs +0 -20
  69. package/template/core/engine/runtime/source-text-tools.d.mts +0 -102
  70. package/template/core/engine/runtime/source-text-tools.mjs +0 -832
  71. package/template/core/engine/runtime/source-workspace.mjs +0 -168
  72. package/template/core/engine/runtime/validation.mjs +0 -183
  73. package/template/core/index.html +0 -13
  74. package/template/core/openpress.config.mjs +0 -8
  75. package/template/core/package.json +0 -89
  76. package/template/core/src/main.tsx +0 -16
  77. package/template/core/src/openpress/app/OpenPressApp.tsx +0 -296
  78. package/template/core/src/openpress/app/OpenPressRuntime.tsx +0 -102
  79. package/template/core/src/openpress/app/WorkspaceGalleryPage.tsx +0 -219
  80. package/template/core/src/openpress/app/index.ts +0 -2
  81. package/template/core/src/openpress/core/Frame.tsx +0 -91
  82. package/template/core/src/openpress/core/FrameContext.tsx +0 -26
  83. package/template/core/src/openpress/core/MdxArea.tsx +0 -34
  84. package/template/core/src/openpress/core/Press.tsx +0 -55
  85. package/template/core/src/openpress/core/Workspace.tsx +0 -36
  86. package/template/core/src/openpress/core/cn.ts +0 -4
  87. package/template/core/src/openpress/core/index.tsx +0 -47
  88. package/template/core/src/openpress/core/primitives.tsx +0 -91
  89. package/template/core/src/openpress/core/types.ts +0 -236
  90. package/template/core/src/openpress/core/useSource.ts +0 -28
  91. package/template/core/src/openpress/document-model/anchorMapModel.ts +0 -27
  92. package/template/core/src/openpress/document-model/documentIndexes.ts +0 -329
  93. package/template/core/src/openpress/document-model/documentTypes.ts +0 -147
  94. package/template/core/src/openpress/document-model/index.ts +0 -7
  95. package/template/core/src/openpress/document-model/objectEntityModel.ts +0 -55
  96. package/template/core/src/openpress/document-model/projectIdentityModel.ts +0 -15
  97. package/template/core/src/openpress/document-model/reactDocumentMetadataModel.ts +0 -27
  98. package/template/core/src/openpress/document-model/workspaceManifestModel.ts +0 -57
  99. package/template/core/src/openpress/manuscript/index.tsx +0 -238
  100. package/template/core/src/openpress/mdx/index.ts +0 -96
  101. package/template/core/src/openpress/numbering/index.ts +0 -294
  102. package/template/core/src/openpress/reader/PageThumbnailsPanel.tsx +0 -168
  103. package/template/core/src/openpress/reader/PublicReaderPage.tsx +0 -267
  104. package/template/core/src/openpress/reader/ReaderNavigationPanel.tsx +0 -123
  105. package/template/core/src/openpress/reader/index.ts +0 -11
  106. package/template/core/src/openpress/reader/pageViewportScaleModel.ts +0 -73
  107. package/template/core/src/openpress/reader/readerPageRegistry.ts +0 -41
  108. package/template/core/src/openpress/reader/readerPageRoute.ts +0 -21
  109. package/template/core/src/openpress/reader/readerScroll.ts +0 -92
  110. package/template/core/src/openpress/reader/readerStateModel.ts +0 -15
  111. package/template/core/src/openpress/reader/readerTypes.ts +0 -4
  112. package/template/core/src/openpress/reader/usePageViewportScale.ts +0 -119
  113. package/template/core/src/openpress/reader/usePanelState.ts +0 -56
  114. package/template/core/src/openpress/reader/useReaderHashSync.ts +0 -61
  115. package/template/core/src/openpress/reader/useReaderKeyboardNav.ts +0 -48
  116. package/template/core/src/openpress/reader/useReaderRuntime.ts +0 -146
  117. package/template/core/src/openpress/reader/useReaderScrollAnchor.ts +0 -64
  118. package/template/core/src/openpress/shared/Panel.tsx +0 -77
  119. package/template/core/src/openpress/shared/frameScheduler.ts +0 -32
  120. package/template/core/src/openpress/shared/index.ts +0 -4
  121. package/template/core/src/openpress/shared/numberUtils.ts +0 -3
  122. package/template/core/src/openpress/shared/runtimeMode.ts +0 -11
  123. package/template/core/src/openpress/workbench/Workbench.tsx +0 -506
  124. package/template/core/src/openpress/workbench/actions/DeploymentControl.tsx +0 -157
  125. package/template/core/src/openpress/workbench/actions/ExportImageControl.tsx +0 -96
  126. package/template/core/src/openpress/workbench/actions/PageZoomControl.tsx +0 -182
  127. package/template/core/src/openpress/workbench/actions/SearchControl.tsx +0 -345
  128. package/template/core/src/openpress/workbench/actions/deploymentStatusModel.ts +0 -112
  129. package/template/core/src/openpress/workbench/actions/index.ts +0 -6
  130. package/template/core/src/openpress/workbench/actions/useDeploymentWorkbench.ts +0 -136
  131. package/template/core/src/openpress/workbench/dialog/WorkbenchDialog.tsx +0 -72
  132. package/template/core/src/openpress/workbench/dialog/index.ts +0 -1
  133. package/template/core/src/openpress/workbench/document/components/DocumentPanel.tsx +0 -127
  134. package/template/core/src/openpress/workbench/document/components/InlineSourceEditorLayer.tsx +0 -207
  135. package/template/core/src/openpress/workbench/document/components/ReaderStage.tsx +0 -9
  136. package/template/core/src/openpress/workbench/document/hooks/useDocumentWorkbenchModel.ts +0 -34
  137. package/template/core/src/openpress/workbench/document/hooks/useInlineDocumentEditor.ts +0 -525
  138. package/template/core/src/openpress/workbench/document/index.ts +0 -10
  139. package/template/core/src/openpress/workbench/index.ts +0 -2
  140. package/template/core/src/openpress/workbench/inspector/InlineInspectorLayer.tsx +0 -459
  141. package/template/core/src/openpress/workbench/inspector/index.ts +0 -5
  142. package/template/core/src/openpress/workbench/inspector/inlineCommentModel.ts +0 -125
  143. package/template/core/src/openpress/workbench/inspector/inspectorGeometryModel.ts +0 -160
  144. package/template/core/src/openpress/workbench/inspector/inspectorModel.ts +0 -408
  145. package/template/core/src/openpress/workbench/inspector/useInspectorComments.ts +0 -254
  146. package/template/core/src/openpress/workbench/mentions/MentionSuggestionList.tsx +0 -41
  147. package/template/core/src/openpress/workbench/mentions/index.ts +0 -2
  148. package/template/core/src/openpress/workbench/mentions/useComposerMentions.ts +0 -185
  149. package/template/core/src/openpress/workbench/panels/Panel.tsx +0 -1
  150. package/template/core/src/openpress/workbench/panels/PendingCommentsPanel.tsx +0 -80
  151. package/template/core/src/openpress/workbench/panels/WorkbenchControlPanel.tsx +0 -29
  152. package/template/core/src/openpress/workbench/panels/index.ts +0 -3
  153. package/template/core/src/openpress/workbench/project/ProjectEntryPanel.tsx +0 -525
  154. package/template/core/src/openpress/workbench/project/ProjectPreviewDialog.tsx +0 -35
  155. package/template/core/src/openpress/workbench/project/index.ts +0 -2
  156. package/template/core/src/openpress/workbench/project/projectPreviewTypes.ts +0 -11
  157. package/template/core/src/openpress/workbench/project/projectSourceModel.ts +0 -24
  158. package/template/core/src/openpress/workbench/shell/WorkbenchShell.tsx +0 -167
  159. package/template/core/src/openpress/workbench/shell/index.ts +0 -1
  160. package/template/core/src/openpress/workbench/workbenchFormatters.ts +0 -120
  161. package/template/core/src/openpress/workbench/workbenchTypes.ts +0 -35
  162. package/template/core/src/styles/openpress/app-shell.css +0 -251
  163. package/template/core/src/styles/openpress/media-workspace.css +0 -230
  164. package/template/core/src/styles/openpress/print-route.css +0 -184
  165. package/template/core/src/styles/openpress/project-preview-panel.css +0 -924
  166. package/template/core/src/styles/openpress/public-viewer.css +0 -688
  167. package/template/core/src/styles/openpress/reader-runtime.css +0 -989
  168. package/template/core/src/styles/openpress/responsive.css +0 -245
  169. package/template/core/src/styles/openpress/workbench-panels.css +0 -707
  170. package/template/core/src/styles/openpress/workbench.css +0 -1255
  171. package/template/core/src/styles/openpress/workspace-gallery.css +0 -300
  172. package/template/core/src/styles/openpress.css +0 -15
  173. package/template/core/src/vite-env.d.ts +0 -9
  174. package/template/core/tsconfig.json +0 -40
  175. package/template/core/vite.config.ts +0 -584
@@ -1,707 +0,0 @@
1
- .openpress-html-source {
2
- display: contents;
3
- }
4
-
5
- .openpress-workspace-panel {
6
- min-width: 0;
7
- height: 100%;
8
- background: #171717;
9
- scrollbar-width: none;
10
- }
11
-
12
- .openpress-reader-app .reader-side-nav {
13
- display: grid;
14
- grid-template-rows: auto auto minmax(0, 1fr);
15
- overflow: hidden;
16
- }
17
-
18
- .openpress-document-panel {
19
- display: grid;
20
- height: 100%;
21
- min-height: 0;
22
- grid-template-rows: auto minmax(0, 1fr);
23
- overflow: hidden;
24
- }
25
-
26
- .openpress-dev-control-tabs.openpress-document-panel-tabs {
27
- grid-template-columns: repeat(2, minmax(0, 1fr));
28
- margin: 0 22px;
29
- padding-top: 2px;
30
- }
31
-
32
- .openpress-document-panel [data-openpress-document-panel-tab-panel] {
33
- min-height: 0;
34
- overflow: hidden;
35
- }
36
-
37
- .openpress-document-panel [data-openpress-document-panel-tab-panel][hidden] {
38
- display: none;
39
- }
40
-
41
- .openpress-document-panel [data-openpress-document-panel-tab-panel]:not([hidden]) {
42
- display: grid;
43
- }
44
-
45
- .openpress-document-panel__comments,
46
- .openpress-document-panel__project {
47
- min-height: 0;
48
- overflow: hidden;
49
- }
50
-
51
- .openpress-control-panel {
52
- display: grid;
53
- align-content: start;
54
- min-height: 0;
55
- gap: 22px;
56
- padding: 18px 22px 18px;
57
- overflow: auto;
58
- scrollbar-width: none;
59
- }
60
-
61
- .openpress-control-panel::-webkit-scrollbar {
62
- width: 0;
63
- height: 0;
64
- display: none;
65
- }
66
-
67
- .openpress-control-panel .openpress-comments-panel--embedded,
68
- .openpress-control-panel .openpress-project-panel {
69
- min-height: 0;
70
- padding: 0;
71
- overflow: visible;
72
- }
73
-
74
- .openpress-reader-app .reader-side-nav .reader-bookmarks {
75
- height: 100%;
76
- min-height: 0;
77
- overflow: auto;
78
- padding: 0 18px 18px 30px;
79
- scrollbar-width: none;
80
- }
81
-
82
- .openpress-reader-app .reader-bookmarks-rail {
83
- left: 18px;
84
- background: rgb(255 255 255 / 10%);
85
- }
86
-
87
- .openpress-reader-app .bookmark-group {
88
- margin-bottom: 4px;
89
- }
90
-
91
- .openpress-reader-app .bookmark-item {
92
- display: grid;
93
- width: 100%;
94
- min-width: 0;
95
- border: 0;
96
- column-gap: 16px;
97
- align-items: baseline;
98
- background: transparent;
99
- color: #969ca3;
100
- font-family: inherit;
101
- text-align: left;
102
- cursor: pointer;
103
- }
104
-
105
- .openpress-reader-app .bookmark-item:hover,
106
- .openpress-reader-app .bookmark-item.is-active {
107
- color: #f2f2f0;
108
- }
109
-
110
- .openpress-reader-app .bookmark-index {
111
- display: block;
112
- min-width: 0;
113
- color: inherit;
114
- font-variant-numeric: tabular-nums;
115
- letter-spacing: 0.04em;
116
- white-space: nowrap;
117
- }
118
-
119
- .openpress-reader-app .bookmark-h2 {
120
- grid-template-columns: 34px minmax(0, 1fr);
121
- padding: 10px 0 9px;
122
- color: #d2d6da;
123
- font-size: 14px;
124
- font-weight: 500;
125
- line-height: 1.38;
126
- }
127
-
128
- .openpress-reader-app .bookmark-h2 .bookmark-index {
129
- color: #f2f2f0;
130
- font-size: 12px;
131
- font-weight: 500;
132
- line-height: 1.35;
133
- }
134
-
135
- .openpress-reader-app .bookmark-h3 {
136
- grid-template-columns: 50px minmax(0, 1fr);
137
- padding: 7px 0 7px 64px;
138
- color: #757b82;
139
- font-size: 13px;
140
- line-height: 1.35;
141
- }
142
-
143
- .openpress-reader-app .bookmark-h3.is-active,
144
- .openpress-reader-app .bookmark-h3:hover {
145
- color: #f2f2f0;
146
- }
147
-
148
- .openpress-reader-app .bookmark-subgroup {
149
- display: flex;
150
- flex-direction: column;
151
- }
152
-
153
- .openpress-reader-app .bookmark-h4 {
154
- grid-template-columns: 54px minmax(0, 1fr);
155
- padding: 5px 0 5px 82px;
156
- color: #666c73;
157
- font-size: 12px;
158
- line-height: 1.32;
159
- }
160
-
161
- .openpress-reader-app .bookmark-h4.is-active,
162
- .openpress-reader-app .bookmark-h4:hover {
163
- color: #f2f2f0;
164
- }
165
-
166
- .openpress-reader-app .bookmark-title {
167
- overflow: hidden;
168
- display: -webkit-box;
169
- min-width: 0;
170
- white-space: normal;
171
- word-break: keep-all;
172
- overflow-wrap: normal;
173
- line-break: loose;
174
- -webkit-box-orient: vertical;
175
- -webkit-line-clamp: 2;
176
- }
177
-
178
- .openpress-reader-app .bookmark-h3 .bookmark-title {
179
- -webkit-line-clamp: 2;
180
- }
181
-
182
- .openpress-reader-app .bookmark-h4 .bookmark-title {
183
- -webkit-line-clamp: 1;
184
- }
185
-
186
- .openpress-reader-app .bookmark-subs {
187
- display: block;
188
- max-height: 0;
189
- overflow: hidden;
190
- padding-bottom: 0;
191
- opacity: 0;
192
- transform: translateY(-6px);
193
- transition:
194
- max-height 340ms cubic-bezier(0.22, 0.61, 0.36, 1),
195
- opacity 180ms ease,
196
- padding-bottom 340ms cubic-bezier(0.22, 0.61, 0.36, 1),
197
- transform 340ms cubic-bezier(0.22, 0.61, 0.36, 1);
198
- will-change: max-height, opacity, transform;
199
- pointer-events: none;
200
- }
201
-
202
- .openpress-reader-app .bookmark-group.is-open .bookmark-subs {
203
- max-height: none;
204
- overflow: visible;
205
- padding-bottom: 8px;
206
- opacity: 1;
207
- transform: translateY(0);
208
- pointer-events: auto;
209
- }
210
-
211
- .openpress-public-viewer.openpress-reader-app .bookmark-item {
212
- column-gap: 8px;
213
- }
214
-
215
- .openpress-public-viewer.openpress-reader-app .bookmark-h2 {
216
- grid-template-columns: 24px minmax(0, 1fr);
217
- padding: 8px 0 7px;
218
- font-family: var(--openpress-font-serif);
219
- font-size: 14px;
220
- line-height: 1.42;
221
- }
222
-
223
- .openpress-public-viewer.openpress-reader-app .bookmark-h3 {
224
- grid-template-columns: 24px minmax(0, 1fr);
225
- column-gap: 8px;
226
- padding: 4px 0 4px 32px;
227
- font-family: var(--openpress-font-serif);
228
- font-size: 14px;
229
- line-height: 1.42;
230
- }
231
-
232
- .openpress-public-viewer.openpress-reader-app .bookmark-title {
233
- display: block;
234
- overflow: visible;
235
- font-family: var(--openpress-font-serif);
236
- letter-spacing: 0;
237
- -webkit-line-clamp: unset;
238
- }
239
-
240
- .openpress-public-viewer.openpress-reader-app .bookmark-h3 .bookmark-index {
241
- font-size: 12px;
242
- }
243
-
244
- .openpress-panel-section {
245
- min-width: 0;
246
- min-height: 0;
247
- }
248
-
249
- .openpress-panel-section--current {
250
- border-bottom: 1px solid rgb(255 255 255 / 8%);
251
- padding: 18px 0 16px;
252
- }
253
-
254
- .openpress-current-page-card {
255
- display: grid;
256
- gap: 8px;
257
- padding: 0 18px 0 30px;
258
- }
259
-
260
- .openpress-current-page-card__number {
261
- display: flex;
262
- align-items: baseline;
263
- gap: 7px;
264
- color: #f2f2f0;
265
- font-size: 28px;
266
- font-weight: 400;
267
- line-height: 1;
268
- font-variant-numeric: tabular-nums;
269
- letter-spacing: 0.03em;
270
- }
271
-
272
- .openpress-current-page-card__number .sep {
273
- color: #5f656c;
274
- font-size: 16px;
275
- line-height: 1;
276
- }
277
-
278
- .openpress-current-page-card__number [data-openpress-total-pages] {
279
- color: #8c939a;
280
- font-size: 16px;
281
- }
282
-
283
- .openpress-current-page-card__prefix {
284
- color: #7f858c;
285
- font-size: 12px;
286
- font-weight: 500;
287
- letter-spacing: 0.08em;
288
- }
289
-
290
- .openpress-current-page-card__title {
291
- overflow: hidden;
292
- color: #9ba1a8;
293
- font-size: 12px;
294
- line-height: 1.4;
295
- text-overflow: ellipsis;
296
- white-space: nowrap;
297
- }
298
-
299
- .openpress-current-page-card__progress {
300
- overflow: hidden;
301
- width: 100%;
302
- height: 2px;
303
- background: rgb(255 255 255 / 10%);
304
- }
305
-
306
- .openpress-current-page-card__progress span {
307
- display: block;
308
- width: var(--progress, 0%);
309
- height: 100%;
310
- background: var(--openpress-accent);
311
- transition: width 260ms cubic-bezier(0.22, 0.61, 0.36, 1);
312
- }
313
-
314
- .openpress-panel-section--bookmarks {
315
- display: grid;
316
- grid-template-rows: auto minmax(0, 1fr);
317
- min-height: 0;
318
- overflow: hidden;
319
- padding-top: 18px;
320
- }
321
-
322
- .openpress-panel-heading {
323
- padding: 0 18px 12px 30px;
324
- color: #73787f;
325
- font-size: 10px;
326
- font-weight: 500;
327
- letter-spacing: 0.12em;
328
- text-transform: uppercase;
329
- }
330
-
331
- .openpress-asset-index {
332
- display: grid;
333
- grid-template-rows: auto minmax(0, 1fr);
334
- max-height: 38vh;
335
- border-top: 1px solid rgb(255 255 255 / 8%);
336
- padding: 16px 0 18px;
337
- overflow: hidden;
338
- }
339
-
340
- .openpress-asset-list {
341
- display: flex;
342
- min-height: 0;
343
- flex-direction: column;
344
- gap: 2px;
345
- overflow: auto;
346
- padding: 0 18px 0 30px;
347
- scrollbar-width: none;
348
- }
349
-
350
- .openpress-asset-list::-webkit-scrollbar {
351
- width: 0;
352
- height: 0;
353
- display: none;
354
- }
355
-
356
- .openpress-asset-link {
357
- display: grid;
358
- grid-template-columns: 44px minmax(0, 1fr);
359
- gap: 10px;
360
- align-items: baseline;
361
- padding: 7px 0;
362
- color: #9aa0a6;
363
- text-decoration: none;
364
- }
365
-
366
- .openpress-asset-link:hover {
367
- color: #f1f1ef;
368
- }
369
-
370
- .openpress-asset-label {
371
- color: #d95a36;
372
- font-size: 11px;
373
- font-variant-numeric: tabular-nums;
374
- white-space: nowrap;
375
- }
376
-
377
- .openpress-asset-link--table .openpress-asset-label {
378
- color: #d7a034;
379
- }
380
-
381
- .openpress-asset-title {
382
- display: -webkit-box;
383
- min-width: 0;
384
- overflow: hidden;
385
- font-size: 12px;
386
- line-height: 1.38;
387
- word-break: keep-all;
388
- -webkit-box-orient: vertical;
389
- -webkit-line-clamp: 2;
390
- }
391
-
392
- .openpress-asset-title small {
393
- display: block;
394
- margin-top: 3px;
395
- overflow: hidden;
396
- color: #62676d;
397
- font-size: 10px;
398
- font-weight: 400;
399
- line-height: 1.25;
400
- text-overflow: ellipsis;
401
- white-space: nowrap;
402
- }
403
-
404
- .openpress-asset-empty {
405
- margin: 0;
406
- padding: 0 18px 0 30px;
407
- color: #696f75;
408
- font-size: 12px;
409
- }
410
-
411
- .openpress-panel {
412
- min-width: 0;
413
- min-height: 0;
414
- color: rgb(232 232 228 / 92%);
415
- }
416
-
417
- .openpress-panel-header {
418
- display: grid;
419
- min-width: 0;
420
- grid-template-columns: minmax(0, 1fr) auto;
421
- gap: 12px;
422
- align-items: end;
423
- border-bottom: 1px solid rgb(255 255 255 / 9%);
424
- padding-bottom: 12px;
425
- }
426
-
427
- .openpress-panel-heading-stack {
428
- display: grid;
429
- min-width: 0;
430
- gap: 3px;
431
- }
432
-
433
- .openpress-panel-kicker {
434
- display: block;
435
- margin: 0;
436
- color: rgb(160 166 173 / 60%);
437
- font-family: var(--openpress-font-mono);
438
- font-size: 10px;
439
- font-weight: 650;
440
- line-height: 1;
441
- letter-spacing: 0.04em;
442
- text-transform: uppercase;
443
- }
444
-
445
- .openpress-panel-title {
446
- min-width: 0;
447
- margin: 0;
448
- overflow: hidden;
449
- break-after: auto;
450
- color: rgb(242 242 240 / 94%);
451
- font-family: inherit;
452
- font-size: 14px;
453
- font-weight: 700;
454
- line-height: 1.35;
455
- letter-spacing: 0;
456
- text-overflow: ellipsis;
457
- white-space: nowrap;
458
- }
459
-
460
- .openpress-panel-title::before {
461
- display: none;
462
- content: none;
463
- }
464
-
465
- .openpress-panel-description,
466
- .openpress-panel-section-description {
467
- min-width: 0;
468
- margin: 0;
469
- color: rgb(160 166 173 / 64%);
470
- font-size: 11px;
471
- line-height: 1.4;
472
- }
473
-
474
- .openpress-panel-actions {
475
- display: flex;
476
- min-width: 0;
477
- flex-wrap: wrap;
478
- gap: 8px;
479
- justify-content: flex-end;
480
- }
481
-
482
- .openpress-panel-action-button {
483
- display: inline-flex;
484
- min-width: 0;
485
- min-height: 30px;
486
- align-items: center;
487
- justify-content: center;
488
- gap: 7px;
489
- border: 1px solid rgb(255 255 255 / 12%);
490
- border-radius: 6px;
491
- padding: 6px 9px;
492
- background: rgb(255 255 255 / 5%);
493
- color: rgb(242 242 240 / 90%);
494
- font: inherit;
495
- font-size: 11px;
496
- font-weight: 700;
497
- line-height: 1;
498
- cursor: pointer;
499
- }
500
-
501
- .openpress-panel-action-button:hover:not(:disabled) {
502
- border-color: rgb(255 255 255 / 20%);
503
- background: rgb(255 255 255 / 8%);
504
- }
505
-
506
- .openpress-panel-action-button:disabled {
507
- cursor: not-allowed;
508
- opacity: 0.46;
509
- }
510
-
511
- .openpress-panel-action-button svg {
512
- width: 14px;
513
- height: 14px;
514
- flex: 0 0 auto;
515
- }
516
-
517
- .openpress-panel-body {
518
- display: grid;
519
- min-width: 0;
520
- min-height: 0;
521
- align-content: start;
522
- gap: 10px;
523
- }
524
-
525
- .openpress-panel > .openpress-panel-section,
526
- .openpress-panel-body > .openpress-panel-section {
527
- display: grid;
528
- min-width: 0;
529
- min-height: 0;
530
- gap: 10px;
531
- border-top: 1px solid rgb(255 255 255 / 8%);
532
- padding: 14px 0;
533
- }
534
-
535
- .openpress-panel > .openpress-panel-section:first-child,
536
- .openpress-panel-body > .openpress-panel-section:first-child {
537
- border-top: 0;
538
- padding-top: 0;
539
- }
540
-
541
- .openpress-panel .openpress-panel-section-title {
542
- margin: 0;
543
- padding: 0;
544
- color: rgb(190 196 202 / 58%);
545
- font-family: var(--openpress-font-mono);
546
- font-size: 10px;
547
- font-weight: 650;
548
- line-height: 1;
549
- letter-spacing: 0.04em;
550
- text-transform: uppercase;
551
- }
552
-
553
- .openpress-panel-empty {
554
- margin: 0;
555
- border: 1px dashed rgb(255 255 255 / 12%);
556
- padding: 14px;
557
- color: rgb(150 156 163 / 62%);
558
- font-size: 12px;
559
- line-height: 1.4;
560
- overflow-wrap: anywhere;
561
- }
562
-
563
- .openpress-panel-error {
564
- margin: 0;
565
- border-left: 3px solid rgb(248 113 113 / 76%);
566
- padding: 8px 0 8px 12px;
567
- color: rgb(248 113 113 / 88%);
568
- font-size: 12px;
569
- line-height: 1.45;
570
- }
571
-
572
- .openpress-panel--compact .openpress-panel-header {
573
- gap: 10px;
574
- align-items: start;
575
- }
576
-
577
- .openpress-panel--compact .openpress-panel-actions {
578
- justify-content: flex-start;
579
- }
580
-
581
- .openpress-panel--compact .openpress-panel-actions .openpress-panel-action-button {
582
- width: 34px;
583
- min-height: 30px;
584
- padding: 0;
585
- }
586
-
587
- .openpress-panel--compact .openpress-panel-actions .openpress-panel-action-button span {
588
- position: absolute;
589
- width: 1px;
590
- height: 1px;
591
- overflow: hidden;
592
- clip: rect(0 0 0 0);
593
- white-space: nowrap;
594
- }
595
-
596
- /* Page thumbnails — left panel fallback when no MDX bookmarks exist
597
- (canvas-style Press: social posts, slides). Renders the actual page
598
- HTML scaled down so the user can navigate by visual recognition. */
599
- .openpress-reader-app .openpress-panel-section--thumbnails {
600
- display: flex;
601
- flex-direction: column;
602
- gap: 10px;
603
- padding: 8px 14px 16px;
604
- min-height: 0;
605
- }
606
-
607
- .openpress-reader-app .openpress-thumb-list {
608
- display: flex;
609
- flex-direction: column;
610
- gap: 10px;
611
- margin: 0;
612
- padding: 0;
613
- list-style: none;
614
- }
615
-
616
- .openpress-reader-app .openpress-thumb-card {
617
- display: grid;
618
- grid-template-columns: 20px minmax(0, 1fr);
619
- align-items: stretch;
620
- gap: 6px;
621
- padding: 6px 8px 6px 0;
622
- border: 1px solid rgb(242 242 240 / 12%);
623
- border-radius: 7px;
624
- background: rgb(20 20 20 / 50%);
625
- color: inherit;
626
- cursor: pointer;
627
- text-align: left;
628
- font: inherit;
629
- overflow: hidden;
630
- transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
631
- }
632
-
633
- .openpress-reader-app .openpress-thumb-card:hover {
634
- border-color: rgb(242 242 240 / 26%);
635
- transform: translateY(-1px);
636
- }
637
-
638
- .openpress-reader-app .openpress-thumb-card.is-active {
639
- border-color: var(--openpress-accent, #df4b21);
640
- box-shadow: 0 0 0 1px var(--openpress-accent, #df4b21) inset;
641
- }
642
-
643
- .openpress-reader-app .openpress-thumb-card__surface {
644
- position: relative;
645
- grid-column: 2;
646
- grid-row: 1;
647
- display: grid;
648
- place-items: center;
649
- width: 100%;
650
- overflow: hidden;
651
- background: #fff;
652
- border: 1px solid rgb(242 242 240 / 12%);
653
- border-radius: 4px;
654
- }
655
-
656
- .openpress-reader-app .openpress-thumb-card__page-host {
657
- position: absolute;
658
- inset: 0;
659
- }
660
-
661
- .openpress-reader-app .openpress-thumb-card__page-host .openpress-public-page {
662
- display: block;
663
- pointer-events: none;
664
- user-select: none;
665
- }
666
-
667
- .openpress-reader-app .openpress-thumb-card__frame {
668
- position: relative;
669
- }
670
-
671
- .openpress-reader-app .openpress-thumb-card__surface .openpress-html-page {
672
- pointer-events: none;
673
- user-select: none;
674
- }
675
-
676
- .openpress-reader-app .openpress-thumb-card__meta {
677
- display: grid;
678
- grid-column: 1;
679
- grid-row: 1;
680
- grid-template-rows: auto;
681
- justify-items: center;
682
- align-items: center;
683
- padding: 0 0 1px;
684
- font-size: 11px;
685
- color: rgb(242 242 240 / 58%);
686
- min-width: 0;
687
- }
688
-
689
- .openpress-reader-app .openpress-thumb-card__index {
690
- font-family: var(--openpress-mono, ui-monospace, monospace);
691
- font-size: 11px;
692
- letter-spacing: 0;
693
- color: rgb(242 242 240 / 68%);
694
- }
695
-
696
- .openpress-reader-app .openpress-thumb-card.is-active .openpress-thumb-card__index {
697
- color: var(--openpress-accent, #df4b21);
698
- }
699
-
700
- .openpress-reader-app .openpress-thumb-card__title {
701
- position: absolute;
702
- width: 1px;
703
- height: 1px;
704
- overflow: hidden;
705
- clip: rect(0 0 0 0);
706
- white-space: nowrap;
707
- }