@x12i/editor 0.0.0-stage → 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.
@@ -0,0 +1,1219 @@
1
+ /*
2
+ * @x12i/editor styles.
3
+ *
4
+ * Tokens only: no hard-coded colors, lengths or font sizes (a test enforces
5
+ * this). Requires the kit variables, for example:
6
+ *
7
+ * @import "@x12i/themes/themes.css";
8
+ * @import "@x12i/ui/styles.css";
9
+ * @import "@x12i/editor/styles.css";
10
+ *
11
+ * Every selector sits inside :where(), so it has zero specificity and any app
12
+ * class overrides it without a specificity fight. Components expose styling
13
+ * hooks as data-kit="editor-*" plus data attributes (data-variant, data-open,
14
+ * data-selected, ...). Layout uses logical properties, so right to left works
15
+ * without extra CSS; block elements carry dir="auto" and mirror with their text.
16
+ *
17
+ * The same rules style the editor (`data-kit="editor-content"`), the read-only
18
+ * `EditorView` and HTML from `documentToHtml(doc, { wrap: true })`
19
+ * (`data-kit="editor-view"`).
20
+ */
21
+
22
+ /* ------------------------------------------------------------------ Shell */
23
+
24
+ :where([data-kit="editor"]) {
25
+ position: relative;
26
+ box-sizing: border-box;
27
+ display: flex;
28
+ flex-direction: column;
29
+ min-inline-size: 0;
30
+ border: var(--kit-border-width-default) solid var(--kit-color-border-default);
31
+ border-radius: var(--kit-radius-panel);
32
+ background-color: var(--kit-color-bg-surface);
33
+ color: var(--kit-color-text-primary);
34
+ font-family: var(--kit-font-family-sans);
35
+ }
36
+
37
+ :where([data-kit="editor-surface"]) {
38
+ position: relative;
39
+ min-inline-size: 0;
40
+ }
41
+
42
+ :where([data-kit="editor-body"]) {
43
+ min-block-size: 100%;
44
+ }
45
+
46
+ /* ----------------------------------------------------------- Status region */
47
+
48
+ :where([data-kit="editor-status"], [data-kit="editor-visually-hidden"]) {
49
+ position: absolute;
50
+ inline-size: var(--kit-border-width-default);
51
+ block-size: var(--kit-border-width-default);
52
+ margin: calc(var(--kit-border-width-default) * -1);
53
+ padding: 0;
54
+ border: 0;
55
+ overflow: hidden;
56
+ clip-path: inset(50%);
57
+ white-space: nowrap;
58
+ }
59
+
60
+ /* ---------------------------------------------------------------- Toolbar */
61
+
62
+ :where([data-kit="editor-toolbar"]) {
63
+ position: sticky;
64
+ inset-block-start: 0;
65
+ z-index: var(--kit-z-sticky);
66
+ display: flex;
67
+ flex-wrap: wrap;
68
+ align-items: center;
69
+ gap: var(--kit-space-1);
70
+ padding: var(--kit-space-1) var(--kit-space-2);
71
+ border-block-end: var(--kit-border-width-default) solid var(--kit-color-border-subtle);
72
+ border-start-start-radius: var(--kit-radius-panel);
73
+ border-start-end-radius: var(--kit-radius-panel);
74
+ background-color: var(--kit-color-bg-raised);
75
+ }
76
+
77
+ :where([data-kit="editor-toolbar-group"]) {
78
+ display: inline-flex;
79
+ align-items: center;
80
+ gap: var(--kit-space-0-5);
81
+ }
82
+
83
+ :where([data-kit="editor-toolbar"] > [data-kit="divider"]) {
84
+ align-self: stretch;
85
+ margin-block: var(--kit-space-1);
86
+ }
87
+
88
+ :where([data-kit="editor-toolbar-text"]) {
89
+ margin-inline-start: var(--kit-space-1);
90
+ font-size: var(--kit-text-label-size);
91
+ font-weight: var(--kit-text-label-weight);
92
+ white-space: nowrap;
93
+ }
94
+
95
+ :where([data-kit="editor-glyph"]) {
96
+ inline-size: var(--kit-size-icon-md);
97
+ block-size: var(--kit-size-icon-md);
98
+ flex: none;
99
+ stroke-width: var(--kit-icon-stroke-width);
100
+ }
101
+
102
+ /* ------------------------------------------------- Menus, popups, bubbles */
103
+
104
+ :where([data-kit="editor-menu-wrap"]) {
105
+ position: relative;
106
+ display: inline-flex;
107
+ }
108
+
109
+ :where([data-kit="editor-popup"]) {
110
+ --kit-editor-x: var(--kit-space-0);
111
+ --kit-editor-y: var(--kit-space-0);
112
+
113
+ position: absolute;
114
+ z-index: var(--kit-z-dropdown);
115
+ inset-inline-start: var(--kit-editor-x);
116
+ inset-block-start: calc(var(--kit-editor-y) + var(--kit-space-1));
117
+ box-sizing: border-box;
118
+ border: var(--kit-border-width-default) solid var(--kit-color-border-default);
119
+ border-radius: var(--kit-radius-overlay);
120
+ background-color: var(--kit-color-bg-overlay);
121
+ color: var(--kit-color-text-primary);
122
+ box-shadow: var(--kit-shadow-overlay);
123
+ }
124
+
125
+ :where([data-kit="editor-menu-wrap"] > [data-kit="editor-popup"]) {
126
+ inset-inline-start: 0;
127
+ inset-block-start: calc(100% + var(--kit-space-1));
128
+ }
129
+
130
+ :where([data-kit="editor-menu"]) {
131
+ display: flex;
132
+ flex-direction: column;
133
+ min-inline-size: calc(var(--kit-space-24) * 2);
134
+ max-block-size: calc(var(--kit-space-24) * 3);
135
+ padding: var(--kit-space-1);
136
+ overflow-y: auto;
137
+ }
138
+
139
+ :where([data-kit="editor-menu-heading"], [data-kit="editor-slash-heading"]) {
140
+ padding: var(--kit-space-1) var(--kit-space-2);
141
+ color: var(--kit-color-text-secondary);
142
+ font-size: var(--kit-text-caption-size);
143
+ line-height: var(--kit-text-caption-line-height);
144
+ font-weight: var(--kit-font-weight-semibold);
145
+ }
146
+
147
+ :where([data-kit="editor-menu-item"]) {
148
+ box-sizing: border-box;
149
+ display: flex;
150
+ align-items: center;
151
+ gap: var(--kit-space-2);
152
+ inline-size: 100%;
153
+ min-block-size: var(--kit-size-control-md);
154
+ margin: 0;
155
+ padding: var(--kit-space-1) var(--kit-space-2);
156
+ border: 0;
157
+ border-radius: var(--kit-radius-control);
158
+ background-color: transparent;
159
+ color: inherit;
160
+ font: inherit;
161
+ font-size: var(--kit-text-label-size);
162
+ text-align: start;
163
+ cursor: pointer;
164
+ }
165
+
166
+ :where([data-kit="editor-menu-item"]):hover,
167
+ :where([data-kit="editor-menu-item"]):focus-visible {
168
+ background-color: var(--kit-color-accent-subtle);
169
+ }
170
+
171
+ :where([data-kit="editor-menu-item"]):focus-visible {
172
+ outline: var(--kit-border-width-focus) solid var(--kit-color-border-focus);
173
+ outline-offset: calc(var(--kit-border-width-focus) * -1);
174
+ }
175
+
176
+ :where([data-kit="editor-menu-item"][aria-checked="true"]) {
177
+ font-weight: var(--kit-font-weight-semibold);
178
+ }
179
+
180
+ :where([data-kit="editor-menu-item"][aria-disabled="true"]) {
181
+ color: var(--kit-color-text-disabled);
182
+ cursor: not-allowed;
183
+ }
184
+
185
+ :where([data-kit="editor-menu-label"]) {
186
+ flex: 1;
187
+ }
188
+
189
+ :where([data-kit="editor-menu-check"]) {
190
+ flex: none;
191
+ }
192
+
193
+ :where([data-kit="editor-swatch"]) {
194
+ flex: none;
195
+ inline-size: var(--kit-size-16);
196
+ block-size: var(--kit-size-16);
197
+ border: var(--kit-border-width-default) solid var(--kit-color-border-strong);
198
+ border-radius: var(--kit-radius-4);
199
+ background-color: var(--kit-color-bg-surface);
200
+ }
201
+
202
+ :where([data-kit="editor-bubble"]) {
203
+ --kit-editor-x: var(--kit-space-0);
204
+ --kit-editor-y: var(--kit-space-0);
205
+
206
+ position: absolute;
207
+ z-index: var(--kit-z-dropdown);
208
+ inset-inline-start: var(--kit-editor-x);
209
+ inset-block-start: calc(var(--kit-editor-y) - var(--kit-space-2));
210
+ translate: 0 -100%;
211
+ display: flex;
212
+ align-items: center;
213
+ gap: var(--kit-space-0-5);
214
+ padding: var(--kit-space-1);
215
+ border: var(--kit-border-width-default) solid var(--kit-color-border-default);
216
+ border-radius: var(--kit-radius-overlay);
217
+ background-color: var(--kit-color-bg-overlay);
218
+ box-shadow: var(--kit-shadow-overlay);
219
+ }
220
+
221
+ /* ------------------------------------------------------------- Slash menu */
222
+
223
+ :where([data-kit="editor-slash"]) {
224
+ display: flex;
225
+ flex-direction: column;
226
+ min-inline-size: calc(var(--kit-space-24) * 3);
227
+ max-block-size: calc(var(--kit-space-24) * 3);
228
+ padding: var(--kit-space-1);
229
+ overflow-y: auto;
230
+ }
231
+
232
+ :where([data-kit="editor-slash-group"]) {
233
+ display: flex;
234
+ flex-direction: column;
235
+ }
236
+
237
+ :where([data-kit="editor-slash-option"]) {
238
+ display: flex;
239
+ flex-direction: column;
240
+ padding: var(--kit-space-1) var(--kit-space-2);
241
+ border-radius: var(--kit-radius-control);
242
+ cursor: pointer;
243
+ }
244
+
245
+ :where([data-kit="editor-slash-option"][aria-selected="true"]) {
246
+ background-color: var(--kit-color-accent-subtle);
247
+ }
248
+
249
+ :where([data-kit="editor-slash-name"]) {
250
+ font-size: var(--kit-text-label-size);
251
+ font-weight: var(--kit-text-label-weight);
252
+ }
253
+
254
+ :where([data-kit="editor-slash-description"]) {
255
+ color: var(--kit-color-text-secondary);
256
+ font-size: var(--kit-text-caption-size);
257
+ line-height: var(--kit-text-caption-line-height);
258
+ }
259
+
260
+ :where([data-kit="editor-slash-empty"]) {
261
+ padding: var(--kit-space-2) var(--kit-space-3);
262
+ color: var(--kit-color-text-secondary);
263
+ font-size: var(--kit-text-label-size);
264
+ }
265
+
266
+ /* ----------------------------------------------------------- Content base */
267
+
268
+ /* ProseMirror's own base rules, replicated because the engine's CSS is not injected. */
269
+ :where(.ProseMirror) {
270
+ position: relative;
271
+ overflow-wrap: break-word;
272
+ white-space: break-spaces;
273
+ font-variant-ligatures: none;
274
+ font-feature-settings: "liga" 0;
275
+ }
276
+
277
+ :where(.ProseMirror pre) {
278
+ white-space: pre-wrap;
279
+ }
280
+
281
+ :where(.ProseMirror-hideselection *)::selection {
282
+ background-color: transparent;
283
+ }
284
+
285
+ :where(.ProseMirror-hideselection) {
286
+ caret-color: transparent;
287
+ }
288
+
289
+ :where(.ProseMirror img.ProseMirror-separator) {
290
+ display: inline !important;
291
+ border: none !important;
292
+ margin: 0 !important;
293
+ }
294
+
295
+ :where(.ProseMirror-gapcursor) {
296
+ display: none;
297
+ position: absolute;
298
+ margin: 0;
299
+ pointer-events: none;
300
+ }
301
+
302
+ :where(.ProseMirror-gapcursor)::after {
303
+ content: "";
304
+ display: block;
305
+ position: absolute;
306
+ inset-block-start: calc(var(--kit-space-1) * -1);
307
+ inline-size: var(--kit-size-20);
308
+ border-block-start: var(--kit-border-width-default) solid var(--kit-color-text-primary);
309
+ animation: kit-editor-caret var(--kit-duration-slow) steps(2, start) infinite;
310
+ }
311
+
312
+ :where(.ProseMirror-focused .ProseMirror-gapcursor) {
313
+ display: block;
314
+ }
315
+
316
+ @keyframes kit-editor-caret {
317
+ to {
318
+ visibility: hidden;
319
+ }
320
+ }
321
+
322
+ :where([data-kit="editor-content"], [data-kit="editor-view"]) {
323
+ box-sizing: border-box;
324
+ min-block-size: calc(var(--kit-space-24) * 2);
325
+ padding: var(--kit-space-4) var(--kit-space-6);
326
+ color: var(--kit-color-text-primary);
327
+ font-family: var(--kit-font-family-sans);
328
+ font-size: var(--kit-text-body-size);
329
+ line-height: var(--kit-text-body-line-height);
330
+ font-weight: var(--kit-text-body-weight);
331
+ }
332
+
333
+ :where([data-kit="editor-view"]) {
334
+ min-block-size: 0;
335
+ }
336
+
337
+ :where([data-kit="editor-content"]):focus-visible {
338
+ outline: var(--kit-border-width-focus) solid var(--kit-color-border-focus);
339
+ outline-offset: calc(var(--kit-border-width-focus) * -1);
340
+ }
341
+
342
+ :where([data-kit="editor-content"][contenteditable="true"]) {
343
+ cursor: text;
344
+ }
345
+
346
+ :where(:is([data-kit="editor-content"], [data-kit="editor-view"]) ::selection) {
347
+ background-color: var(--kit-color-selection);
348
+ }
349
+
350
+ :where(.ProseMirror-selectednode) {
351
+ outline: var(--kit-border-width-focus) solid var(--kit-color-border-focus);
352
+ outline-offset: var(--kit-space-0-5);
353
+ }
354
+
355
+ /* Placeholder from the engine's Placeholder extension. */
356
+ :where(
357
+ [data-kit="editor-content"] > .is-empty[data-placeholder],
358
+ [data-kit="editor-toggle-content"] > .is-empty[data-placeholder],
359
+ [data-kit="editor-column"] > .is-empty[data-placeholder]
360
+ )::before {
361
+ content: attr(data-placeholder);
362
+ float: inline-start;
363
+ block-size: 0;
364
+ color: var(--kit-color-text-tertiary);
365
+ pointer-events: none;
366
+ }
367
+
368
+ /* ------------------------------------------------------------ Typography */
369
+
370
+ :where(:is([data-kit="editor-content"], [data-kit="editor-view"]) :is(p, h1, h2, h3, h4, blockquote, ul, ol, pre, hr, figure, table)) {
371
+ margin-block: 0 var(--kit-space-3);
372
+ }
373
+
374
+ :where(:is([data-kit="editor-content"], [data-kit="editor-view"]) > :last-child) {
375
+ margin-block-end: 0;
376
+ }
377
+
378
+ :where(:is([data-kit="editor-content"], [data-kit="editor-view"]) h1) {
379
+ margin-block-start: var(--kit-space-6);
380
+ font-size: var(--kit-text-h1-size);
381
+ line-height: var(--kit-text-h1-line-height);
382
+ font-weight: var(--kit-text-h1-weight);
383
+ }
384
+
385
+ :where(:is([data-kit="editor-content"], [data-kit="editor-view"]) h2) {
386
+ margin-block-start: var(--kit-space-5);
387
+ font-size: var(--kit-text-h2-size);
388
+ line-height: var(--kit-text-h2-line-height);
389
+ font-weight: var(--kit-text-h2-weight);
390
+ }
391
+
392
+ :where(:is([data-kit="editor-content"], [data-kit="editor-view"]) h3) {
393
+ margin-block-start: var(--kit-space-4);
394
+ font-size: var(--kit-text-h3-size);
395
+ line-height: var(--kit-text-h3-line-height);
396
+ font-weight: var(--kit-text-h3-weight);
397
+ }
398
+
399
+ :where(:is([data-kit="editor-content"], [data-kit="editor-view"]) h4) {
400
+ margin-block-start: var(--kit-space-3);
401
+ font-size: var(--kit-text-h4-size);
402
+ line-height: var(--kit-text-h4-line-height);
403
+ font-weight: var(--kit-text-h4-weight);
404
+ }
405
+
406
+ :where(:is([data-kit="editor-content"], [data-kit="editor-view"]) > :first-child) {
407
+ margin-block-start: 0;
408
+ }
409
+
410
+ :where(:is([data-kit="editor-content"], [data-kit="editor-view"]) a) {
411
+ color: var(--kit-color-text-link);
412
+ text-decoration: underline;
413
+ text-underline-offset: var(--kit-space-0-5);
414
+ }
415
+
416
+ :where(:is([data-kit="editor-content"], [data-kit="editor-view"]) blockquote) {
417
+ padding-inline-start: var(--kit-space-4);
418
+ border-inline-start: var(--kit-border-width-emphasis) solid var(--kit-color-border-strong);
419
+ color: var(--kit-color-text-secondary);
420
+ }
421
+
422
+ :where(:is([data-kit="editor-content"], [data-kit="editor-view"]) blockquote > :last-child) {
423
+ margin-block-end: 0;
424
+ }
425
+
426
+ :where(:is([data-kit="editor-content"], [data-kit="editor-view"]) hr) {
427
+ border: 0;
428
+ border-block-start: var(--kit-border-width-default) solid var(--kit-color-border-default);
429
+ }
430
+
431
+ :where(:is([data-kit="editor-content"], [data-kit="editor-view"]) code) {
432
+ padding: var(--kit-space-0-5) var(--kit-space-1);
433
+ border-radius: var(--kit-radius-4);
434
+ background-color: var(--kit-color-bg-raised);
435
+ font-family: var(--kit-font-family-mono);
436
+ font-size: var(--kit-text-code-size);
437
+ }
438
+
439
+ /* ------------------------------------------------------------------ Marks */
440
+
441
+ :where([data-kit="editor-highlight"]) {
442
+ border-radius: var(--kit-radius-2);
443
+ color: inherit;
444
+ }
445
+
446
+ :where([data-kit="editor-text-color"][data-token="color.text.secondary"]) { color: var(--kit-color-text-secondary); }
447
+ :where([data-kit="editor-text-color"][data-token="color.text.link"]) { color: var(--kit-color-text-link); }
448
+ :where([data-kit="editor-text-color"][data-token="color.accent.default"]) { color: var(--kit-color-accent-default); }
449
+ :where([data-kit="editor-text-color"][data-token="color.status.success.foreground"]) { color: var(--kit-color-status-success-foreground); }
450
+ :where([data-kit="editor-text-color"][data-token="color.status.warning.foreground"]) { color: var(--kit-color-status-warning-foreground); }
451
+ :where([data-kit="editor-text-color"][data-token="color.status.danger.foreground"]) { color: var(--kit-color-status-danger-foreground); }
452
+ :where([data-kit="editor-text-color"][data-token="color.status.info.foreground"]) { color: var(--kit-color-status-info-foreground); }
453
+ :where([data-kit="editor-text-color"][data-token="color.chart.categorical.4"]) { color: var(--kit-color-chart-categorical-4); }
454
+
455
+ :where([data-kit="editor-highlight"][data-token="color.highlight"]) { background-color: var(--kit-color-highlight); }
456
+ :where([data-kit="editor-highlight"][data-token="color.accent.subtle"]) { background-color: var(--kit-color-accent-subtle); }
457
+ :where([data-kit="editor-highlight"][data-token="color.status.success.background"]) { background-color: var(--kit-color-status-success-background); }
458
+ :where([data-kit="editor-highlight"][data-token="color.status.warning.background"]) { background-color: var(--kit-color-status-warning-background); }
459
+ :where([data-kit="editor-highlight"][data-token="color.status.danger.background"]) { background-color: var(--kit-color-status-danger-background); }
460
+ :where([data-kit="editor-highlight"][data-token="color.status.info.background"]) { background-color: var(--kit-color-status-info-background); }
461
+
462
+ /* Palette chips in the color menus use the same tokens. */
463
+ :where([data-kit="editor-swatch"][data-token="color.text.secondary"]) { background-color: var(--kit-color-text-secondary); }
464
+ :where([data-kit="editor-swatch"][data-token="color.text.link"]) { background-color: var(--kit-color-text-link); }
465
+ :where([data-kit="editor-swatch"][data-token="color.accent.default"]) { background-color: var(--kit-color-accent-default); }
466
+ :where([data-kit="editor-swatch"][data-token="color.status.success.foreground"]) { background-color: var(--kit-color-status-success-foreground); }
467
+ :where([data-kit="editor-swatch"][data-token="color.status.warning.foreground"]) { background-color: var(--kit-color-status-warning-foreground); }
468
+ :where([data-kit="editor-swatch"][data-token="color.status.danger.foreground"]) { background-color: var(--kit-color-status-danger-foreground); }
469
+ :where([data-kit="editor-swatch"][data-token="color.status.info.foreground"]) { background-color: var(--kit-color-status-info-foreground); }
470
+ :where([data-kit="editor-swatch"][data-token="color.chart.categorical.4"]) { background-color: var(--kit-color-chart-categorical-4); }
471
+ :where([data-kit="editor-swatch"][data-token="color.highlight"]) { background-color: var(--kit-color-highlight); }
472
+ :where([data-kit="editor-swatch"][data-token="color.accent.subtle"]) { background-color: var(--kit-color-accent-subtle); }
473
+ :where([data-kit="editor-swatch"][data-token="color.status.success.background"]) { background-color: var(--kit-color-status-success-background); }
474
+ :where([data-kit="editor-swatch"][data-token="color.status.warning.background"]) { background-color: var(--kit-color-status-warning-background); }
475
+ :where([data-kit="editor-swatch"][data-token="color.status.danger.background"]) { background-color: var(--kit-color-status-danger-background); }
476
+ :where([data-kit="editor-swatch"][data-token="color.status.info.background"]) { background-color: var(--kit-color-status-info-background); }
477
+
478
+ :where([data-kit="editor-mention"]) {
479
+ padding-inline: var(--kit-space-1);
480
+ border-radius: var(--kit-radius-pill);
481
+ background-color: var(--kit-color-accent-subtle);
482
+ color: var(--kit-color-text-link);
483
+ }
484
+
485
+ /* ------------------------------------------------------------------ Lists */
486
+
487
+ :where(:is([data-kit="editor-content"], [data-kit="editor-view"]) :is(ul, ol)) {
488
+ padding-inline-start: var(--kit-space-6);
489
+ }
490
+
491
+ :where(:is([data-kit="editor-content"], [data-kit="editor-view"]) li > :is(p, ul, ol)) {
492
+ margin-block-end: var(--kit-space-1);
493
+ }
494
+
495
+ :where(:is([data-kit="editor-content"], [data-kit="editor-view"]) li) {
496
+ margin-block-end: var(--kit-space-0-5);
497
+ }
498
+
499
+ :where([data-kit="editor-task-list"]) {
500
+ padding-inline-start: 0;
501
+ list-style: none;
502
+ }
503
+
504
+ :where([data-kit="editor-task-list"] [data-kit="editor-task-list"]) {
505
+ padding-inline-start: var(--kit-space-6);
506
+ }
507
+
508
+ :where([data-kit="editor-task-item"]) {
509
+ display: flex;
510
+ align-items: flex-start;
511
+ gap: var(--kit-space-2);
512
+ }
513
+
514
+ :where([data-kit="editor-task-item"] > label) {
515
+ flex: none;
516
+ display: flex;
517
+ align-items: center;
518
+ block-size: var(--kit-text-body-line-height);
519
+ user-select: none;
520
+ }
521
+
522
+ :where([data-kit="editor-task-item"] > div) {
523
+ flex: 1;
524
+ min-inline-size: 0;
525
+ }
526
+
527
+ :where([data-kit="editor-task-item"] input[type="checkbox"]) {
528
+ inline-size: var(--kit-size-16);
529
+ block-size: var(--kit-size-16);
530
+ margin: 0;
531
+ accent-color: var(--kit-color-accent-default);
532
+ cursor: pointer;
533
+ }
534
+
535
+ :where([data-kit="editor-task-item"] > input[type="checkbox"]) {
536
+ margin-block-start: var(--kit-space-1);
537
+ }
538
+
539
+ :where([data-kit="editor-task-item"][data-checked="true"] > div, [data-kit="editor-task-item"][data-checked="true"] > span) {
540
+ color: var(--kit-color-text-secondary);
541
+ text-decoration: line-through;
542
+ }
543
+
544
+ /* ------------------------------------------------------------ Code blocks */
545
+
546
+ :where([data-kit="editor-code"], [data-kit="editor-code-block"], [data-kit="editor-equation"]) {
547
+ box-sizing: border-box;
548
+ border: var(--kit-border-width-default) solid var(--kit-color-border-subtle);
549
+ border-radius: var(--kit-radius-control);
550
+ background-color: var(--kit-color-bg-raised);
551
+ font-family: var(--kit-font-family-mono);
552
+ font-size: var(--kit-text-code-size);
553
+ line-height: var(--kit-text-code-line-height);
554
+ }
555
+
556
+ :where([data-kit="editor-code"]) {
557
+ margin-block: 0 var(--kit-space-3);
558
+ }
559
+
560
+ :where([data-kit="editor-code"] pre, pre[data-kit="editor-code-block"], [data-kit="editor-equation"]) {
561
+ margin: 0;
562
+ padding: var(--kit-space-3) var(--kit-space-4);
563
+ overflow-x: auto;
564
+ }
565
+
566
+ :where([data-kit="editor-code"] pre) {
567
+ border: 0;
568
+ background-color: transparent;
569
+ }
570
+
571
+ :where(:is([data-kit="editor-code"], [data-kit="editor-code-block"], [data-kit="editor-equation"]) code) {
572
+ padding: 0;
573
+ border: 0;
574
+ background-color: transparent;
575
+ font: inherit;
576
+ }
577
+
578
+ :where([data-kit="editor-code-bar"]) {
579
+ display: flex;
580
+ align-items: center;
581
+ justify-content: space-between;
582
+ gap: var(--kit-space-2);
583
+ padding: var(--kit-space-1) var(--kit-space-2);
584
+ border-block-end: var(--kit-border-width-default) solid var(--kit-color-border-subtle);
585
+ font-family: var(--kit-font-family-sans);
586
+ font-size: var(--kit-text-caption-size);
587
+ }
588
+
589
+ :where([data-kit="editor-code-language"], [data-kit="editor-callout-kind"]) {
590
+ min-block-size: var(--kit-size-control-sm);
591
+ padding-inline: var(--kit-space-2);
592
+ border: var(--kit-border-width-default) solid var(--kit-color-border-default);
593
+ border-radius: var(--kit-radius-control);
594
+ background-color: var(--kit-color-bg-surface);
595
+ color: var(--kit-color-text-primary);
596
+ font: inherit;
597
+ font-size: var(--kit-text-caption-size);
598
+ }
599
+
600
+ :where([data-kit="editor-code-language-label"]) {
601
+ color: var(--kit-color-text-secondary);
602
+ }
603
+
604
+ :where([data-kit="editor-code-copy"]) {
605
+ display: inline-flex;
606
+ align-items: center;
607
+ gap: var(--kit-space-1);
608
+ min-block-size: var(--kit-size-control-sm);
609
+ padding-inline: var(--kit-space-2);
610
+ border: 0;
611
+ border-radius: var(--kit-radius-control);
612
+ background-color: transparent;
613
+ color: var(--kit-color-text-secondary);
614
+ font: inherit;
615
+ cursor: pointer;
616
+ }
617
+
618
+ :where([data-kit="editor-code-copy"]):hover {
619
+ background-color: var(--kit-color-accent-subtle);
620
+ color: var(--kit-color-text-primary);
621
+ }
622
+
623
+ :where([data-kit="editor-code-language"], [data-kit="editor-callout-kind"], [data-kit="editor-code-copy"], [data-kit="editor-toggle-button"], [data-kit="editor-input"]):focus-visible {
624
+ outline: var(--kit-border-width-focus) solid var(--kit-color-border-focus);
625
+ outline-offset: var(--kit-space-0-5);
626
+ }
627
+
628
+ /* ---------------------------------------------------------------- Callout */
629
+
630
+ :where([data-kit="editor-callout"]) {
631
+ --_bg: var(--kit-color-status-info-background);
632
+ --_fg: var(--kit-color-status-info-foreground);
633
+ --_edge: var(--kit-color-status-info-border);
634
+
635
+ box-sizing: border-box;
636
+ margin-block: 0 var(--kit-space-3);
637
+ padding: var(--kit-space-3) var(--kit-space-4);
638
+ border: var(--kit-border-width-default) solid var(--_edge);
639
+ border-radius: var(--kit-radius-control);
640
+ background-color: var(--_bg);
641
+ color: var(--kit-color-text-primary);
642
+ }
643
+
644
+ :where([data-kit="editor-callout"][data-variant="success"]) {
645
+ --_bg: var(--kit-color-status-success-background);
646
+ --_fg: var(--kit-color-status-success-foreground);
647
+ --_edge: var(--kit-color-status-success-border);
648
+ }
649
+
650
+ :where([data-kit="editor-callout"][data-variant="warning"]) {
651
+ --_bg: var(--kit-color-status-warning-background);
652
+ --_fg: var(--kit-color-status-warning-foreground);
653
+ --_edge: var(--kit-color-status-warning-border);
654
+ }
655
+
656
+ :where([data-kit="editor-callout"][data-variant="danger"]) {
657
+ --_bg: var(--kit-color-status-danger-background);
658
+ --_fg: var(--kit-color-status-danger-foreground);
659
+ --_edge: var(--kit-color-status-danger-border);
660
+ }
661
+
662
+ :where([data-kit="editor-callout"][data-variant="neutral"]) {
663
+ --_bg: var(--kit-color-bg-raised);
664
+ --_fg: var(--kit-color-text-secondary);
665
+ --_edge: var(--kit-color-border-default);
666
+ }
667
+
668
+ :where([data-kit="editor-callout"]:has(> [data-kit="editor-callout-icon"])) {
669
+ display: grid;
670
+ grid-template-columns: auto minmax(0, 1fr) auto;
671
+ align-items: start;
672
+ gap: var(--kit-space-3);
673
+ }
674
+
675
+ :where([data-kit="editor-callout-icon"]) {
676
+ display: inline-flex;
677
+ align-items: center;
678
+ block-size: var(--kit-text-body-line-height);
679
+ color: var(--_fg);
680
+ }
681
+
682
+ :where([data-kit="editor-callout-content"]) {
683
+ min-inline-size: 0;
684
+ }
685
+
686
+ /* ----------------------------------------------------------------- Toggle */
687
+
688
+ :where(div[data-kit="editor-toggle"]) {
689
+ display: grid;
690
+ grid-template-columns: auto minmax(0, 1fr);
691
+ align-items: start;
692
+ column-gap: var(--kit-space-1);
693
+ margin-block: 0 var(--kit-space-3);
694
+ }
695
+
696
+ :where([data-kit="editor-toggle-button"]) {
697
+ display: inline-flex;
698
+ align-items: center;
699
+ justify-content: center;
700
+ inline-size: var(--kit-size-24);
701
+ block-size: var(--kit-text-body-line-height);
702
+ margin: 0;
703
+ padding: 0;
704
+ border: 0;
705
+ border-radius: var(--kit-radius-control);
706
+ background-color: transparent;
707
+ color: var(--kit-color-text-secondary);
708
+ cursor: pointer;
709
+ }
710
+
711
+ :where([data-kit="editor-toggle-button"]):hover {
712
+ background-color: var(--kit-color-accent-subtle);
713
+ }
714
+
715
+ :where([data-kit="editor-toggle-button"] svg) {
716
+ transition: rotate var(--kit-duration-fast) var(--kit-easing-standard);
717
+ }
718
+
719
+ :where([data-kit="editor-toggle-button"] svg[data-open="false"]) {
720
+ rotate: -90deg;
721
+ }
722
+
723
+ :where([data-kit="editor-toggle-button"]:dir(rtl) svg[data-open="false"]) {
724
+ rotate: 90deg;
725
+ }
726
+
727
+ :where(div[data-kit="editor-toggle"][data-open="false"] > [data-kit="editor-toggle-content"] > :not([data-kit="editor-toggle-summary"])) {
728
+ display: none;
729
+ }
730
+
731
+ :where([data-kit="editor-toggle-summary"]) {
732
+ font-weight: var(--kit-font-weight-medium);
733
+ }
734
+
735
+ :where(details[data-kit="editor-toggle"]) {
736
+ margin-block: 0 var(--kit-space-3);
737
+ }
738
+
739
+ :where(details[data-kit="editor-toggle"] > summary) {
740
+ font-weight: var(--kit-font-weight-medium);
741
+ cursor: pointer;
742
+ }
743
+
744
+ :where(details[data-kit="editor-toggle"] > summary):focus-visible {
745
+ outline: var(--kit-border-width-focus) solid var(--kit-color-border-focus);
746
+ outline-offset: var(--kit-space-0-5);
747
+ }
748
+
749
+ :where(details[data-kit="editor-toggle"] > :not(summary)) {
750
+ margin-inline-start: var(--kit-space-5);
751
+ }
752
+
753
+ /* ---------------------------------------------------------------- Columns */
754
+
755
+ :where([data-kit="editor-columns"]) {
756
+ display: grid;
757
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, calc(var(--kit-space-24) * 3)), 1fr));
758
+ gap: var(--kit-space-4);
759
+ margin-block: 0 var(--kit-space-3);
760
+ }
761
+
762
+ :where([data-kit="editor-column"]) {
763
+ min-inline-size: 0;
764
+ padding: var(--kit-space-2);
765
+ border: var(--kit-border-width-default) dashed var(--kit-color-border-subtle);
766
+ border-radius: var(--kit-radius-control);
767
+ }
768
+
769
+ :where([data-kit="editor-view"] [data-kit="editor-column"]) {
770
+ padding: 0;
771
+ border: 0;
772
+ }
773
+
774
+ /* ------------------------------------------------------------------ Table */
775
+
776
+ :where([data-kit="editor-table-wrapper"]) {
777
+ margin-block: 0 var(--kit-space-3);
778
+ overflow-x: auto;
779
+ }
780
+
781
+ :where([data-kit="editor-table"]) {
782
+ border-collapse: collapse;
783
+ inline-size: 100%;
784
+ table-layout: fixed;
785
+ }
786
+
787
+ :where([data-kit="editor-table"] :is(th, td)) {
788
+ position: relative;
789
+ box-sizing: border-box;
790
+ min-inline-size: var(--kit-size-56);
791
+ padding: var(--kit-space-2) var(--kit-space-3);
792
+ border: var(--kit-border-width-default) solid var(--kit-color-border-default);
793
+ vertical-align: top;
794
+ text-align: start;
795
+ }
796
+
797
+ :where([data-kit="editor-table"] th) {
798
+ background-color: var(--kit-color-bg-raised);
799
+ font-weight: var(--kit-font-weight-semibold);
800
+ }
801
+
802
+ :where([data-kit="editor-table"] :is(th, td) > :last-child) {
803
+ margin-block-end: 0;
804
+ }
805
+
806
+ :where([data-kit="editor-table"] .selectedCell)::after {
807
+ content: "";
808
+ position: absolute;
809
+ inset: 0;
810
+ background-color: var(--kit-color-accent-subtle);
811
+ pointer-events: none;
812
+ }
813
+
814
+ /* ------------------------------------------------- Blocks with a frame */
815
+
816
+ :where([data-kit="editor-frame"]) {
817
+ position: relative;
818
+ box-sizing: border-box;
819
+ margin-block: 0 var(--kit-space-3);
820
+ border: var(--kit-border-width-default) solid transparent;
821
+ border-radius: var(--kit-radius-control);
822
+ }
823
+
824
+ :where([data-kit="editor-frame"]):hover {
825
+ border-color: var(--kit-color-border-subtle);
826
+ }
827
+
828
+ :where([data-kit="editor-frame"][data-selected]) {
829
+ border-color: var(--kit-color-border-focus);
830
+ }
831
+
832
+ :where([data-kit="editor-frame-toolbar"]) {
833
+ position: absolute;
834
+ inset-block-start: var(--kit-space-1);
835
+ inset-inline-end: var(--kit-space-1);
836
+ z-index: var(--kit-z-sticky);
837
+ display: flex;
838
+ gap: var(--kit-space-0-5);
839
+ padding: var(--kit-space-0-5);
840
+ border: var(--kit-border-width-default) solid var(--kit-color-border-default);
841
+ border-radius: var(--kit-radius-overlay);
842
+ background-color: var(--kit-color-bg-overlay);
843
+ box-shadow: var(--kit-shadow-raised);
844
+ }
845
+
846
+ :where([data-kit="editor-image"], [data-kit="editor-media"]) {
847
+ display: grid;
848
+ gap: var(--kit-space-2);
849
+ justify-items: start;
850
+ margin: 0;
851
+ }
852
+
853
+ :where([data-kit="editor-image"][data-align="center"], [data-kit="editor-media"][data-align="center"]) {
854
+ justify-items: center;
855
+ }
856
+
857
+ :where([data-kit="editor-image"][data-align="end"], [data-kit="editor-media"][data-align="end"]) {
858
+ justify-items: end;
859
+ }
860
+
861
+ :where([data-kit="editor-image"] img, [data-kit="editor-media"] :is(video, audio)) {
862
+ display: block;
863
+ max-inline-size: 100%;
864
+ block-size: auto;
865
+ border-radius: var(--kit-radius-control);
866
+ }
867
+
868
+ :where([data-kit="editor-image"] figcaption, [data-kit="editor-media"] figcaption) {
869
+ color: var(--kit-color-text-secondary);
870
+ font-size: var(--kit-text-caption-size);
871
+ line-height: var(--kit-text-caption-line-height);
872
+ }
873
+
874
+ :where([data-kit="editor-file"], [data-kit="editor-bookmark"]) {
875
+ box-sizing: border-box;
876
+ display: flex;
877
+ align-items: center;
878
+ gap: var(--kit-space-3);
879
+ padding: var(--kit-space-3) var(--kit-space-4);
880
+ border: var(--kit-border-width-default) solid var(--kit-color-border-default);
881
+ border-radius: var(--kit-radius-control);
882
+ background-color: var(--kit-color-bg-surface);
883
+ color: var(--kit-color-text-primary);
884
+ text-decoration: none;
885
+ }
886
+
887
+ :where(a[data-kit="editor-file"], a[data-kit="editor-bookmark"]):hover {
888
+ background-color: var(--kit-color-accent-subtle);
889
+ }
890
+
891
+ :where([data-kit="editor-file-size"]) {
892
+ color: var(--kit-color-text-secondary);
893
+ font-size: var(--kit-text-caption-size);
894
+ }
895
+
896
+ :where([data-kit="editor-bookmark-text"]) {
897
+ display: flex;
898
+ flex-direction: column;
899
+ min-inline-size: 0;
900
+ }
901
+
902
+ :where([data-kit="editor-bookmark-text"] small) {
903
+ color: var(--kit-color-text-secondary);
904
+ font-size: var(--kit-text-caption-size);
905
+ }
906
+
907
+ :where([data-kit="editor-toc"]) {
908
+ padding: var(--kit-space-3) var(--kit-space-4);
909
+ border: var(--kit-border-width-default) solid var(--kit-color-border-subtle);
910
+ border-radius: var(--kit-radius-control);
911
+ background-color: var(--kit-color-bg-raised);
912
+ }
913
+
914
+ :where([data-kit="editor-toc"] ol) {
915
+ margin: 0;
916
+ padding-inline-start: var(--kit-space-5);
917
+ list-style: none;
918
+ }
919
+
920
+ :where([data-kit="editor-toc"] > ol) {
921
+ padding-inline-start: 0;
922
+ }
923
+
924
+ :where([data-kit="editor-toc-empty"]) {
925
+ margin: 0;
926
+ color: var(--kit-color-text-secondary);
927
+ }
928
+
929
+ :where([data-kit="editor-page-break"]) {
930
+ border: 0;
931
+ border-block-start: var(--kit-border-width-default) dashed var(--kit-color-border-strong);
932
+ }
933
+
934
+ /* ------------------------------------------------------------ Embed cards */
935
+
936
+ :where([data-kit="editor-embed"]) {
937
+ margin: 0 0 var(--kit-space-3);
938
+ }
939
+
940
+ /* The static HTML export writes a caption for embeds instead of a card. */
941
+ :where([data-kit="editor-embed"] > figcaption) {
942
+ color: var(--kit-color-text-secondary);
943
+ font-size: var(--kit-text-caption-size);
944
+ line-height: var(--kit-text-caption-line-height);
945
+ }
946
+
947
+ :where([data-kit="editor-embed-kind"]) {
948
+ margin-inline-end: var(--kit-space-1);
949
+ color: var(--kit-color-text-primary);
950
+ font-weight: var(--kit-font-weight-semibold);
951
+ }
952
+
953
+ :where([data-kit="editor-embed-card"]) {
954
+ box-sizing: border-box;
955
+ display: flex;
956
+ flex-direction: column;
957
+ gap: var(--kit-space-2);
958
+ padding: var(--kit-space-3) var(--kit-space-4);
959
+ border: var(--kit-border-width-default) solid var(--kit-color-border-default);
960
+ border-radius: var(--kit-radius-control);
961
+ background-color: var(--kit-color-bg-raised);
962
+ }
963
+
964
+ :where([data-kit="editor-embed-head"]) {
965
+ display: flex;
966
+ align-items: center;
967
+ gap: var(--kit-space-2);
968
+ }
969
+
970
+ :where([data-kit="editor-embed-title"]) {
971
+ font-weight: var(--kit-font-weight-semibold);
972
+ }
973
+
974
+ :where([data-kit="editor-embed-description"], [data-kit="editor-embed-hint"]) {
975
+ margin: 0;
976
+ color: var(--kit-color-text-secondary);
977
+ font-size: var(--kit-text-caption-size);
978
+ line-height: var(--kit-text-caption-line-height);
979
+ white-space: pre-wrap;
980
+ }
981
+
982
+ :where([data-kit="editor-embed-facts"]) {
983
+ display: grid;
984
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, calc(var(--kit-space-24) * 2)), 1fr));
985
+ gap: var(--kit-space-1) var(--kit-space-4);
986
+ margin: 0;
987
+ }
988
+
989
+ :where([data-kit="editor-embed-fact"]) {
990
+ display: flex;
991
+ gap: var(--kit-space-2);
992
+ min-inline-size: 0;
993
+ }
994
+
995
+ :where([data-kit="editor-embed-fact"] dt) {
996
+ color: var(--kit-color-text-secondary);
997
+ font-size: var(--kit-text-caption-size);
998
+ }
999
+
1000
+ :where([data-kit="editor-embed-fact"] dd) {
1001
+ margin: 0;
1002
+ font-size: var(--kit-text-caption-size);
1003
+ overflow-wrap: anywhere;
1004
+ }
1005
+
1006
+ :where([data-kit="editor-embed-data"] > summary) {
1007
+ cursor: pointer;
1008
+ color: var(--kit-color-text-link);
1009
+ font-size: var(--kit-text-caption-size);
1010
+ }
1011
+
1012
+ :where([data-kit="editor-embed-data"] pre) {
1013
+ max-block-size: calc(var(--kit-space-24) * 3);
1014
+ margin: var(--kit-space-2) 0 0;
1015
+ padding: var(--kit-space-2) var(--kit-space-3);
1016
+ overflow: auto;
1017
+ border-radius: var(--kit-radius-control);
1018
+ background-color: var(--kit-color-bg-surface);
1019
+ font-family: var(--kit-font-family-mono);
1020
+ font-size: var(--kit-text-code-size);
1021
+ }
1022
+
1023
+ /* ---------------------------------------------- Dialogs and form fields */
1024
+
1025
+ :where([data-kit="editor-dialog-backdrop"]) {
1026
+ position: fixed;
1027
+ inset: 0;
1028
+ z-index: var(--kit-z-modal);
1029
+ display: grid;
1030
+ place-items: center;
1031
+ padding: var(--kit-space-4);
1032
+ background-color: var(--kit-color-scrim);
1033
+ }
1034
+
1035
+ :where([data-kit="editor-dialog"]) {
1036
+ box-sizing: border-box;
1037
+ inline-size: min(100%, calc(var(--kit-space-24) * 4));
1038
+ max-block-size: 100%;
1039
+ padding: var(--kit-space-6);
1040
+ overflow-y: auto;
1041
+ border: var(--kit-border-width-default) solid var(--kit-color-border-default);
1042
+ border-radius: var(--kit-radius-overlay);
1043
+ background-color: var(--kit-color-bg-overlay);
1044
+ color: var(--kit-color-text-primary);
1045
+ font-family: var(--kit-font-family-sans);
1046
+ box-shadow: var(--kit-shadow-modal);
1047
+ }
1048
+
1049
+ :where([data-kit="editor-dialog"]):focus-visible {
1050
+ outline: var(--kit-border-width-focus) solid var(--kit-color-border-focus);
1051
+ outline-offset: var(--kit-space-0-5);
1052
+ }
1053
+
1054
+ :where([data-kit="editor-dialog-title"]) {
1055
+ margin: 0 0 var(--kit-space-4);
1056
+ font-size: var(--kit-text-h4-size);
1057
+ line-height: var(--kit-text-h4-line-height);
1058
+ font-weight: var(--kit-text-h4-weight);
1059
+ }
1060
+
1061
+ :where([data-kit="editor-dialog-form"], [data-kit="editor-url-form"], [data-kit="editor-ai-custom"]) {
1062
+ display: flex;
1063
+ flex-direction: column;
1064
+ gap: var(--kit-space-3);
1065
+ }
1066
+
1067
+ :where([data-kit="editor-dialog-actions"], [data-kit="editor-ai-actions"]) {
1068
+ display: flex;
1069
+ flex-wrap: wrap;
1070
+ gap: var(--kit-space-2);
1071
+ justify-content: flex-end;
1072
+ }
1073
+
1074
+ :where([data-kit="editor-field"]) {
1075
+ display: flex;
1076
+ flex-direction: column;
1077
+ gap: var(--kit-space-1);
1078
+ }
1079
+
1080
+ :where([data-kit="editor-field-label"]) {
1081
+ font-size: var(--kit-text-label-size);
1082
+ font-weight: var(--kit-text-label-weight);
1083
+ }
1084
+
1085
+ :where([data-kit="editor-field-hint"]) {
1086
+ margin: 0;
1087
+ color: var(--kit-color-text-secondary);
1088
+ font-size: var(--kit-text-caption-size);
1089
+ }
1090
+
1091
+ :where([data-kit="editor-input"]) {
1092
+ box-sizing: border-box;
1093
+ inline-size: 100%;
1094
+ min-block-size: var(--kit-size-control-md);
1095
+ padding-inline: var(--kit-space-3);
1096
+ border: var(--kit-border-width-default) solid var(--kit-color-border-strong);
1097
+ border-radius: var(--kit-radius-control);
1098
+ background-color: var(--kit-color-bg-surface);
1099
+ color: var(--kit-color-text-primary);
1100
+ font: inherit;
1101
+ }
1102
+
1103
+ :where([data-kit="editor-input"][aria-invalid="true"]) {
1104
+ border-color: var(--kit-color-status-danger-border);
1105
+ }
1106
+
1107
+ :where([data-kit="editor-input"]:disabled) {
1108
+ color: var(--kit-color-text-disabled);
1109
+ }
1110
+
1111
+ :where([data-kit="editor-error"]) {
1112
+ margin: 0;
1113
+ color: var(--kit-color-status-danger-foreground);
1114
+ font-size: var(--kit-text-caption-size);
1115
+ }
1116
+
1117
+ :where([data-kit="editor-checkbox"]) {
1118
+ display: flex;
1119
+ align-items: center;
1120
+ gap: var(--kit-space-2);
1121
+ font-size: var(--kit-text-label-size);
1122
+ }
1123
+
1124
+ :where([data-kit="editor-checkbox"] input) {
1125
+ inline-size: var(--kit-size-16);
1126
+ block-size: var(--kit-size-16);
1127
+ margin: 0;
1128
+ accent-color: var(--kit-color-accent-default);
1129
+ }
1130
+
1131
+ /* ------------------------------------------------------------ AI assistant */
1132
+
1133
+ :where([data-kit="editor-ai"]) {
1134
+ position: absolute;
1135
+ inset-block-start: var(--kit-space-2);
1136
+ inset-inline-end: var(--kit-space-2);
1137
+ z-index: var(--kit-z-dropdown);
1138
+ box-sizing: border-box;
1139
+ display: flex;
1140
+ flex-direction: column;
1141
+ gap: var(--kit-space-3);
1142
+ inline-size: min(100%, calc(var(--kit-space-24) * 4));
1143
+ padding: var(--kit-space-3);
1144
+ border: var(--kit-border-width-default) solid var(--kit-color-border-default);
1145
+ border-radius: var(--kit-radius-overlay);
1146
+ background-color: var(--kit-color-bg-overlay);
1147
+ box-shadow: var(--kit-shadow-overlay);
1148
+ }
1149
+
1150
+ :where([data-kit="editor-ai-preview"]) {
1151
+ display: flex;
1152
+ flex-direction: column;
1153
+ gap: var(--kit-space-2);
1154
+ }
1155
+
1156
+ :where([data-kit="editor-ai-preview-label"]) {
1157
+ display: flex;
1158
+ align-items: center;
1159
+ gap: var(--kit-space-2);
1160
+ margin: 0;
1161
+ color: var(--kit-color-text-secondary);
1162
+ font-size: var(--kit-text-caption-size);
1163
+ }
1164
+
1165
+ :where([data-kit="editor-ai-preview-text"]) {
1166
+ max-block-size: calc(var(--kit-space-24) * 2);
1167
+ padding: var(--kit-space-2) var(--kit-space-3);
1168
+ overflow-y: auto;
1169
+ border: var(--kit-border-width-default) solid var(--kit-color-border-subtle);
1170
+ border-radius: var(--kit-radius-control);
1171
+ background-color: var(--kit-color-bg-raised);
1172
+ white-space: pre-wrap;
1173
+ }
1174
+
1175
+ :where([data-kit="editor-ai-preview-text"]):focus-visible {
1176
+ outline: var(--kit-border-width-focus) solid var(--kit-color-border-focus);
1177
+ outline-offset: var(--kit-space-0-5);
1178
+ }
1179
+
1180
+ /* --------------------------------------------------------- Motion, contrast */
1181
+
1182
+ @media (prefers-reduced-motion: reduce) {
1183
+ :where([data-kit="editor-toggle-button"] svg) {
1184
+ transition: none;
1185
+ }
1186
+
1187
+ :where(.ProseMirror-gapcursor)::after {
1188
+ animation: none;
1189
+ }
1190
+ }
1191
+
1192
+ @media (forced-colors: active) {
1193
+ :where([data-kit="editor"], [data-kit="editor-popup"], [data-kit="editor-bubble"], [data-kit="editor-dialog"], [data-kit="editor-ai"]) {
1194
+ border-color: CanvasText;
1195
+ }
1196
+
1197
+ :where(.ProseMirror-selectednode, [data-kit="editor-frame"][data-selected]) {
1198
+ outline-color: Highlight;
1199
+ border-color: Highlight;
1200
+ }
1201
+
1202
+ :where([data-kit="editor-menu-item"]):is(:hover, :focus-visible),
1203
+ :where([data-kit="editor-slash-option"][aria-selected="true"]) {
1204
+ outline: var(--kit-border-width-focus) solid Highlight;
1205
+ }
1206
+
1207
+ :where([data-kit="editor-highlight"]) {
1208
+ background-color: Mark;
1209
+ color: MarkText;
1210
+ }
1211
+
1212
+ :where([data-kit="editor-table"] :is(th, td), [data-kit="editor-embed-card"], [data-kit="editor-callout"]) {
1213
+ border-color: CanvasText;
1214
+ }
1215
+
1216
+ :where(.ProseMirror-gapcursor)::after {
1217
+ border-block-start-color: CanvasText;
1218
+ }
1219
+ }