@hxdhxd/harmony-flow-ui 0.1.2 → 0.3.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
@@ -1304,6 +1304,704 @@
1304
1304
  }
1305
1305
  }
1306
1306
 
1307
+ /* src/interaction-patterns.css */
1308
+ .hf-read-more {
1309
+ width: 100%;
1310
+ min-width: 0;
1311
+ }
1312
+ .hf-read-more__text {
1313
+ margin: 0;
1314
+ line-height: 1.8;
1315
+ white-space: pre-wrap;
1316
+ overflow-wrap: anywhere;
1317
+ color: var(--hf-color-text);
1318
+ }
1319
+ .hf-read-more__text.is-clamped {
1320
+ display: -webkit-box;
1321
+ -webkit-box-orient: vertical;
1322
+ -webkit-line-clamp: var(--hf-read-more-lines, 3);
1323
+ overflow: hidden;
1324
+ }
1325
+ .hf-read-more > .hf-button {
1326
+ margin-top: 8px;
1327
+ }
1328
+ .hf-onboarding {
1329
+ width: 100%;
1330
+ min-width: 0;
1331
+ padding: 20px;
1332
+ color: var(--hf-color-text);
1333
+ background: var(--hf-color-surface);
1334
+ border: 1px solid var(--hf-color-border);
1335
+ border-radius: var(--hf-radius-panel);
1336
+ }
1337
+ .hf-onboarding__header {
1338
+ display: flex;
1339
+ align-items: center;
1340
+ justify-content: space-between;
1341
+ gap: 12px;
1342
+ }
1343
+ .hf-onboarding__header h3 {
1344
+ font-size: 16px;
1345
+ margin: 0;
1346
+ overflow-wrap: anywhere;
1347
+ }
1348
+ .hf-onboarding__progress {
1349
+ display: grid;
1350
+ gap: 8px;
1351
+ margin-top: 12px;
1352
+ font-size: 13px;
1353
+ color: var(--hf-color-text-muted);
1354
+ }
1355
+ .hf-onboarding__progress progress {
1356
+ width: 100%;
1357
+ height: 8px;
1358
+ accent-color: var(--hf-color-primary);
1359
+ }
1360
+ .hf-onboarding__tasks {
1361
+ padding: 0;
1362
+ margin: 16px 0 0;
1363
+ list-style: none;
1364
+ }
1365
+ .hf-onboarding__tasks > li {
1366
+ display: flex;
1367
+ gap: 12px;
1368
+ align-items: flex-start;
1369
+ padding: 14px 0;
1370
+ border-top: 1px solid var(--hf-color-border);
1371
+ }
1372
+ .hf-onboarding__marker {
1373
+ width: 24px;
1374
+ height: 24px;
1375
+ flex: 0 0 24px;
1376
+ display: grid;
1377
+ place-items: center;
1378
+ border: 1px solid var(--hf-color-border);
1379
+ border-radius: var(--hf-radius-control);
1380
+ color: var(--hf-color-text-muted);
1381
+ font-size: 12px;
1382
+ }
1383
+ .is-complete > .hf-onboarding__marker {
1384
+ background: var(--hf-color-primary);
1385
+ color: var(--hf-color-surface);
1386
+ border-color: var(--hf-color-primary);
1387
+ }
1388
+ .hf-onboarding__detail {
1389
+ flex: 1;
1390
+ min-width: 0;
1391
+ line-height: 1.6;
1392
+ overflow-wrap: anywhere;
1393
+ }
1394
+ .hf-onboarding__detail strong {
1395
+ font-size: 14px;
1396
+ }
1397
+ .hf-onboarding__detail > div {
1398
+ color: var(--hf-color-text-muted);
1399
+ font-size: 13px;
1400
+ }
1401
+ .hf-onboarding__state {
1402
+ display: block;
1403
+ font-size: 12px;
1404
+ color: var(--hf-color-text-muted);
1405
+ }
1406
+ .hf-onboarding__done {
1407
+ margin: 12px 0 0;
1408
+ color: var(--hf-color-primary);
1409
+ }
1410
+ .hf-announcement {
1411
+ display: flex;
1412
+ align-items: center;
1413
+ gap: 12px;
1414
+ width: 100%;
1415
+ min-width: 0;
1416
+ padding: 12px 16px;
1417
+ background: var(--hf-color-background);
1418
+ color: var(--hf-color-text);
1419
+ border: 1px solid var(--hf-color-border);
1420
+ border-radius: var(--hf-radius-panel);
1421
+ }
1422
+ .hf-announcement__label {
1423
+ display: inline-flex;
1424
+ align-items: center;
1425
+ gap: 6px;
1426
+ color: var(--hf-color-primary);
1427
+ font-size: 13px;
1428
+ flex-shrink: 0;
1429
+ }
1430
+ .hf-announcement__message {
1431
+ flex: 1;
1432
+ min-width: 0;
1433
+ overflow-wrap: anywhere;
1434
+ font-size: 14px;
1435
+ line-height: 1.6;
1436
+ }
1437
+ .hf-announcement__message > .hf-button {
1438
+ margin-left: 8px;
1439
+ }
1440
+ .hf-announcement__controls {
1441
+ display: flex;
1442
+ align-items: center;
1443
+ flex-wrap: wrap;
1444
+ gap: 4px;
1445
+ font-size: 12px;
1446
+ color: var(--hf-color-text-muted);
1447
+ }
1448
+ .hf-sortable {
1449
+ width: 100%;
1450
+ min-width: 0;
1451
+ color: var(--hf-color-text);
1452
+ }
1453
+ .hf-sortable__hint {
1454
+ margin: 0 0 12px;
1455
+ font-size: 13px;
1456
+ color: var(--hf-color-text-muted);
1457
+ line-height: 1.6;
1458
+ }
1459
+ .hf-sortable__list {
1460
+ list-style: none;
1461
+ margin: 0;
1462
+ padding: 0;
1463
+ display: grid;
1464
+ gap: 8px;
1465
+ }
1466
+ .hf-sortable__list > li {
1467
+ display: flex;
1468
+ align-items: center;
1469
+ gap: 12px;
1470
+ min-width: 0;
1471
+ padding: 12px;
1472
+ background: var(--hf-color-surface);
1473
+ border: 1px solid var(--hf-color-border);
1474
+ border-radius: var(--hf-radius-panel);
1475
+ transition: background var(--hf-motion-duration), border-color var(--hf-motion-duration);
1476
+ }
1477
+ .hf-sortable__list > .is-dragging {
1478
+ background: var(--hf-color-background);
1479
+ border-color: var(--hf-color-primary);
1480
+ }
1481
+ .hf-sortable__list > .is-drop-before {
1482
+ border-top: 3px solid var(--hf-color-primary);
1483
+ padding-top: 10px;
1484
+ }
1485
+ .hf-sortable__list > .is-drop-after {
1486
+ border-bottom: 3px solid var(--hf-color-primary);
1487
+ padding-bottom: 10px;
1488
+ }
1489
+ .hf-sortable__handle {
1490
+ display: grid;
1491
+ place-items: center;
1492
+ padding: 8px;
1493
+ border: 0;
1494
+ background: transparent;
1495
+ color: var(--hf-color-text-muted);
1496
+ cursor: grab;
1497
+ touch-action: none;
1498
+ border-radius: var(--hf-radius-control);
1499
+ }
1500
+ .hf-sortable__handle:active {
1501
+ cursor: grabbing;
1502
+ }
1503
+ .hf-sortable__handle:focus-visible {
1504
+ outline: 2px solid var(--hf-color-primary);
1505
+ outline-offset: 2px;
1506
+ }
1507
+ .hf-sortable__handle:disabled {
1508
+ opacity: .45;
1509
+ cursor: not-allowed;
1510
+ }
1511
+ .hf-sortable__content {
1512
+ flex: 1;
1513
+ min-width: 0;
1514
+ overflow-wrap: anywhere;
1515
+ line-height: 1.6;
1516
+ }
1517
+ .hf-sortable__content strong {
1518
+ font-size: 14px;
1519
+ }
1520
+ .hf-sortable__content > div {
1521
+ font-size: 13px;
1522
+ color: var(--hf-color-text-muted);
1523
+ }
1524
+ .hf-sortable__actions {
1525
+ display: flex;
1526
+ flex-shrink: 0;
1527
+ gap: 4px;
1528
+ }
1529
+ @media (max-width: 640px) {
1530
+ .hf-announcement {
1531
+ flex-wrap: wrap;
1532
+ padding: 12px;
1533
+ }
1534
+ .hf-announcement__message {
1535
+ flex-basis: calc(100% - 76px);
1536
+ }
1537
+ .hf-announcement__controls {
1538
+ width: 100%;
1539
+ justify-content: flex-end;
1540
+ }
1541
+ .hf-onboarding {
1542
+ padding: 14px;
1543
+ }
1544
+ .hf-onboarding__tasks > li {
1545
+ gap: 8px;
1546
+ flex-wrap: wrap;
1547
+ }
1548
+ .hf-onboarding__detail {
1549
+ flex-basis: calc(100% - 36px);
1550
+ }
1551
+ .hf-onboarding__tasks > li > .hf-button {
1552
+ margin-left: 32px;
1553
+ }
1554
+ .hf-sortable__list > li {
1555
+ gap: 6px;
1556
+ padding: 10px 6px;
1557
+ }
1558
+ .hf-sortable__actions {
1559
+ flex-direction: column;
1560
+ }
1561
+ .hf-sortable__list > .is-drop-before {
1562
+ padding-top: 8px;
1563
+ }
1564
+ .hf-sortable__list > .is-drop-after {
1565
+ padding-bottom: 8px;
1566
+ }
1567
+ }
1568
+ @media (prefers-reduced-motion: reduce) {
1569
+ .hf-sortable__list > li {
1570
+ transition: none;
1571
+ }
1572
+ }
1573
+
1574
+ /* src/exploration-patterns.css */
1575
+ .hf-legend-filter {
1576
+ display: flex;
1577
+ flex-wrap: wrap;
1578
+ gap: 8px;
1579
+ }
1580
+ .hf-legend-filter button {
1581
+ display: inline-flex;
1582
+ align-items: center;
1583
+ gap: 8px;
1584
+ padding: 6px 10px;
1585
+ border: 1px solid var(--hf-color-border);
1586
+ border-radius: 6px;
1587
+ background: var(--hf-color-surface);
1588
+ color: var(--hf-color-text);
1589
+ font: inherit;
1590
+ cursor: pointer;
1591
+ }
1592
+ .hf-legend-filter button[aria-pressed=true] {
1593
+ border-color: var(--hf-color-primary);
1594
+ }
1595
+ .hf-legend-filter button[aria-pressed=false] {
1596
+ color: var(--hf-color-text-muted);
1597
+ }
1598
+ .hf-legend-filter button:disabled {
1599
+ cursor: not-allowed;
1600
+ opacity: .6;
1601
+ }
1602
+ .hf-legend-filter__swatch {
1603
+ width: 10px;
1604
+ height: 10px;
1605
+ flex-shrink: 0;
1606
+ background: var(--hf-color-primary);
1607
+ border-radius: 2px;
1608
+ }
1609
+ .hf-legend-filter button:focus-visible,
1610
+ .hf-range-brush input:focus-visible {
1611
+ outline: 2px solid var(--hf-color-primary);
1612
+ outline-offset: 3px;
1613
+ }
1614
+ .hf-range-brush {
1615
+ min-width: 0;
1616
+ margin: 0;
1617
+ padding: 16px;
1618
+ border: 1px solid var(--hf-color-border);
1619
+ border-radius: 8px;
1620
+ color: var(--hf-color-text);
1621
+ }
1622
+ .hf-range-brush__plot {
1623
+ position: relative;
1624
+ min-height: 64px;
1625
+ overflow: hidden;
1626
+ background: var(--hf-color-background);
1627
+ }
1628
+ .hf-range-brush__selection {
1629
+ position: absolute;
1630
+ top: 0;
1631
+ bottom: 0;
1632
+ border: 2px solid var(--hf-color-primary);
1633
+ background: color-mix(in srgb, var(--hf-color-primary) 12%, transparent);
1634
+ pointer-events: none;
1635
+ }
1636
+ .hf-range-brush__controls {
1637
+ display: grid;
1638
+ grid-template-columns: minmax(80px, auto) minmax(0, 1fr);
1639
+ gap: 12px;
1640
+ align-items: center;
1641
+ margin-top: 12px;
1642
+ }
1643
+ .hf-range-brush input {
1644
+ min-width: 0;
1645
+ width: 100%;
1646
+ accent-color: var(--hf-color-primary);
1647
+ }
1648
+ .hf-range-brush output {
1649
+ font-variant-numeric: tabular-nums;
1650
+ }
1651
+ .hf-expandable-panel {
1652
+ min-width: 0;
1653
+ border: 1px solid var(--hf-color-border);
1654
+ border-radius: 8px;
1655
+ background: var(--hf-color-surface);
1656
+ color: var(--hf-color-text);
1657
+ overflow-wrap: anywhere;
1658
+ }
1659
+ .hf-expandable-panel__header {
1660
+ display: flex;
1661
+ align-items: center;
1662
+ justify-content: space-between;
1663
+ gap: 16px;
1664
+ padding: 16px;
1665
+ }
1666
+ .hf-expandable-panel__header h3 {
1667
+ margin: 0;
1668
+ font-size: 16px;
1669
+ }
1670
+ .hf-expandable-panel__header button {
1671
+ flex-shrink: 0;
1672
+ }
1673
+ .hf-expandable-panel__summary {
1674
+ padding: 0 16px 16px;
1675
+ color: var(--hf-color-text-muted);
1676
+ }
1677
+ .hf-expandable-panel__reveal {
1678
+ display: grid;
1679
+ grid-template-rows: 0fr;
1680
+ visibility: hidden;
1681
+ transition: grid-template-rows 180ms ease, visibility 180ms;
1682
+ }
1683
+ .hf-expandable-panel__reveal[data-open=true] {
1684
+ grid-template-rows: 1fr;
1685
+ visibility: visible;
1686
+ }
1687
+ .hf-expandable-panel__reveal > div {
1688
+ overflow: hidden;
1689
+ min-height: 0;
1690
+ }
1691
+ .hf-expandable-panel__content {
1692
+ padding: 16px;
1693
+ border-top: 1px solid var(--hf-color-border);
1694
+ }
1695
+ .hf-product-tour {
1696
+ position: fixed;
1697
+ inset: 0;
1698
+ z-index: 1400;
1699
+ color: var(--hf-color-text);
1700
+ font-family: var(--hf-font-family);
1701
+ }
1702
+ .hf-product-tour__shade {
1703
+ position: absolute;
1704
+ inset: 0;
1705
+ color: rgb(0 0 0 / 48%);
1706
+ pointer-events: none;
1707
+ }
1708
+ .hf-product-tour__target {
1709
+ position: fixed;
1710
+ border: 2px solid var(--hf-color-primary);
1711
+ border-radius: 6px;
1712
+ pointer-events: none;
1713
+ }
1714
+ .hf-product-tour__card {
1715
+ position: absolute;
1716
+ bottom: 16px;
1717
+ left: 50%;
1718
+ transform: translateX(-50%);
1719
+ width: min(440px, calc(100% - 32px));
1720
+ max-height: calc(100% - 32px);
1721
+ overflow: auto;
1722
+ box-sizing: border-box;
1723
+ padding: 20px;
1724
+ border: 1px solid var(--hf-color-border);
1725
+ border-radius: 8px;
1726
+ background: var(--hf-color-surface);
1727
+ overflow-wrap: anywhere;
1728
+ }
1729
+ .hf-product-tour__card h3 {
1730
+ margin: 8px 0 12px;
1731
+ font-size: 18px;
1732
+ }
1733
+ .hf-product-tour__count {
1734
+ color: var(--hf-color-text-muted);
1735
+ font-variant-numeric: tabular-nums;
1736
+ }
1737
+ .hf-product-tour__actions {
1738
+ display: flex;
1739
+ justify-content: flex-end;
1740
+ gap: 8px;
1741
+ flex-wrap: wrap;
1742
+ margin-top: 20px;
1743
+ }
1744
+ @media (prefers-reduced-motion: reduce) {
1745
+ .hf-expandable-panel__reveal {
1746
+ transition: none;
1747
+ }
1748
+ }
1749
+
1750
+ /* src/reading-patterns.css */
1751
+ .hf-hotspot-guide,
1752
+ .hf-chart-crosshair,
1753
+ .hf-drilldown-chart {
1754
+ min-width: 0;
1755
+ color: var(--hf-color-text);
1756
+ overflow-wrap: anywhere;
1757
+ }
1758
+ .hf-hotspot-guide > button > span {
1759
+ display: inline-flex;
1760
+ align-items: center;
1761
+ flex-wrap: wrap;
1762
+ gap: 8px;
1763
+ }
1764
+ .hf-hotspot-guide > .hf-button {
1765
+ color: var(--hf-color-text);
1766
+ text-align: start;
1767
+ }
1768
+ .hf-hotspot-guide .hf-button--quiet:hover {
1769
+ background: var(--hf-color-background);
1770
+ }
1771
+ .hf-hotspot-guide__dot {
1772
+ color: var(--hf-color-primary);
1773
+ }
1774
+ .hf-hotspot-guide__state {
1775
+ color: var(--hf-color-text-muted);
1776
+ font-size: 12px;
1777
+ }
1778
+ .hf-hotspot-guide__content {
1779
+ padding: 16px;
1780
+ margin-top: 8px;
1781
+ background: var(--hf-color-surface);
1782
+ border: 1px solid var(--hf-color-border);
1783
+ border-radius: var(--hf-radius-panel);
1784
+ }
1785
+ .hf-hotspot-guide__content h3,
1786
+ .hf-chart-crosshair h3,
1787
+ .hf-drilldown-chart h3 {
1788
+ margin: 0;
1789
+ font-size: 16px;
1790
+ }
1791
+ .hf-hotspot-guide__content h3 {
1792
+ margin-bottom: 12px;
1793
+ }
1794
+ .hf-hotspot-guide__actions {
1795
+ display: flex;
1796
+ justify-content: flex-end;
1797
+ gap: 8px;
1798
+ margin-top: 16px;
1799
+ flex-wrap: wrap;
1800
+ }
1801
+ .hf-chart-crosshair,
1802
+ .hf-drilldown-chart {
1803
+ padding: 16px;
1804
+ border: 1px solid var(--hf-color-border);
1805
+ border-radius: var(--hf-radius-panel);
1806
+ background: var(--hf-color-surface);
1807
+ }
1808
+ .hf-chart-crosshair__scale {
1809
+ display: flex;
1810
+ justify-content: space-between;
1811
+ color: var(--hf-color-text-muted);
1812
+ margin-top: 16px;
1813
+ font-size: 12px;
1814
+ }
1815
+ .hf-chart-crosshair svg {
1816
+ display: block;
1817
+ width: 100%;
1818
+ height: 200px;
1819
+ cursor: crosshair;
1820
+ touch-action: pan-y;
1821
+ }
1822
+ .hf-chart-crosshair__axis {
1823
+ fill: none;
1824
+ stroke: var(--hf-color-border);
1825
+ }
1826
+ .hf-chart-crosshair__line {
1827
+ fill: none;
1828
+ stroke: var(--hf-color-primary);
1829
+ stroke-width: 3;
1830
+ }
1831
+ .hf-chart-crosshair__cursor {
1832
+ fill: none;
1833
+ stroke: var(--hf-color-text-muted);
1834
+ stroke-width: 1;
1835
+ stroke-dasharray: 4 4;
1836
+ }
1837
+ .hf-chart-crosshair circle {
1838
+ fill: var(--hf-color-surface);
1839
+ stroke: var(--hf-color-primary);
1840
+ stroke-width: 3;
1841
+ }
1842
+ .hf-chart-crosshair__reading {
1843
+ display: flex;
1844
+ justify-content: space-between;
1845
+ gap: 16px;
1846
+ margin: 8px 0 16px;
1847
+ font-variant-numeric: tabular-nums;
1848
+ }
1849
+ .hf-chart-crosshair label {
1850
+ font-size: 12px;
1851
+ color: var(--hf-color-text-muted);
1852
+ }
1853
+ .hf-chart-crosshair input {
1854
+ display: block;
1855
+ width: 100%;
1856
+ margin: 12px 0 0;
1857
+ accent-color: var(--hf-color-primary);
1858
+ }
1859
+ .hf-drilldown-chart nav,
1860
+ .hf-drilldown-chart__header {
1861
+ display: flex;
1862
+ align-items: center;
1863
+ flex-wrap: wrap;
1864
+ gap: 8px;
1865
+ }
1866
+ .hf-drilldown-chart__header {
1867
+ justify-content: space-between;
1868
+ margin: 12px 0 16px;
1869
+ }
1870
+ .hf-drilldown-chart ul {
1871
+ list-style: none;
1872
+ padding: 0;
1873
+ margin: 0;
1874
+ display: grid;
1875
+ gap: 12px;
1876
+ }
1877
+ .hf-drilldown-chart li > button,
1878
+ .hf-drilldown-chart__leaf {
1879
+ display: grid;
1880
+ grid-template-columns: minmax(0, 1fr) auto;
1881
+ gap: 8px 16px;
1882
+ text-align: start;
1883
+ width: 100%;
1884
+ padding: 10px;
1885
+ border: 1px solid var(--hf-color-border);
1886
+ border-radius: var(--hf-radius-control);
1887
+ background: var(--hf-color-surface);
1888
+ color: inherit;
1889
+ font: inherit;
1890
+ box-sizing: border-box;
1891
+ }
1892
+ .hf-drilldown-chart li > button {
1893
+ cursor: pointer;
1894
+ }
1895
+ .hf-drilldown-chart li > button:hover:not(:disabled) {
1896
+ border-color: var(--hf-color-primary);
1897
+ }
1898
+ .hf-drilldown-chart li > button:disabled {
1899
+ opacity: .6;
1900
+ cursor: not-allowed;
1901
+ }
1902
+ .hf-drilldown-chart__track {
1903
+ grid-column: 1 / -1;
1904
+ height: 6px;
1905
+ background: var(--hf-color-background);
1906
+ }
1907
+ .hf-drilldown-chart__track > span {
1908
+ display: block;
1909
+ height: 100%;
1910
+ background: var(--hf-color-primary);
1911
+ }
1912
+ .hf-drilldown-chart button:focus-visible,
1913
+ .hf-chart-crosshair input:focus-visible {
1914
+ outline: 2px solid var(--hf-color-primary);
1915
+ outline-offset: 3px;
1916
+ }
1917
+ @media (max-width: 480px) {
1918
+ .hf-drilldown-chart li > button,
1919
+ .hf-drilldown-chart__leaf {
1920
+ grid-template-columns: minmax(0, 1fr);
1921
+ }
1922
+ }
1923
+
1924
+ /* src/manipulation-patterns.css */
1925
+ .hf-kanban-enhanced,
1926
+ .hf-zoomable-chart {
1927
+ min-width: 0;
1928
+ width: 100%;
1929
+ color: var(--hf-color-text);
1930
+ }
1931
+ .hf-kanban-enhanced__hint,
1932
+ .hf-kanban-enhanced__empty,
1933
+ .hf-zoomable-chart__summary {
1934
+ color: var(--hf-color-text-muted);
1935
+ font-size: 13px;
1936
+ overflow-wrap: anywhere;
1937
+ }
1938
+ .hf-kanban-enhanced .hf-kanban-board > section {
1939
+ min-width: 0;
1940
+ }
1941
+ .hf-kanban-enhanced [data-drop-target=true] {
1942
+ outline: 2px solid var(--hf-color-primary);
1943
+ outline-offset: -2px;
1944
+ }
1945
+ .hf-kanban-enhanced__item {
1946
+ min-width: 0;
1947
+ }
1948
+ .hf-kanban-enhanced__item > .hf-kanban-card {
1949
+ width: 100%;
1950
+ box-sizing: border-box;
1951
+ overflow-wrap: anywhere;
1952
+ }
1953
+ .hf-kanban-enhanced__controls {
1954
+ display: flex;
1955
+ align-items: center;
1956
+ gap: 8px;
1957
+ padding: 4px 0 8px;
1958
+ }
1959
+ .hf-kanban-enhanced__controls select,
1960
+ .hf-kanban-enhanced__handle {
1961
+ padding: 6px;
1962
+ border: 1px solid var(--hf-color-border);
1963
+ border-radius: var(--hf-radius-control);
1964
+ background: var(--hf-color-surface);
1965
+ color: var(--hf-color-text);
1966
+ font: inherit;
1967
+ }
1968
+ .hf-kanban-enhanced__controls select {
1969
+ min-width: 0;
1970
+ max-width: 100%;
1971
+ flex: 1;
1972
+ }
1973
+ .hf-kanban-enhanced__handle {
1974
+ touch-action: none;
1975
+ cursor: grab;
1976
+ min-width: 34px;
1977
+ }
1978
+ .hf-kanban-enhanced__handle:active {
1979
+ cursor: grabbing;
1980
+ }
1981
+ .hf-kanban-enhanced :focus-visible {
1982
+ outline: 2px solid var(--hf-color-primary);
1983
+ outline-offset: 2px;
1984
+ }
1985
+ .hf-kanban-enhanced__empty {
1986
+ min-height: 64px;
1987
+ margin: 0;
1988
+ }
1989
+ .hf-zoomable-chart {
1990
+ display: grid;
1991
+ gap: 16px;
1992
+ }
1993
+ .hf-zoomable-chart__controls {
1994
+ display: flex;
1995
+ flex-wrap: wrap;
1996
+ gap: 8px;
1997
+ }
1998
+ .hf-zoomable-chart__summary {
1999
+ margin: 0;
2000
+ }
2001
+ .hf-zoomable-chart .hf-range-brush__controls {
2002
+ grid-template-columns: minmax(0, 1fr) minmax(0, 3fr);
2003
+ }
2004
+
1307
2005
  /* src/navigation/navigation.css */
1308
2006
  .hf-floating-nav,
1309
2007
  .hf-shrink-nav {
@@ -1717,6 +2415,201 @@
1717
2415
  box-shadow: -8px 0 0 -6px var(--hf-color-primary);
1718
2416
  font-weight: 700;
1719
2417
  }
2418
+ .hf-back-to-top {
2419
+ align-items: center;
2420
+ background: var(--hf-color-primary);
2421
+ border: 1px solid color-mix(in srgb, white 32%, var(--hf-color-primary));
2422
+ border-radius: var(--hf-radius-control);
2423
+ bottom: 24px;
2424
+ color: white;
2425
+ cursor: pointer;
2426
+ display: flex;
2427
+ font: inherit;
2428
+ font-size: 13px;
2429
+ font-weight: 700;
2430
+ gap: 7px;
2431
+ opacity: 0;
2432
+ padding: 10px 13px;
2433
+ pointer-events: none;
2434
+ position: fixed;
2435
+ right: 24px;
2436
+ transform: translateY(8px);
2437
+ transition: opacity var(--hf-motion-duration), transform var(--hf-motion-duration);
2438
+ z-index: 850;
2439
+ }
2440
+ .hf-back-to-top--visible {
2441
+ opacity: 1;
2442
+ pointer-events: auto;
2443
+ transform: translateY(0);
2444
+ }
2445
+ .hf-back-to-top:focus-visible {
2446
+ outline: 2px solid color-mix(in srgb, var(--hf-color-primary) 42%, transparent);
2447
+ outline-offset: 3px;
2448
+ }
2449
+ .hf-hierarchical-sidebar {
2450
+ background: var(--hf-color-surface);
2451
+ border: 1px solid var(--hf-color-border);
2452
+ border-radius: var(--hf-radius-panel);
2453
+ padding: 12px;
2454
+ width: min(280px, 100%);
2455
+ }
2456
+ .hf-hierarchical-sidebar__title,
2457
+ .hf-long-page-navigation__title {
2458
+ color: var(--hf-color-text);
2459
+ font-size: 13px;
2460
+ font-weight: 750;
2461
+ padding: 8px 10px 10px;
2462
+ }
2463
+ .hf-hierarchical-sidebar__list {
2464
+ display: grid;
2465
+ gap: 3px;
2466
+ list-style: none;
2467
+ margin: 0;
2468
+ padding: 0;
2469
+ }
2470
+ .hf-hierarchical-sidebar__list[data-level]:not([data-level="0"]) {
2471
+ border-left: 1px solid var(--hf-color-border);
2472
+ margin: 3px 0 5px 14px;
2473
+ padding-left: 9px;
2474
+ }
2475
+ .hf-hierarchical-sidebar__list a,
2476
+ .hf-hierarchical-sidebar__group {
2477
+ align-items: center;
2478
+ background: transparent;
2479
+ border: 0;
2480
+ border-radius: var(--hf-radius-control);
2481
+ color: var(--hf-color-text-muted);
2482
+ cursor: pointer;
2483
+ display: grid;
2484
+ font: inherit;
2485
+ font-size: 13px;
2486
+ gap: 8px;
2487
+ grid-template-columns: auto 1fr auto;
2488
+ min-height: 38px;
2489
+ padding: 7px 9px;
2490
+ text-align: left;
2491
+ text-decoration: none;
2492
+ width: 100%;
2493
+ }
2494
+ .hf-hierarchical-sidebar__list a:hover,
2495
+ .hf-hierarchical-sidebar__list a[aria-current],
2496
+ .hf-hierarchical-sidebar__group:hover {
2497
+ background: color-mix(in srgb, var(--hf-color-primary) 9%, transparent);
2498
+ color: var(--hf-color-primary);
2499
+ }
2500
+ .hf-hierarchical-sidebar__chevron {
2501
+ transition: transform var(--hf-motion-duration);
2502
+ }
2503
+ .hf-hierarchical-sidebar__group[aria-expanded=true] .hf-hierarchical-sidebar__chevron {
2504
+ transform: rotate(90deg);
2505
+ }
2506
+ .hf-long-page-navigation {
2507
+ background: var(--hf-color-surface);
2508
+ border: 1px solid var(--hf-color-border);
2509
+ border-radius: var(--hf-radius-panel);
2510
+ display: grid;
2511
+ gap: 8px;
2512
+ padding: 12px;
2513
+ width: min(250px, 100%);
2514
+ }
2515
+ .hf-long-page-navigation .hf-reading-progress {
2516
+ position: static;
2517
+ }
2518
+ .hf-long-page-navigation .hf-reading-progress__track {
2519
+ border-radius: 3px;
2520
+ height: 4px;
2521
+ }
2522
+ .hf-long-page-navigation .hf-back-to-top {
2523
+ justify-content: center;
2524
+ margin-top: 4px;
2525
+ position: static;
2526
+ width: 100%;
2527
+ }
2528
+ .hf-bottom-navigation {
2529
+ background: color-mix(in srgb, var(--hf-color-surface) 96%, transparent);
2530
+ border-top: 1px solid var(--hf-color-border);
2531
+ bottom: 0;
2532
+ display: grid;
2533
+ grid-auto-columns: 1fr;
2534
+ grid-auto-flow: column;
2535
+ left: 0;
2536
+ padding: 7px max(10px, env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(10px, env(safe-area-inset-left));
2537
+ position: sticky;
2538
+ right: 0;
2539
+ z-index: 40;
2540
+ }
2541
+ .hf-bottom-navigation a {
2542
+ align-items: center;
2543
+ color: var(--hf-color-text-muted);
2544
+ display: grid;
2545
+ font-size: 11px;
2546
+ gap: 3px;
2547
+ justify-items: center;
2548
+ min-height: 44px;
2549
+ padding: 4px 6px;
2550
+ text-decoration: none;
2551
+ }
2552
+ .hf-bottom-navigation a[aria-current],
2553
+ .hf-bottom-navigation a:hover {
2554
+ color: var(--hf-color-primary);
2555
+ font-weight: 700;
2556
+ }
2557
+ .hf-bottom-navigation__icon {
2558
+ font-size: 18px;
2559
+ line-height: 1;
2560
+ }
2561
+ .hf-pull-to-refresh {
2562
+ min-height: 0;
2563
+ overflow: auto;
2564
+ overscroll-behavior-y: contain;
2565
+ position: relative;
2566
+ touch-action: pan-x pan-up;
2567
+ }
2568
+ .hf-pull-to-refresh__indicator {
2569
+ align-items: center;
2570
+ display: flex;
2571
+ height: max(40px, var(--hf-pull-distance));
2572
+ justify-content: center;
2573
+ left: 0;
2574
+ position: absolute;
2575
+ right: 0;
2576
+ top: 0;
2577
+ }
2578
+ .hf-pull-to-refresh__indicator button {
2579
+ background: transparent;
2580
+ border: 0;
2581
+ color: var(--hf-color-primary);
2582
+ cursor: pointer;
2583
+ font: inherit;
2584
+ font-size: 12px;
2585
+ font-weight: 700;
2586
+ min-height: 34px;
2587
+ }
2588
+ .hf-pull-to-refresh__content {
2589
+ padding-top: 40px;
2590
+ transition: transform var(--hf-motion-duration);
2591
+ }
2592
+ .hf-pull-to-refresh--dragging .hf-pull-to-refresh__content {
2593
+ transition: none;
2594
+ }
2595
+ .hf-mobile-content-navigation {
2596
+ background: var(--hf-color-background);
2597
+ display: grid;
2598
+ grid-template-rows: minmax(0, 1fr) auto;
2599
+ min-height: 320px;
2600
+ overflow: hidden;
2601
+ }
2602
+ .hf-mobile-content-navigation__body,
2603
+ .hf-mobile-content-navigation__body > .hf-pull-to-refresh {
2604
+ min-height: 0;
2605
+ overflow: auto;
2606
+ }
2607
+ .hf-mobile-content-navigation--refreshable .hf-mobile-content-navigation__body {
2608
+ overflow: hidden;
2609
+ }
2610
+ .hf-mobile-content-navigation--refreshable .hf-pull-to-refresh {
2611
+ height: 100%;
2612
+ }
1720
2613
  .hf-shrink-nav {
1721
2614
  border-radius: 0;
1722
2615
  border-width: 0 0 1px;
@@ -1775,6 +2668,10 @@
1775
2668
  .hf-shrink-nav__items {
1776
2669
  display: none;
1777
2670
  }
2671
+ .hf-back-to-top {
2672
+ bottom: 16px;
2673
+ right: 16px;
2674
+ }
1778
2675
  }
1779
2676
  @media (prefers-reduced-motion: reduce) {
1780
2677
  .hf-mobile-nav__panel,
@@ -1784,7 +2681,10 @@
1784
2681
  animation: none;
1785
2682
  }
1786
2683
  .hf-sidebar__collapse .hf-icon,
1787
- .hf-menu__chevron {
2684
+ .hf-menu__chevron,
2685
+ .hf-hierarchical-sidebar__chevron,
2686
+ .hf-back-to-top,
2687
+ .hf-pull-to-refresh__content {
1788
2688
  transition: none;
1789
2689
  }
1790
2690
  }
@@ -3561,44 +4461,6 @@
3561
4461
  padding: 36px !important;
3562
4462
  text-align: center !important;
3563
4463
  }
3564
- .hf-tree ul {
3565
- list-style: none;
3566
- margin: 0;
3567
- padding: 0;
3568
- }
3569
- .hf-tree li > div {
3570
- align-items: center;
3571
- border-radius: 9px;
3572
- display: flex;
3573
- min-height: 36px;
3574
- }
3575
- .hf-tree li > div:hover,
3576
- .hf-tree li > div.is-selected {
3577
- background: #edf6ff;
3578
- }
3579
- .hf-tree li > div > span:first-child,
3580
- .hf-tree li > div > button:first-child {
3581
- background: transparent;
3582
- border: 0;
3583
- color: var(--hf-color-text-muted);
3584
- display: grid;
3585
- height: 28px;
3586
- padding: 0;
3587
- place-items: center;
3588
- width: 28px;
3589
- }
3590
- .hf-tree li > div > button:last-child {
3591
- background: transparent;
3592
- border: 0;
3593
- color: var(--hf-color-text);
3594
- flex: 1;
3595
- padding: 8px;
3596
- text-align: left;
3597
- }
3598
- .hf-tree li > div.is-selected > button:last-child {
3599
- color: var(--hf-color-primary);
3600
- font-weight: 650;
3601
- }
3602
4464
  .hf-steps {
3603
4465
  display: flex;
3604
4466
  list-style: none;
@@ -3834,7 +4696,7 @@
3834
4696
  background: var(--hf-color-surface);
3835
4697
  color: var(--hf-color-text);
3836
4698
  }
3837
- .hf-theme--dark :is(.hf-dropdown__menu button:hover, .hf-command__list button[aria-selected=true], .hf-tree li > div:hover, .hf-tree li > div.is-selected, .hf-tree-select > div button:hover) {
4699
+ .hf-theme--dark :is(.hf-dropdown__menu button:hover, .hf-command__list button[aria-selected=true], .hf-tree-select > div button:hover) {
3838
4700
  background: #22364d;
3839
4701
  }
3840
4702
  .hf-theme--high-contrast :is(button, input, select, textarea) {
@@ -6387,6 +7249,131 @@
6387
7249
  color: var(--hf-color-text);
6388
7250
  }
6389
7251
 
7252
+ /* src/data-display/tree.css */
7253
+ .hf-tree {
7254
+ min-width: 0;
7255
+ color: var(--hf-color-text);
7256
+ font-size: 14px;
7257
+ }
7258
+ .hf-tree ul {
7259
+ list-style: none;
7260
+ margin: 0;
7261
+ padding: 0;
7262
+ }
7263
+ .hf-tree li {
7264
+ outline: none;
7265
+ }
7266
+ .hf-tree .hf-tree__row {
7267
+ position: relative;
7268
+ display: flex;
7269
+ align-items: center;
7270
+ gap: 6px;
7271
+ min-height: 36px;
7272
+ padding: 2px 10px 2px calc(var(--hf-tree-depth) * 20px + 6px);
7273
+ border: 1px solid transparent;
7274
+ border-radius: var(--hf-radius-control);
7275
+ cursor: pointer;
7276
+ transition: background var(--hf-motion-duration);
7277
+ }
7278
+ .hf-tree .hf-tree__row:hover {
7279
+ background: var(--hf-color-background);
7280
+ }
7281
+ .hf-tree .hf-tree__row.is-selected {
7282
+ background: color-mix(in srgb, var(--hf-color-primary) 10%, var(--hf-color-surface));
7283
+ color: var(--hf-color-primary);
7284
+ }
7285
+ .hf-tree__row.is-selected::after {
7286
+ content: "";
7287
+ position: absolute;
7288
+ inset: 8px auto 8px 0;
7289
+ width: 3px;
7290
+ border-radius: 2px;
7291
+ background: var(--hf-color-primary);
7292
+ }
7293
+ .hf-tree li:focus-visible > .hf-tree__row {
7294
+ outline: 2px solid var(--hf-color-primary);
7295
+ outline-offset: -2px;
7296
+ }
7297
+ .hf-tree [aria-disabled=true] > .hf-tree__row {
7298
+ opacity: .45;
7299
+ cursor: not-allowed;
7300
+ }
7301
+ .hf-tree [aria-disabled=true] > .hf-tree__row:hover {
7302
+ background: transparent;
7303
+ }
7304
+ .hf-tree__toggle,
7305
+ .hf-tree__spacer {
7306
+ flex: 0 0 22px;
7307
+ width: 22px;
7308
+ height: 28px;
7309
+ }
7310
+ .hf-tree__toggle {
7311
+ display: grid;
7312
+ place-items: center;
7313
+ padding: 0;
7314
+ border: 0;
7315
+ border-radius: var(--hf-radius-control);
7316
+ background: transparent;
7317
+ color: var(--hf-color-text-muted);
7318
+ cursor: pointer;
7319
+ }
7320
+ .hf-tree__toggle:hover:not(:disabled) {
7321
+ background: color-mix(in srgb, var(--hf-color-primary) 12%, transparent);
7322
+ }
7323
+ .hf-tree__toggle:disabled {
7324
+ cursor: not-allowed;
7325
+ }
7326
+ .hf-tree__toggle svg {
7327
+ transform: rotate(-90deg);
7328
+ transition: transform var(--hf-motion-duration);
7329
+ }
7330
+ .hf-tree__toggle svg.is-open {
7331
+ transform: rotate(0);
7332
+ }
7333
+ .hf-tree__icon {
7334
+ display: flex;
7335
+ flex: 0 0 18px;
7336
+ color: var(--hf-color-text-muted);
7337
+ }
7338
+ .hf-tree__icon.is-folder {
7339
+ color: var(--hf-color-primary);
7340
+ }
7341
+ .hf-tree__label {
7342
+ min-width: 0;
7343
+ flex: 1;
7344
+ overflow-wrap: anywhere;
7345
+ line-height: 1.6;
7346
+ padding: 4px 0;
7347
+ }
7348
+ .hf-tree__row.is-selected .hf-tree__label {
7349
+ font-weight: 650;
7350
+ }
7351
+ .hf-tree__guides {
7352
+ display: none;
7353
+ position: absolute;
7354
+ inset: 0 auto 0 16px;
7355
+ pointer-events: none;
7356
+ }
7357
+ .hf-tree--lines .hf-tree__guides {
7358
+ display: flex;
7359
+ }
7360
+ .hf-tree__guides i {
7361
+ width: 20px;
7362
+ border-left: 1px solid var(--hf-color-border);
7363
+ box-sizing: border-box;
7364
+ }
7365
+ .hf-tree__empty {
7366
+ padding: 28px 16px;
7367
+ text-align: center;
7368
+ color: var(--hf-color-text-muted);
7369
+ }
7370
+ @media (prefers-reduced-motion: reduce) {
7371
+ .hf-tree .hf-tree__row,
7372
+ .hf-tree__toggle svg {
7373
+ transition: none;
7374
+ }
7375
+ }
7376
+
6390
7377
  /* src/essentials.css */
6391
7378
 
6392
7379
  /* src/scheduling.css */
@@ -6473,4 +7460,389 @@
6473
7460
  .hf-availability .is-unavailable {
6474
7461
  background: #dce5ed;
6475
7462
  }
7463
+
7464
+ /* src/confirmation-patterns.css */
7465
+ .hf-hold-confirm,
7466
+ .hf-typed-confirm {
7467
+ display: grid;
7468
+ gap: 12px;
7469
+ min-width: 0;
7470
+ color: var(--hf-color-text);
7471
+ overflow-wrap: anywhere;
7472
+ }
7473
+ .hf-hold-confirm p,
7474
+ .hf-typed-confirm p,
7475
+ .hf-typed-confirm h3 {
7476
+ margin: 0;
7477
+ }
7478
+ .hf-confirm-hint {
7479
+ color: var(--hf-color-text-muted);
7480
+ font-size: 13px;
7481
+ }
7482
+ .hf-confirm-error {
7483
+ padding: 8px 12px;
7484
+ border-inline-start: 3px solid currentColor;
7485
+ font-size: 13px;
7486
+ }
7487
+ .hf-hold-confirm__button {
7488
+ touch-action: none;
7489
+ user-select: none;
7490
+ }
7491
+ .hf-hold-confirm__track {
7492
+ height: 4px;
7493
+ background: var(--hf-color-border);
7494
+ overflow: hidden;
7495
+ }
7496
+ .hf-hold-confirm__track > span {
7497
+ display: block;
7498
+ height: 100%;
7499
+ background: var(--hf-color-primary);
7500
+ }
7501
+ .hf-hold-confirm__alternative {
7502
+ border: 1px solid var(--hf-color-border);
7503
+ padding: 16px;
7504
+ display: grid;
7505
+ gap: 12px;
7506
+ }
7507
+ .hf-confirm-actions {
7508
+ display: flex;
7509
+ flex-wrap: wrap;
7510
+ gap: 8px;
7511
+ }
7512
+ .hf-typed-confirm code {
7513
+ font-family: inherit;
7514
+ color: var(--hf-color-primary);
7515
+ white-space: pre-wrap;
7516
+ }
7517
+ .hf-typed-confirm .hf-button,
7518
+ .hf-hold-confirm .hf-button {
7519
+ white-space: normal;
7520
+ overflow-wrap: anywhere;
7521
+ }
7522
+
7523
+ /* src/row-action-patterns.css */
7524
+ .hf-swipe-actions,
7525
+ .hf-checklist-confirm {
7526
+ display: grid;
7527
+ gap: 12px;
7528
+ min-width: 0;
7529
+ color: var(--hf-color-text);
7530
+ overflow-wrap: anywhere;
7531
+ }
7532
+ .hf-swipe-actions p,
7533
+ .hf-checklist-confirm p,
7534
+ .hf-checklist-confirm h3 {
7535
+ margin: 0;
7536
+ }
7537
+ .hf-swipe-actions__viewport {
7538
+ position: relative;
7539
+ overflow: hidden;
7540
+ border: 1px solid var(--hf-color-border);
7541
+ touch-action: pan-y;
7542
+ }
7543
+ .hf-swipe-actions__viewport:focus-visible {
7544
+ outline: 2px solid var(--hf-color-primary);
7545
+ outline-offset: 2px;
7546
+ }
7547
+ .hf-swipe-actions__content {
7548
+ position: relative;
7549
+ min-height: 112px;
7550
+ padding: 16px;
7551
+ background: var(--hf-color-surface);
7552
+ }
7553
+ .hf-swipe-actions__tools {
7554
+ position: absolute;
7555
+ inset: 0 0 0 auto;
7556
+ width: 144px;
7557
+ padding: 8px;
7558
+ box-sizing: border-box;
7559
+ display: flex;
7560
+ flex-direction: column;
7561
+ justify-content: center;
7562
+ gap: 8px;
7563
+ overflow-y: auto;
7564
+ }
7565
+ .hf-swipe-actions .hf-button {
7566
+ white-space: normal;
7567
+ overflow-wrap: anywhere;
7568
+ }
7569
+ .hf-checklist-confirm__items {
7570
+ display: grid;
7571
+ gap: 12px;
7572
+ }
7573
+ .hf-checklist-confirm .hf-choice-control {
7574
+ min-width: 0;
7575
+ align-items: start;
7576
+ }
7577
+ .hf-checklist-confirm .hf-choice-control > span:last-child {
7578
+ min-width: 0;
7579
+ }
7580
+ .hf-row-hint {
7581
+ color: var(--hf-color-text-muted);
7582
+ font-size: 13px;
7583
+ }
7584
+ .hf-row-error {
7585
+ padding: 8px 12px;
7586
+ border-inline-start: 3px solid currentColor;
7587
+ }
7588
+
7589
+ /* src/undo-patterns.css */
7590
+ .hf-undo-notice {
7591
+ display: flex;
7592
+ align-items: flex-start;
7593
+ gap: 20px;
7594
+ padding: 20px;
7595
+ border: 1px solid var(--hf-color-border);
7596
+ border-inline-start: 3px solid var(--hf-color-primary);
7597
+ border-radius: var(--hf-radius-panel);
7598
+ color: var(--hf-color-text);
7599
+ background: var(--hf-color-surface);
7600
+ }
7601
+ .hf-undo-notice__content {
7602
+ flex: 1;
7603
+ min-width: 0;
7604
+ overflow-wrap: anywhere;
7605
+ }
7606
+ .hf-undo-notice p {
7607
+ margin: 0;
7608
+ }
7609
+ .hf-undo-notice__message {
7610
+ font-weight: 600;
7611
+ line-height: 1.6;
7612
+ }
7613
+ .hf-undo-notice .hf-undo-notice__status,
7614
+ .hf-undo-notice .hf-undo-notice__deadline {
7615
+ margin-top: 6px;
7616
+ color: var(--hf-color-text-muted);
7617
+ font-size: 13px;
7618
+ line-height: 1.6;
7619
+ }
7620
+ .hf-undo-notice__deadline {
7621
+ font-variant-numeric: tabular-nums;
7622
+ }
7623
+ .hf-undo-notice .hf-undo-notice__error {
7624
+ margin-top: 10px;
7625
+ padding: 8px 12px;
7626
+ border-radius: var(--hf-radius-control);
7627
+ line-height: 1.6;
7628
+ }
7629
+ .hf-undo-notice > .hf-button {
7630
+ flex-shrink: 0;
7631
+ max-width: 45%;
7632
+ white-space: normal;
7633
+ overflow-wrap: anywhere;
7634
+ }
7635
+ .hf-undo-notice > .hf-button[aria-disabled=true] {
7636
+ opacity: .6;
7637
+ cursor: default;
7638
+ }
7639
+ @media (max-width: 480px) {
7640
+ .hf-undo-notice {
7641
+ flex-direction: column;
7642
+ gap: 12px;
7643
+ padding: 16px;
7644
+ }
7645
+ .hf-undo-notice > .hf-button {
7646
+ max-width: 100%;
7647
+ }
7648
+ }
7649
+
7650
+ /* src/reading-progress.css */
7651
+ .hf-reading-progress {
7652
+ width: 100%;
7653
+ min-width: 0;
7654
+ color: var(--hf-color-text);
7655
+ }
7656
+ .hf-reading-progress__caption {
7657
+ display: flex;
7658
+ justify-content: space-between;
7659
+ gap: 12px;
7660
+ margin-bottom: 8px;
7661
+ font-size: 12px;
7662
+ font-variant-numeric: tabular-nums;
7663
+ overflow-wrap: anywhere;
7664
+ }
7665
+ .hf-reading-progress__caption > :last-child {
7666
+ flex-shrink: 0;
7667
+ }
7668
+ .hf-reading-progress__track {
7669
+ height: 4px;
7670
+ overflow: hidden;
7671
+ background: var(--hf-color-border);
7672
+ }
7673
+ .hf-reading-progress__fill {
7674
+ display: block;
7675
+ height: 100%;
7676
+ background: var(--hf-color-primary);
7677
+ }
7678
+ @media (forced-colors: active) {
7679
+ .hf-reading-progress__track {
7680
+ border: 1px solid CanvasText;
7681
+ }
7682
+ .hf-reading-progress__fill {
7683
+ background: Highlight;
7684
+ forced-color-adjust: none;
7685
+ }
7686
+ }
7687
+
7688
+ /* src/content-loading.css */
7689
+ .hf-content-loading {
7690
+ display: grid;
7691
+ justify-items: center;
7692
+ gap: 8px;
7693
+ padding: 16px;
7694
+ color: var(--hf-color-text);
7695
+ }
7696
+ .hf-content-loading p {
7697
+ margin: 0;
7698
+ overflow-wrap: anywhere;
7699
+ }
7700
+ .hf-infinite-scroll,
7701
+ .hf-lazy-load {
7702
+ min-width: 0;
7703
+ }
7704
+ .hf-infinite-scroll__sentinel {
7705
+ height: 1px;
7706
+ }
7707
+ .hf-lazy-load {
7708
+ display: grid;
7709
+ align-content: start;
7710
+ gap: 12px;
7711
+ }
7712
+
7713
+ /* src/optimistic-update.css */
7714
+ .hf-optimistic-update {
7715
+ min-width: 0;
7716
+ color: var(--hf-color-text);
7717
+ }
7718
+ .hf-optimistic-update__status,
7719
+ .hf-optimistic-update__error {
7720
+ margin: 8px 0 0;
7721
+ font-size: 13px;
7722
+ overflow-wrap: anywhere;
7723
+ }
7724
+ .hf-optimistic-update__status {
7725
+ min-height: 1.5em;
7726
+ color: var(--hf-color-text-muted);
7727
+ }
7728
+
7729
+ /* src/task-progress.css */
7730
+ .hf-task-progress {
7731
+ min-width: 0;
7732
+ padding: 20px;
7733
+ border: 1px solid var(--hf-color-border);
7734
+ border-radius: var(--hf-radius-panel);
7735
+ background: var(--hf-color-surface);
7736
+ color: var(--hf-color-text);
7737
+ }
7738
+ .hf-task-progress__header {
7739
+ display: flex;
7740
+ align-items: flex-start;
7741
+ justify-content: space-between;
7742
+ gap: 16px;
7743
+ }
7744
+ .hf-task-progress__header h3,
7745
+ .hf-task-progress__header p {
7746
+ margin: 0;
7747
+ }
7748
+ .hf-task-progress__header p {
7749
+ margin-top: 4px;
7750
+ color: var(--hf-color-text-muted);
7751
+ font-size: 13px;
7752
+ overflow-wrap: anywhere;
7753
+ }
7754
+ .hf-task-progress__header > strong {
7755
+ color: var(--hf-color-primary);
7756
+ font-variant-numeric: tabular-nums;
7757
+ }
7758
+ .hf-task-progress__track {
7759
+ height: 6px;
7760
+ margin: 16px 0 20px;
7761
+ overflow: hidden;
7762
+ border-radius: var(--hf-radius-control);
7763
+ background: var(--hf-color-background);
7764
+ }
7765
+ .hf-task-progress__track span {
7766
+ display: block;
7767
+ width: 0;
7768
+ height: 100%;
7769
+ border-radius: inherit;
7770
+ background: var(--hf-color-primary);
7771
+ transition: width .24s ease;
7772
+ }
7773
+ .hf-task-progress__stages {
7774
+ display: grid;
7775
+ gap: 12px;
7776
+ margin: 0;
7777
+ padding: 0;
7778
+ list-style: none;
7779
+ }
7780
+ .hf-task-progress__stages li {
7781
+ display: grid;
7782
+ grid-template-columns: 28px minmax(0, 1fr);
7783
+ gap: 10px;
7784
+ align-items: start;
7785
+ color: var(--hf-color-text-muted);
7786
+ }
7787
+ .hf-task-progress__stages li[data-status=active] {
7788
+ color: var(--hf-color-text);
7789
+ }
7790
+ .hf-task-progress__stages li[data-status=complete] {
7791
+ color: var(--hf-color-success);
7792
+ }
7793
+ .hf-task-progress__stages li[data-status=error] {
7794
+ color: var(--hf-color-danger);
7795
+ }
7796
+ .hf-task-progress__marker {
7797
+ display: grid;
7798
+ place-items: center;
7799
+ width: 26px;
7800
+ height: 26px;
7801
+ border: 1px solid currentColor;
7802
+ border-radius: var(--hf-radius-control);
7803
+ font-size: 12px;
7804
+ font-weight: 700;
7805
+ }
7806
+ .hf-task-progress__stages strong {
7807
+ display: block;
7808
+ color: currentColor;
7809
+ }
7810
+ .hf-task-progress__stages p {
7811
+ margin: 2px 0 0;
7812
+ color: var(--hf-color-text-muted);
7813
+ font-size: 13px;
7814
+ overflow-wrap: anywhere;
7815
+ }
7816
+ .hf-task-progress__error {
7817
+ margin: 16px 0 0;
7818
+ color: var(--hf-color-danger);
7819
+ }
7820
+ .hf-task-progress__result {
7821
+ margin-top: 16px;
7822
+ padding: 14px;
7823
+ border-radius: var(--hf-radius-control);
7824
+ background: var(--hf-color-background);
7825
+ }
7826
+ .hf-task-progress__actions {
7827
+ display: flex;
7828
+ flex-wrap: wrap;
7829
+ gap: 8px;
7830
+ margin-top: 18px;
7831
+ }
7832
+ @media (prefers-reduced-motion: reduce) {
7833
+ .hf-task-progress__track span {
7834
+ transition: none;
7835
+ }
7836
+ }
7837
+ @media (max-width: 480px) {
7838
+ .hf-task-progress {
7839
+ padding: 16px;
7840
+ }
7841
+ .hf-task-progress__header {
7842
+ gap: 8px;
7843
+ }
7844
+ .hf-task-progress__actions .hf-button {
7845
+ width: 100%;
7846
+ }
7847
+ }
6476
7848
  /*# sourceMappingURL=index.css.map */