@open-press/core 1.1.2 → 1.1.4

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.
@@ -75,93 +75,51 @@
75
75
  }
76
76
 
77
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;
78
+ cursor: crosshair;
80
79
  }
81
80
 
82
81
  .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);
82
+ cursor: crosshair;
86
83
  }
87
84
 
88
85
  .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
86
  cursor: text;
92
87
  caret-color: var(--openpress-accent, #df4b21);
93
- outline: none;
94
- transition:
95
- background 140ms ease,
96
- box-shadow 140ms ease,
97
- color 140ms ease;
88
+ /* Chrome applies break-word to contenteditable editing hosts. That changes
89
+ fixed-layout canvas line breaks, so OpenPress owns the edit-mode wrapping. */
90
+ overflow-wrap: normal;
91
+ word-break: normal;
98
92
  }
99
93
 
100
94
  .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);
95
+ cursor: text;
105
96
  }
106
97
 
107
98
  .openpress-reader-app[data-openpress-edit-mode="on"] .openpress-html-page__html [data-openpress-editable-block="true"][data-openpress-editing="true"],
108
99
  .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);
100
+ cursor: text;
113
101
  }
114
102
 
115
103
  .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
104
  pointer-events: none;
129
105
  user-select: none;
130
106
  }
131
107
 
132
108
  .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);
109
+ cursor: text;
135
110
  }
136
111
 
137
112
  .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);
113
+ cursor: text;
140
114
  }
141
115
 
142
116
  .openpress-reader-app[data-openpress-edit-mode="on"] .openpress-html-page__html [data-openpress-source-editable-block="true"] {
143
117
  cursor: pointer;
144
- outline: 1px dashed transparent;
145
- outline-offset: 5px;
146
- transition:
147
- background 140ms ease,
148
- outline-color 140ms ease;
149
118
  }
150
119
 
151
120
  .openpress-reader-app[data-openpress-edit-mode="on"] .openpress-html-page__html [data-openpress-source-editable-block="true"]:hover,
152
121
  .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
- }
122
+ cursor: pointer;
165
123
  }
166
124
 
167
125
  .openpress-inline-inspector-layer {
@@ -50,6 +50,7 @@
50
50
 
51
51
  .openpress-control-panel {
52
52
  display: grid;
53
+ grid-auto-rows: max-content;
53
54
  align-content: start;
54
55
  min-height: 0;
55
56
  gap: 22px;
@@ -31,6 +31,141 @@
31
31
  display: none;
32
32
  }
33
33
 
34
+ .openpress-slide-presenter {
35
+ position: fixed;
36
+ inset: 0;
37
+ display: grid;
38
+ width: 100%;
39
+ height: 100dvh;
40
+ min-height: 100dvh;
41
+ overflow: hidden;
42
+ background:
43
+ radial-gradient(circle at 50% 0, rgb(255 255 255 / 8%), transparent 42%),
44
+ #070707;
45
+ color: rgb(245 245 242 / 92%);
46
+ overscroll-behavior: none;
47
+ }
48
+
49
+ .openpress-slide-presenter__stage {
50
+ position: relative;
51
+ min-width: 0;
52
+ min-height: 0;
53
+ overflow: hidden;
54
+ cursor: pointer;
55
+ }
56
+
57
+ .openpress-reader-app.openpress-slide-presenter .reader-stage {
58
+ width: 100%;
59
+ height: 100%;
60
+ min-height: 0;
61
+ overflow: hidden;
62
+ background: transparent;
63
+ overscroll-behavior: contain;
64
+ scroll-snap-type: none;
65
+ scrollbar-width: none;
66
+ }
67
+
68
+ .openpress-reader-app.openpress-slide-presenter .reader-stage::-webkit-scrollbar {
69
+ width: 0;
70
+ height: 0;
71
+ display: none;
72
+ }
73
+
74
+ .openpress-reader-app.openpress-slide-presenter .reader-pages {
75
+ --openpress-page-gap: 0;
76
+ width: 100%;
77
+ height: 100%;
78
+ min-height: 100%;
79
+ align-content: center;
80
+ padding: 0;
81
+ align-items: center;
82
+ justify-items: center;
83
+ }
84
+
85
+ .openpress-reader-app.openpress-slide-presenter .openpress-html-page {
86
+ min-height: 0;
87
+ scroll-margin-top: 0;
88
+ scroll-snap-align: center;
89
+ }
90
+
91
+ .openpress-reader-app.openpress-slide-presenter .openpress-html-page__html {
92
+ box-shadow:
93
+ 0 28px 80px rgb(0 0 0 / 34%),
94
+ 0 0 0 1px rgb(255 255 255 / 10%);
95
+ }
96
+
97
+ .openpress-slide-presenter__hud {
98
+ position: fixed;
99
+ right: 18px;
100
+ bottom: 18px;
101
+ z-index: 40;
102
+ display: flex;
103
+ align-items: center;
104
+ gap: 8px;
105
+ border: 1px solid rgb(255 255 255 / 10%);
106
+ border-radius: 999px;
107
+ padding: 6px;
108
+ background: rgb(18 18 18 / 74%);
109
+ box-shadow: 0 18px 44px rgb(0 0 0 / 28%);
110
+ backdrop-filter: blur(18px);
111
+ opacity: 1;
112
+ transform: translateY(0);
113
+ transition:
114
+ opacity 160ms ease,
115
+ transform 160ms ease;
116
+ }
117
+
118
+ .openpress-slide-presenter[data-openpress-present-ui="immersive"] {
119
+ cursor: none;
120
+ }
121
+
122
+ .openpress-slide-presenter[data-openpress-present-ui="immersive"] .openpress-slide-presenter__stage {
123
+ cursor: none;
124
+ }
125
+
126
+ .openpress-slide-presenter[data-openpress-present-ui="immersive"] .openpress-slide-presenter__hud {
127
+ opacity: 0;
128
+ pointer-events: none;
129
+ transform: translateY(8px);
130
+ }
131
+
132
+ .openpress-slide-presenter__progress {
133
+ min-width: 64px;
134
+ padding: 0 10px;
135
+ color: rgb(245 245 242 / 72%);
136
+ font-family: var(--openpress-font-mono, ui-monospace, SFMono-Regular, Menlo, monospace);
137
+ font-size: 12px;
138
+ font-weight: 600;
139
+ letter-spacing: 0.08em;
140
+ line-height: 30px;
141
+ text-align: center;
142
+ }
143
+
144
+ .openpress-slide-presenter__button {
145
+ display: inline-flex;
146
+ width: 30px;
147
+ height: 30px;
148
+ align-items: center;
149
+ justify-content: center;
150
+ border: 0;
151
+ border-radius: 999px;
152
+ padding: 0;
153
+ background: transparent;
154
+ color: rgb(245 245 242 / 68%);
155
+ cursor: pointer;
156
+ }
157
+
158
+ .openpress-slide-presenter__button:hover,
159
+ .openpress-slide-presenter__button:focus-visible {
160
+ background: rgb(255 255 255 / 10%);
161
+ color: rgb(245 245 242 / 96%);
162
+ }
163
+
164
+ .openpress-slide-presenter__button svg {
165
+ width: 15px;
166
+ height: 15px;
167
+ }
168
+
34
169
  .openpress-public-viewer.openpress-workbench-shell.openpress-reader-app,
35
170
  .openpress-public-viewer.openpress-workbench-shell.openpress-reader-app.is-closed-left,
36
171
  .openpress-public-viewer.openpress-workbench-shell.openpress-reader-app.is-closed-right,
@@ -58,6 +193,10 @@
58
193
  grid-template-columns: 0 minmax(0, 1fr) 0;
59
194
  }
60
195
 
196
+ .openpress-public-viewer.openpress-workbench-shell.openpress-reader-app.is-presentation-mode {
197
+ grid-template-columns: 0 minmax(0, 1fr) 0;
198
+ }
199
+
61
200
  .openpress-workbench-toolbar {
62
201
  z-index: 30;
63
202
  display: flex;
@@ -1228,6 +1367,16 @@
1228
1367
  opacity: 0;
1229
1368
  }
1230
1369
 
1370
+ .openpress-reader-app.is-presentation-mode .openpress-workbench-left-panel,
1371
+ .openpress-reader-app.is-presentation-mode .openpress-workbench-right-panel {
1372
+ pointer-events: none;
1373
+ }
1374
+
1375
+ .openpress-reader-app.is-presentation-mode .openpress-workbench-left-panel > *,
1376
+ .openpress-reader-app.is-presentation-mode .openpress-workbench-right-panel > * {
1377
+ opacity: 0;
1378
+ }
1379
+
1231
1380
  .openpress-reader-app .reader-stage {
1232
1381
  position: relative;
1233
1382
  width: 100%;