@yh-ui/components 0.1.10 → 0.1.12

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 (386) hide show
  1. package/dist/ai-action-group/__tests__/ai-action-group.ssr.test.cjs +55 -0
  2. package/dist/ai-action-group/__tests__/ai-action-group.ssr.test.d.ts +1 -0
  3. package/dist/ai-action-group/__tests__/ai-action-group.ssr.test.mjs +39 -0
  4. package/dist/ai-action-group/__tests__/ai-action-group.test.cjs +149 -0
  5. package/dist/ai-action-group/__tests__/ai-action-group.test.d.ts +1 -0
  6. package/dist/ai-action-group/__tests__/ai-action-group.test.mjs +104 -0
  7. package/dist/ai-action-group/index.cjs +26 -0
  8. package/dist/ai-action-group/index.d.ts +3 -0
  9. package/dist/ai-action-group/index.mjs +5 -0
  10. package/dist/ai-action-group/src/ai-action-group.cjs +50 -0
  11. package/dist/ai-action-group/src/ai-action-group.css +517 -0
  12. package/dist/ai-action-group/src/ai-action-group.d.ts +55 -0
  13. package/dist/ai-action-group/src/ai-action-group.d.vue.ts +40 -0
  14. package/dist/ai-action-group/src/ai-action-group.mjs +44 -0
  15. package/dist/ai-action-group/src/ai-action-group.vue +602 -0
  16. package/dist/ai-action-group/src/ai-action-group.vue.d.ts +40 -0
  17. package/dist/ai-agent-card/__tests__/ai-agent-card.ssr.test.cjs +61 -0
  18. package/dist/ai-agent-card/__tests__/ai-agent-card.ssr.test.d.ts +1 -0
  19. package/dist/ai-agent-card/__tests__/ai-agent-card.ssr.test.mjs +65 -0
  20. package/dist/ai-agent-card/__tests__/ai-agent-card.test.cjs +70 -0
  21. package/dist/ai-agent-card/__tests__/ai-agent-card.test.d.ts +1 -0
  22. package/dist/ai-agent-card/__tests__/ai-agent-card.test.mjs +64 -0
  23. package/dist/ai-agent-card/index.cjs +26 -0
  24. package/dist/ai-agent-card/index.d.ts +3 -0
  25. package/dist/ai-agent-card/index.mjs +5 -0
  26. package/dist/ai-agent-card/src/ai-agent-card.cjs +74 -0
  27. package/dist/ai-agent-card/src/ai-agent-card.css +859 -0
  28. package/dist/ai-agent-card/src/ai-agent-card.d.ts +122 -0
  29. package/dist/ai-agent-card/src/ai-agent-card.d.vue.ts +62 -0
  30. package/dist/ai-agent-card/src/ai-agent-card.mjs +68 -0
  31. package/dist/ai-agent-card/src/ai-agent-card.vue +1029 -0
  32. package/dist/ai-agent-card/src/ai-agent-card.vue.d.ts +62 -0
  33. package/dist/ai-artifacts/__tests__/ai-artifacts.ssr.test.cjs +73 -0
  34. package/dist/ai-artifacts/__tests__/ai-artifacts.ssr.test.d.ts +1 -0
  35. package/dist/ai-artifacts/__tests__/ai-artifacts.ssr.test.mjs +68 -0
  36. package/dist/ai-artifacts/__tests__/ai-artifacts.test.cjs +128 -0
  37. package/dist/ai-artifacts/__tests__/ai-artifacts.test.d.ts +1 -0
  38. package/dist/ai-artifacts/__tests__/ai-artifacts.test.mjs +109 -0
  39. package/dist/ai-artifacts/index.cjs +26 -0
  40. package/dist/ai-artifacts/index.d.ts +3 -0
  41. package/dist/ai-artifacts/index.mjs +5 -0
  42. package/dist/ai-artifacts/src/ai-artifacts.cjs +55 -0
  43. package/dist/ai-artifacts/src/ai-artifacts.css +633 -0
  44. package/dist/ai-artifacts/src/ai-artifacts.d.ts +93 -0
  45. package/dist/ai-artifacts/src/ai-artifacts.d.vue.ts +33 -0
  46. package/dist/ai-artifacts/src/ai-artifacts.mjs +49 -0
  47. package/dist/ai-artifacts/src/ai-artifacts.vue +803 -0
  48. package/dist/ai-artifacts/src/ai-artifacts.vue.d.ts +33 -0
  49. package/dist/ai-bubble/__tests__/ai-bubble.ssr.test.cjs +87 -0
  50. package/dist/ai-bubble/__tests__/ai-bubble.ssr.test.d.ts +1 -0
  51. package/dist/ai-bubble/__tests__/ai-bubble.ssr.test.mjs +58 -0
  52. package/dist/ai-bubble/__tests__/ai-bubble.test.cjs +227 -0
  53. package/dist/ai-bubble/__tests__/ai-bubble.test.d.ts +1 -0
  54. package/dist/ai-bubble/__tests__/ai-bubble.test.mjs +123 -0
  55. package/dist/ai-bubble/index.cjs +26 -0
  56. package/dist/ai-bubble/index.d.ts +3 -0
  57. package/dist/ai-bubble/index.mjs +5 -0
  58. package/dist/ai-bubble/src/ai-bubble.cjs +86 -0
  59. package/dist/ai-bubble/src/ai-bubble.css +932 -0
  60. package/dist/ai-bubble/src/ai-bubble.d.ts +126 -0
  61. package/dist/ai-bubble/src/ai-bubble.d.vue.ts +110 -0
  62. package/dist/ai-bubble/src/ai-bubble.mjs +80 -0
  63. package/dist/ai-bubble/src/ai-bubble.vue +1300 -0
  64. package/dist/ai-bubble/src/ai-bubble.vue.d.ts +110 -0
  65. package/dist/ai-chat/__tests__/ai-chat.ssr.test.cjs +82 -0
  66. package/dist/ai-chat/__tests__/ai-chat.ssr.test.d.ts +1 -0
  67. package/dist/ai-chat/__tests__/ai-chat.ssr.test.mjs +69 -0
  68. package/dist/ai-chat/__tests__/ai-chat.test.cjs +169 -0
  69. package/dist/ai-chat/__tests__/ai-chat.test.d.ts +1 -0
  70. package/dist/ai-chat/__tests__/ai-chat.test.mjs +121 -0
  71. package/dist/ai-chat/index.cjs +26 -0
  72. package/dist/ai-chat/index.d.ts +3 -0
  73. package/dist/ai-chat/index.mjs +5 -0
  74. package/dist/ai-chat/src/ai-chat.cjs +41 -0
  75. package/dist/ai-chat/src/ai-chat.css +503 -0
  76. package/dist/ai-chat/src/ai-chat.d.ts +57 -0
  77. package/dist/ai-chat/src/ai-chat.d.vue.ts +43 -0
  78. package/dist/ai-chat/src/ai-chat.mjs +35 -0
  79. package/dist/ai-chat/src/ai-chat.vue +606 -0
  80. package/dist/ai-chat/src/ai-chat.vue.d.ts +43 -0
  81. package/dist/ai-code-block/__tests__/ai-code-block.ssr.test.cjs +66 -0
  82. package/dist/ai-code-block/__tests__/ai-code-block.ssr.test.d.ts +1 -0
  83. package/dist/ai-code-block/__tests__/ai-code-block.ssr.test.mjs +48 -0
  84. package/dist/ai-code-block/__tests__/ai-code-block.test.cjs +174 -0
  85. package/dist/ai-code-block/__tests__/ai-code-block.test.d.ts +1 -0
  86. package/dist/ai-code-block/__tests__/ai-code-block.test.mjs +108 -0
  87. package/dist/ai-code-block/index.cjs +26 -0
  88. package/dist/ai-code-block/index.d.ts +3 -0
  89. package/dist/ai-code-block/index.mjs +5 -0
  90. package/dist/ai-code-block/src/ai-code-block.cjs +79 -0
  91. package/dist/ai-code-block/src/ai-code-block.css +589 -0
  92. package/dist/ai-code-block/src/ai-code-block.d.ts +76 -0
  93. package/dist/ai-code-block/src/ai-code-block.d.vue.ts +63 -0
  94. package/dist/ai-code-block/src/ai-code-block.mjs +73 -0
  95. package/dist/ai-code-block/src/ai-code-block.vue +706 -0
  96. package/dist/ai-code-block/src/ai-code-block.vue.d.ts +63 -0
  97. package/dist/ai-conversations/__tests__/ai-conversations.ssr.test.cjs +50 -0
  98. package/dist/ai-conversations/__tests__/ai-conversations.ssr.test.d.ts +1 -0
  99. package/dist/ai-conversations/__tests__/ai-conversations.ssr.test.mjs +42 -0
  100. package/dist/ai-conversations/__tests__/ai-conversations.test.cjs +67 -0
  101. package/dist/ai-conversations/__tests__/ai-conversations.test.d.ts +1 -0
  102. package/dist/ai-conversations/__tests__/ai-conversations.test.mjs +51 -0
  103. package/dist/ai-conversations/index.cjs +26 -0
  104. package/dist/ai-conversations/index.d.ts +3 -0
  105. package/dist/ai-conversations/index.mjs +5 -0
  106. package/dist/ai-conversations/src/ai-conversations.cjs +69 -0
  107. package/dist/ai-conversations/src/ai-conversations.css +679 -0
  108. package/dist/ai-conversations/src/ai-conversations.d.ts +67 -0
  109. package/dist/ai-conversations/src/ai-conversations.d.vue.ts +52 -0
  110. package/dist/ai-conversations/src/ai-conversations.mjs +63 -0
  111. package/dist/ai-conversations/src/ai-conversations.vue +949 -0
  112. package/dist/ai-conversations/src/ai-conversations.vue.d.ts +52 -0
  113. package/dist/ai-editor-sender/__tests__/ai-editor-sender.ssr.test.cjs +62 -0
  114. package/dist/ai-editor-sender/__tests__/ai-editor-sender.ssr.test.d.ts +1 -0
  115. package/dist/ai-editor-sender/__tests__/ai-editor-sender.ssr.test.mjs +50 -0
  116. package/dist/ai-editor-sender/__tests__/ai-editor-sender.test.cjs +315 -0
  117. package/dist/ai-editor-sender/__tests__/ai-editor-sender.test.d.ts +1 -0
  118. package/dist/ai-editor-sender/__tests__/ai-editor-sender.test.mjs +226 -0
  119. package/dist/ai-editor-sender/index.cjs +26 -0
  120. package/dist/ai-editor-sender/index.d.ts +3 -0
  121. package/dist/ai-editor-sender/index.mjs +5 -0
  122. package/dist/ai-editor-sender/src/ai-editor-sender.cjs +66 -0
  123. package/dist/ai-editor-sender/src/ai-editor-sender.css +566 -0
  124. package/dist/ai-editor-sender/src/ai-editor-sender.d.ts +70 -0
  125. package/dist/ai-editor-sender/src/ai-editor-sender.d.vue.ts +70 -0
  126. package/dist/ai-editor-sender/src/ai-editor-sender.mjs +60 -0
  127. package/dist/ai-editor-sender/src/ai-editor-sender.vue +713 -0
  128. package/dist/ai-editor-sender/src/ai-editor-sender.vue.d.ts +70 -0
  129. package/dist/ai-prompts/__tests__/ai-prompts.ssr.test.cjs +49 -0
  130. package/dist/ai-prompts/__tests__/ai-prompts.ssr.test.d.ts +1 -0
  131. package/dist/ai-prompts/__tests__/ai-prompts.ssr.test.mjs +41 -0
  132. package/dist/ai-prompts/__tests__/ai-prompts.test.cjs +54 -0
  133. package/dist/ai-prompts/__tests__/ai-prompts.test.d.ts +1 -0
  134. package/dist/ai-prompts/__tests__/ai-prompts.test.mjs +38 -0
  135. package/dist/ai-prompts/index.cjs +26 -0
  136. package/dist/ai-prompts/index.d.ts +3 -0
  137. package/dist/ai-prompts/index.mjs +5 -0
  138. package/dist/ai-prompts/src/ai-prompts.cjs +42 -0
  139. package/dist/ai-prompts/src/ai-prompts.css +572 -0
  140. package/dist/ai-prompts/src/ai-prompts.d.ts +45 -0
  141. package/dist/ai-prompts/src/ai-prompts.d.vue.ts +44 -0
  142. package/dist/ai-prompts/src/ai-prompts.mjs +36 -0
  143. package/dist/ai-prompts/src/ai-prompts.vue +646 -0
  144. package/dist/ai-prompts/src/ai-prompts.vue.d.ts +44 -0
  145. package/dist/ai-provider/__tests__/ai-provider.ssr.test.cjs +33 -0
  146. package/dist/ai-provider/__tests__/ai-provider.ssr.test.d.ts +1 -0
  147. package/dist/ai-provider/__tests__/ai-provider.ssr.test.mjs +34 -0
  148. package/dist/ai-provider/__tests__/ai-provider.test.cjs +38 -0
  149. package/dist/ai-provider/__tests__/ai-provider.test.d.ts +1 -0
  150. package/dist/ai-provider/__tests__/ai-provider.test.mjs +33 -0
  151. package/dist/ai-provider/index.cjs +38 -0
  152. package/dist/ai-provider/index.d.ts +4 -0
  153. package/dist/ai-provider/index.mjs +6 -0
  154. package/dist/ai-provider/src/ai-provider.cjs +7 -0
  155. package/dist/ai-provider/src/ai-provider.d.ts +88 -0
  156. package/dist/ai-provider/src/ai-provider.d.vue.ts +48 -0
  157. package/dist/ai-provider/src/ai-provider.mjs +1 -0
  158. package/dist/ai-provider/src/ai-provider.vue +24 -0
  159. package/dist/ai-provider/src/ai-provider.vue.d.ts +48 -0
  160. package/dist/ai-provider/src/use-ai-provider.cjs +11 -0
  161. package/dist/ai-provider/src/use-ai-provider.d.ts +10 -0
  162. package/dist/ai-provider/src/use-ai-provider.mjs +5 -0
  163. package/dist/ai-sender/__tests__/ai-sender.ssr.test.cjs +46 -0
  164. package/dist/ai-sender/__tests__/ai-sender.ssr.test.d.ts +1 -0
  165. package/dist/ai-sender/__tests__/ai-sender.ssr.test.mjs +37 -0
  166. package/dist/ai-sender/__tests__/ai-sender.test.cjs +388 -0
  167. package/dist/ai-sender/__tests__/ai-sender.test.d.ts +1 -0
  168. package/dist/ai-sender/__tests__/ai-sender.test.mjs +248 -0
  169. package/dist/ai-sender/index.cjs +26 -0
  170. package/dist/ai-sender/index.d.ts +3 -0
  171. package/dist/ai-sender/index.mjs +5 -0
  172. package/dist/ai-sender/src/ai-sender.cjs +91 -0
  173. package/dist/ai-sender/src/ai-sender.css +754 -0
  174. package/dist/ai-sender/src/ai-sender.d.ts +140 -0
  175. package/dist/ai-sender/src/ai-sender.d.vue.ts +69 -0
  176. package/dist/ai-sender/src/ai-sender.mjs +85 -0
  177. package/dist/ai-sender/src/ai-sender.vue +1032 -0
  178. package/dist/ai-sender/src/ai-sender.vue.d.ts +69 -0
  179. package/dist/ai-sources/__tests__/ai-sources.ssr.test.cjs +72 -0
  180. package/dist/ai-sources/__tests__/ai-sources.ssr.test.d.ts +1 -0
  181. package/dist/ai-sources/__tests__/ai-sources.ssr.test.mjs +82 -0
  182. package/dist/ai-sources/__tests__/ai-sources.test.cjs +93 -0
  183. package/dist/ai-sources/__tests__/ai-sources.test.d.ts +1 -0
  184. package/dist/ai-sources/__tests__/ai-sources.test.mjs +89 -0
  185. package/dist/ai-sources/index.cjs +26 -0
  186. package/dist/ai-sources/index.d.ts +3 -0
  187. package/dist/ai-sources/index.mjs +5 -0
  188. package/dist/ai-sources/src/ai-sources.cjs +59 -0
  189. package/dist/ai-sources/src/ai-sources.css +830 -0
  190. package/dist/ai-sources/src/ai-sources.d.ts +79 -0
  191. package/dist/ai-sources/src/ai-sources.d.vue.ts +45 -0
  192. package/dist/ai-sources/src/ai-sources.mjs +53 -0
  193. package/dist/ai-sources/src/ai-sources.vue +1109 -0
  194. package/dist/ai-sources/src/ai-sources.vue.d.ts +45 -0
  195. package/dist/ai-thinking/__tests__/ai-thinking.ssr.test.cjs +56 -0
  196. package/dist/ai-thinking/__tests__/ai-thinking.ssr.test.d.ts +1 -0
  197. package/dist/ai-thinking/__tests__/ai-thinking.ssr.test.mjs +42 -0
  198. package/dist/ai-thinking/__tests__/ai-thinking.test.cjs +151 -0
  199. package/dist/ai-thinking/__tests__/ai-thinking.test.d.ts +1 -0
  200. package/dist/ai-thinking/__tests__/ai-thinking.test.mjs +96 -0
  201. package/dist/ai-thinking/index.cjs +26 -0
  202. package/dist/ai-thinking/index.d.ts +3 -0
  203. package/dist/ai-thinking/index.mjs +5 -0
  204. package/dist/ai-thinking/src/ai-thinking.cjs +44 -0
  205. package/dist/ai-thinking/src/ai-thinking.css +543 -0
  206. package/dist/ai-thinking/src/ai-thinking.d.ts +42 -0
  207. package/dist/ai-thinking/src/ai-thinking.d.vue.ts +33 -0
  208. package/dist/ai-thinking/src/ai-thinking.mjs +38 -0
  209. package/dist/ai-thinking/src/ai-thinking.vue +631 -0
  210. package/dist/ai-thinking/src/ai-thinking.vue.d.ts +33 -0
  211. package/dist/ai-thought-chain/__tests__/ai-thought-chain.ssr.test.cjs +83 -0
  212. package/dist/ai-thought-chain/__tests__/ai-thought-chain.ssr.test.d.ts +1 -0
  213. package/dist/ai-thought-chain/__tests__/ai-thought-chain.ssr.test.mjs +52 -0
  214. package/dist/ai-thought-chain/__tests__/ai-thought-chain.test.cjs +204 -0
  215. package/dist/ai-thought-chain/__tests__/ai-thought-chain.test.d.ts +1 -0
  216. package/dist/ai-thought-chain/__tests__/ai-thought-chain.test.mjs +134 -0
  217. package/dist/ai-thought-chain/index.cjs +26 -0
  218. package/dist/ai-thought-chain/index.d.ts +3 -0
  219. package/dist/ai-thought-chain/index.mjs +5 -0
  220. package/dist/ai-thought-chain/src/ai-thought-chain.cjs +68 -0
  221. package/dist/ai-thought-chain/src/ai-thought-chain.css +668 -0
  222. package/dist/ai-thought-chain/src/ai-thought-chain.d.ts +82 -0
  223. package/dist/ai-thought-chain/src/ai-thought-chain.d.vue.ts +83 -0
  224. package/dist/ai-thought-chain/src/ai-thought-chain.mjs +62 -0
  225. package/dist/ai-thought-chain/src/ai-thought-chain.vue +813 -0
  226. package/dist/ai-thought-chain/src/ai-thought-chain.vue.d.ts +83 -0
  227. package/dist/ai-voice-trigger/__tests__/ai-voice-trigger.ssr.test.cjs +32 -0
  228. package/dist/ai-voice-trigger/__tests__/ai-voice-trigger.ssr.test.d.ts +1 -0
  229. package/dist/ai-voice-trigger/__tests__/ai-voice-trigger.ssr.test.mjs +25 -0
  230. package/dist/ai-voice-trigger/__tests__/ai-voice-trigger.test.cjs +113 -0
  231. package/dist/ai-voice-trigger/__tests__/ai-voice-trigger.test.d.ts +1 -0
  232. package/dist/ai-voice-trigger/__tests__/ai-voice-trigger.test.mjs +93 -0
  233. package/dist/ai-voice-trigger/index.cjs +26 -0
  234. package/dist/ai-voice-trigger/index.d.ts +3 -0
  235. package/dist/ai-voice-trigger/index.mjs +5 -0
  236. package/dist/ai-voice-trigger/src/ai-voice-trigger.cjs +35 -0
  237. package/dist/ai-voice-trigger/src/ai-voice-trigger.css +603 -0
  238. package/dist/ai-voice-trigger/src/ai-voice-trigger.d.ts +37 -0
  239. package/dist/ai-voice-trigger/src/ai-voice-trigger.d.vue.ts +29 -0
  240. package/dist/ai-voice-trigger/src/ai-voice-trigger.mjs +29 -0
  241. package/dist/ai-voice-trigger/src/ai-voice-trigger.vue +708 -0
  242. package/dist/ai-voice-trigger/src/ai-voice-trigger.vue.d.ts +29 -0
  243. package/dist/ai-welcome/__tests__/ai-welcome.ssr.test.cjs +57 -0
  244. package/dist/ai-welcome/__tests__/ai-welcome.ssr.test.d.ts +1 -0
  245. package/dist/ai-welcome/__tests__/ai-welcome.ssr.test.mjs +39 -0
  246. package/dist/ai-welcome/__tests__/ai-welcome.test.cjs +169 -0
  247. package/dist/ai-welcome/__tests__/ai-welcome.test.d.ts +1 -0
  248. package/dist/ai-welcome/__tests__/ai-welcome.test.mjs +113 -0
  249. package/dist/ai-welcome/index.cjs +26 -0
  250. package/dist/ai-welcome/index.d.ts +3 -0
  251. package/dist/ai-welcome/index.mjs +5 -0
  252. package/dist/ai-welcome/src/ai-welcome.cjs +56 -0
  253. package/dist/ai-welcome/src/ai-welcome.css +591 -0
  254. package/dist/ai-welcome/src/ai-welcome.d.ts +59 -0
  255. package/dist/ai-welcome/src/ai-welcome.d.vue.ts +51 -0
  256. package/dist/ai-welcome/src/ai-welcome.mjs +50 -0
  257. package/dist/ai-welcome/src/ai-welcome.vue +655 -0
  258. package/dist/ai-welcome/src/ai-welcome.vue.d.ts +51 -0
  259. package/dist/alert/src/alert.d.vue.ts +5 -5
  260. package/dist/alert/src/alert.vue.d.ts +5 -5
  261. package/dist/autocomplete/src/autocomplete.d.vue.ts +2 -2
  262. package/dist/autocomplete/src/autocomplete.vue.d.ts +2 -2
  263. package/dist/avatar/index.d.ts +39 -1
  264. package/dist/back-top/src/back-top.d.vue.ts +1 -1
  265. package/dist/back-top/src/back-top.vue.d.ts +1 -1
  266. package/dist/button/index.d.ts +3 -3
  267. package/dist/button/src/button.css +3 -3
  268. package/dist/button/src/button.d.vue.ts +1 -1
  269. package/dist/button/src/button.vue +3 -3
  270. package/dist/button/src/button.vue.d.ts +1 -1
  271. package/dist/calendar/src/calendar.d.vue.ts +2 -2
  272. package/dist/calendar/src/calendar.vue.d.ts +2 -2
  273. package/dist/cascader/src/cascader-panel.d.vue.ts +2 -2
  274. package/dist/cascader/src/cascader-panel.vue.d.ts +2 -2
  275. package/dist/checkbox/index.d.ts +3 -3
  276. package/dist/checkbox/src/checkbox-group.d.vue.ts +1 -1
  277. package/dist/checkbox/src/checkbox-group.vue +13 -1
  278. package/dist/checkbox/src/checkbox-group.vue.d.ts +1 -1
  279. package/dist/checkbox/src/checkbox.d.ts +12 -0
  280. package/dist/col/src/col.d.vue.ts +4 -4
  281. package/dist/col/src/col.vue.d.ts +4 -4
  282. package/dist/color-picker/src/color-picker.d.vue.ts +1 -1
  283. package/dist/color-picker/src/color-picker.vue.d.ts +1 -1
  284. package/dist/component.d.ts +63 -0
  285. package/dist/date-picker/src/date-picker.d.vue.ts +4 -4
  286. package/dist/date-picker/src/date-picker.vue.d.ts +4 -4
  287. package/dist/descriptions/src/description-item.d.vue.ts +1 -1
  288. package/dist/descriptions/src/description-item.vue.d.ts +1 -1
  289. package/dist/dialog/src/dialog.d.vue.ts +6 -6
  290. package/dist/dialog/src/dialog.vue.d.ts +6 -6
  291. package/dist/drawer/src/drawer.d.vue.ts +3 -3
  292. package/dist/drawer/src/drawer.vue.d.ts +3 -3
  293. package/dist/dropdown/src/dropdown-item.d.vue.ts +1 -1
  294. package/dist/dropdown/src/dropdown-item.vue.d.ts +1 -1
  295. package/dist/dropdown/src/dropdown.d.vue.ts +8 -8
  296. package/dist/dropdown/src/dropdown.vue.d.ts +8 -8
  297. package/dist/form/__tests__/form-schema.test.cjs +477 -24
  298. package/dist/form/__tests__/form-schema.test.mjs +277 -57
  299. package/dist/form/index.cjs +12 -0
  300. package/dist/form/index.d.ts +1 -2
  301. package/dist/form/index.mjs +1 -0
  302. package/dist/form/src/form-item.d.vue.ts +2 -1
  303. package/dist/form/src/form-item.vue +3 -1
  304. package/dist/form/src/form-item.vue.d.ts +2 -1
  305. package/dist/form/src/form-schema.cjs +2 -1
  306. package/dist/form/src/form-schema.d.ts +124 -19
  307. package/dist/form/src/form-schema.d.vue.ts +69 -19
  308. package/dist/form/src/form-schema.mjs +2 -1
  309. package/dist/form/src/form-schema.vue +522 -160
  310. package/dist/form/src/form-schema.vue.d.ts +69 -19
  311. package/dist/form/src/form.cjs +7 -0
  312. package/dist/form/src/form.d.ts +20 -0
  313. package/dist/form/src/form.d.vue.ts +10 -1
  314. package/dist/form/src/form.mjs +7 -0
  315. package/dist/form/src/form.vue +22 -10
  316. package/dist/form/src/form.vue.d.ts +10 -1
  317. package/dist/grid/src/grid.d.vue.ts +1 -1
  318. package/dist/grid/src/grid.vue.d.ts +1 -1
  319. package/dist/icon/src/icons/index.cjs +122 -2
  320. package/dist/icon/src/icons/index.d.ts +24 -0
  321. package/dist/icon/src/icons/index.mjs +145 -1
  322. package/dist/image/index.d.ts +356 -2
  323. package/dist/image/src/image-viewer.d.vue.ts +3 -3
  324. package/dist/image/src/image-viewer.vue.d.ts +3 -3
  325. package/dist/image/src/image.d.vue.ts +4 -4
  326. package/dist/image/src/image.vue.d.ts +4 -4
  327. package/dist/index.cjs +193 -1
  328. package/dist/index.d.ts +16 -0
  329. package/dist/index.mjs +49 -1
  330. package/dist/input/index.d.ts +18 -18
  331. package/dist/input/src/input.d.vue.ts +6 -6
  332. package/dist/input/src/input.vue.d.ts +6 -6
  333. package/dist/input-tag/src/input-tag.d.vue.ts +2 -2
  334. package/dist/input-tag/src/input-tag.vue.d.ts +2 -2
  335. package/dist/mention/src/mention.d.vue.ts +8 -8
  336. package/dist/mention/src/mention.vue.d.ts +8 -8
  337. package/dist/menu/src/menu.d.vue.ts +4 -4
  338. package/dist/menu/src/menu.vue.d.ts +4 -4
  339. package/dist/message/src/message.d.vue.ts +1 -1
  340. package/dist/message/src/message.vue.d.ts +1 -1
  341. package/dist/popconfirm/src/popconfirm.d.vue.ts +5 -5
  342. package/dist/popconfirm/src/popconfirm.vue.d.ts +5 -5
  343. package/dist/popover/src/popover.d.vue.ts +4 -4
  344. package/dist/popover/src/popover.vue.d.ts +4 -4
  345. package/dist/progress/src/progress.d.vue.ts +1 -1
  346. package/dist/progress/src/progress.vue.d.ts +1 -1
  347. package/dist/radio/src/radio-group.d.vue.ts +1 -1
  348. package/dist/radio/src/radio-group.vue +25 -4
  349. package/dist/radio/src/radio-group.vue.d.ts +1 -1
  350. package/dist/radio/src/radio.d.ts +12 -0
  351. package/dist/rate/src/rate.d.vue.ts +1 -1
  352. package/dist/rate/src/rate.vue.d.ts +1 -1
  353. package/dist/select/src/select.d.vue.ts +1 -1
  354. package/dist/select/src/select.vue.d.ts +1 -1
  355. package/dist/skeleton/src/skeleton.d.vue.ts +1 -1
  356. package/dist/skeleton/src/skeleton.vue.d.ts +1 -1
  357. package/dist/slider/src/slider.d.vue.ts +1 -1
  358. package/dist/slider/src/slider.vue.d.ts +1 -1
  359. package/dist/steps/src/step.d.vue.ts +1 -1
  360. package/dist/steps/src/step.vue.d.ts +1 -1
  361. package/dist/switch/src/switch.d.vue.ts +2 -2
  362. package/dist/switch/src/switch.vue.d.ts +2 -2
  363. package/dist/table/__tests__/table.perf.test.cjs +2 -2
  364. package/dist/table/__tests__/table.perf.test.mjs +2 -2
  365. package/dist/table/__tests__/table.test.cjs +18 -0
  366. package/dist/table/__tests__/table.test.mjs +18 -0
  367. package/dist/table/__tests__/use-table-import.test.cjs +6 -0
  368. package/dist/table/__tests__/use-table-import.test.mjs +8 -1
  369. package/dist/table/src/table-column.d.vue.ts +1 -1
  370. package/dist/table/src/table-column.vue.d.ts +1 -1
  371. package/dist/table/src/table.d.vue.ts +1 -1
  372. package/dist/table/src/table.vue.d.ts +1 -1
  373. package/dist/tabs/src/tab-pane.d.vue.ts +1 -1
  374. package/dist/tabs/src/tab-pane.vue.d.ts +1 -1
  375. package/dist/tabs/src/tabs.d.vue.ts +2 -2
  376. package/dist/tabs/src/tabs.vue.d.ts +2 -2
  377. package/dist/tooltip/index.d.ts +7 -7
  378. package/dist/tooltip/src/tooltip.d.vue.ts +7 -7
  379. package/dist/tooltip/src/tooltip.vue.d.ts +7 -7
  380. package/dist/tree/src/tree.d.vue.ts +1 -1
  381. package/dist/tree/src/tree.vue.d.ts +1 -1
  382. package/dist/tree-select/src/tree-select.d.vue.ts +3 -3
  383. package/dist/tree-select/src/tree-select.vue.d.ts +3 -3
  384. package/dist/upload/src/upload.d.vue.ts +1 -1
  385. package/dist/upload/src/upload.vue.d.ts +1 -1
  386. package/package.json +8 -5
@@ -7,16 +7,33 @@ var _vue = require("vue");
7
7
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
8
8
  const YhInput = {
9
9
  name: "YhInput",
10
- props: ["modelValue", "placeholder"],
11
- template: `<input class="yh-input" :value="modelValue" @input="$emit('update:modelValue', $event.target.value)" :placeholder="placeholder" />`
10
+ props: ["modelValue", "placeholder", "disabled"],
11
+ template: `<input class="yh-input" :value="modelValue" @input="$emit('update:modelValue', $event.target.value)" :placeholder="placeholder" :disabled="disabled" />`
12
12
  };
13
13
  const YhSelect = {
14
14
  name: "YhSelect",
15
- props: ["modelValue", "options"],
15
+ props: ["modelValue", "options", "loading"],
16
16
  template: `<select class="yh-select" :value="modelValue" @change="$emit('update:modelValue', $event.target.value)"><option v-for="opt in options" :key="opt.value" :value="opt.value">{{opt.label}}</option></select>`
17
17
  };
18
+ const YhSwitch = {
19
+ name: "YhSwitch",
20
+ props: ["modelValue"],
21
+ template: `<input type="checkbox" class="yh-switch" :checked="modelValue" @change="$emit('update:modelValue', $event.target.checked)" />`
22
+ };
23
+ const YhButton = {
24
+ name: "YhButton",
25
+ props: ["type", "text", "disabled"],
26
+ emits: ["click"],
27
+ template: `<button class="yh-button" :disabled="disabled" @click="$emit('click')"><slot /></button>`
28
+ };
29
+ const globalComponents = {
30
+ "yh-input": YhInput,
31
+ "yh-select": YhSelect,
32
+ "yh-switch": YhSwitch,
33
+ "yh-button": YhButton
34
+ };
18
35
  (0, _vitest.describe)("FormSchema", () => {
19
- (0, _vitest.it)("basic rendering based on schema", async () => {
36
+ (0, _vitest.it)("\u57FA\u7840\u6E32\u67D3 - \u6309 schema \u6E32\u67D3\u8868\u5355\u9879", async () => {
20
37
  const model = {
21
38
  username: "ant",
22
39
  role: ""
@@ -35,16 +52,14 @@ const YhSelect = {
35
52
  schema
36
53
  },
37
54
  global: {
38
- components: {
39
- "yh-input": YhInput
40
- }
55
+ components: globalComponents
41
56
  }
42
57
  });
43
58
  (0, _vitest.expect)(wrapper.find(".yh-form").exists()).toBe(true);
44
59
  const input = wrapper.find("input");
45
60
  (0, _vitest.expect)(input.attributes("placeholder")).toBe("Enter username");
46
61
  });
47
- (0, _vitest.it)("handles value updates and v-model synchronization", async () => {
62
+ (0, _vitest.it)("\u53CC\u5411\u7ED1\u5B9A - v-model \u540C\u6B65\u66F4\u65B0", async () => {
48
63
  const model = {
49
64
  username: ""
50
65
  };
@@ -58,9 +73,7 @@ const YhSelect = {
58
73
  schema
59
74
  },
60
75
  global: {
61
- components: {
62
- "yh-input": YhInput
63
- }
76
+ components: globalComponents
64
77
  }
65
78
  });
66
79
  const input = wrapper.find("input");
@@ -69,7 +82,28 @@ const YhSelect = {
69
82
  const lastEmitted = wrapper.emitted("update:modelValue").slice(-1)[0][0];
70
83
  (0, _vitest.expect)(lastEmitted.username).toBe("new_user");
71
84
  });
72
- (0, _vitest.it)("supports dynamic visibility with hidden prop", async () => {
85
+ (0, _vitest.it)("change \u4E8B\u4EF6 - \u89E6\u53D1 change \u5E76\u5305\u542B field \u548C val", async () => {
86
+ const wrapper = (0, _testUtils.mount)(_formSchema.default, {
87
+ props: {
88
+ modelValue: {
89
+ name: ""
90
+ },
91
+ schema: [{
92
+ field: "name",
93
+ component: "input"
94
+ }]
95
+ },
96
+ global: {
97
+ components: globalComponents
98
+ }
99
+ });
100
+ await wrapper.find("input").setValue("test");
101
+ const changeEvents = wrapper.emitted("change");
102
+ (0, _vitest.expect)(changeEvents.length).toBeGreaterThan(0);
103
+ (0, _vitest.expect)(changeEvents[0][0]).toBe("name");
104
+ (0, _vitest.expect)(changeEvents[0][1]).toBe("test");
105
+ });
106
+ (0, _vitest.it)("\u52A8\u6001\u663E\u9690 - hidden \u51FD\u6570\u652F\u6301\u8054\u52A8", async () => {
73
107
  const schema = [{
74
108
  field: "showExtra",
75
109
  component: "input"
@@ -88,9 +122,7 @@ const YhSelect = {
88
122
  schema
89
123
  },
90
124
  global: {
91
- components: {
92
- "yh-input": YhInput
93
- }
125
+ components: globalComponents
94
126
  }
95
127
  });
96
128
  (0, _vitest.expect)(wrapper.text()).not.toContain("Extra Label");
@@ -103,7 +135,45 @@ const YhSelect = {
103
135
  await (0, _vue.nextTick)();
104
136
  (0, _vitest.expect)(wrapper.text()).toContain("Extra Label");
105
137
  });
106
- (0, _vitest.it)("supports grouped schema with collapsible sections", async () => {
138
+ (0, _vitest.it)("\u52A8\u6001\u8054\u52A8 - required \u548C rules \u652F\u6301\u4F20\u5165\u51FD\u6570\u8BA1\u7B97", async () => {
139
+ const schema = [{
140
+ field: "type",
141
+ component: "input"
142
+ }, {
143
+ field: "reason",
144
+ component: "input",
145
+ required: model => model.type === "other",
146
+ rules: model => {
147
+ return model.type === "other" ? [{
148
+ min: 5,
149
+ message: "\u81F3\u5C11 5 \u4E2A\u5B57\u7B26",
150
+ trigger: "blur"
151
+ }] : [];
152
+ }
153
+ }];
154
+ const wrapper = (0, _testUtils.mount)(_formSchema.default, {
155
+ props: {
156
+ modelValue: {
157
+ type: "normal",
158
+ reason: ""
159
+ },
160
+ schema
161
+ },
162
+ global: {
163
+ components: globalComponents
164
+ }
165
+ });
166
+ const reasonItem = wrapper.findAll(".yh-form-item")[1];
167
+ (0, _vitest.expect)(reasonItem.classes()).not.toContain("is-required");
168
+ await wrapper.setProps({
169
+ modelValue: {
170
+ type: "other",
171
+ reason: ""
172
+ }
173
+ });
174
+ (0, _vitest.expect)(reasonItem.classes()).toContain("is-required");
175
+ });
176
+ (0, _vitest.it)("\u5206\u7EC4\u6E32\u67D3 - \u5C55\u793A group title \u5E76\u652F\u6301\u6298\u53E0", async () => {
107
177
  const schema = [{
108
178
  title: "Basic Info",
109
179
  items: [{
@@ -118,13 +188,16 @@ const YhSelect = {
118
188
  name: ""
119
189
  },
120
190
  schema
191
+ },
192
+ global: {
193
+ components: globalComponents
121
194
  }
122
195
  });
123
196
  (0, _vitest.expect)(wrapper.find(".yh-form-schema__group-title").text()).toContain("Basic Info");
124
197
  await wrapper.find(".yh-form-schema__group-title").trigger("click");
125
198
  (0, _vitest.expect)(wrapper.find(".yh-form-schema__group").classes()).toContain("is-collapsed");
126
199
  });
127
- (0, _vitest.it)("supports asyncOptions for select components", async () => {
200
+ (0, _vitest.it)("\u5F02\u6B65\u9009\u9879 - asyncOptions \u81EA\u52A8\u52A0\u8F7D\u5E76\u6CE8\u5165", async () => {
128
201
  const asyncOptions = _vitest.vi.fn().mockResolvedValue([{
129
202
  label: "Option A",
130
203
  value: "a"
@@ -142,18 +215,17 @@ const YhSelect = {
142
215
  schema
143
216
  },
144
217
  global: {
145
- components: {
146
- "yh-select": YhSelect
147
- }
218
+ components: globalComponents
148
219
  }
149
220
  });
150
221
  await (0, _vue.nextTick)();
151
222
  await (0, _vue.nextTick)();
152
223
  await (0, _vue.nextTick)();
224
+ (0, _vitest.expect)(asyncOptions).toHaveBeenCalled();
153
225
  const options = wrapper.findAll("option");
154
226
  (0, _vitest.expect)(options.length).toBeGreaterThan(0);
155
227
  });
156
- (0, _vitest.it)("supports render function", () => {
228
+ (0, _vitest.it)("render \u51FD\u6570 - \u81EA\u5B9A\u4E49\u6E32\u67D3", () => {
157
229
  const schema = [{
158
230
  field: "custom",
159
231
  render: m => (0, _vue.h)("div", {
@@ -166,18 +238,399 @@ const YhSelect = {
166
238
  custom: "hello"
167
239
  },
168
240
  schema
241
+ },
242
+ global: {
243
+ components: globalComponents
169
244
  }
170
245
  });
171
246
  (0, _vitest.expect)(wrapper.find(".custom-render").text()).toBe("Val: hello");
172
247
  });
173
- (0, _vitest.it)("expose form methods", () => {
248
+ (0, _vitest.it)("\u66B4\u9732 API - validate/resetFields/clearValidate/getModel/setFieldValue", () => {
174
249
  const wrapper = (0, _testUtils.mount)(_formSchema.default, {
175
250
  props: {
176
251
  modelValue: {},
177
252
  schema: []
253
+ },
254
+ global: {
255
+ components: globalComponents
256
+ }
257
+ });
258
+ const vm = wrapper.vm;
259
+ (0, _vitest.expect)(typeof vm.validate).toBe("function");
260
+ (0, _vitest.expect)(typeof vm.resetFields).toBe("function");
261
+ (0, _vitest.expect)(typeof vm.clearValidate).toBe("function");
262
+ (0, _vitest.expect)(typeof vm.getModel).toBe("function");
263
+ (0, _vitest.expect)(typeof vm.setFieldValue).toBe("function");
264
+ });
265
+ (0, _vitest.it)("getModel - \u8FD4\u56DE\u5F53\u524D\u5B8C\u6574 model \u5FEB\u7167", async () => {
266
+ const wrapper = (0, _testUtils.mount)(_formSchema.default, {
267
+ props: {
268
+ modelValue: {
269
+ city: "BJ"
270
+ },
271
+ schema: [{
272
+ field: "city",
273
+ component: "input"
274
+ }]
275
+ },
276
+ global: {
277
+ components: globalComponents
278
+ }
279
+ });
280
+ const model = wrapper.vm.getModel();
281
+ (0, _vitest.expect)(model.city).toBe("BJ");
282
+ });
283
+ (0, _vitest.it)("setFieldValue - \u52A8\u6001\u66F4\u65B0\u5355\u5B57\u6BB5\u503C", async () => {
284
+ const wrapper = (0, _testUtils.mount)(_formSchema.default, {
285
+ props: {
286
+ modelValue: {
287
+ city: ""
288
+ },
289
+ schema: [{
290
+ field: "city",
291
+ component: "input"
292
+ }]
293
+ },
294
+ global: {
295
+ components: globalComponents
296
+ }
297
+ });
298
+ wrapper.vm.setFieldValue("city", "SH");
299
+ await (0, _vue.nextTick)();
300
+ const emitted = wrapper.emitted("update:modelValue");
301
+ const last = emitted[emitted.length - 1][0];
302
+ (0, _vitest.expect)(last.city).toBe("SH");
303
+ });
304
+ (0, _vitest.it)("required \u7B80\u5199 - \u81EA\u52A8\u6DFB\u52A0\u5FC5\u586B\u89C4\u5219\u5E76\u89E6\u53D1\u6821\u9A8C", async () => {
305
+ const schema = [{
306
+ field: "name",
307
+ label: "\u59D3\u540D",
308
+ component: "input",
309
+ required: true
310
+ }];
311
+ const wrapper = (0, _testUtils.mount)(_formSchema.default, {
312
+ props: {
313
+ modelValue: {
314
+ name: ""
315
+ },
316
+ schema
317
+ },
318
+ global: {
319
+ components: globalComponents
320
+ }
321
+ });
322
+ let isValid = true;
323
+ try {
324
+ isValid = await wrapper.vm.validate();
325
+ } catch (_) {
326
+ isValid = false;
327
+ }
328
+ (0, _vitest.expect)(isValid).toBe(false);
329
+ });
330
+ (0, _vitest.it)("type divider - \u6E32\u67D3\u5206\u9694\u7EBF", () => {
331
+ const schema = [{
332
+ type: "divider",
333
+ label: "\u57FA\u672C\u4FE1\u606F",
334
+ field: "_d"
335
+ }];
336
+ const wrapper = (0, _testUtils.mount)(_formSchema.default, {
337
+ props: {
338
+ modelValue: {},
339
+ schema
340
+ },
341
+ global: {
342
+ components: globalComponents
343
+ }
344
+ });
345
+ (0, _vitest.expect)(wrapper.find(".yh-form-schema__divider").exists()).toBe(true);
346
+ (0, _vitest.expect)(wrapper.find(".yh-form-schema__divider-label").text()).toBe("\u57FA\u672C\u4FE1\u606F");
347
+ });
348
+ (0, _vitest.it)("type text - \u53EA\u8BFB\u663E\u793A\u5B57\u6BB5\u503C", () => {
349
+ const schema = [{
350
+ type: "text",
351
+ label: "\u59D3\u540D",
352
+ field: "name"
353
+ }];
354
+ const wrapper = (0, _testUtils.mount)(_formSchema.default, {
355
+ props: {
356
+ modelValue: {
357
+ name: "Alice"
358
+ },
359
+ schema
360
+ },
361
+ global: {
362
+ components: globalComponents
363
+ }
364
+ });
365
+ (0, _vitest.expect)(wrapper.find(".yh-form-schema__text-value").text()).toBe("Alice");
366
+ });
367
+ (0, _vitest.it)("type text - emptyValue \u7A7A\u6001\u5360\u4F4D\u7B26", async () => {
368
+ const schema = [{
369
+ type: "text",
370
+ label: "\u7535\u8BDD",
371
+ field: "phone",
372
+ emptyValue: "\u6682\u65E0"
373
+ }, {
374
+ type: "text",
375
+ label: "\u5730\u5740",
376
+ field: "addr"
377
+ }];
378
+ const wrapper = (0, _testUtils.mount)(_formSchema.default, {
379
+ props: {
380
+ modelValue: {
381
+ phone: null,
382
+ addr: void 0
383
+ },
384
+ schema
385
+ },
386
+ global: {
387
+ components: globalComponents
388
+ }
389
+ });
390
+ await (0, _vue.nextTick)();
391
+ const items = wrapper.findAll(".yh-form-schema__text-value");
392
+ (0, _vitest.expect)(items[0].text()).toBe("\u6682\u65E0");
393
+ (0, _vitest.expect)(items[1].text()).toBe("-");
394
+ });
395
+ (0, _vitest.it)("defaultValue - \u672A\u8BBE\u7F6E\u5B57\u6BB5\u65F6\u586B\u5145\u9ED8\u8BA4\u503C", async () => {
396
+ const schema = [{
397
+ field: "city",
398
+ component: "input",
399
+ defaultValue: "Beijing"
400
+ }];
401
+ const wrapper = (0, _testUtils.mount)(_formSchema.default, {
402
+ props: {
403
+ modelValue: {},
404
+ schema
405
+ },
406
+ global: {
407
+ components: globalComponents
178
408
  }
179
409
  });
180
- (0, _vitest.expect)(typeof wrapper.vm.validate).toBe("function");
181
- (0, _vitest.expect)(typeof wrapper.vm.resetFields).toBe("function");
410
+ await (0, _vue.nextTick)();
411
+ const emitted = wrapper.emitted("update:modelValue");
412
+ (0, _vitest.expect)(emitted).toBeTruthy();
413
+ const last = emitted[emitted.length - 1][0];
414
+ (0, _vitest.expect)(last.city).toBe("Beijing");
415
+ });
416
+ (0, _vitest.it)("disabled \u51FD\u6570 - \u6839\u636E model \u52A8\u6001\u7981\u7528\u5B57\u6BB5", async () => {
417
+ const schema = [{
418
+ field: "toggle",
419
+ component: "switch"
420
+ }, {
421
+ field: "target",
422
+ component: "input",
423
+ disabled: m => !m.toggle
424
+ }];
425
+ const wrapper = (0, _testUtils.mount)(_formSchema.default, {
426
+ props: {
427
+ modelValue: {
428
+ toggle: false,
429
+ target: ""
430
+ },
431
+ schema
432
+ },
433
+ global: {
434
+ components: globalComponents
435
+ }
436
+ });
437
+ const input = wrapper.find('input[type="text"], input:not([type="checkbox"])').element;
438
+ (0, _vitest.expect)(input.disabled).toBe(true);
439
+ });
440
+ (0, _vitest.it)("\u5916\u90E8 modelValue \u66F4\u65B0 - localModel \u540C\u6B65\u54CD\u5E94", async () => {
441
+ const wrapper = (0, _testUtils.mount)(_formSchema.default, {
442
+ props: {
443
+ modelValue: {
444
+ name: "old"
445
+ },
446
+ schema: [{
447
+ field: "name",
448
+ component: "input"
449
+ }]
450
+ },
451
+ global: {
452
+ components: globalComponents
453
+ }
454
+ });
455
+ await wrapper.setProps({
456
+ modelValue: {
457
+ name: "new"
458
+ }
459
+ });
460
+ await (0, _vue.nextTick)();
461
+ const input = wrapper.find("input");
462
+ (0, _vitest.expect)(input.element.value).toBe("new");
463
+ });
464
+ (0, _vitest.describe)("type list - \u52A8\u6001\u589E\u51CF\u5217\u8868", () => {
465
+ const listSchema = [{
466
+ field: "name",
467
+ label: "\u59D3\u540D",
468
+ component: "input"
469
+ }, {
470
+ field: "phone",
471
+ label: "\u7535\u8BDD",
472
+ component: "input"
473
+ }];
474
+ (0, _vitest.it)("\u521D\u59CB\u6E32\u67D3 - \u6309\u5DF2\u6709\u5217\u8868\u6570\u636E\u6E32\u67D3\u884C", async () => {
475
+ const schema = [{
476
+ field: "contacts",
477
+ label: "\u8054\u7CFB\u4EBA",
478
+ type: "list",
479
+ listSchema,
480
+ listProps: {}
481
+ }];
482
+ const wrapper = (0, _testUtils.mount)(_formSchema.default, {
483
+ props: {
484
+ modelValue: {
485
+ contacts: [{
486
+ name: "Alice",
487
+ phone: "111"
488
+ }, {
489
+ name: "Bob",
490
+ phone: "222"
491
+ }]
492
+ },
493
+ schema
494
+ },
495
+ global: {
496
+ components: globalComponents
497
+ }
498
+ });
499
+ await (0, _vue.nextTick)();
500
+ (0, _vitest.expect)(wrapper.findAll(".yh-form-schema__list-row").length).toBe(2);
501
+ });
502
+ (0, _vitest.it)("\u6DFB\u52A0\u5217\u8868\u9879 - \u70B9\u51FB\u6DFB\u52A0\u6309\u94AE\u589E\u52A0\u4E00\u884C", async () => {
503
+ const schema = [{
504
+ field: "contacts",
505
+ label: "\u8054\u7CFB\u4EBA",
506
+ type: "list",
507
+ listSchema,
508
+ listProps: {}
509
+ }];
510
+ const wrapper = (0, _testUtils.mount)(_formSchema.default, {
511
+ props: {
512
+ modelValue: {
513
+ contacts: []
514
+ },
515
+ schema
516
+ },
517
+ global: {
518
+ components: globalComponents
519
+ }
520
+ });
521
+ await wrapper.find(".yh-form-schema__list-add").trigger("click");
522
+ await (0, _vue.nextTick)();
523
+ const emitted = wrapper.emitted("update:modelValue");
524
+ const last = emitted[emitted.length - 1][0];
525
+ (0, _vitest.expect)(last.contacts.length).toBe(1);
526
+ });
527
+ (0, _vitest.it)("\u5220\u9664\u5217\u8868\u9879 - \u70B9\u51FB\u5220\u9664\u6309\u94AE\u79FB\u9664\u5BF9\u5E94\u884C", async () => {
528
+ const schema = [{
529
+ field: "contacts",
530
+ label: "\u8054\u7CFB\u4EBA",
531
+ type: "list",
532
+ listSchema,
533
+ listProps: {}
534
+ }];
535
+ const wrapper = (0, _testUtils.mount)(_formSchema.default, {
536
+ props: {
537
+ modelValue: {
538
+ contacts: [{
539
+ name: "Alice",
540
+ phone: "111"
541
+ }]
542
+ },
543
+ schema
544
+ },
545
+ global: {
546
+ components: globalComponents
547
+ }
548
+ });
549
+ await (0, _vue.nextTick)();
550
+ await wrapper.find(".yh-form-schema__list-delete").trigger("click");
551
+ await (0, _vue.nextTick)();
552
+ const emitted = wrapper.emitted("update:modelValue");
553
+ const last = emitted[emitted.length - 1][0];
554
+ (0, _vitest.expect)(last.contacts.length).toBe(0);
555
+ });
556
+ (0, _vitest.it)("max \u9650\u5236 - \u8D85\u51FA\u6700\u5927\u6570\u91CF\u65F6\u7981\u7528\u6DFB\u52A0\u6309\u94AE", async () => {
557
+ const schema = [{
558
+ field: "contacts",
559
+ label: "\u8054\u7CFB\u4EBA",
560
+ type: "list",
561
+ listSchema,
562
+ listProps: {
563
+ max: 1
564
+ }
565
+ }];
566
+ const wrapper = (0, _testUtils.mount)(_formSchema.default, {
567
+ props: {
568
+ modelValue: {
569
+ contacts: [{
570
+ name: "Alice",
571
+ phone: "111"
572
+ }]
573
+ },
574
+ schema
575
+ },
576
+ global: {
577
+ components: globalComponents
578
+ }
579
+ });
580
+ await (0, _vue.nextTick)();
581
+ const addBtn = wrapper.find(".yh-form-schema__list-add");
582
+ (0, _vitest.expect)(addBtn.attributes("disabled")).toBeDefined();
583
+ });
584
+ (0, _vitest.it)("min \u9650\u5236 - \u672A\u8FBE\u5230\u6700\u5C0F\u6570\u91CF\u65F6\u7981\u7528\u5220\u9664\u6309\u94AE", async () => {
585
+ const schema = [{
586
+ field: "contacts",
587
+ label: "\u8054\u7CFB\u4EBA",
588
+ type: "list",
589
+ listSchema,
590
+ listProps: {
591
+ min: 1
592
+ }
593
+ }];
594
+ const wrapper = (0, _testUtils.mount)(_formSchema.default, {
595
+ props: {
596
+ modelValue: {
597
+ contacts: [{
598
+ name: "Alice",
599
+ phone: "111"
600
+ }]
601
+ },
602
+ schema
603
+ },
604
+ global: {
605
+ components: globalComponents
606
+ }
607
+ });
608
+ await (0, _vue.nextTick)();
609
+ const delBtn = wrapper.find(".yh-form-schema__list-delete");
610
+ (0, _vitest.expect)(delBtn.attributes("disabled")).toBeDefined();
611
+ });
612
+ (0, _vitest.it)("addButtonText - \u81EA\u5B9A\u4E49\u6DFB\u52A0\u6309\u94AE\u6587\u6848", async () => {
613
+ const schema = [{
614
+ field: "contacts",
615
+ label: "\u8054\u7CFB\u4EBA",
616
+ type: "list",
617
+ listSchema,
618
+ listProps: {
619
+ addButtonText: "\u65B0\u589E\u8054\u7CFB\u4EBA"
620
+ }
621
+ }];
622
+ const wrapper = (0, _testUtils.mount)(_formSchema.default, {
623
+ props: {
624
+ modelValue: {
625
+ contacts: []
626
+ },
627
+ schema
628
+ },
629
+ global: {
630
+ components: globalComponents
631
+ }
632
+ });
633
+ (0, _vitest.expect)(wrapper.find(".yh-form-schema__list-add").text()).toContain("\u65B0\u589E\u8054\u7CFB\u4EBA");
634
+ });
182
635
  });
183
636
  });