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

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,40 @@
1017
1098
  font-size: 0.875rem;
1018
1099
  }
1019
1100
  .fractal-tabs-list {
1101
+ position: relative;
1020
1102
  display: flex;
1021
1103
  gap: 24px;
1104
+ margin-bottom: var(--space-6);
1105
+ }
1106
+ .fractal-tabs--divider .fractal-tabs-list {
1022
1107
  border-bottom: 1px solid var(--border-subtle);
1023
- margin-bottom: 16px;
1108
+ }
1109
+ .fractal-tabs-list::after {
1110
+ position: absolute;
1111
+ bottom: -1px;
1112
+ left: 0;
1113
+ width: var(--fractal-tabs-indicator-width, 0px);
1114
+ height: 2px;
1115
+ background: var(--accent-default);
1116
+ content: "";
1117
+ opacity: 0;
1118
+ transform: translateX(var(--fractal-tabs-indicator-offset, 0px));
1119
+ transition:
1120
+ transform 180ms var(--ease-standard, ease),
1121
+ width 180ms var(--ease-standard, ease),
1122
+ opacity 100ms ease;
1123
+ }
1124
+ .fractal-tabs-list[data-indicator-ready=true]::after {
1125
+ opacity: 1;
1024
1126
  }
1025
1127
  .fractal-tabs-trigger {
1026
1128
  position: relative;
1027
1129
  display: inline-flex;
1130
+ min-width: 88px;
1028
1131
  align-items: center;
1132
+ justify-content: center;
1029
1133
  gap: 6px;
1030
- padding: 10px 0;
1134
+ padding: 10px 1rem;
1031
1135
  background: none;
1032
1136
  border: 0;
1033
1137
  font: inherit;
@@ -1035,8 +1139,7 @@
1035
1139
  font-weight: 400;
1036
1140
  color: var(--fg-secondary);
1037
1141
  cursor: pointer;
1038
- transition: color 0.15s ease, box-shadow 0.15s ease;
1039
- box-shadow: inset 0 -1px 0 transparent;
1142
+ transition: color 0.15s ease;
1040
1143
  margin-bottom: -1px;
1041
1144
  }
1042
1145
  .fractal-tabs-trigger:hover:not(.fractal-tabs-trigger--active):not(.fractal-tabs-trigger--disabled) {
@@ -1050,7 +1153,6 @@
1050
1153
  .fractal-tabs-trigger--active {
1051
1154
  color: var(--accent-default);
1052
1155
  font-weight: 500;
1053
- box-shadow: inset 0 -1px 0 var(--accent-default);
1054
1156
  }
1055
1157
  .fractal-tabs-trigger--disabled {
1056
1158
  color: var(--fg-disabled, var(--fg-secondary));
@@ -1064,6 +1166,66 @@
1064
1166
  .fractal-tabs-panel[hidden] {
1065
1167
  display: none;
1066
1168
  }
1169
+ @media (prefers-reduced-motion: reduce) {
1170
+ .fractal-tabs-list::after {
1171
+ transition: none;
1172
+ }
1173
+ }
1174
+
1175
+ /* src/components/ContentSwitcher/ContentSwitcher.css */
1176
+ .fractal-content-switcher {
1177
+ display: inline-flex;
1178
+ gap: 2px;
1179
+ padding: 2px;
1180
+ border: 1px solid var(--border-strong);
1181
+ border-radius: var(--radius-md);
1182
+ background: var(--bg-inverse);
1183
+ font-family: var(--font-sans);
1184
+ }
1185
+ .fractal-content-switcher--full-width {
1186
+ display: flex;
1187
+ width: 100%;
1188
+ }
1189
+ .fractal-content-switcher__item {
1190
+ min-width: 128px;
1191
+ min-height: 40px;
1192
+ padding: 0 var(--space-4);
1193
+ border: 0;
1194
+ background: transparent;
1195
+ color: var(--fg-inverse-secondary);
1196
+ cursor: pointer;
1197
+ font: inherit;
1198
+ font-size: 0.875rem;
1199
+ line-height: 1.25;
1200
+ text-align: center;
1201
+ transition:
1202
+ background-color var(--duration-fast) var(--ease-out),
1203
+ color var(--duration-fast) var(--ease-out),
1204
+ border-radius var(--duration-fast) var(--ease-out);
1205
+ }
1206
+ .fractal-content-switcher--full-width .fractal-content-switcher__item {
1207
+ flex: 1;
1208
+ }
1209
+ .fractal-content-switcher__item:hover:not(:disabled):not(.fractal-content-switcher__item--active) {
1210
+ background: var(--bg-inverse-subtle);
1211
+ color: var(--fg-inverse);
1212
+ }
1213
+ .fractal-content-switcher__item--active {
1214
+ border-radius: var(--radius-sm);
1215
+ background: var(--bg-canvas);
1216
+ color: var(--fg-primary);
1217
+ }
1218
+ .fractal-content-switcher__item:focus-visible {
1219
+ position: relative;
1220
+ z-index: 1;
1221
+ outline: 2px solid var(--border-focus);
1222
+ outline-offset: -2px;
1223
+ }
1224
+ .fractal-content-switcher__item:disabled {
1225
+ cursor: not-allowed;
1226
+ color: var(--fg-inverse-secondary);
1227
+ opacity: 0.5;
1228
+ }
1067
1229
 
1068
1230
  /* src/components/Disclosure/Disclosure.css */
1069
1231
  .fractal-disclosure {
@@ -1095,6 +1257,17 @@
1095
1257
  .fractal-disclosure-trigger:hover {
1096
1258
  background: var(--bg-surface-1);
1097
1259
  }
1260
+ .fractal-disclosure--disabled .fractal-disclosure-trigger {
1261
+ color: var(--fg-tertiary);
1262
+ cursor: not-allowed;
1263
+ }
1264
+ .fractal-disclosure--disabled .fractal-disclosure-trigger:hover {
1265
+ background: transparent;
1266
+ }
1267
+ .fractal-disclosure--disabled .fractal-disclosure-icon,
1268
+ .fractal-disclosure--disabled .fractal-disclosure-meta {
1269
+ color: var(--fg-tertiary);
1270
+ }
1098
1271
  .fractal-disclosure-trigger:focus-visible {
1099
1272
  outline: 2px solid var(--border-focus);
1100
1273
  outline-offset: -2px;
@@ -1137,6 +1310,49 @@
1137
1310
  padding: 4px 0 12px 24px;
1138
1311
  }
1139
1312
 
1313
+ /* src/components/LatticeLoader/LatticeLoader.css */
1314
+ .fractal-lattice-loader {
1315
+ display: flex;
1316
+ align-items: center;
1317
+ gap: 6px;
1318
+ width: 100%;
1319
+ height: 12px;
1320
+ overflow: hidden;
1321
+ color: var(--fg-secondary);
1322
+ }
1323
+ .fractal-lattice-loader__cell {
1324
+ position: relative;
1325
+ width: 12px;
1326
+ flex: 0 0 12px;
1327
+ aspect-ratio: 1;
1328
+ background: currentColor;
1329
+ -webkit-mask: url("./lattice-FAYE5KWW.svg") center / contain no-repeat;
1330
+ mask: url("./lattice-FAYE5KWW.svg") center / contain no-repeat;
1331
+ opacity: 0.08;
1332
+ animation: fractal-lattice-wave 3.2s ease-in-out infinite;
1333
+ animation-delay: calc((var(--fractal-lattice-index) * 40ms) - 3.2s);
1334
+ }
1335
+ @keyframes fractal-lattice-wave {
1336
+ 0%, 58%, 100% {
1337
+ opacity: 0.08;
1338
+ }
1339
+ 18% {
1340
+ opacity: 0.28;
1341
+ }
1342
+ 30% {
1343
+ opacity: 1;
1344
+ }
1345
+ 42% {
1346
+ opacity: 0.28;
1347
+ }
1348
+ }
1349
+ @media (prefers-reduced-motion: reduce) {
1350
+ .fractal-lattice-loader__cell {
1351
+ opacity: 0.35;
1352
+ animation: none;
1353
+ }
1354
+ }
1355
+
1140
1356
  /* src/components/Sidebar/Sidebar.css */
1141
1357
  .fractal-sidebar {
1142
1358
  --fractal-sidebar-width: 232px;
@@ -1190,7 +1406,7 @@
1190
1406
  flex-direction: column;
1191
1407
  gap: 0;
1192
1408
  overflow-y: auto;
1193
- padding: var(--space-3) var(--space-2);
1409
+ padding: var(--space-2);
1194
1410
  }
1195
1411
  .fractal-sidebar__section {
1196
1412
  display: flex;
@@ -1199,8 +1415,8 @@
1199
1415
  }
1200
1416
  .fractal-sidebar__section + .fractal-sidebar__section {
1201
1417
  position: relative;
1202
- margin-top: var(--space-4);
1203
- padding-top: calc(var(--space-4) + 1px);
1418
+ margin-top: var(--space-2);
1419
+ padding-top: var(--space-2);
1204
1420
  }
1205
1421
  .fractal-sidebar__section + .fractal-sidebar__section::before {
1206
1422
  position: absolute;
@@ -1280,4 +1496,371 @@
1280
1496
  transition: none;
1281
1497
  }
1282
1498
  }
1499
+
1500
+ /* src/components/SidePanel/SidePanel.css */
1501
+ .fractal-side-panel-overlay {
1502
+ position: fixed;
1503
+ inset: 0;
1504
+ z-index: 9998;
1505
+ display: flex;
1506
+ justify-content: flex-end;
1507
+ background: color-mix(in srgb, var(--fg-primary) 16%, transparent);
1508
+ animation: fractal-side-panel-overlay-in 180ms ease-out both;
1509
+ }
1510
+ .fractal-side-panel {
1511
+ display: flex;
1512
+ width: min(100vw, 540px);
1513
+ height: 100%;
1514
+ flex-direction: column;
1515
+ border-left: 1px solid var(--border-subtle);
1516
+ background: var(--bg-canvas);
1517
+ box-shadow: var(--shadow-lg);
1518
+ color: var(--fg-primary);
1519
+ font-family: var(--font-sans);
1520
+ animation: fractal-side-panel-in 180ms cubic-bezier(0.16, 1, 0.3, 1) both;
1521
+ }
1522
+ .fractal-side-panel--sm {
1523
+ width: min(100vw, 420px);
1524
+ }
1525
+ .fractal-side-panel--md {
1526
+ width: min(100vw, 540px);
1527
+ }
1528
+ .fractal-side-panel--lg {
1529
+ width: min(100vw, 680px);
1530
+ }
1531
+ .fractal-side-panel--xl {
1532
+ width: min(100vw, 960px);
1533
+ }
1534
+ .fractal-side-panel__header {
1535
+ display: flex;
1536
+ min-height: 72px;
1537
+ align-items: flex-start;
1538
+ justify-content: space-between;
1539
+ gap: var(--space-4);
1540
+ padding: var(--space-5) var(--space-6) var(--space-4);
1541
+ }
1542
+ .fractal-side-panel__heading {
1543
+ min-width: 0;
1544
+ }
1545
+ .fractal-side-panel__title {
1546
+ margin: 0;
1547
+ font-size: 1rem;
1548
+ font-weight: 500;
1549
+ line-height: 1.4;
1550
+ }
1551
+ .fractal-side-panel__description {
1552
+ margin: var(--space-1) 0 0;
1553
+ color: var(--fg-secondary);
1554
+ font-size: 0.875rem;
1555
+ line-height: 1.4;
1556
+ }
1557
+ .fractal-side-panel__close {
1558
+ display: grid;
1559
+ width: 32px;
1560
+ height: 32px;
1561
+ flex: 0 0 auto;
1562
+ place-items: center;
1563
+ border: 0;
1564
+ border-radius: var(--radius-md);
1565
+ background: transparent;
1566
+ color: var(--fg-secondary);
1567
+ cursor: pointer;
1568
+ }
1569
+ .fractal-side-panel__close:hover {
1570
+ background: var(--hover-surface);
1571
+ color: var(--fg-primary);
1572
+ }
1573
+ .fractal-side-panel__close:focus-visible {
1574
+ outline: 2px solid var(--border-focus);
1575
+ outline-offset: 2px;
1576
+ }
1577
+ .fractal-side-panel__body {
1578
+ min-height: 0;
1579
+ flex: 1;
1580
+ overflow: auto;
1581
+ padding: var(--space-2) var(--space-6) var(--space-6);
1582
+ }
1583
+ .fractal-side-panel__footer {
1584
+ display: flex;
1585
+ justify-content: flex-end;
1586
+ gap: var(--space-2);
1587
+ padding: var(--space-4) var(--space-6);
1588
+ border-top: 1px solid var(--border-subtle);
1589
+ }
1590
+ @media (max-width: 640px) {
1591
+ .fractal-side-panel {
1592
+ width: 100%;
1593
+ }
1594
+ .fractal-side-panel__header {
1595
+ padding: var(--space-4) var(--space-5) var(--space-3);
1596
+ }
1597
+ .fractal-side-panel__body {
1598
+ padding: var(--space-2) var(--space-5) var(--space-5);
1599
+ }
1600
+ .fractal-side-panel__footer {
1601
+ padding: var(--space-3) var(--space-5);
1602
+ }
1603
+ }
1604
+ @keyframes fractal-side-panel-overlay-in {
1605
+ from {
1606
+ opacity: 0;
1607
+ }
1608
+ to {
1609
+ opacity: 1;
1610
+ }
1611
+ }
1612
+ @keyframes fractal-side-panel-in {
1613
+ from {
1614
+ transform: translateX(100%);
1615
+ }
1616
+ to {
1617
+ transform: translateX(0);
1618
+ }
1619
+ }
1620
+ @media (prefers-reduced-motion: reduce) {
1621
+ .fractal-side-panel-overlay,
1622
+ .fractal-side-panel {
1623
+ animation-duration: 0.01ms;
1624
+ }
1625
+ }
1626
+
1627
+ /* src/components/Textarea/Textarea.css */
1628
+ .fractal-textarea {
1629
+ display: block;
1630
+ width: 100%;
1631
+ min-height: 120px;
1632
+ resize: vertical;
1633
+ border: 1px solid var(--border-default);
1634
+ border-radius: var(--radius-md);
1635
+ background: var(--bg-canvas);
1636
+ padding: var(--space-3);
1637
+ color: var(--fg-primary);
1638
+ font: 0.8125rem/1.55 var(--font-mono);
1639
+ }
1640
+ .fractal-textarea::placeholder {
1641
+ color: var(--fg-placeholder);
1642
+ }
1643
+ .fractal-textarea:hover {
1644
+ border-color: var(--fg-tertiary);
1645
+ }
1646
+ .fractal-textarea:focus-visible {
1647
+ outline: none;
1648
+ border-color: var(--border-focus);
1649
+ box-shadow: 0 0 0 2px var(--accent-surface);
1650
+ }
1651
+ .fractal-textarea:disabled {
1652
+ cursor: not-allowed;
1653
+ opacity: 0.5;
1654
+ background: var(--bg-surface-1);
1655
+ }
1656
+
1657
+ /* src/components/TextButton/TextButton.css */
1658
+ .fractal-text-button {
1659
+ display: inline-flex;
1660
+ align-items: center;
1661
+ gap: var(--space-1);
1662
+ border: 0;
1663
+ background: transparent;
1664
+ cursor: pointer;
1665
+ font-family: var(--font-sans);
1666
+ font-weight: 500;
1667
+ line-height: 1.4;
1668
+ padding: 0;
1669
+ text-align: left;
1670
+ transition: color 120ms ease;
1671
+ }
1672
+ .fractal-text-button--primary {
1673
+ color: var(--fg-primary);
1674
+ }
1675
+ .fractal-text-button--primary:hover:not(:disabled) {
1676
+ color: var(--fg-secondary);
1677
+ }
1678
+ .fractal-text-button--secondary {
1679
+ color: var(--fg-secondary);
1680
+ }
1681
+ .fractal-text-button--secondary:hover:not(:disabled) {
1682
+ color: var(--fg-primary);
1683
+ }
1684
+ .fractal-text-button:focus-visible {
1685
+ outline: 2px solid var(--border-focus);
1686
+ outline-offset: 3px;
1687
+ border-radius: var(--radius-sm);
1688
+ }
1689
+ .fractal-text-button:disabled {
1690
+ cursor: not-allowed;
1691
+ opacity: 0.5;
1692
+ }
1693
+ .fractal-text-button--sm {
1694
+ font-size: 0.8125rem;
1695
+ }
1696
+ .fractal-text-button--md {
1697
+ font-size: 0.875rem;
1698
+ }
1699
+ .fractal-text-button__icon {
1700
+ display: inline-grid;
1701
+ place-items: center;
1702
+ }
1703
+
1704
+ /* src/components/FileDropzone/FileDropzone.css */
1705
+ .fractal-file-dropzone {
1706
+ display: grid;
1707
+ gap: var(--space-2);
1708
+ color: var(--fg-primary);
1709
+ font-family: var(--font-sans);
1710
+ }
1711
+ .fractal-file-dropzone__input {
1712
+ display: none;
1713
+ }
1714
+ .fractal-file-dropzone__target {
1715
+ display: flex;
1716
+ width: 100%;
1717
+ min-height: 92px;
1718
+ align-items: center;
1719
+ justify-content: center;
1720
+ gap: var(--space-3);
1721
+ border: 1px dashed var(--border-default);
1722
+ border-radius: var(--radius-md);
1723
+ background: var(--bg-canvas);
1724
+ color: var(--fg-secondary);
1725
+ cursor: pointer;
1726
+ padding: var(--space-4);
1727
+ text-align: left;
1728
+ }
1729
+ .fractal-file-dropzone__target:hover,
1730
+ .fractal-file-dropzone__target[data-dragging] {
1731
+ border-color: var(--border-focus);
1732
+ background: var(--hover-surface);
1733
+ color: var(--fg-primary);
1734
+ }
1735
+ .fractal-file-dropzone__target:focus-visible {
1736
+ outline: 2px solid var(--border-focus);
1737
+ outline-offset: 2px;
1738
+ }
1739
+ .fractal-file-dropzone__target:disabled {
1740
+ cursor: not-allowed;
1741
+ opacity: 0.5;
1742
+ }
1743
+ .fractal-file-dropzone__copy {
1744
+ display: grid;
1745
+ gap: var(--space-1);
1746
+ }
1747
+ .fractal-file-dropzone__title {
1748
+ font-size: 0.875rem;
1749
+ font-weight: 500;
1750
+ line-height: 1.4;
1751
+ }
1752
+ .fractal-file-dropzone__description {
1753
+ color: var(--fg-secondary);
1754
+ font-size: 0.8125rem;
1755
+ line-height: 1.4;
1756
+ }
1757
+ .fractal-file-dropzone__files {
1758
+ display: grid;
1759
+ gap: var(--space-1);
1760
+ margin: 0;
1761
+ padding: 0;
1762
+ list-style: none;
1763
+ }
1764
+ .fractal-file-dropzone__file {
1765
+ display: flex;
1766
+ min-width: 0;
1767
+ align-items: center;
1768
+ gap: var(--space-2);
1769
+ padding: var(--space-2) var(--space-3);
1770
+ border: 1px solid var(--border-subtle);
1771
+ border-radius: var(--radius-md);
1772
+ background: var(--bg-canvas);
1773
+ font-size: 0.8125rem;
1774
+ line-height: 1.4;
1775
+ }
1776
+ .fractal-file-dropzone__file-name {
1777
+ min-width: 0;
1778
+ flex: 1;
1779
+ overflow: hidden;
1780
+ text-overflow: ellipsis;
1781
+ white-space: nowrap;
1782
+ }
1783
+ .fractal-file-dropzone__file-meta {
1784
+ color: var(--fg-secondary);
1785
+ white-space: nowrap;
1786
+ }
1787
+ .fractal-file-dropzone__remove {
1788
+ display: grid;
1789
+ width: 24px;
1790
+ height: 24px;
1791
+ flex: 0 0 auto;
1792
+ place-items: center;
1793
+ border: 0;
1794
+ border-radius: var(--radius-sm);
1795
+ background: transparent;
1796
+ color: var(--fg-secondary);
1797
+ cursor: pointer;
1798
+ }
1799
+ .fractal-file-dropzone__remove:hover {
1800
+ background: var(--hover-surface);
1801
+ color: var(--fg-primary);
1802
+ }
1803
+ .fractal-file-dropzone__remove:focus-visible {
1804
+ outline: 2px solid var(--border-focus);
1805
+ outline-offset: 1px;
1806
+ }
1807
+ .fractal-file-dropzone__remove:disabled {
1808
+ cursor: not-allowed;
1809
+ opacity: 0.5;
1810
+ }
1811
+
1812
+ /* src/components/Pagination/Pagination.css */
1813
+ .fractal-pagination {
1814
+ display: flex;
1815
+ align-items: center;
1816
+ justify-content: space-between;
1817
+ gap: var(--space-3);
1818
+ color: var(--fg-secondary);
1819
+ font-family: var(--font-sans);
1820
+ font-size: 0.8125rem;
1821
+ line-height: 1.4;
1822
+ }
1823
+ .fractal-pagination__controls {
1824
+ display: flex;
1825
+ align-items: center;
1826
+ gap: var(--space-2);
1827
+ }
1828
+ .fractal-pagination__page-size .fractal-dropdown-trigger {
1829
+ padding: 4px 0;
1830
+ border: 0;
1831
+ background: transparent;
1832
+ color: var(--fg-secondary);
1833
+ }
1834
+ .fractal-pagination__page-size .fractal-dropdown-trigger:hover {
1835
+ background: transparent;
1836
+ color: var(--fg-primary);
1837
+ }
1838
+ .fractal-pagination__button {
1839
+ display: grid;
1840
+ width: 28px;
1841
+ height: 28px;
1842
+ place-items: center;
1843
+ border: 1px solid var(--border-default);
1844
+ border-radius: var(--radius-sm);
1845
+ background: var(--bg-canvas);
1846
+ color: var(--fg-secondary);
1847
+ cursor: pointer;
1848
+ }
1849
+ .fractal-pagination__button:hover:not(:disabled) {
1850
+ background: var(--hover-surface);
1851
+ color: var(--fg-primary);
1852
+ }
1853
+ .fractal-pagination__button:focus-visible {
1854
+ outline: 2px solid var(--border-focus);
1855
+ outline-offset: 2px;
1856
+ }
1857
+ .fractal-pagination__button:disabled {
1858
+ cursor: not-allowed;
1859
+ opacity: 0.45;
1860
+ }
1861
+ .fractal-pagination__page {
1862
+ min-width: 44px;
1863
+ text-align: center;
1864
+ white-space: nowrap;
1865
+ }
1283
1866
  /*# sourceMappingURL=index.css.map */