@vavt/react-ui 1.0.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 (591) hide show
  1. package/README.md +137 -0
  2. package/dist/Alert-BGyLKuv0.js +52 -0
  3. package/dist/Alert-tPSJmCXK.cjs +1 -0
  4. package/dist/Anchor-QZROepM_.js +197 -0
  5. package/dist/Anchor-iriRYxEs.cjs +1 -0
  6. package/dist/Announcement-D_NccvTm.js +212 -0
  7. package/dist/Announcement-XjJyJ28N.cjs +1 -0
  8. package/dist/Button-CwkWSWau.js +96 -0
  9. package/dist/Button-qURrKHQ0.cjs +1 -0
  10. package/dist/Card-DlztNV-6.js +48 -0
  11. package/dist/Card-nILlh9c_.cjs +1 -0
  12. package/dist/Checkbox-BCXbK1-8.cjs +1 -0
  13. package/dist/Checkbox-CQZSg9Xu.cjs +1 -0
  14. package/dist/Checkbox-CQeqLO0S.js +46 -0
  15. package/dist/Checkbox-cnXHW9Oz.js +61 -0
  16. package/dist/Col-CZjR94ac.js +55 -0
  17. package/dist/Col-qcq7T83y.cjs +1 -0
  18. package/dist/Cron-CoO2Vnnm.cjs +1 -0
  19. package/dist/Cron-Di7k2FTL.js +1187 -0
  20. package/dist/DatePicker-DAxv2h-d.cjs +1 -0
  21. package/dist/DatePicker-M-MwejjV.js +15 -0
  22. package/dist/DateTimePicker-B3C3v99L.cjs +1 -0
  23. package/dist/DateTimePicker-BcT3FtN-.js +16 -0
  24. package/dist/Divider-BfvQ6BVP.cjs +1 -0
  25. package/dist/Divider-vyftxh3F.js +47 -0
  26. package/dist/Drawer-D28QbyA3.js +103 -0
  27. package/dist/Drawer-OmMfdgKN.cjs +1 -0
  28. package/dist/Dropdown-CYx6RxVv.js +311 -0
  29. package/dist/Dropdown-swfND4yK.cjs +1 -0
  30. package/dist/Form-7un_DeDk.cjs +1 -0
  31. package/dist/Form-CwgaAZWr.js +323 -0
  32. package/dist/Input-CIB_TY2n.js +113 -0
  33. package/dist/Input-CoDZggqc.cjs +1 -0
  34. package/dist/Loading-C2pY-4fA.cjs +1 -0
  35. package/dist/Loading-CL0wUgYK.js +45 -0
  36. package/dist/MessageBox-CrIifoig.js +141 -0
  37. package/dist/MessageBox-Ddn-R2MS.cjs +1 -0
  38. package/dist/Modal-B_VqN16m.js +201 -0
  39. package/dist/Modal-Dm48HmGu.cjs +1 -0
  40. package/dist/NumberInput-CYVj89_s.cjs +1 -0
  41. package/dist/NumberInput-C_vLULbX.js +134 -0
  42. package/dist/Pagination-B7a9v6BU.js +167 -0
  43. package/dist/Pagination-mj-pO6ql.cjs +1 -0
  44. package/dist/Progress-D2C6LCml.js +40 -0
  45. package/dist/Progress-DTAjlgwZ.cjs +1 -0
  46. package/dist/RadioGroup-BRcNi5Oc.js +98 -0
  47. package/dist/RadioGroup-q2Aa50NV.cjs +1 -0
  48. package/dist/Row-BJZtEKxG.cjs +1 -0
  49. package/dist/Row-DpEse7PJ.js +24 -0
  50. package/dist/Scrollbar-BdMGZrYi.js +235 -0
  51. package/dist/Scrollbar-CEQT6Ao_.cjs +1 -0
  52. package/dist/Select-DQLup8Y-.cjs +1 -0
  53. package/dist/Select-DccM9YpB.js +458 -0
  54. package/dist/Sidebar-BPXVnP7y.cjs +1 -0
  55. package/dist/Sidebar-u980T-QB.js +76 -0
  56. package/dist/Slider-BzlZc0p4.js +256 -0
  57. package/dist/Slider-DCIUxcBa.cjs +1 -0
  58. package/dist/Space-DJGRG2rt.cjs +1 -0
  59. package/dist/Space-gnVH7rEt.js +35 -0
  60. package/dist/Switch-7yJ-Q_o_.cjs +1 -0
  61. package/dist/Switch-DOO2tiYR.js +58 -0
  62. package/dist/Table-C8cSyts5.js +440 -0
  63. package/dist/Table-JoJ9vpu-.cjs +1 -0
  64. package/dist/Tabs-BhjvKN84.cjs +1 -0
  65. package/dist/Tabs-VT6nQ63W.js +106 -0
  66. package/dist/Tag-Cf9M_HT6.cjs +1 -0
  67. package/dist/Tag-CkfqoSwA.js +42 -0
  68. package/dist/Textarea-BEd7ToXv.js +68 -0
  69. package/dist/Textarea-C2dNYM0F.cjs +1 -0
  70. package/dist/TimePicker-ClQCHa6M.js +199 -0
  71. package/dist/TimePicker-DNBo2Rn5.cjs +1 -0
  72. package/dist/Timeline-ROggEQnD.cjs +1 -0
  73. package/dist/Timeline-euWvUS4e.js +70 -0
  74. package/dist/Tooltip-CbPYYr6R.cjs +1 -0
  75. package/dist/Tooltip-Ds4Odm7K.js +197 -0
  76. package/dist/Transition-DiO4GsP3.js +125 -0
  77. package/dist/Transition-X_89ga-e.cjs +1 -0
  78. package/dist/base.css +1 -0
  79. package/dist/cjs/Alert.cjs +1 -0
  80. package/dist/cjs/Anchor.cjs +1 -0
  81. package/dist/cjs/Announcement.cjs +1 -0
  82. package/dist/cjs/Button.cjs +1 -0
  83. package/dist/cjs/Card.cjs +1 -0
  84. package/dist/cjs/Checkbox.cjs +1 -0
  85. package/dist/cjs/Col.cjs +1 -0
  86. package/dist/cjs/Cron.cjs +1 -0
  87. package/dist/cjs/DatePicker.cjs +1 -0
  88. package/dist/cjs/DateTimePicker.cjs +1 -0
  89. package/dist/cjs/Divider.cjs +1 -0
  90. package/dist/cjs/Drawer.cjs +1 -0
  91. package/dist/cjs/Dropdown.cjs +1 -0
  92. package/dist/cjs/Form.cjs +1 -0
  93. package/dist/cjs/Input.cjs +1 -0
  94. package/dist/cjs/Loading.cjs +1 -0
  95. package/dist/cjs/MessageBox.cjs +1 -0
  96. package/dist/cjs/Modal.cjs +1 -0
  97. package/dist/cjs/NumberInput.cjs +1 -0
  98. package/dist/cjs/Pagination.cjs +1 -0
  99. package/dist/cjs/Progress.cjs +1 -0
  100. package/dist/cjs/Radio.cjs +1 -0
  101. package/dist/cjs/Row.cjs +1 -0
  102. package/dist/cjs/Scrollbar.cjs +1 -0
  103. package/dist/cjs/Select.cjs +1 -0
  104. package/dist/cjs/Sidebar.cjs +1 -0
  105. package/dist/cjs/Slider.cjs +1 -0
  106. package/dist/cjs/Space.cjs +1 -0
  107. package/dist/cjs/Switch.cjs +1 -0
  108. package/dist/cjs/Table.cjs +1 -0
  109. package/dist/cjs/Tabs.cjs +1 -0
  110. package/dist/cjs/Tag.cjs +1 -0
  111. package/dist/cjs/Textarea.cjs +1 -0
  112. package/dist/cjs/TimePicker.cjs +1 -0
  113. package/dist/cjs/Timeline.cjs +1 -0
  114. package/dist/cjs/Tooltip.cjs +1 -0
  115. package/dist/cjs/Transition.cjs +1 -0
  116. package/dist/cjs/global.cjs +1 -0
  117. package/dist/cjs/index.cjs +1 -0
  118. package/dist/cjs/register.cjs +1 -0
  119. package/dist/client-BkoqeUs3.cjs +1 -0
  120. package/dist/client-pj_wzx28.js +8 -0
  121. package/dist/css/Alert.css +1 -0
  122. package/dist/css/Anchor.css +1 -0
  123. package/dist/css/Announcement.css +1 -0
  124. package/dist/css/Button.css +1 -0
  125. package/dist/css/Card.css +1 -0
  126. package/dist/css/Checkbox.css +1 -0
  127. package/dist/css/Col.css +1 -0
  128. package/dist/css/Cron.css +1 -0
  129. package/dist/css/DatePicker.css +1 -0
  130. package/dist/css/DateTimePicker.css +1 -0
  131. package/dist/css/Divider.css +1 -0
  132. package/dist/css/Drawer.css +1 -0
  133. package/dist/css/Dropdown.css +1 -0
  134. package/dist/css/Form.css +1 -0
  135. package/dist/css/Input.css +1 -0
  136. package/dist/css/Loading.css +1 -0
  137. package/dist/css/MessageBox.css +1 -0
  138. package/dist/css/Modal.css +1 -0
  139. package/dist/css/NumberInput.css +1 -0
  140. package/dist/css/Pagination.css +1 -0
  141. package/dist/css/Progress.css +1 -0
  142. package/dist/css/Radio.css +1 -0
  143. package/dist/css/Row.css +1 -0
  144. package/dist/css/Scrollbar.css +1 -0
  145. package/dist/css/Select.css +1 -0
  146. package/dist/css/Sidebar.css +1 -0
  147. package/dist/css/Slider.css +1 -0
  148. package/dist/css/Space.css +1 -0
  149. package/dist/css/Switch.css +1 -0
  150. package/dist/css/Table.css +1 -0
  151. package/dist/css/Tabs.css +1 -0
  152. package/dist/css/Tag.css +1 -0
  153. package/dist/css/Textarea.css +1 -0
  154. package/dist/css/TimePicker.css +1 -0
  155. package/dist/css/Timeline.css +1 -0
  156. package/dist/css/Tooltip.css +1 -0
  157. package/dist/css/Transition.css +0 -0
  158. package/dist/date-picker-DkRwNu2m.js +584 -0
  159. package/dist/date-picker-DyGLrw5H.cjs +1 -0
  160. package/dist/dialog-shell-DT1EoKQG.cjs +1 -0
  161. package/dist/dialog-shell-DehX3PNh.js +111 -0
  162. package/dist/effect-BpNxm_06.cjs +1 -0
  163. package/dist/effect-nifYL_rH.js +5 -0
  164. package/dist/es/Alert.mjs +3 -0
  165. package/dist/es/Anchor.mjs +3 -0
  166. package/dist/es/Announcement.mjs +3 -0
  167. package/dist/es/Button.mjs +3 -0
  168. package/dist/es/Card.mjs +3 -0
  169. package/dist/es/Checkbox.mjs +3 -0
  170. package/dist/es/Col.mjs +3 -0
  171. package/dist/es/Cron.mjs +3 -0
  172. package/dist/es/DatePicker.mjs +3 -0
  173. package/dist/es/DateTimePicker.mjs +3 -0
  174. package/dist/es/Divider.mjs +3 -0
  175. package/dist/es/Drawer.mjs +3 -0
  176. package/dist/es/Dropdown.mjs +3 -0
  177. package/dist/es/Form.mjs +3 -0
  178. package/dist/es/Input.mjs +3 -0
  179. package/dist/es/Loading.mjs +3 -0
  180. package/dist/es/MessageBox.mjs +3 -0
  181. package/dist/es/Modal.mjs +3 -0
  182. package/dist/es/NumberInput.mjs +3 -0
  183. package/dist/es/Pagination.mjs +3 -0
  184. package/dist/es/Progress.mjs +3 -0
  185. package/dist/es/Radio.mjs +6 -0
  186. package/dist/es/Row.mjs +6 -0
  187. package/dist/es/Scrollbar.mjs +3 -0
  188. package/dist/es/Select.mjs +3 -0
  189. package/dist/es/Sidebar.mjs +3 -0
  190. package/dist/es/Slider.mjs +3 -0
  191. package/dist/es/Space.mjs +3 -0
  192. package/dist/es/Switch.mjs +3 -0
  193. package/dist/es/Table.mjs +3 -0
  194. package/dist/es/Tabs.mjs +3 -0
  195. package/dist/es/Tag.mjs +3 -0
  196. package/dist/es/Textarea.mjs +3 -0
  197. package/dist/es/TimePicker.mjs +3 -0
  198. package/dist/es/Timeline.mjs +3 -0
  199. package/dist/es/Tooltip.mjs +3 -0
  200. package/dist/es/Transition.mjs +3 -0
  201. package/dist/es/global.mjs +3 -0
  202. package/dist/es/index.mjs +40 -0
  203. package/dist/es/register.mjs +7 -0
  204. package/dist/floating-DBAmeQIq.js +157 -0
  205. package/dist/floating-DXRnx48N.cjs +1 -0
  206. package/dist/focus-BDDJyKk3.js +9 -0
  207. package/dist/focus-D-h8CbGr.cjs +1 -0
  208. package/dist/icon-Cbvuv4yF.js +25 -0
  209. package/dist/icon-DRLyKu8p.cjs +1 -0
  210. package/dist/id-CF0zOP1G.cjs +1 -0
  211. package/dist/id-CHixuHb7.js +8 -0
  212. package/dist/index.css +1 -0
  213. package/dist/number-B7qJF_ZY.cjs +1 -0
  214. package/dist/number-BN2jHM6Z.js +6 -0
  215. package/dist/refs-D5IYOBaf.js +14 -0
  216. package/dist/refs-DCqd87V8.cjs +1 -0
  217. package/dist/registry-CkiH1x-J.js +79 -0
  218. package/dist/registry-YCz7D-2R.cjs +1 -0
  219. package/dist/state-ZBA75xZ_.cjs +1 -0
  220. package/dist/state-oH-YwB7_.js +15 -0
  221. package/dist/style/Alert.cjs +7 -0
  222. package/dist/style/Alert.mjs +7 -0
  223. package/dist/style/Anchor.cjs +7 -0
  224. package/dist/style/Anchor.mjs +7 -0
  225. package/dist/style/Announcement.cjs +7 -0
  226. package/dist/style/Announcement.mjs +7 -0
  227. package/dist/style/Button.cjs +7 -0
  228. package/dist/style/Button.mjs +7 -0
  229. package/dist/style/Card.cjs +7 -0
  230. package/dist/style/Card.mjs +7 -0
  231. package/dist/style/Checkbox.cjs +7 -0
  232. package/dist/style/Checkbox.mjs +7 -0
  233. package/dist/style/Col.cjs +7 -0
  234. package/dist/style/Col.mjs +7 -0
  235. package/dist/style/Cron.cjs +13 -0
  236. package/dist/style/Cron.mjs +13 -0
  237. package/dist/style/DatePicker.cjs +10 -0
  238. package/dist/style/DatePicker.mjs +10 -0
  239. package/dist/style/DateTimePicker.cjs +10 -0
  240. package/dist/style/DateTimePicker.mjs +10 -0
  241. package/dist/style/Divider.cjs +7 -0
  242. package/dist/style/Divider.mjs +7 -0
  243. package/dist/style/Drawer.cjs +8 -0
  244. package/dist/style/Drawer.mjs +8 -0
  245. package/dist/style/Dropdown.cjs +8 -0
  246. package/dist/style/Dropdown.mjs +8 -0
  247. package/dist/style/Form.cjs +7 -0
  248. package/dist/style/Form.mjs +7 -0
  249. package/dist/style/Input.cjs +7 -0
  250. package/dist/style/Input.mjs +7 -0
  251. package/dist/style/Loading.cjs +8 -0
  252. package/dist/style/Loading.mjs +8 -0
  253. package/dist/style/MessageBox.cjs +9 -0
  254. package/dist/style/MessageBox.mjs +9 -0
  255. package/dist/style/Modal.cjs +8 -0
  256. package/dist/style/Modal.mjs +8 -0
  257. package/dist/style/NumberInput.cjs +7 -0
  258. package/dist/style/NumberInput.mjs +7 -0
  259. package/dist/style/Pagination.cjs +7 -0
  260. package/dist/style/Pagination.mjs +7 -0
  261. package/dist/style/Progress.cjs +7 -0
  262. package/dist/style/Progress.mjs +7 -0
  263. package/dist/style/Radio.cjs +7 -0
  264. package/dist/style/Radio.mjs +7 -0
  265. package/dist/style/Row.cjs +7 -0
  266. package/dist/style/Row.mjs +7 -0
  267. package/dist/style/Scrollbar.cjs +7 -0
  268. package/dist/style/Scrollbar.mjs +7 -0
  269. package/dist/style/Select.cjs +8 -0
  270. package/dist/style/Select.mjs +8 -0
  271. package/dist/style/Sidebar.cjs +7 -0
  272. package/dist/style/Sidebar.mjs +7 -0
  273. package/dist/style/Slider.cjs +7 -0
  274. package/dist/style/Slider.mjs +7 -0
  275. package/dist/style/Space.cjs +7 -0
  276. package/dist/style/Space.mjs +7 -0
  277. package/dist/style/Switch.cjs +7 -0
  278. package/dist/style/Switch.mjs +7 -0
  279. package/dist/style/Table.cjs +9 -0
  280. package/dist/style/Table.mjs +9 -0
  281. package/dist/style/Tabs.cjs +7 -0
  282. package/dist/style/Tabs.mjs +7 -0
  283. package/dist/style/Tag.cjs +7 -0
  284. package/dist/style/Tag.mjs +7 -0
  285. package/dist/style/Textarea.cjs +7 -0
  286. package/dist/style/Textarea.mjs +7 -0
  287. package/dist/style/TimePicker.cjs +8 -0
  288. package/dist/style/TimePicker.mjs +8 -0
  289. package/dist/style/Timeline.cjs +7 -0
  290. package/dist/style/Timeline.mjs +7 -0
  291. package/dist/style/Tooltip.cjs +8 -0
  292. package/dist/style/Tooltip.mjs +8 -0
  293. package/dist/style/Transition.cjs +6 -0
  294. package/dist/style/Transition.mjs +6 -0
  295. package/dist/time-wheel-BaCcA9nk.cjs +1 -0
  296. package/dist/time-wheel-BtvYZI6H.js +291 -0
  297. package/dist/types/Alert/Alert.d.cts +3 -0
  298. package/dist/types/Alert/Alert.d.ts +3 -0
  299. package/dist/types/Alert/index.d.cts +5 -0
  300. package/dist/types/Alert/index.d.ts +5 -0
  301. package/dist/types/Alert/type.d.cts +21 -0
  302. package/dist/types/Alert/type.d.ts +21 -0
  303. package/dist/types/Anchor/Anchor.d.cts +3 -0
  304. package/dist/types/Anchor/Anchor.d.ts +3 -0
  305. package/dist/types/Anchor/index.d.cts +5 -0
  306. package/dist/types/Anchor/index.d.ts +5 -0
  307. package/dist/types/Anchor/type.d.cts +42 -0
  308. package/dist/types/Anchor/type.d.ts +42 -0
  309. package/dist/types/Announcement/Announcement.d.cts +3 -0
  310. package/dist/types/Announcement/Announcement.d.ts +3 -0
  311. package/dist/types/Announcement/host.d.cts +12 -0
  312. package/dist/types/Announcement/host.d.ts +12 -0
  313. package/dist/types/Announcement/index.d.cts +5 -0
  314. package/dist/types/Announcement/index.d.ts +5 -0
  315. package/dist/types/Announcement/type.d.cts +63 -0
  316. package/dist/types/Announcement/type.d.ts +63 -0
  317. package/dist/types/Button/Button.d.cts +23 -0
  318. package/dist/types/Button/Button.d.ts +23 -0
  319. package/dist/types/Button/ButtonGroup.d.cts +14 -0
  320. package/dist/types/Button/ButtonGroup.d.ts +14 -0
  321. package/dist/types/Button/context.d.cts +15 -0
  322. package/dist/types/Button/context.d.ts +15 -0
  323. package/dist/types/Button/index.d.cts +7 -0
  324. package/dist/types/Button/index.d.ts +7 -0
  325. package/dist/types/Button/type.d.cts +66 -0
  326. package/dist/types/Button/type.d.ts +66 -0
  327. package/dist/types/Card/Card.d.cts +15 -0
  328. package/dist/types/Card/Card.d.ts +15 -0
  329. package/dist/types/Card/index.d.cts +5 -0
  330. package/dist/types/Card/index.d.ts +5 -0
  331. package/dist/types/Card/type.d.cts +40 -0
  332. package/dist/types/Card/type.d.ts +40 -0
  333. package/dist/types/Checkbox/Checkbox.d.cts +3 -0
  334. package/dist/types/Checkbox/Checkbox.d.ts +3 -0
  335. package/dist/types/Checkbox/CheckboxGroup.d.cts +3 -0
  336. package/dist/types/Checkbox/CheckboxGroup.d.ts +3 -0
  337. package/dist/types/Checkbox/context.d.cts +19 -0
  338. package/dist/types/Checkbox/context.d.ts +19 -0
  339. package/dist/types/Checkbox/index.d.cts +7 -0
  340. package/dist/types/Checkbox/index.d.ts +7 -0
  341. package/dist/types/Checkbox/type.d.cts +55 -0
  342. package/dist/types/Checkbox/type.d.ts +55 -0
  343. package/dist/types/Col/Col.d.cts +3 -0
  344. package/dist/types/Col/Col.d.ts +3 -0
  345. package/dist/types/Col/index.d.cts +5 -0
  346. package/dist/types/Col/index.d.ts +5 -0
  347. package/dist/types/Col/type.d.cts +41 -0
  348. package/dist/types/Col/type.d.ts +41 -0
  349. package/dist/types/Cron/Cron.d.cts +3 -0
  350. package/dist/types/Cron/Cron.d.ts +3 -0
  351. package/dist/types/Cron/CronField.d.cts +14 -0
  352. package/dist/types/Cron/CronField.d.ts +14 -0
  353. package/dist/types/Cron/CronPanel.d.cts +27 -0
  354. package/dist/types/Cron/CronPanel.d.ts +27 -0
  355. package/dist/types/Cron/describe.d.cts +10 -0
  356. package/dist/types/Cron/describe.d.ts +10 -0
  357. package/dist/types/Cron/expression.d.cts +188 -0
  358. package/dist/types/Cron/expression.d.ts +188 -0
  359. package/dist/types/Cron/index.d.cts +5 -0
  360. package/dist/types/Cron/index.d.ts +5 -0
  361. package/dist/types/Cron/schedule.d.cts +15 -0
  362. package/dist/types/Cron/schedule.d.ts +15 -0
  363. package/dist/types/Cron/type.d.cts +65 -0
  364. package/dist/types/Cron/type.d.ts +65 -0
  365. package/dist/types/DatePicker/DatePicker.d.cts +3 -0
  366. package/dist/types/DatePicker/DatePicker.d.ts +3 -0
  367. package/dist/types/DatePicker/index.d.cts +5 -0
  368. package/dist/types/DatePicker/index.d.ts +5 -0
  369. package/dist/types/DatePicker/type.d.cts +89 -0
  370. package/dist/types/DatePicker/type.d.ts +89 -0
  371. package/dist/types/DateTimePicker/DateTimePicker.d.cts +3 -0
  372. package/dist/types/DateTimePicker/DateTimePicker.d.ts +3 -0
  373. package/dist/types/DateTimePicker/index.d.cts +5 -0
  374. package/dist/types/DateTimePicker/index.d.ts +5 -0
  375. package/dist/types/DateTimePicker/type.d.cts +64 -0
  376. package/dist/types/DateTimePicker/type.d.ts +64 -0
  377. package/dist/types/Divider/Divider.d.cts +3 -0
  378. package/dist/types/Divider/Divider.d.ts +3 -0
  379. package/dist/types/Divider/index.d.cts +5 -0
  380. package/dist/types/Divider/index.d.ts +5 -0
  381. package/dist/types/Divider/type.d.cts +20 -0
  382. package/dist/types/Divider/type.d.ts +20 -0
  383. package/dist/types/Drawer/Drawer.d.cts +3 -0
  384. package/dist/types/Drawer/Drawer.d.ts +3 -0
  385. package/dist/types/Drawer/index.d.cts +5 -0
  386. package/dist/types/Drawer/index.d.ts +5 -0
  387. package/dist/types/Drawer/type.d.cts +46 -0
  388. package/dist/types/Drawer/type.d.ts +46 -0
  389. package/dist/types/Dropdown/Dropdown.d.cts +3 -0
  390. package/dist/types/Dropdown/Dropdown.d.ts +3 -0
  391. package/dist/types/Dropdown/index.d.cts +5 -0
  392. package/dist/types/Dropdown/index.d.ts +5 -0
  393. package/dist/types/Dropdown/type.d.cts +67 -0
  394. package/dist/types/Dropdown/type.d.ts +67 -0
  395. package/dist/types/Form/Form.d.cts +3 -0
  396. package/dist/types/Form/Form.d.ts +3 -0
  397. package/dist/types/Form/FormItem.d.cts +3 -0
  398. package/dist/types/Form/FormItem.d.ts +3 -0
  399. package/dist/types/Form/context.d.cts +39 -0
  400. package/dist/types/Form/context.d.ts +39 -0
  401. package/dist/types/Form/index.d.cts +8 -0
  402. package/dist/types/Form/index.d.ts +8 -0
  403. package/dist/types/Form/type.d.cts +119 -0
  404. package/dist/types/Form/type.d.ts +119 -0
  405. package/dist/types/Input/Input.d.cts +3 -0
  406. package/dist/types/Input/Input.d.ts +3 -0
  407. package/dist/types/Input/index.d.cts +5 -0
  408. package/dist/types/Input/index.d.ts +5 -0
  409. package/dist/types/Input/type.d.cts +43 -0
  410. package/dist/types/Input/type.d.ts +43 -0
  411. package/dist/types/Loading/Loading.d.cts +3 -0
  412. package/dist/types/Loading/Loading.d.ts +3 -0
  413. package/dist/types/Loading/index.d.cts +5 -0
  414. package/dist/types/Loading/index.d.ts +5 -0
  415. package/dist/types/Loading/type.d.cts +18 -0
  416. package/dist/types/Loading/type.d.ts +18 -0
  417. package/dist/types/MessageBox/MessageBox.d.cts +3 -0
  418. package/dist/types/MessageBox/MessageBox.d.ts +3 -0
  419. package/dist/types/MessageBox/index.d.cts +5 -0
  420. package/dist/types/MessageBox/index.d.ts +5 -0
  421. package/dist/types/MessageBox/service.d.cts +12 -0
  422. package/dist/types/MessageBox/service.d.ts +12 -0
  423. package/dist/types/MessageBox/type.d.cts +62 -0
  424. package/dist/types/MessageBox/type.d.ts +62 -0
  425. package/dist/types/Modal/Modal.d.cts +3 -0
  426. package/dist/types/Modal/Modal.d.ts +3 -0
  427. package/dist/types/Modal/index.d.cts +5 -0
  428. package/dist/types/Modal/index.d.ts +5 -0
  429. package/dist/types/Modal/type.d.cts +50 -0
  430. package/dist/types/Modal/type.d.ts +50 -0
  431. package/dist/types/NumberInput/NumberInput.d.cts +3 -0
  432. package/dist/types/NumberInput/NumberInput.d.ts +3 -0
  433. package/dist/types/NumberInput/index.d.cts +5 -0
  434. package/dist/types/NumberInput/index.d.ts +5 -0
  435. package/dist/types/NumberInput/type.d.cts +40 -0
  436. package/dist/types/NumberInput/type.d.ts +40 -0
  437. package/dist/types/Pagination/Pagination.d.cts +3 -0
  438. package/dist/types/Pagination/Pagination.d.ts +3 -0
  439. package/dist/types/Pagination/index.d.cts +5 -0
  440. package/dist/types/Pagination/index.d.ts +5 -0
  441. package/dist/types/Pagination/type.d.cts +38 -0
  442. package/dist/types/Pagination/type.d.ts +38 -0
  443. package/dist/types/Progress/Progress.d.cts +3 -0
  444. package/dist/types/Progress/Progress.d.ts +3 -0
  445. package/dist/types/Progress/index.d.cts +5 -0
  446. package/dist/types/Progress/index.d.ts +5 -0
  447. package/dist/types/Progress/type.d.cts +30 -0
  448. package/dist/types/Progress/type.d.ts +30 -0
  449. package/dist/types/Radio/Radio.d.cts +3 -0
  450. package/dist/types/Radio/Radio.d.ts +3 -0
  451. package/dist/types/Radio/RadioGroup.d.cts +3 -0
  452. package/dist/types/Radio/RadioGroup.d.ts +3 -0
  453. package/dist/types/Radio/context.d.cts +19 -0
  454. package/dist/types/Radio/context.d.ts +19 -0
  455. package/dist/types/Radio/index.d.cts +7 -0
  456. package/dist/types/Radio/index.d.ts +7 -0
  457. package/dist/types/Radio/type.d.cts +53 -0
  458. package/dist/types/Radio/type.d.ts +53 -0
  459. package/dist/types/Row/Row.d.cts +8 -0
  460. package/dist/types/Row/Row.d.ts +8 -0
  461. package/dist/types/Row/index.d.cts +5 -0
  462. package/dist/types/Row/index.d.ts +5 -0
  463. package/dist/types/Row/type.d.cts +20 -0
  464. package/dist/types/Row/type.d.ts +20 -0
  465. package/dist/types/Scrollbar/Scrollbar.d.cts +3 -0
  466. package/dist/types/Scrollbar/Scrollbar.d.ts +3 -0
  467. package/dist/types/Scrollbar/index.d.cts +5 -0
  468. package/dist/types/Scrollbar/index.d.ts +5 -0
  469. package/dist/types/Scrollbar/type.d.cts +60 -0
  470. package/dist/types/Scrollbar/type.d.ts +60 -0
  471. package/dist/types/Select/Select.d.cts +3 -0
  472. package/dist/types/Select/Select.d.ts +3 -0
  473. package/dist/types/Select/index.d.cts +5 -0
  474. package/dist/types/Select/index.d.ts +5 -0
  475. package/dist/types/Select/type.d.cts +91 -0
  476. package/dist/types/Select/type.d.ts +91 -0
  477. package/dist/types/Sidebar/Sidebar.d.cts +3 -0
  478. package/dist/types/Sidebar/Sidebar.d.ts +3 -0
  479. package/dist/types/Sidebar/index.d.cts +5 -0
  480. package/dist/types/Sidebar/index.d.ts +5 -0
  481. package/dist/types/Sidebar/type.d.cts +54 -0
  482. package/dist/types/Sidebar/type.d.ts +54 -0
  483. package/dist/types/Slider/Slider.d.cts +3 -0
  484. package/dist/types/Slider/Slider.d.ts +3 -0
  485. package/dist/types/Slider/index.d.cts +5 -0
  486. package/dist/types/Slider/index.d.ts +5 -0
  487. package/dist/types/Slider/type.d.cts +47 -0
  488. package/dist/types/Slider/type.d.ts +47 -0
  489. package/dist/types/Space/Space.d.cts +3 -0
  490. package/dist/types/Space/Space.d.ts +3 -0
  491. package/dist/types/Space/index.d.cts +5 -0
  492. package/dist/types/Space/index.d.ts +5 -0
  493. package/dist/types/Space/type.d.cts +28 -0
  494. package/dist/types/Space/type.d.ts +28 -0
  495. package/dist/types/Switch/Switch.d.cts +3 -0
  496. package/dist/types/Switch/Switch.d.ts +3 -0
  497. package/dist/types/Switch/index.d.cts +5 -0
  498. package/dist/types/Switch/index.d.ts +5 -0
  499. package/dist/types/Switch/type.d.cts +28 -0
  500. package/dist/types/Switch/type.d.ts +28 -0
  501. package/dist/types/Table/Table.d.cts +8 -0
  502. package/dist/types/Table/Table.d.ts +8 -0
  503. package/dist/types/Table/index.d.cts +8 -0
  504. package/dist/types/Table/index.d.ts +8 -0
  505. package/dist/types/Table/type.d.cts +135 -0
  506. package/dist/types/Table/type.d.ts +135 -0
  507. package/dist/types/Tabs/Tabs.d.cts +3 -0
  508. package/dist/types/Tabs/Tabs.d.ts +3 -0
  509. package/dist/types/Tabs/index.d.cts +5 -0
  510. package/dist/types/Tabs/index.d.ts +5 -0
  511. package/dist/types/Tabs/type.d.cts +45 -0
  512. package/dist/types/Tabs/type.d.ts +45 -0
  513. package/dist/types/Tag/Tag.d.cts +3 -0
  514. package/dist/types/Tag/Tag.d.ts +3 -0
  515. package/dist/types/Tag/index.d.cts +5 -0
  516. package/dist/types/Tag/index.d.ts +5 -0
  517. package/dist/types/Tag/type.d.cts +24 -0
  518. package/dist/types/Tag/type.d.ts +24 -0
  519. package/dist/types/Textarea/Textarea.d.cts +3 -0
  520. package/dist/types/Textarea/Textarea.d.ts +3 -0
  521. package/dist/types/Textarea/index.d.cts +5 -0
  522. package/dist/types/Textarea/index.d.ts +5 -0
  523. package/dist/types/Textarea/type.d.cts +32 -0
  524. package/dist/types/Textarea/type.d.ts +32 -0
  525. package/dist/types/TimePicker/TimePicker.d.cts +3 -0
  526. package/dist/types/TimePicker/TimePicker.d.ts +3 -0
  527. package/dist/types/TimePicker/index.d.cts +5 -0
  528. package/dist/types/TimePicker/index.d.ts +5 -0
  529. package/dist/types/TimePicker/type.d.cts +55 -0
  530. package/dist/types/TimePicker/type.d.ts +55 -0
  531. package/dist/types/Timeline/Timeline.d.cts +3 -0
  532. package/dist/types/Timeline/Timeline.d.ts +3 -0
  533. package/dist/types/Timeline/index.d.cts +5 -0
  534. package/dist/types/Timeline/index.d.ts +5 -0
  535. package/dist/types/Timeline/type.d.cts +49 -0
  536. package/dist/types/Timeline/type.d.ts +49 -0
  537. package/dist/types/Tooltip/Tooltip.d.cts +3 -0
  538. package/dist/types/Tooltip/Tooltip.d.ts +3 -0
  539. package/dist/types/Tooltip/index.d.cts +5 -0
  540. package/dist/types/Tooltip/index.d.ts +5 -0
  541. package/dist/types/Tooltip/type.d.cts +40 -0
  542. package/dist/types/Tooltip/type.d.ts +40 -0
  543. package/dist/types/Transition/Transition.d.cts +6 -0
  544. package/dist/types/Transition/Transition.d.ts +6 -0
  545. package/dist/types/Transition/index.d.cts +8 -0
  546. package/dist/types/Transition/index.d.ts +8 -0
  547. package/dist/types/Transition/type.d.cts +22 -0
  548. package/dist/types/Transition/type.d.ts +22 -0
  549. package/dist/types/_shared/client.d.cts +9 -0
  550. package/dist/types/_shared/client.d.ts +9 -0
  551. package/dist/types/_shared/date-picker.d.cts +17 -0
  552. package/dist/types/_shared/date-picker.d.ts +17 -0
  553. package/dist/types/_shared/date.d.cts +55 -0
  554. package/dist/types/_shared/date.d.ts +55 -0
  555. package/dist/types/_shared/dialog-shell.d.cts +59 -0
  556. package/dist/types/_shared/dialog-shell.d.ts +59 -0
  557. package/dist/types/_shared/dialog.d.cts +20 -0
  558. package/dist/types/_shared/dialog.d.ts +20 -0
  559. package/dist/types/_shared/effect.d.cts +8 -0
  560. package/dist/types/_shared/effect.d.ts +8 -0
  561. package/dist/types/_shared/floating.d.cts +88 -0
  562. package/dist/types/_shared/floating.d.ts +88 -0
  563. package/dist/types/_shared/focus.d.cts +33 -0
  564. package/dist/types/_shared/focus.d.ts +33 -0
  565. package/dist/types/_shared/icon.d.cts +15 -0
  566. package/dist/types/_shared/icon.d.ts +15 -0
  567. package/dist/types/_shared/id.d.cts +10 -0
  568. package/dist/types/_shared/id.d.ts +10 -0
  569. package/dist/types/_shared/number.d.cts +22 -0
  570. package/dist/types/_shared/number.d.ts +22 -0
  571. package/dist/types/_shared/refs.d.cts +18 -0
  572. package/dist/types/_shared/refs.d.ts +18 -0
  573. package/dist/types/_shared/state.d.cts +15 -0
  574. package/dist/types/_shared/state.d.ts +15 -0
  575. package/dist/types/_shared/time-constraints.d.cts +31 -0
  576. package/dist/types/_shared/time-constraints.d.ts +31 -0
  577. package/dist/types/_shared/time-wheel.d.cts +34 -0
  578. package/dist/types/_shared/time-wheel.d.ts +34 -0
  579. package/dist/types/_vars.d.cts +7 -0
  580. package/dist/types/_vars.d.ts +7 -0
  581. package/dist/types/global.d.cts +86 -0
  582. package/dist/types/global.d.ts +86 -0
  583. package/dist/types/index.d.cts +42 -0
  584. package/dist/types/index.d.ts +42 -0
  585. package/dist/types/register.d.cts +1 -0
  586. package/dist/types/register.d.ts +1 -0
  587. package/dist/types/registry.d.cts +66 -0
  588. package/dist/types/registry.d.ts +66 -0
  589. package/dist/types/style.d.cts +7 -0
  590. package/dist/types/style.d.ts +7 -0
  591. package/package.json +165 -0
package/README.md ADDED
@@ -0,0 +1,137 @@
1
+ # @vavt/react-ui
2
+
3
+ 面向 React 18/19 的 TypeScript 组件库,提供 ESM、CommonJS、NodeNext 兼容声明文件以及全量/按组件 CSS 入口。
4
+
5
+ ## 安装
6
+
7
+ ```bash
8
+ npm install @vavt/react-ui
9
+ ```
10
+
11
+ ## 使用
12
+
13
+ ```tsx
14
+ import { VlButton, VlCard } from '@vavt/react-ui';
15
+ import '@vavt/react-ui/styles.css';
16
+
17
+ export default function Example() {
18
+ return (
19
+ <VlCard>
20
+ <VlButton status="primary">开始使用</VlButton>
21
+ </VlCard>
22
+ );
23
+ }
24
+ ```
25
+
26
+ 组件子路径和单组件样式也可以直接引用:
27
+
28
+ ```tsx
29
+ import { VlButton } from '@vavt/react-ui/components/Button';
30
+ import '@vavt/react-ui/base.css';
31
+ import '@vavt/react-ui/components/Button/style.css';
32
+ ```
33
+
34
+ 全量样式入口 `styles.css` 已包含基础主题与所有组件样式,因此不要再同时引入 `base.css` 或单组件 CSS。
35
+
36
+ ## Next.js SSR / App Router
37
+
38
+ 发布后的 ESM 根入口和组件子路径都声明为 Client Component,Next.js App Router 可以直接从 Server Component 导入并继续获得服务端预渲染。若项目还通过源码别名或旧缓存消费,也可以用一个显式 `'use client'` wrapper 固定边界:
39
+
40
+ ```tsx
41
+ // components/ui.ts
42
+ 'use client';
43
+
44
+ export { VlButton, VlModal, VlSelect } from '@vavt/react-ui';
45
+ ```
46
+
47
+ 全局样式放在 `app/layout.tsx` 或其他全局入口中:
48
+
49
+ ```tsx
50
+ import '@vavt/react-ui/styles.css';
51
+ ```
52
+
53
+ Announcement、Dropdown、Tooltip 等可由受控状态打开的浮层会在 hydration 首轮保持结构一致,并在客户端挂载后迁移到 `document.body`;Modal、Drawer 和 MessageBox 的 Portal 内容仍属于客户端增强内容。命令式 `VlMessageBox.alert/confirm` 只可在浏览器事件或客户端组件中调用;服务端导入 `@vavt/react-ui/register` 不会再修改 Node 进程级 `globalThis`,如需注册请显式调用 `registerGlobalComponents(target)`。
54
+
55
+ ## 自动按需导入
56
+
57
+ Vite 项目可安装独立的构建插件:
58
+
59
+ ```bash
60
+ npm install -D @vavt/component-resolver
61
+ ```
62
+
63
+ ```ts
64
+ // vite.config.ts
65
+ import react from '@vitejs/plugin-react';
66
+ import Components from '@vavt/component-resolver';
67
+
68
+ export default {
69
+ plugins: [react(), Components()]
70
+ };
71
+ ```
72
+
73
+ 配置后可以继续使用根入口命名导入:
74
+
75
+ ```tsx
76
+ import { VlButton, VlCard } from '@vavt/react-ui';
77
+ ```
78
+
79
+ 构建时会转换为 Button、Card 的组件子路径,并注入各自的样式入口 `components/Button/style`,不会加载其他组件样式。此时不要再手动导入全量 `styles.css`。
80
+
81
+ 样式入口负责基础样式和跨组件样式依赖,因此不需要另外导入 `base.css`。例如 Table 内部会渲染 Scrollbar 与 Tooltip,只引用 Table 就会自动带上它们的样式;同页再单独使用 Tooltip 时,打包器按模块地址去重,不会产生重复规则。
82
+
83
+ 插件也支持直接使用未导入的 `<VlButton />`;该模式需要在 `tsconfig.json` 的原有 `types` 中追加 `@vavt/react-ui/global`。`@vavt/component-resolver` 是消费端可选工具,不是本包的依赖。
84
+
85
+ ## 受控 API 迁移
86
+
87
+ 当前版本统一使用 React 语义的受控属性;这是破坏性变更,旧的 Vue 风格模型属性已移除。
88
+
89
+ | 组件 | 受控属性 | 非受控初始属性 |
90
+ | -------------------------------------------------- | --------- | ---------------- |
91
+ | Input、Textarea、NumberInput、Select、Slider、Tabs | `value` | `defaultValue` |
92
+ | Checkbox、Switch | `checked` | `defaultChecked` |
93
+ | Modal、MessageBox、Drawer、Dropdown、Tooltip | `open` | `defaultOpen` |
94
+
95
+ Checkbox 数组选择使用 `VlCheckboxGroup`,其 `value/defaultValue` 为 `CheckboxValue[]`;Checkbox 的 `onChange` 返回 `(value, checked)`。Radio 使用 `VlRadioGroup` 管理单个 `RadioValue`,Radio 和 Switch 的事件也分别遵循各自组件的值语义。
96
+
97
+ ## 全局注册与类型提示
98
+
99
+ 在应用入口导入运行时注册和全量样式:
100
+
101
+ ```tsx
102
+ import '@vavt/react-ui/register';
103
+ import '@vavt/react-ui/styles.css';
104
+ ```
105
+
106
+ 在 `tsconfig.json` 的已有 `types` 中追加 `@vavt/react-ui/global`:
107
+
108
+ ```json
109
+ {
110
+ "compilerOptions": {
111
+ "types": ["vite/client", "@vavt/react-ui/global"]
112
+ }
113
+ }
114
+ ```
115
+
116
+ 现在可以直接使用全局组件,TypeScript 会同时检查组件名和 Props:
117
+
118
+ ```tsx
119
+ export default function App() {
120
+ return <VlButton status="primary">开始使用</VlButton>;
121
+ }
122
+ ```
123
+
124
+ 如果项目没有配置 `compilerOptions.types`,也可以在应用的 `.d.ts` 文件中添加:
125
+
126
+ ```ts
127
+ /// <reference types="@vavt/react-ui/global" />
128
+ ```
129
+
130
+ `registerGlobalComponents()` 也从包根入口导出,支持传入自定义对象;默认注册到 `globalThis`。全局注册会加载整个组件集合,按需场景仍建议使用组件子路径。
131
+
132
+ ## Peer dependencies
133
+
134
+ - `react ^18.2 || ^19`
135
+ - `react-dom ^18.2 || ^19`
136
+
137
+ 仓库开发说明见项目根目录 `docs/` 下的 [`Manual.md`](../../docs/Manual.md)。
@@ -0,0 +1,52 @@
1
+ import { t as e } from "./icon-Cbvuv4yF.js";
2
+ import { CircleAlert as t, CircleCheck as n, CircleX as r, Info as i, X as a } from "lucide-react";
3
+ import { forwardRef as o } from "react";
4
+ import { jsx as s, jsxs as c } from "react/jsx-runtime";
5
+ //#region components/Alert/Alert.tsx
6
+ var l = {
7
+ info: i,
8
+ success: n,
9
+ warning: t,
10
+ error: r
11
+ }, u = o((t, n) => {
12
+ let { status: r = "info", title: i, icon: o, closable: u = !1, onClose: d, className: f, role: p = "alert", children: m, ...h } = t, g = [
13
+ "vl-alert",
14
+ `is-${r}`,
15
+ i ? "has-title" : "is-content-only",
16
+ f || ""
17
+ ].filter(Boolean).join(" "), _ = o === void 0 ? l[r] : o, v = (e) => {
18
+ d?.(e);
19
+ };
20
+ return /* @__PURE__ */ c("div", {
21
+ ref: n,
22
+ className: g,
23
+ role: p,
24
+ ...h,
25
+ children: [
26
+ _ ? e(_, "vl-alert__icon") : null,
27
+ /* @__PURE__ */ c("div", {
28
+ className: "vl-alert__body",
29
+ children: [i ? /* @__PURE__ */ s("div", {
30
+ className: "vl-alert__title",
31
+ children: i
32
+ }) : null, m === void 0 ? null : /* @__PURE__ */ s("div", {
33
+ className: "vl-alert__content",
34
+ children: m
35
+ })]
36
+ }),
37
+ u ? /* @__PURE__ */ s("button", {
38
+ type: "button",
39
+ className: "vl-alert__close",
40
+ "aria-label": "关闭提示",
41
+ onClick: v,
42
+ children: /* @__PURE__ */ s(a, { "aria-hidden": "true" })
43
+ }) : null
44
+ ]
45
+ });
46
+ });
47
+ u.displayName = "VlAlert";
48
+ //#endregion
49
+ //#region components/Alert/index.ts
50
+ var d = u, f = u;
51
+ //#endregion
52
+ export { d as n, f as t };
@@ -0,0 +1 @@
1
+ const e=require("./icon-DRLyKu8p.cjs");let t=require("lucide-react"),n=require("react"),r=require("react/jsx-runtime");var i={info:t.Info,success:t.CircleCheck,warning:t.CircleAlert,error:t.CircleX},a=(0,n.forwardRef)((n,a)=>{let{status:o=`info`,title:s,icon:c,closable:l=!1,onClose:u,className:d,role:f=`alert`,children:p,...m}=n,h=[`vl-alert`,`is-${o}`,s?`has-title`:`is-content-only`,d||``].filter(Boolean).join(` `),g=c===void 0?i[o]:c,_=e=>{u?.(e)};return(0,r.jsxs)(`div`,{ref:a,className:h,role:f,...m,children:[g?e.t(g,`vl-alert__icon`):null,(0,r.jsxs)(`div`,{className:`vl-alert__body`,children:[s?(0,r.jsx)(`div`,{className:`vl-alert__title`,children:s}):null,p===void 0?null:(0,r.jsx)(`div`,{className:`vl-alert__content`,children:p})]}),l?(0,r.jsx)(`button`,{type:`button`,className:`vl-alert__close`,"aria-label":`关闭提示`,onClick:_,children:(0,r.jsx)(t.X,{"aria-hidden":`true`})}):null]})});a.displayName=`VlAlert`;var o=a,s=a;Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return s}});
@@ -0,0 +1,197 @@
1
+ import { t as e } from "./effect-nifYL_rH.js";
2
+ import { n as t, t as n } from "./state-oH-YwB7_.js";
3
+ import { forwardRef as r, useCallback as i, useEffect as a, useImperativeHandle as o, useMemo as s, useRef as c, useState as l } from "react";
4
+ import { jsx as u, jsxs as d } from "react/jsx-runtime";
5
+ //#region components/Anchor/Anchor.tsx
6
+ var f = (e) => e.flatMap((e) => [e, ...e.children ? f(e.children) : []]), p = (e) => e.startsWith("#") && e.length > 1, m = (e) => {
7
+ if (!p(e)) return null;
8
+ try {
9
+ return decodeURIComponent(e.slice(1));
10
+ } catch {
11
+ return e.slice(1);
12
+ }
13
+ }, h = (e) => typeof e == "function" ? e() : e ?? null, g = (e) => e[0]?.href, _ = (e, t) => !!(t && e?.some((e) => e.href === t || _(e.children, t))), v = r((r, p) => {
14
+ let { items: v = [], title: y, activeHref: b, defaultActiveHref: x, getContainer: S, offsetTop: C = 0, scrollBehavior: w = "smooth", className: T, id: E, "aria-label": D = "锚点导航", onChange: O, ...k } = r, A = c(null), [j, M] = l(0), [N, P] = l({
15
+ top: 0,
16
+ height: 0
17
+ }), F = s(() => f(v), [v]), I = n(r, "activeHref"), L = s(() => {
18
+ if (typeof window < "u") {
19
+ let e = window.location.hash;
20
+ if (e && F.some((t) => t.href === e)) return e;
21
+ }
22
+ return x ?? g(F);
23
+ }, [x, F]), [R, z] = t({
24
+ value: b,
25
+ defaultValue: L,
26
+ controlled: I,
27
+ onChange: (e) => {
28
+ e !== void 0 && O?.(e);
29
+ }
30
+ }), B = c(R), V = c(z), H = c(/* @__PURE__ */ new Map()), U = c(void 0);
31
+ a(() => {
32
+ B.current = R, V.current = z;
33
+ }, [R, z]);
34
+ let W = i((e) => {
35
+ !e || e === B.current || (B.current = e, V.current(e));
36
+ }, []), G = i(() => h(S), [S]), K = i(() => {
37
+ if (typeof document > "u") return;
38
+ let e = G(), t = e?.getBoundingClientRect(), n = (t?.top ?? 0) + Math.max(0, C), r = t?.bottom ?? window.innerHeight, i = F.map((e) => {
39
+ let t = m(e.href), n = t ? document.getElementById(t) : null;
40
+ return n ? {
41
+ href: e.href,
42
+ top: n.getBoundingClientRect().top
43
+ } : null;
44
+ }).filter((e) => !!e);
45
+ if (!i.length) return;
46
+ if (e ? e.scrollTop + e.clientHeight >= e.scrollHeight - 1 : window.scrollY + window.innerHeight >= document.documentElement.scrollHeight - 1) {
47
+ W(i[i.length - 1]?.href);
48
+ return;
49
+ }
50
+ let a = i.filter((e) => e.top <= n + (r - n) * .3), o = (a.length ? a[a.length - 1] : i[0])?.href;
51
+ W(o);
52
+ }, [
53
+ F,
54
+ C,
55
+ G,
56
+ W
57
+ ]);
58
+ a(() => {
59
+ if (typeof document > "u") return;
60
+ let e = G(), t = e ?? window, n = F.map((e) => {
61
+ let t = m(e.href);
62
+ return t ? document.getElementById(t) : null;
63
+ }).filter((e) => !!e);
64
+ if (!n.length) return;
65
+ if (t.addEventListener("scroll", K, { passive: !0 }), K(), typeof IntersectionObserver > "u") return () => t.removeEventListener("scroll", K);
66
+ let r = new IntersectionObserver(K, {
67
+ root: e ?? null,
68
+ rootMargin: `-${Math.max(0, C)}px 0px -70% 0px`,
69
+ threshold: [0, 1]
70
+ });
71
+ return n.forEach((e) => r.observe(e)), () => {
72
+ r.disconnect(), t.removeEventListener("scroll", K);
73
+ };
74
+ }, [
75
+ F,
76
+ C,
77
+ j,
78
+ G,
79
+ K
80
+ ]), a(() => {
81
+ if (typeof window > "u") return;
82
+ let e = () => {
83
+ let e = F.some((e) => e.href === window.location.hash) ? window.location.hash : void 0;
84
+ W(e);
85
+ };
86
+ return window.addEventListener("hashchange", e), () => window.removeEventListener("hashchange", e);
87
+ }, [F, W]), a(() => {
88
+ I || R && F.some((e) => e.href === R) || W(g(F));
89
+ }, [
90
+ R,
91
+ F,
92
+ I,
93
+ W
94
+ ]);
95
+ let q = i(() => M((e) => e + 1), []);
96
+ o(p, () => ({ refresh: q }), [q]);
97
+ let J = i(() => {
98
+ let e = A.current, t = R ? H.current.get(R) : void 0;
99
+ if (!e || !t) return;
100
+ let n = e.getBoundingClientRect(), r = t.getBoundingClientRect(), i = {
101
+ top: r.top - n.top,
102
+ height: r.height
103
+ };
104
+ P((e) => e.top === i.top && e.height === i.height ? e : i);
105
+ }, [R]), Y = i(() => {
106
+ typeof window > "u" || (U.current !== void 0 && window.cancelAnimationFrame(U.current), U.current = window.requestAnimationFrame(() => {
107
+ U.current = void 0, J();
108
+ }));
109
+ }, [J]);
110
+ e(() => {
111
+ Y();
112
+ let e = A.current;
113
+ if (!e || typeof ResizeObserver > "u") return () => {
114
+ U.current !== void 0 && window.cancelAnimationFrame(U.current);
115
+ };
116
+ let t = new ResizeObserver(Y);
117
+ return t.observe(e), () => {
118
+ t.disconnect(), U.current !== void 0 && window.cancelAnimationFrame(U.current);
119
+ };
120
+ }, [
121
+ F,
122
+ j,
123
+ Y,
124
+ y
125
+ ]);
126
+ let X = (e, t) => {
127
+ if (t.defaultPrevented || t.button !== 0 || t.metaKey || t.ctrlKey || t.shiftKey || t.altKey) return;
128
+ let n = m(e.href);
129
+ if (!n || typeof document > "u") return;
130
+ let r = document.getElementById(n);
131
+ if (!r) return;
132
+ t.preventDefault();
133
+ let i = G();
134
+ if (i) {
135
+ let e = r.getBoundingClientRect(), t = i.getBoundingClientRect(), n = Math.max(0, i.scrollTop + e.top - t.top - Math.max(0, C));
136
+ i.scrollTo({
137
+ top: n,
138
+ behavior: w
139
+ });
140
+ } else {
141
+ let e = Math.max(0, window.scrollY + r.getBoundingClientRect().top - Math.max(0, C));
142
+ window.scrollTo({
143
+ top: e,
144
+ behavior: w
145
+ });
146
+ }
147
+ window.history.pushState(null, "", e.href), W(e.href);
148
+ }, Z = (e) => /* @__PURE__ */ u("ul", {
149
+ className: "vl-anchor__list",
150
+ children: e.map((e) => {
151
+ let t = R === e.href, n = t || _(e.children, R);
152
+ return /* @__PURE__ */ d("li", {
153
+ className: `vl-anchor__item${n ? " is-active" : ""}`,
154
+ children: [/* @__PURE__ */ u("a", {
155
+ ref: (t) => {
156
+ t ? H.current.set(e.href, t) : H.current.delete(e.href), t && e.href === R && Y();
157
+ },
158
+ className: `vl-anchor__link${n ? " is-active" : ""}`,
159
+ href: e.href,
160
+ "aria-current": t ? "location" : void 0,
161
+ onClick: (t) => X(e, t),
162
+ children: e.title
163
+ }), e.children?.length ? Z(e.children) : null]
164
+ }, e.href);
165
+ })
166
+ }), Q = ["vl-anchor", T || ""].filter(Boolean).join(" ");
167
+ return /* @__PURE__ */ d("nav", {
168
+ id: E,
169
+ className: Q,
170
+ "aria-label": D,
171
+ ...k,
172
+ children: [y ? /* @__PURE__ */ u("div", {
173
+ className: "vl-anchor__title",
174
+ children: y
175
+ }) : null, /* @__PURE__ */ d("div", {
176
+ ref: A,
177
+ className: "vl-anchor__body",
178
+ children: [/* @__PURE__ */ u("span", {
179
+ className: "vl-anchor__rail",
180
+ "aria-hidden": "true",
181
+ children: /* @__PURE__ */ u("span", {
182
+ className: "vl-anchor__indicator",
183
+ style: {
184
+ top: N.top,
185
+ height: N.height
186
+ }
187
+ })
188
+ }), Z(v)]
189
+ })]
190
+ });
191
+ });
192
+ v.displayName = "VlAnchor";
193
+ //#endregion
194
+ //#region components/Anchor/index.ts
195
+ var y = v, b = v;
196
+ //#endregion
197
+ export { y as n, b as t };
@@ -0,0 +1 @@
1
+ const e=require("./effect-BpNxm_06.cjs"),t=require("./state-ZBA75xZ_.cjs");let n=require("react"),r=require("react/jsx-runtime");var i=e=>e.flatMap(e=>[e,...e.children?i(e.children):[]]),a=e=>e.startsWith(`#`)&&e.length>1,o=e=>{if(!a(e))return null;try{return decodeURIComponent(e.slice(1))}catch{return e.slice(1)}},s=e=>typeof e==`function`?e():e??null,c=e=>e[0]?.href,l=(e,t)=>!!(t&&e?.some(e=>e.href===t||l(e.children,t))),u=(0,n.forwardRef)((a,u)=>{let{items:d=[],title:f,activeHref:p,defaultActiveHref:m,getContainer:h,offsetTop:g=0,scrollBehavior:_=`smooth`,className:v,id:y,"aria-label":b=`锚点导航`,onChange:x,...S}=a,C=(0,n.useRef)(null),[w,T]=(0,n.useState)(0),[E,D]=(0,n.useState)({top:0,height:0}),O=(0,n.useMemo)(()=>i(d),[d]),k=t.t(a,`activeHref`),A=(0,n.useMemo)(()=>{if(typeof window<`u`){let e=window.location.hash;if(e&&O.some(t=>t.href===e))return e}return m??c(O)},[m,O]),[j,M]=t.n({value:p,defaultValue:A,controlled:k,onChange:e=>{e!==void 0&&x?.(e)}}),N=(0,n.useRef)(j),P=(0,n.useRef)(M),F=(0,n.useRef)(new Map),I=(0,n.useRef)(void 0);(0,n.useEffect)(()=>{N.current=j,P.current=M},[j,M]);let L=(0,n.useCallback)(e=>{!e||e===N.current||(N.current=e,P.current(e))},[]),R=(0,n.useCallback)(()=>s(h),[h]),z=(0,n.useCallback)(()=>{if(typeof document>`u`)return;let e=R(),t=e?.getBoundingClientRect(),n=(t?.top??0)+Math.max(0,g),r=t?.bottom??window.innerHeight,i=O.map(e=>{let t=o(e.href),n=t?document.getElementById(t):null;return n?{href:e.href,top:n.getBoundingClientRect().top}:null}).filter(e=>!!e);if(!i.length)return;if(e?e.scrollTop+e.clientHeight>=e.scrollHeight-1:window.scrollY+window.innerHeight>=document.documentElement.scrollHeight-1){L(i[i.length-1]?.href);return}let a=i.filter(e=>e.top<=n+(r-n)*.3),s=(a.length?a[a.length-1]:i[0])?.href;L(s)},[O,g,R,L]);(0,n.useEffect)(()=>{if(typeof document>`u`)return;let e=R(),t=e??window,n=O.map(e=>{let t=o(e.href);return t?document.getElementById(t):null}).filter(e=>!!e);if(!n.length)return;if(t.addEventListener(`scroll`,z,{passive:!0}),z(),typeof IntersectionObserver>`u`)return()=>t.removeEventListener(`scroll`,z);let r=new IntersectionObserver(z,{root:e??null,rootMargin:`-${Math.max(0,g)}px 0px -70% 0px`,threshold:[0,1]});return n.forEach(e=>r.observe(e)),()=>{r.disconnect(),t.removeEventListener(`scroll`,z)}},[O,g,w,R,z]),(0,n.useEffect)(()=>{if(typeof window>`u`)return;let e=()=>{let e=O.some(e=>e.href===window.location.hash)?window.location.hash:void 0;L(e)};return window.addEventListener(`hashchange`,e),()=>window.removeEventListener(`hashchange`,e)},[O,L]),(0,n.useEffect)(()=>{k||j&&O.some(e=>e.href===j)||L(c(O))},[j,O,k,L]);let B=(0,n.useCallback)(()=>T(e=>e+1),[]);(0,n.useImperativeHandle)(u,()=>({refresh:B}),[B]);let V=(0,n.useCallback)(()=>{let e=C.current,t=j?F.current.get(j):void 0;if(!e||!t)return;let n=e.getBoundingClientRect(),r=t.getBoundingClientRect(),i={top:r.top-n.top,height:r.height};D(e=>e.top===i.top&&e.height===i.height?e:i)},[j]),H=(0,n.useCallback)(()=>{typeof window>`u`||(I.current!==void 0&&window.cancelAnimationFrame(I.current),I.current=window.requestAnimationFrame(()=>{I.current=void 0,V()}))},[V]);e.t(()=>{H();let e=C.current;if(!e||typeof ResizeObserver>`u`)return()=>{I.current!==void 0&&window.cancelAnimationFrame(I.current)};let t=new ResizeObserver(H);return t.observe(e),()=>{t.disconnect(),I.current!==void 0&&window.cancelAnimationFrame(I.current)}},[O,w,H,f]);let U=(e,t)=>{if(t.defaultPrevented||t.button!==0||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey)return;let n=o(e.href);if(!n||typeof document>`u`)return;let r=document.getElementById(n);if(!r)return;t.preventDefault();let i=R();if(i){let e=r.getBoundingClientRect(),t=i.getBoundingClientRect(),n=Math.max(0,i.scrollTop+e.top-t.top-Math.max(0,g));i.scrollTo({top:n,behavior:_})}else{let e=Math.max(0,window.scrollY+r.getBoundingClientRect().top-Math.max(0,g));window.scrollTo({top:e,behavior:_})}window.history.pushState(null,``,e.href),L(e.href)},W=e=>(0,r.jsx)(`ul`,{className:`vl-anchor__list`,children:e.map(e=>{let t=j===e.href,n=t||l(e.children,j);return(0,r.jsxs)(`li`,{className:`vl-anchor__item${n?` is-active`:``}`,children:[(0,r.jsx)(`a`,{ref:t=>{t?F.current.set(e.href,t):F.current.delete(e.href),t&&e.href===j&&H()},className:`vl-anchor__link${n?` is-active`:``}`,href:e.href,"aria-current":t?`location`:void 0,onClick:t=>U(e,t),children:e.title}),e.children?.length?W(e.children):null]},e.href)})}),G=[`vl-anchor`,v||``].filter(Boolean).join(` `);return(0,r.jsxs)(`nav`,{id:y,className:G,"aria-label":b,...S,children:[f?(0,r.jsx)(`div`,{className:`vl-anchor__title`,children:f}):null,(0,r.jsxs)(`div`,{ref:C,className:`vl-anchor__body`,children:[(0,r.jsx)(`span`,{className:`vl-anchor__rail`,"aria-hidden":`true`,children:(0,r.jsx)(`span`,{className:`vl-anchor__indicator`,style:{top:E.top,height:E.height}})}),W(d)]})]})});u.displayName=`VlAnchor`;var d=u,f=u;Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return f}});
@@ -0,0 +1,212 @@
1
+ import { t as e } from "./icon-Cbvuv4yF.js";
2
+ import { t } from "./effect-nifYL_rH.js";
3
+ import { n, t as r } from "./state-oH-YwB7_.js";
4
+ import { t as ee } from "./client-pj_wzx28.js";
5
+ import { n as te } from "./refs-D5IYOBaf.js";
6
+ import { Megaphone as ne, X as re } from "lucide-react";
7
+ import { forwardRef as i, useCallback as a, useEffect as o, useMemo as s, useRef as c, useState as l, useSyncExternalStore as u } from "react";
8
+ import { Fragment as ie, jsx as d, jsxs as f } from "react/jsx-runtime";
9
+ import { createPortal as ae } from "react-dom";
10
+ //#region components/Announcement/host.ts
11
+ var p = /* @__PURE__ */ new Set(), m = /* @__PURE__ */ new Map(), h = null, g = 0, _ = null, v = () => p.forEach((e) => e()), y = () => {
12
+ let e = null, t = -Infinity;
13
+ return m.forEach((n, r) => {
14
+ n >= t && (e = r, t = n);
15
+ }), e;
16
+ }, oe = () => ++g, se = (e, t = 0) => {
17
+ m.delete(e), m.set(e, t);
18
+ let n = h === null ? -Infinity : m.get(h) ?? -Infinity;
19
+ (h === null || t >= n) && (h = e), v();
20
+ }, ce = (e) => {
21
+ m.delete(e), h === e && (h = y(), v());
22
+ }, le = (e) => u((e) => (p.add(e), () => p.delete(e)), () => h === e, () => !1), ue = () => typeof document > "u" ? null : ((!_ || !document.body.contains(_)) && (_ = document.createElement("div"), _.className = "vl-announcement-host", document.body.appendChild(_)), _), de = () => {
23
+ m.size > 0 || !_ || (_.remove(), _ = null);
24
+ }, fe = 280, pe = "data-vl-announcement-global", me = () => {
25
+ let [e, t] = l(!1);
26
+ return o(() => {
27
+ let e = window.matchMedia?.("(prefers-reduced-motion: reduce)");
28
+ if (!e) return;
29
+ let n = () => t(e.matches);
30
+ return n(), e.addEventListener?.("change", n), () => e.removeEventListener?.("change", n);
31
+ }, []), e;
32
+ }, b = i((i, u) => {
33
+ let { items: p, activeKey: m, defaultActiveKey: h, open: g, defaultOpen: _ = !0, autoPlay: v = !0, interval: y = 5e3, pauseOnHover: b = !0, pauseOnFocus: x = !0, status: S = "info", icon: C = ne, closable: he = !1, renderItem: w, className: T, role: ge = "region", tabIndex: _e, "aria-label": ve = "公告", "aria-live": ye, onMouseEnter: be, onMouseLeave: xe, onFocusCapture: Se, onBlurCapture: Ce, onActiveChange: we, onOpenChange: Te, onClose: Ee, onItemClick: E, ...D } = i, O = D[pe] === "true", [k] = l(oe), A = c(null), j = c(null), De = ee(), Oe = s(() => te(j, u), [u]), [M, ke] = l(null), [Ae, je] = l(0), N = le(k), Me = r(i, "activeKey"), Ne = r(i, "open"), [P, F] = n({
34
+ value: m,
35
+ defaultValue: h ?? p[0]?.key,
36
+ controlled: Me,
37
+ onChange: (e) => {
38
+ let t = p.findIndex((t) => t.key === e), n = p[t];
39
+ n && we?.(n.key, n, t);
40
+ }
41
+ }), [I, Pe] = n({
42
+ value: !!g,
43
+ defaultValue: _,
44
+ controlled: Ne,
45
+ onChange: Te
46
+ }), [Fe, L] = l(!1), [Ie, R] = l(!1), [Le, Re] = l(() => typeof document > "u" || !document.hidden), [ze, z] = l(void 0), [Be, B] = l(!1), V = c(void 0), H = c(void 0), U = c(void 0), W = me(), G = p.findIndex((e) => e.key === P), K = G >= 0 ? G : p.length ? 0 : -1, q = K >= 0 ? p[K] : void 0, J = q?.key, Y = p.findIndex((e) => e.key === ze), X = Y >= 0 ? p[Y] : void 0, Ve = !Le || b && Fe || x && Ie, Z = N && I && v && y > 0 && p.length > 1 && !Ve, He = s(() => [
47
+ "vl-announcement",
48
+ `is-${S}`,
49
+ T || ""
50
+ ].filter(Boolean).join(" "), [T, S]), Q = a((e) => {
51
+ F(e.key);
52
+ }, [F]);
53
+ o(() => {
54
+ J !== void 0 && J !== P && Q(q);
55
+ }, [
56
+ q,
57
+ P,
58
+ J,
59
+ Q
60
+ ]), o(() => {
61
+ let e = ue();
62
+ if (e) return ke(e), se(k, +!!O), () => {
63
+ ce(k), de();
64
+ };
65
+ }, [k, O]), o(() => {
66
+ if (!N || !I || !j.current || !A.current) {
67
+ je(0);
68
+ return;
69
+ }
70
+ let e = () => je(j.current?.getBoundingClientRect().height ?? 0);
71
+ if (e(), typeof ResizeObserver > "u") return;
72
+ let t = new ResizeObserver(e);
73
+ return t.observe(j.current), () => t.disconnect();
74
+ }, [
75
+ N,
76
+ I,
77
+ J,
78
+ C,
79
+ he,
80
+ w
81
+ ]), o(() => {
82
+ let e = () => Re(!document.hidden);
83
+ return document.addEventListener("visibilitychange", e), () => document.removeEventListener("visibilitychange", e);
84
+ }, []), o(() => {
85
+ if (!Z || !q) return;
86
+ let e = window.setTimeout(() => {
87
+ let e = p[(K + 1) % p.length];
88
+ e && Q(e);
89
+ }, y);
90
+ return () => window.clearTimeout(e);
91
+ }, [
92
+ q,
93
+ y,
94
+ p,
95
+ K,
96
+ Q,
97
+ Z
98
+ ]);
99
+ let $ = a(() => {
100
+ H.current !== void 0 && window.cancelAnimationFrame(H.current), U.current !== void 0 && window.clearTimeout(U.current), H.current = void 0, U.current = void 0, B(!1), z(void 0);
101
+ }, []);
102
+ t(() => {
103
+ if (J === void 0) {
104
+ V.current = void 0, $();
105
+ return;
106
+ }
107
+ let e = V.current;
108
+ if (V.current = J, e === void 0 || e === J || W) {
109
+ $();
110
+ return;
111
+ }
112
+ if (!p.some((t) => t.key === e)) {
113
+ $();
114
+ return;
115
+ }
116
+ $(), z(e), H.current = window.requestAnimationFrame(() => {
117
+ B(!0), U.current = window.setTimeout($, fe);
118
+ });
119
+ }, [
120
+ $,
121
+ p,
122
+ W,
123
+ J
124
+ ]), o(() => $, [$]);
125
+ let Ue = () => {
126
+ Pe(!1), Ee?.();
127
+ }, We = (e) => {
128
+ R(!0), Se?.(e);
129
+ }, Ge = (e) => {
130
+ e.currentTarget.contains(e.relatedTarget) || R(!1), Ce?.(e);
131
+ }, Ke = (e, t) => {
132
+ let n = w ? w(e, t) : e.content, r = (n) => {
133
+ E?.(e, t, n);
134
+ };
135
+ if (e.href) {
136
+ let t = e.rel ?? (e.target === "_blank" ? "noopener noreferrer" : void 0);
137
+ return /* @__PURE__ */ d("a", {
138
+ className: "vl-announcement__link",
139
+ href: e.href,
140
+ target: e.target,
141
+ rel: t,
142
+ onClick: r,
143
+ children: n
144
+ });
145
+ }
146
+ return E ? /* @__PURE__ */ d("button", {
147
+ type: "button",
148
+ className: "vl-announcement__link",
149
+ onClick: r,
150
+ children: n
151
+ }) : /* @__PURE__ */ d("span", {
152
+ className: "vl-announcement__text",
153
+ children: n
154
+ });
155
+ };
156
+ if (!I || !q) return null;
157
+ let qe = _e ?? (v && p.length > 1 ? 0 : void 0), Je = /* @__PURE__ */ f("div", {
158
+ ref: Oe,
159
+ className: He,
160
+ role: ge,
161
+ tabIndex: qe,
162
+ "aria-label": ve,
163
+ onMouseEnter: (e) => {
164
+ L(!0), be?.(e);
165
+ },
166
+ onMouseLeave: (e) => {
167
+ L(!1), xe?.(e);
168
+ },
169
+ onFocusCapture: We,
170
+ onBlurCapture: Ge,
171
+ ...D,
172
+ children: [
173
+ C ? e(C, "vl-announcement__icon") : null,
174
+ /* @__PURE__ */ d("div", {
175
+ className: "vl-announcement__viewport",
176
+ "aria-live": ye ?? (Z && !Me ? "off" : "polite"),
177
+ "aria-atomic": "true",
178
+ children: /* @__PURE__ */ f("div", {
179
+ className: ["vl-announcement__track", Be ? "is-animating" : ""].filter(Boolean).join(" "),
180
+ children: [X ? /* @__PURE__ */ d("div", {
181
+ className: "vl-announcement__item is-outgoing",
182
+ "aria-hidden": "true",
183
+ children: Ke(X, Y)
184
+ }) : null, /* @__PURE__ */ d("div", {
185
+ className: `vl-announcement__item${X ? " is-incoming" : ""}`,
186
+ onTransitionEnd: $,
187
+ children: Ke(q, K)
188
+ }, `${typeof q.key}-${q.key}`)]
189
+ })
190
+ }),
191
+ he ? /* @__PURE__ */ d("button", {
192
+ type: "button",
193
+ className: "vl-announcement__close",
194
+ "aria-label": "关闭公告",
195
+ onClick: Ue,
196
+ children: /* @__PURE__ */ d(re, { "aria-hidden": "true" })
197
+ }) : null
198
+ ]
199
+ });
200
+ return De ? /* @__PURE__ */ f(ie, { children: [N ? /* @__PURE__ */ d("div", {
201
+ ref: A,
202
+ className: "vl-announcement-placeholder",
203
+ "aria-hidden": "true",
204
+ style: { blockSize: Ae ? `${Ae}px` : void 0 }
205
+ }) : null, N && M ? ae(Je, M) : null] }) : Je;
206
+ });
207
+ b.displayName = "VlAnnouncement";
208
+ //#endregion
209
+ //#region components/Announcement/index.ts
210
+ var x = b, S = b;
211
+ //#endregion
212
+ export { x as n, S as t };
@@ -0,0 +1 @@
1
+ const e=require("./icon-DRLyKu8p.cjs"),t=require("./effect-BpNxm_06.cjs"),n=require("./state-ZBA75xZ_.cjs"),r=require("./client-BkoqeUs3.cjs"),ee=require("./refs-DCqd87V8.cjs");let te=require("lucide-react"),i=require("react"),a=require("react/jsx-runtime"),ne=require("react-dom");var o=new Set,s=new Map,c=null,l=0,u=null,d=()=>o.forEach(e=>e()),f=()=>{let e=null,t=-1/0;return s.forEach((n,r)=>{n>=t&&(e=r,t=n)}),e},re=()=>++l,ie=(e,t=0)=>{s.delete(e),s.set(e,t);let n=c===null?-1/0:s.get(c)??-1/0;(c===null||t>=n)&&(c=e),d()},ae=e=>{s.delete(e),c===e&&(c=f(),d())},oe=e=>(0,i.useSyncExternalStore)(e=>(o.add(e),()=>o.delete(e)),()=>c===e,()=>!1),se=()=>typeof document>`u`?null:((!u||!document.body.contains(u))&&(u=document.createElement(`div`),u.className=`vl-announcement-host`,document.body.appendChild(u)),u),ce=()=>{s.size>0||!u||(u.remove(),u=null)},le=280,ue=`data-vl-announcement-global`,de=()=>{let[e,t]=(0,i.useState)(!1);return(0,i.useEffect)(()=>{let e=window.matchMedia?.(`(prefers-reduced-motion: reduce)`);if(!e)return;let n=()=>t(e.matches);return n(),e.addEventListener?.(`change`,n),()=>e.removeEventListener?.(`change`,n)},[]),e},p=(0,i.forwardRef)((o,s)=>{let{items:c,activeKey:l,defaultActiveKey:u,open:d,defaultOpen:f=!0,autoPlay:p=!0,interval:m=5e3,pauseOnHover:h=!0,pauseOnFocus:fe=!0,status:g=`info`,icon:_=te.Megaphone,closable:v=!1,renderItem:y,className:b,role:pe=`region`,tabIndex:me,"aria-label":he=`公告`,"aria-live":ge,onMouseEnter:_e,onMouseLeave:ve,onFocusCapture:ye,onBlurCapture:be,onActiveChange:xe,onOpenChange:Se,onClose:Ce,onItemClick:x,...S}=o,C=S[ue]===`true`,[w]=(0,i.useState)(re),T=(0,i.useRef)(null),E=(0,i.useRef)(null),we=r.t(),Te=(0,i.useMemo)(()=>ee.n(E,s),[s]),[D,Ee]=(0,i.useState)(null),[O,k]=(0,i.useState)(0),A=oe(w),j=n.t(o,`activeKey`),De=n.t(o,`open`),[M,N]=n.n({value:l,defaultValue:u??c[0]?.key,controlled:j,onChange:e=>{let t=c.findIndex(t=>t.key===e),n=c[t];n&&xe?.(n.key,n,t)}}),[P,Oe]=n.n({value:!!d,defaultValue:f,controlled:De,onChange:Se}),[ke,F]=(0,i.useState)(!1),[Ae,I]=(0,i.useState)(!1),[je,Me]=(0,i.useState)(()=>typeof document>`u`||!document.hidden),[Ne,L]=(0,i.useState)(void 0),[Pe,R]=(0,i.useState)(!1),z=(0,i.useRef)(void 0),B=(0,i.useRef)(void 0),V=(0,i.useRef)(void 0),H=de(),U=c.findIndex(e=>e.key===M),W=U>=0?U:c.length?0:-1,G=W>=0?c[W]:void 0,K=G?.key,q=c.findIndex(e=>e.key===Ne),J=q>=0?c[q]:void 0,Fe=!je||h&&ke||fe&&Ae,Y=A&&P&&p&&m>0&&c.length>1&&!Fe,Ie=(0,i.useMemo)(()=>[`vl-announcement`,`is-${g}`,b||``].filter(Boolean).join(` `),[b,g]),X=(0,i.useCallback)(e=>{N(e.key)},[N]);(0,i.useEffect)(()=>{K!==void 0&&K!==M&&X(G)},[G,M,K,X]),(0,i.useEffect)(()=>{let e=se();if(e)return Ee(e),ie(w,+!!C),()=>{ae(w),ce()}},[w,C]),(0,i.useEffect)(()=>{if(!A||!P||!E.current||!T.current){k(0);return}let e=()=>k(E.current?.getBoundingClientRect().height??0);if(e(),typeof ResizeObserver>`u`)return;let t=new ResizeObserver(e);return t.observe(E.current),()=>t.disconnect()},[A,P,K,_,v,y]),(0,i.useEffect)(()=>{let e=()=>Me(!document.hidden);return document.addEventListener(`visibilitychange`,e),()=>document.removeEventListener(`visibilitychange`,e)},[]),(0,i.useEffect)(()=>{if(!Y||!G)return;let e=window.setTimeout(()=>{let e=c[(W+1)%c.length];e&&X(e)},m);return()=>window.clearTimeout(e)},[G,m,c,W,X,Y]);let Z=(0,i.useCallback)(()=>{B.current!==void 0&&window.cancelAnimationFrame(B.current),V.current!==void 0&&window.clearTimeout(V.current),B.current=void 0,V.current=void 0,R(!1),L(void 0)},[]);t.t(()=>{if(K===void 0){z.current=void 0,Z();return}let e=z.current;if(z.current=K,e===void 0||e===K||H){Z();return}if(!c.some(t=>t.key===e)){Z();return}Z(),L(e),B.current=window.requestAnimationFrame(()=>{R(!0),V.current=window.setTimeout(Z,le)})},[Z,c,H,K]),(0,i.useEffect)(()=>Z,[Z]);let Le=()=>{Oe(!1),Ce?.()},Re=e=>{I(!0),ye?.(e)},ze=e=>{e.currentTarget.contains(e.relatedTarget)||I(!1),be?.(e)},Q=(e,t)=>{let n=y?y(e,t):e.content,r=n=>{x?.(e,t,n)};if(e.href){let t=e.rel??(e.target===`_blank`?`noopener noreferrer`:void 0);return(0,a.jsx)(`a`,{className:`vl-announcement__link`,href:e.href,target:e.target,rel:t,onClick:r,children:n})}return x?(0,a.jsx)(`button`,{type:`button`,className:`vl-announcement__link`,onClick:r,children:n}):(0,a.jsx)(`span`,{className:`vl-announcement__text`,children:n})};if(!P||!G)return null;let Be=me??(p&&c.length>1?0:void 0),$=(0,a.jsxs)(`div`,{ref:Te,className:Ie,role:pe,tabIndex:Be,"aria-label":he,onMouseEnter:e=>{F(!0),_e?.(e)},onMouseLeave:e=>{F(!1),ve?.(e)},onFocusCapture:Re,onBlurCapture:ze,...S,children:[_?e.t(_,`vl-announcement__icon`):null,(0,a.jsx)(`div`,{className:`vl-announcement__viewport`,"aria-live":ge??(Y&&!j?`off`:`polite`),"aria-atomic":`true`,children:(0,a.jsxs)(`div`,{className:[`vl-announcement__track`,Pe?`is-animating`:``].filter(Boolean).join(` `),children:[J?(0,a.jsx)(`div`,{className:`vl-announcement__item is-outgoing`,"aria-hidden":`true`,children:Q(J,q)}):null,(0,a.jsx)(`div`,{className:`vl-announcement__item${J?` is-incoming`:``}`,onTransitionEnd:Z,children:Q(G,W)},`${typeof G.key}-${G.key}`)]})}),v?(0,a.jsx)(`button`,{type:`button`,className:`vl-announcement__close`,"aria-label":`关闭公告`,onClick:Le,children:(0,a.jsx)(te.X,{"aria-hidden":`true`})}):null]});return we?(0,a.jsxs)(a.Fragment,{children:[A?(0,a.jsx)(`div`,{ref:T,className:`vl-announcement-placeholder`,"aria-hidden":`true`,style:{blockSize:O?`${O}px`:void 0}}):null,A&&D?(0,ne.createPortal)($,D):null]}):$});p.displayName=`VlAnnouncement`;var m=p,h=p;Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return h}});