@mshuja288/aksuicore 0.3.0 → 0.4.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/CHANGELOG.md +24 -0
- package/dist/aksui.css +508 -17
- package/dist/index.cjs +727 -219
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +49 -9
- package/dist/index.d.ts +49 -9
- package/dist/index.js +727 -219
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/patterns/AppShell.tsx +140 -17
- package/src/patterns/RecordWorkspace.tsx +656 -189
- package/src/patterns/index.ts +2 -1
- package/src/primitives/SideNav.tsx +3 -1
- package/src/primitives/Topbar.tsx +38 -8
- package/src/theme/patterns.css +343 -11
- package/src/theme/primitives.css +11 -1
- package/src/theme/shell.css +154 -5
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,30 @@ Versioning follows [VERSIONING.md](./VERSIONING.md).
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.4.1] — 2026-10-12
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
|
|
14
|
+
- Row ⋯ menu no longer hidden under the hover tooltip (portal + higher z-index; tooltips only on fine-pointer hover)
|
|
15
|
+
- Mobile tools no longer render as a sprawling icon strip above the table
|
|
16
|
+
|
|
17
|
+
### Changed
|
|
18
|
+
|
|
19
|
+
- Small screens: compact **Add + Tools** bar; Tools opens a right-side drawer (preview, columns, download, filters)
|
|
20
|
+
|
|
21
|
+
## [0.4.0] — 2026-10-12
|
|
22
|
+
|
|
23
|
+
### Added
|
|
24
|
+
|
|
25
|
+
- `RecordWorkspace` column picker: toggle visible columns (default all), optional `columnPrefsKey` persistence, `exportKey` / `ExportColumnRef`
|
|
26
|
+
- `onDownload(format, columns)` now passes the currently visible columns for smart exports
|
|
27
|
+
- `AppShell` mobile drawer navigation (`mobileNav="drawer"` default) with topbar hamburger — avoids crowded bottom nav on many sections
|
|
28
|
+
- Compact mobile row actions (⋯ menu) in `RecordWorkspace`
|
|
29
|
+
|
|
30
|
+
### Changed
|
|
31
|
+
|
|
32
|
+
- Small screens: side-rail actions sit above the table; sticky Actions column; bottom nav only when `mobileNav` is `bottom` or `hybrid`
|
|
33
|
+
|
|
10
34
|
## [0.3.0] — 2026-10-12
|
|
11
35
|
|
|
12
36
|
### Added
|
package/dist/aksui.css
CHANGED
|
@@ -101,13 +101,19 @@ button.ghost:hover,
|
|
|
101
101
|
button.app-select-trigger:hover,
|
|
102
102
|
button.date-field-trigger:hover,
|
|
103
103
|
button.avatar-button:hover,
|
|
104
|
+
button.topbar-menu-button:hover,
|
|
104
105
|
button.sort-header:hover,
|
|
105
106
|
button.row-action:hover,
|
|
107
|
+
button.row-action-menu-trigger:hover,
|
|
106
108
|
button.date-picker-day:hover,
|
|
107
109
|
button.side-rail-toggle:hover,
|
|
108
110
|
button.side-rail-icon:hover,
|
|
111
|
+
button.side-rail-columns-toggle:hover,
|
|
109
112
|
button.filter-clear:hover,
|
|
110
|
-
button.snackbar-close:hover
|
|
113
|
+
button.snackbar-close:hover,
|
|
114
|
+
button.nav-drawer-close:hover,
|
|
115
|
+
button.tools-mobile-toggle:hover,
|
|
116
|
+
button.tools-drawer-close:hover {
|
|
111
117
|
transform: none;
|
|
112
118
|
}
|
|
113
119
|
|
|
@@ -225,6 +231,10 @@ select:disabled {
|
|
|
225
231
|
min-width: 0;
|
|
226
232
|
}
|
|
227
233
|
|
|
234
|
+
button.topbar-menu-button {
|
|
235
|
+
flex: 0 0 auto;
|
|
236
|
+
}
|
|
237
|
+
|
|
228
238
|
.topbar-logo {
|
|
229
239
|
width: 40px;
|
|
230
240
|
height: 40px;
|
|
@@ -1211,11 +1221,81 @@ button.side-rail-add:hover {
|
|
|
1211
1221
|
background: #2a3546;
|
|
1212
1222
|
}
|
|
1213
1223
|
|
|
1224
|
+
.side-rail-columns,
|
|
1214
1225
|
.side-rail-download {
|
|
1215
1226
|
display: grid;
|
|
1216
1227
|
gap: 8px;
|
|
1217
1228
|
}
|
|
1218
1229
|
|
|
1230
|
+
button.side-rail-columns-toggle {
|
|
1231
|
+
display: inline-flex;
|
|
1232
|
+
align-items: center;
|
|
1233
|
+
justify-content: center;
|
|
1234
|
+
gap: 8px;
|
|
1235
|
+
width: 100%;
|
|
1236
|
+
padding: 10px 12px;
|
|
1237
|
+
border: 1px solid var(--aks-border, #d7dde5);
|
|
1238
|
+
border-radius: var(--aks-radius);
|
|
1239
|
+
background: #fff;
|
|
1240
|
+
color: var(--aks-brand);
|
|
1241
|
+
box-shadow: none;
|
|
1242
|
+
}
|
|
1243
|
+
|
|
1244
|
+
button.side-rail-columns-toggle svg {
|
|
1245
|
+
width: 18px;
|
|
1246
|
+
height: 18px;
|
|
1247
|
+
}
|
|
1248
|
+
|
|
1249
|
+
button.side-rail-columns-toggle:hover {
|
|
1250
|
+
background: #f5f7fa;
|
|
1251
|
+
}
|
|
1252
|
+
|
|
1253
|
+
.side-rail-columns-panel {
|
|
1254
|
+
display: grid;
|
|
1255
|
+
gap: 8px;
|
|
1256
|
+
padding: 8px;
|
|
1257
|
+
border: 1px solid var(--aks-line);
|
|
1258
|
+
border-radius: var(--aks-radius);
|
|
1259
|
+
background: #faf9f7;
|
|
1260
|
+
}
|
|
1261
|
+
|
|
1262
|
+
.side-rail-columns-actions {
|
|
1263
|
+
display: flex;
|
|
1264
|
+
gap: 6px;
|
|
1265
|
+
}
|
|
1266
|
+
|
|
1267
|
+
.side-rail-columns-actions button {
|
|
1268
|
+
flex: 1 1 auto;
|
|
1269
|
+
padding: 6px 8px;
|
|
1270
|
+
font-size: 12px;
|
|
1271
|
+
box-shadow: none;
|
|
1272
|
+
}
|
|
1273
|
+
|
|
1274
|
+
.side-rail-columns-list {
|
|
1275
|
+
display: grid;
|
|
1276
|
+
gap: 6px;
|
|
1277
|
+
max-height: 220px;
|
|
1278
|
+
overflow: auto;
|
|
1279
|
+
}
|
|
1280
|
+
|
|
1281
|
+
label.side-rail-column-option {
|
|
1282
|
+
display: flex;
|
|
1283
|
+
align-items: center;
|
|
1284
|
+
gap: 8px;
|
|
1285
|
+
margin: 0;
|
|
1286
|
+
padding: 4px 2px;
|
|
1287
|
+
color: var(--aks-brand);
|
|
1288
|
+
font-size: 13px;
|
|
1289
|
+
font-weight: 500;
|
|
1290
|
+
}
|
|
1291
|
+
|
|
1292
|
+
label.side-rail-column-option input {
|
|
1293
|
+
width: auto;
|
|
1294
|
+
min-height: 0;
|
|
1295
|
+
margin: 0;
|
|
1296
|
+
accent-color: var(--aks-accent);
|
|
1297
|
+
}
|
|
1298
|
+
|
|
1219
1299
|
button.side-rail-download-toggle {
|
|
1220
1300
|
display: inline-flex;
|
|
1221
1301
|
align-items: center;
|
|
@@ -1471,6 +1551,73 @@ button.sort-header.active .sort-indicator {
|
|
|
1471
1551
|
gap: 6px;
|
|
1472
1552
|
}
|
|
1473
1553
|
|
|
1554
|
+
.row-actions-mobile {
|
|
1555
|
+
display: none;
|
|
1556
|
+
}
|
|
1557
|
+
|
|
1558
|
+
button.row-action-menu-trigger {
|
|
1559
|
+
width: 36px;
|
|
1560
|
+
height: 32px;
|
|
1561
|
+
padding: 0;
|
|
1562
|
+
color: var(--aks-muted);
|
|
1563
|
+
box-shadow: none;
|
|
1564
|
+
}
|
|
1565
|
+
|
|
1566
|
+
button.row-action-menu-trigger svg {
|
|
1567
|
+
width: 18px;
|
|
1568
|
+
height: 18px;
|
|
1569
|
+
}
|
|
1570
|
+
|
|
1571
|
+
button.row-action-menu-trigger:hover,
|
|
1572
|
+
button.row-action-menu-trigger.open {
|
|
1573
|
+
transform: none;
|
|
1574
|
+
background: #f4f2ef;
|
|
1575
|
+
color: var(--aks-brand);
|
|
1576
|
+
box-shadow: none;
|
|
1577
|
+
}
|
|
1578
|
+
|
|
1579
|
+
.row-action-menu {
|
|
1580
|
+
display: grid;
|
|
1581
|
+
min-width: 160px;
|
|
1582
|
+
padding: 6px;
|
|
1583
|
+
border: 1px solid var(--aks-line);
|
|
1584
|
+
border-radius: var(--aks-radius);
|
|
1585
|
+
background: #fff;
|
|
1586
|
+
box-shadow: 0 12px 28px rgba(30, 39, 53, 0.14);
|
|
1587
|
+
}
|
|
1588
|
+
|
|
1589
|
+
.row-action-menu-portal {
|
|
1590
|
+
position: fixed;
|
|
1591
|
+
z-index: 90;
|
|
1592
|
+
}
|
|
1593
|
+
|
|
1594
|
+
.row-action-menu button {
|
|
1595
|
+
justify-content: flex-start;
|
|
1596
|
+
width: 100%;
|
|
1597
|
+
padding: 10px 12px;
|
|
1598
|
+
font-size: 13px;
|
|
1599
|
+
font-weight: 600;
|
|
1600
|
+
color: var(--aks-brand);
|
|
1601
|
+
box-shadow: none;
|
|
1602
|
+
}
|
|
1603
|
+
|
|
1604
|
+
.row-action-menu button.danger:not(:disabled) {
|
|
1605
|
+
color: #a33b2b;
|
|
1606
|
+
}
|
|
1607
|
+
|
|
1608
|
+
.row-action-menu button:hover:not(:disabled) {
|
|
1609
|
+
transform: none;
|
|
1610
|
+
background: #f4f2ef;
|
|
1611
|
+
box-shadow: none;
|
|
1612
|
+
}
|
|
1613
|
+
|
|
1614
|
+
/* Mobile tools bar + right drawer — hidden on desktop */
|
|
1615
|
+
.tools-mobile-bar,
|
|
1616
|
+
.tools-drawer-backdrop,
|
|
1617
|
+
.tools-drawer {
|
|
1618
|
+
display: none;
|
|
1619
|
+
}
|
|
1620
|
+
|
|
1474
1621
|
button.row-action {
|
|
1475
1622
|
padding: 4px 8px;
|
|
1476
1623
|
font-size: 12px;
|
|
@@ -1568,33 +1715,228 @@ button.row-action.danger:not(:disabled):hover {
|
|
|
1568
1715
|
}
|
|
1569
1716
|
|
|
1570
1717
|
@media (max-width: 900px) {
|
|
1718
|
+
.list-workspace {
|
|
1719
|
+
gap: 10px;
|
|
1720
|
+
}
|
|
1721
|
+
|
|
1722
|
+
.tools-mobile-bar {
|
|
1723
|
+
display: flex;
|
|
1724
|
+
align-items: center;
|
|
1725
|
+
justify-content: space-between;
|
|
1726
|
+
gap: 10px;
|
|
1727
|
+
flex: 0 0 auto;
|
|
1728
|
+
min-height: 48px;
|
|
1729
|
+
padding: 6px 8px 6px 10px;
|
|
1730
|
+
border: 1px solid var(--aks-line);
|
|
1731
|
+
border-radius: var(--aks-radius);
|
|
1732
|
+
background: #fff;
|
|
1733
|
+
}
|
|
1734
|
+
|
|
1735
|
+
.tools-mobile-bar-start {
|
|
1736
|
+
min-width: 0;
|
|
1737
|
+
flex: 1 1 auto;
|
|
1738
|
+
}
|
|
1739
|
+
|
|
1740
|
+
.tools-mobile-title {
|
|
1741
|
+
margin: 0;
|
|
1742
|
+
color: var(--aks-brand);
|
|
1743
|
+
font-size: 13px;
|
|
1744
|
+
font-weight: 700;
|
|
1745
|
+
white-space: nowrap;
|
|
1746
|
+
overflow: hidden;
|
|
1747
|
+
text-overflow: ellipsis;
|
|
1748
|
+
}
|
|
1749
|
+
|
|
1750
|
+
button.tools-mobile-add {
|
|
1751
|
+
display: inline-flex;
|
|
1752
|
+
align-items: center;
|
|
1753
|
+
gap: 6px;
|
|
1754
|
+
min-height: 36px;
|
|
1755
|
+
padding: 6px 12px;
|
|
1756
|
+
border-radius: var(--aks-radius);
|
|
1757
|
+
background: var(--aks-brand);
|
|
1758
|
+
color: #fff;
|
|
1759
|
+
font-size: 13px;
|
|
1760
|
+
font-weight: 600;
|
|
1761
|
+
box-shadow: none;
|
|
1762
|
+
}
|
|
1763
|
+
|
|
1764
|
+
button.tools-mobile-add svg {
|
|
1765
|
+
width: 16px;
|
|
1766
|
+
height: 16px;
|
|
1767
|
+
}
|
|
1768
|
+
|
|
1769
|
+
button.tools-mobile-add:hover {
|
|
1770
|
+
transform: none;
|
|
1771
|
+
background: #2a3546;
|
|
1772
|
+
box-shadow: none;
|
|
1773
|
+
}
|
|
1774
|
+
|
|
1775
|
+
button.tools-mobile-toggle {
|
|
1776
|
+
position: relative;
|
|
1777
|
+
display: inline-flex;
|
|
1778
|
+
align-items: center;
|
|
1779
|
+
gap: 6px;
|
|
1780
|
+
min-height: 36px;
|
|
1781
|
+
padding: 6px 12px;
|
|
1782
|
+
border: 1px solid var(--aks-line);
|
|
1783
|
+
border-radius: var(--aks-radius);
|
|
1784
|
+
background: #faf9f7;
|
|
1785
|
+
color: var(--aks-brand);
|
|
1786
|
+
font-size: 13px;
|
|
1787
|
+
font-weight: 600;
|
|
1788
|
+
box-shadow: none;
|
|
1789
|
+
}
|
|
1790
|
+
|
|
1791
|
+
button.tools-mobile-toggle svg {
|
|
1792
|
+
width: 16px;
|
|
1793
|
+
height: 16px;
|
|
1794
|
+
}
|
|
1795
|
+
|
|
1796
|
+
button.tools-mobile-toggle:hover {
|
|
1797
|
+
transform: none;
|
|
1798
|
+
background: #f0eeea;
|
|
1799
|
+
box-shadow: none;
|
|
1800
|
+
}
|
|
1801
|
+
|
|
1802
|
+
button.tools-mobile-toggle .filter-badge {
|
|
1803
|
+
position: static;
|
|
1804
|
+
margin-left: 2px;
|
|
1805
|
+
}
|
|
1806
|
+
|
|
1807
|
+
.list-body {
|
|
1808
|
+
flex-direction: column;
|
|
1809
|
+
}
|
|
1810
|
+
|
|
1571
1811
|
.list-body.side-open,
|
|
1572
1812
|
.list-body.preview-open {
|
|
1573
1813
|
flex-direction: column;
|
|
1574
1814
|
}
|
|
1575
1815
|
|
|
1576
|
-
|
|
1577
|
-
.side-rail
|
|
1578
|
-
|
|
1579
|
-
width: 100%;
|
|
1580
|
-
flex-basis: auto;
|
|
1816
|
+
/* Desktop side-rail becomes a right drawer on small screens */
|
|
1817
|
+
.list-body > .side-rail {
|
|
1818
|
+
display: none;
|
|
1581
1819
|
}
|
|
1582
1820
|
|
|
1583
|
-
.
|
|
1584
|
-
flex-direction: row;
|
|
1585
|
-
align-items: center;
|
|
1821
|
+
.preview-panel {
|
|
1586
1822
|
width: 100%;
|
|
1587
1823
|
flex-basis: auto;
|
|
1824
|
+
order: 2;
|
|
1588
1825
|
}
|
|
1589
1826
|
|
|
1590
|
-
.
|
|
1591
|
-
display:
|
|
1592
|
-
|
|
1827
|
+
.tools-drawer-backdrop {
|
|
1828
|
+
display: block;
|
|
1829
|
+
position: fixed;
|
|
1830
|
+
inset: 0;
|
|
1831
|
+
z-index: 55;
|
|
1832
|
+
border: 0;
|
|
1833
|
+
padding: 0;
|
|
1834
|
+
margin: 0;
|
|
1835
|
+
background: rgba(30, 39, 53, 0.42);
|
|
1836
|
+
opacity: 0;
|
|
1837
|
+
pointer-events: none;
|
|
1838
|
+
transition: opacity 160ms ease;
|
|
1839
|
+
box-shadow: none;
|
|
1840
|
+
}
|
|
1841
|
+
|
|
1842
|
+
.tools-drawer-backdrop.open {
|
|
1843
|
+
opacity: 1;
|
|
1844
|
+
pointer-events: auto;
|
|
1845
|
+
}
|
|
1846
|
+
|
|
1847
|
+
.tools-drawer {
|
|
1848
|
+
display: flex;
|
|
1849
|
+
flex-direction: column;
|
|
1850
|
+
position: fixed;
|
|
1851
|
+
top: 0;
|
|
1852
|
+
right: 0;
|
|
1853
|
+
bottom: 0;
|
|
1854
|
+
z-index: 60;
|
|
1855
|
+
width: min(320px, calc(100vw - 40px));
|
|
1856
|
+
background: #fff;
|
|
1857
|
+
border-left: 1px solid var(--aks-line);
|
|
1858
|
+
box-shadow: -12px 0 32px rgba(30, 39, 53, 0.18);
|
|
1859
|
+
transform: translateX(105%);
|
|
1860
|
+
transition: transform 180ms ease;
|
|
1861
|
+
pointer-events: none;
|
|
1862
|
+
}
|
|
1863
|
+
|
|
1864
|
+
.tools-drawer.open {
|
|
1865
|
+
transform: translateX(0);
|
|
1866
|
+
pointer-events: auto;
|
|
1867
|
+
}
|
|
1868
|
+
|
|
1869
|
+
.tools-drawer-head {
|
|
1870
|
+
display: flex;
|
|
1871
|
+
align-items: flex-start;
|
|
1872
|
+
justify-content: space-between;
|
|
1873
|
+
gap: 12px;
|
|
1874
|
+
flex: 0 0 auto;
|
|
1875
|
+
padding: 16px 16px 12px;
|
|
1876
|
+
border-bottom: 1px solid var(--aks-line);
|
|
1877
|
+
background: #faf9f7;
|
|
1878
|
+
}
|
|
1879
|
+
|
|
1880
|
+
.tools-drawer-kicker {
|
|
1881
|
+
margin: 0;
|
|
1882
|
+
color: var(--aks-accent);
|
|
1883
|
+
font-size: 11px;
|
|
1884
|
+
font-weight: 700;
|
|
1885
|
+
letter-spacing: 0.06em;
|
|
1886
|
+
text-transform: uppercase;
|
|
1887
|
+
}
|
|
1888
|
+
|
|
1889
|
+
.tools-drawer-head h3 {
|
|
1890
|
+
margin: 2px 0 0;
|
|
1891
|
+
color: var(--aks-brand);
|
|
1892
|
+
font-size: 16px;
|
|
1893
|
+
font-weight: 700;
|
|
1894
|
+
}
|
|
1895
|
+
|
|
1896
|
+
button.tools-drawer-close {
|
|
1897
|
+
padding: 6px 10px;
|
|
1898
|
+
font-size: 12px;
|
|
1899
|
+
box-shadow: none;
|
|
1900
|
+
}
|
|
1901
|
+
|
|
1902
|
+
.tools-drawer-body {
|
|
1903
|
+
flex: 1 1 auto;
|
|
1904
|
+
min-height: 0;
|
|
1905
|
+
overflow: auto;
|
|
1906
|
+
padding: 14px;
|
|
1907
|
+
}
|
|
1908
|
+
|
|
1909
|
+
.tools-drawer-body .side-rail-body {
|
|
1910
|
+
padding: 0;
|
|
1593
1911
|
}
|
|
1594
1912
|
|
|
1595
1913
|
.table-card-bar {
|
|
1596
1914
|
flex-wrap: wrap;
|
|
1597
1915
|
}
|
|
1916
|
+
|
|
1917
|
+
.data-table {
|
|
1918
|
+
min-width: 520px;
|
|
1919
|
+
}
|
|
1920
|
+
|
|
1921
|
+
.row-actions-desktop {
|
|
1922
|
+
display: none;
|
|
1923
|
+
}
|
|
1924
|
+
|
|
1925
|
+
.row-actions-mobile {
|
|
1926
|
+
display: inline-flex;
|
|
1927
|
+
}
|
|
1928
|
+
|
|
1929
|
+
.data-table .actions-col {
|
|
1930
|
+
position: sticky;
|
|
1931
|
+
right: 0;
|
|
1932
|
+
z-index: 1;
|
|
1933
|
+
background: #fff;
|
|
1934
|
+
box-shadow: -8px 0 12px rgba(30, 39, 53, 0.04);
|
|
1935
|
+
}
|
|
1936
|
+
|
|
1937
|
+
.data-table thead .actions-col {
|
|
1938
|
+
background: #f6f5f3;
|
|
1939
|
+
}
|
|
1598
1940
|
}
|
|
1599
1941
|
|
|
1600
1942
|
/* src\theme\shell.css */
|
|
@@ -1633,20 +1975,146 @@ button.row-action.danger:not(:disabled):hover {
|
|
|
1633
1975
|
display: none;
|
|
1634
1976
|
}
|
|
1635
1977
|
|
|
1978
|
+
/* Mobile drawer — hidden on desktop */
|
|
1979
|
+
.nav-drawer-backdrop,
|
|
1980
|
+
.nav-drawer {
|
|
1981
|
+
display: none;
|
|
1982
|
+
}
|
|
1983
|
+
|
|
1984
|
+
button.topbar-menu-button {
|
|
1985
|
+
display: none;
|
|
1986
|
+
width: 40px;
|
|
1987
|
+
height: 40px;
|
|
1988
|
+
padding: 0;
|
|
1989
|
+
border-radius: var(--aks-radius);
|
|
1990
|
+
background: transparent;
|
|
1991
|
+
color: var(--aks-brand);
|
|
1992
|
+
box-shadow: none;
|
|
1993
|
+
}
|
|
1994
|
+
|
|
1995
|
+
button.topbar-menu-button svg {
|
|
1996
|
+
width: 22px;
|
|
1997
|
+
height: 22px;
|
|
1998
|
+
}
|
|
1999
|
+
|
|
2000
|
+
button.topbar-menu-button:hover {
|
|
2001
|
+
transform: none;
|
|
2002
|
+
background: #f4f2ef;
|
|
2003
|
+
box-shadow: none;
|
|
2004
|
+
}
|
|
2005
|
+
|
|
1636
2006
|
@media (max-width: 900px) {
|
|
1637
2007
|
.app-body {
|
|
1638
2008
|
grid-template-columns: 1fr;
|
|
1639
2009
|
}
|
|
1640
2010
|
|
|
1641
|
-
.app-shell .side-nav {
|
|
2011
|
+
.app-shell .app-body > .side-nav {
|
|
1642
2012
|
display: none;
|
|
1643
2013
|
}
|
|
1644
2014
|
|
|
1645
|
-
.
|
|
2015
|
+
button.topbar-menu-button {
|
|
2016
|
+
display: inline-grid;
|
|
2017
|
+
place-items: center;
|
|
2018
|
+
}
|
|
2019
|
+
|
|
2020
|
+
.app-shell.mobile-nav-drawer .screen,
|
|
2021
|
+
.app-shell.mobile-nav-hybrid:not(.has-bottom-nav) .screen {
|
|
2022
|
+
padding: 10px;
|
|
2023
|
+
}
|
|
2024
|
+
|
|
2025
|
+
.app-shell.has-bottom-nav .screen {
|
|
1646
2026
|
padding: 10px 10px 88px;
|
|
1647
2027
|
}
|
|
1648
2028
|
|
|
1649
|
-
|
|
2029
|
+
/* Drawer overlay */
|
|
2030
|
+
.nav-drawer-backdrop {
|
|
2031
|
+
display: block;
|
|
2032
|
+
position: fixed;
|
|
2033
|
+
inset: 0;
|
|
2034
|
+
z-index: 40;
|
|
2035
|
+
border: 0;
|
|
2036
|
+
padding: 0;
|
|
2037
|
+
margin: 0;
|
|
2038
|
+
background: rgba(30, 39, 53, 0.42);
|
|
2039
|
+
opacity: 0;
|
|
2040
|
+
pointer-events: none;
|
|
2041
|
+
transition: opacity 160ms ease;
|
|
2042
|
+
box-shadow: none;
|
|
2043
|
+
}
|
|
2044
|
+
|
|
2045
|
+
.nav-drawer-backdrop.open {
|
|
2046
|
+
opacity: 1;
|
|
2047
|
+
pointer-events: auto;
|
|
2048
|
+
}
|
|
2049
|
+
|
|
2050
|
+
.nav-drawer {
|
|
2051
|
+
display: flex;
|
|
2052
|
+
flex-direction: column;
|
|
2053
|
+
position: fixed;
|
|
2054
|
+
top: 0;
|
|
2055
|
+
left: 0;
|
|
2056
|
+
bottom: 0;
|
|
2057
|
+
z-index: 50;
|
|
2058
|
+
width: min(300px, calc(100vw - 48px));
|
|
2059
|
+
background: #fff;
|
|
2060
|
+
border-right: 1px solid var(--aks-line);
|
|
2061
|
+
box-shadow: 12px 0 32px rgba(30, 39, 53, 0.18);
|
|
2062
|
+
transform: translateX(-105%);
|
|
2063
|
+
transition: transform 180ms ease;
|
|
2064
|
+
pointer-events: none;
|
|
2065
|
+
}
|
|
2066
|
+
|
|
2067
|
+
.nav-drawer.open {
|
|
2068
|
+
transform: translateX(0);
|
|
2069
|
+
pointer-events: auto;
|
|
2070
|
+
}
|
|
2071
|
+
|
|
2072
|
+
.nav-drawer-head {
|
|
2073
|
+
display: flex;
|
|
2074
|
+
align-items: center;
|
|
2075
|
+
justify-content: space-between;
|
|
2076
|
+
gap: 12px;
|
|
2077
|
+
flex: 0 0 auto;
|
|
2078
|
+
padding: 14px 14px 10px;
|
|
2079
|
+
border-bottom: 1px solid var(--aks-line);
|
|
2080
|
+
}
|
|
2081
|
+
|
|
2082
|
+
.nav-drawer-title {
|
|
2083
|
+
margin: 0;
|
|
2084
|
+
color: var(--aks-brand);
|
|
2085
|
+
font-size: 12px;
|
|
2086
|
+
font-weight: 700;
|
|
2087
|
+
letter-spacing: 0.06em;
|
|
2088
|
+
text-transform: uppercase;
|
|
2089
|
+
}
|
|
2090
|
+
|
|
2091
|
+
button.nav-drawer-close {
|
|
2092
|
+
padding: 6px 10px;
|
|
2093
|
+
font-size: 12px;
|
|
2094
|
+
box-shadow: none;
|
|
2095
|
+
}
|
|
2096
|
+
|
|
2097
|
+
.nav-drawer .side-nav,
|
|
2098
|
+
.nav-drawer-nav {
|
|
2099
|
+
display: flex !important;
|
|
2100
|
+
flex-direction: column;
|
|
2101
|
+
flex: 1 1 auto;
|
|
2102
|
+
min-height: 0;
|
|
2103
|
+
overflow: auto;
|
|
2104
|
+
padding: 10px;
|
|
2105
|
+
gap: 4px;
|
|
2106
|
+
border: 0;
|
|
2107
|
+
background: transparent;
|
|
2108
|
+
}
|
|
2109
|
+
|
|
2110
|
+
.nav-drawer .side-nav button {
|
|
2111
|
+
justify-content: flex-start;
|
|
2112
|
+
width: 100%;
|
|
2113
|
+
text-align: left;
|
|
2114
|
+
}
|
|
2115
|
+
|
|
2116
|
+
/* Legacy / optional bottom nav */
|
|
2117
|
+
.app-shell.has-bottom-nav .bottom-nav {
|
|
1650
2118
|
position: fixed;
|
|
1651
2119
|
left: 0;
|
|
1652
2120
|
right: 0;
|
|
@@ -1661,6 +2129,10 @@ button.row-action.danger:not(:disabled):hover {
|
|
|
1661
2129
|
box-shadow: 0 -8px 24px rgba(30, 39, 53, 0.18);
|
|
1662
2130
|
}
|
|
1663
2131
|
|
|
2132
|
+
.app-shell.mobile-nav-hybrid.has-bottom-nav .bottom-nav {
|
|
2133
|
+
grid-template-columns: 1fr auto;
|
|
2134
|
+
}
|
|
2135
|
+
|
|
1664
2136
|
.bottom-nav button {
|
|
1665
2137
|
display: flex;
|
|
1666
2138
|
flex-direction: column;
|
|
@@ -1674,18 +2146,37 @@ button.row-action.danger:not(:disabled):hover {
|
|
|
1674
2146
|
font-size: 10px;
|
|
1675
2147
|
line-height: 1.1;
|
|
1676
2148
|
white-space: nowrap;
|
|
2149
|
+
overflow: hidden;
|
|
2150
|
+
text-overflow: ellipsis;
|
|
1677
2151
|
box-shadow: none;
|
|
1678
2152
|
}
|
|
1679
2153
|
|
|
2154
|
+
.bottom-nav button.bottom-nav-current {
|
|
2155
|
+
align-items: flex-start;
|
|
2156
|
+
padding-left: 14px;
|
|
2157
|
+
font-size: 12px;
|
|
2158
|
+
font-weight: 600;
|
|
2159
|
+
color: #fff;
|
|
2160
|
+
opacity: 1;
|
|
2161
|
+
}
|
|
2162
|
+
|
|
2163
|
+
.bottom-nav button.bottom-nav-menu {
|
|
2164
|
+
min-width: 72px;
|
|
2165
|
+
background: var(--aks-accent);
|
|
2166
|
+
color: #fff;
|
|
2167
|
+
font-size: 12px;
|
|
2168
|
+
font-weight: 700;
|
|
2169
|
+
}
|
|
2170
|
+
|
|
1680
2171
|
.bottom-nav button.active,
|
|
1681
|
-
.bottom-nav button:hover {
|
|
2172
|
+
.bottom-nav button:hover:not(:disabled) {
|
|
1682
2173
|
transform: none;
|
|
1683
2174
|
background: var(--aks-accent);
|
|
1684
2175
|
color: #fff;
|
|
1685
2176
|
box-shadow: none;
|
|
1686
2177
|
}
|
|
1687
2178
|
|
|
1688
|
-
.snackbar-host {
|
|
2179
|
+
.app-shell.has-bottom-nav .snackbar-host {
|
|
1689
2180
|
right: 16px;
|
|
1690
2181
|
bottom: calc(78px + env(safe-area-inset-bottom));
|
|
1691
2182
|
}
|