@hwp-editor/react 1.1.0 → 1.2.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/index.css CHANGED
@@ -35,11 +35,19 @@
35
35
 
36
36
  /* src/editor.css */
37
37
  .hwped {
38
+ --_hwped-desk: color-mix(in srgb, var(--hwped-fg) 5%, var(--hwped-bg));
39
+ --_hwped-fill: color-mix(in srgb, var(--hwped-fg) 7%, var(--hwped-bg));
40
+ --_hwped-hover: color-mix(in srgb, var(--hwped-accent) 9%, var(--hwped-bg));
41
+ --_hwped-press: color-mix(in srgb, var(--hwped-accent) 16%, var(--hwped-bg));
42
+ --_hwped-hairline: color-mix(in srgb, var(--hwped-border) 75%, transparent);
43
+ --_hwped-ring: 0 0 0 3px color-mix(in srgb, var(--hwped-accent) 35%, transparent);
44
+ --_hwped-quick: 100ms ease-out;
38
45
  background: var(--hwped-bg);
39
46
  color: var(--hwped-fg);
40
47
  font-family: var(--hwped-font);
41
48
  font-size: 13px;
42
49
  line-height: 1.5;
50
+ -webkit-font-smoothing: antialiased;
43
51
  }
44
52
  .hwped *,
45
53
  .hwped *::before,
@@ -59,12 +67,17 @@
59
67
  display: flex;
60
68
  align-items: center;
61
69
  gap: 8px;
62
- padding: 6px 10px;
63
- border-bottom: 1px solid var(--hwped-border);
70
+ min-height: 44px;
71
+ padding: 6px 12px;
72
+ border-bottom: 1px solid var(--_hwped-hairline);
73
+ background: var(--hwped-bg);
64
74
  flex: 0 0 auto;
75
+ position: relative;
76
+ z-index: 1;
65
77
  }
66
78
  .hwped-title {
67
79
  font-weight: 600;
80
+ letter-spacing: -0.01em;
68
81
  overflow: hidden;
69
82
  text-overflow: ellipsis;
70
83
  white-space: nowrap;
@@ -75,10 +88,11 @@
75
88
  }
76
89
  .hwped-notice {
77
90
  color: var(--hwped-muted);
78
- border: 1px solid var(--hwped-border);
79
- border-radius: var(--hwped-radius);
80
- padding: 1px 8px;
91
+ background: var(--_hwped-fill);
92
+ border-radius: 999px;
93
+ padding: 2px 10px;
81
94
  font-size: 12px;
95
+ letter-spacing: 0.01em;
82
96
  min-width: 0;
83
97
  overflow: hidden;
84
98
  text-overflow: ellipsis;
@@ -86,56 +100,98 @@
86
100
  flex: 0 1 auto;
87
101
  }
88
102
  .hwped-badge {
89
- border-radius: var(--hwped-radius);
90
- padding: 1px 8px;
103
+ border-radius: 999px;
104
+ padding: 2px 10px;
91
105
  font-size: 12px;
92
- border: 1px solid var(--hwped-border);
106
+ font-weight: 600;
107
+ letter-spacing: 0.01em;
108
+ border: 1px solid transparent;
109
+ background: var(--_hwped-fill);
93
110
  flex: 0 0 auto;
94
111
  }
95
112
  .hwped-badge-ok {
96
113
  color: var(--hwped-success);
97
- border-color: var(--hwped-success);
114
+ background: color-mix(in srgb, var(--hwped-success) 14%, transparent);
98
115
  }
99
116
  .hwped-badge-err {
100
117
  color: var(--hwped-error);
101
- border-color: var(--hwped-error);
118
+ background: color-mix(in srgb, var(--hwped-error) 14%, transparent);
102
119
  }
103
120
  .hwped-count {
104
121
  color: var(--hwped-muted);
105
122
  font-size: 12px;
123
+ letter-spacing: 0.01em;
124
+ font-variant-numeric: tabular-nums;
106
125
  flex: 0 0 auto;
107
126
  }
108
127
  .hwped-btn {
109
128
  font: inherit;
129
+ font-weight: 500;
110
130
  color: var(--hwped-fg);
111
131
  background: var(--hwped-bg);
112
132
  border: 1px solid var(--hwped-border);
113
133
  border-radius: var(--hwped-radius);
114
- padding: 3px 10px;
134
+ min-height: 28px;
135
+ padding: 3px 12px;
115
136
  cursor: pointer;
137
+ transition:
138
+ background-color var(--_hwped-quick),
139
+ border-color var(--_hwped-quick),
140
+ transform var(--_hwped-quick);
116
141
  }
117
142
  .hwped-btn:hover:not(:disabled) {
118
- border-color: var(--hwped-accent);
143
+ background: var(--_hwped-hover);
144
+ border-color: color-mix(in srgb, var(--hwped-accent) 55%, var(--hwped-border));
145
+ }
146
+ .hwped-btn:active:not(:disabled) {
147
+ background: var(--_hwped-press);
148
+ transform: scale(0.97);
119
149
  }
120
150
  .hwped-btn:disabled {
121
151
  color: var(--hwped-muted);
152
+ background: transparent;
153
+ border-color: var(--_hwped-hairline);
122
154
  cursor: not-allowed;
123
- opacity: 0.6;
155
+ opacity: 0.55;
124
156
  }
125
157
  .hwped-btn-primary {
126
158
  background: var(--hwped-accent);
127
159
  border-color: var(--hwped-accent);
128
160
  color: #ffffff;
161
+ font-weight: 600;
162
+ }
163
+ .hwped-btn-primary:hover:not(:disabled) {
164
+ background: color-mix(in srgb, var(--hwped-accent) 88%, #000000);
165
+ border-color: color-mix(in srgb, var(--hwped-accent) 88%, #000000);
166
+ }
167
+ .hwped-btn-primary:active:not(:disabled) {
168
+ background: color-mix(in srgb, var(--hwped-accent) 78%, #000000);
169
+ }
170
+ .hwped-btn-primary:disabled {
171
+ color: var(--hwped-muted);
172
+ background: color-mix(in srgb, var(--hwped-accent) 14%, var(--hwped-bg));
173
+ border-color: transparent;
174
+ opacity: 1;
175
+ }
176
+ .hwped-btn-danger {
177
+ color: var(--hwped-error);
129
178
  }
130
179
  .hwped-btn-danger:hover:not(:disabled) {
131
180
  border-color: var(--hwped-error);
132
181
  color: var(--hwped-error);
182
+ background: color-mix(in srgb, var(--hwped-error) 9%, var(--hwped-bg));
133
183
  }
134
184
  .hwped-btn-link {
135
185
  border: none;
186
+ background: none;
187
+ min-height: 0;
136
188
  padding: 0;
137
189
  color: var(--hwped-accent);
138
190
  text-decoration: underline;
191
+ text-underline-offset: 2px;
192
+ }
193
+ .hwped-btn-link:hover:not(:disabled) {
194
+ background: none;
139
195
  }
140
196
  .hwped-toolbar > .hwped-btn {
141
197
  flex: 0 0 auto;
@@ -147,14 +203,32 @@
147
203
  background: var(--hwped-bg);
148
204
  border: 1px solid var(--hwped-border);
149
205
  border-radius: var(--hwped-radius);
150
- padding: 4px 8px;
206
+ min-height: 28px;
207
+ padding: 4px 9px;
151
208
  width: 100%;
209
+ transition: border-color var(--_hwped-quick), box-shadow var(--_hwped-quick);
210
+ }
211
+ .hwped-input::placeholder,
212
+ .hwped-textarea::placeholder {
213
+ color: var(--hwped-muted);
214
+ opacity: 0.8;
215
+ }
216
+ .hwped-input:hover:not(:disabled),
217
+ .hwped-textarea:hover:not(:disabled) {
218
+ border-color: color-mix(in srgb, var(--hwped-fg) 30%, var(--hwped-border));
152
219
  }
153
220
  .hwped-input:focus,
154
- .hwped-textarea:focus,
155
- .hwped-btn:focus-visible {
156
- outline: 2px solid var(--hwped-accent);
157
- outline-offset: 1px;
221
+ .hwped-textarea:focus {
222
+ outline: none;
223
+ border-color: var(--hwped-accent);
224
+ box-shadow: var(--_hwped-ring);
225
+ }
226
+ .hwped-btn:focus-visible,
227
+ .hwped-tab:focus-visible,
228
+ .hwped-preset:focus-visible,
229
+ .hwped-cell:focus-visible {
230
+ outline: none;
231
+ box-shadow: var(--_hwped-ring);
158
232
  }
159
233
  .hwped-input-narrow {
160
234
  width: 96px;
@@ -163,7 +237,11 @@
163
237
  .hwped-check {
164
238
  display: inline-flex;
165
239
  align-items: center;
166
- gap: 4px;
240
+ gap: 6px;
241
+ cursor: pointer;
242
+ }
243
+ .hwped-check input {
244
+ accent-color: var(--hwped-accent);
167
245
  }
168
246
  .hwped-main {
169
247
  display: flex;
@@ -173,54 +251,76 @@
173
251
  .hwped-canvas {
174
252
  flex: 1 1 auto;
175
253
  overflow: auto;
176
- padding: 16px;
254
+ padding: 24px;
177
255
  display: flex;
178
256
  flex-direction: column;
179
257
  align-items: center;
180
- gap: 16px;
258
+ gap: 24px;
259
+ background: var(--_hwped-desk);
181
260
  }
182
261
  .hwped-side {
183
262
  flex: 0 0 300px;
184
- border-left: 1px solid var(--hwped-border);
263
+ border-left: 1px solid var(--_hwped-hairline);
264
+ background: var(--hwped-bg);
185
265
  display: flex;
186
266
  flex-direction: column;
187
267
  min-height: 0;
188
268
  }
189
269
  .hwped-tabs {
190
270
  display: flex;
191
- border-bottom: 1px solid var(--hwped-border);
271
+ gap: 2px;
272
+ margin: 10px 12px 2px;
273
+ padding: 3px;
274
+ background: var(--_hwped-fill);
275
+ border-radius: calc(var(--hwped-radius) + 2px);
192
276
  flex: 0 0 auto;
193
277
  }
194
278
  .hwped-tab {
195
279
  font: inherit;
280
+ font-weight: 500;
196
281
  flex: 1 1 0;
197
- padding: 6px 0;
282
+ min-height: 26px;
283
+ padding: 3px 0;
198
284
  background: none;
199
285
  border: none;
200
- border-bottom: 2px solid transparent;
286
+ border-radius: var(--hwped-radius);
201
287
  color: var(--hwped-muted);
202
288
  cursor: pointer;
289
+ transition:
290
+ background-color var(--_hwped-quick),
291
+ color var(--_hwped-quick),
292
+ transform var(--_hwped-quick);
293
+ }
294
+ .hwped-tab:hover:not(.hwped-tab-active) {
295
+ color: var(--hwped-fg);
296
+ }
297
+ .hwped-tab:active {
298
+ transform: scale(0.97);
203
299
  }
204
300
  .hwped-tab-active {
205
301
  color: var(--hwped-fg);
206
- border-bottom-color: var(--hwped-accent);
302
+ background: var(--hwped-bg);
207
303
  font-weight: 600;
304
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 0 0 0.5px rgba(0, 0, 0, 0.06);
208
305
  }
209
306
  .hwped-panel {
210
- padding: 10px;
307
+ padding: 12px;
211
308
  overflow: auto;
212
309
  display: flex;
213
310
  flex-direction: column;
214
- gap: 12px;
311
+ gap: 16px;
215
312
  }
216
313
  .hwped-field {
217
314
  display: flex;
218
315
  flex-direction: column;
219
- gap: 4px;
316
+ gap: 6px;
220
317
  }
221
318
  .hwped-label {
222
319
  font-size: 12px;
223
- color: var(--hwped-muted);
320
+ font-weight: 600;
321
+ letter-spacing: 0.01em;
322
+ line-height: 1.35;
323
+ color: color-mix(in srgb, var(--hwped-fg) 72%, var(--hwped-bg));
224
324
  }
225
325
  .hwped-row {
226
326
  display: flex;
@@ -228,10 +328,32 @@
228
328
  gap: 6px;
229
329
  flex-wrap: wrap;
230
330
  }
331
+ .hwped-row[role=group] {
332
+ gap: 0;
333
+ flex-wrap: nowrap;
334
+ }
335
+ .hwped-row[role=group] > .hwped-btn {
336
+ flex: 1 1 0;
337
+ padding-inline: 6px;
338
+ border-radius: 0;
339
+ margin-left: -1px;
340
+ }
341
+ .hwped-row[role=group] > .hwped-btn:first-child {
342
+ margin-left: 0;
343
+ border-radius: var(--hwped-radius) 0 0 var(--hwped-radius);
344
+ }
345
+ .hwped-row[role=group] > .hwped-btn:last-child {
346
+ border-radius: 0 var(--hwped-radius) var(--hwped-radius) 0;
347
+ }
348
+ .hwped-row[role=group] > .hwped-btn:hover:not(:disabled),
349
+ .hwped-row[role=group] > .hwped-btn:focus-visible {
350
+ position: relative;
351
+ z-index: 1;
352
+ }
231
353
  .hwped-quote {
232
- border: 1px solid var(--hwped-border);
354
+ background: var(--_hwped-fill);
233
355
  border-radius: var(--hwped-radius);
234
- padding: 6px 8px;
356
+ padding: 8px 10px;
235
357
  max-height: 120px;
236
358
  overflow: auto;
237
359
  white-space: pre-wrap;
@@ -244,36 +366,47 @@
244
366
  .hwped-empty {
245
367
  margin: auto;
246
368
  text-align: center;
369
+ display: flex;
370
+ flex-direction: column;
371
+ align-items: center;
372
+ gap: 12px;
247
373
  }
248
374
  .hwped-error {
249
375
  color: var(--hwped-error);
250
376
  margin: 0;
251
- padding: 6px 10px;
252
- border-bottom: 1px solid var(--hwped-border);
377
+ padding: 8px 12px;
378
+ background: color-mix(in srgb, var(--hwped-error) 9%, var(--hwped-bg));
379
+ border-bottom: 1px solid var(--_hwped-hairline);
380
+ box-shadow: inset 3px 0 0 currentColor;
253
381
  }
254
382
  .hwped-error-kind {
255
383
  display: inline-block;
256
384
  margin-right: 8px;
257
- padding: 0 6px;
258
- border: 1px solid currentColor;
259
- border-radius: var(--hwped-radius);
385
+ padding: 0 8px;
386
+ border-radius: 999px;
387
+ background: color-mix(in srgb, currentColor 14%, transparent);
260
388
  font-size: 11px;
389
+ font-weight: 600;
390
+ letter-spacing: 0.02em;
261
391
  }
262
392
  .hwped-error-timeout {
263
393
  color: var(--hwped-warning);
394
+ background: color-mix(in srgb, var(--hwped-warning) 10%, var(--hwped-bg));
264
395
  }
265
396
  .hwped-page {
266
397
  position: relative;
267
398
  width: min(100%, 720px);
268
- border: 1px solid var(--hwped-border);
269
- border-radius: 2px;
270
- box-shadow: 0 1px 4px rgba(0, 0, 0, 0.12);
399
+ border-radius: 3px;
400
+ box-shadow:
401
+ 0 0 0 1px color-mix(in srgb, var(--hwped-fg) 8%, transparent),
402
+ 0 1px 2px rgba(0, 0, 0, 0.08),
403
+ 0 8px 24px rgba(0, 0, 0, 0.12);
271
404
  background: #ffffff;
272
405
  cursor: text;
273
406
  }
274
407
  .hwped-page:focus-visible {
275
408
  outline: 2px solid var(--hwped-accent);
276
- outline-offset: 2px;
409
+ outline-offset: 3px;
277
410
  }
278
411
  .hwped-page-svg,
279
412
  .hwped-page-img {
@@ -291,13 +424,15 @@
291
424
  left: 0;
292
425
  right: 0;
293
426
  pointer-events: none;
427
+ transition: background-color var(--_hwped-quick);
294
428
  }
295
429
  .hwped-band-selected {
296
- background: color-mix(in srgb, var(--hwped-accent) 22%, transparent);
297
- outline: 1px solid var(--hwped-accent);
430
+ background: color-mix(in srgb, var(--hwped-accent) 9%, transparent);
431
+ box-shadow: inset 3px 0 0 var(--hwped-accent), inset 0 0 0 1px color-mix(in srgb, var(--hwped-accent) 45%, transparent);
298
432
  }
299
433
  .hwped-band-pending {
300
- background: color-mix(in srgb, var(--hwped-accent) 10%, transparent);
434
+ background: color-mix(in srgb, var(--hwped-accent) 6%, transparent);
435
+ box-shadow: inset 3px 0 0 color-mix(in srgb, var(--hwped-accent) 45%, transparent);
301
436
  }
302
437
  .hwped-grid {
303
438
  border-collapse: collapse;
@@ -314,10 +449,17 @@
314
449
  border: none;
315
450
  background: none;
316
451
  color: var(--hwped-fg);
317
- padding: 4px 6px;
452
+ padding: 5px 8px;
318
453
  text-align: left;
319
454
  cursor: pointer;
320
- min-height: 24px;
455
+ min-height: 28px;
456
+ transition: background-color var(--_hwped-quick);
457
+ }
458
+ .hwped-cell:hover {
459
+ background: var(--_hwped-hover);
460
+ }
461
+ .hwped-cell:active {
462
+ background: var(--_hwped-press);
321
463
  }
322
464
  .hwped-cell-selected {
323
465
  outline: 2px solid var(--hwped-accent);
@@ -332,40 +474,48 @@
332
474
  padding: 0;
333
475
  display: flex;
334
476
  flex-direction: column;
335
- gap: 10px;
477
+ gap: 12px;
336
478
  }
337
479
  .hwped-field-item {
338
- border-bottom: 1px solid var(--hwped-border);
339
- padding-bottom: 8px;
480
+ border-bottom: 1px solid var(--_hwped-hairline);
481
+ padding-bottom: 10px;
340
482
  display: flex;
341
483
  flex-direction: column;
342
- gap: 4px;
484
+ gap: 6px;
343
485
  }
344
486
  .hwped-overlay {
345
487
  position: fixed;
346
488
  inset: 0;
347
- background: rgba(0, 0, 0, 0.4);
489
+ background: rgba(0, 0, 0, 0.32);
490
+ backdrop-filter: blur(6px) saturate(120%);
491
+ -webkit-backdrop-filter: blur(6px) saturate(120%);
348
492
  display: flex;
349
493
  align-items: center;
350
494
  justify-content: center;
351
495
  z-index: 1000;
496
+ animation: hwped-fade-in 160ms ease-out;
352
497
  }
353
498
  .hwped-dialog {
354
499
  background: var(--hwped-bg);
355
500
  color: var(--hwped-fg);
356
- border: 1px solid var(--hwped-border);
357
- border-radius: var(--hwped-radius);
501
+ border: 1px solid var(--_hwped-hairline);
502
+ border-radius: calc(var(--hwped-radius) * 2);
503
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12), 0 24px 64px rgba(0, 0, 0, 0.28);
358
504
  width: min(560px, calc(100vw - 32px));
359
505
  max-height: calc(100vh - 64px);
360
506
  overflow: auto;
361
- padding: 16px;
507
+ padding: 20px;
362
508
  display: flex;
363
509
  flex-direction: column;
364
- gap: 12px;
510
+ gap: 14px;
511
+ animation: hwped-materialize 200ms cubic-bezier(0.2, 0.8, 0.2, 1);
365
512
  }
366
513
  .hwped-dialog-title {
367
514
  margin: 0;
368
- font-size: 15px;
515
+ font-size: 17px;
516
+ font-weight: 600;
517
+ line-height: 1.3;
518
+ letter-spacing: -0.015em;
369
519
  }
370
520
  .hwped-presets {
371
521
  display: flex;
@@ -374,19 +524,82 @@
374
524
  }
375
525
  .hwped-preset {
376
526
  font: inherit;
527
+ font-weight: 500;
377
528
  border: 1px solid var(--hwped-border);
378
- border-radius: var(--hwped-radius);
529
+ border-radius: 999px;
379
530
  background: var(--hwped-bg);
380
531
  color: var(--hwped-fg);
381
- padding: 4px 10px;
532
+ min-height: 28px;
533
+ padding: 3px 12px;
382
534
  cursor: pointer;
535
+ transition:
536
+ background-color var(--_hwped-quick),
537
+ border-color var(--_hwped-quick),
538
+ transform var(--_hwped-quick);
539
+ }
540
+ .hwped-preset:hover:not(.hwped-preset-active) {
541
+ background: var(--_hwped-hover);
542
+ }
543
+ .hwped-preset:active {
544
+ transform: scale(0.97);
383
545
  }
384
546
  .hwped-preset-active {
385
547
  border-color: var(--hwped-accent);
548
+ background: color-mix(in srgb, var(--hwped-accent) 12%, var(--hwped-bg));
386
549
  color: var(--hwped-accent);
387
550
  font-weight: 600;
388
551
  }
389
552
  .hwped-dialog-actions {
390
553
  justify-content: flex-end;
554
+ padding-top: 4px;
555
+ }
556
+ @keyframes hwped-fade-in {
557
+ from {
558
+ opacity: 0;
559
+ }
560
+ }
561
+ @keyframes hwped-materialize {
562
+ from {
563
+ opacity: 0;
564
+ transform: scale(0.98);
565
+ }
566
+ }
567
+ @media (prefers-reduced-motion: reduce) {
568
+ .hwped *,
569
+ .hwped *::before,
570
+ .hwped *::after {
571
+ transition-duration: 0ms !important;
572
+ }
573
+ .hwped-btn:active:not(:disabled),
574
+ .hwped-tab:active,
575
+ .hwped-preset:active {
576
+ transform: none;
577
+ }
578
+ .hwped-overlay,
579
+ .hwped-dialog {
580
+ animation: none;
581
+ }
582
+ }
583
+ @media (prefers-reduced-transparency: reduce) {
584
+ .hwped-overlay {
585
+ background: rgba(0, 0, 0, 0.55);
586
+ backdrop-filter: none;
587
+ -webkit-backdrop-filter: none;
588
+ }
589
+ }
590
+ @media (prefers-contrast: more) {
591
+ .hwped {
592
+ --_hwped-hairline: var(--hwped-fg);
593
+ }
594
+ .hwped-btn,
595
+ .hwped-input,
596
+ .hwped-textarea,
597
+ .hwped-preset,
598
+ .hwped-grid td {
599
+ border-color: var(--hwped-fg);
600
+ }
601
+ .hwped-tabs {
602
+ box-shadow: inset 0 0 0 1px var(--hwped-fg);
603
+ }
391
604
  }
392
605
  /*# sourceMappingURL=index.css.map */
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/theme.css","../src/editor.css"],"sourcesContent":["/**\n * Theme contract for @hwp-editor/react. Hosts theme the editor ONLY by\n * overriding these variables on the editor root or any ancestor:\n *\n * --hwped-bg surface background\n * --hwped-fg primary text\n * --hwped-muted secondary text / disabled\n * --hwped-accent primary actions, selection\n * --hwped-border hairline borders\n * --hwped-error destructive / error text and badges\n * --hwped-warning transient warning (timeout badge only)\n * --hwped-success success badge\n * --hwped-radius corner radius\n * --hwped-font font stack (default: Pretendard -> system)\n *\n * Defaults below include a prefers-color-scheme dark fallback.\n */\n\n.hwped {\n --hwped-bg: #ffffff;\n --hwped-fg: #1a1d21;\n --hwped-muted: #6b7280;\n --hwped-accent: #1f5fbf;\n --hwped-border: #d7dbe0;\n --hwped-error: #b91c1c;\n --hwped-warning: #a16207;\n --hwped-success: #15803d;\n --hwped-radius: 6px;\n --hwped-font:\n \"Pretendard\", \"Pretendard Variable\", \"Malgun Gothic\", \"맑은 고딕\",\n -apple-system, \"Segoe UI\", Roboto, \"Noto Sans KR\", sans-serif;\n}\n\n@media (prefers-color-scheme: dark) {\n .hwped {\n --hwped-bg: #17191d;\n --hwped-fg: #e5e7eb;\n --hwped-muted: #9ca3af;\n --hwped-accent: #5b8def;\n --hwped-border: #33373f;\n /* Lifted for >= 4.5:1 against --hwped-bg at 11-13px. */\n --hwped-error: #f87171;\n --hwped-warning: #fbbf24;\n --hwped-success: #4ade80;\n }\n}\n","/**\n * Scoped stylesheet for @hwp-editor/react. Every class carries the `hwped`\n * prefix; the root element gets `.hwped.hwped-root`. No global selectors,\n * no component-kit assumptions.\n */\n\n.hwped {\n background: var(--hwped-bg);\n color: var(--hwped-fg);\n font-family: var(--hwped-font);\n font-size: 13px;\n line-height: 1.5;\n}\n\n.hwped *,\n.hwped *::before,\n.hwped *::after {\n box-sizing: border-box;\n}\n\n.hwped-root {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 320px;\n border: 1px solid var(--hwped-border);\n border-radius: var(--hwped-radius);\n overflow: hidden;\n}\n\n/* ---- toolbar ---- */\n\n.hwped-toolbar {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 6px 10px;\n border-bottom: 1px solid var(--hwped-border);\n flex: 0 0 auto;\n}\n\n.hwped-title {\n font-weight: 600;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n max-width: 40%;\n}\n\n.hwped-spacer {\n flex: 1 1 auto;\n}\n\n/* The title and this notice are the only toolbar items that may shrink: a\n long engine reason truncates here (the full text stays reachable via the\n element's title attribute) instead of being distributed across the badge,\n count and buttons, which would collapse them to min-content and stack the\n row. That is why every sibling below carries `flex: 0 0 auto` (G-03-1). */\n.hwped-notice {\n color: var(--hwped-muted);\n border: 1px solid var(--hwped-border);\n border-radius: var(--hwped-radius);\n padding: 1px 8px;\n font-size: 12px;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n flex: 0 1 auto;\n}\n\n.hwped-badge {\n border-radius: var(--hwped-radius);\n padding: 1px 8px;\n font-size: 12px;\n border: 1px solid var(--hwped-border);\n flex: 0 0 auto;\n}\n\n.hwped-badge-ok {\n color: var(--hwped-success);\n border-color: var(--hwped-success);\n}\n\n.hwped-badge-err {\n color: var(--hwped-error);\n border-color: var(--hwped-error);\n}\n\n.hwped-count {\n color: var(--hwped-muted);\n font-size: 12px;\n flex: 0 0 auto;\n}\n\n/* ---- buttons / inputs ---- */\n\n.hwped-btn {\n font: inherit;\n color: var(--hwped-fg);\n background: var(--hwped-bg);\n border: 1px solid var(--hwped-border);\n border-radius: var(--hwped-radius);\n padding: 3px 10px;\n cursor: pointer;\n}\n\n.hwped-btn:hover:not(:disabled) {\n border-color: var(--hwped-accent);\n}\n\n.hwped-btn:disabled {\n color: var(--hwped-muted);\n cursor: not-allowed;\n opacity: 0.6;\n}\n\n.hwped-btn-primary {\n background: var(--hwped-accent);\n border-color: var(--hwped-accent);\n color: #ffffff;\n}\n\n.hwped-btn-danger:hover:not(:disabled) {\n border-color: var(--hwped-error);\n color: var(--hwped-error);\n}\n\n.hwped-btn-link {\n border: none;\n padding: 0;\n color: var(--hwped-accent);\n text-decoration: underline;\n}\n\n/* Scoped to direct toolbar children on purpose: `.hwped-btn` is reused by\n SegmentInspector, TableGrid, FieldsPanel, the compose dialog actions and\n the empty-state button, where non-shrinkable buttons would trade this bug\n for horizontal overflow in those narrow rows. */\n.hwped-toolbar > .hwped-btn {\n flex: 0 0 auto;\n}\n\n.hwped-input,\n.hwped-textarea {\n font: inherit;\n color: var(--hwped-fg);\n background: var(--hwped-bg);\n border: 1px solid var(--hwped-border);\n border-radius: var(--hwped-radius);\n padding: 4px 8px;\n width: 100%;\n}\n\n.hwped-input:focus,\n.hwped-textarea:focus,\n.hwped-btn:focus-visible {\n outline: 2px solid var(--hwped-accent);\n outline-offset: 1px;\n}\n\n.hwped-input-narrow {\n width: 96px;\n flex: 0 0 auto;\n}\n\n.hwped-check {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n}\n\n/* ---- layout ---- */\n\n.hwped-main {\n display: flex;\n flex: 1 1 auto;\n min-height: 0;\n}\n\n.hwped-canvas {\n flex: 1 1 auto;\n overflow: auto;\n padding: 16px;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 16px;\n}\n\n.hwped-side {\n flex: 0 0 300px;\n border-left: 1px solid var(--hwped-border);\n display: flex;\n flex-direction: column;\n min-height: 0;\n}\n\n.hwped-tabs {\n display: flex;\n border-bottom: 1px solid var(--hwped-border);\n flex: 0 0 auto;\n}\n\n.hwped-tab {\n font: inherit;\n flex: 1 1 0;\n padding: 6px 0;\n background: none;\n border: none;\n border-bottom: 2px solid transparent;\n color: var(--hwped-muted);\n cursor: pointer;\n}\n\n.hwped-tab-active {\n color: var(--hwped-fg);\n border-bottom-color: var(--hwped-accent);\n font-weight: 600;\n}\n\n.hwped-panel {\n padding: 10px;\n overflow: auto;\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.hwped-field {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.hwped-label {\n font-size: 12px;\n color: var(--hwped-muted);\n}\n\n.hwped-row {\n display: flex;\n align-items: center;\n gap: 6px;\n flex-wrap: wrap;\n}\n\n.hwped-quote {\n border: 1px solid var(--hwped-border);\n border-radius: var(--hwped-radius);\n padding: 6px 8px;\n max-height: 120px;\n overflow: auto;\n white-space: pre-wrap;\n word-break: break-word;\n}\n\n.hwped-hint,\n.hwped-empty {\n color: var(--hwped-muted);\n}\n\n.hwped-empty {\n margin: auto;\n text-align: center;\n}\n\n.hwped-error {\n color: var(--hwped-error);\n margin: 0;\n padding: 6px 10px;\n border-bottom: 1px solid var(--hwped-border);\n}\n\n.hwped-error-kind {\n display: inline-block;\n margin-right: 8px;\n padding: 0 6px;\n border: 1px solid currentColor;\n border-radius: var(--hwped-radius);\n font-size: 11px;\n}\n\n/* timeout is transient (retry may succeed); unavailable/protected are not. */\n.hwped-error-timeout {\n color: var(--hwped-warning);\n}\n\n/* ---- page canvas ---- */\n\n.hwped-page {\n position: relative;\n width: min(100%, 720px);\n border: 1px solid var(--hwped-border);\n border-radius: 2px;\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.12);\n background: #ffffff;\n cursor: text;\n}\n\n.hwped-page:focus-visible {\n outline: 2px solid var(--hwped-accent);\n outline-offset: 2px;\n}\n\n.hwped-page-svg,\n.hwped-page-img {\n display: block;\n width: 100%;\n height: 100%;\n}\n\n.hwped-page-svg > svg {\n display: block;\n width: 100%;\n height: auto;\n}\n\n.hwped-band {\n position: absolute;\n left: 0;\n right: 0;\n pointer-events: none;\n}\n\n.hwped-band-selected {\n background: color-mix(in srgb, var(--hwped-accent) 22%, transparent);\n outline: 1px solid var(--hwped-accent);\n}\n\n.hwped-band-pending {\n background: color-mix(in srgb, var(--hwped-accent) 10%, transparent);\n}\n\n/* ---- table grid ---- */\n\n.hwped-grid {\n border-collapse: collapse;\n width: 100%;\n}\n\n.hwped-grid td {\n border: 1px solid var(--hwped-border);\n padding: 0;\n}\n\n.hwped-cell {\n font: inherit;\n display: block;\n width: 100%;\n border: none;\n background: none;\n color: var(--hwped-fg);\n padding: 4px 6px;\n text-align: left;\n cursor: pointer;\n min-height: 24px;\n}\n\n.hwped-cell-selected {\n outline: 2px solid var(--hwped-accent);\n outline-offset: -2px;\n}\n\n.hwped-cell-anchor {\n background: color-mix(in srgb, var(--hwped-accent) 14%, transparent);\n}\n\n/* ---- fields ---- */\n\n.hwped-fields {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n gap: 10px;\n}\n\n.hwped-field-item {\n border-bottom: 1px solid var(--hwped-border);\n padding-bottom: 8px;\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n/* ---- compose dialog ---- */\n\n.hwped-overlay {\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.4);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n}\n\n.hwped-dialog {\n background: var(--hwped-bg);\n color: var(--hwped-fg);\n border: 1px solid var(--hwped-border);\n border-radius: var(--hwped-radius);\n width: min(560px, calc(100vw - 32px));\n max-height: calc(100vh - 64px);\n overflow: auto;\n padding: 16px;\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.hwped-dialog-title {\n margin: 0;\n font-size: 15px;\n}\n\n.hwped-presets {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n}\n\n.hwped-preset {\n font: inherit;\n border: 1px solid var(--hwped-border);\n border-radius: var(--hwped-radius);\n background: var(--hwped-bg);\n color: var(--hwped-fg);\n padding: 4px 10px;\n cursor: pointer;\n}\n\n.hwped-preset-active {\n border-color: var(--hwped-accent);\n color: var(--hwped-accent);\n font-weight: 600;\n}\n\n.hwped-dialog-actions {\n justify-content: flex-end;\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/theme.css","../src/editor.css"],"sourcesContent":["/**\n * Theme contract for @hwp-editor/react. Hosts theme the editor ONLY by\n * overriding these variables on the editor root or any ancestor:\n *\n * --hwped-bg surface background\n * --hwped-fg primary text\n * --hwped-muted secondary text / disabled\n * --hwped-accent primary actions, selection\n * --hwped-border hairline borders\n * --hwped-error destructive / error text and badges\n * --hwped-warning transient warning (timeout badge only)\n * --hwped-success success badge\n * --hwped-radius corner radius\n * --hwped-font font stack (default: Pretendard -> system)\n *\n * Defaults below include a prefers-color-scheme dark fallback.\n */\n\n.hwped {\n --hwped-bg: #ffffff;\n --hwped-fg: #1a1d21;\n --hwped-muted: #6b7280;\n --hwped-accent: #1f5fbf;\n --hwped-border: #d7dbe0;\n --hwped-error: #b91c1c;\n --hwped-warning: #a16207;\n --hwped-success: #15803d;\n --hwped-radius: 6px;\n --hwped-font:\n \"Pretendard\", \"Pretendard Variable\", \"Malgun Gothic\", \"맑은 고딕\",\n -apple-system, \"Segoe UI\", Roboto, \"Noto Sans KR\", sans-serif;\n}\n\n@media (prefers-color-scheme: dark) {\n .hwped {\n --hwped-bg: #17191d;\n --hwped-fg: #e5e7eb;\n --hwped-muted: #9ca3af;\n --hwped-accent: #5b8def;\n --hwped-border: #33373f;\n /* Lifted for >= 4.5:1 against --hwped-bg at 11-13px. */\n --hwped-error: #f87171;\n --hwped-warning: #fbbf24;\n --hwped-success: #4ade80;\n }\n}\n","/**\n * Scoped stylesheet for @hwp-editor/react. Every class carries the `hwped`\n * prefix; the root element gets `.hwped.hwped-root`. No global selectors,\n * no component-kit assumptions.\n *\n * Design notes (HIG-derived, #34): depth comes from tone and shadow rather\n * than extra lines; every control answers on press, not on release; status\n * is tinted by kind; motion is short, and dropped under reduced motion.\n *\n * Every tone below is DERIVED from the public --hwped-* tokens with\n * color-mix, so a host that maps those tokens (light or dark) gets the whole\n * palette. The --_hwped-* names are private and not part of the contract.\n */\n\n.hwped {\n --_hwped-desk: color-mix(in srgb, var(--hwped-fg) 5%, var(--hwped-bg));\n --_hwped-fill: color-mix(in srgb, var(--hwped-fg) 7%, var(--hwped-bg));\n --_hwped-hover: color-mix(in srgb, var(--hwped-accent) 9%, var(--hwped-bg));\n --_hwped-press: color-mix(in srgb, var(--hwped-accent) 16%, var(--hwped-bg));\n --_hwped-hairline: color-mix(in srgb, var(--hwped-border) 75%, transparent);\n --_hwped-ring: 0 0 0 3px color-mix(in srgb, var(--hwped-accent) 35%, transparent);\n --_hwped-quick: 100ms ease-out;\n\n background: var(--hwped-bg);\n color: var(--hwped-fg);\n font-family: var(--hwped-font);\n font-size: 13px;\n line-height: 1.5;\n -webkit-font-smoothing: antialiased;\n}\n\n.hwped *,\n.hwped *::before,\n.hwped *::after {\n box-sizing: border-box;\n}\n\n.hwped-root {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 320px;\n border: 1px solid var(--hwped-border);\n border-radius: var(--hwped-radius);\n overflow: hidden;\n}\n\n/* ---- toolbar ---- */\n\n.hwped-toolbar {\n display: flex;\n align-items: center;\n gap: 8px;\n min-height: 44px;\n padding: 6px 12px;\n border-bottom: 1px solid var(--_hwped-hairline);\n background: var(--hwped-bg);\n flex: 0 0 auto;\n position: relative;\n z-index: 1;\n}\n\n.hwped-title {\n font-weight: 600;\n letter-spacing: -0.01em;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n max-width: 40%;\n}\n\n.hwped-spacer {\n flex: 1 1 auto;\n}\n\n/* The title and this notice are the only toolbar items that may shrink: a\n long engine reason truncates here (the full text stays reachable via the\n element's title attribute) instead of being distributed across the badge,\n count and buttons, which would collapse them to min-content and stack the\n row. That is why every sibling below carries `flex: 0 0 auto` (G-03-1). */\n.hwped-notice {\n color: var(--hwped-muted);\n background: var(--_hwped-fill);\n border-radius: 999px;\n padding: 2px 10px;\n font-size: 12px;\n letter-spacing: 0.01em;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n flex: 0 1 auto;\n}\n\n/* Status reads by kind, not by outline: a tinted pill in the kind's color. */\n.hwped-badge {\n border-radius: 999px;\n padding: 2px 10px;\n font-size: 12px;\n font-weight: 600;\n letter-spacing: 0.01em;\n border: 1px solid transparent;\n background: var(--_hwped-fill);\n flex: 0 0 auto;\n}\n\n.hwped-badge-ok {\n color: var(--hwped-success);\n background: color-mix(in srgb, var(--hwped-success) 14%, transparent);\n}\n\n.hwped-badge-err {\n color: var(--hwped-error);\n background: color-mix(in srgb, var(--hwped-error) 14%, transparent);\n}\n\n.hwped-count {\n color: var(--hwped-muted);\n font-size: 12px;\n letter-spacing: 0.01em;\n font-variant-numeric: tabular-nums;\n flex: 0 0 auto;\n}\n\n/* ---- buttons / inputs ---- */\n\n.hwped-btn {\n font: inherit;\n font-weight: 500;\n color: var(--hwped-fg);\n background: var(--hwped-bg);\n border: 1px solid var(--hwped-border);\n border-radius: var(--hwped-radius);\n min-height: 28px;\n padding: 3px 12px;\n cursor: pointer;\n transition:\n background-color var(--_hwped-quick),\n border-color var(--_hwped-quick),\n transform var(--_hwped-quick);\n}\n\n.hwped-btn:hover:not(:disabled) {\n background: var(--_hwped-hover);\n border-color: color-mix(in srgb, var(--hwped-accent) 55%, var(--hwped-border));\n}\n\n/* Feedback on press, instantly - never only on release. */\n.hwped-btn:active:not(:disabled) {\n background: var(--_hwped-press);\n transform: scale(0.97);\n}\n\n.hwped-btn:disabled {\n color: var(--hwped-muted);\n background: transparent;\n border-color: var(--_hwped-hairline);\n cursor: not-allowed;\n opacity: 0.55;\n}\n\n.hwped-btn-primary {\n background: var(--hwped-accent);\n border-color: var(--hwped-accent);\n color: #ffffff;\n font-weight: 600;\n}\n\n.hwped-btn-primary:hover:not(:disabled) {\n background: color-mix(in srgb, var(--hwped-accent) 88%, #000000);\n border-color: color-mix(in srgb, var(--hwped-accent) 88%, #000000);\n}\n\n.hwped-btn-primary:active:not(:disabled) {\n background: color-mix(in srgb, var(--hwped-accent) 78%, #000000);\n}\n\n/* A disabled primary keeps a trace of its accent, but must not read as live. */\n.hwped-btn-primary:disabled {\n color: var(--hwped-muted);\n background: color-mix(in srgb, var(--hwped-accent) 14%, var(--hwped-bg));\n border-color: transparent;\n opacity: 1;\n}\n\n/* Destructive reads as destructive at rest, not only on hover. */\n.hwped-btn-danger {\n color: var(--hwped-error);\n}\n\n.hwped-btn-danger:hover:not(:disabled) {\n border-color: var(--hwped-error);\n color: var(--hwped-error);\n background: color-mix(in srgb, var(--hwped-error) 9%, var(--hwped-bg));\n}\n\n.hwped-btn-link {\n border: none;\n background: none;\n min-height: 0;\n padding: 0;\n color: var(--hwped-accent);\n text-decoration: underline;\n text-underline-offset: 2px;\n}\n\n.hwped-btn-link:hover:not(:disabled) {\n background: none;\n}\n\n/* Scoped to direct toolbar children on purpose: `.hwped-btn` is reused by\n SegmentInspector, TableGrid, FieldsPanel, the compose dialog actions and\n the empty-state button, where non-shrinkable buttons would trade this bug\n for horizontal overflow in those narrow rows. */\n.hwped-toolbar > .hwped-btn {\n flex: 0 0 auto;\n}\n\n.hwped-input,\n.hwped-textarea {\n font: inherit;\n color: var(--hwped-fg);\n background: var(--hwped-bg);\n border: 1px solid var(--hwped-border);\n border-radius: var(--hwped-radius);\n min-height: 28px;\n padding: 4px 9px;\n width: 100%;\n transition:\n border-color var(--_hwped-quick),\n box-shadow var(--_hwped-quick);\n}\n\n.hwped-input::placeholder,\n.hwped-textarea::placeholder {\n color: var(--hwped-muted);\n opacity: 0.8;\n}\n\n.hwped-input:hover:not(:disabled),\n.hwped-textarea:hover:not(:disabled) {\n border-color: color-mix(in srgb, var(--hwped-fg) 30%, var(--hwped-border));\n}\n\n/* One focus treatment everywhere: accent edge plus a soft ring. */\n.hwped-input:focus,\n.hwped-textarea:focus {\n outline: none;\n border-color: var(--hwped-accent);\n box-shadow: var(--_hwped-ring);\n}\n\n.hwped-btn:focus-visible,\n.hwped-tab:focus-visible,\n.hwped-preset:focus-visible,\n.hwped-cell:focus-visible {\n outline: none;\n box-shadow: var(--_hwped-ring);\n}\n\n.hwped-input-narrow {\n width: 96px;\n flex: 0 0 auto;\n}\n\n.hwped-check {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n cursor: pointer;\n}\n\n.hwped-check input {\n accent-color: var(--hwped-accent);\n}\n\n/* ---- layout ---- */\n\n.hwped-main {\n display: flex;\n flex: 1 1 auto;\n min-height: 0;\n}\n\n/* The desk: a tone below the chrome, so the page reads as a sheet on it. */\n.hwped-canvas {\n flex: 1 1 auto;\n overflow: auto;\n padding: 24px;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 24px;\n background: var(--_hwped-desk);\n}\n\n.hwped-side {\n flex: 0 0 300px;\n border-left: 1px solid var(--_hwped-hairline);\n background: var(--hwped-bg);\n display: flex;\n flex-direction: column;\n min-height: 0;\n}\n\n/* Tabs as a segmented control: a recessed track, the active segment raised. */\n.hwped-tabs {\n display: flex;\n gap: 2px;\n margin: 10px 12px 2px;\n padding: 3px;\n background: var(--_hwped-fill);\n border-radius: calc(var(--hwped-radius) + 2px);\n flex: 0 0 auto;\n}\n\n.hwped-tab {\n font: inherit;\n font-weight: 500;\n flex: 1 1 0;\n min-height: 26px;\n padding: 3px 0;\n background: none;\n border: none;\n border-radius: var(--hwped-radius);\n color: var(--hwped-muted);\n cursor: pointer;\n transition:\n background-color var(--_hwped-quick),\n color var(--_hwped-quick),\n transform var(--_hwped-quick);\n}\n\n.hwped-tab:hover:not(.hwped-tab-active) {\n color: var(--hwped-fg);\n}\n\n.hwped-tab:active {\n transform: scale(0.97);\n}\n\n.hwped-tab-active {\n color: var(--hwped-fg);\n background: var(--hwped-bg);\n font-weight: 600;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 0 0 0.5px rgba(0, 0, 0, 0.06);\n}\n\n.hwped-panel {\n padding: 12px;\n overflow: auto;\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n\n.hwped-field {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.hwped-label {\n font-size: 12px;\n font-weight: 600;\n letter-spacing: 0.01em;\n line-height: 1.35;\n color: color-mix(in srgb, var(--hwped-fg) 72%, var(--hwped-bg));\n}\n\n.hwped-row {\n display: flex;\n align-items: center;\n gap: 6px;\n flex-wrap: wrap;\n}\n\n/* A role=\"group\" row of peer actions (alignment) reads as one joined control. */\n.hwped-row[role=\"group\"] {\n gap: 0;\n flex-wrap: nowrap;\n}\n\n.hwped-row[role=\"group\"] > .hwped-btn {\n flex: 1 1 0;\n padding-inline: 6px;\n border-radius: 0;\n margin-left: -1px;\n}\n\n.hwped-row[role=\"group\"] > .hwped-btn:first-child {\n margin-left: 0;\n border-radius: var(--hwped-radius) 0 0 var(--hwped-radius);\n}\n\n.hwped-row[role=\"group\"] > .hwped-btn:last-child {\n border-radius: 0 var(--hwped-radius) var(--hwped-radius) 0;\n}\n\n.hwped-row[role=\"group\"] > .hwped-btn:hover:not(:disabled),\n.hwped-row[role=\"group\"] > .hwped-btn:focus-visible {\n position: relative;\n z-index: 1;\n}\n\n.hwped-quote {\n background: var(--_hwped-fill);\n border-radius: var(--hwped-radius);\n padding: 8px 10px;\n max-height: 120px;\n overflow: auto;\n white-space: pre-wrap;\n word-break: break-word;\n}\n\n.hwped-hint,\n.hwped-empty {\n color: var(--hwped-muted);\n}\n\n.hwped-empty {\n margin: auto;\n text-align: center;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 12px;\n}\n\n/* An error is a band in the kind's tint with a leading bar, not bare red text. */\n.hwped-error {\n color: var(--hwped-error);\n margin: 0;\n padding: 8px 12px;\n background: color-mix(in srgb, var(--hwped-error) 9%, var(--hwped-bg));\n border-bottom: 1px solid var(--_hwped-hairline);\n box-shadow: inset 3px 0 0 currentColor;\n}\n\n.hwped-error-kind {\n display: inline-block;\n margin-right: 8px;\n padding: 0 8px;\n border-radius: 999px;\n background: color-mix(in srgb, currentColor 14%, transparent);\n font-size: 11px;\n font-weight: 600;\n letter-spacing: 0.02em;\n}\n\n/* timeout is transient (retry may succeed); unavailable/protected are not. */\n.hwped-error-timeout {\n color: var(--hwped-warning);\n background: color-mix(in srgb, var(--hwped-warning) 10%, var(--hwped-bg));\n}\n\n/* ---- page canvas ---- */\n\n/* Paper on the desk: layered shadow, the larger layer giving it thickness. */\n.hwped-page {\n position: relative;\n width: min(100%, 720px);\n border-radius: 3px;\n box-shadow:\n 0 0 0 1px color-mix(in srgb, var(--hwped-fg) 8%, transparent),\n 0 1px 2px rgba(0, 0, 0, 0.08),\n 0 8px 24px rgba(0, 0, 0, 0.12);\n background: #ffffff;\n cursor: text;\n}\n\n.hwped-page:focus-visible {\n outline: 2px solid var(--hwped-accent);\n outline-offset: 3px;\n}\n\n.hwped-page-svg,\n.hwped-page-img {\n display: block;\n width: 100%;\n height: 100%;\n}\n\n.hwped-page-svg > svg {\n display: block;\n width: 100%;\n height: auto;\n}\n\n.hwped-band {\n position: absolute;\n left: 0;\n right: 0;\n pointer-events: none;\n transition: background-color var(--_hwped-quick);\n}\n\n/* Mark the selection without covering it: a light wash and an inset rule. */\n.hwped-band-selected {\n background: color-mix(in srgb, var(--hwped-accent) 9%, transparent);\n box-shadow:\n inset 3px 0 0 var(--hwped-accent),\n inset 0 0 0 1px color-mix(in srgb, var(--hwped-accent) 45%, transparent);\n}\n\n.hwped-band-pending {\n background: color-mix(in srgb, var(--hwped-accent) 6%, transparent);\n box-shadow: inset 3px 0 0 color-mix(in srgb, var(--hwped-accent) 45%, transparent);\n}\n\n/* ---- table grid ---- */\n\n.hwped-grid {\n border-collapse: collapse;\n width: 100%;\n}\n\n.hwped-grid td {\n border: 1px solid var(--hwped-border);\n padding: 0;\n}\n\n.hwped-cell {\n font: inherit;\n display: block;\n width: 100%;\n border: none;\n background: none;\n color: var(--hwped-fg);\n padding: 5px 8px;\n text-align: left;\n cursor: pointer;\n min-height: 28px;\n transition: background-color var(--_hwped-quick);\n}\n\n.hwped-cell:hover {\n background: var(--_hwped-hover);\n}\n\n.hwped-cell:active {\n background: var(--_hwped-press);\n}\n\n.hwped-cell-selected {\n outline: 2px solid var(--hwped-accent);\n outline-offset: -2px;\n}\n\n.hwped-cell-anchor {\n background: color-mix(in srgb, var(--hwped-accent) 14%, transparent);\n}\n\n/* ---- fields ---- */\n\n.hwped-fields {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.hwped-field-item {\n border-bottom: 1px solid var(--_hwped-hairline);\n padding-bottom: 10px;\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n/* ---- compose dialog ---- */\n\n/* Dim to focus: a modal task gets a scrim that pushes the editor back. */\n.hwped-overlay {\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.32);\n backdrop-filter: blur(6px) saturate(120%);\n -webkit-backdrop-filter: blur(6px) saturate(120%);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n animation: hwped-fade-in 160ms ease-out;\n}\n\n.hwped-dialog {\n background: var(--hwped-bg);\n color: var(--hwped-fg);\n border: 1px solid var(--_hwped-hairline);\n border-radius: calc(var(--hwped-radius) * 2);\n box-shadow:\n 0 2px 8px rgba(0, 0, 0, 0.12),\n 0 24px 64px rgba(0, 0, 0, 0.28);\n width: min(560px, calc(100vw - 32px));\n max-height: calc(100vh - 64px);\n overflow: auto;\n padding: 20px;\n display: flex;\n flex-direction: column;\n gap: 14px;\n animation: hwped-materialize 200ms cubic-bezier(0.2, 0.8, 0.2, 1);\n}\n\n.hwped-dialog-title {\n margin: 0;\n font-size: 17px;\n font-weight: 600;\n line-height: 1.3;\n letter-spacing: -0.015em;\n}\n\n.hwped-presets {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n}\n\n.hwped-preset {\n font: inherit;\n font-weight: 500;\n border: 1px solid var(--hwped-border);\n border-radius: 999px;\n background: var(--hwped-bg);\n color: var(--hwped-fg);\n min-height: 28px;\n padding: 3px 12px;\n cursor: pointer;\n transition:\n background-color var(--_hwped-quick),\n border-color var(--_hwped-quick),\n transform var(--_hwped-quick);\n}\n\n.hwped-preset:hover:not(.hwped-preset-active) {\n background: var(--_hwped-hover);\n}\n\n.hwped-preset:active {\n transform: scale(0.97);\n}\n\n.hwped-preset-active {\n border-color: var(--hwped-accent);\n background: color-mix(in srgb, var(--hwped-accent) 12%, var(--hwped-bg));\n color: var(--hwped-accent);\n font-weight: 600;\n}\n\n.hwped-dialog-actions {\n justify-content: flex-end;\n padding-top: 4px;\n}\n\n@keyframes hwped-fade-in {\n from {\n opacity: 0;\n }\n}\n\n/* Materialize, don't just fade: the surface arrives with a slight scale. */\n@keyframes hwped-materialize {\n from {\n opacity: 0;\n transform: scale(0.98);\n }\n}\n\n/* ---- accessibility preferences ---- */\n\n@media (prefers-reduced-motion: reduce) {\n .hwped *,\n .hwped *::before,\n .hwped *::after {\n transition-duration: 0ms !important;\n }\n\n .hwped-btn:active:not(:disabled),\n .hwped-tab:active,\n .hwped-preset:active {\n transform: none;\n }\n\n .hwped-overlay,\n .hwped-dialog {\n animation: none;\n }\n}\n\n@media (prefers-reduced-transparency: reduce) {\n .hwped-overlay {\n background: rgba(0, 0, 0, 0.55);\n backdrop-filter: none;\n -webkit-backdrop-filter: none;\n }\n}\n\n@media (prefers-contrast: more) {\n .hwped {\n --_hwped-hairline: var(--hwped-fg);\n }\n\n .hwped-btn,\n .hwped-input,\n .hwped-textarea,\n .hwped-preset,\n .hwped-grid td {\n border-color: var(--hwped-fg);\n }\n\n .hwped-tabs {\n box-shadow: inset 0 0 0 1px var(--hwped-fg);\n }\n}\n"],"mappings":"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","names":[]}