@typlog/ui 0.13.0 → 0.14.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/components.css CHANGED
@@ -1202,6 +1202,665 @@ to {
1202
1202
  .ui-NavigationMenuContent:where([data-motion="to-end"]) {
1203
1203
  --navigation-menu-content-animation: exitToRight 250ms ease;
1204
1204
  }
1205
+ @layer components {
1206
+ .ui-SidebarProvider {
1207
+ box-sizing: border-box;
1208
+ display: flex;
1209
+ min-height: 0;
1210
+ min-width: 0;
1211
+ position: relative;
1212
+ width: 100%;
1213
+ }
1214
+ .ui-SidebarProvider:where([data-inset='true']) {
1215
+ background-color: var(--gray-2);
1216
+ }
1217
+ .ui-Sidebar {
1218
+ --sidebar-transition-duration: 200ms;
1219
+
1220
+ align-self: stretch;
1221
+ box-sizing: border-box;
1222
+ flex: 0 0 auto;
1223
+ min-height: 0;
1224
+ min-width: 0;
1225
+ position: relative;
1226
+ transition:
1227
+ margin-inline-end var(--sidebar-transition-duration) ease,
1228
+ margin-inline-start var(--sidebar-transition-duration) ease,
1229
+ transform var(--sidebar-transition-duration) ease;
1230
+ z-index: 1;
1231
+ width: var(--sidebar-width);
1232
+ }
1233
+ .ui-Sidebar:where(.r-collapsible-icon) {
1234
+ transition:
1235
+ margin-inline-end var(--sidebar-transition-duration) ease,
1236
+ margin-inline-start var(--sidebar-transition-duration) ease,
1237
+ transform var(--sidebar-transition-duration) ease,
1238
+ width var(--sidebar-transition-duration) ease;
1239
+ }
1240
+ .ui-Sidebar:where(.r-side-left) {
1241
+ order: 0;
1242
+ }
1243
+ .ui-Sidebar:where(.r-side-right) {
1244
+ order: 2;
1245
+ }
1246
+ .ui-Sidebar:where(.r-variant-inset, .r-variant-floating) {
1247
+ padding: var(--space-2);
1248
+ }
1249
+ .ui-Sidebar:where(.r-collapsible-icon.r-variant-default)[data-collapsed='true'] {
1250
+ width: var(--sidebar-collapsed-width);
1251
+ }
1252
+ .ui-Sidebar:where(.r-collapsible-icon.r-variant-floating, .r-collapsible-icon.r-variant-inset)[data-collapsed='true'] {
1253
+ width: calc(var(--sidebar-collapsed-width) + var(--space-2) + var(--space-2));
1254
+ }
1255
+ .ui-Sidebar:where(.r-collapsible-offcanvas.r-side-left)[data-collapsed='true'] {
1256
+ margin-inline-end: calc(0px - var(--sidebar-width));
1257
+ transform: translateX(calc(0px - var(--sidebar-width) - var(--space-2)));
1258
+ }
1259
+ .ui-Sidebar:where(.r-collapsible-offcanvas.r-side-right)[data-collapsed='true'] {
1260
+ margin-inline-start: calc(0px - var(--sidebar-width));
1261
+ transform: translateX(calc(var(--sidebar-width) + var(--space-2)));
1262
+ }
1263
+ .ui-SidebarPanel {
1264
+ box-sizing: border-box;
1265
+ color: var(--gray-12);
1266
+ display: flex;
1267
+ flex-direction: column;
1268
+ min-height: 0;
1269
+ outline: none;
1270
+ overflow: hidden;
1271
+ position: relative;
1272
+ }
1273
+ .ui-SidebarPanel:where(.r-desktop) {
1274
+ height: 100%;
1275
+ inset-block: 0;
1276
+ }
1277
+ .ui-Sidebar:where(.r-variant-default.r-side-left) > .ui-SidebarPanel:where(.r-desktop),
1278
+ .ui-SidebarPanel:where(.r-mobile.r-variant-default.r-side-left) {
1279
+ border-inline-end: 1px solid var(--gray-a5);
1280
+ }
1281
+ .ui-Sidebar:where(.r-variant-default.r-side-right) > .ui-SidebarPanel:where(.r-desktop),
1282
+ .ui-SidebarPanel:where(.r-mobile.r-variant-default.r-side-right) {
1283
+ border-inline-start: 1px solid var(--gray-a5);
1284
+ }
1285
+ .ui-Sidebar:where(.r-variant-floating) > .ui-SidebarPanel:where(.r-desktop),
1286
+ .ui-SidebarPanel:where(.r-mobile.r-variant-floating) {
1287
+ border-radius: var(--radius-4);
1288
+ box-shadow: var(--shadow-3);
1289
+ }
1290
+ .ui-SidebarHeader,
1291
+ .ui-SidebarFooter {
1292
+ align-items: center;
1293
+ box-sizing: border-box;
1294
+ display: flex;
1295
+ flex: 0 0 auto;
1296
+ gap: var(--space-2);
1297
+ line-height: 1;
1298
+ min-height: calc(3rem * var(--scaling));
1299
+ padding: var(--space-3);
1300
+ }
1301
+ .ui-SidebarBody {
1302
+ box-sizing: border-box;
1303
+ flex: 1 1 auto;
1304
+ min-height: 0;
1305
+ overflow: auto;
1306
+ overscroll-behavior: contain;
1307
+ padding: var(--space-2);
1308
+ }
1309
+ .ui-SidebarInset {
1310
+ background-color: var(--color-background);
1311
+ box-sizing: border-box;
1312
+ flex: 1 1 auto;
1313
+ min-height: 0;
1314
+ min-width: 0;
1315
+ order: 1;
1316
+ position: relative;
1317
+ }
1318
+ .ui-SidebarProvider:where([data-inset='true']) > .ui-SidebarInset {
1319
+ border-radius: var(--radius-4);
1320
+ box-shadow: var(--shadow-3);
1321
+ margin: var(--space-2);
1322
+ overflow: hidden;
1323
+ }
1324
+ .ui-SidebarTrigger {
1325
+ align-items: center;
1326
+ -webkit-appearance: none;
1327
+ -moz-appearance: none;
1328
+ appearance: none;
1329
+ background: transparent;
1330
+ border: 0;
1331
+ border-radius: var(--radius-2);
1332
+ color: var(--gray-11);
1333
+ cursor: pointer;
1334
+ display: inline-flex;
1335
+ height: calc(2rem * var(--scaling));
1336
+ justify-content: center;
1337
+ padding: 0;
1338
+ width: calc(2rem * var(--scaling));
1339
+ }
1340
+ .ui-SidebarTrigger:not([data-disabled]):hover {
1341
+ background-color: var(--gray-a3);
1342
+ color: var(--gray-12);
1343
+ }
1344
+ .ui-SidebarTrigger:focus-visible,
1345
+ .ui-SidebarRail:focus-visible {
1346
+ outline: 2px solid var(--focus-8);
1347
+ outline-offset: 2px;
1348
+ }
1349
+ .ui-SidebarTrigger:where([data-disabled]) {
1350
+ cursor: not-allowed;
1351
+ opacity: 0.5;
1352
+ }
1353
+ .ui-SidebarTriggerIcon {
1354
+ fill: none;
1355
+ height: 1rem;
1356
+ stroke: currentColor;
1357
+ stroke-linecap: round;
1358
+ stroke-linejoin: round;
1359
+ stroke-width: 1.25;
1360
+ width: 1rem;
1361
+ }
1362
+ .ui-SidebarRail {
1363
+ -webkit-appearance: none;
1364
+ -moz-appearance: none;
1365
+ appearance: none;
1366
+ background: transparent;
1367
+ border: 0;
1368
+ cursor: pointer;
1369
+ height: 100%;
1370
+ inset-block: 0;
1371
+ padding: 0;
1372
+ position: absolute;
1373
+ width: 12px;
1374
+ z-index: 2;
1375
+ }
1376
+ .ui-SidebarRail::after {
1377
+ background-color: transparent;
1378
+ content: '';
1379
+ height: 100%;
1380
+ inset-block-start: 0;
1381
+ position: absolute;
1382
+ transition: background-color 120ms ease;
1383
+ width: 2px;
1384
+ }
1385
+ .ui-SidebarRail:hover::after,
1386
+ .ui-SidebarRail:focus-visible::after {
1387
+ background-color: var(--accent-a8);
1388
+ }
1389
+ .ui-Sidebar:where(.r-side-left) .ui-SidebarRail {
1390
+ inset-inline-end: -6px;
1391
+ }
1392
+ .ui-Sidebar:where(.r-side-left) .ui-SidebarRail::after {
1393
+ inset-inline-end: 5px;
1394
+ }
1395
+ .ui-Sidebar:where(.r-side-right) .ui-SidebarRail {
1396
+ inset-inline-start: -6px;
1397
+ }
1398
+ .ui-Sidebar:where(.r-side-right) .ui-SidebarRail::after {
1399
+ inset-inline-start: 5px;
1400
+ }
1401
+ .ui-Sidebar:where(.r-collapsible-none) .ui-SidebarRail,
1402
+ .ui-SidebarPanel:where(.r-mobile) .ui-SidebarRail,
1403
+ .ui-SidebarTrigger:where([data-mobile='false'][data-collapsible='none']) {
1404
+ display: none;
1405
+ }
1406
+ .ui-Sidebar:where(.r-collapsible-icon)[data-collapsed='true'] .ui-SidebarHeader,
1407
+ .ui-Sidebar:where(.r-collapsible-icon)[data-collapsed='true'] .ui-SidebarFooter {
1408
+ justify-content: center;
1409
+ padding-inline: var(--space-2);
1410
+ }
1411
+ .ui-SidebarGroup {
1412
+ display: flex;
1413
+ flex-direction: column;
1414
+ gap: var(--space-1);
1415
+ min-width: 0;
1416
+ }
1417
+ .ui-SidebarGroup + .ui-SidebarGroup {
1418
+ margin-block-start: var(--space-4);
1419
+ }
1420
+ .ui-SidebarGroupLabel {
1421
+ color: var(--gray-10);
1422
+ font-size: var(--font-size-1);
1423
+ font-weight: var(--font-weight-medium);
1424
+ letter-spacing: var(--letter-spacing-1);
1425
+ line-height: var(--line-height-1);
1426
+ overflow: hidden;
1427
+ padding: var(--space-1) var(--space-2);
1428
+ text-overflow: ellipsis;
1429
+ white-space: nowrap;
1430
+ }
1431
+ .ui-SidebarMenu,
1432
+ .ui-SidebarMenuSub {
1433
+ list-style: none;
1434
+ margin: 0;
1435
+ padding: 0;
1436
+ }
1437
+ .ui-SidebarMenu {
1438
+ display: flex;
1439
+ flex-direction: column;
1440
+ gap: var(--sidebar-menu-list-gap);
1441
+ width: 100%;
1442
+ }
1443
+ .ui-SidebarMenu:where(.r-size-1) {
1444
+ --sidebar-menu-list-gap: 0;
1445
+ --sidebar-menu-button-height: calc(1.75rem * var(--scaling));
1446
+ --sidebar-menu-button-padding-block: calc(var(--space-1) / 2);
1447
+ --sidebar-menu-button-padding-inline: var(--space-1);
1448
+ --sidebar-menu-button-gap: var(--space-1);
1449
+ --sidebar-menu-button-font-size: var(--font-size-1);
1450
+ --sidebar-menu-button-line-height: var(--line-height-1);
1451
+ --sidebar-menu-icon-size: calc(0.75rem * var(--scaling));
1452
+ --sidebar-menu-sub-gap: 0;
1453
+ --sidebar-menu-sub-margin-block: 0;
1454
+ --sidebar-menu-sub-margin-inline: var(--space-3);
1455
+ --sidebar-menu-sub-padding-inline: var(--space-1);
1456
+ --sidebar-menu-sub-button-height: calc(1.5rem * var(--scaling));
1457
+ --sidebar-menu-sub-button-padding-block: 0;
1458
+ --sidebar-menu-sub-button-padding-inline: var(--space-1);
1459
+ --sidebar-menu-sub-button-gap: var(--space-1);
1460
+ --sidebar-menu-sub-button-font-size: var(--font-size-1);
1461
+ --sidebar-menu-sub-button-line-height: var(--line-height-1);
1462
+ --sidebar-menu-sub-icon-size: calc(0.6875rem * var(--scaling));
1463
+ }
1464
+ .ui-SidebarMenu:where(.r-size-2) {
1465
+ --sidebar-menu-list-gap: calc(var(--space-1) / 2);
1466
+ --sidebar-menu-button-height: calc(2rem * var(--scaling));
1467
+ --sidebar-menu-button-padding-block: var(--space-1);
1468
+ --sidebar-menu-button-padding-inline: var(--space-2);
1469
+ --sidebar-menu-button-gap: var(--space-2);
1470
+ --sidebar-menu-button-font-size: var(--font-size-1);
1471
+ --sidebar-menu-button-line-height: var(--line-height-1);
1472
+ --sidebar-menu-icon-size: calc(0.875rem * var(--scaling));
1473
+ --sidebar-menu-sub-gap: calc(var(--space-1) / 2);
1474
+ --sidebar-menu-sub-margin-block: calc(var(--space-1) / 2);
1475
+ --sidebar-menu-sub-margin-inline: var(--space-4);
1476
+ --sidebar-menu-sub-padding-inline: var(--space-1);
1477
+ --sidebar-menu-sub-button-height: calc(1.75rem * var(--scaling));
1478
+ --sidebar-menu-sub-button-padding-block: calc(var(--space-1) / 2);
1479
+ --sidebar-menu-sub-button-padding-inline: var(--space-2);
1480
+ --sidebar-menu-sub-button-gap: var(--space-2);
1481
+ --sidebar-menu-sub-button-font-size: var(--font-size-1);
1482
+ --sidebar-menu-sub-button-line-height: var(--line-height-1);
1483
+ --sidebar-menu-sub-icon-size: calc(0.75rem * var(--scaling));
1484
+ }
1485
+ .ui-SidebarMenu:where(.r-size-3) {
1486
+ --sidebar-menu-list-gap: var(--space-1);
1487
+ --sidebar-menu-button-height: calc(2.25rem * var(--scaling));
1488
+ --sidebar-menu-button-padding-block: var(--space-2);
1489
+ --sidebar-menu-button-padding-inline: var(--space-2);
1490
+ --sidebar-menu-button-gap: var(--space-3);
1491
+ --sidebar-menu-button-font-size: var(--font-size-2);
1492
+ --sidebar-menu-button-line-height: var(--line-height-2);
1493
+ --sidebar-menu-icon-size: calc(1rem * var(--scaling));
1494
+ --sidebar-menu-sub-gap: var(--space-1);
1495
+ --sidebar-menu-sub-margin-block: var(--space-1);
1496
+ --sidebar-menu-sub-margin-inline: calc(var(--space-4) + var(--space-1));
1497
+ --sidebar-menu-sub-padding-inline: var(--space-2);
1498
+ --sidebar-menu-sub-button-height: calc(2rem * var(--scaling));
1499
+ --sidebar-menu-sub-button-padding-block: var(--space-1);
1500
+ --sidebar-menu-sub-button-padding-inline: var(--space-2);
1501
+ --sidebar-menu-sub-button-gap: var(--space-3);
1502
+ --sidebar-menu-sub-button-font-size: var(--font-size-1);
1503
+ --sidebar-menu-sub-button-line-height: var(--line-height-1);
1504
+ --sidebar-menu-sub-icon-size: calc(0.875rem * var(--scaling));
1505
+ }
1506
+ .ui-SidebarMenuItem,
1507
+ .ui-SidebarMenuSubItem {
1508
+ min-width: 0;
1509
+ position: relative;
1510
+ }
1511
+ .ui-SidebarMenuButton,
1512
+ .ui-SidebarMenuSubButton {
1513
+ align-items: center;
1514
+ -webkit-appearance: none;
1515
+ -moz-appearance: none;
1516
+ appearance: none;
1517
+ background-color: transparent;
1518
+ border: 0;
1519
+ border-radius: var(--radius-2);
1520
+ box-sizing: border-box;
1521
+ color: var(--gray-11);
1522
+ cursor: pointer;
1523
+ display: flex;
1524
+ font-family: inherit;
1525
+ font-size: var(--sidebar-menu-button-font-size);
1526
+ gap: var(--sidebar-menu-button-gap);
1527
+ justify-content: flex-start;
1528
+ line-height: var(--sidebar-menu-button-line-height);
1529
+ min-height: var(--sidebar-menu-button-height);
1530
+ min-width: 0;
1531
+ overflow: hidden;
1532
+ padding-block: var(--sidebar-menu-button-padding-block);
1533
+ padding-inline: var(--sidebar-menu-button-padding-inline);
1534
+ text-align: start;
1535
+ text-decoration: none;
1536
+ white-space: nowrap;
1537
+ width: 100%;
1538
+ }
1539
+ .ui-SidebarMenuButtonIcon,
1540
+ .ui-SidebarMenuButtonTrailing,
1541
+ .ui-SidebarMenuSubButtonIcon,
1542
+ .ui-SidebarMenuSubButtonTrailing {
1543
+ align-items: center;
1544
+ display: inline-flex;
1545
+ flex: 0 0 auto;
1546
+ justify-content: center;
1547
+ }
1548
+ .ui-SidebarMenuButtonIconGraphic,
1549
+ .ui-SidebarMenuButtonTrailingIcon {
1550
+ height: var(--sidebar-menu-icon-size);
1551
+ width: var(--sidebar-menu-icon-size);
1552
+ }
1553
+ .ui-SidebarMenuSubButtonIconGraphic,
1554
+ .ui-SidebarMenuSubButtonTrailingIcon {
1555
+ height: var(--sidebar-menu-sub-icon-size);
1556
+ width: var(--sidebar-menu-sub-icon-size);
1557
+ }
1558
+ .ui-SidebarMenuButtonText,
1559
+ .ui-SidebarMenuSubButtonText {
1560
+ flex: 1 1 auto;
1561
+ min-width: 0;
1562
+ overflow: hidden;
1563
+ text-overflow: ellipsis;
1564
+ }
1565
+ .ui-SidebarMenuButtonTrailing,
1566
+ .ui-SidebarMenuSubButtonTrailing {
1567
+ margin-inline-start: auto;
1568
+ }
1569
+ .ui-SidebarMenuButtonTrailing > .ui-CollapsibleIndicator {
1570
+ block-size: var(--sidebar-menu-icon-size);
1571
+ color: var(--gray-10);
1572
+ flex: 0 0 auto;
1573
+ font-size: var(--sidebar-menu-icon-size);
1574
+ inline-size: var(--sidebar-menu-icon-size);
1575
+ }
1576
+ .ui-SidebarMenuSubButtonTrailing > .ui-CollapsibleIndicator {
1577
+ block-size: var(--sidebar-menu-sub-icon-size);
1578
+ color: var(--gray-10);
1579
+ flex: 0 0 auto;
1580
+ font-size: var(--sidebar-menu-sub-icon-size);
1581
+ inline-size: var(--sidebar-menu-sub-icon-size);
1582
+ }
1583
+ .ui-SidebarMenuButton .ui-CollapsibleTriggerText {
1584
+ align-items: center;
1585
+ display: flex;
1586
+ gap: var(--sidebar-menu-button-gap);
1587
+ min-width: 0;
1588
+ overflow: hidden;
1589
+ }
1590
+ .ui-SidebarMenuButton > .ui-CollapsibleIndicator {
1591
+ flex: 0 0 auto;
1592
+ }
1593
+ .ui-SidebarMenuButton:not([data-disabled]):hover,
1594
+ .ui-SidebarMenuSubButton:not([data-disabled]):hover {
1595
+ background-color: var(--gray-a3);
1596
+ color: var(--gray-12);
1597
+ }
1598
+ .ui-SidebarMenuButton:where([data-active]),
1599
+ .ui-SidebarMenuSubButton:where([data-active]) {
1600
+ background-color: var(--accent-a3);
1601
+ color: var(--accent-11);
1602
+ font-weight: var(--font-weight-medium);
1603
+ }
1604
+ .ui-SidebarMenuButton:where([data-active]):not([data-disabled]):hover,
1605
+ .ui-SidebarMenuSubButton:where([data-active]):not([data-disabled]):hover {
1606
+ background-color: var(--accent-a4);
1607
+ }
1608
+ .ui-SidebarMenuButton:focus-visible,
1609
+ .ui-SidebarMenuSubButton:focus-visible {
1610
+ outline: 2px solid var(--accent-8);
1611
+ outline-offset: -2px;
1612
+ }
1613
+ .ui-SidebarMenuButton:where([data-disabled]),
1614
+ .ui-SidebarMenuSubButton:where([data-disabled]) {
1615
+ cursor: not-allowed;
1616
+ opacity: 0.5;
1617
+ }
1618
+ .ui-SidebarMenuSub {
1619
+ border-inline-start: 1px solid var(--gray-a5);
1620
+ display: flex;
1621
+ flex-direction: column;
1622
+ gap: var(--sidebar-menu-sub-gap);
1623
+ margin-block: var(--sidebar-menu-sub-margin-block);
1624
+ margin-inline-start: var(--sidebar-menu-sub-margin-inline);
1625
+ padding-inline-start: var(--sidebar-menu-sub-padding-inline);
1626
+ }
1627
+ .ui-SidebarMenuSubButton {
1628
+ font-size: var(--sidebar-menu-sub-button-font-size);
1629
+ gap: var(--sidebar-menu-sub-button-gap);
1630
+ line-height: var(--sidebar-menu-sub-button-line-height);
1631
+ min-height: var(--sidebar-menu-sub-button-height);
1632
+ padding-block: var(--sidebar-menu-sub-button-padding-block);
1633
+ padding-inline: var(--sidebar-menu-sub-button-padding-inline);
1634
+ }
1635
+ .ui-Sidebar:where(.r-collapsible-icon)[data-collapsed='true'] .ui-SidebarGroupLabel,
1636
+ .ui-Sidebar:where(.r-collapsible-icon)[data-collapsed='true'] .ui-SidebarMenuSub {
1637
+ display: none;
1638
+ }
1639
+ .ui-Sidebar:where(.r-collapsible-icon)[data-collapsed='true'] .ui-SidebarMenuButton {
1640
+ block-size: var(--sidebar-menu-button-height);
1641
+ display: flex;
1642
+ gap: 0;
1643
+ inline-size: var(--sidebar-menu-button-height);
1644
+ justify-content: center;
1645
+ margin-inline: auto;
1646
+ padding: 0;
1647
+ position: relative;
1648
+ text-overflow: clip;
1649
+ }
1650
+ .ui-Sidebar:where(.r-collapsible-icon)[data-collapsed='true'] .ui-SidebarMenuButtonText,
1651
+ .ui-Sidebar:where(.r-collapsible-icon)[data-collapsed='true'] .ui-SidebarMenuButtonTrailing {
1652
+ border: 0;
1653
+ clip: rect(0, 0, 0, 0);
1654
+ clip-path: inset(50%);
1655
+ height: 1px;
1656
+ margin: -1px;
1657
+ overflow: hidden;
1658
+ padding: 0;
1659
+ position: absolute;
1660
+ white-space: nowrap;
1661
+ width: 1px;
1662
+ }
1663
+ .ui-Sidebar:where(.r-collapsible-icon)[data-collapsed='true'] .ui-SidebarMenuButton > .ui-CollapsibleIndicator {
1664
+ display: none;
1665
+ }
1666
+ .ui-SidebarOverlay {
1667
+ align-items: stretch;
1668
+ background-color: var(--gray-a8);
1669
+ display: flex;
1670
+ inset: 0;
1671
+ justify-content: flex-start;
1672
+ position: fixed;
1673
+ z-index: 50;
1674
+ }
1675
+ .ui-SidebarOverlay:has(> .ui-SidebarPanel.r-side-right) {
1676
+ justify-content: flex-end;
1677
+ }
1678
+ .ui-SidebarOverlay[data-state='open'] {
1679
+ animation: ui-fade-in 180ms ease-out;
1680
+ }
1681
+ .ui-SidebarOverlay[data-state='closed'] {
1682
+ animation: ui-fade-out 150ms ease-in;
1683
+ }
1684
+ .ui-SidebarPanel:where(.r-mobile) {
1685
+ height: 100%;
1686
+ max-width: calc(100vw - var(--space-4));
1687
+ position: relative;
1688
+ width: var(--sidebar-mobile-width);
1689
+ background-color: var(--color-panel-solid);
1690
+ }
1691
+ .ui-SidebarPanel:where(.r-mobile.r-variant-floating) {
1692
+ height: calc(100% - var(--space-4));
1693
+ margin: var(--space-2);
1694
+ }
1695
+ .ui-SidebarPanel:where(.r-mobile.r-side-left)[data-state='open'] {
1696
+ animation: ui-sidebar-enter-left 200ms ease-out;
1697
+ }
1698
+ .ui-SidebarPanel:where(.r-mobile.r-side-left)[data-state='closed'] {
1699
+ animation: ui-sidebar-exit-left 170ms ease-in;
1700
+ }
1701
+ .ui-SidebarPanel:where(.r-mobile.r-side-right)[data-state='open'] {
1702
+ animation: ui-sidebar-enter-right 200ms ease-out;
1703
+ }
1704
+ .ui-SidebarPanel:where(.r-mobile.r-side-right)[data-state='closed'] {
1705
+ animation: ui-sidebar-exit-right 170ms ease-in;
1706
+ }
1707
+ .ui-SidebarVisuallyHidden {
1708
+ clip: rect(0, 0, 0, 0);
1709
+ clip-path: inset(50%);
1710
+ height: 1px;
1711
+ overflow: hidden;
1712
+ position: absolute;
1713
+ white-space: nowrap;
1714
+ width: 1px;
1715
+ }
1716
+ }
1717
+
1718
+ /* Collapsible contributes behavior inside a menu; SidebarMenu owns its chrome. */
1719
+ .ui-SidebarMenu .ui-CollapsibleRoot[data-state] {
1720
+ background-color: transparent;
1721
+ border-radius: 0;
1722
+ box-shadow: none;
1723
+ color: inherit;
1724
+ font-size: inherit;
1725
+ font-weight: inherit;
1726
+ }
1727
+ .ui-SidebarMenu .ui-CollapsibleTrigger.ui-SidebarMenuButton {
1728
+ align-items: center;
1729
+ -webkit-appearance: none;
1730
+ -moz-appearance: none;
1731
+ appearance: none;
1732
+ background-color: transparent;
1733
+ border: 0;
1734
+ border-radius: var(--radius-2);
1735
+ box-sizing: border-box;
1736
+ color: var(--gray-11);
1737
+ cursor: pointer;
1738
+ display: flex;
1739
+ font-family: inherit;
1740
+ font-size: var(--sidebar-menu-button-font-size);
1741
+ font-weight: var(--font-weight-regular);
1742
+ gap: var(--sidebar-menu-button-gap);
1743
+ height: var(--sidebar-menu-button-height);
1744
+ justify-content: flex-start;
1745
+ line-height: var(--sidebar-menu-button-line-height);
1746
+ margin: 0;
1747
+ min-height: var(--sidebar-menu-button-height);
1748
+ min-width: 0;
1749
+ overflow: hidden;
1750
+ padding-block: var(--sidebar-menu-button-padding-block);
1751
+ padding-inline: var(--sidebar-menu-button-padding-inline);
1752
+ text-align: start;
1753
+ text-decoration: none;
1754
+ white-space: nowrap;
1755
+ width: 100%;
1756
+ }
1757
+ .ui-SidebarMenu .ui-CollapsibleTrigger.ui-SidebarMenuButton:not([data-disabled]):hover {
1758
+ background-color: var(--gray-a3);
1759
+ color: var(--gray-12);
1760
+ }
1761
+ .ui-SidebarMenu .ui-CollapsibleTrigger.ui-SidebarMenuButton:where([data-active]) {
1762
+ background-color: var(--accent-a3);
1763
+ color: var(--accent-11);
1764
+ font-weight: var(--font-weight-medium);
1765
+ }
1766
+ .ui-SidebarMenu .ui-CollapsibleTrigger.ui-SidebarMenuButton:where([data-active]):not([data-disabled]):hover {
1767
+ background-color: var(--accent-a4);
1768
+ }
1769
+ .ui-SidebarMenu .ui-CollapsibleTrigger.ui-SidebarMenuButton:focus-visible {
1770
+ outline: 2px solid var(--accent-8);
1771
+ outline-offset: -2px;
1772
+ }
1773
+ .ui-SidebarMenu .ui-CollapsibleTrigger.ui-SidebarMenuButton:where([data-disabled]) {
1774
+ cursor: not-allowed;
1775
+ opacity: 0.5;
1776
+ }
1777
+ .ui-SidebarMenu .ui-CollapsibleTrigger.ui-SidebarMenuButton > .ui-CollapsibleTriggerText {
1778
+ align-items: center;
1779
+ display: flex;
1780
+ flex: 1 1 auto;
1781
+ font-weight: inherit;
1782
+ gap: var(--sidebar-menu-button-gap);
1783
+ min-width: 0;
1784
+ overflow: hidden;
1785
+ text-align: initial;
1786
+ }
1787
+ .ui-SidebarMenu .ui-CollapsibleTrigger.ui-SidebarMenuButton > .ui-CollapsibleIndicator {
1788
+ align-items: center;
1789
+ block-size: var(--sidebar-menu-icon-size);
1790
+ color: var(--gray-10);
1791
+ display: inline-flex;
1792
+ flex: 0 0 auto;
1793
+ font-size: var(--sidebar-menu-icon-size);
1794
+ inline-size: var(--sidebar-menu-icon-size);
1795
+ }
1796
+ .ui-SidebarMenu .ui-CollapsibleContent {
1797
+ background-color: transparent;
1798
+ border: 0;
1799
+ border-radius: 0;
1800
+ box-shadow: none;
1801
+ color: inherit;
1802
+ font-size: inherit;
1803
+ font-weight: inherit;
1804
+ margin: 0;
1805
+ overflow: hidden;
1806
+ padding: 0;
1807
+ }
1808
+ .ui-Sidebar:where(.r-collapsible-icon)[data-collapsed='true']
1809
+ .ui-SidebarMenu .ui-CollapsibleTrigger.ui-SidebarMenuButton {
1810
+ block-size: var(--sidebar-menu-button-height);
1811
+ display: flex;
1812
+ gap: 0;
1813
+ inline-size: var(--sidebar-menu-button-height);
1814
+ justify-content: center;
1815
+ margin-inline: auto;
1816
+ padding: 0;
1817
+ }
1818
+ .ui-Sidebar:where(.r-collapsible-icon)[data-collapsed='true']
1819
+ .ui-SidebarMenu .ui-CollapsibleTrigger.ui-SidebarMenuButton > .ui-CollapsibleTriggerText {
1820
+ display: contents;
1821
+ }
1822
+ .ui-Sidebar:where(.r-collapsible-icon)[data-collapsed='true']
1823
+ .ui-SidebarMenu .ui-CollapsibleTrigger.ui-SidebarMenuButton > .ui-CollapsibleIndicator {
1824
+ display: none;
1825
+ }
1826
+ @keyframes ui-sidebar-enter-left {
1827
+ from { transform: translateX(-100%);
1828
+ }
1829
+ to { transform: translateX(0);
1830
+ }
1831
+ }
1832
+ @keyframes ui-sidebar-exit-left {
1833
+ from { transform: translateX(0);
1834
+ }
1835
+ to { transform: translateX(-100%);
1836
+ }
1837
+ }
1838
+ @keyframes ui-sidebar-enter-right {
1839
+ from { transform: translateX(100%);
1840
+ }
1841
+ to { transform: translateX(0);
1842
+ }
1843
+ }
1844
+ @keyframes ui-sidebar-exit-right {
1845
+ from { transform: translateX(0);
1846
+ }
1847
+ to { transform: translateX(100%);
1848
+ }
1849
+ }
1850
+ @media (max-width: 1023px) {
1851
+ .ui-SidebarProvider:where([data-inset='true']) > .ui-SidebarInset {
1852
+ border: 0;
1853
+ border-radius: 0;
1854
+ }
1855
+ }
1856
+ @media (prefers-reduced-motion: reduce) {
1857
+ .ui-Sidebar,
1858
+ .ui-SidebarPanel,
1859
+ .ui-SidebarOverlay {
1860
+ animation-duration: 1ms !important;
1861
+ transition-duration: 1ms !important;
1862
+ }
1863
+ }
1205
1864
 
1206
1865
  .ui-root {
1207
1866
  --switch-disabled-blend-mode: multiply;
@@ -2269,6 +2928,128 @@ to {
2269
2928
  height: calc(var(--color-field-size) - var(--text-field-padding));
2270
2929
  }
2271
2930
 
2931
+ @layer components {
2932
+ .ui-PinInputRoot {
2933
+ display: inline-flex;
2934
+ align-items: center;
2935
+ gap: var(--pin-input-gap);
2936
+ box-sizing: border-box;
2937
+ }
2938
+ }
2939
+ .ui-PinInputRoot:where(.r-size-1) {
2940
+ --pin-input-size: var(--space-5);
2941
+ --pin-input-gap: var(--space-1);
2942
+ --pin-input-radius: max(var(--radius-2), var(--radius-full));
2943
+ --pin-input-padding: var(--space-1);
2944
+ font-size: var(--font-size-1);
2945
+ letter-spacing: var(--letter-spacing-1);
2946
+ }
2947
+ .ui-PinInputRoot:where(.r-size-2) {
2948
+ --pin-input-size: var(--space-6);
2949
+ --pin-input-gap: var(--space-2);
2950
+ --pin-input-radius: max(var(--radius-2), var(--radius-full));
2951
+ --pin-input-padding: var(--space-2);
2952
+ font-size: var(--font-size-2);
2953
+ letter-spacing: var(--letter-spacing-2);
2954
+ }
2955
+ .ui-PinInputRoot:where(.r-size-3) {
2956
+ --pin-input-size: var(--space-7);
2957
+ --pin-input-gap: var(--space-2);
2958
+ --pin-input-radius: max(var(--radius-3), var(--radius-full));
2959
+ --pin-input-padding: var(--space-3);
2960
+ font-size: var(--font-size-3);
2961
+ letter-spacing: var(--letter-spacing-3);
2962
+ }
2963
+ .ui-PinInputRoot:where(.r-variant-surface) {
2964
+ --pin-input-border-width: 1px;
2965
+ --pin-input-border-color: var(--gray-a7);
2966
+ --pin-input-focus-color: var(--focus-a8);
2967
+ --pin-input-selection-color: var(--focus-a5);
2968
+ }
2969
+ .ui-PinInputRoot:where(.r-variant-soft) {
2970
+ --pin-input-border-width: 0px;
2971
+ --pin-input-border-color: transparent;
2972
+ --pin-input-focus-color: var(--accent-8);
2973
+ --pin-input-selection-color: var(--accent-a5);
2974
+ }
2975
+
2976
+ @layer components {
2977
+ .ui-PinInputInput {
2978
+ display: inline-flex;
2979
+ align-items: center;
2980
+ justify-content: center;
2981
+ box-sizing: border-box;
2982
+ flex: 0 0 var(--pin-input-size);
2983
+ width: var(--pin-input-size);
2984
+ height: var(--pin-input-size);
2985
+ padding: var(--pin-input-padding);
2986
+ border: var(--pin-input-border-width) solid var(--pin-input-border-color);
2987
+ border-radius: var(--pin-input-radius);
2988
+ outline: none;
2989
+ color: var(--gray-12);
2990
+ background-color: var(--color-surface);
2991
+ font: inherit;
2992
+ line-height: 1;
2993
+ text-align: center;
2994
+ font-variant-numeric: tabular-nums;
2995
+ caret-color: var(--accent-9);
2996
+ -webkit-appearance: none;
2997
+ -moz-appearance: none;
2998
+ appearance: none;
2999
+ }
3000
+ }
3001
+ .ui-PinInputRoot:where(.r-variant-surface) .ui-PinInputInput {
3002
+ background-color: var(--color-surface);
3003
+ }
3004
+ .ui-PinInputRoot:where(.r-variant-soft) .ui-PinInputInput {
3005
+ background-color: var(--accent-a3);
3006
+ color: var(--accent-12);
3007
+ }
3008
+ .ui-PinInputInput:where(:focus, :focus-visible) {
3009
+ box-shadow: 0 0 0 2px var(--pin-input-selection-color);
3010
+ border-color: var(--pin-input-focus-color);
3011
+ }
3012
+ .ui-PinInputInput::-moz-selection {
3013
+ background-color: var(--pin-input-selection-color);
3014
+ }
3015
+ .ui-PinInputInput::selection {
3016
+ background-color: var(--pin-input-selection-color);
3017
+ }
3018
+ .ui-PinInputInput::-moz-placeholder {
3019
+ color: var(--gray-a10);
3020
+ opacity: 1;
3021
+ }
3022
+ .ui-PinInputInput::placeholder {
3023
+ color: var(--gray-a10);
3024
+ opacity: 1;
3025
+ }
3026
+ .ui-PinInputRoot:where(.r-variant-soft) .ui-PinInputInput::-moz-placeholder {
3027
+ color: var(--accent-12);
3028
+ opacity: 0.6;
3029
+ }
3030
+ .ui-PinInputRoot:where(.r-variant-soft) .ui-PinInputInput::placeholder {
3031
+ color: var(--accent-12);
3032
+ opacity: 0.6;
3033
+ }
3034
+ .ui-PinInputInput:where(:disabled, [data-disabled]) {
3035
+ cursor: var(--cursor-disabled);
3036
+ color: var(--gray-a8);
3037
+ background-color: var(--gray-a3);
3038
+ -webkit-text-fill-color: var(--gray-a8);
3039
+ }
3040
+ .ui-PinInputInput:where(:disabled, [data-disabled])::-moz-placeholder {
3041
+ color: var(--gray-a8);
3042
+ }
3043
+ .ui-PinInputInput:where(:disabled, [data-disabled])::placeholder {
3044
+ color: var(--gray-a8);
3045
+ }
3046
+ .ui-PinInputRoot:where(.r-variant-soft) .ui-PinInputInput:where(:disabled, [data-disabled]) {
3047
+ background-color: var(--gray-a3);
3048
+ }
3049
+ .ui-PinInputInput:where([data-complete]) {
3050
+ /* Completion describes input state, not validation success. */
3051
+ }
3052
+
2272
3053
  .ui-SelectContent {
2273
3054
  --scrollarea-scrollbar-vertical-margin-top: var(--select-content-padding);
2274
3055
  --scrollarea-scrollbar-vertical-margin-bottom: var(--select-content-padding);
@@ -3734,12 +4515,12 @@ to {
3734
4515
  text-align: initial;
3735
4516
  gap: var(--collapsible-trigger-gap);
3736
4517
  font-size: var(--collapsible-font-size);
3737
- font-weight: var(--font-weight-medium);
3738
4518
  }
3739
4519
  }
3740
4520
  .ui-CollapsibleTriggerText {
3741
4521
  flex-grow: 1;
3742
4522
  text-align: initial;
4523
+ font-weight: var(--font-weight-medium);
3743
4524
  }
3744
4525
  :where(.ui-CollapsibleRoot:not(.r-variant-ghost)) .ui-CollapsibleTrigger {
3745
4526
  background-color: var(--collapsible-trigger-background-color);