@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 @@
1
+ {"version":3,"file":"props.js","names":[],"sources":["../../src/utils/props.ts"],"sourcesContent":["/**\n * 部件 props 的类型与合并规则(COMPONENTS.md §2)。\n *\n * 组件给部件的属性分两层:可被使用方覆盖的默认属性(defaults),以及组件状态决定、\n * 不允许覆盖的受管属性(managed,如 role、aria-expanded)。合并规则:\n * - sx:默认在前、使用方其次、受管最后,后者覆盖前者\n * - class、style:依次排列成数组,交给 Vue 统一处理(它们也可能是数组或对象)\n * - 事件 onXxx:使用方先执行,调用了 event.preventDefault() 就跳过组件自己的处理\n * - ref:各方都拿到元素\n * - 其他属性:受管 > 使用方 > 默认\n */\nimport * as css from '@zerodep-dev/vue-tsx-pro-tsx/styles';\nimport type { IntrinsicProps, JSX } from '@zerodep-dev/vue-tsx-pro-tsx/jsx-runtime';\n// 登记主题 tokens(样式里的 '_md' 靠它):每个组件都经过这里合并属性,渲染之前一定登记过\nimport '../config/theme/tokens';\nimport type { StyleAttrs, SxStyles } from '@zerodep-dev/vue-tsx-pro-tsx/styles';\nimport type { Ref, VNodeChild } from 'vue';\n\n/**\n * 原生元素部件的 props:该元素的属性加上 sx;去掉组件管理的属性与 children(内容走组件自己的 prop)。\n * 形如 `propsInput?: PartProps<'input', 'value' | 'aria-invalid'>`。\n */\nexport type PartProps<\n Tag extends keyof JSX.IntrinsicElements,\n Managed extends string = never,\n> = Omit<IntrinsicProps<Tag>, Managed | 'children'> & { sx?: SxStyles };\n\n/**\n * 展开收起类组件(Collapsible、Popover)交给触发器的属性:展开到任意可聚焦元素上,\n * 形如 `trigger={(props) => <Button {...props}>更多</Button>}`。弹层另外加上 id、ref、aria-haspopup。\n */\nexport interface TriggerProps {\n /** 切换展开与收起 */\n onClick: (event: MouseEvent) => void;\n /** 当前是否展开,读屏据此播报“已展开 / 已折叠” */\n 'aria-expanded': boolean;\n /** 被控制的内容区的 id */\n 'aria-controls': string;\n /** 不可用:组件设了 disabled 时为 true,展开到按钮上就是原生的 disabled */\n disabled?: boolean;\n}\n\n/**\n * data-* 属性写进对象字面量(部件属性、mergeAttrs 的各层):元素的属性类型不收 data-* 键,\n * 用它包一层再展开。JSX 上直接写 data-* 不需要它。\n *\n * mergeAttrs<'td'>(defaults, user, { role: 'gridcell', ...dataAttrs({ 'data-in-range': inRange || undefined }) })\n */\nexport const dataAttrs = (attrs: Record<`data-${string}`, string | number | boolean | undefined>) =>\n attrs;\n\ntype Props = Record<string, unknown>;\ntype Handler = (...args: unknown[]) => unknown;\ntype RefSetter = ((element: unknown) => void) | Ref<unknown>;\n\n/**\n * 一层属性:Target 是标签名('svg')时为该元素的属性加 sx,是 props 类型(IconProps)时就是它。\n * 标签名的联合('h1' | 'h2',一个工厂生成的几个组件共用实现时)取这些标签共有的属性,所以这里不按联合分配\n */\ntype PropsLayer<Target> = Partial<\n [Target] extends [keyof JSX.IntrinsicElements] ? PartProps<Target> : Target\n>;\n\n/**\n * 合并部件的三层属性:组件默认、使用方传入、组件受管,规则见文件开头。\n * 用类型参数写明属性落到哪里,三层的对象字面量才有补全、悬停说明与类型检查:\n * mergeProps<IconProps>({ sx: … }, propsIcon);原生元素用 mergeAttrs<'svg'>(默认, rest, 受管)\n *\n * 渲染里每个部件每次都要合并,按最常见的情况走捷径:只有默认层时原样返回;\n * 只有两层以上都给了同名事件时才包一层回调。\n */\nexport function mergeProps<Target = Props>(\n defaults: PropsLayer<Target>,\n user?: PropsLayer<Target>,\n managed?: PropsLayer<Target>,\n): PropsLayer<Target> {\n const base = defaults as Props;\n const own = hasKeys(user) ? (user as Props) : undefined;\n const fixed = hasKeys(managed) ? (managed as Props) : undefined;\n if (!own && !fixed) return defaults;\n const merged: Props = { ...base, ...own, ...fixed };\n\n for (const key of LISTED_KEYS) {\n const values = present3(base[key], own?.[key], fixed?.[key]);\n if (values) merged[key] = values;\n }\n\n const refs = present3(base.ref, own?.ref, fixed?.ref) as RefSetter[] | undefined;\n if (refs && refs.length > 1) {\n merged.ref = (element: unknown) => refs.forEach((ref) => setRef(ref, element));\n }\n\n // 同名事件:使用方的与组件的(默认层、受管层)合并;只有组件两层都有时也要合并\n if (own) {\n for (const key in own) {\n if (!isHandlerKey(key)) continue;\n if (base[key] == null && fixed?.[key] == null) {\n // 受管层写了 onXxx: undefined(这时没有自己的处理)也不盖掉使用方的事件\n merged[key] = own[key];\n continue;\n }\n // 使用方传了 undefined(onClick={cond ? fn : undefined})时也保留组件自己的\n merged[key] =\n mergeHandlers(own[key] as Handler | undefined, [base[key], fixed?.[key]]) ??\n fixed?.[key] ??\n base[key];\n }\n }\n if (fixed) {\n for (const key in fixed) {\n if (!isHandlerKey(key) || base[key] == null || (own && key in own)) continue;\n const handler = mergeHandlers(undefined, [base[key], fixed[key]]);\n if (handler) merged[key] = handler;\n }\n }\n return merged as PropsLayer<Target>;\n}\n\n/**\n * 子组件部件的合并:mergeProps 的规则,但默认层要写齐子组件的必填 props(如 Icon 的 icon),\n * 返回完整的 props 类型,展开到子组件上不必再断言:\n * <Icon {...mergePartProps<IconProps>({ icon: X, sx: styles.icon }, propsIcon)} />\n */\nexport function mergePartProps<P extends object>(\n defaults: P,\n user?: Partial<P>,\n managed?: Partial<P>,\n): P {\n // P 是组件 props 类型,不是标签名:按对象合并,结果的类型就是 P\n return mergeProps(\n defaults as Props,\n user as Props | undefined,\n managed as Props | undefined,\n ) as P;\n}\n\n/**\n * 原生元素部件的合并:mergeProps 的规则,再把 sx 换成 class 与 style(elementProps),结果直接展开到元素上:\n * <svg {...mergeAttrs<'svg'>({ sx: styles.icon }, rest, { 'aria-hidden': true })} />\n */\nexport function mergeAttrs<Tag extends keyof JSX.IntrinsicElements>(\n defaults: PropsLayer<Tag>,\n user?: PropsLayer<Tag>,\n managed?: PropsLayer<Tag>,\n): Omit<PropsLayer<Tag>, 'sx' | 'children'> {\n return elementProps(mergeProps<Tag>(defaults, user, managed));\n}\n\n/**\n * 原生元素部件:把 sx 换成样式引擎生成的 class 与 style,再与已有的 class、style 合并。\n * 去掉 children:它是内容不是元素属性(组件的 ...rest 里带着它,转交给子组件时要用)。\n */\nexport function elementProps<P extends object>(props: P): Omit<P, 'sx' | 'children'> {\n // 解构出的 rest 是新对象:之后直接往上写,不再复制一次(每个元素每次渲染都要走这里)\n const { sx, children: _children, ...rest } = props as P & Props;\n if (sx == null) return rest as Omit<P, 'sx' | 'children'>;\n const compiled = compileSx(sx as SxStyles);\n const element = rest as Props;\n // 响应式绑定的 ref(元素挂上后改变量)与使用方的 ref 都要拿到元素\n if (compiled.ref && element.ref != null) {\n const own = element.ref as RefSetter;\n const bound = compiled.ref;\n element.ref = (target: unknown) => {\n setRef(own, target);\n bound(target);\n };\n } else if (compiled.ref) element.ref = compiled.ref;\n if (rest.class == null && rest.style == null) {\n if (compiled.class != null) element.class = compiled.class;\n if (compiled.style != null) element.style = compiled.style;\n return rest as Omit<P, 'sx' | 'children'>;\n }\n element.class = present3(rest.class, compiled.class) ?? [];\n element.style = present3(compiled.style, rest.style) ?? [];\n return rest as Omit<P, 'sx' | 'children'>;\n}\n\n/**\n * 编译好的样式是不变的常量:单个样式(不是数组)按对象缓存 css.attrs 的结果,\n * 根元素、图标这类每次渲染都是同一个样式的部件不必重复合并\n */\nconst compiledCache = new WeakMap<object, ReturnType<typeof css.attrs>>();\nfunction compileSx(sx: SxStyles) {\n if (Array.isArray(sx) || typeof sx !== 'object' || sx === null) return css.attrs(sx);\n let compiled = compiledCache.get(sx);\n if (!compiled) compiledCache.set(sx, (compiled = css.attrs(sx)));\n return compiled;\n}\n\n/** onClick、onUpdate:_value:on 后面跟大写字母 */\nfunction isHandlerKey(key: string) {\n const third = key.charCodeAt(2);\n return key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && third >= 65 && third <= 90;\n}\n\nfunction hasKeys(layer: object | undefined): boolean {\n if (!layer) return false;\n for (const _ in layer) return true;\n return false;\n}\n\n/**\n * 使用方的回调先执行,它调用了 event.preventDefault() 就跳过组件自己的回调。\n * 只有一方提供回调时返回 undefined,保留展开合并的结果即可。\n */\nfunction mergeHandlers(user: Handler | undefined, internal: unknown[]): Handler | undefined {\n const own = present(internal) as Handler[];\n if (own.length + (user ? 1 : 0) < 2) return undefined;\n return (...args) => {\n user?.(...args);\n const event = args[0];\n if (event instanceof Event && event.defaultPrevented) return;\n own.forEach((handler) => handler(...args));\n };\n}\n\nfunction setRef(ref: RefSetter, element: unknown) {\n if (typeof ref === 'function') ref(element);\n else ref.value = element;\n}\n\nconst present = <T>(values: readonly (T | null | undefined)[]) =>\n values.filter((value): value is T => value != null);\n\n/** 按层排列、要合并成数组的属性 */\nconst LISTED_KEYS = ['sx', 'class', 'style'] as const;\n\n/** 最多三个值里不为空的那些,按原顺序成数组;都为空时返回 undefined。渲染路径上用,不建中间数组 */\nfunction present3(a: unknown, b: unknown, c?: unknown): unknown[] | undefined {\n if (a == null) {\n if (b == null) return c == null ? undefined : [c];\n return c == null ? [b] : [b, c];\n }\n if (b == null) return c == null ? [a] : [a, c];\n return c == null ? [a, b] : [a, b, c];\n}\n\n/**\n * 默认的 aria-labelledby(Field 的标签、弹层的触发器):使用方写的 aria-labelledby 优先;使用方写了 aria-label 时\n * 不加默认的(aria-labelledby 会盖过 aria-label,使用方写的名称就白写了)\n */\nexport function defaultLabelledBy(\n attrs: { 'aria-label'?: string; 'aria-labelledby'?: string },\n fallback: string | undefined,\n): string | undefined {\n return attrs['aria-labelledby'] ?? (attrs['aria-label'] == null ? fallback : undefined);\n}\n\n/**\n * 内容(插槽、标题、说明、错误这类 VNodeChild)有没有东西:null、undefined、空字符串与布尔都算没有。\n * 使用方常写 `error={cond && '…'}`、`aside={wide && <Panel />}`,条件不成立时是 false,不该渲染出空的外层\n */\nexport function hasContent(node: VNodeChild): boolean {\n return node != null && typeof node !== 'boolean' && node !== '';\n}\n\n/**\n * 把 css.attrs 的结果写到命令式创建的元素上(波纹、量取主题的探针):class 与行内样式,\n * 自定义属性(动态样式的变量)名字原样、用 setProperty\n */\nexport function applyStyleAttrs(element: HTMLElement, { class: className, style }: StyleAttrs) {\n element.className = className ?? '';\n for (const [name, value] of Object.entries(style ?? {})) {\n const property = name.startsWith('--')\n ? name\n : name.replace(/[A-Z]/g, (c) => `-${c.toLowerCase()}`);\n element.style.setProperty(property, String(value));\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,101 @@
1
+ import { type WireReviveOptions, type WireScalar } from './wire';
2
+ /** 请求方法 */
3
+ export type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'HEAD';
4
+ /**
5
+ * query 里的一个值:null、undefined 不写进地址,数组写成重复的键(a=1&a=2,数组里的 null 是空字符串);
6
+ * bigint、Decimal、日期等按线上的文字写(wireText:Decimal 不用科学计数法,日期是 ISO)
7
+ */
8
+ export type QueryValue = WireScalar | readonly WireScalar[];
9
+ /** 一次请求 */
10
+ export interface HttpRequest {
11
+ /** 请求方法,默认 GET */
12
+ method?: HttpMethod;
13
+ /** 地址:相对地址拼在 baseURL 后面,完整地址(https://…)原样使用 */
14
+ url: string;
15
+ /** 查询参数 */
16
+ query?: Readonly<Record<string, QueryValue>>;
17
+ /** 请求体:普通对象与数组按 JSON 发送;FormData、Blob、URLSearchParams、字符串原样发送 */
18
+ body?: unknown;
19
+ /** 请求头,盖过客户端的默认请求头 */
20
+ headers?: Readonly<Record<string, string>>;
21
+ /** 取消:abort 后请求中止,Promise 以 AbortError 拒绝 */
22
+ signal?: AbortSignal;
23
+ /** 超时(毫秒),盖过客户端的设置;0 表示不限 */
24
+ timeout?: number;
25
+ /** 怎样读响应体,默认按 content-type:JSON 解析,text/* 读成文字,其余读成 Blob */
26
+ responseType?: 'json' | 'text' | 'blob';
27
+ }
28
+ /** 组件依赖的请求接口:发出请求,返回解析(拆包)后的数据;失败时拒绝 */
29
+ export interface HttpClient {
30
+ /** 发出一次请求,返回解析(拆包)后的数据;失败时以 HttpError 拒绝,取消时以 AbortError 拒绝 */
31
+ request<T = unknown>(request: HttpRequest): Promise<T>;
32
+ }
33
+ /** 请求失败时的上下文:发生在哪个请求、拿到的响应 */
34
+ export interface HttpErrorContext {
35
+ /** 出错的请求 */
36
+ request: HttpRequest;
37
+ /** 响应;网络错误、超时时没有 */
38
+ response?: Response;
39
+ /** 响应体(错误详情),读得到时带上 */
40
+ data?: unknown;
41
+ /** 底层的错误(网络错误、超时) */
42
+ cause?: unknown;
43
+ }
44
+ /** 请求失败:状态码不是 2xx、网络错误、超时,或 onResponse 判定的业务错误 */
45
+ export declare class HttpError extends Error {
46
+ /** 错误名,同类名:日志与 instanceof 之外的判断用 */
47
+ readonly name = "HttpError";
48
+ /** 出错的请求 */
49
+ readonly request: HttpRequest;
50
+ /** 响应;网络错误、超时时没有 */
51
+ readonly response?: Response;
52
+ /** HTTP 状态码;网络错误、超时为 0 */
53
+ readonly status: number;
54
+ /** 响应体(错误详情) */
55
+ readonly data?: unknown;
56
+ constructor(message: string, { request, response, data, cause }: HttpErrorContext);
57
+ }
58
+ /** 是不是主动取消(abort)造成的拒绝:界面上不当作错误 */
59
+ export declare const isAbortError: (error: unknown) => boolean;
60
+ /** createHttpClient 的选项 */
61
+ export interface HttpClientOptions {
62
+ /** 相对地址的前缀,如 '/api' */
63
+ baseURL?: string;
64
+ /** 每个请求都带的请求头 */
65
+ headers?: Readonly<Record<string, string>>;
66
+ /** 超时(毫秒),默认 30000;0 表示不限 */
67
+ timeout?: number;
68
+ /** 发出之前改请求(加令牌、追踪编号);可以返回一个新的 Request */
69
+ onRequest?: (request: Request) => Request | void | Promise<Request | void>;
70
+ /** 2xx 响应解析后的数据交给它:拆掉后端的包装、判定业务错误(抛 HttpError),返回值就是请求的结果 */
71
+ onResponse?: (data: unknown, context: {
72
+ request: HttpRequest;
73
+ response: Response;
74
+ }) => unknown;
75
+ /**
76
+ * 线上的 typed JSON 怎样还原(见 wire.ts):给 `{ decimal: Decimal }` 时 decimal 还原成 Decimal,`dates: 'objects'`
77
+ * 时日期还原成 CalendarDate 等;默认 `{}`(bigint 还原成 bigint,decimal 与日期留作文字)。false 时请求体按普通 JSON 发、响应不还原
78
+ */
79
+ wire?: WireReviveOptions | false;
80
+ /** 换掉 fetch(测试、SSR、注入公共处理) */
81
+ fetch?: typeof fetch;
82
+ }
83
+ /** createHttpClient 的结果:request 之外,再给常用方法的简写 */
84
+ export interface FetchClient extends HttpClient {
85
+ /** GET:参数写在 options.query 里 */
86
+ get<T = unknown>(url: string, options?: Omit<HttpRequest, 'url' | 'method'>): Promise<T>;
87
+ /** DELETE */
88
+ delete<T = unknown>(url: string, options?: Omit<HttpRequest, 'url' | 'method'>): Promise<T>;
89
+ /** POST:普通对象的 body 按 JSON 发送 */
90
+ post<T = unknown>(url: string, body?: unknown, options?: Omit<HttpRequest, 'url' | 'method' | 'body'>): Promise<T>;
91
+ /** PUT:普通对象的 body 按 JSON 发送 */
92
+ put<T = unknown>(url: string, body?: unknown, options?: Omit<HttpRequest, 'url' | 'method' | 'body'>): Promise<T>;
93
+ /** PATCH:普通对象的 body 按 JSON 发送 */
94
+ patch<T = unknown>(url: string, body?: unknown, options?: Omit<HttpRequest, 'url' | 'method' | 'body'>): Promise<T>;
95
+ }
96
+ /** 原生 fetch 的薄封装(见文件开头) */
97
+ export declare function createHttpClient(options?: HttpClientOptions): FetchClient;
98
+ /**
99
+ * 当前配置的请求客户端(在 setup 里调用):createUi / Provider 的 http;都没给时是一个默认的 createHttpClient()
100
+ */
101
+ export declare function useHttp(): HttpClient;
@@ -0,0 +1,154 @@
1
+ import { useConfig } from "../../config/context.js";
2
+ import { fromWire, toWire, wireText } from "./wire.js";
3
+ //#region src/utils/request/http.ts
4
+ /**
5
+ * 请求层:组件(远程选项、上传、列表查询)只依赖 HttpClient 接口,应用经 createUi / Provider 的 http 给出实现。
6
+ * 默认实现 createHttpClient 是原生 fetch 的薄封装(参考 ky、ofetch):baseURL、query、JSON 请求体、超时与取消、
7
+ * 状态码错误(HttpError)、请求与响应钩子。用 axios、ky 时只要写一个 request:
8
+ *
9
+ * createUi({ http: { request: (r) => axios.request({ ...r, params: r.query, data: r.body }).then((res) => res.data) } })
10
+ *
11
+ * 值按线上的 typed JSON 传(见 wire.ts):请求体里的 bigint、Decimal、CalendarDate 写成文字并附上 `$types`,
12
+ * 地址栏参数写成同样的文字,带 `$types` 的响应先还原再交给 onResponse;`wire: false` 时按普通 JSON。
13
+ *
14
+ * 后端把数据包在 { code, data, message } 里时,在 onResponse 里拆开,业务错误抛 HttpError:
15
+ *
16
+ * const http = createHttpClient({
17
+ * baseURL: '/api',
18
+ * onRequest: (request) => request.headers.set('Authorization', `Bearer ${token()}`),
19
+ * onResponse: (body: Envelope, context) => {
20
+ * if (body.code !== 0) throw new HttpError(body.message, { ...context, data: body });
21
+ * return body.data;
22
+ * },
23
+ * });
24
+ */
25
+ /** 请求失败:状态码不是 2xx、网络错误、超时,或 onResponse 判定的业务错误 */
26
+ var HttpError = class extends Error {
27
+ /** 错误名,同类名:日志与 instanceof 之外的判断用 */
28
+ name = "HttpError";
29
+ /** 出错的请求 */
30
+ request;
31
+ /** 响应;网络错误、超时时没有 */
32
+ response;
33
+ /** HTTP 状态码;网络错误、超时为 0 */
34
+ status;
35
+ /** 响应体(错误详情) */
36
+ data;
37
+ constructor(message, { request, response, data, cause }) {
38
+ super(message, { cause });
39
+ this.request = request;
40
+ this.response = response;
41
+ this.status = response?.status ?? 0;
42
+ this.data = data;
43
+ }
44
+ };
45
+ /** 是不是主动取消(abort)造成的拒绝:界面上不当作错误 */
46
+ var isAbortError = (error) => error instanceof DOMException && error.name === "AbortError";
47
+ /** 原生 fetch 的薄封装(见文件开头) */
48
+ function createHttpClient(options = {}) {
49
+ const { baseURL = "", timeout: defaultTimeout = 3e4, onRequest, onResponse, wire = {} } = options;
50
+ async function request(spec) {
51
+ const { method = "GET", body, signal, timeout = defaultTimeout } = spec;
52
+ const headers = new Headers({
53
+ ...options.headers,
54
+ ...spec.headers
55
+ });
56
+ const json = isJsonBody(body);
57
+ if (json && !headers.has("content-type")) headers.set("content-type", "application/json");
58
+ const signals = [signal, timeout > 0 ? AbortSignal.timeout(timeout) : void 0].filter((item) => item != null);
59
+ let prepared = new Request(buildUrl(baseURL, spec.url, spec.query), {
60
+ method,
61
+ headers,
62
+ body: json ? JSON.stringify(wire === false ? body : toWire(body)) : body,
63
+ signal: signals.length > 1 ? AbortSignal.any(signals) : signals[0]
64
+ });
65
+ prepared = await onRequest?.(prepared) ?? prepared;
66
+ let response;
67
+ try {
68
+ response = await (options.fetch ?? fetch)(prepared);
69
+ } catch (cause) {
70
+ if (signal?.aborted) throw cause;
71
+ throw new HttpError(cause instanceof DOMException && cause.name === "TimeoutError" ? `请求超时(${timeout / 1e3} 秒):${method} ${spec.url}` : `网络错误:${method} ${spec.url}`, {
72
+ request: spec,
73
+ cause
74
+ });
75
+ }
76
+ const raw = await readBody(response, spec.responseType);
77
+ const data = wire === false ? raw : fromWire(raw, wire);
78
+ if (!response.ok) throw new HttpError(`请求失败(${`${response.status}${response.statusText ? ` ${response.statusText}` : ""}`}):${method} ${spec.url}`, {
79
+ request: spec,
80
+ response,
81
+ data
82
+ });
83
+ return onResponse ? onResponse(data, {
84
+ request: spec,
85
+ response
86
+ }) : data;
87
+ }
88
+ const withBody = (method) => (url, body, rest) => request({
89
+ ...rest,
90
+ method,
91
+ url,
92
+ body
93
+ });
94
+ return {
95
+ request,
96
+ get: (url, rest) => request({
97
+ ...rest,
98
+ method: "GET",
99
+ url
100
+ }),
101
+ delete: (url, rest) => request({
102
+ ...rest,
103
+ method: "DELETE",
104
+ url
105
+ }),
106
+ post: withBody("POST"),
107
+ put: withBody("PUT"),
108
+ patch: withBody("PATCH")
109
+ };
110
+ }
111
+ var fallback;
112
+ /**
113
+ * 当前配置的请求客户端(在 setup 里调用):createUi / Provider 的 http;都没给时是一个默认的 createHttpClient()
114
+ */
115
+ function useHttp() {
116
+ return useConfig().http ?? (fallback ??= createHttpClient());
117
+ }
118
+ /** 地址 + query:相对地址拼在 baseURL 后面(斜杠不重复),null、undefined 的参数跳过 */
119
+ function buildUrl(baseURL, url, query) {
120
+ let full = /^[a-z][a-z\d+.-]*:/i.test(url) || url.startsWith("//") || !baseURL ? url : `${baseURL.replace(/\/+$/, "")}/${url.replace(/^\/+/, "")}`;
121
+ const params = new URLSearchParams();
122
+ for (const [key, value] of Object.entries(query ?? {})) {
123
+ if (value == null) continue;
124
+ const items = Array.isArray(value) ? value : [value];
125
+ for (const item of items) params.append(key, wireText(item));
126
+ }
127
+ const search = params.toString();
128
+ if (search) full += `${full.includes("?") ? "&" : "?"}${search}`;
129
+ return full;
130
+ }
131
+ /** 普通对象与数组按 JSON 发送 */
132
+ function isJsonBody(body) {
133
+ if (body == null || typeof body !== "object") return false;
134
+ const prototype = Object.getPrototypeOf(body);
135
+ return Array.isArray(body) || prototype === Object.prototype || prototype === null;
136
+ }
137
+ async function readBody(response, type) {
138
+ if (response.status === 204 || response.status === 205 || response.headers.get("content-length") === "0") return;
139
+ const contentType = response.headers.get("content-type") ?? "";
140
+ const kind = type ?? (/[/+]json\b/.test(contentType) ? "json" : contentType.startsWith("text/") ? "text" : "blob");
141
+ if (kind === "blob") return response.blob();
142
+ const text = await response.text();
143
+ if (kind === "text") return text;
144
+ if (text === "") return void 0;
145
+ try {
146
+ return JSON.parse(text);
147
+ } catch {
148
+ return text;
149
+ }
150
+ }
151
+ //#endregion
152
+ export { HttpError, createHttpClient, isAbortError, useHttp };
153
+
154
+ //# sourceMappingURL=http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.js","names":[],"sources":["../../../src/utils/request/http.ts"],"sourcesContent":["/**\n * 请求层:组件(远程选项、上传、列表查询)只依赖 HttpClient 接口,应用经 createUi / Provider 的 http 给出实现。\n * 默认实现 createHttpClient 是原生 fetch 的薄封装(参考 ky、ofetch):baseURL、query、JSON 请求体、超时与取消、\n * 状态码错误(HttpError)、请求与响应钩子。用 axios、ky 时只要写一个 request:\n *\n * createUi({ http: { request: (r) => axios.request({ ...r, params: r.query, data: r.body }).then((res) => res.data) } })\n *\n * 值按线上的 typed JSON 传(见 wire.ts):请求体里的 bigint、Decimal、CalendarDate 写成文字并附上 `$types`,\n * 地址栏参数写成同样的文字,带 `$types` 的响应先还原再交给 onResponse;`wire: false` 时按普通 JSON。\n *\n * 后端把数据包在 { code, data, message } 里时,在 onResponse 里拆开,业务错误抛 HttpError:\n *\n * const http = createHttpClient({\n * baseURL: '/api',\n * onRequest: (request) => request.headers.set('Authorization', `Bearer ${token()}`),\n * onResponse: (body: Envelope, context) => {\n * if (body.code !== 0) throw new HttpError(body.message, { ...context, data: body });\n * return body.data;\n * },\n * });\n */\nimport { useConfig } from '../../config/context';\nimport { fromWire, toWire, wireText, type WireReviveOptions, type WireScalar } from './wire';\n\n/** 请求方法 */\nexport type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'HEAD';\n\n/**\n * query 里的一个值:null、undefined 不写进地址,数组写成重复的键(a=1&a=2,数组里的 null 是空字符串);\n * bigint、Decimal、日期等按线上的文字写(wireText:Decimal 不用科学计数法,日期是 ISO)\n */\nexport type QueryValue = WireScalar | readonly WireScalar[];\n\n/** 一次请求 */\nexport interface HttpRequest {\n /** 请求方法,默认 GET */\n method?: HttpMethod;\n /** 地址:相对地址拼在 baseURL 后面,完整地址(https://…)原样使用 */\n url: string;\n /** 查询参数 */\n query?: Readonly<Record<string, QueryValue>>;\n /** 请求体:普通对象与数组按 JSON 发送;FormData、Blob、URLSearchParams、字符串原样发送 */\n body?: unknown;\n /** 请求头,盖过客户端的默认请求头 */\n headers?: Readonly<Record<string, string>>;\n /** 取消:abort 后请求中止,Promise 以 AbortError 拒绝 */\n signal?: AbortSignal;\n /** 超时(毫秒),盖过客户端的设置;0 表示不限 */\n timeout?: number;\n /** 怎样读响应体,默认按 content-type:JSON 解析,text/* 读成文字,其余读成 Blob */\n responseType?: 'json' | 'text' | 'blob';\n}\n\n/** 组件依赖的请求接口:发出请求,返回解析(拆包)后的数据;失败时拒绝 */\nexport interface HttpClient {\n /** 发出一次请求,返回解析(拆包)后的数据;失败时以 HttpError 拒绝,取消时以 AbortError 拒绝 */\n request<T = unknown>(request: HttpRequest): Promise<T>;\n}\n\n/** 请求失败时的上下文:发生在哪个请求、拿到的响应 */\nexport interface HttpErrorContext {\n /** 出错的请求 */\n request: HttpRequest;\n /** 响应;网络错误、超时时没有 */\n response?: Response;\n /** 响应体(错误详情),读得到时带上 */\n data?: unknown;\n /** 底层的错误(网络错误、超时) */\n cause?: unknown;\n}\n\n/** 请求失败:状态码不是 2xx、网络错误、超时,或 onResponse 判定的业务错误 */\nexport class HttpError extends Error {\n /** 错误名,同类名:日志与 instanceof 之外的判断用 */\n override readonly name = 'HttpError';\n /** 出错的请求 */\n readonly request: HttpRequest;\n /** 响应;网络错误、超时时没有 */\n readonly response?: Response;\n /** HTTP 状态码;网络错误、超时为 0 */\n readonly status: number;\n /** 响应体(错误详情) */\n readonly data?: unknown;\n\n constructor(message: string, { request, response, data, cause }: HttpErrorContext) {\n super(message, { cause });\n this.request = request;\n this.response = response;\n this.status = response?.status ?? 0;\n this.data = data;\n }\n}\n\n/** 是不是主动取消(abort)造成的拒绝:界面上不当作错误 */\nexport const isAbortError = (error: unknown) =>\n error instanceof DOMException && error.name === 'AbortError';\n\n/** createHttpClient 的选项 */\nexport interface HttpClientOptions {\n /** 相对地址的前缀,如 '/api' */\n baseURL?: string;\n /** 每个请求都带的请求头 */\n headers?: Readonly<Record<string, string>>;\n /** 超时(毫秒),默认 30000;0 表示不限 */\n timeout?: number;\n /** 发出之前改请求(加令牌、追踪编号);可以返回一个新的 Request */\n onRequest?: (request: Request) => Request | void | Promise<Request | void>;\n /** 2xx 响应解析后的数据交给它:拆掉后端的包装、判定业务错误(抛 HttpError),返回值就是请求的结果 */\n onResponse?: (data: unknown, context: { request: HttpRequest; response: Response }) => unknown;\n /**\n * 线上的 typed JSON 怎样还原(见 wire.ts):给 `{ decimal: Decimal }` 时 decimal 还原成 Decimal,`dates: 'objects'`\n * 时日期还原成 CalendarDate 等;默认 `{}`(bigint 还原成 bigint,decimal 与日期留作文字)。false 时请求体按普通 JSON 发、响应不还原\n */\n wire?: WireReviveOptions | false;\n /** 换掉 fetch(测试、SSR、注入公共处理) */\n fetch?: typeof fetch;\n}\n\n/** createHttpClient 的结果:request 之外,再给常用方法的简写 */\nexport interface FetchClient extends HttpClient {\n /** GET:参数写在 options.query 里 */\n get<T = unknown>(url: string, options?: Omit<HttpRequest, 'url' | 'method'>): Promise<T>;\n /** DELETE */\n delete<T = unknown>(url: string, options?: Omit<HttpRequest, 'url' | 'method'>): Promise<T>;\n /** POST:普通对象的 body 按 JSON 发送 */\n post<T = unknown>(\n url: string,\n body?: unknown,\n options?: Omit<HttpRequest, 'url' | 'method' | 'body'>,\n ): Promise<T>;\n /** PUT:普通对象的 body 按 JSON 发送 */\n put<T = unknown>(\n url: string,\n body?: unknown,\n options?: Omit<HttpRequest, 'url' | 'method' | 'body'>,\n ): Promise<T>;\n /** PATCH:普通对象的 body 按 JSON 发送 */\n patch<T = unknown>(\n url: string,\n body?: unknown,\n options?: Omit<HttpRequest, 'url' | 'method' | 'body'>,\n ): Promise<T>;\n}\n\n/** 原生 fetch 的薄封装(见文件开头) */\nexport function createHttpClient(options: HttpClientOptions = {}): FetchClient {\n const {\n baseURL = '',\n timeout: defaultTimeout = 30_000,\n onRequest,\n onResponse,\n wire = {},\n } = options;\n\n async function request<T>(spec: HttpRequest): Promise<T> {\n const { method = 'GET', body, signal, timeout = defaultTimeout } = spec;\n const headers = new Headers({ ...options.headers, ...spec.headers });\n const json = isJsonBody(body);\n if (json && !headers.has('content-type')) headers.set('content-type', 'application/json');\n const signals = [signal, timeout > 0 ? AbortSignal.timeout(timeout) : undefined].filter(\n (item): item is AbortSignal => item != null,\n );\n let prepared = new Request(buildUrl(baseURL, spec.url, spec.query), {\n method,\n headers,\n body: json\n ? JSON.stringify(wire === false ? body : toWire(body))\n : (body as BodyInit | undefined),\n signal: signals.length > 1 ? AbortSignal.any(signals) : signals[0],\n });\n prepared = (await onRequest?.(prepared)) ?? prepared;\n\n let response: Response;\n try {\n response = await (options.fetch ?? fetch)(prepared);\n } catch (cause) {\n // 调用方取消的:原样交出(AbortError),界面据此不当作错误\n if (signal?.aborted) throw cause;\n const timedOut = cause instanceof DOMException && cause.name === 'TimeoutError';\n const message = timedOut\n ? `请求超时(${timeout / 1000} 秒):${method} ${spec.url}`\n : `网络错误:${method} ${spec.url}`;\n throw new HttpError(message, { request: spec, cause });\n }\n const raw = await readBody(response, spec.responseType);\n const data = wire === false ? raw : fromWire(raw, wire);\n if (!response.ok) {\n const status = `${response.status}${response.statusText ? ` ${response.statusText}` : ''}`;\n throw new HttpError(`请求失败(${status}):${method} ${spec.url}`, {\n request: spec,\n response,\n data,\n });\n }\n return (onResponse ? onResponse(data, { request: spec, response }) : data) as T;\n }\n\n const withBody =\n (method: HttpMethod) =>\n <T>(url: string, body?: unknown, rest?: Omit<HttpRequest, 'url' | 'method' | 'body'>) =>\n request<T>({ ...rest, method, url, body });\n return {\n request,\n get: (url, rest) => request({ ...rest, method: 'GET', url }),\n delete: (url, rest) => request({ ...rest, method: 'DELETE', url }),\n post: withBody('POST'),\n put: withBody('PUT'),\n patch: withBody('PATCH'),\n };\n}\n\nlet fallback: FetchClient | undefined;\n\n/**\n * 当前配置的请求客户端(在 setup 里调用):createUi / Provider 的 http;都没给时是一个默认的 createHttpClient()\n */\nexport function useHttp(): HttpClient {\n return useConfig().http ?? (fallback ??= createHttpClient());\n}\n\n/** 地址 + query:相对地址拼在 baseURL 后面(斜杠不重复),null、undefined 的参数跳过 */\nfunction buildUrl(baseURL: string, url: string, query: HttpRequest['query']): string {\n const absolute = /^[a-z][a-z\\d+.-]*:/i.test(url) || url.startsWith('//');\n let full =\n absolute || !baseURL ? url : `${baseURL.replace(/\\/+$/, '')}/${url.replace(/^\\/+/, '')}`;\n const params = new URLSearchParams();\n for (const [key, value] of Object.entries(query ?? {})) {\n if (value == null) continue;\n const items: readonly WireScalar[] = Array.isArray(value) ? value : [value as WireScalar];\n for (const item of items) params.append(key, wireText(item));\n }\n const search = params.toString();\n if (search) full += `${full.includes('?') ? '&' : '?'}${search}`;\n return full;\n}\n\n/** 普通对象与数组按 JSON 发送 */\nfunction isJsonBody(body: unknown): boolean {\n if (body == null || typeof body !== 'object') return false;\n const prototype = Object.getPrototypeOf(body) as unknown;\n return Array.isArray(body) || prototype === Object.prototype || prototype === null;\n}\n\nasync function readBody(response: Response, type: HttpRequest['responseType']): Promise<unknown> {\n if (\n response.status === 204 ||\n response.status === 205 ||\n response.headers.get('content-length') === '0'\n ) {\n return undefined;\n }\n const contentType = response.headers.get('content-type') ?? '';\n const kind =\n type ??\n (/[/+]json\\b/.test(contentType) ? 'json' : contentType.startsWith('text/') ? 'text' : 'blob');\n if (kind === 'blob') return response.blob();\n const text = await response.text();\n if (kind === 'text') return text;\n if (text === '') return undefined;\n try {\n return JSON.parse(text);\n } catch {\n // 声明是 JSON 却解析不了(网关的 HTML 错误页):交出原文,状态码错误里还能看到\n return text;\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /** useRequest 的选项 */
2
+ export interface RequestOptions<P, T> {
3
+ /** 请求参数:读到的响应式值变了、且内容确实不同时重新请求;不写时只在开始与 refresh 时请求 */
4
+ params?: () => P;
5
+ /** 参数变了以后等多久再请求(毫秒),默认 0;refresh 不等 */
6
+ debounce?: number;
7
+ /** 一开始就请求,默认 true;false 时等调用 refresh(或参数变化) */
8
+ immediate?: boolean;
9
+ /** 重新请求时保留上一次的数据,默认 true;false 时请求一开始就清空 */
10
+ keepPrevious?: boolean;
11
+ /**
12
+ * 自动请求的开关(弹层打开时才请求这类):为 false 时 immediate 与参数变化都不请求,refresh 照常。
13
+ * 变回 true 时不自动补一次,需要时调用 refresh
14
+ */
15
+ enabled?: () => boolean;
16
+ /** 成功后调用 */
17
+ onSuccess?: (data: T, params: P) => void;
18
+ /** 失败后调用(取消的不算) */
19
+ onError?: (error: unknown, params: P) => void;
20
+ }
21
+ /** useRequest 的返回值 */
22
+ export interface RequestState<T> {
23
+ /** 最后一次成功的结果 */
24
+ readonly data: T | undefined;
25
+ /** 最后一次失败的原因;成功后清空 */
26
+ readonly error: unknown;
27
+ /** 正在请求(防抖等待时还不算) */
28
+ readonly loading: boolean;
29
+ /** 按当前参数立即请求,取消进行中的;返回结果,失败或被后来的请求顶掉时为 undefined */
30
+ refresh(): Promise<T | undefined>;
31
+ /** 取消进行中的请求与等着的防抖 */
32
+ cancel(): void;
33
+ /** 直接改数据(乐观更新、本地删掉一行),不发请求 */
34
+ mutate(data: T | undefined): void;
35
+ }
36
+ /** 请求的状态(在 setup 里调用;见文件开头) */
37
+ export declare function useRequest<T, P = undefined>(fetcher: (params: P, signal: AbortSignal) => Promise<T>, options?: RequestOptions<P, T>): RequestState<T>;
@@ -0,0 +1,90 @@
1
+ import { sameValue } from "../data/equality.js";
2
+ import { isAbortError } from "./http.js";
3
+ import { onScopeDispose, shallowRef, watch } from "vue";
4
+ //#region src/utils/request/use-request.ts
5
+ /**
6
+ * 一个请求的状态(参考 TanStack Query、alova 的 useWatcher):只采用最后一次的结果,发新请求时取消上一次,
7
+ * 参数变化防抖,重新请求时保留旧数据(表格不闪成空的)。
8
+ *
9
+ * const http = useHttp();
10
+ * const users = useRequest(
11
+ * ({ keyword, page }, signal) => http.request<Page<User>>({ url: '/users', query: { keyword, page }, signal }),
12
+ * { params: () => ({ keyword, page }), debounce: 300 },
13
+ * );
14
+ * users.data?.rows; users.loading; users.error; users.refresh();
15
+ *
16
+ * 只在浏览器里自动请求:服务端渲染时 data 留空,等页面在浏览器里接管后再请求。
17
+ */
18
+ /** 请求的状态(在 setup 里调用;见文件开头) */
19
+ function useRequest(fetcher, options = {}) {
20
+ const { params, debounce = 0, immediate = true, keepPrevious = true } = options;
21
+ const data = shallowRef();
22
+ const error = shallowRef();
23
+ const loading = shallowRef(false);
24
+ let controller;
25
+ let timer;
26
+ let latest = 0;
27
+ const readParams = () => params?.();
28
+ let last = params ? readParams() : void 0;
29
+ function cancel() {
30
+ clearTimeout(timer);
31
+ latest++;
32
+ controller?.abort();
33
+ controller = void 0;
34
+ loading.value = false;
35
+ }
36
+ async function run(current) {
37
+ cancel();
38
+ last = current;
39
+ const id = latest;
40
+ const own = controller = new AbortController();
41
+ loading.value = true;
42
+ if (!keepPrevious) data.value = void 0;
43
+ try {
44
+ const result = await fetcher(current, own.signal);
45
+ if (id !== latest) return void 0;
46
+ data.value = result;
47
+ error.value = void 0;
48
+ options.onSuccess?.(result, current);
49
+ return result;
50
+ } catch (reason) {
51
+ if (id !== latest || isAbortError(reason)) return void 0;
52
+ error.value = reason;
53
+ options.onError?.(reason, current);
54
+ return;
55
+ } finally {
56
+ if (id === latest) {
57
+ loading.value = false;
58
+ controller = void 0;
59
+ }
60
+ }
61
+ }
62
+ if (params) watch(readParams, (next) => {
63
+ if (options.enabled?.() === false) return;
64
+ if (sameValue(next, last)) return;
65
+ last = next;
66
+ clearTimeout(timer);
67
+ if (debounce > 0) timer = setTimeout(() => void run(next), debounce);
68
+ else run(next);
69
+ });
70
+ if (immediate && options.enabled?.() !== false && typeof window !== "undefined") run(readParams());
71
+ onScopeDispose(cancel);
72
+ return {
73
+ get data() {
74
+ return data.value;
75
+ },
76
+ get error() {
77
+ return error.value;
78
+ },
79
+ get loading() {
80
+ return loading.value;
81
+ },
82
+ refresh: () => run(readParams()),
83
+ cancel,
84
+ mutate: (value) => data.value = value
85
+ };
86
+ }
87
+ //#endregion
88
+ export { useRequest };
89
+
90
+ //# sourceMappingURL=use-request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-request.js","names":[],"sources":["../../../src/utils/request/use-request.ts"],"sourcesContent":["/**\n * 一个请求的状态(参考 TanStack Query、alova 的 useWatcher):只采用最后一次的结果,发新请求时取消上一次,\n * 参数变化防抖,重新请求时保留旧数据(表格不闪成空的)。\n *\n * const http = useHttp();\n * const users = useRequest(\n * ({ keyword, page }, signal) => http.request<Page<User>>({ url: '/users', query: { keyword, page }, signal }),\n * { params: () => ({ keyword, page }), debounce: 300 },\n * );\n * users.data?.rows; users.loading; users.error; users.refresh();\n *\n * 只在浏览器里自动请求:服务端渲染时 data 留空,等页面在浏览器里接管后再请求。\n */\nimport { onScopeDispose, shallowRef, watch } from 'vue';\nimport { sameValue } from '../data/equality';\nimport { isAbortError } from './http';\n\n/** useRequest 的选项 */\nexport interface RequestOptions<P, T> {\n /** 请求参数:读到的响应式值变了、且内容确实不同时重新请求;不写时只在开始与 refresh 时请求 */\n params?: () => P;\n /** 参数变了以后等多久再请求(毫秒),默认 0;refresh 不等 */\n debounce?: number;\n /** 一开始就请求,默认 true;false 时等调用 refresh(或参数变化) */\n immediate?: boolean;\n /** 重新请求时保留上一次的数据,默认 true;false 时请求一开始就清空 */\n keepPrevious?: boolean;\n /**\n * 自动请求的开关(弹层打开时才请求这类):为 false 时 immediate 与参数变化都不请求,refresh 照常。\n * 变回 true 时不自动补一次,需要时调用 refresh\n */\n enabled?: () => boolean;\n /** 成功后调用 */\n onSuccess?: (data: T, params: P) => void;\n /** 失败后调用(取消的不算) */\n onError?: (error: unknown, params: P) => void;\n}\n\n/** useRequest 的返回值 */\nexport interface RequestState<T> {\n /** 最后一次成功的结果 */\n readonly data: T | undefined;\n /** 最后一次失败的原因;成功后清空 */\n readonly error: unknown;\n /** 正在请求(防抖等待时还不算) */\n readonly loading: boolean;\n /** 按当前参数立即请求,取消进行中的;返回结果,失败或被后来的请求顶掉时为 undefined */\n refresh(): Promise<T | undefined>;\n /** 取消进行中的请求与等着的防抖 */\n cancel(): void;\n /** 直接改数据(乐观更新、本地删掉一行),不发请求 */\n mutate(data: T | undefined): void;\n}\n\n/** 请求的状态(在 setup 里调用;见文件开头) */\nexport function useRequest<T, P = undefined>(\n fetcher: (params: P, signal: AbortSignal) => Promise<T>,\n options: RequestOptions<P, T> = {},\n): RequestState<T> {\n const { params, debounce = 0, immediate = true, keepPrevious = true } = options;\n const data = shallowRef<T>();\n const error = shallowRef<unknown>();\n const loading = shallowRef(false);\n let controller: AbortController | undefined;\n let timer: ReturnType<typeof setTimeout> | undefined;\n // 每次请求一个编号:结果回来时不是最后一次的就丢掉(fetcher 没理会 signal 时也不会覆盖)\n let latest = 0;\n const readParams = () => params?.() as P;\n // 上一次请求(或开始时)的参数:参数变了但与它相同时不再请求(refresh 之后侦听器又看到同一组参数)\n let last = params ? readParams() : undefined;\n\n function cancel() {\n clearTimeout(timer);\n latest++;\n controller?.abort();\n controller = undefined;\n loading.value = false;\n }\n\n async function run(current: P): Promise<T | undefined> {\n cancel();\n last = current;\n const id = latest;\n const own = (controller = new AbortController());\n loading.value = true;\n if (!keepPrevious) data.value = undefined;\n try {\n const result = await fetcher(current, own.signal);\n if (id !== latest) return undefined;\n data.value = result;\n error.value = undefined;\n options.onSuccess?.(result, current);\n return result;\n } catch (reason) {\n if (id !== latest || isAbortError(reason)) return undefined;\n error.value = reason;\n options.onError?.(reason, current);\n return undefined;\n } finally {\n if (id === latest) {\n loading.value = false;\n controller = undefined;\n }\n }\n }\n\n if (params) {\n watch(readParams, (next) => {\n if (options.enabled?.() === false) return;\n if (sameValue(next, last)) return;\n last = next;\n clearTimeout(timer);\n if (debounce > 0) timer = setTimeout(() => void run(next), debounce);\n else void run(next);\n });\n }\n if (immediate && options.enabled?.() !== false && typeof window !== 'undefined') {\n void run(readParams());\n }\n onScopeDispose(cancel);\n\n return {\n get data() {\n return data.value;\n },\n get error() {\n return error.value;\n },\n get loading() {\n return loading.value;\n },\n refresh: () => run(readParams()),\n cancel,\n mutate: (value) => (data.value = value),\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAuDA,SAAgB,WACd,SACA,UAAgC,CAAC,GAChB;CACjB,MAAM,EAAE,QAAQ,WAAW,GAAG,YAAY,MAAM,eAAe,SAAS;CACxE,MAAM,OAAO,WAAc;CAC3B,MAAM,QAAQ,WAAoB;CAClC,MAAM,UAAU,WAAW,KAAK;CAChC,IAAI;CACJ,IAAI;CAEJ,IAAI,SAAS;CACb,MAAM,mBAAmB,SAAS;CAElC,IAAI,OAAO,SAAS,WAAW,IAAI,KAAA;CAEnC,SAAS,SAAS;EAChB,aAAa,KAAK;EAClB;EACA,YAAY,MAAM;EAClB,aAAa,KAAA;EACb,QAAQ,QAAQ;CAClB;CAEA,eAAe,IAAI,SAAoC;EACrD,OAAO;EACP,OAAO;EACP,MAAM,KAAK;EACX,MAAM,MAAO,aAAa,IAAI,gBAAgB;EAC9C,QAAQ,QAAQ;EAChB,IAAI,CAAC,cAAc,KAAK,QAAQ,KAAA;EAChC,IAAI;GACF,MAAM,SAAS,MAAM,QAAQ,SAAS,IAAI,MAAM;GAChD,IAAI,OAAO,QAAQ,OAAO,KAAA;GAC1B,KAAK,QAAQ;GACb,MAAM,QAAQ,KAAA;GACd,QAAQ,YAAY,QAAQ,OAAO;GACnC,OAAO;EACT,SAAS,QAAQ;GACf,IAAI,OAAO,UAAU,aAAa,MAAM,GAAG,OAAO,KAAA;GAClD,MAAM,QAAQ;GACd,QAAQ,UAAU,QAAQ,OAAO;GACjC;EACF,UAAU;GACR,IAAI,OAAO,QAAQ;IACjB,QAAQ,QAAQ;IAChB,aAAa,KAAA;GACf;EACF;CACF;CAEA,IAAI,QACF,MAAM,aAAa,SAAS;EAC1B,IAAI,QAAQ,UAAU,MAAM,OAAO;EACnC,IAAI,UAAU,MAAM,IAAI,GAAG;EAC3B,OAAO;EACP,aAAa,KAAK;EAClB,IAAI,WAAW,GAAG,QAAQ,iBAAiB,KAAK,IAAI,IAAI,GAAG,QAAQ;OAC9D,IAAS,IAAI;CACpB,CAAC;CAEH,IAAI,aAAa,QAAQ,UAAU,MAAM,SAAS,OAAO,WAAW,aAClE,IAAS,WAAW,CAAC;CAEvB,eAAe,MAAM;CAErB,OAAO;EACL,IAAI,OAAO;GACT,OAAO,KAAK;EACd;EACA,IAAI,QAAQ;GACV,OAAO,MAAM;EACf;EACA,IAAI,UAAU;GACZ,OAAO,QAAQ;EACjB;EACA,eAAe,IAAI,WAAW,CAAC;EAC/B;EACA,SAAS,UAAW,KAAK,QAAQ;CACnC;AACF"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * 线上的 typed JSON(与 query 库的 @zerodep-dev/wire、Java 的 org.dpdns.zerodep.wire 同一套写法):bigint、Decimal、
3
+ * 日期、时间、字节等 JSON 不能原样承载的值写成文字,根对象上的 `$types` 记下它们的位置(路径 → 种类),对方据此还原。
4
+ * createHttpClient 默认就用它:请求体经 toWire 发出,带 `$types` 的响应经 fromWire 还原,地址栏参数经 wireText 写成文字。
5
+ *
6
+ * toWire({ id: 9007199254740993n, amount: new Decimal('12.50'), on: new CalendarDate(2024, 1, 31) })
7
+ * // { id: '9007199254740993', amount: '12.5', on: '2024-01-31', $types: { id: 'bigint', amount: 'decimal', on: 'date' } }
8
+ *
9
+ * 种类与文字:bigint 是十进制整数,decimal 不用科学计数法,double 只有 NaN / ±Infinity 写成文字,date 'YYYY-MM-DD'、
10
+ * time 'HH:mm:ss'、timestamp 'YYYY-MM-DDTHH:mm:ss[.fff]'、timestamptz 换算成 UTC 带 Z,bytes 是标准 base64。
11
+ * 路径从根开始用点连接属性名,数组不占一段(`rows.amount` 是每一行的 amount),属性名里的 ~ 与 . 写成 ~0、~1。
12
+ *
13
+ * 还原的默认值跟组件的约定走:bigint 还原成 bigint;decimal 在给了 Decimal 构造函数时还原成 Decimal,否则留作十进制文字
14
+ * (DataTable 的数字列、NumberField 都认);日期与时间留作 ISO 文字(组件对外的值就是它),dates: 'objects' 时还原成
15
+ * CalendarDate、Time、CalendarDateTime、ZonedDateTime。这里不在运行时导入 decimal.js(同 numeric.ts)。
16
+ */
17
+ import { CalendarDate, CalendarDateTime, Time, ZonedDateTime } from '@internationalized/date';
18
+ import type Decimal from 'decimal.js';
19
+ /** 线上要还原的值的种类 */
20
+ export type WireType = 'bigint' | 'decimal' | 'double' | 'date' | 'time' | 'timestamp' | 'timestamptz' | 'bytes';
21
+ /** 根对象上的类型表:路径 → 种类 */
22
+ export type WireTypes = Record<string, WireType>;
23
+ /** 能写成线上文字的单个值(地址栏参数、表头筛选) */
24
+ export type WireScalar = string | number | boolean | bigint | Decimal | CalendarDate | CalendarDateTime | ZonedDateTime | Time | Date | null | undefined;
25
+ /** fromWire 怎样还原 */
26
+ export interface WireReviveOptions {
27
+ /** 还原 decimal 用的构造函数(decimal.js 的 Decimal 或它 clone 出来的);不给时 decimal 留作十进制文字 */
28
+ decimal?: new (text: string) => Decimal;
29
+ /** 日期与时间:'iso' 留作 ISO 文字(默认),'objects' 还原成 CalendarDate、Time、CalendarDateTime、ZonedDateTime */
30
+ dates?: 'iso' | 'objects';
31
+ /** 'objects' 时 timestamptz 还原到哪个时区,默认浏览器的时区 */
32
+ timeZone?: string;
33
+ }
34
+ /**
35
+ * 一个值写成线上的文字:地址栏参数、表头筛选都用它。Decimal 不用科学计数法,日期与时间是 ISO 写法,
36
+ * 带时区的时刻换算成 UTC;null、undefined 是空字符串
37
+ */
38
+ export declare function wireText(value: WireScalar): string;
39
+ /**
40
+ * 把值写成线上的 JSON:要还原的值写成文字,根对象上加 `$types`;没有这样的值时就是普通 JSON。
41
+ * 对象取自身可枚举的属性(undefined 与函数跳过),有 toJSON 的先调用它;同一路径上既有文字又有 Decimal 这类值时报错
42
+ */
43
+ export declare function toWire(value: unknown): unknown;
44
+ /**
45
+ * 读线上的 JSON:按根上的 `$types` 还原(见文件开头的默认值),去掉 `$types`,`{ $value, $types }` 拆成里面的值;
46
+ * 没有 `$types` 时原样返回。就地改写传入的对象(通常刚由 JSON.parse 得到)
47
+ */
48
+ export declare function fromWire<T = unknown>(json: unknown, options?: WireReviveOptions): T;