agentcss 0.24.2 → 0.25.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/01-tokens/README.md +1 -1
- package/01-tokens/tokens.css +67 -1
- package/01-tokens/typography.css +1 -1
- package/02-primitives/button/demo.html +8 -0
- package/02-primitives/card/README.md +15 -0
- package/02-primitives/choice/README.md +30 -0
- package/02-primitives/choice/choice.css +1 -1
- package/02-primitives/input/README.md +1 -0
- package/02-primitives/select/README.md +42 -2
- package/02-primitives/select/demo.html +11 -6
- package/02-primitives/select/select.js +184 -94
- package/02-primitives/timeline/demo.html +2 -2
- package/02-primitives/timeline/timeline.css +1 -1
- package/03-patterns/accordion/README.md +15 -0
- package/03-patterns/content/README.md +11 -0
- package/03-patterns/drawer/README.md +1 -1
- package/03-patterns/dropdown/demo.html +1 -1
- package/03-patterns/form-validation/README.md +18 -0
- package/03-patterns/form-validation/form-validation.css +12 -1
- package/03-patterns/list/README.md +11 -0
- package/03-patterns/overlay/README.md +26 -6
- package/03-patterns/overlay/overlay.css +22 -3
- package/03-patterns/overlay/overlay.js +63 -17
- package/03-patterns/states/README.md +15 -0
- package/03-patterns/states/states.css +18 -1
- package/03-patterns/tooltip/README.md +12 -0
- package/04-recipes/longform/longform.html +3 -3
- package/04-recipes/report/README.md +9 -0
- package/04-recipes/report/report.css +5 -0
- package/04-recipes/table/README.md +16 -0
- package/04-recipes/tierA-tokens.css +3 -3
- package/09-assets/README.md +18 -0
- package/09-assets/bar/bar.css +25 -10
- package/09-assets/echarts-adapter/demo.html +3 -1
- package/09-assets/echarts-adapter/echarts-adapter.js +107 -34
- package/09-assets/scientific-plot/README.md +2 -1
- package/09-assets/scientific-plot/scientific-plot.js +0 -7
- package/AGENTS.md +2 -1
- package/CHANGELOG.md +317 -18
- package/CONTRIBUTING.md +6 -5
- package/README.md +6 -2
- package/README.zh-CN.md +19 -7
- package/SECURITY.md +5 -2
- package/START-HERE.md +7 -7
- package/SUPPORT.md +86 -24
- package/ai/START-HERE.md +3 -2
- package/ai/cli.js +126 -6
- package/ai/components.json +258 -2
- package/ai/components.meta.json +257 -40
- package/ai/components.schema.json +96 -0
- package/ai/contract.schema.json +11 -0
- package/ai/pdf-pages.js +79 -0
- package/ai/pdf.js +354 -0
- package/ai/tokens.json +2 -2
- package/ai/validate.js +48 -1
- package/dist/01-tokens/tokens.css +1 -1
- package/dist/02-primitives/select/select.js +158 -71
- package/dist/03-patterns/form-validation/form-validation.css +1 -1
- package/dist/03-patterns/overlay/overlay.css +1 -1
- package/dist/03-patterns/overlay/overlay.js +40 -11
- package/dist/03-patterns/states/states.css +1 -1
- package/dist/04-recipes/report/report.css +1 -1
- package/dist/04-recipes/tierA-tokens.css +1 -1
- package/dist/09-assets/bar/bar.css +1 -1
- package/dist/09-assets/echarts-adapter/echarts-adapter.js +75 -33
- package/dist/09-assets/scientific-plot/scientific-plot.js +0 -7
- package/dist/COSTS.md +37 -37
- package/docs/ACCESSIBILITY.md +3 -3
- package/docs/FACTS.md +1 -1
- package/docs/LAYER-BASELINE.md +28 -3
- package/docs/PRINT.md +450 -0
- package/docs/RELEASE-PROCESS.md +78 -3
- package/index.html +1 -1
- package/llms-full.txt +7 -7
- package/llms.txt +5 -0
- package/package.json +6 -1
|
@@ -232,8 +232,24 @@ if (!list.id) list.id = 'select-list-' + (++uid);
|
|
|
232
232
|
|
|
233
233
|
var options = [].slice.call(list.querySelectorAll('[role="option"]'));
|
|
234
234
|
var isMulti = !!opt.multiple;
|
|
235
|
-
|
|
235
|
+
|
|
236
|
+
var values = [];
|
|
236
237
|
var activeIdx = -1;
|
|
238
|
+
var destroyed = false;
|
|
239
|
+
|
|
240
|
+
function valueOfOpt(o) { return o ? o.getAttribute('data-value') : null; }
|
|
241
|
+
function hasValue(v) { return v != null && values.indexOf(String(v)) >= 0; }
|
|
242
|
+
function seed(v) {
|
|
243
|
+
if (v == null) return;
|
|
244
|
+
var arr = Object.prototype.toString.call(v) === '[object Array]' ? v : [v];
|
|
245
|
+
var next = [];
|
|
246
|
+
for (var i = 0; i < arr.length; i++) {
|
|
247
|
+
var s = arr[i] == null ? '' : String(arr[i]);
|
|
248
|
+
if (s && next.indexOf(s) < 0) next.push(s);
|
|
249
|
+
}
|
|
250
|
+
values = isMulti ? next : next.slice(0, 1);
|
|
251
|
+
}
|
|
252
|
+
seed(opt.value);
|
|
237
253
|
|
|
238
254
|
list.setAttribute('role', 'listbox');
|
|
239
255
|
if (isMulti) list.setAttribute('aria-multiselectable', 'true');
|
|
@@ -268,38 +284,97 @@ onHit: function (i) { setActive(i, 1); },
|
|
|
268
284
|
|
|
269
285
|
function selectedIdx() {
|
|
270
286
|
for (var i = 0; i < options.length; i++) {
|
|
271
|
-
if (options[i]
|
|
287
|
+
if (hasValue(valueOfOpt(options[i]))) return i;
|
|
272
288
|
}
|
|
273
289
|
return -1;
|
|
274
290
|
}
|
|
275
291
|
function valueText() {
|
|
276
|
-
var
|
|
277
|
-
|
|
292
|
+
var texts = [];
|
|
293
|
+
for (var i = 0; i < options.length; i++) {
|
|
294
|
+
if (hasValue(valueOfOpt(options[i]))) texts.push(optText(options[i]));
|
|
278
295
|
}
|
|
296
|
+
return texts.length ? texts.join('、') : (opt.placeholder || '请选择');
|
|
297
|
+
}
|
|
298
|
+
|
|
279
299
|
function optText(o) {
|
|
300
|
+
if (!o) return '';
|
|
280
301
|
var t = o.querySelector('.select__opt-text');
|
|
281
302
|
return ((t || o).textContent || '').replace(/[✓\s]/g, '').trim();
|
|
282
303
|
}
|
|
283
304
|
|
|
284
|
-
function
|
|
285
|
-
|
|
305
|
+
function value() {
|
|
306
|
+
return isMulti ? values.slice() : (values.length ? values[0] : null);
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
function syncHidden() {
|
|
310
|
+
var all = [].slice.call(root.querySelectorAll('input[type="hidden"]'));
|
|
311
|
+
var mine = [];
|
|
312
|
+
var author = [];
|
|
313
|
+
all.forEach(function (i) {
|
|
314
|
+
if (i.getAttribute('data-select-value') === '1') mine.push(i);
|
|
315
|
+
else author.push(i);
|
|
316
|
+
});
|
|
317
|
+
var name = opt.name || root.getAttribute('data-name') ||
|
|
318
|
+
(author[0] && author[0].name) || (mine[0] && mine[0].name) ||
|
|
319
|
+
root.id || '';
|
|
320
|
+
var slots = author.concat(mine);
|
|
321
|
+
var want = values.slice();
|
|
322
|
+
for (var i = 0; i < want.length; i++) {
|
|
323
|
+
var inp = slots[i];
|
|
324
|
+
if (!inp) {
|
|
325
|
+
inp = document.createElement('input');
|
|
326
|
+
inp.type = 'hidden';
|
|
327
|
+
inp.setAttribute('data-select-value', '1');
|
|
328
|
+
root.appendChild(inp);
|
|
329
|
+
slots.push(inp);
|
|
330
|
+
}
|
|
331
|
+
if (name) inp.name = name;
|
|
332
|
+
else inp.removeAttribute('name');
|
|
333
|
+
inp.value = want[i];
|
|
334
|
+
}
|
|
335
|
+
for (var j = want.length; j < slots.length; j++) {
|
|
336
|
+
var extra = slots[j];
|
|
337
|
+
if (extra.getAttribute('data-select-value') === '1') {
|
|
338
|
+
if (extra.parentNode) extra.parentNode.removeChild(extra);
|
|
339
|
+
} else {
|
|
340
|
+
extra.value = '';
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
function paint(silent) {
|
|
346
|
+
var label = valueText();
|
|
347
|
+
var empty = selectedIdx() < 0;
|
|
286
348
|
var vEl = btn.querySelector('.select__value');
|
|
287
349
|
if (vEl) {
|
|
288
|
-
vEl.textContent =
|
|
289
|
-
vEl.classList.toggle('select__value--placeholder',
|
|
350
|
+
vEl.textContent = label;
|
|
351
|
+
vEl.classList.toggle('select__value--placeholder', empty);
|
|
290
352
|
}
|
|
353
|
+
|
|
354
|
+
if (empty) btn.removeAttribute('title');
|
|
355
|
+
else btn.setAttribute('title', label);
|
|
291
356
|
options.forEach(function (o) {
|
|
292
|
-
var on = o
|
|
357
|
+
var on = hasValue(valueOfOpt(o));
|
|
293
358
|
o.setAttribute('aria-selected', on ? 'true' : 'false');
|
|
294
359
|
var ck = o.querySelector('.select__check');
|
|
295
360
|
if (ck) ck.textContent = on ? '✓' : '';
|
|
296
361
|
});
|
|
362
|
+
syncHidden();
|
|
363
|
+
if (silent) return;
|
|
364
|
+
flEmit(root, 'fl-change', { value: value(), values: values.slice(), text: label });
|
|
365
|
+
if (opt.onChange) opt.onChange(value(), label);
|
|
297
366
|
|
|
298
|
-
var
|
|
299
|
-
if (
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
if (
|
|
367
|
+
var ev = null;
|
|
368
|
+
if (typeof window.Event === 'function') {
|
|
369
|
+
try { ev = new window.Event('change', { bubbles: true }); } catch (e) { ev = null; }
|
|
370
|
+
}
|
|
371
|
+
if (!ev) {
|
|
372
|
+
try {
|
|
373
|
+
ev = document.createEvent('Event');
|
|
374
|
+
ev.initEvent('change', true, false);
|
|
375
|
+
} catch (e2) { ev = null; }
|
|
376
|
+
}
|
|
377
|
+
if (ev) root.dispatchEvent(ev);
|
|
303
378
|
}
|
|
304
379
|
|
|
305
380
|
function setActive(i, dir) {
|
|
@@ -357,93 +432,105 @@ if (opt.onClose) opt.onClose();
|
|
|
357
432
|
function commit(i) {
|
|
358
433
|
var o = options[i];
|
|
359
434
|
if (!o || o.getAttribute('aria-disabled') === 'true') return;
|
|
435
|
+
var v = valueOfOpt(o);
|
|
360
436
|
if (isMulti) {
|
|
361
437
|
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
438
|
+
var k = values.indexOf(v);
|
|
439
|
+
if (k >= 0) values.splice(k, 1);
|
|
440
|
+
else values.push(v);
|
|
441
|
+
paint();
|
|
442
|
+
return;
|
|
366
443
|
}
|
|
444
|
+
values = [v];
|
|
367
445
|
paint();
|
|
446
|
+
close(true);
|
|
368
447
|
}
|
|
369
448
|
|
|
370
|
-
|
|
449
|
+
function onBtnKey(e) {
|
|
450
|
+
if (destroyed) return;
|
|
371
451
|
var k = e.key;
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
if (k === 'ArrowDown' || k === 'ArrowUp') {
|
|
375
|
-
e.preventDefault();
|
|
376
|
-
if (list.hidden) { open(); return; }
|
|
377
|
-
var dir = k === 'ArrowDown' ? 1 : -1;
|
|
378
|
-
setActive(activeIndex() + dir, dir);
|
|
379
|
-
return;
|
|
380
|
-
}
|
|
452
|
+
var opened = !list.hidden;
|
|
453
|
+
|
|
454
|
+
if (k === 'ArrowDown' || k === 'ArrowUp' || k === 'Enter' || k === ' ' || k === 'Spacebar') {
|
|
381
455
|
e.preventDefault();
|
|
382
|
-
if (
|
|
383
|
-
|
|
456
|
+
if (!opened) {
|
|
457
|
+
open();
|
|
458
|
+
|
|
459
|
+
if (k === 'ArrowUp' && options.length) setActive(options.length - 1, -1);
|
|
384
460
|
return;
|
|
385
461
|
}
|
|
386
|
-
|
|
387
|
-
if (k === '
|
|
388
|
-
|
|
389
|
-
if (list.hidden && (k === 'Home' || k === 'End')) {
|
|
390
|
-
e.preventDefault(); open();
|
|
391
|
-
if (k === 'Home') setActive(0);
|
|
392
|
-
else setActive(options.length - 1);
|
|
462
|
+
if (k === 'ArrowDown') { setActive(activeIndex() + 1, 1); return; }
|
|
463
|
+
if (k === 'ArrowUp') { setActive(activeIndex() - 1, -1); return; }
|
|
464
|
+
if (activeIdx >= 0) commit(activeIdx);
|
|
393
465
|
return;
|
|
394
466
|
}
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
function onListKey(e) {
|
|
398
|
-
var k = e.key;
|
|
399
|
-
if (k === 'ArrowDown') { e.preventDefault(); setActive(activeIndex() + 1, 1); return; }
|
|
400
|
-
if (k === 'ArrowUp') { e.preventDefault(); setActive(activeIndex() - 1, -1); return; }
|
|
401
|
-
if (k === 'Home') { e.preventDefault(); setActive(0, 1); return; }
|
|
402
|
-
if (k === 'End') { e.preventDefault(); setActive(options.length - 1, -1); return; }
|
|
403
|
-
|
|
404
|
-
if (k === 'Tab') { close(false); return; }
|
|
405
|
-
if (k === 'Enter' || k === ' ' || k === 'Spacebar') {
|
|
467
|
+
if (k === 'Home' || k === 'End') {
|
|
406
468
|
e.preventDefault();
|
|
407
|
-
if (
|
|
469
|
+
if (!opened) open();
|
|
470
|
+
if (options.length) setActive(k === 'Home' ? 0 : options.length - 1, k === 'Home' ? 1 : -1);
|
|
408
471
|
return;
|
|
409
472
|
}
|
|
473
|
+
if (k === 'Tab') { if (opened) close(false); return; }
|
|
410
474
|
|
|
411
|
-
if (k.length === 1 && !e.ctrlKey && !e.metaKey && !e.altKey) {
|
|
475
|
+
if (k && k.length === 1 && !e.ctrlKey && !e.metaKey && !e.altKey) {
|
|
476
|
+
if (!opened) open();
|
|
412
477
|
e.preventDefault();
|
|
413
478
|
typeahead.type(k);
|
|
414
479
|
}
|
|
415
|
-
}
|
|
416
480
|
|
|
417
|
-
btn.addEventListener('keydown', function (e) {
|
|
418
|
-
|
|
419
|
-
if (list.hidden) return;
|
|
420
|
-
var k = e.key;
|
|
421
|
-
|
|
422
|
-
if (k === 'Escape' || k === 'Esc' || k === 'ArrowDown' || k === 'ArrowUp' ||
|
|
423
|
-
k === 'Home' || k === 'End' || k === 'Enter' || k === ' ' ||
|
|
424
|
-
k === 'Spacebar' || k === 'Tab') {
|
|
425
|
-
|
|
426
|
-
if (list.hidden) return;
|
|
427
|
-
onListKey(e);
|
|
428
|
-
return;
|
|
429
481
|
}
|
|
430
|
-
|
|
431
|
-
});
|
|
482
|
+
btn.addEventListener('keydown', onBtnKey);
|
|
432
483
|
|
|
433
|
-
|
|
484
|
+
function onBtnClick() {
|
|
485
|
+
if (destroyed) return;
|
|
434
486
|
if (list.hidden) open(); else close();
|
|
435
|
-
}
|
|
436
|
-
|
|
487
|
+
}
|
|
488
|
+
function onListClick(e) {
|
|
489
|
+
if (destroyed) return;
|
|
437
490
|
var o = e.target.closest ? closest(e.target, '[role="option"]') : null;
|
|
438
491
|
if (!o) return;
|
|
439
492
|
commit(options.indexOf(o));
|
|
440
|
-
}
|
|
493
|
+
}
|
|
494
|
+
btn.addEventListener('click', onBtnClick);
|
|
495
|
+
list.addEventListener('click', onListClick);
|
|
441
496
|
|
|
497
|
+
var initialValues = values.slice();
|
|
498
|
+
var form = closest(root, 'form');
|
|
499
|
+
function onFormReset() {
|
|
500
|
+
setTimeout(function () {
|
|
501
|
+
if (destroyed) return;
|
|
502
|
+
values = initialValues.slice();
|
|
442
503
|
paint();
|
|
504
|
+
}, 0);
|
|
505
|
+
}
|
|
506
|
+
if (form) form.addEventListener('reset', onFormReset);
|
|
507
|
+
|
|
508
|
+
paint(true);
|
|
509
|
+
|
|
443
510
|
return {
|
|
444
511
|
open: open, close: close,
|
|
445
|
-
get value() { return
|
|
446
|
-
set value(v) {
|
|
512
|
+
get value() { return value(); },
|
|
513
|
+
set value(v) { seed(v); paint(); },
|
|
514
|
+
get values() { return values.slice(); },
|
|
515
|
+
set values(v) { seed(v); paint(); },
|
|
516
|
+
|
|
517
|
+
destroy: function () {
|
|
518
|
+
if (destroyed) return;
|
|
519
|
+
destroyed = true;
|
|
520
|
+
btn.removeEventListener('keydown', onBtnKey);
|
|
521
|
+
btn.removeEventListener('click', onBtnClick);
|
|
522
|
+
list.removeEventListener('click', onListClick);
|
|
523
|
+
if (form) form.removeEventListener('reset', onFormReset);
|
|
524
|
+
dismiss.destroy();
|
|
525
|
+
typeahead.destroy();
|
|
526
|
+
fr.clear();
|
|
527
|
+
list.hidden = true;
|
|
528
|
+
btn.setAttribute('aria-expanded', 'false');
|
|
529
|
+
btn.removeAttribute('aria-activedescendant');
|
|
530
|
+
|
|
531
|
+
[].slice.call(root.querySelectorAll('input[type="hidden"][data-select-value="1"]'))
|
|
532
|
+
.forEach(function (i) { if (i.parentNode) i.parentNode.removeChild(i); });
|
|
533
|
+
},
|
|
447
534
|
};
|
|
448
535
|
}
|
|
449
536
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.form {display:flex;flex-direction:column;gap:var(--sp-5);}.form__row {display:flex;flex-direction:column;gap:var(--sp-5);}.form__actions {display:flex;gap:var(--sp-3);align-items:center;flex-wrap:wrap;padding-top:var(--sp-2);border-top:1px solid var(--border-decor);}.form__summary {display:inline-flex;align-items:center;flex-wrap:wrap;gap:var(--sp-2) var(--sp-3);max-width:100%;padding:var(--sp-3) var(--sp-4);background:var(--danger-bg);border-radius:var(--r-sm);font-size:var(--fs-sm);line-height:1.5;}.form__summary::before {content:"!";display:inline-grid;place-items:center;width:16px;height:16px;margin-inline-end:var(--sp-2);border-radius:50%;background:var(--danger);color:var(--text-on-accent);font-size:11px;font-weight:700;line-height:1;}.form__summary-title {margin:0;font-size:var(--fs-sm);font-weight:500;color:var(--danger);display:flex;align-items:center;gap:var(--sp-2);}.form__summary-link + .form__summary-link {margin-inline-start:var(--sp-1);}.form__summary-link {display:inline-block;color:var(--danger);font-size:var(--fs-sm);text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px;}@media (hover:hover) and (pointer:fine) {.form__summary-link:hover {color:var(--text-primary);}}.form__summary-link:focus-visible {outline:2px solid var(--danger);outline-offset:2px;border-radius:2px;}.field__error {display:none;}.field[data-dirty] .field__error {display:flex;}.form--has-summary .field__error:not(:empty) {display:flex;}.field__error:empty {display:none;}.field__error::before {content:"!";display:inline-grid;place-items:center;flex:none;width:14px;height:14px;margin-inline-end:var(--sp-1);border-radius:50%;background:var(--danger);color:var(--text-on-accent);font-size:10px;font-weight:700;line-height:1;}.form__notice {padding:var(--sp-4) var(--sp-5);background:var(--success-bg);border-radius:var(--r-sm);font-size:var(--fs-sm);color:var(--text-primary);}.field--checking .field__input::after {content:"";}.field__checking-hint {display:flex;align-items:center;gap:var(--sp-1);font-size:var(--fs-xs);color:var(--text-tertiary);}.field__checking-hint::before {content:"";width:12px;height:12px;border:2px solid var(--border-control);border-top-color:var(--accent);border-radius:50%;animation:form-spin 700ms linear infinite;}@keyframes form-spin {to {transform:rotate(360deg);}}@media (prefers-reduced-motion:reduce) {.field__checking-hint::before {animation-duration:1.2s !important;}}
|
|
1
|
+
.form {display:flex;flex-direction:column;gap:var(--sp-5);}.form__row {display:flex;flex-direction:column;gap:var(--sp-5);}.form__actions {display:flex;gap:var(--sp-3);align-items:center;flex-wrap:wrap;padding-top:var(--sp-2);border-top:1px solid var(--border-decor);}.form__summary {display:inline-flex;align-items:center;flex-wrap:wrap;gap:var(--sp-2) var(--sp-3);max-width:100%;padding:var(--sp-3) var(--sp-4);background:var(--danger-bg);border-radius:var(--r-sm);font-size:var(--fs-sm);line-height:1.5;}.form__summary::before {content:"!";display:inline-grid;place-items:center;width:16px;height:16px;margin-inline-end:var(--sp-2);border-radius:50%;background:var(--danger);color:var(--text-on-accent);font-size:11px;font-weight:700;line-height:1;}.form__summary-title {margin:0;font-size:var(--fs-sm);font-weight:500;color:var(--danger);display:flex;align-items:center;gap:var(--sp-2);}.form__summary-link + .form__summary-link {margin-inline-start:var(--sp-1);}.form__summary-link {display:inline-block;color:var(--danger);font-size:var(--fs-sm);text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px;}@media (hover:hover) and (pointer:fine) {.form__summary-link:hover {color:var(--text-primary);}}.form__summary-link:focus-visible {outline:2px solid var(--danger);outline-offset:2px;border-radius:2px;}.field .field__error {display:none;}.field[data-dirty] .field__error {display:flex;}.form--has-summary .field__error:not(:empty) {display:flex;}.field__error:empty {display:none;}.field__error::before {content:"!";display:inline-grid;place-items:center;flex:none;width:14px;height:14px;margin-inline-end:var(--sp-1);border-radius:50%;background:var(--danger);color:var(--text-on-accent);font-size:10px;font-weight:700;line-height:1;}.form__notice {padding:var(--sp-4) var(--sp-5);background:var(--success-bg);border-radius:var(--r-sm);font-size:var(--fs-sm);color:var(--text-primary);}.field--checking .field__input::after {content:"";}.field__checking-hint {display:flex;align-items:center;gap:var(--sp-1);font-size:var(--fs-xs);color:var(--text-tertiary);}.field__checking-hint::before {content:"";width:12px;height:12px;border:2px solid var(--border-control);border-top-color:var(--accent);border-radius:50%;animation:form-spin 700ms linear infinite;}@keyframes form-spin {to {transform:rotate(360deg);}}@media (prefers-reduced-motion:reduce) {.field__checking-hint::before {animation-duration:1.2s !important;}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.toast-region {position:fixed;inset-inline-end:var(--sp-5);bottom:var(--sp-5);z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--sp-2);max-width:min(380px, calc(100vw - var(--sp-5) * 2));pointer-events:none;}.toast {pointer-events:auto;display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--surface);border:1px solid var(--border-decor);border-radius:var(--r-sm);box-shadow:var(--shadow-2);font-size:var(--fs-sm);line-height:var(--lh-base);color:var(--text-primary);animation:toast-in var(--dur-base) var(--ease-out);}.toast--success {background:var(--success-bg);}.toast--error {background:var(--danger-bg);}.toast--warning {background:var(--warning-bg);}.toast__body {flex:1;min-width:0;}.toast__title {font-weight:500;margin:0 0 2px;}.toast__desc {margin:0;color:var(--text-secondary);font-size:var(--fs-xs);line-height:1.5;}.toast__close {flex:none;min-width:44px;min-height:44px;;margin:-4px -4px 0 0;display:grid;place-items:center;border:none;border-radius:var(--r-sm);background:transparent;color:var(--text-tertiary);cursor:pointer;font-size:16px;line-height:1;transition:background-color var(--dur-fast) var(--ease-out);}@media (hover:hover) and (pointer:fine) {.toast__close:hover {background:var(--surface-sunken);color:var(--text-primary);}}.toast__close:focus-visible {outline:2px solid var(--accent);outline-offset:1px;}.toast[data-state="leaving"] {animation:toast-out var(--dur-fast) var(--ease-in-out) forwards;}@keyframes toast-in {from {opacity:0;transform:translateX(var(--lift-lg));}to {opacity:1;transform:translateX(0);}}@keyframes toast-out {to {opacity:0;transform:translateX(var(--lift-lg));}}.toast__timer {position:absolute;inset-inline-start:0;bottom:0;height:2px;background:currentColor;opacity:0.25;border-radius:0 0 0 var(--r-sm);animation:toast-timer linear forwards;}@keyframes toast-timer {from {width:100%;}to {width:0%;}}.dialog-backdrop {position:fixed;inset:0;z-index:var(--z-modal);display:grid;place-items:center;padding:var(--sp-5);background:var(--scrim);animation:backdrop-in var(--dur-base) var(--ease-out);}.dialog {position:relative;width:100%;max-width:460px;max-height:calc(100vh - var(--sp-7));overflow-y:auto;background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-2);padding:var(--sp-6);animation:dialog-in var(--dur-base) var(--ease-out);}@keyframes dialog-in {from {opacity:0;transform:translateY(var(--lift-lg)) scale(0.98);}to {opacity:1;transform:translateY(0) scale(1);}}@keyframes backdrop-in {from {opacity:0;}to {opacity:1;}}.dialog__title {margin:0 0 var(--sp-2);font-size:var(--fs-lg);font-weight:500;line-height:var(--lh-tight);color:var(--text-primary);}.dialog__desc {margin:0 0 var(--sp-5);font-size:var(--fs-sm);color:var(--text-secondary);line-height:var(--lh-base);}.dialog__actions {display:flex;justify-content:flex-end;align-items:center;gap:var(--sp-3);flex-wrap:wrap;}body[data-scroll-locked] {overflow:hidden;}@media (max-width:480px) {.dialog-backdrop {place-items:end center;padding:0;}.dialog {width:100vw;max-width:100vw;box-sizing:border-box;border-radius:var(--r-lg) var(--r-lg) 0 0;padding-bottom:calc(var(--sp-6) + env(safe-area-inset-bottom, 0px));}.dialog__actions .btn {flex:1;}}@media (prefers-reduced-motion:reduce) {.toast, .toast[data-state="leaving"], .dialog, .dialog-backdrop {animation:none;}.toast__timer {animation:none;width:100%;}}
|
|
1
|
+
.toast-region {position:fixed;inset-inline-end:var(--sp-5);bottom:var(--sp-5);z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--sp-2);max-width:min(380px, calc(100vw - var(--sp-5) * 2));pointer-events:none;}.toast {pointer-events:auto;display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--surface);border:1px solid var(--border-decor);border-radius:var(--r-sm);box-shadow:var(--shadow-2);font-size:var(--fs-sm);line-height:var(--lh-base);color:var(--text-primary);animation:toast-in var(--dur-base) var(--ease-out);}.toast--success {background:var(--success-bg);}.toast--error {background:var(--danger-bg);}.toast--warning {background:var(--warning-bg);}.toast__body {flex:1;min-width:0;}.toast__title {font-weight:500;margin:0 0 2px;}.toast__desc {margin:0;color:var(--text-secondary);font-size:var(--fs-xs);line-height:1.5;}.toast__close {flex:none;min-width:44px;min-height:44px;;margin:-4px -4px 0 0;display:grid;place-items:center;border:none;border-radius:var(--r-sm);background:transparent;color:var(--text-tertiary);cursor:pointer;font-size:16px;line-height:1;transition:background-color var(--dur-fast) var(--ease-out);}@media (hover:hover) and (pointer:fine) {.toast__close:hover {background:var(--surface-sunken);color:var(--text-primary);}}.toast__close:focus-visible {outline:2px solid var(--accent);outline-offset:1px;}.toast[data-state="leaving"] {animation:toast-out var(--dur-fast) var(--ease-in-out) forwards;}@keyframes toast-in {from {opacity:0;transform:translateX(var(--lift-lg));}to {opacity:1;transform:translateX(0);}}@keyframes toast-out {to {opacity:0;transform:translateX(var(--lift-lg));}}.toast__timer {position:absolute;inset-inline-start:0;bottom:0;height:2px;background:currentColor;opacity:0.25;border-radius:0 0 0 var(--r-sm);animation:toast-timer linear forwards;}@keyframes toast-timer {from {width:100%;}to {width:0%;}}.dialog-backdrop {position:fixed;inset:0;z-index:var(--z-modal);display:grid;place-items:center;padding:var(--sp-5);background:var(--scrim);animation:backdrop-in var(--dur-base) var(--ease-out);}.dialog {position:relative;width:100%;max-width:460px;max-height:calc(100vh - var(--sp-7));overflow-y:auto;background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-2);padding:var(--sp-6);animation:dialog-in var(--dur-base) var(--ease-out);}@keyframes dialog-in {from {opacity:0;transform:translateY(var(--lift-lg)) scale(0.98);}to {opacity:1;transform:translateY(0) scale(1);}}@keyframes backdrop-in {from {opacity:0;}to {opacity:1;}}.dialog__title {margin:0 0 var(--sp-2);font-size:var(--fs-lg);font-weight:500;line-height:var(--lh-tight);color:var(--text-primary);}.dialog__desc {margin:0 0 var(--sp-5);font-size:var(--fs-sm);color:var(--text-secondary);line-height:var(--lh-base);}.dialog__actions {display:flex;justify-content:flex-end;align-items:center;gap:var(--sp-3);flex-wrap:wrap;}body[data-scroll-locked] {overflow:hidden;}@media (max-width:480px) {.dialog-backdrop {place-items:end center;padding:0;}.dialog {width:100vw;max-width:100vw;box-sizing:border-box;border-radius:var(--r-lg) var(--r-lg) 0 0;padding-bottom:calc(var(--sp-6) + env(safe-area-inset-bottom, 0px));}.dialog__actions .btn {flex:1;}}@media (prefers-reduced-motion:reduce) {.toast, .toast[data-state="leaving"], .dialog, .dialog-backdrop {animation:none;}.toast__timer {animation:none;width:100%;}}@media print {.dialog-backdrop {position:static;inset:auto;display:block;padding:0;background:none;}.dialog {max-height:none;overflow:visible;}}
|
|
@@ -61,7 +61,8 @@ function inertAcquire(node) {
|
|
|
61
61
|
for (var i = 0; i < inertRefs.length; i++) {
|
|
62
62
|
if (inertRefs[i].node === node) { inertRefs[i].count++; return; }
|
|
63
63
|
}
|
|
64
|
-
|
|
64
|
+
|
|
65
|
+
inertRefs.push({ node: node, count: 1, prev: node.inert === true });
|
|
65
66
|
node.inert = true;
|
|
66
67
|
}
|
|
67
68
|
|
|
@@ -70,7 +71,7 @@ for (var i = 0; i < inertRefs.length; i++) {
|
|
|
70
71
|
if (inertRefs[i].node !== node) continue;
|
|
71
72
|
inertRefs[i].count--;
|
|
72
73
|
if (inertRefs[i].count <= 0) {
|
|
73
|
-
node.inert =
|
|
74
|
+
node.inert = inertRefs[i].prev === true;
|
|
74
75
|
inertRefs.splice(i, 1);
|
|
75
76
|
}
|
|
76
77
|
return;
|
|
@@ -417,17 +418,43 @@ var ariaed = [];
|
|
|
417
418
|
var nodes = Array.prototype.slice.call(
|
|
418
419
|
document.body.querySelectorAll('body > *')
|
|
419
420
|
);
|
|
420
|
-
nodes.forEach(function (n) {
|
|
421
421
|
|
|
422
|
-
|
|
423
|
-
if (
|
|
424
|
-
inerted.push(n);
|
|
425
|
-
|
|
426
|
-
}
|
|
427
|
-
|
|
428
|
-
|
|
422
|
+
function isolate(n) {
|
|
423
|
+
if (!n || n === backdrop) return;
|
|
424
|
+
if (useInert) { inerted.push(n); inertAcquire(n); }
|
|
425
|
+
else { ariaed.push(n); ariaAcquire(n); }
|
|
426
|
+
}
|
|
427
|
+
nodes.forEach(isolate);
|
|
428
|
+
|
|
429
|
+
var mo = null;
|
|
430
|
+
if (typeof window.MutationObserver === 'function') {
|
|
431
|
+
mo = new window.MutationObserver(function (records) {
|
|
432
|
+
|
|
433
|
+
if (!document.documentElement.contains(backdrop)) {
|
|
434
|
+
if (mo) { mo.disconnect(); mo = null; }
|
|
435
|
+
if (closed) return;
|
|
436
|
+
closed = true;
|
|
437
|
+
inerted.forEach(inertRelease);
|
|
438
|
+
ariaed.forEach(ariaRelease);
|
|
439
|
+
inerted = [];
|
|
440
|
+
ariaed = [];
|
|
441
|
+
if (uninstallIsolation) { uninstallIsolation(); uninstallIsolation = null; }
|
|
442
|
+
unlockScroll();
|
|
443
|
+
return;
|
|
444
|
+
}
|
|
445
|
+
for (var r = 0; r < records.length; r++) {
|
|
446
|
+
var added = records[r].addedNodes;
|
|
447
|
+
for (var a = 0; a < added.length; a++) {
|
|
448
|
+
var n = added[a];
|
|
449
|
+
if (!n || n.nodeType !== 1) continue;
|
|
450
|
+
if (n.classList && n.classList.contains('dialog-backdrop')) continue;
|
|
451
|
+
if (n.inert === true || n.getAttribute('aria-hidden') === 'true') continue;
|
|
452
|
+
isolate(n);
|
|
453
|
+
}
|
|
429
454
|
}
|
|
430
455
|
});
|
|
456
|
+
mo.observe(document.body, { childList: true });
|
|
457
|
+
}
|
|
431
458
|
|
|
432
459
|
function close() {
|
|
433
460
|
if (closed) return;
|
|
@@ -445,13 +472,15 @@ for (var si = openStack.length - 1; si >= 0; si--) {
|
|
|
445
472
|
if (openStack[si] === stackEntry) { openStack.splice(si, 1); break; }
|
|
446
473
|
}
|
|
447
474
|
if (uninstallIsolation) { uninstallIsolation(); uninstallIsolation = null; }
|
|
475
|
+
if (mo) { mo.disconnect(); mo = null; }
|
|
448
476
|
|
|
449
477
|
inerted.forEach(inertRelease);
|
|
450
478
|
|
|
451
479
|
ariaed.forEach(ariaRelease);
|
|
452
480
|
unlockScroll();
|
|
453
481
|
|
|
454
|
-
fr.restore();
|
|
482
|
+
if (focusIsMine) fr.restore();
|
|
483
|
+
else fr.clear();
|
|
455
484
|
|
|
456
485
|
}
|
|
457
486
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.state {display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-2);padding:var(--sp-8) var(--sp-5);text-align:center;min-height:200px;}.state__icon {flex:none;width:48px;height:48px;margin-bottom:var(--sp-2);display:grid;place-items:center;border-radius:var(--r-pill);background:var(--surface-sunken);color:var(--text-tertiary);}.state__title {margin:0;font-size:var(--fs-md);font-weight:500;line-height:var(--lh-tight);color:var(--text-primary);}.state__desc {margin:0;max-width:42ch;font-size:var(--fs-sm);color:var(--text-secondary);line-height:var(--lh-base);}.state__action {margin-top:var(--sp-3);display:flex;gap:var(--sp-3);flex-wrap:wrap;justify-content:center;}.state--empty .state__icon {background:var(--surface-sunken);color:var(--text-tertiary);}.state--loading {gap:var(--sp-3);}.spinner {width:24px;height:24px;border:2.5px solid var(--border-control);border-top-color:var(--accent);border-radius:50%;animation:spinner-rotate 700ms linear infinite;}@keyframes spinner-rotate {to {transform:rotate(360deg);}}.skeleton {--sk-base:var(--surface-sunken);--sk-hi:var(--border-decor);background:var(--sk-base);border-radius:var(--r-sm);position:relative;overflow:hidden;}.skeleton::after {content:"";position:absolute;inset:0;background:linear-gradient(90deg, transparent 0%, var(--sk-hi) 50%, transparent 100%);transform:translateX(-100%);animation:skeleton-sweep 1.4s ease-in-out infinite;}@keyframes skeleton-sweep {to {transform:translateX(100%);}}.skeleton--text {height:1em;margin-block:0.35em;border-radius:4px;}.skeleton--title {height:1.4em;width:60%;}.skeleton--avatar {width:40px;height:40px;border-radius:var(--r-pill);}.skeleton--block {height:120px;}.skeleton--text:last-child {width:70%;}.state--error .state__icon {background:var(--danger-bg);color:var(--danger);}.state--error .state__title {color:var(--danger);}.state__detail {margin-top:var(--sp-3);font-family:var(--mono);font-size:var(--fs-xs);color:var(--text-tertiary);background:var(--surface-sunken);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);max-width:100%;overflow-x:auto;}@media (prefers-reduced-motion:reduce) {.spinner {animation-duration:1.2s !important;}.skeleton::after {animation:none;transform:none;}}
|
|
1
|
+
.state {display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-2);padding:var(--sp-8) var(--sp-5);text-align:center;min-height:200px;}.state__icon {flex:none;width:48px;height:48px;margin-bottom:var(--sp-2);display:grid;place-items:center;border-radius:var(--r-pill);background:var(--surface-sunken);color:var(--text-tertiary);}.state__title {margin:0;font-size:var(--fs-md);font-weight:500;line-height:var(--lh-tight);color:var(--text-primary);}.state__desc {margin:0;max-width:42ch;font-size:var(--fs-sm);color:var(--text-secondary);line-height:var(--lh-base);}.state__action {margin-top:var(--sp-3);display:flex;gap:var(--sp-3);flex-wrap:wrap;justify-content:center;}.state--empty .state__icon {background:var(--surface-sunken);color:var(--text-tertiary);}.state--loading {gap:var(--sp-3);}.spinner {width:24px;height:24px;border:2.5px solid var(--border-control);border-top-color:var(--accent);border-radius:50%;animation:spinner-rotate 700ms linear infinite;}@keyframes spinner-rotate {to {transform:rotate(360deg);}}.skeleton {--sk-base:var(--surface-sunken);--sk-hi:var(--border-decor);background:var(--sk-base);border-radius:var(--r-sm);position:relative;overflow:hidden;}.skeleton::after {content:"";position:absolute;inset:0;background:linear-gradient(90deg, transparent 0%, var(--sk-hi) 50%, transparent 100%);transform:translateX(-100%);}@media (prefers-reduced-motion:no-preference) {.skeleton::after {animation:skeleton-sweep 1.4s ease-in-out infinite;}}@media (prefers-reduced-motion:reduce) {.skeleton::after {animation:none;opacity:0;}}@keyframes skeleton-sweep {to {transform:translateX(100%);}}.skeleton--text {height:1em;margin-block:0.35em;border-radius:4px;}.skeleton--title {height:1.4em;width:60%;}.skeleton--avatar {width:40px;height:40px;border-radius:var(--r-pill);}.skeleton--block {height:120px;}.skeleton--text:last-child {width:70%;}.state--error .state__icon {background:var(--danger-bg);color:var(--danger);}.state--error .state__title {color:var(--danger);}.state__detail {margin-top:var(--sp-3);font-family:var(--mono);font-size:var(--fs-xs);color:var(--text-tertiary);background:var(--surface-sunken);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);max-width:100%;overflow-x:auto;}@media (prefers-reduced-motion:reduce) {.spinner {animation-duration:1.2s !important;}.skeleton::after {animation:none;transform:none;}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.rep {--rep-measure:var(--measure-prose);--rep-body-fs:var(--fs-base);--rep-title-fs:var(--fs-2xl);--rep-lead-fs:var(--fs-lg);--rep-body-lh:var(--lh-base);--rep-sec-num:'';font-family:var(--sans);color:var(--text-primary);font-size:var(--rep-body-fs);line-height:var(--rep-body-lh);max-width:100%;--measure-aside:14em;}.rep__kicker, .rep__meta, .rep__cap, .rep__source, .rep__note, .rep__risk {font-size:var(--fs-xs);color:var(--text-secondary);line-height:var(--lh-base);}.rep .rep__title {font-size:var(--rep-title-fs);line-height:var(--lh-tight);letter-spacing:-0.01em;max-width:var(--measure-title);margin:var(--sp-2) 0 0;font-weight:700;}.rep__kicker {margin:0;color:var(--text-tertiary);font-weight:600;letter-spacing:.06em;}.rep__standfirst, .rep__lede {font-size:var(--rep-lead-fs);line-height:var(--lh-loose);max-width:var(--measure-lede);color:var(--text-secondary);margin:var(--sp-3) 0 0;}.rep__meta {display:flex;flex-wrap:wrap;gap:var(--sp-1) var(--sp-3);margin:var(--sp-3) 0 0;padding:0;list-style:none;color:var(--text-tertiary);}.rep__grid {display:grid;grid-template-columns:minmax(0, 1fr);gap:var(--sp-4);margin-top:var(--sp-5);}@media (min-width:62rem) {.rep__grid {grid-template-columns:minmax(0, 1fr) minmax(0, var(--measure-aside));gap:var(--sp-6);align-items:start;}}.rep__body {max-width:none;}.rep__body p, .rep__body ul, .rep__body ol, .rep__body dl, .rep__body .rep__fig, .rep__body .table, .rep__body .kf, .rep__body .accordion, .rep__body .rep__note, .rep__body .rep__risk, .rep__body .rep__keyline {max-width:var(--rep-measure);}.rep__body .rep__fig--wide, .rep__body .rep__wide {max-width:none;}.rep__aside {color:var(--text-secondary);}.rep__sec {margin-top:var(--sp-7);}.rep__sec > :first-child {margin-top:0;}.rep h2 {font-size:var(--fs-xl);line-height:var(--lh-tight);margin:0 0 var(--sp-3);max-width:var(--measure-title);}.rep h3 {font-size:var(--fs-lg);line-height:var(--lh-tight);margin:var(--sp-5) 0 var(--sp-2);}.rep__body p {margin:0 0 var(--sp-3);}.rep__body p:last-child {margin-bottom:0;}.rep__fig {margin:var(--sp-5) 0;padding:0;}.rep__cap {margin:var(--sp-2) 0 0;}.rep__source {margin:var(--sp-2) 0 0;padding:var(--sp-2) 0 0;border-top:1px solid var(--border-decor);color:var(--text-tertiary);}.rep__source ol, .rep__source ul {margin:var(--sp-1) 0 0;padding-inline-start:1.4em;}.rep__source li {margin-bottom:var(--sp-1);}.rep__sources {margin-top:var(--sp-7);}.rep--technical {--rep-measure:var(--measure-prose);--rep-body-lh:var(--lh-loose);--rep-sec-num:counter(rep-sec, decimal) ' · ';counter-reset:rep-sec rep-fig rep-tab;}.rep--technical .rep__sec > h3::before {content:var(--rep-sec-num);counter-increment:rep-sec;color:var(--text-tertiary);font-variant-numeric:tabular-nums;}.rep--technical .rep__cap::before {content:'图 ' counter(rep-fig) ' · ';counter-increment:rep-fig;font-weight:600;color:var(--text-tertiary);font-variant-numeric:tabular-nums;}.rep--technical .rep__cap--table::before {content:'表 ' counter(rep-tab) ' · ';counter-increment:rep-tab;}.rep--magazine {--rep-measure:42em;--rep-lead-fs:var(--fs-xl);}.rep__pull {margin:var(--sp-5) 0;padding-inline-start:var(--sp-4);border-inline-start:3px solid var(--accent);font-size:var(--fs-xl);line-height:var(--lh-tight);color:var(--text-primary);max-width:var(--measure-pull);}.rep--finance {--rep-measure:30em;--rep-body-fs:var(--fs-sm);--rep-body-lh:var(--lh-base);--rep-title-fs:var(--fs-xl);}.rep__keyline {display:grid;grid-template-columns:repeat(auto-fit, minmax(120px, 1fr));gap:var(--sp-3);margin:var(--sp-4) 0;padding:var(--sp-3);background:var(--surface-sunken);border-radius:var(--r-md);}.rep__keyline dt {font-size:var(--fs-xs);color:var(--text-tertiary);margin:0;}.rep__keyline dd {margin:var(--sp-1) 0 0;font-size:var(--fs-lg);font-weight:700;font-variant-numeric:tabular-nums;}.rep__risk {margin-top:var(--sp-5);padding:var(--sp-3);border:1px solid var(--border-decor);border-radius:var(--r-md);color:var(--text-secondary);}.rep__risk strong {color:var(--text-primary);}@media print {.rep__aside {display:none;}.rep__grid {display:block;}.rep__fig, .rep table {break-inside:avoid;}.rep__pull {border-inline-start-width:2px;}}
|
|
1
|
+
.rep {--rep-measure:var(--measure-prose);--rep-body-fs:var(--fs-base);--rep-title-fs:var(--fs-2xl);--rep-lead-fs:var(--fs-lg);--rep-body-lh:var(--lh-base);--rep-sec-num:'';font-family:var(--sans);color:var(--text-primary);font-size:var(--rep-body-fs);line-height:var(--rep-body-lh);max-width:100%;--measure-aside:14em;}.rep__kicker, .rep__meta, .rep__cap, .rep__source, .rep__note, .rep__risk {font-size:var(--fs-xs);color:var(--text-secondary);line-height:var(--lh-base);}.rep .rep__title {font-size:var(--rep-title-fs);line-height:var(--lh-tight);letter-spacing:-0.01em;max-width:var(--measure-title);margin:var(--sp-2) 0 0;font-weight:700;}.rep__kicker {margin:0;color:var(--text-tertiary);font-weight:600;letter-spacing:.06em;}.rep__standfirst, .rep__lede {font-size:var(--rep-lead-fs);line-height:var(--lh-loose);max-width:var(--measure-lede);color:var(--text-secondary);margin:var(--sp-3) 0 0;}.rep__meta {display:flex;flex-wrap:wrap;gap:var(--sp-1) var(--sp-3);margin:var(--sp-3) 0 0;padding:0;list-style:none;color:var(--text-tertiary);}.rep__grid {display:grid;grid-template-columns:minmax(0, 1fr);gap:var(--sp-4);margin-top:var(--sp-5);}@media (min-width:62rem) {.rep__grid {grid-template-columns:minmax(0, 1fr) minmax(0, var(--measure-aside));gap:var(--sp-6);align-items:start;}}.rep__body {max-width:none;}.rep__body p, .rep__body ul, .rep__body ol, .rep__body dl, .rep__body .rep__fig, .rep__body .table, .rep__body .kf, .rep__body .accordion, .rep__body .rep__note, .rep__body .rep__risk, .rep__body .rep__keyline {max-width:var(--rep-measure);}.rep__body .rep__fig--wide, .rep__body .rep__wide {max-width:none;}.rep__aside {color:var(--text-secondary);}.rep__sec {margin-top:var(--sp-7);}.rep__sec > :first-child {margin-top:0;}.rep h2 {font-size:var(--fs-xl);line-height:var(--lh-tight);margin:0 0 var(--sp-3);max-width:var(--measure-title);}.rep h3 {font-size:var(--fs-lg);line-height:var(--lh-tight);margin:var(--sp-5) 0 var(--sp-2);}.rep__body p {margin:0 0 var(--sp-3);}.rep__body p:last-child {margin-bottom:0;}.rep__fig {margin:var(--sp-5) 0;padding:0;}.rep__cap {margin:var(--sp-2) 0 0;}.rep__source {margin:var(--sp-2) 0 0;padding:var(--sp-2) 0 0;border-top:1px solid var(--border-decor);color:var(--text-tertiary);}.rep__source ol, .rep__source ul {margin:var(--sp-1) 0 0;padding-inline-start:1.4em;}.rep__source li {margin-bottom:var(--sp-1);}.rep__sources {margin-top:var(--sp-7);}.rep--technical {--rep-measure:var(--measure-prose);--rep-body-lh:var(--lh-loose);--rep-sec-num:counter(rep-sec, decimal) ' · ';counter-reset:rep-sec rep-fig rep-tab;}.rep--technical .rep__sec > h3::before {content:var(--rep-sec-num);counter-increment:rep-sec;color:var(--text-tertiary);font-variant-numeric:tabular-nums;}.rep--technical .rep__cap::before {content:'图 ' counter(rep-fig) ' · ';counter-increment:rep-fig;font-weight:600;color:var(--text-tertiary);font-variant-numeric:tabular-nums;}.rep--technical .rep__cap--table::before {content:'表 ' counter(rep-tab) ' · ';counter-increment:rep-tab;}.rep--magazine {--rep-measure:42em;--rep-lead-fs:var(--fs-xl);}.rep__pull {margin:var(--sp-5) 0;padding-inline-start:var(--sp-4);border-inline-start:3px solid var(--accent);font-size:var(--fs-xl);line-height:var(--lh-tight);color:var(--text-primary);max-width:var(--measure-pull);}.rep--finance {--rep-measure:30em;--rep-body-fs:var(--fs-sm);--rep-body-lh:var(--lh-base);--rep-title-fs:var(--fs-xl);}.rep__keyline {display:grid;grid-template-columns:repeat(auto-fit, minmax(120px, 1fr));gap:var(--sp-3);margin:var(--sp-4) 0;padding:var(--sp-3);background:var(--surface-sunken);border-radius:var(--r-md);}.rep__keyline dt {font-size:var(--fs-xs);color:var(--text-tertiary);margin:0;}.rep__keyline dd {margin:var(--sp-1) 0 0;font-size:var(--fs-lg);font-weight:700;font-variant-numeric:tabular-nums;}.rep__risk {margin-top:var(--sp-5);padding:var(--sp-3);border:1px solid var(--border-decor);border-radius:var(--r-md);color:var(--text-secondary);}.rep__risk strong {color:var(--text-primary);}@media print {.rep__aside {display:none;}.rep__grid {display:block;}.rep__fig, .rep table {break-inside:avoid;}.rep__pull {border-inline-start-width:2px;}.rep p, .rep li, .rep blockquote {orphans:2;widows:2;}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
:root {--paper:#f6f7f8;--surface:#ffffff;--surface-sunken:#f1f3f5;--surface-raised:#ffffff;--scrollbar-size:10px;--scrollbar-size-thin:6px;--scrollbar-thumb:#7A808A;--scrollbar-thumb-hov:#6E747E;--scrollbar-radius:5px;--text-primary:#15181c;--text-secondary:#4f555e;--text-tertiary:#606770;--text-on-accent:#ffffff;--text-on-solid:#ffffff;--skeleton-bg:#e9ecef;--skeleton-shimmer:rgba(255, 255, 255, 0.72);--skeleton-h:1em;--skeleton-size:40px;--skeleton-duration:1.4s;--ease-out:cubic-bezier(0.23, 1, 0.32, 1);--progress-h:6px;--progress-dur:240ms;--r-full:999px;--ring-size:64px;--ring-thickness:8px;--progress:0%;--progress-num:0;--z-popover:60;--popover-min-w:200px;--popover-max-w:320px;--popover-p:12px;--popover-gap:8px;--popover-dur:140ms;--border-control:#868b94;--border-decor:#e2e5e9;--border-decor-str:#c8cdd4;--danger:#c0392b;--danger-hover:#8f1e17;--scrim:rgba(21, 24, 28, 0.4);--success:#2f6b3a;--warning:#8a5a00;--info:#1d5f8a;--danger-bg:#fdeeec;--success-bg:#eaf2e6;--warning-bg:#fbf1dd;--info-bg:#e8f1f8;--dir-up:#c0392b;--dir-down:#2f6b3a;--accent:#1b4d8f;--switch-on:#1b4d8f;--accent-hover:#163a6d;--accent-soft:#e6eef7;--tooltip-bg:#15181c;--tooltip-fg:#f6f7f8;--tooltip-border:#15181c;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:clamp(1rem, 0.95rem + 0.3vw, 1.25rem);--sp-5:clamp(1.25rem, 1.15rem + 0.7vw, 1.75rem);--sp-6:clamp(1.5rem, 1.3rem + 1.2vw, 2.25rem);--sp-7:clamp(2rem, 1.7rem + 1.8vw, 3.5rem);--sp-8:clamp(2.5rem, 2.1rem + 2.4vw, 4.5rem);--bp-sm:30rem;--bp-md:48rem;--bp-lg:64rem;--bp-xl:80rem;--fs-xs:0.75rem;--fs-sm:0.875rem;--fs-base:clamp(1rem, 0.95rem + 0.3vw, 1.125rem);--fs-md:clamp(1.125rem, 1.05rem + 0.5vw, 1.3125rem);--fs-lg:clamp(1.3125rem, 1.2rem + 0.7vw, 1.5rem);--fs-xl:clamp(1.5rem, 1.3rem + 1.2vw, 1.875rem);--fs-2xl:clamp(1.75rem, 1.45rem + 1.8vw, 2.5rem);--lh-tight:1.25;--lh-base:1.7;--lh-loose:1.85;--measure-page:52rem;--tracking-title:-0.02em;--r-sm:6px;--r-xs:3px;--r-md:10px;--r-lg:14px;--r-pill:999px;--shadow-1:0 1px 2px rgba(31, 29, 25, 0.05), 0 1px 3px rgba(31, 29, 25, 0.06);--shadow-2:0 2px 4px rgba(31, 29, 25, 0.05), 0 6px 16px rgba(31, 29, 25, 0.08);--dur-fast:120ms;--dur-base:180ms;--dur-slow:280ms;--ease-out:cubic-bezier(0.23, 1, 0.32, 1);--ease-in-out:cubic-bezier(0.77, 0, 0.175, 1);--ease-drawer:cubic-bezier(0.32, 0.72, 0, 1);--lift-sm:1px;--lift-md:2px;--lift-lg:8px;--z-base:0;--z-sticky:10;--z-header:20;--z-raised:5;--z-overlay:30;--z-modal:40;--z-toast:50;--sz-touch:44px;--sz-touch-sm:32px;}@media (prefers-color-scheme:dark) {:root:not([data-theme="light"]) {--paper:#14171A;--surface:#1C2024;--surface-raised:#232830;--surface-sunken:#1A1D21;--scrollbar-thumb:#6E747E;--scrollbar-thumb-hov:#7D828A;--border-decor:#2A3038;--border-decor-str:#3A424C;--border-control:#8A9099;--text-primary:#E4E7EA;--text-secondary:#AEB6C0;--text-tertiary:#9BA3AD;--text-on-accent:#
|
|
1
|
+
:root {--paper:#f6f7f8;--surface:#ffffff;--surface-sunken:#f1f3f5;--surface-raised:#ffffff;--scrollbar-size:10px;--scrollbar-size-thin:6px;--scrollbar-thumb:#7A808A;--scrollbar-thumb-hov:#6E747E;--scrollbar-radius:5px;--text-primary:#15181c;--text-secondary:#4f555e;--text-tertiary:#606770;--text-on-accent:#ffffff;--text-on-solid:#ffffff;--skeleton-bg:#e9ecef;--skeleton-shimmer:rgba(255, 255, 255, 0.72);--skeleton-h:1em;--skeleton-size:40px;--skeleton-duration:1.4s;--ease-out:cubic-bezier(0.23, 1, 0.32, 1);--progress-h:6px;--progress-dur:240ms;--r-full:999px;--ring-size:64px;--ring-thickness:8px;--progress:0%;--progress-num:0;--z-popover:60;--popover-min-w:200px;--popover-max-w:320px;--popover-p:12px;--popover-gap:8px;--popover-dur:140ms;--border-control:#868b94;--border-decor:#e2e5e9;--border-decor-str:#c8cdd4;--danger:#c0392b;--danger-hover:#8f1e17;--scrim:rgba(21, 24, 28, 0.4);--success:#2f6b3a;--warning:#8a5a00;--info:#1d5f8a;--danger-bg:#fdeeec;--success-bg:#eaf2e6;--warning-bg:#fbf1dd;--info-bg:#e8f1f8;--dir-up:#c0392b;--dir-down:#2f6b3a;--accent:#1b4d8f;--switch-on:#1b4d8f;--accent-hover:#163a6d;--accent-soft:#e6eef7;--tooltip-bg:#15181c;--tooltip-fg:#f6f7f8;--tooltip-border:#15181c;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:clamp(1rem, 0.95rem + 0.3vw, 1.25rem);--sp-5:clamp(1.25rem, 1.15rem + 0.7vw, 1.75rem);--sp-6:clamp(1.5rem, 1.3rem + 1.2vw, 2.25rem);--sp-7:clamp(2rem, 1.7rem + 1.8vw, 3.5rem);--sp-8:clamp(2.5rem, 2.1rem + 2.4vw, 4.5rem);--bp-sm:30rem;--bp-md:48rem;--bp-lg:64rem;--bp-xl:80rem;--fs-xs:0.75rem;--fs-sm:0.875rem;--fs-base:clamp(1rem, 0.95rem + 0.3vw, 1.125rem);--fs-md:clamp(1.125rem, 1.05rem + 0.5vw, 1.3125rem);--fs-lg:clamp(1.3125rem, 1.2rem + 0.7vw, 1.5rem);--fs-xl:clamp(1.5rem, 1.3rem + 1.2vw, 1.875rem);--fs-2xl:clamp(1.75rem, 1.45rem + 1.8vw, 2.5rem);--lh-tight:1.25;--lh-base:1.7;--lh-loose:1.85;--measure-page:52rem;--tracking-title:-0.02em;--r-sm:6px;--r-xs:3px;--r-md:10px;--r-lg:14px;--r-pill:999px;--shadow-1:0 1px 2px rgba(31, 29, 25, 0.05), 0 1px 3px rgba(31, 29, 25, 0.06);--shadow-2:0 2px 4px rgba(31, 29, 25, 0.05), 0 6px 16px rgba(31, 29, 25, 0.08);--dur-fast:120ms;--dur-base:180ms;--dur-slow:280ms;--ease-out:cubic-bezier(0.23, 1, 0.32, 1);--ease-in-out:cubic-bezier(0.77, 0, 0.175, 1);--ease-drawer:cubic-bezier(0.32, 0.72, 0, 1);--lift-sm:1px;--lift-md:2px;--lift-lg:8px;--z-base:0;--z-sticky:10;--z-header:20;--z-raised:5;--z-overlay:30;--z-modal:40;--z-toast:50;--sz-touch:44px;--sz-touch-sm:32px;}@media screen and (prefers-color-scheme:dark) {:root:not([data-theme="light"]) {--paper:#14171A;--surface:#1C2024;--surface-raised:#232830;--surface-sunken:#1A1D21;--scrollbar-thumb:#6E747E;--scrollbar-thumb-hov:#7D828A;--border-decor:#2A3038;--border-decor-str:#3A424C;--border-control:#8A9099;--text-primary:#E4E7EA;--text-secondary:#AEB6C0;--text-tertiary:#9BA3AD;--text-on-accent:#15181c;--text-on-solid:#15181c;--skeleton-bg:#2E343C;--skeleton-shimmer:rgba(255, 255, 255, 0.06);--danger:#E07A6E;--danger-hover:#F09A90;--danger-bg:#341D1A;--success:#6FAA7A;--success-bg:#16241A;--dir-up:#E07A6E;--dir-down:#6FAA7A;--warning:#C99A3F;--warning-bg:#242A31;--info:#5B9BC4;--info-bg:#13242F;--accent:#7AA9DE;--switch-on:#3E6EA8;--accent-hover:#8FB8E6;--accent-soft:#1C2C3D;--tooltip-bg:#232830;--tooltip-fg:#E4E7EA;--tooltip-border:#2A3038;--scrim:rgba(0, 0, 0, 0.62);}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.bar {position:relative;overflow:hidden;background:var(--surface, #fff);border:1px solid var(--border-decor);border-radius:var(--r-md, 8px);padding:var(--sp-3);}.bar__svg {display:block;width:100%;height:auto;overflow:hidden;}.bar__grid {stroke:var(--border-decor);stroke-width:1;stroke-dasharray:2 3;}.bar__ytick, .bar__xlabel {fill:var(--text-tertiary);font-size:10px;font-family:var(--mono);font-variant-numeric:tabular-nums;}.bar__s0 {--bar-c:var(--accent);}.bar__s1 {--bar-c:var(--text-tertiary);}.bar__s2 {--bar-c:var(--success);}.bar__s3 {--bar-c:var(--warning);}.bar__s4 {--bar-c:var(--info);}.bar__bar {fill:var(--bar-c, var(--accent));transition:fill 120ms var(--ease-out, ease);}.bar__bar[data-clipped="1"] {fill:var(--danger, #c0392b);stroke:var(--danger, #c0392b);stroke-width:1;stroke-dasharray:2 2;}.bar__legend {display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-4, 1rem);margin:var(--sp-2) 0 0;padding:0;list-style:none;font-size:var(--fs-xs, 12px);color:var(--text-secondary);}.bar__legend-item {display:inline-flex;align-items:center;gap:var(--sp-1);}.bar__legend-swatch {display:inline-block;width:10px;height:10px;border-radius:2px;background:var(--bar-c, var(--accent));flex:0 0 auto;}.bar__threshold {stroke:var(--text-tertiary);stroke-width:1;stroke-dasharray:4 3;}.bar__label {fill:var(--text-secondary);font-size:10px;font-family:var(--mono);font-variant-numeric:tabular-nums;paint-order:stroke fill;stroke:var(--surface, #fff);stroke-width:3px;stroke-linejoin:round;pointer-events:none;}.bar__label--max {fill:var(--text-primary);font-weight:700;}.bar__label--clip {fill:var(--danger, #c0392b);font-weight:700;}.bar__note {margin:var(--sp-2) 0 0;font-size:var(--fs-xs, 12px);line-height:1.5;color:var(--text-secondary);}@media (hover:hover) and (pointer:fine) {.bar__bar:hover {stroke:var(--text-primary);stroke-width:1.5;}}
|
|
1
|
+
.bar {position:relative;overflow:hidden;background:var(--surface, #fff);border:1px solid var(--border-decor);border-radius:var(--r-md, 8px);padding:var(--sp-3);}.bar__svg {display:block;width:100%;height:auto;overflow:hidden;}.bar__grid {stroke:var(--border-decor);stroke-width:1;stroke-dasharray:2 3;}.bar__ytick, .bar__xlabel {fill:var(--text-tertiary);font-size:10px;font-family:var(--mono);font-variant-numeric:tabular-nums;}.bar__s0 {--bar-c:var(--accent);}.bar__s1 {--bar-c:var(--text-tertiary);}.bar__s2 {--bar-c:var(--success);}.bar__s3 {--bar-c:var(--warning);}.bar__s4 {--bar-c:var(--info);}.bar__bar {fill:var(--bar-c, var(--accent));transition:fill 120ms var(--ease-out, ease);}.bar__bar[data-clipped="1"] {fill:var(--danger, #c0392b);stroke:var(--danger, #c0392b);stroke-width:1;stroke-dasharray:2 2;}.bar__legend {display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-4, 1rem);margin:var(--sp-2) 0 0;padding:0;list-style:none;font-size:var(--fs-xs, 12px);color:var(--text-secondary);}.bar__legend-item {display:inline-flex;align-items:center;gap:var(--sp-1);}.bar__legend-swatch {display:inline-block;width:10px;height:10px;border-radius:2px;background:var(--bar-c, var(--accent));flex:0 0 auto;}.bar__threshold {stroke:var(--text-tertiary);stroke-width:1;stroke-dasharray:4 3;}.bar__label {fill:var(--text-secondary);font-size:10px;font-family:var(--mono);font-variant-numeric:tabular-nums;paint-order:stroke fill;stroke:var(--surface, #fff);stroke-width:3px;stroke-linejoin:round;pointer-events:none;}.bar__label--max {fill:var(--text-primary);font-weight:700;}.bar__label--clip {fill:var(--danger, #c0392b);font-weight:700;}@media print {.bar__label {stroke:none;}}.bar__note {margin:var(--sp-2) 0 0;font-size:var(--fs-xs, 12px);line-height:1.5;color:var(--text-secondary);}@media (hover:hover) and (pointer:fine) {.bar__bar:hover {stroke:var(--text-primary);stroke-width:1.5;}}
|