@ioca/react 1.4.78 → 1.4.80

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 (606) hide show
  1. package/lib/cjs/_virtual/_rolldown/runtime.js +23 -0
  2. package/lib/cjs/components/affix/affix.js +66 -0
  3. package/lib/cjs/components/affix/affix.js.map +1 -0
  4. package/lib/cjs/components/affix/index.js +6 -0
  5. package/lib/cjs/components/affix/index.js.map +1 -0
  6. package/lib/cjs/components/affix/totop.js +25 -0
  7. package/lib/cjs/components/affix/totop.js.map +1 -0
  8. package/lib/cjs/components/badge/badge.js +24 -0
  9. package/lib/cjs/components/badge/badge.js.map +1 -0
  10. package/lib/cjs/components/badge/index.js +6 -0
  11. package/lib/cjs/components/badge/index.js.map +1 -0
  12. package/lib/cjs/components/button/button.js +64 -0
  13. package/lib/cjs/components/button/button.js.map +1 -0
  14. package/lib/cjs/components/button/confirm.js +60 -0
  15. package/lib/cjs/components/button/confirm.js.map +1 -0
  16. package/lib/cjs/components/button/group.js +26 -0
  17. package/lib/cjs/components/button/group.js.map +1 -0
  18. package/lib/cjs/components/button/index.js +6 -0
  19. package/lib/cjs/components/button/index.js.map +1 -0
  20. package/lib/cjs/components/button/toggle.js +46 -0
  21. package/lib/cjs/components/button/toggle.js.map +1 -0
  22. package/lib/cjs/components/card/card.js +33 -0
  23. package/lib/cjs/components/card/card.js.map +1 -0
  24. package/lib/cjs/components/card/index.js +6 -0
  25. package/lib/cjs/components/card/index.js.map +1 -0
  26. package/lib/cjs/components/checkbox/checkbox.js +66 -0
  27. package/lib/cjs/components/checkbox/checkbox.js.map +1 -0
  28. package/lib/cjs/components/checkbox/index.js +6 -0
  29. package/lib/cjs/components/checkbox/index.js.map +1 -0
  30. package/lib/cjs/components/checkbox/item.js +59 -0
  31. package/lib/cjs/components/checkbox/item.js.map +1 -0
  32. package/lib/cjs/components/collapse/collapse.js +84 -0
  33. package/lib/cjs/components/collapse/collapse.js.map +1 -0
  34. package/lib/cjs/components/collapse/index.js +6 -0
  35. package/lib/cjs/components/collapse/index.js.map +1 -0
  36. package/lib/cjs/components/collapse/item.js +10 -0
  37. package/lib/cjs/components/collapse/item.js.map +1 -0
  38. package/lib/cjs/components/datagrid/cell.js +39 -0
  39. package/lib/cjs/components/datagrid/cell.js.map +1 -0
  40. package/lib/cjs/components/datagrid/datagrid.js +140 -0
  41. package/lib/cjs/components/datagrid/datagrid.js.map +1 -0
  42. package/lib/cjs/components/datagrid/index.js +6 -0
  43. package/lib/cjs/components/datagrid/index.js.map +1 -0
  44. package/lib/cjs/components/datagrid/resize.js +42 -0
  45. package/lib/cjs/components/datagrid/resize.js.map +1 -0
  46. package/lib/cjs/components/datagrid/row.js +68 -0
  47. package/lib/cjs/components/datagrid/row.js.map +1 -0
  48. package/lib/cjs/components/datagrid/sorter.js +28 -0
  49. package/lib/cjs/components/datagrid/sorter.js.map +1 -0
  50. package/lib/cjs/components/description/description.js +43 -0
  51. package/lib/cjs/components/description/description.js.map +1 -0
  52. package/lib/cjs/components/description/index.js +6 -0
  53. package/lib/cjs/components/description/index.js.map +1 -0
  54. package/lib/cjs/components/drawer/drawer.js +84 -0
  55. package/lib/cjs/components/drawer/drawer.js.map +1 -0
  56. package/lib/cjs/components/drawer/index.js +6 -0
  57. package/lib/cjs/components/drawer/index.js.map +1 -0
  58. package/lib/cjs/components/dropdown/dropdown.js +38 -0
  59. package/lib/cjs/components/dropdown/dropdown.js.map +1 -0
  60. package/lib/cjs/components/dropdown/index.js +6 -0
  61. package/lib/cjs/components/dropdown/index.js.map +1 -0
  62. package/lib/cjs/components/dropdown/item.js +36 -0
  63. package/lib/cjs/components/dropdown/item.js.map +1 -0
  64. package/lib/cjs/components/editor/controls.js +89 -0
  65. package/lib/cjs/components/editor/controls.js.map +1 -0
  66. package/lib/cjs/components/editor/editor.js +91 -0
  67. package/lib/cjs/components/editor/editor.js.map +1 -0
  68. package/lib/cjs/components/editor/index.js +6 -0
  69. package/lib/cjs/components/editor/index.js.map +1 -0
  70. package/lib/cjs/components/flex/flex.js +31 -0
  71. package/lib/cjs/components/flex/flex.js.map +1 -0
  72. package/lib/cjs/components/flex/index.js +6 -0
  73. package/lib/cjs/components/flex/index.js.map +1 -0
  74. package/lib/cjs/components/form/context.js +7 -0
  75. package/lib/cjs/components/form/context.js.map +1 -0
  76. package/lib/cjs/components/form/field.js +71 -0
  77. package/lib/cjs/components/form/field.js.map +1 -0
  78. package/lib/cjs/components/form/form.js +64 -0
  79. package/lib/cjs/components/form/form.js.map +1 -0
  80. package/lib/cjs/components/form/index.js +6 -0
  81. package/lib/cjs/components/form/index.js.map +1 -0
  82. package/lib/cjs/components/form/useConfig.js +45 -0
  83. package/lib/cjs/components/form/useConfig.js.map +1 -0
  84. package/lib/cjs/components/form/useForm.js +123 -0
  85. package/lib/cjs/components/form/useForm.js.map +1 -0
  86. package/lib/cjs/components/icon/icon.js +24 -0
  87. package/lib/cjs/components/icon/icon.js.map +1 -0
  88. package/lib/cjs/components/icon/index.js +6 -0
  89. package/lib/cjs/components/icon/index.js.map +1 -0
  90. package/lib/cjs/components/image/image.js +86 -0
  91. package/lib/cjs/components/image/image.js.map +1 -0
  92. package/lib/cjs/components/image/index.js +6 -0
  93. package/lib/cjs/components/image/index.js.map +1 -0
  94. package/lib/cjs/components/image/list.js +49 -0
  95. package/lib/cjs/components/image/list.js.map +1 -0
  96. package/lib/cjs/components/input/container.js +30 -0
  97. package/lib/cjs/components/input/container.js.map +1 -0
  98. package/lib/cjs/components/input/index.js +6 -0
  99. package/lib/cjs/components/input/index.js.map +1 -0
  100. package/lib/cjs/components/input/input.js +113 -0
  101. package/lib/cjs/components/input/input.js.map +1 -0
  102. package/lib/cjs/components/input/number.js +138 -0
  103. package/lib/cjs/components/input/number.js.map +1 -0
  104. package/lib/cjs/components/input/range.js +134 -0
  105. package/lib/cjs/components/input/range.js.map +1 -0
  106. package/lib/cjs/components/input/textarea.js +61 -0
  107. package/lib/cjs/components/input/textarea.js.map +1 -0
  108. package/lib/cjs/components/list/index.js +6 -0
  109. package/lib/cjs/components/list/index.js.map +1 -0
  110. package/lib/cjs/components/list/item.js +30 -0
  111. package/lib/cjs/components/list/item.js.map +1 -0
  112. package/lib/cjs/components/list/list.js +30 -0
  113. package/lib/cjs/components/list/list.js.map +1 -0
  114. package/lib/cjs/components/loading/index.js +6 -0
  115. package/lib/cjs/components/loading/index.js.map +1 -0
  116. package/lib/cjs/components/loading/loading.js +39 -0
  117. package/lib/cjs/components/loading/loading.js.map +1 -0
  118. package/lib/cjs/components/message/index.js +6 -0
  119. package/lib/cjs/components/message/index.js.map +1 -0
  120. package/lib/cjs/components/message/message.js +197 -0
  121. package/lib/cjs/components/message/message.js.map +1 -0
  122. package/lib/cjs/components/modal/content.js +57 -0
  123. package/lib/cjs/components/modal/content.js.map +1 -0
  124. package/lib/cjs/components/modal/context.js +7 -0
  125. package/lib/cjs/components/modal/context.js.map +1 -0
  126. package/lib/cjs/components/modal/hookModal.js +28 -0
  127. package/lib/cjs/components/modal/hookModal.js.map +1 -0
  128. package/lib/cjs/components/modal/index.js +6 -0
  129. package/lib/cjs/components/modal/index.js.map +1 -0
  130. package/lib/cjs/components/modal/modal.js +117 -0
  131. package/lib/cjs/components/modal/modal.js.map +1 -0
  132. package/lib/cjs/components/modal/useModal.js +39 -0
  133. package/lib/cjs/components/modal/useModal.js.map +1 -0
  134. package/lib/cjs/components/pagination/index.js +6 -0
  135. package/lib/cjs/components/pagination/index.js.map +1 -0
  136. package/lib/cjs/components/pagination/page.js +31 -0
  137. package/lib/cjs/components/pagination/page.js.map +1 -0
  138. package/lib/cjs/components/pagination/pagination.js +86 -0
  139. package/lib/cjs/components/pagination/pagination.js.map +1 -0
  140. package/lib/cjs/components/picker/colors/footer.js +64 -0
  141. package/lib/cjs/components/picker/colors/footer.js.map +1 -0
  142. package/lib/cjs/components/picker/colors/handle.js +25 -0
  143. package/lib/cjs/components/picker/colors/handle.js.map +1 -0
  144. package/lib/cjs/components/picker/colors/index.js +81 -0
  145. package/lib/cjs/components/picker/colors/index.js.map +1 -0
  146. package/lib/cjs/components/picker/dates/dates.js +68 -0
  147. package/lib/cjs/components/picker/dates/dates.js.map +1 -0
  148. package/lib/cjs/components/picker/dates/index.js +97 -0
  149. package/lib/cjs/components/picker/dates/index.js.map +1 -0
  150. package/lib/cjs/components/picker/dates/panel.js +151 -0
  151. package/lib/cjs/components/picker/dates/panel.js.map +1 -0
  152. package/lib/cjs/components/picker/time/index.js +73 -0
  153. package/lib/cjs/components/picker/time/index.js.map +1 -0
  154. package/lib/cjs/components/picker/time/item.js +20 -0
  155. package/lib/cjs/components/picker/time/item.js.map +1 -0
  156. package/lib/cjs/components/picker/time/panel.js +144 -0
  157. package/lib/cjs/components/picker/time/panel.js.map +1 -0
  158. package/lib/cjs/components/popconfirm/index.js +6 -0
  159. package/lib/cjs/components/popconfirm/index.js.map +1 -0
  160. package/lib/cjs/components/popconfirm/popconfirm.js +86 -0
  161. package/lib/cjs/components/popconfirm/popconfirm.js.map +1 -0
  162. package/lib/cjs/components/popup/content.js +56 -0
  163. package/lib/cjs/components/popup/content.js.map +1 -0
  164. package/lib/cjs/components/popup/index.js +6 -0
  165. package/lib/cjs/components/popup/index.js.map +1 -0
  166. package/lib/cjs/components/popup/popup.js +425 -0
  167. package/lib/cjs/components/popup/popup.js.map +1 -0
  168. package/lib/cjs/components/progress/circle.js +45 -0
  169. package/lib/cjs/components/progress/circle.js.map +1 -0
  170. package/lib/cjs/components/progress/index.js +6 -0
  171. package/lib/cjs/components/progress/index.js.map +1 -0
  172. package/lib/cjs/components/progress/line.js +27 -0
  173. package/lib/cjs/components/progress/line.js.map +1 -0
  174. package/lib/cjs/components/progress/progress.js +100 -0
  175. package/lib/cjs/components/progress/progress.js.map +1 -0
  176. package/lib/cjs/components/radio/index.js +6 -0
  177. package/lib/cjs/components/radio/index.js.map +1 -0
  178. package/lib/cjs/components/radio/item.js +34 -0
  179. package/lib/cjs/components/radio/item.js.map +1 -0
  180. package/lib/cjs/components/radio/radio.js +62 -0
  181. package/lib/cjs/components/radio/radio.js.map +1 -0
  182. package/lib/cjs/components/resizable/index.js +6 -0
  183. package/lib/cjs/components/resizable/index.js.map +1 -0
  184. package/lib/cjs/components/resizable/resizable.js +81 -0
  185. package/lib/cjs/components/resizable/resizable.js.map +1 -0
  186. package/lib/cjs/components/river/index.js +6 -0
  187. package/lib/cjs/components/river/index.js.map +1 -0
  188. package/lib/cjs/components/river/river.js +116 -0
  189. package/lib/cjs/components/river/river.js.map +1 -0
  190. package/lib/cjs/components/select/index.js +6 -0
  191. package/lib/cjs/components/select/index.js.map +1 -0
  192. package/lib/cjs/components/select/options.js +76 -0
  193. package/lib/cjs/components/select/options.js.map +1 -0
  194. package/lib/cjs/components/select/select.js +155 -0
  195. package/lib/cjs/components/select/select.js.map +1 -0
  196. package/lib/cjs/components/step/divider.js +10 -0
  197. package/lib/cjs/components/step/divider.js.map +1 -0
  198. package/lib/cjs/components/step/index.js +6 -0
  199. package/lib/cjs/components/step/index.js.map +1 -0
  200. package/lib/cjs/components/step/item.js +60 -0
  201. package/lib/cjs/components/step/item.js.map +1 -0
  202. package/lib/cjs/components/step/step.js +42 -0
  203. package/lib/cjs/components/step/step.js.map +1 -0
  204. package/lib/cjs/components/swiper/index.js +6 -0
  205. package/lib/cjs/components/swiper/index.js.map +1 -0
  206. package/lib/cjs/components/swiper/item.js +39 -0
  207. package/lib/cjs/components/swiper/item.js.map +1 -0
  208. package/lib/cjs/components/swiper/swiper.js +262 -0
  209. package/lib/cjs/components/swiper/swiper.js.map +1 -0
  210. package/lib/cjs/components/tabs/index.js +6 -0
  211. package/lib/cjs/components/tabs/index.js.map +1 -0
  212. package/lib/cjs/components/tabs/item.js +10 -0
  213. package/lib/cjs/components/tabs/item.js.map +1 -0
  214. package/lib/cjs/components/tabs/tabs.js +272 -0
  215. package/lib/cjs/components/tabs/tabs.js.map +1 -0
  216. package/lib/cjs/components/tag/index.js +6 -0
  217. package/lib/cjs/components/tag/index.js.map +1 -0
  218. package/lib/cjs/components/tag/tag.js +32 -0
  219. package/lib/cjs/components/tag/tag.js.map +1 -0
  220. package/lib/cjs/components/text/highlight.js +35 -0
  221. package/lib/cjs/components/text/highlight.js.map +1 -0
  222. package/lib/cjs/components/text/index.js +6 -0
  223. package/lib/cjs/components/text/index.js.map +1 -0
  224. package/lib/cjs/components/text/number.js +32 -0
  225. package/lib/cjs/components/text/number.js.map +1 -0
  226. package/lib/cjs/components/text/text.js +39 -0
  227. package/lib/cjs/components/text/text.js.map +1 -0
  228. package/lib/cjs/components/text/time.js +24 -0
  229. package/lib/cjs/components/text/time.js.map +1 -0
  230. package/lib/cjs/components/tree/index.js +6 -0
  231. package/lib/cjs/components/tree/index.js.map +1 -0
  232. package/lib/cjs/components/tree/item.js +136 -0
  233. package/lib/cjs/components/tree/item.js.map +1 -0
  234. package/lib/cjs/components/tree/tree.js +127 -0
  235. package/lib/cjs/components/tree/tree.js.map +1 -0
  236. package/lib/cjs/components/upload/index.js +6 -0
  237. package/lib/cjs/components/upload/index.js.map +1 -0
  238. package/lib/cjs/components/upload/renderFile.js +99 -0
  239. package/lib/cjs/components/upload/renderFile.js.map +1 -0
  240. package/lib/cjs/components/upload/upload.js +165 -0
  241. package/lib/cjs/components/upload/upload.js.map +1 -0
  242. package/lib/cjs/components/utils/empty/index.js +17 -0
  243. package/lib/cjs/components/utils/empty/index.js.map +1 -0
  244. package/lib/cjs/components/utils/helpericon/helpericon.js +24 -0
  245. package/lib/cjs/components/utils/helpericon/helpericon.js.map +1 -0
  246. package/lib/cjs/components/utils/helpericon/index.js +6 -0
  247. package/lib/cjs/components/utils/helpericon/index.js.map +1 -0
  248. package/lib/cjs/components/video/index.js +6 -0
  249. package/lib/cjs/components/video/index.js.map +1 -0
  250. package/lib/cjs/components/video/video.js +237 -0
  251. package/lib/cjs/components/video/video.js.map +1 -0
  252. package/lib/cjs/index.js +83 -0
  253. package/lib/cjs/js/hooks.js +259 -0
  254. package/lib/cjs/js/hooks.js.map +1 -0
  255. package/lib/cjs/js/usePreview/content.js +197 -0
  256. package/lib/cjs/js/usePreview/content.js.map +1 -0
  257. package/lib/cjs/js/usePreview/index.js +39 -0
  258. package/lib/cjs/js/usePreview/index.js.map +1 -0
  259. package/lib/cjs/js/usePreview/renderFile.js +28 -0
  260. package/lib/cjs/js/usePreview/renderFile.js.map +1 -0
  261. package/lib/cjs/js/usePreview/type.js +15 -0
  262. package/lib/cjs/js/usePreview/type.js.map +1 -0
  263. package/lib/cjs/js/useRipple/index.js +45 -0
  264. package/lib/cjs/js/useRipple/index.js.map +1 -0
  265. package/lib/cjs/js/useTheme/index.js +30 -0
  266. package/lib/cjs/js/useTheme/index.js.map +1 -0
  267. package/lib/cjs/js/utils.js +284 -0
  268. package/lib/cjs/js/utils.js.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 +8 -3
  426. package/lib/css/index.css +0 -1
  427. package/lib/types/components/affix/affix.d.ts +0 -7
  428. package/lib/types/components/affix/index.d.ts +0 -2
  429. package/lib/types/components/affix/totop.d.ts +0 -3
  430. package/lib/types/components/affix/type.d.ts +0 -10
  431. package/lib/types/components/area/area.d.ts +0 -3
  432. package/lib/types/components/area/index.d.ts +0 -2
  433. package/lib/types/components/area/item.d.ts +0 -3
  434. package/lib/types/components/area/type.d.ts +0 -12
  435. package/lib/types/components/badge/badge.d.ts +0 -3
  436. package/lib/types/components/badge/index.d.ts +0 -2
  437. package/lib/types/components/badge/type.d.ts +0 -12
  438. package/lib/types/components/button/button.d.ts +0 -3
  439. package/lib/types/components/button/confirm.d.ts +0 -2
  440. package/lib/types/components/button/group.d.ts +0 -2
  441. package/lib/types/components/button/index.d.ts +0 -2
  442. package/lib/types/components/button/toggle.d.ts +0 -2
  443. package/lib/types/components/button/type.d.ts +0 -51
  444. package/lib/types/components/card/card.d.ts +0 -3
  445. package/lib/types/components/card/index.d.ts +0 -2
  446. package/lib/types/components/card/type.d.ts +0 -10
  447. package/lib/types/components/checkbox/checkbox.d.ts +0 -7
  448. package/lib/types/components/checkbox/index.d.ts +0 -2
  449. package/lib/types/components/checkbox/item.d.ts +0 -2
  450. package/lib/types/components/checkbox/type.d.ts +0 -22
  451. package/lib/types/components/collapse/collapse.d.ts +0 -7
  452. package/lib/types/components/collapse/index.d.ts +0 -2
  453. package/lib/types/components/collapse/item.d.ts +0 -2
  454. package/lib/types/components/collapse/type.d.ts +0 -20
  455. package/lib/types/components/datagrid/cell.d.ts +0 -13
  456. package/lib/types/components/datagrid/datagrid.d.ts +0 -3
  457. package/lib/types/components/datagrid/index.d.ts +0 -2
  458. package/lib/types/components/datagrid/resize.d.ts +0 -1
  459. package/lib/types/components/datagrid/row.d.ts +0 -3
  460. package/lib/types/components/datagrid/sorter.d.ts +0 -1
  461. package/lib/types/components/datagrid/type.d.ts +0 -61
  462. package/lib/types/components/description/description.d.ts +0 -3
  463. package/lib/types/components/description/index.d.ts +0 -2
  464. package/lib/types/components/description/type.d.ts +0 -23
  465. package/lib/types/components/drawer/drawer.d.ts +0 -3
  466. package/lib/types/components/drawer/index.d.ts +0 -2
  467. package/lib/types/components/drawer/type.d.ts +0 -13
  468. package/lib/types/components/drawer/useDrawer.d.ts +0 -0
  469. package/lib/types/components/dropdown/dropdown.d.ts +0 -6
  470. package/lib/types/components/dropdown/index.d.ts +0 -2
  471. package/lib/types/components/dropdown/item.d.ts +0 -3
  472. package/lib/types/components/dropdown/type.d.ts +0 -11
  473. package/lib/types/components/editor/controls.d.ts +0 -5
  474. package/lib/types/components/editor/editor.d.ts +0 -3
  475. package/lib/types/components/editor/index.d.ts +0 -2
  476. package/lib/types/components/editor/type.d.ts +0 -17
  477. package/lib/types/components/flex/flex.d.ts +0 -3
  478. package/lib/types/components/flex/index.d.ts +0 -2
  479. package/lib/types/components/flex/type.d.ts +0 -10
  480. package/lib/types/components/form/context.d.ts +0 -3
  481. package/lib/types/components/form/field.d.ts +0 -3
  482. package/lib/types/components/form/form.d.ts +0 -11
  483. package/lib/types/components/form/index.d.ts +0 -2
  484. package/lib/types/components/form/type.d.ts +0 -40
  485. package/lib/types/components/form/useConfig.d.ts +0 -5
  486. package/lib/types/components/form/useForm.d.ts +0 -14
  487. package/lib/types/components/icon/icon.d.ts +0 -3
  488. package/lib/types/components/icon/index.d.ts +0 -2
  489. package/lib/types/components/icon/type.d.ts +0 -9
  490. package/lib/types/components/image/image.d.ts +0 -3
  491. package/lib/types/components/image/index.d.ts +0 -2
  492. package/lib/types/components/image/list.d.ts +0 -2
  493. package/lib/types/components/image/type.d.ts +0 -30
  494. package/lib/types/components/input/container.d.ts +0 -2
  495. package/lib/types/components/input/index.d.ts +0 -2
  496. package/lib/types/components/input/input.d.ts +0 -3
  497. package/lib/types/components/input/number.d.ts +0 -3
  498. package/lib/types/components/input/range.d.ts +0 -3
  499. package/lib/types/components/input/textarea.d.ts +0 -3
  500. package/lib/types/components/input/type.d.ts +0 -61
  501. package/lib/types/components/list/index.d.ts +0 -2
  502. package/lib/types/components/list/item.d.ts +0 -3
  503. package/lib/types/components/list/list.d.ts +0 -6
  504. package/lib/types/components/list/type.d.ts +0 -13
  505. package/lib/types/components/loading/index.d.ts +0 -2
  506. package/lib/types/components/loading/loading.d.ts +0 -3
  507. package/lib/types/components/loading/type.d.ts +0 -7
  508. package/lib/types/components/message/index.d.ts +0 -2
  509. package/lib/types/components/message/message.d.ts +0 -27
  510. package/lib/types/components/message/type.d.ts +0 -29
  511. package/lib/types/components/modal/content.d.ts +0 -2
  512. package/lib/types/components/modal/context.d.ts +0 -2
  513. package/lib/types/components/modal/hookModal.d.ts +0 -6
  514. package/lib/types/components/modal/index.d.ts +0 -2
  515. package/lib/types/components/modal/modal.d.ts +0 -3
  516. package/lib/types/components/modal/type.d.ts +0 -34
  517. package/lib/types/components/modal/useModal.d.ts +0 -6
  518. package/lib/types/components/pagination/index.d.ts +0 -2
  519. package/lib/types/components/pagination/page.d.ts +0 -3
  520. package/lib/types/components/pagination/pagination.d.ts +0 -3
  521. package/lib/types/components/pagination/type.d.ts +0 -20
  522. package/lib/types/components/picker/colors/footer.d.ts +0 -6
  523. package/lib/types/components/picker/colors/handle.d.ts +0 -2
  524. package/lib/types/components/picker/colors/index.d.ts +0 -2
  525. package/lib/types/components/picker/dates/dates.d.ts +0 -5
  526. package/lib/types/components/picker/dates/index.d.ts +0 -3
  527. package/lib/types/components/picker/dates/panel.d.ts +0 -3
  528. package/lib/types/components/picker/index.d.ts +0 -10
  529. package/lib/types/components/picker/time/index.d.ts +0 -2
  530. package/lib/types/components/picker/time/item.d.ts +0 -1
  531. package/lib/types/components/picker/time/panel.d.ts +0 -1
  532. package/lib/types/components/picker/type.d.ts +0 -38
  533. package/lib/types/components/popconfirm/index.d.ts +0 -2
  534. package/lib/types/components/popconfirm/popconfirm.d.ts +0 -3
  535. package/lib/types/components/popconfirm/type.d.ts +0 -11
  536. package/lib/types/components/popup/content.d.ts +0 -3
  537. package/lib/types/components/popup/index.d.ts +0 -2
  538. package/lib/types/components/popup/popup.d.ts +0 -2
  539. package/lib/types/components/popup/type.d.ts +0 -25
  540. package/lib/types/components/progress/circle.d.ts +0 -2
  541. package/lib/types/components/progress/index.d.ts +0 -2
  542. package/lib/types/components/progress/line.d.ts +0 -9
  543. package/lib/types/components/progress/progress.d.ts +0 -3
  544. package/lib/types/components/progress/type.d.ts +0 -20
  545. package/lib/types/components/radio/index.d.ts +0 -2
  546. package/lib/types/components/radio/item.d.ts +0 -2
  547. package/lib/types/components/radio/radio.d.ts +0 -7
  548. package/lib/types/components/radio/type.d.ts +0 -18
  549. package/lib/types/components/resizable/index.d.ts +0 -2
  550. package/lib/types/components/resizable/resizable.d.ts +0 -3
  551. package/lib/types/components/resizable/type.d.ts +0 -16
  552. package/lib/types/components/river/index.d.ts +0 -2
  553. package/lib/types/components/river/river.d.ts +0 -3
  554. package/lib/types/components/river/type.d.ts +0 -5
  555. package/lib/types/components/select/index.d.ts +0 -2
  556. package/lib/types/components/select/options.d.ts +0 -5
  557. package/lib/types/components/select/select.d.ts +0 -3
  558. package/lib/types/components/select/type.d.ts +0 -24
  559. package/lib/types/components/step/divider.d.ts +0 -1
  560. package/lib/types/components/step/index.d.ts +0 -2
  561. package/lib/types/components/step/item.d.ts +0 -3
  562. package/lib/types/components/step/step.d.ts +0 -7
  563. package/lib/types/components/step/type.d.ts +0 -16
  564. package/lib/types/components/swiper/index.d.ts +0 -2
  565. package/lib/types/components/swiper/item.d.ts +0 -3
  566. package/lib/types/components/swiper/swiper.d.ts +0 -3
  567. package/lib/types/components/swiper/type.d.ts +0 -49
  568. package/lib/types/components/tabs/index.d.ts +0 -2
  569. package/lib/types/components/tabs/item.d.ts +0 -3
  570. package/lib/types/components/tabs/tabs.d.ts +0 -3
  571. package/lib/types/components/tabs/type.d.ts +0 -41
  572. package/lib/types/components/tag/index.d.ts +0 -2
  573. package/lib/types/components/tag/tag.d.ts +0 -3
  574. package/lib/types/components/tag/type.d.ts +0 -11
  575. package/lib/types/components/text/highlight.d.ts +0 -2
  576. package/lib/types/components/text/index.d.ts +0 -2
  577. package/lib/types/components/text/number.d.ts +0 -2
  578. package/lib/types/components/text/text.d.ts +0 -3
  579. package/lib/types/components/text/time.d.ts +0 -2
  580. package/lib/types/components/text/type.d.ts +0 -40
  581. package/lib/types/components/tree/index.d.ts +0 -2
  582. package/lib/types/components/tree/item.d.ts +0 -11
  583. package/lib/types/components/tree/tree.d.ts +0 -3
  584. package/lib/types/components/tree/type.d.ts +0 -60
  585. package/lib/types/components/upload/index.d.ts +0 -2
  586. package/lib/types/components/upload/renderFile.d.ts +0 -7
  587. package/lib/types/components/upload/type.d.ts +0 -41
  588. package/lib/types/components/upload/upload.d.ts +0 -3
  589. package/lib/types/components/utils/empty/index.d.ts +0 -1
  590. package/lib/types/components/utils/helpericon/helpericon.d.ts +0 -3
  591. package/lib/types/components/utils/helpericon/index.d.ts +0 -2
  592. package/lib/types/components/utils/helpericon/type.d.ts +0 -11
  593. package/lib/types/components/video/index.d.ts +0 -2
  594. package/lib/types/components/video/type.d.ts +0 -24
  595. package/lib/types/components/video/video.d.ts +0 -3
  596. package/lib/types/index.d.ts +0 -40
  597. package/lib/types/js/hooks.d.ts +0 -36
  598. package/lib/types/js/usePreview/content.d.ts +0 -2
  599. package/lib/types/js/usePreview/index.d.ts +0 -2
  600. package/lib/types/js/usePreview/renderFile.d.ts +0 -2
  601. package/lib/types/js/usePreview/type.d.ts +0 -36
  602. package/lib/types/js/useRipple/index.d.ts +0 -2
  603. package/lib/types/js/useTheme/index.d.ts +0 -6
  604. package/lib/types/js/useTheme/type.d.ts +0 -9
  605. package/lib/types/js/utils.d.ts +0 -36
  606. package/lib/types/type/index.d.ts +0 -34
@@ -0,0 +1,6 @@
1
+ //#region packages/components/utils/helpericon/index.tsx
2
+ var helpericon_default = require("./helpericon.js").default;
3
+ //#endregion
4
+ exports.default = helpericon_default;
5
+
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["Helpericon"],"sources":["../../../../../packages/components/utils/helpericon/index.tsx"],"sourcesContent":["import Helpericon from \"./helpericon\";\n\nexport default Helpericon;\n"],"mappings":";AAEA,IAAA,gDAAeA"}
@@ -0,0 +1,6 @@
1
+ //#region packages/components/video/index.tsx
2
+ var video_default = require("./video.js").default;
3
+ //#endregion
4
+ exports.default = video_default;
5
+
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["Video"],"sources":["../../../../packages/components/video/index.tsx"],"sourcesContent":["import Video from \"./video\";\n\nexport default Video;\n"],"mappings":";AAEA,IAAA,sCAAeA"}
@@ -0,0 +1,237 @@
1
+ const require_runtime = require("../../_virtual/_rolldown/runtime.js");
2
+ const require_hooks = require("../../js/hooks.js");
3
+ const require_index = require("../button/index.js");
4
+ const require_index$1 = require("../icon/index.js");
5
+ const require_utils = require("../../js/utils.js");
6
+ const require_index$2 = require("../text/index.js");
7
+ const require_index$3 = require("../progress/index.js");
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.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"video.js","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":""}
@@ -0,0 +1,83 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_index = require("./components/loading/index.js");
3
+ const require_index$1 = require("./components/button/index.js");
4
+ const require_index$2 = require("./components/icon/index.js");
5
+ const require_index$3 = require("./components/affix/index.js");
6
+ const require_index$4 = require("./components/badge/index.js");
7
+ const require_index$5 = require("./components/card/index.js");
8
+ const require_index$6 = require("./components/checkbox/index.js");
9
+ const require_index$7 = require("./components/collapse/index.js");
10
+ const require_index$8 = require("./components/datagrid/index.js");
11
+ const require_index$9 = require("./components/description/index.js");
12
+ const require_index$10 = require("./components/drawer/index.js");
13
+ const require_index$11 = require("./components/list/index.js");
14
+ const require_index$12 = require("./components/popup/index.js");
15
+ const require_index$13 = require("./components/dropdown/index.js");
16
+ const require_index$14 = require("./components/editor/index.js");
17
+ const require_index$15 = require("./components/flex/index.js");
18
+ const require_index$16 = require("./components/form/index.js");
19
+ const require_index$17 = require("./components/text/index.js");
20
+ const require_index$18 = require("./components/progress/index.js");
21
+ const require_index$19 = require("./components/video/index.js");
22
+ const require_index$20 = require("./js/usePreview/index.js");
23
+ const require_index$21 = require("./components/image/index.js");
24
+ const require_index$22 = require("./components/input/index.js");
25
+ const require_index$23 = require("./components/message/index.js");
26
+ const require_index$24 = require("./components/modal/index.js");
27
+ const require_index$25 = require("./components/pagination/index.js");
28
+ const require_index$26 = require("./components/tag/index.js");
29
+ const require_index$27 = require("./components/select/index.js");
30
+ const require_index$28 = require("./components/picker/colors/index.js");
31
+ const require_index$29 = require("./components/picker/dates/index.js");
32
+ const require_index$30 = require("./components/picker/time/index.js");
33
+ const require_index$31 = require("./components/popconfirm/index.js");
34
+ const require_index$32 = require("./components/radio/index.js");
35
+ const require_index$33 = require("./components/resizable/index.js");
36
+ const require_index$34 = require("./components/river/index.js");
37
+ const require_index$35 = require("./components/step/index.js");
38
+ const require_index$36 = require("./components/swiper/index.js");
39
+ const require_index$37 = require("./components/tabs/index.js");
40
+ const require_index$38 = require("./components/tree/index.js");
41
+ const require_index$39 = require("./components/upload/index.js");
42
+ const require_index$40 = require("./js/useTheme/index.js");
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.js");
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.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.js","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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"}