@mirror-physics/fractal-ui 0.2.0-next.2 → 0.2.0-next.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.css CHANGED
@@ -600,7 +600,7 @@
600
600
  .fractal-datatable-surface {
601
601
  overflow: hidden;
602
602
  border: 1px solid var(--border-subtle);
603
- border-radius: var(--radius-xl, 12px);
603
+ border-radius: var(--radius-md, 6px);
604
604
  background: var(--bg-canvas);
605
605
  }
606
606
  .fractal-datatable-header {
@@ -778,7 +778,7 @@
778
778
  }
779
779
  .fractal-dropdown-option:hover,
780
780
  .fractal-dropdown-option:focus-visible {
781
- background: var(--hover-canvas, var(--bg-surface-2));
781
+ background: var(--hover-surface, var(--bg-surface-2));
782
782
  outline: none;
783
783
  }
784
784
  .fractal-dropdown-separator {
@@ -874,6 +874,35 @@
874
874
  color: var(--accent-default);
875
875
  }
876
876
 
877
+ /* src/components/Checkbox/Checkbox.css */
878
+ .fractal-checkbox {
879
+ display: grid;
880
+ width: 28px;
881
+ height: 28px;
882
+ place-items: center;
883
+ padding: 0;
884
+ border: 0;
885
+ border-radius: var(--radius-sm);
886
+ background: transparent;
887
+ color: var(--fg-secondary);
888
+ cursor: pointer;
889
+ }
890
+ .fractal-checkbox:hover:not(:disabled) {
891
+ background: var(--hover-canvas);
892
+ color: var(--fg-primary);
893
+ }
894
+ .fractal-checkbox--checked {
895
+ color: var(--fg-primary);
896
+ }
897
+ .fractal-checkbox:focus-visible {
898
+ outline: 2px solid var(--border-focus);
899
+ outline-offset: 2px;
900
+ }
901
+ .fractal-checkbox:disabled {
902
+ cursor: not-allowed;
903
+ color: var(--fg-disabled);
904
+ }
905
+
877
906
  /* src/components/SortableTable/SortableTable.css */
878
907
  .fractal-sortable-table {
879
908
  font-family: var(--font-sans);
@@ -882,9 +911,14 @@
882
911
  .fractal-sortable-table-surface {
883
912
  overflow: hidden;
884
913
  border: 1px solid var(--border-subtle);
885
- border-radius: var(--radius-xl, 12px);
914
+ border-radius: var(--radius-md, 6px);
886
915
  background: var(--bg-canvas);
887
916
  }
917
+ .fractal-sortable-table--embedded .fractal-sortable-table-surface {
918
+ border: 0;
919
+ border-top: 1px solid var(--border-subtle);
920
+ border-radius: 0;
921
+ }
888
922
  .fractal-sortable-table-header {
889
923
  display: flex;
890
924
  align-items: center;
@@ -977,6 +1011,53 @@
977
1011
  .fractal-sortable-table-row:hover {
978
1012
  background: var(--bg-surface-1);
979
1013
  }
1014
+ .fractal-sortable-table-row--interactive {
1015
+ cursor: pointer;
1016
+ }
1017
+ .fractal-sortable-table-td--row-action {
1018
+ position: relative;
1019
+ }
1020
+ .fractal-sortable-table-row-action {
1021
+ position: absolute;
1022
+ z-index: 1;
1023
+ top: 0;
1024
+ right: -1px;
1025
+ bottom: 0;
1026
+ display: flex;
1027
+ width: min(280px, calc(200% + 32px));
1028
+ align-items: center;
1029
+ justify-content: flex-end;
1030
+ padding-right: var(--space-4);
1031
+ background:
1032
+ linear-gradient(
1033
+ 90deg,
1034
+ transparent 0%,
1035
+ color-mix(in srgb, var(--hover-surface) 72%, transparent) 52%,
1036
+ var(--hover-surface) 100%);
1037
+ opacity: 0;
1038
+ pointer-events: none;
1039
+ transition: opacity 150ms ease-out;
1040
+ }
1041
+ .fractal-sortable-table-row--interactive:hover .fractal-sortable-table-row-action,
1042
+ .fractal-sortable-table-row--interactive:focus-visible .fractal-sortable-table-row-action {
1043
+ opacity: 1;
1044
+ }
1045
+ .fractal-sortable-table-row-action__icon {
1046
+ display: grid;
1047
+ width: 32px;
1048
+ height: 32px;
1049
+ place-items: center;
1050
+ border: 1px solid var(--border-default);
1051
+ border-radius: var(--radius-full);
1052
+ background: var(--bg-canvas);
1053
+ color: var(--fg-primary);
1054
+ }
1055
+ .fractal-sortable-table-row--interactive:focus-visible {
1056
+ position: relative;
1057
+ z-index: 1;
1058
+ outline: 2px solid var(--border-focus);
1059
+ outline-offset: -2px;
1060
+ }
980
1061
  .fractal-sortable-table-row + .fractal-sortable-table-row .fractal-sortable-table-td {
981
1062
  border-top: 1px solid var(--border-subtle);
982
1063
  }
@@ -996,14 +1077,14 @@
996
1077
  .fractal-sortable-table-td + .fractal-sortable-table-td {
997
1078
  border-left: 1px solid var(--border-subtle);
998
1079
  }
999
- .fractal-sortable-table--sm .fractal-sortable-table-th,
1080
+ .fractal-sortable-table--sm .fractal-sortable-table-th:not(.fractal-sortable-table-th--sortable),
1000
1081
  .fractal-sortable-table--sm .fractal-sortable-table-sort-button {
1001
1082
  padding: 8px 12px;
1002
1083
  }
1003
1084
  .fractal-sortable-table--sm .fractal-sortable-table-td {
1004
1085
  padding: 10px 12px;
1005
1086
  }
1006
- .fractal-sortable-table--lg .fractal-sortable-table-th,
1087
+ .fractal-sortable-table--lg .fractal-sortable-table-th:not(.fractal-sortable-table-th--sortable),
1007
1088
  .fractal-sortable-table--lg .fractal-sortable-table-sort-button {
1008
1089
  padding: 18px 24px;
1009
1090
  }
@@ -1017,17 +1098,38 @@
1017
1098
  font-size: 0.875rem;
1018
1099
  }
1019
1100
  .fractal-tabs-list {
1101
+ position: relative;
1020
1102
  display: flex;
1021
1103
  gap: 24px;
1022
1104
  border-bottom: 1px solid var(--border-subtle);
1023
- margin-bottom: 16px;
1105
+ margin-bottom: var(--space-6);
1106
+ }
1107
+ .fractal-tabs-list::after {
1108
+ position: absolute;
1109
+ bottom: -1px;
1110
+ left: 0;
1111
+ width: var(--fractal-tabs-indicator-width, 0px);
1112
+ height: 2px;
1113
+ background: var(--accent-default);
1114
+ content: "";
1115
+ opacity: 0;
1116
+ transform: translateX(var(--fractal-tabs-indicator-offset, 0px));
1117
+ transition:
1118
+ transform 180ms var(--ease-standard, ease),
1119
+ width 180ms var(--ease-standard, ease),
1120
+ opacity 100ms ease;
1121
+ }
1122
+ .fractal-tabs-list[data-indicator-ready=true]::after {
1123
+ opacity: 1;
1024
1124
  }
1025
1125
  .fractal-tabs-trigger {
1026
1126
  position: relative;
1027
1127
  display: inline-flex;
1128
+ min-width: 88px;
1028
1129
  align-items: center;
1130
+ justify-content: center;
1029
1131
  gap: 6px;
1030
- padding: 10px 0;
1132
+ padding: 10px 1rem;
1031
1133
  background: none;
1032
1134
  border: 0;
1033
1135
  font: inherit;
@@ -1035,8 +1137,7 @@
1035
1137
  font-weight: 400;
1036
1138
  color: var(--fg-secondary);
1037
1139
  cursor: pointer;
1038
- transition: color 0.15s ease, box-shadow 0.15s ease;
1039
- box-shadow: inset 0 -1px 0 transparent;
1140
+ transition: color 0.15s ease;
1040
1141
  margin-bottom: -1px;
1041
1142
  }
1042
1143
  .fractal-tabs-trigger:hover:not(.fractal-tabs-trigger--active):not(.fractal-tabs-trigger--disabled) {
@@ -1050,7 +1151,6 @@
1050
1151
  .fractal-tabs-trigger--active {
1051
1152
  color: var(--accent-default);
1052
1153
  font-weight: 500;
1053
- box-shadow: inset 0 -1px 0 var(--accent-default);
1054
1154
  }
1055
1155
  .fractal-tabs-trigger--disabled {
1056
1156
  color: var(--fg-disabled, var(--fg-secondary));
@@ -1064,6 +1164,66 @@
1064
1164
  .fractal-tabs-panel[hidden] {
1065
1165
  display: none;
1066
1166
  }
1167
+ @media (prefers-reduced-motion: reduce) {
1168
+ .fractal-tabs-list::after {
1169
+ transition: none;
1170
+ }
1171
+ }
1172
+
1173
+ /* src/components/ContentSwitcher/ContentSwitcher.css */
1174
+ .fractal-content-switcher {
1175
+ display: inline-flex;
1176
+ gap: 2px;
1177
+ padding: 2px;
1178
+ border: 1px solid var(--border-strong);
1179
+ border-radius: var(--radius-md);
1180
+ background: var(--bg-inverse);
1181
+ font-family: var(--font-sans);
1182
+ }
1183
+ .fractal-content-switcher--full-width {
1184
+ display: flex;
1185
+ width: 100%;
1186
+ }
1187
+ .fractal-content-switcher__item {
1188
+ min-width: 128px;
1189
+ min-height: 40px;
1190
+ padding: 0 var(--space-4);
1191
+ border: 0;
1192
+ background: transparent;
1193
+ color: var(--fg-inverse-secondary);
1194
+ cursor: pointer;
1195
+ font: inherit;
1196
+ font-size: 0.875rem;
1197
+ line-height: 1.25;
1198
+ text-align: center;
1199
+ transition:
1200
+ background-color var(--duration-fast) var(--ease-out),
1201
+ color var(--duration-fast) var(--ease-out),
1202
+ border-radius var(--duration-fast) var(--ease-out);
1203
+ }
1204
+ .fractal-content-switcher--full-width .fractal-content-switcher__item {
1205
+ flex: 1;
1206
+ }
1207
+ .fractal-content-switcher__item:hover:not(:disabled):not(.fractal-content-switcher__item--active) {
1208
+ background: var(--bg-inverse-subtle);
1209
+ color: var(--fg-inverse);
1210
+ }
1211
+ .fractal-content-switcher__item--active {
1212
+ border-radius: var(--radius-sm);
1213
+ background: var(--bg-canvas);
1214
+ color: var(--fg-primary);
1215
+ }
1216
+ .fractal-content-switcher__item:focus-visible {
1217
+ position: relative;
1218
+ z-index: 1;
1219
+ outline: 2px solid var(--border-focus);
1220
+ outline-offset: -2px;
1221
+ }
1222
+ .fractal-content-switcher__item:disabled {
1223
+ cursor: not-allowed;
1224
+ color: var(--fg-inverse-secondary);
1225
+ opacity: 0.5;
1226
+ }
1067
1227
 
1068
1228
  /* src/components/Disclosure/Disclosure.css */
1069
1229
  .fractal-disclosure {
@@ -1095,6 +1255,17 @@
1095
1255
  .fractal-disclosure-trigger:hover {
1096
1256
  background: var(--bg-surface-1);
1097
1257
  }
1258
+ .fractal-disclosure--disabled .fractal-disclosure-trigger {
1259
+ color: var(--fg-tertiary);
1260
+ cursor: not-allowed;
1261
+ }
1262
+ .fractal-disclosure--disabled .fractal-disclosure-trigger:hover {
1263
+ background: transparent;
1264
+ }
1265
+ .fractal-disclosure--disabled .fractal-disclosure-icon,
1266
+ .fractal-disclosure--disabled .fractal-disclosure-meta {
1267
+ color: var(--fg-tertiary);
1268
+ }
1098
1269
  .fractal-disclosure-trigger:focus-visible {
1099
1270
  outline: 2px solid var(--border-focus);
1100
1271
  outline-offset: -2px;
@@ -1137,6 +1308,49 @@
1137
1308
  padding: 4px 0 12px 24px;
1138
1309
  }
1139
1310
 
1311
+ /* src/components/LatticeLoader/LatticeLoader.css */
1312
+ .fractal-lattice-loader {
1313
+ display: flex;
1314
+ align-items: center;
1315
+ gap: 6px;
1316
+ width: 100%;
1317
+ height: 12px;
1318
+ overflow: hidden;
1319
+ color: var(--fg-secondary);
1320
+ }
1321
+ .fractal-lattice-loader__cell {
1322
+ position: relative;
1323
+ width: 12px;
1324
+ flex: 0 0 12px;
1325
+ aspect-ratio: 1;
1326
+ background: currentColor;
1327
+ -webkit-mask: url("./lattice-FAYE5KWW.svg") center / contain no-repeat;
1328
+ mask: url("./lattice-FAYE5KWW.svg") center / contain no-repeat;
1329
+ opacity: 0.08;
1330
+ animation: fractal-lattice-wave 3.2s ease-in-out infinite;
1331
+ animation-delay: calc((var(--fractal-lattice-index) * 40ms) - 3.2s);
1332
+ }
1333
+ @keyframes fractal-lattice-wave {
1334
+ 0%, 58%, 100% {
1335
+ opacity: 0.08;
1336
+ }
1337
+ 18% {
1338
+ opacity: 0.28;
1339
+ }
1340
+ 30% {
1341
+ opacity: 1;
1342
+ }
1343
+ 42% {
1344
+ opacity: 0.28;
1345
+ }
1346
+ }
1347
+ @media (prefers-reduced-motion: reduce) {
1348
+ .fractal-lattice-loader__cell {
1349
+ opacity: 0.35;
1350
+ animation: none;
1351
+ }
1352
+ }
1353
+
1140
1354
  /* src/components/Sidebar/Sidebar.css */
1141
1355
  .fractal-sidebar {
1142
1356
  --fractal-sidebar-width: 232px;
@@ -1190,7 +1404,7 @@
1190
1404
  flex-direction: column;
1191
1405
  gap: 0;
1192
1406
  overflow-y: auto;
1193
- padding: var(--space-3) var(--space-2);
1407
+ padding: var(--space-2);
1194
1408
  }
1195
1409
  .fractal-sidebar__section {
1196
1410
  display: flex;
@@ -1199,8 +1413,8 @@
1199
1413
  }
1200
1414
  .fractal-sidebar__section + .fractal-sidebar__section {
1201
1415
  position: relative;
1202
- margin-top: var(--space-4);
1203
- padding-top: calc(var(--space-4) + 1px);
1416
+ margin-top: var(--space-2);
1417
+ padding-top: var(--space-2);
1204
1418
  }
1205
1419
  .fractal-sidebar__section + .fractal-sidebar__section::before {
1206
1420
  position: absolute;
@@ -1280,4 +1494,371 @@
1280
1494
  transition: none;
1281
1495
  }
1282
1496
  }
1497
+
1498
+ /* src/components/SidePanel/SidePanel.css */
1499
+ .fractal-side-panel-overlay {
1500
+ position: fixed;
1501
+ inset: 0;
1502
+ z-index: 9998;
1503
+ display: flex;
1504
+ justify-content: flex-end;
1505
+ background: color-mix(in srgb, var(--fg-primary) 16%, transparent);
1506
+ animation: fractal-side-panel-overlay-in 180ms ease-out both;
1507
+ }
1508
+ .fractal-side-panel {
1509
+ display: flex;
1510
+ width: min(100vw, 540px);
1511
+ height: 100%;
1512
+ flex-direction: column;
1513
+ border-left: 1px solid var(--border-subtle);
1514
+ background: var(--bg-canvas);
1515
+ box-shadow: var(--shadow-lg);
1516
+ color: var(--fg-primary);
1517
+ font-family: var(--font-sans);
1518
+ animation: fractal-side-panel-in 180ms cubic-bezier(0.16, 1, 0.3, 1) both;
1519
+ }
1520
+ .fractal-side-panel--sm {
1521
+ width: min(100vw, 420px);
1522
+ }
1523
+ .fractal-side-panel--md {
1524
+ width: min(100vw, 540px);
1525
+ }
1526
+ .fractal-side-panel--lg {
1527
+ width: min(100vw, 680px);
1528
+ }
1529
+ .fractal-side-panel--xl {
1530
+ width: min(100vw, 960px);
1531
+ }
1532
+ .fractal-side-panel__header {
1533
+ display: flex;
1534
+ min-height: 72px;
1535
+ align-items: flex-start;
1536
+ justify-content: space-between;
1537
+ gap: var(--space-4);
1538
+ padding: var(--space-5) var(--space-6) var(--space-4);
1539
+ }
1540
+ .fractal-side-panel__heading {
1541
+ min-width: 0;
1542
+ }
1543
+ .fractal-side-panel__title {
1544
+ margin: 0;
1545
+ font-size: 1rem;
1546
+ font-weight: 500;
1547
+ line-height: 1.4;
1548
+ }
1549
+ .fractal-side-panel__description {
1550
+ margin: var(--space-1) 0 0;
1551
+ color: var(--fg-secondary);
1552
+ font-size: 0.875rem;
1553
+ line-height: 1.4;
1554
+ }
1555
+ .fractal-side-panel__close {
1556
+ display: grid;
1557
+ width: 32px;
1558
+ height: 32px;
1559
+ flex: 0 0 auto;
1560
+ place-items: center;
1561
+ border: 0;
1562
+ border-radius: var(--radius-md);
1563
+ background: transparent;
1564
+ color: var(--fg-secondary);
1565
+ cursor: pointer;
1566
+ }
1567
+ .fractal-side-panel__close:hover {
1568
+ background: var(--hover-surface);
1569
+ color: var(--fg-primary);
1570
+ }
1571
+ .fractal-side-panel__close:focus-visible {
1572
+ outline: 2px solid var(--border-focus);
1573
+ outline-offset: 2px;
1574
+ }
1575
+ .fractal-side-panel__body {
1576
+ min-height: 0;
1577
+ flex: 1;
1578
+ overflow: auto;
1579
+ padding: var(--space-2) var(--space-6) var(--space-6);
1580
+ }
1581
+ .fractal-side-panel__footer {
1582
+ display: flex;
1583
+ justify-content: flex-end;
1584
+ gap: var(--space-2);
1585
+ padding: var(--space-4) var(--space-6);
1586
+ border-top: 1px solid var(--border-subtle);
1587
+ }
1588
+ @media (max-width: 640px) {
1589
+ .fractal-side-panel {
1590
+ width: 100%;
1591
+ }
1592
+ .fractal-side-panel__header {
1593
+ padding: var(--space-4) var(--space-5) var(--space-3);
1594
+ }
1595
+ .fractal-side-panel__body {
1596
+ padding: var(--space-2) var(--space-5) var(--space-5);
1597
+ }
1598
+ .fractal-side-panel__footer {
1599
+ padding: var(--space-3) var(--space-5);
1600
+ }
1601
+ }
1602
+ @keyframes fractal-side-panel-overlay-in {
1603
+ from {
1604
+ opacity: 0;
1605
+ }
1606
+ to {
1607
+ opacity: 1;
1608
+ }
1609
+ }
1610
+ @keyframes fractal-side-panel-in {
1611
+ from {
1612
+ transform: translateX(100%);
1613
+ }
1614
+ to {
1615
+ transform: translateX(0);
1616
+ }
1617
+ }
1618
+ @media (prefers-reduced-motion: reduce) {
1619
+ .fractal-side-panel-overlay,
1620
+ .fractal-side-panel {
1621
+ animation-duration: 0.01ms;
1622
+ }
1623
+ }
1624
+
1625
+ /* src/components/Textarea/Textarea.css */
1626
+ .fractal-textarea {
1627
+ display: block;
1628
+ width: 100%;
1629
+ min-height: 120px;
1630
+ resize: vertical;
1631
+ border: 1px solid var(--border-default);
1632
+ border-radius: var(--radius-md);
1633
+ background: var(--bg-canvas);
1634
+ padding: var(--space-3);
1635
+ color: var(--fg-primary);
1636
+ font: 0.8125rem/1.55 var(--font-mono);
1637
+ }
1638
+ .fractal-textarea::placeholder {
1639
+ color: var(--fg-placeholder);
1640
+ }
1641
+ .fractal-textarea:hover {
1642
+ border-color: var(--fg-tertiary);
1643
+ }
1644
+ .fractal-textarea:focus-visible {
1645
+ outline: none;
1646
+ border-color: var(--border-focus);
1647
+ box-shadow: 0 0 0 2px var(--accent-surface);
1648
+ }
1649
+ .fractal-textarea:disabled {
1650
+ cursor: not-allowed;
1651
+ opacity: 0.5;
1652
+ background: var(--bg-surface-1);
1653
+ }
1654
+
1655
+ /* src/components/TextButton/TextButton.css */
1656
+ .fractal-text-button {
1657
+ display: inline-flex;
1658
+ align-items: center;
1659
+ gap: var(--space-1);
1660
+ border: 0;
1661
+ background: transparent;
1662
+ cursor: pointer;
1663
+ font-family: var(--font-sans);
1664
+ font-weight: 500;
1665
+ line-height: 1.4;
1666
+ padding: 0;
1667
+ text-align: left;
1668
+ transition: color 120ms ease;
1669
+ }
1670
+ .fractal-text-button--primary {
1671
+ color: var(--fg-primary);
1672
+ }
1673
+ .fractal-text-button--primary:hover:not(:disabled) {
1674
+ color: var(--fg-secondary);
1675
+ }
1676
+ .fractal-text-button--secondary {
1677
+ color: var(--fg-secondary);
1678
+ }
1679
+ .fractal-text-button--secondary:hover:not(:disabled) {
1680
+ color: var(--fg-primary);
1681
+ }
1682
+ .fractal-text-button:focus-visible {
1683
+ outline: 2px solid var(--border-focus);
1684
+ outline-offset: 3px;
1685
+ border-radius: var(--radius-sm);
1686
+ }
1687
+ .fractal-text-button:disabled {
1688
+ cursor: not-allowed;
1689
+ opacity: 0.5;
1690
+ }
1691
+ .fractal-text-button--sm {
1692
+ font-size: 0.8125rem;
1693
+ }
1694
+ .fractal-text-button--md {
1695
+ font-size: 0.875rem;
1696
+ }
1697
+ .fractal-text-button__icon {
1698
+ display: inline-grid;
1699
+ place-items: center;
1700
+ }
1701
+
1702
+ /* src/components/FileDropzone/FileDropzone.css */
1703
+ .fractal-file-dropzone {
1704
+ display: grid;
1705
+ gap: var(--space-2);
1706
+ color: var(--fg-primary);
1707
+ font-family: var(--font-sans);
1708
+ }
1709
+ .fractal-file-dropzone__input {
1710
+ display: none;
1711
+ }
1712
+ .fractal-file-dropzone__target {
1713
+ display: flex;
1714
+ width: 100%;
1715
+ min-height: 92px;
1716
+ align-items: center;
1717
+ justify-content: center;
1718
+ gap: var(--space-3);
1719
+ border: 1px dashed var(--border-default);
1720
+ border-radius: var(--radius-md);
1721
+ background: var(--bg-canvas);
1722
+ color: var(--fg-secondary);
1723
+ cursor: pointer;
1724
+ padding: var(--space-4);
1725
+ text-align: left;
1726
+ }
1727
+ .fractal-file-dropzone__target:hover,
1728
+ .fractal-file-dropzone__target[data-dragging] {
1729
+ border-color: var(--border-focus);
1730
+ background: var(--hover-surface);
1731
+ color: var(--fg-primary);
1732
+ }
1733
+ .fractal-file-dropzone__target:focus-visible {
1734
+ outline: 2px solid var(--border-focus);
1735
+ outline-offset: 2px;
1736
+ }
1737
+ .fractal-file-dropzone__target:disabled {
1738
+ cursor: not-allowed;
1739
+ opacity: 0.5;
1740
+ }
1741
+ .fractal-file-dropzone__copy {
1742
+ display: grid;
1743
+ gap: var(--space-1);
1744
+ }
1745
+ .fractal-file-dropzone__title {
1746
+ font-size: 0.875rem;
1747
+ font-weight: 500;
1748
+ line-height: 1.4;
1749
+ }
1750
+ .fractal-file-dropzone__description {
1751
+ color: var(--fg-secondary);
1752
+ font-size: 0.8125rem;
1753
+ line-height: 1.4;
1754
+ }
1755
+ .fractal-file-dropzone__files {
1756
+ display: grid;
1757
+ gap: var(--space-1);
1758
+ margin: 0;
1759
+ padding: 0;
1760
+ list-style: none;
1761
+ }
1762
+ .fractal-file-dropzone__file {
1763
+ display: flex;
1764
+ min-width: 0;
1765
+ align-items: center;
1766
+ gap: var(--space-2);
1767
+ padding: var(--space-2) var(--space-3);
1768
+ border: 1px solid var(--border-subtle);
1769
+ border-radius: var(--radius-md);
1770
+ background: var(--bg-canvas);
1771
+ font-size: 0.8125rem;
1772
+ line-height: 1.4;
1773
+ }
1774
+ .fractal-file-dropzone__file-name {
1775
+ min-width: 0;
1776
+ flex: 1;
1777
+ overflow: hidden;
1778
+ text-overflow: ellipsis;
1779
+ white-space: nowrap;
1780
+ }
1781
+ .fractal-file-dropzone__file-meta {
1782
+ color: var(--fg-secondary);
1783
+ white-space: nowrap;
1784
+ }
1785
+ .fractal-file-dropzone__remove {
1786
+ display: grid;
1787
+ width: 24px;
1788
+ height: 24px;
1789
+ flex: 0 0 auto;
1790
+ place-items: center;
1791
+ border: 0;
1792
+ border-radius: var(--radius-sm);
1793
+ background: transparent;
1794
+ color: var(--fg-secondary);
1795
+ cursor: pointer;
1796
+ }
1797
+ .fractal-file-dropzone__remove:hover {
1798
+ background: var(--hover-surface);
1799
+ color: var(--fg-primary);
1800
+ }
1801
+ .fractal-file-dropzone__remove:focus-visible {
1802
+ outline: 2px solid var(--border-focus);
1803
+ outline-offset: 1px;
1804
+ }
1805
+ .fractal-file-dropzone__remove:disabled {
1806
+ cursor: not-allowed;
1807
+ opacity: 0.5;
1808
+ }
1809
+
1810
+ /* src/components/Pagination/Pagination.css */
1811
+ .fractal-pagination {
1812
+ display: flex;
1813
+ align-items: center;
1814
+ justify-content: space-between;
1815
+ gap: var(--space-3);
1816
+ color: var(--fg-secondary);
1817
+ font-family: var(--font-sans);
1818
+ font-size: 0.8125rem;
1819
+ line-height: 1.4;
1820
+ }
1821
+ .fractal-pagination__controls {
1822
+ display: flex;
1823
+ align-items: center;
1824
+ gap: var(--space-2);
1825
+ }
1826
+ .fractal-pagination__page-size .fractal-dropdown-trigger {
1827
+ padding: 4px 0;
1828
+ border: 0;
1829
+ background: transparent;
1830
+ color: var(--fg-secondary);
1831
+ }
1832
+ .fractal-pagination__page-size .fractal-dropdown-trigger:hover {
1833
+ background: transparent;
1834
+ color: var(--fg-primary);
1835
+ }
1836
+ .fractal-pagination__button {
1837
+ display: grid;
1838
+ width: 28px;
1839
+ height: 28px;
1840
+ place-items: center;
1841
+ border: 1px solid var(--border-default);
1842
+ border-radius: var(--radius-sm);
1843
+ background: var(--bg-canvas);
1844
+ color: var(--fg-secondary);
1845
+ cursor: pointer;
1846
+ }
1847
+ .fractal-pagination__button:hover:not(:disabled) {
1848
+ background: var(--hover-surface);
1849
+ color: var(--fg-primary);
1850
+ }
1851
+ .fractal-pagination__button:focus-visible {
1852
+ outline: 2px solid var(--border-focus);
1853
+ outline-offset: 2px;
1854
+ }
1855
+ .fractal-pagination__button:disabled {
1856
+ cursor: not-allowed;
1857
+ opacity: 0.45;
1858
+ }
1859
+ .fractal-pagination__page {
1860
+ min-width: 44px;
1861
+ text-align: center;
1862
+ white-space: nowrap;
1863
+ }
1283
1864
  /*# sourceMappingURL=index.css.map */