@hxdhxd/harmony-flow-ui 0.1.2 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.css CHANGED
@@ -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 {
@@ -6473,4 +7171,269 @@
6473
7171
  .hf-availability .is-unavailable {
6474
7172
  background: #dce5ed;
6475
7173
  }
7174
+
7175
+ /* src/confirmation-patterns.css */
7176
+ .hf-hold-confirm,
7177
+ .hf-typed-confirm {
7178
+ display: grid;
7179
+ gap: 12px;
7180
+ min-width: 0;
7181
+ color: var(--hf-color-text);
7182
+ overflow-wrap: anywhere;
7183
+ }
7184
+ .hf-hold-confirm p,
7185
+ .hf-typed-confirm p,
7186
+ .hf-typed-confirm h3 {
7187
+ margin: 0;
7188
+ }
7189
+ .hf-confirm-hint {
7190
+ color: var(--hf-color-text-muted);
7191
+ font-size: 13px;
7192
+ }
7193
+ .hf-confirm-error {
7194
+ padding: 8px 12px;
7195
+ border-inline-start: 3px solid currentColor;
7196
+ font-size: 13px;
7197
+ }
7198
+ .hf-hold-confirm__button {
7199
+ touch-action: none;
7200
+ user-select: none;
7201
+ }
7202
+ .hf-hold-confirm__track {
7203
+ height: 4px;
7204
+ background: var(--hf-color-border);
7205
+ overflow: hidden;
7206
+ }
7207
+ .hf-hold-confirm__track > span {
7208
+ display: block;
7209
+ height: 100%;
7210
+ background: var(--hf-color-primary);
7211
+ }
7212
+ .hf-hold-confirm__alternative {
7213
+ border: 1px solid var(--hf-color-border);
7214
+ padding: 16px;
7215
+ display: grid;
7216
+ gap: 12px;
7217
+ }
7218
+ .hf-confirm-actions {
7219
+ display: flex;
7220
+ flex-wrap: wrap;
7221
+ gap: 8px;
7222
+ }
7223
+ .hf-typed-confirm code {
7224
+ font-family: inherit;
7225
+ color: var(--hf-color-primary);
7226
+ white-space: pre-wrap;
7227
+ }
7228
+ .hf-typed-confirm .hf-button,
7229
+ .hf-hold-confirm .hf-button {
7230
+ white-space: normal;
7231
+ overflow-wrap: anywhere;
7232
+ }
7233
+
7234
+ /* src/row-action-patterns.css */
7235
+ .hf-swipe-actions,
7236
+ .hf-checklist-confirm {
7237
+ display: grid;
7238
+ gap: 12px;
7239
+ min-width: 0;
7240
+ color: var(--hf-color-text);
7241
+ overflow-wrap: anywhere;
7242
+ }
7243
+ .hf-swipe-actions p,
7244
+ .hf-checklist-confirm p,
7245
+ .hf-checklist-confirm h3 {
7246
+ margin: 0;
7247
+ }
7248
+ .hf-swipe-actions__viewport {
7249
+ position: relative;
7250
+ overflow: hidden;
7251
+ border: 1px solid var(--hf-color-border);
7252
+ touch-action: pan-y;
7253
+ }
7254
+ .hf-swipe-actions__viewport:focus-visible {
7255
+ outline: 2px solid var(--hf-color-primary);
7256
+ outline-offset: 2px;
7257
+ }
7258
+ .hf-swipe-actions__content {
7259
+ position: relative;
7260
+ min-height: 112px;
7261
+ padding: 16px;
7262
+ background: var(--hf-color-surface);
7263
+ }
7264
+ .hf-swipe-actions__tools {
7265
+ position: absolute;
7266
+ inset: 0 0 0 auto;
7267
+ width: 144px;
7268
+ padding: 8px;
7269
+ box-sizing: border-box;
7270
+ display: flex;
7271
+ flex-direction: column;
7272
+ justify-content: center;
7273
+ gap: 8px;
7274
+ overflow-y: auto;
7275
+ }
7276
+ .hf-swipe-actions .hf-button {
7277
+ white-space: normal;
7278
+ overflow-wrap: anywhere;
7279
+ }
7280
+ .hf-checklist-confirm__items {
7281
+ display: grid;
7282
+ gap: 12px;
7283
+ }
7284
+ .hf-checklist-confirm .hf-choice-control {
7285
+ min-width: 0;
7286
+ align-items: start;
7287
+ }
7288
+ .hf-checklist-confirm .hf-choice-control > span:last-child {
7289
+ min-width: 0;
7290
+ }
7291
+ .hf-row-hint {
7292
+ color: var(--hf-color-text-muted);
7293
+ font-size: 13px;
7294
+ }
7295
+ .hf-row-error {
7296
+ padding: 8px 12px;
7297
+ border-inline-start: 3px solid currentColor;
7298
+ }
7299
+
7300
+ /* src/undo-patterns.css */
7301
+ .hf-undo-notice {
7302
+ display: flex;
7303
+ align-items: flex-start;
7304
+ gap: 20px;
7305
+ padding: 20px;
7306
+ border: 1px solid var(--hf-color-border);
7307
+ border-inline-start: 3px solid var(--hf-color-primary);
7308
+ border-radius: var(--hf-radius-panel);
7309
+ color: var(--hf-color-text);
7310
+ background: var(--hf-color-surface);
7311
+ }
7312
+ .hf-undo-notice__content {
7313
+ flex: 1;
7314
+ min-width: 0;
7315
+ overflow-wrap: anywhere;
7316
+ }
7317
+ .hf-undo-notice p {
7318
+ margin: 0;
7319
+ }
7320
+ .hf-undo-notice__message {
7321
+ font-weight: 600;
7322
+ line-height: 1.6;
7323
+ }
7324
+ .hf-undo-notice .hf-undo-notice__status,
7325
+ .hf-undo-notice .hf-undo-notice__deadline {
7326
+ margin-top: 6px;
7327
+ color: var(--hf-color-text-muted);
7328
+ font-size: 13px;
7329
+ line-height: 1.6;
7330
+ }
7331
+ .hf-undo-notice__deadline {
7332
+ font-variant-numeric: tabular-nums;
7333
+ }
7334
+ .hf-undo-notice .hf-undo-notice__error {
7335
+ margin-top: 10px;
7336
+ padding: 8px 12px;
7337
+ border-radius: var(--hf-radius-control);
7338
+ line-height: 1.6;
7339
+ }
7340
+ .hf-undo-notice > .hf-button {
7341
+ flex-shrink: 0;
7342
+ max-width: 45%;
7343
+ white-space: normal;
7344
+ overflow-wrap: anywhere;
7345
+ }
7346
+ .hf-undo-notice > .hf-button[aria-disabled=true] {
7347
+ opacity: .6;
7348
+ cursor: default;
7349
+ }
7350
+ @media (max-width: 480px) {
7351
+ .hf-undo-notice {
7352
+ flex-direction: column;
7353
+ gap: 12px;
7354
+ padding: 16px;
7355
+ }
7356
+ .hf-undo-notice > .hf-button {
7357
+ max-width: 100%;
7358
+ }
7359
+ }
7360
+
7361
+ /* src/reading-progress.css */
7362
+ .hf-reading-progress {
7363
+ width: 100%;
7364
+ min-width: 0;
7365
+ color: var(--hf-color-text);
7366
+ }
7367
+ .hf-reading-progress__caption {
7368
+ display: flex;
7369
+ justify-content: space-between;
7370
+ gap: 12px;
7371
+ margin-bottom: 8px;
7372
+ font-size: 12px;
7373
+ font-variant-numeric: tabular-nums;
7374
+ overflow-wrap: anywhere;
7375
+ }
7376
+ .hf-reading-progress__caption > :last-child {
7377
+ flex-shrink: 0;
7378
+ }
7379
+ .hf-reading-progress__track {
7380
+ height: 4px;
7381
+ overflow: hidden;
7382
+ background: var(--hf-color-border);
7383
+ }
7384
+ .hf-reading-progress__fill {
7385
+ display: block;
7386
+ height: 100%;
7387
+ background: var(--hf-color-primary);
7388
+ }
7389
+ @media (forced-colors: active) {
7390
+ .hf-reading-progress__track {
7391
+ border: 1px solid CanvasText;
7392
+ }
7393
+ .hf-reading-progress__fill {
7394
+ background: Highlight;
7395
+ forced-color-adjust: none;
7396
+ }
7397
+ }
7398
+
7399
+ /* src/content-loading.css */
7400
+ .hf-content-loading {
7401
+ display: grid;
7402
+ justify-items: center;
7403
+ gap: 8px;
7404
+ padding: 16px;
7405
+ color: var(--hf-color-text);
7406
+ }
7407
+ .hf-content-loading p {
7408
+ margin: 0;
7409
+ overflow-wrap: anywhere;
7410
+ }
7411
+ .hf-infinite-scroll,
7412
+ .hf-lazy-load {
7413
+ min-width: 0;
7414
+ }
7415
+ .hf-infinite-scroll__sentinel {
7416
+ height: 1px;
7417
+ }
7418
+ .hf-lazy-load {
7419
+ display: grid;
7420
+ align-content: start;
7421
+ gap: 12px;
7422
+ }
7423
+
7424
+ /* src/optimistic-update.css */
7425
+ .hf-optimistic-update {
7426
+ min-width: 0;
7427
+ color: var(--hf-color-text);
7428
+ }
7429
+ .hf-optimistic-update__status,
7430
+ .hf-optimistic-update__error {
7431
+ margin: 8px 0 0;
7432
+ font-size: 13px;
7433
+ overflow-wrap: anywhere;
7434
+ }
7435
+ .hf-optimistic-update__status {
7436
+ min-height: 1.5em;
7437
+ color: var(--hf-color-text-muted);
7438
+ }
6476
7439
  /*# sourceMappingURL=index.css.map */