@aloudata/aloudata-design 3.0.20 → 3.0.22

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 (218) hide show
  1. package/README.md +145 -59
  2. package/dist/Alert/index.js +1 -1
  3. package/dist/Alert/index.js.map +1 -1
  4. package/dist/App/index.d.ts +3 -0
  5. package/dist/App/index.js +12 -10
  6. package/dist/App/index.js.map +1 -1
  7. package/dist/Avatar/component/Avatar/index.js +2 -2
  8. package/dist/Avatar/component/Avatar/index.js.map +1 -1
  9. package/dist/Avatar/component/Avatar/type.js +3 -3
  10. package/dist/Avatar/component/Avatar/type.js.map +1 -1
  11. package/dist/Badge/index.js +5 -5
  12. package/dist/Badge/index.js.map +1 -1
  13. package/dist/Breadcrumb/index.js +4 -4
  14. package/dist/Breadcrumb/index.js.map +1 -1
  15. package/dist/Button/index.js +8 -8
  16. package/dist/Button/index.js.map +1 -1
  17. package/dist/Card/index.js +1 -1
  18. package/dist/Card/index.js.map +1 -1
  19. package/dist/Checkbox/index.js +3 -3
  20. package/dist/Checkbox/index.js.map +1 -1
  21. package/dist/Collapse/index.js +1 -1
  22. package/dist/Collapse/index.js.map +1 -1
  23. package/dist/ColorPicker/ComplexColorPicker/ColorAlphaInput.js +1 -1
  24. package/dist/ColorPicker/ComplexColorPicker/ColorAlphaInput.js.map +1 -1
  25. package/dist/ColorPicker/ComplexColorPicker/ColorHsbInput.js +1 -1
  26. package/dist/ColorPicker/ComplexColorPicker/ColorHsbInput.js.map +1 -1
  27. package/dist/ColorPicker/ComplexColorPicker/ColorRgbInput.js +1 -1
  28. package/dist/ColorPicker/ComplexColorPicker/ColorRgbInput.js.map +1 -1
  29. package/dist/ColorPicker/ComplexColorPicker/index.js +2 -2
  30. package/dist/ColorPicker/ComplexColorPicker/index.js.map +1 -1
  31. package/dist/ColorPicker/index.js +11 -11
  32. package/dist/ColorPicker/index.js.map +1 -1
  33. package/dist/ColorPicker/util.d.ts +1 -1
  34. package/dist/ColorPicker/util.js.map +1 -1
  35. package/dist/DataPreviewTable/components/Body/Cell.js +2 -2
  36. package/dist/DataPreviewTable/components/Body/Cell.js.map +1 -1
  37. package/dist/DataPreviewTable/components/Body/index.js +1 -1
  38. package/dist/DataPreviewTable/components/Body/index.js.map +1 -1
  39. package/dist/DataPreviewTable/components/DragBar/index.js +1 -1
  40. package/dist/DataPreviewTable/components/DragBar/index.js.map +1 -1
  41. package/dist/DataPreviewTable/components/Header/index.js +3 -3
  42. package/dist/DataPreviewTable/components/Header/index.js.map +1 -1
  43. package/dist/DataPreviewTable/index.js +1 -1
  44. package/dist/DataPreviewTable/index.js.map +1 -1
  45. package/dist/Divider/index.js +1 -1
  46. package/dist/Divider/index.js.map +1 -1
  47. package/dist/Drawer/index.js +3 -3
  48. package/dist/Drawer/index.js.map +1 -1
  49. package/dist/Dropdown/index.d.ts +5 -0
  50. package/dist/Dropdown/index.js +3 -1
  51. package/dist/Dropdown/index.js.map +1 -1
  52. package/dist/Empty/image/Data.js +16 -16
  53. package/dist/Empty/image/Data.js.map +1 -1
  54. package/dist/Empty/image/User.js +16 -16
  55. package/dist/Empty/image/User.js.map +1 -1
  56. package/dist/Empty/image/WorkBook.js +17 -17
  57. package/dist/Empty/image/WorkBook.js.map +1 -1
  58. package/dist/Form/index.js +2 -2
  59. package/dist/Form/index.js.map +1 -1
  60. package/dist/Icon/components/SortAscendingOrderColor.js +1 -1
  61. package/dist/Icon/components/SortAscendingOrderColor.js.map +1 -1
  62. package/dist/Icon/components/SortDescendingOrderColor.js +1 -1
  63. package/dist/Icon/components/SortDescendingOrderColor.js.map +1 -1
  64. package/dist/Icon/components/User.js +2 -2
  65. package/dist/Icon/components/User.js.map +1 -1
  66. package/dist/Icon/components/UserGroup.js +2 -2
  67. package/dist/Icon/components/UserGroup.js.map +1 -1
  68. package/dist/Input/components/Input/index.js +3 -4
  69. package/dist/Input/components/Input/index.js.map +1 -1
  70. package/dist/Input/components/TextArea/index.js +3 -3
  71. package/dist/Input/components/TextArea/index.js.map +1 -1
  72. package/dist/InputNumber/index.js +4 -4
  73. package/dist/InputNumber/index.js.map +1 -1
  74. package/dist/LogicTree/components/LogicItem/index.js +2 -2
  75. package/dist/LogicTree/components/LogicItem/index.js.map +1 -1
  76. package/dist/MemberPicker/components/SelectedMemberTags.js +1 -1
  77. package/dist/MemberPicker/components/SelectedMemberTags.js.map +1 -1
  78. package/dist/Modal/index.js +8 -8
  79. package/dist/Modal/index.js.map +1 -1
  80. package/dist/Popconfirm/index.js +1 -1
  81. package/dist/Popconfirm/index.js.map +1 -1
  82. package/dist/Popover/index.js +2 -2
  83. package/dist/Popover/index.js.map +1 -1
  84. package/dist/Progress/index.js +1 -1
  85. package/dist/Progress/index.js.map +1 -1
  86. package/dist/RenameInput/index.js +4 -4
  87. package/dist/RenameInput/index.js.map +1 -1
  88. package/dist/Result/index.js +4 -4
  89. package/dist/Result/index.js.map +1 -1
  90. package/dist/Select/BaseSelect.js +2 -1
  91. package/dist/Select/BaseSelect.js.map +1 -1
  92. package/dist/Select/components/Suffix.js +3 -3
  93. package/dist/Select/components/Suffix.js.map +1 -1
  94. package/dist/Slider/index.js +4 -4
  95. package/dist/Slider/index.js.map +1 -1
  96. package/dist/Spin/CustomIcon/index.js +2 -2
  97. package/dist/Spin/CustomIcon/index.js.map +1 -1
  98. package/dist/StatusLight/index.js +15 -15
  99. package/dist/StatusLight/index.js.map +1 -1
  100. package/dist/Steps/index.js +6 -6
  101. package/dist/Steps/index.js.map +1 -1
  102. package/dist/Switch/index.js +3 -3
  103. package/dist/Switch/index.js.map +1 -1
  104. package/dist/Table/components/Header.js +3 -3
  105. package/dist/Table/components/Header.js.map +1 -1
  106. package/dist/Tabs/index.js +9 -9
  107. package/dist/Tabs/index.js.map +1 -1
  108. package/dist/Tag/index.js +11 -11
  109. package/dist/Tag/index.js.map +1 -1
  110. package/dist/TextLink/index.js +2 -2
  111. package/dist/TextLink/index.js.map +1 -1
  112. package/dist/Tooltip/index.js +3 -3
  113. package/dist/Tooltip/index.js.map +1 -1
  114. package/dist/Tour/index.js +1 -1
  115. package/dist/Tour/index.js.map +1 -1
  116. package/dist/Tree/Tree2.js +2 -2
  117. package/dist/Tree/Tree2.js.map +1 -1
  118. package/dist/Typography/index.js +1 -1
  119. package/dist/Typography/index.js.map +1 -1
  120. package/dist/User/index.js +1 -1
  121. package/dist/User/index.js.map +1 -1
  122. package/dist/Watermark/index.js +2 -1
  123. package/dist/Watermark/index.js.map +1 -1
  124. package/dist/aloudata-design.css +1 -1
  125. package/dist/index.d.ts +2 -2
  126. package/dist/index.js +11 -5
  127. package/dist/message/index.js +1 -1
  128. package/dist/message/index.js.map +1 -1
  129. package/dist/notification/index.js +5 -5
  130. package/dist/notification/index.js.map +1 -1
  131. package/dist/theme/contract/baselineResolvedTokenValueManifest.d.ts +22 -0
  132. package/dist/theme/contract/darkResolvedTokenValueManifest.d.ts +5 -0
  133. package/dist/theme/contract/darkResolvedTokenValueManifest.js +2 -0
  134. package/dist/theme/contract/resolvedTokenValueManifest.d.ts +3 -0
  135. package/dist/theme/contract/resolvedTokenValueManifest.js +2 -0
  136. package/dist/theme/contract/shadowGeneratorSpecification.d.ts +37 -0
  137. package/dist/theme/contract/shadowGeneratorSpecification.js +2 -0
  138. package/dist/theme/contract/tokenCssBridge.d.ts +60 -0
  139. package/dist/theme/contract/tokenCssBridge.js +2 -0
  140. package/dist/theme/contract/tokenOutputContract.d.ts +35 -0
  141. package/dist/theme/contract/tokenOutputContract.js +198 -0
  142. package/dist/theme/contract/tokenOutputContract.js.map +1 -0
  143. package/dist/theme/generator/acceptedColorValues.d.ts +97 -0
  144. package/dist/theme/generator/acceptedColorValues.js +2 -0
  145. package/dist/theme/generator/baselineTokenValueDelivery.d.ts +21 -0
  146. package/dist/theme/generator/baselineTokenValueDelivery.js +2 -0
  147. package/dist/theme/generator/cssArtifactEmitter.d.ts +62 -0
  148. package/dist/theme/generator/cssArtifactEmitter.js +2 -0
  149. package/dist/theme/generator/generator.d.ts +41 -0
  150. package/dist/theme/generator/generator.js +2 -0
  151. package/dist/theme/generator/generatorDiff.d.ts +53 -0
  152. package/dist/theme/generator/generatorDiff.js +2 -0
  153. package/dist/theme/generator/generatorEmitter.d.ts +73 -0
  154. package/dist/theme/generator/generatorEmitter.js +2 -0
  155. package/dist/theme/generator/generatorMappingStrategy.d.ts +43 -0
  156. package/dist/theme/generator/generatorMappingStrategy.js +2 -0
  157. package/dist/theme/generator/generatorOutputSchema.d.ts +80 -0
  158. package/dist/theme/generator/generatorOutputSchema.js +2 -0
  159. package/dist/theme/generator/minimalAcceptedColorValues.d.ts +27 -0
  160. package/dist/theme/generator/minimalAcceptedColorValues.js +2 -0
  161. package/dist/theme/generator/valueResolver.d.ts +64 -0
  162. package/dist/theme/generator/valueResolver.js +2 -0
  163. package/dist/theme/governance/migrationMappingRegistry.d.ts +22 -0
  164. package/dist/theme/governance/migrationMappingRegistry.js +459 -0
  165. package/dist/theme/governance/migrationMappingRegistry.js.map +1 -0
  166. package/dist/theme/governance/reviewGate.d.ts +33 -0
  167. package/dist/theme/governance/reviewGate.js +116 -0
  168. package/dist/theme/governance/reviewGate.js.map +1 -0
  169. package/dist/theme/governance/validateMigrationMapping.d.ts +50 -0
  170. package/dist/theme/governance/validateMigrationMapping.js +157 -0
  171. package/dist/theme/governance/validateMigrationMapping.js.map +1 -0
  172. package/dist/theme/index.d.ts +16 -5
  173. package/dist/theme/index.js +10 -4
  174. package/dist/theme/runtime/colorValueMode/dark.d.ts +1 -0
  175. package/dist/theme/runtime/colorValueMode/dark.js +2 -0
  176. package/dist/theme/runtime/colorValueMode/generated/darkBaselineDeclarations.d.ts +3 -0
  177. package/dist/theme/runtime/colorValueMode/generated/darkBaselineDeclarations.js +125 -0
  178. package/dist/theme/runtime/colorValueMode/generated/darkBaselineDeclarations.js.map +1 -0
  179. package/dist/theme/runtime/colorValueMode/generated/v3BaselineDeclarations.d.ts +3 -0
  180. package/dist/theme/runtime/colorValueMode/generated/v3BaselineDeclarations.js +125 -0
  181. package/dist/theme/runtime/colorValueMode/generated/v3BaselineDeclarations.js.map +1 -0
  182. package/dist/theme/runtime/colorValueMode/index.d.ts +6 -0
  183. package/dist/theme/runtime/colorValueMode/index.js +55 -0
  184. package/dist/theme/runtime/colorValueMode/index.js.map +1 -0
  185. package/dist/theme/runtime/colorValueMode/registry.d.ts +38 -0
  186. package/dist/theme/runtime/colorValueMode/registry.js +46 -0
  187. package/dist/theme/runtime/colorValueMode/registry.js.map +1 -0
  188. package/dist/theme/runtime/colorValueMode/v3.d.ts +1 -0
  189. package/dist/theme/runtime/colorValueMode/v3.js +2 -0
  190. package/dist/theme/runtime/colorValueMode.d.ts +2 -0
  191. package/dist/theme/{createTheme.js → runtime/createTheme.js} +1 -1
  192. package/dist/theme/runtime/createTheme.js.map +1 -0
  193. package/dist/theme/{defaultTheme.js → runtime/defaultTheme.js} +1 -1
  194. package/dist/theme/runtime/defaultTheme.js.map +1 -0
  195. package/dist/theme/{initAldTheme.js → runtime/initAldTheme.js} +6 -1
  196. package/dist/theme/runtime/initAldTheme.js.map +1 -0
  197. package/dist/theme/runtime/integrationController.d.ts +26 -0
  198. package/dist/theme/runtime/integrationController.js +2 -0
  199. package/dist/theme/runtime/runtimeAdapter.d.ts +31 -0
  200. package/dist/theme/runtime/runtimeAdapter.js +2 -0
  201. package/dist/theme/{themeToCssVars.js → runtime/themeToCssVars.js} +1 -1
  202. package/dist/theme/runtime/themeToCssVars.js.map +1 -0
  203. package/dist/theme/{tokenMap.js → runtime/tokenMap.js} +1 -1
  204. package/dist/theme/runtime/tokenMap.js.map +1 -0
  205. package/dist/theme/runtime/types.js +2 -0
  206. package/package.json +20 -3
  207. package/dist/theme/createTheme.js.map +0 -1
  208. package/dist/theme/defaultTheme.js.map +0 -1
  209. package/dist/theme/initAldTheme.js.map +0 -1
  210. package/dist/theme/themeToCssVars.js.map +0 -1
  211. package/dist/theme/tokenMap.js.map +0 -1
  212. /package/dist/theme/{types.js → contract/baselineResolvedTokenValueManifest.js} +0 -0
  213. /package/dist/theme/{createTheme.d.ts → runtime/createTheme.d.ts} +0 -0
  214. /package/dist/theme/{defaultTheme.d.ts → runtime/defaultTheme.d.ts} +0 -0
  215. /package/dist/theme/{initAldTheme.d.ts → runtime/initAldTheme.d.ts} +0 -0
  216. /package/dist/theme/{themeToCssVars.d.ts → runtime/themeToCssVars.d.ts} +0 -0
  217. /package/dist/theme/{tokenMap.d.ts → runtime/tokenMap.d.ts} +0 -0
  218. /package/dist/theme/{types.d.ts → runtime/types.d.ts} +0 -0
@@ -14,22 +14,22 @@ var IconMap = {
14
14
  success: /* @__PURE__ */ jsx(Memo$2, {
15
15
  size: 80,
16
16
  fill: "var(--content-inverted-primary)",
17
- color: "var(--non-semantic-background-green-strong)"
17
+ color: "var(--background-positive-strong)"
18
18
  }),
19
19
  error: /* @__PURE__ */ jsx(Memo$1, {
20
20
  size: 80,
21
21
  fill: "var(--content-inverted-primary)",
22
- color: "var(--non-semantic-background-red-strong)"
22
+ color: "var(--background-negative-strong)"
23
23
  }),
24
24
  info: /* @__PURE__ */ jsx(Memo$3, {
25
25
  size: 80,
26
26
  fill: "var(--content-inverted-primary)",
27
- color: "var(--non-semantic-background-blue-strong)"
27
+ color: "var(--background-informative-strong)"
28
28
  }),
29
29
  warning: /* @__PURE__ */ jsx(Memo, {
30
30
  size: 80,
31
31
  fill: "var(--content-inverted-primary)",
32
- color: "var(--non-semantic-background-orange-strong)"
32
+ color: "var(--background-warning-strong)"
33
33
  })
34
34
  };
35
35
  var ExceptionMap = {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/Result/index.tsx"],"sourcesContent":["import './result.css';\nimport { cn } from '../lib/utils';\nimport React from 'react';\nimport {\n AlertTriangleDuotone,\n CancelCircleDuotone,\n CheckCircleDuotone,\n InfoCircleLine,\n} from '../Icon';\nimport noFound from './noFound';\nimport serverError from './serverError';\nimport unauthorized from './unauthorized';\nexport const IconMap = {\n success: (\n <CheckCircleDuotone\n size={80}\n fill={'var(--content-inverted-primary)'}\n color={'var(--non-semantic-background-green-strong)'}\n />\n ),\n error: (\n <CancelCircleDuotone\n size={80}\n fill={'var(--content-inverted-primary)'}\n color={'var(--non-semantic-background-red-strong)'}\n />\n ),\n info: (\n <InfoCircleLine\n size={80}\n fill={'var(--content-inverted-primary)'}\n color={'var(--non-semantic-background-blue-strong)'}\n />\n ),\n warning: (\n <AlertTriangleDuotone\n size={80}\n fill={'var(--content-inverted-primary)'}\n color={'var(--non-semantic-background-orange-strong)'}\n />\n ),\n};\n\nexport const ExceptionMap = {\n noFound: noFound,\n serverError: serverError,\n unauthorized: unauthorized,\n};\nexport type ExceptionStatusType = 'unauthorized' | 'noFound' | 'serverError';\nexport type ResultStatusType = ExceptionStatusType | keyof typeof IconMap;\nexport type ResultDirectionType = 'horizontal' | 'vertical';\nexport interface ResultProps {\n icon?: React.ReactNode;\n status?: ResultStatusType;\n title?: React.ReactNode;\n subTitle?: React.ReactNode;\n extra?: React.ReactNode;\n className?: string;\n style?: React.CSSProperties;\n children?: React.ReactNode;\n direction?: ResultDirectionType;\n}\nexport interface ResultType extends React.FC<ResultProps> {\n PRESENTED_IMAGE_404: React.FC<{ direction?: ResultDirectionType }>;\n PRESENTED_IMAGE_403: React.FC<{ direction?: ResultDirectionType }>;\n PRESENTED_IMAGE_500: React.FC<{ direction?: ResultDirectionType }>;\n}\n// ExceptionImageMap keys\nconst ExceptionStatus = Object.keys(ExceptionMap);\ninterface IconProps {\n icon: React.ReactNode;\n status: ResultStatusType;\n direction?: ResultDirectionType;\n}\nconst Icon: React.FC<IconProps> = ({\n icon,\n status,\n direction = 'vertical',\n}) => {\n const className = cn(`ald-result-icon`);\n\n if (ExceptionStatus.includes(`${status}`)) {\n // 404 403 500\n const SVGComponent = ExceptionMap[status as ExceptionStatusType];\n return (\n <div\n className={cn(className, 'ald-result-image', {\n [`ald-result-image-${direction}`]: direction,\n })}\n >\n <SVGComponent direction={direction} />\n </div>\n );\n }\n\n const iconNode =\n IconMap[status as Exclude<ResultStatusType, ExceptionStatusType>];\n\n if (icon === null || icon === false) {\n return null;\n }\n\n return <div className={className}>{icon || iconNode}</div>;\n};\n\nconst Result: ResultType = ({\n className,\n subTitle,\n title,\n style,\n children,\n status = 'info',\n direction = 'vertical',\n icon,\n extra,\n}) => {\n if (direction === 'horizontal') {\n return (\n <div className={cn('ald-result-horizontal', className)} style={style}>\n <div className={`ald-result-left`}>\n {title && <div className={`ald-result-title`}>{title}</div>}\n {subTitle && <div className={`ald-result-subtitle`}>{subTitle}</div>}\n {extra && <div className={`ald-result-extra`}>{extra}</div>}\n {children && <div className={`ald-result-content`}>{children}</div>}\n </div>\n <div className={`ald-result-right`}>\n <Icon status={status} icon={icon} direction={direction} />\n </div>\n </div>\n );\n }\n return (\n <div className=\"ald-result-vertical-wrap\">\n <div className={cn('ald-result-vertical', className)} style={style}>\n <Icon status={status} icon={icon} />\n {title && <div className={`ald-result-title`}>{title}</div>}\n {subTitle && <div className={`ald-result-subtitle`}>{subTitle}</div>}\n {extra && <div className={`ald-result-extra`}>{extra}</div>}\n {children && <div className={`ald-result-content`}>{children}</div>}\n </div>\n </div>\n );\n};\n\nResult.PRESENTED_IMAGE_403 = ExceptionMap['unauthorized'];\nResult.PRESENTED_IMAGE_404 = ExceptionMap['noFound'];\nResult.PRESENTED_IMAGE_500 = ExceptionMap['serverError'];\n\nif (process.env.NODE_ENV !== 'production') {\n Result.displayName = 'Result';\n}\n\nexport default Result;\n"],"mappings":";;;;;;;;;;;;AAYA,IAAa,UAAU;CACrB,SACE,oBAAC,QAAD;EACE,MAAM;EACN,MAAM;EACN,OAAO;EACP,CAAA;CAEJ,OACE,oBAAC,QAAD;EACE,MAAM;EACN,MAAM;EACN,OAAO;EACP,CAAA;CAEJ,MACE,oBAAC,QAAD;EACE,MAAM;EACN,MAAM;EACN,OAAO;EACP,CAAA;CAEJ,SACE,oBAAC,MAAD;EACE,MAAM;EACN,MAAM;EACN,OAAO;EACP,CAAA;CAEL;AAED,IAAa,eAAe;CACjB,SAAA;CACI,aAAA;CACC,cAAA;CACf;AAqBD,IAAM,kBAAkB,OAAO,KAAK,aAAa;AAMjD,IAAM,QAA6B,EACjC,MACA,QACA,YAAY,iBACR;CACJ,MAAM,YAAY,GAAG,kBAAkB;AAEvC,KAAI,gBAAgB,SAAS,GAAG,SAAS,EAAE;EAEzC,MAAM,eAAe,aAAa;AAClC,SACE,oBAAC,OAAD;GACE,WAAW,GAAG,WAAW,oBAAoB,GAC1C,oBAAoB,cAAc,WACpC,CAAC;aAEF,oBAAC,cAAD,EAAyB,WAAa,CAAA;GAClC,CAAA;;CAIV,MAAM,WACJ,QAAQ;AAEV,KAAI,SAAS,QAAQ,SAAS,MAC5B,QAAO;AAGT,QAAO,oBAAC,OAAD;EAAgB;YAAY,QAAQ;EAAe,CAAA;;AAG5D,IAAM,UAAsB,EAC1B,WACA,UACA,OACA,OACA,UACA,SAAS,QACT,YAAY,YACZ,MACA,YACI;AACJ,KAAI,cAAc,aAChB,QACE,qBAAC,OAAD;EAAK,WAAW,GAAG,yBAAyB,UAAU;EAAS;YAA/D,CACE,qBAAC,OAAD;GAAK,WAAW;aAAhB;IACG,SAAS,oBAAC,OAAD;KAAK,WAAW;eAAqB;KAAY,CAAA;IAC1D,YAAY,oBAAC,OAAD;KAAK,WAAW;eAAwB;KAAe,CAAA;IACnE,SAAS,oBAAC,OAAD;KAAK,WAAW;eAAqB;KAAY,CAAA;IAC1D,YAAY,oBAAC,OAAD;KAAK,WAAW;KAAuB;KAAe,CAAA;IAC/D;MACN,oBAAC,OAAD;GAAK,WAAW;aACd,oBAAC,MAAD;IAAc;IAAc;IAAiB;IAAa,CAAA;GACtD,CAAA,CACF;;AAGV,QACE,oBAAC,OAAD;EAAK,WAAU;YACb,qBAAC,OAAD;GAAK,WAAW,GAAG,uBAAuB,UAAU;GAAS;aAA7D;IACE,oBAAC,MAAD;KAAc;KAAc;KAAQ,CAAA;IACnC,SAAS,oBAAC,OAAD;KAAK,WAAW;eAAqB;KAAY,CAAA;IAC1D,YAAY,oBAAC,OAAD;KAAK,WAAW;eAAwB;KAAe,CAAA;IACnE,SAAS,oBAAC,OAAD;KAAK,WAAW;eAAqB;KAAY,CAAA;IAC1D,YAAY,oBAAC,OAAD;KAAK,WAAW;KAAuB;KAAe,CAAA;IAC/D;;EACF,CAAA;;AAIV,OAAO,sBAAsB,aAAa;AAC1C,OAAO,sBAAsB,aAAa;AAC1C,OAAO,sBAAsB,aAAa;AAE1C,IAAA,QAAA,IAAA,aAA6B,aAC3B,QAAO,cAAc"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/Result/index.tsx"],"sourcesContent":["import './result.css';\nimport { cn } from '../lib/utils';\nimport React from 'react';\nimport {\n AlertTriangleDuotone,\n CancelCircleDuotone,\n CheckCircleDuotone,\n InfoCircleLine,\n} from '../Icon';\nimport noFound from './noFound';\nimport serverError from './serverError';\nimport unauthorized from './unauthorized';\nexport const IconMap = {\n success: (\n <CheckCircleDuotone\n size={80}\n fill={'var(--content-inverted-primary)'}\n color={'var(--background-positive-strong)'}\n />\n ),\n error: (\n <CancelCircleDuotone\n size={80}\n fill={'var(--content-inverted-primary)'}\n color={'var(--background-negative-strong)'}\n />\n ),\n info: (\n <InfoCircleLine\n size={80}\n fill={'var(--content-inverted-primary)'}\n color={'var(--background-informative-strong)'}\n />\n ),\n warning: (\n <AlertTriangleDuotone\n size={80}\n fill={'var(--content-inverted-primary)'}\n color={'var(--background-warning-strong)'}\n />\n ),\n};\n\nexport const ExceptionMap = {\n noFound: noFound,\n serverError: serverError,\n unauthorized: unauthorized,\n};\nexport type ExceptionStatusType = 'unauthorized' | 'noFound' | 'serverError';\nexport type ResultStatusType = ExceptionStatusType | keyof typeof IconMap;\nexport type ResultDirectionType = 'horizontal' | 'vertical';\nexport interface ResultProps {\n icon?: React.ReactNode;\n status?: ResultStatusType;\n title?: React.ReactNode;\n subTitle?: React.ReactNode;\n extra?: React.ReactNode;\n className?: string;\n style?: React.CSSProperties;\n children?: React.ReactNode;\n direction?: ResultDirectionType;\n}\nexport interface ResultType extends React.FC<ResultProps> {\n PRESENTED_IMAGE_404: React.FC<{ direction?: ResultDirectionType }>;\n PRESENTED_IMAGE_403: React.FC<{ direction?: ResultDirectionType }>;\n PRESENTED_IMAGE_500: React.FC<{ direction?: ResultDirectionType }>;\n}\n// ExceptionImageMap keys\nconst ExceptionStatus = Object.keys(ExceptionMap);\ninterface IconProps {\n icon: React.ReactNode;\n status: ResultStatusType;\n direction?: ResultDirectionType;\n}\nconst Icon: React.FC<IconProps> = ({\n icon,\n status,\n direction = 'vertical',\n}) => {\n const className = cn(`ald-result-icon`);\n\n if (ExceptionStatus.includes(`${status}`)) {\n // 404 403 500\n const SVGComponent = ExceptionMap[status as ExceptionStatusType];\n return (\n <div\n className={cn(className, 'ald-result-image', {\n [`ald-result-image-${direction}`]: direction,\n })}\n >\n <SVGComponent direction={direction} />\n </div>\n );\n }\n\n const iconNode =\n IconMap[status as Exclude<ResultStatusType, ExceptionStatusType>];\n\n if (icon === null || icon === false) {\n return null;\n }\n\n return <div className={className}>{icon || iconNode}</div>;\n};\n\nconst Result: ResultType = ({\n className,\n subTitle,\n title,\n style,\n children,\n status = 'info',\n direction = 'vertical',\n icon,\n extra,\n}) => {\n if (direction === 'horizontal') {\n return (\n <div className={cn('ald-result-horizontal', className)} style={style}>\n <div className={`ald-result-left`}>\n {title && <div className={`ald-result-title`}>{title}</div>}\n {subTitle && <div className={`ald-result-subtitle`}>{subTitle}</div>}\n {extra && <div className={`ald-result-extra`}>{extra}</div>}\n {children && <div className={`ald-result-content`}>{children}</div>}\n </div>\n <div className={`ald-result-right`}>\n <Icon status={status} icon={icon} direction={direction} />\n </div>\n </div>\n );\n }\n return (\n <div className=\"ald-result-vertical-wrap\">\n <div className={cn('ald-result-vertical', className)} style={style}>\n <Icon status={status} icon={icon} />\n {title && <div className={`ald-result-title`}>{title}</div>}\n {subTitle && <div className={`ald-result-subtitle`}>{subTitle}</div>}\n {extra && <div className={`ald-result-extra`}>{extra}</div>}\n {children && <div className={`ald-result-content`}>{children}</div>}\n </div>\n </div>\n );\n};\n\nResult.PRESENTED_IMAGE_403 = ExceptionMap['unauthorized'];\nResult.PRESENTED_IMAGE_404 = ExceptionMap['noFound'];\nResult.PRESENTED_IMAGE_500 = ExceptionMap['serverError'];\n\nif (process.env.NODE_ENV !== 'production') {\n Result.displayName = 'Result';\n}\n\nexport default Result;\n"],"mappings":";;;;;;;;;;;;AAYA,IAAa,UAAU;CACrB,SACE,oBAAC,QAAD;EACE,MAAM;EACN,MAAM;EACN,OAAO;EACP,CAAA;CAEJ,OACE,oBAAC,QAAD;EACE,MAAM;EACN,MAAM;EACN,OAAO;EACP,CAAA;CAEJ,MACE,oBAAC,QAAD;EACE,MAAM;EACN,MAAM;EACN,OAAO;EACP,CAAA;CAEJ,SACE,oBAAC,MAAD;EACE,MAAM;EACN,MAAM;EACN,OAAO;EACP,CAAA;CAEL;AAED,IAAa,eAAe;CACjB,SAAA;CACI,aAAA;CACC,cAAA;CACf;AAqBD,IAAM,kBAAkB,OAAO,KAAK,aAAa;AAMjD,IAAM,QAA6B,EACjC,MACA,QACA,YAAY,iBACR;CACJ,MAAM,YAAY,GAAG,kBAAkB;AAEvC,KAAI,gBAAgB,SAAS,GAAG,SAAS,EAAE;EAEzC,MAAM,eAAe,aAAa;AAClC,SACE,oBAAC,OAAD;GACE,WAAW,GAAG,WAAW,oBAAoB,GAC1C,oBAAoB,cAAc,WACpC,CAAC;aAEF,oBAAC,cAAD,EAAyB,WAAa,CAAA;GAClC,CAAA;;CAIV,MAAM,WACJ,QAAQ;AAEV,KAAI,SAAS,QAAQ,SAAS,MAC5B,QAAO;AAGT,QAAO,oBAAC,OAAD;EAAgB;YAAY,QAAQ;EAAe,CAAA;;AAG5D,IAAM,UAAsB,EAC1B,WACA,UACA,OACA,OACA,UACA,SAAS,QACT,YAAY,YACZ,MACA,YACI;AACJ,KAAI,cAAc,aAChB,QACE,qBAAC,OAAD;EAAK,WAAW,GAAG,yBAAyB,UAAU;EAAS;YAA/D,CACE,qBAAC,OAAD;GAAK,WAAW;aAAhB;IACG,SAAS,oBAAC,OAAD;KAAK,WAAW;eAAqB;KAAY,CAAA;IAC1D,YAAY,oBAAC,OAAD;KAAK,WAAW;eAAwB;KAAe,CAAA;IACnE,SAAS,oBAAC,OAAD;KAAK,WAAW;eAAqB;KAAY,CAAA;IAC1D,YAAY,oBAAC,OAAD;KAAK,WAAW;KAAuB;KAAe,CAAA;IAC/D;MACN,oBAAC,OAAD;GAAK,WAAW;aACd,oBAAC,MAAD;IAAc;IAAc;IAAiB;IAAa,CAAA;GACtD,CAAA,CACF;;AAGV,QACE,oBAAC,OAAD;EAAK,WAAU;YACb,qBAAC,OAAD;GAAK,WAAW,GAAG,uBAAuB,UAAU;GAAS;aAA7D;IACE,oBAAC,MAAD;KAAc;KAAc;KAAQ,CAAA;IACnC,SAAS,oBAAC,OAAD;KAAK,WAAW;eAAqB;KAAY,CAAA;IAC1D,YAAY,oBAAC,OAAD;KAAK,WAAW;eAAwB;KAAe,CAAA;IACnE,SAAS,oBAAC,OAAD;KAAK,WAAW;eAAqB;KAAY,CAAA;IAC1D,YAAY,oBAAC,OAAD;KAAK,WAAW;KAAuB;KAAe,CAAA;IAC/D;;EACF,CAAA;;AAIV,OAAO,sBAAsB,aAAa;AAC1C,OAAO,sBAAsB,aAAa;AAC1C,OAAO,sBAAsB,aAAa;AAE1C,IAAA,QAAA,IAAA,aAA6B,aAC3B,QAAO,cAAc"}
@@ -1,6 +1,7 @@
1
1
  import { cn } from "../lib/utils.js";
2
2
  import SizeContext from "../ConfigProvider/sizeContext.js";
3
3
  import { useCompactItemContext } from "../Space/CompactContext.js";
4
+ import { toString } from "./utils/commonUtil.js";
4
5
  /* empty css */
5
6
  import prefixCls from "../_utils/prefixCls.js";
6
7
  import RefSelectTrigger from "./SelectTrigger.js";
@@ -111,7 +112,7 @@ var BaseSelect = React$1.forwardRef((props, ref) => {
111
112
  const [showResponsiveSelectedSection, setShowResponsiveSelectedSection] = useState(false);
112
113
  const [overflowCollapsed, setOverflowCollapsed] = useState(false);
113
114
  const onSelectorRemove = (val) => {
114
- onDisplayValuesChange(displayValues.filter((i) => i !== val), {
115
+ onDisplayValuesChange(displayValues.filter((item) => toString(item.value) !== toString(val.value)), {
115
116
  type: "remove",
116
117
  values: [{
117
118
  label: val.label,
@@ -1 +1 @@
1
- {"version":3,"file":"BaseSelect.js","names":[],"sources":["../../src/Select/BaseSelect.tsx"],"sourcesContent":["import './ald-select.css';\nimport * as React from 'react';\nimport useMergedState from 'rc-util/es/hooks/useMergedState';\nimport { cn } from '../lib/utils';\nimport prefixCls from '../_utils/prefixCls';\n\n/** Align config type (locally defined to avoid rc-trigger dependency) */\nexport interface AlignType {\n points?: string[];\n offset?: (number | string)[];\n targetOffset?: (number | string)[];\n overflow?: { adjustX?: boolean; adjustY?: boolean };\n _experimental?: Record<string, any>;\n}\nimport SelectTrigger, { RefTriggerProps } from './SelectTrigger';\nimport Selector from './Selector';\nimport _ from 'lodash';\nimport { useContext, useRef, useState } from 'react';\nimport { FormItemInputContext } from '../Form/FormItemContext';\nimport getWidthStyle from './utils/getWidthStyle';\nimport Suffix from './components/Suffix';\nimport { PlacementType } from '../Dropdown';\nimport {\n BaseSelectRef,\n DisplayValueType,\n ISelectProps,\n LabelInValueType,\n SelectMenuProps,\n} from './interface';\nimport SizeContext from '../ConfigProvider/sizeContext';\nimport { ConfigContext } from '../ConfigProvider';\nimport { useCompactItemContext } from '../Space/CompactContext';\nimport { MenuInfo } from '../Menu';\n\nexport type RenderNode = React.ReactNode | ((props: any) => React.ReactNode);\n\nexport type RenderDOMFunc = (props: any) => HTMLElement;\n\nexport type Mode =\n | 'multiple'\n | {\n type: 'multiple';\n responsive?: boolean;\n maxRows?: number;\n showSelectedSection?: boolean;\n };\n\nexport type RawValueType = string | number;\n\nexport type CustomTagProps = {\n label: React.ReactNode;\n value: any;\n disabled: boolean;\n onClose: (event?: React.MouseEvent<HTMLElement, MouseEvent>) => void;\n closable: boolean;\n};\nexport interface BaseSelectPrivateProps {\n // >>> MISC\n omitDomProps?: string[];\n\n // >>> Value\n displayValues: LabelInValueType[];\n onDisplayValuesChange: (\n values: LabelInValueType[],\n info: {\n type: 'add' | 'remove' | 'clear';\n values: LabelInValueType[];\n },\n ) => void;\n\n // >>> Active\n /** Current dropdown list active item string value */\n activeValue?: string;\n /** Link search input with target element */\n activeDescendantId?: string;\n onActiveValueChange?: (value: string | null) => void;\n}\n\nexport type BaseSelectPropsWithoutPrivate = Omit<\n BaseSelectProps,\n keyof BaseSelectPrivateProps\n>;\n\nexport interface BaseSelectProps\n extends BaseSelectPrivateProps,\n ISelectProps,\n React.AriaAttributes {\n className?: string;\n style?: React.CSSProperties;\n notFoundContent?: React.ReactNode;\n onClear?: () => void;\n innerSearchValue?: string;\n setInnerSearchValue?: (value: string) => void;\n displayMenu?: SelectMenuProps;\n // >>> Open\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n onOptionSelect?: (val: RawValueType) => void;\n\n // >>> Icons\n allowClear?: boolean;\n showArrow?: boolean;\n suffixIcon?: React.ReactNode;\n\n // >>> Dropdown\n dropdownAlign?: AlignType;\n placement?: PlacementType;\n getPopupContainer?: () => HTMLElement;\n\n // >>> Focus\n onBlur?: React.FocusEventHandler<HTMLElement>;\n onFocus?: React.FocusEventHandler<HTMLElement>;\n\n // >>> Rest Events\n onKeyUp?: React.KeyboardEventHandler<HTMLDivElement>;\n onKeyDown?: React.KeyboardEventHandler<HTMLDivElement>;\n onMouseDown?: React.MouseEventHandler<HTMLDivElement>;\n onPopupScroll?: React.UIEventHandler<HTMLDivElement>;\n onInputKeyDown?: React.KeyboardEventHandler<\n HTMLInputElement | HTMLTextAreaElement\n >;\n onMouseEnter?: React.MouseEventHandler<HTMLDivElement>;\n onMouseLeave?: React.MouseEventHandler<HTMLDivElement>;\n onClick?: React.MouseEventHandler<HTMLDivElement>;\n}\n\nexport function isMultiple(mode?: Mode) {\n return !!mode;\n}\nexport function isResponsive(mode?: Mode) {\n return mode === 'multiple' || (typeof mode === 'object' && mode?.responsive);\n}\nexport function isShowSelectedSection(mode?: Mode) {\n if (!mode || mode === 'multiple') {\n return false;\n }\n\n return (\n typeof mode === 'object' && mode.showSelectedSection && mode.responsive\n );\n}\nconst BaseSelect = React.forwardRef(\n (props: BaseSelectProps, ref: React.Ref<BaseSelectRef>) => {\n const {\n id,\n className,\n // Value\n displayValues,\n onDisplayValuesChange,\n displayMenu,\n notFoundContent,\n onClear,\n width,\n mode,\n status: customStatus,\n onOptionSelect,\n onClick,\n size: customSize,\n borderLess = false,\n // Status\n disabled,\n placeholder,\n loading = false,\n\n // Open\n open,\n defaultOpen,\n onOpenChange,\n showSearch,\n innerSearchValue,\n setInnerSearchValue,\n // Icons\n allowClear,\n showArrow = true,\n prefix,\n suffixIcon,\n dropdownRender,\n overlayStyle,\n dropdownStyle,\n popupMatchSelectWidth = true,\n placement,\n popupClassName,\n allowOverlap,\n style,\n 'data-testid': dataTestid,\n 'aria-label': ariaLabel,\n ...restProps\n // Rest Props\n } = props;\n const setClassNames = prefixCls('select');\n const selectRef = useRef<HTMLDivElement>(null);\n const widthStyle = getWidthStyle(width);\n const dropdownRef = useRef<RefTriggerProps>(null);\n const [matchedPopupWidth, setMatchedPopupWidth] = useState<\n number | undefined\n >();\n const isResponsiveMode = isResponsive(mode);\n const isMultipleMode = isMultiple(mode);\n /** Used for component focused management */\n const contentSize = useContext(SizeContext);\n const { direction } = React.useContext(ConfigContext);\n // ===================== Compact Item =====================\n const { compactSize, compactItemClassnames } = useCompactItemContext(\n 'ald-select',\n direction,\n );\n const size = compactSize || customSize || contentSize || 'middle';\n const {\n status: contextStatus,\n // hasFeedback,\n // isFormItemInput,\n // feedbackIcon,\n } = useContext(FormItemInputContext);\n\n const mergedStatus =\n customStatus === null ? undefined : customStatus || contextStatus;\n\n // =========================== Imperative ===========================\n React.useImperativeHandle(ref, () => ({\n focus: () => setFocus(true),\n blur: () => setFocus(false),\n open: () => onToggleOpen(true),\n close: () => {\n console.log('ref close');\n onToggleOpen(false);\n },\n }));\n const [focus, setFocus] = useState(false);\n const [isHover, setIsHover] = useState(false);\n // ============================== Open ==============================\n const [innerOpen, setInnerOpen] = useMergedState<boolean>(false, {\n defaultValue: defaultOpen,\n value: open,\n });\n const mergedOpen = innerOpen;\n const shouldMatchPopupWidth =\n !!popupMatchSelectWidth && typeof popupMatchSelectWidth !== 'number';\n const updateMatchedPopupWidth = React.useCallback(() => {\n if (!shouldMatchPopupWidth) {\n return;\n }\n\n const nextWidth = selectRef.current?.getBoundingClientRect().width;\n if (nextWidth !== undefined) {\n setMatchedPopupWidth((currentWidth) =>\n currentWidth === nextWidth ? currentWidth : nextWidth,\n );\n }\n }, [shouldMatchPopupWidth]);\n const onToggleOpen = React.useCallback(\n (newOpen?: boolean) => {\n const nextOpen = newOpen !== undefined ? newOpen : !mergedOpen;\n if (nextOpen) {\n updateMatchedPopupWidth();\n }\n if (!nextOpen) {\n setShowResponsiveSelectedSection(false);\n setFocus(false);\n }\n if (mergedOpen !== nextOpen && !disabled) {\n setInnerOpen(nextOpen);\n onOpenChange?.(nextOpen);\n }\n },\n [\n mergedOpen,\n disabled,\n setInnerOpen,\n onOpenChange,\n updateMatchedPopupWidth,\n ],\n );\n React.useLayoutEffect(() => {\n if (!mergedOpen || !shouldMatchPopupWidth) {\n return;\n }\n\n const element = selectRef.current;\n if (!element) {\n return;\n }\n\n const updateMatchedWidth = () => {\n const nextWidth = element.getBoundingClientRect().width;\n setMatchedPopupWidth((currentWidth) =>\n currentWidth === nextWidth ? currentWidth : nextWidth,\n );\n };\n\n updateMatchedWidth();\n\n if (typeof ResizeObserver === 'undefined') {\n window.addEventListener('resize', updateMatchedWidth);\n return () => {\n window.removeEventListener('resize', updateMatchedWidth);\n };\n }\n\n let resizeAnimationFrame: number | undefined;\n const scheduleMatchedWidthUpdate = () => {\n if (resizeAnimationFrame !== undefined) {\n cancelAnimationFrame(resizeAnimationFrame);\n }\n resizeAnimationFrame = requestAnimationFrame(updateMatchedWidth);\n };\n\n const observer = new ResizeObserver(scheduleMatchedWidthUpdate);\n observer.observe(element);\n\n return () => {\n if (resizeAnimationFrame !== undefined) {\n cancelAnimationFrame(resizeAnimationFrame);\n }\n observer.disconnect();\n };\n }, [mergedOpen, shouldMatchPopupWidth]);\n const [showResponsiveSelectedSection, setShowResponsiveSelectedSection] =\n useState(false);\n // 多选 responsive 进入 -1 收纳态(仅\"首 tag + +N\")时为 true,\n // width:auto 下据此给根节点加 overflow-collapsed 钳住 min-width 链,\n // 抵抗父 flex 行因 intrinsic 低估造成的假压缩(详见 ald-select.css 对应段)\n const [overflowCollapsed, setOverflowCollapsed] = useState(false);\n\n // ============================ Selector ============================\n const onSelectorRemove = (val: DisplayValueType) => {\n const newValues = displayValues.filter((i) => i !== val);\n\n onDisplayValuesChange(newValues, {\n type: 'remove',\n values: [\n {\n label: val.label,\n value: val.value as RawValueType,\n },\n ],\n });\n };\n\n const mergedClassName = cn(\n setClassNames('beta-ald-select', size, {\n active: mergedOpen || focus,\n borderless: borderLess,\n disabled: disabled,\n loading: loading,\n [`${mergedStatus}`]: !!mergedStatus,\n 'multiple-responsive': isResponsiveMode,\n 'multiple-default': isMultipleMode && !isResponsiveMode,\n // 仅 width:auto 生效:固定宽度下 -1 收纳态的收缩省略是预期行为,\n // 钳 min-width 反而会把固定宽撑破\n 'overflow-collapsed':\n overflowCollapsed && width === 'auto' && !_.isEmpty(displayValues),\n }),\n className,\n compactItemClassnames,\n );\n const showMenu = React.useMemo(() => {\n if (!displayMenu) {\n return undefined;\n }\n\n return {\n ...displayMenu,\n onClick: (info: MenuInfo) => {\n displayMenu?.onClick?.(info);\n if (isMultipleMode) {\n // 多选默认选中后不收起下拉:Dropdown 在 menu.onClick 之后读\n // info.keepOpen 决定是否 onChangeOpen(false),不设则每次点击都被\n // 当成关闭信号。用 ?? 保留用户在自己的 onClick 里显式设 false 的能力\n info.keepOpen = info.keepOpen ?? true;\n } else if (displayMenu) {\n onToggleOpen(false);\n setFocus(false);\n }\n setIsHover(false);\n onOptionSelect?.(info.key);\n },\n };\n }, [displayMenu, isMultipleMode, onToggleOpen, onOptionSelect]);\n const onSelectClick = React.useCallback(\n (e: React.MouseEvent<HTMLDivElement>) => {\n if (disabled) {\n return;\n }\n onClick?.(e);\n },\n [disabled, onClick],\n );\n React.useEffect(() => {\n const element = selectRef.current;\n if (element) {\n const handleMouseOver = () => setIsHover(true);\n const handleMouseOut = () => setIsHover(false);\n\n element.addEventListener('mouseover', handleMouseOver);\n element.addEventListener('mouseout', handleMouseOut);\n\n return () => {\n element.removeEventListener('mouseover', handleMouseOver);\n element.removeEventListener('mouseout', handleMouseOut);\n };\n }\n }, []);\n const mergedPopupMatchSelectWidth =\n shouldMatchPopupWidth && matchedPopupWidth !== undefined\n ? matchedPopupWidth\n : popupMatchSelectWidth;\n return (\n <div\n className={mergedClassName}\n style={{\n ...widthStyle,\n // width:auto 且无选中值时锁 shrink:Chromium 对该子树给父 flex 行的\n // intrinsic 宽度贡献恒少约 14px,父行按低估值布局后回头压缩根节点,\n // placeholder 右侧会被裁;有选中值时必须保持可压缩,rc-overflow\n // 才能在父行变窄时把放不下的 tag 收纳成 \"+N\"\n ...(width === 'auto' && _.isEmpty(displayValues)\n ? { flexShrink: 0 }\n : {}),\n ...style,\n }}\n ref={selectRef}\n id={id}\n onClick={onSelectClick}\n data-testid={dataTestid}\n aria-label={ariaLabel}\n >\n <SelectTrigger\n {...restProps}\n open={!!mergedOpen}\n notFoundContent={notFoundContent}\n menu={showMenu}\n ref={dropdownRef}\n showSearch={showSearch}\n searchValue={innerSearchValue}\n setInnerSearchValue={setInnerSearchValue}\n popupMatchSelectWidth={mergedPopupMatchSelectWidth}\n overlayClassName={popupClassName}\n // @ts-ignore\n dropdownRender={dropdownRender}\n overlayStyle={overlayStyle || dropdownStyle}\n placement={placement}\n allowOverlap={allowOverlap}\n onOpenChange={(open) => {\n if (isResponsiveMode) {\n if (\n !mergedOpen &&\n !showResponsiveSelectedSection &&\n displayValues.length > 0 &&\n isShowSelectedSection(mode)\n ) {\n setShowResponsiveSelectedSection(true);\n } else {\n onToggleOpen(open);\n }\n } else {\n onToggleOpen(open);\n }\n }}\n >\n {/* antd 兼容:保留 ant-* class,消费方 CSS 可能依赖该选择器 */}\n <div className={cn(setClassNames('trigger'), 'ant-select-selector')}>\n {prefix && <div className={setClassNames('prefix')}>{prefix}</div>}\n {_.isEmpty(displayValues) && (\n <div\n className={cn(\n setClassNames('placeholder'),\n 'ant-select-selection-placeholder',\n )}\n >\n {placeholder}\n </div>\n )}\n {!_.isEmpty(displayValues) && (\n <Selector\n {...restProps}\n suffixIcon={suffixIcon}\n size={size}\n disabled={disabled}\n mode={mode}\n dropdownRef={dropdownRef}\n displayValues={displayValues}\n onToggleOpen={onToggleOpen}\n onRemove={onSelectorRemove}\n showResponsiveSelectedSection={showResponsiveSelectedSection}\n onOverflowCollapsedChange={setOverflowCollapsed}\n ></Selector>\n )}\n </div>\n </SelectTrigger>\n <Suffix\n showArrow={showArrow}\n allowClear={allowClear}\n disabled={disabled}\n loading={loading}\n isHover={isHover}\n onClear={() => {\n onToggleOpen(false);\n\n onDisplayValuesChange([], {\n type: 'clear',\n values: displayValues,\n });\n onClear?.();\n }}\n isActive={innerOpen}\n icon={suffixIcon}\n displayValues={displayValues}\n ></Suffix>\n </div>\n );\n },\n);\n\nexport default BaseSelect;\n"],"mappings":"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"}
1
+ {"version":3,"file":"BaseSelect.js","names":[],"sources":["../../src/Select/BaseSelect.tsx"],"sourcesContent":["import './ald-select.css';\nimport * as React from 'react';\nimport useMergedState from 'rc-util/es/hooks/useMergedState';\nimport { cn } from '../lib/utils';\nimport prefixCls from '../_utils/prefixCls';\n\n/** Align config type (locally defined to avoid rc-trigger dependency) */\nexport interface AlignType {\n points?: string[];\n offset?: (number | string)[];\n targetOffset?: (number | string)[];\n overflow?: { adjustX?: boolean; adjustY?: boolean };\n _experimental?: Record<string, any>;\n}\nimport SelectTrigger, { RefTriggerProps } from './SelectTrigger';\nimport Selector from './Selector';\nimport _ from 'lodash';\nimport { useContext, useRef, useState } from 'react';\nimport { FormItemInputContext } from '../Form/FormItemContext';\nimport getWidthStyle from './utils/getWidthStyle';\nimport Suffix from './components/Suffix';\nimport { PlacementType } from '../Dropdown';\nimport {\n BaseSelectRef,\n DisplayValueType,\n ISelectProps,\n LabelInValueType,\n SelectMenuProps,\n} from './interface';\nimport SizeContext from '../ConfigProvider/sizeContext';\nimport { ConfigContext } from '../ConfigProvider';\nimport { useCompactItemContext } from '../Space/CompactContext';\nimport { MenuInfo } from '../Menu';\nimport { toString } from './utils/commonUtil';\n\nexport type RenderNode = React.ReactNode | ((props: any) => React.ReactNode);\n\nexport type RenderDOMFunc = (props: any) => HTMLElement;\n\nexport type Mode =\n | 'multiple'\n | {\n type: 'multiple';\n responsive?: boolean;\n maxRows?: number;\n showSelectedSection?: boolean;\n };\n\nexport type RawValueType = string | number;\n\nexport type CustomTagProps = {\n label: React.ReactNode;\n value: any;\n disabled: boolean;\n onClose: (event?: React.MouseEvent<HTMLElement, MouseEvent>) => void;\n closable: boolean;\n};\nexport interface BaseSelectPrivateProps {\n // >>> MISC\n omitDomProps?: string[];\n\n // >>> Value\n displayValues: LabelInValueType[];\n onDisplayValuesChange: (\n values: LabelInValueType[],\n info: {\n type: 'add' | 'remove' | 'clear';\n values: LabelInValueType[];\n },\n ) => void;\n\n // >>> Active\n /** Current dropdown list active item string value */\n activeValue?: string;\n /** Link search input with target element */\n activeDescendantId?: string;\n onActiveValueChange?: (value: string | null) => void;\n}\n\nexport type BaseSelectPropsWithoutPrivate = Omit<\n BaseSelectProps,\n keyof BaseSelectPrivateProps\n>;\n\nexport interface BaseSelectProps\n extends BaseSelectPrivateProps,\n ISelectProps,\n React.AriaAttributes {\n className?: string;\n style?: React.CSSProperties;\n notFoundContent?: React.ReactNode;\n onClear?: () => void;\n innerSearchValue?: string;\n setInnerSearchValue?: (value: string) => void;\n displayMenu?: SelectMenuProps;\n // >>> Open\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n onOptionSelect?: (val: RawValueType) => void;\n\n // >>> Icons\n allowClear?: boolean;\n showArrow?: boolean;\n suffixIcon?: React.ReactNode;\n\n // >>> Dropdown\n dropdownAlign?: AlignType;\n placement?: PlacementType;\n getPopupContainer?: () => HTMLElement;\n\n // >>> Focus\n onBlur?: React.FocusEventHandler<HTMLElement>;\n onFocus?: React.FocusEventHandler<HTMLElement>;\n\n // >>> Rest Events\n onKeyUp?: React.KeyboardEventHandler<HTMLDivElement>;\n onKeyDown?: React.KeyboardEventHandler<HTMLDivElement>;\n onMouseDown?: React.MouseEventHandler<HTMLDivElement>;\n onPopupScroll?: React.UIEventHandler<HTMLDivElement>;\n onInputKeyDown?: React.KeyboardEventHandler<\n HTMLInputElement | HTMLTextAreaElement\n >;\n onMouseEnter?: React.MouseEventHandler<HTMLDivElement>;\n onMouseLeave?: React.MouseEventHandler<HTMLDivElement>;\n onClick?: React.MouseEventHandler<HTMLDivElement>;\n}\n\nexport function isMultiple(mode?: Mode) {\n return !!mode;\n}\nexport function isResponsive(mode?: Mode) {\n return mode === 'multiple' || (typeof mode === 'object' && mode?.responsive);\n}\nexport function isShowSelectedSection(mode?: Mode) {\n if (!mode || mode === 'multiple') {\n return false;\n }\n\n return (\n typeof mode === 'object' && mode.showSelectedSection && mode.responsive\n );\n}\nconst BaseSelect = React.forwardRef(\n (props: BaseSelectProps, ref: React.Ref<BaseSelectRef>) => {\n const {\n id,\n className,\n // Value\n displayValues,\n onDisplayValuesChange,\n displayMenu,\n notFoundContent,\n onClear,\n width,\n mode,\n status: customStatus,\n onOptionSelect,\n onClick,\n size: customSize,\n borderLess = false,\n // Status\n disabled,\n placeholder,\n loading = false,\n\n // Open\n open,\n defaultOpen,\n onOpenChange,\n showSearch,\n innerSearchValue,\n setInnerSearchValue,\n // Icons\n allowClear,\n showArrow = true,\n prefix,\n suffixIcon,\n dropdownRender,\n overlayStyle,\n dropdownStyle,\n popupMatchSelectWidth = true,\n placement,\n popupClassName,\n allowOverlap,\n style,\n 'data-testid': dataTestid,\n 'aria-label': ariaLabel,\n ...restProps\n // Rest Props\n } = props;\n const setClassNames = prefixCls('select');\n const selectRef = useRef<HTMLDivElement>(null);\n const widthStyle = getWidthStyle(width);\n const dropdownRef = useRef<RefTriggerProps>(null);\n const [matchedPopupWidth, setMatchedPopupWidth] = useState<\n number | undefined\n >();\n const isResponsiveMode = isResponsive(mode);\n const isMultipleMode = isMultiple(mode);\n /** Used for component focused management */\n const contentSize = useContext(SizeContext);\n const { direction } = React.useContext(ConfigContext);\n // ===================== Compact Item =====================\n const { compactSize, compactItemClassnames } = useCompactItemContext(\n 'ald-select',\n direction,\n );\n const size = compactSize || customSize || contentSize || 'middle';\n const {\n status: contextStatus,\n // hasFeedback,\n // isFormItemInput,\n // feedbackIcon,\n } = useContext(FormItemInputContext);\n\n const mergedStatus =\n customStatus === null ? undefined : customStatus || contextStatus;\n\n // =========================== Imperative ===========================\n React.useImperativeHandle(ref, () => ({\n focus: () => setFocus(true),\n blur: () => setFocus(false),\n open: () => onToggleOpen(true),\n close: () => {\n console.log('ref close');\n onToggleOpen(false);\n },\n }));\n const [focus, setFocus] = useState(false);\n const [isHover, setIsHover] = useState(false);\n // ============================== Open ==============================\n const [innerOpen, setInnerOpen] = useMergedState<boolean>(false, {\n defaultValue: defaultOpen,\n value: open,\n });\n const mergedOpen = innerOpen;\n const shouldMatchPopupWidth =\n !!popupMatchSelectWidth && typeof popupMatchSelectWidth !== 'number';\n const updateMatchedPopupWidth = React.useCallback(() => {\n if (!shouldMatchPopupWidth) {\n return;\n }\n\n const nextWidth = selectRef.current?.getBoundingClientRect().width;\n if (nextWidth !== undefined) {\n setMatchedPopupWidth((currentWidth) =>\n currentWidth === nextWidth ? currentWidth : nextWidth,\n );\n }\n }, [shouldMatchPopupWidth]);\n const onToggleOpen = React.useCallback(\n (newOpen?: boolean) => {\n const nextOpen = newOpen !== undefined ? newOpen : !mergedOpen;\n if (nextOpen) {\n updateMatchedPopupWidth();\n }\n if (!nextOpen) {\n setShowResponsiveSelectedSection(false);\n setFocus(false);\n }\n if (mergedOpen !== nextOpen && !disabled) {\n setInnerOpen(nextOpen);\n onOpenChange?.(nextOpen);\n }\n },\n [\n mergedOpen,\n disabled,\n setInnerOpen,\n onOpenChange,\n updateMatchedPopupWidth,\n ],\n );\n React.useLayoutEffect(() => {\n if (!mergedOpen || !shouldMatchPopupWidth) {\n return;\n }\n\n const element = selectRef.current;\n if (!element) {\n return;\n }\n\n const updateMatchedWidth = () => {\n const nextWidth = element.getBoundingClientRect().width;\n setMatchedPopupWidth((currentWidth) =>\n currentWidth === nextWidth ? currentWidth : nextWidth,\n );\n };\n\n updateMatchedWidth();\n\n if (typeof ResizeObserver === 'undefined') {\n window.addEventListener('resize', updateMatchedWidth);\n return () => {\n window.removeEventListener('resize', updateMatchedWidth);\n };\n }\n\n let resizeAnimationFrame: number | undefined;\n const scheduleMatchedWidthUpdate = () => {\n if (resizeAnimationFrame !== undefined) {\n cancelAnimationFrame(resizeAnimationFrame);\n }\n resizeAnimationFrame = requestAnimationFrame(updateMatchedWidth);\n };\n\n const observer = new ResizeObserver(scheduleMatchedWidthUpdate);\n observer.observe(element);\n\n return () => {\n if (resizeAnimationFrame !== undefined) {\n cancelAnimationFrame(resizeAnimationFrame);\n }\n observer.disconnect();\n };\n }, [mergedOpen, shouldMatchPopupWidth]);\n const [showResponsiveSelectedSection, setShowResponsiveSelectedSection] =\n useState(false);\n // 多选 responsive 进入 -1 收纳态(仅\"首 tag + +N\")时为 true,\n // width:auto 下据此给根节点加 overflow-collapsed 钳住 min-width 链,\n // 抵抗父 flex 行因 intrinsic 低估造成的假压缩(详见 ald-select.css 对应段)\n const [overflowCollapsed, setOverflowCollapsed] = useState(false);\n\n // ============================ Selector ============================\n const onSelectorRemove = (val: DisplayValueType) => {\n const newValues = displayValues.filter(\n (item) => toString(item.value) !== toString(val.value),\n );\n\n onDisplayValuesChange(newValues, {\n type: 'remove',\n values: [\n {\n label: val.label,\n value: val.value as RawValueType,\n },\n ],\n });\n };\n\n const mergedClassName = cn(\n setClassNames('beta-ald-select', size, {\n active: mergedOpen || focus,\n borderless: borderLess,\n disabled: disabled,\n loading: loading,\n [`${mergedStatus}`]: !!mergedStatus,\n 'multiple-responsive': isResponsiveMode,\n 'multiple-default': isMultipleMode && !isResponsiveMode,\n // 仅 width:auto 生效:固定宽度下 -1 收纳态的收缩省略是预期行为,\n // 钳 min-width 反而会把固定宽撑破\n 'overflow-collapsed':\n overflowCollapsed && width === 'auto' && !_.isEmpty(displayValues),\n }),\n className,\n compactItemClassnames,\n );\n const showMenu = React.useMemo(() => {\n if (!displayMenu) {\n return undefined;\n }\n\n return {\n ...displayMenu,\n onClick: (info: MenuInfo) => {\n displayMenu?.onClick?.(info);\n if (isMultipleMode) {\n // 多选默认选中后不收起下拉:Dropdown 在 menu.onClick 之后读\n // info.keepOpen 决定是否 onChangeOpen(false),不设则每次点击都被\n // 当成关闭信号。用 ?? 保留用户在自己的 onClick 里显式设 false 的能力\n info.keepOpen = info.keepOpen ?? true;\n } else if (displayMenu) {\n onToggleOpen(false);\n setFocus(false);\n }\n setIsHover(false);\n onOptionSelect?.(info.key);\n },\n };\n }, [displayMenu, isMultipleMode, onToggleOpen, onOptionSelect]);\n const onSelectClick = React.useCallback(\n (e: React.MouseEvent<HTMLDivElement>) => {\n if (disabled) {\n return;\n }\n onClick?.(e);\n },\n [disabled, onClick],\n );\n React.useEffect(() => {\n const element = selectRef.current;\n if (element) {\n const handleMouseOver = () => setIsHover(true);\n const handleMouseOut = () => setIsHover(false);\n\n element.addEventListener('mouseover', handleMouseOver);\n element.addEventListener('mouseout', handleMouseOut);\n\n return () => {\n element.removeEventListener('mouseover', handleMouseOver);\n element.removeEventListener('mouseout', handleMouseOut);\n };\n }\n }, []);\n const mergedPopupMatchSelectWidth =\n shouldMatchPopupWidth && matchedPopupWidth !== undefined\n ? matchedPopupWidth\n : popupMatchSelectWidth;\n return (\n <div\n className={mergedClassName}\n style={{\n ...widthStyle,\n // width:auto 且无选中值时锁 shrink:Chromium 对该子树给父 flex 行的\n // intrinsic 宽度贡献恒少约 14px,父行按低估值布局后回头压缩根节点,\n // placeholder 右侧会被裁;有选中值时必须保持可压缩,rc-overflow\n // 才能在父行变窄时把放不下的 tag 收纳成 \"+N\"\n ...(width === 'auto' && _.isEmpty(displayValues)\n ? { flexShrink: 0 }\n : {}),\n ...style,\n }}\n ref={selectRef}\n id={id}\n onClick={onSelectClick}\n data-testid={dataTestid}\n aria-label={ariaLabel}\n >\n <SelectTrigger\n {...restProps}\n open={!!mergedOpen}\n notFoundContent={notFoundContent}\n menu={showMenu}\n ref={dropdownRef}\n showSearch={showSearch}\n searchValue={innerSearchValue}\n setInnerSearchValue={setInnerSearchValue}\n popupMatchSelectWidth={mergedPopupMatchSelectWidth}\n overlayClassName={popupClassName}\n // @ts-ignore\n dropdownRender={dropdownRender}\n overlayStyle={overlayStyle || dropdownStyle}\n placement={placement}\n allowOverlap={allowOverlap}\n onOpenChange={(open) => {\n if (isResponsiveMode) {\n if (\n !mergedOpen &&\n !showResponsiveSelectedSection &&\n displayValues.length > 0 &&\n isShowSelectedSection(mode)\n ) {\n setShowResponsiveSelectedSection(true);\n } else {\n onToggleOpen(open);\n }\n } else {\n onToggleOpen(open);\n }\n }}\n >\n {/* antd 兼容:保留 ant-* class,消费方 CSS 可能依赖该选择器 */}\n <div className={cn(setClassNames('trigger'), 'ant-select-selector')}>\n {prefix && <div className={setClassNames('prefix')}>{prefix}</div>}\n {_.isEmpty(displayValues) && (\n <div\n className={cn(\n setClassNames('placeholder'),\n 'ant-select-selection-placeholder',\n )}\n >\n {placeholder}\n </div>\n )}\n {!_.isEmpty(displayValues) && (\n <Selector\n {...restProps}\n suffixIcon={suffixIcon}\n size={size}\n disabled={disabled}\n mode={mode}\n dropdownRef={dropdownRef}\n displayValues={displayValues}\n onToggleOpen={onToggleOpen}\n onRemove={onSelectorRemove}\n showResponsiveSelectedSection={showResponsiveSelectedSection}\n onOverflowCollapsedChange={setOverflowCollapsed}\n ></Selector>\n )}\n </div>\n </SelectTrigger>\n <Suffix\n showArrow={showArrow}\n allowClear={allowClear}\n disabled={disabled}\n loading={loading}\n isHover={isHover}\n onClear={() => {\n onToggleOpen(false);\n\n onDisplayValuesChange([], {\n type: 'clear',\n values: displayValues,\n });\n onClear?.();\n }}\n isActive={innerOpen}\n icon={suffixIcon}\n displayValues={displayValues}\n ></Suffix>\n </div>\n );\n },\n);\n\nexport default BaseSelect;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAgIA,SAAgB,WAAW,MAAa;AACtC,QAAO,CAAC,CAAC;;AAEX,SAAgB,aAAa,MAAa;AACxC,QAAO,SAAS,cAAe,OAAO,SAAS,YAAY,MAAM;;AAEnE,SAAgB,sBAAsB,MAAa;AACjD,KAAI,CAAC,QAAQ,SAAS,WACpB,QAAO;AAGT,QACE,OAAO,SAAS,YAAY,KAAK,uBAAuB,KAAK;;AAGjE,IAAM,aAAa,QAAM,YACtB,OAAwB,QAAkC;CACzD,MAAM,EACJ,IACA,WAEA,eACA,uBACA,aACA,iBACA,SACA,OACA,MACA,QAAQ,cACR,gBACA,SACA,MAAM,YACN,aAAa,OAEb,UACA,aACA,UAAU,OAGV,MACA,aACA,cACA,YACA,kBACA,qBAEA,YACA,YAAY,MACZ,QACA,YACA,gBACA,cACA,eACA,wBAAwB,MACxB,WACA,gBACA,cACA,OACA,eAAe,YACf,cAAc,WACd,GAAG,cAED;CACJ,MAAM,gBAAgB,UAAU,SAAS;CACzC,MAAM,YAAY,OAAuB,KAAK;CAC9C,MAAM,aAAa,cAAc,MAAM;CACvC,MAAM,cAAc,OAAwB,KAAK;CACjD,MAAM,CAAC,mBAAmB,wBAAwB,UAE/C;CACH,MAAM,mBAAmB,aAAa,KAAK;CAC3C,MAAM,iBAAiB,WAAW,KAAK;;CAEvC,MAAM,cAAc,WAAW,YAAY;CAC3C,MAAM,EAAE,cAAc,QAAM,WAAW,cAAc;CAErD,MAAM,EAAE,aAAa,0BAA0B,sBAC7C,cACA,UACD;CACD,MAAM,OAAO,eAAe,cAAc,eAAe;CACzD,MAAM,EACJ,QAAQ,kBAIN,WAAW,qBAAqB;CAEpC,MAAM,eACJ,iBAAiB,OAAO,SAAY,gBAAgB;AAGtD,SAAM,oBAAoB,YAAY;EACpC,aAAa,SAAS,KAAK;EAC3B,YAAY,SAAS,MAAM;EAC3B,YAAY,aAAa,KAAK;EAC9B,aAAa;AACX,WAAQ,IAAI,YAAY;AACxB,gBAAa,MAAM;;EAEtB,EAAE;CACH,MAAM,CAAC,OAAO,YAAY,SAAS,MAAM;CACzC,MAAM,CAAC,SAAS,cAAc,SAAS,MAAM;CAE7C,MAAM,CAAC,WAAW,gBAAgB,eAAwB,OAAO;EAC/D,cAAc;EACd,OAAO;EACR,CAAC;CACF,MAAM,aAAa;CACnB,MAAM,wBACJ,CAAC,CAAC,yBAAyB,OAAO,0BAA0B;CAC9D,MAAM,0BAA0B,QAAM,kBAAkB;AACtD,MAAI,CAAC,sBACH;EAGF,MAAM,YAAY,UAAU,SAAS,uBAAuB,CAAC;AAC7D,MAAI,cAAc,OAChB,uBAAsB,iBACpB,iBAAiB,YAAY,eAAe,UAC7C;IAEF,CAAC,sBAAsB,CAAC;CAC3B,MAAM,eAAe,QAAM,aACxB,YAAsB;EACrB,MAAM,WAAW,YAAY,SAAY,UAAU,CAAC;AACpD,MAAI,SACF,0BAAyB;AAE3B,MAAI,CAAC,UAAU;AACb,oCAAiC,MAAM;AACvC,YAAS,MAAM;;AAEjB,MAAI,eAAe,YAAY,CAAC,UAAU;AACxC,gBAAa,SAAS;AACtB,kBAAe,SAAS;;IAG5B;EACE;EACA;EACA;EACA;EACA;EACD,CACF;AACD,SAAM,sBAAsB;AAC1B,MAAI,CAAC,cAAc,CAAC,sBAClB;EAGF,MAAM,UAAU,UAAU;AAC1B,MAAI,CAAC,QACH;EAGF,MAAM,2BAA2B;GAC/B,MAAM,YAAY,QAAQ,uBAAuB,CAAC;AAClD,yBAAsB,iBACpB,iBAAiB,YAAY,eAAe,UAC7C;;AAGH,sBAAoB;AAEpB,MAAI,OAAO,mBAAmB,aAAa;AACzC,UAAO,iBAAiB,UAAU,mBAAmB;AACrD,gBAAa;AACX,WAAO,oBAAoB,UAAU,mBAAmB;;;EAI5D,IAAI;EACJ,MAAM,mCAAmC;AACvC,OAAI,yBAAyB,OAC3B,sBAAqB,qBAAqB;AAE5C,0BAAuB,sBAAsB,mBAAmB;;EAGlE,MAAM,WAAW,IAAI,eAAe,2BAA2B;AAC/D,WAAS,QAAQ,QAAQ;AAEzB,eAAa;AACX,OAAI,yBAAyB,OAC3B,sBAAqB,qBAAqB;AAE5C,YAAS,YAAY;;IAEtB,CAAC,YAAY,sBAAsB,CAAC;CACvC,MAAM,CAAC,+BAA+B,oCACpC,SAAS,MAAM;CAIjB,MAAM,CAAC,mBAAmB,wBAAwB,SAAS,MAAM;CAGjE,MAAM,oBAAoB,QAA0B;AAKlD,wBAJkB,cAAc,QAC7B,SAAS,SAAS,KAAK,MAAM,KAAK,SAAS,IAAI,MAAM,CACvD,EAEgC;GAC/B,MAAM;GACN,QAAQ,CACN;IACE,OAAO,IAAI;IACX,OAAO,IAAI;IACZ,CACF;GACF,CAAC;;CAGJ,MAAM,kBAAkB,GACtB,cAAc,mBAAmB,MAAM;EACrC,QAAQ,cAAc;EACtB,YAAY;EACF;EACD;GACR,GAAG,iBAAiB,CAAC,CAAC;EACvB,uBAAuB;EACvB,oBAAoB,kBAAkB,CAAC;EAGvC,sBACE,qBAAqB,UAAU,UAAU,CAAC,EAAE,QAAQ,cAAc;EACrE,CAAC,EACF,WACA,sBACD;CACD,MAAM,WAAW,QAAM,cAAc;AACnC,MAAI,CAAC,YACH;AAGF,SAAO;GACL,GAAG;GACH,UAAU,SAAmB;AAC3B,iBAAa,UAAU,KAAK;AAC5B,QAAI,eAIF,MAAK,WAAW,KAAK,YAAY;aACxB,aAAa;AACtB,kBAAa,MAAM;AACnB,cAAS,MAAM;;AAEjB,eAAW,MAAM;AACjB,qBAAiB,KAAK,IAAI;;GAE7B;IACA;EAAC;EAAa;EAAgB;EAAc;EAAe,CAAC;CAC/D,MAAM,gBAAgB,QAAM,aACzB,MAAwC;AACvC,MAAI,SACF;AAEF,YAAU,EAAE;IAEd,CAAC,UAAU,QAAQ,CACpB;AACD,SAAM,gBAAgB;EACpB,MAAM,UAAU,UAAU;AAC1B,MAAI,SAAS;GACX,MAAM,wBAAwB,WAAW,KAAK;GAC9C,MAAM,uBAAuB,WAAW,MAAM;AAE9C,WAAQ,iBAAiB,aAAa,gBAAgB;AACtD,WAAQ,iBAAiB,YAAY,eAAe;AAEpD,gBAAa;AACX,YAAQ,oBAAoB,aAAa,gBAAgB;AACzD,YAAQ,oBAAoB,YAAY,eAAe;;;IAG1D,EAAE,CAAC;CACN,MAAM,8BACJ,yBAAyB,sBAAsB,SAC3C,oBACA;AACN,QACE,qBAAC,OAAD;EACE,WAAW;EACX,OAAO;GACL,GAAG;GAKH,GAAI,UAAU,UAAU,EAAE,QAAQ,cAAc,GAC5C,EAAE,YAAY,GAAG,GACjB,EAAE;GACN,GAAG;GACJ;EACD,KAAK;EACD;EACJ,SAAS;EACT,eAAa;EACb,cAAY;YAjBd,CAmBE,oBAAC,kBAAD;GACE,GAAI;GACJ,MAAM,CAAC,CAAC;GACS;GACjB,MAAM;GACN,KAAK;GACO;GACZ,aAAa;GACQ;GACrB,uBAAuB;GACvB,kBAAkB;GAEF;GAChB,cAAc,gBAAgB;GACnB;GACG;GACd,eAAe,SAAS;AACtB,QAAI,iBACF,KACE,CAAC,cACD,CAAC,iCACD,cAAc,SAAS,KACvB,sBAAsB,KAAK,CAE3B,kCAAiC,KAAK;QAEtC,cAAa,KAAK;QAGpB,cAAa,KAAK;;aAKtB,qBAAC,OAAD;IAAK,WAAW,GAAG,cAAc,UAAU,EAAE,sBAAsB;cAAnE;KACG,UAAU,oBAAC,OAAD;MAAK,WAAW,cAAc,SAAS;gBAAG;MAAa,CAAA;KACjE,EAAE,QAAQ,cAAc,IACvB,oBAAC,OAAD;MACE,WAAW,GACT,cAAc,cAAc,EAC5B,mCACD;gBAEA;MACG,CAAA;KAEP,CAAC,EAAE,QAAQ,cAAc,IACxB,oBAAC,UAAD;MACE,GAAI;MACQ;MACN;MACI;MACJ;MACO;MACE;MACD;MACd,UAAU;MACqB;MAC/B,2BAA2B;MACjB,CAAA;KAEV;;GACQ,CAAA,EAChB,oBAAC,QAAD;GACa;GACC;GACF;GACD;GACA;GACT,eAAe;AACb,iBAAa,MAAM;AAEnB,0BAAsB,EAAE,EAAE;KACxB,MAAM;KACN,QAAQ;KACT,CAAC;AACF,eAAW;;GAEb,UAAU;GACV,MAAM;GACS;GACP,CAAA,CACN;;EAGX"}
@@ -12,7 +12,7 @@ function Suffix({ showArrow, allowClear, isActive, isHover, icon, onClear, displ
12
12
  children: /* @__PURE__ */ jsx(Memo, {
13
13
  className: "ald-loading-spin tw-animate-spin",
14
14
  size: 16,
15
- color: "#6B7280"
15
+ color: "var(--content-secondary)"
16
16
  })
17
17
  });
18
18
  if ((isActive || isHover) && !disabled && allowClear && displayValues.length > 0) return /* @__PURE__ */ jsx("div", {
@@ -24,12 +24,12 @@ function Suffix({ showArrow, allowClear, isActive, isHover, icon, onClear, displ
24
24
  },
25
25
  children: /* @__PURE__ */ jsx(Memo$2, {
26
26
  size: 16,
27
- color: "#6B7280"
27
+ color: "var(--content-secondary)"
28
28
  })
29
29
  });
30
30
  if (showArrow) {
31
31
  const dropdownIcon = icon || /* @__PURE__ */ jsx(Memo$1, {
32
- color: "#6B7280",
32
+ color: "var(--content-secondary)",
33
33
  size: 16
34
34
  });
35
35
  return /* @__PURE__ */ jsx("div", {
@@ -1 +1 @@
1
- {"version":3,"file":"Suffix.js","names":[],"sources":["../../../src/Select/components/Suffix.tsx"],"sourcesContent":["import React from 'react';\nimport prefixCls from '../../_utils/prefixCls';\nimport {\n ArrowDownRightFill,\n CloseCircleRightFill,\n LoadingLine,\n} from '../../Icon';\nimport { DisplayValueType } from '../interface';\n\nexport default function Suffix({\n showArrow,\n allowClear,\n isActive,\n isHover,\n icon,\n onClear,\n displayValues,\n disabled,\n loading,\n}: {\n showArrow?: boolean;\n allowClear?: boolean;\n isActive?: boolean;\n isHover?: boolean;\n disabled?: boolean;\n loading?: boolean;\n icon: React.ReactNode;\n onClear?: () => void;\n displayValues: DisplayValueType[];\n}) {\n const classNames = prefixCls('select');\n\n if (loading) {\n return (\n <div\n className={`${classNames(\n 'suffix',\n 'loading',\n )} beta-ald-select-suffix-loading`}\n >\n <LoadingLine\n className=\"ald-loading-spin tw-animate-spin\"\n size={16}\n color=\"#6B7280\"\n />\n </div>\n );\n }\n\n if (\n (isActive || isHover) &&\n !disabled &&\n allowClear &&\n displayValues.length > 0\n ) {\n return (\n <div\n className={classNames('suffix', 'clear')}\n onClick={(event) => {\n event.stopPropagation();\n event.preventDefault();\n onClear?.();\n }}\n >\n <CloseCircleRightFill size={16} color=\"#6B7280\" />\n </div>\n );\n }\n if (showArrow) {\n const dropdownIcon = icon || (\n <ArrowDownRightFill color=\"#6B7280\" size={16} />\n );\n\n // antd 兼容:保留 ant-* class,消费方 CSS 可能依赖该选择器\n return (\n <div className={classNames('suffix', 'arrow') + ' ant-select-arrow'}>\n {dropdownIcon}\n </div>\n );\n }\n\n return null;\n}\n"],"mappings":";;;;;;;AASA,SAAwB,OAAO,EAC7B,WACA,YACA,UACA,SACA,MACA,SACA,eACA,UACA,WAWC;CACD,MAAM,aAAa,UAAU,SAAS;AAEtC,KAAI,QACF,QACE,oBAAC,OAAD;EACE,WAAW,GAAG,WACZ,UACA,UACD,CAAC;YAEF,oBAAC,MAAD;GACE,WAAU;GACV,MAAM;GACN,OAAM;GACN,CAAA;EACE,CAAA;AAIV,MACG,YAAY,YACb,CAAC,YACD,cACA,cAAc,SAAS,EAEvB,QACE,oBAAC,OAAD;EACE,WAAW,WAAW,UAAU,QAAQ;EACxC,UAAU,UAAU;AAClB,SAAM,iBAAiB;AACvB,SAAM,gBAAgB;AACtB,cAAW;;YAGb,oBAAC,QAAD;GAAsB,MAAM;GAAI,OAAM;GAAY,CAAA;EAC9C,CAAA;AAGV,KAAI,WAAW;EACb,MAAM,eAAe,QACnB,oBAAC,QAAD;GAAoB,OAAM;GAAU,MAAM;GAAM,CAAA;AAIlD,SACE,oBAAC,OAAD;GAAK,WAAW,WAAW,UAAU,QAAQ,GAAG;aAC7C;GACG,CAAA;;AAIV,QAAO"}
1
+ {"version":3,"file":"Suffix.js","names":[],"sources":["../../../src/Select/components/Suffix.tsx"],"sourcesContent":["import React from 'react';\nimport prefixCls from '../../_utils/prefixCls';\nimport {\n ArrowDownRightFill,\n CloseCircleRightFill,\n LoadingLine,\n} from '../../Icon';\nimport { DisplayValueType } from '../interface';\n\nexport default function Suffix({\n showArrow,\n allowClear,\n isActive,\n isHover,\n icon,\n onClear,\n displayValues,\n disabled,\n loading,\n}: {\n showArrow?: boolean;\n allowClear?: boolean;\n isActive?: boolean;\n isHover?: boolean;\n disabled?: boolean;\n loading?: boolean;\n icon: React.ReactNode;\n onClear?: () => void;\n displayValues: DisplayValueType[];\n}) {\n const classNames = prefixCls('select');\n\n if (loading) {\n return (\n <div\n className={`${classNames(\n 'suffix',\n 'loading',\n )} beta-ald-select-suffix-loading`}\n >\n <LoadingLine\n className=\"ald-loading-spin tw-animate-spin\"\n size={16}\n color=\"var(--content-secondary)\"\n />\n </div>\n );\n }\n\n if (\n (isActive || isHover) &&\n !disabled &&\n allowClear &&\n displayValues.length > 0\n ) {\n return (\n <div\n className={classNames('suffix', 'clear')}\n onClick={(event) => {\n event.stopPropagation();\n event.preventDefault();\n onClear?.();\n }}\n >\n <CloseCircleRightFill size={16} color=\"var(--content-secondary)\" />\n </div>\n );\n }\n if (showArrow) {\n const dropdownIcon = icon || (\n <ArrowDownRightFill color=\"var(--content-secondary)\" size={16} />\n );\n\n // antd 兼容:保留 ant-* class,消费方 CSS 可能依赖该选择器\n return (\n <div className={classNames('suffix', 'arrow') + ' ant-select-arrow'}>\n {dropdownIcon}\n </div>\n );\n }\n\n return null;\n}\n"],"mappings":";;;;;;;AASA,SAAwB,OAAO,EAC7B,WACA,YACA,UACA,SACA,MACA,SACA,eACA,UACA,WAWC;CACD,MAAM,aAAa,UAAU,SAAS;AAEtC,KAAI,QACF,QACE,oBAAC,OAAD;EACE,WAAW,GAAG,WACZ,UACA,UACD,CAAC;YAEF,oBAAC,MAAD;GACE,WAAU;GACV,MAAM;GACN,OAAM;GACN,CAAA;EACE,CAAA;AAIV,MACG,YAAY,YACb,CAAC,YACD,cACA,cAAc,SAAS,EAEvB,QACE,oBAAC,OAAD;EACE,WAAW,WAAW,UAAU,QAAQ;EACxC,UAAU,UAAU;AAClB,SAAM,iBAAiB;AACvB,SAAM,gBAAgB;AACtB,cAAW;;YAGb,oBAAC,QAAD;GAAsB,MAAM;GAAI,OAAM;GAA6B,CAAA;EAC/D,CAAA;AAGV,KAAI,WAAW;EACb,MAAM,eAAe,QACnB,oBAAC,QAAD;GAAoB,OAAM;GAA2B,MAAM;GAAM,CAAA;AAInE,SACE,oBAAC,OAAD;GAAK,WAAW,WAAW,UAAU,QAAQ,GAAG;aAC7C;GACG,CAAA;;AAIV,QAAO"}
@@ -14,7 +14,7 @@ function SliderThumbWithTooltip({ tooltip, value, className }) {
14
14
  onPointerEnter: () => setHovered(true),
15
15
  onPointerLeave: () => setHovered(false),
16
16
  children: tooltip && showTooltip && /* @__PURE__ */ jsx("div", {
17
- className: "tw-absolute tw-bottom-full tw-left-1/2 tw-mb-2 -tw-translate-x-1/2 tw-whitespace-nowrap tw-rounded-r-50 tw-bg-[var(--alias-colors-bg-tooltip)] tw-px-2 tw-py-1 tw-text-xs tw-text-[var(--alias-colors-text-inverse-default)]",
17
+ className: "tw-absolute tw-bottom-full tw-left-1/2 tw-mb-2 -tw-translate-x-1/2 tw-whitespace-nowrap tw-rounded-r-50 tw-bg-[var(--background-inverted)] tw-px-2 tw-py-1 tw-text-xs tw-text-[var(--content-inverted-primary)]",
18
18
  children: formattedValue
19
19
  })
20
20
  });
@@ -42,7 +42,7 @@ function Slider(props) {
42
42
  React.useEffect(() => {
43
43
  if (controlledValKey !== void 0) setCurrentValues(controlledValKey.split(",").map(Number));
44
44
  }, [controlledValKey]);
45
- const thumbClass = "tw-block tw-size-[10px] tw-cursor-pointer tw-rounded-full tw-bg-[var(--interaction-default-normal)] tw-shadow-[0_0_0_1px_var(--interaction-default-normal)] hover:tw-shadow-[0_0_0_3px_var(--interaction-default-hover)] focus-visible:tw-shadow-[0_0_0_3px_var(--interaction-default-active)] focus-visible:tw-outline-none";
45
+ const thumbClass = "tw-block tw-size-[10px] tw-cursor-pointer tw-rounded-full tw-bg-[var(--action-primary-normal)] tw-shadow-[0_0_0_1px_var(--action-primary-normal)] hover:tw-shadow-[0_0_0_3px_var(--action-primary-hover)] focus-visible:tw-shadow-[0_0_0_3px_var(--action-primary-active)] focus-visible:tw-outline-none";
46
46
  const markEntries = marks ? Object.entries(marks) : [];
47
47
  return /* @__PURE__ */ jsxs("div", {
48
48
  className: cn("tw-relative", vertical ? "tw-h-full" : "tw-w-full"),
@@ -60,8 +60,8 @@ function Slider(props) {
60
60
  onValueCommit: handleValueCommit,
61
61
  children: [
62
62
  /* @__PURE__ */ jsx(SliderPrimitive.Track, {
63
- className: cn("tw-relative tw-grow tw-rounded-full tw-bg-[var(--interaction-neutral-subtle-normal)]", vertical ? "tw-w-1" : "tw-h-1"),
64
- children: included && /* @__PURE__ */ jsx(SliderPrimitive.Range, { className: "ald-slider-range tw-absolute tw-rounded-full tw-bg-[var(--interaction-default-normal)] hover:tw-bg-[var(--interaction-default-hover)]" })
63
+ className: cn("tw-relative tw-grow tw-rounded-full tw-bg-[var(--action-neutral-subtle-normal)]", vertical ? "tw-w-1" : "tw-h-1"),
64
+ children: included && /* @__PURE__ */ jsx(SliderPrimitive.Range, { className: "ald-slider-range tw-absolute tw-rounded-full tw-bg-[var(--action-primary-normal)] hover:tw-bg-[var(--action-primary-hover)]" })
65
65
  }),
66
66
  tooltip ? /* @__PURE__ */ jsx(SliderThumbWithTooltip, {
67
67
  tooltip,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/Slider/index.tsx"],"sourcesContent":["import * as SliderPrimitive from '@radix-ui/react-slider';\nimport React, { useRef, useState } from 'react';\nimport { cn } from '../lib/utils';\n\ninterface SliderBaseProps {\n className?: string;\n style?: React.CSSProperties;\n disabled?: boolean;\n min?: number;\n max?: number;\n step?: number;\n vertical?: boolean;\n marks?: Record<\n number,\n React.ReactNode | { style?: React.CSSProperties; label?: React.ReactNode }\n >;\n included?: boolean;\n tooltip?: { open?: boolean; formatter?: (value?: number) => React.ReactNode };\n}\n\ninterface SliderSingleProps extends SliderBaseProps {\n range?: false;\n value?: number;\n defaultValue?: number;\n onChange?: (value: number) => void;\n onAfterChange?: (value: number) => void;\n}\n\ninterface SliderRangeProps extends SliderBaseProps {\n range: true;\n value?: [number, number];\n defaultValue?: [number, number];\n onChange?: (value: [number, number]) => void;\n onAfterChange?: (value: [number, number]) => void;\n}\n\nfunction SliderThumbWithTooltip({\n tooltip,\n value,\n className,\n}: {\n tooltip?: SliderBaseProps['tooltip'];\n value: number;\n className: string;\n}) {\n const [hovered, setHovered] = useState(false);\n const thumbRef = useRef<HTMLSpanElement>(null);\n\n const showTooltip = tooltip?.open !== undefined ? tooltip.open : hovered;\n const formattedValue = tooltip?.formatter ? tooltip.formatter(value) : value;\n\n return (\n <SliderPrimitive.Thumb\n ref={thumbRef}\n className={cn('tw-relative', className)}\n onPointerEnter={() => setHovered(true)}\n onPointerLeave={() => setHovered(false)}\n >\n {tooltip && showTooltip && (\n <div className=\"tw-absolute tw-bottom-full tw-left-1/2 tw-mb-2 -tw-translate-x-1/2 tw-whitespace-nowrap tw-rounded-r-50 tw-bg-[var(--alias-colors-bg-tooltip)] tw-px-2 tw-py-1 tw-text-xs tw-text-[var(--alias-colors-text-inverse-default)]\">\n {formattedValue}\n </div>\n )}\n </SliderPrimitive.Thumb>\n );\n}\n\nfunction Slider(props: SliderSingleProps | SliderRangeProps) {\n const {\n className,\n style,\n disabled,\n min = 0,\n max = 100,\n step = 1,\n range,\n vertical,\n marks,\n included = true,\n tooltip,\n } = props;\n\n const [currentValues, setCurrentValues] = useState<number[]>(() => {\n if (range) {\n return (\n (props as SliderRangeProps).value ||\n (props as SliderRangeProps).defaultValue || [min, max]\n );\n }\n const v = (props as SliderSingleProps).value;\n if (v !== undefined) return [v];\n return [(props as SliderSingleProps).defaultValue ?? min];\n });\n\n const handleValueChange = (values: number[]) => {\n setCurrentValues(values);\n if (range && 'onChange' in props && props.onChange) {\n (props.onChange as (v: [number, number]) => void)([values[0], values[1]]);\n } else if (!range && 'onChange' in props && props.onChange) {\n (props.onChange as (v: number) => void)(values[0]);\n }\n };\n\n const handleValueCommit = (values: number[]) => {\n if (range && 'onAfterChange' in props && props.onAfterChange) {\n (props.onAfterChange as (v: [number, number]) => void)([\n values[0],\n values[1],\n ]);\n } else if (!range && 'onAfterChange' in props && props.onAfterChange) {\n (props.onAfterChange as (v: number) => void)(values[0]);\n }\n };\n\n const defaultVal = range\n ? (props as SliderRangeProps).defaultValue || [min, max]\n : [(props as SliderSingleProps).defaultValue ?? min];\n\n const controlledVal = range\n ? (props as SliderRangeProps).value\n : (props as SliderSingleProps).value !== undefined\n ? [(props as SliderSingleProps).value!]\n : undefined;\n\n // Sync controlled values — use stringified key to detect content changes\n const controlledValKey = controlledVal ? controlledVal.join(',') : undefined;\n React.useEffect(() => {\n if (controlledValKey !== undefined) {\n setCurrentValues(controlledValKey.split(',').map(Number));\n }\n }, [controlledValKey]);\n\n const thumbClass =\n 'tw-block tw-size-[10px] tw-cursor-pointer tw-rounded-full tw-bg-[var(--interaction-default-normal)] tw-shadow-[0_0_0_1px_var(--interaction-default-normal)] hover:tw-shadow-[0_0_0_3px_var(--interaction-default-hover)] focus-visible:tw-shadow-[0_0_0_3px_var(--interaction-default-active)] focus-visible:tw-outline-none';\n\n const markEntries = marks ? Object.entries(marks) : [];\n\n return (\n <div className={cn('tw-relative', vertical ? 'tw-h-full' : 'tw-w-full')}>\n <SliderPrimitive.Root\n className={cn(\n 'ald-slider tw-relative tw-flex tw-touch-none tw-select-none tw-items-center',\n vertical ? 'tw-h-full tw-w-5 tw-flex-col' : 'tw-h-5 tw-w-full',\n disabled && 'tw-pointer-events-none tw-opacity-50',\n className,\n )}\n style={style}\n min={min}\n max={max}\n step={step}\n disabled={disabled}\n orientation={vertical ? 'vertical' : 'horizontal'}\n defaultValue={defaultVal}\n value={controlledVal}\n onValueChange={handleValueChange}\n onValueCommit={handleValueCommit}\n >\n <SliderPrimitive.Track\n className={cn(\n 'tw-relative tw-grow tw-rounded-full tw-bg-[var(--interaction-neutral-subtle-normal)]',\n vertical ? 'tw-w-1' : 'tw-h-1',\n )}\n >\n {included && (\n <SliderPrimitive.Range className=\"ald-slider-range tw-absolute tw-rounded-full tw-bg-[var(--interaction-default-normal)] hover:tw-bg-[var(--interaction-default-hover)]\" />\n )}\n </SliderPrimitive.Track>\n {tooltip ? (\n <SliderThumbWithTooltip\n tooltip={tooltip}\n value={currentValues[0] ?? min}\n className={thumbClass}\n />\n ) : (\n <SliderPrimitive.Thumb className={thumbClass} />\n )}\n {range &&\n (tooltip ? (\n <SliderThumbWithTooltip\n tooltip={tooltip}\n value={currentValues[1] ?? max}\n className={thumbClass}\n />\n ) : (\n <SliderPrimitive.Thumb className={thumbClass} />\n ))}\n </SliderPrimitive.Root>\n {markEntries.length > 0 && (\n <div className=\"ald-slider-marks tw-relative tw-mt-2 tw-w-full\">\n {markEntries.map(([key, mark]) => {\n const numKey = Number(key);\n const percent = ((numKey - min) / (max - min)) * 100;\n const isNode =\n typeof mark === 'object' &&\n mark !== null &&\n 'label' in (mark as Record<string, unknown>);\n const label = isNode\n ? (mark as { label?: React.ReactNode }).label\n : (mark as React.ReactNode);\n const markStyle = isNode\n ? (mark as { style?: React.CSSProperties }).style\n : undefined;\n\n return (\n <span\n key={key}\n className=\"ald-slider-mark tw-absolute tw-text-xs tw-text-[var(--content-secondary)]\"\n style={{\n left: `${percent}%`,\n transform: 'translateX(-50%)',\n ...markStyle,\n }}\n >\n {label}\n </span>\n );\n })}\n </div>\n )}\n </div>\n );\n}\n\nexport default Slider;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/Slider/index.tsx"],"sourcesContent":["import * as SliderPrimitive from '@radix-ui/react-slider';\nimport React, { useRef, useState } from 'react';\nimport { cn } from '../lib/utils';\n\ninterface SliderBaseProps {\n className?: string;\n style?: React.CSSProperties;\n disabled?: boolean;\n min?: number;\n max?: number;\n step?: number;\n vertical?: boolean;\n marks?: Record<\n number,\n React.ReactNode | { style?: React.CSSProperties; label?: React.ReactNode }\n >;\n included?: boolean;\n tooltip?: { open?: boolean; formatter?: (value?: number) => React.ReactNode };\n}\n\ninterface SliderSingleProps extends SliderBaseProps {\n range?: false;\n value?: number;\n defaultValue?: number;\n onChange?: (value: number) => void;\n onAfterChange?: (value: number) => void;\n}\n\ninterface SliderRangeProps extends SliderBaseProps {\n range: true;\n value?: [number, number];\n defaultValue?: [number, number];\n onChange?: (value: [number, number]) => void;\n onAfterChange?: (value: [number, number]) => void;\n}\n\nfunction SliderThumbWithTooltip({\n tooltip,\n value,\n className,\n}: {\n tooltip?: SliderBaseProps['tooltip'];\n value: number;\n className: string;\n}) {\n const [hovered, setHovered] = useState(false);\n const thumbRef = useRef<HTMLSpanElement>(null);\n\n const showTooltip = tooltip?.open !== undefined ? tooltip.open : hovered;\n const formattedValue = tooltip?.formatter ? tooltip.formatter(value) : value;\n\n return (\n <SliderPrimitive.Thumb\n ref={thumbRef}\n className={cn('tw-relative', className)}\n onPointerEnter={() => setHovered(true)}\n onPointerLeave={() => setHovered(false)}\n >\n {tooltip && showTooltip && (\n <div className=\"tw-absolute tw-bottom-full tw-left-1/2 tw-mb-2 -tw-translate-x-1/2 tw-whitespace-nowrap tw-rounded-r-50 tw-bg-[var(--background-inverted)] tw-px-2 tw-py-1 tw-text-xs tw-text-[var(--content-inverted-primary)]\">\n {formattedValue}\n </div>\n )}\n </SliderPrimitive.Thumb>\n );\n}\n\nfunction Slider(props: SliderSingleProps | SliderRangeProps) {\n const {\n className,\n style,\n disabled,\n min = 0,\n max = 100,\n step = 1,\n range,\n vertical,\n marks,\n included = true,\n tooltip,\n } = props;\n\n const [currentValues, setCurrentValues] = useState<number[]>(() => {\n if (range) {\n return (\n (props as SliderRangeProps).value ||\n (props as SliderRangeProps).defaultValue || [min, max]\n );\n }\n const v = (props as SliderSingleProps).value;\n if (v !== undefined) return [v];\n return [(props as SliderSingleProps).defaultValue ?? min];\n });\n\n const handleValueChange = (values: number[]) => {\n setCurrentValues(values);\n if (range && 'onChange' in props && props.onChange) {\n (props.onChange as (v: [number, number]) => void)([values[0], values[1]]);\n } else if (!range && 'onChange' in props && props.onChange) {\n (props.onChange as (v: number) => void)(values[0]);\n }\n };\n\n const handleValueCommit = (values: number[]) => {\n if (range && 'onAfterChange' in props && props.onAfterChange) {\n (props.onAfterChange as (v: [number, number]) => void)([\n values[0],\n values[1],\n ]);\n } else if (!range && 'onAfterChange' in props && props.onAfterChange) {\n (props.onAfterChange as (v: number) => void)(values[0]);\n }\n };\n\n const defaultVal = range\n ? (props as SliderRangeProps).defaultValue || [min, max]\n : [(props as SliderSingleProps).defaultValue ?? min];\n\n const controlledVal = range\n ? (props as SliderRangeProps).value\n : (props as SliderSingleProps).value !== undefined\n ? [(props as SliderSingleProps).value!]\n : undefined;\n\n // Sync controlled values — use stringified key to detect content changes\n const controlledValKey = controlledVal ? controlledVal.join(',') : undefined;\n React.useEffect(() => {\n if (controlledValKey !== undefined) {\n setCurrentValues(controlledValKey.split(',').map(Number));\n }\n }, [controlledValKey]);\n\n const thumbClass =\n 'tw-block tw-size-[10px] tw-cursor-pointer tw-rounded-full tw-bg-[var(--action-primary-normal)] tw-shadow-[0_0_0_1px_var(--action-primary-normal)] hover:tw-shadow-[0_0_0_3px_var(--action-primary-hover)] focus-visible:tw-shadow-[0_0_0_3px_var(--action-primary-active)] focus-visible:tw-outline-none';\n\n const markEntries = marks ? Object.entries(marks) : [];\n\n return (\n <div className={cn('tw-relative', vertical ? 'tw-h-full' : 'tw-w-full')}>\n <SliderPrimitive.Root\n className={cn(\n 'ald-slider tw-relative tw-flex tw-touch-none tw-select-none tw-items-center',\n vertical ? 'tw-h-full tw-w-5 tw-flex-col' : 'tw-h-5 tw-w-full',\n disabled && 'tw-pointer-events-none tw-opacity-50',\n className,\n )}\n style={style}\n min={min}\n max={max}\n step={step}\n disabled={disabled}\n orientation={vertical ? 'vertical' : 'horizontal'}\n defaultValue={defaultVal}\n value={controlledVal}\n onValueChange={handleValueChange}\n onValueCommit={handleValueCommit}\n >\n <SliderPrimitive.Track\n className={cn(\n 'tw-relative tw-grow tw-rounded-full tw-bg-[var(--action-neutral-subtle-normal)]',\n vertical ? 'tw-w-1' : 'tw-h-1',\n )}\n >\n {included && (\n <SliderPrimitive.Range className=\"ald-slider-range tw-absolute tw-rounded-full tw-bg-[var(--action-primary-normal)] hover:tw-bg-[var(--action-primary-hover)]\" />\n )}\n </SliderPrimitive.Track>\n {tooltip ? (\n <SliderThumbWithTooltip\n tooltip={tooltip}\n value={currentValues[0] ?? min}\n className={thumbClass}\n />\n ) : (\n <SliderPrimitive.Thumb className={thumbClass} />\n )}\n {range &&\n (tooltip ? (\n <SliderThumbWithTooltip\n tooltip={tooltip}\n value={currentValues[1] ?? max}\n className={thumbClass}\n />\n ) : (\n <SliderPrimitive.Thumb className={thumbClass} />\n ))}\n </SliderPrimitive.Root>\n {markEntries.length > 0 && (\n <div className=\"ald-slider-marks tw-relative tw-mt-2 tw-w-full\">\n {markEntries.map(([key, mark]) => {\n const numKey = Number(key);\n const percent = ((numKey - min) / (max - min)) * 100;\n const isNode =\n typeof mark === 'object' &&\n mark !== null &&\n 'label' in (mark as Record<string, unknown>);\n const label = isNode\n ? (mark as { label?: React.ReactNode }).label\n : (mark as React.ReactNode);\n const markStyle = isNode\n ? (mark as { style?: React.CSSProperties }).style\n : undefined;\n\n return (\n <span\n key={key}\n className=\"ald-slider-mark tw-absolute tw-text-xs tw-text-[var(--content-secondary)]\"\n style={{\n left: `${percent}%`,\n transform: 'translateX(-50%)',\n ...markStyle,\n }}\n >\n {label}\n </span>\n );\n })}\n </div>\n )}\n </div>\n );\n}\n\nexport default Slider;\n"],"mappings":"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"}
@@ -7,7 +7,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
7
7
  var Icon = (props) => {
8
8
  const { size, tip, direction, spinning = true, className, inContainer } = props;
9
9
  if (!spinning) return null;
10
- return /* @__PURE__ */ jsxs(React.Fragment, { children: [inContainer && /* @__PURE__ */ jsx("div", { className: "spinner-mask tw-absolute tw-inset-0 tw-size-full tw-bg-[var(--alias-colors-bg-skeleton-subtler)] tw-opacity-40" }), /* @__PURE__ */ jsxs("div", {
10
+ return /* @__PURE__ */ jsxs(React.Fragment, { children: [inContainer && /* @__PURE__ */ jsx("div", { className: "spinner-mask tw-absolute tw-inset-0 tw-size-full tw-bg-[var(--background-default)] tw-opacity-40" }), /* @__PURE__ */ jsxs("div", {
11
11
  className: cn("spinner tw-flex tw-h-full tw-flex-col tw-items-center tw-justify-center tw-gap-4", direction === "horizontal" && "spinner-horizontal tw-flex-row tw-gap-[6px]", inContainer && "spinner-center tw-absolute tw-left-1/2 tw-top-1/2 tw--translate-x-1/2 tw--translate-y-1/2", className),
12
12
  children: [/* @__PURE__ */ jsxs("div", {
13
13
  className: cn("spinner-inner tw-flex tw-animate-spin tw-items-center", size === "small" && "spinner-inner-small tw-size-5", size === "large" && "spinner-inner-large tw-size-16", size !== "small" && size !== "large" && "spinner-inner-middle tw-size-10"),
@@ -17,7 +17,7 @@ var Icon = (props) => {
17
17
  size !== "small" && size !== "large" && /* @__PURE__ */ jsx(Memo, { size: 40 })
18
18
  ]
19
19
  }), tip && /* @__PURE__ */ jsx("div", {
20
- className: "ald-spinner-text tw-text-[var(--alias-colors-text-subtle)]",
20
+ className: "ald-spinner-text tw-text-[var(--content-secondary)]",
21
21
  children: tip
22
22
  })]
23
23
  })] }, getUUID().toString());
@@ -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"}
@@ -31,7 +31,7 @@ function Steps({ className, current: controlledCurrent, direction = "horizontal"
31
31
  className: "tw-flex tw-w-full tw-items-center",
32
32
  children: [
33
33
  index > 0 && /* @__PURE__ */ jsx("div", {
34
- className: cn("ant-steps-item-tail tw-flex-1", index <= current ? "tw-bg-[var(--alias-colors-border-selected)]" : "tw-bg-[var(--alias-colors-border-default)]"),
34
+ className: cn("ant-steps-item-tail tw-flex-1", index <= current ? "tw-bg-[var(--border-brand-strong)]" : "tw-bg-[var(--border-default)]"),
35
35
  style: { height: 1.5 }
36
36
  }),
37
37
  /* @__PURE__ */ jsx("div", {
@@ -45,17 +45,17 @@ function Steps({ className, current: controlledCurrent, direction = "horizontal"
45
45
  })
46
46
  }),
47
47
  !isLast && /* @__PURE__ */ jsx("div", {
48
- className: cn(index === 0 && "ant-steps-item-tail", "tw-flex-1", index < current ? "tw-bg-[var(--alias-colors-border-selected)]" : "tw-bg-[var(--alias-colors-border-default)]"),
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
49
  style: { height: 1.5 }
50
50
  })
51
51
  ]
52
52
  }), /* @__PURE__ */ jsxs("div", {
53
53
  className: "ald-steps-item-content ant-steps-item-content tw-mt-2 tw-flex tw-flex-col tw-items-center",
54
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(--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)]"),
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
56
  children: item.title
57
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(--alias-colors-text-subtlest)]" : "tw-text-[var(--alias-colors-text-subtle)]"),
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
59
  children: item.description
60
60
  })]
61
61
  })]
@@ -64,7 +64,7 @@ function Steps({ className, current: controlledCurrent, direction = "horizontal"
64
64
  children: [/* @__PURE__ */ jsxs("div", {
65
65
  className: "ald-steps-item-axis tw-relative tw-flex tw-w-4 tw-shrink-0 tw-justify-center",
66
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(--alias-colors-border-selected)]" : "tw-bg-[var(--alias-colors-border-default)]"),
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
68
  style: {
69
69
  width: 1.5,
70
70
  bottom: -24
@@ -82,7 +82,7 @@ function Steps({ className, current: controlledCurrent, direction = "horizontal"
82
82
  }), /* @__PURE__ */ jsxs("div", {
83
83
  className: "ald-steps-item-content ant-steps-item-content",
84
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(--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)]"),
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
86
  children: item.title
87
87
  }), item.description && /* @__PURE__ */ jsx("div", {
88
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)]"),
@@ -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 { 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(--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 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(--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 </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(--alias-colors-border-selected)]'\n : 'tw-bg-[var(--alias-colors-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(--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 </div>\n )}\n </div>\n );\n })}\n </div>\n );\n}\n\nSteps.Step = Step;\n\nexport default Steps;\n"],"mappings":"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"}
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":"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"}
@@ -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
  });