@x-plat/design-system 0.4.6 → 0.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.
Files changed (151) hide show
  1. package/dist/components/Accordion/index.cjs +4 -4
  2. package/dist/components/Accordion/index.css +11 -11
  3. package/dist/components/Accordion/index.js +4 -4
  4. package/dist/components/Alert/index.css +19 -19
  5. package/dist/components/Avatar/index.cjs +11 -5
  6. package/dist/components/Avatar/index.css +41 -11
  7. package/dist/components/Avatar/index.d.cts +1 -2
  8. package/dist/components/Avatar/index.d.ts +1 -2
  9. package/dist/components/Avatar/index.js +11 -5
  10. package/dist/components/Badge/index.cjs +3 -4
  11. package/dist/components/Badge/index.css +32 -19
  12. package/dist/components/Badge/index.d.cts +3 -2
  13. package/dist/components/Badge/index.d.ts +3 -2
  14. package/dist/components/Badge/index.js +3 -4
  15. package/dist/components/Breadcrumb/index.css +6 -6
  16. package/dist/components/Button/index.cjs +1 -3
  17. package/dist/components/Button/index.css +67 -23
  18. package/dist/components/Button/index.d.cts +2 -3
  19. package/dist/components/Button/index.d.ts +2 -3
  20. package/dist/components/Button/index.js +1 -3
  21. package/dist/components/Calendar/index.cjs +10 -10
  22. package/dist/components/Calendar/index.css +51 -52
  23. package/dist/components/Calendar/index.d.cts +3 -3
  24. package/dist/components/Calendar/index.d.ts +3 -3
  25. package/dist/components/Calendar/index.js +10 -10
  26. package/dist/components/Card/index.css +6 -6
  27. package/dist/components/CardTab/index.css +28 -28
  28. package/dist/components/Chart/index.cjs +228 -14548
  29. package/dist/components/Chart/index.css +57 -0
  30. package/dist/components/Chart/index.d.cts +3 -2
  31. package/dist/components/Chart/index.d.ts +3 -2
  32. package/dist/components/Chart/index.js +219 -14541
  33. package/dist/components/CheckBox/index.cjs +13 -8
  34. package/dist/components/CheckBox/index.css +50 -27
  35. package/dist/components/CheckBox/index.d.cts +3 -2
  36. package/dist/components/CheckBox/index.d.ts +3 -2
  37. package/dist/components/CheckBox/index.js +13 -8
  38. package/dist/components/Chip/index.cjs +1 -3
  39. package/dist/components/Chip/index.css +35 -23
  40. package/dist/components/Chip/index.d.cts +2 -3
  41. package/dist/components/Chip/index.d.ts +2 -3
  42. package/dist/components/Chip/index.js +1 -3
  43. package/dist/components/DatePicker/index.cjs +37 -46
  44. package/dist/components/DatePicker/index.css +175 -122
  45. package/dist/components/DatePicker/index.d.cts +2 -3
  46. package/dist/components/DatePicker/index.d.ts +2 -3
  47. package/dist/components/DatePicker/index.js +37 -46
  48. package/dist/components/Divider/index.css +2 -2
  49. package/dist/components/Drawer/index.css +7 -7
  50. package/dist/components/Dropdown/index.css +10 -10
  51. package/dist/components/EmptyState/index.css +8 -9
  52. package/dist/components/FileUpload/index.cjs +4 -4
  53. package/dist/components/FileUpload/index.css +13 -14
  54. package/dist/components/FileUpload/index.js +4 -4
  55. package/dist/components/HtmlTypeWriter/index.cjs +10 -10
  56. package/dist/components/HtmlTypeWriter/index.css +3 -3
  57. package/dist/components/HtmlTypeWriter/index.js +10 -10
  58. package/dist/components/ImageSelector/index.cjs +4 -4
  59. package/dist/components/ImageSelector/index.css +15 -15
  60. package/dist/components/ImageSelector/index.js +4 -4
  61. package/dist/components/Input/index.css +37 -26
  62. package/dist/components/Modal/index.css +5 -4
  63. package/dist/components/Pagination/index.cjs +9 -10
  64. package/dist/components/Pagination/index.css +37 -26
  65. package/dist/components/Pagination/index.d.cts +3 -2
  66. package/dist/components/Pagination/index.d.ts +3 -2
  67. package/dist/components/Pagination/index.js +9 -10
  68. package/dist/components/PopOver/index.css +3 -3
  69. package/dist/components/Progress/index.cjs +4 -5
  70. package/dist/components/Progress/index.css +23 -9
  71. package/dist/components/Progress/index.d.cts +3 -2
  72. package/dist/components/Progress/index.d.ts +3 -2
  73. package/dist/components/Progress/index.js +4 -5
  74. package/dist/components/Radio/index.cjs +3 -4
  75. package/dist/components/Radio/index.css +61 -29
  76. package/dist/components/Radio/index.d.cts +3 -2
  77. package/dist/components/Radio/index.d.ts +3 -2
  78. package/dist/components/Radio/index.js +3 -4
  79. package/dist/components/Select/index.cjs +4 -4
  80. package/dist/components/Select/index.css +46 -40
  81. package/dist/components/Select/index.js +4 -4
  82. package/dist/components/Skeleton/index.css +3 -3
  83. package/dist/components/Spinner/index.cjs +2 -3
  84. package/dist/components/Spinner/index.css +22 -8
  85. package/dist/components/Spinner/index.d.cts +3 -2
  86. package/dist/components/Spinner/index.d.ts +3 -2
  87. package/dist/components/Spinner/index.js +2 -3
  88. package/dist/components/Steps/index.cjs +8 -9
  89. package/dist/components/Steps/index.css +77 -22
  90. package/dist/components/Steps/index.d.cts +3 -2
  91. package/dist/components/Steps/index.d.ts +3 -2
  92. package/dist/components/Steps/index.js +8 -9
  93. package/dist/components/Swiper/index.css +10 -10
  94. package/dist/components/Switch/index.cjs +4 -5
  95. package/dist/components/Switch/index.css +58 -26
  96. package/dist/components/Switch/index.d.cts +3 -2
  97. package/dist/components/Switch/index.d.ts +3 -2
  98. package/dist/components/Switch/index.js +4 -5
  99. package/dist/components/Tab/index.css +15 -15
  100. package/dist/components/Table/index.cjs +0 -3
  101. package/dist/components/Table/index.css +15 -15
  102. package/dist/components/Table/index.d.cts +1 -2
  103. package/dist/components/Table/index.d.ts +1 -2
  104. package/dist/components/Table/index.js +0 -3
  105. package/dist/components/Tag/index.cjs +23 -10
  106. package/dist/components/Tag/index.css +58 -17
  107. package/dist/components/Tag/index.d.cts +5 -2
  108. package/dist/components/Tag/index.d.ts +5 -2
  109. package/dist/components/Tag/index.js +23 -10
  110. package/dist/components/TextArea/index.css +20 -9
  111. package/dist/components/Toast/index.css +22 -22
  112. package/dist/components/Tooltip/index.cjs +1 -3
  113. package/dist/components/Tooltip/index.css +6 -6
  114. package/dist/components/Tooltip/index.d.cts +1 -2
  115. package/dist/components/Tooltip/index.d.ts +1 -2
  116. package/dist/components/Tooltip/index.js +1 -3
  117. package/dist/components/Video/index.css +5 -5
  118. package/dist/components/index.cjs +970 -15289
  119. package/dist/components/index.css +2167 -1061
  120. package/dist/components/index.d.cts +1 -2
  121. package/dist/components/index.d.ts +1 -2
  122. package/dist/components/index.js +871 -15192
  123. package/dist/index.cjs +1077 -15378
  124. package/dist/index.css +2164 -1058
  125. package/dist/index.d.cts +3 -3
  126. package/dist/index.d.ts +3 -3
  127. package/dist/index.js +877 -15182
  128. package/dist/layout/Grid/FullGrid/index.cjs +9 -18
  129. package/dist/layout/Grid/FullGrid/index.d.cts +1 -1
  130. package/dist/layout/Grid/FullGrid/index.d.ts +1 -1
  131. package/dist/layout/Grid/FullGrid/index.js +9 -18
  132. package/dist/layout/Grid/FullScreen/index.cjs +9 -18
  133. package/dist/layout/Grid/FullScreen/index.d.cts +3 -3
  134. package/dist/layout/Grid/FullScreen/index.d.ts +3 -3
  135. package/dist/layout/Grid/FullScreen/index.js +9 -18
  136. package/dist/layout/Grid/index.cjs +34 -20
  137. package/dist/layout/Grid/index.js +34 -20
  138. package/dist/layout/index.cjs +34 -20
  139. package/dist/layout/index.css +1000 -295
  140. package/dist/layout/index.js +34 -20
  141. package/dist/tokens/index.cjs +33 -142
  142. package/dist/tokens/index.d.cts +23 -6
  143. package/dist/tokens/index.d.ts +23 -6
  144. package/dist/tokens/index.js +29 -140
  145. package/package.json +2 -4
  146. package/dist/colors-CY4JXVHj.d.cts +0 -137
  147. package/dist/colors-CY4JXVHj.d.ts +0 -137
  148. package/dist/layout/Grid/GapGrid/index.cjs +0 -32
  149. package/dist/layout/Grid/GapGrid/index.d.cts +0 -12
  150. package/dist/layout/Grid/GapGrid/index.d.ts +0 -12
  151. package/dist/layout/Grid/GapGrid/index.js +0 -11
@@ -436,10 +436,10 @@ var import_jsx_runtime126 = require("react/jsx-runtime");
436
436
  // src/tokens/svg/file/BookIcon.tsx
437
437
  var import_jsx_runtime127 = require("react/jsx-runtime");
438
438
 
439
- // src/tokens/svg/file/BookOpenIcon.tsx
439
+ // src/tokens/svg/file/BookmarkIcon.tsx
440
440
  var import_jsx_runtime128 = require("react/jsx-runtime");
441
441
 
442
- // src/tokens/svg/file/BookmarkIcon.tsx
442
+ // src/tokens/svg/file/BookOpenIcon.tsx
443
443
  var import_jsx_runtime129 = require("react/jsx-runtime");
444
444
 
445
445
  // src/tokens/svg/file/ClipboardIcon.tsx
@@ -895,10 +895,10 @@ var import_jsx_runtime279 = require("react/jsx-runtime");
895
895
  // src/tokens/svg/user/UserPlusIcon.tsx
896
896
  var import_jsx_runtime280 = require("react/jsx-runtime");
897
897
 
898
- // src/tokens/svg/user/UserXIcon.tsx
898
+ // src/tokens/svg/user/UsersIcon.tsx
899
899
  var import_jsx_runtime281 = require("react/jsx-runtime");
900
900
 
901
- // src/tokens/svg/user/UsersIcon.tsx
901
+ // src/tokens/svg/user/UserXIcon.tsx
902
902
  var import_jsx_runtime282 = require("react/jsx-runtime");
903
903
 
904
904
  // src/tokens/svg/weather/CloudDrizzleIcon.tsx
@@ -1,11 +1,11 @@
1
1
  /* src/components/Accordion/accordion.scss */
2
2
  .lib-xplat-accordion {
3
- border: 1px solid var(--xplat-neutral-200);
4
- border-radius: 0.5rem;
3
+ border: 1px solid var(--semantic-border-default);
4
+ border-radius: var(--spacing-radius-md);
5
5
  overflow: hidden;
6
6
  }
7
7
  .lib-xplat-accordion .accordion-item {
8
- border-bottom: 1px solid var(--xplat-neutral-200);
8
+ border-bottom: 1px solid var(--semantic-border-default);
9
9
  }
10
10
  .lib-xplat-accordion .accordion-item:last-child {
11
11
  border-bottom: none;
@@ -15,28 +15,28 @@
15
15
  align-items: center;
16
16
  justify-content: space-between;
17
17
  width: 100%;
18
- padding: 0.875rem 1rem;
18
+ padding: 14px var(--spacing-space-4);
19
19
  background: none;
20
20
  border: none;
21
21
  cursor: pointer;
22
22
  font-size: 14px;
23
23
  font-weight: 500;
24
- color: var(--xplat-neutral-900);
24
+ color: var(--semantic-text-strong);
25
25
  text-align: left;
26
26
  transition: background-color 0.2s;
27
27
  }
28
28
  .lib-xplat-accordion .accordion-header:hover {
29
- background-color: var(--xplat-neutral-50);
29
+ background-color: var(--semantic-surface-neutral-subtle);
30
30
  }
31
31
  .lib-xplat-accordion .accordion-header .chevron {
32
- width: 20px;
33
- height: 20px;
32
+ width: var(--spacing-space-5);
33
+ height: var(--spacing-space-5);
34
34
  flex-shrink: 0;
35
35
  display: flex;
36
36
  align-items: center;
37
37
  justify-content: center;
38
38
  transition: transform 0.25s ease;
39
- color: var(--xplat-neutral-500);
39
+ color: var(--semantic-text-muted);
40
40
  }
41
41
  .lib-xplat-accordion .accordion-body {
42
42
  overflow: hidden;
@@ -44,9 +44,9 @@
44
44
  transition: max-height 0.25s ease;
45
45
  }
46
46
  .lib-xplat-accordion .accordion-content {
47
- padding: 0 1rem 0.875rem;
47
+ padding: 0 var(--spacing-space-4) 14px;
48
48
  font-size: 14px;
49
- color: var(--xplat-neutral-600);
49
+ color: var(--semantic-text-subtle);
50
50
  line-height: 1.6;
51
51
  }
52
52
  .lib-xplat-accordion .accordion-item.open .chevron {
@@ -400,10 +400,10 @@ import { jsx as jsx126, jsxs as jsxs72 } from "react/jsx-runtime";
400
400
  // src/tokens/svg/file/BookIcon.tsx
401
401
  import { jsx as jsx127 } from "react/jsx-runtime";
402
402
 
403
- // src/tokens/svg/file/BookOpenIcon.tsx
403
+ // src/tokens/svg/file/BookmarkIcon.tsx
404
404
  import { jsx as jsx128 } from "react/jsx-runtime";
405
405
 
406
- // src/tokens/svg/file/BookmarkIcon.tsx
406
+ // src/tokens/svg/file/BookOpenIcon.tsx
407
407
  import { jsx as jsx129 } from "react/jsx-runtime";
408
408
 
409
409
  // src/tokens/svg/file/ClipboardIcon.tsx
@@ -859,10 +859,10 @@ import { jsx as jsx279, jsxs as jsxs177 } from "react/jsx-runtime";
859
859
  // src/tokens/svg/user/UserPlusIcon.tsx
860
860
  import { jsx as jsx280, jsxs as jsxs178 } from "react/jsx-runtime";
861
861
 
862
- // src/tokens/svg/user/UserXIcon.tsx
862
+ // src/tokens/svg/user/UsersIcon.tsx
863
863
  import { jsx as jsx281, jsxs as jsxs179 } from "react/jsx-runtime";
864
864
 
865
- // src/tokens/svg/user/UsersIcon.tsx
865
+ // src/tokens/svg/user/UserXIcon.tsx
866
866
  import { jsx as jsx282, jsxs as jsxs180 } from "react/jsx-runtime";
867
867
 
868
868
  // src/tokens/svg/weather/CloudDrizzleIcon.tsx
@@ -3,8 +3,8 @@
3
3
  display: flex;
4
4
  align-items: flex-start;
5
5
  justify-content: space-between;
6
- padding: 0.75rem 1rem;
7
- border-radius: 0.5rem;
6
+ padding: var(--spacing-space-3) var(--spacing-space-4);
7
+ border-radius: var(--spacing-radius-md);
8
8
  font-size: 14px;
9
9
  line-height: 1.5;
10
10
  border: 1px solid;
@@ -18,7 +18,7 @@
18
18
  cursor: pointer;
19
19
  font-size: 18px;
20
20
  line-height: 1;
21
- margin-left: 0.5rem;
21
+ margin-left: var(--spacing-space-2);
22
22
  padding: 0;
23
23
  opacity: 0.6;
24
24
  transition: opacity 0.2s;
@@ -27,34 +27,34 @@
27
27
  opacity: 1;
28
28
  }
29
29
  .lib-xplat-alert.info {
30
- background-color: var(--xplat-lightblue-50);
31
- border-color: var(--xplat-lightblue-200);
32
- color: var(--xplat-lightblue-700);
30
+ background-color: var(--semantic-surface-info-subtle);
31
+ border-color: var(--semantic-border-info);
32
+ color: var(--semantic-text-info);
33
33
  }
34
34
  .lib-xplat-alert.info .close-btn {
35
- color: var(--xplat-lightblue-700);
35
+ color: var(--semantic-text-info);
36
36
  }
37
37
  .lib-xplat-alert.success {
38
- background-color: var(--xplat-green-50);
39
- border-color: var(--xplat-green-200);
40
- color: var(--xplat-green-700);
38
+ background-color: var(--semantic-surface-success-subtle);
39
+ border-color: var(--semantic-border-success);
40
+ color: var(--semantic-text-success);
41
41
  }
42
42
  .lib-xplat-alert.success .close-btn {
43
- color: var(--xplat-green-700);
43
+ color: var(--semantic-text-success);
44
44
  }
45
45
  .lib-xplat-alert.warning {
46
- background-color: var(--xplat-yellow-50);
47
- border-color: var(--xplat-yellow-200);
48
- color: var(--xplat-yellow-700);
46
+ background-color: var(--semantic-surface-warning-subtle);
47
+ border-color: var(--semantic-border-warning);
48
+ color: var(--semantic-text-warning);
49
49
  }
50
50
  .lib-xplat-alert.warning .close-btn {
51
- color: var(--xplat-yellow-700);
51
+ color: var(--semantic-text-warning);
52
52
  }
53
53
  .lib-xplat-alert.error {
54
- background-color: var(--xplat-red-50);
55
- border-color: var(--xplat-red-200);
56
- color: var(--xplat-red-700);
54
+ background-color: var(--semantic-surface-error-subtle);
55
+ border-color: var(--semantic-border-error);
56
+ color: var(--semantic-text-error);
57
57
  }
58
58
  .lib-xplat-alert.error .close-btn {
59
- color: var(--xplat-red-700);
59
+ color: var(--semantic-text-error);
60
60
  }
@@ -42,17 +42,23 @@ var clsx_default = clsx;
42
42
 
43
43
  // src/components/Avatar/Avatar.tsx
44
44
  var import_jsx_runtime = require("react/jsx-runtime");
45
+ var CATEGORICAL_COUNT = 8;
46
+ var getColorIndex = (name) => {
47
+ if (!name) return 1;
48
+ const code = name.charCodeAt(0) || 0;
49
+ return code % CATEGORICAL_COUNT + 1;
50
+ };
45
51
  var Avatar = (props) => {
46
52
  const {
47
53
  src,
48
54
  alt,
49
55
  name,
50
- size = "md",
51
- color = "xplat-blue-500"
56
+ size = "md"
52
57
  } = props;
53
- const colorClass = color;
54
- const initials = name ? name.split(" ").map((s) => s[0]).join("").slice(0, 2).toUpperCase() : "";
55
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: clsx_default("lib-xplat-avatar", size), children: src ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("img", { src, alt: alt || name || "avatar" }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: clsx_default("fallback", colorClass), children: initials || /* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", { viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z" }) }) }) });
58
+ const fullInitials = name ? name.split(" ").map((s) => s[0]).join("").slice(0, 2).toUpperCase() : "";
59
+ const initials = size === "sm" ? fullInitials.slice(0, 1) : fullInitials;
60
+ const catIndex = getColorIndex(name || "");
61
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: clsx_default("lib-xplat-avatar", size), children: src ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("img", { src, alt: alt || name || "avatar" }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: clsx_default("fallback", `cat-${catIndex}`), children: initials || /* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", { viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z" }) }) }) });
56
62
  };
57
63
  Avatar.displayName = "Avatar";
58
64
  var Avatar_default = Avatar;
@@ -9,18 +9,18 @@
9
9
  user-select: none;
10
10
  }
11
11
  .lib-xplat-avatar.sm {
12
- width: 32px;
13
- height: 32px;
14
- font-size: 12px;
12
+ width: var(--spacing-control-height-sm);
13
+ height: var(--spacing-control-height-sm);
14
+ font-size: 11px;
15
15
  }
16
16
  .lib-xplat-avatar.md {
17
- width: 40px;
18
- height: 40px;
17
+ width: var(--spacing-control-height-md);
18
+ height: var(--spacing-control-height-md);
19
19
  font-size: 14px;
20
20
  }
21
21
  .lib-xplat-avatar.lg {
22
- width: 56px;
23
- height: 56px;
22
+ width: var(--spacing-control-height-lg);
23
+ height: var(--spacing-control-height-lg);
24
24
  font-size: 18px;
25
25
  }
26
26
  .lib-xplat-avatar img {
@@ -34,13 +34,43 @@
34
34
  display: flex;
35
35
  align-items: center;
36
36
  justify-content: center;
37
- color: var(--xplat-white);
38
37
  font-weight: 600;
38
+ background-color: var(--semantic-surface-neutral-subtle);
39
+ color: var(--semantic-text-muted);
40
+ }
41
+ .lib-xplat-avatar .fallback.cat-1 {
42
+ background-color: var(--semantic-categorical-1-bg);
43
+ color: var(--semantic-categorical-1-text);
44
+ }
45
+ .lib-xplat-avatar .fallback.cat-2 {
46
+ background-color: var(--semantic-categorical-2-bg);
47
+ color: var(--semantic-categorical-2-text);
48
+ }
49
+ .lib-xplat-avatar .fallback.cat-3 {
50
+ background-color: var(--semantic-categorical-3-bg);
51
+ color: var(--semantic-categorical-3-text);
52
+ }
53
+ .lib-xplat-avatar .fallback.cat-4 {
54
+ background-color: var(--semantic-categorical-4-bg);
55
+ color: var(--semantic-categorical-4-text);
56
+ }
57
+ .lib-xplat-avatar .fallback.cat-5 {
58
+ background-color: var(--semantic-categorical-5-bg);
59
+ color: var(--semantic-categorical-5-text);
60
+ }
61
+ .lib-xplat-avatar .fallback.cat-6 {
62
+ background-color: var(--semantic-categorical-6-bg);
63
+ color: var(--semantic-categorical-6-text);
64
+ }
65
+ .lib-xplat-avatar .fallback.cat-7 {
66
+ background-color: var(--semantic-categorical-7-bg);
67
+ color: var(--semantic-categorical-7-text);
68
+ }
69
+ .lib-xplat-avatar .fallback.cat-8 {
70
+ background-color: var(--semantic-categorical-8-bg);
71
+ color: var(--semantic-categorical-8-text);
39
72
  }
40
73
  .lib-xplat-avatar .fallback svg {
41
74
  width: 60%;
42
75
  height: 60%;
43
76
  }
44
- .lib-xplat-avatar .fallback {
45
- background-color: var(--ds-color);
46
- }
@@ -1,8 +1,7 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { a as ColorProps } from '../../colors-CY4JXVHj.cjs';
3
2
 
4
3
  type AvatarSize = "sm" | "md" | "lg";
5
- interface AvatarProps extends ColorProps {
4
+ interface AvatarProps {
6
5
  src?: string;
7
6
  alt?: string;
8
7
  name?: string;
@@ -1,8 +1,7 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { a as ColorProps } from '../../colors-CY4JXVHj.js';
3
2
 
4
3
  type AvatarSize = "sm" | "md" | "lg";
5
- interface AvatarProps extends ColorProps {
4
+ interface AvatarProps {
6
5
  src?: string;
7
6
  alt?: string;
8
7
  name?: string;
@@ -16,17 +16,23 @@ var clsx_default = clsx;
16
16
 
17
17
  // src/components/Avatar/Avatar.tsx
18
18
  import { jsx } from "react/jsx-runtime";
19
+ var CATEGORICAL_COUNT = 8;
20
+ var getColorIndex = (name) => {
21
+ if (!name) return 1;
22
+ const code = name.charCodeAt(0) || 0;
23
+ return code % CATEGORICAL_COUNT + 1;
24
+ };
19
25
  var Avatar = (props) => {
20
26
  const {
21
27
  src,
22
28
  alt,
23
29
  name,
24
- size = "md",
25
- color = "xplat-blue-500"
30
+ size = "md"
26
31
  } = props;
27
- const colorClass = color;
28
- const initials = name ? name.split(" ").map((s) => s[0]).join("").slice(0, 2).toUpperCase() : "";
29
- return /* @__PURE__ */ jsx("div", { className: clsx_default("lib-xplat-avatar", size), children: src ? /* @__PURE__ */ jsx("img", { src, alt: alt || name || "avatar" }) : /* @__PURE__ */ jsx("div", { className: clsx_default("fallback", colorClass), children: initials || /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ jsx("path", { d: "M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z" }) }) }) });
32
+ const fullInitials = name ? name.split(" ").map((s) => s[0]).join("").slice(0, 2).toUpperCase() : "";
33
+ const initials = size === "sm" ? fullInitials.slice(0, 1) : fullInitials;
34
+ const catIndex = getColorIndex(name || "");
35
+ return /* @__PURE__ */ jsx("div", { className: clsx_default("lib-xplat-avatar", size), children: src ? /* @__PURE__ */ jsx("img", { src, alt: alt || name || "avatar" }) : /* @__PURE__ */ jsx("div", { className: clsx_default("fallback", `cat-${catIndex}`), children: initials || /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ jsx("path", { d: "M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z" }) }) }) });
30
36
  };
31
37
  Avatar.displayName = "Avatar";
32
38
  var Avatar_default = Avatar;
@@ -45,18 +45,17 @@ var import_jsx_runtime = require("react/jsx-runtime");
45
45
  var Badge = (props) => {
46
46
  const {
47
47
  children,
48
+ type = "error",
48
49
  count,
49
50
  maxCount = 99,
50
51
  dot = false,
51
- size = "md",
52
- color = "xplat-red-500"
52
+ size = "md"
53
53
  } = props;
54
- const colorClass = color;
55
54
  const showBadge = dot || count !== void 0 && count > 0;
56
55
  const displayCount = count !== void 0 && count > maxCount ? `${maxCount}+` : count;
57
56
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: clsx_default("lib-xplat-badge", size), children: [
58
57
  children,
59
- showBadge && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: clsx_default("badge-indicator", colorClass, { dot }), children: !dot && displayCount })
58
+ showBadge && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: clsx_default("badge-indicator", type, { dot }), children: !dot && displayCount })
60
59
  ] });
61
60
  };
62
61
  Badge.displayName = "Badge";
@@ -4,24 +4,24 @@
4
4
  display: inline-flex;
5
5
  }
6
6
  .lib-xplat-badge.sm .badge-indicator {
7
- min-width: 14px;
8
- height: 14px;
7
+ min-width: var(--spacing-space-4);
8
+ height: var(--spacing-space-4);
9
9
  font-size: 9px;
10
- padding: 0 3px;
10
+ padding: 0 var(--spacing-space-1);
11
11
  }
12
12
  .lib-xplat-badge.sm .badge-indicator.dot {
13
- min-width: 6px;
14
- height: 6px;
13
+ min-width: var(--spacing-space-2);
14
+ height: var(--spacing-space-2);
15
15
  }
16
16
  .lib-xplat-badge.lg .badge-indicator {
17
- min-width: 22px;
18
- height: 22px;
17
+ min-width: var(--spacing-space-6);
18
+ height: var(--spacing-space-6);
19
19
  font-size: 13px;
20
- padding: 0 6px;
20
+ padding: 0 var(--spacing-space-2);
21
21
  }
22
22
  .lib-xplat-badge.lg .badge-indicator.dot {
23
- min-width: 10px;
24
- height: 10px;
23
+ min-width: var(--spacing-space-2);
24
+ height: var(--spacing-space-2);
25
25
  }
26
26
  .lib-xplat-badge .badge-indicator {
27
27
  position: absolute;
@@ -31,21 +31,34 @@
31
31
  display: flex;
32
32
  align-items: center;
33
33
  justify-content: center;
34
- border-radius: 10rem;
35
- color: var(--xplat-white);
34
+ border-radius: var(--spacing-radius-full);
35
+ color: var(--semantic-text-inverse);
36
36
  font-size: 11px;
37
37
  font-weight: 600;
38
38
  line-height: 1;
39
- min-width: 18px;
40
- height: 18px;
41
- padding: 0 5px;
39
+ min-width: var(--spacing-space-4);
40
+ height: var(--spacing-space-4);
41
+ padding: 0 var(--spacing-space-1);
42
42
  box-sizing: border-box;
43
43
  }
44
44
  .lib-xplat-badge .badge-indicator.dot {
45
- min-width: 8px;
46
- height: 8px;
45
+ min-width: var(--spacing-space-2);
46
+ height: var(--spacing-space-2);
47
47
  padding: 0;
48
48
  }
49
- .lib-xplat-badge .badge-indicator {
50
- background-color: var(--ds-color);
49
+ .lib-xplat-badge .badge-indicator.error {
50
+ background-color: var(--semantic-surface-error-default);
51
+ }
52
+ .lib-xplat-badge .badge-indicator.success {
53
+ background-color: var(--semantic-surface-success-default);
54
+ }
55
+ .lib-xplat-badge .badge-indicator.warning {
56
+ background-color: var(--semantic-surface-warning-default);
57
+ color: var(--semantic-text-strong);
58
+ }
59
+ .lib-xplat-badge .badge-indicator.info {
60
+ background-color: var(--semantic-surface-info-default);
61
+ }
62
+ .lib-xplat-badge .badge-indicator.brand {
63
+ background-color: var(--semantic-surface-brand-default);
51
64
  }
@@ -1,10 +1,11 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import React from 'react';
3
- import { a as ColorProps } from '../../colors-CY4JXVHj.cjs';
4
3
 
4
+ type BadgeType = "error" | "success" | "warning" | "info" | "brand";
5
5
  type BadgeSize = "sm" | "md" | "lg";
6
- interface BadgeProps extends ColorProps {
6
+ interface BadgeProps {
7
7
  children: React.ReactNode;
8
+ type?: BadgeType;
8
9
  count?: number;
9
10
  maxCount?: number;
10
11
  dot?: boolean;
@@ -1,10 +1,11 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import React from 'react';
3
- import { a as ColorProps } from '../../colors-CY4JXVHj.js';
4
3
 
4
+ type BadgeType = "error" | "success" | "warning" | "info" | "brand";
5
5
  type BadgeSize = "sm" | "md" | "lg";
6
- interface BadgeProps extends ColorProps {
6
+ interface BadgeProps {
7
7
  children: React.ReactNode;
8
+ type?: BadgeType;
8
9
  count?: number;
9
10
  maxCount?: number;
10
11
  dot?: boolean;
@@ -19,18 +19,17 @@ import { jsx, jsxs } from "react/jsx-runtime";
19
19
  var Badge = (props) => {
20
20
  const {
21
21
  children,
22
+ type = "error",
22
23
  count,
23
24
  maxCount = 99,
24
25
  dot = false,
25
- size = "md",
26
- color = "xplat-red-500"
26
+ size = "md"
27
27
  } = props;
28
- const colorClass = color;
29
28
  const showBadge = dot || count !== void 0 && count > 0;
30
29
  const displayCount = count !== void 0 && count > maxCount ? `${maxCount}+` : count;
31
30
  return /* @__PURE__ */ jsxs("div", { className: clsx_default("lib-xplat-badge", size), children: [
32
31
  children,
33
- showBadge && /* @__PURE__ */ jsx("span", { className: clsx_default("badge-indicator", colorClass, { dot }), children: !dot && displayCount })
32
+ showBadge && /* @__PURE__ */ jsx("span", { className: clsx_default("badge-indicator", type, { dot }), children: !dot && displayCount })
34
33
  ] });
35
34
  };
36
35
  Badge.displayName = "Badge";
@@ -5,17 +5,17 @@
5
5
  list-style: none;
6
6
  margin: 0;
7
7
  padding: 0;
8
- gap: 4px;
8
+ gap: var(--spacing-space-1);
9
9
  flex-wrap: wrap;
10
10
  }
11
11
  .lib-xplat-breadcrumb li {
12
12
  display: flex;
13
13
  align-items: center;
14
- gap: 4px;
14
+ gap: var(--spacing-space-1);
15
15
  font-size: 14px;
16
16
  }
17
17
  .lib-xplat-breadcrumb .link {
18
- color: var(--xplat-neutral-500);
18
+ color: var(--semantic-text-muted);
19
19
  text-decoration: none;
20
20
  background: none;
21
21
  border: none;
@@ -25,13 +25,13 @@
25
25
  transition: color 0.2s;
26
26
  }
27
27
  .lib-xplat-breadcrumb .link:hover {
28
- color: var(--xplat-neutral-800);
28
+ color: var(--semantic-text-strong);
29
29
  }
30
30
  .lib-xplat-breadcrumb .current {
31
- color: var(--xplat-neutral-900);
31
+ color: var(--semantic-text-strong);
32
32
  font-weight: 500;
33
33
  }
34
34
  .lib-xplat-breadcrumb .separator {
35
- color: var(--xplat-neutral-400);
35
+ color: var(--semantic-icon-subtle);
36
36
  user-select: none;
37
37
  }
@@ -47,15 +47,13 @@ var Button = (props) => {
47
47
  children,
48
48
  type = "primary",
49
49
  size = "md",
50
- color = "xplat-black",
51
50
  disabled,
52
51
  ...rest
53
52
  } = props;
54
- const colorClass = color;
55
53
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
56
54
  "button",
57
55
  {
58
- className: clsx_default("lib-xplat-button", type, size, colorClass),
56
+ className: clsx_default("lib-xplat-button", type, size),
59
57
  disabled,
60
58
  ...rest,
61
59
  children