@mirror-physics/fractal-ui 0.2.0-next.10 → 0.2.0-next.15

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
@@ -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);
@@ -885,6 +914,11 @@
885
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;
@@ -980,6 +1014,44 @@
980
1014
  .fractal-sortable-table-row--interactive {
981
1015
  cursor: pointer;
982
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
+ }
983
1055
  .fractal-sortable-table-row--interactive:focus-visible {
984
1056
  position: relative;
985
1057
  z-index: 1;
@@ -1005,14 +1077,14 @@
1005
1077
  .fractal-sortable-table-td + .fractal-sortable-table-td {
1006
1078
  border-left: 1px solid var(--border-subtle);
1007
1079
  }
1008
- .fractal-sortable-table--sm .fractal-sortable-table-th,
1080
+ .fractal-sortable-table--sm .fractal-sortable-table-th:not(.fractal-sortable-table-th--sortable),
1009
1081
  .fractal-sortable-table--sm .fractal-sortable-table-sort-button {
1010
1082
  padding: 8px 12px;
1011
1083
  }
1012
1084
  .fractal-sortable-table--sm .fractal-sortable-table-td {
1013
1085
  padding: 10px 12px;
1014
1086
  }
1015
- .fractal-sortable-table--lg .fractal-sortable-table-th,
1087
+ .fractal-sortable-table--lg .fractal-sortable-table-th:not(.fractal-sortable-table-th--sortable),
1016
1088
  .fractal-sortable-table--lg .fractal-sortable-table-sort-button {
1017
1089
  padding: 18px 24px;
1018
1090
  }
@@ -1074,6 +1146,61 @@
1074
1146
  display: none;
1075
1147
  }
1076
1148
 
1149
+ /* src/components/ContentSwitcher/ContentSwitcher.css */
1150
+ .fractal-content-switcher {
1151
+ display: inline-flex;
1152
+ gap: 2px;
1153
+ padding: 2px;
1154
+ border: 1px solid var(--border-strong);
1155
+ border-radius: var(--radius-md);
1156
+ background: var(--bg-inverse);
1157
+ font-family: var(--font-sans);
1158
+ }
1159
+ .fractal-content-switcher--full-width {
1160
+ display: flex;
1161
+ width: 100%;
1162
+ }
1163
+ .fractal-content-switcher__item {
1164
+ min-width: 128px;
1165
+ min-height: 40px;
1166
+ padding: 0 var(--space-4);
1167
+ border: 0;
1168
+ background: transparent;
1169
+ color: var(--fg-inverse-secondary);
1170
+ cursor: pointer;
1171
+ font: inherit;
1172
+ font-size: 0.875rem;
1173
+ line-height: 1.25;
1174
+ text-align: center;
1175
+ transition:
1176
+ background-color var(--duration-fast) var(--ease-out),
1177
+ color var(--duration-fast) var(--ease-out),
1178
+ border-radius var(--duration-fast) var(--ease-out);
1179
+ }
1180
+ .fractal-content-switcher--full-width .fractal-content-switcher__item {
1181
+ flex: 1;
1182
+ }
1183
+ .fractal-content-switcher__item:hover:not(:disabled):not(.fractal-content-switcher__item--active) {
1184
+ background: var(--bg-inverse-subtle);
1185
+ color: var(--fg-inverse);
1186
+ }
1187
+ .fractal-content-switcher__item--active {
1188
+ border-radius: var(--radius-sm);
1189
+ background: var(--bg-canvas);
1190
+ color: var(--fg-primary);
1191
+ }
1192
+ .fractal-content-switcher__item:focus-visible {
1193
+ position: relative;
1194
+ z-index: 1;
1195
+ outline: 2px solid var(--border-focus);
1196
+ outline-offset: -2px;
1197
+ }
1198
+ .fractal-content-switcher__item:disabled {
1199
+ cursor: not-allowed;
1200
+ color: var(--fg-inverse-secondary);
1201
+ opacity: 0.5;
1202
+ }
1203
+
1077
1204
  /* src/components/Disclosure/Disclosure.css */
1078
1205
  .fractal-disclosure {
1079
1206
  font-family: var(--font-sans);
@@ -1104,6 +1231,17 @@
1104
1231
  .fractal-disclosure-trigger:hover {
1105
1232
  background: var(--bg-surface-1);
1106
1233
  }
1234
+ .fractal-disclosure--disabled .fractal-disclosure-trigger {
1235
+ color: var(--fg-tertiary);
1236
+ cursor: not-allowed;
1237
+ }
1238
+ .fractal-disclosure--disabled .fractal-disclosure-trigger:hover {
1239
+ background: transparent;
1240
+ }
1241
+ .fractal-disclosure--disabled .fractal-disclosure-icon,
1242
+ .fractal-disclosure--disabled .fractal-disclosure-meta {
1243
+ color: var(--fg-tertiary);
1244
+ }
1107
1245
  .fractal-disclosure-trigger:focus-visible {
1108
1246
  outline: 2px solid var(--border-focus);
1109
1247
  outline-offset: -2px;
@@ -1146,6 +1284,68 @@
1146
1284
  padding: 4px 0 12px 24px;
1147
1285
  }
1148
1286
 
1287
+ /* src/components/LatticeLoader/LatticeLoader.css */
1288
+ .fractal-lattice-loader {
1289
+ display: grid;
1290
+ grid-template-columns: repeat(48, minmax(0, 1fr));
1291
+ align-items: center;
1292
+ width: 100%;
1293
+ height: 12px;
1294
+ overflow: hidden;
1295
+ color: var(--fg-secondary);
1296
+ }
1297
+ .fractal-lattice-loader__cell {
1298
+ position: relative;
1299
+ width: min(12px, 80%);
1300
+ aspect-ratio: 4 / 3;
1301
+ justify-self: center;
1302
+ opacity: 0.08;
1303
+ animation: fractal-lattice-wave 2.4s ease-in-out infinite;
1304
+ animation-delay: calc((var(--fractal-lattice-index) * 50ms) - 2.4s);
1305
+ }
1306
+ .fractal-lattice-loader__cell::before {
1307
+ position: absolute;
1308
+ top: 3px;
1309
+ left: 1px;
1310
+ width: calc(100% - 2px);
1311
+ height: 3px;
1312
+ border-radius: 1px;
1313
+ background: currentColor;
1314
+ content: "";
1315
+ transform: rotate(45deg);
1316
+ }
1317
+ .fractal-lattice-loader__cell::after {
1318
+ position: absolute;
1319
+ top: 0;
1320
+ right: 0;
1321
+ width: 3px;
1322
+ height: 3px;
1323
+ border-radius: 1px;
1324
+ background: currentColor;
1325
+ box-shadow: calc(-100% - 6px) 6px currentColor;
1326
+ content: "";
1327
+ }
1328
+ @keyframes fractal-lattice-wave {
1329
+ 0%, 58%, 100% {
1330
+ opacity: 0.08;
1331
+ }
1332
+ 18% {
1333
+ opacity: 0.28;
1334
+ }
1335
+ 30% {
1336
+ opacity: 1;
1337
+ }
1338
+ 42% {
1339
+ opacity: 0.28;
1340
+ }
1341
+ }
1342
+ @media (prefers-reduced-motion: reduce) {
1343
+ .fractal-lattice-loader__cell {
1344
+ opacity: 0.35;
1345
+ animation: none;
1346
+ }
1347
+ }
1348
+
1149
1349
  /* src/components/Sidebar/Sidebar.css */
1150
1350
  .fractal-sidebar {
1151
1351
  --fractal-sidebar-width: 232px;
@@ -1321,6 +1521,9 @@
1321
1521
  .fractal-side-panel--lg {
1322
1522
  width: min(100vw, 680px);
1323
1523
  }
1524
+ .fractal-side-panel--xl {
1525
+ width: min(100vw, 960px);
1526
+ }
1324
1527
  .fractal-side-panel__header {
1325
1528
  display: flex;
1326
1529
  min-height: 72px;
@@ -1444,6 +1647,53 @@
1444
1647
  background: var(--bg-surface-1);
1445
1648
  }
1446
1649
 
1650
+ /* src/components/TextButton/TextButton.css */
1651
+ .fractal-text-button {
1652
+ display: inline-flex;
1653
+ align-items: center;
1654
+ gap: var(--space-1);
1655
+ border: 0;
1656
+ background: transparent;
1657
+ cursor: pointer;
1658
+ font-family: var(--font-sans);
1659
+ font-weight: 500;
1660
+ line-height: 1.4;
1661
+ padding: 0;
1662
+ text-align: left;
1663
+ transition: color 120ms ease;
1664
+ }
1665
+ .fractal-text-button--primary {
1666
+ color: var(--fg-primary);
1667
+ }
1668
+ .fractal-text-button--primary:hover:not(:disabled) {
1669
+ color: var(--fg-secondary);
1670
+ }
1671
+ .fractal-text-button--secondary {
1672
+ color: var(--fg-secondary);
1673
+ }
1674
+ .fractal-text-button--secondary:hover:not(:disabled) {
1675
+ color: var(--fg-primary);
1676
+ }
1677
+ .fractal-text-button:focus-visible {
1678
+ outline: 2px solid var(--border-focus);
1679
+ outline-offset: 3px;
1680
+ border-radius: var(--radius-sm);
1681
+ }
1682
+ .fractal-text-button:disabled {
1683
+ cursor: not-allowed;
1684
+ opacity: 0.5;
1685
+ }
1686
+ .fractal-text-button--sm {
1687
+ font-size: 0.8125rem;
1688
+ }
1689
+ .fractal-text-button--md {
1690
+ font-size: 0.875rem;
1691
+ }
1692
+ .fractal-text-button__icon {
1693
+ display: inline-grid;
1694
+ place-items: center;
1695
+ }
1696
+
1447
1697
  /* src/components/FileDropzone/FileDropzone.css */
1448
1698
  .fractal-file-dropzone {
1449
1699
  display: grid;
@@ -1551,4 +1801,59 @@
1551
1801
  cursor: not-allowed;
1552
1802
  opacity: 0.5;
1553
1803
  }
1804
+
1805
+ /* src/components/Pagination/Pagination.css */
1806
+ .fractal-pagination {
1807
+ display: flex;
1808
+ align-items: center;
1809
+ justify-content: space-between;
1810
+ gap: var(--space-3);
1811
+ color: var(--fg-secondary);
1812
+ font-family: var(--font-sans);
1813
+ font-size: 0.8125rem;
1814
+ line-height: 1.4;
1815
+ }
1816
+ .fractal-pagination__controls {
1817
+ display: flex;
1818
+ align-items: center;
1819
+ gap: var(--space-2);
1820
+ }
1821
+ .fractal-pagination__page-size .fractal-dropdown-trigger {
1822
+ padding: 4px 0;
1823
+ border: 0;
1824
+ background: transparent;
1825
+ color: var(--fg-secondary);
1826
+ }
1827
+ .fractal-pagination__page-size .fractal-dropdown-trigger:hover {
1828
+ background: transparent;
1829
+ color: var(--fg-primary);
1830
+ }
1831
+ .fractal-pagination__button {
1832
+ display: grid;
1833
+ width: 28px;
1834
+ height: 28px;
1835
+ place-items: center;
1836
+ border: 1px solid var(--border-default);
1837
+ border-radius: var(--radius-sm);
1838
+ background: var(--bg-canvas);
1839
+ color: var(--fg-secondary);
1840
+ cursor: pointer;
1841
+ }
1842
+ .fractal-pagination__button:hover:not(:disabled) {
1843
+ background: var(--hover-surface);
1844
+ color: var(--fg-primary);
1845
+ }
1846
+ .fractal-pagination__button:focus-visible {
1847
+ outline: 2px solid var(--border-focus);
1848
+ outline-offset: 2px;
1849
+ }
1850
+ .fractal-pagination__button:disabled {
1851
+ cursor: not-allowed;
1852
+ opacity: 0.45;
1853
+ }
1854
+ .fractal-pagination__page {
1855
+ min-width: 44px;
1856
+ text-align: center;
1857
+ white-space: nowrap;
1858
+ }
1554
1859
  /*# sourceMappingURL=index.css.map */