moondown 0.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.
package/dist/style.css ADDED
@@ -0,0 +1,728 @@
1
+ :root {
2
+ --color-primary-hsl: 211 100% 50%;
3
+ --color-primary-light-hsl: 209 100% 72%;
4
+ --color-primary-dark-hsl: 211 100% 42%;
5
+ --moondown-accent: hsl(var(--color-primary-hsl));
6
+ --moondown-accent-strong: hsl(var(--color-primary-dark-hsl));
7
+ --moondown-accent-soft: hsl(var(--color-primary-hsl) / 0.12);
8
+ --moondown-bg: #ffffff;
9
+ --moondown-surface: rgba(255, 255, 255, 0.82);
10
+ --moondown-surface-solid: #ffffff;
11
+ --moondown-surface-muted: #f2f2f7;
12
+ --moondown-line: rgba(60, 60, 67, 0.18);
13
+ --moondown-line-soft: rgba(60, 60, 67, 0.10);
14
+ --moondown-line-strong: rgba(60, 60, 67, 0.29);
15
+ --moondown-text: #1d1d1f;
16
+ --moondown-muted: #6e6e73;
17
+ --moondown-tertiary: #8e8e93;
18
+ --moondown-danger: #ff3b30;
19
+ --moondown-success: #34c759;
20
+ --moondown-font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", system-ui, sans-serif;
21
+ --moondown-display: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", system-ui, sans-serif;
22
+ --moondown-mono: "SF Mono", ui-monospace, Menlo, Monaco, Consolas, monospace;
23
+ --moondown-shadow: 0 24px 64px rgba(0, 0, 0, 0.12), 0 2px 6px rgba(0, 0, 0, 0.04);
24
+ --moondown-shadow-soft: 0 12px 32px rgba(0, 0, 0, 0.08);
25
+ --moondown-easing: cubic-bezier(0.4, 0, 0.2, 1);
26
+ --moondown-spring: cubic-bezier(0.16, 1, 0.3, 1);
27
+ --ai-panel-bg: var(--moondown-surface);
28
+ --ai-panel-border: var(--moondown-line-soft);
29
+ --ai-panel-shadow: var(--moondown-shadow);
30
+ --ai-accent: var(--moondown-accent);
31
+ --ai-text-primary: var(--moondown-text);
32
+ --ai-text-secondary: var(--moondown-muted);
33
+ --ai-font-family: var(--moondown-font);
34
+ }
35
+
36
+ .dark {
37
+ --moondown-accent: hsl(var(--color-primary-light-hsl));
38
+ --moondown-accent-strong: hsl(var(--color-primary-hsl));
39
+ --moondown-accent-soft: hsl(var(--color-primary-light-hsl) / 0.18);
40
+ --moondown-bg: #1c1c1e;
41
+ --moondown-surface: rgba(28, 28, 30, 0.78);
42
+ --moondown-surface-solid: #1c1c1e;
43
+ --moondown-surface-muted: #2c2c2e;
44
+ --moondown-line: rgba(84, 84, 88, 0.5);
45
+ --moondown-line-soft: rgba(84, 84, 88, 0.28);
46
+ --moondown-line-strong: rgba(84, 84, 88, 0.7);
47
+ --moondown-text: #f5f5f7;
48
+ --moondown-muted: #a1a1a6;
49
+ --moondown-tertiary: #8e8e93;
50
+ --moondown-danger: #ff453a;
51
+ --moondown-shadow: 0 32px 72px rgba(0, 0, 0, 0.56), 0 2px 6px rgba(0, 0, 0, 0.32);
52
+ --moondown-shadow-soft: 0 18px 42px rgba(0, 0, 0, 0.42);
53
+ }
54
+
55
+ .cm-editor {
56
+ font-family: var(--moondown-font);
57
+ font-size: 15.5px;
58
+ line-height: 1.7;
59
+ }
60
+
61
+ .cm-hide-line {
62
+ display: none;
63
+ }
64
+
65
+ .cm-link-definition-line {
66
+ background: var(--moondown-accent-soft);
67
+ }
68
+
69
+ .cm-link-definition-url {
70
+ color: var(--moondown-accent);
71
+ text-decoration: underline;
72
+ text-decoration-style: dotted;
73
+ text-underline-offset: 3px;
74
+ }
75
+
76
+ .cm-bullet-list-l0 .bullet-symbol,
77
+ .cm-bullet-list-l1 .bullet-symbol,
78
+ .cm-bullet-list-l2 .bullet-symbol,
79
+ .cm-bullet-list-l3 .bullet-symbol,
80
+ .cm-bullet-list-l4 .bullet-symbol,
81
+ .cm-bullet-list-l5 .bullet-symbol {
82
+ color: var(--moondown-accent);
83
+ }
84
+
85
+ .dark .cm-bullet-list-l0 .bullet-symbol,
86
+ .dark .cm-bullet-list-l1 .bullet-symbol,
87
+ .dark .cm-bullet-list-l2 .bullet-symbol,
88
+ .dark .cm-bullet-list-l3 .bullet-symbol,
89
+ .dark .cm-bullet-list-l4 .bullet-symbol,
90
+ .dark .cm-bullet-list-l5 .bullet-symbol {
91
+ color: var(--moondown-accent);
92
+ }
93
+
94
+ .cm-image-wrapper {
95
+ position: relative;
96
+ display: flex;
97
+ width: 100%;
98
+ justify-content: center;
99
+ }
100
+
101
+ .cm-image-overlay {
102
+ position: absolute;
103
+ inset: 0;
104
+ pointer-events: none;
105
+ }
106
+
107
+ /* ============================================================
108
+ * AI Polish Panel — floating composer (Apple Intelligence feel)
109
+ * ============================================================ */
110
+
111
+ .cm-ai-polish-panel {
112
+ position: fixed;
113
+ z-index: 9999;
114
+ width: min(440px, calc(100vw - 32px));
115
+ display: flex;
116
+ flex-direction: column;
117
+ overflow: hidden;
118
+ color: var(--ai-text-primary);
119
+ background: var(--ai-panel-bg);
120
+ border: 0.5px solid var(--ai-panel-border);
121
+ border-radius: 18px;
122
+ box-shadow: var(--ai-panel-shadow);
123
+ backdrop-filter: blur(40px) saturate(180%);
124
+ -webkit-backdrop-filter: blur(40px) saturate(180%);
125
+ font-family: var(--ai-font-family);
126
+ opacity: 0;
127
+ transform: translateY(8px) scale(0.98);
128
+ animation: aiPanelIn 240ms var(--moondown-spring) forwards;
129
+ -webkit-font-smoothing: antialiased;
130
+ }
131
+
132
+ @keyframes aiPanelIn {
133
+ to {
134
+ opacity: 1;
135
+ transform: translateY(0) scale(1);
136
+ }
137
+ }
138
+
139
+ .ai-polish-icon-btn,
140
+ .ai-polish-send-btn,
141
+ .ai-polish-action-btn,
142
+ .cm-widget-edit-bubble-button,
143
+ .cm-bubble-menu-item,
144
+ .cm-bubble-menu-sub-item {
145
+ font-family: inherit;
146
+ }
147
+
148
+ .ai-polish-icon-btn,
149
+ .ai-polish-send-btn,
150
+ .ai-polish-action-btn {
151
+ box-sizing: border-box;
152
+ width: auto;
153
+ min-width: 0;
154
+ min-height: 0;
155
+ line-height: 1;
156
+ }
157
+
158
+ .ai-polish-icon-btn > span,
159
+ .ai-polish-send-btn > span,
160
+ .ai-polish-action-btn > span:first-child {
161
+ display: inline-flex;
162
+ align-items: center;
163
+ justify-content: center;
164
+ flex: 0 0 auto;
165
+ color: inherit;
166
+ line-height: 1;
167
+ }
168
+
169
+ .ai-polish-icon-btn svg,
170
+ .ai-polish-send-btn svg,
171
+ .ai-polish-action-btn svg {
172
+ display: block;
173
+ flex: 0 0 auto;
174
+ color: inherit;
175
+ stroke: currentColor;
176
+ }
177
+
178
+ .ai-polish-icon-btn {
179
+ appearance: none;
180
+ border: 0;
181
+ background: transparent;
182
+ color: var(--ai-text-secondary);
183
+ cursor: pointer;
184
+ }
185
+
186
+ .ai-polish-close-btn {
187
+ position: absolute;
188
+ top: 10px;
189
+ right: 10px;
190
+ z-index: 20;
191
+ width: 26px;
192
+ height: 26px;
193
+ min-width: 26px;
194
+ min-height: 26px;
195
+ display: grid;
196
+ place-items: center;
197
+ padding: 0;
198
+ border-radius: 50%;
199
+ color: var(--moondown-tertiary);
200
+ background: transparent;
201
+ transition: background-color 160ms var(--moondown-easing), color 160ms var(--moondown-easing);
202
+ }
203
+
204
+ .ai-polish-close-btn svg {
205
+ width: 13px;
206
+ height: 13px;
207
+ }
208
+
209
+ .ai-polish-close-btn:hover {
210
+ color: var(--moondown-text);
211
+ background: color-mix(in srgb, var(--moondown-muted) 16%, transparent);
212
+ }
213
+
214
+ .cm-ai-polish-input-section {
215
+ position: relative;
216
+ display: flex;
217
+ flex-direction: column;
218
+ padding: 44px 18px 16px;
219
+ }
220
+
221
+ .ai-polish-input-wrapper {
222
+ position: relative;
223
+ display: flex;
224
+ align-items: flex-end;
225
+ width: 100%;
226
+ min-height: 44px;
227
+ border: 0.5px solid var(--moondown-line);
228
+ border-radius: 14px;
229
+ background: var(--moondown-surface-solid);
230
+ transition: border-color 180ms var(--moondown-easing), box-shadow 180ms var(--moondown-easing);
231
+ }
232
+
233
+ .ai-polish-input-wrapper:focus-within {
234
+ border-color: color-mix(in srgb, var(--moondown-accent) 55%, var(--moondown-line));
235
+ box-shadow: 0 0 0 4px var(--moondown-accent-soft);
236
+ }
237
+
238
+ .cm-ai-polish-input {
239
+ width: 100%;
240
+ min-height: 44px;
241
+ max-height: 160px;
242
+ resize: none;
243
+ border: 0;
244
+ outline: none;
245
+ background: transparent;
246
+ color: var(--ai-text-primary);
247
+ padding: 11px 46px 11px 14px;
248
+ font: inherit;
249
+ font-size: 14px;
250
+ line-height: 1.45;
251
+ }
252
+
253
+ .cm-ai-polish-input::placeholder {
254
+ color: var(--ai-text-secondary);
255
+ opacity: 0.7;
256
+ }
257
+
258
+ .ai-polish-send-btn {
259
+ position: absolute;
260
+ right: 6px;
261
+ bottom: 6px;
262
+ width: 32px;
263
+ height: 32px;
264
+ min-width: 32px;
265
+ min-height: 32px;
266
+ display: grid;
267
+ place-items: center;
268
+ padding: 0;
269
+ border: 0;
270
+ border-radius: 50%;
271
+ background: var(--moondown-tertiary);
272
+ color: #ffffff;
273
+ cursor: pointer;
274
+ opacity: 0.55;
275
+ transform: scale(0.92);
276
+ transition: background-color 180ms var(--moondown-easing), opacity 180ms var(--moondown-easing), transform 180ms var(--moondown-spring);
277
+ }
278
+
279
+ .ai-polish-send-btn > span {
280
+ width: 100%;
281
+ height: 100%;
282
+ }
283
+
284
+ .ai-polish-send-btn svg {
285
+ width: 16px;
286
+ height: 16px;
287
+ }
288
+
289
+ .ai-polish-send-btn:hover:not(:disabled),
290
+ .ai-polish-send-btn:focus-visible:not(:disabled) {
291
+ background: var(--moondown-accent-strong);
292
+ color: #ffffff;
293
+ opacity: 1;
294
+ transform: scale(1);
295
+ }
296
+
297
+ .cm-ai-polish-input:focus ~ .ai-polish-send-btn,
298
+ .cm-ai-polish-input:not(:placeholder-shown) ~ .ai-polish-send-btn {
299
+ background: var(--ai-accent);
300
+ opacity: 1;
301
+ transform: scale(1);
302
+ }
303
+
304
+ .ai-polish-send-btn:active {
305
+ transform: scale(0.92);
306
+ }
307
+
308
+ .ai-polish-send-btn:disabled {
309
+ opacity: 0.4;
310
+ cursor: default;
311
+ }
312
+
313
+ .ai-polish-hint {
314
+ margin-top: 10px;
315
+ padding: 0 4px;
316
+ color: var(--ai-text-secondary);
317
+ font-size: 11px;
318
+ font-weight: 500;
319
+ text-align: right;
320
+ letter-spacing: 0.01em;
321
+ }
322
+
323
+ .cm-ai-polish-response-section {
324
+ display: none;
325
+ max-height: 360px;
326
+ overflow-y: auto;
327
+ overscroll-behavior: contain;
328
+ padding: 16px 18px 18px;
329
+ border-top: 0.5px solid var(--ai-panel-border);
330
+ background: color-mix(in srgb, var(--moondown-surface-muted) 60%, transparent);
331
+ }
332
+
333
+ .cm-ai-polish-response-section.visible {
334
+ display: flex;
335
+ flex-direction: column;
336
+ gap: 14px;
337
+ }
338
+
339
+ .ai-polish-user-bubble {
340
+ align-self: flex-end;
341
+ max-width: 84%;
342
+ margin-left: auto;
343
+ padding: 9px 13px;
344
+ border-radius: 18px 18px 6px 18px;
345
+ background: var(--moondown-accent);
346
+ color: #ffffff;
347
+ font-size: 13.5px;
348
+ line-height: 1.45;
349
+ word-wrap: break-word;
350
+ animation: slideUp 220ms var(--moondown-spring);
351
+ }
352
+
353
+ .cm-ai-polish-response-bubble {
354
+ align-self: flex-start;
355
+ width: 100%;
356
+ padding: 13px 14px;
357
+ border: 0.5px solid var(--moondown-line-soft);
358
+ border-radius: 14px;
359
+ background: var(--moondown-surface-solid);
360
+ animation: slideUp 240ms var(--moondown-spring);
361
+ }
362
+
363
+ .cm-ai-polish-response-bubble:last-child .ai-polish-action-bar {
364
+ display: flex;
365
+ }
366
+
367
+ .cm-ai-polish-response-bubble.error .ai-polish-response-text {
368
+ color: var(--moondown-danger);
369
+ }
370
+
371
+ @keyframes slideUp {
372
+ from {
373
+ opacity: 0;
374
+ transform: translateY(6px);
375
+ }
376
+
377
+ to {
378
+ opacity: 1;
379
+ transform: translateY(0);
380
+ }
381
+ }
382
+
383
+ .ai-polish-response-text {
384
+ color: var(--ai-text-primary);
385
+ font-size: 14px;
386
+ line-height: 1.6;
387
+ white-space: pre-wrap;
388
+ word-wrap: break-word;
389
+ }
390
+
391
+ .ai-polish-typing-indicator {
392
+ display: flex;
393
+ gap: 4px;
394
+ padding: 4px 0;
395
+ }
396
+
397
+ .ai-polish-typing-indicator span {
398
+ width: 6px;
399
+ height: 6px;
400
+ border-radius: 50%;
401
+ background: var(--ai-text-secondary);
402
+ animation: typing 1.3s infinite ease-in-out both;
403
+ }
404
+
405
+ .ai-polish-typing-indicator span:nth-child(1) {
406
+ animation-delay: -0.32s;
407
+ }
408
+
409
+ .ai-polish-typing-indicator span:nth-child(2) {
410
+ animation-delay: -0.16s;
411
+ }
412
+
413
+ @keyframes typing {
414
+ 0%,
415
+ 80%,
416
+ 100% {
417
+ transform: scale(0.4);
418
+ opacity: 0.35;
419
+ }
420
+
421
+ 40% {
422
+ transform: scale(1);
423
+ opacity: 1;
424
+ }
425
+ }
426
+
427
+ .ai-polish-action-bar {
428
+ display: none;
429
+ gap: 6px;
430
+ margin-top: 12px;
431
+ padding-top: 12px;
432
+ border-top: 0.5px solid var(--ai-panel-border);
433
+ opacity: 0;
434
+ animation: fadeIn 220ms ease forwards;
435
+ }
436
+
437
+ @keyframes fadeIn {
438
+ to {
439
+ opacity: 1;
440
+ }
441
+ }
442
+
443
+ .ai-polish-action-btn {
444
+ display: inline-flex;
445
+ align-items: center;
446
+ justify-content: center;
447
+ gap: 6px;
448
+ width: auto;
449
+ height: 30px;
450
+ min-width: 0;
451
+ min-height: 30px;
452
+ border: 0;
453
+ border-radius: 8px;
454
+ background: transparent;
455
+ color: var(--ai-text-secondary);
456
+ padding: 5px 10px;
457
+ cursor: pointer;
458
+ font-size: 12.5px;
459
+ font-weight: 600;
460
+ letter-spacing: -0.005em;
461
+ transition: background-color 160ms var(--moondown-easing), color 160ms var(--moondown-easing);
462
+ }
463
+
464
+ .ai-polish-action-btn > span:first-child {
465
+ width: 14px;
466
+ height: 14px;
467
+ }
468
+
469
+ .ai-polish-action-btn > span:not(:first-child) {
470
+ display: inline-flex;
471
+ align-items: center;
472
+ line-height: 1;
473
+ }
474
+
475
+ .ai-polish-action-btn svg {
476
+ width: 14px;
477
+ height: 14px;
478
+ }
479
+
480
+ .ai-polish-action-btn:hover {
481
+ background: var(--moondown-surface-muted);
482
+ color: var(--ai-text-primary);
483
+ }
484
+
485
+ .ai-polish-action-btn.primary-action {
486
+ margin-left: auto;
487
+ color: #ffffff;
488
+ background: var(--moondown-accent);
489
+ padding: 5px 14px;
490
+ }
491
+
492
+ .ai-polish-action-btn.primary-action:hover {
493
+ background: var(--moondown-accent-strong);
494
+ color: #ffffff;
495
+ }
496
+
497
+ .cm-ai-polish-response-section::-webkit-scrollbar {
498
+ width: 8px;
499
+ }
500
+
501
+ .cm-ai-polish-response-section::-webkit-scrollbar-thumb {
502
+ border: 2px solid transparent;
503
+ border-radius: 999px;
504
+ background: color-mix(in srgb, var(--moondown-muted) 35%, transparent);
505
+ background-clip: padding-box;
506
+ }
507
+
508
+ /* ============================================================
509
+ * Bubble Menu — floating formatting toolbar
510
+ * ============================================================ */
511
+
512
+ .cm-bubble-menu {
513
+ position: absolute;
514
+ z-index: 1000;
515
+ display: flex;
516
+ gap: 2px;
517
+ padding: 5px;
518
+ border: 0.5px solid var(--moondown-line-soft);
519
+ border-radius: 13px;
520
+ background: var(--moondown-surface);
521
+ box-shadow: var(--moondown-shadow);
522
+ backdrop-filter: blur(40px) saturate(180%);
523
+ -webkit-backdrop-filter: blur(40px) saturate(180%);
524
+ will-change: opacity, transform;
525
+ }
526
+
527
+ .cm-bubble-menu-item {
528
+ position: relative;
529
+ display: inline-flex;
530
+ align-items: center;
531
+ justify-content: center;
532
+ gap: 4px;
533
+ min-width: 32px;
534
+ min-height: 32px;
535
+ border: 0;
536
+ border-radius: 8px;
537
+ background: transparent;
538
+ color: var(--moondown-text);
539
+ padding: 6px;
540
+ cursor: pointer;
541
+ transition: background-color 140ms var(--moondown-easing), color 140ms var(--moondown-easing);
542
+ }
543
+
544
+ .cm-bubble-menu-item[data-type="button"] {
545
+ width: 32px;
546
+ padding: 6px;
547
+ gap: 0;
548
+ }
549
+
550
+ .cm-bubble-menu-item[data-type="dropdown"] {
551
+ justify-content: flex-start;
552
+ padding: 6px 6px 6px 8px;
553
+ }
554
+
555
+ .cm-bubble-menu-item:hover {
556
+ background: var(--moondown-surface-muted);
557
+ }
558
+
559
+ .cm-bubble-menu-item.active {
560
+ color: var(--moondown-accent);
561
+ background: var(--moondown-accent-soft);
562
+ }
563
+
564
+ .cm-bubble-menu-icon,
565
+ .cm-bubble-menu-dropdown-icon {
566
+ display: inline-flex;
567
+ align-items: center;
568
+ justify-content: center;
569
+ }
570
+
571
+ .cm-bubble-menu-dropdown-icon {
572
+ opacity: 0.6;
573
+ }
574
+
575
+ .cm-bubble-menu-dropdown-icon svg {
576
+ width: 11px;
577
+ height: 11px;
578
+ }
579
+
580
+ .cm-bubble-menu-dropdown {
581
+ position: absolute;
582
+ top: calc(100% + 8px);
583
+ left: 0;
584
+ min-width: 200px;
585
+ padding: 5px;
586
+ border: 0.5px solid var(--moondown-line-soft);
587
+ border-radius: 12px;
588
+ background: var(--moondown-surface);
589
+ box-shadow: var(--moondown-shadow);
590
+ backdrop-filter: blur(40px) saturate(180%);
591
+ -webkit-backdrop-filter: blur(40px) saturate(180%);
592
+ opacity: 0;
593
+ visibility: hidden;
594
+ transform: translateY(-6px);
595
+ transition: opacity 180ms var(--moondown-easing), visibility 180ms var(--moondown-easing), transform 180ms var(--moondown-spring);
596
+ }
597
+
598
+ .cm-bubble-menu-item:hover .cm-bubble-menu-dropdown {
599
+ opacity: 1;
600
+ visibility: visible;
601
+ transform: translateY(0);
602
+ }
603
+
604
+ .cm-bubble-menu-sub-item {
605
+ display: flex;
606
+ align-items: center;
607
+ gap: 10px;
608
+ width: 100%;
609
+ min-height: 32px;
610
+ border: 0;
611
+ border-radius: 7px;
612
+ background: transparent;
613
+ color: var(--moondown-text);
614
+ padding: 6px 10px;
615
+ cursor: pointer;
616
+ transition: background-color 140ms var(--moondown-easing), color 140ms var(--moondown-easing);
617
+ }
618
+
619
+ .cm-bubble-menu-sub-item:hover {
620
+ background: var(--moondown-surface-muted);
621
+ }
622
+
623
+ .cm-bubble-menu-sub-item.active {
624
+ color: var(--moondown-accent);
625
+ background: var(--moondown-accent-soft);
626
+ }
627
+
628
+ .cm-bubble-menu-sub-icon {
629
+ display: flex;
630
+ align-items: center;
631
+ justify-content: center;
632
+ width: 18px;
633
+ height: 18px;
634
+ }
635
+
636
+ .cm-bubble-menu-sub-label {
637
+ color: inherit;
638
+ font-size: 13px;
639
+ font-weight: 500;
640
+ letter-spacing: -0.005em;
641
+ }
642
+
643
+ /* ============================================================
644
+ * Widget Edit Bubble — inline edit overlay
645
+ * ============================================================ */
646
+
647
+ .cm-widget-edit-bubble {
648
+ position: absolute;
649
+ z-index: 1200;
650
+ display: none;
651
+ width: min(520px, calc(100vw - 32px));
652
+ flex-direction: column;
653
+ gap: 10px;
654
+ padding: 14px;
655
+ border: 0.5px solid var(--moondown-line-soft);
656
+ border-radius: 16px;
657
+ background: var(--moondown-surface);
658
+ box-shadow: var(--moondown-shadow);
659
+ backdrop-filter: blur(40px) saturate(180%);
660
+ -webkit-backdrop-filter: blur(40px) saturate(180%);
661
+ }
662
+
663
+ .cm-widget-edit-bubble-title {
664
+ color: var(--moondown-tertiary);
665
+ font-size: 11px;
666
+ font-weight: 600;
667
+ letter-spacing: 0.06em;
668
+ text-transform: uppercase;
669
+ }
670
+
671
+ .cm-widget-edit-bubble-input {
672
+ width: 100%;
673
+ min-height: 38px;
674
+ resize: vertical;
675
+ border: 0.5px solid var(--moondown-line);
676
+ border-radius: 10px;
677
+ background: var(--moondown-surface-solid);
678
+ color: var(--moondown-text);
679
+ font-family: var(--moondown-mono);
680
+ font-size: 12.5px;
681
+ line-height: 1.55;
682
+ padding: 10px 12px;
683
+ outline: none;
684
+ transition: border-color 180ms var(--moondown-easing), box-shadow 180ms var(--moondown-easing);
685
+ }
686
+
687
+ .cm-widget-edit-bubble.cm-widget-edit-bubble-multiline .cm-widget-edit-bubble-input {
688
+ min-height: 132px;
689
+ }
690
+
691
+ .cm-widget-edit-bubble-input:focus {
692
+ border-color: color-mix(in srgb, var(--moondown-accent) 56%, var(--moondown-line));
693
+ box-shadow: 0 0 0 4px var(--moondown-accent-soft);
694
+ }
695
+
696
+ .cm-widget-edit-bubble-actions {
697
+ display: flex;
698
+ justify-content: flex-end;
699
+ gap: 8px;
700
+ }
701
+
702
+ .cm-widget-edit-bubble-button {
703
+ appearance: none;
704
+ min-height: 30px;
705
+ border: 0;
706
+ border-radius: 999px;
707
+ background: transparent;
708
+ color: var(--moondown-accent);
709
+ padding: 6px 14px;
710
+ font-size: 13px;
711
+ font-weight: 600;
712
+ letter-spacing: -0.005em;
713
+ cursor: pointer;
714
+ transition: background-color 140ms var(--moondown-easing), color 140ms var(--moondown-easing);
715
+ }
716
+
717
+ .cm-widget-edit-bubble-button:hover {
718
+ background: var(--moondown-surface-muted);
719
+ }
720
+
721
+ .cm-widget-edit-bubble-button.cm-widget-edit-bubble-button-primary {
722
+ background: var(--moondown-accent);
723
+ color: #ffffff;
724
+ }
725
+
726
+ .cm-widget-edit-bubble-button.cm-widget-edit-bubble-button-primary:hover {
727
+ background: var(--moondown-accent-strong);
728
+ }