@octavius2929-personal/design-system 1.4.1 → 1.5.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/index.cjs +96 -29
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +106 -33
- package/dist/index.css.map +1 -1
- package/dist/index.d.cts +32 -1
- package/dist/index.d.ts +32 -1
- package/dist/index.js +343 -276
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1000,36 +1000,103 @@ var import_react17 = require("react");
|
|
|
1000
1000
|
var import_react16 = require("react");
|
|
1001
1001
|
|
|
1002
1002
|
// src/components/avatar/use-styles.css.ts
|
|
1003
|
+
var dot = "use-styles_dot__1mn1rmu8";
|
|
1004
|
+
var dotSize = { sm: "use-styles_dotSize_sm__1mn1rmu9", md: "use-styles_dotSize_md__1mn1rmua", lg: "use-styles_dotSize_lg__1mn1rmub" };
|
|
1005
|
+
var dotTone = { online: "use-styles_dotTone_online__1mn1rmuc", away: "use-styles_dotTone_away__1mn1rmud", busy: "use-styles_dotTone_busy__1mn1rmue", offline: "use-styles_dotTone_offline__1mn1rmuf" };
|
|
1006
|
+
var image = "use-styles_image__1mn1rmu2";
|
|
1007
|
+
var mark = "use-styles_mark__1mn1rmug";
|
|
1008
|
+
var markShape = { online: "use-styles_markShape_online__1mn1rmuh", busy: "use-styles_markShape_busy__1mn1rmui", away: "use-styles_markShape_away__1mn1rmuj", offline: "use-styles_markShape_offline__1mn1rmuk" };
|
|
1003
1009
|
var root3 = "use-styles_root__1mn1rmu0";
|
|
1004
|
-
var size2 = { sm: "use-
|
|
1005
|
-
var
|
|
1010
|
+
var size2 = { sm: "use-styles_size_sm__1mn1rmu3", md: "use-styles_size_md__1mn1rmu4", lg: "use-styles_size_lg__1mn1rmu5" };
|
|
1011
|
+
var statusText = "surfaces_srOnly__1qa7atn0";
|
|
1012
|
+
var variant = { "default": "use-styles_variant_default__1mn1rmu6", filled: "use-styles_variant_filled__1mn1rmu7" };
|
|
1013
|
+
var visual = "use-styles_visual__1mn1rmu1";
|
|
1006
1014
|
|
|
1007
1015
|
// src/components/avatar/use-styles.ts
|
|
1008
|
-
function useStyles6({
|
|
1009
|
-
size: size3 = "md",
|
|
1010
|
-
filled,
|
|
1011
|
-
className
|
|
1012
|
-
}) {
|
|
1016
|
+
function useStyles6({ size: size3 = "md", filled, status, className }) {
|
|
1013
1017
|
const { themeClass } = useTheme();
|
|
1014
1018
|
const root25 = (0, import_react16.useMemo)(
|
|
1015
|
-
() => [
|
|
1016
|
-
|
|
1017
|
-
root3,
|
|
1018
|
-
size2[size3],
|
|
1019
|
-
filled ? variant.filled : variant.default,
|
|
1020
|
-
className
|
|
1021
|
-
].filter(Boolean).join(" "),
|
|
1022
|
-
[themeClass, size3, filled, className]
|
|
1019
|
+
() => [themeClass, root3, size2[size3]].filter(Boolean).join(" "),
|
|
1020
|
+
[themeClass, size3]
|
|
1023
1021
|
);
|
|
1024
|
-
|
|
1022
|
+
const visual2 = (0, import_react16.useMemo)(
|
|
1023
|
+
() => [visual, filled ? variant.filled : variant.default, className].filter(Boolean).join(" "),
|
|
1024
|
+
[filled, className]
|
|
1025
|
+
);
|
|
1026
|
+
const dot4 = (0, import_react16.useMemo)(
|
|
1027
|
+
() => status ? [dot, dotSize[size3], dotTone[status]].filter(Boolean).join(" ") : "",
|
|
1028
|
+
[status, size3]
|
|
1029
|
+
);
|
|
1030
|
+
const mark2 = (0, import_react16.useMemo)(
|
|
1031
|
+
() => status ? [mark, markShape[status]].filter(Boolean).join(" ") : "",
|
|
1032
|
+
[status]
|
|
1033
|
+
);
|
|
1034
|
+
return { root: root25, visual: visual2, image, dot: dot4, mark: mark2, statusText };
|
|
1025
1035
|
}
|
|
1026
1036
|
|
|
1027
1037
|
// src/components/avatar/index.tsx
|
|
1028
1038
|
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
1029
|
-
|
|
1030
|
-
const
|
|
1031
|
-
|
|
1032
|
-
|
|
1039
|
+
function getInitials(name) {
|
|
1040
|
+
const words = name?.trim().split(/\s+/).filter(Boolean) ?? [];
|
|
1041
|
+
if (words.length === 0) return "";
|
|
1042
|
+
const firstWord = words[0] ?? "";
|
|
1043
|
+
const firstLetter = Array.from(firstWord)[0] ?? "";
|
|
1044
|
+
if (words.length === 1) return firstLetter.toLocaleUpperCase();
|
|
1045
|
+
const secondWord = words[1] ?? "";
|
|
1046
|
+
const secondLetter = Array.from(secondWord)[0] ?? "";
|
|
1047
|
+
return (firstLetter + secondLetter).toLocaleUpperCase();
|
|
1048
|
+
}
|
|
1049
|
+
var statusLabel = {
|
|
1050
|
+
online: "Online",
|
|
1051
|
+
away: "Away",
|
|
1052
|
+
busy: "Busy",
|
|
1053
|
+
offline: "Offline"
|
|
1054
|
+
};
|
|
1055
|
+
var Avatar = (0, import_react17.forwardRef)(function Avatar2({
|
|
1056
|
+
size: size3,
|
|
1057
|
+
filled,
|
|
1058
|
+
src,
|
|
1059
|
+
alt,
|
|
1060
|
+
name,
|
|
1061
|
+
status,
|
|
1062
|
+
decorative = false,
|
|
1063
|
+
className,
|
|
1064
|
+
children,
|
|
1065
|
+
testId,
|
|
1066
|
+
...rest
|
|
1067
|
+
}, ref) {
|
|
1068
|
+
const [imgFailed, setImgFailed] = (0, import_react17.useState)(false);
|
|
1069
|
+
const [lastSrc, setLastSrc] = (0, import_react17.useState)(src);
|
|
1070
|
+
if (src !== lastSrc) {
|
|
1071
|
+
setLastSrc(src);
|
|
1072
|
+
setImgFailed(false);
|
|
1073
|
+
}
|
|
1074
|
+
const { root: root25, visual: visual2, image: image2, dot: dot4, mark: mark2, statusText: statusText2 } = useStyles6({
|
|
1075
|
+
size: size3,
|
|
1076
|
+
filled,
|
|
1077
|
+
status,
|
|
1078
|
+
className
|
|
1079
|
+
});
|
|
1080
|
+
const { testId: dataTestId, slot } = useTestId("media", testId);
|
|
1081
|
+
const showImage = Boolean(src) && !imgFailed;
|
|
1082
|
+
const accessibleName = alt?.trim() || name?.trim() || void 0;
|
|
1083
|
+
const fallback = children ?? getInitials(name);
|
|
1084
|
+
const visualA11yProps = decorative ? { "aria-hidden": true } : showImage ? {} : accessibleName ? { role: "img", "aria-label": accessibleName } : {};
|
|
1085
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("span", { ref, className: root25, "data-testid": dataTestId, ...rest, children: [
|
|
1086
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: visual2, "data-testid": slot("visual"), ...visualA11yProps, children: showImage ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
1087
|
+
"img",
|
|
1088
|
+
{
|
|
1089
|
+
src,
|
|
1090
|
+
alt: decorative ? "" : accessibleName ?? "",
|
|
1091
|
+
className: image2,
|
|
1092
|
+
onError: () => setImgFailed(true)
|
|
1093
|
+
}
|
|
1094
|
+
) : fallback }),
|
|
1095
|
+
status && /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("span", { className: dot4, "data-testid": slot("status"), "data-status": status, children: [
|
|
1096
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: mark2, "aria-hidden": "true" }),
|
|
1097
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: statusText2, children: statusLabel[status] })
|
|
1098
|
+
] })
|
|
1099
|
+
] });
|
|
1033
1100
|
});
|
|
1034
1101
|
|
|
1035
1102
|
// src/components/badge/index.tsx
|
|
@@ -1039,7 +1106,7 @@ var import_react19 = require("react");
|
|
|
1039
1106
|
var import_react18 = require("react");
|
|
1040
1107
|
|
|
1041
1108
|
// src/components/badge/use-styles.css.ts
|
|
1042
|
-
var
|
|
1109
|
+
var dot2 = "use-styles_dot__1wpei6p1";
|
|
1043
1110
|
var root4 = "use-styles_root__1wpei6p0";
|
|
1044
1111
|
var tone2 = { ink: "use-styles_tone_ink__1wpei6p2", accent: "use-styles_tone_accent__1wpei6p3" };
|
|
1045
1112
|
|
|
@@ -1053,18 +1120,18 @@ function useStyles7({
|
|
|
1053
1120
|
() => [themeClass, root4, className].filter(Boolean).join(" "),
|
|
1054
1121
|
[themeClass, className]
|
|
1055
1122
|
);
|
|
1056
|
-
const
|
|
1057
|
-
return { root: root25, dot:
|
|
1123
|
+
const dot4 = (0, import_react18.useMemo)(() => [dot2, tone2[tone4]].join(" "), [tone4]);
|
|
1124
|
+
return { root: root25, dot: dot4 };
|
|
1058
1125
|
}
|
|
1059
1126
|
|
|
1060
1127
|
// src/components/badge/index.tsx
|
|
1061
1128
|
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
1062
1129
|
var Badge = (0, import_react19.forwardRef)(function Badge2({ count, tone: tone4, className, children, testId, ...rest }, ref) {
|
|
1063
|
-
const { root: root25, dot:
|
|
1130
|
+
const { root: root25, dot: dot4 } = useStyles7({ tone: tone4, className });
|
|
1064
1131
|
const { testId: dataTestId, slot } = useTestId("media", testId);
|
|
1065
1132
|
return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("span", { ref, className: root25, "data-testid": dataTestId, ...rest, children: [
|
|
1066
1133
|
children,
|
|
1067
|
-
count != null && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className:
|
|
1134
|
+
count != null && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: dot4, "data-testid": slot("dot"), children: count })
|
|
1068
1135
|
] });
|
|
1069
1136
|
});
|
|
1070
1137
|
|
|
@@ -1331,7 +1398,7 @@ var import_react26 = require("react");
|
|
|
1331
1398
|
// src/components/radio/use-styles.css.ts
|
|
1332
1399
|
var circle = "use-styles_circle__vy61b42";
|
|
1333
1400
|
var disabled2 = "use-styles_disabled__vy61b41";
|
|
1334
|
-
var
|
|
1401
|
+
var dot3 = "use-styles_dot__vy61b43";
|
|
1335
1402
|
var input2 = "surfaces_srOnly__1qa7atn0";
|
|
1336
1403
|
var label2 = "use-styles_label__vy61b44";
|
|
1337
1404
|
var root7 = "use-styles_root__vy61b40";
|
|
@@ -1350,7 +1417,7 @@ function useStyles11({
|
|
|
1350
1417
|
root: root25,
|
|
1351
1418
|
input: input2,
|
|
1352
1419
|
circle,
|
|
1353
|
-
dot:
|
|
1420
|
+
dot: dot3,
|
|
1354
1421
|
label: label2
|
|
1355
1422
|
};
|
|
1356
1423
|
}
|
|
@@ -1358,7 +1425,7 @@ function useStyles11({
|
|
|
1358
1425
|
// src/components/radio/index.tsx
|
|
1359
1426
|
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
1360
1427
|
var Radio = (0, import_react27.forwardRef)(function Radio2({ checked, onChange, label: label8, name, value, disabled: disabled4, testId, ...rest }, ref) {
|
|
1361
|
-
const { root: root25, input: input6, circle: circle2, dot:
|
|
1428
|
+
const { root: root25, input: input6, circle: circle2, dot: dot4, label: labelClass } = useStyles11({ disabled: disabled4 });
|
|
1362
1429
|
const { testId: dataTestId } = useTestId("toggle", testId);
|
|
1363
1430
|
return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("label", { className: root25, "data-testid": dataTestId, "data-state": states({ checked, disabled: disabled4 }), children: [
|
|
1364
1431
|
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
@@ -1375,7 +1442,7 @@ var Radio = (0, import_react27.forwardRef)(function Radio2({ checked, onChange,
|
|
|
1375
1442
|
...rest
|
|
1376
1443
|
}
|
|
1377
1444
|
),
|
|
1378
|
-
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: circle2, children: checked && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className:
|
|
1445
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: circle2, children: checked && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: dot4 }) }),
|
|
1379
1446
|
label8 != null && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: labelClass, children: label8 })
|
|
1380
1447
|
] });
|
|
1381
1448
|
});
|