@pitvox/partner-react 0.4.0 → 0.5.1

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/styles.css CHANGED
@@ -1556,9 +1556,53 @@
1556
1556
  /* ─── Driver list in registration panel ────────────────────────── */
1557
1557
 
1558
1558
  .pvx-reg-driver-list {
1559
- display: grid;
1560
- grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr));
1559
+ display: flex;
1560
+ flex-direction: column;
1561
+ max-height: 24rem;
1562
+ overflow-y: auto;
1563
+ }
1564
+
1565
+ .pvx-reg-driver-row {
1566
+ display: flex;
1567
+ align-items: center;
1561
1568
  gap: 0.75rem;
1569
+ padding: 0.5rem 0.75rem;
1570
+ border-bottom: 1px solid var(--pvx-border);
1571
+ }
1572
+
1573
+ .pvx-reg-driver-row:last-child {
1574
+ border-bottom: none;
1575
+ }
1576
+
1577
+ .pvx-reg-driver-row--you {
1578
+ background: rgba(99, 102, 241, 0.1);
1579
+ }
1580
+
1581
+ .pvx-reg-driver-avatar {
1582
+ width: 2rem;
1583
+ height: 2rem;
1584
+ border-radius: 9999px;
1585
+ flex-shrink: 0;
1586
+ object-fit: cover;
1587
+ }
1588
+
1589
+ .pvx-reg-driver-avatar--placeholder {
1590
+ display: flex;
1591
+ align-items: center;
1592
+ justify-content: center;
1593
+ background: #374151;
1594
+ color: var(--pvx-text);
1595
+ font-size: 0.8125rem;
1596
+ font-weight: 600;
1597
+ }
1598
+
1599
+ .pvx-reg-driver-name {
1600
+ font-size: 0.875rem;
1601
+ font-weight: 500;
1602
+ color: var(--pvx-text-primary);
1603
+ overflow: hidden;
1604
+ text-overflow: ellipsis;
1605
+ white-space: nowrap;
1562
1606
  }
1563
1607
 
1564
1608
  /* ═══════════════════════════════════════════════════════════════════════════
@@ -1573,6 +1617,24 @@
1573
1617
  gap: 1.5rem;
1574
1618
  }
1575
1619
 
1620
+ .pvx-dash-row {
1621
+ display: flex;
1622
+ flex-direction: column;
1623
+ gap: 1.5rem;
1624
+ }
1625
+
1626
+ .pvx-dash-row--2col {
1627
+ display: grid;
1628
+ grid-template-columns: 1fr 1fr;
1629
+ gap: 1.5rem;
1630
+ }
1631
+
1632
+ @media (max-width: 768px) {
1633
+ .pvx-dash-row--2col {
1634
+ grid-template-columns: 1fr;
1635
+ }
1636
+ }
1637
+
1576
1638
  /* ─── Driver profile card ──────────────────────────────────────── */
1577
1639
 
1578
1640
  .pvx-dash-profile {
@@ -1625,7 +1687,7 @@
1625
1687
  .pvx-dash-stats {
1626
1688
  display: grid;
1627
1689
  grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
1628
- gap: 0.75rem;
1690
+ gap: 1.5rem;
1629
1691
  }
1630
1692
 
1631
1693
  .pvx-dash-stat-card {
@@ -1760,6 +1822,8 @@
1760
1822
  .pvx-dash-records-list {
1761
1823
  display: flex;
1762
1824
  flex-direction: column;
1825
+ max-height: 24rem;
1826
+ overflow-y: auto;
1763
1827
  }
1764
1828
 
1765
1829
  .pvx-dash-record-row {
@@ -1813,23 +1877,6 @@
1813
1877
  color: var(--pvx-text-primary);
1814
1878
  }
1815
1879
 
1816
- .pvx-dash-records-toggle {
1817
- display: block;
1818
- width: 100%;
1819
- padding: 0.625rem 1rem;
1820
- border: none;
1821
- border-top: 1px solid var(--pvx-border);
1822
- background: transparent;
1823
- color: var(--pvx-accent);
1824
- font-size: 0.8125rem;
1825
- font-weight: 500;
1826
- cursor: pointer;
1827
- transition: color 150ms;
1828
- }
1829
-
1830
- .pvx-dash-records-toggle:hover {
1831
- color: var(--pvx-accent-hover);
1832
- }
1833
1880
 
1834
1881
  /* ─── Game badge ───────────────────────────────────────────────── */
1835
1882
 
@@ -1851,3 +1898,217 @@
1851
1898
  background: rgba(245, 158, 11, 0.2);
1852
1899
  color: #fbbf24;
1853
1900
  }
1901
+
1902
+ /* ═══════════════════════════════════════════════════════════════════
1903
+ Upcoming Events
1904
+ ═══════════════════════════════════════════════════════════════════ */
1905
+
1906
+ .pvx-upcoming-list {
1907
+ display: flex;
1908
+ flex-direction: column;
1909
+ }
1910
+
1911
+ .pvx-upcoming-item {
1912
+ display: flex;
1913
+ justify-content: space-between;
1914
+ align-items: center;
1915
+ padding: 0.75rem 1rem;
1916
+ gap: 1rem;
1917
+ }
1918
+
1919
+ .pvx-upcoming-item + .pvx-upcoming-item {
1920
+ border-top: 1px solid rgba(31, 41, 55, 0.5);
1921
+ }
1922
+
1923
+ .pvx-upcoming-item--next {
1924
+ background: rgba(99, 102, 241, 0.06);
1925
+ }
1926
+
1927
+ .pvx-upcoming-info {
1928
+ display: flex;
1929
+ flex-direction: column;
1930
+ gap: 0.125rem;
1931
+ min-width: 0;
1932
+ }
1933
+
1934
+ .pvx-upcoming-comp {
1935
+ font-size: 0.75rem;
1936
+ color: var(--pvx-text-muted);
1937
+ overflow: hidden;
1938
+ text-overflow: ellipsis;
1939
+ white-space: nowrap;
1940
+ }
1941
+
1942
+ .pvx-upcoming-round {
1943
+ font-weight: 600;
1944
+ font-size: 0.9375rem;
1945
+ color: var(--pvx-text);
1946
+ }
1947
+
1948
+ .pvx-upcoming-time {
1949
+ display: flex;
1950
+ flex-direction: column;
1951
+ align-items: flex-end;
1952
+ gap: 0.125rem;
1953
+ flex-shrink: 0;
1954
+ }
1955
+
1956
+ .pvx-upcoming-date {
1957
+ font-size: 0.8125rem;
1958
+ color: var(--pvx-text-muted);
1959
+ white-space: nowrap;
1960
+ }
1961
+
1962
+ .pvx-upcoming-relative {
1963
+ font-size: 0.75rem;
1964
+ color: var(--pvx-accent);
1965
+ font-weight: 500;
1966
+ }
1967
+
1968
+ .pvx-upcoming-badge {
1969
+ display: inline-block;
1970
+ padding: 0.0625rem 0.375rem;
1971
+ border-radius: 999px;
1972
+ font-size: 0.625rem;
1973
+ font-weight: 700;
1974
+ text-transform: uppercase;
1975
+ letter-spacing: 0.05em;
1976
+ background: var(--pvx-accent);
1977
+ color: #fff;
1978
+ }
1979
+
1980
+ /* ═══════════════════════════════════════════════════════════════════
1981
+ Notifications
1982
+ ═══════════════════════════════════════════════════════════════════ */
1983
+
1984
+ .pvx-notif-badge {
1985
+ display: inline-flex;
1986
+ align-items: center;
1987
+ justify-content: center;
1988
+ min-width: 1.25rem;
1989
+ height: 1.25rem;
1990
+ padding: 0 0.375rem;
1991
+ border-radius: 999px;
1992
+ font-size: 0.6875rem;
1993
+ font-weight: 700;
1994
+ background: var(--pvx-accent);
1995
+ color: #fff;
1996
+ margin-left: 0.375rem;
1997
+ }
1998
+
1999
+ .pvx-notif-mark-all {
2000
+ font-size: 0.75rem;
2001
+ color: var(--pvx-accent);
2002
+ background: none;
2003
+ border: none;
2004
+ cursor: pointer;
2005
+ padding: 0.25rem 0.5rem;
2006
+ border-radius: 0.25rem;
2007
+ transition: background 0.15s;
2008
+ }
2009
+
2010
+ .pvx-notif-mark-all:hover {
2011
+ background: rgba(99, 102, 241, 0.1);
2012
+ }
2013
+
2014
+ .pvx-notif-empty {
2015
+ padding: 1.5rem 1rem;
2016
+ text-align: center;
2017
+ color: var(--pvx-text-dimmed);
2018
+ font-size: 0.875rem;
2019
+ }
2020
+
2021
+ .pvx-notif-list {
2022
+ display: flex;
2023
+ flex-direction: column;
2024
+ max-height: 24rem;
2025
+ overflow-y: auto;
2026
+ }
2027
+
2028
+ .pvx-notif-item {
2029
+ display: flex;
2030
+ align-items: flex-start;
2031
+ gap: 0.75rem;
2032
+ padding: 0.75rem 1rem;
2033
+ border: none;
2034
+ background: none;
2035
+ cursor: pointer;
2036
+ text-align: left;
2037
+ width: 100%;
2038
+ transition: background 0.15s;
2039
+ }
2040
+
2041
+ .pvx-notif-item + .pvx-notif-item {
2042
+ border-top: 1px solid rgba(31, 41, 55, 0.5);
2043
+ }
2044
+
2045
+ .pvx-notif-item:hover {
2046
+ background: rgba(255, 255, 255, 0.03);
2047
+ }
2048
+
2049
+ .pvx-notif-item--unread {
2050
+ background: rgba(99, 102, 241, 0.06);
2051
+ }
2052
+
2053
+ .pvx-notif-item--unread:hover {
2054
+ background: rgba(99, 102, 241, 0.1);
2055
+ }
2056
+
2057
+ .pvx-notif-icon {
2058
+ display: flex;
2059
+ align-items: center;
2060
+ justify-content: center;
2061
+ width: 2rem;
2062
+ height: 2rem;
2063
+ border-radius: 50%;
2064
+ flex-shrink: 0;
2065
+ margin-top: 0.125rem;
2066
+ }
2067
+
2068
+ .pvx-notif-icon svg {
2069
+ width: 1rem;
2070
+ height: 1rem;
2071
+ }
2072
+
2073
+ .pvx-notif-icon--record {
2074
+ background: rgba(34, 197, 94, 0.15);
2075
+ color: #22c55e;
2076
+ }
2077
+
2078
+ .pvx-notif-icon--beaten {
2079
+ background: rgba(239, 68, 68, 0.15);
2080
+ color: #ef4444;
2081
+ }
2082
+
2083
+ .pvx-notif-icon--admin {
2084
+ background: rgba(59, 130, 246, 0.15);
2085
+ color: #3b82f6;
2086
+ }
2087
+
2088
+ .pvx-notif-content {
2089
+ display: flex;
2090
+ flex-direction: column;
2091
+ gap: 0.125rem;
2092
+ min-width: 0;
2093
+ flex: 1;
2094
+ }
2095
+
2096
+ .pvx-notif-message {
2097
+ font-size: 0.875rem;
2098
+ color: var(--pvx-text);
2099
+ line-height: 1.4;
2100
+ }
2101
+
2102
+ .pvx-notif-time {
2103
+ font-size: 0.75rem;
2104
+ color: var(--pvx-text-dimmed);
2105
+ }
2106
+
2107
+ .pvx-notif-dot {
2108
+ width: 0.5rem;
2109
+ height: 0.5rem;
2110
+ border-radius: 50%;
2111
+ background: var(--pvx-accent);
2112
+ flex-shrink: 0;
2113
+ margin-top: 0.375rem;
2114
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pitvox/partner-react",
3
- "version": "0.4.0",
3
+ "version": "0.5.1",
4
4
  "description": "React hooks and styled components for PitVox partner websites — leaderboards, competitions, driver dashboards",
5
5
  "type": "module",
6
6
  "main": "dist/index.cjs",