@zerodep-dev/vue-tsx-pro-ui 0.0.0-stage → 0.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 (1109) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +32 -2
  3. package/dist/base/Badge.d.ts +28 -0
  4. package/dist/base/Badge.js +72 -0
  5. package/dist/base/Badge.js.map +1 -0
  6. package/dist/base/Blockquote.d.ts +13 -0
  7. package/dist/base/Blockquote.js +26 -0
  8. package/dist/base/Blockquote.js.map +1 -0
  9. package/dist/base/Button.d.ts +18 -0
  10. package/dist/base/Button.js +86 -0
  11. package/dist/base/Button.js.map +1 -0
  12. package/dist/base/ButtonBase.d.ts +21 -0
  13. package/dist/base/ButtonBase.js +51 -0
  14. package/dist/base/ButtonBase.js.map +1 -0
  15. package/dist/base/ButtonGroup.d.ts +24 -0
  16. package/dist/base/ButtonGroup.js +52 -0
  17. package/dist/base/ButtonGroup.js.map +1 -0
  18. package/dist/base/CloseButton.d.ts +15 -0
  19. package/dist/base/CloseButton.js +38 -0
  20. package/dist/base/CloseButton.js.map +1 -0
  21. package/dist/base/Code.d.ts +13 -0
  22. package/dist/base/Code.js +27 -0
  23. package/dist/base/Code.js.map +1 -0
  24. package/dist/base/CodeBlock.d.ts +89 -0
  25. package/dist/base/CodeBlock.js +265 -0
  26. package/dist/base/CodeBlock.js.map +1 -0
  27. package/dist/base/CopyButton.d.ts +40 -0
  28. package/dist/base/CopyButton.js +113 -0
  29. package/dist/base/CopyButton.js.map +1 -0
  30. package/dist/base/Heading.d.ts +49 -0
  31. package/dist/base/Heading.js +122 -0
  32. package/dist/base/Heading.js.map +1 -0
  33. package/dist/base/Icon.d.ts +48 -0
  34. package/dist/base/Icon.js +110 -0
  35. package/dist/base/Icon.js.map +1 -0
  36. package/dist/base/IconButton.d.ts +34 -0
  37. package/dist/base/IconButton.js +81 -0
  38. package/dist/base/IconButton.js.map +1 -0
  39. package/dist/base/IconLinkButton.d.ts +34 -0
  40. package/dist/base/IconLinkButton.js +81 -0
  41. package/dist/base/IconLinkButton.js.map +1 -0
  42. package/dist/base/Indicator.d.ts +126 -0
  43. package/dist/base/Indicator.js +158 -0
  44. package/dist/base/Indicator.js.map +1 -0
  45. package/dist/base/Kbd.d.ts +13 -0
  46. package/dist/base/Kbd.js +34 -0
  47. package/dist/base/Kbd.js.map +1 -0
  48. package/dist/base/Link.d.ts +61 -0
  49. package/dist/base/Link.js +114 -0
  50. package/dist/base/Link.js.map +1 -0
  51. package/dist/base/LinkButton.d.ts +18 -0
  52. package/dist/base/LinkButton.js +109 -0
  53. package/dist/base/LinkButton.js.map +1 -0
  54. package/dist/base/List.d.ts +61 -0
  55. package/dist/base/List.js +116 -0
  56. package/dist/base/List.js.map +1 -0
  57. package/dist/base/Mark.d.ts +13 -0
  58. package/dist/base/Mark.js +23 -0
  59. package/dist/base/Mark.js.map +1 -0
  60. package/dist/base/Spinner.d.ts +20 -0
  61. package/dist/base/Spinner.js +59 -0
  62. package/dist/base/Spinner.js.map +1 -0
  63. package/dist/base/StatusDot.d.ts +48 -0
  64. package/dist/base/StatusDot.js +62 -0
  65. package/dist/base/StatusDot.js.map +1 -0
  66. package/dist/base/Tag.d.ts +29 -0
  67. package/dist/base/Tag.js +92 -0
  68. package/dist/base/Tag.js.map +1 -0
  69. package/dist/base/Text.d.ts +57 -0
  70. package/dist/base/Text.js +74 -0
  71. package/dist/base/Text.js.map +1 -0
  72. package/dist/base/VisuallyHidden.d.ts +13 -0
  73. package/dist/base/VisuallyHidden.js +28 -0
  74. package/dist/base/VisuallyHidden.js.map +1 -0
  75. package/dist/base/badge-styles.d.ts +57 -0
  76. package/dist/base/badge-styles.js +329 -0
  77. package/dist/base/badge-styles.js.map +1 -0
  78. package/dist/base/button-core.d.ts +191 -0
  79. package/dist/base/button-core.js +660 -0
  80. package/dist/base/button-core.js.map +1 -0
  81. package/dist/charts/AreaChart.d.ts +18 -0
  82. package/dist/charts/AreaChart.js +90 -0
  83. package/dist/charts/AreaChart.js.map +1 -0
  84. package/dist/charts/BarChart.d.ts +19 -0
  85. package/dist/charts/BarChart.js +88 -0
  86. package/dist/charts/BarChart.js.map +1 -0
  87. package/dist/charts/ChordChart.d.ts +48 -0
  88. package/dist/charts/ChordChart.js +149 -0
  89. package/dist/charts/ChordChart.js.map +1 -0
  90. package/dist/charts/ComboChart.d.ts +30 -0
  91. package/dist/charts/ComboChart.js +157 -0
  92. package/dist/charts/ComboChart.js.map +1 -0
  93. package/dist/charts/DonutChart.d.ts +65 -0
  94. package/dist/charts/DonutChart.js +162 -0
  95. package/dist/charts/DonutChart.js.map +1 -0
  96. package/dist/charts/FunnelChart.d.ts +69 -0
  97. package/dist/charts/FunnelChart.js +181 -0
  98. package/dist/charts/FunnelChart.js.map +1 -0
  99. package/dist/charts/GraphChart.d.ts +135 -0
  100. package/dist/charts/GraphChart.js +274 -0
  101. package/dist/charts/GraphChart.js.map +1 -0
  102. package/dist/charts/LineChart.d.ts +50 -0
  103. package/dist/charts/LineChart.js +94 -0
  104. package/dist/charts/LineChart.js.map +1 -0
  105. package/dist/charts/MapChart.d.ts +167 -0
  106. package/dist/charts/MapChart.js +627 -0
  107. package/dist/charts/MapChart.js.map +1 -0
  108. package/dist/charts/RadarChart.d.ts +60 -0
  109. package/dist/charts/RadarChart.js +224 -0
  110. package/dist/charts/RadarChart.js.map +1 -0
  111. package/dist/charts/SankeyChart.d.ts +57 -0
  112. package/dist/charts/SankeyChart.js +150 -0
  113. package/dist/charts/SankeyChart.js.map +1 -0
  114. package/dist/charts/ScatterChart.d.ts +18 -0
  115. package/dist/charts/ScatterChart.js +82 -0
  116. package/dist/charts/ScatterChart.js.map +1 -0
  117. package/dist/charts/TimelineChart.d.ts +71 -0
  118. package/dist/charts/TimelineChart.js +267 -0
  119. package/dist/charts/TimelineChart.js.map +1 -0
  120. package/dist/charts/TreemapChart.d.ts +40 -0
  121. package/dist/charts/TreemapChart.js +155 -0
  122. package/dist/charts/TreemapChart.js.map +1 -0
  123. package/dist/charts/WaterfallChart.d.ts +61 -0
  124. package/dist/charts/WaterfallChart.js +167 -0
  125. package/dist/charts/WaterfallChart.js.map +1 -0
  126. package/dist/charts/XYChart.d.ts +206 -0
  127. package/dist/charts/XYChart.js +520 -0
  128. package/dist/charts/XYChart.js.map +1 -0
  129. package/dist/charts/axis-ticks.d.ts +23 -0
  130. package/dist/charts/axis-ticks.js +59 -0
  131. package/dist/charts/axis-ticks.js.map +1 -0
  132. package/dist/charts/export.d.ts +17 -0
  133. package/dist/charts/export.js +65 -0
  134. package/dist/charts/export.js.map +1 -0
  135. package/dist/charts/flow.d.ts +53 -0
  136. package/dist/charts/flow.js +29 -0
  137. package/dist/charts/flow.js.map +1 -0
  138. package/dist/charts/frame.d.ts +147 -0
  139. package/dist/charts/frame.js +358 -0
  140. package/dist/charts/frame.js.map +1 -0
  141. package/dist/charts/index.d.ts +30 -0
  142. package/dist/charts/index.js +24 -0
  143. package/dist/charts/label-layout.d.ts +59 -0
  144. package/dist/charts/label-layout.js +64 -0
  145. package/dist/charts/label-layout.js.map +1 -0
  146. package/dist/charts/series.d.ts +36 -0
  147. package/dist/charts/series.js +60 -0
  148. package/dist/charts/series.js.map +1 -0
  149. package/dist/charts/single.d.ts +41 -0
  150. package/dist/charts/single.js +65 -0
  151. package/dist/charts/single.js.map +1 -0
  152. package/dist/config/Provider.d.ts +52 -0
  153. package/dist/config/Provider.js +111 -0
  154. package/dist/config/Provider.js.map +1 -0
  155. package/dist/config/context.d.ts +90 -0
  156. package/dist/config/context.js +58 -0
  157. package/dist/config/context.js.map +1 -0
  158. package/dist/config/createUi.d.ts +52 -0
  159. package/dist/config/createUi.js +96 -0
  160. package/dist/config/createUi.js.map +1 -0
  161. package/dist/config/defaults.d.ts +71 -0
  162. package/dist/config/defaults.js +45 -0
  163. package/dist/config/defaults.js.map +1 -0
  164. package/dist/config/lang/en-US.d.ts +3 -0
  165. package/dist/config/lang/en-US.js +386 -0
  166. package/dist/config/lang/en-US.js.map +1 -0
  167. package/dist/config/lang/format.d.ts +50 -0
  168. package/dist/config/lang/format.js +113 -0
  169. package/dist/config/lang/format.js.map +1 -0
  170. package/dist/config/lang/lang.d.ts +653 -0
  171. package/dist/config/lang/lang.js +22 -0
  172. package/dist/config/lang/lang.js.map +1 -0
  173. package/dist/config/lang/messages.d.ts +12 -0
  174. package/dist/config/lang/messages.js +36 -0
  175. package/dist/config/lang/messages.js.map +1 -0
  176. package/dist/config/lang/zh-CN.d.ts +3 -0
  177. package/dist/config/lang/zh-CN.js +386 -0
  178. package/dist/config/lang/zh-CN.js.map +1 -0
  179. package/dist/config/pinyin.d.ts +3 -0
  180. package/dist/config/pinyin.js +26 -0
  181. package/dist/config/pinyin.js.map +1 -0
  182. package/dist/config/query-state.d.ts +61 -0
  183. package/dist/config/query-state.js +113 -0
  184. package/dist/config/query-state.js.map +1 -0
  185. package/dist/config/shiki.d.ts +13 -0
  186. package/dist/config/shiki.js +97 -0
  187. package/dist/config/shiki.js.map +1 -0
  188. package/dist/config/styles.d.ts +108 -0
  189. package/dist/config/styles.js +59 -0
  190. package/dist/config/styles.js.map +1 -0
  191. package/dist/config/theme/boot.d.ts +97 -0
  192. package/dist/config/theme/boot.js +90 -0
  193. package/dist/config/theme/boot.js.map +1 -0
  194. package/dist/config/theme/builtin.d.ts +21 -0
  195. package/dist/config/theme/builtin.js +58 -0
  196. package/dist/config/theme/builtin.js.map +1 -0
  197. package/dist/config/theme/coffee.d.ts +84 -0
  198. package/dist/config/theme/coffee.js +102 -0
  199. package/dist/config/theme/coffee.js.map +1 -0
  200. package/dist/config/theme/cyberpunk.d.ts +110 -0
  201. package/dist/config/theme/cyberpunk.js +125 -0
  202. package/dist/config/theme/cyberpunk.js.map +1 -0
  203. package/dist/config/theme/dark.d.ts +90 -0
  204. package/dist/config/theme/dark.js +106 -0
  205. package/dist/config/theme/dark.js.map +1 -0
  206. package/dist/config/theme/festive.d.ts +93 -0
  207. package/dist/config/theme/festive.js +110 -0
  208. package/dist/config/theme/festive.js.map +1 -0
  209. package/dist/config/theme/forest.d.ts +93 -0
  210. package/dist/config/theme/forest.js +109 -0
  211. package/dist/config/theme/forest.js.map +1 -0
  212. package/dist/config/theme/high-contrast.d.ts +103 -0
  213. package/dist/config/theme/high-contrast.js +119 -0
  214. package/dist/config/theme/high-contrast.js.map +1 -0
  215. package/dist/config/theme/lemon.d.ts +103 -0
  216. package/dist/config/theme/lemon.js +119 -0
  217. package/dist/config/theme/lemon.js.map +1 -0
  218. package/dist/config/theme/light.d.ts +107 -0
  219. package/dist/config/theme/light.js +122 -0
  220. package/dist/config/theme/light.js.map +1 -0
  221. package/dist/config/theme/midnight.d.ts +86 -0
  222. package/dist/config/theme/midnight.js +103 -0
  223. package/dist/config/theme/midnight.js.map +1 -0
  224. package/dist/config/theme/ocean.d.ts +103 -0
  225. package/dist/config/theme/ocean.js +119 -0
  226. package/dist/config/theme/ocean.js.map +1 -0
  227. package/dist/config/theme/paper.d.ts +101 -0
  228. package/dist/config/theme/paper.js +117 -0
  229. package/dist/config/theme/paper.js.map +1 -0
  230. package/dist/config/theme/preference.d.ts +34 -0
  231. package/dist/config/theme/preference.js +67 -0
  232. package/dist/config/theme/preference.js.map +1 -0
  233. package/dist/config/theme/sakura.d.ts +103 -0
  234. package/dist/config/theme/sakura.js +119 -0
  235. package/dist/config/theme/sakura.js.map +1 -0
  236. package/dist/config/theme/theme.d.ts +59 -0
  237. package/dist/config/theme/theme.js +68 -0
  238. package/dist/config/theme/theme.js.map +1 -0
  239. package/dist/config/theme/token-names.d.ts +1897 -0
  240. package/dist/config/theme/tokens.d.ts +833 -0
  241. package/dist/config/theme/tokens.js +480 -0
  242. package/dist/config/theme/tokens.js.map +1 -0
  243. package/dist/config/vue-router.d.ts +67 -0
  244. package/dist/config/vue-router.js +143 -0
  245. package/dist/config/vue-router.js.map +1 -0
  246. package/dist/date/Calendar.d.ts +36 -0
  247. package/dist/date/Calendar.js +83 -0
  248. package/dist/date/Calendar.js.map +1 -0
  249. package/dist/date/CalendarBoard.d.ts +79 -0
  250. package/dist/date/CalendarBoard.js +403 -0
  251. package/dist/date/CalendarBoard.js.map +1 -0
  252. package/dist/date/CalendarView.d.ts +86 -0
  253. package/dist/date/CalendarView.js +427 -0
  254. package/dist/date/CalendarView.js.map +1 -0
  255. package/dist/date/Countdown.d.ts +45 -0
  256. package/dist/date/Countdown.js +75 -0
  257. package/dist/date/Countdown.js.map +1 -0
  258. package/dist/date/DateField.d.ts +34 -0
  259. package/dist/date/DateField.js +124 -0
  260. package/dist/date/DateField.js.map +1 -0
  261. package/dist/date/DatePicker.d.ts +41 -0
  262. package/dist/date/DatePicker.js +272 -0
  263. package/dist/date/DatePicker.js.map +1 -0
  264. package/dist/date/DateRangePicker.d.ts +71 -0
  265. package/dist/date/DateRangePicker.js +411 -0
  266. package/dist/date/DateRangePicker.js.map +1 -0
  267. package/dist/date/DateSegmentGroup.d.ts +38 -0
  268. package/dist/date/DateSegmentGroup.js +176 -0
  269. package/dist/date/DateSegmentGroup.js.map +1 -0
  270. package/dist/date/DateTime.d.ts +21 -0
  271. package/dist/date/DateTime.js +39 -0
  272. package/dist/date/DateTime.js.map +1 -0
  273. package/dist/date/QuarterCalendar.d.ts +22 -0
  274. package/dist/date/QuarterCalendar.js +231 -0
  275. package/dist/date/QuarterCalendar.js.map +1 -0
  276. package/dist/date/RangeCalendar.d.ts +24 -0
  277. package/dist/date/RangeCalendar.js +89 -0
  278. package/dist/date/RangeCalendar.js.map +1 -0
  279. package/dist/date/RelativeTime.d.ts +16 -0
  280. package/dist/date/RelativeTime.js +61 -0
  281. package/dist/date/RelativeTime.js.map +1 -0
  282. package/dist/date/SegmentedField.d.ts +60 -0
  283. package/dist/date/SegmentedField.js +175 -0
  284. package/dist/date/SegmentedField.js.map +1 -0
  285. package/dist/date/TimeField.d.ts +36 -0
  286. package/dist/date/TimeField.js +56 -0
  287. package/dist/date/TimeField.js.map +1 -0
  288. package/dist/date/TimePicker.d.ts +25 -0
  289. package/dist/date/TimePicker.js +206 -0
  290. package/dist/date/TimePicker.js.map +1 -0
  291. package/dist/date/calendar-state.d.ts +119 -0
  292. package/dist/date/calendar-state.js +267 -0
  293. package/dist/date/calendar-state.js.map +1 -0
  294. package/dist/date/clock.d.ts +11 -0
  295. package/dist/date/clock.js +37 -0
  296. package/dist/date/clock.js.map +1 -0
  297. package/dist/date/date-locale.d.ts +67 -0
  298. package/dist/date/date-locale.js +89 -0
  299. package/dist/date/date-locale.js.map +1 -0
  300. package/dist/date/date-segments.d.ts +132 -0
  301. package/dist/date/date-segments.js +410 -0
  302. package/dist/date/date-segments.js.map +1 -0
  303. package/dist/date/picker-popover.d.ts +88 -0
  304. package/dist/date/picker-popover.js +126 -0
  305. package/dist/date/picker-popover.js.map +1 -0
  306. package/dist/diagram/Diagram.d.ts +223 -0
  307. package/dist/diagram/Diagram.js +1121 -0
  308. package/dist/diagram/Diagram.js.map +1 -0
  309. package/dist/diagram/DiagramControls.d.ts +35 -0
  310. package/dist/diagram/DiagramControls.js +114 -0
  311. package/dist/diagram/DiagramControls.js.map +1 -0
  312. package/dist/diagram/DiagramLanes.d.ts +49 -0
  313. package/dist/diagram/DiagramLanes.js +92 -0
  314. package/dist/diagram/DiagramLanes.js.map +1 -0
  315. package/dist/diagram/DiagramMinimap.d.ts +39 -0
  316. package/dist/diagram/DiagramMinimap.js +133 -0
  317. package/dist/diagram/DiagramMinimap.js.map +1 -0
  318. package/dist/diagram/DiagramNode.d.ts +65 -0
  319. package/dist/diagram/DiagramNode.js +142 -0
  320. package/dist/diagram/DiagramNode.js.map +1 -0
  321. package/dist/diagram/controller.d.ts +68 -0
  322. package/dist/diagram/controller.js +117 -0
  323. package/dist/diagram/controller.js.map +1 -0
  324. package/dist/diagram/export.d.ts +14 -0
  325. package/dist/diagram/export.js +115 -0
  326. package/dist/diagram/export.js.map +1 -0
  327. package/dist/diagram/geometry.d.ts +65 -0
  328. package/dist/diagram/geometry.js +219 -0
  329. package/dist/diagram/geometry.js.map +1 -0
  330. package/dist/diagram/index.d.ts +19 -0
  331. package/dist/diagram/index.js +11 -0
  332. package/dist/diagram/messages.d.ts +28 -0
  333. package/dist/diagram/messages.js +30 -0
  334. package/dist/diagram/messages.js.map +1 -0
  335. package/dist/diagram/route.d.ts +81 -0
  336. package/dist/diagram/route.js +327 -0
  337. package/dist/diagram/route.js.map +1 -0
  338. package/dist/display/Accordion.d.ts +71 -0
  339. package/dist/display/Accordion.js +219 -0
  340. package/dist/display/Accordion.js.map +1 -0
  341. package/dist/display/AnimatedNumber.d.ts +44 -0
  342. package/dist/display/AnimatedNumber.js +97 -0
  343. package/dist/display/AnimatedNumber.js.map +1 -0
  344. package/dist/display/Avatar.d.ts +74 -0
  345. package/dist/display/Avatar.js +158 -0
  346. package/dist/display/Avatar.js.map +1 -0
  347. package/dist/display/AvatarGroup.d.ts +29 -0
  348. package/dist/display/AvatarGroup.js +67 -0
  349. package/dist/display/AvatarGroup.js.map +1 -0
  350. package/dist/display/Card.d.ts +219 -0
  351. package/dist/display/Card.js +319 -0
  352. package/dist/display/Card.js.map +1 -0
  353. package/dist/display/Checklist.d.ts +93 -0
  354. package/dist/display/Checklist.js +260 -0
  355. package/dist/display/Checklist.js.map +1 -0
  356. package/dist/display/Collapse.d.ts +24 -0
  357. package/dist/display/Collapse.js +65 -0
  358. package/dist/display/Collapse.js.map +1 -0
  359. package/dist/display/Collapsible.d.ts +12 -0
  360. package/dist/display/Collapsible.js +41 -0
  361. package/dist/display/Collapsible.js.map +1 -0
  362. package/dist/display/Descriptions.d.ts +88 -0
  363. package/dist/display/Descriptions.js +185 -0
  364. package/dist/display/Descriptions.js.map +1 -0
  365. package/dist/display/Ellipsis.d.ts +29 -0
  366. package/dist/display/Ellipsis.js +111 -0
  367. package/dist/display/Ellipsis.js.map +1 -0
  368. package/dist/display/FieldCompare.d.ts +58 -0
  369. package/dist/display/FieldCompare.js +205 -0
  370. package/dist/display/FieldCompare.js.map +1 -0
  371. package/dist/display/Gauge.d.ts +60 -0
  372. package/dist/display/Gauge.js +215 -0
  373. package/dist/display/Gauge.js.map +1 -0
  374. package/dist/display/Image.d.ts +87 -0
  375. package/dist/display/Image.js +212 -0
  376. package/dist/display/Image.js.map +1 -0
  377. package/dist/display/ItemList.d.ts +69 -0
  378. package/dist/display/ItemList.js +147 -0
  379. package/dist/display/ItemList.js.map +1 -0
  380. package/dist/display/Marquee.d.ts +59 -0
  381. package/dist/display/Marquee.js +155 -0
  382. package/dist/display/Marquee.js.map +1 -0
  383. package/dist/display/ProportionBar.d.ts +55 -0
  384. package/dist/display/ProportionBar.js +99 -0
  385. package/dist/display/ProportionBar.js.map +1 -0
  386. package/dist/display/Sortable.d.ts +43 -0
  387. package/dist/display/Sortable.js +163 -0
  388. package/dist/display/Sortable.js.map +1 -0
  389. package/dist/display/Sparkline.d.ts +48 -0
  390. package/dist/display/Sparkline.js +130 -0
  391. package/dist/display/Sparkline.js.map +1 -0
  392. package/dist/display/Stat.d.ts +105 -0
  393. package/dist/display/Stat.js +268 -0
  394. package/dist/display/Stat.js.map +1 -0
  395. package/dist/display/Timeline.d.ts +106 -0
  396. package/dist/display/Timeline.js +257 -0
  397. package/dist/display/Timeline.js.map +1 -0
  398. package/dist/display/Tree.d.ts +132 -0
  399. package/dist/display/Tree.js +645 -0
  400. package/dist/display/Tree.js.map +1 -0
  401. package/dist/display/VirtualList.d.ts +80 -0
  402. package/dist/display/VirtualList.js +166 -0
  403. package/dist/display/VirtualList.js.map +1 -0
  404. package/dist/display/Watermark.d.ts +39 -0
  405. package/dist/display/Watermark.js +130 -0
  406. package/dist/display/Watermark.js.map +1 -0
  407. package/dist/docs-kit/CodeGroup.d.ts +29 -0
  408. package/dist/docs-kit/CodeGroup.js +81 -0
  409. package/dist/docs-kit/CodeGroup.js.map +1 -0
  410. package/dist/docs-kit/CodePreview.d.ts +60 -0
  411. package/dist/docs-kit/CodePreview.js +183 -0
  412. package/dist/docs-kit/CodePreview.js.map +1 -0
  413. package/dist/docs-kit/ColorSwatch.d.ts +28 -0
  414. package/dist/docs-kit/ColorSwatch.js +85 -0
  415. package/dist/docs-kit/ColorSwatch.js.map +1 -0
  416. package/dist/docs-kit/PropsTable.d.ts +73 -0
  417. package/dist/docs-kit/PropsTable.js +122 -0
  418. package/dist/docs-kit/PropsTable.js.map +1 -0
  419. package/dist/docs-kit/index.d.ts +13 -0
  420. package/dist/docs-kit/index.js +6 -0
  421. package/dist/docs-kit/messages.d.ts +25 -0
  422. package/dist/docs-kit/messages.js +30 -0
  423. package/dist/docs-kit/messages.js.map +1 -0
  424. package/dist/feedback/Alert.d.ts +83 -0
  425. package/dist/feedback/Alert.js +179 -0
  426. package/dist/feedback/Alert.js.map +1 -0
  427. package/dist/feedback/Banner.d.ts +60 -0
  428. package/dist/feedback/Banner.js +122 -0
  429. package/dist/feedback/Banner.js.map +1 -0
  430. package/dist/feedback/Empty.d.ts +38 -0
  431. package/dist/feedback/Empty.js +114 -0
  432. package/dist/feedback/Empty.js.map +1 -0
  433. package/dist/feedback/LoadingBar.d.ts +45 -0
  434. package/dist/feedback/LoadingBar.js +124 -0
  435. package/dist/feedback/LoadingBar.js.map +1 -0
  436. package/dist/feedback/LoadingOverlay.d.ts +29 -0
  437. package/dist/feedback/LoadingOverlay.js +70 -0
  438. package/dist/feedback/LoadingOverlay.js.map +1 -0
  439. package/dist/feedback/Progress.d.ts +215 -0
  440. package/dist/feedback/Progress.js +437 -0
  441. package/dist/feedback/Progress.js.map +1 -0
  442. package/dist/feedback/Result.d.ts +69 -0
  443. package/dist/feedback/Result.js +165 -0
  444. package/dist/feedback/Result.js.map +1 -0
  445. package/dist/feedback/Skeleton.d.ts +50 -0
  446. package/dist/feedback/Skeleton.js +100 -0
  447. package/dist/feedback/Skeleton.js.map +1 -0
  448. package/dist/feedback/SkeletonText.d.ts +25 -0
  449. package/dist/feedback/SkeletonText.js +40 -0
  450. package/dist/feedback/SkeletonText.js.map +1 -0
  451. package/dist/feedback/Toast.d.ts +204 -0
  452. package/dist/feedback/Toast.js +572 -0
  453. package/dist/feedback/Toast.js.map +1 -0
  454. package/dist/form/Field.d.ts +158 -0
  455. package/dist/form/Field.js +327 -0
  456. package/dist/form/Field.js.map +1 -0
  457. package/dist/form/Form.d.ts +14 -0
  458. package/dist/form/Form.js +66 -0
  459. package/dist/form/Form.js.map +1 -0
  460. package/dist/form/FormErrorSummary.d.ts +23 -0
  461. package/dist/form/FormErrorSummary.js +102 -0
  462. package/dist/form/FormErrorSummary.js.map +1 -0
  463. package/dist/form/FormSection.d.ts +66 -0
  464. package/dist/form/FormSection.js +227 -0
  465. package/dist/form/FormSection.js.map +1 -0
  466. package/dist/form/FormValue.d.ts +17 -0
  467. package/dist/form/FormValue.js +40 -0
  468. package/dist/form/FormValue.js.map +1 -0
  469. package/dist/form/field-layout.d.ts +34 -0
  470. package/dist/form/field-layout.js +39 -0
  471. package/dist/form/field-layout.js.map +1 -0
  472. package/dist/form/form-constraints.d.ts +38 -0
  473. package/dist/form/form-constraints.js +131 -0
  474. package/dist/form/form-constraints.js.map +1 -0
  475. package/dist/form/leave-confirmation.d.ts +9 -0
  476. package/dist/form/leave-confirmation.js +31 -0
  477. package/dist/form/leave-confirmation.js.map +1 -0
  478. package/dist/form/schemas.d.ts +52 -0
  479. package/dist/form/schemas.js +97 -0
  480. package/dist/form/schemas.js.map +1 -0
  481. package/dist/form/useForm.d.ts +192 -0
  482. package/dist/form/useForm.js +394 -0
  483. package/dist/form/useForm.js.map +1 -0
  484. package/dist/index.d.ts +282 -0
  485. package/dist/index.js +282 -0
  486. package/dist/input/Autocomplete.d.ts +14 -0
  487. package/dist/input/Autocomplete.js +35 -0
  488. package/dist/input/Autocomplete.js.map +1 -0
  489. package/dist/input/Cascader.d.ts +86 -0
  490. package/dist/input/Cascader.js +593 -0
  491. package/dist/input/Cascader.js.map +1 -0
  492. package/dist/input/CharacterCount.d.ts +21 -0
  493. package/dist/input/CharacterCount.js +47 -0
  494. package/dist/input/CharacterCount.js.map +1 -0
  495. package/dist/input/Checkbox.d.ts +93 -0
  496. package/dist/input/Checkbox.js +250 -0
  497. package/dist/input/Checkbox.js.map +1 -0
  498. package/dist/input/ColorField.d.ts +37 -0
  499. package/dist/input/ColorField.js +143 -0
  500. package/dist/input/ColorField.js.map +1 -0
  501. package/dist/input/Combobox.d.ts +75 -0
  502. package/dist/input/Combobox.js +321 -0
  503. package/dist/input/Combobox.js.map +1 -0
  504. package/dist/input/ConditionBuilder.d.ts +55 -0
  505. package/dist/input/ConditionBuilder.js +471 -0
  506. package/dist/input/ConditionBuilder.js.map +1 -0
  507. package/dist/input/ControlGroup.d.ts +26 -0
  508. package/dist/input/ControlGroup.js +50 -0
  509. package/dist/input/ControlGroup.js.map +1 -0
  510. package/dist/input/FileDrop.d.ts +49 -0
  511. package/dist/input/FileDrop.js +201 -0
  512. package/dist/input/FileDrop.js.map +1 -0
  513. package/dist/input/ListPopover.d.ts +39 -0
  514. package/dist/input/ListPopover.js +81 -0
  515. package/dist/input/ListPopover.js.map +1 -0
  516. package/dist/input/Listbox.d.ts +91 -0
  517. package/dist/input/Listbox.js +408 -0
  518. package/dist/input/Listbox.js.map +1 -0
  519. package/dist/input/Mentions.d.ts +74 -0
  520. package/dist/input/Mentions.js +287 -0
  521. package/dist/input/Mentions.js.map +1 -0
  522. package/dist/input/NumberField.d.ts +64 -0
  523. package/dist/input/NumberField.js +288 -0
  524. package/dist/input/NumberField.js.map +1 -0
  525. package/dist/input/NumberRangeField.d.ts +58 -0
  526. package/dist/input/NumberRangeField.js +157 -0
  527. package/dist/input/NumberRangeField.js.map +1 -0
  528. package/dist/input/OtpField.d.ts +58 -0
  529. package/dist/input/OtpField.js +200 -0
  530. package/dist/input/OtpField.js.map +1 -0
  531. package/dist/input/PeoplePicker.d.ts +42 -0
  532. package/dist/input/PeoplePicker.js +185 -0
  533. package/dist/input/PeoplePicker.js.map +1 -0
  534. package/dist/input/PeoplePickerPanel.d.ts +42 -0
  535. package/dist/input/PeoplePickerPanel.js +357 -0
  536. package/dist/input/PeoplePickerPanel.js.map +1 -0
  537. package/dist/input/Radio.d.ts +90 -0
  538. package/dist/input/Radio.js +211 -0
  539. package/dist/input/Radio.js.map +1 -0
  540. package/dist/input/Rating.d.ts +62 -0
  541. package/dist/input/Rating.js +225 -0
  542. package/dist/input/Rating.js.map +1 -0
  543. package/dist/input/Select.d.ts +97 -0
  544. package/dist/input/Select.js +455 -0
  545. package/dist/input/Select.js.map +1 -0
  546. package/dist/input/SelectedTags.d.ts +28 -0
  547. package/dist/input/SelectedTags.js +81 -0
  548. package/dist/input/SelectedTags.js.map +1 -0
  549. package/dist/input/Slider.d.ts +99 -0
  550. package/dist/input/Slider.js +343 -0
  551. package/dist/input/Slider.js.map +1 -0
  552. package/dist/input/Switch.d.ts +63 -0
  553. package/dist/input/Switch.js +198 -0
  554. package/dist/input/Switch.js.map +1 -0
  555. package/dist/input/TagsInput.d.ts +70 -0
  556. package/dist/input/TagsInput.js +314 -0
  557. package/dist/input/TagsInput.js.map +1 -0
  558. package/dist/input/TextField.d.ts +51 -0
  559. package/dist/input/TextField.js +185 -0
  560. package/dist/input/TextField.js.map +1 -0
  561. package/dist/input/Textarea.d.ts +50 -0
  562. package/dist/input/Textarea.js +146 -0
  563. package/dist/input/Textarea.js.map +1 -0
  564. package/dist/input/ToggleGroup.d.ts +82 -0
  565. package/dist/input/ToggleGroup.js +211 -0
  566. package/dist/input/ToggleGroup.js.map +1 -0
  567. package/dist/input/Transfer.d.ts +67 -0
  568. package/dist/input/Transfer.js +407 -0
  569. package/dist/input/Transfer.js.map +1 -0
  570. package/dist/input/TreeSelect.d.ts +94 -0
  571. package/dist/input/TreeSelect.js +412 -0
  572. package/dist/input/TreeSelect.js.map +1 -0
  573. package/dist/input/Upload.d.ts +143 -0
  574. package/dist/input/Upload.js +597 -0
  575. package/dist/input/Upload.js.map +1 -0
  576. package/dist/input/choice-styles.d.ts +117 -0
  577. package/dist/input/choice-styles.js +176 -0
  578. package/dist/input/choice-styles.js.map +1 -0
  579. package/dist/input/condition.d.ts +153 -0
  580. package/dist/input/condition.js +169 -0
  581. package/dist/input/condition.js.map +1 -0
  582. package/dist/input/control.d.ts +160 -0
  583. package/dist/input/control.js +236 -0
  584. package/dist/input/control.js.map +1 -0
  585. package/dist/input/list-state.d.ts +118 -0
  586. package/dist/input/list-state.js +186 -0
  587. package/dist/input/list-state.js.map +1 -0
  588. package/dist/input/people.d.ts +65 -0
  589. package/dist/input/people.js +47 -0
  590. package/dist/input/people.js.map +1 -0
  591. package/dist/input/remote-items.d.ts +20 -0
  592. package/dist/input/remote-items.js +36 -0
  593. package/dist/input/remote-items.js.map +1 -0
  594. package/dist/input/text-format.d.ts +46 -0
  595. package/dist/input/text-format.js +64 -0
  596. package/dist/input/text-format.js.map +1 -0
  597. package/dist/layout/Affix.d.ts +32 -0
  598. package/dist/layout/Affix.js +81 -0
  599. package/dist/layout/Affix.js.map +1 -0
  600. package/dist/layout/AsideLayout.d.ts +45 -0
  601. package/dist/layout/AsideLayout.js +69 -0
  602. package/dist/layout/AsideLayout.js.map +1 -0
  603. package/dist/layout/BackTop.d.ts +16 -0
  604. package/dist/layout/BackTop.js +83 -0
  605. package/dist/layout/BackTop.js.map +1 -0
  606. package/dist/layout/Container.d.ts +60 -0
  607. package/dist/layout/Container.js +62 -0
  608. package/dist/layout/Container.js.map +1 -0
  609. package/dist/layout/Flex.d.ts +116 -0
  610. package/dist/layout/Flex.js +109 -0
  611. package/dist/layout/Flex.js.map +1 -0
  612. package/dist/layout/Grid.d.ts +139 -0
  613. package/dist/layout/Grid.js +168 -0
  614. package/dist/layout/Grid.js.map +1 -0
  615. package/dist/layout/PageScrollbar.d.ts +20 -0
  616. package/dist/layout/PageScrollbar.js +49 -0
  617. package/dist/layout/PageScrollbar.js.map +1 -0
  618. package/dist/layout/Prose.d.ts +19 -0
  619. package/dist/layout/Prose.js +37 -0
  620. package/dist/layout/Prose.js.map +1 -0
  621. package/dist/layout/ResizeHandle.d.ts +28 -0
  622. package/dist/layout/ResizeHandle.js +94 -0
  623. package/dist/layout/ResizeHandle.js.map +1 -0
  624. package/dist/layout/ScrollArea.d.ts +99 -0
  625. package/dist/layout/ScrollArea.js +344 -0
  626. package/dist/layout/ScrollArea.js.map +1 -0
  627. package/dist/layout/Separator.d.ts +47 -0
  628. package/dist/layout/Separator.js +96 -0
  629. package/dist/layout/Separator.js.map +1 -0
  630. package/dist/layout/Splitter.d.ts +75 -0
  631. package/dist/layout/Splitter.js +236 -0
  632. package/dist/layout/Splitter.js.map +1 -0
  633. package/dist/layout/ViewportFill.d.ts +26 -0
  634. package/dist/layout/ViewportFill.js +59 -0
  635. package/dist/layout/ViewportFill.js.map +1 -0
  636. package/dist/navigation/Breadcrumbs.d.ts +59 -0
  637. package/dist/navigation/Breadcrumbs.js +150 -0
  638. package/dist/navigation/Breadcrumbs.js.map +1 -0
  639. package/dist/navigation/NavBar.d.ts +35 -0
  640. package/dist/navigation/NavBar.js +182 -0
  641. package/dist/navigation/NavBar.js.map +1 -0
  642. package/dist/navigation/NavList.d.ts +112 -0
  643. package/dist/navigation/NavList.js +375 -0
  644. package/dist/navigation/NavList.js.map +1 -0
  645. package/dist/navigation/PageJump.d.ts +27 -0
  646. package/dist/navigation/PageJump.js +77 -0
  647. package/dist/navigation/PageJump.js.map +1 -0
  648. package/dist/navigation/PageSizeSelect.d.ts +19 -0
  649. package/dist/navigation/PageSizeSelect.js +65 -0
  650. package/dist/navigation/PageSizeSelect.js.map +1 -0
  651. package/dist/navigation/Pager.d.ts +30 -0
  652. package/dist/navigation/Pager.js +111 -0
  653. package/dist/navigation/Pager.js.map +1 -0
  654. package/dist/navigation/Pagination.d.ts +51 -0
  655. package/dist/navigation/Pagination.js +157 -0
  656. package/dist/navigation/Pagination.js.map +1 -0
  657. package/dist/navigation/PaginationBar.d.ts +54 -0
  658. package/dist/navigation/PaginationBar.js +125 -0
  659. package/dist/navigation/PaginationBar.js.map +1 -0
  660. package/dist/navigation/SkipLink.d.ts +16 -0
  661. package/dist/navigation/SkipLink.js +58 -0
  662. package/dist/navigation/SkipLink.js.map +1 -0
  663. package/dist/navigation/Steps.d.ts +93 -0
  664. package/dist/navigation/Steps.js +198 -0
  665. package/dist/navigation/Steps.js.map +1 -0
  666. package/dist/navigation/TableOfContents.d.ts +32 -0
  667. package/dist/navigation/TableOfContents.js +119 -0
  668. package/dist/navigation/TableOfContents.js.map +1 -0
  669. package/dist/navigation/Tabs.d.ts +208 -0
  670. package/dist/navigation/Tabs.js +626 -0
  671. package/dist/navigation/Tabs.js.map +1 -0
  672. package/dist/navigation/Toolbar.d.ts +39 -0
  673. package/dist/navigation/Toolbar.js +67 -0
  674. package/dist/navigation/Toolbar.js.map +1 -0
  675. package/dist/overlay/AlertDialog.d.ts +43 -0
  676. package/dist/overlay/AlertDialog.js +106 -0
  677. package/dist/overlay/AlertDialog.js.map +1 -0
  678. package/dist/overlay/CommandPalette.d.ts +64 -0
  679. package/dist/overlay/CommandPalette.js +250 -0
  680. package/dist/overlay/CommandPalette.js.map +1 -0
  681. package/dist/overlay/ContextMenu.d.ts +21 -0
  682. package/dist/overlay/ContextMenu.js +76 -0
  683. package/dist/overlay/ContextMenu.js.map +1 -0
  684. package/dist/overlay/Dialog.d.ts +70 -0
  685. package/dist/overlay/Dialog.js +91 -0
  686. package/dist/overlay/Dialog.js.map +1 -0
  687. package/dist/overlay/Drawer.d.ts +186 -0
  688. package/dist/overlay/Drawer.js +214 -0
  689. package/dist/overlay/Drawer.js.map +1 -0
  690. package/dist/overlay/HoverCard.d.ts +48 -0
  691. package/dist/overlay/HoverCard.js +86 -0
  692. package/dist/overlay/HoverCard.js.map +1 -0
  693. package/dist/overlay/Lightbox.d.ts +57 -0
  694. package/dist/overlay/Lightbox.js +374 -0
  695. package/dist/overlay/Lightbox.js.map +1 -0
  696. package/dist/overlay/Menu.d.ts +218 -0
  697. package/dist/overlay/Menu.js +816 -0
  698. package/dist/overlay/Menu.js.map +1 -0
  699. package/dist/overlay/ModalCore.d.ts +132 -0
  700. package/dist/overlay/ModalCore.js +274 -0
  701. package/dist/overlay/ModalCore.js.map +1 -0
  702. package/dist/overlay/Popconfirm.d.ts +49 -0
  703. package/dist/overlay/Popconfirm.js +167 -0
  704. package/dist/overlay/Popconfirm.js.map +1 -0
  705. package/dist/overlay/Popover.d.ts +40 -0
  706. package/dist/overlay/Popover.js +96 -0
  707. package/dist/overlay/Popover.js.map +1 -0
  708. package/dist/overlay/Tooltip.d.ts +47 -0
  709. package/dist/overlay/Tooltip.js +86 -0
  710. package/dist/overlay/Tooltip.js.map +1 -0
  711. package/dist/overlay/Tour.d.ts +74 -0
  712. package/dist/overlay/Tour.js +309 -0
  713. package/dist/overlay/Tour.js.map +1 -0
  714. package/dist/overlay/detached.d.ts +40 -0
  715. package/dist/overlay/detached.js +109 -0
  716. package/dist/overlay/detached.js.map +1 -0
  717. package/dist/patterns/ActionBar.d.ts +29 -0
  718. package/dist/patterns/ActionBar.js +75 -0
  719. package/dist/patterns/ActionBar.js.map +1 -0
  720. package/dist/patterns/AppShell.d.ts +168 -0
  721. package/dist/patterns/AppShell.js +620 -0
  722. package/dist/patterns/AppShell.js.map +1 -0
  723. package/dist/patterns/CommentThread.d.ts +128 -0
  724. package/dist/patterns/CommentThread.js +386 -0
  725. package/dist/patterns/CommentThread.js.map +1 -0
  726. package/dist/patterns/DataImport.d.ts +72 -0
  727. package/dist/patterns/DataImport.js +486 -0
  728. package/dist/patterns/DataImport.js.map +1 -0
  729. package/dist/patterns/DeadlineBadge.d.ts +21 -0
  730. package/dist/patterns/DeadlineBadge.js +76 -0
  731. package/dist/patterns/DeadlineBadge.js.map +1 -0
  732. package/dist/patterns/FilterBar.d.ts +66 -0
  733. package/dist/patterns/FilterBar.js +254 -0
  734. package/dist/patterns/FilterBar.js.map +1 -0
  735. package/dist/patterns/KanbanBoard.d.ts +79 -0
  736. package/dist/patterns/KanbanBoard.js +294 -0
  737. package/dist/patterns/KanbanBoard.js.map +1 -0
  738. package/dist/patterns/NotificationCenter.d.ts +110 -0
  739. package/dist/patterns/NotificationCenter.js +342 -0
  740. package/dist/patterns/NotificationCenter.js.map +1 -0
  741. package/dist/patterns/PageTabs.d.ts +30 -0
  742. package/dist/patterns/PageTabs.js +97 -0
  743. package/dist/patterns/PageTabs.js.map +1 -0
  744. package/dist/patterns/QueryTable.d.ts +64 -0
  745. package/dist/patterns/QueryTable.js +276 -0
  746. package/dist/patterns/QueryTable.js.map +1 -0
  747. package/dist/patterns/StepsForm.d.ts +49 -0
  748. package/dist/patterns/StepsForm.js +130 -0
  749. package/dist/patterns/StepsForm.js.map +1 -0
  750. package/dist/patterns/ThemeSwitcher.d.ts +20 -0
  751. package/dist/patterns/ThemeSwitcher.js +102 -0
  752. package/dist/patterns/ThemeSwitcher.js.map +1 -0
  753. package/dist/patterns/form-dialog.d.ts +62 -0
  754. package/dist/patterns/form-dialog.js +143 -0
  755. package/dist/patterns/form-dialog.js.map +1 -0
  756. package/dist/patterns/index.d.ts +24 -0
  757. package/dist/patterns/index.js +15 -0
  758. package/dist/patterns/messages.d.ts +172 -0
  759. package/dist/patterns/messages.js +184 -0
  760. package/dist/patterns/messages.js.map +1 -0
  761. package/dist/table/ColumnHeaderActions.d.ts +71 -0
  762. package/dist/table/ColumnHeaderActions.js +247 -0
  763. package/dist/table/ColumnHeaderActions.js.map +1 -0
  764. package/dist/table/ColumnResizer.d.ts +12 -0
  765. package/dist/table/ColumnResizer.js +32 -0
  766. package/dist/table/ColumnResizer.js.map +1 -0
  767. package/dist/table/ColumnSettings.d.ts +34 -0
  768. package/dist/table/ColumnSettings.js +136 -0
  769. package/dist/table/ColumnSettings.js.map +1 -0
  770. package/dist/table/ColumnTable.d.ts +51 -0
  771. package/dist/table/ColumnTable.js +140 -0
  772. package/dist/table/ColumnTable.js.map +1 -0
  773. package/dist/table/DataTable.d.ts +44 -0
  774. package/dist/table/DataTable.js +453 -0
  775. package/dist/table/DataTable.js.map +1 -0
  776. package/dist/table/DataTableView.d.ts +328 -0
  777. package/dist/table/DataTableView.js +963 -0
  778. package/dist/table/DataTableView.js.map +1 -0
  779. package/dist/table/PivotTable.d.ts +66 -0
  780. package/dist/table/PivotTable.js +122 -0
  781. package/dist/table/PivotTable.js.map +1 -0
  782. package/dist/table/SelectionBar.d.ts +29 -0
  783. package/dist/table/SelectionBar.js +86 -0
  784. package/dist/table/SelectionBar.js.map +1 -0
  785. package/dist/table/Table.d.ts +169 -0
  786. package/dist/table/Table.js +304 -0
  787. package/dist/table/Table.js.map +1 -0
  788. package/dist/table/TreeDataTable.d.ts +36 -0
  789. package/dist/table/TreeDataTable.js +168 -0
  790. package/dist/table/TreeDataTable.js.map +1 -0
  791. package/dist/table/column-display.d.ts +20 -0
  792. package/dist/table/column-display.js +43 -0
  793. package/dist/table/column-display.js.map +1 -0
  794. package/dist/table/columns.d.ts +244 -0
  795. package/dist/table/columns.js +271 -0
  796. package/dist/table/columns.js.map +1 -0
  797. package/dist/table/csv.d.ts +24 -0
  798. package/dist/table/csv.js +35 -0
  799. package/dist/table/csv.js.map +1 -0
  800. package/dist/table/pivot.d.ts +66 -0
  801. package/dist/table/pivot.js +85 -0
  802. package/dist/table/pivot.js.map +1 -0
  803. package/dist/table/sheet.d.ts +44 -0
  804. package/dist/table/sheet.js +78 -0
  805. package/dist/table/sheet.js.map +1 -0
  806. package/dist/table/table-styles.d.ts +136 -0
  807. package/dist/table/table-styles.js +403 -0
  808. package/dist/table/table-styles.js.map +1 -0
  809. package/dist/table/use-table-query.d.ts +89 -0
  810. package/dist/table/use-table-query.js +194 -0
  811. package/dist/table/use-table-query.js.map +1 -0
  812. package/dist/theme-customize/ThemeCustomizer.d.ts +63 -0
  813. package/dist/theme-customize/ThemeCustomizer.js +361 -0
  814. package/dist/theme-customize/ThemeCustomizer.js.map +1 -0
  815. package/dist/theme-customize/ThemeThumbnail.d.ts +20 -0
  816. package/dist/theme-customize/ThemeThumbnail.js +82 -0
  817. package/dist/theme-customize/ThemeThumbnail.js.map +1 -0
  818. package/dist/theme-customize/contrast.d.ts +27 -0
  819. package/dist/theme-customize/contrast.js +251 -0
  820. package/dist/theme-customize/contrast.js.map +1 -0
  821. package/dist/theme-customize/customize.d.ts +65 -0
  822. package/dist/theme-customize/customize.js +105 -0
  823. package/dist/theme-customize/customize.js.map +1 -0
  824. package/dist/theme-customize/design-tokens.d.ts +31 -0
  825. package/dist/theme-customize/design-tokens.js +183 -0
  826. package/dist/theme-customize/design-tokens.js.map +1 -0
  827. package/dist/theme-customize/index.d.ts +20 -0
  828. package/dist/theme-customize/index.js +9 -0
  829. package/dist/theme-customize/messages.d.ts +74 -0
  830. package/dist/theme-customize/messages.js +142 -0
  831. package/dist/theme-customize/messages.js.map +1 -0
  832. package/dist/theme-customize/palette.d.ts +898 -0
  833. package/dist/theme-customize/palette.js +111 -0
  834. package/dist/theme-customize/palette.js.map +1 -0
  835. package/dist/theme-customize/token-catalog.d.ts +20 -0
  836. package/dist/theme-customize/token-catalog.js +836 -0
  837. package/dist/theme-customize/token-catalog.js.map +1 -0
  838. package/dist/three/background/AuroraBackground.d.ts +30 -0
  839. package/dist/three/background/AuroraBackground.js +80 -0
  840. package/dist/three/background/AuroraBackground.js.map +1 -0
  841. package/dist/three/background/MeshGradient.d.ts +28 -0
  842. package/dist/three/background/MeshGradient.js +76 -0
  843. package/dist/three/background/MeshGradient.js.map +1 -0
  844. package/dist/three/background/ShaderBackground.d.ts +25 -0
  845. package/dist/three/background/ShaderBackground.js +107 -0
  846. package/dist/three/background/ShaderBackground.js.map +1 -0
  847. package/dist/three/core/EffectSurface.d.ts +41 -0
  848. package/dist/three/core/EffectSurface.js +62 -0
  849. package/dist/three/core/EffectSurface.js.map +1 -0
  850. package/dist/three/core/ThreeCanvas.d.ts +39 -0
  851. package/dist/three/core/ThreeCanvas.js +77 -0
  852. package/dist/three/core/ThreeCanvas.js.map +1 -0
  853. package/dist/three/core/dispose.d.ts +9 -0
  854. package/dist/three/core/dispose.js +26 -0
  855. package/dist/three/core/dispose.js.map +1 -0
  856. package/dist/three/core/orbit.d.ts +31 -0
  857. package/dist/three/core/orbit.js +83 -0
  858. package/dist/three/core/orbit.js.map +1 -0
  859. package/dist/three/core/quality.d.ts +59 -0
  860. package/dist/three/core/quality.js +80 -0
  861. package/dist/three/core/quality.js.map +1 -0
  862. package/dist/three/core/renderer.d.ts +110 -0
  863. package/dist/three/core/renderer.js +303 -0
  864. package/dist/three/core/renderer.js.map +1 -0
  865. package/dist/three/core/shaders.d.ts +19 -0
  866. package/dist/three/core/shaders.js +100 -0
  867. package/dist/three/core/shaders.js.map +1 -0
  868. package/dist/three/core/theme-colors.d.ts +30 -0
  869. package/dist/three/core/theme-colors.js +113 -0
  870. package/dist/three/core/theme-colors.js.map +1 -0
  871. package/dist/three/effects/Confetti.d.ts +62 -0
  872. package/dist/three/effects/Confetti.js +242 -0
  873. package/dist/three/effects/Confetti.js.map +1 -0
  874. package/dist/three/effects/ParticleField.d.ts +39 -0
  875. package/dist/three/effects/ParticleField.js +266 -0
  876. package/dist/three/effects/ParticleField.js.map +1 -0
  877. package/dist/three/effects/WaveGrid.d.ts +37 -0
  878. package/dist/three/effects/WaveGrid.js +130 -0
  879. package/dist/three/effects/WaveGrid.js.map +1 -0
  880. package/dist/three/globe/Globe.d.ts +70 -0
  881. package/dist/three/globe/Globe.js +337 -0
  882. package/dist/three/globe/Globe.js.map +1 -0
  883. package/dist/three/globe/land.d.ts +9 -0
  884. package/dist/three/globe/land.js +14 -0
  885. package/dist/three/globe/land.js.map +1 -0
  886. package/dist/three/index.d.ts +24 -0
  887. package/dist/three/index.js +18 -0
  888. package/dist/three/model/ModelViewer.d.ts +63 -0
  889. package/dist/three/model/ModelViewer.js +193 -0
  890. package/dist/three/model/ModelViewer.js.map +1 -0
  891. package/dist/utils/data/collation.d.ts +36 -0
  892. package/dist/utils/data/collation.js +69 -0
  893. package/dist/utils/data/collation.js.map +1 -0
  894. package/dist/utils/data/color.d.ts +32 -0
  895. package/dist/utils/data/color.js +90 -0
  896. package/dist/utils/data/color.js.map +1 -0
  897. package/dist/utils/data/date.d.ts +186 -0
  898. package/dist/utils/data/date.js +409 -0
  899. package/dist/utils/data/date.js.map +1 -0
  900. package/dist/utils/data/diff.d.ts +21 -0
  901. package/dist/utils/data/diff.js +43 -0
  902. package/dist/utils/data/diff.js.map +1 -0
  903. package/dist/utils/data/equality.d.ts +5 -0
  904. package/dist/utils/data/equality.js +24 -0
  905. package/dist/utils/data/equality.js.map +1 -0
  906. package/dist/utils/data/history.d.ts +59 -0
  907. package/dist/utils/data/history.js +132 -0
  908. package/dist/utils/data/history.js.map +1 -0
  909. package/dist/utils/data/intl-cache.d.ts +8 -0
  910. package/dist/utils/data/intl-cache.js +19 -0
  911. package/dist/utils/data/intl-cache.js.map +1 -0
  912. package/dist/utils/data/number-parse.d.ts +7 -0
  913. package/dist/utils/data/number-parse.js +45 -0
  914. package/dist/utils/data/number-parse.js.map +1 -0
  915. package/dist/utils/data/number.d.ts +10 -0
  916. package/dist/utils/data/number.js +28 -0
  917. package/dist/utils/data/number.js.map +1 -0
  918. package/dist/utils/data/numeric.d.ts +55 -0
  919. package/dist/utils/data/numeric.js +133 -0
  920. package/dist/utils/data/numeric.js.map +1 -0
  921. package/dist/utils/data/pagination.d.ts +21 -0
  922. package/dist/utils/data/pagination.js +22 -0
  923. package/dist/utils/data/pagination.js.map +1 -0
  924. package/dist/utils/data/selection.d.ts +41 -0
  925. package/dist/utils/data/selection.js +21 -0
  926. package/dist/utils/data/selection.js.map +1 -0
  927. package/dist/utils/data/status.d.ts +43 -0
  928. package/dist/utils/data/status.js +27 -0
  929. package/dist/utils/data/status.js.map +1 -0
  930. package/dist/utils/data/text.d.ts +12 -0
  931. package/dist/utils/data/text.js +30 -0
  932. package/dist/utils/data/text.js.map +1 -0
  933. package/dist/utils/data/tree.d.ts +140 -0
  934. package/dist/utils/data/tree.js +273 -0
  935. package/dist/utils/data/tree.js.map +1 -0
  936. package/dist/utils/data/workdays.d.ts +67 -0
  937. package/dist/utils/data/workdays.js +67 -0
  938. package/dist/utils/data/workdays.js.map +1 -0
  939. package/dist/utils/dom/announcer.d.ts +11 -0
  940. package/dist/utils/dom/announcer.js +53 -0
  941. package/dist/utils/dom/announcer.js.map +1 -0
  942. package/dist/utils/dom/caret.d.ts +14 -0
  943. package/dist/utils/dom/caret.js +72 -0
  944. package/dist/utils/dom/caret.js.map +1 -0
  945. package/dist/utils/dom/clipboard.d.ts +16 -0
  946. package/dist/utils/dom/clipboard.js +66 -0
  947. package/dist/utils/dom/clipboard.js.map +1 -0
  948. package/dist/utils/dom/direction.d.ts +12 -0
  949. package/dist/utils/dom/direction.js +20 -0
  950. package/dist/utils/dom/direction.js.map +1 -0
  951. package/dist/utils/dom/download.d.ts +7 -0
  952. package/dist/utils/dom/download.js +19 -0
  953. package/dist/utils/dom/download.js.map +1 -0
  954. package/dist/utils/dom/element.d.ts +3 -0
  955. package/dist/utils/dom/element.js +12 -0
  956. package/dist/utils/dom/element.js.map +1 -0
  957. package/dist/utils/dom/event-listener.d.ts +8 -0
  958. package/dist/utils/dom/event-listener.js +35 -0
  959. package/dist/utils/dom/event-listener.js.map +1 -0
  960. package/dist/utils/dom/floating.d.ts +149 -0
  961. package/dist/utils/dom/floating.js +262 -0
  962. package/dist/utils/dom/floating.js.map +1 -0
  963. package/dist/utils/dom/focus.d.ts +28 -0
  964. package/dist/utils/dom/focus.js +105 -0
  965. package/dist/utils/dom/focus.js.map +1 -0
  966. package/dist/utils/dom/fullscreen.d.ts +11 -0
  967. package/dist/utils/dom/fullscreen.js +43 -0
  968. package/dist/utils/dom/fullscreen.js.map +1 -0
  969. package/dist/utils/dom/hotkeys.d.ts +43 -0
  970. package/dist/utils/dom/hotkeys.js +174 -0
  971. package/dist/utils/dom/hotkeys.js.map +1 -0
  972. package/dist/utils/dom/hover-intent.d.ts +47 -0
  973. package/dist/utils/dom/hover-intent.js +72 -0
  974. package/dist/utils/dom/hover-intent.js.map +1 -0
  975. package/dist/utils/dom/hover-layer.d.ts +36 -0
  976. package/dist/utils/dom/hover-layer.js +74 -0
  977. package/dist/utils/dom/hover-layer.js.map +1 -0
  978. package/dist/utils/dom/intersection.d.ts +13 -0
  979. package/dist/utils/dom/intersection.js +36 -0
  980. package/dist/utils/dom/intersection.js.map +1 -0
  981. package/dist/utils/dom/layout-batch.d.ts +14 -0
  982. package/dist/utils/dom/layout-batch.js +26 -0
  983. package/dist/utils/dom/layout-batch.js.map +1 -0
  984. package/dist/utils/dom/link.d.ts +18 -0
  985. package/dist/utils/dom/link.js +44 -0
  986. package/dist/utils/dom/link.js.map +1 -0
  987. package/dist/utils/dom/media-query.d.ts +18 -0
  988. package/dist/utils/dom/media-query.js +36 -0
  989. package/dist/utils/dom/media-query.js.map +1 -0
  990. package/dist/utils/dom/move.d.ts +47 -0
  991. package/dist/utils/dom/move.js +69 -0
  992. package/dist/utils/dom/move.js.map +1 -0
  993. package/dist/utils/dom/open-change.d.ts +51 -0
  994. package/dist/utils/dom/open-change.js +21 -0
  995. package/dist/utils/dom/open-change.js.map +1 -0
  996. package/dist/utils/dom/overflow.d.ts +29 -0
  997. package/dist/utils/dom/overflow.js +108 -0
  998. package/dist/utils/dom/overflow.js.map +1 -0
  999. package/dist/utils/dom/overlay.d.ts +35 -0
  1000. package/dist/utils/dom/overlay.js +104 -0
  1001. package/dist/utils/dom/overlay.js.map +1 -0
  1002. package/dist/utils/dom/page-visibility.d.ts +10 -0
  1003. package/dist/utils/dom/page-visibility.js +22 -0
  1004. package/dist/utils/dom/page-visibility.js.map +1 -0
  1005. package/dist/utils/dom/pan-zoom.d.ts +109 -0
  1006. package/dist/utils/dom/pan-zoom.js +257 -0
  1007. package/dist/utils/dom/pan-zoom.js.map +1 -0
  1008. package/dist/utils/dom/rasterize.d.ts +18 -0
  1009. package/dist/utils/dom/rasterize.js +41 -0
  1010. package/dist/utils/dom/rasterize.js.map +1 -0
  1011. package/dist/utils/dom/resize.d.ts +4 -0
  1012. package/dist/utils/dom/resize.js +65 -0
  1013. package/dist/utils/dom/resize.js.map +1 -0
  1014. package/dist/utils/dom/ripple.d.ts +40 -0
  1015. package/dist/utils/dom/ripple.js +96 -0
  1016. package/dist/utils/dom/ripple.js.map +1 -0
  1017. package/dist/utils/dom/roving-focus.d.ts +44 -0
  1018. package/dist/utils/dom/roving-focus.js +184 -0
  1019. package/dist/utils/dom/roving-focus.js.map +1 -0
  1020. package/dist/utils/dom/scroll-spy.d.ts +30 -0
  1021. package/dist/utils/dom/scroll-spy.js +55 -0
  1022. package/dist/utils/dom/scroll-spy.js.map +1 -0
  1023. package/dist/utils/dom/sortable.d.ts +82 -0
  1024. package/dist/utils/dom/sortable.js +437 -0
  1025. package/dist/utils/dom/sortable.js.map +1 -0
  1026. package/dist/utils/dom/storage.d.ts +21 -0
  1027. package/dist/utils/dom/storage.js +66 -0
  1028. package/dist/utils/dom/storage.js.map +1 -0
  1029. package/dist/utils/dom/typeahead.d.ts +15 -0
  1030. package/dist/utils/dom/typeahead.js +26 -0
  1031. package/dist/utils/dom/typeahead.js.map +1 -0
  1032. package/dist/utils/motion/active-indicator.d.ts +24 -0
  1033. package/dist/utils/motion/active-indicator.js +58 -0
  1034. package/dist/utils/motion/active-indicator.js.map +1 -0
  1035. package/dist/utils/motion/animation.d.ts +58 -0
  1036. package/dist/utils/motion/animation.js +83 -0
  1037. package/dist/utils/motion/animation.js.map +1 -0
  1038. package/dist/utils/motion/delayed-loading.d.ts +18 -0
  1039. package/dist/utils/motion/delayed-loading.js +38 -0
  1040. package/dist/utils/motion/delayed-loading.js.map +1 -0
  1041. package/dist/utils/motion/layout.d.ts +17 -0
  1042. package/dist/utils/motion/layout.js +43 -0
  1043. package/dist/utils/motion/layout.js.map +1 -0
  1044. package/dist/utils/motion/pointer.d.ts +14 -0
  1045. package/dist/utils/motion/pointer.js +72 -0
  1046. package/dist/utils/motion/pointer.js.map +1 -0
  1047. package/dist/utils/motion/presence.d.ts +57 -0
  1048. package/dist/utils/motion/presence.js +100 -0
  1049. package/dist/utils/motion/presence.js.map +1 -0
  1050. package/dist/utils/motion/reveal.d.ts +9 -0
  1051. package/dist/utils/motion/reveal.js +68 -0
  1052. package/dist/utils/motion/reveal.js.map +1 -0
  1053. package/dist/utils/motion/tween.d.ts +34 -0
  1054. package/dist/utils/motion/tween.js +50 -0
  1055. package/dist/utils/motion/tween.js.map +1 -0
  1056. package/dist/utils/props.d.ts +84 -0
  1057. package/dist/utils/props.js +189 -0
  1058. package/dist/utils/props.js.map +1 -0
  1059. package/dist/utils/request/http.d.ts +101 -0
  1060. package/dist/utils/request/http.js +154 -0
  1061. package/dist/utils/request/http.js.map +1 -0
  1062. package/dist/utils/request/use-request.d.ts +37 -0
  1063. package/dist/utils/request/use-request.js +90 -0
  1064. package/dist/utils/request/use-request.js.map +1 -0
  1065. package/dist/utils/request/wire.d.ts +48 -0
  1066. package/dist/utils/request/wire.js +208 -0
  1067. package/dist/utils/request/wire.js.map +1 -0
  1068. package/dist/utils/style/attached.d.ts +25 -0
  1069. package/dist/utils/style/attached.js +82 -0
  1070. package/dist/utils/style/attached.js.map +1 -0
  1071. package/dist/utils/style/item-styles.d.ts +18 -0
  1072. package/dist/utils/style/item-styles.js +79 -0
  1073. package/dist/utils/style/item-styles.js.map +1 -0
  1074. package/dist/utils/style/markers.d.ts +6 -0
  1075. package/dist/utils/style/markers.js +11 -0
  1076. package/dist/utils/style/markers.js.map +1 -0
  1077. package/dist/utils/style/shimmer.d.ts +20 -0
  1078. package/dist/utils/style/shimmer.js +58 -0
  1079. package/dist/utils/style/shimmer.js.map +1 -0
  1080. package/dist/utils/style/styles.d.ts +118 -0
  1081. package/dist/utils/style/styles.js +114 -0
  1082. package/dist/utils/style/styles.js.map +1 -0
  1083. package/dist/utils/style/swatch-styles.d.ts +10 -0
  1084. package/dist/utils/style/swatch-styles.js +19 -0
  1085. package/dist/utils/style/swatch-styles.js.map +1 -0
  1086. package/dist/utils/style/tone-styles.d.ts +58 -0
  1087. package/dist/utils/style/tone-styles.js +180 -0
  1088. package/dist/utils/style/tone-styles.js.map +1 -0
  1089. package/dist/utils/style/transitions.d.ts +43 -0
  1090. package/dist/utils/style/transitions.js +118 -0
  1091. package/dist/utils/style/transitions.js.map +1 -0
  1092. package/dist/utils/style/typography.d.ts +155 -0
  1093. package/dist/utils/style/typography.js +80 -0
  1094. package/dist/utils/style/typography.js.map +1 -0
  1095. package/dist/utils/style/vars.d.ts +18 -0
  1096. package/dist/utils/style/vars.js +21 -0
  1097. package/dist/utils/style/vars.js.map +1 -0
  1098. package/dist/utils/virtual/use-virtualizer.d.ts +43 -0
  1099. package/dist/utils/virtual/use-virtualizer.js +94 -0
  1100. package/dist/utils/virtual/use-virtualizer.js.map +1 -0
  1101. package/dist/utils/virtual/virtualizer.d.ts +145 -0
  1102. package/dist/utils/virtual/virtualizer.js +316 -0
  1103. package/dist/utils/virtual/virtualizer.js.map +1 -0
  1104. package/dist/xlsx/index.d.ts +7 -0
  1105. package/dist/xlsx/index.js +1 -0
  1106. package/dist/xlsx/workbook.d.ts +33 -0
  1107. package/dist/xlsx/workbook.js +195 -0
  1108. package/dist/xlsx/workbook.js.map +1 -0
  1109. package/package.json +205 -3
@@ -0,0 +1,394 @@
1
+ import { useLang } from "../config/context.js";
2
+ import { sameValue } from "../utils/data/equality.js";
3
+ import { Field } from "./Field.js";
4
+ import { createConstraints } from "./form-constraints.js";
5
+ import { computed, reactive, shallowReactive, toRaw, watch } from "vue";
6
+ import { safeParseAsync } from "zod/v4/core";
7
+ //#region src/form/useForm.ts
8
+ /** 字段路径 path 是否在 scope 里:就是它,或是它的子路径('address' 包含 'address.city') */
9
+ var inScope = (path, scope) => scope.some((prefix) => path === prefix || path.startsWith(`${prefix}.`));
10
+ /** zod issue 的路径 → 点连接的字符串 */
11
+ var issuePath = (issue) => issue.path.map(String).join(".");
12
+ /**
13
+ * 该填的没有填:类型不对且是空值(null、undefined,包括缺少的键),或长度不够且是空字符串、空数组。
14
+ * 选择、数字、日期控件清空后是 null(COMPONENTS.md §1 空值),z.string() 遇到它报的是类型不对,读起来应当是“必填”
15
+ */
16
+ function isBlankIssue({ code, input }) {
17
+ if (code === "invalid_type") return input == null;
18
+ if (code === "too_small") return input === "" || Array.isArray(input) && input.length === 0;
19
+ return false;
20
+ }
21
+ /** 按点连接的路径写值;中途是 null / undefined 时什么也不做 */
22
+ function writePath(target, path, value) {
23
+ const keys = path.split(".");
24
+ const parent = readPath(target, keys.slice(0, -1).join("."));
25
+ if (keys.length === 1) target[keys[0]] = value;
26
+ else if (parent != null) parent[keys.at(-1)] = value;
27
+ }
28
+ /** 按点连接的路径取值;中途是 null / undefined 时为 undefined */
29
+ function readPath(source, path) {
30
+ let current = source;
31
+ for (const key of path.split(".")) {
32
+ if (current == null) return void 0;
33
+ current = current[key];
34
+ }
35
+ return current;
36
+ }
37
+ /**
38
+ * 数组字段的下标变了:`prefix.旧下标…` 的键改成 `prefix.新下标…`,map 返回 undefined 的(删掉的项)丢弃
39
+ */
40
+ function shiftIndices(key, prefix, map) {
41
+ if (!key.startsWith(`${prefix}.`)) return key;
42
+ const [head, ...tail] = key.slice(prefix.length + 1).split(".");
43
+ const index = Number(head);
44
+ if (!Number.isInteger(index)) return key;
45
+ const next = map(index);
46
+ return next === void 0 ? void 0 : [
47
+ prefix,
48
+ next,
49
+ ...tail
50
+ ].join(".");
51
+ }
52
+ var nextArrayKey = 0;
53
+ /**
54
+ * 复制表单的值:普通对象与数组逐层复制(各份互不影响),其余值原样保留。
55
+ * 不用 structuredClone:Decimal、@internationalized/date 的日期这些带方法的值克隆不了(会抛错),
56
+ * 它们本身不可变,共用同一个实例没有问题
57
+ */
58
+ function cloneValue(value) {
59
+ const raw = toRaw(value);
60
+ if (Array.isArray(raw)) return raw.map(cloneValue);
61
+ if (raw === null || typeof raw !== "object") return raw;
62
+ const prototype = Object.getPrototypeOf(raw);
63
+ if (prototype !== Object.prototype && prototype !== null) return raw;
64
+ return Object.fromEntries(Object.entries(raw).map(([key, item]) => [key, cloneValue(item)]));
65
+ }
66
+ /**
67
+ * 创建表单控制器(组件 setup 里或模块顶层都可以)。
68
+ * 有 schema 时值的类型取自 schema(initial 要符合它的输入类型),onSubmit 拿到解析后的输出
69
+ */
70
+ function useForm(options) {
71
+ const { schema, validateOn = "blur", onSubmit } = options;
72
+ const lang = useLang();
73
+ const parseOptions = { error: (issue) => isBlankIssue(issue) ? lang.formRequired : lang.formIssues(issue) };
74
+ const fieldValidators = Object.entries(options.fields ?? {});
75
+ const values = reactive(cloneValue(options.initial));
76
+ const state = shallowReactive({
77
+ errors: {},
78
+ fieldErrors: {},
79
+ externalErrors: {},
80
+ touched: /* @__PURE__ */ new Set(),
81
+ pending: /* @__PURE__ */ new Set(),
82
+ submitting: false,
83
+ submitCount: 0,
84
+ resetCount: 0,
85
+ baseline: cloneValue(options.initial)
86
+ });
87
+ let run = 0;
88
+ let submission;
89
+ let parsed;
90
+ const constraints = createConstraints(schema);
91
+ const dirty = computed(() => !sameValue(values, state.baseline));
92
+ const arrayKeys = /* @__PURE__ */ new Map();
93
+ const fields = shallowReactive(/* @__PURE__ */ new Map());
94
+ /** 单字段校验的进行状态:每个字段一份 */
95
+ const fieldRuns = /* @__PURE__ */ new Map();
96
+ function setPending(path, pending) {
97
+ if (state.pending.has(path) === pending) return;
98
+ const next = new Set(state.pending);
99
+ if (pending) next.add(path);
100
+ else next.delete(path);
101
+ state.pending = next;
102
+ }
103
+ /**
104
+ * 运行一个字段的校验。同一个值正在校验时等它;上次校验的就是这个值时直接用上次的结果;
105
+ * 值变了就中止还在路上的那次(只采用最后一次的结果)
106
+ */
107
+ function runField(path, validator) {
108
+ const entry = fieldRuns.get(path) ?? {};
109
+ fieldRuns.set(path, entry);
110
+ clearTimeout(entry.timer);
111
+ const value = cloneValue([readPath(values, path), ...dependsOn(path).map((dep) => readPath(values, dep))]);
112
+ if (entry.running && sameValue(entry.running.value, value)) return entry.running.done;
113
+ if (!entry.running && "checked" in entry && sameValue(entry.checked, value)) return Promise.resolve();
114
+ entry.running?.controller.abort();
115
+ const controller = new AbortController();
116
+ setPending(path, true);
117
+ const done = (async () => {
118
+ try {
119
+ const message = await validator.validate(value[0], values, controller.signal);
120
+ if (controller.signal.aborted) return;
121
+ entry.checked = value;
122
+ state.fieldErrors = {
123
+ ...state.fieldErrors,
124
+ [path]: message
125
+ };
126
+ } catch (error) {
127
+ if (!controller.signal.aborted) console.error(`useForm:字段 ${path} 的校验出错`, error);
128
+ } finally {
129
+ if (entry.running?.controller === controller) {
130
+ entry.running = void 0;
131
+ setPending(path, false);
132
+ }
133
+ }
134
+ })();
135
+ entry.running = {
136
+ value,
137
+ controller,
138
+ done
139
+ };
140
+ return done;
141
+ }
142
+ function cancelFieldRuns() {
143
+ for (const entry of fieldRuns.values()) {
144
+ clearTimeout(entry.timer);
145
+ entry.running?.controller.abort();
146
+ }
147
+ fieldRuns.clear();
148
+ state.pending = /* @__PURE__ */ new Set();
149
+ state.fieldErrors = {};
150
+ }
151
+ /** 字段依赖的字段 */
152
+ const dependsOn = (path) => options.dependencies?.[path] ?? [];
153
+ /**
154
+ * 校验整份值:schema 与 validate 的错误(errors)。full 时单字段校验也立刻跑完(提交、显式调用 validate;
155
+ * 给了 scope 时只跑 scope 里的),结果在 state.fieldErrors;失焦、输入时只算 schema 与 validate,
156
+ * 单字段校验照旧防抖、只在它自己(或它依赖的字段)的值变了时跑
157
+ */
158
+ async function collect(full, scope) {
159
+ const errors = {};
160
+ let output = values;
161
+ if (schema) {
162
+ const result = await safeParseAsync(schema, values, parseOptions);
163
+ if (result.success) output = result.data;
164
+ for (const issue of result.error?.issues ?? []) errors[issuePath(issue)] ??= issue.message;
165
+ }
166
+ if (options.validate) {
167
+ for (const [path, message] of Object.entries(await options.validate(values))) if (message) errors[path] ??= message;
168
+ }
169
+ if (full) await Promise.all(fieldValidators.filter(([path]) => !scope || inScope(path, scope)).map(([path, validator]) => runField(path, validator)));
170
+ return {
171
+ errors,
172
+ output
173
+ };
174
+ }
175
+ /** setError 给的错误,值改过就不算了;'' 是整份表单的错误,任一字段改了都不算 */
176
+ function externalError(path) {
177
+ const entry = state.externalErrors[path];
178
+ if (!entry) return void 0;
179
+ const current = path === "" ? values : readPath(values, path);
180
+ return sameValue(current, entry.value) ? entry.message : void 0;
181
+ }
182
+ /** schema 与 validate 的错误优先,再补上 setError 与单字段校验的 */
183
+ function mergedErrors() {
184
+ const merged = { ...state.errors };
185
+ for (const path of Object.keys(state.externalErrors)) {
186
+ const message = externalError(path);
187
+ if (message) merged[path] ??= message;
188
+ }
189
+ for (const [path, message] of Object.entries(state.fieldErrors)) if (message) merged[path] ??= message;
190
+ return merged;
191
+ }
192
+ /**
193
+ * 校验并记下结果(只采用最后一次);返回是否通过:算出的、setError 给的、单字段校验的都没有错误。
194
+ * 给了 scope 时只看 scope 里的字段,别的字段的错误保持原样
195
+ */
196
+ async function check(full, scope) {
197
+ const current = ++run;
198
+ const { errors, output } = await collect(full, scope);
199
+ if (!scope) {
200
+ if (current === run) {
201
+ state.errors = errors;
202
+ parsed = output;
203
+ }
204
+ return Object.keys(errors).length === 0 && Object.keys(mergedErrors()).length === 0;
205
+ }
206
+ const scoped = (source) => Object.entries(source).filter(([path, message]) => message && inScope(path, scope));
207
+ if (current === run) state.errors = {
208
+ ...Object.fromEntries(Object.entries(state.errors).filter(([path]) => !inScope(path, scope))),
209
+ ...Object.fromEntries(scoped(errors))
210
+ };
211
+ return scoped(errors).length === 0 && scoped(mergedErrors()).length === 0;
212
+ }
213
+ /** 把这些字段记为失焦过:它们的错误开始显示 */
214
+ function touch(paths) {
215
+ const next = new Set(state.touched);
216
+ for (const path of paths) next.add(path);
217
+ if (next.size !== state.touched.size) state.touched = next;
218
+ }
219
+ /** 数组字段的下标变了:错误、失焦记录、单字段校验的结果跟着移 */
220
+ function remapIndices(prefix, map) {
221
+ const remap = (errors) => Object.fromEntries(Object.entries(errors).flatMap(([key, message]) => {
222
+ const next = shiftIndices(key, prefix, map);
223
+ return next === void 0 ? [] : [[next, message]];
224
+ }));
225
+ state.errors = remap(state.errors);
226
+ state.fieldErrors = remap(state.fieldErrors);
227
+ state.externalErrors = Object.fromEntries(Object.entries(state.externalErrors).flatMap(([key, entry]) => {
228
+ const next = shiftIndices(key, prefix, map);
229
+ return next === void 0 ? [] : [[next, entry]];
230
+ }));
231
+ state.touched = new Set([...state.touched].flatMap((key) => shiftIndices(key, prefix, map) ?? []));
232
+ }
233
+ function fieldArray(path) {
234
+ const list = () => readPath(values, path) ?? [];
235
+ const keys = () => {
236
+ let current = arrayKeys.get(path);
237
+ if (current?.length !== list().length) {
238
+ current = list().map(() => `item-${++nextArrayKey}`);
239
+ arrayKeys.set(path, current);
240
+ }
241
+ return current;
242
+ };
243
+ /** 改数组与 key:splice 的参数同时作用在两者上 */
244
+ const splice = (start, deleteCount, ...items) => {
245
+ keys().splice(start, deleteCount, ...items.map(() => `item-${++nextArrayKey}`));
246
+ list().splice(start, deleteCount, ...items);
247
+ };
248
+ return {
249
+ get items() {
250
+ return list();
251
+ },
252
+ get keys() {
253
+ return keys();
254
+ },
255
+ append: (item) => splice(list().length, 0, item),
256
+ insert(index, item) {
257
+ remapIndices(path, (old) => old >= index ? old + 1 : old);
258
+ splice(index, 0, item);
259
+ },
260
+ remove(index) {
261
+ remapIndices(path, (old) => old === index ? void 0 : old > index ? old - 1 : old);
262
+ splice(index, 1);
263
+ },
264
+ move(from, to) {
265
+ if (from === to) return;
266
+ remapIndices(path, (old) => {
267
+ if (old === from) return to;
268
+ if (from < to && old > from && old <= to) return old - 1;
269
+ if (from > to && old >= to && old < from) return old + 1;
270
+ return old;
271
+ });
272
+ const [key] = keys().splice(from, 1);
273
+ const [item] = list().splice(from, 1);
274
+ keys().splice(to, 0, key);
275
+ list().splice(to, 0, item);
276
+ }
277
+ };
278
+ }
279
+ const controller = {
280
+ values,
281
+ get errors() {
282
+ return mergedErrors();
283
+ },
284
+ get formError() {
285
+ if (state.submitCount === 0) return void 0;
286
+ return state.errors[""] ?? externalError("");
287
+ },
288
+ get submitting() {
289
+ return state.submitting;
290
+ },
291
+ get resetCount() {
292
+ return state.resetCount;
293
+ },
294
+ get submitCount() {
295
+ return state.submitCount;
296
+ },
297
+ get dirty() {
298
+ return dirty.value;
299
+ },
300
+ validating(path) {
301
+ return path === void 0 ? state.pending.size > 0 : state.pending.has(path);
302
+ },
303
+ visibleError(path) {
304
+ if (state.submitCount === 0 && !inScope(path, [...state.touched])) return void 0;
305
+ return state.errors[path] ?? externalError(path) ?? state.fieldErrors[path];
306
+ },
307
+ blur(path) {
308
+ if (state.touched.has(path)) return;
309
+ state.touched = new Set(state.touched).add(path);
310
+ if (validateOn !== "submit") check(false);
311
+ },
312
+ validate(paths) {
313
+ if (!paths) return check(true);
314
+ touch(paths);
315
+ return check(true, paths);
316
+ },
317
+ submit() {
318
+ submission ??= (async () => {
319
+ state.submitCount++;
320
+ const valid = await check(true);
321
+ if (!valid || !onSubmit) return valid;
322
+ state.submitting = true;
323
+ try {
324
+ await onSubmit(parsed);
325
+ } finally {
326
+ state.submitting = false;
327
+ }
328
+ return true;
329
+ })().finally(() => submission = void 0);
330
+ return submission;
331
+ },
332
+ reset(next = options.initial) {
333
+ run++;
334
+ const snapshot = cloneValue(next);
335
+ cancelFieldRuns();
336
+ Object.assign(values, cloneValue(snapshot));
337
+ arrayKeys.clear();
338
+ state.baseline = snapshot;
339
+ state.errors = {};
340
+ state.externalErrors = {};
341
+ state.touched = /* @__PURE__ */ new Set();
342
+ state.submitCount = 0;
343
+ state.resetCount++;
344
+ },
345
+ isDirty(path) {
346
+ return !sameValue(readPath(values, path), readPath(state.baseline, path));
347
+ },
348
+ array(path) {
349
+ return fieldArray(path);
350
+ },
351
+ setError(path, message) {
352
+ const { [path]: _previous, ...rest } = state.externalErrors;
353
+ const value = path === "" ? values : readPath(values, path);
354
+ state.externalErrors = message === void 0 ? rest : {
355
+ ...rest,
356
+ [path]: {
357
+ message,
358
+ value: cloneValue(value)
359
+ }
360
+ };
361
+ },
362
+ constraints,
363
+ Field,
364
+ getValue: (path) => readPath(values, path),
365
+ setValue: (path, value) => writePath(values, path, value),
366
+ register(path, field) {
367
+ fields.set(path, field);
368
+ return () => {
369
+ if (fields.get(path) === field) fields.delete(path);
370
+ };
371
+ },
372
+ fields
373
+ };
374
+ watch(() => values, () => {
375
+ if (validateOn === "change" || state.submitCount > 0 || validateOn === "blur" && state.touched.size > 0) check(false);
376
+ }, { deep: true });
377
+ for (const [path, deps] of Object.entries(options.dependencies ?? {})) watch(() => deps.map((dep) => readPath(values, dep)), () => {
378
+ const value = readPath(values, path);
379
+ if (!!(value == null || value === "" || Array.isArray(value) && !value.length) && !state.touched.has(path)) return;
380
+ touch([path]);
381
+ if (validateOn !== "submit" || state.submitCount > 0) check(false);
382
+ }, { deep: true });
383
+ for (const [path, validator] of fieldValidators) watch(() => [readPath(values, path), ...dependsOn(path).map((dep) => readPath(values, dep))], () => {
384
+ const entry = fieldRuns.get(path) ?? {};
385
+ fieldRuns.set(path, entry);
386
+ clearTimeout(entry.timer);
387
+ entry.timer = setTimeout(() => void runField(path, validator), validator.debounce ?? 300);
388
+ }, { deep: true });
389
+ return controller;
390
+ }
391
+ //#endregion
392
+ export { useForm };
393
+
394
+ //# sourceMappingURL=useForm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useForm.js","names":[],"sources":["../../src/form/useForm.ts"],"sourcesContent":["/**\n * 表单控制器:值、校验、错误、提交状态放在一个对象里,交给 <Form controller>(COMPONENTS.md §1 的“命令式能力”)。\n * 校验用 zod(使用方安装的 peer 依赖,zod 与 zod/mini 都可以),也可以写 validate 函数。\n * 参考 TanStack Form、React Hook Form 的做法,取其中最常用的部分。\n *\n * const form = useForm({\n * schema: z.object({ email: z.email('邮箱格式不对'), age: z.coerce.number().int().min(18, '未满 18 岁') }),\n * initial: { email: '', age: '' }, // 类型是 schema 的输入(z.input)\n * onSubmit: (values) => api.signup(values), // 拿到解析后的输出(z.output):age 已是数字\n * });\n * <Form controller={form}>\n * <FormErrorSummary /> // 提交没通过时在顶上列出各项错误,点了跳到字段\n * <form.Field name=\"email\" label=\"邮箱\"><TextField /></form.Field> // 只有一个控件时自动绑定值\n * <Button type=\"submit\" loading={form.submitting}>登录</Button>\n * </Form>\n *\n * form.Field 里只有一个控件、控件上没写值时,自动绑定 form.values 的这个字段(同 Ant Design Form.Item 的 name):\n * 写回的是 _value;声明了 _checked 而没有 _value 的控件(Switch、单个 Checkbox)写回 _checked,也可以用 Field 的 valueProp 指定。\n * 自己写了 _value={form.values.email} 时照旧。\n *\n * 何时显示错误(“迟一点批评、早一点肯定”):字段失焦后才显示它的错误,之后它随输入实时更新;提交过一次之后,所有字段随输入实时更新。\n * 不属于哪个字段的错误(对象级 refine 没写 path、validate 返回的 '' 键、setError('', …))是整份表单的错误,见 formError。\n * 字段的值经 v-model 写回,中文输入法组合输入期间不写回,所以组合中途不会触发校验。\n *\n * schema 还决定字段的约束(form-constraints.ts):标签的必填标记、输入框的 maxlength、NumberField 的 min / max\n * 都从 schema 来,不用在控件上再写一遍。\n *\n * - 数组字段:`form.array('items')` 增删、插入、移动,给每项一个稳定的 key;错误与失焦记录跟着下标移动。\n * - 单字段异步校验:`fields: { username: { validate: (name, values, signal) => api.taken(name, { signal }) } }`,\n * 这个字段变化时防抖运行、只采用最后一次的结果,提交时等它完成;`form.validating('username')` 显示校验中。\n * - 改动:`form.dirty` 是值与初始值(或上次 reset 的值)不同;未保存离开的提醒用 useLeaveConfirmation(() => form.dirty)。\n * - 局部校验:`form.validate(['name', 'address'])` 只校验这些字段(含子路径)并显示它们的错误,分步表单进下一步前用。\n * - 字段联动:`dependencies: { confirm: ['password'] }`,password 改了重新校验 confirm(confirm 填过或失焦过时显示它的错误),\n * confirm 的单字段校验也跟着重跑。\n */\nimport type { TsxComponent } from '@zerodep-dev/vue-tsx-pro-tsx';\nimport { computed, reactive, shallowReactive, toRaw, watch } from 'vue';\nimport { safeParseAsync, type $ZodIssue, type $ZodRawIssue, type $ZodType } from 'zod/v4/core';\nimport { useLang } from '../config/context';\nimport { Field, type FieldProps } from './Field';\nimport { createConstraints, type FieldConstraints } from './form-constraints';\nimport { sameValue } from '../utils/data/equality';\n\n/** 字段路径 → 错误信息;路径用点连接(`address.city`、`items.0.name`) */\nexport type FormErrors = Partial<Record<string, string>>;\n\n/** 当作一个整体的值:不再往里展开路径 */\ntype FieldLeaf = string | number | boolean | bigint | symbol | null | undefined | Date | Blob;\n\n/**\n * 值里的字段路径:点连接,数组下标是数字(`email`、`address.city`、`items.0.name`)。\n * 最多展开 6 层,再深的结构写成 string 也照样能用(Field 的 name、setError 都接受)\n */\nexport type FieldPath<Values, Depth extends unknown[] = []> = Depth['length'] extends 6\n ? never\n : Values extends readonly (infer Item)[]\n ? `${number}` | `${number}.${FieldPath<Item, [...Depth, unknown]>}`\n : Values extends object\n ? {\n [K in keyof Values & string]:\n | K\n | (NonNullable<Values[K]> extends FieldLeaf\n ? never\n : `${K}.${FieldPath<NonNullable<Values[K]>, [...Depth, unknown]>}`);\n }[keyof Values & string]\n : never;\n\n/** 字段路径 P 处的值的类型(`PathValue<Values, 'items.0.name'>` → string) */\nexport type PathValue<Values, P extends string> = P extends `${infer Key}.${infer Rest}`\n ? Values extends readonly (infer Item)[]\n ? PathValue<NonNullable<Item>, Rest>\n : Key extends keyof Values\n ? PathValue<NonNullable<Values[Key]>, Rest>\n : never\n : Values extends readonly (infer Item)[]\n ? Item\n : P extends keyof Values\n ? Values[P]\n : never;\n\n/** 值是数组的字段路径:form.array 只接受这些 */\nexport type ArrayPath<Values> = {\n [P in FieldPath<Values>]: NonNullable<PathValue<Values, P>> extends readonly unknown[]\n ? P\n : never;\n}[FieldPath<Values>];\n\n/** 单个字段的校验:只在这个字段变化时运行(防抖),适合要请求接口的“用户名已占用” */\nexport interface FieldValidator<Value, Values> {\n /** 返回错误信息,通过时返回 undefined;signal 在值又变了、表单重置时中止 */\n validate: (\n value: Value,\n values: Values,\n signal: AbortSignal,\n ) => string | undefined | Promise<string | undefined>;\n /** 值停止变化多久(毫秒)后运行,默认 300 */\n debounce?: number;\n}\n\n/** 字段路径 path 是否在 scope 里:就是它,或是它的子路径('address' 包含 'address.city') */\nconst inScope = (path: string, scope: readonly string[]) =>\n scope.some((prefix) => path === prefix || path.startsWith(`${prefix}.`));\n\n/** 数组字段的操作:form.array(path) 的返回值 */\nexport interface FieldArray<Item> {\n /** 当前的各项(就是 values 里的数组) */\n readonly items: readonly Item[];\n /** 每项一个稳定的 key:渲染列表时用,增删、移动后不变 */\n readonly keys: readonly string[];\n /** 加到末尾 */\n append(item: Item): void;\n /** 插到 index 处 */\n insert(index: number, item: Item): void;\n /** 删掉 index 处的一项 */\n remove(index: number): void;\n /** 把 from 处的一项移到 to 处 */\n move(from: number, to: number): void;\n}\n\n/** 什么时候开始校验;提交过一次之后总是随输入更新 */\nexport interface FormValidateTimings {\n /** 失焦后(默认) */\n blur: unknown;\n /** 输入时 */\n change: unknown;\n /** 只在提交时 */\n submit: unknown;\n}\n\n/** useForm 的选项;Values 是表单里的值(有 schema 时是它的输入类型),Output 是校验通过后交给 onSubmit 的值 */\nexport interface FormOptions<Values extends object, Output = Values> {\n /** 初始值;reset() 回到它 */\n initial: Values;\n /** zod schema:整份值一起校验,issue 的 path 决定错误挂在哪个字段上;字段约束也从它推出 */\n schema?: $ZodType<Output, Values>;\n /** 自定义校验:返回各字段的错误(可以是 Promise),与 schema 的结果合并 */\n validate?: (values: Values) => FormErrors | Promise<FormErrors>;\n /**\n * 单字段异步校验:按字段路径给出,这个字段变化时防抖运行,结果与 schema 的合并(schema 的错误优先)。\n * NoInfer:Values 只从 initial 与 schema 推出,validate 的参数类型才能跟着推出来\n */\n fields?: NoInfer<{ [P in FieldPath<Values>]?: FieldValidator<PathValue<Values, P>, Values> }>;\n /** 什么时候开始校验,默认 blur;提交过一次之后总是随输入更新 */\n validateOn?: keyof FormValidateTimings;\n /**\n * 字段联动:字段 → 它依赖的字段。依赖的值改了就重新校验它(它填过或失焦过时显示错误),它的单字段校验也重跑。\n * 如 `{ confirm: ['password'], endDate: ['startDate'] }`\n */\n dependencies?: NoInfer<{ [P in FieldPath<Values>]?: readonly FieldPath<Values>[] }>;\n /** 校验通过后调用,拿到 schema 解析后的值(转换、默认值、coerce 都已生效);返回 Promise 时 submitting 一直为 true 直到完成 */\n onSubmit?: (values: Output) => unknown;\n}\n\n/** 控制器里与值的类型无关的部分:Form、Field 只用到它,任何 FormController 都能交给 <Form controller> */\nexport interface FormControllerBase {\n /** 所有字段当前的校验错误(含还没显示的);整份表单的错误在 '' 键上 */\n readonly errors: Readonly<FormErrors>;\n /** 整份表单的错误(不属于哪个字段),提交过之后才有;放在提交按钮旁或表单顶上 */\n readonly formError: string | undefined;\n /** 正在执行 onSubmit */\n readonly submitting: boolean;\n /** 提交过几次(不论成功与否) */\n readonly submitCount: number;\n /** 重置过几次:控件据此丢掉自己还没写回的输入(useFormReset) */\n readonly resetCount: number;\n /** 值与初始值(或上次 reset 的值)不同 */\n readonly dirty: boolean;\n /** 字段(不写时为任一字段)的单字段校验正在进行 */\n validating(path?: string): boolean;\n /** 字段的错误是否该显示:失焦过、或提交过之后才显示;Field 用它 */\n visibleError(path: string): string | undefined;\n /** 字段失焦:Field 在焦点离开字段时调用 */\n blur(path: string): void;\n /**\n * 校验整份表单,返回是否通过。给了 paths 时只看这些字段(含子路径):它们的错误立即显示,\n * 返回它们是否都通过(分步表单进下一步前用)\n */\n validate(paths?: readonly string[]): Promise<boolean>;\n /** 提交:先校验,通过后调用 onSubmit;返回是否通过校验 */\n submit(): Promise<boolean>;\n /** 回到初始值,清空错误与失焦记录 */\n reset(): void;\n /** 字段从 schema 推出的约束(必填、长度、范围…);Field 交给控件,控件上显式写的优先 */\n constraints(path: string): FieldConstraints;\n /** 字段的当前值(按点连接的路径):Field 自动绑定值时用 */\n getValue(path: string): unknown;\n /** 写字段的值:中途是 null / undefined 时什么也不做 */\n setValue(path: string, value: unknown): void;\n /** 写了 name 的 Field 登记标签与控件的 id:错误汇总据此显示字段名、跳到控件。返回注销函数 */\n register(path: string, field: FormFieldInfo): () => void;\n /** 登记过的字段,按登记(渲染)的顺序 */\n readonly fields: ReadonlyMap<string, FormFieldInfo>;\n}\n\n/** Field 登记的字段信息 */\nexport interface FormFieldInfo {\n /** 标签的文字 */\n label: string;\n /** 控件的 id:错误汇总的链接指向它 */\n controlId: string;\n}\n\n/** 表单控制器:useForm 的返回值 */\nexport interface FormController<Values extends object> extends FormControllerBase {\n /** 当前值(响应式):控件写 _value={form.values.email} */\n readonly values: Values;\n /** 回到初始值(或给定的值,之后 dirty 以它为准),清空错误与失焦记录;保存成功后写 reset(form.values) */\n reset(values?: Values): void;\n /** 字段与初始值不同 */\n isDirty(path: FieldPath<Values>): boolean;\n /** 校验整份表单,或只校验 paths 里的字段(含子路径)并显示它们的错误;返回是否通过 */\n validate(paths?: readonly FieldPath<Values>[]): Promise<boolean>;\n /** 数组字段的增删、插入、移动 */\n array<P extends ArrayPath<Values>>(\n path: P,\n ): FieldArray<NonNullable<PathValue<Values, P>> extends readonly (infer Item)[] ? Item : never>;\n /**\n * 设置某个字段的错误(如服务端返回的“邮箱已注册”),undefined 清除;'' 是整份表单的错误。\n * 校验不会冲掉它,这个字段(整份表单的错误是任一字段)的值改了之后自动消失\n */\n setError(path: FieldPath<Values> | '', message: string | undefined): void;\n /**\n * 就是 Field 组件,只是 name 的类型收窄为这份值的字段路径,写错字段名时类型检查报错:\n * `<form.Field name=\"email\" label=\"邮箱\">…</form.Field>`(参考 TanStack Form 的 form.Field)\n */\n readonly Field: TsxComponent<Omit<FieldProps, 'name'> & { name?: FieldPath<Values> }>;\n}\n\n/** zod issue 的路径 → 点连接的字符串 */\nconst issuePath = (issue: $ZodIssue) => issue.path.map(String).join('.');\n\n/**\n * 该填的没有填:类型不对且是空值(null、undefined,包括缺少的键),或长度不够且是空字符串、空数组。\n * 选择、数字、日期控件清空后是 null(COMPONENTS.md §1 空值),z.string() 遇到它报的是类型不对,读起来应当是“必填”\n */\nfunction isBlankIssue({ code, input }: $ZodRawIssue): boolean {\n if (code === 'invalid_type') return input == null;\n if (code === 'too_small') return input === '' || (Array.isArray(input) && input.length === 0);\n return false;\n}\n\n/** 按点连接的路径写值;中途是 null / undefined 时什么也不做 */\nfunction writePath(target: unknown, path: string, value: unknown): void {\n const keys = path.split('.');\n const parent = readPath(target, keys.slice(0, -1).join('.'));\n if (keys.length === 1) (target as Record<string, unknown>)[keys[0]!] = value;\n else if (parent != null) (parent as Record<string, unknown>)[keys.at(-1)!] = value;\n}\n\n/** 按点连接的路径取值;中途是 null / undefined 时为 undefined */\nfunction readPath(source: unknown, path: string): unknown {\n let current = source;\n for (const key of path.split('.')) {\n if (current == null) return undefined;\n current = (current as Record<string, unknown>)[key];\n }\n return current;\n}\n\n/**\n * 数组字段的下标变了:`prefix.旧下标…` 的键改成 `prefix.新下标…`,map 返回 undefined 的(删掉的项)丢弃\n */\nfunction shiftIndices(key: string, prefix: string, map: (index: number) => number | undefined) {\n if (!key.startsWith(`${prefix}.`)) return key;\n const rest = key.slice(prefix.length + 1);\n const [head, ...tail] = rest.split('.');\n const index = Number(head);\n if (!Number.isInteger(index)) return key;\n const next = map(index);\n return next === undefined ? undefined : [prefix, next, ...tail].join('.');\n}\n\nlet nextArrayKey = 0;\n\n/** 一个字段的单字段校验的进行状态 */\ninterface FieldRun {\n /** 防抖的定时器 */\n timer?: ReturnType<typeof setTimeout>;\n /** 正在校验的那次 */\n running?: { value: unknown; controller: AbortController; done: Promise<void> };\n /** 上次校验完成时的值 */\n checked?: unknown;\n}\n\n/**\n * 复制表单的值:普通对象与数组逐层复制(各份互不影响),其余值原样保留。\n * 不用 structuredClone:Decimal、@internationalized/date 的日期这些带方法的值克隆不了(会抛错),\n * 它们本身不可变,共用同一个实例没有问题\n */\nfunction cloneValue<T>(value: T): T {\n const raw = toRaw(value);\n if (Array.isArray(raw)) return raw.map(cloneValue) as T;\n if (raw === null || typeof raw !== 'object') return raw;\n const prototype = Object.getPrototypeOf(raw);\n if (prototype !== Object.prototype && prototype !== null) return raw;\n return Object.fromEntries(Object.entries(raw).map(([key, item]) => [key, cloneValue(item)])) as T;\n}\n\n/**\n * 创建表单控制器(组件 setup 里或模块顶层都可以)。\n * 有 schema 时值的类型取自 schema(initial 要符合它的输入类型),onSubmit 拿到解析后的输出\n */\nexport function useForm<Values extends object, Output = Values>(\n options: FormOptions<Values, Output>,\n): FormController<Values> {\n const { schema, validateOn = 'blur', onSubmit } = options;\n const lang = useLang();\n // zod 的报错跟随语言包;schema 里自己写的提示优先于它(zod 的规则)\n const parseOptions = {\n error: (issue: $ZodRawIssue) =>\n isBlankIssue(issue) ? lang.formRequired : lang.formIssues(issue),\n };\n const fieldValidators = Object.entries(options.fields ?? {}) as [\n string,\n FieldValidator<unknown, Values>,\n ][];\n const values = reactive(cloneValue(options.initial)) as Values;\n const state = shallowReactive({\n errors: {} as FormErrors,\n // 单字段校验的结果,与 errors 分开存:整份校验不会冲掉还在路上的单字段结果\n fieldErrors: {} as FormErrors,\n // setError 给的错误与当时的值:值一改就不再算\n externalErrors: {} as Record<string, { message: string; value: unknown }>,\n touched: new Set<string>(),\n pending: new Set<string>(),\n submitting: false,\n submitCount: 0,\n resetCount: 0,\n // dirty 的比较基准:初始值,或上次 reset 的值\n baseline: cloneValue(options.initial),\n });\n // 异步校验可能乱序返回:只采用最后一次的结果\n let run = 0;\n // 正在进行的提交:校验、onSubmit 期间再次提交(连按回车)拿到同一个结果,不重复调用 onSubmit\n let submission: Promise<boolean> | undefined;\n // 最近一次通过校验时 schema 解析出的值,交给 onSubmit\n let parsed: Output | undefined;\n const constraints = createConstraints(schema);\n const dirty = computed(() => !sameValue(values, state.baseline));\n // 数组字段每项的 key,与数组等长;数组被外部整个换掉(长度不同)时重新生成\n const arrayKeys = new Map<string, string[]>();\n\n // 写了 name 的 Field:错误汇总按它显示字段名、跳到控件\n const fields = shallowReactive(new Map<string, FormFieldInfo>());\n\n /** 单字段校验的进行状态:每个字段一份 */\n const fieldRuns = new Map<string, FieldRun>();\n\n function setPending(path: string, pending: boolean) {\n if (state.pending.has(path) === pending) return;\n const next = new Set(state.pending);\n if (pending) next.add(path);\n else next.delete(path);\n state.pending = next;\n }\n\n /**\n * 运行一个字段的校验。同一个值正在校验时等它;上次校验的就是这个值时直接用上次的结果;\n * 值变了就中止还在路上的那次(只采用最后一次的结果)\n */\n function runField(path: string, validator: FieldValidator<unknown, Values>): Promise<void> {\n const entry = fieldRuns.get(path) ?? {};\n fieldRuns.set(path, entry);\n clearTimeout(entry.timer);\n // 依赖的字段也算进“这次校验的输入”:依赖变了,同一个值也要重新校验\n const value = cloneValue([\n readPath(values, path),\n ...dependsOn(path).map((dep) => readPath(values, dep)),\n ]);\n if (entry.running && sameValue(entry.running.value, value)) return entry.running.done;\n if (!entry.running && 'checked' in entry && sameValue(entry.checked, value)) {\n return Promise.resolve();\n }\n entry.running?.controller.abort();\n const controller = new AbortController();\n setPending(path, true);\n const done = (async () => {\n try {\n const message = await validator.validate(value[0], values, controller.signal);\n if (controller.signal.aborted) return;\n entry.checked = value;\n state.fieldErrors = { ...state.fieldErrors, [path]: message };\n } catch (error) {\n // 校验本身失败(接口出错):当作没有结论,不挡提交(服务端还会再校验),但要报出来\n if (!controller.signal.aborted) console.error(`useForm:字段 ${path} 的校验出错`, error);\n } finally {\n if (entry.running?.controller === controller) {\n entry.running = undefined;\n setPending(path, false);\n }\n }\n })();\n entry.running = { value, controller, done };\n return done;\n }\n\n function cancelFieldRuns() {\n for (const entry of fieldRuns.values()) {\n clearTimeout(entry.timer);\n entry.running?.controller.abort();\n }\n fieldRuns.clear();\n state.pending = new Set();\n state.fieldErrors = {};\n }\n\n /** 字段依赖的字段 */\n const dependsOn = (path: string): readonly string[] =>\n (options.dependencies as Partial<Record<string, readonly string[]>> | undefined)?.[path] ?? [];\n\n /**\n * 校验整份值:schema 与 validate 的错误(errors)。full 时单字段校验也立刻跑完(提交、显式调用 validate;\n * 给了 scope 时只跑 scope 里的),结果在 state.fieldErrors;失焦、输入时只算 schema 与 validate,\n * 单字段校验照旧防抖、只在它自己(或它依赖的字段)的值变了时跑\n */\n async function collect(\n full: boolean,\n scope?: readonly string[],\n ): Promise<{ errors: FormErrors; output: Output }> {\n const errors: FormErrors = {};\n let output = values as unknown as Output;\n if (schema) {\n const result = await safeParseAsync(schema, values, parseOptions);\n if (result.success) output = result.data;\n for (const issue of result.error?.issues ?? []) {\n errors[issuePath(issue)] ??= issue.message;\n }\n }\n if (options.validate) {\n for (const [path, message] of Object.entries(await options.validate(values))) {\n if (message) errors[path] ??= message;\n }\n }\n // 单字段校验:不等防抖,立刻跑完(值没变的直接用上次结果)\n if (full) {\n await Promise.all(\n fieldValidators\n .filter(([path]) => !scope || inScope(path, scope))\n .map(([path, validator]) => runField(path, validator)),\n );\n }\n return { errors, output };\n }\n\n /** setError 给的错误,值改过就不算了;'' 是整份表单的错误,任一字段改了都不算 */\n function externalError(path: string): string | undefined {\n const entry = state.externalErrors[path];\n if (!entry) return undefined;\n const current = path === '' ? values : readPath(values, path);\n return sameValue(current, entry.value) ? entry.message : undefined;\n }\n\n /** schema 与 validate 的错误优先,再补上 setError 与单字段校验的 */\n function mergedErrors(): FormErrors {\n const merged = { ...state.errors };\n for (const path of Object.keys(state.externalErrors)) {\n const message = externalError(path);\n if (message) merged[path] ??= message;\n }\n for (const [path, message] of Object.entries(state.fieldErrors)) {\n if (message) merged[path] ??= message;\n }\n return merged;\n }\n\n /**\n * 校验并记下结果(只采用最后一次);返回是否通过:算出的、setError 给的、单字段校验的都没有错误。\n * 给了 scope 时只看 scope 里的字段,别的字段的错误保持原样\n */\n async function check(full: boolean, scope?: readonly string[]): Promise<boolean> {\n const current = ++run;\n const { errors, output } = await collect(full, scope);\n if (!scope) {\n if (current === run) {\n state.errors = errors;\n parsed = output;\n }\n return Object.keys(errors).length === 0 && Object.keys(mergedErrors()).length === 0;\n }\n const scoped = (source: FormErrors) =>\n Object.entries(source).filter(([path, message]) => message && inScope(path, scope));\n if (current === run) {\n state.errors = {\n ...Object.fromEntries(\n Object.entries(state.errors).filter(([path]) => !inScope(path, scope)),\n ),\n ...Object.fromEntries(scoped(errors)),\n };\n }\n return scoped(errors).length === 0 && scoped(mergedErrors()).length === 0;\n }\n\n /** 把这些字段记为失焦过:它们的错误开始显示 */\n function touch(paths: readonly string[]) {\n const next = new Set(state.touched);\n for (const path of paths) next.add(path);\n if (next.size !== state.touched.size) state.touched = next;\n }\n\n /** 数组字段的下标变了:错误、失焦记录、单字段校验的结果跟着移 */\n function remapIndices(prefix: string, map: (index: number) => number | undefined) {\n const remap = (errors: FormErrors) =>\n Object.fromEntries(\n Object.entries(errors).flatMap(([key, message]) => {\n const next = shiftIndices(key, prefix, map);\n return next === undefined ? [] : [[next, message]];\n }),\n ) as FormErrors;\n state.errors = remap(state.errors);\n state.fieldErrors = remap(state.fieldErrors);\n state.externalErrors = Object.fromEntries(\n Object.entries(state.externalErrors).flatMap(([key, entry]) => {\n const next = shiftIndices(key, prefix, map);\n return next === undefined ? [] : [[next, entry]];\n }),\n );\n state.touched = new Set(\n [...state.touched].flatMap((key) => shiftIndices(key, prefix, map) ?? []),\n );\n }\n\n function fieldArray(path: string): FieldArray<unknown> {\n const list = () => (readPath(values, path) as unknown[] | undefined) ?? [];\n const keys = () => {\n let current = arrayKeys.get(path);\n if (current?.length !== list().length) {\n current = list().map(() => `item-${++nextArrayKey}`);\n arrayKeys.set(path, current);\n }\n return current;\n };\n /** 改数组与 key:splice 的参数同时作用在两者上 */\n const splice = (start: number, deleteCount: number, ...items: unknown[]) => {\n keys().splice(start, deleteCount, ...items.map(() => `item-${++nextArrayKey}`));\n list().splice(start, deleteCount, ...items);\n };\n return {\n get items() {\n return list();\n },\n get keys() {\n return keys();\n },\n append: (item) => splice(list().length, 0, item),\n insert(index, item) {\n remapIndices(path, (old) => (old >= index ? old + 1 : old));\n splice(index, 0, item);\n },\n remove(index) {\n remapIndices(path, (old) => (old === index ? undefined : old > index ? old - 1 : old));\n splice(index, 1);\n },\n move(from, to) {\n if (from === to) return;\n remapIndices(path, (old) => {\n if (old === from) return to;\n if (from < to && old > from && old <= to) return old - 1;\n if (from > to && old >= to && old < from) return old + 1;\n return old;\n });\n const [key] = keys().splice(from, 1);\n const [item] = list().splice(from, 1);\n keys().splice(to, 0, key!);\n list().splice(to, 0, item);\n },\n };\n }\n\n const controller: FormController<Values> = {\n values,\n get errors() {\n return mergedErrors();\n },\n get formError() {\n if (state.submitCount === 0) return undefined;\n return state.errors[''] ?? externalError('');\n },\n get submitting() {\n return state.submitting;\n },\n get resetCount() {\n return state.resetCount;\n },\n get submitCount() {\n return state.submitCount;\n },\n get dirty() {\n return dirty.value;\n },\n validating(path) {\n return path === undefined ? state.pending.size > 0 : state.pending.has(path);\n },\n visibleError(path) {\n // 失焦过的字段,或局部校验过的字段(含子路径:validate(['address']) 之后 address.city 也显示)\n if (state.submitCount === 0 && !inScope(path, [...state.touched])) return undefined;\n return state.errors[path] ?? externalError(path) ?? state.fieldErrors[path];\n },\n blur(path) {\n if (state.touched.has(path)) return;\n state.touched = new Set(state.touched).add(path);\n if (validateOn !== 'submit') void check(false);\n },\n validate(paths) {\n if (!paths) return check(true);\n touch(paths);\n return check(true, paths);\n },\n submit() {\n submission ??= (async () => {\n state.submitCount++;\n const valid = await check(true);\n if (!valid || !onSubmit) return valid;\n state.submitting = true;\n try {\n await onSubmit(parsed as Output);\n } finally {\n state.submitting = false;\n }\n return true;\n })().finally(() => (submission = undefined));\n return submission;\n },\n reset(next = options.initial) {\n run++;\n const snapshot = cloneValue(next);\n cancelFieldRuns();\n Object.assign(values, cloneValue(snapshot));\n arrayKeys.clear();\n state.baseline = snapshot;\n state.errors = {};\n state.externalErrors = {};\n state.touched = new Set();\n state.submitCount = 0;\n state.resetCount++;\n },\n isDirty(path) {\n return !sameValue(readPath(values, path), readPath(state.baseline, path));\n },\n array(path) {\n return fieldArray(path) as never;\n },\n setError(path, message) {\n const { [path]: _previous, ...rest } = state.externalErrors;\n const value = path === '' ? values : readPath(values, path);\n state.externalErrors =\n message === undefined ? rest : { ...rest, [path]: { message, value: cloneValue(value) } };\n },\n constraints,\n Field,\n getValue: (path) => readPath(values, path),\n setValue: (path, value) => writePath(values, path, value),\n register(path, field) {\n fields.set(path, field);\n return () => {\n if (fields.get(path) === field) fields.delete(path);\n };\n },\n fields,\n };\n\n // 输入时:change 模式一开始就校验;blur 模式在有字段失焦过之后(只显示失焦过的字段);提交过之后总是\n watch(\n () => values,\n () => {\n const live =\n validateOn === 'change' ||\n state.submitCount > 0 ||\n (validateOn === 'blur' && state.touched.size > 0);\n if (live) void check(false);\n },\n { deep: true },\n );\n\n // 字段联动:依赖的值改了,字段填过或失焦过就显示它的错误并重新校验(单字段校验由下面的监听跟着重跑)\n for (const [path, deps] of Object.entries(options.dependencies ?? {}) as [string, string[]][]) {\n watch(\n () => deps.map((dep) => readPath(values, dep)),\n () => {\n const value = readPath(values, path);\n const filled = !(value == null || value === '' || (Array.isArray(value) && !value.length));\n if (!filled && !state.touched.has(path)) return;\n touch([path]);\n if (validateOn !== 'submit' || state.submitCount > 0) void check(false);\n },\n { deep: true },\n );\n }\n\n // 单字段校验:这个字段(或它依赖的字段)的值变了,防抖之后运行\n for (const [path, validator] of fieldValidators) {\n watch(\n () => [readPath(values, path), ...dependsOn(path).map((dep) => readPath(values, dep))],\n () => {\n const entry = fieldRuns.get(path) ?? {};\n fieldRuns.set(path, entry);\n clearTimeout(entry.timer);\n entry.timer = setTimeout(() => void runField(path, validator), validator.debounce ?? 300);\n },\n { deep: true },\n );\n }\n\n return controller;\n}\n"],"mappings":"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"}