@usefidel/design-system 0.21.0 → 0.23.0
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/fidel.manifest.json +2 -2
- package/dist/index.cjs +138 -89
- package/dist/index.css +173 -5
- package/dist/index.d.cts +42 -6
- package/dist/index.d.ts +42 -6
- package/dist/index.js +129 -82
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1348,6 +1348,19 @@ function Stat({ label, value, children, className, ...rest }) {
|
|
|
1348
1348
|
] });
|
|
1349
1349
|
}
|
|
1350
1350
|
|
|
1351
|
+
// src/components/Swatch/Swatch.tsx
|
|
1352
|
+
import { jsx as jsx25, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
1353
|
+
function Swatch({ color, name, value, children, className, ...rest }) {
|
|
1354
|
+
return /* @__PURE__ */ jsxs21("div", { className: ["fds-swatch", className].filter(Boolean).join(" "), ...rest, children: [
|
|
1355
|
+
/* @__PURE__ */ jsx25("div", { className: "fds-swatch__color", style: { "--fds-swatch-color": color }, "aria-hidden": "true" }),
|
|
1356
|
+
/* @__PURE__ */ jsxs21("div", { className: "fds-swatch__body", children: [
|
|
1357
|
+
/* @__PURE__ */ jsx25("p", { className: "fds-swatch__name", children: name }),
|
|
1358
|
+
value != null && /* @__PURE__ */ jsx25("p", { className: "fds-swatch__value", children: value }),
|
|
1359
|
+
children != null && /* @__PURE__ */ jsx25("div", { className: "fds-swatch__detail", children })
|
|
1360
|
+
] })
|
|
1361
|
+
] });
|
|
1362
|
+
}
|
|
1363
|
+
|
|
1351
1364
|
// src/components/Checkbox/Checkbox.tsx
|
|
1352
1365
|
import {
|
|
1353
1366
|
forwardRef as forwardRef4,
|
|
@@ -1356,7 +1369,7 @@ import {
|
|
|
1356
1369
|
useImperativeHandle as useImperativeHandle2,
|
|
1357
1370
|
useRef as useRef6
|
|
1358
1371
|
} from "react";
|
|
1359
|
-
import { jsx as
|
|
1372
|
+
import { jsx as jsx26, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
1360
1373
|
var Checkbox = forwardRef4(function Checkbox2({ label, description, indeterminate = false, className, id, disabled, ...rest }, ref) {
|
|
1361
1374
|
const generatedId = useId7();
|
|
1362
1375
|
const inputId = id ?? generatedId;
|
|
@@ -1365,13 +1378,13 @@ var Checkbox = forwardRef4(function Checkbox2({ label, description, indeterminat
|
|
|
1365
1378
|
useEffect5(() => {
|
|
1366
1379
|
if (inputRef.current) inputRef.current.indeterminate = indeterminate;
|
|
1367
1380
|
}, [indeterminate]);
|
|
1368
|
-
return /* @__PURE__ */
|
|
1381
|
+
return /* @__PURE__ */ jsxs22(
|
|
1369
1382
|
"div",
|
|
1370
1383
|
{
|
|
1371
1384
|
className: ["fds-checkbox", className].filter(Boolean).join(" "),
|
|
1372
1385
|
"data-disabled": disabled ? "" : void 0,
|
|
1373
1386
|
children: [
|
|
1374
|
-
/* @__PURE__ */
|
|
1387
|
+
/* @__PURE__ */ jsx26(
|
|
1375
1388
|
"input",
|
|
1376
1389
|
{
|
|
1377
1390
|
...rest,
|
|
@@ -1382,14 +1395,14 @@ var Checkbox = forwardRef4(function Checkbox2({ label, description, indeterminat
|
|
|
1382
1395
|
className: "fds-checkbox__input"
|
|
1383
1396
|
}
|
|
1384
1397
|
),
|
|
1385
|
-
/* @__PURE__ */
|
|
1386
|
-
/* @__PURE__ */
|
|
1387
|
-
/* @__PURE__ */
|
|
1388
|
-
/* @__PURE__ */
|
|
1398
|
+
/* @__PURE__ */ jsxs22("label", { htmlFor: inputId, className: "fds-checkbox__control", children: [
|
|
1399
|
+
/* @__PURE__ */ jsxs22("span", { className: "fds-checkbox__box", "aria-hidden": "true", children: [
|
|
1400
|
+
/* @__PURE__ */ jsx26("svg", { className: "fds-checkbox__tick", viewBox: "0 0 12 12", fill: "none", children: /* @__PURE__ */ jsx26("path", { d: "M10 3L4.5 8.5 2 6", stroke: "currentColor", strokeWidth: "1.8", strokeLinecap: "round", strokeLinejoin: "round" }) }),
|
|
1401
|
+
/* @__PURE__ */ jsx26("svg", { className: "fds-checkbox__dash", viewBox: "0 0 12 12", fill: "none", children: /* @__PURE__ */ jsx26("path", { d: "M3 6h6", stroke: "currentColor", strokeWidth: "1.8", strokeLinecap: "round" }) })
|
|
1389
1402
|
] }),
|
|
1390
|
-
(label != null || description != null) && /* @__PURE__ */
|
|
1391
|
-
label != null && /* @__PURE__ */
|
|
1392
|
-
description != null && /* @__PURE__ */
|
|
1403
|
+
(label != null || description != null) && /* @__PURE__ */ jsxs22("span", { className: "fds-checkbox__text", children: [
|
|
1404
|
+
label != null && /* @__PURE__ */ jsx26("span", { className: "fds-checkbox__label", children: label }),
|
|
1405
|
+
description != null && /* @__PURE__ */ jsx26("span", { className: "fds-checkbox__description", children: description })
|
|
1393
1406
|
] })
|
|
1394
1407
|
] })
|
|
1395
1408
|
]
|
|
@@ -1399,25 +1412,57 @@ var Checkbox = forwardRef4(function Checkbox2({ label, description, indeterminat
|
|
|
1399
1412
|
|
|
1400
1413
|
// src/components/Radio/Radio.tsx
|
|
1401
1414
|
import { forwardRef as forwardRef5, useId as useId8 } from "react";
|
|
1402
|
-
import { jsx as
|
|
1415
|
+
import { jsx as jsx27, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
1403
1416
|
var Radio = forwardRef5(function Radio2({ label, description, className, id, disabled, ...rest }, ref) {
|
|
1404
1417
|
const generatedId = useId8();
|
|
1405
1418
|
const inputId = id ?? generatedId;
|
|
1406
|
-
return /* @__PURE__ */
|
|
1407
|
-
/* @__PURE__ */
|
|
1408
|
-
/* @__PURE__ */
|
|
1409
|
-
/* @__PURE__ */
|
|
1410
|
-
(label != null || description != null) && /* @__PURE__ */
|
|
1411
|
-
label != null && /* @__PURE__ */
|
|
1412
|
-
description != null && /* @__PURE__ */
|
|
1419
|
+
return /* @__PURE__ */ jsxs23("div", { className: ["fds-radio", className].filter(Boolean).join(" "), "data-disabled": disabled ? "" : void 0, children: [
|
|
1420
|
+
/* @__PURE__ */ jsx27("input", { ...rest, id: inputId, ref, type: "radio", disabled, className: "fds-radio__input" }),
|
|
1421
|
+
/* @__PURE__ */ jsxs23("label", { htmlFor: inputId, className: "fds-radio__control", children: [
|
|
1422
|
+
/* @__PURE__ */ jsx27("span", { className: "fds-radio__circle", "aria-hidden": "true" }),
|
|
1423
|
+
(label != null || description != null) && /* @__PURE__ */ jsxs23("span", { className: "fds-radio__text", children: [
|
|
1424
|
+
label != null && /* @__PURE__ */ jsx27("span", { className: "fds-radio__label", children: label }),
|
|
1425
|
+
description != null && /* @__PURE__ */ jsx27("span", { className: "fds-radio__description", children: description })
|
|
1413
1426
|
] })
|
|
1414
1427
|
] })
|
|
1415
1428
|
] });
|
|
1416
1429
|
});
|
|
1417
1430
|
|
|
1431
|
+
// src/components/RadioCard/RadioCard.tsx
|
|
1432
|
+
import { forwardRef as forwardRef6, useId as useId9 } from "react";
|
|
1433
|
+
import { jsx as jsx28, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
1434
|
+
var RadioCard = forwardRef6(function RadioCard2({ label, description, icon, meta, className, id, disabled, ...rest }, ref) {
|
|
1435
|
+
const generatedId = useId9();
|
|
1436
|
+
const inputId = id ?? generatedId;
|
|
1437
|
+
const descriptionId = description != null ? `${inputId}-description` : void 0;
|
|
1438
|
+
return /* @__PURE__ */ jsxs24("div", { className: ["fds-radio-card", className].filter(Boolean).join(" "), "data-disabled": disabled ? "" : void 0, children: [
|
|
1439
|
+
/* @__PURE__ */ jsx28(
|
|
1440
|
+
"input",
|
|
1441
|
+
{
|
|
1442
|
+
...rest,
|
|
1443
|
+
id: inputId,
|
|
1444
|
+
ref,
|
|
1445
|
+
type: "radio",
|
|
1446
|
+
disabled,
|
|
1447
|
+
"aria-describedby": descriptionId,
|
|
1448
|
+
className: "fds-radio-card__input"
|
|
1449
|
+
}
|
|
1450
|
+
),
|
|
1451
|
+
/* @__PURE__ */ jsxs24("label", { htmlFor: inputId, className: "fds-radio-card__body", children: [
|
|
1452
|
+
icon != null && /* @__PURE__ */ jsx28("span", { className: "fds-radio-card__icon", "aria-hidden": "true", children: icon }),
|
|
1453
|
+
/* @__PURE__ */ jsxs24("span", { className: "fds-radio-card__text", children: [
|
|
1454
|
+
/* @__PURE__ */ jsx28("span", { className: "fds-radio-card__label", children: label }),
|
|
1455
|
+
description != null && /* @__PURE__ */ jsx28("span", { id: descriptionId, className: "fds-radio-card__description", children: description }),
|
|
1456
|
+
meta != null && /* @__PURE__ */ jsx28("span", { className: "fds-radio-card__meta", children: meta })
|
|
1457
|
+
] }),
|
|
1458
|
+
/* @__PURE__ */ jsx28("span", { className: "fds-radio-card__circle", "aria-hidden": "true" })
|
|
1459
|
+
] })
|
|
1460
|
+
] });
|
|
1461
|
+
});
|
|
1462
|
+
|
|
1418
1463
|
// src/components/Accordion/Accordion.tsx
|
|
1419
|
-
import { useId as
|
|
1420
|
-
import { jsx as
|
|
1464
|
+
import { useId as useId10, useState as useState7 } from "react";
|
|
1465
|
+
import { jsx as jsx29, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
1421
1466
|
function Accordion({
|
|
1422
1467
|
summary,
|
|
1423
1468
|
actions,
|
|
@@ -1430,21 +1475,21 @@ function Accordion({
|
|
|
1430
1475
|
}) {
|
|
1431
1476
|
const [openState, setOpenState] = useState7(defaultOpen);
|
|
1432
1477
|
const open = openProp ?? openState;
|
|
1433
|
-
const bodyId =
|
|
1478
|
+
const bodyId = useId10();
|
|
1434
1479
|
const toggle = () => {
|
|
1435
1480
|
const next = !open;
|
|
1436
1481
|
if (openProp === void 0) setOpenState(next);
|
|
1437
1482
|
onOpenChange?.(next);
|
|
1438
1483
|
};
|
|
1439
|
-
return /* @__PURE__ */
|
|
1484
|
+
return /* @__PURE__ */ jsxs25(
|
|
1440
1485
|
"div",
|
|
1441
1486
|
{
|
|
1442
1487
|
className: ["fds-accordion", className].filter(Boolean).join(" "),
|
|
1443
1488
|
"data-open": open ? "" : void 0,
|
|
1444
1489
|
...rest,
|
|
1445
1490
|
children: [
|
|
1446
|
-
/* @__PURE__ */
|
|
1447
|
-
/* @__PURE__ */
|
|
1491
|
+
/* @__PURE__ */ jsxs25("div", { className: "fds-accordion__header", children: [
|
|
1492
|
+
/* @__PURE__ */ jsx29(
|
|
1448
1493
|
"button",
|
|
1449
1494
|
{
|
|
1450
1495
|
type: "button",
|
|
@@ -1455,17 +1500,17 @@ function Accordion({
|
|
|
1455
1500
|
children: summary
|
|
1456
1501
|
}
|
|
1457
1502
|
),
|
|
1458
|
-
actions != null && /* @__PURE__ */
|
|
1459
|
-
/* @__PURE__ */
|
|
1503
|
+
actions != null && /* @__PURE__ */ jsx29("div", { className: "fds-accordion__actions", children: actions }),
|
|
1504
|
+
/* @__PURE__ */ jsx29("span", { className: "fds-accordion__chevron", "aria-hidden": "true", onClick: toggle, children: /* @__PURE__ */ jsx29("svg", { viewBox: "0 0 24 24", width: "16", height: "16", fill: "none", children: /* @__PURE__ */ jsx29("path", { d: "M6 9l6 6 6-6", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) }) })
|
|
1460
1505
|
] }),
|
|
1461
|
-
/* @__PURE__ */
|
|
1506
|
+
/* @__PURE__ */ jsx29("div", { id: bodyId, className: "fds-accordion__body", hidden: !open, children })
|
|
1462
1507
|
]
|
|
1463
1508
|
}
|
|
1464
1509
|
);
|
|
1465
1510
|
}
|
|
1466
1511
|
|
|
1467
1512
|
// src/components/StepList/StepList.tsx
|
|
1468
|
-
import { jsx as
|
|
1513
|
+
import { jsx as jsx30, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
1469
1514
|
var STATUS_TEXT = {
|
|
1470
1515
|
done: "Done",
|
|
1471
1516
|
active: "In progress",
|
|
@@ -1475,32 +1520,32 @@ var STATUS_TEXT = {
|
|
|
1475
1520
|
function StepIcon({ status }) {
|
|
1476
1521
|
const common = { viewBox: "0 0 24 24", width: 18, height: 18, fill: "none", stroke: "currentColor", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round" };
|
|
1477
1522
|
if (status === "done") {
|
|
1478
|
-
return /* @__PURE__ */
|
|
1479
|
-
/* @__PURE__ */
|
|
1480
|
-
/* @__PURE__ */
|
|
1523
|
+
return /* @__PURE__ */ jsxs26("svg", { ...common, children: [
|
|
1524
|
+
/* @__PURE__ */ jsx30("circle", { cx: "12", cy: "12", r: "9" }),
|
|
1525
|
+
/* @__PURE__ */ jsx30("path", { d: "M8 12.5l2.5 2.5 5-5.5" })
|
|
1481
1526
|
] });
|
|
1482
1527
|
}
|
|
1483
1528
|
if (status === "active") {
|
|
1484
|
-
return /* @__PURE__ */
|
|
1529
|
+
return /* @__PURE__ */ jsx30("svg", { ...common, className: "fds-steps__spinner", children: /* @__PURE__ */ jsx30("path", { d: "M12 3v3M12 18v3M3 12h3M18 12h3M5.6 5.6l2.1 2.1M16.3 16.3l2.1 2.1M5.6 18.4l2.1-2.1M16.3 7.7l2.1-2.1" }) });
|
|
1485
1530
|
}
|
|
1486
1531
|
if (status === "failed") {
|
|
1487
|
-
return /* @__PURE__ */
|
|
1488
|
-
/* @__PURE__ */
|
|
1489
|
-
/* @__PURE__ */
|
|
1532
|
+
return /* @__PURE__ */ jsxs26("svg", { ...common, children: [
|
|
1533
|
+
/* @__PURE__ */ jsx30("circle", { cx: "12", cy: "12", r: "9" }),
|
|
1534
|
+
/* @__PURE__ */ jsx30("path", { d: "M12 7.5v5.5M12 16.5v.01" })
|
|
1490
1535
|
] });
|
|
1491
1536
|
}
|
|
1492
|
-
return /* @__PURE__ */
|
|
1537
|
+
return /* @__PURE__ */ jsx30("svg", { ...common, children: /* @__PURE__ */ jsx30("circle", { cx: "12", cy: "12", r: "9" }) });
|
|
1493
1538
|
}
|
|
1494
1539
|
function StepList({ steps, className, ...rest }) {
|
|
1495
|
-
return /* @__PURE__ */
|
|
1540
|
+
return /* @__PURE__ */ jsx30("ol", { className: ["fds-steps", className].filter(Boolean).join(" "), ...rest, children: steps.map((step) => /* @__PURE__ */ jsxs26(
|
|
1496
1541
|
"li",
|
|
1497
1542
|
{
|
|
1498
1543
|
className: `fds-steps__step fds-steps__step--${step.status}`,
|
|
1499
1544
|
"aria-current": step.status === "active" ? "step" : void 0,
|
|
1500
1545
|
children: [
|
|
1501
|
-
/* @__PURE__ */
|
|
1502
|
-
/* @__PURE__ */
|
|
1503
|
-
/* @__PURE__ */
|
|
1546
|
+
/* @__PURE__ */ jsx30("span", { className: "fds-steps__icon", "aria-hidden": "true", children: /* @__PURE__ */ jsx30(StepIcon, { status: step.status }) }),
|
|
1547
|
+
/* @__PURE__ */ jsx30("span", { className: "fds-steps__label", children: step.label }),
|
|
1548
|
+
/* @__PURE__ */ jsxs26("span", { className: "fds-steps__sr", children: [
|
|
1504
1549
|
", ",
|
|
1505
1550
|
STATUS_TEXT[step.status]
|
|
1506
1551
|
] })
|
|
@@ -1511,10 +1556,10 @@ function StepList({ steps, className, ...rest }) {
|
|
|
1511
1556
|
}
|
|
1512
1557
|
|
|
1513
1558
|
// src/components/Input/Input.tsx
|
|
1514
|
-
import { forwardRef as
|
|
1515
|
-
import { jsx as
|
|
1516
|
-
var Input =
|
|
1517
|
-
const genId =
|
|
1559
|
+
import { forwardRef as forwardRef7, useId as useId11 } from "react";
|
|
1560
|
+
import { jsx as jsx31, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
1561
|
+
var Input = forwardRef7(function Input2({ label, hint, error, leadingIcon, trailing, id, className, containerClassName, readOnly, disabled, ...rest }, ref) {
|
|
1562
|
+
const genId = useId11();
|
|
1518
1563
|
const inputId = id ?? genId;
|
|
1519
1564
|
const msgId = `${genId}-msg`;
|
|
1520
1565
|
const message = error ?? hint;
|
|
@@ -1523,11 +1568,11 @@ var Input = forwardRef6(function Input2({ label, hint, error, leadingIcon, trail
|
|
|
1523
1568
|
error ? "fds-input__box--error" : "",
|
|
1524
1569
|
readOnly || disabled ? "fds-input__box--locked" : ""
|
|
1525
1570
|
].filter(Boolean).join(" ");
|
|
1526
|
-
return /* @__PURE__ */
|
|
1527
|
-
label != null && /* @__PURE__ */
|
|
1528
|
-
/* @__PURE__ */
|
|
1529
|
-
leadingIcon != null && /* @__PURE__ */
|
|
1530
|
-
/* @__PURE__ */
|
|
1571
|
+
return /* @__PURE__ */ jsxs27("div", { className: ["fds-input", containerClassName].filter(Boolean).join(" "), children: [
|
|
1572
|
+
label != null && /* @__PURE__ */ jsx31("label", { htmlFor: inputId, className: "fds-input__label", children: label }),
|
|
1573
|
+
/* @__PURE__ */ jsxs27("div", { className: boxClasses, children: [
|
|
1574
|
+
leadingIcon != null && /* @__PURE__ */ jsx31("span", { className: "fds-input__icon", "aria-hidden": "true", children: leadingIcon }),
|
|
1575
|
+
/* @__PURE__ */ jsx31(
|
|
1531
1576
|
"input",
|
|
1532
1577
|
{
|
|
1533
1578
|
ref,
|
|
@@ -1540,14 +1585,14 @@ var Input = forwardRef6(function Input2({ label, hint, error, leadingIcon, trail
|
|
|
1540
1585
|
...rest
|
|
1541
1586
|
}
|
|
1542
1587
|
),
|
|
1543
|
-
trailing != null && /* @__PURE__ */
|
|
1588
|
+
trailing != null && /* @__PURE__ */ jsx31("span", { className: "fds-input__trailing", children: trailing })
|
|
1544
1589
|
] }),
|
|
1545
|
-
message != null && /* @__PURE__ */
|
|
1590
|
+
message != null && /* @__PURE__ */ jsx31("p", { id: msgId, className: error ? "fds-input__error" : "fds-input__hint", children: message })
|
|
1546
1591
|
] });
|
|
1547
1592
|
});
|
|
1548
1593
|
|
|
1549
1594
|
// src/components/IconButton/IconButton.tsx
|
|
1550
|
-
import { jsx as
|
|
1595
|
+
import { jsx as jsx32 } from "react/jsx-runtime";
|
|
1551
1596
|
function IconButton({
|
|
1552
1597
|
icon,
|
|
1553
1598
|
variant = "outlined",
|
|
@@ -1557,20 +1602,20 @@ function IconButton({
|
|
|
1557
1602
|
...rest
|
|
1558
1603
|
}) {
|
|
1559
1604
|
const classes = ["fds-icon-button", `fds-icon-button--${variant}`, `fds-icon-button--${size}`, className].filter(Boolean).join(" ");
|
|
1560
|
-
return /* @__PURE__ */
|
|
1605
|
+
return /* @__PURE__ */ jsx32("button", { type, className: classes, ...rest, children: /* @__PURE__ */ jsx32("span", { className: "fds-icon-button__icon", "aria-hidden": "true", children: icon }) });
|
|
1561
1606
|
}
|
|
1562
1607
|
|
|
1563
1608
|
// src/components/Menu/Menu.tsx
|
|
1564
1609
|
import {
|
|
1565
1610
|
cloneElement,
|
|
1566
1611
|
useEffect as useEffect6,
|
|
1567
|
-
useId as
|
|
1612
|
+
useId as useId12,
|
|
1568
1613
|
useRef as useRef7,
|
|
1569
1614
|
useState as useState8
|
|
1570
1615
|
} from "react";
|
|
1571
|
-
import { jsx as
|
|
1616
|
+
import { jsx as jsx33, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
1572
1617
|
function Menu({ trigger, items, align = "end", className }) {
|
|
1573
|
-
const listId =
|
|
1618
|
+
const listId = useId12();
|
|
1574
1619
|
const rootRef = useRef7(null);
|
|
1575
1620
|
const listRef = useRef7(null);
|
|
1576
1621
|
const [open, setOpen] = useState8(false);
|
|
@@ -1650,9 +1695,9 @@ function Menu({ trigger, items, align = "end", className }) {
|
|
|
1650
1695
|
}
|
|
1651
1696
|
}
|
|
1652
1697
|
});
|
|
1653
|
-
return /* @__PURE__ */
|
|
1698
|
+
return /* @__PURE__ */ jsxs28("div", { ref: rootRef, className: ["fds-menu", className].filter(Boolean).join(" "), children: [
|
|
1654
1699
|
wired,
|
|
1655
|
-
open && /* @__PURE__ */
|
|
1700
|
+
open && /* @__PURE__ */ jsx33(
|
|
1656
1701
|
"div",
|
|
1657
1702
|
{
|
|
1658
1703
|
ref: listRef,
|
|
@@ -1662,7 +1707,7 @@ function Menu({ trigger, items, align = "end", className }) {
|
|
|
1662
1707
|
className: `fds-menu__list fds-menu__list--${align}`,
|
|
1663
1708
|
"aria-activedescendant": `${listId}-item-${active}`,
|
|
1664
1709
|
onKeyDown: onListKeyDown,
|
|
1665
|
-
children: items.map((it, i) => /* @__PURE__ */
|
|
1710
|
+
children: items.map((it, i) => /* @__PURE__ */ jsxs28(
|
|
1666
1711
|
"div",
|
|
1667
1712
|
{
|
|
1668
1713
|
id: `${listId}-item-${i}`,
|
|
@@ -1678,7 +1723,7 @@ function Menu({ trigger, items, align = "end", className }) {
|
|
|
1678
1723
|
onMouseDown: (e) => e.preventDefault(),
|
|
1679
1724
|
onClick: () => choose(i),
|
|
1680
1725
|
children: [
|
|
1681
|
-
it.icon != null && /* @__PURE__ */
|
|
1726
|
+
it.icon != null && /* @__PURE__ */ jsx33("span", { className: "fds-menu__icon", "aria-hidden": "true", children: it.icon }),
|
|
1682
1727
|
it.label
|
|
1683
1728
|
]
|
|
1684
1729
|
},
|
|
@@ -1690,10 +1735,10 @@ function Menu({ trigger, items, align = "end", className }) {
|
|
|
1690
1735
|
}
|
|
1691
1736
|
|
|
1692
1737
|
// src/components/Table/Table.tsx
|
|
1693
|
-
import { jsx as
|
|
1738
|
+
import { jsx as jsx34, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
1694
1739
|
function Table({ columns, rows, rowKey, empty, className, "aria-label": ariaLabel, ...rest }) {
|
|
1695
|
-
return /* @__PURE__ */
|
|
1696
|
-
/* @__PURE__ */
|
|
1740
|
+
return /* @__PURE__ */ jsx34("div", { className: ["fds-table", className].filter(Boolean).join(" "), ...rest, children: /* @__PURE__ */ jsxs29("table", { className: "fds-table__table", "aria-label": ariaLabel, children: [
|
|
1741
|
+
/* @__PURE__ */ jsx34("thead", { children: /* @__PURE__ */ jsx34("tr", { children: columns.map((c) => /* @__PURE__ */ jsx34(
|
|
1697
1742
|
"th",
|
|
1698
1743
|
{
|
|
1699
1744
|
scope: "col",
|
|
@@ -1703,17 +1748,17 @@ function Table({ columns, rows, rowKey, empty, className, "aria-label": ariaLabe
|
|
|
1703
1748
|
},
|
|
1704
1749
|
c.key
|
|
1705
1750
|
)) }) }),
|
|
1706
|
-
/* @__PURE__ */
|
|
1707
|
-
rows.map((row) => /* @__PURE__ */
|
|
1708
|
-
rows.length === 0 && empty != null && /* @__PURE__ */
|
|
1751
|
+
/* @__PURE__ */ jsxs29("tbody", { children: [
|
|
1752
|
+
rows.map((row) => /* @__PURE__ */ jsx34("tr", { children: columns.map((c) => /* @__PURE__ */ jsx34("td", { className: c.align === "end" ? "fds-table__cell--end" : void 0, children: c.cell(row) }, c.key)) }, rowKey(row))),
|
|
1753
|
+
rows.length === 0 && empty != null && /* @__PURE__ */ jsx34("tr", { children: /* @__PURE__ */ jsx34("td", { colSpan: columns.length, className: "fds-table__empty", children: empty }) })
|
|
1709
1754
|
] })
|
|
1710
1755
|
] }) });
|
|
1711
1756
|
}
|
|
1712
1757
|
|
|
1713
1758
|
// src/components/PricingCard/PricingCard.tsx
|
|
1714
|
-
import { jsx as
|
|
1759
|
+
import { jsx as jsx35, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
1715
1760
|
function CheckIcon3() {
|
|
1716
|
-
return /* @__PURE__ */
|
|
1761
|
+
return /* @__PURE__ */ jsx35("svg", { viewBox: "0 0 16 16", width: "12", height: "12", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx35("path", { d: "M3.5 8.5l3 3 6-7", stroke: "currentColor", strokeWidth: "1.8", strokeLinecap: "round", strokeLinejoin: "round" }) });
|
|
1717
1762
|
}
|
|
1718
1763
|
function PricingCard({
|
|
1719
1764
|
eyebrow,
|
|
@@ -1731,25 +1776,25 @@ function PricingCard({
|
|
|
1731
1776
|
...rest
|
|
1732
1777
|
}) {
|
|
1733
1778
|
const classes = ["fds-pricing-card", highlighted ? "fds-pricing-card--highlighted" : "", className].filter(Boolean).join(" ");
|
|
1734
|
-
return /* @__PURE__ */
|
|
1735
|
-
/* @__PURE__ */
|
|
1736
|
-
eyebrow != null && /* @__PURE__ */
|
|
1737
|
-
/* @__PURE__ */
|
|
1779
|
+
return /* @__PURE__ */ jsxs30("article", { className: classes, ...rest, children: [
|
|
1780
|
+
/* @__PURE__ */ jsxs30("div", { className: "fds-pricing-card__top", children: [
|
|
1781
|
+
eyebrow != null && /* @__PURE__ */ jsx35("span", { className: "fds-pricing-card__eyebrow", children: eyebrow }),
|
|
1782
|
+
/* @__PURE__ */ jsxs30("h3", { className: "fds-pricing-card__title", children: [
|
|
1738
1783
|
title,
|
|
1739
1784
|
badge
|
|
1740
1785
|
] }),
|
|
1741
|
-
/* @__PURE__ */
|
|
1742
|
-
/* @__PURE__ */
|
|
1743
|
-
period != null && /* @__PURE__ */
|
|
1786
|
+
/* @__PURE__ */ jsxs30("p", { className: "fds-pricing-card__price", children: [
|
|
1787
|
+
/* @__PURE__ */ jsx35("span", { className: "fds-pricing-card__amount", children: price }),
|
|
1788
|
+
period != null && /* @__PURE__ */ jsx35("span", { className: "fds-pricing-card__period", children: period })
|
|
1744
1789
|
] }),
|
|
1745
|
-
description != null && /* @__PURE__ */
|
|
1746
|
-
action != null && /* @__PURE__ */
|
|
1790
|
+
description != null && /* @__PURE__ */ jsx35("p", { className: "fds-pricing-card__description", children: description }),
|
|
1791
|
+
action != null && /* @__PURE__ */ jsx35("div", { className: "fds-pricing-card__action", children: action })
|
|
1747
1792
|
] }),
|
|
1748
|
-
features.length > 0 && /* @__PURE__ */
|
|
1749
|
-
/* @__PURE__ */
|
|
1750
|
-
featuresIntro != null && /* @__PURE__ */
|
|
1751
|
-
/* @__PURE__ */
|
|
1752
|
-
/* @__PURE__ */
|
|
1793
|
+
features.length > 0 && /* @__PURE__ */ jsxs30("div", { className: "fds-pricing-card__features", children: [
|
|
1794
|
+
/* @__PURE__ */ jsx35("p", { className: "fds-pricing-card__featuresTitle", children: featuresTitle }),
|
|
1795
|
+
featuresIntro != null && /* @__PURE__ */ jsx35("p", { className: "fds-pricing-card__intro", children: featuresIntro }),
|
|
1796
|
+
/* @__PURE__ */ jsx35("ul", { className: "fds-pricing-card__list", children: features.map((f, i) => /* @__PURE__ */ jsxs30("li", { className: "fds-pricing-card__feature", children: [
|
|
1797
|
+
/* @__PURE__ */ jsx35("span", { className: "fds-pricing-card__check", children: /* @__PURE__ */ jsx35(CheckIcon3, {}) }),
|
|
1753
1798
|
f
|
|
1754
1799
|
] }, i)) })
|
|
1755
1800
|
] })
|
|
@@ -1777,6 +1822,7 @@ export {
|
|
|
1777
1822
|
Pagination,
|
|
1778
1823
|
PricingCard,
|
|
1779
1824
|
Radio,
|
|
1825
|
+
RadioCard,
|
|
1780
1826
|
SearchInput,
|
|
1781
1827
|
SectionHeader,
|
|
1782
1828
|
SegmentedControl,
|
|
@@ -1788,6 +1834,7 @@ export {
|
|
|
1788
1834
|
StackedCardsIllustration,
|
|
1789
1835
|
Stat,
|
|
1790
1836
|
StepList,
|
|
1837
|
+
Swatch,
|
|
1791
1838
|
TabNav,
|
|
1792
1839
|
Table,
|
|
1793
1840
|
Tag,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@usefidel/design-system",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.23.0",
|
|
4
4
|
"description": "Fidel brand design tokens + React component library — DTCG token source of truth, generated per-surface CSS + Tailwind-v4 parser-compatibility output, and on-brand React components (Button, MismatchCard, DiffSection).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.cjs",
|