@aloudata/aloudata-design 3.0.16 → 3.0.18-beta.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 (205) hide show
  1. package/README.md +63 -59
  2. package/dist/Alert/index.js +1 -1
  3. package/dist/Alert/index.js.map +1 -1
  4. package/dist/Avatar/component/Avatar/index.js +2 -2
  5. package/dist/Avatar/component/Avatar/index.js.map +1 -1
  6. package/dist/Avatar/component/Avatar/type.js +3 -3
  7. package/dist/Avatar/component/Avatar/type.js.map +1 -1
  8. package/dist/Badge/index.js +5 -5
  9. package/dist/Badge/index.js.map +1 -1
  10. package/dist/Breadcrumb/index.js +4 -4
  11. package/dist/Breadcrumb/index.js.map +1 -1
  12. package/dist/Button/index.js +8 -8
  13. package/dist/Button/index.js.map +1 -1
  14. package/dist/Card/index.js +1 -1
  15. package/dist/Card/index.js.map +1 -1
  16. package/dist/Checkbox/index.js +3 -3
  17. package/dist/Checkbox/index.js.map +1 -1
  18. package/dist/Collapse/index.js +1 -1
  19. package/dist/Collapse/index.js.map +1 -1
  20. package/dist/ColorPicker/ComplexColorPicker/ColorAlphaInput.js +1 -1
  21. package/dist/ColorPicker/ComplexColorPicker/ColorAlphaInput.js.map +1 -1
  22. package/dist/ColorPicker/ComplexColorPicker/ColorHsbInput.js +1 -1
  23. package/dist/ColorPicker/ComplexColorPicker/ColorHsbInput.js.map +1 -1
  24. package/dist/ColorPicker/ComplexColorPicker/ColorRgbInput.js +1 -1
  25. package/dist/ColorPicker/ComplexColorPicker/ColorRgbInput.js.map +1 -1
  26. package/dist/ColorPicker/ComplexColorPicker/index.js +2 -2
  27. package/dist/ColorPicker/ComplexColorPicker/index.js.map +1 -1
  28. package/dist/ColorPicker/index.js +11 -11
  29. package/dist/ColorPicker/index.js.map +1 -1
  30. package/dist/ColorPicker/util.d.ts +1 -1
  31. package/dist/ColorPicker/util.js.map +1 -1
  32. package/dist/DataPreviewTable/components/Body/Cell.js +2 -2
  33. package/dist/DataPreviewTable/components/Body/Cell.js.map +1 -1
  34. package/dist/DataPreviewTable/components/Body/index.js +1 -1
  35. package/dist/DataPreviewTable/components/Body/index.js.map +1 -1
  36. package/dist/DataPreviewTable/components/DragBar/index.js +1 -1
  37. package/dist/DataPreviewTable/components/DragBar/index.js.map +1 -1
  38. package/dist/DataPreviewTable/components/Header/index.js +3 -3
  39. package/dist/DataPreviewTable/components/Header/index.js.map +1 -1
  40. package/dist/DataPreviewTable/index.js +1 -1
  41. package/dist/DataPreviewTable/index.js.map +1 -1
  42. package/dist/Divider/index.js +1 -1
  43. package/dist/Divider/index.js.map +1 -1
  44. package/dist/Drawer/index.js +3 -3
  45. package/dist/Drawer/index.js.map +1 -1
  46. package/dist/Dropdown/index.js +2 -0
  47. package/dist/Dropdown/index.js.map +1 -1
  48. package/dist/Empty/image/Data.js +16 -16
  49. package/dist/Empty/image/Data.js.map +1 -1
  50. package/dist/Empty/image/User.js +16 -16
  51. package/dist/Empty/image/User.js.map +1 -1
  52. package/dist/Empty/image/WorkBook.js +17 -17
  53. package/dist/Empty/image/WorkBook.js.map +1 -1
  54. package/dist/Form/index.js +3 -3
  55. package/dist/Form/index.js.map +1 -1
  56. package/dist/Icon/components/SortAscendingOrderColor.js +1 -1
  57. package/dist/Icon/components/SortAscendingOrderColor.js.map +1 -1
  58. package/dist/Icon/components/SortDescendingOrderColor.js +1 -1
  59. package/dist/Icon/components/SortDescendingOrderColor.js.map +1 -1
  60. package/dist/Icon/components/User.js +2 -2
  61. package/dist/Icon/components/User.js.map +1 -1
  62. package/dist/Icon/components/UserGroup.js +2 -2
  63. package/dist/Icon/components/UserGroup.js.map +1 -1
  64. package/dist/Input/components/Input/index.js +3 -3
  65. package/dist/Input/components/Input/index.js.map +1 -1
  66. package/dist/Input/components/TextArea/index.js +3 -3
  67. package/dist/Input/components/TextArea/index.js.map +1 -1
  68. package/dist/InputNumber/index.js +4 -4
  69. package/dist/InputNumber/index.js.map +1 -1
  70. package/dist/LogicTree/components/LogicItem/index.js +2 -2
  71. package/dist/LogicTree/components/LogicItem/index.js.map +1 -1
  72. package/dist/MemberPicker/components/SelectedMemberTags.js +1 -1
  73. package/dist/MemberPicker/components/SelectedMemberTags.js.map +1 -1
  74. package/dist/Modal/index.js +8 -8
  75. package/dist/Modal/index.js.map +1 -1
  76. package/dist/Popconfirm/index.js +1 -1
  77. package/dist/Popconfirm/index.js.map +1 -1
  78. package/dist/Popover/index.js +2 -2
  79. package/dist/Popover/index.js.map +1 -1
  80. package/dist/Progress/index.js +1 -1
  81. package/dist/Progress/index.js.map +1 -1
  82. package/dist/RenameInput/index.js +4 -4
  83. package/dist/RenameInput/index.js.map +1 -1
  84. package/dist/Result/index.js +4 -4
  85. package/dist/Result/index.js.map +1 -1
  86. package/dist/Select/components/Suffix.js +3 -3
  87. package/dist/Select/components/Suffix.js.map +1 -1
  88. package/dist/Slider/index.js +4 -4
  89. package/dist/Slider/index.js.map +1 -1
  90. package/dist/Spin/CustomIcon/index.js +2 -2
  91. package/dist/Spin/CustomIcon/index.js.map +1 -1
  92. package/dist/StatusLight/index.js +15 -15
  93. package/dist/StatusLight/index.js.map +1 -1
  94. package/dist/Steps/components/CustomDot/index.js +9 -2
  95. package/dist/Steps/components/CustomDot/index.js.map +1 -0
  96. package/dist/Steps/components/ProcessIcon/index.d.ts +2 -1
  97. package/dist/Steps/components/ProcessIcon/index.js +33 -12
  98. package/dist/Steps/components/ProcessIcon/index.js.map +1 -1
  99. package/dist/Steps/index.js +67 -49
  100. package/dist/Steps/index.js.map +1 -1
  101. package/dist/Switch/index.js +3 -3
  102. package/dist/Switch/index.js.map +1 -1
  103. package/dist/Table/components/Header.js +3 -3
  104. package/dist/Table/components/Header.js.map +1 -1
  105. package/dist/Tabs/index.js +9 -9
  106. package/dist/Tabs/index.js.map +1 -1
  107. package/dist/Tag/index.js +11 -11
  108. package/dist/Tag/index.js.map +1 -1
  109. package/dist/TextLink/index.js +2 -2
  110. package/dist/TextLink/index.js.map +1 -1
  111. package/dist/Tooltip/index.js +3 -3
  112. package/dist/Tooltip/index.js.map +1 -1
  113. package/dist/Tour/index.js +1 -1
  114. package/dist/Tour/index.js.map +1 -1
  115. package/dist/Tree/Tree2.js +2 -2
  116. package/dist/Tree/Tree2.js.map +1 -1
  117. package/dist/Typography/index.js +1 -1
  118. package/dist/Typography/index.js.map +1 -1
  119. package/dist/User/index.js +1 -1
  120. package/dist/User/index.js.map +1 -1
  121. package/dist/Watermark/index.js +2 -1
  122. package/dist/Watermark/index.js.map +1 -1
  123. package/dist/_utils/weakRefFallback.d.ts +1 -0
  124. package/dist/_utils/weakRefFallback.js +21 -0
  125. package/dist/_utils/weakRefFallback.js.map +1 -0
  126. package/dist/aloudata-design.css +1 -1
  127. package/dist/index.d.ts +2 -2
  128. package/dist/index.js +11 -5
  129. package/dist/message/index.js +1 -1
  130. package/dist/message/index.js.map +1 -1
  131. package/dist/notification/index.js +5 -5
  132. package/dist/notification/index.js.map +1 -1
  133. package/dist/theme/contract/shadowGeneratorSpecification.d.ts +37 -0
  134. package/dist/theme/contract/tokenCssBridge.d.ts +60 -0
  135. package/dist/theme/contract/tokenCssBridge.js +2 -0
  136. package/dist/theme/contract/tokenOutputContract.d.ts +35 -0
  137. package/dist/theme/contract/tokenOutputContract.js +198 -0
  138. package/dist/theme/contract/tokenOutputContract.js.map +1 -0
  139. package/dist/theme/generator/acceptedColorValues.d.ts +97 -0
  140. package/dist/theme/generator/acceptedColorValues.js +2 -0
  141. package/dist/theme/generator/cssArtifactEmitter.d.ts +62 -0
  142. package/dist/theme/generator/cssArtifactEmitter.js +2 -0
  143. package/dist/theme/generator/generator.d.ts +41 -0
  144. package/dist/theme/generator/generator.js +2 -0
  145. package/dist/theme/generator/generatorDiff.d.ts +53 -0
  146. package/dist/theme/generator/generatorDiff.js +2 -0
  147. package/dist/theme/generator/generatorEmitter.d.ts +73 -0
  148. package/dist/theme/generator/generatorEmitter.js +2 -0
  149. package/dist/theme/generator/generatorMappingStrategy.d.ts +43 -0
  150. package/dist/theme/generator/generatorMappingStrategy.js +2 -0
  151. package/dist/theme/generator/generatorOutputSchema.d.ts +80 -0
  152. package/dist/theme/generator/generatorOutputSchema.js +2 -0
  153. package/dist/theme/generator/minimalAcceptedColorValues.d.ts +27 -0
  154. package/dist/theme/generator/minimalAcceptedColorValues.js +2 -0
  155. package/dist/theme/generator/valueResolver.d.ts +64 -0
  156. package/dist/theme/generator/valueResolver.js +2 -0
  157. package/dist/theme/governance/migrationMappingRegistry.d.ts +22 -0
  158. package/dist/theme/governance/migrationMappingRegistry.js +459 -0
  159. package/dist/theme/governance/migrationMappingRegistry.js.map +1 -0
  160. package/dist/theme/governance/reviewGate.d.ts +33 -0
  161. package/dist/theme/governance/reviewGate.js +116 -0
  162. package/dist/theme/governance/reviewGate.js.map +1 -0
  163. package/dist/theme/governance/validateMigrationMapping.d.ts +50 -0
  164. package/dist/theme/governance/validateMigrationMapping.js +157 -0
  165. package/dist/theme/governance/validateMigrationMapping.js.map +1 -0
  166. package/dist/theme/index.d.ts +16 -5
  167. package/dist/theme/index.js +10 -4
  168. package/dist/theme/runtime/colorValueMode/index.d.ts +5 -0
  169. package/dist/theme/runtime/colorValueMode/index.js +49 -0
  170. package/dist/theme/runtime/colorValueMode/index.js.map +1 -0
  171. package/dist/theme/runtime/colorValueMode/registry.d.ts +29 -0
  172. package/dist/theme/runtime/colorValueMode/registry.js +39 -0
  173. package/dist/theme/runtime/colorValueMode/registry.js.map +1 -0
  174. package/dist/theme/runtime/colorValueMode/v3.d.ts +98 -0
  175. package/dist/theme/runtime/colorValueMode/v3.js +230 -0
  176. package/dist/theme/runtime/colorValueMode/v3.js.map +1 -0
  177. package/dist/theme/runtime/colorValueMode.d.ts +2 -0
  178. package/dist/theme/{createTheme.js → runtime/createTheme.js} +1 -1
  179. package/dist/theme/runtime/createTheme.js.map +1 -0
  180. package/dist/theme/{defaultTheme.js → runtime/defaultTheme.js} +1 -1
  181. package/dist/theme/runtime/defaultTheme.js.map +1 -0
  182. package/dist/theme/{initAldTheme.js → runtime/initAldTheme.js} +1 -1
  183. package/dist/theme/runtime/initAldTheme.js.map +1 -0
  184. package/dist/theme/runtime/integrationController.d.ts +26 -0
  185. package/dist/theme/runtime/integrationController.js +2 -0
  186. package/dist/theme/runtime/runtimeAdapter.d.ts +31 -0
  187. package/dist/theme/runtime/runtimeAdapter.js +2 -0
  188. package/dist/theme/{themeToCssVars.js → runtime/themeToCssVars.js} +1 -1
  189. package/dist/theme/runtime/themeToCssVars.js.map +1 -0
  190. package/dist/theme/{tokenMap.js → runtime/tokenMap.js} +1 -1
  191. package/dist/theme/runtime/tokenMap.js.map +1 -0
  192. package/dist/theme/runtime/types.js +2 -0
  193. package/package.json +1 -1
  194. package/dist/theme/createTheme.js.map +0 -1
  195. package/dist/theme/defaultTheme.js.map +0 -1
  196. package/dist/theme/initAldTheme.js.map +0 -1
  197. package/dist/theme/themeToCssVars.js.map +0 -1
  198. package/dist/theme/tokenMap.js.map +0 -1
  199. /package/dist/theme/{types.js → contract/shadowGeneratorSpecification.js} +0 -0
  200. /package/dist/theme/{createTheme.d.ts → runtime/createTheme.d.ts} +0 -0
  201. /package/dist/theme/{defaultTheme.d.ts → runtime/defaultTheme.d.ts} +0 -0
  202. /package/dist/theme/{initAldTheme.d.ts → runtime/initAldTheme.d.ts} +0 -0
  203. /package/dist/theme/{themeToCssVars.d.ts → runtime/themeToCssVars.d.ts} +0 -0
  204. /package/dist/theme/{tokenMap.d.ts → runtime/tokenMap.d.ts} +0 -0
  205. /package/dist/theme/{types.d.ts → runtime/types.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/Spin/CustomIcon/index.tsx"],"sourcesContent":["import React from 'react';\nimport type { SizeType } from '../../ConfigProvider/sizeContext';\nimport { LoadingDuotone } from '../../Icon';\nimport { cn } from '../../lib/utils';\nimport { getUUID } from '../../_utils/hooks/useId';\nimport { TDirection } from '..';\n\ninterface ICustomIconProps {\n size?: SizeType;\n tip?: React.ReactNode;\n direction: TDirection;\n spinning?: boolean;\n className?: string;\n inContainer?: boolean;\n}\n\nconst Icon = (props: ICustomIconProps) => {\n const {\n size,\n tip,\n direction,\n spinning = true,\n className,\n inContainer,\n } = props;\n if (!spinning) return null;\n return (\n <React.Fragment key={getUUID().toString()}>\n {inContainer && (\n <div className=\"spinner-mask tw-absolute tw-inset-0 tw-size-full tw-bg-[var(--alias-colors-bg-skeleton-subtler)] tw-opacity-40\" />\n )}\n <div\n className={cn(\n 'spinner tw-flex tw-h-full tw-flex-col tw-items-center tw-justify-center tw-gap-4',\n direction === 'horizontal' &&\n 'spinner-horizontal tw-flex-row tw-gap-[6px]',\n inContainer &&\n 'spinner-center tw-absolute tw-left-1/2 tw-top-1/2 tw--translate-x-1/2 tw--translate-y-1/2',\n className,\n )}\n >\n <div\n className={cn(\n 'spinner-inner tw-flex tw-animate-spin tw-items-center',\n size === 'small' && 'spinner-inner-small tw-size-5',\n size === 'large' && 'spinner-inner-large tw-size-16',\n size !== 'small' &&\n size !== 'large' &&\n 'spinner-inner-middle tw-size-10',\n )}\n >\n {size === 'small' && <LoadingDuotone size={20} />}\n {size === 'large' && <LoadingDuotone size={64} />}\n {size !== 'small' && size !== 'large' && <LoadingDuotone size={40} />}\n </div>\n {tip && (\n <div className=\"ald-spinner-text tw-text-[var(--alias-colors-text-subtle)]\">\n {tip}\n </div>\n )}\n </div>\n </React.Fragment>\n );\n};\nexport default Icon;\n"],"mappings":";;;;;;AAgBA,IAAM,QAAQ,UAA4B;CACxC,MAAM,EACJ,MACA,KACA,WACA,WAAW,MACX,WACA,gBACE;AACJ,KAAI,CAAC,SAAU,QAAO;AACtB,QACE,qBAAC,MAAM,UAAP,EAAA,UAAA,CACG,eACC,oBAAC,OAAD,EAAK,WAAU,kHAAmH,CAAA,EAEpI,qBAAC,OAAD;EACE,WAAW,GACT,oFACA,cAAc,gBACZ,+CACF,eACE,6FACF,UACD;YARH,CAUE,qBAAC,OAAD;GACE,WAAW,GACT,yDACA,SAAS,WAAW,iCACpB,SAAS,WAAW,kCACpB,SAAS,WACP,SAAS,WACT,kCACH;aARH;IAUG,SAAS,WAAW,oBAAC,MAAD,EAAgB,MAAM,IAAM,CAAA;IAChD,SAAS,WAAW,oBAAC,MAAD,EAAgB,MAAM,IAAM,CAAA;IAChD,SAAS,WAAW,SAAS,WAAW,oBAAC,MAAD,EAAgB,MAAM,IAAM,CAAA;IACjE;MACL,OACC,oBAAC,OAAD;GAAK,WAAU;aACZ;GACG,CAAA,CAEJ;IACS,EAAA,EAlCI,SAAS,CAAC,UAAU,CAkCxB"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/Spin/CustomIcon/index.tsx"],"sourcesContent":["import React from 'react';\nimport type { SizeType } from '../../ConfigProvider/sizeContext';\nimport { LoadingDuotone } from '../../Icon';\nimport { cn } from '../../lib/utils';\nimport { getUUID } from '../../_utils/hooks/useId';\nimport { TDirection } from '..';\n\ninterface ICustomIconProps {\n size?: SizeType;\n tip?: React.ReactNode;\n direction: TDirection;\n spinning?: boolean;\n className?: string;\n inContainer?: boolean;\n}\n\nconst Icon = (props: ICustomIconProps) => {\n const {\n size,\n tip,\n direction,\n spinning = true,\n className,\n inContainer,\n } = props;\n if (!spinning) return null;\n return (\n <React.Fragment key={getUUID().toString()}>\n {inContainer && (\n <div className=\"spinner-mask tw-absolute tw-inset-0 tw-size-full tw-bg-[var(--background-default)] tw-opacity-40\" />\n )}\n <div\n className={cn(\n 'spinner tw-flex tw-h-full tw-flex-col tw-items-center tw-justify-center tw-gap-4',\n direction === 'horizontal' &&\n 'spinner-horizontal tw-flex-row tw-gap-[6px]',\n inContainer &&\n 'spinner-center tw-absolute tw-left-1/2 tw-top-1/2 tw--translate-x-1/2 tw--translate-y-1/2',\n className,\n )}\n >\n <div\n className={cn(\n 'spinner-inner tw-flex tw-animate-spin tw-items-center',\n size === 'small' && 'spinner-inner-small tw-size-5',\n size === 'large' && 'spinner-inner-large tw-size-16',\n size !== 'small' &&\n size !== 'large' &&\n 'spinner-inner-middle tw-size-10',\n )}\n >\n {size === 'small' && <LoadingDuotone size={20} />}\n {size === 'large' && <LoadingDuotone size={64} />}\n {size !== 'small' && size !== 'large' && <LoadingDuotone size={40} />}\n </div>\n {tip && (\n <div className=\"ald-spinner-text tw-text-[var(--content-secondary)]\">\n {tip}\n </div>\n )}\n </div>\n </React.Fragment>\n );\n};\nexport default Icon;\n"],"mappings":";;;;;;AAgBA,IAAM,QAAQ,UAA4B;CACxC,MAAM,EACJ,MACA,KACA,WACA,WAAW,MACX,WACA,gBACE;AACJ,KAAI,CAAC,SAAU,QAAO;AACtB,QACE,qBAAC,MAAM,UAAP,EAAA,UAAA,CACG,eACC,oBAAC,OAAD,EAAK,WAAU,oGAAqG,CAAA,EAEtH,qBAAC,OAAD;EACE,WAAW,GACT,oFACA,cAAc,gBACZ,+CACF,eACE,6FACF,UACD;YARH,CAUE,qBAAC,OAAD;GACE,WAAW,GACT,yDACA,SAAS,WAAW,iCACpB,SAAS,WAAW,kCACpB,SAAS,WACP,SAAS,WACT,kCACH;aARH;IAUG,SAAS,WAAW,oBAAC,MAAD,EAAgB,MAAM,IAAM,CAAA;IAChD,SAAS,WAAW,oBAAC,MAAD,EAAgB,MAAM,IAAM,CAAA;IAChD,SAAS,WAAW,SAAS,WAAW,oBAAC,MAAD,EAAgB,MAAM,IAAM,CAAA;IACjE;MACL,OACC,oBAAC,OAAD;GAAK,WAAU;aACZ;GACG,CAAA,CAEJ;IACS,EAAA,EAlCI,SAAS,CAAC,UAAU,CAkCxB"}
@@ -8,18 +8,18 @@ import "react";
8
8
  import { jsx, jsxs } from "react/jsx-runtime";
9
9
  //#region src/StatusLight/index.tsx
10
10
  var statusDotColors = {
11
- info: "var(--non-semantic-background-blue-strong)",
12
- neutral: "var(--non-semantic-background-grey-strong)",
13
- danger: "var(--non-semantic-background-red-strong)",
14
- success: "var(--non-semantic-background-green-strong)",
15
- warning: "var(--non-semantic-background-orange-strong)"
11
+ info: "var(--background-informative-strong)",
12
+ neutral: "var(--background-neutral-strong)",
13
+ danger: "var(--background-negative-strong)",
14
+ success: "var(--background-positive-strong)",
15
+ warning: "var(--background-warning-strong)"
16
16
  };
17
17
  var statusTextColors = {
18
- info: "var(--non-semantic-content-blue-primary)",
19
- neutral: "var(--non-semantic-content-grey-primary)",
20
- danger: "var(--non-semantic-content-red-primary)",
21
- success: "var(--non-semantic-content-green-primary)",
22
- warning: "var(--non-semantic-content-orange-primary)"
18
+ info: "var(--content-informative-primary)",
19
+ neutral: "var(--content-primary)",
20
+ danger: "var(--content-negative-primary)",
21
+ success: "var(--content-positive-primary)",
22
+ warning: "var(--content-warning-primary)"
23
23
  };
24
24
  function StatusLight({ size = "middle", style = "dot", dotColor, icon, text, status = "info", className }) {
25
25
  const getIcon = () => {
@@ -27,23 +27,23 @@ function StatusLight({ size = "middle", style = "dot", dotColor, icon, text, sta
27
27
  const iconSize = size === "middle" ? 20 : 16;
28
28
  switch (status) {
29
29
  case "info": return /* @__PURE__ */ jsx(Memo$4, {
30
- color: "var(--non-semantic-background-blue-strong)",
30
+ color: "var(--background-informative-strong)",
31
31
  size: iconSize
32
32
  });
33
33
  case "neutral": return /* @__PURE__ */ jsx(Memo$1, {
34
- color: "var(--non-semantic-background-grey-strong)",
34
+ color: "var(--background-neutral-strong)",
35
35
  size: iconSize
36
36
  });
37
37
  case "danger": return /* @__PURE__ */ jsx(Memo$3, {
38
- color: "var(--non-semantic-background-red-strong)",
38
+ color: "var(--background-negative-strong)",
39
39
  size: iconSize
40
40
  });
41
41
  case "success": return /* @__PURE__ */ jsx(Memo$2, {
42
- color: "var(--non-semantic-background-green-strong)",
42
+ color: "var(--background-positive-strong)",
43
43
  size: iconSize
44
44
  });
45
45
  case "warning": return /* @__PURE__ */ jsx(Memo, {
46
- color: "var(--non-semantic-background-orange-strong)",
46
+ color: "var(--background-warning-strong)",
47
47
  size: iconSize
48
48
  });
49
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/StatusLight/index.tsx"],"sourcesContent":["import React from 'react';\nimport {\n AttentionCircleFill,\n CancelledCircleFill,\n CheckCircleFill,\n CloseCircleFill,\n InProgressFill,\n} from '../Icon';\nimport { cn } from '../lib/utils';\n\nexport interface IProps {\n size?: 'middle' | 'small';\n style?: 'dot' | 'icon';\n dotColor?: string;\n icon?: React.ReactNode;\n text: string;\n status?: 'info' | 'neutral' | 'danger' | 'success' | 'warning';\n className?: string;\n}\n\nconst statusDotColors: Record<string, string> = {\n info: 'var(--non-semantic-background-blue-strong)',\n neutral: 'var(--non-semantic-background-grey-strong)',\n danger: 'var(--non-semantic-background-red-strong)',\n success: 'var(--non-semantic-background-green-strong)',\n warning: 'var(--non-semantic-background-orange-strong)',\n};\n\nconst statusTextColors: Record<string, string> = {\n info: 'var(--non-semantic-content-blue-primary)',\n neutral: 'var(--non-semantic-content-grey-primary)',\n danger: 'var(--non-semantic-content-red-primary)',\n success: 'var(--non-semantic-content-green-primary)',\n warning: 'var(--non-semantic-content-orange-primary)',\n};\n\nfunction StatusLight({\n size = 'middle',\n style = 'dot',\n dotColor,\n icon,\n text,\n status = 'info',\n className,\n}: IProps) {\n const getIcon = () => {\n if (icon) return icon;\n\n const iconSize = size === 'middle' ? 20 : 16;\n\n switch (status) {\n case 'info':\n return (\n <InProgressFill\n color=\"var(--non-semantic-background-blue-strong)\"\n size={iconSize}\n />\n );\n case 'neutral':\n return (\n <CancelledCircleFill\n color=\"var(--non-semantic-background-grey-strong)\"\n size={iconSize}\n />\n );\n case 'danger':\n return (\n <CloseCircleFill\n color=\"var(--non-semantic-background-red-strong)\"\n size={iconSize}\n />\n );\n case 'success':\n return (\n <CheckCircleFill\n color=\"var(--non-semantic-background-green-strong)\"\n size={iconSize}\n />\n );\n case 'warning':\n return (\n <AttentionCircleFill\n color=\"var(--non-semantic-background-orange-strong)\"\n size={iconSize}\n />\n );\n }\n };\n\n const isSmall = size === 'small';\n\n return (\n <div\n className={cn(\n 'ald-status-light tw-flex tw-cursor-default tw-items-center tw-justify-start',\n `ald-status-light-${size}`,\n `ald-status-light-${status}`,\n isSmall ? 'tw-gap-1' : 'tw-gap-[6px]',\n className,\n )}\n >\n {style === 'dot' && (\n <div\n className={cn(\n 'ald-prefix-dot tw-shrink-0 tw-rounded-full',\n isSmall\n ? 'tw-size-[var(--global-grid-75)]'\n : 'tw-size-[var(--global-grid-100)]',\n )}\n style={{\n backgroundColor: dotColor || statusDotColors[status],\n }}\n />\n )}\n {style === 'icon' && (\n <div className=\"ald-prefix-icon tw-flex tw-h-full tw-items-center\">\n {getIcon()}\n </div>\n )}\n <div\n className={cn(\n 'ald-text tw-font-normal',\n isSmall ? 'tw-text-xs tw-leading-4' : 'tw-text-sm tw-leading-5',\n )}\n style={{ color: statusTextColors[status] }}\n >\n {text}\n </div>\n </div>\n );\n}\n\nexport default StatusLight;\n"],"mappings":";;;;;;;;;AAoBA,IAAM,kBAA0C;CAC9C,MAAM;CACN,SAAS;CACT,QAAQ;CACR,SAAS;CACT,SAAS;CACV;AAED,IAAM,mBAA2C;CAC/C,MAAM;CACN,SAAS;CACT,QAAQ;CACR,SAAS;CACT,SAAS;CACV;AAED,SAAS,YAAY,EACnB,OAAO,UACP,QAAQ,OACR,UACA,MACA,MACA,SAAS,QACT,aACS;CACT,MAAM,gBAAgB;AACpB,MAAI,KAAM,QAAO;EAEjB,MAAM,WAAW,SAAS,WAAW,KAAK;AAE1C,UAAQ,QAAR;GACE,KAAK,OACH,QACE,oBAAC,QAAD;IACE,OAAM;IACN,MAAM;IACN,CAAA;GAEN,KAAK,UACH,QACE,oBAAC,QAAD;IACE,OAAM;IACN,MAAM;IACN,CAAA;GAEN,KAAK,SACH,QACE,oBAAC,QAAD;IACE,OAAM;IACN,MAAM;IACN,CAAA;GAEN,KAAK,UACH,QACE,oBAAC,QAAD;IACE,OAAM;IACN,MAAM;IACN,CAAA;GAEN,KAAK,UACH,QACE,oBAAC,MAAD;IACE,OAAM;IACN,MAAM;IACN,CAAA;;;CAKV,MAAM,UAAU,SAAS;AAEzB,QACE,qBAAC,OAAD;EACE,WAAW,GACT,+EACA,oBAAoB,QACpB,oBAAoB,UACpB,UAAU,aAAa,gBACvB,UACD;YAPH;GASG,UAAU,SACT,oBAAC,OAAD;IACE,WAAW,GACT,8CACA,UACI,oCACA,mCACL;IACD,OAAO,EACL,iBAAiB,YAAY,gBAAgB,SAC9C;IACD,CAAA;GAEH,UAAU,UACT,oBAAC,OAAD;IAAK,WAAU;cACZ,SAAS;IACN,CAAA;GAER,oBAAC,OAAD;IACE,WAAW,GACT,2BACA,UAAU,4BAA4B,0BACvC;IACD,OAAO,EAAE,OAAO,iBAAiB,SAAS;cAEzC;IACG,CAAA;GACF"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/StatusLight/index.tsx"],"sourcesContent":["import React from 'react';\nimport {\n AttentionCircleFill,\n CancelledCircleFill,\n CheckCircleFill,\n CloseCircleFill,\n InProgressFill,\n} from '../Icon';\nimport { cn } from '../lib/utils';\n\nexport interface IProps {\n size?: 'middle' | 'small';\n style?: 'dot' | 'icon';\n dotColor?: string;\n icon?: React.ReactNode;\n text: string;\n status?: 'info' | 'neutral' | 'danger' | 'success' | 'warning';\n className?: string;\n}\n\nconst statusDotColors: Record<string, string> = {\n info: 'var(--background-informative-strong)',\n neutral: 'var(--background-neutral-strong)',\n danger: 'var(--background-negative-strong)',\n success: 'var(--background-positive-strong)',\n warning: 'var(--background-warning-strong)',\n};\n\nconst statusTextColors: Record<string, string> = {\n info: 'var(--content-informative-primary)',\n neutral: 'var(--content-primary)',\n danger: 'var(--content-negative-primary)',\n success: 'var(--content-positive-primary)',\n warning: 'var(--content-warning-primary)',\n};\n\nfunction StatusLight({\n size = 'middle',\n style = 'dot',\n dotColor,\n icon,\n text,\n status = 'info',\n className,\n}: IProps) {\n const getIcon = () => {\n if (icon) return icon;\n\n const iconSize = size === 'middle' ? 20 : 16;\n\n switch (status) {\n case 'info':\n return (\n <InProgressFill\n color=\"var(--background-informative-strong)\"\n size={iconSize}\n />\n );\n case 'neutral':\n return (\n <CancelledCircleFill\n color=\"var(--background-neutral-strong)\"\n size={iconSize}\n />\n );\n case 'danger':\n return (\n <CloseCircleFill\n color=\"var(--background-negative-strong)\"\n size={iconSize}\n />\n );\n case 'success':\n return (\n <CheckCircleFill\n color=\"var(--background-positive-strong)\"\n size={iconSize}\n />\n );\n case 'warning':\n return (\n <AttentionCircleFill\n color=\"var(--background-warning-strong)\"\n size={iconSize}\n />\n );\n }\n };\n\n const isSmall = size === 'small';\n\n return (\n <div\n className={cn(\n 'ald-status-light tw-flex tw-cursor-default tw-items-center tw-justify-start',\n `ald-status-light-${size}`,\n `ald-status-light-${status}`,\n isSmall ? 'tw-gap-1' : 'tw-gap-[6px]',\n className,\n )}\n >\n {style === 'dot' && (\n <div\n className={cn(\n 'ald-prefix-dot tw-shrink-0 tw-rounded-full',\n isSmall\n ? 'tw-size-[var(--global-grid-75)]'\n : 'tw-size-[var(--global-grid-100)]',\n )}\n style={{\n backgroundColor: dotColor || statusDotColors[status],\n }}\n />\n )}\n {style === 'icon' && (\n <div className=\"ald-prefix-icon tw-flex tw-h-full tw-items-center\">\n {getIcon()}\n </div>\n )}\n <div\n className={cn(\n 'ald-text tw-font-normal',\n isSmall ? 'tw-text-xs tw-leading-4' : 'tw-text-sm tw-leading-5',\n )}\n style={{ color: statusTextColors[status] }}\n >\n {text}\n </div>\n </div>\n );\n}\n\nexport default StatusLight;\n"],"mappings":";;;;;;;;;AAoBA,IAAM,kBAA0C;CAC9C,MAAM;CACN,SAAS;CACT,QAAQ;CACR,SAAS;CACT,SAAS;CACV;AAED,IAAM,mBAA2C;CAC/C,MAAM;CACN,SAAS;CACT,QAAQ;CACR,SAAS;CACT,SAAS;CACV;AAED,SAAS,YAAY,EACnB,OAAO,UACP,QAAQ,OACR,UACA,MACA,MACA,SAAS,QACT,aACS;CACT,MAAM,gBAAgB;AACpB,MAAI,KAAM,QAAO;EAEjB,MAAM,WAAW,SAAS,WAAW,KAAK;AAE1C,UAAQ,QAAR;GACE,KAAK,OACH,QACE,oBAAC,QAAD;IACE,OAAM;IACN,MAAM;IACN,CAAA;GAEN,KAAK,UACH,QACE,oBAAC,QAAD;IACE,OAAM;IACN,MAAM;IACN,CAAA;GAEN,KAAK,SACH,QACE,oBAAC,QAAD;IACE,OAAM;IACN,MAAM;IACN,CAAA;GAEN,KAAK,UACH,QACE,oBAAC,QAAD;IACE,OAAM;IACN,MAAM;IACN,CAAA;GAEN,KAAK,UACH,QACE,oBAAC,MAAD;IACE,OAAM;IACN,MAAM;IACN,CAAA;;;CAKV,MAAM,UAAU,SAAS;AAEzB,QACE,qBAAC,OAAD;EACE,WAAW,GACT,+EACA,oBAAoB,QACpB,oBAAoB,UACpB,UAAU,aAAa,gBACvB,UACD;YAPH;GASG,UAAU,SACT,oBAAC,OAAD;IACE,WAAW,GACT,8CACA,UACI,oCACA,mCACL;IACD,OAAO,EACL,iBAAiB,YAAY,gBAAgB,SAC9C;IACD,CAAA;GAEH,UAAU,UACT,oBAAC,OAAD;IAAK,WAAU;cACZ,SAAS;IACN,CAAA;GAER,oBAAC,OAAD;IACE,WAAW,GACT,2BACA,UAAU,4BAA4B,0BACvC;IACD,OAAO,EAAE,OAAO,iBAAiB,SAAS;cAEzC;IACG,CAAA;GACF"}
@@ -1,2 +1,9 @@
1
- // type-only module stub
2
- export {};
1
+ import { ProcessIcon } from "../ProcessIcon/index.js";
2
+ import "react";
3
+ import { jsx } from "react/jsx-runtime";
4
+ //#region src/Steps/components/CustomDot/index.tsx
5
+ var CustomDot = (_dot, { status }) => /* @__PURE__ */ jsx(ProcessIcon, { type: status });
6
+ //#endregion
7
+ export { CustomDot };
8
+
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../src/Steps/components/CustomDot/index.tsx"],"sourcesContent":["import React from 'react';\nimport { ProcessIcon } from '../ProcessIcon';\n\nexport const CustomDot = (\n _dot: React.ReactNode,\n { status }: { status: string },\n) => <ProcessIcon type={status as 'process' | 'wait' | 'finish' | 'error'} />;\n"],"mappings":";;;;AAGA,IAAa,aACX,MACA,EAAE,aACC,oBAAC,aAAD,EAAa,MAAM,QAAqD,CAAA"}
@@ -1,5 +1,6 @@
1
1
  interface IProcessIconProps {
2
+ size?: number;
2
3
  type: 'process' | 'wait' | 'finish' | 'error';
3
4
  }
4
- export declare function ProcessIcon({ type }: IProcessIconProps): import("react/jsx-runtime").JSX.Element;
5
+ export declare function ProcessIcon({ size, type }: IProcessIconProps): import("react/jsx-runtime").JSX.Element;
5
6
  export {};
@@ -2,35 +2,56 @@ import { cn } from "../../../lib/utils.js";
2
2
  import "react";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
  //#region src/Steps/components/ProcessIcon/index.tsx
5
- function ProcessIcon({ type }) {
6
- const baseClass = "tw-flex tw-size-4 tw-items-center tw-justify-center tw-rounded-full tw-bg-[var(--background-default)]";
5
+ function ProcessIcon({ size = 16, type }) {
6
+ const baseClass = "tw-flex tw-items-center tw-justify-center tw-rounded-full tw-bg-[var(--background-default)]";
7
+ const iconStyle = {
8
+ height: size,
9
+ width: size
10
+ };
11
+ const innerDotSize = Math.max(6, Math.round(size * .375));
7
12
  if (type === "finish") return /* @__PURE__ */ jsx("span", {
8
- className: cn(baseClass, "tw-bg-[var(--interaction-default-hover)]"),
13
+ className: cn(`${type}-icon-box icon-box`, baseClass, "tw-bg-[var(--border-brand-strong)]"),
14
+ style: iconStyle,
9
15
  children: /* @__PURE__ */ jsx("img", {
10
16
  style: {
11
- width: 10,
12
- height: 8
17
+ height: Math.round(size * .5),
18
+ width: Math.round(size * .625)
13
19
  },
14
20
  src: "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTEiIGhlaWdodD0iOCIgdmlld0JveD0iMCAwIDExIDgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik0zLjc1IDcuOTQzMjVMMCA0LjE5MzI1TDEuMTkzMjUgM0wzLjc1IDUuNTU2NzVMOS4zMDc1IDBMMTAuNTAzNyAxLjE4ODc1TDMuNzUgNy45NDMyNVoiIGZpbGw9IndoaXRlIi8+Cjwvc3ZnPgo="
15
21
  })
16
22
  });
17
23
  if (type === "error") return /* @__PURE__ */ jsx("span", {
18
- className: cn(baseClass, "tw-bg-[var(--background-negative-strong,#ef4444)]"),
24
+ className: cn(`${type}-icon-box icon-box`, baseClass, "tw-bg-[var(--background-negative-strong)]"),
25
+ style: iconStyle,
19
26
  children: /* @__PURE__ */ jsx("img", {
20
27
  style: {
21
- width: 3,
22
- height: 10
28
+ height: Math.round(size * .625),
29
+ width: Math.round(size * .188)
23
30
  },
24
31
  src: "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMyIgaGVpZ2h0PSIxMCIgdmlld0JveD0iMCAwIDMgMTAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik0wLjI4MTI1IDBIMS45Njg3NVY2LjVIMC4yODEyNVYwWk0xLjEyNSAxMEMwLjkwMjUgMTAgMC42ODQ5OSA5LjkzNDA0IDAuNDk5OTggOS44MTA0MkMwLjMxNDk4IDkuNjg2OCAwLjE3MDc4IDkuNTExMTMgMC4wODU2NCA5LjMwNTU1QzAuMDAwNDkgOS4wOTk5OCAtMC4wMjE3OSA4Ljg3Mzc4IDAuMDIxNjIgOC42NTU1NUMwLjA2NTAzIDguNDM3MzIgMC4xNzIxNyA4LjIzNjg0IDAuMzI5NTEgOC4wNzk1MUMwLjQ4Njg0IDcuOTIyMTcgMC42ODczIDcuODE1MDQgMC45MDU1MiA3Ljc3MTYzQzEuMTIzNzUgNy43MjgyMiAxLjM0OTk1IDcuNzUwNTEgMS41NTU1MiA3LjgzNTY0QzEuNzYxMDkgNy45MjA3OCAxLjkzNjc5IDguMDY0OTggMi4wNjA0IDguMjVDMi4xODQwMiA4LjQzNTAyIDIuMjUgOC42NTI1MSAyLjI1IDguODc1QzIuMjUgOS4xNzMzNyAyLjEzMTQ3IDkuNDU5NTIgMS45MjA1IDkuNjcwNDlDMS43MDk1MiA5Ljg4MTQ3IDEuNDIzMzcgMTAgMS4xMjUgMTBaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K"
25
32
  })
26
33
  });
27
34
  if (type === "process") return /* @__PURE__ */ jsx("span", {
28
- className: cn(baseClass, "tw-relative tw-bg-[var(--interaction-default-hover)]"),
29
- children: /* @__PURE__ */ jsx("span", { className: "tw-size-1.5 tw-rounded-full tw-bg-white" })
35
+ className: cn(`${type}-icon-box icon-box`, baseClass, "tw-relative tw-bg-[var(--border-brand-strong)]"),
36
+ style: iconStyle,
37
+ children: /* @__PURE__ */ jsx("span", {
38
+ className: "tw-rounded-full tw-bg-[var(--background-default)]",
39
+ style: {
40
+ height: innerDotSize,
41
+ width: innerDotSize
42
+ }
43
+ })
30
44
  });
31
45
  return /* @__PURE__ */ jsx("span", {
32
- className: cn(baseClass, "tw-relative tw-bg-[var(--alias-colors-icon-subtle)]"),
33
- children: /* @__PURE__ */ jsx("span", { className: "tw-size-1.5 tw-rounded-full tw-bg-[var(--background-default)]" })
46
+ className: cn(`${type}-icon-box icon-box`, baseClass, "tw-relative tw-bg-[var(--content-secondary)]"),
47
+ style: iconStyle,
48
+ children: /* @__PURE__ */ jsx("span", {
49
+ className: "tw-rounded-full tw-bg-[var(--background-default)]",
50
+ style: {
51
+ height: innerDotSize,
52
+ width: innerDotSize
53
+ }
54
+ })
34
55
  });
35
56
  }
36
57
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../../src/Steps/components/ProcessIcon/index.tsx"],"sourcesContent":["import React from 'react';\nimport { cn } from '../../../lib/utils';\n\ninterface IProcessIconProps {\n type: 'process' | 'wait' | 'finish' | 'error';\n}\n\nexport function ProcessIcon({ type }: IProcessIconProps) {\n const baseClass =\n 'tw-flex tw-size-4 tw-items-center tw-justify-center tw-rounded-full tw-bg-[var(--background-default)]';\n\n if (type === 'finish')\n return (\n <span\n className={cn(baseClass, 'tw-bg-[var(--interaction-default-hover)]')}\n >\n <img\n style={{ width: 10, height: 8 }}\n src=\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTEiIGhlaWdodD0iOCIgdmlld0JveD0iMCAwIDExIDgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik0zLjc1IDcuOTQzMjVMMCA0LjE5MzI1TDEuMTkzMjUgM0wzLjc1IDUuNTU2NzVMOS4zMDc1IDBMMTAuNTAzNyAxLjE4ODc1TDMuNzUgNy45NDMyNVoiIGZpbGw9IndoaXRlIi8+Cjwvc3ZnPgo=\"\n />\n </span>\n );\n\n if (type === 'error')\n return (\n <span\n className={cn(\n baseClass,\n 'tw-bg-[var(--background-negative-strong,#ef4444)]',\n )}\n >\n <img\n style={{ width: 3, height: 10 }}\n src=\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMyIgaGVpZ2h0PSIxMCIgdmlld0JveD0iMCAwIDMgMTAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik0wLjI4MTI1IDBIMS45Njg3NVY2LjVIMC4yODEyNVYwWk0xLjEyNSAxMEMwLjkwMjUgMTAgMC42ODQ5OSA5LjkzNDA0IDAuNDk5OTggOS44MTA0MkMwLjMxNDk4IDkuNjg2OCAwLjE3MDc4IDkuNTExMTMgMC4wODU2NCA5LjMwNTU1QzAuMDAwNDkgOS4wOTk5OCAtMC4wMjE3OSA4Ljg3Mzc4IDAuMDIxNjIgOC42NTU1NUMwLjA2NTAzIDguNDM3MzIgMC4xNzIxNyA4LjIzNjg0IDAuMzI5NTEgOC4wNzk1MUMwLjQ4Njg0IDcuOTIyMTcgMC42ODczIDcuODE1MDQgMC45MDU1MiA3Ljc3MTYzQzEuMTIzNzUgNy43MjgyMiAxLjM0OTk1IDcuNzUwNTEgMS41NTU1MiA3LjgzNTY0QzEuNzYxMDkgNy45MjA3OCAxLjkzNjc5IDguMDY0OTggMi4wNjA0IDguMjVDMi4xODQwMiA4LjQzNTAyIDIuMjUgOC42NTI1MSAyLjI1IDguODc1QzIuMjUgOS4xNzMzNyAyLjEzMTQ3IDkuNDU5NTIgMS45MjA1IDkuNjcwNDlDMS43MDk1MiA5Ljg4MTQ3IDEuNDIzMzcgMTAgMS4xMjUgMTBaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K\"\n />\n </span>\n );\n\n if (type === 'process')\n return (\n <span\n className={cn(\n baseClass,\n 'tw-relative tw-bg-[var(--interaction-default-hover)]',\n )}\n >\n <span className=\"tw-size-1.5 tw-rounded-full tw-bg-white\" />\n </span>\n );\n\n // wait\n return (\n <span\n className={cn(\n baseClass,\n 'tw-relative tw-bg-[var(--alias-colors-icon-subtle)]',\n )}\n >\n <span className=\"tw-size-1.5 tw-rounded-full tw-bg-[var(--background-default)]\" />\n </span>\n );\n}\n"],"mappings":";;;;AAOA,SAAgB,YAAY,EAAE,QAA2B;CACvD,MAAM,YACJ;AAEF,KAAI,SAAS,SACX,QACE,oBAAC,QAAD;EACE,WAAW,GAAG,WAAW,2CAA2C;YAEpE,oBAAC,OAAD;GACE,OAAO;IAAE,OAAO;IAAI,QAAQ;IAAG;GAC/B,KAAI;GACJ,CAAA;EACG,CAAA;AAGX,KAAI,SAAS,QACX,QACE,oBAAC,QAAD;EACE,WAAW,GACT,WACA,oDACD;YAED,oBAAC,OAAD;GACE,OAAO;IAAE,OAAO;IAAG,QAAQ;IAAI;GAC/B,KAAI;GACJ,CAAA;EACG,CAAA;AAGX,KAAI,SAAS,UACX,QACE,oBAAC,QAAD;EACE,WAAW,GACT,WACA,uDACD;YAED,oBAAC,QAAD,EAAM,WAAU,2CAA4C,CAAA;EACvD,CAAA;AAIX,QACE,oBAAC,QAAD;EACE,WAAW,GACT,WACA,sDACD;YAED,oBAAC,QAAD,EAAM,WAAU,iEAAkE,CAAA;EAC7E,CAAA"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../src/Steps/components/ProcessIcon/index.tsx"],"sourcesContent":["import React from 'react';\nimport { cn } from '../../../lib/utils';\n\ninterface IProcessIconProps {\n size?: number;\n type: 'process' | 'wait' | 'finish' | 'error';\n}\n\nexport function ProcessIcon({ size = 16, type }: IProcessIconProps) {\n const baseClass =\n 'tw-flex tw-items-center tw-justify-center tw-rounded-full tw-bg-[var(--background-default)]';\n const iconStyle = { height: size, width: size };\n const innerDotSize = Math.max(6, Math.round(size * 0.375));\n\n if (type === 'finish')\n return (\n <span\n className={cn(\n `${type}-icon-box icon-box`,\n baseClass,\n 'tw-bg-[var(--border-brand-strong)]',\n )}\n style={iconStyle}\n >\n <img\n style={{\n height: Math.round(size * 0.5),\n width: Math.round(size * 0.625),\n }}\n src=\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTEiIGhlaWdodD0iOCIgdmlld0JveD0iMCAwIDExIDgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik0zLjc1IDcuOTQzMjVMMCA0LjE5MzI1TDEuMTkzMjUgM0wzLjc1IDUuNTU2NzVMOS4zMDc1IDBMMTAuNTAzNyAxLjE4ODc1TDMuNzUgNy45NDMyNVoiIGZpbGw9IndoaXRlIi8+Cjwvc3ZnPgo=\"\n />\n </span>\n );\n\n if (type === 'error')\n return (\n <span\n className={cn(\n `${type}-icon-box icon-box`,\n baseClass,\n 'tw-bg-[var(--background-negative-strong)]',\n )}\n style={iconStyle}\n >\n <img\n style={{\n height: Math.round(size * 0.625),\n width: Math.round(size * 0.188),\n }}\n src=\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMyIgaGVpZ2h0PSIxMCIgdmlld0JveD0iMCAwIDMgMTAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik0wLjI4MTI1IDBIMS45Njg3NVY2LjVIMC4yODEyNVYwWk0xLjEyNSAxMEMwLjkwMjUgMTAgMC42ODQ5OSA5LjkzNDA0IDAuNDk5OTggOS44MTA0MkMwLjMxNDk4IDkuNjg2OCAwLjE3MDc4IDkuNTExMTMgMC4wODU2NCA5LjMwNTU1QzAuMDAwNDkgOS4wOTk5OCAtMC4wMjE3OSA4Ljg3Mzc4IDAuMDIxNjIgOC42NTU1NUMwLjA2NTAzIDguNDM3MzIgMC4xNzIxNyA4LjIzNjg0IDAuMzI5NTEgOC4wNzk1MUMwLjQ4Njg0IDcuOTIyMTcgMC42ODczIDcuODE1MDQgMC45MDU1MiA3Ljc3MTYzQzEuMTIzNzUgNy43MjgyMiAxLjM0OTk1IDcuNzUwNTEgMS41NTU1MiA3LjgzNTY0QzEuNzYxMDkgNy45MjA3OCAxLjkzNjc5IDguMDY0OTggMi4wNjA0IDguMjVDMi4xODQwMiA4LjQzNTAyIDIuMjUgOC42NTI1MSAyLjI1IDguODc1QzIuMjUgOS4xNzMzNyAyLjEzMTQ3IDkuNDU5NTIgMS45MjA1IDkuNjcwNDlDMS43MDk1MiA5Ljg4MTQ3IDEuNDIzMzcgMTAgMS4xMjUgMTBaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K\"\n />\n </span>\n );\n\n if (type === 'process')\n return (\n <span\n className={cn(\n `${type}-icon-box icon-box`,\n baseClass,\n 'tw-relative tw-bg-[var(--border-brand-strong)]',\n )}\n style={iconStyle}\n >\n <span\n className=\"tw-rounded-full tw-bg-[var(--background-default)]\"\n style={{ height: innerDotSize, width: innerDotSize }}\n />\n </span>\n );\n\n // wait\n return (\n <span\n className={cn(\n `${type}-icon-box icon-box`,\n baseClass,\n 'tw-relative tw-bg-[var(--content-secondary)]',\n )}\n style={iconStyle}\n >\n <span\n className=\"tw-rounded-full tw-bg-[var(--background-default)]\"\n style={{ height: innerDotSize, width: innerDotSize }}\n />\n </span>\n );\n}\n"],"mappings":";;;;AAQA,SAAgB,YAAY,EAAE,OAAO,IAAI,QAA2B;CAClE,MAAM,YACJ;CACF,MAAM,YAAY;EAAE,QAAQ;EAAM,OAAO;EAAM;CAC/C,MAAM,eAAe,KAAK,IAAI,GAAG,KAAK,MAAM,OAAO,KAAM,CAAC;AAE1D,KAAI,SAAS,SACX,QACE,oBAAC,QAAD;EACE,WAAW,GACT,GAAG,KAAK,qBACR,WACA,qCACD;EACD,OAAO;YAEP,oBAAC,OAAD;GACE,OAAO;IACL,QAAQ,KAAK,MAAM,OAAO,GAAI;IAC9B,OAAO,KAAK,MAAM,OAAO,KAAM;IAChC;GACD,KAAI;GACJ,CAAA;EACG,CAAA;AAGX,KAAI,SAAS,QACX,QACE,oBAAC,QAAD;EACE,WAAW,GACT,GAAG,KAAK,qBACR,WACA,4CACD;EACD,OAAO;YAEP,oBAAC,OAAD;GACE,OAAO;IACL,QAAQ,KAAK,MAAM,OAAO,KAAM;IAChC,OAAO,KAAK,MAAM,OAAO,KAAM;IAChC;GACD,KAAI;GACJ,CAAA;EACG,CAAA;AAGX,KAAI,SAAS,UACX,QACE,oBAAC,QAAD;EACE,WAAW,GACT,GAAG,KAAK,qBACR,WACA,iDACD;EACD,OAAO;YAEP,oBAAC,QAAD;GACE,WAAU;GACV,OAAO;IAAE,QAAQ;IAAc,OAAO;IAAc;GACpD,CAAA;EACG,CAAA;AAIX,QACE,oBAAC,QAAD;EACE,WAAW,GACT,GAAG,KAAK,qBACR,WACA,+CACD;EACD,OAAO;YAEP,oBAAC,QAAD;GACE,WAAU;GACV,OAAO;IAAE,QAAQ;IAAc,OAAO;IAAc;GACpD,CAAA;EACG,CAAA"}
@@ -1,8 +1,8 @@
1
1
  import { cn } from "../lib/utils.js";
2
- import { ProcessIcon } from "./components/ProcessIcon/index.js";
2
+ import { CustomDot } from "./components/CustomDot/index.js";
3
3
  import { Step } from "./components/Step/index.js";
4
4
  import React from "react";
5
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
6
  //#region src/Steps/index.tsx
7
7
  function getStepStatus(index, current, globalStatus) {
8
8
  if (index < current) return "finish";
@@ -19,59 +19,77 @@ function Steps({ className, current: controlledCurrent, direction = "horizontal"
19
19
  icon: child.props.icon
20
20
  }));
21
21
  return /* @__PURE__ */ jsx("div", {
22
- className: cn("ald-steps tw-flex", direction === "vertical" ? "tw-flex-col" : "tw-flex-row tw-items-start", className),
22
+ className: cn("ald-steps ant-steps ant-steps-dot ant-steps-label-vertical tw-flex", direction === "vertical" ? "ant-steps-vertical" : "ant-steps-horizontal", direction === "vertical" ? "tw-flex-col" : "tw-flex-row tw-items-start", className),
23
23
  children: resolvedItems.map((item, index) => {
24
24
  const stepStatus = item.status || getStepStatus(index, current, status);
25
25
  const isLast = index === resolvedItems.length - 1;
26
26
  return /* @__PURE__ */ jsx("div", {
27
- className: cn("ald-steps-item tw-flex", direction === "horizontal" ? "tw-flex-1 tw-flex-col tw-items-center tw-text-center" : "tw-flex-row tw-gap-3 tw-py-2", `ald-steps-item-${stepStatus}`, item.disabled && "ald-steps-item-disabled tw-pointer-events-none tw-opacity-50"),
28
- children: direction === "horizontal" ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsxs("div", {
29
- className: "tw-flex tw-w-full tw-items-center",
30
- children: [
31
- index > 0 && /* @__PURE__ */ jsx("div", {
32
- className: cn("tw-flex-1", index <= current ? "tw-bg-[var(--alias-colors-border-selected)]" : "tw-bg-[var(--alias-colors-border-default)]"),
33
- style: { height: 1.5 }
34
- }),
35
- /* @__PURE__ */ jsx("div", {
36
- className: "ald-steps-item-icon tw-shrink-0",
37
- children: item.icon || /* @__PURE__ */ jsx(ProcessIcon, { type: stepStatus })
38
- }),
39
- !isLast && /* @__PURE__ */ jsx("div", {
40
- className: cn("tw-flex-1", index < current ? "tw-bg-[var(--alias-colors-border-selected)]" : "tw-bg-[var(--alias-colors-border-default)]"),
41
- style: { height: 1.5 }
42
- })
43
- ]
44
- }), /* @__PURE__ */ jsxs("div", {
45
- className: "ald-steps-item-content ant-steps-item-content tw-mt-2 tw-flex tw-flex-col tw-items-center",
46
- children: [/* @__PURE__ */ jsx("div", {
47
- className: cn("ald-steps-item-title ant-steps-item-title tw-text-sm tw-font-medium tw-leading-5", stepStatus === "finish" && "tw-text-[var(--alias-colors-text-subtlest)]", stepStatus === "process" && "tw-text-[var(--alias-colors-text-selected)]", stepStatus === "wait" && "tw-text-[var(--alias-colors-text-default)]", stepStatus === "error" && "tw-text-[var(--alias-colors-text-danger)]"),
48
- children: item.title
49
- }), item.description && /* @__PURE__ */ jsx("div", {
50
- className: cn("ald-steps-item-description ant-steps-item-description tw-mt-1 tw-max-w-[264px] tw-break-all tw-text-xs tw-leading-4", stepStatus === "finish" || stepStatus === "error" ? "tw-text-[var(--alias-colors-text-subtlest)]" : "tw-text-[var(--alias-colors-text-subtle)]"),
51
- children: item.description
27
+ className: cn("ald-steps-item ant-steps-item tw-flex", direction === "horizontal" ? "tw-flex-1 tw-flex-col tw-items-center tw-text-center" : "tw-flex-row tw-gap-3 tw-py-2", `ald-steps-item-${stepStatus}`, `ant-steps-item-${stepStatus}`, item.disabled && "ald-steps-item-disabled tw-pointer-events-none tw-opacity-50", item.disabled && "ant-steps-item-disabled"),
28
+ children: direction === "horizontal" ? /* @__PURE__ */ jsxs("div", {
29
+ className: "ant-steps-item-container tw-flex tw-w-full tw-flex-col tw-items-center",
30
+ children: [/* @__PURE__ */ jsxs("div", {
31
+ className: "tw-flex tw-w-full tw-items-center",
32
+ children: [
33
+ index > 0 && /* @__PURE__ */ jsx("div", {
34
+ className: cn("ant-steps-item-tail tw-flex-1", index <= current ? "tw-bg-[var(--border-brand-strong)]" : "tw-bg-[var(--border-default)]"),
35
+ style: { height: 1.5 }
36
+ }),
37
+ /* @__PURE__ */ jsx("div", {
38
+ className: "ald-steps-item-icon ant-steps-item-icon tw-shrink-0",
39
+ children: /* @__PURE__ */ jsx("span", {
40
+ className: "ant-steps-icon",
41
+ children: /* @__PURE__ */ jsx("span", {
42
+ className: "ant-steps-icon-dot",
43
+ children: item.icon || CustomDot(null, { status: stepStatus })
44
+ })
45
+ })
46
+ }),
47
+ !isLast && /* @__PURE__ */ jsx("div", {
48
+ className: cn(index === 0 && "ant-steps-item-tail", "tw-flex-1", index < current ? "tw-bg-[var(--border-brand-strong)]" : "tw-bg-[var(--border-default)]"),
49
+ style: { height: 1.5 }
50
+ })
51
+ ]
52
+ }), /* @__PURE__ */ jsxs("div", {
53
+ className: "ald-steps-item-content ant-steps-item-content tw-mt-2 tw-flex tw-flex-col tw-items-center",
54
+ children: [/* @__PURE__ */ jsx("div", {
55
+ className: cn("ald-steps-item-title ant-steps-item-title tw-text-sm tw-font-medium tw-leading-5", stepStatus === "finish" && "tw-text-[var(--content-tertiary)]", stepStatus === "process" && "tw-text-[var(--content-brand-primary)]", stepStatus === "wait" && "tw-text-[var(--content-primary)]", stepStatus === "error" && "tw-text-[var(--content-negative-secondary)]"),
56
+ children: item.title
57
+ }), item.description && /* @__PURE__ */ jsx("div", {
58
+ className: cn("ald-steps-item-description ant-steps-item-description tw-mt-1 tw-max-w-[264px] tw-break-all tw-text-xs tw-leading-4", stepStatus === "finish" || stepStatus === "error" ? "tw-text-[var(--content-tertiary)]" : "tw-text-[var(--content-secondary)]"),
59
+ children: item.description
60
+ })]
52
61
  })]
53
- })] }) : /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsxs("div", {
54
- className: "tw-relative tw-flex tw-flex-col tw-items-center",
55
- children: [/* @__PURE__ */ jsx("div", {
56
- className: "ald-steps-item-icon tw-shrink-0",
57
- children: item.icon || /* @__PURE__ */ jsx(ProcessIcon, { type: stepStatus })
58
- }), !isLast && /* @__PURE__ */ jsx("div", {
59
- className: cn("tw-mt-1 tw-flex-1", index < current ? "tw-bg-[var(--alias-colors-border-selected)]" : "tw-bg-[var(--alias-colors-border-default)]"),
60
- style: {
61
- width: 1.5,
62
- minHeight: 24
63
- }
62
+ }) : /* @__PURE__ */ jsxs("div", {
63
+ className: "ant-steps-item-container tw-flex tw-min-h-16 tw-flex-row tw-gap-3",
64
+ children: [/* @__PURE__ */ jsxs("div", {
65
+ className: "ald-steps-item-axis tw-relative tw-flex tw-w-4 tw-shrink-0 tw-justify-center",
66
+ children: [!isLast && /* @__PURE__ */ jsx("div", {
67
+ className: cn("ald-steps-item-tail ant-steps-item-tail", index < current ? "ald-steps-item-tail-finish" : "ald-steps-item-tail-wait", "tw-absolute tw-left-1/2 tw-top-2 tw-z-0 tw--translate-x-1/2", index < current ? "tw-bg-[var(--border-brand-strong)]" : "tw-bg-[var(--border-default)]"),
68
+ style: {
69
+ width: 1.5,
70
+ bottom: -24
71
+ }
72
+ }), /* @__PURE__ */ jsx("div", {
73
+ className: "ald-steps-item-icon ant-steps-item-icon tw-relative tw-z-[1] tw-flex tw-size-4 tw-shrink-0 tw-items-center tw-justify-center tw-leading-none",
74
+ children: /* @__PURE__ */ jsx("span", {
75
+ className: "ant-steps-icon tw-flex tw-size-4 tw-items-center tw-justify-center tw-leading-none",
76
+ children: /* @__PURE__ */ jsx("span", {
77
+ className: "ant-steps-icon-dot tw-flex tw-size-4 tw-items-center tw-justify-center",
78
+ children: item.icon || CustomDot(null, { status: stepStatus })
79
+ })
80
+ })
81
+ })]
82
+ }), /* @__PURE__ */ jsxs("div", {
83
+ className: "ald-steps-item-content ant-steps-item-content",
84
+ children: [/* @__PURE__ */ jsx("div", {
85
+ className: cn("ald-steps-item-title ant-steps-item-title tw-text-sm tw-font-medium tw-leading-5", stepStatus === "finish" && "tw-text-[var(--content-tertiary)]", stepStatus === "process" && "tw-text-[var(--content-brand-primary)]", stepStatus === "wait" && "tw-text-[var(--content-primary)]", stepStatus === "error" && "tw-text-[var(--content-negative-secondary)]"),
86
+ children: item.title
87
+ }), item.description && /* @__PURE__ */ jsx("div", {
88
+ className: cn("ald-steps-item-description ant-steps-item-description tw-mt-1 tw-max-w-[264px] tw-break-all tw-text-xs tw-leading-4 tw-text-[var(--content-secondary)]"),
89
+ children: item.description
90
+ })]
64
91
  })]
65
- }), /* @__PURE__ */ jsxs("div", {
66
- className: "ald-steps-item-content ant-steps-item-content",
67
- children: [/* @__PURE__ */ jsx("div", {
68
- className: cn("ald-steps-item-title ant-steps-item-title tw-text-sm tw-font-medium tw-leading-5", stepStatus === "finish" && "tw-text-[var(--alias-colors-text-subtlest)]", stepStatus === "process" && "tw-text-[var(--alias-colors-text-selected)]", stepStatus === "wait" && "tw-text-[var(--alias-colors-text-default)]", stepStatus === "error" && "tw-text-[var(--alias-colors-text-danger)]"),
69
- children: item.title
70
- }), item.description && /* @__PURE__ */ jsx("div", {
71
- className: cn("ald-steps-item-description ant-steps-item-description tw-mt-1 tw-max-w-[264px] tw-break-all tw-text-xs tw-leading-4 tw-text-[var(--content-secondary)]"),
72
- children: item.description
73
- })]
74
- })] })
92
+ })
75
93
  }, index);
76
94
  })
77
95
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/Steps/index.tsx"],"sourcesContent":["import React, { ReactElement, ReactNode } from 'react';\nimport { cn } from '../lib/utils';\nimport { ProcessIcon } from './components/ProcessIcon';\nimport { IStepProps, Step } from './components/Step';\n\nexport type { IStepProps };\nexport type TStatus = 'wait' | 'process' | 'finish' | 'error';\n\nexport interface IStepItem {\n description?: ReactNode;\n disabled?: boolean;\n icon?: ReactNode;\n status?: TStatus;\n subTitle?: ReactNode;\n title: ReactNode;\n}\n\nexport interface IStepsProps {\n className?: string;\n current?: number;\n direction?: 'horizontal' | 'vertical';\n defaultCurrent?: number;\n status?: TStatus;\n items?: IStepItem[];\n children?: ReactElement<IStepProps>[] | ReactElement<IStepProps>;\n}\n\nfunction getStepStatus(\n index: number,\n current: number,\n globalStatus?: TStatus,\n): TStatus {\n if (index < current) return 'finish';\n if (index === current) return globalStatus || 'process';\n return 'wait';\n}\n\nfunction Steps({\n className,\n current: controlledCurrent,\n direction = 'horizontal',\n defaultCurrent = 0,\n status,\n items,\n children,\n}: IStepsProps) {\n const current = controlledCurrent ?? defaultCurrent;\n // Support children-based API: convert children to items\n const resolvedItems: IStepItem[] =\n items ||\n React.Children.toArray(children)\n .filter(React.isValidElement)\n .map((child: any) => ({\n title: child.props.title,\n description: child.props.description,\n disabled: child.props.disabled,\n status: child.props.status,\n icon: child.props.icon,\n }));\n\n return (\n <div\n className={cn(\n 'ald-steps tw-flex',\n direction === 'vertical' ? 'tw-flex-col' : 'tw-flex-row tw-items-start',\n className,\n )}\n >\n {resolvedItems.map((item, index) => {\n const stepStatus = item.status || getStepStatus(index, current, status);\n const isLast = index === resolvedItems.length - 1;\n\n return (\n <div\n key={index}\n className={cn(\n 'ald-steps-item tw-flex',\n direction === 'horizontal'\n ? 'tw-flex-1 tw-flex-col tw-items-center tw-text-center'\n : 'tw-flex-row tw-gap-3 tw-py-2',\n `ald-steps-item-${stepStatus}`,\n item.disabled &&\n 'ald-steps-item-disabled tw-pointer-events-none tw-opacity-50',\n )}\n >\n {direction === 'horizontal' ? (\n <>\n <div className=\"tw-flex tw-w-full tw-items-center\">\n {index > 0 && (\n <div\n className={cn(\n 'tw-flex-1',\n index <= current\n ? 'tw-bg-[var(--alias-colors-border-selected)]'\n : 'tw-bg-[var(--alias-colors-border-default)]',\n )}\n style={{ height: 1.5 }}\n />\n )}\n <div className=\"ald-steps-item-icon tw-shrink-0\">\n {item.icon || <ProcessIcon type={stepStatus} />}\n </div>\n {!isLast && (\n <div\n className={cn(\n 'tw-flex-1',\n index < current\n ? 'tw-bg-[var(--alias-colors-border-selected)]'\n : 'tw-bg-[var(--alias-colors-border-default)]',\n )}\n style={{ height: 1.5 }}\n />\n )}\n </div>\n {/* antd 兼容:保留 ant-* class,消费方 CSS 可能依赖该选择器 */}\n <div className=\"ald-steps-item-content ant-steps-item-content tw-mt-2 tw-flex tw-flex-col tw-items-center\">\n <div\n className={cn(\n // antd 兼容:保留 ant-* class,消费方 CSS 可能依赖该选择器\n 'ald-steps-item-title ant-steps-item-title tw-text-sm tw-font-medium tw-leading-5',\n stepStatus === 'finish' &&\n 'tw-text-[var(--alias-colors-text-subtlest)]',\n stepStatus === 'process' &&\n 'tw-text-[var(--alias-colors-text-selected)]',\n stepStatus === 'wait' &&\n 'tw-text-[var(--alias-colors-text-default)]',\n stepStatus === 'error' &&\n 'tw-text-[var(--alias-colors-text-danger)]',\n )}\n >\n {item.title}\n </div>\n {item.description && (\n <div\n className={cn(\n // antd 兼容:保留 ant-* class,消费方 CSS 可能依赖该选择器\n 'ald-steps-item-description ant-steps-item-description tw-mt-1 tw-max-w-[264px] tw-break-all tw-text-xs tw-leading-4',\n stepStatus === 'finish' || stepStatus === 'error'\n ? 'tw-text-[var(--alias-colors-text-subtlest)]'\n : 'tw-text-[var(--alias-colors-text-subtle)]',\n )}\n >\n {item.description}\n </div>\n )}\n </div>\n </>\n ) : (\n <>\n <div className=\"tw-relative tw-flex tw-flex-col tw-items-center\">\n <div className=\"ald-steps-item-icon tw-shrink-0\">\n {item.icon || <ProcessIcon type={stepStatus} />}\n </div>\n {!isLast && (\n <div\n className={cn(\n 'tw-mt-1 tw-flex-1',\n index < current\n ? 'tw-bg-[var(--alias-colors-border-selected)]'\n : 'tw-bg-[var(--alias-colors-border-default)]',\n )}\n style={{ width: 1.5, minHeight: 24 }}\n />\n )}\n </div>\n {/* antd 兼容:保留 ant-* class,消费方 CSS 可能依赖该选择器 */}\n <div className=\"ald-steps-item-content ant-steps-item-content\">\n <div\n className={cn(\n // antd 兼容:保留 ant-* class,消费方 CSS 可能依赖该选择器\n 'ald-steps-item-title ant-steps-item-title tw-text-sm tw-font-medium tw-leading-5',\n stepStatus === 'finish' &&\n 'tw-text-[var(--alias-colors-text-subtlest)]',\n stepStatus === 'process' &&\n 'tw-text-[var(--alias-colors-text-selected)]',\n stepStatus === 'wait' &&\n 'tw-text-[var(--alias-colors-text-default)]',\n stepStatus === 'error' &&\n 'tw-text-[var(--alias-colors-text-danger)]',\n )}\n >\n {item.title}\n </div>\n {item.description && (\n <div\n className={cn(\n // antd 兼容:保留 ant-* class,消费方 CSS 可能依赖该选择器\n 'ald-steps-item-description ant-steps-item-description tw-mt-1 tw-max-w-[264px] tw-break-all tw-text-xs tw-leading-4 tw-text-[var(--content-secondary)]',\n )}\n >\n {item.description}\n </div>\n )}\n </div>\n </>\n )}\n </div>\n );\n })}\n </div>\n );\n}\n\nSteps.Step = Step;\n\nexport default Steps;\n"],"mappings":";;;;;;AA2BA,SAAS,cACP,OACA,SACA,cACS;AACT,KAAI,QAAQ,QAAS,QAAO;AAC5B,KAAI,UAAU,QAAS,QAAO,gBAAgB;AAC9C,QAAO;;AAGT,SAAS,MAAM,EACb,WACA,SAAS,mBACT,YAAY,cACZ,iBAAiB,GACjB,QACA,OACA,YACc;CACd,MAAM,UAAU,qBAAqB;CAErC,MAAM,gBACJ,SACA,MAAM,SAAS,QAAQ,SAAS,CAC7B,OAAO,MAAM,eAAe,CAC5B,KAAK,WAAgB;EACpB,OAAO,MAAM,MAAM;EACnB,aAAa,MAAM,MAAM;EACzB,UAAU,MAAM,MAAM;EACtB,QAAQ,MAAM,MAAM;EACpB,MAAM,MAAM,MAAM;EACnB,EAAE;AAEP,QACE,oBAAC,OAAD;EACE,WAAW,GACT,qBACA,cAAc,aAAa,gBAAgB,8BAC3C,UACD;YAEA,cAAc,KAAK,MAAM,UAAU;GAClC,MAAM,aAAa,KAAK,UAAU,cAAc,OAAO,SAAS,OAAO;GACvE,MAAM,SAAS,UAAU,cAAc,SAAS;AAEhD,UACE,oBAAC,OAAD;IAEE,WAAW,GACT,0BACA,cAAc,eACV,yDACA,gCACJ,kBAAkB,cAClB,KAAK,YACH,+DACH;cAEA,cAAc,eACb,qBAAA,UAAA,EAAA,UAAA,CACE,qBAAC,OAAD;KAAK,WAAU;eAAf;MACG,QAAQ,KACP,oBAAC,OAAD;OACE,WAAW,GACT,aACA,SAAS,UACL,gDACA,6CACL;OACD,OAAO,EAAE,QAAQ,KAAK;OACtB,CAAA;MAEJ,oBAAC,OAAD;OAAK,WAAU;iBACZ,KAAK,QAAQ,oBAAC,aAAD,EAAa,MAAM,YAAc,CAAA;OAC3C,CAAA;MACL,CAAC,UACA,oBAAC,OAAD;OACE,WAAW,GACT,aACA,QAAQ,UACJ,gDACA,6CACL;OACD,OAAO,EAAE,QAAQ,KAAK;OACtB,CAAA;MAEA;QAEN,qBAAC,OAAD;KAAK,WAAU;eAAf,CACE,oBAAC,OAAD;MACE,WAAW,GAET,oFACA,eAAe,YACb,+CACF,eAAe,aACb,+CACF,eAAe,UACb,8CACF,eAAe,WACb,4CACH;gBAEA,KAAK;MACF,CAAA,EACL,KAAK,eACJ,oBAAC,OAAD;MACE,WAAW,GAET,uHACA,eAAe,YAAY,eAAe,UACtC,gDACA,4CACL;gBAEA,KAAK;MACF,CAAA,CAEJ;OACL,EAAA,CAAA,GAEH,qBAAA,UAAA,EAAA,UAAA,CACE,qBAAC,OAAD;KAAK,WAAU;eAAf,CACE,oBAAC,OAAD;MAAK,WAAU;gBACZ,KAAK,QAAQ,oBAAC,aAAD,EAAa,MAAM,YAAc,CAAA;MAC3C,CAAA,EACL,CAAC,UACA,oBAAC,OAAD;MACE,WAAW,GACT,qBACA,QAAQ,UACJ,gDACA,6CACL;MACD,OAAO;OAAE,OAAO;OAAK,WAAW;OAAI;MACpC,CAAA,CAEA;QAEN,qBAAC,OAAD;KAAK,WAAU;eAAf,CACE,oBAAC,OAAD;MACE,WAAW,GAET,oFACA,eAAe,YACb,+CACF,eAAe,aACb,+CACF,eAAe,UACb,8CACF,eAAe,WACb,4CACH;gBAEA,KAAK;MACF,CAAA,EACL,KAAK,eACJ,oBAAC,OAAD;MACE,WAAW,GAET,yJACD;gBAEA,KAAK;MACF,CAAA,CAEJ;OACL,EAAA,CAAA;IAED,EA1HC,MA0HD;IAER;EACE,CAAA;;AAIV,MAAM,OAAO"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/Steps/index.tsx"],"sourcesContent":["import React, { ReactElement, ReactNode } from 'react';\nimport { cn } from '../lib/utils';\nimport { CustomDot } from './components/CustomDot';\nimport { IStepProps, Step } from './components/Step';\n\nexport type { IStepProps };\nexport type TStatus = 'wait' | 'process' | 'finish' | 'error';\n\nexport interface IStepItem {\n description?: ReactNode;\n disabled?: boolean;\n icon?: ReactNode;\n status?: TStatus;\n subTitle?: ReactNode;\n title: ReactNode;\n}\n\nexport interface IStepsProps {\n className?: string;\n current?: number;\n direction?: 'horizontal' | 'vertical';\n defaultCurrent?: number;\n status?: TStatus;\n items?: IStepItem[];\n children?: ReactElement<IStepProps>[] | ReactElement<IStepProps>;\n}\n\nfunction getStepStatus(\n index: number,\n current: number,\n globalStatus?: TStatus,\n): TStatus {\n if (index < current) return 'finish';\n if (index === current) return globalStatus || 'process';\n return 'wait';\n}\n\nfunction Steps({\n className,\n current: controlledCurrent,\n direction = 'horizontal',\n defaultCurrent = 0,\n status,\n items,\n children,\n}: IStepsProps) {\n const current = controlledCurrent ?? defaultCurrent;\n // Support children-based API: convert children to items\n const resolvedItems: IStepItem[] =\n items ||\n React.Children.toArray(children)\n .filter(React.isValidElement)\n .map((child: any) => ({\n title: child.props.title,\n description: child.props.description,\n disabled: child.props.disabled,\n status: child.props.status,\n icon: child.props.icon,\n }));\n\n return (\n <div\n className={cn(\n 'ald-steps ant-steps ant-steps-dot ant-steps-label-vertical tw-flex',\n direction === 'vertical'\n ? 'ant-steps-vertical'\n : 'ant-steps-horizontal',\n direction === 'vertical' ? 'tw-flex-col' : 'tw-flex-row tw-items-start',\n className,\n )}\n >\n {resolvedItems.map((item, index) => {\n const stepStatus = item.status || getStepStatus(index, current, status);\n const isLast = index === resolvedItems.length - 1;\n\n return (\n <div\n key={index}\n className={cn(\n 'ald-steps-item ant-steps-item tw-flex',\n direction === 'horizontal'\n ? 'tw-flex-1 tw-flex-col tw-items-center tw-text-center'\n : 'tw-flex-row tw-gap-3 tw-py-2',\n `ald-steps-item-${stepStatus}`,\n `ant-steps-item-${stepStatus}`,\n item.disabled &&\n 'ald-steps-item-disabled tw-pointer-events-none tw-opacity-50',\n item.disabled && 'ant-steps-item-disabled',\n )}\n >\n {direction === 'horizontal' ? (\n <div className=\"ant-steps-item-container tw-flex tw-w-full tw-flex-col tw-items-center\">\n <div className=\"tw-flex tw-w-full tw-items-center\">\n {index > 0 && (\n <div\n className={cn(\n 'ant-steps-item-tail tw-flex-1',\n index <= current\n ? 'tw-bg-[var(--border-brand-strong)]'\n : 'tw-bg-[var(--border-default)]',\n )}\n style={{ height: 1.5 }}\n />\n )}\n <div className=\"ald-steps-item-icon ant-steps-item-icon tw-shrink-0\">\n <span className=\"ant-steps-icon\">\n <span className=\"ant-steps-icon-dot\">\n {item.icon || CustomDot(null, { status: stepStatus })}\n </span>\n </span>\n </div>\n {!isLast && (\n <div\n className={cn(\n index === 0 && 'ant-steps-item-tail',\n 'tw-flex-1',\n index < current\n ? 'tw-bg-[var(--border-brand-strong)]'\n : 'tw-bg-[var(--border-default)]',\n )}\n style={{ height: 1.5 }}\n />\n )}\n </div>\n {/* antd 兼容:保留 ant-* class,消费方 CSS 可能依赖该选择器 */}\n <div className=\"ald-steps-item-content ant-steps-item-content tw-mt-2 tw-flex tw-flex-col tw-items-center\">\n <div\n className={cn(\n // antd 兼容:保留 ant-* class,消费方 CSS 可能依赖该选择器\n 'ald-steps-item-title ant-steps-item-title tw-text-sm tw-font-medium tw-leading-5',\n stepStatus === 'finish' &&\n 'tw-text-[var(--content-tertiary)]',\n stepStatus === 'process' &&\n 'tw-text-[var(--content-brand-primary)]',\n stepStatus === 'wait' &&\n 'tw-text-[var(--content-primary)]',\n stepStatus === 'error' &&\n 'tw-text-[var(--content-negative-secondary)]',\n )}\n >\n {item.title}\n </div>\n {item.description && (\n <div\n className={cn(\n // antd 兼容:保留 ant-* class,消费方 CSS 可能依赖该选择器\n 'ald-steps-item-description ant-steps-item-description tw-mt-1 tw-max-w-[264px] tw-break-all tw-text-xs tw-leading-4',\n stepStatus === 'finish' || stepStatus === 'error'\n ? 'tw-text-[var(--content-tertiary)]'\n : 'tw-text-[var(--content-secondary)]',\n )}\n >\n {item.description}\n </div>\n )}\n </div>\n </div>\n ) : (\n <div className=\"ant-steps-item-container tw-flex tw-min-h-16 tw-flex-row tw-gap-3\">\n <div className=\"ald-steps-item-axis tw-relative tw-flex tw-w-4 tw-shrink-0 tw-justify-center\">\n {!isLast && (\n <div\n className={cn(\n 'ald-steps-item-tail ant-steps-item-tail',\n index < current\n ? 'ald-steps-item-tail-finish'\n : 'ald-steps-item-tail-wait',\n 'tw-absolute tw-left-1/2 tw-top-2 tw-z-0 tw--translate-x-1/2',\n index < current\n ? 'tw-bg-[var(--border-brand-strong)]'\n : 'tw-bg-[var(--border-default)]',\n )}\n style={{ width: 1.5, bottom: -24 }}\n />\n )}\n <div className=\"ald-steps-item-icon ant-steps-item-icon tw-relative tw-z-[1] tw-flex tw-size-4 tw-shrink-0 tw-items-center tw-justify-center tw-leading-none\">\n <span className=\"ant-steps-icon tw-flex tw-size-4 tw-items-center tw-justify-center tw-leading-none\">\n <span className=\"ant-steps-icon-dot tw-flex tw-size-4 tw-items-center tw-justify-center\">\n {item.icon || CustomDot(null, { status: stepStatus })}\n </span>\n </span>\n </div>\n </div>\n {/* antd 兼容:保留 ant-* class,消费方 CSS 可能依赖该选择器 */}\n <div className=\"ald-steps-item-content ant-steps-item-content\">\n <div\n className={cn(\n // antd 兼容:保留 ant-* class,消费方 CSS 可能依赖该选择器\n 'ald-steps-item-title ant-steps-item-title tw-text-sm tw-font-medium tw-leading-5',\n stepStatus === 'finish' &&\n 'tw-text-[var(--content-tertiary)]',\n stepStatus === 'process' &&\n 'tw-text-[var(--content-brand-primary)]',\n stepStatus === 'wait' &&\n 'tw-text-[var(--content-primary)]',\n stepStatus === 'error' &&\n 'tw-text-[var(--content-negative-secondary)]',\n )}\n >\n {item.title}\n </div>\n {item.description && (\n <div\n className={cn(\n // antd 兼容:保留 ant-* class,消费方 CSS 可能依赖该选择器\n 'ald-steps-item-description ant-steps-item-description tw-mt-1 tw-max-w-[264px] tw-break-all tw-text-xs tw-leading-4 tw-text-[var(--content-secondary)]',\n )}\n >\n {item.description}\n </div>\n )}\n </div>\n </div>\n )}\n </div>\n );\n })}\n </div>\n );\n}\n\nSteps.Step = Step;\n\nexport default Steps;\n"],"mappings":";;;;;;AA2BA,SAAS,cACP,OACA,SACA,cACS;AACT,KAAI,QAAQ,QAAS,QAAO;AAC5B,KAAI,UAAU,QAAS,QAAO,gBAAgB;AAC9C,QAAO;;AAGT,SAAS,MAAM,EACb,WACA,SAAS,mBACT,YAAY,cACZ,iBAAiB,GACjB,QACA,OACA,YACc;CACd,MAAM,UAAU,qBAAqB;CAErC,MAAM,gBACJ,SACA,MAAM,SAAS,QAAQ,SAAS,CAC7B,OAAO,MAAM,eAAe,CAC5B,KAAK,WAAgB;EACpB,OAAO,MAAM,MAAM;EACnB,aAAa,MAAM,MAAM;EACzB,UAAU,MAAM,MAAM;EACtB,QAAQ,MAAM,MAAM;EACpB,MAAM,MAAM,MAAM;EACnB,EAAE;AAEP,QACE,oBAAC,OAAD;EACE,WAAW,GACT,sEACA,cAAc,aACV,uBACA,wBACJ,cAAc,aAAa,gBAAgB,8BAC3C,UACD;YAEA,cAAc,KAAK,MAAM,UAAU;GAClC,MAAM,aAAa,KAAK,UAAU,cAAc,OAAO,SAAS,OAAO;GACvE,MAAM,SAAS,UAAU,cAAc,SAAS;AAEhD,UACE,oBAAC,OAAD;IAEE,WAAW,GACT,yCACA,cAAc,eACV,yDACA,gCACJ,kBAAkB,cAClB,kBAAkB,cAClB,KAAK,YACH,gEACF,KAAK,YAAY,0BAClB;cAEA,cAAc,eACb,qBAAC,OAAD;KAAK,WAAU;eAAf,CACE,qBAAC,OAAD;MAAK,WAAU;gBAAf;OACG,QAAQ,KACP,oBAAC,OAAD;QACE,WAAW,GACT,iCACA,SAAS,UACL,uCACA,gCACL;QACD,OAAO,EAAE,QAAQ,KAAK;QACtB,CAAA;OAEJ,oBAAC,OAAD;QAAK,WAAU;kBACb,oBAAC,QAAD;SAAM,WAAU;mBACd,oBAAC,QAAD;UAAM,WAAU;oBACb,KAAK,QAAQ,UAAU,MAAM,EAAE,QAAQ,YAAY,CAAC;UAChD,CAAA;SACF,CAAA;QACH,CAAA;OACL,CAAC,UACA,oBAAC,OAAD;QACE,WAAW,GACT,UAAU,KAAK,uBACf,aACA,QAAQ,UACJ,uCACA,gCACL;QACD,OAAO,EAAE,QAAQ,KAAK;QACtB,CAAA;OAEA;SAEN,qBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,oBAAC,OAAD;OACE,WAAW,GAET,oFACA,eAAe,YACb,qCACF,eAAe,aACb,0CACF,eAAe,UACb,oCACF,eAAe,WACb,8CACH;iBAEA,KAAK;OACF,CAAA,EACL,KAAK,eACJ,oBAAC,OAAD;OACE,WAAW,GAET,uHACA,eAAe,YAAY,eAAe,UACtC,sCACA,qCACL;iBAEA,KAAK;OACF,CAAA,CAEJ;QACF;SAEN,qBAAC,OAAD;KAAK,WAAU;eAAf,CACE,qBAAC,OAAD;MAAK,WAAU;gBAAf,CACG,CAAC,UACA,oBAAC,OAAD;OACE,WAAW,GACT,2CACA,QAAQ,UACJ,+BACA,4BACJ,+DACA,QAAQ,UACJ,uCACA,gCACL;OACD,OAAO;QAAE,OAAO;QAAK,QAAQ;QAAK;OAClC,CAAA,EAEJ,oBAAC,OAAD;OAAK,WAAU;iBACb,oBAAC,QAAD;QAAM,WAAU;kBACd,oBAAC,QAAD;SAAM,WAAU;mBACb,KAAK,QAAQ,UAAU,MAAM,EAAE,QAAQ,YAAY,CAAC;SAChD,CAAA;QACF,CAAA;OACH,CAAA,CACF;SAEN,qBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,oBAAC,OAAD;OACE,WAAW,GAET,oFACA,eAAe,YACb,qCACF,eAAe,aACb,0CACF,eAAe,UACb,oCACF,eAAe,WACb,8CACH;iBAEA,KAAK;OACF,CAAA,EACL,KAAK,eACJ,oBAAC,OAAD;OACE,WAAW,GAET,yJACD;iBAEA,KAAK;OACF,CAAA,CAEJ;QACF;;IAEJ,EAzIC,MAyID;IAER;EACE,CAAA;;AAIV,MAAM,OAAO"}
@@ -52,14 +52,14 @@ var Switch = ({ className = "", disabled: customDisabled, loading = false, size:
52
52
  "data-testid": dataTestid,
53
53
  "aria-label": ariaLabel,
54
54
  disabled: currentDisabled,
55
- className: cn("ald-switch-btn tw-relative tw-inline-flex tw-cursor-pointer tw-items-center tw-rounded-full tw-border-0 tw-p-0 tw-transition-colors tw-duration-200", userChecked ? "tw-bg-[var(--alias-colors-icon-brand)] hover:tw-bg-[var(--alias-colors-icon-selected)]" : "tw-bg-[var(--alias-colors-icon-subtler)] hover:tw-bg-[var(--alias-colors-icon-subtle)]", currentDisabled && "tw-cursor-not-allowed tw-opacity-40"),
55
+ className: cn("ald-switch-btn tw-relative tw-inline-flex tw-cursor-pointer tw-items-center tw-rounded-full tw-border-0 tw-p-0 tw-transition-colors tw-duration-200", userChecked ? "tw-bg-[var(--action-primary-normal)] hover:tw-bg-[var(--action-primary-hover)]" : "tw-bg-[var(--action-neutral-subtle-normal)] hover:tw-bg-[var(--action-neutral-subtle-hover)]", currentDisabled && "tw-cursor-not-allowed tw-opacity-40"),
56
56
  style: {
57
57
  width: trackW,
58
58
  height: trackH
59
59
  },
60
60
  onClick: handleClick,
61
61
  children: /* @__PURE__ */ jsx("span", {
62
- className: cn("tw-block tw-rounded-full tw-bg-white tw-shadow-sm tw-transition-transform tw-duration-200"),
62
+ className: cn("tw-block tw-rounded-full tw-bg-[var(--background-default)] tw-shadow-sm tw-transition-transform tw-duration-200"),
63
63
  style: {
64
64
  width: thumbSize,
65
65
  height: thumbSize,
@@ -68,7 +68,7 @@ var Switch = ({ className = "", disabled: customDisabled, loading = false, size:
68
68
  }
69
69
  })
70
70
  }), children && /* @__PURE__ */ jsx("span", {
71
- className: cn("ald-switch-text tw-inline-flex tw-items-center tw-align-middle tw-text-[var(--alias-colors-text-default)]", size === "large" && "tw-h-5 tw-text-base tw-leading-5", size === "middle" && "tw-h-4 tw-text-sm tw-leading-4", size === "small" && "tw-h-3 tw-text-xs tw-leading-3", currentDisabled && "tw-opacity-50"),
71
+ className: cn("ald-switch-text tw-inline-flex tw-items-center tw-align-middle tw-text-[var(--content-primary)]", size === "large" && "tw-h-5 tw-text-base tw-leading-5", size === "middle" && "tw-h-4 tw-text-sm tw-leading-4", size === "small" && "tw-h-3 tw-text-xs tw-leading-3", currentDisabled && "tw-opacity-50"),
72
72
  children
73
73
  })]
74
74
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/Switch/index.tsx"],"sourcesContent":["import React, { useContext, useEffect, useState } from 'react';\nimport DisabledContext from '../ConfigProvider/DisabledContext';\nimport SizeContext from '../ConfigProvider/sizeContext';\nimport { cn } from '../lib/utils';\n\nexport type SwitchChangeEventHandler = (\n checked: boolean,\n event: React.MouseEvent<HTMLButtonElement>,\n) => void;\nexport type SwitchClickEventHandler = SwitchChangeEventHandler;\nexport type SwitchSize = 'large' | 'middle' | 'small';\n\nexport interface ISwitchProps {\n className?: string;\n checked?: boolean;\n defaultChecked?: boolean;\n disabled?: boolean;\n loading?: boolean;\n size?: SwitchSize;\n onClick?: SwitchChangeEventHandler;\n onChange?: SwitchChangeEventHandler;\n children?: React.ReactNode;\n /** 透传到内部 switch 按钮元素的 data-testid,用于自动化测试定位 */\n 'data-testid'?: string;\n /** 透传到内部 switch 按钮元素的 aria-label,用于可访问性与自动化测试定位 */\n 'aria-label'?: string;\n}\n\nconst switchSizeConfig: Record<\n SwitchSize,\n {\n trackW: number;\n trackH: number;\n thumbSize: number;\n }\n> = {\n large: {\n trackW: 36,\n trackH: 20,\n thumbSize: 16,\n },\n middle: {\n trackW: 28,\n trackH: 16,\n thumbSize: 12,\n },\n small: {\n trackW: 22,\n trackH: 12,\n thumbSize: 8,\n },\n};\n\nconst Switch: React.FC<ISwitchProps> = ({\n className = '',\n disabled: customDisabled,\n loading = false,\n size: customSize,\n checked,\n defaultChecked,\n onChange,\n onClick,\n children,\n 'data-testid': dataTestid,\n 'aria-label': ariaLabel,\n}) => {\n const contentSize = useContext(SizeContext);\n const size = customSize || contentSize || 'middle';\n\n const [userChecked, setUserChecked] = useState(\n typeof checked === 'undefined' ? defaultChecked : checked,\n );\n\n const disabled = useContext(DisabledContext);\n const mergedDisabled = customDisabled ?? disabled;\n\n const currentDisabled = loading ? true : mergedDisabled;\n\n useEffect(() => {\n if (typeof checked === 'boolean') {\n setUserChecked(checked);\n }\n }, [checked]);\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n if (currentDisabled) return;\n const newChecked = !userChecked;\n if (checked === undefined) {\n setUserChecked(newChecked);\n }\n onChange?.(newChecked, e);\n onClick?.(newChecked, e);\n };\n\n const { trackW, trackH, thumbSize } = switchSizeConfig[size];\n const thumbOffset = 2;\n const thumbTranslate = trackW - thumbSize - thumbOffset * 2;\n\n return (\n <span\n className={cn(\n className,\n 'ald-switch tw-inline-flex tw-items-center tw-gap-1.5 tw-text-[0]',\n `ald-switch-${size}`,\n currentDisabled && 'tw-pointer-events-none tw-cursor-default',\n {\n 'ald-switch-disabled': currentDisabled,\n 'ald-switch-checked': userChecked,\n },\n )}\n >\n <button\n type=\"button\"\n role=\"switch\"\n aria-checked={!!userChecked}\n data-testid={dataTestid}\n aria-label={ariaLabel}\n disabled={currentDisabled}\n className={cn(\n 'ald-switch-btn tw-relative tw-inline-flex tw-cursor-pointer tw-items-center tw-rounded-full tw-border-0 tw-p-0 tw-transition-colors tw-duration-200',\n userChecked\n ? 'tw-bg-[var(--alias-colors-icon-brand)] hover:tw-bg-[var(--alias-colors-icon-selected)]'\n : 'tw-bg-[var(--alias-colors-icon-subtler)] hover:tw-bg-[var(--alias-colors-icon-subtle)]',\n currentDisabled && 'tw-cursor-not-allowed tw-opacity-40',\n )}\n style={{ width: trackW, height: trackH }}\n onClick={handleClick}\n >\n <span\n className={cn(\n 'tw-block tw-rounded-full tw-bg-white tw-shadow-sm tw-transition-transform tw-duration-200',\n )}\n style={{\n width: thumbSize,\n height: thumbSize,\n marginLeft: thumbOffset,\n transform: userChecked\n ? `translateX(${thumbTranslate}px)`\n : 'translateX(0)',\n }}\n />\n </button>\n {children && (\n <span\n className={cn(\n 'ald-switch-text tw-inline-flex tw-items-center tw-align-middle tw-text-[var(--alias-colors-text-default)]',\n size === 'large' && 'tw-h-5 tw-text-base tw-leading-5',\n size === 'middle' && 'tw-h-4 tw-text-sm tw-leading-4',\n size === 'small' && 'tw-h-3 tw-text-xs tw-leading-3',\n currentDisabled && 'tw-opacity-50',\n )}\n >\n {children}\n </span>\n )}\n </span>\n );\n};\n\nexport default Switch;\n"],"mappings":";;;;;;AA4BA,IAAM,mBAOF;CACF,OAAO;EACL,QAAQ;EACR,QAAQ;EACR,WAAW;EACZ;CACD,QAAQ;EACN,QAAQ;EACR,QAAQ;EACR,WAAW;EACZ;CACD,OAAO;EACL,QAAQ;EACR,QAAQ;EACR,WAAW;EACZ;CACF;AAED,IAAM,UAAkC,EACtC,YAAY,IACZ,UAAU,gBACV,UAAU,OACV,MAAM,YACN,SACA,gBACA,UACA,SACA,UACA,eAAe,YACf,cAAc,gBACV;CACJ,MAAM,cAAc,WAAW,YAAY;CAC3C,MAAM,OAAO,cAAc,eAAe;CAE1C,MAAM,CAAC,aAAa,kBAAkB,SACpC,OAAO,YAAY,cAAc,iBAAiB,QACnD;CAED,MAAM,WAAW,WAAW,gBAAgB;CAG5C,MAAM,kBAAkB,UAAU,OAFX,kBAAkB;AAIzC,iBAAgB;AACd,MAAI,OAAO,YAAY,UACrB,gBAAe,QAAQ;IAExB,CAAC,QAAQ,CAAC;CAEb,MAAM,eAAe,MAA2C;AAC9D,MAAI,gBAAiB;EACrB,MAAM,aAAa,CAAC;AACpB,MAAI,YAAY,OACd,gBAAe,WAAW;AAE5B,aAAW,YAAY,EAAE;AACzB,YAAU,YAAY,EAAE;;CAG1B,MAAM,EAAE,QAAQ,QAAQ,cAAc,iBAAiB;CACvD,MAAM,cAAc;CACpB,MAAM,iBAAiB,SAAS,YAAY,cAAc;AAE1D,QACE,qBAAC,QAAD;EACE,WAAW,GACT,WACA,oEACA,cAAc,QACd,mBAAmB,4CACnB;GACE,uBAAuB;GACvB,sBAAsB;GACvB,CACF;YAVH,CAYE,oBAAC,UAAD;GACE,MAAK;GACL,MAAK;GACL,gBAAc,CAAC,CAAC;GAChB,eAAa;GACb,cAAY;GACZ,UAAU;GACV,WAAW,GACT,uJACA,cACI,2FACA,0FACJ,mBAAmB,sCACpB;GACD,OAAO;IAAE,OAAO;IAAQ,QAAQ;IAAQ;GACxC,SAAS;aAET,oBAAC,QAAD;IACE,WAAW,GACT,4FACD;IACD,OAAO;KACL,OAAO;KACP,QAAQ;KACR,YAAY;KACZ,WAAW,cACP,cAAc,eAAe,OAC7B;KACL;IACD,CAAA;GACK,CAAA,EACR,YACC,oBAAC,QAAD;GACE,WAAW,GACT,6GACA,SAAS,WAAW,oCACpB,SAAS,YAAY,kCACrB,SAAS,WAAW,kCACpB,mBAAmB,gBACpB;GAEA;GACI,CAAA,CAEJ"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/Switch/index.tsx"],"sourcesContent":["import React, { useContext, useEffect, useState } from 'react';\nimport DisabledContext from '../ConfigProvider/DisabledContext';\nimport SizeContext from '../ConfigProvider/sizeContext';\nimport { cn } from '../lib/utils';\n\nexport type SwitchChangeEventHandler = (\n checked: boolean,\n event: React.MouseEvent<HTMLButtonElement>,\n) => void;\nexport type SwitchClickEventHandler = SwitchChangeEventHandler;\nexport type SwitchSize = 'large' | 'middle' | 'small';\n\nexport interface ISwitchProps {\n className?: string;\n checked?: boolean;\n defaultChecked?: boolean;\n disabled?: boolean;\n loading?: boolean;\n size?: SwitchSize;\n onClick?: SwitchChangeEventHandler;\n onChange?: SwitchChangeEventHandler;\n children?: React.ReactNode;\n /** 透传到内部 switch 按钮元素的 data-testid,用于自动化测试定位 */\n 'data-testid'?: string;\n /** 透传到内部 switch 按钮元素的 aria-label,用于可访问性与自动化测试定位 */\n 'aria-label'?: string;\n}\n\nconst switchSizeConfig: Record<\n SwitchSize,\n {\n trackW: number;\n trackH: number;\n thumbSize: number;\n }\n> = {\n large: {\n trackW: 36,\n trackH: 20,\n thumbSize: 16,\n },\n middle: {\n trackW: 28,\n trackH: 16,\n thumbSize: 12,\n },\n small: {\n trackW: 22,\n trackH: 12,\n thumbSize: 8,\n },\n};\n\nconst Switch: React.FC<ISwitchProps> = ({\n className = '',\n disabled: customDisabled,\n loading = false,\n size: customSize,\n checked,\n defaultChecked,\n onChange,\n onClick,\n children,\n 'data-testid': dataTestid,\n 'aria-label': ariaLabel,\n}) => {\n const contentSize = useContext(SizeContext);\n const size = customSize || contentSize || 'middle';\n\n const [userChecked, setUserChecked] = useState(\n typeof checked === 'undefined' ? defaultChecked : checked,\n );\n\n const disabled = useContext(DisabledContext);\n const mergedDisabled = customDisabled ?? disabled;\n\n const currentDisabled = loading ? true : mergedDisabled;\n\n useEffect(() => {\n if (typeof checked === 'boolean') {\n setUserChecked(checked);\n }\n }, [checked]);\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n if (currentDisabled) return;\n const newChecked = !userChecked;\n if (checked === undefined) {\n setUserChecked(newChecked);\n }\n onChange?.(newChecked, e);\n onClick?.(newChecked, e);\n };\n\n const { trackW, trackH, thumbSize } = switchSizeConfig[size];\n const thumbOffset = 2;\n const thumbTranslate = trackW - thumbSize - thumbOffset * 2;\n\n return (\n <span\n className={cn(\n className,\n 'ald-switch tw-inline-flex tw-items-center tw-gap-1.5 tw-text-[0]',\n `ald-switch-${size}`,\n currentDisabled && 'tw-pointer-events-none tw-cursor-default',\n {\n 'ald-switch-disabled': currentDisabled,\n 'ald-switch-checked': userChecked,\n },\n )}\n >\n <button\n type=\"button\"\n role=\"switch\"\n aria-checked={!!userChecked}\n data-testid={dataTestid}\n aria-label={ariaLabel}\n disabled={currentDisabled}\n className={cn(\n 'ald-switch-btn tw-relative tw-inline-flex tw-cursor-pointer tw-items-center tw-rounded-full tw-border-0 tw-p-0 tw-transition-colors tw-duration-200',\n userChecked\n ? 'tw-bg-[var(--action-primary-normal)] hover:tw-bg-[var(--action-primary-hover)]'\n : 'tw-bg-[var(--action-neutral-subtle-normal)] hover:tw-bg-[var(--action-neutral-subtle-hover)]',\n currentDisabled && 'tw-cursor-not-allowed tw-opacity-40',\n )}\n style={{ width: trackW, height: trackH }}\n onClick={handleClick}\n >\n <span\n className={cn(\n 'tw-block tw-rounded-full tw-bg-[var(--background-default)] tw-shadow-sm tw-transition-transform tw-duration-200',\n )}\n style={{\n width: thumbSize,\n height: thumbSize,\n marginLeft: thumbOffset,\n transform: userChecked\n ? `translateX(${thumbTranslate}px)`\n : 'translateX(0)',\n }}\n />\n </button>\n {children && (\n <span\n className={cn(\n 'ald-switch-text tw-inline-flex tw-items-center tw-align-middle tw-text-[var(--content-primary)]',\n size === 'large' && 'tw-h-5 tw-text-base tw-leading-5',\n size === 'middle' && 'tw-h-4 tw-text-sm tw-leading-4',\n size === 'small' && 'tw-h-3 tw-text-xs tw-leading-3',\n currentDisabled && 'tw-opacity-50',\n )}\n >\n {children}\n </span>\n )}\n </span>\n );\n};\n\nexport default Switch;\n"],"mappings":";;;;;;AA4BA,IAAM,mBAOF;CACF,OAAO;EACL,QAAQ;EACR,QAAQ;EACR,WAAW;EACZ;CACD,QAAQ;EACN,QAAQ;EACR,QAAQ;EACR,WAAW;EACZ;CACD,OAAO;EACL,QAAQ;EACR,QAAQ;EACR,WAAW;EACZ;CACF;AAED,IAAM,UAAkC,EACtC,YAAY,IACZ,UAAU,gBACV,UAAU,OACV,MAAM,YACN,SACA,gBACA,UACA,SACA,UACA,eAAe,YACf,cAAc,gBACV;CACJ,MAAM,cAAc,WAAW,YAAY;CAC3C,MAAM,OAAO,cAAc,eAAe;CAE1C,MAAM,CAAC,aAAa,kBAAkB,SACpC,OAAO,YAAY,cAAc,iBAAiB,QACnD;CAED,MAAM,WAAW,WAAW,gBAAgB;CAG5C,MAAM,kBAAkB,UAAU,OAFX,kBAAkB;AAIzC,iBAAgB;AACd,MAAI,OAAO,YAAY,UACrB,gBAAe,QAAQ;IAExB,CAAC,QAAQ,CAAC;CAEb,MAAM,eAAe,MAA2C;AAC9D,MAAI,gBAAiB;EACrB,MAAM,aAAa,CAAC;AACpB,MAAI,YAAY,OACd,gBAAe,WAAW;AAE5B,aAAW,YAAY,EAAE;AACzB,YAAU,YAAY,EAAE;;CAG1B,MAAM,EAAE,QAAQ,QAAQ,cAAc,iBAAiB;CACvD,MAAM,cAAc;CACpB,MAAM,iBAAiB,SAAS,YAAY,cAAc;AAE1D,QACE,qBAAC,QAAD;EACE,WAAW,GACT,WACA,oEACA,cAAc,QACd,mBAAmB,4CACnB;GACE,uBAAuB;GACvB,sBAAsB;GACvB,CACF;YAVH,CAYE,oBAAC,UAAD;GACE,MAAK;GACL,MAAK;GACL,gBAAc,CAAC,CAAC;GAChB,eAAa;GACb,cAAY;GACZ,UAAU;GACV,WAAW,GACT,uJACA,cACI,mFACA,gGACJ,mBAAmB,sCACpB;GACD,OAAO;IAAE,OAAO;IAAQ,QAAQ;IAAQ;GACxC,SAAS;aAET,oBAAC,QAAD;IACE,WAAW,GACT,kHACD;IACD,OAAO;KACL,OAAO;KACP,QAAQ;KACR,YAAY;KACZ,WAAW,cACP,cAAc,eAAe,OAC7B;KACL;IACD,CAAA;GACK,CAAA,EACR,YACC,oBAAC,QAAD;GACE,WAAW,GACT,mGACA,SAAS,WAAW,oCACpB,SAAS,YAAY,kCACrB,SAAS,WAAW,kCACpB,mBAAmB,gBACpB;GAEA;GACI,CAAA,CAEJ"}
@@ -11,15 +11,15 @@ function Header(props) {
11
11
  const { title, dataIndex, align, ellipsis, sortOrder, onSort } = column.columnDef.meta;
12
12
  let sortIcon = /* @__PURE__ */ jsx(Memo$1, {
13
13
  size: 20,
14
- color: "var( --interaction-neutral-normal)"
14
+ color: "var(--action-neutral-normal)"
15
15
  });
16
16
  if (sortOrder === "ascend") sortIcon = /* @__PURE__ */ jsx(Memo, {
17
17
  size: 20,
18
- color: "var( --interaction-default-normal)"
18
+ color: "var(--action-primary-normal)"
19
19
  });
20
20
  else if (sortOrder === "descend") sortIcon = /* @__PURE__ */ jsx(Memo$2, {
21
21
  size: 20,
22
- color: "var( --interaction-default-normal)"
22
+ color: "var(--action-primary-normal)"
23
23
  });
24
24
  const onClickTh = useCallback((e) => {
25
25
  if (sortOrder === void 0 || !dataIndex || typeof onSort !== "function") return;
@@ -1 +1 @@
1
- {"version":3,"file":"Header.js","names":[],"sources":["../../../src/Table/components/Header.tsx"],"sourcesContent":["import { Column } from '@tanstack/react-table';\nimport { cn } from '../../lib/utils';\nimport React, { MouseEventHandler, useCallback } from 'react';\nimport SortAscIcon from '../../Icon/components/SortAscendingOrderColor';\nimport SortIcon from '../../Icon/components/SortColor';\nimport SortDescIcon from '../../Icon/components/SortDescendingOrderColor';\nimport { prefixCls } from '../helper';\nimport { ITableColumn, ITableProps } from '../types';\n\nexport default function Header<T extends object>(props: IProps<T>) {\n const { column } = props;\n const { title, dataIndex, align, ellipsis, sortOrder, onSort } = column\n .columnDef.meta as ITableColumn & { onSort: ITableProps<T>['onSort'] };\n\n let sortIcon = (\n <SortIcon size={20} color={'var( --interaction-neutral-normal)'} />\n );\n if (sortOrder === 'ascend') {\n sortIcon = (\n <SortAscIcon size={20} color={'var( --interaction-default-normal)'} />\n );\n } else if (sortOrder === 'descend') {\n sortIcon = (\n <SortDescIcon size={20} color={'var( --interaction-default-normal)'} />\n );\n }\n\n const onClickTh = useCallback<MouseEventHandler>(\n (e) => {\n if (\n sortOrder === undefined ||\n !dataIndex ||\n typeof onSort !== 'function'\n ) {\n return;\n }\n e.stopPropagation();\n\n let newSortOrder: typeof sortOrder;\n if (sortOrder === 'ascend') {\n newSortOrder = 'descend';\n } else if (sortOrder === 'descend') {\n newSortOrder = null;\n } else {\n newSortOrder = 'ascend';\n }\n onSort(dataIndex, newSortOrder);\n },\n [dataIndex, onSort, sortOrder],\n );\n\n let content = title;\n if (typeof content === 'string') {\n if (sortOrder !== undefined) {\n content = (\n <span className={prefixCls('sort-th-inner')}>\n <span className={prefixCls('sort-title')}>{title}</span>\n <span className={prefixCls('sort-btn')}>{sortIcon}</span>\n </span>\n );\n }\n }\n\n return typeof title === 'string' ? (\n <div\n key={dataIndex}\n className={cn(prefixCls('th-default'), prefixCls(`align-${align}`), {\n [prefixCls('td-ellipsis-content')]: ellipsis,\n [prefixCls('th-sortable')]: sortOrder !== undefined,\n })}\n onClick={onClickTh}\n >\n {content}\n </div>\n ) : (\n <>{title}</>\n );\n}\n\nexport interface IProps<T> {\n column: Column<T>;\n}\n"],"mappings":";;;;;;;;AASA,SAAwB,OAAyB,OAAkB;CACjE,MAAM,EAAE,WAAW;CACnB,MAAM,EAAE,OAAO,WAAW,OAAO,UAAU,WAAW,WAAW,OAC9D,UAAU;CAEb,IAAI,WACF,oBAAC,QAAD;EAAU,MAAM;EAAI,OAAO;EAAyC,CAAA;AAEtE,KAAI,cAAc,SAChB,YACE,oBAAC,MAAD;EAAa,MAAM;EAAI,OAAO;EAAyC,CAAA;UAEhE,cAAc,UACvB,YACE,oBAAC,QAAD;EAAc,MAAM;EAAI,OAAO;EAAyC,CAAA;CAI5E,MAAM,YAAY,aACf,MAAM;AACL,MACE,cAAc,UACd,CAAC,aACD,OAAO,WAAW,WAElB;AAEF,IAAE,iBAAiB;EAEnB,IAAI;AACJ,MAAI,cAAc,SAChB,gBAAe;WACN,cAAc,UACvB,gBAAe;MAEf,gBAAe;AAEjB,SAAO,WAAW,aAAa;IAEjC;EAAC;EAAW;EAAQ;EAAU,CAC/B;CAED,IAAI,UAAU;AACd,KAAI,OAAO,YAAY,UACrB;MAAI,cAAc,OAChB,WACE,qBAAC,QAAD;GAAM,WAAW,UAAU,gBAAgB;aAA3C,CACE,oBAAC,QAAD;IAAM,WAAW,UAAU,aAAa;cAAG;IAAa,CAAA,EACxD,oBAAC,QAAD;IAAM,WAAW,UAAU,WAAW;cAAG;IAAgB,CAAA,CACpD;;;AAKb,QAAO,OAAO,UAAU,WACtB,oBAAC,OAAD;EAEE,WAAW,GAAG,UAAU,aAAa,EAAE,UAAU,SAAS,QAAQ,EAAE;IACjE,UAAU,sBAAsB,GAAG;IACnC,UAAU,cAAc,GAAG,cAAc;GAC3C,CAAC;EACF,SAAS;YAER;EACG,EARC,UAQD,GAEN,oBAAA,UAAA,EAAA,UAAG,OAAS,CAAA"}
1
+ {"version":3,"file":"Header.js","names":[],"sources":["../../../src/Table/components/Header.tsx"],"sourcesContent":["import { Column } from '@tanstack/react-table';\nimport { cn } from '../../lib/utils';\nimport React, { MouseEventHandler, useCallback } from 'react';\nimport SortAscIcon from '../../Icon/components/SortAscendingOrderColor';\nimport SortIcon from '../../Icon/components/SortColor';\nimport SortDescIcon from '../../Icon/components/SortDescendingOrderColor';\nimport { prefixCls } from '../helper';\nimport { ITableColumn, ITableProps } from '../types';\n\nexport default function Header<T extends object>(props: IProps<T>) {\n const { column } = props;\n const { title, dataIndex, align, ellipsis, sortOrder, onSort } = column\n .columnDef.meta as ITableColumn & { onSort: ITableProps<T>['onSort'] };\n\n let sortIcon = <SortIcon size={20} color={'var(--action-neutral-normal)'} />;\n if (sortOrder === 'ascend') {\n sortIcon = <SortAscIcon size={20} color={'var(--action-primary-normal)'} />;\n } else if (sortOrder === 'descend') {\n sortIcon = (\n <SortDescIcon size={20} color={'var(--action-primary-normal)'} />\n );\n }\n\n const onClickTh = useCallback<MouseEventHandler>(\n (e) => {\n if (\n sortOrder === undefined ||\n !dataIndex ||\n typeof onSort !== 'function'\n ) {\n return;\n }\n e.stopPropagation();\n\n let newSortOrder: typeof sortOrder;\n if (sortOrder === 'ascend') {\n newSortOrder = 'descend';\n } else if (sortOrder === 'descend') {\n newSortOrder = null;\n } else {\n newSortOrder = 'ascend';\n }\n onSort(dataIndex, newSortOrder);\n },\n [dataIndex, onSort, sortOrder],\n );\n\n let content = title;\n if (typeof content === 'string') {\n if (sortOrder !== undefined) {\n content = (\n <span className={prefixCls('sort-th-inner')}>\n <span className={prefixCls('sort-title')}>{title}</span>\n <span className={prefixCls('sort-btn')}>{sortIcon}</span>\n </span>\n );\n }\n }\n\n return typeof title === 'string' ? (\n <div\n key={dataIndex}\n className={cn(prefixCls('th-default'), prefixCls(`align-${align}`), {\n [prefixCls('td-ellipsis-content')]: ellipsis,\n [prefixCls('th-sortable')]: sortOrder !== undefined,\n })}\n onClick={onClickTh}\n >\n {content}\n </div>\n ) : (\n <>{title}</>\n );\n}\n\nexport interface IProps<T> {\n column: Column<T>;\n}\n"],"mappings":";;;;;;;;AASA,SAAwB,OAAyB,OAAkB;CACjE,MAAM,EAAE,WAAW;CACnB,MAAM,EAAE,OAAO,WAAW,OAAO,UAAU,WAAW,WAAW,OAC9D,UAAU;CAEb,IAAI,WAAW,oBAAC,QAAD;EAAU,MAAM;EAAI,OAAO;EAAkC,CAAA;AAC5E,KAAI,cAAc,SAChB,YAAW,oBAAC,MAAD;EAAa,MAAM;EAAI,OAAO;EAAkC,CAAA;UAClE,cAAc,UACvB,YACE,oBAAC,QAAD;EAAc,MAAM;EAAI,OAAO;EAAkC,CAAA;CAIrE,MAAM,YAAY,aACf,MAAM;AACL,MACE,cAAc,UACd,CAAC,aACD,OAAO,WAAW,WAElB;AAEF,IAAE,iBAAiB;EAEnB,IAAI;AACJ,MAAI,cAAc,SAChB,gBAAe;WACN,cAAc,UACvB,gBAAe;MAEf,gBAAe;AAEjB,SAAO,WAAW,aAAa;IAEjC;EAAC;EAAW;EAAQ;EAAU,CAC/B;CAED,IAAI,UAAU;AACd,KAAI,OAAO,YAAY,UACrB;MAAI,cAAc,OAChB,WACE,qBAAC,QAAD;GAAM,WAAW,UAAU,gBAAgB;aAA3C,CACE,oBAAC,QAAD;IAAM,WAAW,UAAU,aAAa;cAAG;IAAa,CAAA,EACxD,oBAAC,QAAD;IAAM,WAAW,UAAU,WAAW;cAAG;IAAgB,CAAA,CACpD;;;AAKb,QAAO,OAAO,UAAU,WACtB,oBAAC,OAAD;EAEE,WAAW,GAAG,UAAU,aAAa,EAAE,UAAU,SAAS,QAAQ,EAAE;IACjE,UAAU,sBAAsB,GAAG;IACnC,UAAU,cAAc,GAAG,cAAc;GAC3C,CAAC;EACF,SAAS;YAER;EACG,EARC,UAQD,GAEN,oBAAA,UAAA,EAAA,UAAG,OAAS,CAAA"}