@yoka-ui/ui 1.0.10-test → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (385) hide show
  1. package/@Docs-yoka/exports.generated.md +68 -62
  2. package/README.md +40 -189
  3. package/dist/es/assets/image/skills.zip +0 -0
  4. package/dist/es/business/AiChat/index.d.ts +3 -3
  5. package/dist/es/business/AiChat/index.js +331 -119
  6. package/dist/es/business/AiChat/index.js.map +3 -3
  7. package/dist/es/business/AiChat/intentRecognizer.js.map +1 -1
  8. package/dist/es/business/AiChat/navigationManager.js +6 -6
  9. package/dist/es/business/AiChat/navigationManager.js.map +2 -2
  10. package/dist/es/business/AiChat/sse.d.ts +15 -0
  11. package/dist/es/business/AiChat/sse.js +118 -7
  12. package/dist/es/business/AiChat/sse.js.map +2 -2
  13. package/dist/es/business/AiChat/type.d.ts +22 -23
  14. package/dist/es/business/AiChat/useAiChat.js +105 -75
  15. package/dist/es/business/AiChat/useAiChat.js.map +3 -3
  16. package/dist/es/business/AiChat/useTaskWorkflow.d.ts +1 -2
  17. package/dist/es/business/AiChat/useTaskWorkflow.js +2 -36
  18. package/dist/es/business/AiChat/useTaskWorkflow.js.map +2 -2
  19. package/dist/es/business/DrawerPageInfo/index.js.map +1 -1
  20. package/dist/es/business/Editor/index.d.ts +1 -1
  21. package/dist/es/business/Editor/index.js.map +2 -2
  22. package/dist/es/business/Empty/index.js +1 -1
  23. package/dist/es/business/Empty/index.js.map +1 -1
  24. package/dist/es/business/ModCommonFilter/components/PopoverContent/Category.js +2 -2
  25. package/dist/es/business/ModCommonFilter/components/PopoverContent/Category.js.map +2 -2
  26. package/dist/es/business/ModCommonFilter/components/PopoverContent/Content.js +3 -3
  27. package/dist/es/business/ModCommonFilter/components/PopoverContent/Content.js.map +2 -2
  28. package/dist/es/business/ModCommonFilter/components/PopoverContent/Selected.js +2 -2
  29. package/dist/es/business/ModCommonFilter/components/PopoverContent/Selected.js.map +2 -2
  30. package/dist/es/business/ModCommonFilter/index.d.ts +1 -1
  31. package/dist/es/business/ModCommonFilter/index.js.map +2 -2
  32. package/dist/es/business/YkCharts/Area.d.ts +18 -0
  33. package/dist/es/business/YkCharts/Area.js +336 -0
  34. package/dist/es/business/YkCharts/Area.js.map +7 -0
  35. package/dist/es/business/YkCharts/Bar.d.ts +21 -0
  36. package/dist/es/business/YkCharts/Bar.js +316 -0
  37. package/dist/es/business/YkCharts/Bar.js.map +7 -0
  38. package/dist/es/business/YkCharts/BarProperty.d.ts +21 -0
  39. package/dist/es/business/YkCharts/BarProperty.js +357 -0
  40. package/dist/es/business/YkCharts/BarProperty.js.map +7 -0
  41. package/dist/es/business/YkCharts/BarTotal.d.ts +21 -0
  42. package/dist/es/business/YkCharts/BarTotal.js +292 -0
  43. package/dist/es/business/YkCharts/BarTotal.js.map +7 -0
  44. package/dist/es/business/YkCharts/Line.d.ts +21 -0
  45. package/dist/es/business/YkCharts/Line.js +342 -0
  46. package/dist/es/business/YkCharts/Line.js.map +7 -0
  47. package/dist/es/business/YkCharts/Pie.d.ts +19 -0
  48. package/dist/es/business/YkCharts/Pie.js +107 -0
  49. package/dist/es/business/YkCharts/Pie.js.map +7 -0
  50. package/dist/es/business/YkCharts/PieProperty.d.ts +18 -0
  51. package/dist/es/business/YkCharts/PieProperty.js +180 -0
  52. package/dist/es/business/YkCharts/PieProperty.js.map +7 -0
  53. package/dist/es/business/YkCharts/Pies.d.ts +26 -0
  54. package/dist/es/business/YkCharts/Pies.js +352 -0
  55. package/dist/es/business/YkCharts/Pies.js.map +7 -0
  56. package/dist/es/business/YkCharts/constants.d.ts +1 -0
  57. package/dist/es/business/YkCharts/constants.js +47 -0
  58. package/dist/es/business/YkCharts/constants.js.map +7 -0
  59. package/dist/es/business/YkCharts/hooks.d.ts +4 -0
  60. package/dist/es/business/YkCharts/hooks.js +37 -0
  61. package/dist/es/business/YkCharts/hooks.js.map +7 -0
  62. package/dist/es/business/YkCharts/index.d.ts +9 -0
  63. package/dist/es/business/YkCharts/index.js +20 -0
  64. package/dist/es/business/YkCharts/index.js.map +7 -0
  65. package/dist/es/business/YkCharts/index.module.less +164 -0
  66. package/dist/es/business/YkCharts/tooltip.less +92 -0
  67. package/dist/es/business/YkCharts/transformData.js +16 -0
  68. package/dist/es/business/YkCharts/transformData.js.map +7 -0
  69. package/dist/es/business/YkCharts/typing.d.ts +74 -0
  70. package/dist/es/business/YkCharts/typing.js +1 -0
  71. package/dist/es/business/YkCharts/typing.js.map +7 -0
  72. package/dist/es/business/YkCharts/utils.d.ts +4 -0
  73. package/dist/es/business/YkCharts/utils.js +109 -0
  74. package/dist/es/business/YkCharts/utils.js.map +7 -0
  75. package/dist/es/business/YkCharts/variables.less +13 -0
  76. package/dist/es/business/YkLoginModule/SmsLoginForm.d.ts +25 -0
  77. package/dist/es/business/YkLoginModule/SmsLoginForm.js +178 -0
  78. package/dist/es/business/YkLoginModule/SmsLoginForm.js.map +7 -0
  79. package/dist/es/business/YkLoginModule/index.d.ts +48 -0
  80. package/dist/es/business/YkLoginModule/index.js +198 -0
  81. package/dist/es/business/YkLoginModule/index.js.map +7 -0
  82. package/dist/es/business/YkLoginModule/styles.module.less +169 -0
  83. package/dist/es/business/YkPorjectSelect/index.d.ts +1 -1
  84. package/dist/es/business/YkPorjectSelect/index.js +2 -2
  85. package/dist/es/business/YkPorjectSelect/index.js.map +2 -2
  86. package/dist/es/business/YkSqlEdit/code-mirror-custom.module.less +154 -0
  87. package/dist/es/business/YkSqlEdit/index.d.ts +20 -0
  88. package/dist/es/business/YkSqlEdit/index.js +180 -0
  89. package/dist/es/business/YkSqlEdit/index.js.map +7 -0
  90. package/dist/es/business/YkSqlEdit/sql-language.d.ts +11 -0
  91. package/dist/es/business/YkSqlEdit/sql-language.js +1460 -0
  92. package/dist/es/business/YkSqlEdit/sql-language.js.map +7 -0
  93. package/dist/es/components/DebounceInput/index.js.map +2 -2
  94. package/dist/es/components/MultipleSelect/index.d.ts +14 -0
  95. package/dist/es/components/MultipleSelect/index.js +1 -1
  96. package/dist/es/components/MultipleSelect/index.js.map +2 -2
  97. package/dist/es/components/RefreshButton/index.js.map +2 -2
  98. package/dist/es/components/SearchWithHistory/index.js +1 -1
  99. package/dist/es/components/SearchWithHistory/index.js.map +2 -2
  100. package/dist/es/components/TextWithToolTip/index.d.ts +1 -1
  101. package/dist/es/components/TextWithToolTip/index.js.map +2 -2
  102. package/dist/es/components/TreeTransfer/components/TreeTransferPanel/index.d.ts +1 -24
  103. package/dist/es/components/TreeTransfer/components/TreeTransferPanel/index.js +2 -2
  104. package/dist/es/components/TreeTransfer/components/TreeTransferPanel/index.js.map +2 -2
  105. package/dist/es/components/TreeTransfer/index.d.ts +1 -24
  106. package/dist/es/components/TreeTransfer/index.js +8 -8
  107. package/dist/es/components/TreeTransfer/index.js.map +2 -2
  108. package/dist/es/components/TreeTransfer/utils/index.d.ts +1 -1
  109. package/dist/es/components/TreeTransfer/utils/index.js.map +2 -2
  110. package/dist/es/components/YKMarkdown/index.d.ts +11 -0
  111. package/dist/es/components/YKMarkdown/index.js +236 -0
  112. package/dist/es/components/YKMarkdown/index.js.map +7 -0
  113. package/dist/es/components/YKMarkdown/index.module.less +83 -0
  114. package/dist/es/components/YkDateRangePicker/YkDateRangePicker.mdx +194 -0
  115. package/dist/es/components/YkDateRangePicker/index.d.ts +9 -1
  116. package/dist/es/components/YkDateRangePicker/index.js +127 -61
  117. package/dist/es/components/YkDateRangePicker/index.js.map +2 -2
  118. package/dist/es/components/YkDateRangePicker/index.module.less +33 -9
  119. package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSCompare.d.ts +1 -1
  120. package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSCompare.js +3 -2
  121. package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSCompare.js.map +2 -2
  122. package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSRange.d.ts +1 -1
  123. package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSRange.js +23 -3
  124. package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSRange.js.map +2 -2
  125. package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSSelect.d.ts +1 -1
  126. package/dist/es/components/YkRangeDateWithVS/YkRangeDateWithVSSelect.js.map +2 -2
  127. package/dist/es/components/YkRangeDateWithVS/index.d.ts +2 -2
  128. package/dist/es/components/YkRangeDateWithVS/index.js.map +2 -2
  129. package/dist/es/components/YkRangeDateWithVS/index.module.less +22 -4
  130. package/dist/es/components/YkRangeTimeWithRecent/index.d.ts +1 -1
  131. package/dist/es/components/YkRangeTimeWithRecent/index.js.map +2 -2
  132. package/dist/es/creative/ArcCheckbox/index.d.ts +12 -0
  133. package/dist/es/creative/ArcCheckbox/index.js +49 -0
  134. package/dist/es/creative/ArcCheckbox/index.js.map +7 -0
  135. package/dist/es/creative/ArcCheckbox/index.module.less +102 -0
  136. package/dist/es/creative/ButtonRadioWithInfo/index.js.map +1 -1
  137. package/dist/es/creative/ButtonWithProgress/index.d.ts +1 -1
  138. package/dist/es/creative/ButtonWithProgress/index.js.map +2 -2
  139. package/dist/es/creative/GlassSegmentedRadio/index.d.ts +24 -0
  140. package/dist/es/creative/GlassSegmentedRadio/index.js +75 -0
  141. package/dist/es/creative/GlassSegmentedRadio/index.js.map +7 -0
  142. package/dist/es/creative/GlassSegmentedRadio/index.module.less +241 -0
  143. package/dist/es/creative/SkillsWriter/index.d.ts +3 -0
  144. package/dist/es/creative/SkillsWriter/index.js +191 -0
  145. package/dist/es/creative/SkillsWriter/index.js.map +7 -0
  146. package/dist/es/creative/SkillsWriter/index.module.less +21 -0
  147. package/dist/es/index.d.ts +32 -24
  148. package/dist/es/index.js +90 -80
  149. package/dist/es/index.js.map +2 -2
  150. package/dist/es/index.less +44 -0
  151. package/dist/es/layout/FlexGrid/index.d.ts +1 -1
  152. package/dist/es/layout/FlexGrid/index.js.map +2 -2
  153. package/dist/es/layout/YkContainer/index.js.map +1 -1
  154. package/dist/es/layout/YkDrawer/index.d.ts +1 -1
  155. package/dist/es/layout/YkDrawer/index.js.map +2 -2
  156. package/dist/es/ui/LabelSelect/demo.js +1 -1
  157. package/dist/es/ui/LabelSelect/demo.js.map +2 -2
  158. package/dist/es/ui/LabelSelect/index.d.ts +1 -1
  159. package/dist/es/ui/LabelSelect/index.js +1 -1
  160. package/dist/es/ui/LabelSelect/index.js.map +2 -2
  161. package/dist/es/ui/LogicOperator/index.d.ts +1 -1
  162. package/dist/es/ui/LogicOperator/index.js.map +2 -2
  163. package/dist/es/ui/YkButton/index.d.ts +1 -1
  164. package/dist/es/ui/YkButton/index.js.map +2 -2
  165. package/dist/es/ui/YkCard/index.d.ts +1 -1
  166. package/dist/es/ui/YkCard/index.js +1 -1
  167. package/dist/es/ui/YkCard/index.js.map +2 -2
  168. package/dist/es/ui/YkCheckbox/index.d.ts +1 -1
  169. package/dist/es/ui/YkCheckbox/index.js.map +2 -2
  170. package/dist/es/ui/YkDescriptions/index.d.ts +1 -1
  171. package/dist/es/ui/YkDescriptions/index.js.map +2 -2
  172. package/dist/es/ui/YkPagination/index.d.ts +1 -1
  173. package/dist/es/ui/YkPagination/index.js.map +2 -2
  174. package/dist/es/ui/YkRadio/index.d.ts +1 -1
  175. package/dist/es/ui/YkRadio/index.js.map +2 -2
  176. package/dist/es/ui/YkSegmented/index.d.ts +1 -1
  177. package/dist/es/ui/YkSegmented/index.js.map +2 -2
  178. package/dist/es/ui/YkSelect/index.d.ts +1 -1
  179. package/dist/es/ui/YkSelect/index.js.map +2 -2
  180. package/dist/es/ui/YkSpin/index.d.ts +1 -1
  181. package/dist/es/ui/YkSpin/index.js.map +2 -2
  182. package/dist/es/ui/YkStatistic/index.d.ts +1 -1
  183. package/dist/es/ui/YkStatistic/index.js.map +2 -2
  184. package/dist/es/ui/YkSwitch/index.d.ts +1 -1
  185. package/dist/es/ui/YkSwitch/index.js.map +2 -2
  186. package/dist/es/ui/YkTabs/index.d.ts +1 -1
  187. package/dist/es/ui/YkTabs/index.js.map +2 -2
  188. package/dist/es/ui/YkTooltip/index.d.ts +1 -1
  189. package/dist/es/ui/YkTooltip/index.js.map +2 -2
  190. package/dist/es/utils/styleUtils.js.map +2 -2
  191. package/dist/es/utils/ykStorybookDoc.d.ts +15 -0
  192. package/dist/es/utils/ykStorybookDoc.js +24 -2
  193. package/dist/es/utils/ykStorybookDoc.js.map +2 -2
  194. package/dist/lib/assets/image/skills.zip +0 -0
  195. package/dist/lib/business/AiChat/index.d.ts +3 -3
  196. package/dist/lib/business/AiChat/index.js +320 -111
  197. package/dist/lib/business/AiChat/index.js.map +3 -3
  198. package/dist/lib/business/AiChat/intentRecognizer.js.map +1 -1
  199. package/dist/lib/business/AiChat/navigationManager.js +6 -6
  200. package/dist/lib/business/AiChat/navigationManager.js.map +2 -2
  201. package/dist/lib/business/AiChat/sse.d.ts +15 -0
  202. package/dist/lib/business/AiChat/sse.js +117 -7
  203. package/dist/lib/business/AiChat/sse.js.map +2 -2
  204. package/dist/lib/business/AiChat/type.d.ts +22 -23
  205. package/dist/lib/business/AiChat/type.js.map +1 -1
  206. package/dist/lib/business/AiChat/useAiChat.js +104 -74
  207. package/dist/lib/business/AiChat/useAiChat.js.map +3 -3
  208. package/dist/lib/business/AiChat/useTaskWorkflow.d.ts +1 -2
  209. package/dist/lib/business/AiChat/useTaskWorkflow.js +0 -34
  210. package/dist/lib/business/AiChat/useTaskWorkflow.js.map +2 -2
  211. package/dist/lib/business/DrawerPageInfo/index.js.map +1 -1
  212. package/dist/lib/business/Editor/index.d.ts +1 -1
  213. package/dist/lib/business/Editor/index.js.map +2 -2
  214. package/dist/lib/business/Empty/index.js +1 -1
  215. package/dist/lib/business/Empty/index.js.map +1 -1
  216. package/dist/lib/business/ModCommonFilter/components/PopoverContent/Category.js +3 -3
  217. package/dist/lib/business/ModCommonFilter/components/PopoverContent/Category.js.map +2 -2
  218. package/dist/lib/business/ModCommonFilter/components/PopoverContent/Content.js +4 -4
  219. package/dist/lib/business/ModCommonFilter/components/PopoverContent/Content.js.map +2 -2
  220. package/dist/lib/business/ModCommonFilter/components/PopoverContent/Selected.js +3 -3
  221. package/dist/lib/business/ModCommonFilter/components/PopoverContent/Selected.js.map +2 -2
  222. package/dist/lib/business/ModCommonFilter/index.d.ts +1 -1
  223. package/dist/lib/business/ModCommonFilter/index.js.map +2 -2
  224. package/dist/lib/business/YkCharts/Area.d.ts +18 -0
  225. package/dist/lib/business/YkCharts/Area.js +346 -0
  226. package/dist/lib/business/YkCharts/Area.js.map +7 -0
  227. package/dist/lib/business/YkCharts/Bar.d.ts +21 -0
  228. package/dist/lib/business/YkCharts/Bar.js +323 -0
  229. package/dist/lib/business/YkCharts/Bar.js.map +7 -0
  230. package/dist/lib/business/YkCharts/BarProperty.d.ts +21 -0
  231. package/dist/lib/business/YkCharts/BarProperty.js +370 -0
  232. package/dist/lib/business/YkCharts/BarProperty.js.map +7 -0
  233. package/dist/lib/business/YkCharts/BarTotal.d.ts +21 -0
  234. package/dist/lib/business/YkCharts/BarTotal.js +298 -0
  235. package/dist/lib/business/YkCharts/BarTotal.js.map +7 -0
  236. package/dist/lib/business/YkCharts/Line.d.ts +21 -0
  237. package/dist/lib/business/YkCharts/Line.js +349 -0
  238. package/dist/lib/business/YkCharts/Line.js.map +7 -0
  239. package/dist/lib/business/YkCharts/Pie.d.ts +19 -0
  240. package/dist/lib/business/YkCharts/Pie.js +117 -0
  241. package/dist/lib/business/YkCharts/Pie.js.map +7 -0
  242. package/dist/lib/business/YkCharts/PieProperty.d.ts +18 -0
  243. package/dist/lib/business/YkCharts/PieProperty.js +193 -0
  244. package/dist/lib/business/YkCharts/PieProperty.js.map +7 -0
  245. package/dist/lib/business/YkCharts/Pies.d.ts +26 -0
  246. package/dist/lib/business/YkCharts/Pies.js +341 -0
  247. package/dist/lib/business/YkCharts/Pies.js.map +7 -0
  248. package/dist/lib/business/YkCharts/constants.d.ts +1 -0
  249. package/dist/lib/business/YkCharts/constants.js +71 -0
  250. package/dist/lib/business/YkCharts/constants.js.map +7 -0
  251. package/dist/lib/business/YkCharts/hooks.d.ts +4 -0
  252. package/dist/lib/business/YkCharts/hooks.js +62 -0
  253. package/dist/lib/business/YkCharts/hooks.js.map +7 -0
  254. package/dist/lib/business/YkCharts/index.d.ts +9 -0
  255. package/dist/lib/business/YkCharts/index.js +61 -0
  256. package/dist/lib/business/YkCharts/index.js.map +7 -0
  257. package/dist/lib/business/YkCharts/index.module.less +164 -0
  258. package/dist/lib/business/YkCharts/tooltip.less +92 -0
  259. package/dist/lib/business/YkCharts/transformData.js +40 -0
  260. package/dist/lib/business/YkCharts/transformData.js.map +7 -0
  261. package/dist/lib/business/YkCharts/typing.d.ts +74 -0
  262. package/dist/lib/business/YkCharts/typing.js +18 -0
  263. package/dist/lib/business/YkCharts/typing.js.map +7 -0
  264. package/dist/lib/business/YkCharts/utils.d.ts +4 -0
  265. package/dist/lib/business/YkCharts/utils.js +143 -0
  266. package/dist/lib/business/YkCharts/utils.js.map +7 -0
  267. package/dist/lib/business/YkCharts/variables.less +13 -0
  268. package/dist/lib/business/YkLoginModule/SmsLoginForm.d.ts +25 -0
  269. package/dist/lib/business/YkLoginModule/SmsLoginForm.js +171 -0
  270. package/dist/lib/business/YkLoginModule/SmsLoginForm.js.map +7 -0
  271. package/dist/lib/business/YkLoginModule/index.d.ts +48 -0
  272. package/dist/lib/business/YkLoginModule/index.js +206 -0
  273. package/dist/lib/business/YkLoginModule/index.js.map +7 -0
  274. package/dist/lib/business/YkLoginModule/styles.module.less +169 -0
  275. package/dist/lib/business/YkPorjectSelect/index.d.ts +1 -1
  276. package/dist/lib/business/YkPorjectSelect/index.js +3 -3
  277. package/dist/lib/business/YkPorjectSelect/index.js.map +2 -2
  278. package/dist/lib/business/YkSqlEdit/code-mirror-custom.module.less +154 -0
  279. package/dist/lib/business/YkSqlEdit/index.d.ts +20 -0
  280. package/dist/lib/business/YkSqlEdit/index.js +202 -0
  281. package/dist/lib/business/YkSqlEdit/index.js.map +7 -0
  282. package/dist/lib/business/YkSqlEdit/sql-language.d.ts +11 -0
  283. package/dist/lib/business/YkSqlEdit/sql-language.js +1493 -0
  284. package/dist/lib/business/YkSqlEdit/sql-language.js.map +7 -0
  285. package/dist/lib/components/DebounceInput/index.js.map +2 -2
  286. package/dist/lib/components/MultipleSelect/index.d.ts +14 -0
  287. package/dist/lib/components/MultipleSelect/index.js +1 -1
  288. package/dist/lib/components/MultipleSelect/index.js.map +2 -2
  289. package/dist/lib/components/RefreshButton/index.js.map +2 -2
  290. package/dist/lib/components/SearchWithHistory/index.js +1 -1
  291. package/dist/lib/components/SearchWithHistory/index.js.map +2 -2
  292. package/dist/lib/components/TextWithToolTip/index.d.ts +1 -1
  293. package/dist/lib/components/TextWithToolTip/index.js.map +2 -2
  294. package/dist/lib/components/TreeTransfer/components/TreeTransferPanel/index.d.ts +1 -24
  295. package/dist/lib/components/TreeTransfer/components/TreeTransferPanel/index.js +2 -2
  296. package/dist/lib/components/TreeTransfer/components/TreeTransferPanel/index.js.map +2 -2
  297. package/dist/lib/components/TreeTransfer/index.d.ts +1 -24
  298. package/dist/lib/components/TreeTransfer/index.js +3 -3
  299. package/dist/lib/components/TreeTransfer/index.js.map +2 -2
  300. package/dist/lib/components/TreeTransfer/utils/index.d.ts +1 -1
  301. package/dist/lib/components/TreeTransfer/utils/index.js.map +2 -2
  302. package/dist/lib/components/YKMarkdown/index.d.ts +11 -0
  303. package/dist/lib/components/YKMarkdown/index.js +188 -0
  304. package/dist/lib/components/YKMarkdown/index.js.map +7 -0
  305. package/dist/lib/components/YKMarkdown/index.module.less +83 -0
  306. package/dist/lib/components/YkDateRangePicker/YkDateRangePicker.mdx +194 -0
  307. package/dist/lib/components/YkDateRangePicker/index.d.ts +9 -1
  308. package/dist/lib/components/YkDateRangePicker/index.js +127 -61
  309. package/dist/lib/components/YkDateRangePicker/index.js.map +2 -2
  310. package/dist/lib/components/YkDateRangePicker/index.module.less +33 -9
  311. package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSCompare.d.ts +1 -1
  312. package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSCompare.js +3 -2
  313. package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSCompare.js.map +2 -2
  314. package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSRange.d.ts +1 -1
  315. package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSRange.js +22 -2
  316. package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSRange.js.map +2 -2
  317. package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSSelect.d.ts +1 -1
  318. package/dist/lib/components/YkRangeDateWithVS/YkRangeDateWithVSSelect.js.map +2 -2
  319. package/dist/lib/components/YkRangeDateWithVS/index.d.ts +2 -2
  320. package/dist/lib/components/YkRangeDateWithVS/index.js.map +2 -2
  321. package/dist/lib/components/YkRangeDateWithVS/index.module.less +22 -4
  322. package/dist/lib/components/YkRangeTimeWithRecent/index.d.ts +1 -1
  323. package/dist/lib/components/YkRangeTimeWithRecent/index.js.map +2 -2
  324. package/dist/lib/creative/ArcCheckbox/index.d.ts +12 -0
  325. package/dist/lib/creative/ArcCheckbox/index.js +50 -0
  326. package/dist/lib/creative/ArcCheckbox/index.js.map +7 -0
  327. package/dist/lib/creative/ArcCheckbox/index.module.less +102 -0
  328. package/dist/lib/creative/ButtonRadioWithInfo/index.js.map +1 -1
  329. package/dist/lib/creative/ButtonWithProgress/index.d.ts +1 -1
  330. package/dist/lib/creative/ButtonWithProgress/index.js.map +2 -2
  331. package/dist/lib/creative/GlassSegmentedRadio/index.d.ts +24 -0
  332. package/dist/lib/creative/GlassSegmentedRadio/index.js +78 -0
  333. package/dist/lib/creative/GlassSegmentedRadio/index.js.map +7 -0
  334. package/dist/lib/creative/GlassSegmentedRadio/index.module.less +241 -0
  335. package/dist/lib/creative/SkillsWriter/index.d.ts +3 -0
  336. package/dist/lib/creative/SkillsWriter/index.js +200 -0
  337. package/dist/lib/creative/SkillsWriter/index.js.map +7 -0
  338. package/dist/lib/creative/SkillsWriter/index.module.less +21 -0
  339. package/dist/lib/index.d.ts +32 -24
  340. package/dist/lib/index.js +39 -24
  341. package/dist/lib/index.js.map +2 -2
  342. package/dist/lib/index.less +44 -0
  343. package/dist/lib/layout/FlexGrid/index.d.ts +1 -1
  344. package/dist/lib/layout/FlexGrid/index.js.map +2 -2
  345. package/dist/lib/layout/YkContainer/index.js.map +1 -1
  346. package/dist/lib/layout/YkDrawer/index.d.ts +1 -1
  347. package/dist/lib/layout/YkDrawer/index.js.map +2 -2
  348. package/dist/lib/ui/LabelSelect/demo.js +1 -1
  349. package/dist/lib/ui/LabelSelect/demo.js.map +2 -2
  350. package/dist/lib/ui/LabelSelect/index.d.ts +1 -1
  351. package/dist/lib/ui/LabelSelect/index.js +1 -1
  352. package/dist/lib/ui/LabelSelect/index.js.map +2 -2
  353. package/dist/lib/ui/LogicOperator/index.d.ts +1 -1
  354. package/dist/lib/ui/LogicOperator/index.js.map +2 -2
  355. package/dist/lib/ui/YkButton/index.d.ts +1 -1
  356. package/dist/lib/ui/YkButton/index.js.map +2 -2
  357. package/dist/lib/ui/YkCard/index.d.ts +1 -1
  358. package/dist/lib/ui/YkCard/index.js.map +2 -2
  359. package/dist/lib/ui/YkCheckbox/index.d.ts +1 -1
  360. package/dist/lib/ui/YkCheckbox/index.js.map +2 -2
  361. package/dist/lib/ui/YkDescriptions/index.d.ts +1 -1
  362. package/dist/lib/ui/YkDescriptions/index.js.map +2 -2
  363. package/dist/lib/ui/YkPagination/index.d.ts +1 -1
  364. package/dist/lib/ui/YkPagination/index.js.map +2 -2
  365. package/dist/lib/ui/YkRadio/index.d.ts +1 -1
  366. package/dist/lib/ui/YkRadio/index.js.map +2 -2
  367. package/dist/lib/ui/YkSegmented/index.d.ts +1 -1
  368. package/dist/lib/ui/YkSegmented/index.js.map +2 -2
  369. package/dist/lib/ui/YkSelect/index.d.ts +1 -1
  370. package/dist/lib/ui/YkSelect/index.js.map +2 -2
  371. package/dist/lib/ui/YkSpin/index.d.ts +1 -1
  372. package/dist/lib/ui/YkSpin/index.js.map +2 -2
  373. package/dist/lib/ui/YkStatistic/index.d.ts +1 -1
  374. package/dist/lib/ui/YkStatistic/index.js.map +2 -2
  375. package/dist/lib/ui/YkSwitch/index.d.ts +1 -1
  376. package/dist/lib/ui/YkSwitch/index.js.map +2 -2
  377. package/dist/lib/ui/YkTabs/index.d.ts +1 -1
  378. package/dist/lib/ui/YkTabs/index.js.map +2 -2
  379. package/dist/lib/ui/YkTooltip/index.d.ts +1 -1
  380. package/dist/lib/ui/YkTooltip/index.js.map +2 -2
  381. package/dist/lib/utils/styleUtils.js.map +2 -2
  382. package/dist/lib/utils/ykStorybookDoc.d.ts +15 -0
  383. package/dist/lib/utils/ykStorybookDoc.js +23 -1
  384. package/dist/lib/utils/ykStorybookDoc.js.map +2 -2
  385. package/package.json +152 -144
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ export type ArcCheckboxProps = Omit<React.ComponentPropsWithoutRef<'input'>, 'type' | 'className'> & {
3
+ className?: string;
4
+ };
5
+ /**
6
+ * 无背景;未选中为带缺口的圆环线框持续旋转(loading 感);选中为描边对勾动画。
7
+ * 纯图标场景请为 `input` 传入 `aria-label`(或外层可见文案)以保证可访问性。
8
+ */
9
+ export declare const ArcCheckbox: React.ForwardRefExoticComponent<Omit<Omit<React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "ref">, "className" | "type"> & {
10
+ className?: string;
11
+ } & React.RefAttributes<HTMLInputElement>>;
12
+ export default ArcCheckbox;
@@ -0,0 +1,50 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // src/creative/ArcCheckbox/index.tsx
30
+ var ArcCheckbox_exports = {};
31
+ __export(ArcCheckbox_exports, {
32
+ ArcCheckbox: () => ArcCheckbox,
33
+ default: () => ArcCheckbox_default
34
+ });
35
+ module.exports = __toCommonJS(ArcCheckbox_exports);
36
+ var import_classnames = __toESM(require("classnames"));
37
+ var import_react = __toESM(require("react"));
38
+ var import_index_module = __toESM(require("./index.module.less"));
39
+ var ArcCheckbox = (0, import_react.forwardRef)(function ArcCheckbox2({ className, id: idProp, disabled, ...rest }, ref) {
40
+ const uid = (0, import_react.useId)().replace(/:/g, "");
41
+ const id = (0, import_react.useMemo)(() => idProp ?? `arc-checkbox-${uid}`, [idProp, uid]);
42
+ return /* @__PURE__ */ import_react.default.createElement("span", { className: (0, import_classnames.default)(import_index_module.default.root, className) }, /* @__PURE__ */ import_react.default.createElement("input", { ...rest, ref, id, type: "checkbox", className: import_index_module.default.input, disabled }), /* @__PURE__ */ import_react.default.createElement("label", { htmlFor: id, className: import_index_module.default.label }, /* @__PURE__ */ import_react.default.createElement("svg", { width: 18, height: 18, viewBox: "0 0 18 18", "aria-hidden": true }, /* @__PURE__ */ import_react.default.createElement("g", { className: import_index_module.default.ringSpin }, /* @__PURE__ */ import_react.default.createElement("circle", { className: import_index_module.default.ring, cx: 9, cy: 9, r: 6.75 })), /* @__PURE__ */ import_react.default.createElement("polyline", { className: import_index_module.default.check, points: "1 9 7 14 15 4" }))));
43
+ });
44
+ ArcCheckbox.displayName = "ArcCheckbox";
45
+ var ArcCheckbox_default = ArcCheckbox;
46
+ // Annotate the CommonJS export names for ESM import in node:
47
+ 0 && (module.exports = {
48
+ ArcCheckbox
49
+ });
50
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/creative/ArcCheckbox/index.tsx"],
4
+ "sourcesContent": ["import classNames from 'classnames';\nimport React, { forwardRef, useId, useMemo } from 'react';\nimport styles from './index.module.less';\n\nexport type ArcCheckboxProps = Omit<React.ComponentPropsWithoutRef<'input'>, 'type' | 'className'> & {\n className?: string;\n};\n\n/**\n * 无背景;未选中为带缺口的圆环线框持续旋转(loading 感);选中为描边对勾动画。\n * 纯图标场景请为 `input` 传入 `aria-label`(或外层可见文案)以保证可访问性。\n */\nexport const ArcCheckbox = forwardRef<HTMLInputElement, ArcCheckboxProps>(function ArcCheckbox(\n { className, id: idProp, disabled, ...rest },\n ref,\n) {\n const uid = useId().replace(/:/g, '');\n const id = useMemo(() => idProp ?? `arc-checkbox-${uid}`, [idProp, uid]);\n\n return (\n <span className={classNames(styles.root, className)}>\n <input {...rest} ref={ref} id={id} type='checkbox' className={styles.input} disabled={disabled} />\n <label htmlFor={id} className={styles.label}>\n <svg width={18} height={18} viewBox='0 0 18 18' aria-hidden>\n <g className={styles.ringSpin}>\n <circle className={styles.ring} cx={9} cy={9} r={6.75} />\n </g>\n <polyline className={styles.check} points='1 9 7 14 15 4' />\n </svg>\n </label>\n </span>\n );\n});\n\nArcCheckbox.displayName = 'ArcCheckbox';\n\nexport default ArcCheckbox;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAuB;AACvB,mBAAkD;AAClD,0BAAmB;AAUZ,IAAM,kBAAc,yBAA+C,SAASA,aACjF,EAAE,WAAW,IAAI,QAAQ,UAAU,GAAG,KAAK,GAC3C,KACA;AACA,QAAM,UAAM,oBAAM,EAAE,QAAQ,MAAM,EAAE;AACpC,QAAM,SAAK,sBAAQ,MAAM,UAAU,gBAAgB,OAAO,CAAC,QAAQ,GAAG,CAAC;AAEvE,SACE,6BAAAC,QAAA,cAAC,UAAK,eAAW,kBAAAC,SAAW,oBAAAC,QAAO,MAAM,SAAS,KAChD,6BAAAF,QAAA,cAAC,WAAO,GAAG,MAAM,KAAU,IAAQ,MAAK,YAAW,WAAW,oBAAAE,QAAO,OAAO,UAAoB,GAChG,6BAAAF,QAAA,cAAC,WAAM,SAAS,IAAI,WAAW,oBAAAE,QAAO,SACpC,6BAAAF,QAAA,cAAC,SAAI,OAAO,IAAI,QAAQ,IAAI,SAAQ,aAAY,eAAW,QACzD,6BAAAA,QAAA,cAAC,OAAE,WAAW,oBAAAE,QAAO,YACnB,6BAAAF,QAAA,cAAC,YAAO,WAAW,oBAAAE,QAAO,MAAM,IAAI,GAAG,IAAI,GAAG,GAAG,MAAM,CACzD,GACA,6BAAAF,QAAA,cAAC,cAAS,WAAW,oBAAAE,QAAO,OAAO,QAAO,iBAAgB,CAC5D,CACF,CACF;AAEJ,CAAC;AAED,YAAY,cAAc;AAE1B,IAAO,sBAAQ;",
6
+ "names": ["ArcCheckbox", "React", "classNames", "styles"]
7
+ }
@@ -0,0 +1,102 @@
1
+ /*基于原 checkbox 动效:去掉背景 ripple,外圈改为缺口圆环旋转 loading */
2
+
3
+ .root {
4
+ display: inline-flex;
5
+ align-items: center;
6
+ vertical-align: middle;
7
+ --arc-checkbox-accent: var(--accent-color, #a3e583);
8
+ }
9
+
10
+ .input {
11
+ position: absolute;
12
+ width: 1px;
13
+ height: 1px;
14
+ padding: 0;
15
+ margin: -1px;
16
+ overflow: hidden;
17
+ clip: rect(0, 0, 0, 0);
18
+ white-space: nowrap;
19
+ border: 0;
20
+ }
21
+
22
+ .label {
23
+ cursor: pointer;
24
+ position: relative;
25
+ width: 18px;
26
+ height: 18px;
27
+ -webkit-tap-highlight-color: transparent;
28
+ transform: translate3d(0, 0, 0);
29
+ flex-shrink: 0;
30
+ }
31
+
32
+ .label svg {
33
+ display: block;
34
+ fill: none;
35
+ stroke-linecap: round;
36
+ stroke-linejoin: round;
37
+ stroke: #c8ccd4;
38
+ stroke-width: 1.5;
39
+ transform: translate3d(0, 0, 0);
40
+ transition: stroke 0.2s ease;
41
+ }
42
+
43
+ .ringSpin {
44
+ transform-origin: 9px 9px;
45
+ animation: arc-checkbox-spin 0.75s linear infinite;
46
+ }
47
+
48
+ @keyframes arc-checkbox-spin {
49
+ to {
50
+ transform: rotate(360deg);
51
+ }
52
+ }
53
+
54
+ .ring {
55
+ stroke-dasharray: 31.4 11;
56
+ stroke-dashoffset: 0;
57
+ }
58
+
59
+ .check {
60
+ stroke-dasharray: 22;
61
+ stroke-dashoffset: 66;
62
+ opacity: 0;
63
+ transition: opacity 0.15s ease;
64
+ }
65
+
66
+ .label:hover svg {
67
+ stroke: var(--arc-checkbox-accent);
68
+ }
69
+
70
+ .input:checked + .label .ringSpin {
71
+ animation: none;
72
+ }
73
+
74
+ .input:checked + .label .ring {
75
+ opacity: 0;
76
+ transition: opacity 0.12s ease;
77
+ }
78
+
79
+ .input:checked + .label .check {
80
+ opacity: 1;
81
+ stroke: var(--arc-checkbox-accent);
82
+ stroke-dashoffset: 42;
83
+ transition:
84
+ stroke-dashoffset 0.2s linear 0.12s,
85
+ opacity 0.15s ease 0.1s,
86
+ stroke 0.2s ease;
87
+ }
88
+
89
+ .input:focus-visible + .label {
90
+ outline: 2px solid var(--arc-checkbox-accent);
91
+ outline-offset: 2px;
92
+ border-radius: 4px;
93
+ }
94
+
95
+ .input:disabled + .label {
96
+ cursor: not-allowed;
97
+ opacity: 0.45;
98
+ }
99
+
100
+ .input:disabled + .label .ringSpin {
101
+ animation-play-state: paused;
102
+ }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/creative/ButtonRadioWithInfo/index.tsx"],
4
- "sourcesContent": ["import classNames from 'classnames';\nimport React, { useId, useMemo, useState } from 'react';\n\nimport './index.less';\n\nexport interface ButtonRadioWithInfoOption {\n label: React.ReactNode;\n value: string;\n /** 角标文案,如 SAVE 28% */\n badge?: React.ReactNode;\n disabled?: boolean;\n}\n\nexport interface ButtonRadioWithInfoProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {\n options: ButtonRadioWithInfoOption[];\n value?: string;\n defaultValue?: string;\n onChange?: (value: string) => void;\n}\n\nconst ButtonRadioWithInfo = React.forwardRef<HTMLDivElement, ButtonRadioWithInfoProps>(\n ({ options, value: valueProp, defaultValue, onChange, className, style, ...rest }, ref) => {\n const uid = useId().replace(/:/g, '');\n const name = `brwi-${uid}`;\n const [inner, setInner] = useState(() => defaultValue ?? options[0]?.value ?? '');\n const value = valueProp !== undefined ? valueProp : inner;\n\n const selectedIndex = useMemo(() => {\n const i = options.findIndex((o) => o.value === value);\n return i >= 0 ? i : 0;\n }, [options, value]);\n\n const handleSelect = (next: string) => {\n const opt = options.find((o) => o.value === next);\n if (opt?.disabled) return;\n if (valueProp === undefined) setInner(next);\n onChange?.(next);\n };\n\n if (!options.length) {\n return null;\n }\n\n return (\n <div\n ref={ref}\n className={classNames('button-radio-with-info', className)}\n style={\n {\n ...style,\n '--brwi-n': options.length,\n '--brwi-i': selectedIndex,\n } as React.CSSProperties\n }\n {...rest}\n >\n <div className=\"button-radio-with-info__tabs\" role=\"radiogroup\">\n {options.map((opt) => (\n <React.Fragment key={opt.value}>\n <input\n type=\"radio\"\n className=\"button-radio-with-info__input\"\n id={`${name}-${opt.value}`}\n name={name}\n value={opt.value}\n checked={value === opt.value}\n disabled={opt.disabled}\n onChange={() => handleSelect(opt.value)}\n />\n <label\n htmlFor={`${name}-${opt.value}`}\n className={classNames('button-radio-with-info__tab', {\n 'button-radio-with-info__tab--disabled': opt.disabled,\n })}\n >\n {opt.label}\n {opt.badge != null && opt.badge !== '' ? (\n <span className=\"button-radio-with-info__badge\">{opt.badge}</span>\n ) : null}\n </label>\n </React.Fragment>\n ))}\n <span className=\"button-radio-with-info__glider\" aria-hidden />\n </div>\n </div>\n );\n },\n);\n\nButtonRadioWithInfo.displayName = 'ButtonRadioWithInfo';\n\nexport default ButtonRadioWithInfo;\n"],
4
+ "sourcesContent": ["import classNames from 'classnames';\nimport React, { useId, useMemo, useState } from 'react';\n\nimport './index.less';\n\nexport interface ButtonRadioWithInfoOption {\n label: React.ReactNode;\n value: string;\n /** 角标文案,如 SAVE 28% */\n badge?: React.ReactNode;\n disabled?: boolean;\n}\n\nexport interface ButtonRadioWithInfoProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {\n options: ButtonRadioWithInfoOption[];\n value?: string;\n defaultValue?: string;\n onChange?: (value: string) => void;\n}\n\nconst ButtonRadioWithInfo = React.forwardRef<HTMLDivElement, ButtonRadioWithInfoProps>(\n ({ options, value: valueProp, defaultValue, onChange, className, style, ...rest }, ref) => {\n const uid = useId().replace(/:/g, '');\n const name = `brwi-${uid}`;\n const [inner, setInner] = useState(() => defaultValue ?? options[0]?.value ?? '');\n const value = valueProp !== undefined ? valueProp : inner;\n\n const selectedIndex = useMemo(() => {\n const i = options.findIndex((o) => o.value === value);\n return i >= 0 ? i : 0;\n }, [options, value]);\n\n const handleSelect = (next: string) => {\n const opt = options.find((o) => o.value === next);\n if (opt?.disabled) return;\n if (valueProp === undefined) setInner(next);\n onChange?.(next);\n };\n\n if (!options.length) {\n return null;\n }\n\n return (\n <div\n ref={ref}\n className={classNames('button-radio-with-info', className)}\n style={\n {\n ...style,\n '--brwi-n': options.length,\n '--brwi-i': selectedIndex,\n } as React.CSSProperties\n }\n {...rest}\n >\n <div className='button-radio-with-info__tabs' role='radiogroup'>\n {options.map((opt) => (\n <React.Fragment key={opt.value}>\n <input\n type='radio'\n className='button-radio-with-info__input'\n id={`${name}-${opt.value}`}\n name={name}\n value={opt.value}\n checked={value === opt.value}\n disabled={opt.disabled}\n onChange={() => handleSelect(opt.value)}\n />\n <label\n htmlFor={`${name}-${opt.value}`}\n className={classNames('button-radio-with-info__tab', {\n 'button-radio-with-info__tab--disabled': opt.disabled,\n })}\n >\n {opt.label}\n {opt.badge != null && opt.badge !== '' ? (\n <span className='button-radio-with-info__badge'>{opt.badge}</span>\n ) : null}\n </label>\n </React.Fragment>\n ))}\n <span className='button-radio-with-info__glider' aria-hidden />\n </div>\n </div>\n );\n },\n);\n\nButtonRadioWithInfo.displayName = 'ButtonRadioWithInfo';\n\nexport default ButtonRadioWithInfo;\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAuB;AACvB,mBAAgD;AAEhD,mBAAO;AAiBP,IAAM,sBAAsB,aAAAA,QAAM;AAAA,EAChC,CAAC,EAAE,SAAS,OAAO,WAAW,cAAc,UAAU,WAAW,OAAO,GAAG,KAAK,GAAG,QAAQ;AACzF,UAAM,UAAM,oBAAM,EAAE,QAAQ,MAAM,EAAE;AACpC,UAAM,OAAO,QAAQ;AACrB,UAAM,CAAC,OAAO,QAAQ,QAAI,uBAAS,MAAG;AAxB1C;AAwB6C,+BAAgB,aAAQ,CAAC,MAAT,mBAAY,UAAS;AAAA,KAAE;AAChF,UAAM,QAAQ,cAAc,SAAY,YAAY;AAEpD,UAAM,oBAAgB,sBAAQ,MAAM;AAClC,YAAM,IAAI,QAAQ,UAAU,CAAC,MAAM,EAAE,UAAU,KAAK;AACpD,aAAO,KAAK,IAAI,IAAI;AAAA,IACtB,GAAG,CAAC,SAAS,KAAK,CAAC;AAEnB,UAAM,eAAe,CAAC,SAAiB;AACrC,YAAM,MAAM,QAAQ,KAAK,CAAC,MAAM,EAAE,UAAU,IAAI;AAChD,UAAI,2BAAK;AAAU;AACnB,UAAI,cAAc;AAAW,iBAAS,IAAI;AAC1C,2CAAW;AAAA,IACb;AAEA,QAAI,CAAC,QAAQ,QAAQ;AACnB,aAAO;AAAA,IACT;AAEA,WACE,6BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,eAAW,kBAAAC,SAAW,0BAA0B,SAAS;AAAA,QACzD,OACE;AAAA,UACE,GAAG;AAAA,UACH,YAAY,QAAQ;AAAA,UACpB,YAAY;AAAA,QACd;AAAA,QAED,GAAG;AAAA;AAAA,MAEJ,6BAAAD,QAAA,cAAC,SAAI,WAAU,gCAA+B,MAAK,gBAChD,QAAQ,IAAI,CAAC,QACZ,6BAAAA,QAAA,cAAC,aAAAA,QAAM,UAAN,EAAe,KAAK,IAAI,SACvB,6BAAAA,QAAA;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,WAAU;AAAA,UACV,IAAI,GAAG,QAAQ,IAAI;AAAA,UACnB;AAAA,UACA,OAAO,IAAI;AAAA,UACX,SAAS,UAAU,IAAI;AAAA,UACvB,UAAU,IAAI;AAAA,UACd,UAAU,MAAM,aAAa,IAAI,KAAK;AAAA;AAAA,MACxC,GACA,6BAAAA,QAAA;AAAA,QAAC;AAAA;AAAA,UACC,SAAS,GAAG,QAAQ,IAAI;AAAA,UACxB,eAAW,kBAAAC,SAAW,+BAA+B;AAAA,YACnD,yCAAyC,IAAI;AAAA,UAC/C,CAAC;AAAA;AAAA,QAEA,IAAI;AAAA,QACJ,IAAI,SAAS,QAAQ,IAAI,UAAU,KAClC,6BAAAD,QAAA,cAAC,UAAK,WAAU,mCAAiC,IAAI,KAAM,IACzD;AAAA,MACN,CACF,CACD,GACD,6BAAAA,QAAA,cAAC,UAAK,WAAU,kCAAiC,eAAW,MAAC,CAC/D;AAAA,IACF;AAAA,EAEJ;AACF;AAEA,oBAAoB,cAAc;AAElC,IAAO,8BAAQ;",
6
6
  "names": ["React", "classNames"]
7
7
  }
@@ -1,4 +1,4 @@
1
- import { ButtonProps } from 'antd';
1
+ import { type ButtonProps } from 'antd';
2
2
  import React from 'react';
3
3
  import './index.less';
4
4
  export interface ButtonWithProgressProps extends ButtonProps {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/creative/ButtonWithProgress/index.tsx"],
4
- "sourcesContent": ["import { Button, ButtonProps } from 'antd';\nimport classNames from 'classnames';\nimport React, { useMemo } from 'react';\nimport './index.less';\n\nexport interface ButtonWithProgressProps extends ButtonProps {\n progress?: number;\n progressColor?: string;\n progressing?: boolean;\n subtitle?: string;\n}\n\nconst ButtonWithProgress: React.FC<ButtonWithProgressProps> = ({\n children,\n progress = 0,\n progressColor = '#000000',\n progressing = false,\n subtitle = '',\n disabled,\n className,\n ...props\n}) => {\n const buttonProps = useMemo(() => {\n return {\n ...props,\n disabled: disabled || progressing,\n className: classNames('button-with-progress', className),\n };\n }, [props, disabled, progressing, className]);\n\n return (\n <Button {...buttonProps}>\n <div className='button-content'>\n {children && <div className='button-main-text'>{children}</div>}\n {subtitle && <div className='button-subtitle'>{subtitle}</div>}\n </div>\n {progress && progressing ? (\n <div\n className={classNames('progress-bar', {\n animate: progressing && !disabled,\n })}\n style={{\n backgroundColor: progressColor,\n animationDuration: `${progress / 1000}s`,\n }}\n />\n ) : null}\n </Button>\n );\n};\n\nexport default ButtonWithProgress;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAoC;AACpC,wBAAuB;AACvB,mBAA+B;AAC/B,mBAAO;AASP,IAAM,qBAAwD,CAAC;AAAA,EAC7D;AAAA,EACA,WAAW;AAAA,EACX,gBAAgB;AAAA,EAChB,cAAc;AAAA,EACd,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM,kBAAc,sBAAQ,MAAM;AAChC,WAAO;AAAA,MACL,GAAG;AAAA,MACH,UAAU,YAAY;AAAA,MACtB,eAAW,kBAAAA,SAAW,wBAAwB,SAAS;AAAA,IACzD;AAAA,EACF,GAAG,CAAC,OAAO,UAAU,aAAa,SAAS,CAAC;AAE5C,SACE,6BAAAC,QAAA,cAAC,sBAAQ,GAAG,eACV,6BAAAA,QAAA,cAAC,SAAI,WAAU,oBACZ,YAAY,6BAAAA,QAAA,cAAC,SAAI,WAAU,sBAAoB,QAAS,GACxD,YAAY,6BAAAA,QAAA,cAAC,SAAI,WAAU,qBAAmB,QAAS,CAC1D,GACC,YAAY,cACX,6BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,eAAW,kBAAAD,SAAW,gBAAgB;AAAA,QACpC,SAAS,eAAe,CAAC;AAAA,MAC3B,CAAC;AAAA,MACD,OAAO;AAAA,QACL,iBAAiB;AAAA,QACjB,mBAAmB,GAAG,WAAW;AAAA,MACnC;AAAA;AAAA,EACF,IACE,IACN;AAEJ;AAEA,IAAO,6BAAQ;",
4
+ "sourcesContent": ["import { Button, type ButtonProps } from 'antd';\nimport classNames from 'classnames';\nimport React, { useMemo } from 'react';\nimport './index.less';\n\nexport interface ButtonWithProgressProps extends ButtonProps {\n progress?: number;\n progressColor?: string;\n progressing?: boolean;\n subtitle?: string;\n}\n\nconst ButtonWithProgress: React.FC<ButtonWithProgressProps> = ({\n children,\n progress = 0,\n progressColor = '#000000',\n progressing = false,\n subtitle = '',\n disabled,\n className,\n ...props\n}) => {\n const buttonProps = useMemo(() => {\n return {\n ...props,\n disabled: disabled || progressing,\n className: classNames('button-with-progress', className),\n };\n }, [props, disabled, progressing, className]);\n\n return (\n <Button {...buttonProps}>\n <div className='button-content'>\n {children && <div className='button-main-text'>{children}</div>}\n {subtitle && <div className='button-subtitle'>{subtitle}</div>}\n </div>\n {progress && progressing ? (\n <div\n className={classNames('progress-bar', {\n animate: progressing && !disabled,\n })}\n style={{\n backgroundColor: progressColor,\n animationDuration: `${progress / 1000}s`,\n }}\n />\n ) : null}\n </Button>\n );\n};\n\nexport default ButtonWithProgress;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAyC;AACzC,wBAAuB;AACvB,mBAA+B;AAC/B,mBAAO;AASP,IAAM,qBAAwD,CAAC;AAAA,EAC7D;AAAA,EACA,WAAW;AAAA,EACX,gBAAgB;AAAA,EAChB,cAAc;AAAA,EACd,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM,kBAAc,sBAAQ,MAAM;AAChC,WAAO;AAAA,MACL,GAAG;AAAA,MACH,UAAU,YAAY;AAAA,MACtB,eAAW,kBAAAA,SAAW,wBAAwB,SAAS;AAAA,IACzD;AAAA,EACF,GAAG,CAAC,OAAO,UAAU,aAAa,SAAS,CAAC;AAE5C,SACE,6BAAAC,QAAA,cAAC,sBAAQ,GAAG,eACV,6BAAAA,QAAA,cAAC,SAAI,WAAU,oBACZ,YAAY,6BAAAA,QAAA,cAAC,SAAI,WAAU,sBAAoB,QAAS,GACxD,YAAY,6BAAAA,QAAA,cAAC,SAAI,WAAU,qBAAmB,QAAS,CAC1D,GACC,YAAY,cACX,6BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,eAAW,kBAAAD,SAAW,gBAAgB;AAAA,QACpC,SAAS,eAAe,CAAC;AAAA,MAC3B,CAAC;AAAA,MACD,OAAO;AAAA,QACL,iBAAiB;AAAA,QACjB,mBAAmB,GAAG,WAAW;AAAA,MACnC;AAAA;AAAA,EACF,IACE,IACN;AAEJ;AAEA,IAAO,6BAAQ;",
6
6
  "names": ["classNames", "React"]
7
7
  }
@@ -0,0 +1,24 @@
1
+ import React from 'react';
2
+ export type GlassSegmentOption = {
3
+ value: string;
4
+ label: React.ReactNode;
5
+ };
6
+ export type GlassSegmentedRadioProps = Omit<React.ComponentPropsWithoutRef<'div'>, 'onChange' | 'role' | 'children'> & {
7
+ options: GlassSegmentOption[];
8
+ value: string;
9
+ onChange: (value: string) => void;
10
+ goldShell?: boolean;
11
+ disabled?: boolean;
12
+ };
13
+ /**
14
+ * 毛玻璃分段单选:滑块随选中项平移,每一档对应独立渐变配色(银/金/铂等);容器在 `html[data-theme="light"]` 下为浅色毛玻璃。
15
+ * 请为分组设置 `aria-label` 或 `aria-labelledby` 以便读屏识别。
16
+ */
17
+ export declare const GlassSegmentedRadio: React.ForwardRefExoticComponent<Omit<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, "children" | "role" | "onChange"> & {
18
+ options: GlassSegmentOption[];
19
+ value: string;
20
+ onChange: (value: string) => void;
21
+ goldShell?: boolean;
22
+ disabled?: boolean;
23
+ } & React.RefAttributes<HTMLDivElement>>;
24
+ export default GlassSegmentedRadio;
@@ -0,0 +1,78 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // src/creative/GlassSegmentedRadio/index.tsx
30
+ var GlassSegmentedRadio_exports = {};
31
+ __export(GlassSegmentedRadio_exports, {
32
+ GlassSegmentedRadio: () => GlassSegmentedRadio,
33
+ default: () => GlassSegmentedRadio_default
34
+ });
35
+ module.exports = __toCommonJS(GlassSegmentedRadio_exports);
36
+ var import_classnames = __toESM(require("classnames"));
37
+ var import_react = __toESM(require("react"));
38
+ var import_index_module = __toESM(require("./index.module.less"));
39
+ var GlassSegmentedRadio = (0, import_react.forwardRef)(function GlassSegmentedRadio2({ options, value, onChange, className, goldShell, disabled, style, ...rest }, ref) {
40
+ const uid = (0, import_react.useId)().replace(/:/g, "");
41
+ const name = (0, import_react.useMemo)(() => `glass-seg-${uid}`, [uid]);
42
+ const count = Math.max(1, options.length);
43
+ return /* @__PURE__ */ import_react.default.createElement(
44
+ "div",
45
+ {
46
+ ref,
47
+ className: (0, import_classnames.default)(import_index_module.default.root, goldShell && import_index_module.default.rootAdGold, disabled && import_index_module.default.rootDisabled, className),
48
+ style: {
49
+ ...style,
50
+ ["--segment-count"]: String(count)
51
+ },
52
+ role: "radiogroup",
53
+ "aria-disabled": disabled || void 0,
54
+ ...rest
55
+ },
56
+ options.map((opt, i) => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, { key: opt.value }, /* @__PURE__ */ import_react.default.createElement(
57
+ "input",
58
+ {
59
+ type: "radio",
60
+ className: import_index_module.default.input,
61
+ name,
62
+ id: `${name}-${i}`,
63
+ value: opt.value,
64
+ checked: value === opt.value,
65
+ disabled,
66
+ onChange: () => onChange(opt.value)
67
+ }
68
+ ), /* @__PURE__ */ import_react.default.createElement("label", { className: import_index_module.default.label, htmlFor: `${name}-${i}` }, opt.label))),
69
+ /* @__PURE__ */ import_react.default.createElement("div", { className: import_index_module.default.glider, "aria-hidden": true })
70
+ );
71
+ });
72
+ GlassSegmentedRadio.displayName = "GlassSegmentedRadio";
73
+ var GlassSegmentedRadio_default = GlassSegmentedRadio;
74
+ // Annotate the CommonJS export names for ESM import in node:
75
+ 0 && (module.exports = {
76
+ GlassSegmentedRadio
77
+ });
78
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/creative/GlassSegmentedRadio/index.tsx"],
4
+ "sourcesContent": ["import classNames from 'classnames';\nimport React, { forwardRef, useId, useMemo } from 'react';\nimport styles from './index.module.less';\n\nexport type GlassSegmentOption = {\n value: string;\n label: React.ReactNode;\n};\n\nexport type GlassSegmentedRadioProps = Omit<React.ComponentPropsWithoutRef<'div'>, 'onChange' | 'role' | 'children'> & {\n options: GlassSegmentOption[];\n value: string;\n onChange: (value: string) => void;\n goldShell?: boolean;\n disabled?: boolean;\n};\n\n/**\n * 毛玻璃分段单选:滑块随选中项平移,每一档对应独立渐变配色(银/金/铂等);容器在 `html[data-theme=\"light\"]` 下为浅色毛玻璃。\n * 请为分组设置 `aria-label` 或 `aria-labelledby` 以便读屏识别。\n */\nexport const GlassSegmentedRadio = forwardRef<HTMLDivElement, GlassSegmentedRadioProps>(function GlassSegmentedRadio(\n { options, value, onChange, className, goldShell, disabled, style, ...rest },\n ref,\n) {\n const uid = useId().replace(/:/g, '');\n const name = useMemo(() => `glass-seg-${uid}`, [uid]);\n const count = Math.max(1, options.length);\n\n return (\n <div\n ref={ref}\n className={classNames(styles.root, goldShell && styles.rootAdGold, disabled && styles.rootDisabled, className)}\n style={\n {\n ...style,\n ['--segment-count' as string]: String(count),\n } as React.CSSProperties\n }\n role='radiogroup'\n aria-disabled={disabled || undefined}\n {...rest}\n >\n {options.map((opt, i) => (\n <React.Fragment key={opt.value}>\n <input\n type='radio'\n className={styles.input}\n name={name}\n id={`${name}-${i}`}\n value={opt.value}\n checked={value === opt.value}\n disabled={disabled}\n onChange={() => onChange(opt.value)}\n />\n <label className={styles.label} htmlFor={`${name}-${i}`}>\n {opt.label}\n </label>\n </React.Fragment>\n ))}\n <div className={styles.glider} aria-hidden />\n </div>\n );\n});\n\nGlassSegmentedRadio.displayName = 'GlassSegmentedRadio';\n\nexport default GlassSegmentedRadio;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAuB;AACvB,mBAAkD;AAClD,0BAAmB;AAmBZ,IAAM,0BAAsB,yBAAqD,SAASA,qBAC/F,EAAE,SAAS,OAAO,UAAU,WAAW,WAAW,UAAU,OAAO,GAAG,KAAK,GAC3E,KACA;AACA,QAAM,UAAM,oBAAM,EAAE,QAAQ,MAAM,EAAE;AACpC,QAAM,WAAO,sBAAQ,MAAM,aAAa,OAAO,CAAC,GAAG,CAAC;AACpD,QAAM,QAAQ,KAAK,IAAI,GAAG,QAAQ,MAAM;AAExC,SACE,6BAAAC,QAAA;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,eAAW,kBAAAC,SAAW,oBAAAC,QAAO,MAAM,aAAa,oBAAAA,QAAO,YAAY,YAAY,oBAAAA,QAAO,cAAc,SAAS;AAAA,MAC7G,OACE;AAAA,QACE,GAAG;AAAA,QACH,CAAC,iBAA2B,GAAG,OAAO,KAAK;AAAA,MAC7C;AAAA,MAEF,MAAK;AAAA,MACL,iBAAe,YAAY;AAAA,MAC1B,GAAG;AAAA;AAAA,IAEH,QAAQ,IAAI,CAAC,KAAK,MACjB,6BAAAF,QAAA,cAAC,aAAAA,QAAM,UAAN,EAAe,KAAK,IAAI,SACvB,6BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,WAAW,oBAAAE,QAAO;AAAA,QAClB;AAAA,QACA,IAAI,GAAG,QAAQ;AAAA,QACf,OAAO,IAAI;AAAA,QACX,SAAS,UAAU,IAAI;AAAA,QACvB;AAAA,QACA,UAAU,MAAM,SAAS,IAAI,KAAK;AAAA;AAAA,IACpC,GACA,6BAAAF,QAAA,cAAC,WAAM,WAAW,oBAAAE,QAAO,OAAO,SAAS,GAAG,QAAQ,OACjD,IAAI,KACP,CACF,CACD;AAAA,IACD,6BAAAF,QAAA,cAAC,SAAI,WAAW,oBAAAE,QAAO,QAAQ,eAAW,MAAC;AAAA,EAC7C;AAEJ,CAAC;AAED,oBAAoB,cAAc;AAElC,IAAO,8BAAQ;",
6
+ "names": ["GlassSegmentedRadio", "React", "classNames", "styles"]
7
+ }
@@ -0,0 +1,241 @@
1
+ /* 容器:参考 glass-radio-group 暗色毛玻璃;浅色主题单独覆盖 */
2
+ .root {
3
+ --segment-count: 2;
4
+ --glass-group-bg: rgba(255, 255, 255, 0.06);
5
+ --glass-group-text: #999;
6
+ --glass-group-text-hover: #666;
7
+ --glass-group-text-checked: #333;
8
+ --glass-group-border: rgba(255, 255, 255, 0.1);
9
+
10
+ display: flex;
11
+ position: relative;
12
+ width: fit-content;
13
+ max-width: 100%;
14
+ border-radius: 1rem;
15
+ backdrop-filter: blur(12px);
16
+ -webkit-backdrop-filter: blur(12px);
17
+ overflow: hidden;
18
+ border: 1px solid var(--glass-group-border);
19
+ font-family: var(--font-sans, system-ui, sans-serif);
20
+ background: var(--glass-group-bg);
21
+ box-shadow:
22
+ inset 1px 1px 4px rgba(255, 255, 255, 0.2),
23
+ inset -1px -1px 6px rgba(0, 0, 0, 0.3),
24
+ 0 4px 12px rgba(0, 0, 0, 0.15);
25
+ }
26
+
27
+ .rootDisabled {
28
+ opacity: 0.55;
29
+ pointer-events: none;
30
+ }
31
+
32
+ :global(html[data-theme="light"]) .root {
33
+ --glass-group-bg: rgba(255, 255, 255, 0.78);
34
+ --glass-group-text: rgba(0, 0, 0, 0.55);
35
+ --glass-group-text-hover: rgba(0, 0, 0, 0.88);
36
+ --glass-group-text-checked: rgba(0, 0, 0, 0.92);
37
+ --glass-group-border: var(--ln-border-subtle, rgba(0, 0, 0, 0.12));
38
+
39
+ box-shadow:
40
+ inset 1px 1px 3px rgba(255, 255, 255, 0.95),
41
+ inset -1px -1px 4px rgba(0, 0, 0, 0.05),
42
+ 0 2px 8px rgba(0, 0, 0, 0.06);
43
+ }
44
+
45
+ /* 保留可聚焦与读屏,不用 display:none */
46
+ .input {
47
+ position: absolute;
48
+ opacity: 0;
49
+ width: 0;
50
+ height: 0;
51
+ margin: 0;
52
+ pointer-events: none;
53
+ }
54
+
55
+ .label {
56
+ flex: 1;
57
+ display: flex;
58
+ align-items: center;
59
+ justify-content: center;
60
+ min-width: 80px;
61
+ font-size: 14px;
62
+ padding: 0.8rem 1.6rem;
63
+ cursor: pointer;
64
+ font-weight: 600;
65
+ letter-spacing: 0.3px;
66
+ color: var(--glass-group-text);
67
+ position: relative;
68
+ z-index: 2;
69
+ transition: color 0.3s ease-in-out;
70
+ user-select: none;
71
+ }
72
+
73
+ .label:hover {
74
+ color: var(--glass-group-text-hover);
75
+ }
76
+
77
+ .input:checked + .label {
78
+ color: var(--glass-group-text-checked);
79
+ }
80
+
81
+ .input:focus-visible + .label {
82
+ outline: 2px solid var(--ln-focus-ring, #1677ff);
83
+ outline-offset: 2px;
84
+ border-radius: 6px;
85
+ }
86
+
87
+ /* 滑块:宽度随段数变化;位移与配色由「第 n 个 input 选中」决定(translateX 百分比相对滑块自身宽度) */
88
+ .glider {
89
+ position: absolute;
90
+ top: 0;
91
+ bottom: 0;
92
+ left: 0;
93
+ width: calc(100% / var(--segment-count));
94
+ border-radius: 1rem;
95
+ z-index: 1;
96
+ pointer-events: none;
97
+ transform: translate3d(0%, 0, 0);
98
+ transition:
99
+ transform 0.5s cubic-bezier(0.37, 1.95, 0.66, 0.56),
100
+ background 0.4s ease-in-out,
101
+ box-shadow 0.4s ease-in-out;
102
+ background: linear-gradient(135deg, #c0c0c055, #e0e0e0);
103
+ box-shadow:
104
+ 0 0 18px rgba(192, 192, 192, 0.5),
105
+ 0 0 10px rgba(255, 255, 255, 0.4) inset;
106
+ }
107
+
108
+ /* 1 Silver */
109
+ .input:nth-of-type(1):checked ~ .glider {
110
+ transform: translate3d(0%, 0, 0);
111
+ background: linear-gradient(135deg, #c0c0c055, #e0e0e0);
112
+ box-shadow:
113
+ 0 0 18px rgba(192, 192, 192, 0.5),
114
+ 0 0 10px rgba(255, 255, 255, 0.4) inset;
115
+ }
116
+
117
+ /* 2 Gold */
118
+ .input:nth-of-type(2):checked ~ .glider {
119
+ transform: translate3d(100%, 0, 0);
120
+ background: linear-gradient(135deg, #ffd70055, #ffcc00);
121
+ box-shadow:
122
+ 0 0 18px rgba(255, 215, 0, 0.5),
123
+ 0 0 10px rgba(255, 235, 150, 0.4) inset;
124
+ }
125
+
126
+ /* 3 Platinum */
127
+ .input:nth-of-type(3):checked ~ .glider {
128
+ transform: translate3d(200%, 0, 0);
129
+ background: linear-gradient(135deg, #d0e7ff55, #a0d8ff);
130
+ box-shadow:
131
+ 0 0 18px rgba(160, 216, 255, 0.5),
132
+ 0 0 10px rgba(200, 240, 255, 0.4) inset;
133
+ }
134
+
135
+ /* 4 Rose */
136
+ .input:nth-of-type(4):checked ~ .glider {
137
+ transform: translate3d(300%, 0, 0);
138
+ background: linear-gradient(135deg, #ffb6c155, #ff7eb3);
139
+ box-shadow:
140
+ 0 0 18px rgba(255, 150, 180, 0.45),
141
+ 0 0 10px rgba(255, 220, 235, 0.35) inset;
142
+ }
143
+
144
+ /* 5 Emerald */
145
+ .input:nth-of-type(5):checked ~ .glider {
146
+ transform: translate3d(400%, 0, 0);
147
+ background: linear-gradient(135deg, #98fb9855, #3cb371);
148
+ box-shadow:
149
+ 0 0 18px rgba(80, 200, 120, 0.45),
150
+ 0 0 10px rgba(200, 255, 220, 0.35) inset;
151
+ }
152
+
153
+ /* 6 Violet */
154
+ .input:nth-of-type(6):checked ~ .glider {
155
+ transform: translate3d(500%, 0, 0);
156
+ background: linear-gradient(135deg, #e6e6fa55, #b388ff);
157
+ box-shadow:
158
+ 0 0 18px rgba(179, 136, 255, 0.5),
159
+ 0 0 10px rgba(230, 220, 255, 0.4) inset;
160
+ }
161
+
162
+ /* 7 Amber */
163
+ .input:nth-of-type(7):checked ~ .glider {
164
+ transform: translate3d(600%, 0, 0);
165
+ background: linear-gradient(135deg, #ffcc8055, #ff9933);
166
+ box-shadow:
167
+ 0 0 18px rgba(255, 160, 80, 0.45),
168
+ 0 0 10px rgba(255, 230, 200, 0.35) inset;
169
+ }
170
+
171
+ /* 8 Cyan */
172
+ .input:nth-of-type(8):checked ~ .glider {
173
+ transform: translate3d(700%, 0, 0);
174
+ background: linear-gradient(135deg, #80ffff55, #20b2aa);
175
+ box-shadow:
176
+ 0 0 18px rgba(64, 200, 190, 0.45),
177
+ 0 0 10px rgba(200, 255, 252, 0.35) inset;
178
+ }
179
+
180
+ /* 9+:与前几档区分,超出 8 项时仍可辨色 */
181
+ .input:nth-of-type(9):checked ~ .glider {
182
+ transform: translate3d(800%, 0, 0);
183
+ background: linear-gradient(135deg, #daa52055, #cd853f);
184
+ box-shadow:
185
+ 0 0 18px rgba(205, 133, 63, 0.45),
186
+ 0 0 10px rgba(255, 230, 200, 0.35) inset;
187
+ }
188
+
189
+ .input:nth-of-type(10):checked ~ .glider {
190
+ transform: translate3d(900%, 0, 0);
191
+ background: linear-gradient(135deg, #b0c4de55, #778899);
192
+ box-shadow:
193
+ 0 0 18px rgba(119, 136, 153, 0.45),
194
+ 0 0 10px rgba(220, 230, 240, 0.35) inset;
195
+ }
196
+
197
+ /* 11–12:再两档区分色;更多分段需再扩展或接受与第 1 档同视觉未匹配(应极少见) */
198
+ .input:nth-of-type(11):checked ~ .glider {
199
+ transform: translate3d(1000%, 0, 0);
200
+ background: linear-gradient(135deg, #f5deb355, #daa520);
201
+ box-shadow:
202
+ 0 0 18px rgba(218, 165, 32, 0.45),
203
+ 0 0 10px rgba(255, 245, 220, 0.35) inset;
204
+ }
205
+
206
+ .input:nth-of-type(12):checked ~ .glider {
207
+ transform: translate3d(1100%, 0, 0);
208
+ background: linear-gradient(135deg, #dda0dd55, #9370db);
209
+ box-shadow:
210
+ 0 0 18px rgba(147, 112, 219, 0.45),
211
+ 0 0 10px rgba(240, 230, 255, 0.35) inset;
212
+ }
213
+
214
+ /* 广告模式:只强化外框与底,不覆盖分段滑块配色(默认与暗色根一致) */
215
+ .rootAdGold {
216
+ background: linear-gradient(
217
+ 165deg,
218
+ rgba(201, 162, 39, 0.12) 0%,
219
+ rgba(255, 255, 255, 0.05) 50%,
220
+ rgba(230, 195, 92, 0.08) 100%
221
+ );
222
+ border-color: rgba(230, 195, 92, 0.25);
223
+ box-shadow:
224
+ inset 1px 1px 4px rgba(255, 255, 255, 0.1),
225
+ inset -1px -1px 6px rgba(0, 0, 0, 0.35),
226
+ 0 4px 16px rgba(201, 162, 39, 0.15);
227
+ }
228
+
229
+ :global(html[data-theme="light"]) .rootAdGold {
230
+ background: linear-gradient(
231
+ 165deg,
232
+ rgba(255, 248, 220, 0.55) 0%,
233
+ rgba(255, 255, 255, 0.82) 45%,
234
+ rgba(255, 252, 235, 0.75) 100%
235
+ );
236
+ border-color: rgba(201, 162, 39, 0.35);
237
+ box-shadow:
238
+ inset 1px 1px 3px rgba(255, 255, 255, 0.95),
239
+ inset -1px -1px 4px rgba(201, 162, 39, 0.08),
240
+ 0 2px 10px rgba(201, 162, 39, 0.12);
241
+ }
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const SkillsWriter: React.FC;
3
+ export default SkillsWriter;