@syscore/ui-library 1.25.0 → 2.0.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/client/components/ui/app-bar.tsx +299 -0
- package/client/components/ui/banner.tsx +108 -0
- package/client/components/ui/bottom-navigation.tsx +223 -0
- package/client/components/ui/card.tsx +108 -26
- package/client/components/ui/date-picker.tsx +188 -0
- package/client/components/ui/empty-state.tsx +197 -0
- package/client/components/ui/file-upload.tsx +214 -0
- package/client/components/ui/footer.tsx +179 -0
- package/client/components/ui/layout.tsx +381 -0
- package/client/components/ui/sidebar.tsx +11 -5
- package/client/components/ui/stepper.tsx +148 -0
- package/client/components/ui/system-bar.tsx +119 -0
- package/client/components/ui/timeline.tsx +181 -0
- package/client/global.css +2304 -41
- package/client/ui/AppBar/app-bar.stories.tsx +280 -0
- package/client/ui/Banner/banner.stories.tsx +238 -0
- package/client/ui/BottomNavigation/bottom-navigation.stories.tsx +285 -0
- package/client/ui/Card.stories.tsx +285 -168
- package/client/ui/DatePicker/DatePicker.stories.tsx +293 -0
- package/client/ui/EmptyState/empty-state.stories.tsx +251 -0
- package/client/ui/FileUpload/FileUpload.stories.tsx +218 -0
- package/client/ui/Footer/footer.stories.tsx +194 -0
- package/client/ui/Layout.stories.tsx +1481 -0
- package/client/ui/Stepper/Stepper.stories.tsx +344 -0
- package/client/ui/SystemBar/system-bar.stories.tsx +179 -0
- package/client/ui/Timeline/timeline.stories.tsx +404 -0
- package/dist/index.cjs.js +1 -1
- package/dist/index.d.ts +219 -0
- package/dist/index.es.js +1504 -99
- package/package.json +1 -1
package/client/global.css
CHANGED
|
@@ -1311,21 +1311,319 @@ body {
|
|
|
1311
1311
|
}
|
|
1312
1312
|
}
|
|
1313
1313
|
|
|
1314
|
+
/* ============================================================
|
|
1315
|
+
Layout Primitives — Stack, Grid, Container, Section
|
|
1316
|
+
============================================================ */
|
|
1317
|
+
|
|
1318
|
+
/* Stack */
|
|
1319
|
+
.stack {
|
|
1320
|
+
display: flex;
|
|
1321
|
+
flex-direction: column;
|
|
1322
|
+
}
|
|
1323
|
+
|
|
1324
|
+
.stack--horizontal {
|
|
1325
|
+
flex-direction: row;
|
|
1326
|
+
}
|
|
1327
|
+
|
|
1328
|
+
.stack--wrap {
|
|
1329
|
+
flex-wrap: wrap;
|
|
1330
|
+
}
|
|
1331
|
+
|
|
1332
|
+
.stack--align-start { align-items: flex-start; }
|
|
1333
|
+
.stack--align-center { align-items: center; }
|
|
1334
|
+
.stack--align-end { align-items: flex-end; }
|
|
1335
|
+
.stack--align-stretch { align-items: stretch; }
|
|
1336
|
+
.stack--align-baseline { align-items: baseline; }
|
|
1337
|
+
|
|
1338
|
+
.stack--justify-start { justify-content: flex-start; }
|
|
1339
|
+
.stack--justify-center { justify-content: center; }
|
|
1340
|
+
.stack--justify-end { justify-content: flex-end; }
|
|
1341
|
+
.stack--justify-between { justify-content: space-between; }
|
|
1342
|
+
.stack--justify-around { justify-content: space-around; }
|
|
1343
|
+
.stack--justify-evenly { justify-content: space-evenly; }
|
|
1344
|
+
|
|
1345
|
+
/* Grid */
|
|
1346
|
+
.grid-layout {
|
|
1347
|
+
display: grid;
|
|
1348
|
+
}
|
|
1349
|
+
|
|
1350
|
+
.grid-layout--cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
|
|
1351
|
+
.grid-layout--cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
|
|
1352
|
+
.grid-layout--cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
|
|
1353
|
+
.grid-layout--cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
|
|
1354
|
+
.grid-layout--cols-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
|
|
1355
|
+
.grid-layout--cols-12 { grid-template-columns: repeat(12, minmax(0, 1fr)); }
|
|
1356
|
+
|
|
1357
|
+
@media (min-width: 640px) {
|
|
1358
|
+
.grid-layout--sm-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
|
|
1359
|
+
.grid-layout--sm-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
|
|
1360
|
+
.grid-layout--sm-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
|
|
1361
|
+
.grid-layout--sm-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
|
|
1362
|
+
.grid-layout--sm-cols-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
|
|
1363
|
+
.grid-layout--sm-cols-12 { grid-template-columns: repeat(12, minmax(0, 1fr)); }
|
|
1364
|
+
}
|
|
1365
|
+
|
|
1366
|
+
@media (min-width: 768px) {
|
|
1367
|
+
.grid-layout--md-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
|
|
1368
|
+
.grid-layout--md-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
|
|
1369
|
+
.grid-layout--md-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
|
|
1370
|
+
.grid-layout--md-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
|
|
1371
|
+
.grid-layout--md-cols-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
|
|
1372
|
+
.grid-layout--md-cols-12 { grid-template-columns: repeat(12, minmax(0, 1fr)); }
|
|
1373
|
+
}
|
|
1374
|
+
|
|
1375
|
+
@media (min-width: 1024px) {
|
|
1376
|
+
.grid-layout--lg-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
|
|
1377
|
+
.grid-layout--lg-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
|
|
1378
|
+
.grid-layout--lg-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
|
|
1379
|
+
.grid-layout--lg-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
|
|
1380
|
+
.grid-layout--lg-cols-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
|
|
1381
|
+
.grid-layout--lg-cols-12 { grid-template-columns: repeat(12, minmax(0, 1fr)); }
|
|
1382
|
+
}
|
|
1383
|
+
|
|
1384
|
+
/* Container */
|
|
1385
|
+
.container-layout {
|
|
1386
|
+
width: 100%;
|
|
1387
|
+
}
|
|
1388
|
+
|
|
1389
|
+
.container-layout--center {
|
|
1390
|
+
margin-left: auto;
|
|
1391
|
+
margin-right: auto;
|
|
1392
|
+
}
|
|
1393
|
+
|
|
1394
|
+
.container-layout--padded {
|
|
1395
|
+
padding-left: 1rem;
|
|
1396
|
+
padding-right: 1rem;
|
|
1397
|
+
}
|
|
1398
|
+
|
|
1399
|
+
@media (min-width: 640px) {
|
|
1400
|
+
.container-layout--padded {
|
|
1401
|
+
padding-left: 1.5rem;
|
|
1402
|
+
padding-right: 1.5rem;
|
|
1403
|
+
}
|
|
1404
|
+
}
|
|
1405
|
+
|
|
1406
|
+
@media (min-width: 1024px) {
|
|
1407
|
+
.container-layout--padded {
|
|
1408
|
+
padding-left: 2rem;
|
|
1409
|
+
padding-right: 2rem;
|
|
1410
|
+
}
|
|
1411
|
+
}
|
|
1412
|
+
|
|
1413
|
+
.container-layout--sm { max-width: 640px; }
|
|
1414
|
+
.container-layout--md { max-width: 768px; }
|
|
1415
|
+
.container-layout--lg { max-width: 1024px; }
|
|
1416
|
+
.container-layout--xl { max-width: 1280px; }
|
|
1417
|
+
.container-layout--2xl { max-width: 1536px; }
|
|
1418
|
+
.container-layout--full { max-width: 100%; }
|
|
1419
|
+
|
|
1420
|
+
/* Section */
|
|
1421
|
+
.section-layout {
|
|
1422
|
+
width: 100%;
|
|
1423
|
+
}
|
|
1424
|
+
|
|
1425
|
+
.section-layout--sm { padding-top: 2rem; padding-bottom: 2rem; }
|
|
1426
|
+
.section-layout--md { padding-top: 3rem; padding-bottom: 3rem; }
|
|
1427
|
+
.section-layout--lg { padding-top: 4rem; padding-bottom: 4rem; }
|
|
1428
|
+
.section-layout--xl { padding-top: 6rem; padding-bottom: 6rem; }
|
|
1429
|
+
|
|
1430
|
+
@media (min-width: 768px) {
|
|
1431
|
+
.section-layout--sm { padding-top: 3rem; padding-bottom: 3rem; }
|
|
1432
|
+
.section-layout--md { padding-top: 4rem; padding-bottom: 4rem; }
|
|
1433
|
+
.section-layout--lg { padding-top: 6rem; padding-bottom: 6rem; }
|
|
1434
|
+
.section-layout--xl { padding-top: 8rem; padding-bottom: 8rem; }
|
|
1435
|
+
}
|
|
1436
|
+
|
|
1437
|
+
/* Columns */
|
|
1438
|
+
.columns-layout {
|
|
1439
|
+
display: grid;
|
|
1440
|
+
}
|
|
1441
|
+
|
|
1442
|
+
@media (max-width: 639px) {
|
|
1443
|
+
.columns-layout--collapse-sm { grid-template-columns: 1fr !important; }
|
|
1444
|
+
}
|
|
1445
|
+
@media (max-width: 767px) {
|
|
1446
|
+
.columns-layout--collapse-md { grid-template-columns: 1fr !important; }
|
|
1447
|
+
}
|
|
1448
|
+
@media (max-width: 1023px) {
|
|
1449
|
+
.columns-layout--collapse-lg { grid-template-columns: 1fr !important; }
|
|
1450
|
+
}
|
|
1451
|
+
|
|
1452
|
+
/* AppShell */
|
|
1453
|
+
.app-shell {
|
|
1454
|
+
--app-shell-header-height: 4rem;
|
|
1455
|
+
--app-shell-sidebar-width: 17.5rem;
|
|
1456
|
+
display: grid;
|
|
1457
|
+
min-height: 100vh;
|
|
1458
|
+
grid-template-rows: var(--app-shell-header-height) 1fr;
|
|
1459
|
+
grid-template-columns: var(--app-shell-sidebar-width) 1fr;
|
|
1460
|
+
grid-template-areas:
|
|
1461
|
+
"header header"
|
|
1462
|
+
"sidebar main";
|
|
1463
|
+
}
|
|
1464
|
+
|
|
1465
|
+
.app-shell-header {
|
|
1466
|
+
grid-area: header;
|
|
1467
|
+
position: sticky;
|
|
1468
|
+
top: 0;
|
|
1469
|
+
z-index: 40;
|
|
1470
|
+
background-color: hsl(var(--background));
|
|
1471
|
+
border-bottom: 1px solid var(--color-gray-100, #eff1f2);
|
|
1472
|
+
display: flex;
|
|
1473
|
+
align-items: center;
|
|
1474
|
+
padding: 0 1.5rem;
|
|
1475
|
+
}
|
|
1476
|
+
|
|
1477
|
+
.app-shell-sidebar {
|
|
1478
|
+
grid-area: sidebar;
|
|
1479
|
+
position: sticky;
|
|
1480
|
+
top: var(--app-shell-header-height);
|
|
1481
|
+
height: calc(100vh - var(--app-shell-header-height));
|
|
1482
|
+
overflow-y: auto;
|
|
1483
|
+
border-right: 1px solid var(--color-gray-100, #eff1f2);
|
|
1484
|
+
background-color: hsl(var(--background));
|
|
1485
|
+
}
|
|
1486
|
+
|
|
1487
|
+
.app-shell-main {
|
|
1488
|
+
grid-area: main;
|
|
1489
|
+
overflow-y: auto;
|
|
1490
|
+
min-height: 0;
|
|
1491
|
+
}
|
|
1492
|
+
|
|
1493
|
+
.app-shell-footer {
|
|
1494
|
+
grid-area: footer;
|
|
1495
|
+
border-top: 1px solid var(--color-gray-100, #eff1f2);
|
|
1496
|
+
}
|
|
1497
|
+
|
|
1498
|
+
/* Show / Hide — responsive visibility */
|
|
1499
|
+
.show-above-sm { display: none; }
|
|
1500
|
+
@media (min-width: 640px) { .show-above-sm { display: revert; } }
|
|
1501
|
+
|
|
1502
|
+
.show-above-md { display: none; }
|
|
1503
|
+
@media (min-width: 768px) { .show-above-md { display: revert; } }
|
|
1504
|
+
|
|
1505
|
+
.show-above-lg { display: none; }
|
|
1506
|
+
@media (min-width: 1024px) { .show-above-lg { display: revert; } }
|
|
1507
|
+
|
|
1508
|
+
.show-above-xl { display: none; }
|
|
1509
|
+
@media (min-width: 1280px) { .show-above-xl { display: revert; } }
|
|
1510
|
+
|
|
1511
|
+
.show-below-sm { display: revert; }
|
|
1512
|
+
@media (min-width: 640px) { .show-below-sm { display: none; } }
|
|
1513
|
+
|
|
1514
|
+
.show-below-md { display: revert; }
|
|
1515
|
+
@media (min-width: 768px) { .show-below-md { display: none; } }
|
|
1516
|
+
|
|
1517
|
+
.show-below-lg { display: revert; }
|
|
1518
|
+
@media (min-width: 1024px) { .show-below-lg { display: none; } }
|
|
1519
|
+
|
|
1520
|
+
.show-below-xl { display: revert; }
|
|
1521
|
+
@media (min-width: 1280px) { .show-below-xl { display: none; } }
|
|
1522
|
+
|
|
1523
|
+
.hide-above-sm { display: revert; }
|
|
1524
|
+
@media (min-width: 640px) { .hide-above-sm { display: none; } }
|
|
1525
|
+
|
|
1526
|
+
.hide-above-md { display: revert; }
|
|
1527
|
+
@media (min-width: 768px) { .hide-above-md { display: none; } }
|
|
1528
|
+
|
|
1529
|
+
.hide-above-lg { display: revert; }
|
|
1530
|
+
@media (min-width: 1024px) { .hide-above-lg { display: none; } }
|
|
1531
|
+
|
|
1532
|
+
.hide-above-xl { display: revert; }
|
|
1533
|
+
@media (min-width: 1280px) { .hide-above-xl { display: none; } }
|
|
1534
|
+
|
|
1535
|
+
.hide-below-sm { display: none; }
|
|
1536
|
+
@media (min-width: 640px) { .hide-below-sm { display: revert; } }
|
|
1537
|
+
|
|
1538
|
+
.hide-below-md { display: none; }
|
|
1539
|
+
@media (min-width: 768px) { .hide-below-md { display: revert; } }
|
|
1540
|
+
|
|
1541
|
+
.hide-below-lg { display: none; }
|
|
1542
|
+
@media (min-width: 1024px) { .hide-below-lg { display: revert; } }
|
|
1543
|
+
|
|
1544
|
+
.hide-below-xl { display: none; }
|
|
1545
|
+
@media (min-width: 1280px) { .hide-below-xl { display: revert; } }
|
|
1546
|
+
|
|
1547
|
+
/* Positioned */
|
|
1548
|
+
.positioned--relative { position: relative; }
|
|
1549
|
+
.positioned--absolute { position: absolute; }
|
|
1550
|
+
.positioned--fixed { position: fixed; }
|
|
1551
|
+
.positioned--sticky { position: sticky; }
|
|
1552
|
+
|
|
1553
|
+
/* ============================================================ */
|
|
1554
|
+
|
|
1314
1555
|
/* Card Styles */
|
|
1315
1556
|
.card {
|
|
1316
1557
|
border-radius: var(--radius-lg, 12px);
|
|
1317
|
-
border: 1px solid var(--color-gray-100, #eff1f2);
|
|
1318
|
-
background-color: var(--color-cyan-50, #fafeff);
|
|
1319
1558
|
padding: 1.5rem;
|
|
1320
1559
|
display: flex;
|
|
1321
1560
|
flex-direction: column;
|
|
1322
1561
|
gap: 1.5rem;
|
|
1562
|
+
position: relative;
|
|
1563
|
+
overflow: hidden;
|
|
1564
|
+
}
|
|
1565
|
+
|
|
1566
|
+
/* Card Variants */
|
|
1567
|
+
.card--default {
|
|
1568
|
+
border: 1px solid var(--color-gray-100, #eff1f2);
|
|
1569
|
+
background-color: var(--color-cyan-50, #fafeff);
|
|
1570
|
+
}
|
|
1571
|
+
|
|
1572
|
+
.card--outlined {
|
|
1573
|
+
border: 1px solid var(--color-gray-200, #dedfe3);
|
|
1574
|
+
background-color: var(--color-white, #fff);
|
|
1575
|
+
}
|
|
1576
|
+
|
|
1577
|
+
.card--elevated {
|
|
1578
|
+
border: none;
|
|
1579
|
+
background-color: var(--color-white, #fff);
|
|
1580
|
+
box-shadow: var(--shadow-md, 0 4px 6px -1px rgba(16, 24, 40, 0.1), 0 2px 4px -2px rgba(16, 24, 40, 0.1));
|
|
1581
|
+
}
|
|
1582
|
+
|
|
1583
|
+
.card--filled {
|
|
1584
|
+
border: none;
|
|
1585
|
+
background-color: var(--color-gray-900, #171820);
|
|
1586
|
+
color: var(--color-white, #fff);
|
|
1587
|
+
}
|
|
1588
|
+
|
|
1589
|
+
.card--filled .card-title,
|
|
1590
|
+
.card--filled .card-description,
|
|
1591
|
+
.card--filled .card-content,
|
|
1592
|
+
.card--filled .card-footer {
|
|
1593
|
+
color: var(--color-white, #fff);
|
|
1594
|
+
}
|
|
1595
|
+
|
|
1596
|
+
.card--filled .card-description,
|
|
1597
|
+
.card--filled .card-footer {
|
|
1598
|
+
color: var(--color-gray-300, #cbcdd2);
|
|
1599
|
+
}
|
|
1600
|
+
|
|
1601
|
+
.card--interactive {
|
|
1602
|
+
border: 1px solid var(--color-gray-100, #eff1f2);
|
|
1603
|
+
background-color: var(--color-white, #fff);
|
|
1604
|
+
cursor: pointer;
|
|
1605
|
+
transition:
|
|
1606
|
+
transform 200ms ease-in-out,
|
|
1607
|
+
border-color 200ms ease-in-out,
|
|
1608
|
+
box-shadow 200ms ease-in-out;
|
|
1609
|
+
will-change: transform;
|
|
1610
|
+
}
|
|
1611
|
+
|
|
1612
|
+
.card--interactive:hover {
|
|
1613
|
+
transform: scale(1.02);
|
|
1614
|
+
border-color: var(--color-gray-200, #dedfe3);
|
|
1615
|
+
box-shadow: var(--shadow-sm, 0 1px 3px 0 rgba(16, 24, 40, 0.1));
|
|
1616
|
+
}
|
|
1617
|
+
|
|
1618
|
+
.card--interactive:active {
|
|
1619
|
+
transform: scale(0.99);
|
|
1323
1620
|
}
|
|
1324
1621
|
|
|
1622
|
+
/* Card Sub-components */
|
|
1325
1623
|
.card-header {
|
|
1326
1624
|
display: flex;
|
|
1327
1625
|
flex-direction: column;
|
|
1328
|
-
gap:
|
|
1626
|
+
gap: 0.5rem;
|
|
1329
1627
|
}
|
|
1330
1628
|
|
|
1331
1629
|
.card-title {
|
|
@@ -1333,7 +1631,7 @@ body {
|
|
|
1333
1631
|
}
|
|
1334
1632
|
|
|
1335
1633
|
.card-description {
|
|
1336
|
-
color: var(--color-gray-
|
|
1634
|
+
color: var(--color-gray-600, #52545d);
|
|
1337
1635
|
}
|
|
1338
1636
|
|
|
1339
1637
|
.card-content {
|
|
@@ -1346,20 +1644,111 @@ body {
|
|
|
1346
1644
|
color: var(--color-gray-800, #282a31);
|
|
1347
1645
|
}
|
|
1348
1646
|
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
gap: 1.5rem;
|
|
1354
|
-
transition:
|
|
1355
|
-
transform 200ms ease-in-out,
|
|
1356
|
-
border-color 200ms ease-in-out;
|
|
1357
|
-
will-change: transform;
|
|
1647
|
+
/* Card Media */
|
|
1648
|
+
.card-media {
|
|
1649
|
+
margin: -1.5rem -1.5rem 0 -1.5rem;
|
|
1650
|
+
overflow: hidden;
|
|
1358
1651
|
}
|
|
1359
1652
|
|
|
1360
|
-
.card-
|
|
1361
|
-
|
|
1362
|
-
|
|
1653
|
+
.card-media__img {
|
|
1654
|
+
width: 100%;
|
|
1655
|
+
height: 100%;
|
|
1656
|
+
object-fit: cover;
|
|
1657
|
+
display: block;
|
|
1658
|
+
}
|
|
1659
|
+
|
|
1660
|
+
/* Card Badge */
|
|
1661
|
+
.card-badge {
|
|
1662
|
+
position: absolute;
|
|
1663
|
+
top: 1rem;
|
|
1664
|
+
right: 1rem;
|
|
1665
|
+
display: inline-flex;
|
|
1666
|
+
align-items: center;
|
|
1667
|
+
padding: 0.25rem 0.625rem;
|
|
1668
|
+
border-radius: 999px;
|
|
1669
|
+
font-size: 0.75rem;
|
|
1670
|
+
font-weight: 600;
|
|
1671
|
+
line-height: 1.25;
|
|
1672
|
+
}
|
|
1673
|
+
|
|
1674
|
+
.card-badge--default {
|
|
1675
|
+
background-color: var(--color-gray-100, #eff1f2);
|
|
1676
|
+
color: var(--color-gray-700, #3e4049);
|
|
1677
|
+
}
|
|
1678
|
+
|
|
1679
|
+
.card-badge--success {
|
|
1680
|
+
background-color: #dcfce7;
|
|
1681
|
+
color: #166534;
|
|
1682
|
+
}
|
|
1683
|
+
|
|
1684
|
+
.card-badge--warning {
|
|
1685
|
+
background-color: #fef9c3;
|
|
1686
|
+
color: #854d0e;
|
|
1687
|
+
}
|
|
1688
|
+
|
|
1689
|
+
.card-badge--error {
|
|
1690
|
+
background-color: #fee2e2;
|
|
1691
|
+
color: #991b1b;
|
|
1692
|
+
}
|
|
1693
|
+
|
|
1694
|
+
.card-badge--info {
|
|
1695
|
+
background-color: var(--color-cyan-100, #d6f4fb);
|
|
1696
|
+
color: var(--color-cyan-800, #0f748a);
|
|
1697
|
+
}
|
|
1698
|
+
|
|
1699
|
+
/* Card Actions */
|
|
1700
|
+
.card-actions {
|
|
1701
|
+
display: flex;
|
|
1702
|
+
align-items: center;
|
|
1703
|
+
gap: 0.75rem;
|
|
1704
|
+
padding-top: 0.5rem;
|
|
1705
|
+
border-top: 1px solid var(--color-gray-100, #eff1f2);
|
|
1706
|
+
margin-top: auto;
|
|
1707
|
+
}
|
|
1708
|
+
|
|
1709
|
+
/* Card Metric */
|
|
1710
|
+
.card-metric {
|
|
1711
|
+
display: flex;
|
|
1712
|
+
flex-direction: column;
|
|
1713
|
+
gap: 0.25rem;
|
|
1714
|
+
}
|
|
1715
|
+
|
|
1716
|
+
.card-metric__value {
|
|
1717
|
+
font-size: 2.25rem;
|
|
1718
|
+
font-weight: 700;
|
|
1719
|
+
line-height: 1;
|
|
1720
|
+
color: var(--color-gray-900, #171820);
|
|
1721
|
+
}
|
|
1722
|
+
|
|
1723
|
+
.card-metric__label {
|
|
1724
|
+
font-size: 0.875rem;
|
|
1725
|
+
color: var(--color-gray-500, #71747d);
|
|
1726
|
+
}
|
|
1727
|
+
|
|
1728
|
+
.card-metric__trend {
|
|
1729
|
+
display: inline-flex;
|
|
1730
|
+
align-items: center;
|
|
1731
|
+
gap: 0.25rem;
|
|
1732
|
+
font-size: 0.75rem;
|
|
1733
|
+
font-weight: 600;
|
|
1734
|
+
margin-top: 0.25rem;
|
|
1735
|
+
}
|
|
1736
|
+
|
|
1737
|
+
.card-metric__trend--up {
|
|
1738
|
+
color: #16a34a;
|
|
1739
|
+
}
|
|
1740
|
+
|
|
1741
|
+
.card-metric__trend--down {
|
|
1742
|
+
color: #dc2626;
|
|
1743
|
+
}
|
|
1744
|
+
|
|
1745
|
+
.card-metric__trend--neutral {
|
|
1746
|
+
color: var(--color-gray-500, #71747d);
|
|
1747
|
+
}
|
|
1748
|
+
|
|
1749
|
+
/* Card With Icon */
|
|
1750
|
+
.card-with-icon {
|
|
1751
|
+
gap: 1.5rem;
|
|
1363
1752
|
}
|
|
1364
1753
|
|
|
1365
1754
|
.card-with-icon__header {
|
|
@@ -1654,42 +2043,165 @@ body {
|
|
|
1654
2043
|
line-height: 1.625;
|
|
1655
2044
|
}
|
|
1656
2045
|
|
|
1657
|
-
/*
|
|
1658
|
-
.
|
|
2046
|
+
/* Banner Styles */
|
|
2047
|
+
.banner {
|
|
1659
2048
|
position: relative;
|
|
2049
|
+
width: 100%;
|
|
1660
2050
|
display: flex;
|
|
1661
|
-
|
|
1662
|
-
|
|
1663
|
-
|
|
1664
|
-
|
|
1665
|
-
|
|
2051
|
+
align-items: center;
|
|
2052
|
+
gap: 0.75rem;
|
|
2053
|
+
padding: 0.75rem 1rem;
|
|
2054
|
+
font-size: 0.875rem;
|
|
2055
|
+
line-height: 1.25rem;
|
|
1666
2056
|
}
|
|
1667
2057
|
|
|
1668
|
-
.
|
|
1669
|
-
|
|
1670
|
-
|
|
1671
|
-
|
|
2058
|
+
.banner--sticky {
|
|
2059
|
+
position: sticky;
|
|
2060
|
+
top: 0;
|
|
2061
|
+
z-index: 40;
|
|
1672
2062
|
}
|
|
1673
2063
|
|
|
1674
|
-
.
|
|
2064
|
+
.banner-content {
|
|
2065
|
+
flex: 1;
|
|
1675
2066
|
display: flex;
|
|
1676
|
-
height: 100%;
|
|
1677
|
-
width: 100%;
|
|
1678
2067
|
align-items: center;
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
-
background-color: hsl(var(--muted));
|
|
2068
|
+
gap: 0.75rem;
|
|
2069
|
+
flex-wrap: wrap;
|
|
1682
2070
|
}
|
|
1683
2071
|
|
|
1684
|
-
|
|
1685
|
-
|
|
1686
|
-
display: inline-flex;
|
|
2072
|
+
.banner-icon {
|
|
2073
|
+
display: flex;
|
|
1687
2074
|
align-items: center;
|
|
1688
|
-
|
|
1689
|
-
|
|
1690
|
-
|
|
1691
|
-
|
|
1692
|
-
|
|
2075
|
+
flex-shrink: 0;
|
|
2076
|
+
}
|
|
2077
|
+
|
|
2078
|
+
.banner-icon svg {
|
|
2079
|
+
width: 1rem;
|
|
2080
|
+
height: 1rem;
|
|
2081
|
+
}
|
|
2082
|
+
|
|
2083
|
+
.banner-text {
|
|
2084
|
+
display: flex;
|
|
2085
|
+
flex-direction: column;
|
|
2086
|
+
gap: 0.125rem;
|
|
2087
|
+
flex: 1;
|
|
2088
|
+
}
|
|
2089
|
+
|
|
2090
|
+
.banner-title {
|
|
2091
|
+
font-weight: 600;
|
|
2092
|
+
margin: 0;
|
|
2093
|
+
}
|
|
2094
|
+
|
|
2095
|
+
.banner-description {
|
|
2096
|
+
margin: 0;
|
|
2097
|
+
opacity: 0.9;
|
|
2098
|
+
}
|
|
2099
|
+
|
|
2100
|
+
.banner-action {
|
|
2101
|
+
display: inline-flex;
|
|
2102
|
+
align-items: center;
|
|
2103
|
+
padding: 0.25rem 0.75rem;
|
|
2104
|
+
border-radius: var(--radius-sm, 6px);
|
|
2105
|
+
font-size: 0.8125rem;
|
|
2106
|
+
font-weight: 500;
|
|
2107
|
+
border: 1px solid currentColor;
|
|
2108
|
+
background: transparent;
|
|
2109
|
+
cursor: pointer;
|
|
2110
|
+
white-space: nowrap;
|
|
2111
|
+
transition: opacity 0.15s ease;
|
|
2112
|
+
}
|
|
2113
|
+
|
|
2114
|
+
.banner-action:hover {
|
|
2115
|
+
opacity: 0.8;
|
|
2116
|
+
}
|
|
2117
|
+
|
|
2118
|
+
.banner-close {
|
|
2119
|
+
display: flex;
|
|
2120
|
+
align-items: center;
|
|
2121
|
+
justify-content: center;
|
|
2122
|
+
flex-shrink: 0;
|
|
2123
|
+
width: 1.5rem;
|
|
2124
|
+
height: 1.5rem;
|
|
2125
|
+
border: none;
|
|
2126
|
+
background: transparent;
|
|
2127
|
+
cursor: pointer;
|
|
2128
|
+
border-radius: var(--radius-sm, 4px);
|
|
2129
|
+
opacity: 0.7;
|
|
2130
|
+
transition: opacity 0.15s ease;
|
|
2131
|
+
color: inherit;
|
|
2132
|
+
padding: 0;
|
|
2133
|
+
}
|
|
2134
|
+
|
|
2135
|
+
.banner-close:hover {
|
|
2136
|
+
opacity: 1;
|
|
2137
|
+
}
|
|
2138
|
+
|
|
2139
|
+
/* Banner Variants */
|
|
2140
|
+
.banner--default {
|
|
2141
|
+
background-color: hsl(var(--foreground));
|
|
2142
|
+
color: hsl(var(--background));
|
|
2143
|
+
}
|
|
2144
|
+
|
|
2145
|
+
.banner--info {
|
|
2146
|
+
background-color: hsl(var(--primary) / 0.12);
|
|
2147
|
+
color: hsl(var(--primary));
|
|
2148
|
+
border-left: 3px solid hsl(var(--primary));
|
|
2149
|
+
}
|
|
2150
|
+
|
|
2151
|
+
.banner--success {
|
|
2152
|
+
background-color: hsl(142 71% 45% / 0.12);
|
|
2153
|
+
color: hsl(142 71% 29%);
|
|
2154
|
+
border-left: 3px solid hsl(142 71% 45%);
|
|
2155
|
+
}
|
|
2156
|
+
|
|
2157
|
+
.banner--warning {
|
|
2158
|
+
background-color: hsl(38 92% 50% / 0.12);
|
|
2159
|
+
color: hsl(38 92% 30%);
|
|
2160
|
+
border-left: 3px solid hsl(38 92% 50%);
|
|
2161
|
+
}
|
|
2162
|
+
|
|
2163
|
+
.banner--destructive {
|
|
2164
|
+
background-color: hsl(var(--destructive) / 0.12);
|
|
2165
|
+
color: hsl(var(--destructive));
|
|
2166
|
+
border-left: 3px solid hsl(var(--destructive));
|
|
2167
|
+
}
|
|
2168
|
+
|
|
2169
|
+
/* Avatar Styles */
|
|
2170
|
+
.avatar {
|
|
2171
|
+
position: relative;
|
|
2172
|
+
display: flex;
|
|
2173
|
+
height: 2.5rem;
|
|
2174
|
+
width: 2.5rem;
|
|
2175
|
+
flex-shrink: 0;
|
|
2176
|
+
overflow: hidden;
|
|
2177
|
+
border-radius: 9999px;
|
|
2178
|
+
}
|
|
2179
|
+
|
|
2180
|
+
.avatar-image {
|
|
2181
|
+
aspect-ratio: 1 / 1;
|
|
2182
|
+
height: 100%;
|
|
2183
|
+
width: 100%;
|
|
2184
|
+
}
|
|
2185
|
+
|
|
2186
|
+
.avatar-fallback {
|
|
2187
|
+
display: flex;
|
|
2188
|
+
height: 100%;
|
|
2189
|
+
width: 100%;
|
|
2190
|
+
align-items: center;
|
|
2191
|
+
justify-content: center;
|
|
2192
|
+
border-radius: 9999px;
|
|
2193
|
+
background-color: hsl(var(--muted));
|
|
2194
|
+
}
|
|
2195
|
+
|
|
2196
|
+
/* Tag Styles */
|
|
2197
|
+
.status-tag {
|
|
2198
|
+
display: inline-flex;
|
|
2199
|
+
align-items: center;
|
|
2200
|
+
padding: 8px;
|
|
2201
|
+
border-radius: calc(var(--radius-sm, 6px));
|
|
2202
|
+
width: fit-content;
|
|
2203
|
+
cursor: pointer;
|
|
2204
|
+
transition: all 0.2s ease-in-out;
|
|
1693
2205
|
}
|
|
1694
2206
|
|
|
1695
2207
|
.status-tag:focus-visible {
|
|
@@ -7647,3 +8159,1754 @@ body {
|
|
|
7647
8159
|
.navigation-account__icon--dark {
|
|
7648
8160
|
color: var(--color-bronze-100, #fbf8f3);
|
|
7649
8161
|
}
|
|
8162
|
+
|
|
8163
|
+
/* File Upload Styles */
|
|
8164
|
+
.file-upload {
|
|
8165
|
+
display: flex;
|
|
8166
|
+
flex-direction: column;
|
|
8167
|
+
gap: 0.75rem;
|
|
8168
|
+
width: 100%;
|
|
8169
|
+
}
|
|
8170
|
+
|
|
8171
|
+
.file-upload-zone {
|
|
8172
|
+
display: flex;
|
|
8173
|
+
align-items: center;
|
|
8174
|
+
justify-content: center;
|
|
8175
|
+
width: 100%;
|
|
8176
|
+
border: 1.5px dashed var(--color-gray-200, #d5d9dc);
|
|
8177
|
+
border-radius: 0.75rem;
|
|
8178
|
+
background-color: var(--color-gray-50, #f7f8f9);
|
|
8179
|
+
cursor: pointer;
|
|
8180
|
+
transition: border-color 0.15s ease, background-color 0.15s ease;
|
|
8181
|
+
outline: none;
|
|
8182
|
+
padding: 2rem 1.5rem;
|
|
8183
|
+
}
|
|
8184
|
+
|
|
8185
|
+
.file-upload-zone:hover:not(.file-upload-zone--disabled),
|
|
8186
|
+
.file-upload-zone:focus-visible:not(.file-upload-zone--disabled) {
|
|
8187
|
+
border-color: var(--color-cyan-400, #22d3ee);
|
|
8188
|
+
background-color: var(--color-cyan-50, #fafeff);
|
|
8189
|
+
}
|
|
8190
|
+
|
|
8191
|
+
.file-upload-zone--dragging {
|
|
8192
|
+
border-color: var(--color-cyan-400, #22d3ee);
|
|
8193
|
+
background-color: var(--color-cyan-50, #fafeff);
|
|
8194
|
+
}
|
|
8195
|
+
|
|
8196
|
+
.file-upload-zone--compact {
|
|
8197
|
+
padding: 1rem 1.5rem;
|
|
8198
|
+
border-radius: 0.5rem;
|
|
8199
|
+
}
|
|
8200
|
+
|
|
8201
|
+
.file-upload-zone--disabled {
|
|
8202
|
+
cursor: not-allowed;
|
|
8203
|
+
opacity: 0.5;
|
|
8204
|
+
background-color: var(--color-gray-100, #eff1f2);
|
|
8205
|
+
}
|
|
8206
|
+
|
|
8207
|
+
.file-upload-input {
|
|
8208
|
+
display: none;
|
|
8209
|
+
}
|
|
8210
|
+
|
|
8211
|
+
/* Default variant inner layout */
|
|
8212
|
+
.file-upload-default-inner {
|
|
8213
|
+
display: flex;
|
|
8214
|
+
flex-direction: column;
|
|
8215
|
+
align-items: center;
|
|
8216
|
+
gap: 0.75rem;
|
|
8217
|
+
text-align: center;
|
|
8218
|
+
}
|
|
8219
|
+
|
|
8220
|
+
.file-upload-icon-circle {
|
|
8221
|
+
display: flex;
|
|
8222
|
+
align-items: center;
|
|
8223
|
+
justify-content: center;
|
|
8224
|
+
width: 2.5rem;
|
|
8225
|
+
height: 2.5rem;
|
|
8226
|
+
border-radius: 9999px;
|
|
8227
|
+
background-color: var(--color-cyan-100, #cffafe);
|
|
8228
|
+
color: var(--color-cyan-600, #0891b2);
|
|
8229
|
+
font-size: 1.125rem;
|
|
8230
|
+
}
|
|
8231
|
+
|
|
8232
|
+
.file-upload-zone-body {
|
|
8233
|
+
display: flex;
|
|
8234
|
+
flex-direction: column;
|
|
8235
|
+
gap: 0.25rem;
|
|
8236
|
+
align-items: center;
|
|
8237
|
+
}
|
|
8238
|
+
|
|
8239
|
+
/* Compact variant inner layout */
|
|
8240
|
+
.file-upload-compact-inner {
|
|
8241
|
+
display: flex;
|
|
8242
|
+
flex-direction: row;
|
|
8243
|
+
align-items: center;
|
|
8244
|
+
gap: 0.5rem;
|
|
8245
|
+
flex-wrap: wrap;
|
|
8246
|
+
}
|
|
8247
|
+
|
|
8248
|
+
.file-upload-icon {
|
|
8249
|
+
font-size: 1rem;
|
|
8250
|
+
color: var(--color-gray-400, #9ba6af);
|
|
8251
|
+
}
|
|
8252
|
+
|
|
8253
|
+
.file-upload-zone-text {
|
|
8254
|
+
font-size: 0.875rem;
|
|
8255
|
+
color: var(--color-gray-600, #5c6a74);
|
|
8256
|
+
line-height: 1.4;
|
|
8257
|
+
}
|
|
8258
|
+
|
|
8259
|
+
.file-upload-zone-link {
|
|
8260
|
+
color: var(--color-cyan-600, #0891b2);
|
|
8261
|
+
font-weight: 500;
|
|
8262
|
+
text-decoration: underline;
|
|
8263
|
+
text-underline-offset: 2px;
|
|
8264
|
+
}
|
|
8265
|
+
|
|
8266
|
+
.file-upload-hint {
|
|
8267
|
+
font-size: 0.75rem;
|
|
8268
|
+
color: var(--color-gray-400, #9ba6af);
|
|
8269
|
+
}
|
|
8270
|
+
|
|
8271
|
+
/* File list */
|
|
8272
|
+
.file-upload-list {
|
|
8273
|
+
display: flex;
|
|
8274
|
+
flex-direction: column;
|
|
8275
|
+
gap: 0.5rem;
|
|
8276
|
+
list-style: none;
|
|
8277
|
+
margin: 0;
|
|
8278
|
+
padding: 0;
|
|
8279
|
+
}
|
|
8280
|
+
|
|
8281
|
+
.file-upload-item {
|
|
8282
|
+
display: flex;
|
|
8283
|
+
align-items: center;
|
|
8284
|
+
gap: 0.75rem;
|
|
8285
|
+
padding: 0.625rem 0.875rem;
|
|
8286
|
+
border-radius: 0.5rem;
|
|
8287
|
+
border: 1px solid var(--color-gray-100, #eff1f2);
|
|
8288
|
+
background-color: var(--color-white, #fff);
|
|
8289
|
+
}
|
|
8290
|
+
|
|
8291
|
+
.file-upload-item--error {
|
|
8292
|
+
border-color: var(--color-red-200, #fecaca);
|
|
8293
|
+
background-color: var(--color-red-50, #fef2f2);
|
|
8294
|
+
}
|
|
8295
|
+
|
|
8296
|
+
.file-upload-item-icon {
|
|
8297
|
+
font-size: 1.25rem;
|
|
8298
|
+
flex-shrink: 0;
|
|
8299
|
+
line-height: 1;
|
|
8300
|
+
}
|
|
8301
|
+
|
|
8302
|
+
.file-upload-item-info {
|
|
8303
|
+
display: flex;
|
|
8304
|
+
flex-direction: column;
|
|
8305
|
+
gap: 0.125rem;
|
|
8306
|
+
flex: 1;
|
|
8307
|
+
min-width: 0;
|
|
8308
|
+
}
|
|
8309
|
+
|
|
8310
|
+
.file-upload-item-name {
|
|
8311
|
+
font-size: 0.875rem;
|
|
8312
|
+
font-weight: 500;
|
|
8313
|
+
color: var(--color-gray-800, #2d3c46);
|
|
8314
|
+
white-space: nowrap;
|
|
8315
|
+
overflow: hidden;
|
|
8316
|
+
text-overflow: ellipsis;
|
|
8317
|
+
}
|
|
8318
|
+
|
|
8319
|
+
.file-upload-item-size {
|
|
8320
|
+
font-size: 0.75rem;
|
|
8321
|
+
color: var(--color-gray-400, #9ba6af);
|
|
8322
|
+
}
|
|
8323
|
+
|
|
8324
|
+
.file-upload-item-error {
|
|
8325
|
+
font-size: 0.75rem;
|
|
8326
|
+
color: var(--color-red-500, #ef4444);
|
|
8327
|
+
}
|
|
8328
|
+
|
|
8329
|
+
.file-upload-item-remove {
|
|
8330
|
+
flex-shrink: 0;
|
|
8331
|
+
display: flex;
|
|
8332
|
+
align-items: center;
|
|
8333
|
+
justify-content: center;
|
|
8334
|
+
width: 1.5rem;
|
|
8335
|
+
height: 1.5rem;
|
|
8336
|
+
border-radius: 9999px;
|
|
8337
|
+
border: none;
|
|
8338
|
+
background: transparent;
|
|
8339
|
+
color: var(--color-gray-400, #9ba6af);
|
|
8340
|
+
font-size: 0.75rem;
|
|
8341
|
+
cursor: pointer;
|
|
8342
|
+
transition: background-color 0.15s ease, color 0.15s ease;
|
|
8343
|
+
line-height: 1;
|
|
8344
|
+
}
|
|
8345
|
+
|
|
8346
|
+
.file-upload-item-remove:hover {
|
|
8347
|
+
background-color: var(--color-gray-100, #eff1f2);
|
|
8348
|
+
color: var(--color-gray-700, #3f5260);
|
|
8349
|
+
}
|
|
8350
|
+
|
|
8351
|
+
/* DatePicker Styles */
|
|
8352
|
+
.date-picker-trigger {
|
|
8353
|
+
display: flex;
|
|
8354
|
+
align-items: center;
|
|
8355
|
+
gap: 0.5rem;
|
|
8356
|
+
width: 100%;
|
|
8357
|
+
height: 3rem;
|
|
8358
|
+
padding: 0 1rem;
|
|
8359
|
+
border: 1px solid var(--color-gray-200, #d5d9dc);
|
|
8360
|
+
border-radius: 0.5rem;
|
|
8361
|
+
background-color: var(--color-white, #fff);
|
|
8362
|
+
font-size: 0.875rem;
|
|
8363
|
+
color: var(--color-gray-800, #2d3c46);
|
|
8364
|
+
cursor: pointer;
|
|
8365
|
+
text-align: left;
|
|
8366
|
+
transition: border-color 0.15s ease, box-shadow 0.15s ease;
|
|
8367
|
+
outline: none;
|
|
8368
|
+
}
|
|
8369
|
+
|
|
8370
|
+
.date-picker-trigger:hover:not(.date-picker-trigger--disabled) {
|
|
8371
|
+
border-color: var(--color-gray-400, #9ba6af);
|
|
8372
|
+
}
|
|
8373
|
+
|
|
8374
|
+
.date-picker-trigger:focus-visible:not(.date-picker-trigger--disabled) {
|
|
8375
|
+
border-color: var(--color-cyan-400, #22d3ee);
|
|
8376
|
+
box-shadow: 0 0 0 3px rgba(34, 211, 238, 0.15);
|
|
8377
|
+
}
|
|
8378
|
+
|
|
8379
|
+
.date-picker-trigger--placeholder .date-picker-value {
|
|
8380
|
+
color: var(--color-gray-400, #9ba6af);
|
|
8381
|
+
}
|
|
8382
|
+
|
|
8383
|
+
.date-picker-trigger--disabled {
|
|
8384
|
+
cursor: not-allowed;
|
|
8385
|
+
opacity: 0.5;
|
|
8386
|
+
background-color: var(--color-gray-50, #f7f8f9);
|
|
8387
|
+
}
|
|
8388
|
+
|
|
8389
|
+
.date-picker-icon {
|
|
8390
|
+
display: flex;
|
|
8391
|
+
align-items: center;
|
|
8392
|
+
flex-shrink: 0;
|
|
8393
|
+
color: var(--color-gray-400, #9ba6af);
|
|
8394
|
+
}
|
|
8395
|
+
|
|
8396
|
+
.date-picker-value {
|
|
8397
|
+
flex: 1;
|
|
8398
|
+
overflow: hidden;
|
|
8399
|
+
white-space: nowrap;
|
|
8400
|
+
text-overflow: ellipsis;
|
|
8401
|
+
}
|
|
8402
|
+
|
|
8403
|
+
.date-picker-chevron {
|
|
8404
|
+
display: flex;
|
|
8405
|
+
align-items: center;
|
|
8406
|
+
flex-shrink: 0;
|
|
8407
|
+
color: var(--color-gray-400, #9ba6af);
|
|
8408
|
+
margin-left: auto;
|
|
8409
|
+
}
|
|
8410
|
+
|
|
8411
|
+
.date-picker-popover {
|
|
8412
|
+
padding: 0;
|
|
8413
|
+
width: auto;
|
|
8414
|
+
}
|
|
8415
|
+
|
|
8416
|
+
/* Stepper Styles */
|
|
8417
|
+
.stepper {
|
|
8418
|
+
display: flex;
|
|
8419
|
+
width: 100%;
|
|
8420
|
+
}
|
|
8421
|
+
|
|
8422
|
+
.stepper--horizontal {
|
|
8423
|
+
flex-direction: row;
|
|
8424
|
+
align-items: flex-start;
|
|
8425
|
+
}
|
|
8426
|
+
|
|
8427
|
+
.stepper--vertical {
|
|
8428
|
+
flex-direction: column;
|
|
8429
|
+
}
|
|
8430
|
+
|
|
8431
|
+
/* Size tokens */
|
|
8432
|
+
.stepper--sm { --stepper-indicator-size: 1.5rem; --stepper-font-size: 0.75rem; }
|
|
8433
|
+
.stepper--md { --stepper-indicator-size: 2rem; --stepper-font-size: 0.875rem; }
|
|
8434
|
+
.stepper--lg { --stepper-indicator-size: 2.5rem; --stepper-font-size: 1rem; }
|
|
8435
|
+
|
|
8436
|
+
/* ---------------------------------------------------------------------------
|
|
8437
|
+
Stepper Item
|
|
8438
|
+
--------------------------------------------------------------------------- */
|
|
8439
|
+
.stepper-item {
|
|
8440
|
+
display: flex;
|
|
8441
|
+
position: relative;
|
|
8442
|
+
}
|
|
8443
|
+
|
|
8444
|
+
/* Horizontal: each item is a column (indicator on top, label below) */
|
|
8445
|
+
.stepper--horizontal .stepper-item {
|
|
8446
|
+
flex-direction: column;
|
|
8447
|
+
align-items: center;
|
|
8448
|
+
flex: 1;
|
|
8449
|
+
}
|
|
8450
|
+
|
|
8451
|
+
/* Vertical: each item is a row (indicator on left, label on right) */
|
|
8452
|
+
.stepper--vertical .stepper-item {
|
|
8453
|
+
flex-direction: row;
|
|
8454
|
+
align-items: flex-start;
|
|
8455
|
+
gap: 0.75rem;
|
|
8456
|
+
}
|
|
8457
|
+
|
|
8458
|
+
/* ---------------------------------------------------------------------------
|
|
8459
|
+
Indicator Row (holds the circle + connector line)
|
|
8460
|
+
--------------------------------------------------------------------------- */
|
|
8461
|
+
.stepper-indicator-row {
|
|
8462
|
+
display: flex;
|
|
8463
|
+
align-items: center;
|
|
8464
|
+
width: 100%;
|
|
8465
|
+
position: relative;
|
|
8466
|
+
}
|
|
8467
|
+
|
|
8468
|
+
.stepper--vertical .stepper-indicator-row {
|
|
8469
|
+
flex-direction: column;
|
|
8470
|
+
align-items: center;
|
|
8471
|
+
width: auto;
|
|
8472
|
+
}
|
|
8473
|
+
|
|
8474
|
+
/* ---------------------------------------------------------------------------
|
|
8475
|
+
Indicator (the circle)
|
|
8476
|
+
--------------------------------------------------------------------------- */
|
|
8477
|
+
.stepper-indicator {
|
|
8478
|
+
display: flex;
|
|
8479
|
+
align-items: center;
|
|
8480
|
+
justify-content: center;
|
|
8481
|
+
flex-shrink: 0;
|
|
8482
|
+
width: var(--stepper-indicator-size);
|
|
8483
|
+
height: var(--stepper-indicator-size);
|
|
8484
|
+
border-radius: 9999px;
|
|
8485
|
+
border: 2px solid transparent;
|
|
8486
|
+
font-size: var(--stepper-font-size);
|
|
8487
|
+
font-weight: 600;
|
|
8488
|
+
transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
|
|
8489
|
+
cursor: default;
|
|
8490
|
+
background: none;
|
|
8491
|
+
padding: 0;
|
|
8492
|
+
line-height: 1;
|
|
8493
|
+
z-index: 1;
|
|
8494
|
+
}
|
|
8495
|
+
|
|
8496
|
+
/* Complete */
|
|
8497
|
+
.stepper-indicator--complete.stepper-indicator--default {
|
|
8498
|
+
background-color: var(--color-cyan-600, #0891b2);
|
|
8499
|
+
border-color: var(--color-cyan-600, #0891b2);
|
|
8500
|
+
color: #fff;
|
|
8501
|
+
}
|
|
8502
|
+
.stepper-indicator--complete.stepper-indicator--outlined {
|
|
8503
|
+
background-color: transparent;
|
|
8504
|
+
border-color: var(--color-cyan-600, #0891b2);
|
|
8505
|
+
color: var(--color-cyan-600, #0891b2);
|
|
8506
|
+
}
|
|
8507
|
+
|
|
8508
|
+
/* Current */
|
|
8509
|
+
.stepper-indicator--current.stepper-indicator--default {
|
|
8510
|
+
background-color: var(--color-cyan-600, #0891b2);
|
|
8511
|
+
border-color: var(--color-cyan-600, #0891b2);
|
|
8512
|
+
color: #fff;
|
|
8513
|
+
}
|
|
8514
|
+
.stepper-indicator--current.stepper-indicator--outlined {
|
|
8515
|
+
background-color: transparent;
|
|
8516
|
+
border-color: var(--color-cyan-600, #0891b2);
|
|
8517
|
+
color: var(--color-cyan-600, #0891b2);
|
|
8518
|
+
}
|
|
8519
|
+
|
|
8520
|
+
/* Upcoming */
|
|
8521
|
+
.stepper-indicator--upcoming.stepper-indicator--default {
|
|
8522
|
+
background-color: var(--color-gray-100, #eff1f2);
|
|
8523
|
+
border-color: var(--color-gray-200, #d5d9dc);
|
|
8524
|
+
color: var(--color-gray-400, #9ba6af);
|
|
8525
|
+
}
|
|
8526
|
+
.stepper-indicator--upcoming.stepper-indicator--outlined {
|
|
8527
|
+
background-color: transparent;
|
|
8528
|
+
border-color: var(--color-gray-300, #bec6cb);
|
|
8529
|
+
color: var(--color-gray-400, #9ba6af);
|
|
8530
|
+
}
|
|
8531
|
+
|
|
8532
|
+
.stepper-indicator--clickable {
|
|
8533
|
+
cursor: pointer;
|
|
8534
|
+
}
|
|
8535
|
+
.stepper-indicator--clickable:hover {
|
|
8536
|
+
opacity: 0.8;
|
|
8537
|
+
}
|
|
8538
|
+
|
|
8539
|
+
.stepper-indicator-number {
|
|
8540
|
+
line-height: 1;
|
|
8541
|
+
}
|
|
8542
|
+
|
|
8543
|
+
/* ---------------------------------------------------------------------------
|
|
8544
|
+
Connector line
|
|
8545
|
+
--------------------------------------------------------------------------- */
|
|
8546
|
+
.stepper-connector {
|
|
8547
|
+
background-color: var(--color-gray-200, #d5d9dc);
|
|
8548
|
+
transition: background-color 0.2s ease;
|
|
8549
|
+
}
|
|
8550
|
+
|
|
8551
|
+
.stepper-connector--complete {
|
|
8552
|
+
background-color: var(--color-cyan-600, #0891b2);
|
|
8553
|
+
}
|
|
8554
|
+
|
|
8555
|
+
/* Horizontal connector */
|
|
8556
|
+
.stepper-connector--horizontal {
|
|
8557
|
+
flex: 1;
|
|
8558
|
+
height: 2px;
|
|
8559
|
+
margin: 0 0.5rem;
|
|
8560
|
+
}
|
|
8561
|
+
|
|
8562
|
+
/* Vertical connector */
|
|
8563
|
+
.stepper-connector--vertical {
|
|
8564
|
+
width: 2px;
|
|
8565
|
+
flex: 1;
|
|
8566
|
+
min-height: 2rem;
|
|
8567
|
+
margin: 0.25rem 0;
|
|
8568
|
+
}
|
|
8569
|
+
|
|
8570
|
+
/* ---------------------------------------------------------------------------
|
|
8571
|
+
Label
|
|
8572
|
+
--------------------------------------------------------------------------- */
|
|
8573
|
+
.stepper-label {
|
|
8574
|
+
display: flex;
|
|
8575
|
+
flex-direction: column;
|
|
8576
|
+
gap: 0.125rem;
|
|
8577
|
+
}
|
|
8578
|
+
|
|
8579
|
+
.stepper--horizontal .stepper-label {
|
|
8580
|
+
align-items: center;
|
|
8581
|
+
text-align: center;
|
|
8582
|
+
margin-top: 0.5rem;
|
|
8583
|
+
padding: 0 0.25rem;
|
|
8584
|
+
}
|
|
8585
|
+
|
|
8586
|
+
.stepper--vertical .stepper-label {
|
|
8587
|
+
padding-bottom: 1.5rem;
|
|
8588
|
+
}
|
|
8589
|
+
|
|
8590
|
+
.stepper-title {
|
|
8591
|
+
font-size: var(--stepper-font-size);
|
|
8592
|
+
font-weight: 600;
|
|
8593
|
+
line-height: 1.4;
|
|
8594
|
+
transition: color 0.15s ease;
|
|
8595
|
+
}
|
|
8596
|
+
|
|
8597
|
+
.stepper-title--complete { color: var(--color-gray-700, #3f5260); }
|
|
8598
|
+
.stepper-title--current { color: var(--color-gray-900, #1a282f); }
|
|
8599
|
+
.stepper-title--upcoming { color: var(--color-gray-400, #9ba6af); }
|
|
8600
|
+
|
|
8601
|
+
.stepper-description {
|
|
8602
|
+
font-size: calc(var(--stepper-font-size) - 0.0625rem);
|
|
8603
|
+
line-height: 1.4;
|
|
8604
|
+
}
|
|
8605
|
+
|
|
8606
|
+
.stepper-description--complete { color: var(--color-gray-400, #9ba6af); }
|
|
8607
|
+
.stepper-description--current { color: var(--color-gray-500, #6b7a84); }
|
|
8608
|
+
.stepper-description--upcoming { color: var(--color-gray-300, #bec6cb); }
|
|
8609
|
+
|
|
8610
|
+
/* ─── AppBar ──────────────────────────────────────────────────────────────── */
|
|
8611
|
+
|
|
8612
|
+
.app-bar {
|
|
8613
|
+
display: flex;
|
|
8614
|
+
align-items: center;
|
|
8615
|
+
width: 100%;
|
|
8616
|
+
top: 0;
|
|
8617
|
+
left: 0;
|
|
8618
|
+
right: 0;
|
|
8619
|
+
z-index: var(--z-app-bar, 100);
|
|
8620
|
+
background-color: var(--app-bar-bg, var(--color-surface, #ffffff));
|
|
8621
|
+
color: var(--app-bar-color, var(--color-on-surface, #1a1a1a));
|
|
8622
|
+
border-bottom: 1px solid var(--app-bar-border, var(--color-border, #e5e7eb));
|
|
8623
|
+
padding-inline: var(--app-bar-px, 0.75rem);
|
|
8624
|
+
gap: var(--app-bar-gap, 0.25rem);
|
|
8625
|
+
overflow: hidden; /* keeps image layer clipped to bar bounds */
|
|
8626
|
+
transition:
|
|
8627
|
+
box-shadow 200ms ease,
|
|
8628
|
+
height 200ms ease,
|
|
8629
|
+
background-color 200ms ease;
|
|
8630
|
+
}
|
|
8631
|
+
|
|
8632
|
+
/* ─── Position variants ──────────────────────────────────────────────────── */
|
|
8633
|
+
|
|
8634
|
+
.app-bar--fixed { position: fixed; }
|
|
8635
|
+
.app-bar--sticky { position: sticky; }
|
|
8636
|
+
.app-bar--relative { position: relative; }
|
|
8637
|
+
.app-bar--static { position: static; }
|
|
8638
|
+
|
|
8639
|
+
/* ─── Color variants ─────────────────────────────────────────────────────── */
|
|
8640
|
+
|
|
8641
|
+
.app-bar--primary {
|
|
8642
|
+
background-color: var(--color-primary, #2563eb);
|
|
8643
|
+
color: var(--color-on-primary, #ffffff);
|
|
8644
|
+
border-bottom-color: transparent;
|
|
8645
|
+
}
|
|
8646
|
+
|
|
8647
|
+
.app-bar--primary .app-bar-nav-icon,
|
|
8648
|
+
.app-bar--primary .app-bar-action-btn {
|
|
8649
|
+
color: var(--color-on-primary, #ffffff);
|
|
8650
|
+
}
|
|
8651
|
+
|
|
8652
|
+
.app-bar--transparent {
|
|
8653
|
+
background-color: transparent;
|
|
8654
|
+
border-bottom-color: transparent;
|
|
8655
|
+
}
|
|
8656
|
+
|
|
8657
|
+
/* ─── Density ────────────────────────────────────────────────────────────── */
|
|
8658
|
+
|
|
8659
|
+
.app-bar--comfortable {
|
|
8660
|
+
padding-inline: var(--app-bar-px-comfortable, 0.75rem);
|
|
8661
|
+
}
|
|
8662
|
+
|
|
8663
|
+
.app-bar--compact {
|
|
8664
|
+
padding-inline: var(--app-bar-px-compact, 0.5rem);
|
|
8665
|
+
}
|
|
8666
|
+
|
|
8667
|
+
.app-bar--compact .app-bar-title {
|
|
8668
|
+
font-size: var(--app-bar-title-size-compact, 1rem);
|
|
8669
|
+
}
|
|
8670
|
+
|
|
8671
|
+
/* ─── Prominent ──────────────────────────────────────────────────────────── */
|
|
8672
|
+
/*
|
|
8673
|
+
Prominent bars are taller (128px via inline style).
|
|
8674
|
+
The inner wrapper uses a column layout so the top row holds
|
|
8675
|
+
the nav/actions and the title flows to the bottom.
|
|
8676
|
+
*/
|
|
8677
|
+
|
|
8678
|
+
.app-bar--prominent {
|
|
8679
|
+
align-items: stretch;
|
|
8680
|
+
padding-inline: 0;
|
|
8681
|
+
}
|
|
8682
|
+
|
|
8683
|
+
.app-bar-prominent-inner {
|
|
8684
|
+
display: flex;
|
|
8685
|
+
flex-direction: column;
|
|
8686
|
+
justify-content: space-between;
|
|
8687
|
+
width: 100%;
|
|
8688
|
+
padding-block: 0.25rem 0.75rem;
|
|
8689
|
+
padding-inline: var(--app-bar-px, 0.75rem);
|
|
8690
|
+
position: relative;
|
|
8691
|
+
z-index: 1;
|
|
8692
|
+
}
|
|
8693
|
+
|
|
8694
|
+
/* Top row: prepend + append sit at the top of the prominent bar */
|
|
8695
|
+
.app-bar--prominent .app-bar-prepend {
|
|
8696
|
+
align-self: flex-start;
|
|
8697
|
+
}
|
|
8698
|
+
|
|
8699
|
+
.app-bar--prominent .app-bar-append {
|
|
8700
|
+
align-self: flex-start;
|
|
8701
|
+
/* keep append pinned to the right inside the top row */
|
|
8702
|
+
margin-inline-start: auto;
|
|
8703
|
+
}
|
|
8704
|
+
|
|
8705
|
+
/* Title flows to the bottom of the prominent bar */
|
|
8706
|
+
.app-bar--prominent .app-bar-title {
|
|
8707
|
+
font-size: var(--app-bar-title-size-prominent, 1.25rem);
|
|
8708
|
+
font-weight: var(--app-bar-title-weight-prominent, 600);
|
|
8709
|
+
padding-inline-start: 0.25rem;
|
|
8710
|
+
align-self: flex-end;
|
|
8711
|
+
width: 100%;
|
|
8712
|
+
}
|
|
8713
|
+
|
|
8714
|
+
/*
|
|
8715
|
+
The prominent bar's top row (prepend + append) needs to be a flex row.
|
|
8716
|
+
We achieve this by making the first flex layer of prominent-inner a row,
|
|
8717
|
+
then the title breaks to the bottom via flex-wrap or an explicit row wrapper.
|
|
8718
|
+
Since children are prepend / title / append we use a top-row wrapper approach
|
|
8719
|
+
via CSS: wrap the first row items and push title to the bottom.
|
|
8720
|
+
*/
|
|
8721
|
+
.app-bar-prominent-inner {
|
|
8722
|
+
/* Use a 2-row grid: top row auto, bottom row fills remaining */
|
|
8723
|
+
display: grid;
|
|
8724
|
+
grid-template-rows: auto 1fr;
|
|
8725
|
+
grid-template-columns: 1fr;
|
|
8726
|
+
height: 100%;
|
|
8727
|
+
}
|
|
8728
|
+
|
|
8729
|
+
.app-bar-prominent-top {
|
|
8730
|
+
display: flex;
|
|
8731
|
+
align-items: center;
|
|
8732
|
+
width: 100%;
|
|
8733
|
+
}
|
|
8734
|
+
|
|
8735
|
+
.app-bar-prominent-bottom {
|
|
8736
|
+
display: flex;
|
|
8737
|
+
align-items: flex-end;
|
|
8738
|
+
width: 100%;
|
|
8739
|
+
padding-bottom: 0.25rem;
|
|
8740
|
+
}
|
|
8741
|
+
|
|
8742
|
+
/* ─── Elevation ──────────────────────────────────────────────────────────── */
|
|
8743
|
+
|
|
8744
|
+
.app-bar--elevated {
|
|
8745
|
+
border-bottom-color: transparent;
|
|
8746
|
+
box-shadow: var(
|
|
8747
|
+
--app-bar-shadow,
|
|
8748
|
+
0 1px 3px 0 rgb(0 0 0 / 0.1),
|
|
8749
|
+
0 1px 2px -1px rgb(0 0 0 / 0.1)
|
|
8750
|
+
);
|
|
8751
|
+
}
|
|
8752
|
+
|
|
8753
|
+
/* ─── Flat ───────────────────────────────────────────────────────────────── */
|
|
8754
|
+
|
|
8755
|
+
.app-bar--flat {
|
|
8756
|
+
border-bottom-color: transparent;
|
|
8757
|
+
box-shadow: none;
|
|
8758
|
+
}
|
|
8759
|
+
|
|
8760
|
+
/* ─── Rounded ────────────────────────────────────────────────────────────── */
|
|
8761
|
+
|
|
8762
|
+
.app-bar--rounded {
|
|
8763
|
+
border-radius: var(--app-bar-radius, 0.75rem);
|
|
8764
|
+
margin: var(--app-bar-rounded-margin, 0.5rem);
|
|
8765
|
+
width: calc(100% - var(--app-bar-rounded-margin, 0.5rem) * 2);
|
|
8766
|
+
}
|
|
8767
|
+
|
|
8768
|
+
/* ─── Collapse ───────────────────────────────────────────────────────────── */
|
|
8769
|
+
|
|
8770
|
+
.app-bar--collapse .app-bar-title,
|
|
8771
|
+
.app-bar--collapse .app-bar-content,
|
|
8772
|
+
.app-bar--collapse .app-bar-append {
|
|
8773
|
+
opacity: 0;
|
|
8774
|
+
pointer-events: none;
|
|
8775
|
+
width: 0;
|
|
8776
|
+
overflow: hidden;
|
|
8777
|
+
transition: opacity 200ms ease, width 200ms ease;
|
|
8778
|
+
}
|
|
8779
|
+
|
|
8780
|
+
/* ─── Image ──────────────────────────────────────────────────────────────── */
|
|
8781
|
+
|
|
8782
|
+
.app-bar--image {
|
|
8783
|
+
/* When an image is set, ensure text stays readable */
|
|
8784
|
+
color: var(--color-on-primary, #ffffff);
|
|
8785
|
+
border-bottom-color: transparent;
|
|
8786
|
+
}
|
|
8787
|
+
|
|
8788
|
+
.app-bar--image .app-bar-nav-icon,
|
|
8789
|
+
.app-bar--image .app-bar-action-btn {
|
|
8790
|
+
color: var(--color-on-primary, #ffffff);
|
|
8791
|
+
}
|
|
8792
|
+
|
|
8793
|
+
/* The image sits behind all content via absolute positioning */
|
|
8794
|
+
.app-bar-image-layer {
|
|
8795
|
+
position: absolute;
|
|
8796
|
+
inset: 0;
|
|
8797
|
+
background-size: cover;
|
|
8798
|
+
background-position: center;
|
|
8799
|
+
z-index: 0;
|
|
8800
|
+
}
|
|
8801
|
+
|
|
8802
|
+
/* Optional gradient overlay on top of the image */
|
|
8803
|
+
.app-bar-image-overlay {
|
|
8804
|
+
position: absolute;
|
|
8805
|
+
inset: 0;
|
|
8806
|
+
}
|
|
8807
|
+
|
|
8808
|
+
/*
|
|
8809
|
+
All direct children of .app-bar need z-index: 1 when an image is present
|
|
8810
|
+
so they render above the image layer.
|
|
8811
|
+
*/
|
|
8812
|
+
.app-bar--image > .app-bar-prepend,
|
|
8813
|
+
.app-bar--image > .app-bar-title,
|
|
8814
|
+
.app-bar--image > .app-bar-content,
|
|
8815
|
+
.app-bar--image > .app-bar-append {
|
|
8816
|
+
position: relative;
|
|
8817
|
+
z-index: 1;
|
|
8818
|
+
}
|
|
8819
|
+
|
|
8820
|
+
/* ─── Prepend slot ───────────────────────────────────────────────────────── */
|
|
8821
|
+
|
|
8822
|
+
.app-bar-prepend {
|
|
8823
|
+
display: flex;
|
|
8824
|
+
align-items: center;
|
|
8825
|
+
flex-shrink: 0;
|
|
8826
|
+
gap: 0.25rem;
|
|
8827
|
+
}
|
|
8828
|
+
|
|
8829
|
+
/* ─── Nav Icon button ────────────────────────────────────────────────────── */
|
|
8830
|
+
|
|
8831
|
+
.app-bar-nav-icon {
|
|
8832
|
+
display: inline-flex;
|
|
8833
|
+
align-items: center;
|
|
8834
|
+
justify-content: center;
|
|
8835
|
+
width: 2.5rem;
|
|
8836
|
+
height: 2.5rem;
|
|
8837
|
+
border-radius: var(--radius-full, 9999px);
|
|
8838
|
+
border: none;
|
|
8839
|
+
background: transparent;
|
|
8840
|
+
color: inherit;
|
|
8841
|
+
cursor: pointer;
|
|
8842
|
+
transition: background-color 150ms ease;
|
|
8843
|
+
flex-shrink: 0;
|
|
8844
|
+
}
|
|
8845
|
+
|
|
8846
|
+
.app-bar-nav-icon:hover {
|
|
8847
|
+
background-color: var(--color-muted, rgba(0, 0, 0, 0.06));
|
|
8848
|
+
}
|
|
8849
|
+
|
|
8850
|
+
.app-bar-nav-icon:focus-visible {
|
|
8851
|
+
outline: 2px solid var(--color-primary, #2563eb);
|
|
8852
|
+
outline-offset: 2px;
|
|
8853
|
+
}
|
|
8854
|
+
|
|
8855
|
+
/* ─── Title ──────────────────────────────────────────────────────────────── */
|
|
8856
|
+
|
|
8857
|
+
.app-bar-title {
|
|
8858
|
+
flex: 1;
|
|
8859
|
+
font-size: var(--app-bar-title-size, 1.125rem);
|
|
8860
|
+
font-weight: var(--app-bar-title-weight, 600);
|
|
8861
|
+
line-height: 1.25;
|
|
8862
|
+
white-space: nowrap;
|
|
8863
|
+
overflow: hidden;
|
|
8864
|
+
text-overflow: ellipsis;
|
|
8865
|
+
transition: opacity 200ms ease, width 200ms ease;
|
|
8866
|
+
}
|
|
8867
|
+
|
|
8868
|
+
/* ─── Content ────────────────────────────────────────────────────────────── */
|
|
8869
|
+
|
|
8870
|
+
.app-bar-content {
|
|
8871
|
+
flex: 1;
|
|
8872
|
+
display: flex;
|
|
8873
|
+
align-items: center;
|
|
8874
|
+
min-width: 0;
|
|
8875
|
+
transition: opacity 200ms ease, width 200ms ease;
|
|
8876
|
+
}
|
|
8877
|
+
|
|
8878
|
+
/* ─── Append slot ────────────────────────────────────────────────────────── */
|
|
8879
|
+
|
|
8880
|
+
.app-bar-append {
|
|
8881
|
+
display: flex;
|
|
8882
|
+
align-items: center;
|
|
8883
|
+
flex-shrink: 0;
|
|
8884
|
+
gap: 0.25rem;
|
|
8885
|
+
margin-inline-start: auto;
|
|
8886
|
+
transition: opacity 200ms ease, width 200ms ease;
|
|
8887
|
+
}
|
|
8888
|
+
|
|
8889
|
+
/* ─── Action button ──────────────────────────────────────────────────────── */
|
|
8890
|
+
|
|
8891
|
+
.app-bar-action-btn {
|
|
8892
|
+
display: inline-flex;
|
|
8893
|
+
align-items: center;
|
|
8894
|
+
justify-content: center;
|
|
8895
|
+
width: 2.5rem;
|
|
8896
|
+
height: 2.5rem;
|
|
8897
|
+
border-radius: var(--radius-full, 9999px);
|
|
8898
|
+
border: none;
|
|
8899
|
+
background: transparent;
|
|
8900
|
+
color: inherit;
|
|
8901
|
+
cursor: pointer;
|
|
8902
|
+
transition: background-color 150ms ease;
|
|
8903
|
+
flex-shrink: 0;
|
|
8904
|
+
}
|
|
8905
|
+
|
|
8906
|
+
.app-bar-action-btn:hover {
|
|
8907
|
+
background-color: var(--color-muted, rgba(0, 0, 0, 0.06));
|
|
8908
|
+
}
|
|
8909
|
+
|
|
8910
|
+
.app-bar-action-btn:focus-visible {
|
|
8911
|
+
outline: 2px solid var(--color-primary, #2563eb);
|
|
8912
|
+
outline-offset: 2px;
|
|
8913
|
+
}
|
|
8914
|
+
|
|
8915
|
+
/* ─── Search input ───────────────────────────────────────────────────────── */
|
|
8916
|
+
|
|
8917
|
+
.app-bar-search {
|
|
8918
|
+
position: relative;
|
|
8919
|
+
display: flex;
|
|
8920
|
+
align-items: center;
|
|
8921
|
+
width: 100%;
|
|
8922
|
+
max-width: 28rem;
|
|
8923
|
+
}
|
|
8924
|
+
|
|
8925
|
+
.app-bar-search-icon {
|
|
8926
|
+
position: absolute;
|
|
8927
|
+
left: 0.75rem;
|
|
8928
|
+
color: var(--color-muted-foreground, #9ca3af);
|
|
8929
|
+
pointer-events: none;
|
|
8930
|
+
flex-shrink: 0;
|
|
8931
|
+
}
|
|
8932
|
+
|
|
8933
|
+
.app-bar-search-input {
|
|
8934
|
+
width: 100%;
|
|
8935
|
+
height: 2.25rem;
|
|
8936
|
+
padding-inline: 2.25rem 0.75rem;
|
|
8937
|
+
border-radius: var(--radius-md, 0.5rem);
|
|
8938
|
+
border: 1px solid var(--color-border, #e5e7eb);
|
|
8939
|
+
background: var(--color-muted-bg, rgba(0, 0, 0, 0.04));
|
|
8940
|
+
font-size: 0.875rem;
|
|
8941
|
+
color: inherit;
|
|
8942
|
+
outline: none;
|
|
8943
|
+
transition: border-color 150ms ease, background-color 150ms ease;
|
|
8944
|
+
}
|
|
8945
|
+
|
|
8946
|
+
.app-bar-search-input::placeholder {
|
|
8947
|
+
color: var(--color-muted-foreground, #9ca3af);
|
|
8948
|
+
}
|
|
8949
|
+
|
|
8950
|
+
.app-bar-search-input:focus {
|
|
8951
|
+
border-color: var(--color-primary, #2563eb);
|
|
8952
|
+
background: var(--color-surface, #ffffff);
|
|
8953
|
+
}
|
|
8954
|
+
|
|
8955
|
+
/* ─── BottomNavigation ───────────────────────────────────────────────────── */
|
|
8956
|
+
|
|
8957
|
+
.bottom-nav {
|
|
8958
|
+
position: absolute;
|
|
8959
|
+
bottom: 0;
|
|
8960
|
+
left: 0;
|
|
8961
|
+
right: 0;
|
|
8962
|
+
width: 100%;
|
|
8963
|
+
background-color: var(--bottom-nav-bg, var(--color-surface, #ffffff));
|
|
8964
|
+
border-top: 1px solid var(--bottom-nav-border, var(--color-border, #e5e7eb));
|
|
8965
|
+
z-index: var(--z-bottom-nav, 100);
|
|
8966
|
+
transform: translateY(0);
|
|
8967
|
+
transition: transform 250ms ease, background-color 200ms ease;
|
|
8968
|
+
}
|
|
8969
|
+
|
|
8970
|
+
.bottom-nav--hidden {
|
|
8971
|
+
transform: translateY(100%);
|
|
8972
|
+
}
|
|
8973
|
+
|
|
8974
|
+
.bottom-nav--elevated {
|
|
8975
|
+
box-shadow:
|
|
8976
|
+
0 -1px 3px 0 rgb(0 0 0 / 0.08),
|
|
8977
|
+
0 -1px 8px 0 rgb(0 0 0 / 0.06);
|
|
8978
|
+
border-top-color: transparent;
|
|
8979
|
+
}
|
|
8980
|
+
|
|
8981
|
+
/* ─── Group ──────────────────────────────────────────────────────────────── */
|
|
8982
|
+
|
|
8983
|
+
.bottom-nav-group {
|
|
8984
|
+
display: flex;
|
|
8985
|
+
align-items: stretch;
|
|
8986
|
+
height: var(--bottom-nav-height, 56px);
|
|
8987
|
+
width: 100%;
|
|
8988
|
+
}
|
|
8989
|
+
|
|
8990
|
+
/* ─── Item (button) ──────────────────────────────────────────────────────── */
|
|
8991
|
+
|
|
8992
|
+
.bottom-nav-item {
|
|
8993
|
+
display: inline-flex;
|
|
8994
|
+
flex-direction: column;
|
|
8995
|
+
align-items: center;
|
|
8996
|
+
justify-content: center;
|
|
8997
|
+
gap: 0.125rem;
|
|
8998
|
+
min-width: 80px;
|
|
8999
|
+
padding-inline: 0.75rem;
|
|
9000
|
+
border: none;
|
|
9001
|
+
background: transparent;
|
|
9002
|
+
color: var(--bottom-nav-item-color, var(--color-gray-500, #71747d));
|
|
9003
|
+
cursor: pointer;
|
|
9004
|
+
font-size: 0.6875rem; /* 11px label */
|
|
9005
|
+
font-weight: 500;
|
|
9006
|
+
line-height: 1.2;
|
|
9007
|
+
text-align: center;
|
|
9008
|
+
transition:
|
|
9009
|
+
color 150ms ease,
|
|
9010
|
+
background-color 150ms ease;
|
|
9011
|
+
position: relative;
|
|
9012
|
+
overflow: hidden;
|
|
9013
|
+
-webkit-tap-highlight-color: transparent;
|
|
9014
|
+
}
|
|
9015
|
+
|
|
9016
|
+
/* Ripple placeholder on click */
|
|
9017
|
+
.bottom-nav-item::after {
|
|
9018
|
+
content: "";
|
|
9019
|
+
position: absolute;
|
|
9020
|
+
inset: 0;
|
|
9021
|
+
background: currentColor;
|
|
9022
|
+
opacity: 0;
|
|
9023
|
+
transition: opacity 200ms ease;
|
|
9024
|
+
border-radius: inherit;
|
|
9025
|
+
pointer-events: none;
|
|
9026
|
+
}
|
|
9027
|
+
|
|
9028
|
+
.bottom-nav-item:hover::after {
|
|
9029
|
+
opacity: 0.06;
|
|
9030
|
+
}
|
|
9031
|
+
|
|
9032
|
+
.bottom-nav-item:active::after {
|
|
9033
|
+
opacity: 0.12;
|
|
9034
|
+
}
|
|
9035
|
+
|
|
9036
|
+
/* Active state — color driven by CSS variable set via inline style */
|
|
9037
|
+
.bottom-nav-item--active {
|
|
9038
|
+
color: var(--bottom-nav-active-color, var(--color-primary, #2563eb));
|
|
9039
|
+
}
|
|
9040
|
+
|
|
9041
|
+
/* Icon inside item — inherits color */
|
|
9042
|
+
.bottom-nav-item svg {
|
|
9043
|
+
flex-shrink: 0;
|
|
9044
|
+
transition: color 150ms ease;
|
|
9045
|
+
}
|
|
9046
|
+
|
|
9047
|
+
/* Label inside item */
|
|
9048
|
+
.bottom-nav-item span {
|
|
9049
|
+
display: block;
|
|
9050
|
+
transition: opacity 150ms ease, max-height 150ms ease;
|
|
9051
|
+
}
|
|
9052
|
+
|
|
9053
|
+
/* ─── Grow ───────────────────────────────────────────────────────────────── */
|
|
9054
|
+
/* Each item fills available space, capped at 168px per MD spec */
|
|
9055
|
+
|
|
9056
|
+
.bottom-nav--grow .bottom-nav-group {
|
|
9057
|
+
justify-content: stretch;
|
|
9058
|
+
}
|
|
9059
|
+
|
|
9060
|
+
.bottom-nav-item--grow {
|
|
9061
|
+
flex: 1;
|
|
9062
|
+
max-width: 168px;
|
|
9063
|
+
}
|
|
9064
|
+
|
|
9065
|
+
/* ─── Horizontal ─────────────────────────────────────────────────────────── */
|
|
9066
|
+
/* Icon and label sit side-by-side */
|
|
9067
|
+
|
|
9068
|
+
.bottom-nav-item--horizontal {
|
|
9069
|
+
flex-direction: row;
|
|
9070
|
+
gap: 0.375rem;
|
|
9071
|
+
font-size: 0.8125rem; /* slightly larger for inline layout */
|
|
9072
|
+
}
|
|
9073
|
+
|
|
9074
|
+
/* ─── Shift ──────────────────────────────────────────────────────────────── */
|
|
9075
|
+
/* Inactive items: icon only (label hidden). Active item: icon + label. */
|
|
9076
|
+
|
|
9077
|
+
.bottom-nav-item--shift span {
|
|
9078
|
+
max-height: 0;
|
|
9079
|
+
opacity: 0;
|
|
9080
|
+
overflow: hidden;
|
|
9081
|
+
pointer-events: none;
|
|
9082
|
+
}
|
|
9083
|
+
|
|
9084
|
+
.bottom-nav-item--shift.bottom-nav-item--active span {
|
|
9085
|
+
max-height: 2rem;
|
|
9086
|
+
opacity: 1;
|
|
9087
|
+
pointer-events: auto;
|
|
9088
|
+
}
|
|
9089
|
+
|
|
9090
|
+
/* Inactive icons in shift mode are slightly smaller */
|
|
9091
|
+
.bottom-nav-item--shift:not(.bottom-nav-item--active) svg {
|
|
9092
|
+
transform: scale(0.85);
|
|
9093
|
+
transition: transform 150ms ease, color 150ms ease;
|
|
9094
|
+
}
|
|
9095
|
+
|
|
9096
|
+
.bottom-nav-item--shift.bottom-nav-item--active svg {
|
|
9097
|
+
transform: scale(1);
|
|
9098
|
+
}
|
|
9099
|
+
|
|
9100
|
+
/* ─── Footer ─────────────────────────────────────────────────────────────── */
|
|
9101
|
+
|
|
9102
|
+
.footer {
|
|
9103
|
+
width: 100%;
|
|
9104
|
+
background-color: var(--footer-bg, var(--color-surface, #ffffff));
|
|
9105
|
+
color: var(--footer-color, var(--color-on-surface, #1a1a1a));
|
|
9106
|
+
padding: var(--footer-padding, 1rem 1.5rem);
|
|
9107
|
+
display: flex;
|
|
9108
|
+
flex-direction: column;
|
|
9109
|
+
gap: var(--footer-gap, 0.75rem);
|
|
9110
|
+
}
|
|
9111
|
+
|
|
9112
|
+
/* ─── Variants ───────────────────────────────────────────────────────────── */
|
|
9113
|
+
|
|
9114
|
+
.footer--bordered {
|
|
9115
|
+
border-top: 1px solid var(--footer-border-color, var(--color-border, #e5e7eb));
|
|
9116
|
+
}
|
|
9117
|
+
|
|
9118
|
+
.footer--rounded {
|
|
9119
|
+
border-radius: var(--footer-radius, 0.75rem);
|
|
9120
|
+
}
|
|
9121
|
+
|
|
9122
|
+
.footer--elevated {
|
|
9123
|
+
box-shadow:
|
|
9124
|
+
0 -1px 3px 0 rgb(0 0 0 / 0.06),
|
|
9125
|
+
0 -1px 8px 0 rgb(0 0 0 / 0.04);
|
|
9126
|
+
}
|
|
9127
|
+
|
|
9128
|
+
/* ─── Color-specific overrides ───────────────────────────────────────────── */
|
|
9129
|
+
|
|
9130
|
+
/* Indigo footer — text should contrast against the light indigo bg */
|
|
9131
|
+
.footer--indigo {
|
|
9132
|
+
color: var(--color-gray-800, #2d2f36);
|
|
9133
|
+
text-align: center;
|
|
9134
|
+
align-items: center;
|
|
9135
|
+
}
|
|
9136
|
+
|
|
9137
|
+
/* Teal footer — white text on dark teal bg */
|
|
9138
|
+
.footer--teal {
|
|
9139
|
+
color: #ffffff;
|
|
9140
|
+
}
|
|
9141
|
+
|
|
9142
|
+
/* ─── FooterRow ──────────────────────────────────────────────────────────── */
|
|
9143
|
+
|
|
9144
|
+
.footer-row {
|
|
9145
|
+
display: flex;
|
|
9146
|
+
align-items: center;
|
|
9147
|
+
flex-wrap: wrap;
|
|
9148
|
+
gap: 0.5rem;
|
|
9149
|
+
}
|
|
9150
|
+
|
|
9151
|
+
.footer-row--center {
|
|
9152
|
+
justify-content: center;
|
|
9153
|
+
}
|
|
9154
|
+
|
|
9155
|
+
.footer-row--space-between {
|
|
9156
|
+
justify-content: space-between;
|
|
9157
|
+
}
|
|
9158
|
+
|
|
9159
|
+
.footer-row--padded {
|
|
9160
|
+
padding: 0.5rem 0;
|
|
9161
|
+
}
|
|
9162
|
+
|
|
9163
|
+
.footer-row--gap {
|
|
9164
|
+
gap: 0.25rem;
|
|
9165
|
+
}
|
|
9166
|
+
|
|
9167
|
+
/* ─── FooterLinks ────────────────────────────────────────────────────────── */
|
|
9168
|
+
|
|
9169
|
+
.footer-links {
|
|
9170
|
+
display: flex;
|
|
9171
|
+
align-items: center;
|
|
9172
|
+
justify-content: center;
|
|
9173
|
+
flex-wrap: wrap;
|
|
9174
|
+
gap: 0.25rem;
|
|
9175
|
+
}
|
|
9176
|
+
|
|
9177
|
+
/* ─── FooterLink ─────────────────────────────────────────────────────────── */
|
|
9178
|
+
|
|
9179
|
+
.footer-link {
|
|
9180
|
+
display: inline-flex;
|
|
9181
|
+
align-items: center;
|
|
9182
|
+
justify-content: center;
|
|
9183
|
+
padding: 0.375rem 0.875rem;
|
|
9184
|
+
border-radius: 9999px;
|
|
9185
|
+
font-size: 0.875rem;
|
|
9186
|
+
font-weight: 500;
|
|
9187
|
+
color: var(--footer-link-color, var(--color-gray-600, #52545d));
|
|
9188
|
+
text-decoration: none;
|
|
9189
|
+
transition: background-color 150ms ease, color 150ms ease;
|
|
9190
|
+
}
|
|
9191
|
+
|
|
9192
|
+
.footer-link:hover {
|
|
9193
|
+
background-color: var(--color-gray-100, #eff1f2);
|
|
9194
|
+
color: var(--color-gray-800, #2d2f36);
|
|
9195
|
+
}
|
|
9196
|
+
|
|
9197
|
+
.footer-link:focus-visible {
|
|
9198
|
+
outline: 2px solid var(--color-primary, #2563eb);
|
|
9199
|
+
outline-offset: 2px;
|
|
9200
|
+
}
|
|
9201
|
+
|
|
9202
|
+
/* ─── FooterIconButton ───────────────────────────────────────────────────── */
|
|
9203
|
+
|
|
9204
|
+
.footer-icon-btn {
|
|
9205
|
+
display: inline-flex;
|
|
9206
|
+
align-items: center;
|
|
9207
|
+
justify-content: center;
|
|
9208
|
+
width: 2.25rem;
|
|
9209
|
+
height: 2.25rem;
|
|
9210
|
+
border-radius: 9999px;
|
|
9211
|
+
border: none;
|
|
9212
|
+
background: transparent;
|
|
9213
|
+
color: inherit;
|
|
9214
|
+
cursor: pointer;
|
|
9215
|
+
transition: background-color 150ms ease;
|
|
9216
|
+
flex-shrink: 0;
|
|
9217
|
+
}
|
|
9218
|
+
|
|
9219
|
+
.footer-icon-btn:hover {
|
|
9220
|
+
background-color: rgba(0, 0, 0, 0.08);
|
|
9221
|
+
}
|
|
9222
|
+
|
|
9223
|
+
.footer-icon-btn:focus-visible {
|
|
9224
|
+
outline: 2px solid currentColor;
|
|
9225
|
+
outline-offset: 2px;
|
|
9226
|
+
}
|
|
9227
|
+
|
|
9228
|
+
.footer-icon-btn--small {
|
|
9229
|
+
width: 1.875rem;
|
|
9230
|
+
height: 1.875rem;
|
|
9231
|
+
}
|
|
9232
|
+
|
|
9233
|
+
/* Plain variant — no hover background, slightly muted */
|
|
9234
|
+
.footer-icon-btn--plain {
|
|
9235
|
+
opacity: 0.85;
|
|
9236
|
+
}
|
|
9237
|
+
|
|
9238
|
+
.footer-icon-btn--plain:hover {
|
|
9239
|
+
opacity: 1;
|
|
9240
|
+
background-color: rgba(255, 255, 255, 0.12);
|
|
9241
|
+
}
|
|
9242
|
+
|
|
9243
|
+
/* ─── FooterDivider ──────────────────────────────────────────────────────── */
|
|
9244
|
+
|
|
9245
|
+
.footer-divider {
|
|
9246
|
+
border: none;
|
|
9247
|
+
border-top: 1px solid var(--footer-divider-color, var(--color-border, #e5e7eb));
|
|
9248
|
+
width: 100%;
|
|
9249
|
+
margin: 0.25rem 0;
|
|
9250
|
+
align-self: center;
|
|
9251
|
+
}
|
|
9252
|
+
|
|
9253
|
+
.footer-divider--thick {
|
|
9254
|
+
border-top-width: 2px;
|
|
9255
|
+
}
|
|
9256
|
+
|
|
9257
|
+
/* ─── FooterCopyright ────────────────────────────────────────────────────── */
|
|
9258
|
+
|
|
9259
|
+
.footer-copyright {
|
|
9260
|
+
font-size: 0.875rem;
|
|
9261
|
+
color: var(--footer-copyright-color, var(--color-gray-500, #71747d));
|
|
9262
|
+
text-align: center;
|
|
9263
|
+
width: 100%;
|
|
9264
|
+
}
|
|
9265
|
+
|
|
9266
|
+
/* ─── FooterBand ─────────────────────────────────────────────────────────── */
|
|
9267
|
+
/* Full-width bottom accent band — used in the teal footer variant */
|
|
9268
|
+
|
|
9269
|
+
.footer-band {
|
|
9270
|
+
width: 100%;
|
|
9271
|
+
background-color: rgba(0, 0, 0, 0.15);
|
|
9272
|
+
border-radius: var(--footer-band-radius, 0.5rem);
|
|
9273
|
+
padding: 0.625rem 1rem;
|
|
9274
|
+
text-align: center;
|
|
9275
|
+
}
|
|
9276
|
+
|
|
9277
|
+
.footer-band .footer-copyright {
|
|
9278
|
+
color: inherit;
|
|
9279
|
+
opacity: 0.9;
|
|
9280
|
+
}
|
|
9281
|
+
|
|
9282
|
+
/* ─── FooterBodyText ─────────────────────────────────────────────────────── */
|
|
9283
|
+
|
|
9284
|
+
.footer-body-text {
|
|
9285
|
+
font-size: 0.8125rem;
|
|
9286
|
+
line-height: 1.6;
|
|
9287
|
+
opacity: 0.7;
|
|
9288
|
+
text-align: center;
|
|
9289
|
+
max-width: 64ch;
|
|
9290
|
+
margin: 0 auto;
|
|
9291
|
+
}
|
|
9292
|
+
|
|
9293
|
+
/* ─── FooterTagline ──────────────────────────────────────────────────────── */
|
|
9294
|
+
|
|
9295
|
+
.footer-tagline {
|
|
9296
|
+
font-size: 0.9375rem;
|
|
9297
|
+
font-weight: 600;
|
|
9298
|
+
}
|
|
9299
|
+
|
|
9300
|
+
/* ─── SystemBar ──────────────────────────────────────────────────────────── */
|
|
9301
|
+
|
|
9302
|
+
.system-bar {
|
|
9303
|
+
display: flex;
|
|
9304
|
+
align-items: center;
|
|
9305
|
+
width: 100%;
|
|
9306
|
+
padding-inline: 0.5rem;
|
|
9307
|
+
gap: 0.375rem;
|
|
9308
|
+
background-color: var(--system-bar-bg, var(--color-gray-800, #2d2f36));
|
|
9309
|
+
color: var(--system-bar-color, var(--color-white, #ffffff));
|
|
9310
|
+
font-size: 0.6875rem; /* 11px — tight status bar text */
|
|
9311
|
+
font-weight: 500;
|
|
9312
|
+
letter-spacing: 0.01em;
|
|
9313
|
+
user-select: none;
|
|
9314
|
+
position: relative;
|
|
9315
|
+
z-index: var(--z-system-bar, 110); /* sits above app-bar */
|
|
9316
|
+
}
|
|
9317
|
+
|
|
9318
|
+
/* When a custom color is set, force white text for legibility */
|
|
9319
|
+
.system-bar--colored {
|
|
9320
|
+
color: #ffffff;
|
|
9321
|
+
}
|
|
9322
|
+
|
|
9323
|
+
/* ─── Window variant ─────────────────────────────────────────────────────── */
|
|
9324
|
+
|
|
9325
|
+
.system-bar--window {
|
|
9326
|
+
background-color: var(--system-bar-window-bg, var(--color-gray-100, #eff1f2));
|
|
9327
|
+
color: var(--system-bar-window-color, var(--color-gray-700, #3d3f47));
|
|
9328
|
+
padding-inline: 0.625rem;
|
|
9329
|
+
font-size: 0.8125rem;
|
|
9330
|
+
gap: 0.25rem;
|
|
9331
|
+
border-bottom: 1px solid var(--color-border, #e5e7eb);
|
|
9332
|
+
}
|
|
9333
|
+
|
|
9334
|
+
/* ─── Icon wrapper ───────────────────────────────────────────────────────── */
|
|
9335
|
+
|
|
9336
|
+
.system-bar-icon {
|
|
9337
|
+
display: inline-flex;
|
|
9338
|
+
align-items: center;
|
|
9339
|
+
justify-content: center;
|
|
9340
|
+
flex-shrink: 0;
|
|
9341
|
+
line-height: 1;
|
|
9342
|
+
}
|
|
9343
|
+
|
|
9344
|
+
.system-bar-icon svg {
|
|
9345
|
+
display: block;
|
|
9346
|
+
}
|
|
9347
|
+
|
|
9348
|
+
/* ─── Spacer ─────────────────────────────────────────────────────────────── */
|
|
9349
|
+
|
|
9350
|
+
.system-bar-spacer {
|
|
9351
|
+
flex: 1;
|
|
9352
|
+
}
|
|
9353
|
+
|
|
9354
|
+
/* ─── Clock / time text ──────────────────────────────────────────────────── */
|
|
9355
|
+
|
|
9356
|
+
.system-bar-time {
|
|
9357
|
+
font-size: 0.6875rem;
|
|
9358
|
+
font-weight: 600;
|
|
9359
|
+
letter-spacing: 0.02em;
|
|
9360
|
+
white-space: nowrap;
|
|
9361
|
+
flex-shrink: 0;
|
|
9362
|
+
}
|
|
9363
|
+
|
|
9364
|
+
/* ─── Label (window mode) ────────────────────────────────────────────────── */
|
|
9365
|
+
|
|
9366
|
+
.system-bar-label {
|
|
9367
|
+
font-size: 0.8125rem;
|
|
9368
|
+
white-space: nowrap;
|
|
9369
|
+
overflow: hidden;
|
|
9370
|
+
text-overflow: ellipsis;
|
|
9371
|
+
}
|
|
9372
|
+
|
|
9373
|
+
/* ─── Window action buttons ──────────────────────────────────────────────── */
|
|
9374
|
+
|
|
9375
|
+
.system-bar-action {
|
|
9376
|
+
display: inline-flex;
|
|
9377
|
+
align-items: center;
|
|
9378
|
+
justify-content: center;
|
|
9379
|
+
width: 1.75rem;
|
|
9380
|
+
height: 1.75rem;
|
|
9381
|
+
border-radius: var(--radius-sm, 0.25rem);
|
|
9382
|
+
border: none;
|
|
9383
|
+
background: transparent;
|
|
9384
|
+
color: inherit;
|
|
9385
|
+
cursor: pointer;
|
|
9386
|
+
flex-shrink: 0;
|
|
9387
|
+
transition: background-color 120ms ease;
|
|
9388
|
+
}
|
|
9389
|
+
|
|
9390
|
+
.system-bar-action:hover {
|
|
9391
|
+
background-color: var(--color-gray-200, #dedfe3);
|
|
9392
|
+
}
|
|
9393
|
+
|
|
9394
|
+
.system-bar-action:focus-visible {
|
|
9395
|
+
outline: 2px solid var(--color-primary, #2563eb);
|
|
9396
|
+
outline-offset: -2px;
|
|
9397
|
+
}
|
|
9398
|
+
|
|
9399
|
+
/* Close button gets a red hover */
|
|
9400
|
+
.system-bar-action--close:hover {
|
|
9401
|
+
background-color: #ef4444;
|
|
9402
|
+
color: #ffffff;
|
|
9403
|
+
}
|
|
9404
|
+
|
|
9405
|
+
/* ─── EmptyState ─────────────────────────────────────────────────────────── */
|
|
9406
|
+
|
|
9407
|
+
.empty-state {
|
|
9408
|
+
display: flex;
|
|
9409
|
+
flex-direction: column;
|
|
9410
|
+
align-items: center;
|
|
9411
|
+
justify-content: center;
|
|
9412
|
+
text-align: center;
|
|
9413
|
+
padding: var(--empty-state-padding, 3rem 1.5rem);
|
|
9414
|
+
gap: var(--empty-state-gap, 0.5rem);
|
|
9415
|
+
width: 100%;
|
|
9416
|
+
max-width: var(--empty-state-max-width, 560px);
|
|
9417
|
+
margin-inline: auto;
|
|
9418
|
+
}
|
|
9419
|
+
|
|
9420
|
+
/* ─── Media ──────────────────────────────────────────────────────────────── */
|
|
9421
|
+
|
|
9422
|
+
.empty-state-media {
|
|
9423
|
+
display: flex;
|
|
9424
|
+
align-items: center;
|
|
9425
|
+
justify-content: center;
|
|
9426
|
+
margin-bottom: 0.75rem;
|
|
9427
|
+
}
|
|
9428
|
+
|
|
9429
|
+
.empty-state-image {
|
|
9430
|
+
max-width: 100%;
|
|
9431
|
+
max-height: var(--empty-state-image-max-height, 240px);
|
|
9432
|
+
object-fit: contain;
|
|
9433
|
+
border-radius: var(--radius-md, 0.5rem);
|
|
9434
|
+
}
|
|
9435
|
+
|
|
9436
|
+
.empty-state-icon {
|
|
9437
|
+
display: inline-flex;
|
|
9438
|
+
align-items: center;
|
|
9439
|
+
justify-content: center;
|
|
9440
|
+
color: var(--empty-state-icon-color, var(--color-gray-400, #9ca3af));
|
|
9441
|
+
}
|
|
9442
|
+
|
|
9443
|
+
/* ─── Headline ───────────────────────────────────────────────────────────── */
|
|
9444
|
+
|
|
9445
|
+
.empty-state-headline {
|
|
9446
|
+
font-size: var(--empty-state-headline-size, 2.5rem);
|
|
9447
|
+
font-weight: var(--empty-state-headline-weight, 300);
|
|
9448
|
+
line-height: 1.15;
|
|
9449
|
+
color: var(--empty-state-headline-color, var(--color-gray-600, #52545d));
|
|
9450
|
+
letter-spacing: -0.01em;
|
|
9451
|
+
}
|
|
9452
|
+
|
|
9453
|
+
/* ─── Title ──────────────────────────────────────────────────────────────── */
|
|
9454
|
+
|
|
9455
|
+
.empty-state-title {
|
|
9456
|
+
font-size: var(--empty-state-title-size, 1.125rem);
|
|
9457
|
+
font-weight: var(--empty-state-title-weight, 600);
|
|
9458
|
+
line-height: 1.3;
|
|
9459
|
+
color: var(--empty-state-title-color, var(--color-gray-800, #2d2f36));
|
|
9460
|
+
}
|
|
9461
|
+
|
|
9462
|
+
/* ─── Subtitle ───────────────────────────────────────────────────────────── */
|
|
9463
|
+
|
|
9464
|
+
.empty-state-subtitle {
|
|
9465
|
+
font-size: 0.9375rem;
|
|
9466
|
+
font-weight: 500;
|
|
9467
|
+
color: var(--color-gray-600, #52545d);
|
|
9468
|
+
}
|
|
9469
|
+
|
|
9470
|
+
/* ─── Body text ──────────────────────────────────────────────────────────── */
|
|
9471
|
+
|
|
9472
|
+
.empty-state-text {
|
|
9473
|
+
font-size: var(--empty-state-text-size, 0.875rem);
|
|
9474
|
+
line-height: 1.6;
|
|
9475
|
+
color: var(--empty-state-text-color, var(--color-gray-500, #71747d));
|
|
9476
|
+
max-width: 48ch;
|
|
9477
|
+
}
|
|
9478
|
+
|
|
9479
|
+
/* ─── Default slot ───────────────────────────────────────────────────────── */
|
|
9480
|
+
|
|
9481
|
+
.empty-state-default {
|
|
9482
|
+
width: 100%;
|
|
9483
|
+
margin-top: 0.5rem;
|
|
9484
|
+
}
|
|
9485
|
+
|
|
9486
|
+
/* ─── Actions ────────────────────────────────────────────────────────────── */
|
|
9487
|
+
|
|
9488
|
+
.empty-state-actions {
|
|
9489
|
+
display: flex;
|
|
9490
|
+
align-items: center;
|
|
9491
|
+
justify-content: center;
|
|
9492
|
+
flex-wrap: wrap;
|
|
9493
|
+
gap: 0.75rem;
|
|
9494
|
+
margin-top: 0.75rem;
|
|
9495
|
+
}
|
|
9496
|
+
|
|
9497
|
+
/* ─── Action button ──────────────────────────────────────────────────────── */
|
|
9498
|
+
|
|
9499
|
+
.empty-state-action-btn {
|
|
9500
|
+
display: inline-flex;
|
|
9501
|
+
align-items: center;
|
|
9502
|
+
justify-content: center;
|
|
9503
|
+
height: 2.25rem;
|
|
9504
|
+
padding-inline: 1.25rem;
|
|
9505
|
+
border-radius: var(--radius-md, 0.5rem);
|
|
9506
|
+
border: 1px solid var(--color-border, #e5e7eb);
|
|
9507
|
+
background-color: var(--color-white, #ffffff);
|
|
9508
|
+
color: var(--color-gray-700, #3d3f47);
|
|
9509
|
+
font-size: 0.875rem;
|
|
9510
|
+
font-weight: 600;
|
|
9511
|
+
cursor: pointer;
|
|
9512
|
+
transition: background-color 150ms ease, border-color 150ms ease;
|
|
9513
|
+
white-space: nowrap;
|
|
9514
|
+
}
|
|
9515
|
+
|
|
9516
|
+
.empty-state-action-btn:hover {
|
|
9517
|
+
background-color: var(--color-gray-50, #f9f9fa);
|
|
9518
|
+
border-color: var(--color-gray-300, #cbcdd2);
|
|
9519
|
+
}
|
|
9520
|
+
|
|
9521
|
+
.empty-state-action-btn:focus-visible {
|
|
9522
|
+
outline: 2px solid var(--color-primary, #2563eb);
|
|
9523
|
+
outline-offset: 2px;
|
|
9524
|
+
}
|
|
9525
|
+
|
|
9526
|
+
/* Primary variant */
|
|
9527
|
+
.empty-state-action-btn--primary {
|
|
9528
|
+
background-color: var(--color-primary, #2563eb);
|
|
9529
|
+
color: var(--color-white, #ffffff);
|
|
9530
|
+
border-color: transparent;
|
|
9531
|
+
}
|
|
9532
|
+
|
|
9533
|
+
.empty-state-action-btn--primary:hover {
|
|
9534
|
+
background-color: var(--color-blue-700, #286495);
|
|
9535
|
+
border-color: transparent;
|
|
9536
|
+
}
|
|
9537
|
+
|
|
9538
|
+
/* Outline variant */
|
|
9539
|
+
.empty-state-action-btn--outline {
|
|
9540
|
+
background-color: transparent;
|
|
9541
|
+
border-color: var(--color-gray-300, #cbcdd2);
|
|
9542
|
+
color: var(--color-gray-700, #3d3f47);
|
|
9543
|
+
}
|
|
9544
|
+
|
|
9545
|
+
.empty-state-action-btn--outline:hover {
|
|
9546
|
+
background-color: var(--color-gray-50, #f9f9fa);
|
|
9547
|
+
}
|
|
9548
|
+
|
|
9549
|
+
/* ─── SlotDefault card grid helper ───────────────────────────────────────── */
|
|
9550
|
+
|
|
9551
|
+
.empty-state-card {
|
|
9552
|
+
border: 1px solid var(--color-border, #e5e7eb);
|
|
9553
|
+
border-radius: var(--radius-md, 0.5rem);
|
|
9554
|
+
padding: 1rem;
|
|
9555
|
+
text-align: left;
|
|
9556
|
+
background-color: var(--color-surface, #ffffff);
|
|
9557
|
+
transition: box-shadow 150ms ease;
|
|
9558
|
+
}
|
|
9559
|
+
|
|
9560
|
+
.empty-state-card:hover {
|
|
9561
|
+
box-shadow:
|
|
9562
|
+
0 1px 3px 0 rgb(0 0 0 / 0.08),
|
|
9563
|
+
0 1px 8px 0 rgb(0 0 0 / 0.06);
|
|
9564
|
+
}
|
|
9565
|
+
|
|
9566
|
+
.empty-state-card-title {
|
|
9567
|
+
font-size: 0.9375rem;
|
|
9568
|
+
font-weight: 600;
|
|
9569
|
+
color: var(--color-gray-800, #2d2f36);
|
|
9570
|
+
margin-bottom: 0.25rem;
|
|
9571
|
+
}
|
|
9572
|
+
|
|
9573
|
+
.empty-state-card-desc {
|
|
9574
|
+
font-size: 0.8125rem;
|
|
9575
|
+
color: var(--color-gray-500, #71747d);
|
|
9576
|
+
line-height: 1.5;
|
|
9577
|
+
}
|
|
9578
|
+
|
|
9579
|
+
/* ─── Timeline ───────────────────────────────────────────────────────────── */
|
|
9580
|
+
|
|
9581
|
+
.timeline {
|
|
9582
|
+
display: flex;
|
|
9583
|
+
flex-direction: column;
|
|
9584
|
+
position: relative;
|
|
9585
|
+
padding-block: 0.5rem;
|
|
9586
|
+
}
|
|
9587
|
+
|
|
9588
|
+
/* ─── Horizontal direction ───────────────────────────────────────────────── */
|
|
9589
|
+
|
|
9590
|
+
.timeline--horizontal {
|
|
9591
|
+
flex-direction: row;
|
|
9592
|
+
align-items: flex-start;
|
|
9593
|
+
overflow-x: auto;
|
|
9594
|
+
}
|
|
9595
|
+
|
|
9596
|
+
.timeline--horizontal .timeline-item {
|
|
9597
|
+
flex-direction: column;
|
|
9598
|
+
align-items: center;
|
|
9599
|
+
flex: 1;
|
|
9600
|
+
min-width: 160px;
|
|
9601
|
+
}
|
|
9602
|
+
|
|
9603
|
+
.timeline--horizontal .timeline-item-stem {
|
|
9604
|
+
flex-direction: row;
|
|
9605
|
+
width: 100%;
|
|
9606
|
+
height: auto;
|
|
9607
|
+
align-items: center;
|
|
9608
|
+
}
|
|
9609
|
+
|
|
9610
|
+
.timeline--horizontal .timeline-item-stem-line {
|
|
9611
|
+
flex: 1;
|
|
9612
|
+
width: auto;
|
|
9613
|
+
height: 2px;
|
|
9614
|
+
}
|
|
9615
|
+
|
|
9616
|
+
.timeline--horizontal .timeline-item-opposite {
|
|
9617
|
+
order: -1; /* above the stem in horizontal mode */
|
|
9618
|
+
text-align: center;
|
|
9619
|
+
padding-block: 0 0.5rem;
|
|
9620
|
+
width: 100%;
|
|
9621
|
+
}
|
|
9622
|
+
|
|
9623
|
+
.timeline--horizontal .timeline-item-body {
|
|
9624
|
+
text-align: center;
|
|
9625
|
+
padding-top: 0.5rem;
|
|
9626
|
+
width: 100%;
|
|
9627
|
+
}
|
|
9628
|
+
|
|
9629
|
+
/* ─── Compact density ────────────────────────────────────────────────────── */
|
|
9630
|
+
|
|
9631
|
+
.timeline--compact .timeline-item {
|
|
9632
|
+
margin-bottom: 0.5rem;
|
|
9633
|
+
}
|
|
9634
|
+
|
|
9635
|
+
/* ─── Timeline Item ──────────────────────────────────────────────────────── */
|
|
9636
|
+
|
|
9637
|
+
.timeline-item {
|
|
9638
|
+
display: flex;
|
|
9639
|
+
align-items: center; /* overridden by --align-start */
|
|
9640
|
+
gap: 0.75rem;
|
|
9641
|
+
margin-bottom: 1rem;
|
|
9642
|
+
position: relative;
|
|
9643
|
+
}
|
|
9644
|
+
|
|
9645
|
+
/* Align-start: content aligns to top of dot */
|
|
9646
|
+
.timeline-item--align-start {
|
|
9647
|
+
align-items: flex-start;
|
|
9648
|
+
}
|
|
9649
|
+
|
|
9650
|
+
/* ─── Side: alternate (default) ──────────────────────────────────────────── */
|
|
9651
|
+
/*
|
|
9652
|
+
In "alternate" mode odd items: opposite left, stem center, body right.
|
|
9653
|
+
Even items flip. We achieve this by controlling the order of the three
|
|
9654
|
+
columns inside each .timeline-item.
|
|
9655
|
+
*/
|
|
9656
|
+
|
|
9657
|
+
.timeline--side-alternate .timeline-item:nth-child(even) .timeline-item-opposite {
|
|
9658
|
+
order: 2;
|
|
9659
|
+
text-align: left;
|
|
9660
|
+
}
|
|
9661
|
+
|
|
9662
|
+
.timeline--side-alternate .timeline-item:nth-child(even) .timeline-item-stem {
|
|
9663
|
+
order: 1;
|
|
9664
|
+
}
|
|
9665
|
+
|
|
9666
|
+
.timeline--side-alternate .timeline-item:nth-child(even) .timeline-item-body {
|
|
9667
|
+
order: 0;
|
|
9668
|
+
text-align: right;
|
|
9669
|
+
}
|
|
9670
|
+
|
|
9671
|
+
/* ─── Side: end — all content on the right ───────────────────────────────── */
|
|
9672
|
+
|
|
9673
|
+
.timeline--side-end .timeline-item-opposite {
|
|
9674
|
+
display: none;
|
|
9675
|
+
}
|
|
9676
|
+
|
|
9677
|
+
/* ─── Side: start — all content on the left ─────────────────────────────── */
|
|
9678
|
+
|
|
9679
|
+
.timeline--side-start .timeline-item-opposite {
|
|
9680
|
+
display: none;
|
|
9681
|
+
}
|
|
9682
|
+
|
|
9683
|
+
.timeline--side-start .timeline-item-body {
|
|
9684
|
+
order: -1;
|
|
9685
|
+
}
|
|
9686
|
+
|
|
9687
|
+
/* ─── Opposite slot ──────────────────────────────────────────────────────── */
|
|
9688
|
+
|
|
9689
|
+
.timeline-item-opposite {
|
|
9690
|
+
flex: 1;
|
|
9691
|
+
text-align: right;
|
|
9692
|
+
font-size: 0.875rem;
|
|
9693
|
+
color: var(--color-gray-500, #71747d);
|
|
9694
|
+
min-width: 0;
|
|
9695
|
+
}
|
|
9696
|
+
|
|
9697
|
+
/* ─── Stem column (line + dot) ───────────────────────────────────────────── */
|
|
9698
|
+
|
|
9699
|
+
.timeline-item-stem {
|
|
9700
|
+
display: flex;
|
|
9701
|
+
flex-direction: column;
|
|
9702
|
+
align-items: center;
|
|
9703
|
+
flex-shrink: 0;
|
|
9704
|
+
align-self: stretch;
|
|
9705
|
+
}
|
|
9706
|
+
|
|
9707
|
+
.timeline-item-stem-line {
|
|
9708
|
+
width: 2px;
|
|
9709
|
+
background-color: var(--timeline-line-color, var(--color-gray-200, #dedfe3));
|
|
9710
|
+
flex: 1;
|
|
9711
|
+
min-height: 8px;
|
|
9712
|
+
}
|
|
9713
|
+
|
|
9714
|
+
/* Hide the "before" line on the very first item */
|
|
9715
|
+
.timeline-item:first-child .timeline-item-stem-line--before {
|
|
9716
|
+
visibility: hidden;
|
|
9717
|
+
}
|
|
9718
|
+
|
|
9719
|
+
/* Hide the "after" line on the very last item */
|
|
9720
|
+
.timeline-item:last-child .timeline-item-stem-line--after {
|
|
9721
|
+
visibility: hidden;
|
|
9722
|
+
}
|
|
9723
|
+
|
|
9724
|
+
/* ─── Dot ────────────────────────────────────────────────────────────────── */
|
|
9725
|
+
|
|
9726
|
+
.timeline-item-dot {
|
|
9727
|
+
display: flex;
|
|
9728
|
+
align-items: center;
|
|
9729
|
+
justify-content: center;
|
|
9730
|
+
border-radius: 50%;
|
|
9731
|
+
background-color: var(--color-surface, #ffffff);
|
|
9732
|
+
border: 2px solid var(--color-gray-300, #cbcdd2);
|
|
9733
|
+
flex-shrink: 0;
|
|
9734
|
+
position: relative;
|
|
9735
|
+
z-index: 1;
|
|
9736
|
+
transition: background-color 150ms ease, border-color 150ms ease;
|
|
9737
|
+
overflow: hidden; /* keeps avatar images clipped to circle */
|
|
9738
|
+
}
|
|
9739
|
+
|
|
9740
|
+
/* Size variants — dot diameter */
|
|
9741
|
+
.timeline-item--size-x-small .timeline-item-dot { width: 12px; height: 12px; }
|
|
9742
|
+
.timeline-item--size-small .timeline-item-dot { width: 16px; height: 16px; }
|
|
9743
|
+
.timeline-item--size-default .timeline-item-dot { width: 24px; height: 24px; }
|
|
9744
|
+
.timeline-item--size-large .timeline-item-dot { width: 32px; height: 32px; }
|
|
9745
|
+
.timeline-item--size-x-large .timeline-item-dot { width: 40px; height: 40px; }
|
|
9746
|
+
|
|
9747
|
+
/* fillDot — solid background instead of ring */
|
|
9748
|
+
.timeline-item--fill-dot .timeline-item-dot {
|
|
9749
|
+
border-color: transparent;
|
|
9750
|
+
}
|
|
9751
|
+
|
|
9752
|
+
/* When dotColor is set via inline style it automatically fills */
|
|
9753
|
+
.timeline-item-dot[style] {
|
|
9754
|
+
border-color: transparent;
|
|
9755
|
+
}
|
|
9756
|
+
|
|
9757
|
+
/* ─── Dot icon ───────────────────────────────────────────────────────────── */
|
|
9758
|
+
|
|
9759
|
+
.timeline-item-dot-icon {
|
|
9760
|
+
display: flex;
|
|
9761
|
+
align-items: center;
|
|
9762
|
+
justify-content: center;
|
|
9763
|
+
color: var(--timeline-icon-color, #ffffff);
|
|
9764
|
+
font-size: 0.625rem;
|
|
9765
|
+
font-weight: 700;
|
|
9766
|
+
width: 100%;
|
|
9767
|
+
height: 100%;
|
|
9768
|
+
line-height: 1;
|
|
9769
|
+
}
|
|
9770
|
+
|
|
9771
|
+
/* ─── Body ───────────────────────────────────────────────────────────────── */
|
|
9772
|
+
|
|
9773
|
+
.timeline-item-body {
|
|
9774
|
+
flex: 1;
|
|
9775
|
+
min-width: 0;
|
|
9776
|
+
padding-block: 0.25rem;
|
|
9777
|
+
font-size: 0.875rem;
|
|
9778
|
+
}
|
|
9779
|
+
|
|
9780
|
+
/* ─── hideDot ────────────────────────────────────────────────────────────── */
|
|
9781
|
+
|
|
9782
|
+
.timeline-item--hide-dot .timeline-item-dot {
|
|
9783
|
+
display: none;
|
|
9784
|
+
}
|
|
9785
|
+
|
|
9786
|
+
.timeline-item--hide-dot .timeline-item-stem-line {
|
|
9787
|
+
visibility: hidden;
|
|
9788
|
+
}
|
|
9789
|
+
|
|
9790
|
+
/* ─── Story helpers (used in .stories.tsx only) ──────────────────────────── */
|
|
9791
|
+
|
|
9792
|
+
.timeline-story-card {
|
|
9793
|
+
border: 1px solid var(--color-border, #e5e7eb);
|
|
9794
|
+
border-radius: var(--radius-md, 0.5rem);
|
|
9795
|
+
padding: 0.875rem 1rem;
|
|
9796
|
+
background: var(--color-surface, #ffffff);
|
|
9797
|
+
}
|
|
9798
|
+
|
|
9799
|
+
.timeline-story-card strong {
|
|
9800
|
+
display: block;
|
|
9801
|
+
font-size: 1rem;
|
|
9802
|
+
margin-bottom: 0.25rem;
|
|
9803
|
+
}
|
|
9804
|
+
|
|
9805
|
+
.timeline-story-card p {
|
|
9806
|
+
font-size: 0.875rem;
|
|
9807
|
+
color: var(--color-gray-500, #71747d);
|
|
9808
|
+
margin: 0;
|
|
9809
|
+
line-height: 1.5;
|
|
9810
|
+
}
|
|
9811
|
+
|
|
9812
|
+
.timeline-story-sub {
|
|
9813
|
+
font-size: 0.8125rem;
|
|
9814
|
+
color: var(--color-gray-500, #71747d);
|
|
9815
|
+
margin-top: 0.125rem;
|
|
9816
|
+
}
|
|
9817
|
+
|
|
9818
|
+
.timeline-story-opposite {
|
|
9819
|
+
font-size: 0.875rem;
|
|
9820
|
+
color: var(--color-gray-500, #71747d);
|
|
9821
|
+
font-style: italic;
|
|
9822
|
+
}
|
|
9823
|
+
|
|
9824
|
+
.timeline-story-btn {
|
|
9825
|
+
margin-top: 0.75rem;
|
|
9826
|
+
display: inline-flex;
|
|
9827
|
+
align-items: center;
|
|
9828
|
+
height: 2rem;
|
|
9829
|
+
padding-inline: 1rem;
|
|
9830
|
+
border-radius: var(--radius-md, 0.5rem);
|
|
9831
|
+
border: 1px solid var(--color-gray-300, #cbcdd2);
|
|
9832
|
+
background: transparent;
|
|
9833
|
+
font-size: 0.875rem;
|
|
9834
|
+
font-weight: 500;
|
|
9835
|
+
cursor: pointer;
|
|
9836
|
+
transition: background-color 150ms ease;
|
|
9837
|
+
}
|
|
9838
|
+
|
|
9839
|
+
.timeline-story-btn:hover {
|
|
9840
|
+
background-color: var(--color-gray-50, #f9f9fa);
|
|
9841
|
+
}
|
|
9842
|
+
|
|
9843
|
+
.timeline-alert {
|
|
9844
|
+
padding: 0.75rem 1rem;
|
|
9845
|
+
border-radius: var(--radius-md, 0.5rem);
|
|
9846
|
+
font-size: 0.875rem;
|
|
9847
|
+
line-height: 1.5;
|
|
9848
|
+
}
|
|
9849
|
+
|
|
9850
|
+
.timeline-alert--info {
|
|
9851
|
+
background-color: #eff6ff;
|
|
9852
|
+
border: 1px solid #bfdbfe;
|
|
9853
|
+
color: #1d4ed8;
|
|
9854
|
+
}
|
|
9855
|
+
|
|
9856
|
+
.timeline-alert--error {
|
|
9857
|
+
background-color: #fef2f2;
|
|
9858
|
+
border: 1px solid #fecaca;
|
|
9859
|
+
color: #b91c1c;
|
|
9860
|
+
}
|
|
9861
|
+
|
|
9862
|
+
.timeline-alert p {
|
|
9863
|
+
margin: 0.25rem 0 0;
|
|
9864
|
+
}
|
|
9865
|
+
|
|
9866
|
+
/* Chip used in OrderActivity story */
|
|
9867
|
+
.timeline-chip {
|
|
9868
|
+
display: inline-flex;
|
|
9869
|
+
align-items: center;
|
|
9870
|
+
padding: 0.125rem 0.5rem;
|
|
9871
|
+
border-radius: 9999px;
|
|
9872
|
+
background-color: #7c3aed;
|
|
9873
|
+
color: #ffffff;
|
|
9874
|
+
font-size: 0.625rem;
|
|
9875
|
+
font-weight: 700;
|
|
9876
|
+
letter-spacing: 0.04em;
|
|
9877
|
+
vertical-align: middle;
|
|
9878
|
+
margin-right: 0.25rem;
|
|
9879
|
+
}
|
|
9880
|
+
|
|
9881
|
+
/* Comment input + button */
|
|
9882
|
+
.timeline-comment-input {
|
|
9883
|
+
flex: 1;
|
|
9884
|
+
height: 2.25rem;
|
|
9885
|
+
padding-inline: 0.75rem;
|
|
9886
|
+
border: 1px solid var(--color-border, #e5e7eb);
|
|
9887
|
+
border-radius: var(--radius-md, 0.5rem);
|
|
9888
|
+
font-size: 0.875rem;
|
|
9889
|
+
outline: none;
|
|
9890
|
+
transition: border-color 150ms ease;
|
|
9891
|
+
}
|
|
9892
|
+
|
|
9893
|
+
.timeline-comment-input:focus {
|
|
9894
|
+
border-color: var(--color-primary, #2563eb);
|
|
9895
|
+
}
|
|
9896
|
+
|
|
9897
|
+
.timeline-comment-btn {
|
|
9898
|
+
height: 2.25rem;
|
|
9899
|
+
padding-inline: 0.875rem;
|
|
9900
|
+
border: none;
|
|
9901
|
+
background: transparent;
|
|
9902
|
+
font-size: 0.875rem;
|
|
9903
|
+
font-weight: 600;
|
|
9904
|
+
color: var(--color-primary, #2563eb);
|
|
9905
|
+
cursor: pointer;
|
|
9906
|
+
border-radius: var(--radius-md, 0.5rem);
|
|
9907
|
+
transition: background-color 150ms ease;
|
|
9908
|
+
}
|
|
9909
|
+
|
|
9910
|
+
.timeline-comment-btn:hover {
|
|
9911
|
+
background-color: var(--color-blue-50, #fbfdfe);
|
|
9912
|
+
}
|