@mirror-physics/fractal-ui 0.2.0-next.4 → 0.2.0-next.5
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.cjs +58 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +140 -1
- package/dist/index.css.map +1 -1
- package/dist/index.d.cts +22 -3
- package/dist/index.d.ts +22 -3
- package/dist/index.js +56 -2
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.css
CHANGED
|
@@ -977,6 +977,15 @@
|
|
|
977
977
|
.fractal-sortable-table-row:hover {
|
|
978
978
|
background: var(--bg-surface-1);
|
|
979
979
|
}
|
|
980
|
+
.fractal-sortable-table-row--interactive {
|
|
981
|
+
cursor: pointer;
|
|
982
|
+
}
|
|
983
|
+
.fractal-sortable-table-row--interactive:focus-visible {
|
|
984
|
+
position: relative;
|
|
985
|
+
z-index: 1;
|
|
986
|
+
outline: 2px solid var(--border-focus);
|
|
987
|
+
outline-offset: -2px;
|
|
988
|
+
}
|
|
980
989
|
.fractal-sortable-table-row + .fractal-sortable-table-row .fractal-sortable-table-td {
|
|
981
990
|
border-top: 1px solid var(--border-subtle);
|
|
982
991
|
}
|
|
@@ -1297,7 +1306,6 @@
|
|
|
1297
1306
|
.fractal-page-header__title {
|
|
1298
1307
|
margin: 0;
|
|
1299
1308
|
color: var(--fg-primary);
|
|
1300
|
-
font-family: var(--font-sans);
|
|
1301
1309
|
font-size: 1rem;
|
|
1302
1310
|
font-weight: 500;
|
|
1303
1311
|
line-height: 1.4;
|
|
@@ -1325,4 +1333,135 @@
|
|
|
1325
1333
|
width: 100%;
|
|
1326
1334
|
}
|
|
1327
1335
|
}
|
|
1336
|
+
|
|
1337
|
+
/* src/components/SidePanel/SidePanel.css */
|
|
1338
|
+
.fractal-side-panel-overlay {
|
|
1339
|
+
position: fixed;
|
|
1340
|
+
inset: 0;
|
|
1341
|
+
z-index: 9998;
|
|
1342
|
+
display: flex;
|
|
1343
|
+
justify-content: flex-end;
|
|
1344
|
+
background: color-mix(in srgb, var(--fg-primary) 16%, transparent);
|
|
1345
|
+
}
|
|
1346
|
+
.fractal-side-panel {
|
|
1347
|
+
display: flex;
|
|
1348
|
+
width: min(100vw, 540px);
|
|
1349
|
+
height: 100%;
|
|
1350
|
+
flex-direction: column;
|
|
1351
|
+
border-left: 1px solid var(--border-subtle);
|
|
1352
|
+
background: var(--bg-canvas);
|
|
1353
|
+
box-shadow: var(--shadow-lg);
|
|
1354
|
+
color: var(--fg-primary);
|
|
1355
|
+
font-family: var(--font-sans);
|
|
1356
|
+
}
|
|
1357
|
+
.fractal-side-panel--sm {
|
|
1358
|
+
width: min(100vw, 420px);
|
|
1359
|
+
}
|
|
1360
|
+
.fractal-side-panel--md {
|
|
1361
|
+
width: min(100vw, 540px);
|
|
1362
|
+
}
|
|
1363
|
+
.fractal-side-panel--lg {
|
|
1364
|
+
width: min(100vw, 680px);
|
|
1365
|
+
}
|
|
1366
|
+
.fractal-side-panel__header {
|
|
1367
|
+
display: flex;
|
|
1368
|
+
min-height: 72px;
|
|
1369
|
+
align-items: flex-start;
|
|
1370
|
+
justify-content: space-between;
|
|
1371
|
+
gap: var(--space-4);
|
|
1372
|
+
padding: var(--space-5) var(--space-6);
|
|
1373
|
+
border-bottom: 1px solid var(--border-subtle);
|
|
1374
|
+
}
|
|
1375
|
+
.fractal-side-panel__heading {
|
|
1376
|
+
min-width: 0;
|
|
1377
|
+
}
|
|
1378
|
+
.fractal-side-panel__title {
|
|
1379
|
+
margin: 0;
|
|
1380
|
+
font-size: 1rem;
|
|
1381
|
+
font-weight: 500;
|
|
1382
|
+
line-height: 1.4;
|
|
1383
|
+
}
|
|
1384
|
+
.fractal-side-panel__description {
|
|
1385
|
+
margin: var(--space-1) 0 0;
|
|
1386
|
+
color: var(--fg-secondary);
|
|
1387
|
+
font-size: 0.875rem;
|
|
1388
|
+
line-height: 1.4;
|
|
1389
|
+
}
|
|
1390
|
+
.fractal-side-panel__close {
|
|
1391
|
+
display: grid;
|
|
1392
|
+
width: 32px;
|
|
1393
|
+
height: 32px;
|
|
1394
|
+
flex: 0 0 auto;
|
|
1395
|
+
place-items: center;
|
|
1396
|
+
border: 0;
|
|
1397
|
+
border-radius: var(--radius-md);
|
|
1398
|
+
background: transparent;
|
|
1399
|
+
color: var(--fg-secondary);
|
|
1400
|
+
cursor: pointer;
|
|
1401
|
+
}
|
|
1402
|
+
.fractal-side-panel__close:hover {
|
|
1403
|
+
background: var(--hover-surface);
|
|
1404
|
+
color: var(--fg-primary);
|
|
1405
|
+
}
|
|
1406
|
+
.fractal-side-panel__close:focus-visible {
|
|
1407
|
+
outline: 2px solid var(--border-focus);
|
|
1408
|
+
outline-offset: 2px;
|
|
1409
|
+
}
|
|
1410
|
+
.fractal-side-panel__body {
|
|
1411
|
+
min-height: 0;
|
|
1412
|
+
flex: 1;
|
|
1413
|
+
overflow: auto;
|
|
1414
|
+
padding: var(--space-6);
|
|
1415
|
+
}
|
|
1416
|
+
.fractal-side-panel__footer {
|
|
1417
|
+
display: flex;
|
|
1418
|
+
justify-content: flex-end;
|
|
1419
|
+
gap: var(--space-2);
|
|
1420
|
+
padding: var(--space-4) var(--space-6);
|
|
1421
|
+
border-top: 1px solid var(--border-subtle);
|
|
1422
|
+
}
|
|
1423
|
+
@media (max-width: 640px) {
|
|
1424
|
+
.fractal-side-panel {
|
|
1425
|
+
width: 100%;
|
|
1426
|
+
}
|
|
1427
|
+
.fractal-side-panel__header {
|
|
1428
|
+
padding: var(--space-4) var(--space-5);
|
|
1429
|
+
}
|
|
1430
|
+
.fractal-side-panel__body {
|
|
1431
|
+
padding: var(--space-5);
|
|
1432
|
+
}
|
|
1433
|
+
.fractal-side-panel__footer {
|
|
1434
|
+
padding: var(--space-3) var(--space-5);
|
|
1435
|
+
}
|
|
1436
|
+
}
|
|
1437
|
+
|
|
1438
|
+
/* src/components/Textarea/Textarea.css */
|
|
1439
|
+
.fractal-textarea {
|
|
1440
|
+
display: block;
|
|
1441
|
+
width: 100%;
|
|
1442
|
+
min-height: 120px;
|
|
1443
|
+
resize: vertical;
|
|
1444
|
+
border: 1px solid var(--border-default);
|
|
1445
|
+
border-radius: var(--radius-md);
|
|
1446
|
+
background: var(--bg-canvas);
|
|
1447
|
+
padding: var(--space-3);
|
|
1448
|
+
color: var(--fg-primary);
|
|
1449
|
+
font: 0.8125rem/1.55 var(--font-mono);
|
|
1450
|
+
}
|
|
1451
|
+
.fractal-textarea::placeholder {
|
|
1452
|
+
color: var(--fg-placeholder);
|
|
1453
|
+
}
|
|
1454
|
+
.fractal-textarea:hover {
|
|
1455
|
+
border-color: var(--fg-tertiary);
|
|
1456
|
+
}
|
|
1457
|
+
.fractal-textarea:focus-visible {
|
|
1458
|
+
outline: none;
|
|
1459
|
+
border-color: var(--border-focus);
|
|
1460
|
+
box-shadow: 0 0 0 2px var(--accent-surface);
|
|
1461
|
+
}
|
|
1462
|
+
.fractal-textarea:disabled {
|
|
1463
|
+
cursor: not-allowed;
|
|
1464
|
+
opacity: 0.5;
|
|
1465
|
+
background: var(--bg-surface-1);
|
|
1466
|
+
}
|
|
1328
1467
|
/*# sourceMappingURL=index.css.map */
|
package/dist/index.css.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/Button/Button.css","../src/components/Card/Card.css","../src/components/PromptCard/PromptCard.css","../src/components/Input/Input.css","../src/components/Label/Label.css","../src/components/Alert/Alert.css","../src/components/Toggle/Toggle.css","../src/components/Modal/Modal.css","../src/components/DataTable/DataTable.css","../src/components/Dropdown/Dropdown.css","../src/components/Link/Link.css","../src/components/Chip/Chip.css","../src/components/SortableTable/SortableTable.css","../src/components/Tabs/Tabs.css","../src/components/Disclosure/Disclosure.css","../src/components/Sidebar/Sidebar.css","../src/components/PageHeader/PageHeader.css"],"sourcesContent":[".fractal-button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n white-space: nowrap;\n font-weight: 400;\n font-family: var(--font-sans);\n line-height: 1;\n text-decoration: none;\n box-sizing: border-box;\n transform: scale(1);\n transition: transform 120ms cubic-bezier(0.16, 1, 0.3, 1);\n}\n\n/* Press: subtle shrink, then expand on release. 120ms / ease-out per motion guide. */\n.fractal-button--primary:active:not(:disabled),\n.fractal-button--secondary:active:not(:disabled),\n.fractal-button--ghost:active:not(:disabled),\n.fractal-button--danger:active:not(:disabled) {\n transform: scale(0.97);\n}\n\n/* Focus ring: 2px --border-focus, 2px offset. Per principles.md Focus section. */\n.fractal-button:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px var(--bg-canvas, #fff), 0 0 0 4px var(--border-focus, var(--blue-500));\n}\n\n.fractal-button:disabled {\n opacity: 0.5;\n pointer-events: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fractal-button {\n transition-duration: 0.01ms;\n }\n}\n",".fractal-card {\n border-radius: var(--radius-lg, 8px);\n border: 1px solid var(--border-subtle);\n background-color: var(--bg-surface-1);\n color: var(--fg-primary);\n box-shadow: var(--shadow-xs);\n font-family: var(--font-sans);\n}\n\n.fractal-card-header {\n display: flex;\n flex-direction: column;\n gap: 6px;\n padding: var(--space-6, 24px);\n}\n\n.fractal-card-title {\n margin: 0;\n font-size: 1.5rem;\n font-weight: 600;\n line-height: 1;\n letter-spacing: -0.02em;\n color: var(--fg-primary);\n}\n\n.fractal-card-description {\n margin: 0;\n font-size: 0.875rem;\n color: var(--fg-secondary);\n}\n\n.fractal-card-content {\n padding: 0 var(--space-6, 24px) var(--space-6, 24px);\n}\n\n.fractal-card-footer {\n display: flex;\n align-items: center;\n padding: 0 var(--space-6, 24px) var(--space-6, 24px);\n}\n\n/* ---- FeatureCard ---- */\n\n.fractal-feature-card {\n border: 1px solid var(--border-subtle);\n border-radius: var(--radius-xl, 12px);\n background: var(--bg-canvas);\n padding: 40px; /* var(--space-8) */\n display: flex;\n flex-direction: column;\n font-family: var(--font-sans);\n transition: background 200ms ease;\n}\n\n.fractal-feature-card:hover {\n background: var(--bg-surface-1);\n}\n\n.fractal-feature-card__icon {\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n color: var(--fg-primary);\n margin-bottom: 24px; /* var(--space-6) */\n}\n\n.fractal-feature-card__title {\n margin: 0 0 8px; /* var(--space-2) below title */\n font-size: 1rem;\n font-weight: 600;\n line-height: 1.5;\n color: var(--fg-primary);\n}\n\n.fractal-feature-card__description {\n margin: 0;\n font-size: 0.875rem;\n line-height: 1.4;\n color: var(--fg-secondary);\n}\n\n/* ---- ProjectCard ---- */\n\n.fractal-folder-card {\n display: flex;\n flex-direction: column;\n border: 1px solid var(--border-subtle);\n border-radius: var(--radius-lg, 8px);\n background: var(--bg-canvas);\n cursor: pointer;\n text-align: left;\n overflow: hidden;\n font-family: var(--font-sans);\n transition: background 150ms ease, border-color 150ms ease, transform 120ms cubic-bezier(0.16, 1, 0.3, 1);\n}\n\n.fractal-folder-card:hover {\n background: var(--bg-surface-1);\n}\n\n.fractal-folder-card:active:not(:disabled) {\n transform: scale(0.97);\n}\n\n.fractal-folder-card--selected {\n border-color: var(--accent-default);\n}\n\n.fractal-folder-card--selected:hover {\n background: var(--accent-surface);\n}\n\n.fractal-folder-card:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px var(--bg-canvas, #fff), 0 0 0 4px var(--accent-default, var(--blue-500));\n}\n\n.fractal-folder-card__header {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 16px;\n}\n\n.fractal-folder-card__icon {\n flex-shrink: 0;\n color: var(--fg-secondary);\n}\n\n.fractal-folder-card__name {\n font-size: 0.875rem;\n font-weight: 500;\n color: var(--fg-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.fractal-folder-card__footer {\n padding: 8px 16px;\n}\n\n.fractal-folder-card__sessions {\n font-size: 0.75rem;\n color: var(--fg-secondary);\n}\n",".fractal-prompt-card {\n --prompt-card-bg: var(--accent-surface);\n --prompt-card-bg-hover: var(--accent-subtle);\n --prompt-card-stroke: var(--accent-surface-stroke);\n --prompt-card-icon-bg: var(--accent-subtle);\n --prompt-card-icon-color: var(--accent-default);\n --prompt-card-text: var(--accent-text);\n\n width: 100%;\n min-height: 58px;\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px;\n border: 1px solid var(--prompt-card-stroke);\n border-radius: var(--radius-lg, 8px);\n background-color: var(--prompt-card-bg);\n color: var(--prompt-card-text);\n cursor: pointer;\n font-family: var(--font-sans);\n text-align: left;\n box-sizing: border-box;\n transform: scale(1);\n transition:\n background-color 200ms ease-out,\n border-color 200ms ease-out,\n transform 120ms cubic-bezier(0.16, 1, 0.3, 1),\n opacity 150ms ease;\n}\n\n.fractal-prompt-card:hover,\n.fractal-prompt-card--highlighted {\n background-color: var(--prompt-card-bg-hover);\n}\n\n.fractal-prompt-card:active:not(:disabled) {\n transform: scale(0.97);\n}\n\n.fractal-prompt-card:disabled {\n --prompt-card-bg: var(--bg-surface-1);\n --prompt-card-bg-hover: var(--bg-surface-1);\n --prompt-card-stroke: var(--border-subtle);\n --prompt-card-icon-bg: var(--bg-surface-2);\n --prompt-card-icon-color: var(--fg-tertiary);\n --prompt-card-text: var(--fg-tertiary);\n\n cursor: not-allowed;\n opacity: 0.72;\n}\n\n.fractal-prompt-card:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px var(--bg-canvas, #fff), 0 0 0 4px var(--border-focus, var(--blue-500));\n}\n\n.fractal-prompt-card__icon {\n width: 40px;\n height: 40px;\n min-width: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: var(--radius-sm, 4px);\n background-color: var(--prompt-card-icon-bg);\n color: var(--prompt-card-icon-color);\n transition: background-color 200ms ease-out, color 200ms ease-out;\n}\n\n.fractal-prompt-card:hover:not(:disabled) .fractal-prompt-card__icon,\n.fractal-prompt-card--highlighted:not(:disabled) .fractal-prompt-card__icon {\n background-color: var(--prompt-card-icon-color);\n color: var(--fg-inverse);\n}\n\n.fractal-prompt-card__title {\n min-width: 0;\n color: var(--prompt-card-text);\n font-size: 0.875rem;\n font-weight: 400;\n line-height: 1.35;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.fractal-prompt-card--blue {\n --prompt-card-bg: var(--accent-surface);\n --prompt-card-bg-hover: var(--accent-subtle);\n --prompt-card-stroke: var(--accent-surface-stroke);\n --prompt-card-icon-bg: var(--accent-subtle);\n --prompt-card-icon-color: var(--accent-default);\n --prompt-card-text: var(--accent-text);\n}\n\n.fractal-prompt-card--pink {\n --prompt-card-bg: var(--pink-surface);\n --prompt-card-bg-hover: var(--pink-subtle);\n --prompt-card-stroke: var(--pink-surface-stroke);\n --prompt-card-icon-bg: var(--pink-subtle);\n --prompt-card-icon-color: var(--pink-default);\n --prompt-card-text: var(--pink-text);\n}\n\n.fractal-prompt-card--orange {\n --prompt-card-bg: var(--orange-surface);\n --prompt-card-bg-hover: var(--orange-subtle);\n --prompt-card-stroke: var(--orange-surface-stroke);\n --prompt-card-icon-bg: var(--orange-subtle);\n --prompt-card-icon-color: var(--orange-default);\n --prompt-card-text: var(--orange-text);\n}\n\n.fractal-prompt-card--green {\n --prompt-card-bg: var(--success-surface);\n --prompt-card-bg-hover: var(--success-subtle);\n --prompt-card-stroke: var(--success-surface-stroke);\n --prompt-card-icon-bg: var(--success-subtle);\n --prompt-card-icon-color: var(--success-default);\n --prompt-card-text: var(--success-text);\n}\n\n.fractal-prompt-card--purple {\n --prompt-card-bg: var(--purple-surface);\n --prompt-card-bg-hover: var(--purple-subtle);\n --prompt-card-stroke: var(--purple-surface-stroke);\n --prompt-card-icon-bg: var(--purple-subtle);\n --prompt-card-icon-color: var(--purple-default);\n --prompt-card-text: var(--purple-text);\n}\n\n.fractal-prompt-card--red {\n --prompt-card-bg: var(--error-surface);\n --prompt-card-bg-hover: var(--error-subtle);\n --prompt-card-stroke: var(--error-surface-stroke);\n --prompt-card-icon-bg: var(--error-subtle);\n --prompt-card-icon-color: var(--error-default);\n --prompt-card-text: var(--error-text);\n}\n\n.fractal-prompt-card--yellow {\n --prompt-card-bg: var(--warning-surface);\n --prompt-card-bg-hover: var(--warning-subtle);\n --prompt-card-stroke: var(--warning-surface-stroke);\n --prompt-card-icon-bg: var(--warning-subtle);\n --prompt-card-icon-color: var(--warning-default);\n --prompt-card-text: var(--warning-text);\n}\n\n.fractal-prompt-card--neutral {\n --prompt-card-bg: var(--bg-canvas);\n --prompt-card-bg-hover: var(--bg-surface-1);\n --prompt-card-stroke: var(--border-subtle);\n --prompt-card-icon-bg: var(--bg-surface-2);\n --prompt-card-icon-color: var(--fg-tertiary);\n --prompt-card-text: var(--fg-primary);\n}\n\n.fractal-prompt-grid {\n display: grid;\n grid-template-columns: repeat(3, minmax(0, 1fr));\n gap: 8px;\n}\n\n.fractal-prompt-grid--padded {\n padding: 0.5rem calc(1rem + 1px) 2rem;\n}\n\n.fractal-prompt-grid--compact {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n\n.fractal-prompt-grid--compact > :nth-child(n+5) {\n display: none;\n}\n\n@media (max-width: 639px) {\n .fractal-prompt-grid {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n}\n\n@media (max-width: 419px) {\n .fractal-prompt-grid {\n grid-template-columns: 1fr;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fractal-prompt-card {\n transition-duration: 0.01ms;\n }\n}\n",".fractal-input {\n display: flex;\n height: 40px;\n width: 100%;\n border-radius: var(--radius-sm, 4px);\n border: 1px solid var(--border-default);\n background-color: var(--bg-canvas);\n padding: 8px 12px;\n font-size: 0.875rem;\n font-family: var(--font-sans);\n line-height: 1.5;\n color: var(--fg-primary);\n transition: border-color 0.15s ease, box-shadow 0.15s ease;\n box-sizing: border-box;\n}\n\n.fractal-input::placeholder {\n color: var(--fg-placeholder);\n}\n\n.fractal-input:focus-visible {\n outline: none;\n border-color: var(--border-focus);\n box-shadow: 0 0 0 2px var(--accent-surface);\n}\n\n.fractal-input:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n background-color: var(--bg-surface-1);\n}\n\n.fractal-input[type=\"file\"] {\n border: 0;\n background: transparent;\n font-size: 0.875rem;\n height: auto;\n padding: 0;\n}\n",".fractal-label {\n font-size: 0.875rem;\n font-weight: 500;\n line-height: 1;\n color: var(--fg-primary);\n}\n\n.fractal-label[data-disabled] {\n cursor: not-allowed;\n opacity: 0.7;\n}\n",".fractal-alert {\n display: flex;\n align-items: flex-start;\n gap: 12px;\n width: 100%;\n border-radius: var(--radius-sm, 4px);\n border: 1px solid;\n padding: var(--space-3, 12px) var(--space-4, 16px);\n font-family: var(--font-sans);\n}\n\n/* Icon cell */\n.fractal-alert-icon {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 18px;\n height: 18px;\n font-size: 0.75rem;\n font-weight: 600;\n border-radius: 50%;\n margin-top: 1px;\n}\n\n.fractal-alert-content {\n flex: 1;\n min-width: 0;\n}\n\n.fractal-alert-title {\n margin: 0 0 4px 0;\n font-size: 0.875rem;\n font-weight: 500;\n line-height: 1.4;\n}\n\n.fractal-alert-description {\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n/* ── Variants ── */\n\n.fractal-alert--default {\n background-color: var(--bg-canvas);\n border-color: var(--border-default);\n color: var(--fg-primary);\n}\n.fractal-alert--default .fractal-alert-icon {\n background: var(--bg-surface-2);\n color: var(--fg-secondary);\n}\n\n.fractal-alert--info {\n background-color: var(--accent-surface);\n border-color: var(--accent-default);\n color: var(--fg-primary);\n}\n.fractal-alert--info .fractal-alert-icon {\n background: var(--accent-default);\n color: var(--fg-inverse);\n}\n\n.fractal-alert--success {\n background-color: var(--success-surface);\n border-color: var(--success-default);\n color: var(--fg-primary);\n}\n.fractal-alert--success .fractal-alert-icon {\n background: var(--success-default);\n color: var(--fg-inverse);\n}\n\n.fractal-alert--warning {\n background-color: var(--warning-surface);\n border-color: var(--warning-default);\n color: var(--fg-primary);\n}\n.fractal-alert--warning .fractal-alert-icon {\n background: var(--warning-default);\n color: var(--fg-inverse);\n}\n\n.fractal-alert--error {\n background-color: var(--error-surface);\n border-color: var(--error-default);\n color: var(--fg-primary);\n}\n.fractal-alert--error .fractal-alert-icon {\n background: var(--error-default);\n color: var(--fg-inverse);\n}\n",".fractal-toggle {\n display: inline-flex;\n align-items: center;\n gap: var(--space-2, 8px);\n background: none;\n border: none;\n cursor: pointer;\n padding: 0;\n font-family: var(--font-sans);\n}\n\n.fractal-toggle-track {\n position: relative;\n width: 32px;\n height: 18px;\n border-radius: var(--radius-full, 9999px);\n background-color: var(--bg-surface-2);\n transition: background-color 0.2s;\n flex-shrink: 0;\n}\n\n.fractal-toggle-track--checked {\n background-color: var(--accent-default);\n}\n\n.fractal-toggle-thumb {\n position: absolute;\n top: 2px;\n left: 2px;\n width: 14px;\n height: 14px;\n border-radius: 50%;\n background-color: #fff;\n transition: left 0.2s;\n}\n\n.fractal-toggle-thumb--checked {\n left: 16px;\n}\n\n.fractal-toggle-label {\n font-size: 0.8125rem;\n color: var(--fg-primary);\n user-select: none;\n}\n",".fractal-modal-overlay {\n position: fixed;\n inset: 0;\n background-color: var(--overlay, rgba(0, 0, 0, 0.5));\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 9998;\n}\n\n.fractal-modal-panel {\n background: var(--bg-canvas);\n border: 1px solid var(--border-subtle);\n border-radius: var(--radius-lg, 8px);\n box-shadow: var(--shadow-lg);\n padding: var(--space-6, 24px);\n max-width: 90vw;\n font-family: var(--font-sans);\n}\n\n.fractal-modal-panel--sm {\n width: 420px;\n}\n\n.fractal-modal-panel--md {\n width: 756px;\n}\n\n.fractal-modal-panel--lg {\n width: calc(100vw - 4rem);\n height: calc(100vh - 4rem);\n max-height: 100vh;\n display: flex;\n flex-direction: column;\n}\n\n.fractal-modal-panel--danger {\n border-color: var(--error-subtle);\n}\n\n.fractal-modal-panel--warn {\n border-color: var(--warning-subtle);\n}\n\n.fractal-modal-title-row {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: var(--space-4, 16px);\n}\n\n.fractal-modal-title {\n margin: 0;\n font-size: 1rem;\n font-weight: 600;\n color: var(--fg-primary);\n}\n\n.fractal-modal-title--danger {\n color: var(--error-default);\n}\n\n.fractal-modal-title--warn {\n color: var(--warning-default);\n}\n\n.fractal-modal-close {\n background: none;\n border: none;\n cursor: pointer;\n color: var(--fg-secondary);\n padding: 4px;\n border-radius: var(--radius-sm, 4px);\n display: flex;\n align-items: center;\n}\n\n.fractal-modal-close:hover {\n color: var(--fg-primary);\n background: var(--bg-surface-1);\n}\n\n.fractal-modal-body {\n font-size: 0.875rem;\n color: var(--fg-secondary);\n}\n\n.fractal-modal-body--lg {\n flex: 1;\n min-height: 0;\n overflow: hidden;\n}\n\n.fractal-modal-footer {\n display: flex;\n justify-content: flex-end;\n gap: var(--space-2, 8px);\n margin-top: var(--space-4, 16px);\n}\n",".fractal-datatable {\n font-family: var(--font-sans);\n font-size: 0.875rem;\n}\n\n.fractal-datatable-surface {\n overflow: hidden;\n border: 1px solid var(--border-subtle);\n border-radius: var(--radius-xl, 12px);\n background: var(--bg-canvas);\n}\n\n.fractal-datatable-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 12px 16px;\n border-bottom: 1px solid var(--border-subtle);\n background: var(--bg-canvas);\n}\n\n.fractal-datatable-empty {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--space-7, 32px) var(--space-4, 16px);\n font-size: 0.875rem;\n color: var(--fg-secondary);\n background: var(--bg-canvas);\n}\n\n/* ── Table ── */\n\n.fractal-datatable-table {\n width: 100%;\n border-collapse: separate;\n border-spacing: 0;\n font-family: var(--font-sans);\n font-size: 0.875rem;\n}\n\n/* Header row — neutral grey tile */\n.fractal-datatable-thead-row {\n background: var(--bg-surface-1);\n}\n\n.fractal-datatable-th {\n text-align: left;\n padding: 12px 16px;\n font-size: 0.75rem;\n font-weight: 500;\n color: var(--fg-secondary);\n border-bottom: 1px solid var(--border-subtle);\n vertical-align: middle;\n}\n\n.fractal-datatable-th + .fractal-datatable-th {\n border-left: 1px solid var(--border-subtle);\n}\n\n/* Data rows — white tiles */\n.fractal-datatable-row {\n background: var(--bg-canvas);\n transition: background 120ms ease;\n}\n\n.fractal-datatable-row:hover {\n background: var(--bg-surface-1);\n}\n\n.fractal-datatable-td {\n padding: 14px 16px;\n color: var(--fg-primary);\n line-height: 1.55;\n vertical-align: top;\n overflow-wrap: anywhere;\n}\n\n.fractal-datatable-td + .fractal-datatable-td {\n border-left: 1px solid var(--border-subtle);\n}\n\n.fractal-datatable-row + .fractal-datatable-row .fractal-datatable-td {\n border-top: 1px solid var(--border-subtle);\n}\n\n.fractal-datatable--sm .fractal-datatable-th {\n padding: 8px 12px;\n}\n\n.fractal-datatable--sm .fractal-datatable-td {\n padding: 10px 12px;\n}\n\n.fractal-datatable--lg .fractal-datatable-th {\n padding: 18px 24px;\n}\n\n.fractal-datatable--lg .fractal-datatable-td {\n padding: 22px 24px;\n}\n",".fractal-dropdown {\n position: relative;\n display: inline-block;\n}\n\n.fractal-dropdown-trigger {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n border-radius: var(--radius-md, 6px);\n border: 1px solid var(--border-subtle);\n background: var(--bg-canvas);\n padding: 8px 12px;\n text-align: left;\n font-size: 0.875rem;\n font-family: var(--font-sans);\n color: var(--fg-primary);\n cursor: pointer;\n transition: background-color 0.15s;\n}\n\n.fractal-dropdown-trigger--sm {\n gap: 6px;\n padding: 4px 8px;\n font-size: 0.75rem;\n}\n\n.fractal-dropdown-trigger--tertiary {\n border-color: transparent;\n background: transparent;\n}\n\n.fractal-dropdown-trigger:hover,\n.fractal-dropdown-trigger--tertiary:hover {\n background: var(--bg-surface-1);\n}\n\n.fractal-dropdown-trigger:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px var(--bg-canvas), 0 0 0 4px var(--border-focus);\n}\n\n.fractal-dropdown-icon {\n display: flex;\n flex-shrink: 0;\n color: var(--fg-primary);\n}\n\n.fractal-dropdown-icon svg {\n width: 16px;\n height: 16px;\n}\n\n.fractal-dropdown-icon--trigger svg {\n width: 16px;\n height: 16px;\n}\n\n.fractal-dropdown-selected-text {\n color: var(--fg-primary);\n}\n\n.fractal-dropdown-chevron {\n display: flex;\n flex-shrink: 0;\n color: var(--fg-secondary);\n}\n\n.fractal-dropdown-panel {\n position: absolute;\n z-index: 999999;\n overflow: hidden;\n border-radius: var(--radius-md, 6px);\n border: 1px solid var(--border-subtle);\n background: var(--bg-canvas);\n white-space: nowrap;\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);\n padding: 4px;\n}\n\n.fractal-dropdown-label {\n width: 100%;\n padding: 6px 8px;\n font-size: 0.75rem;\n font-weight: 500;\n color: var(--fg-secondary);\n box-sizing: border-box;\n}\n\n.fractal-dropdown-option {\n display: flex;\n width: 100%;\n align-items: center;\n gap: 8px;\n padding: 6px 8px;\n text-align: left;\n font-size: 0.875rem;\n font-family: var(--font-sans);\n background: none;\n border: none;\n border-radius: var(--radius-sm, 4px);\n cursor: pointer;\n color: var(--fg-primary);\n transition: background-color 0.1s;\n}\n\n.fractal-dropdown-panel--sm .fractal-dropdown-label,\n.fractal-dropdown-panel--sm .fractal-dropdown-option {\n padding: 4px 8px;\n font-size: 0.75rem;\n}\n\n.fractal-dropdown-panel--sm .fractal-dropdown-option {\n gap: 6px;\n}\n\n.fractal-dropdown-option:hover,\n.fractal-dropdown-option:focus-visible {\n background: var(--hover-canvas, var(--bg-surface-2));\n outline: none;\n}\n\n.fractal-dropdown-separator {\n height: 1px;\n margin: 4px -4px;\n background: var(--border-subtle);\n}\n\n.fractal-dropdown-option-text {\n color: var(--fg-primary);\n}\n\n.fractal-dropdown-trailing {\n margin-left: auto;\n display: flex;\n align-items: center;\n padding-left: 8px;\n color: var(--accent-default);\n}\n",".fractal-link {\n display: inline;\n font-family: var(--font-sans);\n font-weight: 500;\n text-decoration: underline;\n text-underline-offset: 2px;\n cursor: pointer;\n transition: opacity 0.15s ease;\n}\n\n.fractal-link:hover { opacity: 0.7; }\n.fractal-link:active { opacity: 0.5; }\n\n/* ── Themes ── */\n\n.fractal-link--default { color: var(--fg-primary); }\n.fractal-link--muted { color: var(--fg-secondary); }\n.fractal-link--accent { color: var(--accent-default); }\n\n/* ── Sizes ── */\n\n.fractal-link--sm { font-size: 0.75rem; }\n.fractal-link--md { font-size: 0.875rem; }\n.fractal-link--lg { font-size: 1rem; }\n",".fractal-chip {\n display: inline-flex;\n align-items: center;\n border-radius: var(--radius-full);\n padding: 1px 8px;\n font-family: var(--font-mono);\n font-size: 0.6875rem;\n font-weight: 400;\n letter-spacing: -0.01em;\n line-height: 1.5;\n white-space: nowrap;\n /* Default tone is neutral — a tone-less <Chip>...</Chip> still renders\n contained. Tone modifiers below override these defaults. */\n background: var(--bg-surface-2);\n border: 1px solid var(--border-subtle);\n color: var(--fg-secondary);\n}\n\n.fractal-chip--neutral {\n background: var(--bg-surface-2);\n border-color: var(--border-subtle);\n color: var(--fg-secondary);\n}\n\n.fractal-chip--success {\n background: var(--success-surface);\n border-color: var(--success-subtle);\n color: var(--success-default);\n}\n\n.fractal-chip--warning {\n background: var(--warning-surface);\n border-color: var(--warning-subtle);\n color: var(--warning-default);\n}\n\n.fractal-chip--error {\n background: var(--error-surface);\n border-color: var(--error-subtle);\n color: var(--error-default);\n}\n\n.fractal-chip--info {\n background: var(--accent-surface);\n border-color: var(--accent-subtle);\n color: var(--accent-default);\n}\n",".fractal-sortable-table {\n font-family: var(--font-sans);\n font-size: 0.875rem;\n}\n\n.fractal-sortable-table-surface {\n overflow: hidden;\n border: 1px solid var(--border-subtle);\n border-radius: var(--radius-xl, 12px);\n background: var(--bg-canvas);\n}\n\n.fractal-sortable-table-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 12px 16px;\n border-bottom: 1px solid var(--border-subtle);\n background: var(--bg-canvas);\n}\n\n.fractal-sortable-table-empty {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--space-7, 32px) var(--space-4, 16px);\n font-size: 0.875rem;\n color: var(--fg-secondary);\n background: var(--bg-canvas);\n}\n\n.fractal-sortable-table-table {\n width: 100%;\n border-collapse: separate;\n border-spacing: 0;\n font-family: var(--font-sans);\n font-size: 0.875rem;\n}\n\n.fractal-sortable-table-thead-row {\n background: var(--bg-surface-1);\n}\n\n.fractal-sortable-table-th {\n text-align: left;\n padding: 12px 16px;\n font-size: 0.75rem;\n font-weight: 500;\n color: var(--fg-secondary);\n border-bottom: 1px solid var(--border-subtle);\n vertical-align: middle;\n white-space: nowrap;\n}\n\n.fractal-sortable-table-th + .fractal-sortable-table-th {\n border-left: 1px solid var(--border-subtle);\n}\n\n/* Sortable header cells delegate padding to the inner button so the entire\n cell area is part of the click + hover target. */\n.fractal-sortable-table-th--sortable {\n padding: 0;\n}\n\n.fractal-sortable-table-sort-button {\n display: flex;\n align-items: center;\n gap: 6px;\n width: 100%;\n background: none;\n border: 0;\n padding: 12px 16px;\n margin: 0;\n font: inherit;\n color: inherit;\n text-align: left;\n cursor: pointer;\n transition: color 0.15s ease, background 0.15s ease;\n}\n\n.fractal-sortable-table-sort-button:hover {\n color: var(--fg-primary);\n background: var(--hover-surface);\n}\n\n.fractal-sortable-table-sort-button--active {\n color: var(--accent-default);\n}\n\n.fractal-sortable-table-sort-button:focus-visible {\n outline: 2px solid var(--border-focus);\n outline-offset: 2px;\n border-radius: 2px;\n}\n\n/* Sort icon: hidden at rest, revealed on hover. Active sort stays visible\n regardless of hover so the reader can always see which column is sorted. */\n.fractal-sortable-table-sort-icon {\n display: inline-flex;\n align-items: center;\n color: var(--fg-tertiary, var(--fg-secondary));\n opacity: 0;\n transition: opacity 0.15s ease, color 0.15s ease;\n}\n\n.fractal-sortable-table-sort-button:hover .fractal-sortable-table-sort-icon,\n.fractal-sortable-table-sort-button:focus-visible .fractal-sortable-table-sort-icon {\n opacity: 1;\n}\n\n.fractal-sortable-table-sort-button--active .fractal-sortable-table-sort-icon {\n opacity: 1;\n color: var(--accent-default);\n}\n\n.fractal-sortable-table-row {\n background: var(--bg-canvas);\n transition: background 120ms ease;\n}\n\n.fractal-sortable-table-row:hover {\n background: var(--bg-surface-1);\n}\n\n.fractal-sortable-table-row + .fractal-sortable-table-row .fractal-sortable-table-td {\n border-top: 1px solid var(--border-subtle);\n}\n\n.fractal-sortable-table-row--highlighted {\n background: var(--bg-surface-1);\n}\n\n.fractal-sortable-table-row--highlighted:hover {\n background: var(--bg-surface-2);\n}\n\n.fractal-sortable-table-td {\n padding: 14px 16px;\n color: var(--fg-primary);\n line-height: 1.55;\n vertical-align: top;\n overflow-wrap: anywhere;\n}\n\n.fractal-sortable-table-td + .fractal-sortable-table-td {\n border-left: 1px solid var(--border-subtle);\n}\n\n.fractal-sortable-table--sm .fractal-sortable-table-th,\n.fractal-sortable-table--sm .fractal-sortable-table-sort-button {\n padding: 8px 12px;\n}\n\n.fractal-sortable-table--sm .fractal-sortable-table-td {\n padding: 10px 12px;\n}\n\n.fractal-sortable-table--lg .fractal-sortable-table-th,\n.fractal-sortable-table--lg .fractal-sortable-table-sort-button {\n padding: 18px 24px;\n}\n\n.fractal-sortable-table--lg .fractal-sortable-table-td {\n padding: 22px 24px;\n}\n",".fractal-tabs {\n font-family: var(--font-sans);\n font-size: 0.875rem;\n}\n\n.fractal-tabs-list {\n display: flex;\n gap: 24px;\n border-bottom: 1px solid var(--border-subtle);\n margin-bottom: 16px;\n}\n\n.fractal-tabs-trigger {\n position: relative;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 10px 0;\n background: none;\n border: 0;\n font: inherit;\n font-size: 0.875rem;\n font-weight: 400;\n color: var(--fg-secondary);\n cursor: pointer;\n transition: color 0.15s ease, box-shadow 0.15s ease;\n box-shadow: inset 0 -1px 0 transparent;\n margin-bottom: -1px;\n}\n\n.fractal-tabs-trigger:hover:not(.fractal-tabs-trigger--active):not(.fractal-tabs-trigger--disabled) {\n color: var(--fg-primary);\n}\n\n.fractal-tabs-trigger:focus-visible {\n outline: 2px solid var(--border-focus);\n outline-offset: 2px;\n border-radius: 2px;\n}\n\n.fractal-tabs-trigger--active {\n color: var(--accent-default);\n font-weight: 500;\n box-shadow: inset 0 -1px 0 var(--accent-default);\n}\n\n.fractal-tabs-trigger--disabled {\n color: var(--fg-disabled, var(--fg-secondary));\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.fractal-tabs-panel {\n font-size: 0.875rem;\n color: var(--fg-primary);\n}\n\n.fractal-tabs-panel[hidden] {\n display: none;\n}\n",".fractal-disclosure {\n font-family: var(--font-sans);\n font-size: 0.875rem;\n}\n\n.fractal-disclosure--card {\n border: 1px solid var(--border-subtle);\n border-radius: 8px;\n background: var(--bg-canvas);\n overflow: hidden;\n}\n\n.fractal-disclosure-trigger {\n display: flex;\n align-items: center;\n gap: 8px;\n width: 100%;\n padding: 12px 16px;\n background: transparent;\n border: 0;\n font: inherit;\n font-size: 0.875rem;\n font-weight: 500;\n color: var(--fg-primary);\n text-align: left;\n cursor: pointer;\n transition: background 0.15s ease;\n}\n\n.fractal-disclosure-trigger:hover {\n background: var(--bg-surface-1);\n}\n\n.fractal-disclosure-trigger:focus-visible {\n outline: 2px solid var(--border-focus);\n outline-offset: -2px;\n}\n\n.fractal-disclosure--open .fractal-disclosure-trigger {\n border-bottom: 1px solid var(--border-subtle);\n}\n\n.fractal-disclosure-icon {\n display: inline-flex;\n align-items: center;\n color: var(--fg-secondary);\n flex-shrink: 0;\n}\n\n.fractal-disclosure-title {\n flex: 1;\n min-width: 0;\n}\n\n.fractal-disclosure-meta {\n font-size: 0.75rem;\n font-weight: 400;\n color: var(--fg-secondary);\n flex-shrink: 0;\n}\n\n.fractal-disclosure-panel[hidden] {\n display: none;\n}\n\n.fractal-disclosure-panel-inner {\n padding: 16px;\n color: var(--fg-primary);\n font-size: 0.875rem;\n line-height: 1.55;\n}\n\n/* Plain variant: no card chrome — for use inside another card or list */\n.fractal-disclosure:not(.fractal-disclosure--card) .fractal-disclosure-trigger {\n padding: 8px 0;\n}\n\n.fractal-disclosure:not(.fractal-disclosure--card).fractal-disclosure--open .fractal-disclosure-trigger {\n border-bottom: 0;\n}\n\n.fractal-disclosure:not(.fractal-disclosure--card) .fractal-disclosure-panel-inner {\n padding: 4px 0 12px 24px;\n}\n",".fractal-sidebar {\n --fractal-sidebar-width: 232px;\n\n box-sizing: border-box;\n display: flex;\n width: var(--fractal-sidebar-width);\n min-width: var(--fractal-sidebar-width);\n min-height: 100%;\n flex-direction: column;\n background: var(--bg-surface-1);\n border-right: 1px solid var(--nav-border);\n color: var(--fg-primary);\n font-family: var(--font-sans);\n}\n\n.fractal-sidebar__header {\n display: flex;\n min-height: 48px;\n align-items: center;\n padding: 0 var(--space-4);\n border-bottom: 1px solid var(--border-subtle);\n}\n\n.fractal-sidebar__brand {\n display: inline-flex;\n min-width: 0;\n align-items: center;\n gap: var(--space-2);\n padding: var(--space-1);\n border: 0;\n border-radius: var(--radius-md);\n background: transparent;\n color: var(--fg-primary);\n cursor: pointer;\n font: inherit;\n text-align: left;\n transition: background-color var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);\n}\n\n.fractal-sidebar__brand:hover {\n background: var(--nav-hover);\n}\n\n.fractal-sidebar__brand:active {\n transform: scale(0.98);\n}\n\n.fractal-sidebar__brand:focus-visible,\n.fractal-sidebar__nav-item:focus-visible {\n outline: 2px solid var(--border-focus);\n outline-offset: 2px;\n}\n\n.fractal-sidebar__nav {\n display: flex;\n flex: 1;\n flex-direction: column;\n gap: 0;\n overflow-y: auto;\n padding: var(--space-2);\n}\n\n.fractal-sidebar__section {\n display: flex;\n flex-direction: column;\n gap: 1px;\n}\n\n.fractal-sidebar__section + .fractal-sidebar__section {\n position: relative;\n margin-top: var(--space-2);\n padding-top: var(--space-2);\n}\n\n.fractal-sidebar__section + .fractal-sidebar__section::before {\n position: absolute;\n top: 0;\n right: var(--space-2);\n left: var(--space-2);\n height: 1px;\n background: var(--border-subtle);\n content: '';\n}\n\n.fractal-sidebar__nav-item {\n display: flex;\n width: 100%;\n min-height: 36px;\n align-items: center;\n gap: 10px;\n padding: 8px 10px;\n border: 0;\n border-radius: var(--radius-md);\n background: transparent;\n color: var(--fg-secondary);\n cursor: pointer;\n font-family: var(--font-sans);\n font-size: 0.875rem;\n font-weight: 400;\n line-height: 1.25;\n text-align: left;\n transition: background-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);\n}\n\n.fractal-sidebar__nav-item:hover {\n background: var(--nav-hover);\n color: var(--fg-primary);\n}\n\n.fractal-sidebar__nav-item[data-active] {\n background: var(--nav-selected);\n color: var(--fg-primary);\n font-weight: 500;\n}\n\n.fractal-sidebar__nav-item:active {\n transform: scale(0.99);\n}\n\n.fractal-sidebar__nav-item-icon {\n display: inline-flex;\n width: 18px;\n height: 18px;\n flex: 0 0 18px;\n align-items: center;\n justify-content: center;\n}\n\n.fractal-sidebar__nav-item-icon > svg {\n width: 18px;\n height: 18px;\n}\n\n.fractal-sidebar__nav-item-label {\n min-width: 0;\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.fractal-sidebar__nav-item-end {\n color: var(--fg-tertiary);\n font-family: var(--font-mono);\n font-size: 0.6875rem;\n line-height: 1;\n}\n\n.fractal-sidebar__footer {\n padding: var(--space-2);\n border-top: 1px solid var(--border-subtle);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fractal-sidebar__brand,\n .fractal-sidebar__nav-item {\n transition: none;\n }\n}\n",".fractal-page-header {\n display: flex;\n min-height: 48px;\n align-items: center;\n justify-content: space-between;\n gap: var(--space-5);\n color: var(--fg-primary);\n font-family: var(--font-sans);\n}\n\n.fractal-page-header__content {\n min-width: 0;\n}\n\n.fractal-page-header__title {\n margin: 0;\n color: var(--fg-primary);\n font-family: var(--font-sans);\n font-size: 1rem;\n font-weight: 500;\n line-height: 1.4;\n}\n\n.fractal-page-header__description {\n margin: var(--space-1) 0 0;\n color: var(--fg-secondary);\n font-size: 0.875rem;\n font-weight: 400;\n line-height: 1.4;\n}\n\n.fractal-page-header__actions {\n display: flex;\n flex: 0 0 auto;\n align-items: center;\n gap: var(--space-2);\n}\n\n@media (max-width: 640px) {\n .fractal-page-header {\n align-items: flex-start;\n flex-direction: column;\n gap: var(--space-3);\n }\n\n .fractal-page-header__actions {\n width: 100%;\n }\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/components/Button/Button.css","../src/components/Card/Card.css","../src/components/PromptCard/PromptCard.css","../src/components/Input/Input.css","../src/components/Label/Label.css","../src/components/Alert/Alert.css","../src/components/Toggle/Toggle.css","../src/components/Modal/Modal.css","../src/components/DataTable/DataTable.css","../src/components/Dropdown/Dropdown.css","../src/components/Link/Link.css","../src/components/Chip/Chip.css","../src/components/SortableTable/SortableTable.css","../src/components/Tabs/Tabs.css","../src/components/Disclosure/Disclosure.css","../src/components/Sidebar/Sidebar.css","../src/components/PageHeader/PageHeader.css","../src/components/SidePanel/SidePanel.css","../src/components/Textarea/Textarea.css"],"sourcesContent":[".fractal-button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n white-space: nowrap;\n font-weight: 400;\n font-family: var(--font-sans);\n line-height: 1;\n text-decoration: none;\n box-sizing: border-box;\n transform: scale(1);\n transition: transform 120ms cubic-bezier(0.16, 1, 0.3, 1);\n}\n\n/* Press: subtle shrink, then expand on release. 120ms / ease-out per motion guide. */\n.fractal-button--primary:active:not(:disabled),\n.fractal-button--secondary:active:not(:disabled),\n.fractal-button--ghost:active:not(:disabled),\n.fractal-button--danger:active:not(:disabled) {\n transform: scale(0.97);\n}\n\n/* Focus ring: 2px --border-focus, 2px offset. Per principles.md Focus section. */\n.fractal-button:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px var(--bg-canvas, #fff), 0 0 0 4px var(--border-focus, var(--blue-500));\n}\n\n.fractal-button:disabled {\n opacity: 0.5;\n pointer-events: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fractal-button {\n transition-duration: 0.01ms;\n }\n}\n",".fractal-card {\n border-radius: var(--radius-lg, 8px);\n border: 1px solid var(--border-subtle);\n background-color: var(--bg-surface-1);\n color: var(--fg-primary);\n box-shadow: var(--shadow-xs);\n font-family: var(--font-sans);\n}\n\n.fractal-card-header {\n display: flex;\n flex-direction: column;\n gap: 6px;\n padding: var(--space-6, 24px);\n}\n\n.fractal-card-title {\n margin: 0;\n font-size: 1.5rem;\n font-weight: 600;\n line-height: 1;\n letter-spacing: -0.02em;\n color: var(--fg-primary);\n}\n\n.fractal-card-description {\n margin: 0;\n font-size: 0.875rem;\n color: var(--fg-secondary);\n}\n\n.fractal-card-content {\n padding: 0 var(--space-6, 24px) var(--space-6, 24px);\n}\n\n.fractal-card-footer {\n display: flex;\n align-items: center;\n padding: 0 var(--space-6, 24px) var(--space-6, 24px);\n}\n\n/* ---- FeatureCard ---- */\n\n.fractal-feature-card {\n border: 1px solid var(--border-subtle);\n border-radius: var(--radius-xl, 12px);\n background: var(--bg-canvas);\n padding: 40px; /* var(--space-8) */\n display: flex;\n flex-direction: column;\n font-family: var(--font-sans);\n transition: background 200ms ease;\n}\n\n.fractal-feature-card:hover {\n background: var(--bg-surface-1);\n}\n\n.fractal-feature-card__icon {\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n color: var(--fg-primary);\n margin-bottom: 24px; /* var(--space-6) */\n}\n\n.fractal-feature-card__title {\n margin: 0 0 8px; /* var(--space-2) below title */\n font-size: 1rem;\n font-weight: 600;\n line-height: 1.5;\n color: var(--fg-primary);\n}\n\n.fractal-feature-card__description {\n margin: 0;\n font-size: 0.875rem;\n line-height: 1.4;\n color: var(--fg-secondary);\n}\n\n/* ---- ProjectCard ---- */\n\n.fractal-folder-card {\n display: flex;\n flex-direction: column;\n border: 1px solid var(--border-subtle);\n border-radius: var(--radius-lg, 8px);\n background: var(--bg-canvas);\n cursor: pointer;\n text-align: left;\n overflow: hidden;\n font-family: var(--font-sans);\n transition: background 150ms ease, border-color 150ms ease, transform 120ms cubic-bezier(0.16, 1, 0.3, 1);\n}\n\n.fractal-folder-card:hover {\n background: var(--bg-surface-1);\n}\n\n.fractal-folder-card:active:not(:disabled) {\n transform: scale(0.97);\n}\n\n.fractal-folder-card--selected {\n border-color: var(--accent-default);\n}\n\n.fractal-folder-card--selected:hover {\n background: var(--accent-surface);\n}\n\n.fractal-folder-card:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px var(--bg-canvas, #fff), 0 0 0 4px var(--accent-default, var(--blue-500));\n}\n\n.fractal-folder-card__header {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 16px;\n}\n\n.fractal-folder-card__icon {\n flex-shrink: 0;\n color: var(--fg-secondary);\n}\n\n.fractal-folder-card__name {\n font-size: 0.875rem;\n font-weight: 500;\n color: var(--fg-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.fractal-folder-card__footer {\n padding: 8px 16px;\n}\n\n.fractal-folder-card__sessions {\n font-size: 0.75rem;\n color: var(--fg-secondary);\n}\n",".fractal-prompt-card {\n --prompt-card-bg: var(--accent-surface);\n --prompt-card-bg-hover: var(--accent-subtle);\n --prompt-card-stroke: var(--accent-surface-stroke);\n --prompt-card-icon-bg: var(--accent-subtle);\n --prompt-card-icon-color: var(--accent-default);\n --prompt-card-text: var(--accent-text);\n\n width: 100%;\n min-height: 58px;\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px;\n border: 1px solid var(--prompt-card-stroke);\n border-radius: var(--radius-lg, 8px);\n background-color: var(--prompt-card-bg);\n color: var(--prompt-card-text);\n cursor: pointer;\n font-family: var(--font-sans);\n text-align: left;\n box-sizing: border-box;\n transform: scale(1);\n transition:\n background-color 200ms ease-out,\n border-color 200ms ease-out,\n transform 120ms cubic-bezier(0.16, 1, 0.3, 1),\n opacity 150ms ease;\n}\n\n.fractal-prompt-card:hover,\n.fractal-prompt-card--highlighted {\n background-color: var(--prompt-card-bg-hover);\n}\n\n.fractal-prompt-card:active:not(:disabled) {\n transform: scale(0.97);\n}\n\n.fractal-prompt-card:disabled {\n --prompt-card-bg: var(--bg-surface-1);\n --prompt-card-bg-hover: var(--bg-surface-1);\n --prompt-card-stroke: var(--border-subtle);\n --prompt-card-icon-bg: var(--bg-surface-2);\n --prompt-card-icon-color: var(--fg-tertiary);\n --prompt-card-text: var(--fg-tertiary);\n\n cursor: not-allowed;\n opacity: 0.72;\n}\n\n.fractal-prompt-card:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px var(--bg-canvas, #fff), 0 0 0 4px var(--border-focus, var(--blue-500));\n}\n\n.fractal-prompt-card__icon {\n width: 40px;\n height: 40px;\n min-width: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: var(--radius-sm, 4px);\n background-color: var(--prompt-card-icon-bg);\n color: var(--prompt-card-icon-color);\n transition: background-color 200ms ease-out, color 200ms ease-out;\n}\n\n.fractal-prompt-card:hover:not(:disabled) .fractal-prompt-card__icon,\n.fractal-prompt-card--highlighted:not(:disabled) .fractal-prompt-card__icon {\n background-color: var(--prompt-card-icon-color);\n color: var(--fg-inverse);\n}\n\n.fractal-prompt-card__title {\n min-width: 0;\n color: var(--prompt-card-text);\n font-size: 0.875rem;\n font-weight: 400;\n line-height: 1.35;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.fractal-prompt-card--blue {\n --prompt-card-bg: var(--accent-surface);\n --prompt-card-bg-hover: var(--accent-subtle);\n --prompt-card-stroke: var(--accent-surface-stroke);\n --prompt-card-icon-bg: var(--accent-subtle);\n --prompt-card-icon-color: var(--accent-default);\n --prompt-card-text: var(--accent-text);\n}\n\n.fractal-prompt-card--pink {\n --prompt-card-bg: var(--pink-surface);\n --prompt-card-bg-hover: var(--pink-subtle);\n --prompt-card-stroke: var(--pink-surface-stroke);\n --prompt-card-icon-bg: var(--pink-subtle);\n --prompt-card-icon-color: var(--pink-default);\n --prompt-card-text: var(--pink-text);\n}\n\n.fractal-prompt-card--orange {\n --prompt-card-bg: var(--orange-surface);\n --prompt-card-bg-hover: var(--orange-subtle);\n --prompt-card-stroke: var(--orange-surface-stroke);\n --prompt-card-icon-bg: var(--orange-subtle);\n --prompt-card-icon-color: var(--orange-default);\n --prompt-card-text: var(--orange-text);\n}\n\n.fractal-prompt-card--green {\n --prompt-card-bg: var(--success-surface);\n --prompt-card-bg-hover: var(--success-subtle);\n --prompt-card-stroke: var(--success-surface-stroke);\n --prompt-card-icon-bg: var(--success-subtle);\n --prompt-card-icon-color: var(--success-default);\n --prompt-card-text: var(--success-text);\n}\n\n.fractal-prompt-card--purple {\n --prompt-card-bg: var(--purple-surface);\n --prompt-card-bg-hover: var(--purple-subtle);\n --prompt-card-stroke: var(--purple-surface-stroke);\n --prompt-card-icon-bg: var(--purple-subtle);\n --prompt-card-icon-color: var(--purple-default);\n --prompt-card-text: var(--purple-text);\n}\n\n.fractal-prompt-card--red {\n --prompt-card-bg: var(--error-surface);\n --prompt-card-bg-hover: var(--error-subtle);\n --prompt-card-stroke: var(--error-surface-stroke);\n --prompt-card-icon-bg: var(--error-subtle);\n --prompt-card-icon-color: var(--error-default);\n --prompt-card-text: var(--error-text);\n}\n\n.fractal-prompt-card--yellow {\n --prompt-card-bg: var(--warning-surface);\n --prompt-card-bg-hover: var(--warning-subtle);\n --prompt-card-stroke: var(--warning-surface-stroke);\n --prompt-card-icon-bg: var(--warning-subtle);\n --prompt-card-icon-color: var(--warning-default);\n --prompt-card-text: var(--warning-text);\n}\n\n.fractal-prompt-card--neutral {\n --prompt-card-bg: var(--bg-canvas);\n --prompt-card-bg-hover: var(--bg-surface-1);\n --prompt-card-stroke: var(--border-subtle);\n --prompt-card-icon-bg: var(--bg-surface-2);\n --prompt-card-icon-color: var(--fg-tertiary);\n --prompt-card-text: var(--fg-primary);\n}\n\n.fractal-prompt-grid {\n display: grid;\n grid-template-columns: repeat(3, minmax(0, 1fr));\n gap: 8px;\n}\n\n.fractal-prompt-grid--padded {\n padding: 0.5rem calc(1rem + 1px) 2rem;\n}\n\n.fractal-prompt-grid--compact {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n\n.fractal-prompt-grid--compact > :nth-child(n+5) {\n display: none;\n}\n\n@media (max-width: 639px) {\n .fractal-prompt-grid {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n}\n\n@media (max-width: 419px) {\n .fractal-prompt-grid {\n grid-template-columns: 1fr;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fractal-prompt-card {\n transition-duration: 0.01ms;\n }\n}\n",".fractal-input {\n display: flex;\n height: 40px;\n width: 100%;\n border-radius: var(--radius-sm, 4px);\n border: 1px solid var(--border-default);\n background-color: var(--bg-canvas);\n padding: 8px 12px;\n font-size: 0.875rem;\n font-family: var(--font-sans);\n line-height: 1.5;\n color: var(--fg-primary);\n transition: border-color 0.15s ease, box-shadow 0.15s ease;\n box-sizing: border-box;\n}\n\n.fractal-input::placeholder {\n color: var(--fg-placeholder);\n}\n\n.fractal-input:focus-visible {\n outline: none;\n border-color: var(--border-focus);\n box-shadow: 0 0 0 2px var(--accent-surface);\n}\n\n.fractal-input:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n background-color: var(--bg-surface-1);\n}\n\n.fractal-input[type=\"file\"] {\n border: 0;\n background: transparent;\n font-size: 0.875rem;\n height: auto;\n padding: 0;\n}\n",".fractal-label {\n font-size: 0.875rem;\n font-weight: 500;\n line-height: 1;\n color: var(--fg-primary);\n}\n\n.fractal-label[data-disabled] {\n cursor: not-allowed;\n opacity: 0.7;\n}\n",".fractal-alert {\n display: flex;\n align-items: flex-start;\n gap: 12px;\n width: 100%;\n border-radius: var(--radius-sm, 4px);\n border: 1px solid;\n padding: var(--space-3, 12px) var(--space-4, 16px);\n font-family: var(--font-sans);\n}\n\n/* Icon cell */\n.fractal-alert-icon {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 18px;\n height: 18px;\n font-size: 0.75rem;\n font-weight: 600;\n border-radius: 50%;\n margin-top: 1px;\n}\n\n.fractal-alert-content {\n flex: 1;\n min-width: 0;\n}\n\n.fractal-alert-title {\n margin: 0 0 4px 0;\n font-size: 0.875rem;\n font-weight: 500;\n line-height: 1.4;\n}\n\n.fractal-alert-description {\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n/* ── Variants ── */\n\n.fractal-alert--default {\n background-color: var(--bg-canvas);\n border-color: var(--border-default);\n color: var(--fg-primary);\n}\n.fractal-alert--default .fractal-alert-icon {\n background: var(--bg-surface-2);\n color: var(--fg-secondary);\n}\n\n.fractal-alert--info {\n background-color: var(--accent-surface);\n border-color: var(--accent-default);\n color: var(--fg-primary);\n}\n.fractal-alert--info .fractal-alert-icon {\n background: var(--accent-default);\n color: var(--fg-inverse);\n}\n\n.fractal-alert--success {\n background-color: var(--success-surface);\n border-color: var(--success-default);\n color: var(--fg-primary);\n}\n.fractal-alert--success .fractal-alert-icon {\n background: var(--success-default);\n color: var(--fg-inverse);\n}\n\n.fractal-alert--warning {\n background-color: var(--warning-surface);\n border-color: var(--warning-default);\n color: var(--fg-primary);\n}\n.fractal-alert--warning .fractal-alert-icon {\n background: var(--warning-default);\n color: var(--fg-inverse);\n}\n\n.fractal-alert--error {\n background-color: var(--error-surface);\n border-color: var(--error-default);\n color: var(--fg-primary);\n}\n.fractal-alert--error .fractal-alert-icon {\n background: var(--error-default);\n color: var(--fg-inverse);\n}\n",".fractal-toggle {\n display: inline-flex;\n align-items: center;\n gap: var(--space-2, 8px);\n background: none;\n border: none;\n cursor: pointer;\n padding: 0;\n font-family: var(--font-sans);\n}\n\n.fractal-toggle-track {\n position: relative;\n width: 32px;\n height: 18px;\n border-radius: var(--radius-full, 9999px);\n background-color: var(--bg-surface-2);\n transition: background-color 0.2s;\n flex-shrink: 0;\n}\n\n.fractal-toggle-track--checked {\n background-color: var(--accent-default);\n}\n\n.fractal-toggle-thumb {\n position: absolute;\n top: 2px;\n left: 2px;\n width: 14px;\n height: 14px;\n border-radius: 50%;\n background-color: #fff;\n transition: left 0.2s;\n}\n\n.fractal-toggle-thumb--checked {\n left: 16px;\n}\n\n.fractal-toggle-label {\n font-size: 0.8125rem;\n color: var(--fg-primary);\n user-select: none;\n}\n",".fractal-modal-overlay {\n position: fixed;\n inset: 0;\n background-color: var(--overlay, rgba(0, 0, 0, 0.5));\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 9998;\n}\n\n.fractal-modal-panel {\n background: var(--bg-canvas);\n border: 1px solid var(--border-subtle);\n border-radius: var(--radius-lg, 8px);\n box-shadow: var(--shadow-lg);\n padding: var(--space-6, 24px);\n max-width: 90vw;\n font-family: var(--font-sans);\n}\n\n.fractal-modal-panel--sm {\n width: 420px;\n}\n\n.fractal-modal-panel--md {\n width: 756px;\n}\n\n.fractal-modal-panel--lg {\n width: calc(100vw - 4rem);\n height: calc(100vh - 4rem);\n max-height: 100vh;\n display: flex;\n flex-direction: column;\n}\n\n.fractal-modal-panel--danger {\n border-color: var(--error-subtle);\n}\n\n.fractal-modal-panel--warn {\n border-color: var(--warning-subtle);\n}\n\n.fractal-modal-title-row {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: var(--space-4, 16px);\n}\n\n.fractal-modal-title {\n margin: 0;\n font-size: 1rem;\n font-weight: 600;\n color: var(--fg-primary);\n}\n\n.fractal-modal-title--danger {\n color: var(--error-default);\n}\n\n.fractal-modal-title--warn {\n color: var(--warning-default);\n}\n\n.fractal-modal-close {\n background: none;\n border: none;\n cursor: pointer;\n color: var(--fg-secondary);\n padding: 4px;\n border-radius: var(--radius-sm, 4px);\n display: flex;\n align-items: center;\n}\n\n.fractal-modal-close:hover {\n color: var(--fg-primary);\n background: var(--bg-surface-1);\n}\n\n.fractal-modal-body {\n font-size: 0.875rem;\n color: var(--fg-secondary);\n}\n\n.fractal-modal-body--lg {\n flex: 1;\n min-height: 0;\n overflow: hidden;\n}\n\n.fractal-modal-footer {\n display: flex;\n justify-content: flex-end;\n gap: var(--space-2, 8px);\n margin-top: var(--space-4, 16px);\n}\n",".fractal-datatable {\n font-family: var(--font-sans);\n font-size: 0.875rem;\n}\n\n.fractal-datatable-surface {\n overflow: hidden;\n border: 1px solid var(--border-subtle);\n border-radius: var(--radius-xl, 12px);\n background: var(--bg-canvas);\n}\n\n.fractal-datatable-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 12px 16px;\n border-bottom: 1px solid var(--border-subtle);\n background: var(--bg-canvas);\n}\n\n.fractal-datatable-empty {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--space-7, 32px) var(--space-4, 16px);\n font-size: 0.875rem;\n color: var(--fg-secondary);\n background: var(--bg-canvas);\n}\n\n/* ── Table ── */\n\n.fractal-datatable-table {\n width: 100%;\n border-collapse: separate;\n border-spacing: 0;\n font-family: var(--font-sans);\n font-size: 0.875rem;\n}\n\n/* Header row — neutral grey tile */\n.fractal-datatable-thead-row {\n background: var(--bg-surface-1);\n}\n\n.fractal-datatable-th {\n text-align: left;\n padding: 12px 16px;\n font-size: 0.75rem;\n font-weight: 500;\n color: var(--fg-secondary);\n border-bottom: 1px solid var(--border-subtle);\n vertical-align: middle;\n}\n\n.fractal-datatable-th + .fractal-datatable-th {\n border-left: 1px solid var(--border-subtle);\n}\n\n/* Data rows — white tiles */\n.fractal-datatable-row {\n background: var(--bg-canvas);\n transition: background 120ms ease;\n}\n\n.fractal-datatable-row:hover {\n background: var(--bg-surface-1);\n}\n\n.fractal-datatable-td {\n padding: 14px 16px;\n color: var(--fg-primary);\n line-height: 1.55;\n vertical-align: top;\n overflow-wrap: anywhere;\n}\n\n.fractal-datatable-td + .fractal-datatable-td {\n border-left: 1px solid var(--border-subtle);\n}\n\n.fractal-datatable-row + .fractal-datatable-row .fractal-datatable-td {\n border-top: 1px solid var(--border-subtle);\n}\n\n.fractal-datatable--sm .fractal-datatable-th {\n padding: 8px 12px;\n}\n\n.fractal-datatable--sm .fractal-datatable-td {\n padding: 10px 12px;\n}\n\n.fractal-datatable--lg .fractal-datatable-th {\n padding: 18px 24px;\n}\n\n.fractal-datatable--lg .fractal-datatable-td {\n padding: 22px 24px;\n}\n",".fractal-dropdown {\n position: relative;\n display: inline-block;\n}\n\n.fractal-dropdown-trigger {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n border-radius: var(--radius-md, 6px);\n border: 1px solid var(--border-subtle);\n background: var(--bg-canvas);\n padding: 8px 12px;\n text-align: left;\n font-size: 0.875rem;\n font-family: var(--font-sans);\n color: var(--fg-primary);\n cursor: pointer;\n transition: background-color 0.15s;\n}\n\n.fractal-dropdown-trigger--sm {\n gap: 6px;\n padding: 4px 8px;\n font-size: 0.75rem;\n}\n\n.fractal-dropdown-trigger--tertiary {\n border-color: transparent;\n background: transparent;\n}\n\n.fractal-dropdown-trigger:hover,\n.fractal-dropdown-trigger--tertiary:hover {\n background: var(--bg-surface-1);\n}\n\n.fractal-dropdown-trigger:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px var(--bg-canvas), 0 0 0 4px var(--border-focus);\n}\n\n.fractal-dropdown-icon {\n display: flex;\n flex-shrink: 0;\n color: var(--fg-primary);\n}\n\n.fractal-dropdown-icon svg {\n width: 16px;\n height: 16px;\n}\n\n.fractal-dropdown-icon--trigger svg {\n width: 16px;\n height: 16px;\n}\n\n.fractal-dropdown-selected-text {\n color: var(--fg-primary);\n}\n\n.fractal-dropdown-chevron {\n display: flex;\n flex-shrink: 0;\n color: var(--fg-secondary);\n}\n\n.fractal-dropdown-panel {\n position: absolute;\n z-index: 999999;\n overflow: hidden;\n border-radius: var(--radius-md, 6px);\n border: 1px solid var(--border-subtle);\n background: var(--bg-canvas);\n white-space: nowrap;\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);\n padding: 4px;\n}\n\n.fractal-dropdown-label {\n width: 100%;\n padding: 6px 8px;\n font-size: 0.75rem;\n font-weight: 500;\n color: var(--fg-secondary);\n box-sizing: border-box;\n}\n\n.fractal-dropdown-option {\n display: flex;\n width: 100%;\n align-items: center;\n gap: 8px;\n padding: 6px 8px;\n text-align: left;\n font-size: 0.875rem;\n font-family: var(--font-sans);\n background: none;\n border: none;\n border-radius: var(--radius-sm, 4px);\n cursor: pointer;\n color: var(--fg-primary);\n transition: background-color 0.1s;\n}\n\n.fractal-dropdown-panel--sm .fractal-dropdown-label,\n.fractal-dropdown-panel--sm .fractal-dropdown-option {\n padding: 4px 8px;\n font-size: 0.75rem;\n}\n\n.fractal-dropdown-panel--sm .fractal-dropdown-option {\n gap: 6px;\n}\n\n.fractal-dropdown-option:hover,\n.fractal-dropdown-option:focus-visible {\n background: var(--hover-canvas, var(--bg-surface-2));\n outline: none;\n}\n\n.fractal-dropdown-separator {\n height: 1px;\n margin: 4px -4px;\n background: var(--border-subtle);\n}\n\n.fractal-dropdown-option-text {\n color: var(--fg-primary);\n}\n\n.fractal-dropdown-trailing {\n margin-left: auto;\n display: flex;\n align-items: center;\n padding-left: 8px;\n color: var(--accent-default);\n}\n",".fractal-link {\n display: inline;\n font-family: var(--font-sans);\n font-weight: 500;\n text-decoration: underline;\n text-underline-offset: 2px;\n cursor: pointer;\n transition: opacity 0.15s ease;\n}\n\n.fractal-link:hover { opacity: 0.7; }\n.fractal-link:active { opacity: 0.5; }\n\n/* ── Themes ── */\n\n.fractal-link--default { color: var(--fg-primary); }\n.fractal-link--muted { color: var(--fg-secondary); }\n.fractal-link--accent { color: var(--accent-default); }\n\n/* ── Sizes ── */\n\n.fractal-link--sm { font-size: 0.75rem; }\n.fractal-link--md { font-size: 0.875rem; }\n.fractal-link--lg { font-size: 1rem; }\n",".fractal-chip {\n display: inline-flex;\n align-items: center;\n border-radius: var(--radius-full);\n padding: 1px 8px;\n font-family: var(--font-mono);\n font-size: 0.6875rem;\n font-weight: 400;\n letter-spacing: -0.01em;\n line-height: 1.5;\n white-space: nowrap;\n /* Default tone is neutral — a tone-less <Chip>...</Chip> still renders\n contained. Tone modifiers below override these defaults. */\n background: var(--bg-surface-2);\n border: 1px solid var(--border-subtle);\n color: var(--fg-secondary);\n}\n\n.fractal-chip--neutral {\n background: var(--bg-surface-2);\n border-color: var(--border-subtle);\n color: var(--fg-secondary);\n}\n\n.fractal-chip--success {\n background: var(--success-surface);\n border-color: var(--success-subtle);\n color: var(--success-default);\n}\n\n.fractal-chip--warning {\n background: var(--warning-surface);\n border-color: var(--warning-subtle);\n color: var(--warning-default);\n}\n\n.fractal-chip--error {\n background: var(--error-surface);\n border-color: var(--error-subtle);\n color: var(--error-default);\n}\n\n.fractal-chip--info {\n background: var(--accent-surface);\n border-color: var(--accent-subtle);\n color: var(--accent-default);\n}\n",".fractal-sortable-table {\n font-family: var(--font-sans);\n font-size: 0.875rem;\n}\n\n.fractal-sortable-table-surface {\n overflow: hidden;\n border: 1px solid var(--border-subtle);\n border-radius: var(--radius-xl, 12px);\n background: var(--bg-canvas);\n}\n\n.fractal-sortable-table-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 12px 16px;\n border-bottom: 1px solid var(--border-subtle);\n background: var(--bg-canvas);\n}\n\n.fractal-sortable-table-empty {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--space-7, 32px) var(--space-4, 16px);\n font-size: 0.875rem;\n color: var(--fg-secondary);\n background: var(--bg-canvas);\n}\n\n.fractal-sortable-table-table {\n width: 100%;\n border-collapse: separate;\n border-spacing: 0;\n font-family: var(--font-sans);\n font-size: 0.875rem;\n}\n\n.fractal-sortable-table-thead-row {\n background: var(--bg-surface-1);\n}\n\n.fractal-sortable-table-th {\n text-align: left;\n padding: 12px 16px;\n font-size: 0.75rem;\n font-weight: 500;\n color: var(--fg-secondary);\n border-bottom: 1px solid var(--border-subtle);\n vertical-align: middle;\n white-space: nowrap;\n}\n\n.fractal-sortable-table-th + .fractal-sortable-table-th {\n border-left: 1px solid var(--border-subtle);\n}\n\n/* Sortable header cells delegate padding to the inner button so the entire\n cell area is part of the click + hover target. */\n.fractal-sortable-table-th--sortable {\n padding: 0;\n}\n\n.fractal-sortable-table-sort-button {\n display: flex;\n align-items: center;\n gap: 6px;\n width: 100%;\n background: none;\n border: 0;\n padding: 12px 16px;\n margin: 0;\n font: inherit;\n color: inherit;\n text-align: left;\n cursor: pointer;\n transition: color 0.15s ease, background 0.15s ease;\n}\n\n.fractal-sortable-table-sort-button:hover {\n color: var(--fg-primary);\n background: var(--hover-surface);\n}\n\n.fractal-sortable-table-sort-button--active {\n color: var(--accent-default);\n}\n\n.fractal-sortable-table-sort-button:focus-visible {\n outline: 2px solid var(--border-focus);\n outline-offset: 2px;\n border-radius: 2px;\n}\n\n/* Sort icon: hidden at rest, revealed on hover. Active sort stays visible\n regardless of hover so the reader can always see which column is sorted. */\n.fractal-sortable-table-sort-icon {\n display: inline-flex;\n align-items: center;\n color: var(--fg-tertiary, var(--fg-secondary));\n opacity: 0;\n transition: opacity 0.15s ease, color 0.15s ease;\n}\n\n.fractal-sortable-table-sort-button:hover .fractal-sortable-table-sort-icon,\n.fractal-sortable-table-sort-button:focus-visible .fractal-sortable-table-sort-icon {\n opacity: 1;\n}\n\n.fractal-sortable-table-sort-button--active .fractal-sortable-table-sort-icon {\n opacity: 1;\n color: var(--accent-default);\n}\n\n.fractal-sortable-table-row {\n background: var(--bg-canvas);\n transition: background 120ms ease;\n}\n\n.fractal-sortable-table-row:hover {\n background: var(--bg-surface-1);\n}\n\n.fractal-sortable-table-row--interactive { cursor: pointer; }\n\n.fractal-sortable-table-row--interactive:focus-visible {\n position: relative;\n z-index: 1;\n outline: 2px solid var(--border-focus);\n outline-offset: -2px;\n}\n\n.fractal-sortable-table-row + .fractal-sortable-table-row .fractal-sortable-table-td {\n border-top: 1px solid var(--border-subtle);\n}\n\n.fractal-sortable-table-row--highlighted {\n background: var(--bg-surface-1);\n}\n\n.fractal-sortable-table-row--highlighted:hover {\n background: var(--bg-surface-2);\n}\n\n.fractal-sortable-table-td {\n padding: 14px 16px;\n color: var(--fg-primary);\n line-height: 1.55;\n vertical-align: top;\n overflow-wrap: anywhere;\n}\n\n.fractal-sortable-table-td + .fractal-sortable-table-td {\n border-left: 1px solid var(--border-subtle);\n}\n\n.fractal-sortable-table--sm .fractal-sortable-table-th,\n.fractal-sortable-table--sm .fractal-sortable-table-sort-button {\n padding: 8px 12px;\n}\n\n.fractal-sortable-table--sm .fractal-sortable-table-td {\n padding: 10px 12px;\n}\n\n.fractal-sortable-table--lg .fractal-sortable-table-th,\n.fractal-sortable-table--lg .fractal-sortable-table-sort-button {\n padding: 18px 24px;\n}\n\n.fractal-sortable-table--lg .fractal-sortable-table-td {\n padding: 22px 24px;\n}\n",".fractal-tabs {\n font-family: var(--font-sans);\n font-size: 0.875rem;\n}\n\n.fractal-tabs-list {\n display: flex;\n gap: 24px;\n border-bottom: 1px solid var(--border-subtle);\n margin-bottom: 16px;\n}\n\n.fractal-tabs-trigger {\n position: relative;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 10px 0;\n background: none;\n border: 0;\n font: inherit;\n font-size: 0.875rem;\n font-weight: 400;\n color: var(--fg-secondary);\n cursor: pointer;\n transition: color 0.15s ease, box-shadow 0.15s ease;\n box-shadow: inset 0 -1px 0 transparent;\n margin-bottom: -1px;\n}\n\n.fractal-tabs-trigger:hover:not(.fractal-tabs-trigger--active):not(.fractal-tabs-trigger--disabled) {\n color: var(--fg-primary);\n}\n\n.fractal-tabs-trigger:focus-visible {\n outline: 2px solid var(--border-focus);\n outline-offset: 2px;\n border-radius: 2px;\n}\n\n.fractal-tabs-trigger--active {\n color: var(--accent-default);\n font-weight: 500;\n box-shadow: inset 0 -1px 0 var(--accent-default);\n}\n\n.fractal-tabs-trigger--disabled {\n color: var(--fg-disabled, var(--fg-secondary));\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.fractal-tabs-panel {\n font-size: 0.875rem;\n color: var(--fg-primary);\n}\n\n.fractal-tabs-panel[hidden] {\n display: none;\n}\n",".fractal-disclosure {\n font-family: var(--font-sans);\n font-size: 0.875rem;\n}\n\n.fractal-disclosure--card {\n border: 1px solid var(--border-subtle);\n border-radius: 8px;\n background: var(--bg-canvas);\n overflow: hidden;\n}\n\n.fractal-disclosure-trigger {\n display: flex;\n align-items: center;\n gap: 8px;\n width: 100%;\n padding: 12px 16px;\n background: transparent;\n border: 0;\n font: inherit;\n font-size: 0.875rem;\n font-weight: 500;\n color: var(--fg-primary);\n text-align: left;\n cursor: pointer;\n transition: background 0.15s ease;\n}\n\n.fractal-disclosure-trigger:hover {\n background: var(--bg-surface-1);\n}\n\n.fractal-disclosure-trigger:focus-visible {\n outline: 2px solid var(--border-focus);\n outline-offset: -2px;\n}\n\n.fractal-disclosure--open .fractal-disclosure-trigger {\n border-bottom: 1px solid var(--border-subtle);\n}\n\n.fractal-disclosure-icon {\n display: inline-flex;\n align-items: center;\n color: var(--fg-secondary);\n flex-shrink: 0;\n}\n\n.fractal-disclosure-title {\n flex: 1;\n min-width: 0;\n}\n\n.fractal-disclosure-meta {\n font-size: 0.75rem;\n font-weight: 400;\n color: var(--fg-secondary);\n flex-shrink: 0;\n}\n\n.fractal-disclosure-panel[hidden] {\n display: none;\n}\n\n.fractal-disclosure-panel-inner {\n padding: 16px;\n color: var(--fg-primary);\n font-size: 0.875rem;\n line-height: 1.55;\n}\n\n/* Plain variant: no card chrome — for use inside another card or list */\n.fractal-disclosure:not(.fractal-disclosure--card) .fractal-disclosure-trigger {\n padding: 8px 0;\n}\n\n.fractal-disclosure:not(.fractal-disclosure--card).fractal-disclosure--open .fractal-disclosure-trigger {\n border-bottom: 0;\n}\n\n.fractal-disclosure:not(.fractal-disclosure--card) .fractal-disclosure-panel-inner {\n padding: 4px 0 12px 24px;\n}\n",".fractal-sidebar {\n --fractal-sidebar-width: 232px;\n\n box-sizing: border-box;\n display: flex;\n width: var(--fractal-sidebar-width);\n min-width: var(--fractal-sidebar-width);\n min-height: 100%;\n flex-direction: column;\n background: var(--bg-surface-1);\n border-right: 1px solid var(--nav-border);\n color: var(--fg-primary);\n font-family: var(--font-sans);\n}\n\n.fractal-sidebar__header {\n display: flex;\n min-height: 48px;\n align-items: center;\n padding: 0 var(--space-4);\n border-bottom: 1px solid var(--border-subtle);\n}\n\n.fractal-sidebar__brand {\n display: inline-flex;\n min-width: 0;\n align-items: center;\n gap: var(--space-2);\n padding: var(--space-1);\n border: 0;\n border-radius: var(--radius-md);\n background: transparent;\n color: var(--fg-primary);\n cursor: pointer;\n font: inherit;\n text-align: left;\n transition: background-color var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);\n}\n\n.fractal-sidebar__brand:hover {\n background: var(--nav-hover);\n}\n\n.fractal-sidebar__brand:active {\n transform: scale(0.98);\n}\n\n.fractal-sidebar__brand:focus-visible,\n.fractal-sidebar__nav-item:focus-visible {\n outline: 2px solid var(--border-focus);\n outline-offset: 2px;\n}\n\n.fractal-sidebar__nav {\n display: flex;\n flex: 1;\n flex-direction: column;\n gap: 0;\n overflow-y: auto;\n padding: var(--space-2);\n}\n\n.fractal-sidebar__section {\n display: flex;\n flex-direction: column;\n gap: 1px;\n}\n\n.fractal-sidebar__section + .fractal-sidebar__section {\n position: relative;\n margin-top: var(--space-2);\n padding-top: var(--space-2);\n}\n\n.fractal-sidebar__section + .fractal-sidebar__section::before {\n position: absolute;\n top: 0;\n right: var(--space-2);\n left: var(--space-2);\n height: 1px;\n background: var(--border-subtle);\n content: '';\n}\n\n.fractal-sidebar__nav-item {\n display: flex;\n width: 100%;\n min-height: 36px;\n align-items: center;\n gap: 10px;\n padding: 8px 10px;\n border: 0;\n border-radius: var(--radius-md);\n background: transparent;\n color: var(--fg-secondary);\n cursor: pointer;\n font-family: var(--font-sans);\n font-size: 0.875rem;\n font-weight: 400;\n line-height: 1.25;\n text-align: left;\n transition: background-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);\n}\n\n.fractal-sidebar__nav-item:hover {\n background: var(--nav-hover);\n color: var(--fg-primary);\n}\n\n.fractal-sidebar__nav-item[data-active] {\n background: var(--nav-selected);\n color: var(--fg-primary);\n font-weight: 500;\n}\n\n.fractal-sidebar__nav-item:active {\n transform: scale(0.99);\n}\n\n.fractal-sidebar__nav-item-icon {\n display: inline-flex;\n width: 18px;\n height: 18px;\n flex: 0 0 18px;\n align-items: center;\n justify-content: center;\n}\n\n.fractal-sidebar__nav-item-icon > svg {\n width: 18px;\n height: 18px;\n}\n\n.fractal-sidebar__nav-item-label {\n min-width: 0;\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.fractal-sidebar__nav-item-end {\n color: var(--fg-tertiary);\n font-family: var(--font-mono);\n font-size: 0.6875rem;\n line-height: 1;\n}\n\n.fractal-sidebar__footer {\n padding: var(--space-2);\n border-top: 1px solid var(--border-subtle);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fractal-sidebar__brand,\n .fractal-sidebar__nav-item {\n transition: none;\n }\n}\n",".fractal-page-header {\n display: flex;\n min-height: 48px;\n align-items: center;\n justify-content: space-between;\n gap: var(--space-5);\n color: var(--fg-primary);\n font-family: var(--font-sans);\n}\n\n.fractal-page-header__content {\n min-width: 0;\n}\n\n.fractal-page-header__title {\n margin: 0;\n color: var(--fg-primary);\n font-size: 1rem;\n font-weight: 500;\n line-height: 1.4;\n}\n\n.fractal-page-header__description {\n margin: var(--space-1) 0 0;\n color: var(--fg-secondary);\n font-size: 0.875rem;\n font-weight: 400;\n line-height: 1.4;\n}\n\n.fractal-page-header__actions {\n display: flex;\n flex: 0 0 auto;\n align-items: center;\n gap: var(--space-2);\n}\n\n@media (max-width: 640px) {\n .fractal-page-header {\n align-items: flex-start;\n flex-direction: column;\n gap: var(--space-3);\n }\n\n .fractal-page-header__actions {\n width: 100%;\n }\n}\n",".fractal-side-panel-overlay {\n position: fixed;\n inset: 0;\n z-index: 9998;\n display: flex;\n justify-content: flex-end;\n background: color-mix(in srgb, var(--fg-primary) 16%, transparent);\n}\n\n.fractal-side-panel {\n display: flex;\n width: min(100vw, 540px);\n height: 100%;\n flex-direction: column;\n border-left: 1px solid var(--border-subtle);\n background: var(--bg-canvas);\n box-shadow: var(--shadow-lg);\n color: var(--fg-primary);\n font-family: var(--font-sans);\n}\n\n.fractal-side-panel--sm { width: min(100vw, 420px); }\n.fractal-side-panel--md { width: min(100vw, 540px); }\n.fractal-side-panel--lg { width: min(100vw, 680px); }\n\n.fractal-side-panel__header {\n display: flex;\n min-height: 72px;\n align-items: flex-start;\n justify-content: space-between;\n gap: var(--space-4);\n padding: var(--space-5) var(--space-6);\n border-bottom: 1px solid var(--border-subtle);\n}\n\n.fractal-side-panel__heading { min-width: 0; }\n\n.fractal-side-panel__title {\n margin: 0;\n font-size: 1rem;\n font-weight: 500;\n line-height: 1.4;\n}\n\n.fractal-side-panel__description {\n margin: var(--space-1) 0 0;\n color: var(--fg-secondary);\n font-size: 0.875rem;\n line-height: 1.4;\n}\n\n.fractal-side-panel__close {\n display: grid;\n width: 32px;\n height: 32px;\n flex: 0 0 auto;\n place-items: center;\n border: 0;\n border-radius: var(--radius-md);\n background: transparent;\n color: var(--fg-secondary);\n cursor: pointer;\n}\n\n.fractal-side-panel__close:hover { background: var(--hover-surface); color: var(--fg-primary); }\n.fractal-side-panel__close:focus-visible { outline: 2px solid var(--border-focus); outline-offset: 2px; }\n\n.fractal-side-panel__body {\n min-height: 0;\n flex: 1;\n overflow: auto;\n padding: var(--space-6);\n}\n\n.fractal-side-panel__footer {\n display: flex;\n justify-content: flex-end;\n gap: var(--space-2);\n padding: var(--space-4) var(--space-6);\n border-top: 1px solid var(--border-subtle);\n}\n\n@media (max-width: 640px) {\n .fractal-side-panel { width: 100%; }\n .fractal-side-panel__header { padding: var(--space-4) var(--space-5); }\n .fractal-side-panel__body { padding: var(--space-5); }\n .fractal-side-panel__footer { padding: var(--space-3) var(--space-5); }\n}\n",".fractal-textarea {\n display: block;\n width: 100%;\n min-height: 120px;\n resize: vertical;\n border: 1px solid var(--border-default);\n border-radius: var(--radius-md);\n background: var(--bg-canvas);\n padding: var(--space-3);\n color: var(--fg-primary);\n font: 0.8125rem/1.55 var(--font-mono);\n}\n\n.fractal-textarea::placeholder { color: var(--fg-placeholder); }\n.fractal-textarea:hover { border-color: var(--fg-tertiary); }\n.fractal-textarea:focus-visible { outline: none; border-color: var(--border-focus); box-shadow: 0 0 0 2px var(--accent-surface); }\n.fractal-textarea:disabled { cursor: not-allowed; opacity: 0.5; background: var(--bg-surface-1); }\n"],"mappings":"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","names":[]}
|
package/dist/index.d.cts
CHANGED
|
@@ -180,8 +180,10 @@ interface SortableTableProps<T> {
|
|
|
180
180
|
sortDirection?: SortDirection;
|
|
181
181
|
onSortChange?: (key: string | null, direction: SortDirection) => void;
|
|
182
182
|
highlightRow?: (row: T, index: number) => boolean;
|
|
183
|
+
/** Invoked when a row is selected. Enables pointer and keyboard row activation. */
|
|
184
|
+
onRowClick?: (row: T, index: number) => void;
|
|
183
185
|
}
|
|
184
|
-
declare function SortableTable<T>({ columns, data, emptyMessage, header, size, className, defaultSortKey, defaultSortDirection, sortKey: controlledKey, sortDirection: controlledDirection, onSortChange, highlightRow, }: SortableTableProps<T>): React.JSX.Element;
|
|
186
|
+
declare function SortableTable<T>({ columns, data, emptyMessage, header, size, className, defaultSortKey, defaultSortDirection, sortKey: controlledKey, sortDirection: controlledDirection, onSortChange, highlightRow, onRowClick, }: SortableTableProps<T>): React.JSX.Element;
|
|
185
187
|
|
|
186
188
|
interface TabItem {
|
|
187
189
|
id: string;
|
|
@@ -236,11 +238,28 @@ interface PageHeaderProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'ti
|
|
|
236
238
|
title: React.ReactNode;
|
|
237
239
|
/** Optional supporting context for the page. */
|
|
238
240
|
description?: React.ReactNode;
|
|
239
|
-
/** Right-aligned action slot.
|
|
241
|
+
/** Right-aligned action slot. Place secondary actions before the primary action. */
|
|
240
242
|
actions?: React.ReactNode;
|
|
241
243
|
}
|
|
242
244
|
declare const PageHeader: React.ForwardRefExoticComponent<PageHeaderProps & React.RefAttributes<HTMLDivElement>>;
|
|
243
245
|
|
|
246
|
+
interface SidePanelProps {
|
|
247
|
+
open: boolean;
|
|
248
|
+
onClose: () => void;
|
|
249
|
+
title: React.ReactNode;
|
|
250
|
+
description?: React.ReactNode;
|
|
251
|
+
children: React.ReactNode;
|
|
252
|
+
footer?: React.ReactNode;
|
|
253
|
+
/** Panel width: sm (420px), md (540px), or lg (680px). */
|
|
254
|
+
size?: 'sm' | 'md' | 'lg';
|
|
255
|
+
className?: string;
|
|
256
|
+
}
|
|
257
|
+
declare function SidePanel({ open, onClose, title, description, children, footer, size, className }: SidePanelProps): React.ReactPortal | null;
|
|
258
|
+
|
|
259
|
+
interface TextareaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {
|
|
260
|
+
}
|
|
261
|
+
declare const Textarea: React.ForwardRefExoticComponent<TextareaProps & React.RefAttributes<HTMLTextAreaElement>>;
|
|
262
|
+
|
|
244
263
|
/**
|
|
245
264
|
* Register an Escape-key dismiss handler with the global priority stack.
|
|
246
265
|
*
|
|
@@ -252,4 +271,4 @@ declare function useEscapeDismiss(priority: number, handler: () => void, enabled
|
|
|
252
271
|
|
|
253
272
|
declare function cn(...inputs: ClassValue[]): string;
|
|
254
273
|
|
|
255
|
-
export { Alert, AlertDescription, AlertTitle, Button, type ButtonColor, type ButtonProps, type ButtonSize, type ButtonType, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Chip, type ChipProps, type ChipTone, DataTable, type DataTableColumn, type DataTableProps, Disclosure, type DisclosureProps, Dropdown, type DropdownItem, type DropdownProps, FeatureCard, type FeatureCardProps, FolderCard, type FolderCardProps, Input, type InputProps, Label, type LabelProps, Link, type LinkProps, type LinkSize, type LinkTheme, Modal, type ModalProps, PageHeader, type PageHeaderProps, PromptCard, type PromptCardProps, type PromptCardTone, PromptGrid, type PromptGridProps, Sidebar, SidebarBrand, SidebarFooter, SidebarHeader, SidebarNav, SidebarNavItem, type SidebarNavItemProps, type SidebarProps, SidebarSection, type SortDirection, SortableTable, type SortableTableColumn, type SortableTableProps, type TabItem, Tabs, type TabsProps, Toggle, type ToggleProps, cn, useEscapeDismiss };
|
|
274
|
+
export { Alert, AlertDescription, AlertTitle, Button, type ButtonColor, type ButtonProps, type ButtonSize, type ButtonType, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Chip, type ChipProps, type ChipTone, DataTable, type DataTableColumn, type DataTableProps, Disclosure, type DisclosureProps, Dropdown, type DropdownItem, type DropdownProps, FeatureCard, type FeatureCardProps, FolderCard, type FolderCardProps, Input, type InputProps, Label, type LabelProps, Link, type LinkProps, type LinkSize, type LinkTheme, Modal, type ModalProps, PageHeader, type PageHeaderProps, PromptCard, type PromptCardProps, type PromptCardTone, PromptGrid, type PromptGridProps, SidePanel, type SidePanelProps, Sidebar, SidebarBrand, SidebarFooter, SidebarHeader, SidebarNav, SidebarNavItem, type SidebarNavItemProps, type SidebarProps, SidebarSection, type SortDirection, SortableTable, type SortableTableColumn, type SortableTableProps, type TabItem, Tabs, type TabsProps, Textarea, type TextareaProps, Toggle, type ToggleProps, cn, useEscapeDismiss };
|
package/dist/index.d.ts
CHANGED
|
@@ -180,8 +180,10 @@ interface SortableTableProps<T> {
|
|
|
180
180
|
sortDirection?: SortDirection;
|
|
181
181
|
onSortChange?: (key: string | null, direction: SortDirection) => void;
|
|
182
182
|
highlightRow?: (row: T, index: number) => boolean;
|
|
183
|
+
/** Invoked when a row is selected. Enables pointer and keyboard row activation. */
|
|
184
|
+
onRowClick?: (row: T, index: number) => void;
|
|
183
185
|
}
|
|
184
|
-
declare function SortableTable<T>({ columns, data, emptyMessage, header, size, className, defaultSortKey, defaultSortDirection, sortKey: controlledKey, sortDirection: controlledDirection, onSortChange, highlightRow, }: SortableTableProps<T>): React.JSX.Element;
|
|
186
|
+
declare function SortableTable<T>({ columns, data, emptyMessage, header, size, className, defaultSortKey, defaultSortDirection, sortKey: controlledKey, sortDirection: controlledDirection, onSortChange, highlightRow, onRowClick, }: SortableTableProps<T>): React.JSX.Element;
|
|
185
187
|
|
|
186
188
|
interface TabItem {
|
|
187
189
|
id: string;
|
|
@@ -236,11 +238,28 @@ interface PageHeaderProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'ti
|
|
|
236
238
|
title: React.ReactNode;
|
|
237
239
|
/** Optional supporting context for the page. */
|
|
238
240
|
description?: React.ReactNode;
|
|
239
|
-
/** Right-aligned action slot.
|
|
241
|
+
/** Right-aligned action slot. Place secondary actions before the primary action. */
|
|
240
242
|
actions?: React.ReactNode;
|
|
241
243
|
}
|
|
242
244
|
declare const PageHeader: React.ForwardRefExoticComponent<PageHeaderProps & React.RefAttributes<HTMLDivElement>>;
|
|
243
245
|
|
|
246
|
+
interface SidePanelProps {
|
|
247
|
+
open: boolean;
|
|
248
|
+
onClose: () => void;
|
|
249
|
+
title: React.ReactNode;
|
|
250
|
+
description?: React.ReactNode;
|
|
251
|
+
children: React.ReactNode;
|
|
252
|
+
footer?: React.ReactNode;
|
|
253
|
+
/** Panel width: sm (420px), md (540px), or lg (680px). */
|
|
254
|
+
size?: 'sm' | 'md' | 'lg';
|
|
255
|
+
className?: string;
|
|
256
|
+
}
|
|
257
|
+
declare function SidePanel({ open, onClose, title, description, children, footer, size, className }: SidePanelProps): React.ReactPortal | null;
|
|
258
|
+
|
|
259
|
+
interface TextareaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {
|
|
260
|
+
}
|
|
261
|
+
declare const Textarea: React.ForwardRefExoticComponent<TextareaProps & React.RefAttributes<HTMLTextAreaElement>>;
|
|
262
|
+
|
|
244
263
|
/**
|
|
245
264
|
* Register an Escape-key dismiss handler with the global priority stack.
|
|
246
265
|
*
|
|
@@ -252,4 +271,4 @@ declare function useEscapeDismiss(priority: number, handler: () => void, enabled
|
|
|
252
271
|
|
|
253
272
|
declare function cn(...inputs: ClassValue[]): string;
|
|
254
273
|
|
|
255
|
-
export { Alert, AlertDescription, AlertTitle, Button, type ButtonColor, type ButtonProps, type ButtonSize, type ButtonType, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Chip, type ChipProps, type ChipTone, DataTable, type DataTableColumn, type DataTableProps, Disclosure, type DisclosureProps, Dropdown, type DropdownItem, type DropdownProps, FeatureCard, type FeatureCardProps, FolderCard, type FolderCardProps, Input, type InputProps, Label, type LabelProps, Link, type LinkProps, type LinkSize, type LinkTheme, Modal, type ModalProps, PageHeader, type PageHeaderProps, PromptCard, type PromptCardProps, type PromptCardTone, PromptGrid, type PromptGridProps, Sidebar, SidebarBrand, SidebarFooter, SidebarHeader, SidebarNav, SidebarNavItem, type SidebarNavItemProps, type SidebarProps, SidebarSection, type SortDirection, SortableTable, type SortableTableColumn, type SortableTableProps, type TabItem, Tabs, type TabsProps, Toggle, type ToggleProps, cn, useEscapeDismiss };
|
|
274
|
+
export { Alert, AlertDescription, AlertTitle, Button, type ButtonColor, type ButtonProps, type ButtonSize, type ButtonType, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Chip, type ChipProps, type ChipTone, DataTable, type DataTableColumn, type DataTableProps, Disclosure, type DisclosureProps, Dropdown, type DropdownItem, type DropdownProps, FeatureCard, type FeatureCardProps, FolderCard, type FolderCardProps, Input, type InputProps, Label, type LabelProps, Link, type LinkProps, type LinkSize, type LinkTheme, Modal, type ModalProps, PageHeader, type PageHeaderProps, PromptCard, type PromptCardProps, type PromptCardTone, PromptGrid, type PromptGridProps, SidePanel, type SidePanelProps, Sidebar, SidebarBrand, SidebarFooter, SidebarHeader, SidebarNav, SidebarNavItem, type SidebarNavItemProps, type SidebarProps, SidebarSection, type SortDirection, SortableTable, type SortableTableColumn, type SortableTableProps, type TabItem, Tabs, type TabsProps, Textarea, type TextareaProps, Toggle, type ToggleProps, cn, useEscapeDismiss };
|
package/dist/index.js
CHANGED
|
@@ -680,7 +680,8 @@ function SortableTable({
|
|
|
680
680
|
sortKey: controlledKey,
|
|
681
681
|
sortDirection: controlledDirection,
|
|
682
682
|
onSortChange,
|
|
683
|
-
highlightRow
|
|
683
|
+
highlightRow,
|
|
684
|
+
onRowClick
|
|
684
685
|
}) {
|
|
685
686
|
const [internalKey, setInternalKey] = useState3(defaultSortKey ?? null);
|
|
686
687
|
const [internalDirection, setInternalDirection] = useState3(defaultSortDirection);
|
|
@@ -781,8 +782,18 @@ function SortableTable({
|
|
|
781
782
|
{
|
|
782
783
|
className: cn(
|
|
783
784
|
"fractal-sortable-table-row",
|
|
784
|
-
highlighted && "fractal-sortable-table-row--highlighted"
|
|
785
|
+
highlighted && "fractal-sortable-table-row--highlighted",
|
|
786
|
+
onRowClick && "fractal-sortable-table-row--interactive"
|
|
785
787
|
),
|
|
788
|
+
onClick: onRowClick ? () => onRowClick(row, rowIndex) : void 0,
|
|
789
|
+
onKeyDown: onRowClick ? (event) => {
|
|
790
|
+
if (event.key === "Enter" || event.key === " ") {
|
|
791
|
+
event.preventDefault();
|
|
792
|
+
onRowClick(row, rowIndex);
|
|
793
|
+
}
|
|
794
|
+
} : void 0,
|
|
795
|
+
role: onRowClick ? "button" : void 0,
|
|
796
|
+
tabIndex: onRowClick ? 0 : void 0,
|
|
786
797
|
children: columns.map((col) => /* @__PURE__ */ jsx12(
|
|
787
798
|
"td",
|
|
788
799
|
{
|
|
@@ -1041,6 +1052,47 @@ var PageHeader = React11.forwardRef(
|
|
|
1041
1052
|
] })
|
|
1042
1053
|
);
|
|
1043
1054
|
PageHeader.displayName = "PageHeader";
|
|
1055
|
+
|
|
1056
|
+
// src/components/SidePanel/SidePanel.tsx
|
|
1057
|
+
import { createPortal as createPortal2 } from "react-dom";
|
|
1058
|
+
import { Close } from "@mirror-physics/fractal-icons";
|
|
1059
|
+
import { jsx as jsx17, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
1060
|
+
function SidePanel({ open, onClose, title, description, children, footer, size = "md", className }) {
|
|
1061
|
+
useEscapeDismiss(80, onClose, open);
|
|
1062
|
+
if (!open) return null;
|
|
1063
|
+
return createPortal2(
|
|
1064
|
+
/* @__PURE__ */ jsx17("div", { className: "fractal-side-panel-overlay", onMouseDown: onClose, children: /* @__PURE__ */ jsxs14(
|
|
1065
|
+
"aside",
|
|
1066
|
+
{
|
|
1067
|
+
className: cn("fractal-side-panel", `fractal-side-panel--${size}`, className),
|
|
1068
|
+
"aria-modal": "true",
|
|
1069
|
+
"aria-label": typeof title === "string" ? title : "Side panel",
|
|
1070
|
+
role: "dialog",
|
|
1071
|
+
onMouseDown: (event) => event.stopPropagation(),
|
|
1072
|
+
children: [
|
|
1073
|
+
/* @__PURE__ */ jsxs14("header", { className: "fractal-side-panel__header", children: [
|
|
1074
|
+
/* @__PURE__ */ jsxs14("div", { className: "fractal-side-panel__heading", children: [
|
|
1075
|
+
/* @__PURE__ */ jsx17("h2", { className: "fractal-side-panel__title", children: title }),
|
|
1076
|
+
description && /* @__PURE__ */ jsx17("p", { className: "fractal-side-panel__description", children: description })
|
|
1077
|
+
] }),
|
|
1078
|
+
/* @__PURE__ */ jsx17("button", { type: "button", className: "fractal-side-panel__close", "aria-label": "Close panel", onClick: onClose, children: /* @__PURE__ */ jsx17(Close, { size: 18 }) })
|
|
1079
|
+
] }),
|
|
1080
|
+
/* @__PURE__ */ jsx17("div", { className: "fractal-side-panel__body", children }),
|
|
1081
|
+
footer && /* @__PURE__ */ jsx17("footer", { className: "fractal-side-panel__footer", children: footer })
|
|
1082
|
+
]
|
|
1083
|
+
}
|
|
1084
|
+
) }),
|
|
1085
|
+
document.body
|
|
1086
|
+
);
|
|
1087
|
+
}
|
|
1088
|
+
|
|
1089
|
+
// src/components/Textarea/Textarea.tsx
|
|
1090
|
+
import * as React12 from "react";
|
|
1091
|
+
import { jsx as jsx18 } from "react/jsx-runtime";
|
|
1092
|
+
var Textarea = React12.forwardRef(
|
|
1093
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx18("textarea", { ref, className: cn("fractal-textarea", className), ...props })
|
|
1094
|
+
);
|
|
1095
|
+
Textarea.displayName = "Textarea";
|
|
1044
1096
|
export {
|
|
1045
1097
|
Alert,
|
|
1046
1098
|
AlertDescription,
|
|
@@ -1065,6 +1117,7 @@ export {
|
|
|
1065
1117
|
PageHeader,
|
|
1066
1118
|
PromptCard,
|
|
1067
1119
|
PromptGrid,
|
|
1120
|
+
SidePanel,
|
|
1068
1121
|
Sidebar,
|
|
1069
1122
|
SidebarBrand,
|
|
1070
1123
|
SidebarFooter,
|
|
@@ -1074,6 +1127,7 @@ export {
|
|
|
1074
1127
|
SidebarSection,
|
|
1075
1128
|
SortableTable,
|
|
1076
1129
|
Tabs,
|
|
1130
|
+
Textarea,
|
|
1077
1131
|
Toggle,
|
|
1078
1132
|
cn,
|
|
1079
1133
|
useEscapeDismiss
|