@mirror-physics/fractal-ui 0.2.0-next.31 → 0.2.0-next.32
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 +269 -246
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +54 -0
- package/dist/index.css.map +1 -1
- package/dist/index.d.cts +13 -1
- package/dist/index.d.ts +13 -1
- package/dist/index.js +254 -232
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -34,6 +34,7 @@ __export(index_exports, {
|
|
|
34
34
|
AlertDescription: () => AlertDescription,
|
|
35
35
|
AlertGhost: () => AlertGhost,
|
|
36
36
|
AlertTitle: () => AlertTitle,
|
|
37
|
+
Breadcrumbs: () => Breadcrumbs,
|
|
37
38
|
Button: () => Button,
|
|
38
39
|
ButtonGhost: () => ButtonGhost,
|
|
39
40
|
Card: () => Card,
|
|
@@ -269,44 +270,65 @@ var Button = React.forwardRef(
|
|
|
269
270
|
);
|
|
270
271
|
Button.displayName = "Button";
|
|
271
272
|
|
|
272
|
-
// src/components/
|
|
273
|
-
var React2 = __toESM(require("react"), 1);
|
|
273
|
+
// src/components/Breadcrumbs/Breadcrumbs.tsx
|
|
274
274
|
var import_fractal_icons = require("@mirror-physics/fractal-icons");
|
|
275
275
|
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
276
|
+
function Breadcrumbs({
|
|
277
|
+
items,
|
|
278
|
+
ariaLabel = "Breadcrumbs",
|
|
279
|
+
separator = /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_fractal_icons.ChevronRight, { "aria-hidden": "true", size: 14 }),
|
|
280
|
+
className,
|
|
281
|
+
...props
|
|
282
|
+
}) {
|
|
283
|
+
if (items.length === 0) return null;
|
|
284
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("nav", { "aria-label": ariaLabel, className: cn("fractal-breadcrumbs", className), ...props, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("ol", { className: "fractal-breadcrumbs__list", children: items.map((item, index) => {
|
|
285
|
+
const isCurrent = index === items.length - 1;
|
|
286
|
+
const content = isCurrent ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { "aria-current": "page", className: "fractal-breadcrumbs__current", children: item.label }) : /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("a", { className: "fractal-breadcrumbs__link", href: item.href ?? "#", onClick: item.onClick, children: item.label });
|
|
287
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("li", { className: "fractal-breadcrumbs__item", children: [
|
|
288
|
+
index > 0 && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { "aria-hidden": "true", className: "fractal-breadcrumbs__separator", children: separator }),
|
|
289
|
+
content
|
|
290
|
+
] }, index);
|
|
291
|
+
}) }) });
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
// src/components/Card/Card.tsx
|
|
295
|
+
var React2 = __toESM(require("react"), 1);
|
|
296
|
+
var import_fractal_icons2 = require("@mirror-physics/fractal-icons");
|
|
297
|
+
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
276
298
|
var Card = React2.forwardRef(
|
|
277
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
299
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { ref, className: cn("fractal-card", className), ...props })
|
|
278
300
|
);
|
|
279
301
|
Card.displayName = "Card";
|
|
280
302
|
var CardHeader = React2.forwardRef(
|
|
281
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
303
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { ref, className: cn("fractal-card-header", className), ...props })
|
|
282
304
|
);
|
|
283
305
|
CardHeader.displayName = "CardHeader";
|
|
284
306
|
var CardTitle = React2.forwardRef(
|
|
285
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
307
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("h3", { ref, className: cn("fractal-card-title", className), ...props })
|
|
286
308
|
);
|
|
287
309
|
CardTitle.displayName = "CardTitle";
|
|
288
310
|
var CardDescription = React2.forwardRef(
|
|
289
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
311
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("p", { ref, className: cn("fractal-card-description", className), ...props })
|
|
290
312
|
);
|
|
291
313
|
CardDescription.displayName = "CardDescription";
|
|
292
314
|
var CardContent = React2.forwardRef(
|
|
293
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
315
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { ref, className: cn("fractal-card-content", className), ...props })
|
|
294
316
|
);
|
|
295
317
|
CardContent.displayName = "CardContent";
|
|
296
318
|
var CardFooter = React2.forwardRef(
|
|
297
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
319
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { ref, className: cn("fractal-card-footer", className), ...props })
|
|
298
320
|
);
|
|
299
321
|
CardFooter.displayName = "CardFooter";
|
|
300
322
|
var FeatureCard = React2.forwardRef(
|
|
301
|
-
({ icon, title, description, className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
302
|
-
icon && /* @__PURE__ */ (0,
|
|
303
|
-
/* @__PURE__ */ (0,
|
|
304
|
-
/* @__PURE__ */ (0,
|
|
323
|
+
({ icon, title, description, className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { ref, className: cn("fractal-feature-card", className), ...props, children: [
|
|
324
|
+
icon && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "fractal-feature-card__icon", children: icon }),
|
|
325
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("h3", { className: "fractal-feature-card__title", children: title }),
|
|
326
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("p", { className: "fractal-feature-card__description", children: description })
|
|
305
327
|
] })
|
|
306
328
|
);
|
|
307
329
|
FeatureCard.displayName = "FeatureCard";
|
|
308
330
|
var FolderCard = React2.forwardRef(
|
|
309
|
-
({ name, sessionCount, selected, className, onClick, ...props }, ref) => /* @__PURE__ */ (0,
|
|
331
|
+
({ name, sessionCount, selected, className, onClick, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
|
|
310
332
|
"div",
|
|
311
333
|
{
|
|
312
334
|
ref,
|
|
@@ -322,11 +344,11 @@ var FolderCard = React2.forwardRef(
|
|
|
322
344
|
className: cn("fractal-folder-card", selected && "fractal-folder-card--selected", className),
|
|
323
345
|
...props,
|
|
324
346
|
children: [
|
|
325
|
-
/* @__PURE__ */ (0,
|
|
326
|
-
/* @__PURE__ */ (0,
|
|
327
|
-
/* @__PURE__ */ (0,
|
|
347
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "fractal-folder-card__header", children: [
|
|
348
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_fractal_icons2.Folder, { size: 16, className: "fractal-folder-card__icon", "aria-hidden": true }),
|
|
349
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: "fractal-folder-card__name", children: name })
|
|
328
350
|
] }),
|
|
329
|
-
sessionCount !== void 0 && /* @__PURE__ */ (0,
|
|
351
|
+
sessionCount !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "fractal-folder-card__footer", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("span", { className: "fractal-folder-card__sessions", children: [
|
|
330
352
|
sessionCount,
|
|
331
353
|
" ",
|
|
332
354
|
sessionCount === 1 ? "session" : "sessions"
|
|
@@ -339,7 +361,7 @@ FolderCard.displayName = "FolderCard";
|
|
|
339
361
|
|
|
340
362
|
// src/components/PromptCard/PromptCard.tsx
|
|
341
363
|
var React3 = __toESM(require("react"), 1);
|
|
342
|
-
var
|
|
364
|
+
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
343
365
|
var titleToPrompt = (title) => typeof title === "string" || typeof title === "number" ? String(title) : "";
|
|
344
366
|
var PromptCard = React3.forwardRef(
|
|
345
367
|
({
|
|
@@ -360,7 +382,7 @@ var PromptCard = React3.forwardRef(
|
|
|
360
382
|
onPromptSelect?.(prompt ?? titleToPrompt(title));
|
|
361
383
|
}
|
|
362
384
|
};
|
|
363
|
-
return /* @__PURE__ */ (0,
|
|
385
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
|
|
364
386
|
"button",
|
|
365
387
|
{
|
|
366
388
|
ref,
|
|
@@ -375,8 +397,8 @@ var PromptCard = React3.forwardRef(
|
|
|
375
397
|
onClick: handleClick,
|
|
376
398
|
...props,
|
|
377
399
|
children: [
|
|
378
|
-
icon && /* @__PURE__ */ (0,
|
|
379
|
-
/* @__PURE__ */ (0,
|
|
400
|
+
icon && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "fractal-prompt-card__icon", "aria-hidden": "true", children: icon }),
|
|
401
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "fractal-prompt-card__title", children: title })
|
|
380
402
|
]
|
|
381
403
|
}
|
|
382
404
|
);
|
|
@@ -384,7 +406,7 @@ var PromptCard = React3.forwardRef(
|
|
|
384
406
|
);
|
|
385
407
|
PromptCard.displayName = "PromptCard";
|
|
386
408
|
var PromptGrid = React3.forwardRef(
|
|
387
|
-
({ compact, padded, className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
409
|
+
({ compact, padded, className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
388
410
|
"div",
|
|
389
411
|
{
|
|
390
412
|
ref,
|
|
@@ -402,9 +424,9 @@ PromptGrid.displayName = "PromptGrid";
|
|
|
402
424
|
|
|
403
425
|
// src/components/Input/Input.tsx
|
|
404
426
|
var React4 = __toESM(require("react"), 1);
|
|
405
|
-
var
|
|
427
|
+
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
406
428
|
var Input = React4.forwardRef(
|
|
407
|
-
({ className, type, ...props }, ref) => /* @__PURE__ */ (0,
|
|
429
|
+
({ className, type, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
408
430
|
"input",
|
|
409
431
|
{
|
|
410
432
|
type,
|
|
@@ -418,9 +440,9 @@ Input.displayName = "Input";
|
|
|
418
440
|
|
|
419
441
|
// src/components/Label/Label.tsx
|
|
420
442
|
var React5 = __toESM(require("react"), 1);
|
|
421
|
-
var
|
|
443
|
+
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
422
444
|
var Label = React5.forwardRef(
|
|
423
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
445
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
424
446
|
"label",
|
|
425
447
|
{
|
|
426
448
|
ref,
|
|
@@ -433,19 +455,19 @@ Label.displayName = "Label";
|
|
|
433
455
|
|
|
434
456
|
// src/components/Alert/Alert.tsx
|
|
435
457
|
var React6 = __toESM(require("react"), 1);
|
|
436
|
-
var
|
|
437
|
-
var
|
|
458
|
+
var import_fractal_icons3 = require("@mirror-physics/fractal-icons");
|
|
459
|
+
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
438
460
|
var defaultIcons = {
|
|
439
|
-
default:
|
|
440
|
-
info:
|
|
441
|
-
success:
|
|
442
|
-
warning:
|
|
443
|
-
error:
|
|
461
|
+
default: import_fractal_icons3.CircleInfo,
|
|
462
|
+
info: import_fractal_icons3.CircleInfo,
|
|
463
|
+
success: import_fractal_icons3.CircleCheck,
|
|
464
|
+
warning: import_fractal_icons3.Warning,
|
|
465
|
+
error: import_fractal_icons3.CircleClose
|
|
444
466
|
};
|
|
445
467
|
var Alert = React6.forwardRef(
|
|
446
468
|
({ className, variant = "default", icon, children, ...props }, ref) => {
|
|
447
469
|
const DefaultIcon = defaultIcons[variant];
|
|
448
|
-
return /* @__PURE__ */ (0,
|
|
470
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
|
|
449
471
|
"div",
|
|
450
472
|
{
|
|
451
473
|
ref,
|
|
@@ -453,8 +475,8 @@ var Alert = React6.forwardRef(
|
|
|
453
475
|
className: cn("fractal-alert", `fractal-alert--${variant}`, className),
|
|
454
476
|
...props,
|
|
455
477
|
children: [
|
|
456
|
-
/* @__PURE__ */ (0,
|
|
457
|
-
/* @__PURE__ */ (0,
|
|
478
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "fractal-alert-icon", "aria-hidden": true, children: icon ?? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(DefaultIcon, { size: 18 }) }),
|
|
479
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "fractal-alert-content", children })
|
|
458
480
|
]
|
|
459
481
|
}
|
|
460
482
|
);
|
|
@@ -462,18 +484,18 @@ var Alert = React6.forwardRef(
|
|
|
462
484
|
);
|
|
463
485
|
Alert.displayName = "Alert";
|
|
464
486
|
var AlertTitle = React6.forwardRef(
|
|
465
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
487
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("h5", { ref, className: cn("fractal-alert-title", className), ...props })
|
|
466
488
|
);
|
|
467
489
|
AlertTitle.displayName = "AlertTitle";
|
|
468
490
|
var AlertDescription = React6.forwardRef(
|
|
469
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
491
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { ref, className: cn("fractal-alert-description", className), ...props })
|
|
470
492
|
);
|
|
471
493
|
AlertDescription.displayName = "AlertDescription";
|
|
472
494
|
|
|
473
495
|
// src/components/Toggle/Toggle.tsx
|
|
474
|
-
var
|
|
496
|
+
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
475
497
|
function Toggle({ checked, onChange, label, className }) {
|
|
476
|
-
return /* @__PURE__ */ (0,
|
|
498
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
|
|
477
499
|
"button",
|
|
478
500
|
{
|
|
479
501
|
type: "button",
|
|
@@ -482,8 +504,8 @@ function Toggle({ checked, onChange, label, className }) {
|
|
|
482
504
|
className: cn("fractal-toggle", className),
|
|
483
505
|
onClick: () => onChange(!checked),
|
|
484
506
|
children: [
|
|
485
|
-
/* @__PURE__ */ (0,
|
|
486
|
-
label && /* @__PURE__ */ (0,
|
|
507
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: cn("fractal-toggle-track", checked && "fractal-toggle-track--checked"), children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: cn("fractal-toggle-thumb", checked && "fractal-toggle-thumb--checked") }) }),
|
|
508
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: "fractal-toggle-label", children: label })
|
|
487
509
|
]
|
|
488
510
|
}
|
|
489
511
|
);
|
|
@@ -544,7 +566,7 @@ function useEscapeDismiss(priority, handler, enabled = true) {
|
|
|
544
566
|
|
|
545
567
|
// src/components/UILoader/UILoader.tsx
|
|
546
568
|
var import_react2 = require("react");
|
|
547
|
-
var
|
|
569
|
+
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
548
570
|
var LEFT = "M0 53C0 51 1.6 49.5 3.6 49.5h16.5c1 0 1.9.4 2.5 1L42.1 69.6c.7.7 1.1 1.6 1.1 2.5v16.2c0 2-1.6 3.5-3.6 3.5H23.1c-1 0-1.9-.4-2.5-1L1.1 71.7C.4 71 0 70.1 0 69.2V53Z";
|
|
549
571
|
var CENTER = "M0 3.5C0 1.6 1.6 0 3.6 0h16.5c1 0 1.9.4 2.5 1L92.5 69.6c.7.7 1 1.6 1 2.5v16.2c0 2-1.6 3.5-3.6 3.5H73.4c-1 0-1.9-.4-2.5-1L1.1 22.2C.4 21.6 0 20.7 0 19.7V3.5Z";
|
|
550
572
|
var RIGHT = "M50.4 3.5C50.4 1.6 52 0 54 0h16.5c1 0 1.9.4 2.5 1l69.8 68.6c.7.7 1.1 1.6 1.1 2.5v16.2c0 2-1.6 3.5-3.6 3.5h-16.5c-1 0-1.9-.4-2.5-1L51.4 22.2c-.7-.6-1-1.5-1-2.5V3.5Z";
|
|
@@ -553,7 +575,7 @@ function UILoader({ size = 48, tone = "neutral", className, style, label = "Load
|
|
|
553
575
|
const clipId = `fractal-ui-loader-clip-${rawId}`;
|
|
554
576
|
const gradientId = `fractal-ui-loader-gradient-${rawId}`;
|
|
555
577
|
const height = typeof size === "number" ? `${size}px` : size;
|
|
556
|
-
return /* @__PURE__ */ (0,
|
|
578
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
557
579
|
"span",
|
|
558
580
|
{
|
|
559
581
|
"aria-hidden": ariaHidden || void 0,
|
|
@@ -561,53 +583,53 @@ function UILoader({ size = 48, tone = "neutral", className, style, label = "Load
|
|
|
561
583
|
className: cn("fractal-ui-loader", `fractal-ui-loader--${tone}`, className),
|
|
562
584
|
role: ariaHidden ? void 0 : "status",
|
|
563
585
|
style,
|
|
564
|
-
children: /* @__PURE__ */ (0,
|
|
565
|
-
/* @__PURE__ */ (0,
|
|
566
|
-
/* @__PURE__ */ (0,
|
|
567
|
-
/* @__PURE__ */ (0,
|
|
568
|
-
/* @__PURE__ */ (0,
|
|
586
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("svg", { "aria-hidden": "true", fill: "none", viewBox: "0 0 144 92", style: { height, width: "auto" }, children: [
|
|
587
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("defs", { children: [
|
|
588
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("linearGradient", { id: gradientId, x1: "59", x2: "94.3", y1: "0", y2: "89.1", gradientUnits: "userSpaceOnUse", children: [
|
|
589
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("stop", { className: "fractal-ui-loader__stop-start", offset: "0" }),
|
|
590
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("stop", { className: "fractal-ui-loader__stop-end", offset: "1" })
|
|
569
591
|
] }),
|
|
570
|
-
/* @__PURE__ */ (0,
|
|
571
|
-
/* @__PURE__ */ (0,
|
|
572
|
-
/* @__PURE__ */ (0,
|
|
573
|
-
/* @__PURE__ */ (0,
|
|
592
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("linearGradient", { id: `${gradientId}-shine`, x1: "0", x2: "1", y1: "0", y2: "0", children: [
|
|
593
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("stop", { offset: "0.4", stopColor: "white", stopOpacity: "0" }),
|
|
594
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("stop", { offset: "0.5", stopColor: "white", stopOpacity: "0.62" }),
|
|
595
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("stop", { offset: "0.6", stopColor: "white", stopOpacity: "0" })
|
|
574
596
|
] }),
|
|
575
|
-
/* @__PURE__ */ (0,
|
|
576
|
-
/* @__PURE__ */ (0,
|
|
577
|
-
/* @__PURE__ */ (0,
|
|
578
|
-
/* @__PURE__ */ (0,
|
|
597
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("clipPath", { id: clipId, children: [
|
|
598
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("path", { d: LEFT }),
|
|
599
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("path", { d: CENTER }),
|
|
600
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("path", { d: RIGHT })
|
|
579
601
|
] })
|
|
580
602
|
] }),
|
|
581
|
-
/* @__PURE__ */ (0,
|
|
582
|
-
/* @__PURE__ */ (0,
|
|
583
|
-
/* @__PURE__ */ (0,
|
|
584
|
-
/* @__PURE__ */ (0,
|
|
603
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("path", { d: CENTER, fill: `url(#${gradientId})` }),
|
|
604
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("path", { d: RIGHT, fill: `url(#${gradientId})` }),
|
|
605
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("path", { d: LEFT, fill: `url(#${gradientId})` }),
|
|
606
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("g", { clipPath: `url(#${clipId})`, children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("g", { className: "fractal-ui-loader__shine-axis", transform: "translate(72 46) rotate(68.4)", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("rect", { className: "fractal-ui-loader__shine", x: "-160", y: "-100", width: "320", height: "200", fill: `url(#${gradientId}-shine)` }) }) })
|
|
585
607
|
] })
|
|
586
608
|
}
|
|
587
609
|
);
|
|
588
610
|
}
|
|
589
611
|
|
|
590
612
|
// src/components/Modal/Modal.tsx
|
|
591
|
-
var
|
|
592
|
-
var CloseIcon = () => /* @__PURE__ */ (0,
|
|
613
|
+
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
614
|
+
var CloseIcon = () => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("path", { d: "M12 4L4 12M4 4L12 12", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) });
|
|
593
615
|
function Modal({ open, onClose, title, children, danger, warn, footer, noClose, closeDisabled = false, size = "sm", loading = false, loadingLabel = "Loading", className }) {
|
|
594
616
|
useEscapeDismiss(80, onClose, open && !noClose && !closeDisabled);
|
|
595
617
|
if (!open) return null;
|
|
596
618
|
const sizeClass = `fractal-modal-panel--${size}`;
|
|
597
619
|
const accentClass = danger ? "fractal-modal-panel--danger" : warn ? "fractal-modal-panel--warn" : "";
|
|
598
620
|
return (0, import_react_dom.createPortal)(
|
|
599
|
-
/* @__PURE__ */ (0,
|
|
621
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "fractal-modal-overlay", onClick: noClose || closeDisabled ? void 0 : onClose, children: /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
|
|
600
622
|
"div",
|
|
601
623
|
{
|
|
602
624
|
className: cn("fractal-modal-panel", sizeClass, accentClass, className),
|
|
603
625
|
onClick: (e) => e.stopPropagation(),
|
|
604
626
|
children: [
|
|
605
|
-
/* @__PURE__ */ (0,
|
|
606
|
-
/* @__PURE__ */ (0,
|
|
607
|
-
!noClose && /* @__PURE__ */ (0,
|
|
627
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: "fractal-modal-title-row", children: [
|
|
628
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)("h3", { className: cn("fractal-modal-title", danger && "fractal-modal-title--danger", warn && "fractal-modal-title--warn"), children: title }),
|
|
629
|
+
!noClose && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("button", { type: "button", onClick: onClose, title: "Close", disabled: closeDisabled, className: "fractal-modal-close", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(CloseIcon, {}) })
|
|
608
630
|
] }),
|
|
609
|
-
/* @__PURE__ */ (0,
|
|
610
|
-
footer && /* @__PURE__ */ (0,
|
|
631
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { "aria-busy": loading || void 0, className: cn("fractal-modal-body", size === "lg" && "fractal-modal-body--lg", loading && "fractal-modal-body--loading"), children: loading ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(UILoader, { label: loadingLabel }) : children }),
|
|
632
|
+
footer && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "fractal-modal-footer", children: footer })
|
|
611
633
|
]
|
|
612
634
|
}
|
|
613
635
|
) }),
|
|
@@ -616,17 +638,17 @@ function Modal({ open, onClose, title, children, danger, warn, footer, noClose,
|
|
|
616
638
|
}
|
|
617
639
|
|
|
618
640
|
// src/components/DataTable/DataTable.tsx
|
|
619
|
-
var
|
|
641
|
+
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
620
642
|
function DataTable({ columns, data, emptyMessage, header, size = "md", className }) {
|
|
621
|
-
return /* @__PURE__ */ (0,
|
|
622
|
-
header && /* @__PURE__ */ (0,
|
|
623
|
-
data.length === 0 ? /* @__PURE__ */ (0,
|
|
624
|
-
/* @__PURE__ */ (0,
|
|
625
|
-
/* @__PURE__ */ (0,
|
|
643
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: cn("fractal-datatable", `fractal-datatable--${size}`, className), children: /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "fractal-datatable-surface", children: [
|
|
644
|
+
header && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "fractal-datatable-header", children: header }),
|
|
645
|
+
data.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "fractal-datatable-empty", children: emptyMessage || "No data" }) : /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("table", { className: "fractal-datatable-table", children: [
|
|
646
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("thead", { children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("tr", { className: "fractal-datatable-thead-row", children: columns.map((col) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("th", { className: "fractal-datatable-th", style: { width: col.width }, children: col.header }, col.key)) }) }),
|
|
647
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("tbody", { children: data.map((row, rowIndex) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
626
648
|
"tr",
|
|
627
649
|
{
|
|
628
650
|
className: "fractal-datatable-row",
|
|
629
|
-
children: columns.map((col) => /* @__PURE__ */ (0,
|
|
651
|
+
children: columns.map((col) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("td", { className: "fractal-datatable-td", style: { width: col.width }, children: col.render(row, rowIndex) }, col.key))
|
|
630
652
|
},
|
|
631
653
|
rowIndex
|
|
632
654
|
)) })
|
|
@@ -636,8 +658,8 @@ function DataTable({ columns, data, emptyMessage, header, size = "md", className
|
|
|
636
658
|
|
|
637
659
|
// src/components/Dropdown/Dropdown.tsx
|
|
638
660
|
var React7 = __toESM(require("react"), 1);
|
|
639
|
-
var
|
|
640
|
-
var
|
|
661
|
+
var import_fractal_icons4 = require("@mirror-physics/fractal-icons");
|
|
662
|
+
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
641
663
|
var MARGIN = 4;
|
|
642
664
|
function Dropdown({
|
|
643
665
|
items,
|
|
@@ -669,7 +691,7 @@ function Dropdown({
|
|
|
669
691
|
const selectableItems = visibleItems.filter((i) => i.kind !== "header");
|
|
670
692
|
const selected = items.find((i) => i.value === selectedValue && i.kind !== "header") ?? selectableItems[0] ?? visibleItems[0];
|
|
671
693
|
const isUp = direction === "up";
|
|
672
|
-
const ChevronIcon = isUp ?
|
|
694
|
+
const ChevronIcon = isUp ? import_fractal_icons4.ChevronUp : import_fractal_icons4.ChevronDown;
|
|
673
695
|
React7.useLayoutEffect(() => {
|
|
674
696
|
if (!open || !triggerRef.current || !panelRef.current) return;
|
|
675
697
|
const triggerRect = triggerRef.current.getBoundingClientRect();
|
|
@@ -714,8 +736,8 @@ function Dropdown({
|
|
|
714
736
|
document.addEventListener("mousedown", handleClickOutside);
|
|
715
737
|
return () => document.removeEventListener("mousedown", handleClickOutside);
|
|
716
738
|
}, [open]);
|
|
717
|
-
return /* @__PURE__ */ (0,
|
|
718
|
-
/* @__PURE__ */ (0,
|
|
739
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: cn("fractal-dropdown", className), children: [
|
|
740
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
719
741
|
"button",
|
|
720
742
|
{
|
|
721
743
|
ref: triggerRef,
|
|
@@ -733,15 +755,15 @@ function Dropdown({
|
|
|
733
755
|
triggerClassName
|
|
734
756
|
),
|
|
735
757
|
children: [
|
|
736
|
-
triggerContent != null ? triggerContent : /* @__PURE__ */ (0,
|
|
737
|
-
selected.icon != null && /* @__PURE__ */ (0,
|
|
738
|
-
selected.description != null && (typeof selected.description !== "string" || selected.description !== "") && /* @__PURE__ */ (0,
|
|
758
|
+
triggerContent != null ? triggerContent : /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_jsx_runtime12.Fragment, { children: [
|
|
759
|
+
selected.icon != null && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "fractal-dropdown-icon fractal-dropdown-icon--trigger", children: selected.icon }),
|
|
760
|
+
selected.description != null && (typeof selected.description !== "string" || selected.description !== "") && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "fractal-dropdown-selected-text", children: selected.description })
|
|
739
761
|
] }),
|
|
740
|
-
!noChevron && !iconOnly && /* @__PURE__ */ (0,
|
|
762
|
+
!noChevron && !iconOnly && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "fractal-dropdown-chevron", "aria-hidden": true, children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(ChevronIcon, { size: size === "sm" ? 14 : 16 }) })
|
|
741
763
|
]
|
|
742
764
|
}
|
|
743
765
|
),
|
|
744
|
-
open && /* @__PURE__ */ (0,
|
|
766
|
+
open && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
745
767
|
"div",
|
|
746
768
|
{
|
|
747
769
|
ref: panelRef,
|
|
@@ -750,21 +772,21 @@ function Dropdown({
|
|
|
750
772
|
className: cn("fractal-dropdown-panel", `fractal-dropdown-panel--${size}`, panelClassName),
|
|
751
773
|
style: panelStyle,
|
|
752
774
|
children: [
|
|
753
|
-
label != null && /* @__PURE__ */ (0,
|
|
775
|
+
label != null && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "fractal-dropdown-label", children: label }),
|
|
754
776
|
visibleItems.map((item, index) => {
|
|
755
|
-
const topDivider = item.border === "top" ? /* @__PURE__ */ (0,
|
|
756
|
-
const bottomDivider = item.border === "bottom" ? /* @__PURE__ */ (0,
|
|
777
|
+
const topDivider = item.border === "top" ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "fractal-dropdown-separator" }) : null;
|
|
778
|
+
const bottomDivider = item.border === "bottom" ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "fractal-dropdown-separator" }) : null;
|
|
757
779
|
if (item.kind === "header") {
|
|
758
|
-
return /* @__PURE__ */ (0,
|
|
780
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(React7.Fragment, { children: [
|
|
759
781
|
topDivider,
|
|
760
|
-
/* @__PURE__ */ (0,
|
|
782
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { role: "presentation", className: "fractal-dropdown-label", children: item.description }),
|
|
761
783
|
bottomDivider
|
|
762
784
|
] }, `header-${index}`);
|
|
763
785
|
}
|
|
764
786
|
const isSelected = item.value === selectedValue;
|
|
765
|
-
return /* @__PURE__ */ (0,
|
|
787
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(React7.Fragment, { children: [
|
|
766
788
|
topDivider,
|
|
767
|
-
/* @__PURE__ */ (0,
|
|
789
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
768
790
|
"button",
|
|
769
791
|
{
|
|
770
792
|
type: "button",
|
|
@@ -776,9 +798,9 @@ function Dropdown({
|
|
|
776
798
|
},
|
|
777
799
|
className: "fractal-dropdown-option",
|
|
778
800
|
children: [
|
|
779
|
-
item.icon != null && /* @__PURE__ */ (0,
|
|
780
|
-
item.description != null && (typeof item.description !== "string" || item.description !== "") && /* @__PURE__ */ (0,
|
|
781
|
-
item.trailing != null && /* @__PURE__ */ (0,
|
|
801
|
+
item.icon != null && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "fractal-dropdown-icon", children: item.icon }),
|
|
802
|
+
item.description != null && (typeof item.description !== "string" || item.description !== "") && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "fractal-dropdown-option-text", children: item.description }),
|
|
803
|
+
item.trailing != null && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "fractal-dropdown-trailing", children: item.trailing })
|
|
782
804
|
]
|
|
783
805
|
}
|
|
784
806
|
),
|
|
@@ -793,9 +815,9 @@ function Dropdown({
|
|
|
793
815
|
|
|
794
816
|
// src/components/Link/Link.tsx
|
|
795
817
|
var React8 = __toESM(require("react"), 1);
|
|
796
|
-
var
|
|
818
|
+
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
797
819
|
var Link = React8.forwardRef(
|
|
798
|
-
({ className, theme = "default", size = "md", ...props }, ref) => /* @__PURE__ */ (0,
|
|
820
|
+
({ className, theme = "default", size = "md", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
799
821
|
"a",
|
|
800
822
|
{
|
|
801
823
|
ref,
|
|
@@ -808,9 +830,9 @@ Link.displayName = "Link";
|
|
|
808
830
|
|
|
809
831
|
// src/components/Chip/Chip.tsx
|
|
810
832
|
var React9 = __toESM(require("react"), 1);
|
|
811
|
-
var
|
|
833
|
+
var import_jsx_runtime14 = require("react/jsx-runtime");
|
|
812
834
|
var Chip = React9.forwardRef(
|
|
813
|
-
({ className, tone = "neutral", ...props }, ref) => /* @__PURE__ */ (0,
|
|
835
|
+
({ className, tone = "neutral", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
814
836
|
"span",
|
|
815
837
|
{
|
|
816
838
|
ref,
|
|
@@ -822,10 +844,10 @@ var Chip = React9.forwardRef(
|
|
|
822
844
|
Chip.displayName = "Chip";
|
|
823
845
|
|
|
824
846
|
// src/components/Checkbox/Checkbox.tsx
|
|
825
|
-
var
|
|
826
|
-
var
|
|
847
|
+
var import_fractal_icons5 = require("@mirror-physics/fractal-icons");
|
|
848
|
+
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
827
849
|
function Checkbox({ checked, onCheckedChange, className, disabled, onClick, onKeyDown, ...props }) {
|
|
828
|
-
return /* @__PURE__ */ (0,
|
|
850
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
829
851
|
"button",
|
|
830
852
|
{
|
|
831
853
|
...props,
|
|
@@ -842,15 +864,15 @@ function Checkbox({ checked, onCheckedChange, className, disabled, onClick, onKe
|
|
|
842
864
|
onKeyDown?.(event);
|
|
843
865
|
if (event.key === " " || event.key === "Enter") event.stopPropagation();
|
|
844
866
|
},
|
|
845
|
-
children: checked ? /* @__PURE__ */ (0,
|
|
867
|
+
children: checked ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_fractal_icons5.CheckboxChecked, { "aria-hidden": "true", size: 18 }) : /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_fractal_icons5.Checkbox, { "aria-hidden": "true", size: 18 })
|
|
846
868
|
}
|
|
847
869
|
);
|
|
848
870
|
}
|
|
849
871
|
|
|
850
872
|
// src/components/SortableTable/SortableTable.tsx
|
|
851
873
|
var import_react3 = require("react");
|
|
852
|
-
var
|
|
853
|
-
var
|
|
874
|
+
var import_fractal_icons6 = require("@mirror-physics/fractal-icons");
|
|
875
|
+
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
854
876
|
function SortableTable({
|
|
855
877
|
columns,
|
|
856
878
|
data,
|
|
@@ -926,13 +948,13 @@ function SortableTable({
|
|
|
926
948
|
onSortChange?.(nextKey, nextDirection);
|
|
927
949
|
}
|
|
928
950
|
};
|
|
929
|
-
return /* @__PURE__ */ (0,
|
|
930
|
-
header && /* @__PURE__ */ (0,
|
|
931
|
-
sorted.length === 0 ? /* @__PURE__ */ (0,
|
|
932
|
-
/* @__PURE__ */ (0,
|
|
951
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: cn("fractal-sortable-table", `fractal-sortable-table--${size}`, embedded && "fractal-sortable-table--embedded", className), children: /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "fractal-sortable-table-surface", children: [
|
|
952
|
+
header && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "fractal-sortable-table-header", children: header }),
|
|
953
|
+
sorted.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "fractal-sortable-table-empty", children: emptyMessage || "No data" }) : /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("table", { className: "fractal-sortable-table-table", children: [
|
|
954
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("thead", { children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("tr", { className: "fractal-sortable-table-thead-row", children: columns.map((col) => {
|
|
933
955
|
const isActive = activeKey === col.key && activeDirection !== null;
|
|
934
956
|
if (!col.sortable) {
|
|
935
|
-
return /* @__PURE__ */ (0,
|
|
957
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
936
958
|
"th",
|
|
937
959
|
{
|
|
938
960
|
className: "fractal-sortable-table-th",
|
|
@@ -942,12 +964,12 @@ function SortableTable({
|
|
|
942
964
|
col.key
|
|
943
965
|
);
|
|
944
966
|
}
|
|
945
|
-
return /* @__PURE__ */ (0,
|
|
967
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
946
968
|
"th",
|
|
947
969
|
{
|
|
948
970
|
className: "fractal-sortable-table-th fractal-sortable-table-th--sortable",
|
|
949
971
|
style: { width: col.width },
|
|
950
|
-
children: /* @__PURE__ */ (0,
|
|
972
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
|
|
951
973
|
"button",
|
|
952
974
|
{
|
|
953
975
|
type: "button",
|
|
@@ -958,8 +980,8 @@ function SortableTable({
|
|
|
958
980
|
onClick: () => handleSortClick(col.key),
|
|
959
981
|
"aria-sort": isActive ? activeDirection === "asc" ? "ascending" : "descending" : "none",
|
|
960
982
|
children: [
|
|
961
|
-
/* @__PURE__ */ (0,
|
|
962
|
-
/* @__PURE__ */ (0,
|
|
983
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { children: col.header }),
|
|
984
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "fractal-sortable-table-sort-icon", "aria-hidden": "true", children: isActive && activeDirection === "asc" ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_fractal_icons6.ArrowUp, { size: 14 }) : isActive && activeDirection === "desc" ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_fractal_icons6.ArrowDown, { size: 14 }) : /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_fractal_icons6.ArrowsUpDown, { size: 14 }) })
|
|
963
985
|
]
|
|
964
986
|
}
|
|
965
987
|
)
|
|
@@ -967,13 +989,13 @@ function SortableTable({
|
|
|
967
989
|
col.key
|
|
968
990
|
);
|
|
969
991
|
}) }) }),
|
|
970
|
-
/* @__PURE__ */ (0,
|
|
992
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("tbody", { children: sorted.map((row, rowIndex) => {
|
|
971
993
|
const highlighted = highlightRow?.(row, rowIndex) ?? false;
|
|
972
994
|
const action = rowAction ? {
|
|
973
995
|
label: rowAction.label(row, rowIndex),
|
|
974
996
|
icon: rowAction.icon(row, rowIndex)
|
|
975
997
|
} : null;
|
|
976
|
-
return /* @__PURE__ */ (0,
|
|
998
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
977
999
|
"tr",
|
|
978
1000
|
{
|
|
979
1001
|
className: cn(
|
|
@@ -991,7 +1013,7 @@ function SortableTable({
|
|
|
991
1013
|
"aria-label": action?.label,
|
|
992
1014
|
role: onRowClick ? "button" : void 0,
|
|
993
1015
|
tabIndex: onRowClick ? 0 : void 0,
|
|
994
|
-
children: columns.map((col, columnIndex) => /* @__PURE__ */ (0,
|
|
1016
|
+
children: columns.map((col, columnIndex) => /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
|
|
995
1017
|
"td",
|
|
996
1018
|
{
|
|
997
1019
|
className: cn(
|
|
@@ -1001,7 +1023,7 @@ function SortableTable({
|
|
|
1001
1023
|
style: { width: col.width, textAlign: col.align ?? "left" },
|
|
1002
1024
|
children: [
|
|
1003
1025
|
col.render(row, rowIndex),
|
|
1004
|
-
action && columnIndex === columns.length - 1 && /* @__PURE__ */ (0,
|
|
1026
|
+
action && columnIndex === columns.length - 1 && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "fractal-sortable-table-row-action", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "fractal-sortable-table-row-action__icon", children: action.icon }) })
|
|
1005
1027
|
]
|
|
1006
1028
|
},
|
|
1007
1029
|
col.key
|
|
@@ -1016,7 +1038,7 @@ function SortableTable({
|
|
|
1016
1038
|
|
|
1017
1039
|
// src/components/Tabs/Tabs.tsx
|
|
1018
1040
|
var import_react4 = require("react");
|
|
1019
|
-
var
|
|
1041
|
+
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
1020
1042
|
function Tabs({
|
|
1021
1043
|
items,
|
|
1022
1044
|
defaultValue,
|
|
@@ -1086,8 +1108,8 @@ function Tabs({
|
|
|
1086
1108
|
selectTab(nextId2);
|
|
1087
1109
|
requestAnimationFrame(() => tabRefs.current[nextId2]?.focus());
|
|
1088
1110
|
};
|
|
1089
|
-
return /* @__PURE__ */ (0,
|
|
1090
|
-
/* @__PURE__ */ (0,
|
|
1111
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: cn("fractal-tabs", divider && "fractal-tabs--divider", className), children: [
|
|
1112
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
1091
1113
|
"div",
|
|
1092
1114
|
{
|
|
1093
1115
|
ref: tabListRef,
|
|
@@ -1100,7 +1122,7 @@ function Tabs({
|
|
|
1100
1122
|
const isActive = item.id === activeId;
|
|
1101
1123
|
const tabId = `${reactId}-tab-${item.id}`;
|
|
1102
1124
|
const panelId = `${reactId}-panel-${item.id}`;
|
|
1103
|
-
return /* @__PURE__ */ (0,
|
|
1125
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
1104
1126
|
"button",
|
|
1105
1127
|
{
|
|
1106
1128
|
ref: (el) => {
|
|
@@ -1131,7 +1153,7 @@ function Tabs({
|
|
|
1131
1153
|
const tabId = `${reactId}-tab-${item.id}`;
|
|
1132
1154
|
const panelId = `${reactId}-panel-${item.id}`;
|
|
1133
1155
|
const isActive = item.id === activeId;
|
|
1134
|
-
return /* @__PURE__ */ (0,
|
|
1156
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
1135
1157
|
"div",
|
|
1136
1158
|
{
|
|
1137
1159
|
id: panelId,
|
|
@@ -1149,7 +1171,7 @@ function Tabs({
|
|
|
1149
1171
|
|
|
1150
1172
|
// src/components/ContentSwitcher/ContentSwitcher.tsx
|
|
1151
1173
|
var React10 = __toESM(require("react"), 1);
|
|
1152
|
-
var
|
|
1174
|
+
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
1153
1175
|
function ContentSwitcher({ items, value, onValueChange, ariaLabel, fullWidth = false, className }) {
|
|
1154
1176
|
const switcherRef = React10.useRef(null);
|
|
1155
1177
|
const buttonRefs = React10.useRef([]);
|
|
@@ -1189,7 +1211,7 @@ function ContentSwitcher({ items, value, onValueChange, ariaLabel, fullWidth = f
|
|
|
1189
1211
|
onValueChange(items[nextIndex].value);
|
|
1190
1212
|
}
|
|
1191
1213
|
};
|
|
1192
|
-
return /* @__PURE__ */ (0,
|
|
1214
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
|
|
1193
1215
|
"div",
|
|
1194
1216
|
{
|
|
1195
1217
|
className: cn("fractal-content-switcher", fullWidth && "fractal-content-switcher--full-width", className),
|
|
@@ -1197,10 +1219,10 @@ function ContentSwitcher({ items, value, onValueChange, ariaLabel, fullWidth = f
|
|
|
1197
1219
|
"aria-label": ariaLabel,
|
|
1198
1220
|
ref: switcherRef,
|
|
1199
1221
|
children: [
|
|
1200
|
-
/* @__PURE__ */ (0,
|
|
1222
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "fractal-content-switcher__indicator", "aria-hidden": true }),
|
|
1201
1223
|
items.map((item, index) => {
|
|
1202
1224
|
const active = item.value === value;
|
|
1203
|
-
return /* @__PURE__ */ (0,
|
|
1225
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1204
1226
|
"button",
|
|
1205
1227
|
{
|
|
1206
1228
|
className: cn("fractal-content-switcher__item", active && "fractal-content-switcher__item--active"),
|
|
@@ -1233,8 +1255,8 @@ function ContentSwitcher({ items, value, onValueChange, ariaLabel, fullWidth = f
|
|
|
1233
1255
|
|
|
1234
1256
|
// src/components/Disclosure/Disclosure.tsx
|
|
1235
1257
|
var import_react5 = require("react");
|
|
1236
|
-
var
|
|
1237
|
-
var
|
|
1258
|
+
var import_fractal_icons7 = require("@mirror-physics/fractal-icons");
|
|
1259
|
+
var import_jsx_runtime19 = require("react/jsx-runtime");
|
|
1238
1260
|
function Disclosure({
|
|
1239
1261
|
title,
|
|
1240
1262
|
meta,
|
|
@@ -1262,7 +1284,7 @@ function Disclosure({
|
|
|
1262
1284
|
onOpenChange?.(next);
|
|
1263
1285
|
}
|
|
1264
1286
|
};
|
|
1265
|
-
return /* @__PURE__ */ (0,
|
|
1287
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
1266
1288
|
"div",
|
|
1267
1289
|
{
|
|
1268
1290
|
className: cn(
|
|
@@ -1273,7 +1295,7 @@ function Disclosure({
|
|
|
1273
1295
|
className
|
|
1274
1296
|
),
|
|
1275
1297
|
children: [
|
|
1276
|
-
/* @__PURE__ */ (0,
|
|
1298
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
1277
1299
|
"button",
|
|
1278
1300
|
{
|
|
1279
1301
|
type: "button",
|
|
@@ -1284,13 +1306,13 @@ function Disclosure({
|
|
|
1284
1306
|
disabled,
|
|
1285
1307
|
onClick: toggle,
|
|
1286
1308
|
children: [
|
|
1287
|
-
/* @__PURE__ */ (0,
|
|
1288
|
-
/* @__PURE__ */ (0,
|
|
1289
|
-
meta && /* @__PURE__ */ (0,
|
|
1309
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "fractal-disclosure-icon", "aria-hidden": "true", children: isOpen ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_fractal_icons7.ChevronDown, { size: 16 }) : /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_fractal_icons7.ChevronRight, { size: 16 }) }),
|
|
1310
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "fractal-disclosure-title", children: title }),
|
|
1311
|
+
meta && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "fractal-disclosure-meta", children: meta })
|
|
1290
1312
|
]
|
|
1291
1313
|
}
|
|
1292
1314
|
),
|
|
1293
|
-
/* @__PURE__ */ (0,
|
|
1315
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
1294
1316
|
"div",
|
|
1295
1317
|
{
|
|
1296
1318
|
id: panelId,
|
|
@@ -1298,7 +1320,7 @@ function Disclosure({
|
|
|
1298
1320
|
"aria-labelledby": headerId,
|
|
1299
1321
|
className: "fractal-disclosure-panel",
|
|
1300
1322
|
hidden: !isOpen,
|
|
1301
|
-
children: /* @__PURE__ */ (0,
|
|
1323
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "fractal-disclosure-panel-inner", children })
|
|
1302
1324
|
}
|
|
1303
1325
|
)
|
|
1304
1326
|
]
|
|
@@ -1307,18 +1329,18 @@ function Disclosure({
|
|
|
1307
1329
|
}
|
|
1308
1330
|
|
|
1309
1331
|
// src/components/LatticeLoader/LatticeLoader.tsx
|
|
1310
|
-
var
|
|
1332
|
+
var import_jsx_runtime20 = require("react/jsx-runtime");
|
|
1311
1333
|
var LATTICE_COUNT = 160;
|
|
1312
1334
|
var WAVE_PERIOD = 80;
|
|
1313
1335
|
function LatticeLoader({ className, label = "Loading", ...props }) {
|
|
1314
|
-
return /* @__PURE__ */ (0,
|
|
1336
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
1315
1337
|
"span",
|
|
1316
1338
|
{
|
|
1317
1339
|
"aria-label": label,
|
|
1318
1340
|
className: cn("fractal-lattice-loader", className),
|
|
1319
1341
|
role: "progressbar",
|
|
1320
1342
|
...props,
|
|
1321
|
-
children: Array.from({ length: LATTICE_COUNT }, (_, index) => /* @__PURE__ */ (0,
|
|
1343
|
+
children: Array.from({ length: LATTICE_COUNT }, (_, index) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
1322
1344
|
"span",
|
|
1323
1345
|
{
|
|
1324
1346
|
"aria-hidden": "true",
|
|
@@ -1332,10 +1354,10 @@ function LatticeLoader({ className, label = "Loading", ...props }) {
|
|
|
1332
1354
|
}
|
|
1333
1355
|
|
|
1334
1356
|
// src/components/Ghost/Ghost.tsx
|
|
1335
|
-
var
|
|
1357
|
+
var import_jsx_runtime21 = require("react/jsx-runtime");
|
|
1336
1358
|
var toCssLength = (value) => typeof value === "number" ? `${value}px` : value;
|
|
1337
1359
|
function Ghost({ className, width, height, radius, style, ...props }) {
|
|
1338
|
-
return /* @__PURE__ */ (0,
|
|
1360
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
1339
1361
|
"div",
|
|
1340
1362
|
{
|
|
1341
1363
|
"aria-hidden": "true",
|
|
@@ -1351,15 +1373,15 @@ function Ghost({ className, width, height, radius, style, ...props }) {
|
|
|
1351
1373
|
);
|
|
1352
1374
|
}
|
|
1353
1375
|
function GhostLine({ className, size = "md", width = "100%", ...props }) {
|
|
1354
|
-
return /* @__PURE__ */ (0,
|
|
1376
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Ghost, { className: cn("fractal-ghost-line", `fractal-ghost-line--${size}`, className), width, ...props });
|
|
1355
1377
|
}
|
|
1356
1378
|
function ButtonGhost({ className, size = "md", iconOnly = false, width, ...props }) {
|
|
1357
|
-
return /* @__PURE__ */ (0,
|
|
1379
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Ghost, { className: cn("fractal-ghost-button", `fractal-ghost-button--${size}`, iconOnly && "fractal-ghost-button--icon-only", className), width, ...props });
|
|
1358
1380
|
}
|
|
1359
1381
|
function CardGhost({ className, lines = 3, showHeader = true, ...props }) {
|
|
1360
|
-
return /* @__PURE__ */ (0,
|
|
1361
|
-
showHeader && /* @__PURE__ */ (0,
|
|
1362
|
-
/* @__PURE__ */ (0,
|
|
1382
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { "aria-hidden": "true", className: cn("fractal-ghost-card", className), ...props, children: [
|
|
1383
|
+
showHeader && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(GhostLine, { width: "38%" }),
|
|
1384
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "fractal-ghost-stack", children: Array.from({ length: lines }, (_, index) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(GhostLine, { width: index === lines - 1 ? "62%" : "100%" }, index)) })
|
|
1363
1385
|
] });
|
|
1364
1386
|
}
|
|
1365
1387
|
function DataTableGhost({
|
|
@@ -1373,109 +1395,109 @@ function DataTableGhost({
|
|
|
1373
1395
|
...props
|
|
1374
1396
|
}) {
|
|
1375
1397
|
const cells = Array.from({ length: columns }, (_, index) => index);
|
|
1376
|
-
return /* @__PURE__ */ (0,
|
|
1377
|
-
(showHeader || headers) && /* @__PURE__ */ (0,
|
|
1378
|
-
/* @__PURE__ */ (0,
|
|
1398
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { "aria-busy": "true", "aria-label": "Loading table", className: cn("fractal-ghost-table", `fractal-ghost-table--${size}`, className), role: "status", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("table", { className: "fractal-ghost-table__table", children: [
|
|
1399
|
+
(showHeader || headers) && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("thead", { children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("tr", { className: "fractal-ghost-table__head-row", children: cells.map((index) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("th", { style: { width: columnWidths?.[index] }, children: headers?.[index] ?? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(GhostLine, { size: "sm", width: index === columns - 1 ? "62%" : "76%" }) }, index)) }) }),
|
|
1400
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("tbody", { children: Array.from({ length: rows }, (_, rowIndex) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("tr", { className: "fractal-ghost-table__row", children: cells.map((columnIndex) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("td", { style: { width: columnWidths?.[columnIndex] }, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(GhostLine, { width: `${[72, 54, 82, 63, 46][(rowIndex + columnIndex) % 5]}%` }) }, columnIndex)) }, rowIndex)) })
|
|
1379
1401
|
] }) });
|
|
1380
1402
|
}
|
|
1381
1403
|
function InputGhost({ className, labelWidth = "26%", ...props }) {
|
|
1382
|
-
return /* @__PURE__ */ (0,
|
|
1404
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(FormFieldGhost, { className, labelWidth, ...props });
|
|
1383
1405
|
}
|
|
1384
1406
|
function TextareaGhost({ className, labelWidth = "26%", ...props }) {
|
|
1385
|
-
return /* @__PURE__ */ (0,
|
|
1407
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(FormFieldGhost, { className, labelWidth, multiline: true, ...props });
|
|
1386
1408
|
}
|
|
1387
1409
|
function LabelGhost({ className, width = "26%", ...props }) {
|
|
1388
|
-
return /* @__PURE__ */ (0,
|
|
1410
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(GhostLine, { className: cn("fractal-ghost-label", className), size: "sm", width, ...props });
|
|
1389
1411
|
}
|
|
1390
1412
|
function FormFieldGhost({ className, labelWidth = "26%", multiline = false, ...props }) {
|
|
1391
|
-
return /* @__PURE__ */ (0,
|
|
1392
|
-
/* @__PURE__ */ (0,
|
|
1393
|
-
/* @__PURE__ */ (0,
|
|
1413
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { "aria-hidden": "true", className: cn("fractal-ghost-field", className), ...props, children: [
|
|
1414
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(LabelGhost, { width: labelWidth }),
|
|
1415
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Ghost, { className: cn("fractal-ghost-field__control", multiline && "fractal-ghost-field__control--multiline") })
|
|
1394
1416
|
] });
|
|
1395
1417
|
}
|
|
1396
1418
|
function AlertGhost({ className, ...props }) {
|
|
1397
|
-
return /* @__PURE__ */ (0,
|
|
1398
|
-
/* @__PURE__ */ (0,
|
|
1399
|
-
/* @__PURE__ */ (0,
|
|
1419
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { "aria-hidden": "true", className: cn("fractal-ghost-alert", className), ...props, children: [
|
|
1420
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(GhostLine, { width: "30%" }),
|
|
1421
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(GhostLine, { size: "sm", width: "78%" })
|
|
1400
1422
|
] });
|
|
1401
1423
|
}
|
|
1402
1424
|
function CheckboxGhost({ className, ...props }) {
|
|
1403
|
-
return /* @__PURE__ */ (0,
|
|
1404
|
-
/* @__PURE__ */ (0,
|
|
1405
|
-
/* @__PURE__ */ (0,
|
|
1425
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { "aria-hidden": "true", className: cn("fractal-ghost-choice", className), ...props, children: [
|
|
1426
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Ghost, { className: "fractal-ghost-choice__control" }),
|
|
1427
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(GhostLine, { width: "42%" })
|
|
1406
1428
|
] });
|
|
1407
1429
|
}
|
|
1408
1430
|
var ToggleGhost = CheckboxGhost;
|
|
1409
1431
|
function ChipGhost({ className, width = 74, ...props }) {
|
|
1410
|
-
return /* @__PURE__ */ (0,
|
|
1432
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Ghost, { className: cn("fractal-ghost-chip", className), height: 24, width, ...props });
|
|
1411
1433
|
}
|
|
1412
1434
|
function LinkGhost({ className, width = 96, ...props }) {
|
|
1413
|
-
return /* @__PURE__ */ (0,
|
|
1435
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(GhostLine, { className: cn("fractal-ghost-link", className), size: "sm", width, ...props });
|
|
1414
1436
|
}
|
|
1415
1437
|
var TextButtonGhost = LinkGhost;
|
|
1416
1438
|
function DropdownGhost({ className, ...props }) {
|
|
1417
|
-
return /* @__PURE__ */ (0,
|
|
1418
|
-
/* @__PURE__ */ (0,
|
|
1419
|
-
/* @__PURE__ */ (0,
|
|
1439
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { "aria-hidden": "true", className: cn("fractal-ghost-dropdown", className), ...props, children: [
|
|
1440
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(GhostLine, { width: "38%" }),
|
|
1441
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Ghost, { className: "fractal-ghost-dropdown__chevron" })
|
|
1420
1442
|
] });
|
|
1421
1443
|
}
|
|
1422
1444
|
function ContentSwitcherGhost({ className, options = 3, ...props }) {
|
|
1423
|
-
return /* @__PURE__ */ (0,
|
|
1445
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { "aria-hidden": "true", className: cn("fractal-ghost-switcher", className), ...props, children: Array.from({ length: options }, (_, index) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Ghost, {}, index)) });
|
|
1424
1446
|
}
|
|
1425
1447
|
var TabsGhost = ContentSwitcherGhost;
|
|
1426
1448
|
function DisclosureGhost({ className, ...props }) {
|
|
1427
|
-
return /* @__PURE__ */ (0,
|
|
1428
|
-
/* @__PURE__ */ (0,
|
|
1429
|
-
/* @__PURE__ */ (0,
|
|
1449
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { "aria-hidden": "true", className: cn("fractal-ghost-disclosure", className), ...props, children: [
|
|
1450
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Ghost, { className: "fractal-ghost-disclosure__icon" }),
|
|
1451
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(GhostLine, { width: "42%" })
|
|
1430
1452
|
] });
|
|
1431
1453
|
}
|
|
1432
1454
|
function PaginationGhost({ className, pages = 5, ...props }) {
|
|
1433
|
-
return /* @__PURE__ */ (0,
|
|
1455
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { "aria-hidden": "true", className: cn("fractal-ghost-pagination", className), ...props, children: Array.from({ length: pages }, (_, index) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Ghost, {}, index)) });
|
|
1434
1456
|
}
|
|
1435
1457
|
function FileDropzoneGhost({ className, ...props }) {
|
|
1436
|
-
return /* @__PURE__ */ (0,
|
|
1437
|
-
/* @__PURE__ */ (0,
|
|
1438
|
-
/* @__PURE__ */ (0,
|
|
1439
|
-
/* @__PURE__ */ (0,
|
|
1458
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { "aria-hidden": "true", className: cn("fractal-ghost-dropzone", className), ...props, children: [
|
|
1459
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Ghost, { className: "fractal-ghost-dropzone__icon" }),
|
|
1460
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(GhostLine, { width: "26%" }),
|
|
1461
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(GhostLine, { size: "sm", width: "46%" })
|
|
1440
1462
|
] });
|
|
1441
1463
|
}
|
|
1442
1464
|
function PromptCardGhost({ className, ...props }) {
|
|
1443
|
-
return /* @__PURE__ */ (0,
|
|
1465
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(CardGhost, { className: cn("fractal-ghost-prompt-card", className), lines: 4, ...props });
|
|
1444
1466
|
}
|
|
1445
1467
|
function SortableTableGhost(props) {
|
|
1446
|
-
return /* @__PURE__ */ (0,
|
|
1468
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(DataTableGhost, { ...props });
|
|
1447
1469
|
}
|
|
1448
1470
|
function SidebarGhost({ className, items = 6, ...props }) {
|
|
1449
|
-
return /* @__PURE__ */ (0,
|
|
1450
|
-
/* @__PURE__ */ (0,
|
|
1451
|
-
/* @__PURE__ */ (0,
|
|
1452
|
-
/* @__PURE__ */ (0,
|
|
1453
|
-
/* @__PURE__ */ (0,
|
|
1471
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("aside", { "aria-hidden": "true", className: cn("fractal-ghost-sidebar", className), ...props, children: [
|
|
1472
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Ghost, { className: "fractal-ghost-sidebar__brand" }),
|
|
1473
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "fractal-ghost-sidebar__items", children: Array.from({ length: items }, (_, index) => /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "fractal-ghost-sidebar__item", children: [
|
|
1474
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Ghost, {}),
|
|
1475
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(GhostLine, { width: `${[54, 68, 44, 61][index % 4]}%` })
|
|
1454
1476
|
] }, index)) })
|
|
1455
1477
|
] });
|
|
1456
1478
|
}
|
|
1457
1479
|
function ModalGhost({ className, title, lines = 3, ...props }) {
|
|
1458
|
-
return /* @__PURE__ */ (0,
|
|
1480
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(SurfaceGhost, { className: cn("fractal-ghost-modal", className), title, lines, ...props });
|
|
1459
1481
|
}
|
|
1460
1482
|
function SidePanelGhost({ className, title, lines = 5, ...props }) {
|
|
1461
|
-
return /* @__PURE__ */ (0,
|
|
1483
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(SurfaceGhost, { className: cn("fractal-ghost-side-panel", className), title, lines, ...props });
|
|
1462
1484
|
}
|
|
1463
1485
|
function SurfaceGhost({ className, title, lines = 3, ...props }) {
|
|
1464
|
-
return /* @__PURE__ */ (0,
|
|
1465
|
-
/* @__PURE__ */ (0,
|
|
1466
|
-
/* @__PURE__ */ (0,
|
|
1467
|
-
/* @__PURE__ */ (0,
|
|
1486
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { "aria-hidden": "true", className: cn("fractal-ghost-surface", className), ...props, children: [
|
|
1487
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "fractal-ghost-surface__header", children: [
|
|
1488
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(GhostLine, { width: "42%" }),
|
|
1489
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Ghost, { className: "fractal-ghost-surface__close" })
|
|
1468
1490
|
] }),
|
|
1469
|
-
title && /* @__PURE__ */ (0,
|
|
1470
|
-
/* @__PURE__ */ (0,
|
|
1491
|
+
title && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "fractal-ghost-surface__title", children: title }),
|
|
1492
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "fractal-ghost-stack", children: Array.from({ length: lines }, (_, index) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(GhostLine, { width: index === lines - 1 ? "64%" : "100%" }, index)) })
|
|
1471
1493
|
] });
|
|
1472
1494
|
}
|
|
1473
1495
|
|
|
1474
1496
|
// src/components/Sidebar/Sidebar.tsx
|
|
1475
1497
|
var React11 = __toESM(require("react"), 1);
|
|
1476
|
-
var
|
|
1498
|
+
var import_jsx_runtime22 = require("react/jsx-runtime");
|
|
1477
1499
|
var Sidebar = React11.forwardRef(
|
|
1478
|
-
({ className, width, style, ...props }, ref) => /* @__PURE__ */ (0,
|
|
1500
|
+
({ className, width, style, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
1479
1501
|
"aside",
|
|
1480
1502
|
{
|
|
1481
1503
|
ref,
|
|
@@ -1487,11 +1509,11 @@ var Sidebar = React11.forwardRef(
|
|
|
1487
1509
|
);
|
|
1488
1510
|
Sidebar.displayName = "Sidebar";
|
|
1489
1511
|
var SidebarHeader = React11.forwardRef(
|
|
1490
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
1512
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { ref, className: cn("fractal-sidebar__header", className), ...props })
|
|
1491
1513
|
);
|
|
1492
1514
|
SidebarHeader.displayName = "SidebarHeader";
|
|
1493
1515
|
var SidebarBrand = React11.forwardRef(
|
|
1494
|
-
({ className, type = "button", ...props }, ref) => /* @__PURE__ */ (0,
|
|
1516
|
+
({ className, type = "button", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("button", { ref, type, className: cn("fractal-sidebar__brand", className), ...props })
|
|
1495
1517
|
);
|
|
1496
1518
|
SidebarBrand.displayName = "SidebarBrand";
|
|
1497
1519
|
function SidebarAccountMenu({
|
|
@@ -1501,7 +1523,7 @@ function SidebarAccountMenu({
|
|
|
1501
1523
|
triggerLabel = "Account menu",
|
|
1502
1524
|
className
|
|
1503
1525
|
}) {
|
|
1504
|
-
return /* @__PURE__ */ (0,
|
|
1526
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
1505
1527
|
Dropdown,
|
|
1506
1528
|
{
|
|
1507
1529
|
align: "left",
|
|
@@ -1511,22 +1533,22 @@ function SidebarAccountMenu({
|
|
|
1511
1533
|
panelClassName: "fractal-sidebar__account-panel",
|
|
1512
1534
|
selectedValue: "",
|
|
1513
1535
|
triggerClassName: "fractal-sidebar__account-trigger",
|
|
1514
|
-
triggerContent: /* @__PURE__ */ (0,
|
|
1536
|
+
triggerContent: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { className: "fractal-sidebar__account-name", children: name }),
|
|
1515
1537
|
triggerLabel,
|
|
1516
1538
|
triggerVariant: "tertiary"
|
|
1517
1539
|
}
|
|
1518
1540
|
);
|
|
1519
1541
|
}
|
|
1520
1542
|
var SidebarNav = React11.forwardRef(
|
|
1521
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
1543
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("nav", { ref, className: cn("fractal-sidebar__nav", className), ...props })
|
|
1522
1544
|
);
|
|
1523
1545
|
SidebarNav.displayName = "SidebarNav";
|
|
1524
1546
|
var SidebarSection = React11.forwardRef(
|
|
1525
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
1547
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { ref, className: cn("fractal-sidebar__section", className), ...props })
|
|
1526
1548
|
);
|
|
1527
1549
|
SidebarSection.displayName = "SidebarSection";
|
|
1528
1550
|
var SidebarNavItem = React11.forwardRef(
|
|
1529
|
-
({ active = false, icon, endAdornment, className, type = "button", children, ...props }, ref) => /* @__PURE__ */ (0,
|
|
1551
|
+
({ active = false, icon, endAdornment, className, type = "button", children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
|
|
1530
1552
|
"button",
|
|
1531
1553
|
{
|
|
1532
1554
|
ref,
|
|
@@ -1536,28 +1558,28 @@ var SidebarNavItem = React11.forwardRef(
|
|
|
1536
1558
|
"aria-current": active ? "page" : void 0,
|
|
1537
1559
|
...props,
|
|
1538
1560
|
children: [
|
|
1539
|
-
icon && /* @__PURE__ */ (0,
|
|
1540
|
-
/* @__PURE__ */ (0,
|
|
1541
|
-
endAdornment && /* @__PURE__ */ (0,
|
|
1561
|
+
icon && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { className: "fractal-sidebar__nav-item-icon", "aria-hidden": "true", children: icon }),
|
|
1562
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { className: "fractal-sidebar__nav-item-label", children }),
|
|
1563
|
+
endAdornment && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { className: "fractal-sidebar__nav-item-end", children: endAdornment })
|
|
1542
1564
|
]
|
|
1543
1565
|
}
|
|
1544
1566
|
)
|
|
1545
1567
|
);
|
|
1546
1568
|
SidebarNavItem.displayName = "SidebarNavItem";
|
|
1547
1569
|
var SidebarFooter = React11.forwardRef(
|
|
1548
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
1570
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { ref, className: cn("fractal-sidebar__footer", className), ...props })
|
|
1549
1571
|
);
|
|
1550
1572
|
SidebarFooter.displayName = "SidebarFooter";
|
|
1551
1573
|
|
|
1552
1574
|
// src/components/SidePanel/SidePanel.tsx
|
|
1553
1575
|
var import_react_dom2 = require("react-dom");
|
|
1554
|
-
var
|
|
1555
|
-
var
|
|
1576
|
+
var import_fractal_icons8 = require("@mirror-physics/fractal-icons");
|
|
1577
|
+
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
1556
1578
|
function SidePanel({ open, onClose, title, description, children, footer, size = "md", loading = false, loadingLabel = "Loading", className }) {
|
|
1557
1579
|
useEscapeDismiss(80, onClose, open);
|
|
1558
1580
|
if (!open) return null;
|
|
1559
1581
|
return (0, import_react_dom2.createPortal)(
|
|
1560
|
-
/* @__PURE__ */ (0,
|
|
1582
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "fractal-side-panel-overlay", onMouseDown: onClose, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
1561
1583
|
"aside",
|
|
1562
1584
|
{
|
|
1563
1585
|
className: cn("fractal-side-panel", `fractal-side-panel--${size}`, className),
|
|
@@ -1566,15 +1588,15 @@ function SidePanel({ open, onClose, title, description, children, footer, size =
|
|
|
1566
1588
|
role: "dialog",
|
|
1567
1589
|
onMouseDown: (event) => event.stopPropagation(),
|
|
1568
1590
|
children: [
|
|
1569
|
-
/* @__PURE__ */ (0,
|
|
1570
|
-
/* @__PURE__ */ (0,
|
|
1571
|
-
/* @__PURE__ */ (0,
|
|
1572
|
-
description && /* @__PURE__ */ (0,
|
|
1591
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("header", { className: "fractal-side-panel__header", children: [
|
|
1592
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "fractal-side-panel__heading", children: [
|
|
1593
|
+
typeof title === "string" ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("h2", { className: "fractal-side-panel__title", children: title }) : /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "fractal-side-panel__title", children: title }),
|
|
1594
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("p", { className: "fractal-side-panel__description", children: description })
|
|
1573
1595
|
] }),
|
|
1574
|
-
/* @__PURE__ */ (0,
|
|
1596
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("button", { type: "button", className: "fractal-side-panel__close", "aria-label": "Close panel", onClick: onClose, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_fractal_icons8.Close, { size: 18 }) })
|
|
1575
1597
|
] }),
|
|
1576
|
-
/* @__PURE__ */ (0,
|
|
1577
|
-
footer && /* @__PURE__ */ (0,
|
|
1598
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { "aria-busy": loading || void 0, className: cn("fractal-side-panel__body", loading && "fractal-side-panel__body--loading"), children: loading ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(UILoader, { label: loadingLabel }) : children }),
|
|
1599
|
+
footer && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("footer", { className: "fractal-side-panel__footer", children: footer })
|
|
1578
1600
|
]
|
|
1579
1601
|
}
|
|
1580
1602
|
) }),
|
|
@@ -1584,17 +1606,17 @@ function SidePanel({ open, onClose, title, description, children, footer, size =
|
|
|
1584
1606
|
|
|
1585
1607
|
// src/components/Textarea/Textarea.tsx
|
|
1586
1608
|
var React12 = __toESM(require("react"), 1);
|
|
1587
|
-
var
|
|
1609
|
+
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
1588
1610
|
var Textarea = React12.forwardRef(
|
|
1589
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
1611
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("textarea", { ref, className: cn("fractal-textarea", className), ...props })
|
|
1590
1612
|
);
|
|
1591
1613
|
Textarea.displayName = "Textarea";
|
|
1592
1614
|
|
|
1593
1615
|
// src/components/TextButton/TextButton.tsx
|
|
1594
1616
|
var React13 = __toESM(require("react"), 1);
|
|
1595
|
-
var
|
|
1617
|
+
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
1596
1618
|
var TextButton = React13.forwardRef(
|
|
1597
|
-
({ className, icon, iconPosition = "start", size = "md", tone = "primary", children, ...props }, ref) => /* @__PURE__ */ (0,
|
|
1619
|
+
({ className, icon, iconPosition = "start", size = "md", tone = "primary", children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
|
|
1598
1620
|
"button",
|
|
1599
1621
|
{
|
|
1600
1622
|
ref,
|
|
@@ -1602,9 +1624,9 @@ var TextButton = React13.forwardRef(
|
|
|
1602
1624
|
type: "button",
|
|
1603
1625
|
...props,
|
|
1604
1626
|
children: [
|
|
1605
|
-
icon && iconPosition === "start" && /* @__PURE__ */ (0,
|
|
1606
|
-
/* @__PURE__ */ (0,
|
|
1607
|
-
icon && iconPosition === "end" && /* @__PURE__ */ (0,
|
|
1627
|
+
icon && iconPosition === "start" && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "fractal-text-button__icon", "aria-hidden": "true", children: icon }),
|
|
1628
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { children }),
|
|
1629
|
+
icon && iconPosition === "end" && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "fractal-text-button__icon", "aria-hidden": "true", children: icon })
|
|
1608
1630
|
]
|
|
1609
1631
|
}
|
|
1610
1632
|
)
|
|
@@ -1613,8 +1635,8 @@ TextButton.displayName = "TextButton";
|
|
|
1613
1635
|
|
|
1614
1636
|
// src/components/FileDropzone/FileDropzone.tsx
|
|
1615
1637
|
var React14 = __toESM(require("react"), 1);
|
|
1616
|
-
var
|
|
1617
|
-
var
|
|
1638
|
+
var import_fractal_icons9 = require("@mirror-physics/fractal-icons");
|
|
1639
|
+
var import_jsx_runtime26 = require("react/jsx-runtime");
|
|
1618
1640
|
function FileDropzone({
|
|
1619
1641
|
files,
|
|
1620
1642
|
onFilesChange,
|
|
@@ -1634,8 +1656,8 @@ function FileDropzone({
|
|
|
1634
1656
|
if (additions.length === 0) return;
|
|
1635
1657
|
onFilesChange(multiple ? [...files, ...additions] : additions.slice(0, 1));
|
|
1636
1658
|
};
|
|
1637
|
-
return /* @__PURE__ */ (0,
|
|
1638
|
-
/* @__PURE__ */ (0,
|
|
1659
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: cn("fractal-file-dropzone", className), children: [
|
|
1660
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
1639
1661
|
"input",
|
|
1640
1662
|
{
|
|
1641
1663
|
ref: inputRef,
|
|
@@ -1651,7 +1673,7 @@ function FileDropzone({
|
|
|
1651
1673
|
}
|
|
1652
1674
|
}
|
|
1653
1675
|
),
|
|
1654
|
-
/* @__PURE__ */ (0,
|
|
1676
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
|
|
1655
1677
|
"button",
|
|
1656
1678
|
{
|
|
1657
1679
|
className: "fractal-file-dropzone__target",
|
|
@@ -1674,18 +1696,18 @@ function FileDropzone({
|
|
|
1674
1696
|
addFiles(event.dataTransfer.files);
|
|
1675
1697
|
},
|
|
1676
1698
|
children: [
|
|
1677
|
-
/* @__PURE__ */ (0,
|
|
1678
|
-
/* @__PURE__ */ (0,
|
|
1679
|
-
/* @__PURE__ */ (0,
|
|
1680
|
-
description && /* @__PURE__ */ (0,
|
|
1699
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_fractal_icons9.FileArrowUp, { "aria-hidden": "true", size: 20 }),
|
|
1700
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("span", { className: "fractal-file-dropzone__copy", children: [
|
|
1701
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "fractal-file-dropzone__title", children: title }),
|
|
1702
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "fractal-file-dropzone__description", children: description })
|
|
1681
1703
|
] })
|
|
1682
1704
|
]
|
|
1683
1705
|
}
|
|
1684
1706
|
),
|
|
1685
|
-
files.length > 0 && /* @__PURE__ */ (0,
|
|
1686
|
-
/* @__PURE__ */ (0,
|
|
1687
|
-
/* @__PURE__ */ (0,
|
|
1688
|
-
/* @__PURE__ */ (0,
|
|
1707
|
+
files.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("ul", { className: "fractal-file-dropzone__files", "aria-label": "Attached files", children: files.map((file, index) => /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("li", { className: "fractal-file-dropzone__file", children: [
|
|
1708
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "fractal-file-dropzone__file-name", children: file.name }),
|
|
1709
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "fractal-file-dropzone__file-meta", children: formatFileSize(file.size) }),
|
|
1710
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
1689
1711
|
"button",
|
|
1690
1712
|
{
|
|
1691
1713
|
className: "fractal-file-dropzone__remove",
|
|
@@ -1693,7 +1715,7 @@ function FileDropzone({
|
|
|
1693
1715
|
"aria-label": `Remove ${file.name}`,
|
|
1694
1716
|
disabled,
|
|
1695
1717
|
onClick: () => onFilesChange(files.filter((_, fileIndex) => fileIndex !== index)),
|
|
1696
|
-
children: /* @__PURE__ */ (0,
|
|
1718
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_fractal_icons9.Close, { "aria-hidden": "true", size: 14 })
|
|
1697
1719
|
}
|
|
1698
1720
|
)
|
|
1699
1721
|
] }, `${file.name}-${file.size}-${index}`)) })
|
|
@@ -1706,8 +1728,8 @@ function formatFileSize(bytes) {
|
|
|
1706
1728
|
}
|
|
1707
1729
|
|
|
1708
1730
|
// src/components/Pagination/Pagination.tsx
|
|
1709
|
-
var
|
|
1710
|
-
var
|
|
1731
|
+
var import_fractal_icons10 = require("@mirror-physics/fractal-icons");
|
|
1732
|
+
var import_jsx_runtime27 = require("react/jsx-runtime");
|
|
1711
1733
|
function Pagination({
|
|
1712
1734
|
page,
|
|
1713
1735
|
pageSize,
|
|
@@ -1723,10 +1745,10 @@ function Pagination({
|
|
|
1723
1745
|
const start = totalItems === 0 ? 0 : (currentPage - 1) * pageSize + 1;
|
|
1724
1746
|
const end = Math.min(currentPage * pageSize, totalItems);
|
|
1725
1747
|
const canChangePageSize = pageSizeOptions != null && pageSizeOptions.length > 0 && onPageSizeChange != null;
|
|
1726
|
-
return /* @__PURE__ */ (0,
|
|
1727
|
-
/* @__PURE__ */ (0,
|
|
1728
|
-
/* @__PURE__ */ (0,
|
|
1729
|
-
canChangePageSize && /* @__PURE__ */ (0,
|
|
1748
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("nav", { className: cn("fractal-pagination", className), "aria-label": ariaLabel, children: [
|
|
1749
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)("span", { className: "fractal-pagination__summary", children: totalItems === 0 ? "No results" : `${start}-${end} of ${totalItems}` }),
|
|
1750
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "fractal-pagination__controls", children: [
|
|
1751
|
+
canChangePageSize && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
1730
1752
|
Dropdown,
|
|
1731
1753
|
{
|
|
1732
1754
|
align: "right",
|
|
@@ -1743,7 +1765,7 @@ function Pagination({
|
|
|
1743
1765
|
triggerVariant: "tertiary"
|
|
1744
1766
|
}
|
|
1745
1767
|
),
|
|
1746
|
-
/* @__PURE__ */ (0,
|
|
1768
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
1747
1769
|
"button",
|
|
1748
1770
|
{
|
|
1749
1771
|
className: "fractal-pagination__button",
|
|
@@ -1752,15 +1774,15 @@ function Pagination({
|
|
|
1752
1774
|
title: "Previous page",
|
|
1753
1775
|
disabled: currentPage === 1 || totalItems === 0,
|
|
1754
1776
|
onClick: () => onPageChange(currentPage - 1),
|
|
1755
|
-
children: /* @__PURE__ */ (0,
|
|
1777
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_fractal_icons10.ArrowLeft, { "aria-hidden": "true", size: 16 })
|
|
1756
1778
|
}
|
|
1757
1779
|
),
|
|
1758
|
-
/* @__PURE__ */ (0,
|
|
1780
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("span", { className: "fractal-pagination__page", "aria-current": "page", children: [
|
|
1759
1781
|
currentPage,
|
|
1760
1782
|
" of ",
|
|
1761
1783
|
totalPages
|
|
1762
1784
|
] }),
|
|
1763
|
-
/* @__PURE__ */ (0,
|
|
1785
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
1764
1786
|
"button",
|
|
1765
1787
|
{
|
|
1766
1788
|
className: "fractal-pagination__button",
|
|
@@ -1769,7 +1791,7 @@ function Pagination({
|
|
|
1769
1791
|
title: "Next page",
|
|
1770
1792
|
disabled: currentPage === totalPages || totalItems === 0,
|
|
1771
1793
|
onClick: () => onPageChange(currentPage + 1),
|
|
1772
|
-
children: /* @__PURE__ */ (0,
|
|
1794
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_fractal_icons10.ArrowRight, { "aria-hidden": "true", size: 16 })
|
|
1773
1795
|
}
|
|
1774
1796
|
)
|
|
1775
1797
|
] })
|
|
@@ -1781,6 +1803,7 @@ function Pagination({
|
|
|
1781
1803
|
AlertDescription,
|
|
1782
1804
|
AlertGhost,
|
|
1783
1805
|
AlertTitle,
|
|
1806
|
+
Breadcrumbs,
|
|
1784
1807
|
Button,
|
|
1785
1808
|
ButtonGhost,
|
|
1786
1809
|
Card,
|