@casoon/atlas-styles 0.0.9 → 0.2.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.
@@ -846,3 +846,1249 @@
846
846
  transition-duration: 0.01ms !important;
847
847
  }
848
848
  }
849
+
850
+ /* ==========================================================================
851
+ Alert Component
852
+ ========================================================================== */
853
+
854
+ .atlas-alert {
855
+ position: relative;
856
+ display: flex;
857
+ gap: 12px;
858
+ padding: 16px;
859
+ border-radius: 8px;
860
+ border: 1px solid var(--atlas-gray-200);
861
+ background-color: var(--atlas-gray-100);
862
+ color: inherit;
863
+ transition:
864
+ opacity var(--atlas-duration-normal) var(--atlas-ease-standard),
865
+ transform var(--atlas-duration-normal) var(--atlas-ease-standard);
866
+ }
867
+
868
+ .atlas-alert[data-variant='destructive'] {
869
+ border-color: var(--atlas-error);
870
+ background-color: rgba(239, 68, 68, 0.1);
871
+ color: var(--atlas-error);
872
+ }
873
+
874
+ .atlas-alert[data-variant='success'] {
875
+ border-color: var(--atlas-success);
876
+ background-color: rgba(34, 197, 94, 0.1);
877
+ color: var(--atlas-success);
878
+ }
879
+
880
+ .atlas-alert[data-variant='warning'] {
881
+ border-color: #f59e0b;
882
+ background-color: rgba(245, 158, 11, 0.1);
883
+ color: #b45309;
884
+ }
885
+
886
+ .atlas-alert[data-variant='info'] {
887
+ border-color: var(--atlas-primary);
888
+ background-color: rgba(59, 130, 246, 0.1);
889
+ color: var(--atlas-primary);
890
+ }
891
+
892
+ .atlas-alert-icon {
893
+ flex-shrink: 0;
894
+ width: 20px;
895
+ height: 20px;
896
+ }
897
+
898
+ .atlas-alert-content {
899
+ flex: 1;
900
+ min-width: 0;
901
+ }
902
+
903
+ .atlas-alert-title {
904
+ font-weight: 600;
905
+ margin-bottom: 4px;
906
+ }
907
+
908
+ .atlas-alert-description {
909
+ font-size: 0.875rem;
910
+ opacity: 0.9;
911
+ }
912
+
913
+ .atlas-alert-dismiss {
914
+ position: absolute;
915
+ top: 8px;
916
+ right: 8px;
917
+ padding: 4px;
918
+ background: transparent;
919
+ border: none;
920
+ cursor: pointer;
921
+ opacity: 0.5;
922
+ transition: opacity var(--atlas-duration-fast) var(--atlas-ease-standard);
923
+ }
924
+
925
+ .atlas-alert-dismiss:hover {
926
+ opacity: 1;
927
+ }
928
+
929
+ .atlas-alert-dismissing {
930
+ opacity: 0;
931
+ transform: translateX(20px);
932
+ }
933
+
934
+ /* ==========================================================================
935
+ Alert Dialog Component
936
+ ========================================================================== */
937
+
938
+ .atlas-alert-dialog-backdrop {
939
+ position: fixed;
940
+ inset: 0;
941
+ display: flex;
942
+ align-items: center;
943
+ justify-content: center;
944
+ background-color: rgba(0, 0, 0, 0.5);
945
+ backdrop-filter: blur(4px);
946
+ z-index: 1000;
947
+ animation: atlas-backdrop-in var(--atlas-duration-normal) var(--atlas-ease-standard) forwards;
948
+ }
949
+
950
+ .atlas-alert-dialog {
951
+ position: relative;
952
+ max-width: 500px;
953
+ width: 90%;
954
+ padding: 24px;
955
+ background: white;
956
+ border-radius: 12px;
957
+ box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
958
+ animation: atlas-modal-in var(--atlas-duration-normal) var(--atlas-ease-spring) forwards;
959
+ }
960
+
961
+ .atlas-alert-dialog-header {
962
+ margin-bottom: 16px;
963
+ }
964
+
965
+ .atlas-alert-dialog-title {
966
+ font-size: 1.125rem;
967
+ font-weight: 600;
968
+ margin: 0 0 8px;
969
+ }
970
+
971
+ .atlas-alert-dialog-description {
972
+ font-size: 0.875rem;
973
+ color: var(--atlas-gray-400);
974
+ margin: 0;
975
+ }
976
+
977
+ .atlas-alert-dialog-footer {
978
+ display: flex;
979
+ justify-content: flex-end;
980
+ gap: 8px;
981
+ margin-top: 24px;
982
+ }
983
+
984
+ .atlas-alert-dialog-cancel,
985
+ .atlas-alert-dialog-action {
986
+ padding: 8px 16px;
987
+ border-radius: 6px;
988
+ font-size: 0.875rem;
989
+ font-weight: 500;
990
+ cursor: pointer;
991
+ transition: all var(--atlas-duration-fast) var(--atlas-ease-standard);
992
+ }
993
+
994
+ .atlas-alert-dialog-cancel {
995
+ background: transparent;
996
+ border: 1px solid var(--atlas-gray-200);
997
+ color: inherit;
998
+ }
999
+
1000
+ .atlas-alert-dialog-cancel:hover {
1001
+ background: var(--atlas-gray-100);
1002
+ }
1003
+
1004
+ .atlas-alert-dialog-action {
1005
+ background: var(--atlas-primary);
1006
+ border: none;
1007
+ color: white;
1008
+ }
1009
+
1010
+ .atlas-alert-dialog-action:hover {
1011
+ filter: brightness(1.1);
1012
+ }
1013
+
1014
+ .atlas-alert-dialog-action[data-variant='destructive'] {
1015
+ background: var(--atlas-error);
1016
+ }
1017
+
1018
+ /* ==========================================================================
1019
+ Aspect Ratio Component
1020
+ ========================================================================== */
1021
+
1022
+ .atlas-aspect-ratio {
1023
+ position: relative;
1024
+ width: 100%;
1025
+ }
1026
+
1027
+ .atlas-aspect-ratio > * {
1028
+ position: absolute;
1029
+ inset: 0;
1030
+ width: 100%;
1031
+ height: 100%;
1032
+ object-fit: cover;
1033
+ }
1034
+
1035
+ /* ==========================================================================
1036
+ Collapsible Component
1037
+ ========================================================================== */
1038
+
1039
+ .atlas-collapsible {
1040
+ width: 100%;
1041
+ }
1042
+
1043
+ .atlas-collapsible-trigger {
1044
+ display: flex;
1045
+ align-items: center;
1046
+ justify-content: space-between;
1047
+ width: 100%;
1048
+ padding: 12px 16px;
1049
+ background: transparent;
1050
+ border: 1px solid var(--atlas-gray-200);
1051
+ border-radius: 8px;
1052
+ cursor: pointer;
1053
+ font-size: inherit;
1054
+ text-align: left;
1055
+ transition: all var(--atlas-duration-fast) var(--atlas-ease-standard);
1056
+ }
1057
+
1058
+ .atlas-collapsible-trigger:hover {
1059
+ background: var(--atlas-gray-100);
1060
+ }
1061
+
1062
+ .atlas-collapsible-trigger-icon {
1063
+ transition: transform var(--atlas-duration-normal) var(--atlas-ease-spring);
1064
+ }
1065
+
1066
+ .atlas-collapsible[data-state='open'] .atlas-collapsible-trigger-icon {
1067
+ transform: rotate(180deg);
1068
+ }
1069
+
1070
+ .atlas-collapsible-content {
1071
+ overflow: hidden;
1072
+ transition: height var(--atlas-duration-normal) var(--atlas-ease-standard);
1073
+ }
1074
+
1075
+ .atlas-collapsible-content[data-state='closed'] {
1076
+ height: 0;
1077
+ }
1078
+
1079
+ .atlas-collapsible-content-inner {
1080
+ padding: 16px;
1081
+ }
1082
+
1083
+ /* ==========================================================================
1084
+ Context Menu Component
1085
+ ========================================================================== */
1086
+
1087
+ .atlas-context-menu {
1088
+ position: fixed;
1089
+ min-width: 180px;
1090
+ padding: 4px;
1091
+ background: white;
1092
+ border: 1px solid var(--atlas-gray-200);
1093
+ border-radius: 8px;
1094
+ box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15);
1095
+ z-index: 1000;
1096
+ animation: atlas-dropdown-in var(--atlas-duration-fast) var(--atlas-ease-spring) forwards;
1097
+ }
1098
+
1099
+ .atlas-context-menu-item {
1100
+ display: flex;
1101
+ align-items: center;
1102
+ gap: 8px;
1103
+ width: 100%;
1104
+ padding: 8px 12px;
1105
+ background: transparent;
1106
+ border: none;
1107
+ border-radius: 4px;
1108
+ font-size: 0.875rem;
1109
+ text-align: left;
1110
+ cursor: pointer;
1111
+ transition: background-color var(--atlas-duration-fast) var(--atlas-ease-standard);
1112
+ }
1113
+
1114
+ .atlas-context-menu-item:hover,
1115
+ .atlas-context-menu-item[data-focused] {
1116
+ background: var(--atlas-gray-100);
1117
+ }
1118
+
1119
+ .atlas-context-menu-item:active {
1120
+ background: var(--atlas-gray-200);
1121
+ }
1122
+
1123
+ .atlas-context-menu-item[data-disabled] {
1124
+ opacity: 0.5;
1125
+ pointer-events: none;
1126
+ }
1127
+
1128
+ .atlas-context-menu-item[data-variant='destructive'] {
1129
+ color: var(--atlas-error);
1130
+ }
1131
+
1132
+ .atlas-context-menu-separator {
1133
+ height: 1px;
1134
+ margin: 4px 0;
1135
+ background: var(--atlas-gray-200);
1136
+ }
1137
+
1138
+ .atlas-context-menu-label {
1139
+ padding: 8px 12px 4px;
1140
+ font-size: 0.75rem;
1141
+ font-weight: 600;
1142
+ color: var(--atlas-gray-400);
1143
+ text-transform: uppercase;
1144
+ letter-spacing: 0.05em;
1145
+ }
1146
+
1147
+ .atlas-context-menu-shortcut {
1148
+ margin-left: auto;
1149
+ font-size: 0.75rem;
1150
+ color: var(--atlas-gray-400);
1151
+ }
1152
+
1153
+ /* ==========================================================================
1154
+ Hover Card Component
1155
+ ========================================================================== */
1156
+
1157
+ .atlas-hover-card {
1158
+ position: absolute;
1159
+ min-width: 280px;
1160
+ padding: 16px;
1161
+ background: white;
1162
+ border: 1px solid var(--atlas-gray-200);
1163
+ border-radius: 8px;
1164
+ box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15);
1165
+ z-index: 1000;
1166
+ animation: atlas-dropdown-in var(--atlas-duration-fast) var(--atlas-ease-spring) forwards;
1167
+ }
1168
+
1169
+ .atlas-hover-card-arrow {
1170
+ position: absolute;
1171
+ width: 10px;
1172
+ height: 10px;
1173
+ background: white;
1174
+ border: 1px solid var(--atlas-gray-200);
1175
+ border-right: none;
1176
+ border-bottom: none;
1177
+ transform: rotate(45deg);
1178
+ }
1179
+
1180
+ /* ==========================================================================
1181
+ Input OTP Component
1182
+ ========================================================================== */
1183
+
1184
+ .atlas-input-otp {
1185
+ display: flex;
1186
+ gap: 8px;
1187
+ }
1188
+
1189
+ .atlas-input-otp-group {
1190
+ display: flex;
1191
+ gap: 4px;
1192
+ }
1193
+
1194
+ .atlas-input-otp-slot {
1195
+ position: relative;
1196
+ width: 40px;
1197
+ height: 48px;
1198
+ display: flex;
1199
+ align-items: center;
1200
+ justify-content: center;
1201
+ border: 2px solid var(--atlas-gray-200);
1202
+ border-radius: 8px;
1203
+ font-size: 1.25rem;
1204
+ font-weight: 600;
1205
+ transition: all var(--atlas-duration-fast) var(--atlas-ease-standard);
1206
+ }
1207
+
1208
+ .atlas-input-otp-slot[data-active] {
1209
+ border-color: var(--atlas-primary);
1210
+ box-shadow: 0 0 0 3px rgba(var(--atlas-primary-rgb), 0.2);
1211
+ }
1212
+
1213
+ .atlas-input-otp-slot[data-filled] {
1214
+ border-color: var(--atlas-primary);
1215
+ background: rgba(var(--atlas-primary-rgb), 0.05);
1216
+ }
1217
+
1218
+ .atlas-input-otp-caret {
1219
+ position: absolute;
1220
+ width: 2px;
1221
+ height: 24px;
1222
+ background: var(--atlas-primary);
1223
+ animation: atlas-pulse 1s ease-in-out infinite;
1224
+ }
1225
+
1226
+ .atlas-input-otp-separator {
1227
+ display: flex;
1228
+ align-items: center;
1229
+ justify-content: center;
1230
+ width: 16px;
1231
+ color: var(--atlas-gray-400);
1232
+ }
1233
+
1234
+ .atlas-input-otp[data-error] .atlas-input-otp-slot {
1235
+ border-color: var(--atlas-error);
1236
+ animation: atlas-shake 0.5s ease-in-out;
1237
+ }
1238
+
1239
+ /* ==========================================================================
1240
+ Textarea Component
1241
+ ========================================================================== */
1242
+
1243
+ .atlas-textarea-wrapper {
1244
+ position: relative;
1245
+ width: 100%;
1246
+ }
1247
+
1248
+ .atlas-textarea {
1249
+ width: 100%;
1250
+ min-height: 80px;
1251
+ padding: 12px;
1252
+ border: 1px solid var(--atlas-gray-200);
1253
+ border-radius: 8px;
1254
+ font-family: inherit;
1255
+ font-size: 0.875rem;
1256
+ line-height: 1.5;
1257
+ resize: vertical;
1258
+ transition: all var(--atlas-duration-fast) var(--atlas-ease-standard);
1259
+ }
1260
+
1261
+ .atlas-textarea:focus {
1262
+ outline: none;
1263
+ border-color: var(--atlas-primary);
1264
+ box-shadow: 0 0 0 3px rgba(var(--atlas-primary-rgb), 0.2);
1265
+ }
1266
+
1267
+ .atlas-textarea[data-resize='none'] {
1268
+ resize: none;
1269
+ }
1270
+
1271
+ .atlas-textarea[data-resize='horizontal'] {
1272
+ resize: horizontal;
1273
+ }
1274
+
1275
+ .atlas-textarea[data-resize='vertical'] {
1276
+ resize: vertical;
1277
+ }
1278
+
1279
+ .atlas-textarea[data-error] {
1280
+ border-color: var(--atlas-error);
1281
+ }
1282
+
1283
+ .atlas-textarea[data-error]:focus {
1284
+ box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.2);
1285
+ }
1286
+
1287
+ .atlas-textarea-count {
1288
+ position: absolute;
1289
+ bottom: 8px;
1290
+ right: 12px;
1291
+ font-size: 0.75rem;
1292
+ color: var(--atlas-gray-400);
1293
+ }
1294
+
1295
+ .atlas-textarea-count[data-limit-reached] {
1296
+ color: var(--atlas-error);
1297
+ }
1298
+
1299
+ /* ==========================================================================
1300
+ Slider Component
1301
+ ========================================================================== */
1302
+
1303
+ .atlas-slider {
1304
+ position: relative;
1305
+ display: flex;
1306
+ align-items: center;
1307
+ width: 100%;
1308
+ height: 20px;
1309
+ touch-action: none;
1310
+ user-select: none;
1311
+ }
1312
+
1313
+ .atlas-slider[data-orientation='vertical'] {
1314
+ flex-direction: column;
1315
+ width: 20px;
1316
+ height: 200px;
1317
+ }
1318
+
1319
+ .atlas-slider-track {
1320
+ position: relative;
1321
+ flex: 1;
1322
+ height: 4px;
1323
+ background: var(--atlas-gray-200);
1324
+ border-radius: 2px;
1325
+ overflow: hidden;
1326
+ }
1327
+
1328
+ .atlas-slider[data-orientation='vertical'] .atlas-slider-track {
1329
+ width: 4px;
1330
+ height: 100%;
1331
+ }
1332
+
1333
+ .atlas-slider-fill {
1334
+ position: absolute;
1335
+ height: 100%;
1336
+ background: var(--atlas-primary);
1337
+ border-radius: 2px;
1338
+ }
1339
+
1340
+ .atlas-slider[data-orientation='vertical'] .atlas-slider-fill {
1341
+ width: 100%;
1342
+ height: auto;
1343
+ }
1344
+
1345
+ .atlas-slider-thumb {
1346
+ position: absolute;
1347
+ width: 20px;
1348
+ height: 20px;
1349
+ background: white;
1350
+ border: 2px solid var(--atlas-primary);
1351
+ border-radius: 50%;
1352
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
1353
+ cursor: grab;
1354
+ transition:
1355
+ transform var(--atlas-duration-fast) var(--atlas-ease-spring),
1356
+ box-shadow var(--atlas-duration-fast) var(--atlas-ease-standard);
1357
+ transform: translate(-50%, -50%);
1358
+ }
1359
+
1360
+ .atlas-slider[data-orientation='vertical'] .atlas-slider-thumb {
1361
+ transform: translate(-50%, 50%);
1362
+ }
1363
+
1364
+ .atlas-slider-thumb:hover {
1365
+ transform: translate(-50%, -50%) scale(1.1);
1366
+ }
1367
+
1368
+ .atlas-slider-thumb:active,
1369
+ .atlas-slider-thumb[data-dragging] {
1370
+ cursor: grabbing;
1371
+ transform: translate(-50%, -50%) scale(1.15);
1372
+ box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
1373
+ }
1374
+
1375
+ .atlas-slider-thumb:focus-visible {
1376
+ outline: none;
1377
+ box-shadow: 0 0 0 3px rgba(var(--atlas-primary-rgb), 0.3);
1378
+ }
1379
+
1380
+ .atlas-slider-tooltip {
1381
+ position: absolute;
1382
+ bottom: 100%;
1383
+ left: 50%;
1384
+ transform: translateX(-50%);
1385
+ padding: 4px 8px;
1386
+ background: #1f2937;
1387
+ color: white;
1388
+ font-size: 0.75rem;
1389
+ border-radius: 4px;
1390
+ white-space: nowrap;
1391
+ opacity: 0;
1392
+ transition: opacity var(--atlas-duration-fast) var(--atlas-ease-standard);
1393
+ pointer-events: none;
1394
+ }
1395
+
1396
+ .atlas-slider-thumb:hover .atlas-slider-tooltip,
1397
+ .atlas-slider-thumb[data-dragging] .atlas-slider-tooltip {
1398
+ opacity: 1;
1399
+ }
1400
+
1401
+ .atlas-slider[data-disabled] {
1402
+ opacity: 0.5;
1403
+ pointer-events: none;
1404
+ }
1405
+
1406
+ /* ==========================================================================
1407
+ Menubar Component
1408
+ ========================================================================== */
1409
+
1410
+ .atlas-menubar {
1411
+ display: flex;
1412
+ align-items: center;
1413
+ gap: 4px;
1414
+ padding: 4px;
1415
+ background: white;
1416
+ border: 1px solid var(--atlas-gray-200);
1417
+ border-radius: 8px;
1418
+ }
1419
+
1420
+ .atlas-menubar-trigger {
1421
+ padding: 8px 12px;
1422
+ background: transparent;
1423
+ border: none;
1424
+ border-radius: 4px;
1425
+ font-size: 0.875rem;
1426
+ font-weight: 500;
1427
+ cursor: pointer;
1428
+ transition: background-color var(--atlas-duration-fast) var(--atlas-ease-standard);
1429
+ }
1430
+
1431
+ .atlas-menubar-trigger:hover,
1432
+ .atlas-menubar-trigger[data-state='open'] {
1433
+ background: var(--atlas-gray-100);
1434
+ }
1435
+
1436
+ .atlas-menubar-content {
1437
+ position: absolute;
1438
+ min-width: 180px;
1439
+ padding: 4px;
1440
+ background: white;
1441
+ border: 1px solid var(--atlas-gray-200);
1442
+ border-radius: 8px;
1443
+ box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15);
1444
+ z-index: 1000;
1445
+ animation: atlas-dropdown-in var(--atlas-duration-fast) var(--atlas-ease-spring) forwards;
1446
+ }
1447
+
1448
+ .atlas-menubar-item {
1449
+ display: flex;
1450
+ align-items: center;
1451
+ justify-content: space-between;
1452
+ width: 100%;
1453
+ padding: 8px 12px;
1454
+ background: transparent;
1455
+ border: none;
1456
+ border-radius: 4px;
1457
+ font-size: 0.875rem;
1458
+ text-align: left;
1459
+ cursor: pointer;
1460
+ transition: background-color var(--atlas-duration-fast) var(--atlas-ease-standard);
1461
+ }
1462
+
1463
+ .atlas-menubar-item:hover,
1464
+ .atlas-menubar-item[data-focused] {
1465
+ background: var(--atlas-gray-100);
1466
+ }
1467
+
1468
+ .atlas-menubar-separator {
1469
+ height: 1px;
1470
+ margin: 4px 0;
1471
+ background: var(--atlas-gray-200);
1472
+ }
1473
+
1474
+ /* ==========================================================================
1475
+ Navigation Menu Component
1476
+ ========================================================================== */
1477
+
1478
+ .atlas-navigation-menu {
1479
+ position: relative;
1480
+ display: flex;
1481
+ align-items: center;
1482
+ }
1483
+
1484
+ .atlas-navigation-menu-list {
1485
+ display: flex;
1486
+ align-items: center;
1487
+ gap: 4px;
1488
+ list-style: none;
1489
+ margin: 0;
1490
+ padding: 0;
1491
+ }
1492
+
1493
+ .atlas-navigation-menu-trigger {
1494
+ display: flex;
1495
+ align-items: center;
1496
+ gap: 4px;
1497
+ padding: 8px 12px;
1498
+ background: transparent;
1499
+ border: none;
1500
+ border-radius: 6px;
1501
+ font-size: 0.875rem;
1502
+ font-weight: 500;
1503
+ cursor: pointer;
1504
+ transition: background-color var(--atlas-duration-fast) var(--atlas-ease-standard);
1505
+ }
1506
+
1507
+ .atlas-navigation-menu-trigger:hover {
1508
+ background: var(--atlas-gray-100);
1509
+ }
1510
+
1511
+ .atlas-navigation-menu-trigger-icon {
1512
+ width: 12px;
1513
+ height: 12px;
1514
+ transition: transform var(--atlas-duration-normal) var(--atlas-ease-spring);
1515
+ }
1516
+
1517
+ .atlas-navigation-menu-trigger[data-state='open'] .atlas-navigation-menu-trigger-icon {
1518
+ transform: rotate(180deg);
1519
+ }
1520
+
1521
+ .atlas-navigation-menu-content {
1522
+ position: absolute;
1523
+ top: 100%;
1524
+ left: 0;
1525
+ min-width: 400px;
1526
+ padding: 16px;
1527
+ background: white;
1528
+ border: 1px solid var(--atlas-gray-200);
1529
+ border-radius: 8px;
1530
+ box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15);
1531
+ animation: atlas-dropdown-in var(--atlas-duration-fast) var(--atlas-ease-spring) forwards;
1532
+ }
1533
+
1534
+ .atlas-navigation-menu-link {
1535
+ display: block;
1536
+ padding: 12px;
1537
+ border-radius: 6px;
1538
+ text-decoration: none;
1539
+ color: inherit;
1540
+ transition: background-color var(--atlas-duration-fast) var(--atlas-ease-standard);
1541
+ }
1542
+
1543
+ .atlas-navigation-menu-link:hover {
1544
+ background: var(--atlas-gray-100);
1545
+ }
1546
+
1547
+ .atlas-navigation-menu-link-title {
1548
+ font-weight: 600;
1549
+ margin-bottom: 4px;
1550
+ }
1551
+
1552
+ .atlas-navigation-menu-link-description {
1553
+ font-size: 0.875rem;
1554
+ color: var(--atlas-gray-400);
1555
+ }
1556
+
1557
+ .atlas-navigation-menu-indicator {
1558
+ position: absolute;
1559
+ bottom: 0;
1560
+ height: 2px;
1561
+ background: var(--atlas-primary);
1562
+ transition: all var(--atlas-duration-normal) var(--atlas-ease-spring);
1563
+ }
1564
+
1565
+ /* ==========================================================================
1566
+ Sidebar Component
1567
+ ========================================================================== */
1568
+
1569
+ .atlas-sidebar {
1570
+ position: fixed;
1571
+ top: 0;
1572
+ bottom: 0;
1573
+ width: 280px;
1574
+ background: white;
1575
+ border-right: 1px solid var(--atlas-gray-200);
1576
+ display: flex;
1577
+ flex-direction: column;
1578
+ z-index: 100;
1579
+ transition:
1580
+ transform var(--atlas-duration-normal) var(--atlas-ease-spring),
1581
+ width var(--atlas-duration-normal) var(--atlas-ease-spring);
1582
+ }
1583
+
1584
+ .atlas-sidebar[data-side='left'] {
1585
+ left: 0;
1586
+ }
1587
+
1588
+ .atlas-sidebar[data-side='right'] {
1589
+ right: 0;
1590
+ left: auto;
1591
+ border-right: none;
1592
+ border-left: 1px solid var(--atlas-gray-200);
1593
+ }
1594
+
1595
+ .atlas-sidebar[data-state='closed'][data-side='left'] {
1596
+ transform: translateX(-100%);
1597
+ }
1598
+
1599
+ .atlas-sidebar[data-state='closed'][data-side='right'] {
1600
+ transform: translateX(100%);
1601
+ }
1602
+
1603
+ .atlas-sidebar[data-collapsed] {
1604
+ width: 64px;
1605
+ }
1606
+
1607
+ .atlas-sidebar-header {
1608
+ padding: 16px;
1609
+ border-bottom: 1px solid var(--atlas-gray-200);
1610
+ }
1611
+
1612
+ .atlas-sidebar-content {
1613
+ flex: 1;
1614
+ overflow-y: auto;
1615
+ padding: 16px;
1616
+ }
1617
+
1618
+ .atlas-sidebar-footer {
1619
+ padding: 16px;
1620
+ border-top: 1px solid var(--atlas-gray-200);
1621
+ }
1622
+
1623
+ .atlas-sidebar-section {
1624
+ margin-bottom: 24px;
1625
+ }
1626
+
1627
+ .atlas-sidebar-section-title {
1628
+ font-size: 0.75rem;
1629
+ font-weight: 600;
1630
+ color: var(--atlas-gray-400);
1631
+ text-transform: uppercase;
1632
+ letter-spacing: 0.05em;
1633
+ margin-bottom: 8px;
1634
+ padding: 0 12px;
1635
+ }
1636
+
1637
+ .atlas-sidebar-item {
1638
+ display: flex;
1639
+ align-items: center;
1640
+ gap: 12px;
1641
+ width: 100%;
1642
+ padding: 10px 12px;
1643
+ background: transparent;
1644
+ border: none;
1645
+ border-radius: 6px;
1646
+ font-size: 0.875rem;
1647
+ text-align: left;
1648
+ cursor: pointer;
1649
+ transition: background-color var(--atlas-duration-fast) var(--atlas-ease-standard);
1650
+ }
1651
+
1652
+ .atlas-sidebar-item:hover {
1653
+ background: var(--atlas-gray-100);
1654
+ }
1655
+
1656
+ .atlas-sidebar-item[data-active] {
1657
+ background: rgba(var(--atlas-primary-rgb), 0.1);
1658
+ color: var(--atlas-primary);
1659
+ }
1660
+
1661
+ .atlas-sidebar-item-icon {
1662
+ width: 20px;
1663
+ height: 20px;
1664
+ flex-shrink: 0;
1665
+ }
1666
+
1667
+ .atlas-sidebar-toggle {
1668
+ position: absolute;
1669
+ top: 50%;
1670
+ right: -12px;
1671
+ transform: translateY(-50%);
1672
+ width: 24px;
1673
+ height: 24px;
1674
+ display: flex;
1675
+ align-items: center;
1676
+ justify-content: center;
1677
+ background: white;
1678
+ border: 1px solid var(--atlas-gray-200);
1679
+ border-radius: 50%;
1680
+ cursor: pointer;
1681
+ transition: all var(--atlas-duration-fast) var(--atlas-ease-standard);
1682
+ }
1683
+
1684
+ .atlas-sidebar-toggle:hover {
1685
+ background: var(--atlas-gray-100);
1686
+ }
1687
+
1688
+ .atlas-sidebar-overlay {
1689
+ position: fixed;
1690
+ inset: 0;
1691
+ background: rgba(0, 0, 0, 0.5);
1692
+ z-index: 99;
1693
+ animation: atlas-fade-in var(--atlas-duration-normal) var(--atlas-ease-standard);
1694
+ }
1695
+
1696
+ /* ==========================================================================
1697
+ Pagination Component
1698
+ ========================================================================== */
1699
+
1700
+ .atlas-pagination {
1701
+ display: flex;
1702
+ align-items: center;
1703
+ justify-content: center;
1704
+ gap: 4px;
1705
+ }
1706
+
1707
+ .atlas-pagination-item {
1708
+ display: flex;
1709
+ align-items: center;
1710
+ justify-content: center;
1711
+ min-width: 36px;
1712
+ height: 36px;
1713
+ padding: 0 8px;
1714
+ background: transparent;
1715
+ border: 1px solid var(--atlas-gray-200);
1716
+ border-radius: 6px;
1717
+ font-size: 0.875rem;
1718
+ cursor: pointer;
1719
+ transition: all var(--atlas-duration-fast) var(--atlas-ease-standard);
1720
+ }
1721
+
1722
+ .atlas-pagination-item:hover {
1723
+ background: var(--atlas-gray-100);
1724
+ border-color: var(--atlas-gray-400);
1725
+ }
1726
+
1727
+ .atlas-pagination-item[data-active] {
1728
+ background: var(--atlas-primary);
1729
+ border-color: var(--atlas-primary);
1730
+ color: white;
1731
+ }
1732
+
1733
+ .atlas-pagination-item[data-disabled] {
1734
+ opacity: 0.5;
1735
+ pointer-events: none;
1736
+ }
1737
+
1738
+ .atlas-pagination-ellipsis {
1739
+ display: flex;
1740
+ align-items: center;
1741
+ justify-content: center;
1742
+ width: 36px;
1743
+ height: 36px;
1744
+ color: var(--atlas-gray-400);
1745
+ }
1746
+
1747
+ .atlas-pagination-prev,
1748
+ .atlas-pagination-next {
1749
+ display: flex;
1750
+ align-items: center;
1751
+ gap: 4px;
1752
+ }
1753
+
1754
+ /* ==========================================================================
1755
+ Scroll Area Component
1756
+ ========================================================================== */
1757
+
1758
+ .atlas-scroll-area {
1759
+ position: relative;
1760
+ overflow: hidden;
1761
+ }
1762
+
1763
+ .atlas-scroll-area-viewport {
1764
+ width: 100%;
1765
+ height: 100%;
1766
+ overflow: auto;
1767
+ scrollbar-width: none;
1768
+ -ms-overflow-style: none;
1769
+ }
1770
+
1771
+ .atlas-scroll-area-viewport::-webkit-scrollbar {
1772
+ display: none;
1773
+ }
1774
+
1775
+ .atlas-scroll-area-scrollbar {
1776
+ position: absolute;
1777
+ padding: 2px;
1778
+ opacity: 0;
1779
+ transition: opacity var(--atlas-duration-fast) var(--atlas-ease-standard);
1780
+ }
1781
+
1782
+ .atlas-scroll-area:hover .atlas-scroll-area-scrollbar,
1783
+ .atlas-scroll-area-scrollbar[data-state='visible'],
1784
+ .atlas-scroll-area-scrollbar[data-dragging] {
1785
+ opacity: 1;
1786
+ }
1787
+
1788
+ .atlas-scroll-area-scrollbar[data-orientation='vertical'] {
1789
+ top: 0;
1790
+ right: 0;
1791
+ bottom: 0;
1792
+ width: 12px;
1793
+ }
1794
+
1795
+ .atlas-scroll-area-scrollbar[data-orientation='horizontal'] {
1796
+ left: 0;
1797
+ right: 0;
1798
+ bottom: 0;
1799
+ height: 12px;
1800
+ }
1801
+
1802
+ .atlas-scroll-area-thumb {
1803
+ background: rgba(0, 0, 0, 0.3);
1804
+ border-radius: 4px;
1805
+ transition: background-color var(--atlas-duration-fast) var(--atlas-ease-standard);
1806
+ }
1807
+
1808
+ .atlas-scroll-area-thumb:hover {
1809
+ background: rgba(0, 0, 0, 0.5);
1810
+ }
1811
+
1812
+ .atlas-scroll-area-scrollbar[data-orientation='vertical'] .atlas-scroll-area-thumb {
1813
+ width: 100%;
1814
+ }
1815
+
1816
+ .atlas-scroll-area-scrollbar[data-orientation='horizontal'] .atlas-scroll-area-thumb {
1817
+ height: 100%;
1818
+ }
1819
+
1820
+ /* ==========================================================================
1821
+ Resizable Component
1822
+ ========================================================================== */
1823
+
1824
+ .atlas-resizable {
1825
+ display: flex;
1826
+ width: 100%;
1827
+ height: 100%;
1828
+ overflow: hidden;
1829
+ }
1830
+
1831
+ .atlas-resizable[data-direction='vertical'] {
1832
+ flex-direction: column;
1833
+ }
1834
+
1835
+ .atlas-resizable-panel {
1836
+ overflow: auto;
1837
+ }
1838
+
1839
+ .atlas-resizable-handle {
1840
+ position: relative;
1841
+ flex-shrink: 0;
1842
+ background: var(--atlas-gray-200);
1843
+ transition: background-color var(--atlas-duration-fast) var(--atlas-ease-standard);
1844
+ }
1845
+
1846
+ .atlas-resizable[data-direction='horizontal'] .atlas-resizable-handle {
1847
+ width: 4px;
1848
+ cursor: col-resize;
1849
+ }
1850
+
1851
+ .atlas-resizable[data-direction='vertical'] .atlas-resizable-handle {
1852
+ height: 4px;
1853
+ cursor: row-resize;
1854
+ }
1855
+
1856
+ .atlas-resizable-handle:hover,
1857
+ .atlas-resizable-handle[data-dragging] {
1858
+ background: var(--atlas-primary);
1859
+ }
1860
+
1861
+ .atlas-resizable-handle-icon {
1862
+ position: absolute;
1863
+ top: 50%;
1864
+ left: 50%;
1865
+ transform: translate(-50%, -50%);
1866
+ display: flex;
1867
+ align-items: center;
1868
+ justify-content: center;
1869
+ width: 12px;
1870
+ height: 24px;
1871
+ background: var(--atlas-gray-400);
1872
+ border-radius: 2px;
1873
+ opacity: 0;
1874
+ transition: opacity var(--atlas-duration-fast) var(--atlas-ease-standard);
1875
+ }
1876
+
1877
+ .atlas-resizable-handle:hover .atlas-resizable-handle-icon {
1878
+ opacity: 1;
1879
+ }
1880
+
1881
+ .atlas-resizable[data-direction='vertical'] .atlas-resizable-handle-icon {
1882
+ width: 24px;
1883
+ height: 12px;
1884
+ }
1885
+
1886
+ /* ==========================================================================
1887
+ Date Picker Component
1888
+ ========================================================================== */
1889
+
1890
+ .atlas-date-picker {
1891
+ position: relative;
1892
+ display: inline-block;
1893
+ }
1894
+
1895
+ .atlas-date-picker-trigger {
1896
+ display: flex;
1897
+ align-items: center;
1898
+ gap: 8px;
1899
+ padding: 8px 12px;
1900
+ background: white;
1901
+ border: 1px solid var(--atlas-gray-200);
1902
+ border-radius: 6px;
1903
+ font-size: 0.875rem;
1904
+ cursor: pointer;
1905
+ transition: all var(--atlas-duration-fast) var(--atlas-ease-standard);
1906
+ }
1907
+
1908
+ .atlas-date-picker-trigger:hover {
1909
+ border-color: var(--atlas-gray-400);
1910
+ }
1911
+
1912
+ .atlas-date-picker-trigger:focus {
1913
+ outline: none;
1914
+ border-color: var(--atlas-primary);
1915
+ box-shadow: 0 0 0 3px rgba(var(--atlas-primary-rgb), 0.2);
1916
+ }
1917
+
1918
+ .atlas-date-picker-trigger-icon {
1919
+ width: 16px;
1920
+ height: 16px;
1921
+ color: var(--atlas-gray-400);
1922
+ }
1923
+
1924
+ .atlas-date-picker-content {
1925
+ position: absolute;
1926
+ top: 100%;
1927
+ left: 0;
1928
+ margin-top: 4px;
1929
+ padding: 16px;
1930
+ background: white;
1931
+ border: 1px solid var(--atlas-gray-200);
1932
+ border-radius: 8px;
1933
+ box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15);
1934
+ z-index: 1000;
1935
+ animation: atlas-dropdown-in var(--atlas-duration-fast) var(--atlas-ease-spring) forwards;
1936
+ }
1937
+
1938
+ .atlas-date-picker-header {
1939
+ display: flex;
1940
+ align-items: center;
1941
+ justify-content: space-between;
1942
+ margin-bottom: 16px;
1943
+ }
1944
+
1945
+ .atlas-date-picker-nav {
1946
+ display: flex;
1947
+ align-items: center;
1948
+ justify-content: center;
1949
+ width: 28px;
1950
+ height: 28px;
1951
+ background: transparent;
1952
+ border: none;
1953
+ border-radius: 4px;
1954
+ cursor: pointer;
1955
+ transition: background-color var(--atlas-duration-fast) var(--atlas-ease-standard);
1956
+ }
1957
+
1958
+ .atlas-date-picker-nav:hover {
1959
+ background: var(--atlas-gray-100);
1960
+ }
1961
+
1962
+ .atlas-date-picker-title {
1963
+ font-weight: 600;
1964
+ }
1965
+
1966
+ .atlas-date-picker-grid {
1967
+ display: grid;
1968
+ grid-template-columns: repeat(7, 1fr);
1969
+ gap: 2px;
1970
+ }
1971
+
1972
+ .atlas-date-picker-weekday {
1973
+ display: flex;
1974
+ align-items: center;
1975
+ justify-content: center;
1976
+ height: 32px;
1977
+ font-size: 0.75rem;
1978
+ font-weight: 600;
1979
+ color: var(--atlas-gray-400);
1980
+ }
1981
+
1982
+ .atlas-date-picker-day {
1983
+ display: flex;
1984
+ align-items: center;
1985
+ justify-content: center;
1986
+ width: 32px;
1987
+ height: 32px;
1988
+ background: transparent;
1989
+ border: none;
1990
+ border-radius: 6px;
1991
+ font-size: 0.875rem;
1992
+ cursor: pointer;
1993
+ transition: all var(--atlas-duration-fast) var(--atlas-ease-standard);
1994
+ }
1995
+
1996
+ .atlas-date-picker-day:hover {
1997
+ background: var(--atlas-gray-100);
1998
+ }
1999
+
2000
+ .atlas-date-picker-day[data-selected] {
2001
+ background: var(--atlas-primary);
2002
+ color: white;
2003
+ }
2004
+
2005
+ .atlas-date-picker-day[data-today] {
2006
+ font-weight: 600;
2007
+ border: 1px solid var(--atlas-primary);
2008
+ }
2009
+
2010
+ .atlas-date-picker-day[data-outside] {
2011
+ color: var(--atlas-gray-400);
2012
+ }
2013
+
2014
+ .atlas-date-picker-day[data-disabled] {
2015
+ opacity: 0.3;
2016
+ pointer-events: none;
2017
+ }
2018
+
2019
+ .atlas-date-picker-day[data-range-start],
2020
+ .atlas-date-picker-day[data-range-end] {
2021
+ background: var(--atlas-primary);
2022
+ color: white;
2023
+ }
2024
+
2025
+ .atlas-date-picker-day[data-in-range] {
2026
+ background: rgba(var(--atlas-primary-rgb), 0.1);
2027
+ border-radius: 0;
2028
+ }
2029
+
2030
+ /* ==========================================================================
2031
+ Toggle Group Component
2032
+ ========================================================================== */
2033
+
2034
+ .atlas-toggle-group {
2035
+ display: inline-flex;
2036
+ border: 1px solid var(--atlas-gray-200);
2037
+ border-radius: 6px;
2038
+ overflow: hidden;
2039
+ }
2040
+
2041
+ .atlas-toggle-group[data-orientation='vertical'] {
2042
+ flex-direction: column;
2043
+ }
2044
+
2045
+ .atlas-toggle-group-item {
2046
+ display: flex;
2047
+ align-items: center;
2048
+ justify-content: center;
2049
+ gap: 8px;
2050
+ padding: 8px 16px;
2051
+ background: transparent;
2052
+ border: none;
2053
+ font-size: 0.875rem;
2054
+ font-weight: 500;
2055
+ cursor: pointer;
2056
+ transition: all var(--atlas-duration-fast) var(--atlas-ease-standard);
2057
+ }
2058
+
2059
+ .atlas-toggle-group-item:not(:last-child) {
2060
+ border-right: 1px solid var(--atlas-gray-200);
2061
+ }
2062
+
2063
+ .atlas-toggle-group[data-orientation='vertical'] .atlas-toggle-group-item:not(:last-child) {
2064
+ border-right: none;
2065
+ border-bottom: 1px solid var(--atlas-gray-200);
2066
+ }
2067
+
2068
+ .atlas-toggle-group-item:hover {
2069
+ background: var(--atlas-gray-100);
2070
+ }
2071
+
2072
+ .atlas-toggle-group-item[data-state='on'] {
2073
+ background: var(--atlas-primary);
2074
+ color: white;
2075
+ }
2076
+
2077
+ .atlas-toggle-group-item[data-disabled] {
2078
+ opacity: 0.5;
2079
+ pointer-events: none;
2080
+ }
2081
+
2082
+ .atlas-toggle-group[data-variant='outline'] {
2083
+ border: none;
2084
+ gap: 4px;
2085
+ }
2086
+
2087
+ .atlas-toggle-group[data-variant='outline'] .atlas-toggle-group-item {
2088
+ border: 1px solid var(--atlas-gray-200);
2089
+ border-radius: 6px;
2090
+ }
2091
+
2092
+ .atlas-toggle-group[data-variant='outline'] .atlas-toggle-group-item:not(:last-child) {
2093
+ border-right: 1px solid var(--atlas-gray-200);
2094
+ }