@open-press/cli 1.0.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 (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,989 +0,0 @@
1
- .openpress-reader-app .reader-pages {
2
- --openpress-page-viewport-scale: 1;
3
- --openpress-page-gap: 8px;
4
- display: grid;
5
- grid-template-columns: calc(var(--openpress-page-width) * var(--openpress-page-viewport-scale, 1));
6
- justify-content: center;
7
- align-items: start;
8
- gap: var(--openpress-page-gap);
9
- padding: 30px 24px 56px;
10
- }
11
-
12
- .openpress-reader-app .reader-pages[data-openpress-page-layout="spread"] {
13
- grid-template-columns: repeat(2, calc(var(--openpress-page-width) * var(--openpress-page-viewport-scale, 1)));
14
- }
15
-
16
- .openpress-reader-app .reader-page {
17
- scroll-margin-top: 32px;
18
- }
19
-
20
- .openpress-html-page {
21
- width: calc(var(--openpress-page-width) * var(--openpress-page-viewport-scale, 1));
22
- max-width: none;
23
- height: calc(var(--openpress-page-height) * var(--openpress-page-viewport-scale, 1));
24
- margin: 0;
25
- flex: 0 0 auto;
26
- scroll-margin-top: 72px;
27
- }
28
-
29
- .openpress-html-page__html {
30
- display: block;
31
- width: var(--openpress-page-width);
32
- max-width: none;
33
- height: var(--openpress-page-height);
34
- min-height: var(--openpress-page-height);
35
- transform: scale(var(--openpress-page-viewport-scale, 1));
36
- transform-origin: top left;
37
- }
38
-
39
- /* Page Scale Model keeps document pages fixed-size, so page-by-page snap is the default. */
40
- [data-openpress-view-mode="paged"] .openpress-html-page,
41
- .openpress-reader-app:not([data-openpress-view-mode]) .openpress-html-page {
42
- scroll-snap-align: start;
43
- scroll-snap-stop: always;
44
- }
45
-
46
- .openpress-html-page__toolbar {
47
- display: flex;
48
- align-items: center;
49
- justify-content: space-between;
50
- gap: 16px;
51
- margin-bottom: 10px;
52
- color: #90969d;
53
- font-size: 12px;
54
- }
55
-
56
- .openpress-html-page__toolbar code {
57
- overflow: hidden;
58
- max-width: 520px;
59
- font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
60
- text-overflow: ellipsis;
61
- white-space: nowrap;
62
- }
63
-
64
- .openpress-reader-app[data-openpress-inspector-mode="on"] .openpress-html-page__html {
65
- /* Inspector mode is a click-to-select-block flow. Disable text selection
66
- across the rendered page so drag-selects / Cmd+A don't paint the whole
67
- page with the browser ::selection color — most visible on covers and
68
- back-covers where there's little text and lots of background. */
69
- user-select: none;
70
- -webkit-user-select: none;
71
- }
72
-
73
- .openpress-reader-app[data-openpress-inspector-mode="on"] .openpress-html-page__html [data-openpress-block-id] {
74
- cursor: crosshair;
75
- }
76
-
77
- .openpress-reader-app[data-openpress-inspector-mode="on"] .openpress-html-page__html [data-openpress-block-id]:hover {
78
- outline: 2px solid color-mix(in srgb, var(--openpress-accent, #df4b21) 70%, transparent);
79
- outline-offset: 4px;
80
- }
81
-
82
- .openpress-reader-app[data-openpress-inspector-mode="on"] .openpress-html-page__html [data-openpress-inspector-selected="true"] {
83
- outline: 2px solid var(--openpress-accent, #df4b21);
84
- outline-offset: 5px;
85
- background: color-mix(in srgb, var(--openpress-accent, #df4b21) 16%, transparent);
86
- }
87
-
88
- .openpress-reader-app[data-openpress-edit-mode="on"] .openpress-html-page__html [data-openpress-editable-block="true"] {
89
- border-radius: 3px;
90
- background: transparent;
91
- cursor: text;
92
- caret-color: var(--openpress-accent, #df4b21);
93
- outline: none;
94
- transition:
95
- background 140ms ease,
96
- box-shadow 140ms ease,
97
- color 140ms ease;
98
- }
99
-
100
- .openpress-reader-app[data-openpress-edit-mode="on"] .openpress-html-page__html [data-openpress-editable-block="true"]:hover {
101
- background:
102
- linear-gradient(90deg, color-mix(in srgb, var(--openpress-accent, #df4b21) 9%, transparent), transparent 88%),
103
- color-mix(in srgb, var(--openpress-accent, #df4b21) 5%, transparent);
104
- box-shadow: inset 0 -0.18em 0 color-mix(in srgb, var(--openpress-accent, #df4b21) 16%, transparent);
105
- }
106
-
107
- .openpress-reader-app[data-openpress-edit-mode="on"] .openpress-html-page__html [data-openpress-editable-block="true"][data-openpress-editing="true"],
108
- .openpress-reader-app[data-openpress-edit-mode="on"] .openpress-html-page__html [data-openpress-editable-block="true"]:focus {
109
- background:
110
- linear-gradient(90deg, color-mix(in srgb, var(--openpress-accent, #df4b21) 13%, transparent), transparent 90%),
111
- color-mix(in srgb, var(--openpress-accent, #df4b21) 7%, transparent);
112
- box-shadow: inset 0 -0.2em 0 color-mix(in srgb, var(--openpress-accent, #df4b21) 20%, transparent);
113
- }
114
-
115
- .openpress-reader-app[data-openpress-edit-mode="on"] .openpress-html-page__html [data-openpress-editable-block="true"][data-openpress-edit-state="saving"] {
116
- background:
117
- linear-gradient(
118
- 90deg,
119
- color-mix(in srgb, var(--openpress-accent, #df4b21) 7%, transparent) 0%,
120
- color-mix(in srgb, var(--openpress-accent, #df4b21) 18%, transparent) 45%,
121
- color-mix(in srgb, var(--openpress-accent, #df4b21) 7%, transparent) 90%
122
- );
123
- background-size: 220% 100%;
124
- box-shadow: none;
125
- color: transparent;
126
- text-shadow: none;
127
- animation: openpress-inline-edit-skeleton 920ms linear infinite;
128
- pointer-events: none;
129
- user-select: none;
130
- }
131
-
132
- .openpress-reader-app[data-openpress-edit-mode="on"] .openpress-html-page__html [data-openpress-editable-block="true"][data-openpress-edit-state="saved"] {
133
- background: color-mix(in srgb, #22c55e 14%, transparent);
134
- box-shadow: inset 0 -0.18em 0 color-mix(in srgb, #22c55e 24%, transparent);
135
- }
136
-
137
- .openpress-reader-app[data-openpress-edit-mode="on"] .openpress-html-page__html [data-openpress-editable-block="true"][data-openpress-edit-state="failed"] {
138
- background: color-mix(in srgb, #ef4444 12%, transparent);
139
- box-shadow: inset 0 -0.18em 0 color-mix(in srgb, #ef4444 24%, transparent);
140
- }
141
-
142
- .openpress-reader-app[data-openpress-edit-mode="on"] .openpress-html-page__html [data-openpress-source-editable-block="true"] {
143
- cursor: pointer;
144
- outline: 1px dashed transparent;
145
- outline-offset: 5px;
146
- transition:
147
- background 140ms ease,
148
- outline-color 140ms ease;
149
- }
150
-
151
- .openpress-reader-app[data-openpress-edit-mode="on"] .openpress-html-page__html [data-openpress-source-editable-block="true"]:hover,
152
- .openpress-reader-app[data-openpress-edit-mode="on"] .openpress-html-page__html [data-openpress-source-editable-block="true"]:focus {
153
- outline-color: color-mix(in srgb, var(--openpress-accent, #df4b21) 42%, transparent);
154
- background: color-mix(in srgb, var(--openpress-accent, #df4b21) 7%, transparent);
155
- }
156
-
157
- @keyframes openpress-inline-edit-skeleton {
158
- from {
159
- background-position: 120% 0;
160
- }
161
-
162
- to {
163
- background-position: -120% 0;
164
- }
165
- }
166
-
167
- .openpress-inline-inspector-layer {
168
- position: fixed;
169
- inset: 0;
170
- z-index: 90;
171
- pointer-events: none;
172
- }
173
-
174
- .openpress-inline-inspector-layer[data-openpress-composer-lock-events="true"] .openpress-inline-insert-target,
175
- .openpress-inline-inspector-layer[data-openpress-composer-lock-events="true"] .openpress-inline-comment-marker {
176
- pointer-events: none;
177
- }
178
-
179
- .openpress-inline-insert-target {
180
- position: fixed;
181
- z-index: 91;
182
- border: 0;
183
- border-radius: 999px;
184
- padding: 0;
185
- background: transparent;
186
- color: var(--openpress-accent, #df4b21);
187
- cursor: cell;
188
- opacity: 0;
189
- pointer-events: auto;
190
- transition: opacity 140ms ease, transform 140ms ease;
191
- }
192
-
193
- .openpress-inline-insert-target::before {
194
- position: absolute;
195
- right: 0;
196
- left: 0;
197
- top: 50%;
198
- border-top: 2px solid color-mix(in srgb, var(--openpress-accent, #df4b21) 82%, transparent);
199
- content: "";
200
- }
201
-
202
- .openpress-inline-insert-target:hover,
203
- .openpress-inline-insert-target.is-selected {
204
- opacity: 1;
205
- }
206
-
207
- .openpress-inline-insert-target.is-selected {
208
- transform: scaleY(1.12);
209
- }
210
-
211
- .openpress-inline-comment-marker {
212
- position: fixed;
213
- z-index: 132;
214
- display: grid;
215
- place-items: start center;
216
- border: 0;
217
- border-radius: 0;
218
- padding: 0;
219
- background: transparent;
220
- color: #fff;
221
- font: inherit;
222
- font-size: 12px;
223
- font-weight: 800;
224
- line-height: 1;
225
- cursor: pointer;
226
- pointer-events: auto;
227
- transition: transform 160ms ease, opacity 160ms ease;
228
- }
229
-
230
- .openpress-inline-comment-marker__index {
231
- position: relative;
232
- display: grid;
233
- width: 28px;
234
- height: 28px;
235
- place-items: center;
236
- border: 3px solid #f8fbff;
237
- border-radius: 999px;
238
- background: var(--openpress-accent, #df4b21);
239
- box-shadow: 0 10px 26px rgb(0 0 0 / 24%);
240
- }
241
-
242
- .openpress-inline-comment-marker:hover,
243
- .openpress-inline-comment-marker:focus-visible {
244
- transform: translateY(-1px);
245
- opacity: 0.9;
246
- outline: none;
247
- }
248
-
249
- .openpress-inline-comment-marker:focus-visible .openpress-inline-comment-marker__index {
250
- outline: 2px solid color-mix(in srgb, var(--openpress-accent, #df4b21) 64%, white);
251
- outline-offset: 2px;
252
- }
253
-
254
- .openpress-inline-comment-marker[data-openpress-marker-state="draft"] .openpress-inline-comment-marker__index {
255
- background: #1b7cff;
256
- }
257
-
258
- .openpress-inline-comment-marker[data-openpress-marker-state="saved"] .openpress-inline-comment-marker__index {
259
- background: color-mix(in srgb, var(--openpress-accent, #df4b21) 92%, #5f2a16);
260
- }
261
-
262
- .openpress-inline-comment-composer {
263
- position: fixed;
264
- z-index: 131;
265
- display: grid;
266
- gap: 8px;
267
- border: 1px solid rgb(255 255 255 / 10%);
268
- border-radius: 26px;
269
- padding: 8px 10px 10px;
270
- background: #292929;
271
- color: rgb(248 250 252 / 94%);
272
- box-shadow: 0 18px 48px rgb(0 0 0 / 30%);
273
- pointer-events: auto;
274
- }
275
-
276
- .openpress-inline-comment-composer[data-openpress-composer-open="false"] {
277
- gap: 0;
278
- border-radius: 999px;
279
- padding: 8px;
280
- }
281
-
282
- .openpress-inline-comment-composer__intents {
283
- display: flex;
284
- gap: 6px;
285
- padding: 0 4px;
286
- }
287
-
288
- .openpress-inline-comment-composer__intents button {
289
- display: grid;
290
- width: 30px;
291
- height: 30px;
292
- place-items: center;
293
- border: 1px solid rgb(255 255 255 / 10%);
294
- border-radius: 999px;
295
- padding: 0;
296
- background: rgb(255 255 255 / 6%);
297
- color: rgb(238 242 246 / 72%);
298
- font: inherit;
299
- cursor: pointer;
300
- }
301
-
302
- .openpress-inline-comment-composer__intents button:hover,
303
- .openpress-inline-comment-composer__intents button.is-active {
304
- border-color: color-mix(in srgb, var(--openpress-accent, #df4b21) 68%, transparent);
305
- background: color-mix(in srgb, var(--openpress-accent, #df4b21) 22%, transparent);
306
- color: #fff;
307
- }
308
-
309
- .openpress-inline-comment-composer__intents button svg {
310
- width: 15px;
311
- height: 15px;
312
- stroke-width: 2.2;
313
- }
314
-
315
- .openpress-inline-comment-composer__body {
316
- display: grid;
317
- grid-template-columns: minmax(0, 1fr) 34px;
318
- gap: 8px;
319
- align-items: end;
320
- }
321
-
322
- .openpress-inline-comment-composer textarea {
323
- width: 100%;
324
- min-height: 82px;
325
- max-height: 128px;
326
- resize: vertical;
327
- border: 0;
328
- border-radius: 16px;
329
- padding: 9px 11px;
330
- background: rgb(255 255 255 / 5%);
331
- color: rgb(248 250 252 / 94%);
332
- font: inherit;
333
- font-size: 14px;
334
- line-height: 1.35;
335
- }
336
-
337
- .openpress-inline-comment-composer textarea::placeholder {
338
- color: rgb(248 250 252 / 42%);
339
- }
340
-
341
- .openpress-inline-comment-composer textarea:focus {
342
- outline: 2px solid color-mix(in srgb, var(--openpress-accent, #df4b21) 72%, transparent);
343
- outline-offset: 2px;
344
- }
345
-
346
- .openpress-inline-comment-composer__body > button {
347
- display: grid;
348
- width: 34px;
349
- height: 34px;
350
- place-items: center;
351
- border: 0;
352
- border-radius: 999px;
353
- background: var(--openpress-accent, #df4b21);
354
- color: white;
355
- cursor: pointer;
356
- }
357
-
358
- .openpress-inline-comment-composer__body > button:disabled {
359
- cursor: not-allowed;
360
- opacity: 0.42;
361
- }
362
-
363
- .openpress-inline-comment-composer__body > button svg {
364
- width: 16px;
365
- height: 16px;
366
- }
367
-
368
- .openpress-inline-comment-composer__suggestions {
369
- display: grid;
370
- gap: 4px;
371
- margin-top: 10px;
372
- overflow: hidden;
373
- border: 1px solid color-mix(in srgb, var(--openpress-accent, #df4b21) 28%, transparent);
374
- border-radius: 12px;
375
- padding: 6px;
376
- background: rgb(36 36 34 / 96%);
377
- }
378
-
379
- .openpress-inline-comment-composer__suggestions button {
380
- display: flex;
381
- align-items: baseline;
382
- justify-content: space-between;
383
- gap: 14px;
384
- min-width: 0;
385
- border: 0;
386
- border-radius: 8px;
387
- padding: 8px 10px;
388
- background: transparent;
389
- color: rgb(244 241 235 / 90%);
390
- cursor: pointer;
391
- font: inherit;
392
- text-align: left;
393
- }
394
-
395
- .openpress-inline-comment-composer__suggestions button:hover,
396
- .openpress-inline-comment-composer__suggestions button:focus-visible,
397
- .openpress-inline-comment-composer__suggestions button[data-highlighted="true"] {
398
- background: color-mix(in srgb, var(--openpress-accent, #df4b21) 18%, transparent);
399
- outline: 0;
400
- }
401
-
402
- .openpress-inline-comment-composer__suggestions span {
403
- min-width: 0;
404
- overflow: hidden;
405
- font-family: var(--openpress-font-mono);
406
- font-size: 12px;
407
- line-height: 1.2;
408
- text-overflow: ellipsis;
409
- white-space: nowrap;
410
- }
411
-
412
- .openpress-inline-comment-composer__suggestions small {
413
- flex: 0 0 auto;
414
- color: rgb(218 161 123 / 78%);
415
- font-size: 10px;
416
- line-height: 1.2;
417
- }
418
-
419
- .openpress-inline-comment-composer p {
420
- min-height: 13px;
421
- margin: -2px 8px 0;
422
- color: rgb(203 213 225 / 68%);
423
- font-size: 11px;
424
- line-height: 1.25;
425
- }
426
-
427
- .openpress-inline-comment-composer p[data-openpress-inspector-comment-status="failed"],
428
- .openpress-dev-inspector-status[data-openpress-inspector-comment-status="failed"] {
429
- color: rgb(248 113 113 / 92%);
430
- }
431
-
432
- .openpress-inline-comment-composer p[data-openpress-inspector-comment-status="saved"],
433
- .openpress-dev-inspector-status[data-openpress-inspector-comment-status="saved"] {
434
- color: rgb(134 239 172 / 88%);
435
- }
436
-
437
- .openpress-public-action-entry[data-openpress-inspector-active="true"] {
438
- border-color: color-mix(in srgb, var(--openpress-accent, #df4b21) 60%, transparent);
439
- color: var(--openpress-accent, #df4b21);
440
- }
441
-
442
- .openpress-dev-inspector-status {
443
- display: block;
444
- overflow: hidden;
445
- max-width: 100%;
446
- color: currentColor;
447
- font-size: 11px;
448
- opacity: 0.72;
449
- text-overflow: ellipsis;
450
- white-space: nowrap;
451
- }
452
-
453
- .openpress-dev-inspector-comment {
454
- display: grid;
455
- gap: 8px;
456
- padding: 12px 0;
457
- border-bottom: 1px solid rgb(255 255 255 / 7%);
458
- }
459
-
460
- .openpress-dev-inspector-comment label {
461
- color: rgb(198 204 210 / 76%);
462
- font-size: 11px;
463
- font-weight: 600;
464
- line-height: 1.2;
465
- }
466
-
467
- .openpress-dev-inspector-comment textarea {
468
- width: 100%;
469
- min-height: 74px;
470
- resize: vertical;
471
- border: 1px solid rgb(255 255 255 / 11%);
472
- border-radius: 6px;
473
- padding: 9px 10px;
474
- background: rgb(255 255 255 / 5%);
475
- color: rgb(242 242 240 / 92%);
476
- font: inherit;
477
- font-size: 12px;
478
- line-height: 1.45;
479
- }
480
-
481
- .openpress-dev-inspector-comment textarea:disabled {
482
- cursor: not-allowed;
483
- opacity: 0.58;
484
- }
485
-
486
- .openpress-dev-inspector-comment textarea:focus {
487
- outline: 2px solid color-mix(in srgb, var(--openpress-accent, #df4b21) 58%, transparent);
488
- outline-offset: 2px;
489
- }
490
-
491
- .openpress-dev-inspector-comment button {
492
- display: inline-flex;
493
- align-items: center;
494
- justify-content: center;
495
- gap: 7px;
496
- min-height: 34px;
497
- border: 1px solid color-mix(in srgb, var(--openpress-accent, #df4b21) 42%, transparent);
498
- border-radius: 6px;
499
- padding: 7px 10px;
500
- background: color-mix(in srgb, var(--openpress-accent, #df4b21) 16%, transparent);
501
- color: rgb(242 242 240 / 92%);
502
- font: inherit;
503
- font-size: 11px;
504
- font-weight: 700;
505
- cursor: pointer;
506
- }
507
-
508
- .openpress-dev-inspector-comment button:disabled {
509
- cursor: not-allowed;
510
- opacity: 0.48;
511
- }
512
-
513
- .openpress-dev-inspector-comment button svg {
514
- width: 13px;
515
- height: 13px;
516
- }
517
-
518
- .openpress-dev-inspector-comment p {
519
- min-height: 14px;
520
- margin: 0;
521
- color: rgb(198 204 210 / 70%);
522
- font-size: 11px;
523
- line-height: 1.25;
524
- }
525
-
526
- .openpress-dev-inspector-comment p[data-openpress-inspector-comment-status="failed"] {
527
- color: rgb(241 107 98 / 90%);
528
- }
529
-
530
- .openpress-dev-inspector-comment p[data-openpress-inspector-comment-status="saved"] {
531
- color: rgb(132 211 164 / 88%);
532
- }
533
-
534
- .openpress-comments-panel {
535
- min-height: 100%;
536
- padding: 34px clamp(22px, 4vw, 56px) 56px;
537
- background: #111312;
538
- color: #e8e8e4;
539
- }
540
-
541
- .openpress-comments-panel__header {
542
- display: flex;
543
- align-items: flex-end;
544
- justify-content: space-between;
545
- gap: 20px;
546
- padding-bottom: 22px;
547
- border-bottom: 1px solid rgb(255 255 255 / 9%);
548
- }
549
-
550
- .openpress-comments-panel__header h1 {
551
- margin: 4px 0 6px;
552
- color: rgb(242 242 240 / 94%);
553
- font-family: var(--openpress-font-serif);
554
- font-size: clamp(30px, 4vw, 52px);
555
- font-weight: 520;
556
- line-height: 1.05;
557
- letter-spacing: 0;
558
- }
559
-
560
- .openpress-comments-panel__header p,
561
- .openpress-comments-panel__eyebrow {
562
- margin: 0;
563
- color: rgb(160 166 173 / 72%);
564
- font-size: 12px;
565
- line-height: 1.4;
566
- }
567
-
568
- .openpress-comments-panel__eyebrow {
569
- display: block;
570
- font-weight: 700;
571
- letter-spacing: 0.06em;
572
- text-transform: uppercase;
573
- }
574
-
575
- .openpress-comments-panel__actions {
576
- display: flex;
577
- flex-wrap: wrap;
578
- gap: 8px;
579
- justify-content: flex-end;
580
- }
581
-
582
- .openpress-comments-panel button {
583
- display: inline-flex;
584
- min-height: 34px;
585
- align-items: center;
586
- justify-content: center;
587
- gap: 7px;
588
- border: 1px solid rgb(255 255 255 / 12%);
589
- border-radius: 6px;
590
- padding: 7px 10px;
591
- background: rgb(255 255 255 / 5%);
592
- color: rgb(242 242 240 / 90%);
593
- font: inherit;
594
- font-size: 12px;
595
- font-weight: 700;
596
- cursor: pointer;
597
- }
598
-
599
- .openpress-comments-panel button:hover:not(:disabled) {
600
- border-color: rgb(255 255 255 / 20%);
601
- background: rgb(255 255 255 / 8%);
602
- }
603
-
604
- .openpress-comments-panel button:disabled {
605
- cursor: not-allowed;
606
- opacity: 0.46;
607
- }
608
-
609
- .openpress-comments-panel button svg {
610
- width: 14px;
611
- height: 14px;
612
- }
613
-
614
- .openpress-comments-panel__error {
615
- margin: 18px 0 0;
616
- border-left: 3px solid rgb(248 113 113 / 76%);
617
- padding: 8px 0 8px 12px;
618
- color: rgb(248 113 113 / 88%);
619
- font-size: 13px;
620
- line-height: 1.45;
621
- }
622
-
623
- .openpress-comments-panel__empty {
624
- margin-top: 22px;
625
- border: 1px dashed rgb(255 255 255 / 13%);
626
- border-radius: 8px;
627
- padding: 24px;
628
- color: rgb(160 166 173 / 72%);
629
- font-size: 14px;
630
- }
631
-
632
- .openpress-comments-list {
633
- display: grid;
634
- gap: 12px;
635
- margin: 22px 0 0;
636
- padding: 0;
637
- list-style: none;
638
- }
639
-
640
- .openpress-comment-entry {
641
- display: grid;
642
- grid-template-columns: minmax(0, 1fr) auto;
643
- gap: 12px;
644
- align-items: start;
645
- border: 1px solid color-mix(in srgb, var(--openpress-accent, #df4b21) 18%, rgb(255 255 255 / 8%));
646
- border-radius: 10px;
647
- padding: 14px;
648
- background:
649
- linear-gradient(90deg, color-mix(in srgb, var(--openpress-accent, #df4b21) 14%, transparent), transparent 34%),
650
- rgb(255 255 255 / 3.5%);
651
- }
652
-
653
- .openpress-comment-entry__body {
654
- min-width: 0;
655
- }
656
-
657
- .openpress-comment-entry__topline {
658
- display: grid;
659
- grid-template-columns: minmax(0, 1fr) auto;
660
- gap: 10px;
661
- align-items: start;
662
- }
663
-
664
- .openpress-comment-entry__note {
665
- margin: 0;
666
- color: rgb(242 242 240 / 92%);
667
- font-size: 14px;
668
- font-weight: 650;
669
- line-height: 1.55;
670
- }
671
-
672
- .openpress-comment-entry__intent {
673
- display: inline-flex;
674
- align-items: center;
675
- min-height: 22px;
676
- border: 1px solid color-mix(in srgb, var(--openpress-accent, #df4b21) 45%, transparent);
677
- border-radius: 999px;
678
- padding: 3px 8px;
679
- background: color-mix(in srgb, var(--openpress-accent, #df4b21) 16%, transparent);
680
- color: color-mix(in srgb, var(--openpress-accent, #df4b21) 80%, white);
681
- font-size: 10px;
682
- font-weight: 800;
683
- line-height: 1;
684
- letter-spacing: 0.04em;
685
- text-transform: uppercase;
686
- }
687
-
688
- .openpress-comment-entry__meta {
689
- display: flex;
690
- min-width: 0;
691
- flex-wrap: wrap;
692
- gap: 8px 10px;
693
- margin: 9px 0 0;
694
- color: rgb(160 166 173 / 68%);
695
- font-size: 11px;
696
- line-height: 1.45;
697
- }
698
-
699
- .openpress-comment-entry__meta code {
700
- overflow-wrap: anywhere;
701
- border: 1px solid rgb(255 255 255 / 8%);
702
- border-radius: 6px;
703
- padding: 2px 5px;
704
- background: rgb(0 0 0 / 16%);
705
- color: rgb(215 222 230 / 82%);
706
- font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
707
- }
708
-
709
- .openpress-comment-entry__hint {
710
- display: inline-flex;
711
- width: fit-content;
712
- margin: 8px 0 0;
713
- border: 1px solid color-mix(in srgb, var(--openpress-accent, #df4b21) 18%, transparent);
714
- border-radius: 999px;
715
- padding: 3px 8px;
716
- background: color-mix(in srgb, var(--openpress-accent, #df4b21) 8%, rgb(255 255 255 / 4%));
717
- color: rgb(190 184 178 / 78%);
718
- font-size: 11px;
719
- line-height: 1.2;
720
- }
721
-
722
- .openpress-comments-panel--embedded {
723
- min-height: 0;
724
- overflow: auto;
725
- padding: 6px 22px 18px;
726
- background: transparent;
727
- }
728
-
729
- .openpress-comments-panel--embedded .openpress-comments-panel__header {
730
- display: grid;
731
- gap: 10px;
732
- align-items: start;
733
- padding-bottom: 12px;
734
- }
735
-
736
- .openpress-comments-panel--embedded .openpress-comments-panel__header h1 {
737
- margin: 2px 0 3px;
738
- font-family: inherit;
739
- font-size: 14px;
740
- font-weight: 700;
741
- line-height: 1.35;
742
- }
743
-
744
- .openpress-comments-panel--embedded .openpress-comments-panel__header p,
745
- .openpress-comments-panel--embedded .openpress-comments-panel__eyebrow {
746
- font-size: 11px;
747
- }
748
-
749
- .openpress-comments-panel--embedded .openpress-comments-panel__actions {
750
- justify-content: flex-start;
751
- }
752
-
753
- .openpress-comments-panel--embedded .openpress-comments-panel__actions button {
754
- width: 34px;
755
- min-height: 30px;
756
- padding: 0;
757
- font-size: 11px;
758
- }
759
-
760
- .openpress-comments-panel--embedded .openpress-comments-panel__actions button span {
761
- position: absolute;
762
- width: 1px;
763
- height: 1px;
764
- overflow: hidden;
765
- clip: rect(0 0 0 0);
766
- white-space: nowrap;
767
- }
768
-
769
- .openpress-comments-panel--embedded .openpress-comments-list {
770
- gap: 0;
771
- margin-top: 6px;
772
- }
773
-
774
- .openpress-comments-panel--embedded .openpress-comment-entry {
775
- grid-template-columns: minmax(0, 1fr) 24px;
776
- gap: 8px;
777
- align-items: center;
778
- border: 0;
779
- border-top: 1px solid rgb(255 255 255 / 7%);
780
- border-radius: 0;
781
- padding: 8px 0;
782
- background: transparent;
783
- }
784
-
785
- .openpress-comments-panel--embedded .openpress-comment-entry__note {
786
- overflow: hidden;
787
- display: -webkit-box;
788
- color: rgb(232 232 228 / 86%);
789
- font-size: 11.5px;
790
- font-weight: 520;
791
- line-height: 1.35;
792
- -webkit-box-orient: vertical;
793
- -webkit-line-clamp: 2;
794
- }
795
-
796
- .openpress-comments-panel--embedded .openpress-comment-entry__meta {
797
- margin-top: 4px;
798
- gap: 6px;
799
- color: rgb(150 156 163 / 54%);
800
- font-size: 10px;
801
- line-height: 1.25;
802
- }
803
-
804
- .openpress-comments-panel--embedded .openpress-comment-entry__meta code {
805
- border: 0;
806
- padding: 0;
807
- background: transparent;
808
- color: inherit;
809
- }
810
-
811
- .openpress-comments-panel--embedded .openpress-comment-entry__jump {
812
- display: grid;
813
- width: 100%;
814
- min-width: 0;
815
- min-height: 0;
816
- justify-items: start;
817
- border: 0;
818
- border-radius: 4px;
819
- padding: 0;
820
- background: transparent;
821
- color: inherit;
822
- font: inherit;
823
- text-align: left;
824
- }
825
-
826
- .openpress-comments-panel--embedded .openpress-comment-entry__jump:hover {
827
- background: transparent;
828
- color: rgb(242 242 240 / 96%);
829
- }
830
-
831
- .openpress-comments-panel--embedded .openpress-comment-entry__clear {
832
- width: 24px;
833
- min-height: 24px;
834
- border: 0;
835
- border-radius: 4px;
836
- padding: 0;
837
- background: transparent;
838
- color: rgb(150 156 163 / 64%);
839
- font-size: 0;
840
- }
841
-
842
- .openpress-comments-panel--embedded .openpress-comment-entry__clear:hover:not(:disabled) {
843
- border: 0;
844
- background: rgb(255 255 255 / 5%);
845
- color: rgb(242 242 240 / 90%);
846
- }
847
-
848
- .openpress-comments-panel--embedded .openpress-comment-entry__clear svg {
849
- width: 13px;
850
- height: 13px;
851
- }
852
-
853
- .openpress-comments-panel--embedded .openpress-comments-panel__empty {
854
- margin-top: 10px;
855
- padding: 14px;
856
- font-size: 12px;
857
- }
858
-
859
- .openpress-html-page__html .reader-page {
860
- display: block;
861
- width: var(--openpress-page-width);
862
- max-width: none;
863
- height: var(--openpress-page-height);
864
- min-height: var(--openpress-page-height);
865
- max-height: none;
866
- aspect-ratio: var(--openpress-page-aspect-ratio, 210 / 297);
867
- margin: 0;
868
- overflow: hidden;
869
- box-shadow: 0 16px 48px rgb(0 0 0 / 24%);
870
- }
871
-
872
- .openpress-html-page__html .reader-page--cover,
873
- .openpress-html-page__html .reader-page--back-cover {
874
- display: flex;
875
- }
876
-
877
- .openpress-html-page__html .reader-page--content figure.openpress-component-frame,
878
- .openpress-print-document .reader-page--content figure.openpress-component-frame {
879
- width: min(100%, 168mm);
880
- max-width: 100%;
881
- margin: var(--openpress-space-4) auto;
882
- overflow: visible;
883
- box-sizing: border-box;
884
- break-inside: avoid;
885
- }
886
-
887
- .openpress-html-page__html .reader-page--content figure.openpress-component-frame > .openpress-component-frame__body,
888
- .openpress-print-document .reader-page--content figure.openpress-component-frame > .openpress-component-frame__body {
889
- width: 100%;
890
- max-width: 100%;
891
- margin: 0;
892
- box-sizing: border-box;
893
- }
894
-
895
- .openpress-html-page__html .reader-page--content figure.openpress-component-frame > figcaption,
896
- .openpress-print-document .reader-page--content figure.openpress-component-frame > figcaption {
897
- display: block;
898
- width: 100%;
899
- margin-top: 2.6mm;
900
- }
901
-
902
- .openpress-print-document {
903
- width: var(--openpress-page-width);
904
- min-height: 100vh;
905
- margin: 0;
906
- background: #fff;
907
- color: var(--openpress-text);
908
- }
909
-
910
- .openpress-print-document,
911
- .openpress-print-document *,
912
- .openpress-print-document *::before,
913
- .openpress-print-document *::after {
914
- -webkit-print-color-adjust: exact;
915
- print-color-adjust: exact;
916
- }
917
-
918
- .openpress-print-document .reader-pages {
919
- display: block;
920
- width: var(--openpress-page-width);
921
- min-height: 0;
922
- padding: 0;
923
- margin: 0;
924
- background: #fff;
925
- --reader-page-width: var(--openpress-page-width);
926
- }
927
-
928
- .openpress-print-document .openpress-html-page {
929
- display: block;
930
- width: var(--openpress-page-width);
931
- max-width: none;
932
- height: var(--openpress-page-height);
933
- min-height: var(--openpress-page-height);
934
- margin: 0;
935
- overflow: hidden;
936
- background: #fff;
937
- break-after: page;
938
- break-inside: avoid;
939
- page-break-after: always;
940
- page-break-inside: avoid;
941
- scroll-margin-top: 0;
942
- }
943
-
944
- .openpress-print-document .openpress-html-page:last-child {
945
- break-after: auto;
946
- page-break-after: auto;
947
- }
948
-
949
- .openpress-print-document .openpress-html-page__html {
950
- display: block;
951
- width: var(--openpress-page-width);
952
- max-width: none;
953
- height: var(--openpress-page-height);
954
- min-height: var(--openpress-page-height);
955
- max-height: none;
956
- margin: 0;
957
- overflow: hidden;
958
- background: #fff;
959
- box-shadow: none;
960
- outline: 0;
961
- transform: none;
962
- animation: none;
963
- transition: none;
964
- }
965
-
966
- .openpress-print-document .openpress-html-page__html .reader-page,
967
- .openpress-print-document .openpress-html-page__html .reader-page--cover,
968
- .openpress-print-document .openpress-html-page__html .reader-page--back-cover {
969
- display: block;
970
- width: var(--openpress-page-width);
971
- max-width: none;
972
- height: var(--openpress-page-height);
973
- aspect-ratio: var(--openpress-page-aspect-ratio, 210 / 297);
974
- min-height: var(--openpress-page-height);
975
- max-height: none;
976
- margin: 0;
977
- overflow: hidden;
978
- box-shadow: none;
979
- outline: 0;
980
- transform: none;
981
- animation: none;
982
- transition: none;
983
- }
984
-
985
- .openpress-print-document .openpress-html-page__html .reader-page--cover,
986
- .openpress-print-document .openpress-html-page__html .reader-page--back-cover {
987
- display: flex;
988
- padding: clamp(28px, 5cqw, 48px) clamp(24px, 4.5cqw, 42px);
989
- }