@cccarv82/freya 2.14.1 → 2.16.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/cli/web-ui.css CHANGED
@@ -603,12 +603,15 @@ body {
603
603
 
604
604
  .promptShell {
605
605
  display: flex;
606
- justify-content: center;
606
+ flex-direction: column;
607
+ align-items: stretch;
607
608
  width: 100%;
609
+ /* Occupy ~90% of viewport height minus topbar */
610
+ min-height: calc(90vh - 60px);
608
611
  }
609
612
 
610
613
  .promptBar {
611
- width: min(960px, 100%);
614
+ width: 100%;
612
615
  background: var(--paper);
613
616
  backdrop-filter: blur(16px);
614
617
  -webkit-backdrop-filter: blur(16px);
@@ -1612,4 +1615,455 @@ textarea:focus {
1612
1615
 
1613
1616
  * {
1614
1617
  border-radius: 0 !important;
1615
- }
1618
+ }
1619
+
1620
+ /* ── Kanban Board ── */
1621
+ .kanban-board {
1622
+ display: grid;
1623
+ grid-template-columns: repeat(4, 1fr);
1624
+ gap: 12px;
1625
+ min-height: 400px;
1626
+ }
1627
+
1628
+ @media (max-width: 1100px) {
1629
+ .kanban-board { grid-template-columns: repeat(2, 1fr); }
1630
+ }
1631
+ @media (max-width: 600px) {
1632
+ .kanban-board { grid-template-columns: 1fr; }
1633
+ }
1634
+
1635
+ .kanban-col {
1636
+ display: flex;
1637
+ flex-direction: column;
1638
+ background: var(--bg);
1639
+ border: 1px solid var(--line2);
1640
+ min-height: 300px;
1641
+ }
1642
+
1643
+ .kanban-col-head {
1644
+ display: flex;
1645
+ justify-content: space-between;
1646
+ align-items: center;
1647
+ padding: 10px 14px;
1648
+ font-size: 11px;
1649
+ font-weight: 800;
1650
+ letter-spacing: 1px;
1651
+ text-transform: uppercase;
1652
+ border-bottom: 2px solid var(--line2);
1653
+ flex-shrink: 0;
1654
+ }
1655
+
1656
+ .kanban-col-head.do-now { border-bottom-color: #ef4444; color: #ef4444; }
1657
+ .kanban-col-head.schedule { border-bottom-color: #3b82f6; color: #3b82f6; }
1658
+ .kanban-col-head.delegate { border-bottom-color: #f97316; color: #f97316; }
1659
+ .kanban-col-head.done { border-bottom-color: #22c55e; color: #22c55e; }
1660
+
1661
+ .kanban-col-count {
1662
+ font-size: 12px;
1663
+ font-weight: 700;
1664
+ padding: 1px 8px;
1665
+ background: var(--paper2);
1666
+ border: 1px solid var(--line2);
1667
+ }
1668
+
1669
+ .kanban-col-body {
1670
+ flex: 1;
1671
+ padding: 8px;
1672
+ display: flex;
1673
+ flex-direction: column;
1674
+ gap: 8px;
1675
+ overflow-y: auto;
1676
+ max-height: 600px;
1677
+ min-height: 80px;
1678
+ transition: background 0.15s;
1679
+ }
1680
+
1681
+ .kanban-col-body.drag-over {
1682
+ background: var(--chip);
1683
+ }
1684
+
1685
+ /* Compact kanban on dashboard (not standalone /kanban page) */
1686
+ body:not([data-page="kanban"]) .kanban-col-body {
1687
+ max-height: 400px;
1688
+ }
1689
+
1690
+ .kanban-card {
1691
+ background: var(--paper);
1692
+ border: 1px solid var(--line2);
1693
+ padding: 10px 12px;
1694
+ cursor: grab;
1695
+ transition: box-shadow 0.15s, opacity 0.15s;
1696
+ display: flex;
1697
+ flex-direction: column;
1698
+ gap: 6px;
1699
+ }
1700
+
1701
+ .kanban-card:hover {
1702
+ box-shadow: var(--shadow2);
1703
+ }
1704
+
1705
+ .kanban-card.dragging {
1706
+ opacity: 0.4;
1707
+ }
1708
+
1709
+ .kanban-card-header {
1710
+ display: flex;
1711
+ align-items: flex-start;
1712
+ gap: 8px;
1713
+ }
1714
+
1715
+ .kanban-pri-dot {
1716
+ width: 8px;
1717
+ height: 8px;
1718
+ flex-shrink: 0;
1719
+ margin-top: 4px;
1720
+ }
1721
+
1722
+ .kanban-card-desc {
1723
+ font-size: 13px;
1724
+ font-weight: 600;
1725
+ color: var(--text);
1726
+ line-height: 1.3;
1727
+ word-break: break-word;
1728
+ }
1729
+
1730
+ .kanban-card-meta {
1731
+ display: flex;
1732
+ gap: 6px;
1733
+ flex-wrap: wrap;
1734
+ align-items: center;
1735
+ }
1736
+
1737
+ .kanban-tag {
1738
+ font-size: 10px;
1739
+ font-weight: 600;
1740
+ padding: 1px 6px;
1741
+ background: var(--chip);
1742
+ color: var(--primary);
1743
+ border: 1px solid var(--line2);
1744
+ font-family: var(--mono);
1745
+ }
1746
+
1747
+ .kanban-due {
1748
+ font-size: 10px;
1749
+ font-weight: 600;
1750
+ padding: 1px 6px;
1751
+ color: var(--muted);
1752
+ border: 1px solid var(--line2);
1753
+ }
1754
+
1755
+ .kanban-due.overdue {
1756
+ background: rgba(239, 68, 68, 0.1);
1757
+ color: #ef4444;
1758
+ border-color: rgba(239, 68, 68, 0.3);
1759
+ }
1760
+
1761
+ .kanban-card-actions {
1762
+ display: flex;
1763
+ gap: 4px;
1764
+ justify-content: flex-end;
1765
+ opacity: 0;
1766
+ transition: opacity 0.15s;
1767
+ }
1768
+
1769
+ .kanban-card:hover .kanban-card-actions {
1770
+ opacity: 1;
1771
+ }
1772
+
1773
+ .kanban-action-btn {
1774
+ background: var(--bg);
1775
+ border: 1px solid var(--line2);
1776
+ color: var(--muted);
1777
+ padding: 2px 8px;
1778
+ font-size: 12px;
1779
+ cursor: pointer;
1780
+ transition: var(--transition);
1781
+ }
1782
+
1783
+ .kanban-action-btn:hover {
1784
+ color: var(--text);
1785
+ background: var(--paper2);
1786
+ }
1787
+
1788
+ .kanban-action-btn.complete-btn:hover {
1789
+ color: #22c55e;
1790
+ border-color: #22c55e;
1791
+ }
1792
+
1793
+ .kanban-owner {
1794
+ font-size: 10px;
1795
+ color: var(--faint);
1796
+ font-style: italic;
1797
+ }
1798
+
1799
+ /* Kanban filter */
1800
+ .kanban-filter {
1801
+ background: var(--bg);
1802
+ border: 1px solid var(--line2);
1803
+ color: var(--text);
1804
+ padding: 5px 10px;
1805
+ font-size: 12px;
1806
+ font-family: var(--mono);
1807
+ min-width: 180px;
1808
+ }
1809
+
1810
+ /* Kanban blockers strip */
1811
+ .kanban-blockers-list {
1812
+ display: flex;
1813
+ flex-wrap: wrap;
1814
+ gap: 8px;
1815
+ }
1816
+
1817
+ .kanban-blocker-card {
1818
+ display: flex;
1819
+ align-items: center;
1820
+ gap: 8px;
1821
+ padding: 8px 12px;
1822
+ background: rgba(239, 68, 68, 0.04);
1823
+ border: 1px solid rgba(239, 68, 68, 0.15);
1824
+ border-left: 3px solid #ef4444;
1825
+ flex: 1 1 300px;
1826
+ max-width: 500px;
1827
+ }
1828
+
1829
+ .kanban-blocker-sev {
1830
+ font-size: 9px;
1831
+ font-weight: 800;
1832
+ letter-spacing: 0.5px;
1833
+ padding: 2px 6px;
1834
+ border: 1px solid;
1835
+ flex-shrink: 0;
1836
+ }
1837
+
1838
+ .kanban-blocker-title {
1839
+ font-size: 12px;
1840
+ font-weight: 600;
1841
+ color: var(--text);
1842
+ flex: 1;
1843
+ min-width: 0;
1844
+ overflow: hidden;
1845
+ text-overflow: ellipsis;
1846
+ white-space: nowrap;
1847
+ }
1848
+
1849
+ /* ── Quick-Add Modal ── */
1850
+ .qa-overlay {
1851
+ position: fixed;
1852
+ inset: 0;
1853
+ background: rgba(0, 0, 0, 0.5);
1854
+ z-index: 9999;
1855
+ display: flex;
1856
+ align-items: center;
1857
+ justify-content: center;
1858
+ }
1859
+
1860
+ .qa-modal {
1861
+ background: var(--bg);
1862
+ border: 1px solid var(--line2);
1863
+ box-shadow: var(--shadow);
1864
+ width: 440px;
1865
+ max-width: 95vw;
1866
+ padding: 16px;
1867
+ display: flex;
1868
+ flex-direction: column;
1869
+ gap: 10px;
1870
+ }
1871
+
1872
+ .qa-header {
1873
+ display: flex;
1874
+ justify-content: space-between;
1875
+ align-items: center;
1876
+ }
1877
+
1878
+ .qa-input {
1879
+ background: var(--paper);
1880
+ border: 1px solid var(--line2);
1881
+ color: var(--text);
1882
+ padding: 8px 10px;
1883
+ font-size: 13px;
1884
+ font-family: var(--sans);
1885
+ width: 100%;
1886
+ resize: none;
1887
+ }
1888
+
1889
+ .qa-input:focus {
1890
+ outline: none;
1891
+ border-color: var(--primary);
1892
+ }
1893
+
1894
+ .qa-select {
1895
+ background: var(--paper);
1896
+ border: 1px solid var(--line2);
1897
+ color: var(--text);
1898
+ padding: 6px 10px;
1899
+ font-size: 12px;
1900
+ flex: 1;
1901
+ }
1902
+
1903
+ .qa-row {
1904
+ display: flex;
1905
+ gap: 8px;
1906
+ align-items: center;
1907
+ }
1908
+
1909
+ .qa-date-wrap {
1910
+ position: relative;
1911
+ width: 160px;
1912
+ display: flex;
1913
+ align-items: center;
1914
+ }
1915
+ .qa-date-text {
1916
+ padding-right: 32px !important;
1917
+ }
1918
+ .qa-date-hidden {
1919
+ position: absolute;
1920
+ top: 0;
1921
+ left: 0;
1922
+ width: 1px;
1923
+ height: 1px;
1924
+ opacity: 0;
1925
+ pointer-events: none;
1926
+ overflow: hidden;
1927
+ clip: rect(0,0,0,0);
1928
+ border: 0;
1929
+ padding: 0;
1930
+ margin: -1px;
1931
+ }
1932
+ .qa-date-btn {
1933
+ position: absolute;
1934
+ right: 4px;
1935
+ top: 50%;
1936
+ transform: translateY(-50%);
1937
+ background: none;
1938
+ border: none;
1939
+ cursor: pointer;
1940
+ font-size: 16px;
1941
+ padding: 2px 4px;
1942
+ line-height: 1;
1943
+ color: var(--muted);
1944
+ opacity: 0.8;
1945
+ transition: opacity 0.15s;
1946
+ }
1947
+ .qa-date-btn:hover {
1948
+ opacity: 1;
1949
+ }
1950
+
1951
+ /* ── Delta Banner ── */
1952
+ .delta-banner {
1953
+ display: flex;
1954
+ align-items: center;
1955
+ gap: 8px;
1956
+ padding: 8px 14px;
1957
+ margin-bottom: 12px;
1958
+ background: var(--chip);
1959
+ border: 1px solid var(--line2);
1960
+ font-size: 12px;
1961
+ color: var(--text);
1962
+ border-left: 3px solid var(--primary);
1963
+ }
1964
+
1965
+ /* ── Detail Panel (click-to-view on kanban cards) ── */
1966
+ .detail-panel-overlay {
1967
+ position: fixed;
1968
+ inset: 0;
1969
+ background: rgba(0,0,0,0.55);
1970
+ display: flex;
1971
+ align-items: center;
1972
+ justify-content: center;
1973
+ z-index: 10000;
1974
+ animation: fadeIn 0.15s ease;
1975
+ }
1976
+ .detail-panel {
1977
+ background: var(--paper);
1978
+ border: 1px solid var(--line2);
1979
+ border-radius: 12px;
1980
+ width: 520px;
1981
+ max-width: 95vw;
1982
+ max-height: 85vh;
1983
+ overflow-y: auto;
1984
+ padding: 20px 24px;
1985
+ box-shadow: 0 12px 40px rgba(0,0,0,0.4);
1986
+ }
1987
+ .detail-panel-header {
1988
+ display: flex;
1989
+ align-items: flex-start;
1990
+ justify-content: space-between;
1991
+ gap: 12px;
1992
+ margin-bottom: 16px;
1993
+ padding-bottom: 12px;
1994
+ border-bottom: 1px solid var(--border);
1995
+ }
1996
+ .detail-panel-title {
1997
+ font-size: 16px;
1998
+ font-weight: 700;
1999
+ color: var(--text);
2000
+ word-break: break-word;
2001
+ }
2002
+ .detail-panel-close {
2003
+ background: none;
2004
+ border: none;
2005
+ color: var(--muted);
2006
+ font-size: 22px;
2007
+ cursor: pointer;
2008
+ padding: 0 4px;
2009
+ line-height: 1;
2010
+ flex-shrink: 0;
2011
+ }
2012
+ .detail-panel-close:hover {
2013
+ color: var(--text);
2014
+ }
2015
+ .detail-panel-grid {
2016
+ display: grid;
2017
+ grid-template-columns: 120px 1fr;
2018
+ gap: 6px 12px;
2019
+ margin-bottom: 12px;
2020
+ }
2021
+ .detail-row-label {
2022
+ font-size: 11px;
2023
+ font-weight: 700;
2024
+ text-transform: uppercase;
2025
+ letter-spacing: 0.5px;
2026
+ color: var(--muted);
2027
+ padding: 3px 0;
2028
+ }
2029
+ .detail-row-value {
2030
+ font-size: 13px;
2031
+ color: var(--text);
2032
+ padding: 3px 0;
2033
+ word-break: break-word;
2034
+ font-family: var(--mono);
2035
+ }
2036
+ .detail-panel-section {
2037
+ margin-top: 12px;
2038
+ padding-top: 12px;
2039
+ border-top: 1px solid var(--border);
2040
+ }
2041
+ .detail-panel-section-title {
2042
+ font-size: 11px;
2043
+ font-weight: 700;
2044
+ text-transform: uppercase;
2045
+ letter-spacing: 0.5px;
2046
+ color: var(--muted);
2047
+ margin-bottom: 8px;
2048
+ }
2049
+ .detail-panel-comment {
2050
+ font-size: 12px;
2051
+ color: var(--text);
2052
+ padding: 6px 10px;
2053
+ background: var(--bg2);
2054
+ border-radius: 6px;
2055
+ margin-bottom: 4px;
2056
+ display: flex;
2057
+ flex-direction: column;
2058
+ gap: 2px;
2059
+ }
2060
+ .detail-panel-comment-date {
2061
+ font-size: 10px;
2062
+ color: var(--muted);
2063
+ font-family: var(--mono);
2064
+ }
2065
+ @keyframes fadeIn {
2066
+ from { opacity: 0; }
2067
+ to { opacity: 1; }
2068
+ }
2069
+