@ioca/react 1.4.78 → 1.4.79

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 (425) hide show
  1. package/lib/cjs/_virtual/_rolldown/runtime.cjs +23 -0
  2. package/lib/cjs/components/affix/affix.cjs +66 -0
  3. package/lib/cjs/components/affix/affix.cjs.map +1 -0
  4. package/lib/cjs/components/affix/index.cjs +6 -0
  5. package/lib/cjs/components/affix/index.cjs.map +1 -0
  6. package/lib/cjs/components/affix/totop.cjs +25 -0
  7. package/lib/cjs/components/affix/totop.cjs.map +1 -0
  8. package/lib/cjs/components/badge/badge.cjs +24 -0
  9. package/lib/cjs/components/badge/badge.cjs.map +1 -0
  10. package/lib/cjs/components/badge/index.cjs +6 -0
  11. package/lib/cjs/components/badge/index.cjs.map +1 -0
  12. package/lib/cjs/components/button/button.cjs +64 -0
  13. package/lib/cjs/components/button/button.cjs.map +1 -0
  14. package/lib/cjs/components/button/confirm.cjs +60 -0
  15. package/lib/cjs/components/button/confirm.cjs.map +1 -0
  16. package/lib/cjs/components/button/group.cjs +26 -0
  17. package/lib/cjs/components/button/group.cjs.map +1 -0
  18. package/lib/cjs/components/button/index.cjs +6 -0
  19. package/lib/cjs/components/button/index.cjs.map +1 -0
  20. package/lib/cjs/components/button/toggle.cjs +46 -0
  21. package/lib/cjs/components/button/toggle.cjs.map +1 -0
  22. package/lib/cjs/components/card/card.cjs +33 -0
  23. package/lib/cjs/components/card/card.cjs.map +1 -0
  24. package/lib/cjs/components/card/index.cjs +6 -0
  25. package/lib/cjs/components/card/index.cjs.map +1 -0
  26. package/lib/cjs/components/checkbox/checkbox.cjs +66 -0
  27. package/lib/cjs/components/checkbox/checkbox.cjs.map +1 -0
  28. package/lib/cjs/components/checkbox/index.cjs +6 -0
  29. package/lib/cjs/components/checkbox/index.cjs.map +1 -0
  30. package/lib/cjs/components/checkbox/item.cjs +59 -0
  31. package/lib/cjs/components/checkbox/item.cjs.map +1 -0
  32. package/lib/cjs/components/collapse/collapse.cjs +84 -0
  33. package/lib/cjs/components/collapse/collapse.cjs.map +1 -0
  34. package/lib/cjs/components/collapse/index.cjs +6 -0
  35. package/lib/cjs/components/collapse/index.cjs.map +1 -0
  36. package/lib/cjs/components/collapse/item.cjs +10 -0
  37. package/lib/cjs/components/collapse/item.cjs.map +1 -0
  38. package/lib/cjs/components/datagrid/cell.cjs +39 -0
  39. package/lib/cjs/components/datagrid/cell.cjs.map +1 -0
  40. package/lib/cjs/components/datagrid/datagrid.cjs +140 -0
  41. package/lib/cjs/components/datagrid/datagrid.cjs.map +1 -0
  42. package/lib/cjs/components/datagrid/index.cjs +6 -0
  43. package/lib/cjs/components/datagrid/index.cjs.map +1 -0
  44. package/lib/cjs/components/datagrid/resize.cjs +42 -0
  45. package/lib/cjs/components/datagrid/resize.cjs.map +1 -0
  46. package/lib/cjs/components/datagrid/row.cjs +68 -0
  47. package/lib/cjs/components/datagrid/row.cjs.map +1 -0
  48. package/lib/cjs/components/datagrid/sorter.cjs +28 -0
  49. package/lib/cjs/components/datagrid/sorter.cjs.map +1 -0
  50. package/lib/cjs/components/description/description.cjs +43 -0
  51. package/lib/cjs/components/description/description.cjs.map +1 -0
  52. package/lib/cjs/components/description/index.cjs +6 -0
  53. package/lib/cjs/components/description/index.cjs.map +1 -0
  54. package/lib/cjs/components/drawer/drawer.cjs +84 -0
  55. package/lib/cjs/components/drawer/drawer.cjs.map +1 -0
  56. package/lib/cjs/components/drawer/index.cjs +6 -0
  57. package/lib/cjs/components/drawer/index.cjs.map +1 -0
  58. package/lib/cjs/components/dropdown/dropdown.cjs +38 -0
  59. package/lib/cjs/components/dropdown/dropdown.cjs.map +1 -0
  60. package/lib/cjs/components/dropdown/index.cjs +6 -0
  61. package/lib/cjs/components/dropdown/index.cjs.map +1 -0
  62. package/lib/cjs/components/dropdown/item.cjs +36 -0
  63. package/lib/cjs/components/dropdown/item.cjs.map +1 -0
  64. package/lib/cjs/components/editor/controls.cjs +89 -0
  65. package/lib/cjs/components/editor/controls.cjs.map +1 -0
  66. package/lib/cjs/components/editor/editor.cjs +91 -0
  67. package/lib/cjs/components/editor/editor.cjs.map +1 -0
  68. package/lib/cjs/components/editor/index.cjs +6 -0
  69. package/lib/cjs/components/editor/index.cjs.map +1 -0
  70. package/lib/cjs/components/flex/flex.cjs +31 -0
  71. package/lib/cjs/components/flex/flex.cjs.map +1 -0
  72. package/lib/cjs/components/flex/index.cjs +6 -0
  73. package/lib/cjs/components/flex/index.cjs.map +1 -0
  74. package/lib/cjs/components/form/context.cjs +7 -0
  75. package/lib/cjs/components/form/context.cjs.map +1 -0
  76. package/lib/cjs/components/form/field.cjs +71 -0
  77. package/lib/cjs/components/form/field.cjs.map +1 -0
  78. package/lib/cjs/components/form/form.cjs +64 -0
  79. package/lib/cjs/components/form/form.cjs.map +1 -0
  80. package/lib/cjs/components/form/index.cjs +6 -0
  81. package/lib/cjs/components/form/index.cjs.map +1 -0
  82. package/lib/cjs/components/form/useConfig.cjs +45 -0
  83. package/lib/cjs/components/form/useConfig.cjs.map +1 -0
  84. package/lib/cjs/components/form/useForm.cjs +123 -0
  85. package/lib/cjs/components/form/useForm.cjs.map +1 -0
  86. package/lib/cjs/components/icon/icon.cjs +24 -0
  87. package/lib/cjs/components/icon/icon.cjs.map +1 -0
  88. package/lib/cjs/components/icon/index.cjs +6 -0
  89. package/lib/cjs/components/icon/index.cjs.map +1 -0
  90. package/lib/cjs/components/image/image.cjs +86 -0
  91. package/lib/cjs/components/image/image.cjs.map +1 -0
  92. package/lib/cjs/components/image/index.cjs +6 -0
  93. package/lib/cjs/components/image/index.cjs.map +1 -0
  94. package/lib/cjs/components/image/list.cjs +49 -0
  95. package/lib/cjs/components/image/list.cjs.map +1 -0
  96. package/lib/cjs/components/input/container.cjs +30 -0
  97. package/lib/cjs/components/input/container.cjs.map +1 -0
  98. package/lib/cjs/components/input/index.cjs +6 -0
  99. package/lib/cjs/components/input/index.cjs.map +1 -0
  100. package/lib/cjs/components/input/input.cjs +113 -0
  101. package/lib/cjs/components/input/input.cjs.map +1 -0
  102. package/lib/cjs/components/input/number.cjs +138 -0
  103. package/lib/cjs/components/input/number.cjs.map +1 -0
  104. package/lib/cjs/components/input/range.cjs +134 -0
  105. package/lib/cjs/components/input/range.cjs.map +1 -0
  106. package/lib/cjs/components/input/textarea.cjs +61 -0
  107. package/lib/cjs/components/input/textarea.cjs.map +1 -0
  108. package/lib/cjs/components/list/index.cjs +6 -0
  109. package/lib/cjs/components/list/index.cjs.map +1 -0
  110. package/lib/cjs/components/list/item.cjs +30 -0
  111. package/lib/cjs/components/list/item.cjs.map +1 -0
  112. package/lib/cjs/components/list/list.cjs +30 -0
  113. package/lib/cjs/components/list/list.cjs.map +1 -0
  114. package/lib/cjs/components/loading/index.cjs +6 -0
  115. package/lib/cjs/components/loading/index.cjs.map +1 -0
  116. package/lib/cjs/components/loading/loading.cjs +39 -0
  117. package/lib/cjs/components/loading/loading.cjs.map +1 -0
  118. package/lib/cjs/components/message/index.cjs +6 -0
  119. package/lib/cjs/components/message/index.cjs.map +1 -0
  120. package/lib/cjs/components/message/message.cjs +197 -0
  121. package/lib/cjs/components/message/message.cjs.map +1 -0
  122. package/lib/cjs/components/modal/content.cjs +57 -0
  123. package/lib/cjs/components/modal/content.cjs.map +1 -0
  124. package/lib/cjs/components/modal/context.cjs +7 -0
  125. package/lib/cjs/components/modal/context.cjs.map +1 -0
  126. package/lib/cjs/components/modal/hookModal.cjs +28 -0
  127. package/lib/cjs/components/modal/hookModal.cjs.map +1 -0
  128. package/lib/cjs/components/modal/index.cjs +6 -0
  129. package/lib/cjs/components/modal/index.cjs.map +1 -0
  130. package/lib/cjs/components/modal/modal.cjs +117 -0
  131. package/lib/cjs/components/modal/modal.cjs.map +1 -0
  132. package/lib/cjs/components/modal/useModal.cjs +39 -0
  133. package/lib/cjs/components/modal/useModal.cjs.map +1 -0
  134. package/lib/cjs/components/pagination/index.cjs +6 -0
  135. package/lib/cjs/components/pagination/index.cjs.map +1 -0
  136. package/lib/cjs/components/pagination/page.cjs +31 -0
  137. package/lib/cjs/components/pagination/page.cjs.map +1 -0
  138. package/lib/cjs/components/pagination/pagination.cjs +86 -0
  139. package/lib/cjs/components/pagination/pagination.cjs.map +1 -0
  140. package/lib/cjs/components/picker/colors/footer.cjs +64 -0
  141. package/lib/cjs/components/picker/colors/footer.cjs.map +1 -0
  142. package/lib/cjs/components/picker/colors/handle.cjs +25 -0
  143. package/lib/cjs/components/picker/colors/handle.cjs.map +1 -0
  144. package/lib/cjs/components/picker/colors/index.cjs +81 -0
  145. package/lib/cjs/components/picker/colors/index.cjs.map +1 -0
  146. package/lib/cjs/components/picker/dates/dates.cjs +68 -0
  147. package/lib/cjs/components/picker/dates/dates.cjs.map +1 -0
  148. package/lib/cjs/components/picker/dates/index.cjs +97 -0
  149. package/lib/cjs/components/picker/dates/index.cjs.map +1 -0
  150. package/lib/cjs/components/picker/dates/panel.cjs +151 -0
  151. package/lib/cjs/components/picker/dates/panel.cjs.map +1 -0
  152. package/lib/cjs/components/picker/time/index.cjs +73 -0
  153. package/lib/cjs/components/picker/time/index.cjs.map +1 -0
  154. package/lib/cjs/components/picker/time/item.cjs +20 -0
  155. package/lib/cjs/components/picker/time/item.cjs.map +1 -0
  156. package/lib/cjs/components/picker/time/panel.cjs +144 -0
  157. package/lib/cjs/components/picker/time/panel.cjs.map +1 -0
  158. package/lib/cjs/components/popconfirm/index.cjs +6 -0
  159. package/lib/cjs/components/popconfirm/index.cjs.map +1 -0
  160. package/lib/cjs/components/popconfirm/popconfirm.cjs +86 -0
  161. package/lib/cjs/components/popconfirm/popconfirm.cjs.map +1 -0
  162. package/lib/cjs/components/popup/content.cjs +56 -0
  163. package/lib/cjs/components/popup/content.cjs.map +1 -0
  164. package/lib/cjs/components/popup/index.cjs +6 -0
  165. package/lib/cjs/components/popup/index.cjs.map +1 -0
  166. package/lib/cjs/components/popup/popup.cjs +425 -0
  167. package/lib/cjs/components/popup/popup.cjs.map +1 -0
  168. package/lib/cjs/components/progress/circle.cjs +45 -0
  169. package/lib/cjs/components/progress/circle.cjs.map +1 -0
  170. package/lib/cjs/components/progress/index.cjs +6 -0
  171. package/lib/cjs/components/progress/index.cjs.map +1 -0
  172. package/lib/cjs/components/progress/line.cjs +27 -0
  173. package/lib/cjs/components/progress/line.cjs.map +1 -0
  174. package/lib/cjs/components/progress/progress.cjs +100 -0
  175. package/lib/cjs/components/progress/progress.cjs.map +1 -0
  176. package/lib/cjs/components/radio/index.cjs +6 -0
  177. package/lib/cjs/components/radio/index.cjs.map +1 -0
  178. package/lib/cjs/components/radio/item.cjs +34 -0
  179. package/lib/cjs/components/radio/item.cjs.map +1 -0
  180. package/lib/cjs/components/radio/radio.cjs +62 -0
  181. package/lib/cjs/components/radio/radio.cjs.map +1 -0
  182. package/lib/cjs/components/resizable/index.cjs +6 -0
  183. package/lib/cjs/components/resizable/index.cjs.map +1 -0
  184. package/lib/cjs/components/resizable/resizable.cjs +81 -0
  185. package/lib/cjs/components/resizable/resizable.cjs.map +1 -0
  186. package/lib/cjs/components/river/index.cjs +6 -0
  187. package/lib/cjs/components/river/index.cjs.map +1 -0
  188. package/lib/cjs/components/river/river.cjs +116 -0
  189. package/lib/cjs/components/river/river.cjs.map +1 -0
  190. package/lib/cjs/components/select/index.cjs +6 -0
  191. package/lib/cjs/components/select/index.cjs.map +1 -0
  192. package/lib/cjs/components/select/options.cjs +76 -0
  193. package/lib/cjs/components/select/options.cjs.map +1 -0
  194. package/lib/cjs/components/select/select.cjs +155 -0
  195. package/lib/cjs/components/select/select.cjs.map +1 -0
  196. package/lib/cjs/components/step/divider.cjs +10 -0
  197. package/lib/cjs/components/step/divider.cjs.map +1 -0
  198. package/lib/cjs/components/step/index.cjs +6 -0
  199. package/lib/cjs/components/step/index.cjs.map +1 -0
  200. package/lib/cjs/components/step/item.cjs +60 -0
  201. package/lib/cjs/components/step/item.cjs.map +1 -0
  202. package/lib/cjs/components/step/step.cjs +42 -0
  203. package/lib/cjs/components/step/step.cjs.map +1 -0
  204. package/lib/cjs/components/swiper/index.cjs +6 -0
  205. package/lib/cjs/components/swiper/index.cjs.map +1 -0
  206. package/lib/cjs/components/swiper/item.cjs +39 -0
  207. package/lib/cjs/components/swiper/item.cjs.map +1 -0
  208. package/lib/cjs/components/swiper/swiper.cjs +262 -0
  209. package/lib/cjs/components/swiper/swiper.cjs.map +1 -0
  210. package/lib/cjs/components/tabs/index.cjs +6 -0
  211. package/lib/cjs/components/tabs/index.cjs.map +1 -0
  212. package/lib/cjs/components/tabs/item.cjs +10 -0
  213. package/lib/cjs/components/tabs/item.cjs.map +1 -0
  214. package/lib/cjs/components/tabs/tabs.cjs +272 -0
  215. package/lib/cjs/components/tabs/tabs.cjs.map +1 -0
  216. package/lib/cjs/components/tag/index.cjs +6 -0
  217. package/lib/cjs/components/tag/index.cjs.map +1 -0
  218. package/lib/cjs/components/tag/tag.cjs +32 -0
  219. package/lib/cjs/components/tag/tag.cjs.map +1 -0
  220. package/lib/cjs/components/text/highlight.cjs +35 -0
  221. package/lib/cjs/components/text/highlight.cjs.map +1 -0
  222. package/lib/cjs/components/text/index.cjs +6 -0
  223. package/lib/cjs/components/text/index.cjs.map +1 -0
  224. package/lib/cjs/components/text/number.cjs +32 -0
  225. package/lib/cjs/components/text/number.cjs.map +1 -0
  226. package/lib/cjs/components/text/text.cjs +39 -0
  227. package/lib/cjs/components/text/text.cjs.map +1 -0
  228. package/lib/cjs/components/text/time.cjs +24 -0
  229. package/lib/cjs/components/text/time.cjs.map +1 -0
  230. package/lib/cjs/components/tree/index.cjs +6 -0
  231. package/lib/cjs/components/tree/index.cjs.map +1 -0
  232. package/lib/cjs/components/tree/item.cjs +136 -0
  233. package/lib/cjs/components/tree/item.cjs.map +1 -0
  234. package/lib/cjs/components/tree/tree.cjs +127 -0
  235. package/lib/cjs/components/tree/tree.cjs.map +1 -0
  236. package/lib/cjs/components/upload/index.cjs +6 -0
  237. package/lib/cjs/components/upload/index.cjs.map +1 -0
  238. package/lib/cjs/components/upload/renderFile.cjs +99 -0
  239. package/lib/cjs/components/upload/renderFile.cjs.map +1 -0
  240. package/lib/cjs/components/upload/upload.cjs +165 -0
  241. package/lib/cjs/components/upload/upload.cjs.map +1 -0
  242. package/lib/cjs/components/utils/empty/index.cjs +17 -0
  243. package/lib/cjs/components/utils/empty/index.cjs.map +1 -0
  244. package/lib/cjs/components/utils/helpericon/helpericon.cjs +24 -0
  245. package/lib/cjs/components/utils/helpericon/helpericon.cjs.map +1 -0
  246. package/lib/cjs/components/utils/helpericon/index.cjs +6 -0
  247. package/lib/cjs/components/utils/helpericon/index.cjs.map +1 -0
  248. package/lib/cjs/components/video/index.cjs +6 -0
  249. package/lib/cjs/components/video/index.cjs.map +1 -0
  250. package/lib/cjs/components/video/video.cjs +237 -0
  251. package/lib/cjs/components/video/video.cjs.map +1 -0
  252. package/lib/cjs/index.cjs +83 -0
  253. package/lib/cjs/js/hooks.cjs +259 -0
  254. package/lib/cjs/js/hooks.cjs.map +1 -0
  255. package/lib/cjs/js/usePreview/content.cjs +197 -0
  256. package/lib/cjs/js/usePreview/content.cjs.map +1 -0
  257. package/lib/cjs/js/usePreview/index.cjs +39 -0
  258. package/lib/cjs/js/usePreview/index.cjs.map +1 -0
  259. package/lib/cjs/js/usePreview/renderFile.cjs +28 -0
  260. package/lib/cjs/js/usePreview/renderFile.cjs.map +1 -0
  261. package/lib/cjs/js/usePreview/type.cjs +15 -0
  262. package/lib/cjs/js/usePreview/type.cjs.map +1 -0
  263. package/lib/cjs/js/useRipple/index.cjs +45 -0
  264. package/lib/cjs/js/useRipple/index.cjs.map +1 -0
  265. package/lib/cjs/js/useTheme/index.cjs +30 -0
  266. package/lib/cjs/js/useTheme/index.cjs.map +1 -0
  267. package/lib/cjs/js/utils.cjs +284 -0
  268. package/lib/cjs/js/utils.cjs.map +1 -0
  269. package/lib/es/components/affix/affix.js +1 -1
  270. package/lib/es/components/affix/affix.js.map +1 -1
  271. package/lib/es/components/affix/totop.js +1 -1
  272. package/lib/es/components/affix/totop.js.map +1 -1
  273. package/lib/es/components/badge/badge.js.map +1 -1
  274. package/lib/es/components/button/button.js.map +1 -1
  275. package/lib/es/components/card/card.js.map +1 -1
  276. package/lib/es/components/checkbox/checkbox.js.map +1 -1
  277. package/lib/es/components/collapse/collapse.js +1 -2
  278. package/lib/es/components/collapse/collapse.js.map +1 -1
  279. package/lib/es/components/datagrid/datagrid.js.map +1 -1
  280. package/lib/es/components/description/description.js.map +1 -1
  281. package/lib/es/components/drawer/drawer.js.map +1 -1
  282. package/lib/es/components/dropdown/dropdown.js.map +1 -1
  283. package/lib/es/components/editor/controls.js +1 -7
  284. package/lib/es/components/editor/controls.js.map +1 -1
  285. package/lib/es/components/editor/editor.js.map +1 -1
  286. package/lib/es/components/flex/flex.js.map +1 -1
  287. package/lib/es/components/form/field.js +1 -1
  288. package/lib/es/components/form/form.js +1 -1
  289. package/lib/es/components/form/form.js.map +1 -1
  290. package/lib/es/components/form/useForm.js +2 -2
  291. package/lib/es/components/icon/icon.js.map +1 -1
  292. package/lib/es/components/image/image.js.map +1 -1
  293. package/lib/es/components/input/input.js +1 -2
  294. package/lib/es/components/input/input.js.map +1 -1
  295. package/lib/es/components/input/number.js +1 -3
  296. package/lib/es/components/input/number.js.map +1 -1
  297. package/lib/es/components/input/range.js +1 -3
  298. package/lib/es/components/input/range.js.map +1 -1
  299. package/lib/es/components/input/textarea.js.map +1 -1
  300. package/lib/es/components/list/list.js.map +1 -1
  301. package/lib/es/components/loading/loading.js.map +1 -1
  302. package/lib/es/components/message/message.js +2 -2
  303. package/lib/es/components/message/message.js.map +1 -1
  304. package/lib/es/components/modal/content.js.map +1 -1
  305. package/lib/es/components/modal/modal.js.map +1 -1
  306. package/lib/es/components/pagination/pagination.js +1 -3
  307. package/lib/es/components/pagination/pagination.js.map +1 -1
  308. package/lib/es/components/picker/colors/footer.js +1 -1
  309. package/lib/es/components/picker/colors/footer.js.map +1 -1
  310. package/lib/es/components/picker/colors/index.js.map +1 -1
  311. package/lib/es/components/picker/dates/index.js +2 -2
  312. package/lib/es/components/picker/dates/index.js.map +1 -1
  313. package/lib/es/components/picker/dates/panel.js +2 -3
  314. package/lib/es/components/picker/dates/panel.js.map +1 -1
  315. package/lib/es/components/picker/time/index.js +1 -1
  316. package/lib/es/components/picker/time/index.js.map +1 -1
  317. package/lib/es/components/picker/time/panel.js.map +1 -1
  318. package/lib/es/components/popconfirm/popconfirm.js +1 -1
  319. package/lib/es/components/popconfirm/popconfirm.js.map +1 -1
  320. package/lib/es/components/popup/popup.js +1 -1
  321. package/lib/es/components/popup/popup.js.map +1 -1
  322. package/lib/es/components/progress/progress.js.map +1 -1
  323. package/lib/es/components/radio/radio.js.map +1 -1
  324. package/lib/es/components/resizable/resizable.js.map +1 -1
  325. package/lib/es/components/river/river.js.map +1 -1
  326. package/lib/es/components/select/options.js +1 -2
  327. package/lib/es/components/select/options.js.map +1 -1
  328. package/lib/es/components/select/select.js +2 -2
  329. package/lib/es/components/select/select.js.map +1 -1
  330. package/lib/es/components/step/divider.js.map +1 -1
  331. package/lib/es/components/step/item.js +1 -1
  332. package/lib/es/components/step/item.js.map +1 -1
  333. package/lib/es/components/step/step.js.map +1 -1
  334. package/lib/es/components/swiper/swiper.js +1 -2
  335. package/lib/es/components/swiper/swiper.js.map +1 -1
  336. package/lib/es/components/tabs/tabs.js +1 -1
  337. package/lib/es/components/tabs/tabs.js.map +1 -1
  338. package/lib/es/components/tag/tag.js.map +1 -1
  339. package/lib/es/components/text/highlight.js +1 -1
  340. package/lib/es/components/text/text.js.map +1 -1
  341. package/lib/es/components/tree/item.js +1 -1
  342. package/lib/es/components/tree/item.js.map +1 -1
  343. package/lib/es/components/tree/tree.js.map +1 -1
  344. package/lib/es/components/upload/renderFile.js +2 -2
  345. package/lib/es/components/upload/renderFile.js.map +1 -1
  346. package/lib/es/components/upload/upload.js +2 -3
  347. package/lib/es/components/upload/upload.js.map +1 -1
  348. package/lib/es/components/utils/empty/index.js +1 -1
  349. package/lib/es/components/utils/empty/index.js.map +1 -1
  350. package/lib/es/components/utils/helpericon/helpericon.js +2 -2
  351. package/lib/es/components/utils/helpericon/helpericon.js.map +1 -1
  352. package/lib/es/components/video/video.js +2 -8
  353. package/lib/es/components/video/video.js.map +1 -1
  354. package/lib/es/js/usePreview/content.js +2 -9
  355. package/lib/es/js/usePreview/content.js.map +1 -1
  356. package/lib/es/js/usePreview/index.js.map +1 -1
  357. package/lib/es/js/usePreview/renderFile.js +1 -1
  358. package/lib/es/js/usePreview/renderFile.js.map +1 -1
  359. package/lib/es/js/useRipple/index.js.map +1 -1
  360. package/lib/es/js/utils.js +1 -1
  361. package/lib/types/components/affix/affix.js +1 -2
  362. package/lib/types/components/affix/totop.js +1 -1
  363. package/lib/types/components/badge/badge.js +0 -1
  364. package/lib/types/components/button/button.js +0 -1
  365. package/lib/types/components/card/card.js +0 -1
  366. package/lib/types/components/checkbox/checkbox.js +0 -2
  367. package/lib/types/components/collapse/collapse.js +1 -3
  368. package/lib/types/components/datagrid/datagrid.js +0 -1
  369. package/lib/types/components/description/description.js +0 -1
  370. package/lib/types/components/drawer/drawer.js +0 -1
  371. package/lib/types/components/dropdown/dropdown.js +0 -1
  372. package/lib/types/components/editor/controls.js +1 -7
  373. package/lib/types/components/editor/editor.js +0 -1
  374. package/lib/types/components/flex/flex.js +0 -1
  375. package/lib/types/components/form/field.js +1 -1
  376. package/lib/types/components/form/form.js +1 -2
  377. package/lib/types/components/form/useForm.js +2 -2
  378. package/lib/types/components/icon/icon.js +0 -1
  379. package/lib/types/components/image/image.js +0 -1
  380. package/lib/types/components/input/input.js +1 -3
  381. package/lib/types/components/input/number.js +1 -4
  382. package/lib/types/components/input/range.js +1 -4
  383. package/lib/types/components/input/textarea.js +0 -1
  384. package/lib/types/components/list/list.js +0 -1
  385. package/lib/types/components/loading/loading.js +0 -1
  386. package/lib/types/components/message/message.js +2 -3
  387. package/lib/types/components/modal/content.js +0 -1
  388. package/lib/types/components/modal/modal.js +0 -1
  389. package/lib/types/components/pagination/pagination.js +1 -4
  390. package/lib/types/components/picker/colors/footer.js +1 -1
  391. package/lib/types/components/picker/colors/index.js +0 -1
  392. package/lib/types/components/picker/dates/index.js +2 -3
  393. package/lib/types/components/picker/dates/panel.js +2 -3
  394. package/lib/types/components/picker/time/index.js +1 -1
  395. package/lib/types/components/picker/time/panel.js +0 -1
  396. package/lib/types/components/popconfirm/popconfirm.js +1 -2
  397. package/lib/types/components/popup/popup.js +1 -2
  398. package/lib/types/components/progress/progress.js +0 -2
  399. package/lib/types/components/radio/radio.js +0 -2
  400. package/lib/types/components/resizable/resizable.js +0 -1
  401. package/lib/types/components/river/river.js +0 -1
  402. package/lib/types/components/select/options.js +1 -2
  403. package/lib/types/components/select/select.js +2 -4
  404. package/lib/types/components/step/divider.js +0 -1
  405. package/lib/types/components/step/item.js +1 -1
  406. package/lib/types/components/step/step.js +0 -1
  407. package/lib/types/components/swiper/swiper.js +1 -3
  408. package/lib/types/components/tabs/tabs.js +1 -2
  409. package/lib/types/components/tag/tag.js +0 -1
  410. package/lib/types/components/text/highlight.js +1 -1
  411. package/lib/types/components/text/text.js +0 -1
  412. package/lib/types/components/tree/item.js +1 -1
  413. package/lib/types/components/tree/tree.js +0 -1
  414. package/lib/types/components/upload/renderFile.js +2 -2
  415. package/lib/types/components/upload/upload.js +2 -4
  416. package/lib/types/components/utils/empty/index.js +1 -2
  417. package/lib/types/components/utils/helpericon/helpericon.js +2 -3
  418. package/lib/types/components/video/video.js +2 -9
  419. package/lib/types/index.js +0 -1
  420. package/lib/types/js/usePreview/content.js +2 -9
  421. package/lib/types/js/usePreview/index.js +0 -1
  422. package/lib/types/js/usePreview/renderFile.js +1 -1
  423. package/lib/types/js/useRipple/index.js +0 -1
  424. package/lib/types/js/utils.js +1 -1
  425. package/package.json +6 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpericon.cjs","names":[],"sources":["../../../../../packages/components/utils/helpericon/helpericon.tsx"],"sourcesContent":["import { CloseRound } from \"@ricons/material\";\nimport classNames from \"classnames\";\nimport { uid } from \"radash\";\nimport { createElement } from \"react\";\nimport Icon from \"../../icon\";\nimport \"./index.css\";\nimport { IHelperIcon } from \"./type\";\n\nconst Helpericon = (props: IHelperIcon) => {\n\tconst {\n\t\tas = \"a\",\n\t\tactive,\n\t\tclassName,\n\t\ticon = <CloseRound />,\n\t\t...restProps\n\t} = props;\n\n\tif (!active) return <></>;\n\n\treturn createElement(\n\t\tas,\n\t\t{\n\t\t\tclassName: classNames(\"i-helpericon\", className),\n\t\t\t...restProps,\n\t\t},\n\t\t[\n\t\t\tcreateElement(Icon, {\n\t\t\t\tkey: uid(3),\n\t\t\t\ticon,\n\t\t\t}),\n\t\t]\n\t);\n};\n\nexport default Helpericon;\n"],"mappings":";;;;;;;;;;CAQA,MAAM,EACL,KAAM,KACL,QACA,WACA,OAAA,iBAAA,GAAA,kBAAA,KAAA,iBAAA,YAAA,EAAS,CAAA,EACT,GAAA,cACG;;iCAKJ,IACC;EACA,YAAA,GAAA,WAAA,SAAA,gBAAA,UAAA;EACC,GAAA;EACA,EACD,EAAA,GAAA,MAAA,eACA,cAAA,SAAA;EACC,MAAA,GAAA,qGAAA,KAAA,EAAA;EACC;EACA,CAAA,CACD,CACD"}
@@ -0,0 +1,6 @@
1
+ //#region packages/components/utils/helpericon/index.tsx
2
+ var helpericon_default = require("./helpericon.cjs").default;
3
+ //#endregion
4
+ exports.default = helpericon_default;
5
+
6
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","names":["Helpericon"],"sources":["../../../../../packages/components/utils/helpericon/index.tsx"],"sourcesContent":["import Helpericon from \"./helpericon\";\n\nexport default Helpericon;\n"],"mappings":";AAEA,IAAA,iDAAeA"}
@@ -0,0 +1,6 @@
1
+ //#region packages/components/video/index.tsx
2
+ var video_default = require("./video.cjs").default;
3
+ //#endregion
4
+ exports.default = video_default;
5
+
6
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","names":["Video"],"sources":["../../../../packages/components/video/index.tsx"],"sourcesContent":["import Video from \"./video\";\n\nexport default Video;\n"],"mappings":";AAEA,IAAA,uCAAeA"}
@@ -0,0 +1,237 @@
1
+ const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
2
+ const require_hooks = require("../../js/hooks.cjs");
3
+ const require_index = require("../button/index.cjs");
4
+ const require_index$1 = require("../icon/index.cjs");
5
+ const require_utils = require("../../js/utils.cjs");
6
+ const require_index$2 = require("../text/index.cjs");
7
+ const require_index$3 = require("../progress/index.cjs");
8
+ let classnames = require("classnames");
9
+ classnames = require_runtime.__toESM(classnames);
10
+ let _Users_iann_codes_ioca_react_node_modules__pnpm_radash_12_1_1_node_modules_radash_dist_esm_index_mjs = require("/Users/iann/codes/ioca-react/node_modules/.pnpm/radash@12.1.1/node_modules/radash/dist/esm/index.mjs");
11
+ let react = require("react");
12
+ let _ricons_material = require("@ricons/material");
13
+ let react_jsx_runtime = require("react/jsx-runtime");
14
+ //#region packages/components/video/video.tsx
15
+ const Video = (props) => {
16
+ const { ref, style, hideControls, autoplay, muted, volume = 50, height, width, useOriginControls, timeProgressProps = { barClass: "bg-blue" }, volumeProgressProps = { barClass: "bg-blue" }, className, onFullScreenChange, ...restProps } = props;
17
+ const state = require_hooks.useReactive({
18
+ playing: autoplay,
19
+ volume: muted ? 0 : volume,
20
+ volumeCache: 0,
21
+ muted,
22
+ current: 0,
23
+ duration: 0,
24
+ isFullscreen: false,
25
+ controlHidden: true,
26
+ draggingProgress: false
27
+ });
28
+ const videoRef = (0, react.useRef)(null);
29
+ const hiddenTO = (0, react.useRef)(null);
30
+ const timeUpdateListener = (e) => {
31
+ const tar = e.target;
32
+ if (tar.paused || state.draggingProgress) return;
33
+ Object.assign(state, { current: tar.currentTime });
34
+ };
35
+ const playChangeListener = (e) => {
36
+ state.playing = !e.target.paused;
37
+ };
38
+ const fsChangeListener = () => {
39
+ if (typeof document === "undefined") return;
40
+ const tar = videoRef.current?.parentElement;
41
+ if (!tar) return;
42
+ state.isFullscreen = document.fullscreenElement === tar;
43
+ };
44
+ const volumeChangeListener = (e) => {
45
+ const tar = e.target;
46
+ Object.assign(state, {
47
+ volume: tar.volume * 100,
48
+ muted: tar.volume === 0
49
+ });
50
+ };
51
+ const handlePlay = () => {
52
+ const v = videoRef.current;
53
+ if (!v) return;
54
+ v.paused ? v.play() : v.pause();
55
+ };
56
+ const handleReady = (e) => {
57
+ const tar = e.target;
58
+ Object.assign(state, {
59
+ duration: tar.duration,
60
+ current: tar.currentTime
61
+ });
62
+ tar.volume = state.volume / 100;
63
+ };
64
+ const handleMuted = () => {
65
+ const v = videoRef.current;
66
+ if (!v) return;
67
+ if (v.volume > 0) {
68
+ state.volumeCache = v.volume;
69
+ v.volume = 0;
70
+ return;
71
+ }
72
+ v.volume = state.volumeCache === 0 ? .5 : state.volumeCache;
73
+ };
74
+ const handleStop = () => {
75
+ const v = videoRef.current;
76
+ if (!v) return;
77
+ v.currentTime = 0;
78
+ v.pause();
79
+ };
80
+ const handleFullscreen = () => {
81
+ const tar = videoRef.current?.parentElement;
82
+ if (!tar) return;
83
+ state.isFullscreen ? require_utils.exitFullScreen() : require_utils.fullScreen(tar);
84
+ onFullScreenChange?.(!state.isFullscreen);
85
+ };
86
+ const handleUpdateTime = (t) => {
87
+ const v = videoRef.current;
88
+ if (!v) return;
89
+ v.currentTime = state.duration * t / 100;
90
+ };
91
+ const handleUpdateVolume = (t) => {
92
+ const v = videoRef.current;
93
+ if (!v) return;
94
+ v.volume = t / 100;
95
+ };
96
+ const showControls = !hideControls && !useOriginControls;
97
+ const clearHiddenTO = () => {
98
+ if (!hiddenTO.current) return;
99
+ clearTimeout(hiddenTO.current);
100
+ hiddenTO.current = null;
101
+ };
102
+ const setHiddenFalse = () => {
103
+ if (!showControls || !state.controlHidden) return;
104
+ state.controlHidden = false;
105
+ clearHiddenTO();
106
+ hiddenTO.current = setTimeout(() => {
107
+ state.controlHidden = true;
108
+ }, 1e3);
109
+ };
110
+ const handleDraggingProgress = (dragging) => {
111
+ state.draggingProgress = dragging;
112
+ };
113
+ const handleMouseMove = (0, _Users_iann_codes_ioca_react_node_modules__pnpm_radash_12_1_1_node_modules_radash_dist_esm_index_mjs.throttle)({ interval: 900 }, setHiddenFalse);
114
+ (0, react.useImperativeHandle)(ref, () => ({
115
+ play: () => {
116
+ const v = videoRef.current;
117
+ if (!v) return;
118
+ v.play();
119
+ },
120
+ pause: () => {
121
+ const v = videoRef.current;
122
+ if (!v) return;
123
+ v.pause();
124
+ },
125
+ stop: handleStop,
126
+ fullscreen: handleFullscreen,
127
+ getVideo: () => videoRef.current
128
+ }));
129
+ (0, react.useEffect)(() => {
130
+ if (typeof document === "undefined") return;
131
+ const v = videoRef.current;
132
+ if (!v) return;
133
+ v.addEventListener("timeupdate", timeUpdateListener);
134
+ v.addEventListener("play", playChangeListener);
135
+ v.addEventListener("pause", playChangeListener);
136
+ v.addEventListener("volumechange", volumeChangeListener);
137
+ document.addEventListener("fullscreenchange", fsChangeListener);
138
+ return () => {
139
+ clearHiddenTO();
140
+ v.removeEventListener("timeupdate", timeUpdateListener);
141
+ v.removeEventListener("play", playChangeListener);
142
+ v.removeEventListener("pause", playChangeListener);
143
+ v.removeEventListener("volumechange", volumeChangeListener);
144
+ document.removeEventListener("fullscreenchange", fsChangeListener);
145
+ };
146
+ }, []);
147
+ const currentValue = state.current / state.duration * 100;
148
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
149
+ className: (0, classnames.default)("i-video", className),
150
+ style: {
151
+ height,
152
+ width,
153
+ ...style
154
+ },
155
+ onClick: handlePlay,
156
+ onDoubleClick: () => handleFullscreen(),
157
+ onMouseMove: handleMouseMove,
158
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("video", {
159
+ ref: videoRef,
160
+ onCanPlay: handleReady,
161
+ ...restProps,
162
+ controls: useOriginControls
163
+ }), showControls && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
164
+ className: (0, classnames.default)("i-video-controls", { "i-video-controls-hidden": state.controlHidden }),
165
+ onClick: (e) => e.stopPropagation(),
166
+ children: [
167
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index.default.Toggle, {
168
+ className: "i-video-btn",
169
+ flat: true,
170
+ square: true,
171
+ after: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index$1.default, { icon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ricons_material.PauseRound, {}) }),
172
+ active: state.playing,
173
+ onClick: handlePlay,
174
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index$1.default, { icon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ricons_material.PlayArrowRound, {}) })
175
+ }),
176
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index.default, {
177
+ className: "i-video-btn",
178
+ flat: true,
179
+ square: true,
180
+ onClick: handleStop,
181
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index$1.default, { icon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ricons_material.StopRound, {}) })
182
+ }),
183
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
184
+ className: "i-video-times font-sm",
185
+ children: [
186
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index$2.default.Time, { seconds: state.current }),
187
+ " /",
188
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index$2.default.Time, { seconds: state.duration })
189
+ ]
190
+ }),
191
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index$3.default, {
192
+ ...timeProgressProps,
193
+ value: currentValue,
194
+ onChange: handleUpdateTime,
195
+ onDraggingChange: handleDraggingProgress
196
+ }),
197
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
198
+ className: "i-video-control-volume",
199
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index.default.Toggle, {
200
+ className: "i-video-btn",
201
+ flat: true,
202
+ square: true,
203
+ active: state.volume <= 0,
204
+ after: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index$1.default, {
205
+ icon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ricons_material.VolumeOffRound, {}),
206
+ style: { padding: ".125em" }
207
+ }),
208
+ onClick: handleMuted,
209
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index$1.default, { icon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ricons_material.VolumeDownRound, {}) })
210
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
211
+ className: "i-video-volume",
212
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index$3.default, {
213
+ style: { height: 100 },
214
+ vertical: true,
215
+ ...volumeProgressProps,
216
+ value: state.volume,
217
+ onChange: handleUpdateVolume
218
+ })
219
+ })]
220
+ }),
221
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index.default.Toggle, {
222
+ className: "i-video-btn",
223
+ flat: true,
224
+ square: true,
225
+ after: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index$1.default, { icon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ricons_material.FullscreenExitRound, {}) }),
226
+ active: state.isFullscreen,
227
+ onClick: () => handleFullscreen(),
228
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index$1.default, { icon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ricons_material.FullscreenRound, {}) })
229
+ })
230
+ ]
231
+ })]
232
+ });
233
+ };
234
+ //#endregion
235
+ exports.default = Video;
236
+
237
+ //# sourceMappingURL=video.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"video.cjs","names":[],"sources":["../../../../packages/components/video/video.tsx"],"sourcesContent":["import {\n\tFullscreenExitRound,\n\tFullscreenRound,\n\tPauseRound,\n\tPlayArrowRound,\n\tStopRound,\n\tVolumeDownRound,\n\tVolumeOffRound,\n} from \"@ricons/material\";\nimport classNames from \"classnames\";\nimport { throttle } from \"radash\";\nimport { useEffect, useImperativeHandle, useRef } from \"react\";\nimport { useReactive } from \"../../js/hooks\";\nimport { exitFullScreen, fullScreen } from \"../../js/utils\";\nimport Button from \"../button\";\nimport Icon from \"../icon\";\nimport Progress from \"../progress\";\nimport Text from \"../text\";\nimport \"./index.css\";\nimport { IVideo } from \"./type\";\n\nconst Video = (props: IVideo) => {\n\tconst {\n\t\tref,\n\t\tstyle,\n\t\thideControls,\n\t\tautoplay,\n\t\tmuted,\n\t\tvolume = 50,\n\t\theight,\n\t\twidth,\n\t\tuseOriginControls,\n\t\ttimeProgressProps = {\n\t\t\tbarClass: \"bg-blue\",\n\t\t},\n\t\tvolumeProgressProps = {\n\t\t\tbarClass: \"bg-blue\",\n\t\t},\n\t\tclassName,\n\t\tonFullScreenChange,\n\t\t...restProps\n\t} = props;\n\tconst state = useReactive({\n\t\tplaying: autoplay,\n\t\tvolume: muted ? 0 : volume,\n\t\tvolumeCache: 0,\n\t\tmuted,\n\t\tcurrent: 0,\n\t\tduration: 0,\n\t\tisFullscreen: false,\n\t\tcontrolHidden: true,\n\t\tdraggingProgress: false,\n\t});\n\tconst videoRef = useRef<HTMLVideoElement>(null);\n\tconst hiddenTO = useRef<any>(null);\n\n\tconst timeUpdateListener = (e) => {\n\t\tconst tar = e.target;\n\t\tif (tar.paused || state.draggingProgress) return;\n\n\t\tObject.assign(state, {\n\t\t\tcurrent: tar.currentTime,\n\t\t});\n\t};\n\n\tconst playChangeListener = (e) => {\n\t\tstate.playing = !e.target.paused;\n\t};\n\n\tconst fsChangeListener = () => {\n\t\tif (typeof document === \"undefined\") return;\n\t\tconst tar = videoRef.current?.parentElement;\n\t\tif (!tar) return;\n\n\t\tstate.isFullscreen = document.fullscreenElement === tar;\n\t};\n\n\tconst volumeChangeListener = (e) => {\n\t\tconst tar = e.target;\n\t\tObject.assign(state, {\n\t\t\tvolume: tar.volume * 100,\n\t\t\tmuted: tar.volume === 0,\n\t\t});\n\t};\n\n\tconst handlePlay = () => {\n\t\tconst v = videoRef.current;\n\t\tif (!v) return;\n\n\t\tv.paused ? v.play() : v.pause();\n\t};\n\n\tconst handleReady = (e) => {\n\t\tconst tar = e.target;\n\t\tObject.assign(state, {\n\t\t\tduration: tar.duration,\n\t\t\tcurrent: tar.currentTime,\n\t\t});\n\t\ttar.volume = state.volume / 100;\n\t};\n\n\tconst handleMuted = () => {\n\t\tconst v = videoRef.current;\n\t\tif (!v) return;\n\n\t\tif (v.volume > 0) {\n\t\t\tstate.volumeCache = v.volume;\n\t\t\tv.volume = 0;\n\t\t\treturn;\n\t\t}\n\t\tv.volume = state.volumeCache === 0 ? 0.5 : state.volumeCache;\n\t};\n\n\tconst handleStop = () => {\n\t\tconst v = videoRef.current;\n\t\tif (!v) return;\n\n\t\tv.currentTime = 0;\n\t\tv.pause();\n\t};\n\n\tconst handleFullscreen = () => {\n\t\tconst tar = videoRef.current?.parentElement;\n\t\tif (!tar) return;\n\n\t\tstate.isFullscreen ? exitFullScreen() : fullScreen(tar);\n\t\tonFullScreenChange?.(!state.isFullscreen);\n\t};\n\n\tconst handleUpdateTime = (t) => {\n\t\tconst v = videoRef.current;\n\t\tif (!v) return;\n\n\t\tv.currentTime = (state.duration * t) / 100;\n\t};\n\n\tconst handleUpdateVolume = (t) => {\n\t\tconst v = videoRef.current;\n\t\tif (!v) return;\n\n\t\tv.volume = t / 100;\n\t};\n\n\tconst showControls = !hideControls && !useOriginControls;\n\n\tconst clearHiddenTO = () => {\n\t\tif (!hiddenTO.current) return;\n\t\tclearTimeout(hiddenTO.current);\n\t\thiddenTO.current = null;\n\t};\n\n\tconst setHiddenFalse = () => {\n\t\tif (!showControls || !state.controlHidden) return;\n\t\tstate.controlHidden = false;\n\n\t\tclearHiddenTO();\n\t\thiddenTO.current = setTimeout(() => {\n\t\t\tstate.controlHidden = true;\n\t\t}, 1000);\n\t};\n\n\tconst handleDraggingProgress = (dragging) => {\n\t\tstate.draggingProgress = dragging;\n\t};\n\n\tconst handleMouseMove = throttle({ interval: 900 }, setHiddenFalse);\n\n\tuseImperativeHandle(ref, () => ({\n\t\tplay: () => {\n\t\t\tconst v = videoRef.current;\n\t\t\tif (!v) return;\n\n\t\t\tv.play();\n\t\t},\n\t\tpause: () => {\n\t\t\tconst v = videoRef.current;\n\t\t\tif (!v) return;\n\n\t\t\tv.pause();\n\t\t},\n\t\tstop: handleStop,\n\t\tfullscreen: handleFullscreen,\n\t\tgetVideo: () => videoRef.current,\n\t}));\n\n\tuseEffect(() => {\n\t\tif (typeof document === \"undefined\") return;\n\n\t\tconst v = videoRef.current;\n\t\tif (!v) return;\n\n\t\tv.addEventListener(\"timeupdate\", timeUpdateListener);\n\t\tv.addEventListener(\"play\", playChangeListener);\n\t\tv.addEventListener(\"pause\", playChangeListener);\n\t\tv.addEventListener(\"volumechange\", volumeChangeListener);\n\t\tdocument.addEventListener(\"fullscreenchange\", fsChangeListener);\n\n\t\treturn () => {\n\t\t\tclearHiddenTO();\n\t\t\tv.removeEventListener(\"timeupdate\", timeUpdateListener);\n\t\t\tv.removeEventListener(\"play\", playChangeListener);\n\t\t\tv.removeEventListener(\"pause\", playChangeListener);\n\t\t\tv.removeEventListener(\"volumechange\", volumeChangeListener);\n\t\t\tdocument.removeEventListener(\"fullscreenchange\", fsChangeListener);\n\t\t};\n\t}, []);\n\n\tconst currentValue = (state.current / state.duration) * 100;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\"i-video\", className)}\n\t\t\tstyle={{ height, width, ...style }}\n\t\t\tonClick={handlePlay}\n\t\t\tonDoubleClick={() => handleFullscreen()}\n\t\t\tonMouseMove={handleMouseMove}\n\t\t>\n\t\t\t<video\n\t\t\t\tref={videoRef}\n\t\t\t\tonCanPlay={handleReady}\n\t\t\t\t{...restProps}\n\t\t\t\tcontrols={useOriginControls}\n\t\t\t/>\n\n\t\t\t{showControls && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={classNames(\"i-video-controls\", {\n\t\t\t\t\t\t\"i-video-controls-hidden\": state.controlHidden,\n\t\t\t\t\t})}\n\t\t\t\t\tonClick={(e) => e.stopPropagation()}\n\t\t\t\t>\n\t\t\t\t\t<Button.Toggle\n\t\t\t\t\t\tclassName='i-video-btn'\n\t\t\t\t\t\tflat\n\t\t\t\t\t\tsquare\n\t\t\t\t\t\tafter={<Icon icon={<PauseRound />} />}\n\t\t\t\t\t\tactive={state.playing}\n\t\t\t\t\t\tonClick={handlePlay}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon icon={<PlayArrowRound />} />\n\t\t\t\t\t</Button.Toggle>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName='i-video-btn'\n\t\t\t\t\t\tflat\n\t\t\t\t\t\tsquare\n\t\t\t\t\t\tonClick={handleStop}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon icon={<StopRound />} />\n\t\t\t\t\t</Button>\n\t\t\t\t\t<span className='i-video-times font-sm'>\n\t\t\t\t\t\t<Text.Time seconds={state.current} /> /\n\t\t\t\t\t\t<Text.Time seconds={state.duration} />\n\t\t\t\t\t</span>\n\t\t\t\t\t<Progress\n\t\t\t\t\t\t{...timeProgressProps}\n\t\t\t\t\t\tvalue={currentValue}\n\t\t\t\t\t\tonChange={handleUpdateTime}\n\t\t\t\t\t\tonDraggingChange={handleDraggingProgress}\n\t\t\t\t\t/>\n\n\t\t\t\t\t<div className='i-video-control-volume'>\n\t\t\t\t\t\t<Button.Toggle\n\t\t\t\t\t\t\tclassName='i-video-btn'\n\t\t\t\t\t\t\tflat\n\t\t\t\t\t\t\tsquare\n\t\t\t\t\t\t\tactive={state.volume <= 0}\n\t\t\t\t\t\t\tafter={\n\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\ticon={<VolumeOffRound />}\n\t\t\t\t\t\t\t\t\tstyle={{ padding: \".125em\" }}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonClick={handleMuted}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Icon icon={<VolumeDownRound />} />\n\t\t\t\t\t\t</Button.Toggle>\n\n\t\t\t\t\t\t<div className='i-video-volume'>\n\t\t\t\t\t\t\t<Progress\n\t\t\t\t\t\t\t\tstyle={{ height: 100 }}\n\t\t\t\t\t\t\t\tvertical\n\t\t\t\t\t\t\t\t{...volumeProgressProps}\n\t\t\t\t\t\t\t\tvalue={state.volume}\n\t\t\t\t\t\t\t\tonChange={handleUpdateVolume}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<Button.Toggle\n\t\t\t\t\t\tclassName='i-video-btn'\n\t\t\t\t\t\tflat\n\t\t\t\t\t\tsquare\n\t\t\t\t\t\tafter={<Icon icon={<FullscreenExitRound />} />}\n\t\t\t\t\t\tactive={state.isFullscreen}\n\t\t\t\t\t\tonClick={() => handleFullscreen()}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon icon={<FullscreenRound />} />\n\t\t\t\t\t</Button.Toggle>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nexport default Video;\n"],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_index = require("./components/loading/index.cjs");
3
+ const require_index$1 = require("./components/button/index.cjs");
4
+ const require_index$2 = require("./components/icon/index.cjs");
5
+ const require_index$3 = require("./components/affix/index.cjs");
6
+ const require_index$4 = require("./components/badge/index.cjs");
7
+ const require_index$5 = require("./components/card/index.cjs");
8
+ const require_index$6 = require("./components/checkbox/index.cjs");
9
+ const require_index$7 = require("./components/collapse/index.cjs");
10
+ const require_index$8 = require("./components/datagrid/index.cjs");
11
+ const require_index$9 = require("./components/description/index.cjs");
12
+ const require_index$10 = require("./components/drawer/index.cjs");
13
+ const require_index$11 = require("./components/list/index.cjs");
14
+ const require_index$12 = require("./components/popup/index.cjs");
15
+ const require_index$13 = require("./components/dropdown/index.cjs");
16
+ const require_index$14 = require("./components/editor/index.cjs");
17
+ const require_index$15 = require("./components/flex/index.cjs");
18
+ const require_index$16 = require("./components/form/index.cjs");
19
+ const require_index$17 = require("./components/text/index.cjs");
20
+ const require_index$18 = require("./components/progress/index.cjs");
21
+ const require_index$19 = require("./components/video/index.cjs");
22
+ const require_index$20 = require("./js/usePreview/index.cjs");
23
+ const require_index$21 = require("./components/image/index.cjs");
24
+ const require_index$22 = require("./components/input/index.cjs");
25
+ const require_index$23 = require("./components/message/index.cjs");
26
+ const require_index$24 = require("./components/modal/index.cjs");
27
+ const require_index$25 = require("./components/pagination/index.cjs");
28
+ const require_index$26 = require("./components/tag/index.cjs");
29
+ const require_index$27 = require("./components/select/index.cjs");
30
+ const require_index$28 = require("./components/picker/colors/index.cjs");
31
+ const require_index$29 = require("./components/picker/dates/index.cjs");
32
+ const require_index$30 = require("./components/picker/time/index.cjs");
33
+ const require_index$31 = require("./components/popconfirm/index.cjs");
34
+ const require_index$32 = require("./components/radio/index.cjs");
35
+ const require_index$33 = require("./components/resizable/index.cjs");
36
+ const require_index$34 = require("./components/river/index.cjs");
37
+ const require_index$35 = require("./components/step/index.cjs");
38
+ const require_index$36 = require("./components/swiper/index.cjs");
39
+ const require_index$37 = require("./components/tabs/index.cjs");
40
+ const require_index$38 = require("./components/tree/index.cjs");
41
+ const require_index$39 = require("./components/upload/index.cjs");
42
+ const require_index$40 = require("./js/useTheme/index.cjs");
43
+ exports.Affix = require_index$3.default;
44
+ exports.Badge = require_index$4.default;
45
+ exports.Button = require_index$1.default;
46
+ exports.Card = require_index$5.default;
47
+ exports.Checkbox = require_index$6.default;
48
+ exports.Collapse = require_index$7.default;
49
+ exports.ColorPicker = require_index$28.default;
50
+ exports.Datagrid = require_index$8.default;
51
+ exports.DatePicker = require_index$29.default;
52
+ exports.Description = require_index$9.default;
53
+ exports.Drawer = require_index$10.default;
54
+ exports.Dropdown = require_index$13.default;
55
+ exports.Editor = require_index$14.default;
56
+ exports.Flex = require_index$15.default;
57
+ exports.Form = require_index$16.default;
58
+ exports.Icon = require_index$2.default;
59
+ exports.Image = require_index$21.default;
60
+ exports.Input = require_index$22.default;
61
+ exports.List = require_index$11.default;
62
+ exports.Loading = require_index.default;
63
+ exports.Message = require_index$23.default;
64
+ exports.Modal = require_index$24.default;
65
+ exports.Pagination = require_index$25.default;
66
+ exports.Popconfirm = require_index$31.default;
67
+ exports.Popup = require_index$12.default;
68
+ exports.Progress = require_index$18.default;
69
+ exports.Radio = require_index$32.default;
70
+ exports.Resizable = require_index$33.default;
71
+ exports.River = require_index$34.default;
72
+ exports.Select = require_index$27.default;
73
+ exports.Step = require_index$35.default;
74
+ exports.Swiper = require_index$36.default;
75
+ exports.Tabs = require_index$37.default;
76
+ exports.Tag = require_index$26.default;
77
+ exports.Text = require_index$17.default;
78
+ exports.TimePicker = require_index$30.default;
79
+ exports.Tree = require_index$38.default;
80
+ exports.Upload = require_index$39.default;
81
+ exports.Video = require_index$19.default;
82
+ exports.usePreview = require_index$20.default;
83
+ exports.useTheme = require_index$40.default;
@@ -0,0 +1,259 @@
1
+ require("../_virtual/_rolldown/runtime.cjs");
2
+ let react = require("react");
3
+ //#region packages/js/hooks.ts
4
+ const MouseMoveEvents = /* @__PURE__ */ new Set();
5
+ const MouseUpEvents = /* @__PURE__ */ new Set();
6
+ const KeydownEvents = /* @__PURE__ */ new Set();
7
+ let initialized = false;
8
+ const initEvents = () => {
9
+ if (typeof document === "undefined" || initialized) return;
10
+ initialized = true;
11
+ const touchable = "ontouchend" in document;
12
+ const EVENTS = {
13
+ MOVE: touchable ? "touchmove" : "mousemove",
14
+ UP: touchable ? "touchend" : "mouseup",
15
+ KEYDOWN: "keydown"
16
+ };
17
+ document.addEventListener(EVENTS.MOVE, (e) => {
18
+ for (const listener of MouseMoveEvents.values()) listener(e);
19
+ }, { passive: false });
20
+ document.addEventListener(EVENTS.UP, (e) => {
21
+ for (const listener of MouseUpEvents.values()) listener(e);
22
+ });
23
+ document.addEventListener(EVENTS.KEYDOWN, (e) => {
24
+ for (const listener of KeydownEvents.values()) listener(e);
25
+ });
26
+ };
27
+ function initEventsOnce() {
28
+ (0, react.useEffect)(initEvents, []);
29
+ }
30
+ function useMouseMove(listener, options) {
31
+ initEventsOnce();
32
+ (0, react.useEffect)(() => {
33
+ if (options?.disabled) return;
34
+ MouseMoveEvents.add(listener);
35
+ return () => {
36
+ MouseMoveEvents.delete(listener);
37
+ };
38
+ }, []);
39
+ }
40
+ function useMouseUp(listener, options) {
41
+ initEventsOnce();
42
+ (0, react.useEffect)(() => {
43
+ if (options?.disabled) return;
44
+ MouseUpEvents.add(listener);
45
+ return () => {
46
+ MouseUpEvents.delete(listener);
47
+ };
48
+ }, []);
49
+ }
50
+ function useKeydown(listener, options) {
51
+ initEventsOnce();
52
+ (0, react.useEffect)(() => {
53
+ if (options?.disabled) return;
54
+ KeydownEvents.add(listener);
55
+ return () => {
56
+ KeydownEvents.delete(listener);
57
+ };
58
+ }, []);
59
+ }
60
+ function useReactive(initialState) {
61
+ const [, setFlag] = (0, react.useState)(0);
62
+ const scheduledRef = (0, react.useRef)(false);
63
+ const proxyCacheRef = (0, react.useRef)(/* @__PURE__ */ new WeakMap());
64
+ const rootRef = (0, react.useRef)(null);
65
+ const proxyRef = (0, react.useRef)(null);
66
+ const notify = () => {
67
+ if (scheduledRef.current) return;
68
+ scheduledRef.current = true;
69
+ const flush = () => {
70
+ scheduledRef.current = false;
71
+ setFlag((n) => n + 1);
72
+ };
73
+ if (typeof queueMicrotask !== "undefined") {
74
+ queueMicrotask(flush);
75
+ return;
76
+ }
77
+ Promise.resolve().then(flush);
78
+ };
79
+ const createProxy = (target) => {
80
+ if (!target || typeof target !== "object") return target;
81
+ if (!Array.isArray(target)) {
82
+ const proto = Object.getPrototypeOf(target);
83
+ if (!(proto === Object.prototype || proto === null)) return target;
84
+ }
85
+ const cached = proxyCacheRef.current.get(target);
86
+ if (cached) return cached;
87
+ const proxy = new Proxy(target, {
88
+ get(t, p, r) {
89
+ return createProxy(Reflect.get(t, p, r));
90
+ },
91
+ set(t, p, v, r) {
92
+ const prev = Reflect.get(t, p, r);
93
+ const ok = Reflect.set(t, p, v, r);
94
+ if (prev !== v) notify();
95
+ return ok;
96
+ },
97
+ deleteProperty(t, p) {
98
+ const had = Object.prototype.hasOwnProperty.call(t, p);
99
+ const ok = Reflect.deleteProperty(t, p);
100
+ if (had) notify();
101
+ return ok;
102
+ }
103
+ });
104
+ proxyCacheRef.current.set(target, proxy);
105
+ return proxy;
106
+ };
107
+ if (!proxyRef.current) {
108
+ rootRef.current = initialState;
109
+ proxyRef.current = createProxy(rootRef.current);
110
+ }
111
+ return proxyRef.current;
112
+ }
113
+ function useLocalStorageState(key, options) {
114
+ const { defaultValue, listenStorageChange } = options ?? {};
115
+ const getDefault = () => {
116
+ return typeof defaultValue === "function" ? defaultValue() : defaultValue;
117
+ };
118
+ const read = () => {
119
+ if (typeof window === "undefined") return getDefault();
120
+ const raw = window.localStorage.getItem(key);
121
+ if (raw === null) return getDefault();
122
+ try {
123
+ return JSON.parse(raw);
124
+ } catch (e) {
125
+ return raw;
126
+ }
127
+ };
128
+ const [state, setState] = (0, react.useState)(() => read());
129
+ const set = (value) => {
130
+ setState((prev) => {
131
+ const next = typeof value === "function" ? value(prev) : value;
132
+ if (typeof window !== "undefined") if (next === void 0) window.localStorage.removeItem(key);
133
+ else window.localStorage.setItem(key, JSON.stringify(next));
134
+ return next;
135
+ });
136
+ };
137
+ (0, react.useEffect)(() => {
138
+ if (!listenStorageChange) return;
139
+ if (typeof window === "undefined") return;
140
+ const onStorage = (e) => {
141
+ if (e.key !== key) return;
142
+ if (e.newValue === null) {
143
+ setState(getDefault());
144
+ return;
145
+ }
146
+ try {
147
+ setState(JSON.parse(e.newValue));
148
+ } catch (err) {
149
+ setState(e.newValue);
150
+ }
151
+ };
152
+ window.addEventListener("storage", onStorage);
153
+ return () => {
154
+ window.removeEventListener("storage", onStorage);
155
+ };
156
+ }, [key, listenStorageChange]);
157
+ return [state, set];
158
+ }
159
+ function useSize(target) {
160
+ const [size, setSize] = (0, react.useState)();
161
+ (0, react.useEffect)(() => {
162
+ if (typeof window === "undefined") return;
163
+ const resolveTarget = () => {
164
+ if (!target) return null;
165
+ if (typeof target === "function") return target();
166
+ if (typeof target === "object" && "current" in target) return target.current;
167
+ return target;
168
+ };
169
+ const el = resolveTarget();
170
+ if (!el) return;
171
+ const update = () => {
172
+ const rect = el.getBoundingClientRect();
173
+ setSize({
174
+ width: rect.width,
175
+ height: rect.height
176
+ });
177
+ };
178
+ update();
179
+ let ro;
180
+ if (typeof ResizeObserver !== "undefined") {
181
+ ro = new ResizeObserver(update);
182
+ ro.observe(el);
183
+ }
184
+ window.addEventListener("resize", update);
185
+ return () => {
186
+ window.removeEventListener("resize", update);
187
+ ro?.disconnect();
188
+ };
189
+ }, [target]);
190
+ return size;
191
+ }
192
+ const defaultObserver = {
193
+ observe: void 0,
194
+ unobserve: void 0,
195
+ disconnect: void 0
196
+ };
197
+ function useIntersectionObserver(configs) {
198
+ if (typeof window === "undefined") return { ...defaultObserver };
199
+ const WM = /* @__PURE__ */ new WeakMap();
200
+ const IO = new IntersectionObserver((entries) => {
201
+ entries.map((entry) => {
202
+ WM.get(entry.target)?.(entry.target, entry.isIntersecting);
203
+ });
204
+ }, configs);
205
+ function observe(target, callback) {
206
+ if (WM.get(target)) return;
207
+ WM.set(target, callback);
208
+ target && IO.observe(target);
209
+ }
210
+ function unobserve(target) {
211
+ target && IO.unobserve(target);
212
+ WM.delete(target);
213
+ }
214
+ function disconnect() {
215
+ IO.disconnect();
216
+ }
217
+ return {
218
+ observe,
219
+ unobserve,
220
+ disconnect
221
+ };
222
+ }
223
+ function useResizeObserver() {
224
+ if (typeof window === "undefined") return { ...defaultObserver };
225
+ const WM = /* @__PURE__ */ new WeakMap();
226
+ const IO = new ResizeObserver((entries) => {
227
+ entries.map((entry) => {
228
+ WM.get(entry.target)?.(entry.target);
229
+ });
230
+ });
231
+ function observe(target, callback) {
232
+ if (WM.get(target)) return;
233
+ target && IO.observe(target);
234
+ WM.set(target, callback);
235
+ }
236
+ function unobserve(target) {
237
+ target && IO.unobserve(target);
238
+ WM.delete(target);
239
+ }
240
+ function disconnect() {
241
+ IO.disconnect();
242
+ }
243
+ return {
244
+ observe,
245
+ unobserve,
246
+ disconnect
247
+ };
248
+ }
249
+ //#endregion
250
+ exports.useIntersectionObserver = useIntersectionObserver;
251
+ exports.useKeydown = useKeydown;
252
+ exports.useLocalStorageState = useLocalStorageState;
253
+ exports.useMouseMove = useMouseMove;
254
+ exports.useMouseUp = useMouseUp;
255
+ exports.useReactive = useReactive;
256
+ exports.useResizeObserver = useResizeObserver;
257
+ exports.useSize = useSize;
258
+
259
+ //# sourceMappingURL=hooks.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.cjs","names":[],"sources":["../../../packages/js/hooks.ts"],"sourcesContent":["import { DependencyList, useEffect, useMemo, useRef, useState } from \"react\";\n\ntype TMouseEvent = (e: MouseEvent) => void;\ntype TKeyboardEvent = (e: KeyboardEvent) => void;\ntype TEventOption = {\n\tdisabled?: boolean;\n};\n\nconst MouseMoveEvents = new Set<TMouseEvent>();\nconst MouseUpEvents = new Set<TMouseEvent>();\nconst KeydownEvents = new Set<TKeyboardEvent>();\n\nlet initialized = false;\n\nconst initEvents = () => {\n\tif (typeof document === \"undefined\" || initialized) return;\n\tinitialized = true;\n\n\tconst touchable = \"ontouchend\" in document;\n\tconst EVENTS: Record<string, any> = {\n\t\tMOVE: touchable ? \"touchmove\" : \"mousemove\",\n\t\tUP: touchable ? \"touchend\" : \"mouseup\",\n\t\tKEYDOWN: \"keydown\",\n\t};\n\n\tdocument.addEventListener(\n\t\tEVENTS.MOVE,\n\t\t(e) => {\n\t\t\tfor (const listener of MouseMoveEvents.values()) {\n\t\t\t\tlistener(e);\n\t\t\t}\n\t\t},\n\t\t{ passive: false },\n\t);\n\n\tdocument.addEventListener(EVENTS.UP, (e) => {\n\t\tfor (const listener of MouseUpEvents.values()) {\n\t\t\tlistener(e);\n\t\t}\n\t});\n\n\tdocument.addEventListener(EVENTS.KEYDOWN, (e) => {\n\t\tfor (const listener of KeydownEvents.values()) {\n\t\t\tlistener(e);\n\t\t}\n\t});\n};\n\nfunction initEventsOnce() {\n\tuseEffect(initEvents, []);\n}\n\nexport function useMouseMove(listener: TMouseEvent, options?: TEventOption) {\n\tinitEventsOnce();\n\n\tuseEffect(() => {\n\t\tif (options?.disabled) return;\n\n\t\tMouseMoveEvents.add(listener);\n\t\treturn () => {\n\t\t\tMouseMoveEvents.delete(listener);\n\t\t};\n\t}, []);\n}\n\nexport function useMouseUp(listener: TMouseEvent, options?: TEventOption) {\n\tinitEventsOnce();\n\n\tuseEffect(() => {\n\t\tif (options?.disabled) return;\n\n\t\tMouseUpEvents.add(listener);\n\t\treturn () => {\n\t\t\tMouseUpEvents.delete(listener);\n\t\t};\n\t}, []);\n}\n\nexport function useKeydown(listener: TKeyboardEvent, options?: TEventOption) {\n\tinitEventsOnce();\n\n\tuseEffect(() => {\n\t\tif (options?.disabled) return;\n\n\t\tKeydownEvents.add(listener);\n\t\treturn () => {\n\t\t\tKeydownEvents.delete(listener);\n\t\t};\n\t}, []);\n}\n\nexport function useCreation<T>(factory: () => T, deps: DependencyList) {\n\treturn useMemo(factory, deps);\n}\n\nexport function useReactive<T extends object>(initialState: T): T {\n\tconst [, setFlag] = useState(0);\n\tconst scheduledRef = useRef(false);\n\tconst proxyCacheRef = useRef(new WeakMap<object, any>());\n\tconst rootRef = useRef<T | null>(null);\n\tconst proxyRef = useRef<T | null>(null);\n\n\tconst notify = () => {\n\t\tif (scheduledRef.current) return;\n\t\tscheduledRef.current = true;\n\n\t\tconst flush = () => {\n\t\t\tscheduledRef.current = false;\n\t\t\tsetFlag((n) => n + 1);\n\t\t};\n\n\t\tif (typeof queueMicrotask !== \"undefined\") {\n\t\t\tqueueMicrotask(flush);\n\t\t\treturn;\n\t\t}\n\n\t\tPromise.resolve().then(flush);\n\t};\n\n\tconst createProxy = (target: any): any => {\n\t\tif (!target || typeof target !== \"object\") return target;\n\n\t\tif (!Array.isArray(target)) {\n\t\t\tconst proto = Object.getPrototypeOf(target);\n\t\t\tconst isPlainObject = proto === Object.prototype || proto === null;\n\t\t\tif (!isPlainObject) return target;\n\t\t}\n\n\t\tconst cached = proxyCacheRef.current.get(target);\n\t\tif (cached) return cached;\n\n\t\tconst proxy = new Proxy(target, {\n\t\t\tget(t, p, r) {\n\t\t\t\treturn createProxy(Reflect.get(t, p, r));\n\t\t\t},\n\t\t\tset(t, p, v, r) {\n\t\t\t\tconst prev = Reflect.get(t, p, r);\n\t\t\t\tconst ok = Reflect.set(t, p, v, r);\n\t\t\t\tif (prev !== v) notify();\n\t\t\t\treturn ok;\n\t\t\t},\n\t\t\tdeleteProperty(t, p) {\n\t\t\t\tconst had = Object.prototype.hasOwnProperty.call(t, p);\n\t\t\t\tconst ok = Reflect.deleteProperty(t, p);\n\t\t\t\tif (had) notify();\n\t\t\t\treturn ok;\n\t\t\t},\n\t\t});\n\n\t\tproxyCacheRef.current.set(target, proxy);\n\t\treturn proxy;\n\t};\n\n\tif (!proxyRef.current) {\n\t\trootRef.current = initialState;\n\t\tproxyRef.current = createProxy(rootRef.current);\n\t}\n\n\treturn proxyRef.current as T;\n}\n\ntype TSetState<T> = (\n\tvalue: T | undefined | ((prev: T | undefined) => T),\n) => void;\n\ntype TLocalStorageOptions<T> = {\n\tdefaultValue?: T | (() => T);\n\tlistenStorageChange?: boolean;\n};\n\nexport function useLocalStorageState<T>(\n\tkey: string,\n\toptions?: TLocalStorageOptions<T>,\n): [T | undefined, TSetState<T>] {\n\tconst { defaultValue, listenStorageChange } = options ?? {};\n\n\tconst getDefault = () => {\n\t\treturn typeof defaultValue === \"function\"\n\t\t\t? (defaultValue as () => T)()\n\t\t\t: defaultValue;\n\t};\n\n\tconst read = (): T | undefined => {\n\t\tif (typeof window === \"undefined\") return getDefault();\n\n\t\tconst raw = window.localStorage.getItem(key);\n\t\tif (raw === null) return getDefault();\n\n\t\ttry {\n\t\t\treturn JSON.parse(raw) as T;\n\t\t} catch (e) {\n\t\t\treturn raw as unknown as T;\n\t\t}\n\t};\n\n\tconst [state, setState] = useState<T | undefined>(() => read());\n\n\tconst set: TSetState<T> = (value) => {\n\t\tsetState((prev) => {\n\t\t\tconst next =\n\t\t\t\ttypeof value === \"function\"\n\t\t\t\t\t? (value as (prev: T | undefined) => T)(prev)\n\t\t\t\t\t: value;\n\n\t\t\tif (typeof window !== \"undefined\") {\n\t\t\t\tif (next === undefined) {\n\t\t\t\t\twindow.localStorage.removeItem(key);\n\t\t\t\t} else {\n\t\t\t\t\twindow.localStorage.setItem(key, JSON.stringify(next));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn next;\n\t\t});\n\t};\n\n\tuseEffect(() => {\n\t\tif (!listenStorageChange) return;\n\t\tif (typeof window === \"undefined\") return;\n\n\t\tconst onStorage = (e: StorageEvent) => {\n\t\t\tif (e.key !== key) return;\n\n\t\t\tif (e.newValue === null) {\n\t\t\t\tsetState(getDefault());\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tsetState(JSON.parse(e.newValue) as T);\n\t\t\t} catch (err) {\n\t\t\t\tsetState(e.newValue as unknown as T);\n\t\t\t}\n\t\t};\n\n\t\twindow.addEventListener(\"storage\", onStorage);\n\t\treturn () => {\n\t\t\twindow.removeEventListener(\"storage\", onStorage);\n\t\t};\n\t}, [key, listenStorageChange]);\n\n\treturn [state, set];\n}\n\ntype TResponsiveConfig = Record<string, number>;\n\nlet responsiveConfig: TResponsiveConfig = {};\n\nexport function configResponsive(config: TResponsiveConfig) {\n\tresponsiveConfig = config;\n}\n\nexport function useResponsive() {\n\tconst compute = () => {\n\t\tif (typeof window === \"undefined\") return {};\n\t\tconst w = window.innerWidth;\n\t\tconst result: Record<string, boolean> = {};\n\n\t\tfor (const key in responsiveConfig) {\n\t\t\tresult[key] = w >= responsiveConfig[key];\n\t\t}\n\n\t\treturn result;\n\t};\n\n\tconst [state, setState] = useState<Record<string, boolean>>(() =>\n\t\tcompute(),\n\t);\n\n\tuseEffect(() => {\n\t\tif (typeof window === \"undefined\") return;\n\n\t\tconst onResize = () => {\n\t\t\tconst next = compute();\n\t\t\tsetState((prev) => {\n\t\t\t\tconst prevKeys = Object.keys(prev);\n\t\t\t\tconst nextKeys = Object.keys(next);\n\t\t\t\tif (prevKeys.length !== nextKeys.length) return next;\n\n\t\t\t\tfor (const k of nextKeys) {\n\t\t\t\t\tif (prev[k] !== next[k]) return next;\n\t\t\t\t}\n\n\t\t\t\treturn prev;\n\t\t\t});\n\t\t};\n\n\t\tonResize();\n\t\twindow.addEventListener(\"resize\", onResize);\n\t\treturn () => {\n\t\t\twindow.removeEventListener(\"resize\", onResize);\n\t\t};\n\t}, []);\n\n\treturn state;\n}\n\ntype TSize = { width: number; height: number };\n\nexport function useSize(target: any): TSize | undefined {\n\tconst [size, setSize] = useState<TSize>();\n\n\tuseEffect(() => {\n\t\tif (typeof window === \"undefined\") return;\n\n\t\tconst resolveTarget = () => {\n\t\t\tif (!target) return null;\n\t\t\tif (typeof target === \"function\") return target();\n\t\t\tif (typeof target === \"object\" && \"current\" in target) {\n\t\t\t\treturn target.current;\n\t\t\t}\n\t\t\treturn target;\n\t\t};\n\n\t\tconst el = resolveTarget() as HTMLElement | null;\n\t\tif (!el) return;\n\n\t\tconst update = () => {\n\t\t\tconst rect = el.getBoundingClientRect();\n\t\t\tsetSize({ width: rect.width, height: rect.height });\n\t\t};\n\n\t\tupdate();\n\n\t\tlet ro: ResizeObserver | undefined;\n\t\tif (typeof ResizeObserver !== \"undefined\") {\n\t\t\tro = new ResizeObserver(update);\n\t\t\tro.observe(el);\n\t\t}\n\n\t\twindow.addEventListener(\"resize\", update);\n\t\treturn () => {\n\t\t\twindow.removeEventListener(\"resize\", update);\n\t\t\tro?.disconnect();\n\t\t};\n\t}, [target]);\n\n\treturn size;\n}\n\nconst defaultObserver = {\n\tobserve: undefined,\n\tunobserve: undefined,\n\tdisconnect: undefined,\n};\n\nexport function useIntersectionObserver(configs?: IntersectionObserverInit) {\n\tif (typeof window === \"undefined\") {\n\t\treturn {\n\t\t\t...defaultObserver,\n\t\t};\n\t}\n\n\tconst WM = new WeakMap();\n\tconst IO = new IntersectionObserver((entries) => {\n\t\tentries.map((entry) => {\n\t\t\tconst callback = WM.get(entry.target);\n\t\t\tcallback?.(entry.target, entry.isIntersecting);\n\t\t});\n\t}, configs);\n\n\tfunction observe(target: HTMLElement, callback: Function) {\n\t\tif (WM.get(target)) return;\n\t\tWM.set(target, callback);\n\t\ttarget && IO.observe(target);\n\t}\n\n\tfunction unobserve(target: HTMLElement) {\n\t\ttarget && IO.unobserve(target);\n\t\tWM.delete(target);\n\t}\n\n\tfunction disconnect() {\n\t\tIO.disconnect();\n\t}\n\n\treturn {\n\t\tobserve,\n\t\tunobserve,\n\t\tdisconnect,\n\t};\n}\n\nexport function useResizeObserver() {\n\tif (typeof window === \"undefined\") {\n\t\treturn {\n\t\t\t...defaultObserver,\n\t\t};\n\t}\n\n\tconst WM = new WeakMap();\n\tconst IO = new ResizeObserver((entries) => {\n\t\tentries.map((entry) => {\n\t\t\tconst callback = WM.get(entry.target);\n\t\t\tcallback?.(entry.target);\n\t\t});\n\t});\n\n\tfunction observe(target: HTMLElement, callback: Function) {\n\t\tif (WM.get(target)) return;\n\t\ttarget && IO.observe(target);\n\t\tWM.set(target, callback);\n\t}\n\n\tfunction unobserve(target: HTMLElement) {\n\t\ttarget && IO.unobserve(target);\n\t\tWM.delete(target);\n\t}\n\n\tfunction disconnect() {\n\t\tIO.disconnect();\n\t}\n\n\treturn {\n\t\tobserve,\n\t\tunobserve,\n\t\tdisconnect,\n\t};\n}\n"],"mappings":"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"}