@ioca/react 1.4.77 → 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 (402) 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.map +1 -1
  270. package/lib/es/components/affix/totop.js +1 -1
  271. package/lib/es/components/badge/badge.js.map +1 -1
  272. package/lib/es/components/button/button.js.map +1 -1
  273. package/lib/es/components/card/card.js.map +1 -1
  274. package/lib/es/components/checkbox/checkbox.js.map +1 -1
  275. package/lib/es/components/collapse/collapse.js +1 -1
  276. package/lib/es/components/collapse/collapse.js.map +1 -1
  277. package/lib/es/components/datagrid/datagrid.js.map +1 -1
  278. package/lib/es/components/description/description.js.map +1 -1
  279. package/lib/es/components/drawer/drawer.js.map +1 -1
  280. package/lib/es/components/dropdown/dropdown.js.map +1 -1
  281. package/lib/es/components/editor/controls.js +1 -1
  282. package/lib/es/components/editor/editor.js.map +1 -1
  283. package/lib/es/components/flex/flex.js.map +1 -1
  284. package/lib/es/components/form/form.js.map +1 -1
  285. package/lib/es/components/icon/icon.js.map +1 -1
  286. package/lib/es/components/image/image.js.map +1 -1
  287. package/lib/es/components/input/input.js +1 -1
  288. package/lib/es/components/input/input.js.map +1 -1
  289. package/lib/es/components/input/number.js +1 -1
  290. package/lib/es/components/input/number.js.map +1 -1
  291. package/lib/es/components/input/range.js +1 -1
  292. package/lib/es/components/input/range.js.map +1 -1
  293. package/lib/es/components/input/textarea.js.map +1 -1
  294. package/lib/es/components/list/list.js.map +1 -1
  295. package/lib/es/components/loading/loading.js.map +1 -1
  296. package/lib/es/components/message/message.js.map +1 -1
  297. package/lib/es/components/modal/content.js.map +1 -1
  298. package/lib/es/components/modal/modal.js.map +1 -1
  299. package/lib/es/components/pagination/pagination.js +1 -1
  300. package/lib/es/components/pagination/pagination.js.map +1 -1
  301. package/lib/es/components/picker/colors/footer.js +1 -1
  302. package/lib/es/components/picker/colors/index.js.map +1 -1
  303. package/lib/es/components/picker/dates/index.js +1 -1
  304. package/lib/es/components/picker/dates/index.js.map +1 -1
  305. package/lib/es/components/picker/dates/panel.js +1 -1
  306. package/lib/es/components/picker/time/index.js +1 -1
  307. package/lib/es/components/picker/time/panel.js.map +1 -1
  308. package/lib/es/components/popconfirm/popconfirm.js +1 -1
  309. package/lib/es/components/popconfirm/popconfirm.js.map +1 -1
  310. package/lib/es/components/popup/popup.js.map +1 -1
  311. package/lib/es/components/progress/progress.js.map +1 -1
  312. package/lib/es/components/radio/radio.js.map +1 -1
  313. package/lib/es/components/resizable/resizable.js.map +1 -1
  314. package/lib/es/components/river/river.js.map +1 -1
  315. package/lib/es/components/select/options.js +1 -1
  316. package/lib/es/components/select/select.js +1 -1
  317. package/lib/es/components/select/select.js.map +1 -1
  318. package/lib/es/components/step/divider.js.map +1 -1
  319. package/lib/es/components/step/item.js +1 -1
  320. package/lib/es/components/step/step.js.map +1 -1
  321. package/lib/es/components/swiper/swiper.js +1 -1
  322. package/lib/es/components/swiper/swiper.js.map +1 -1
  323. package/lib/es/components/tabs/tabs.js +1 -1
  324. package/lib/es/components/tabs/tabs.js.map +1 -1
  325. package/lib/es/components/tag/tag.js.map +1 -1
  326. package/lib/es/components/text/text.js.map +1 -1
  327. package/lib/es/components/tree/item.js +1 -1
  328. package/lib/es/components/tree/tree.js.map +1 -1
  329. package/lib/es/components/upload/renderFile.js +1 -1
  330. package/lib/es/components/upload/upload.js +1 -1
  331. package/lib/es/components/upload/upload.js.map +1 -1
  332. package/lib/es/components/utils/empty/index.js +1 -1
  333. package/lib/es/components/utils/empty/index.js.map +1 -1
  334. package/lib/es/components/utils/helpericon/helpericon.js +1 -1
  335. package/lib/es/components/utils/helpericon/helpericon.js.map +1 -1
  336. package/lib/es/components/video/video.js +1 -1
  337. package/lib/es/components/video/video.js.map +1 -1
  338. package/lib/es/js/usePreview/content.js +1 -1
  339. package/lib/es/js/usePreview/index.js.map +1 -1
  340. package/lib/es/js/usePreview/renderFile.js +1 -1
  341. package/lib/es/js/useRipple/index.js.map +1 -1
  342. package/lib/types/components/affix/affix.js +0 -1
  343. package/lib/types/components/affix/totop.js +1 -1
  344. package/lib/types/components/badge/badge.js +0 -1
  345. package/lib/types/components/button/button.js +0 -1
  346. package/lib/types/components/card/card.js +0 -1
  347. package/lib/types/components/checkbox/checkbox.js +0 -2
  348. package/lib/types/components/collapse/collapse.js +1 -2
  349. package/lib/types/components/datagrid/datagrid.js +0 -1
  350. package/lib/types/components/description/description.js +0 -1
  351. package/lib/types/components/drawer/drawer.js +0 -1
  352. package/lib/types/components/dropdown/dropdown.js +0 -1
  353. package/lib/types/components/editor/controls.js +1 -1
  354. package/lib/types/components/editor/editor.js +0 -1
  355. package/lib/types/components/flex/flex.js +0 -1
  356. package/lib/types/components/form/form.js +0 -1
  357. package/lib/types/components/icon/icon.js +0 -1
  358. package/lib/types/components/image/image.js +0 -1
  359. package/lib/types/components/input/input.js +1 -2
  360. package/lib/types/components/input/number.js +1 -2
  361. package/lib/types/components/input/range.js +1 -2
  362. package/lib/types/components/input/textarea.js +0 -1
  363. package/lib/types/components/list/list.js +0 -1
  364. package/lib/types/components/loading/loading.js +0 -1
  365. package/lib/types/components/message/message.js +0 -1
  366. package/lib/types/components/modal/content.js +0 -1
  367. package/lib/types/components/modal/modal.js +0 -1
  368. package/lib/types/components/pagination/pagination.js +1 -2
  369. package/lib/types/components/picker/colors/footer.js +1 -1
  370. package/lib/types/components/picker/colors/index.js +0 -1
  371. package/lib/types/components/picker/dates/index.js +1 -2
  372. package/lib/types/components/picker/dates/panel.js +1 -1
  373. package/lib/types/components/picker/time/index.js +1 -1
  374. package/lib/types/components/picker/time/panel.js +0 -1
  375. package/lib/types/components/popconfirm/popconfirm.js +1 -2
  376. package/lib/types/components/popup/popup.js +0 -1
  377. package/lib/types/components/progress/progress.js +0 -2
  378. package/lib/types/components/radio/radio.js +0 -2
  379. package/lib/types/components/resizable/resizable.js +0 -1
  380. package/lib/types/components/river/river.js +0 -1
  381. package/lib/types/components/select/options.js +1 -1
  382. package/lib/types/components/select/select.js +1 -3
  383. package/lib/types/components/step/divider.js +0 -1
  384. package/lib/types/components/step/item.js +1 -1
  385. package/lib/types/components/step/step.js +0 -1
  386. package/lib/types/components/swiper/swiper.js +1 -2
  387. package/lib/types/components/tabs/tabs.js +1 -2
  388. package/lib/types/components/tag/tag.js +0 -1
  389. package/lib/types/components/text/text.js +0 -1
  390. package/lib/types/components/tree/item.js +1 -1
  391. package/lib/types/components/tree/tree.js +0 -1
  392. package/lib/types/components/upload/renderFile.js +1 -1
  393. package/lib/types/components/upload/upload.js +1 -2
  394. package/lib/types/components/utils/empty/index.js +1 -2
  395. package/lib/types/components/utils/helpericon/helpericon.js +1 -2
  396. package/lib/types/components/video/video.js +1 -2
  397. package/lib/types/index.js +0 -1
  398. package/lib/types/js/usePreview/content.js +1 -1
  399. package/lib/types/js/usePreview/index.js +0 -1
  400. package/lib/types/js/usePreview/renderFile.js +1 -1
  401. package/lib/types/js/useRipple/index.js +0 -1
  402. package/package.json +6 -3
@@ -0,0 +1,284 @@
1
+ require("../_virtual/_rolldown/runtime.cjs");
2
+ require("react");
3
+ let _Users_iann_codes_ioca_react_node_modules__pnpm_react_dom_19_2_4_react_19_2_4_node_modules_react_dom_client_js = require("/Users/iann/codes/ioca-react/node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/client.js");
4
+ //#region packages/js/utils.ts
5
+ function getPosition($source, $popup, options = {}) {
6
+ const { refWindow, gap = 0, offset = 0, position = "top", align } = options;
7
+ if (!$source || !$popup) return [
8
+ 0,
9
+ 0,
10
+ {
11
+ arrowX: 0,
12
+ arrowY: 0,
13
+ arrowPos: "bottom"
14
+ }
15
+ ];
16
+ const rectT = $source.getBoundingClientRect();
17
+ const rectC = $popup.getBoundingClientRect();
18
+ let w = window.innerWidth;
19
+ let h = window.innerHeight;
20
+ let { left: tl, top: tt, right: tr, bottom: tb, width: tw, height: th } = rectT;
21
+ const { height: ch, width: cw } = rectC;
22
+ if (!refWindow) {
23
+ const rectPa = $source.offsetParent?.getBoundingClientRect();
24
+ w = rectPa?.width || w;
25
+ h = rectPa?.height || h;
26
+ tl = $source.offsetLeft;
27
+ tt = $source.offsetTop;
28
+ tr = tl + rectT.width;
29
+ tb = tt + rectT.height;
30
+ }
31
+ let y = 0;
32
+ let x = 0;
33
+ let arrowX = 0;
34
+ let arrowY = 0;
35
+ let arrowPos = "bottom";
36
+ switch (position) {
37
+ case "left":
38
+ case "right":
39
+ y = th !== ch ? computePosition({
40
+ containerSize: h,
41
+ targetSize: th,
42
+ targetOffset: tt,
43
+ contentSize: ch,
44
+ gap,
45
+ align
46
+ }) : tt;
47
+ arrowY = y < tt ? tt - y + th / 2 : th / 2;
48
+ const xl = tl - offset - cw;
49
+ const xr = tr + offset + cw;
50
+ if (position === "left") {
51
+ const R = xl < 0 && xr <= w;
52
+ x = R ? tr + offset : xl;
53
+ arrowX = R ? 0 : cw;
54
+ arrowPos = R ? "left" : "right";
55
+ } else {
56
+ const R = w > xr || xl < 0;
57
+ x = R ? tr + offset : xl;
58
+ arrowX = R ? 0 : cw;
59
+ arrowPos = R ? "left" : "right";
60
+ }
61
+ break;
62
+ case "top":
63
+ case "bottom":
64
+ x = tw !== cw ? computePosition({
65
+ containerSize: w,
66
+ targetOffset: tl,
67
+ targetSize: tw,
68
+ contentSize: cw,
69
+ gap,
70
+ align
71
+ }) : tl;
72
+ arrowX = x > tl ? cw / 2 : tl - x + tw / 2;
73
+ const yt = tt - offset - ch;
74
+ const yb = tb + offset + ch;
75
+ if (position === "top") {
76
+ const T = yt < 0 && yb <= h;
77
+ y = T ? tb + offset : yt;
78
+ arrowY = T ? 0 : ch;
79
+ arrowPos = T ? "top" : "bottom";
80
+ } else {
81
+ const B = h > yb || yt < 0;
82
+ y = B ? tb + offset : yt;
83
+ arrowY = B ? 0 : ch;
84
+ arrowPos = B ? "top" : "bottom";
85
+ }
86
+ break;
87
+ default: break;
88
+ }
89
+ return [
90
+ x,
91
+ y,
92
+ {
93
+ arrowX,
94
+ arrowY,
95
+ arrowPos
96
+ }
97
+ ];
98
+ }
99
+ function getPointPosition(e, content) {
100
+ const { width: w, height: h } = content.getBoundingClientRect();
101
+ const parent = content.offsetParent;
102
+ let pw, ph, pl = 0, pt = 0;
103
+ if (parent) {
104
+ const { width: ow, height: oh, left: ol, top: ot } = parent.getBoundingClientRect();
105
+ const st = parent.scrollTop ?? 0;
106
+ pw = ow;
107
+ ph = oh;
108
+ pt = ot - st;
109
+ pl = ol;
110
+ } else {
111
+ pw = window.innerWidth;
112
+ ph = window.innerHeight;
113
+ }
114
+ const x = e.pageX - pl;
115
+ const y = e.pageY - pt;
116
+ return [x + w >= pw ? x - w > 0 ? x - w : x : x, y + h >= ph ? y - h > 0 ? y - h : y : y];
117
+ }
118
+ function computePosition({ containerSize, targetSize, targetOffset, contentSize, gap, align = "center" }) {
119
+ const centerPoint = targetOffset + targetSize / 2;
120
+ switch (align) {
121
+ case "start": return targetOffset + contentSize > containerSize ? containerSize - contentSize - gap : targetOffset;
122
+ case "center":
123
+ if (targetSize >= contentSize) return centerPoint - contentSize / 2;
124
+ if (centerPoint + contentSize / 2 + gap > containerSize) return targetOffset + targetSize - contentSize;
125
+ if (centerPoint - contentSize / 2 - gap < 0) return gap;
126
+ return centerPoint - contentSize / 2;
127
+ case "end":
128
+ const result = targetOffset + targetSize - contentSize;
129
+ return result > 0 ? result : gap;
130
+ default: return centerPoint - contentSize / 2;
131
+ }
132
+ }
133
+ function formatOption(options) {
134
+ return options.map((option) => ["string", "number"].includes(typeof option) ? {
135
+ label: option,
136
+ value: option
137
+ } : option);
138
+ }
139
+ function animate(from, to, duration = 1e3, callback, easing = (t) => 1 - Math.pow(1 - t, 4)) {
140
+ const start = performance.now();
141
+ const diff = to - from;
142
+ let raf = requestAnimationFrame(loop);
143
+ function loop() {
144
+ raf = requestAnimationFrame(loop);
145
+ let percent = (performance.now() - start) / duration;
146
+ if (percent >= 1) {
147
+ percent = 1;
148
+ cancelAnimationFrame(raf);
149
+ }
150
+ const pass = diff * easing(percent);
151
+ callback?.(pass);
152
+ }
153
+ }
154
+ function formatNumber(value, options = {}) {
155
+ const { precision, thousand } = options;
156
+ const result = value.toFixed(precision);
157
+ if (!thousand) return result;
158
+ const points = result.split(".");
159
+ const integer = points[0].replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, `$&${thousand}`);
160
+ if (points.length === 1) return integer;
161
+ return `${integer}.${points[1]}`;
162
+ }
163
+ function renderNode(node, container = document.body) {
164
+ const div = document.createElement("div");
165
+ container.append(div);
166
+ const root = (0, _Users_iann_codes_ioca_react_node_modules__pnpm_react_dom_19_2_4_react_19_2_4_node_modules_react_dom_client_js.createRoot)(div);
167
+ const sto = setTimeout(() => {
168
+ root?.render(node);
169
+ }, 0);
170
+ return () => {
171
+ div?.remove();
172
+ root?.unmount();
173
+ sto && clearTimeout(sto);
174
+ };
175
+ }
176
+ function getSuffixByUrl(url) {
177
+ return url.match(/\.([^\./\?]+)($|\?)/)?.[1];
178
+ }
179
+ function getFileType(suffix, type) {
180
+ switch (true) {
181
+ case [
182
+ "jpg",
183
+ "jpeg",
184
+ "png",
185
+ "webp",
186
+ "svg",
187
+ "avif",
188
+ "heif",
189
+ "heic",
190
+ "apng",
191
+ "bmp",
192
+ "ico"
193
+ ].includes(suffix) || type?.startsWith("image/"): return "IMAGE";
194
+ case [
195
+ "mp4",
196
+ "avi",
197
+ "webm",
198
+ "ogv",
199
+ "mov",
200
+ "mkv",
201
+ "mpd",
202
+ "m3u8"
203
+ ].includes(suffix) || type?.startsWith("video/"): return "VIDEO";
204
+ default: return "UNKNOWN";
205
+ }
206
+ }
207
+ function fullScreen(el) {
208
+ el.requestFullscreen?.();
209
+ }
210
+ function exitFullScreen() {
211
+ document.exitFullscreen?.();
212
+ }
213
+ function formatTime(time, options) {
214
+ const result = [];
215
+ const { zero = true, units = [
216
+ "",
217
+ ":",
218
+ ":"
219
+ ] } = options || {};
220
+ const l = units.length;
221
+ let i = 0;
222
+ while (i < l) {
223
+ if (time <= 0 && i > 1) break;
224
+ const n = Math.round(time % 60);
225
+ time = Math.floor(time / 60);
226
+ result.unshift((zero && n < 10 ? `0${n}` : n) + units[i++]);
227
+ }
228
+ return result.join("");
229
+ }
230
+ function getNextSorter(prevSortBy, prevSortType, sortBy) {
231
+ const types = ["desc", "asc"];
232
+ if (prevSortBy === sortBy) {
233
+ const type = types[types.findIndex((t) => t === prevSortType) + 1] || "";
234
+ return [type === "" ? "" : sortBy, type];
235
+ }
236
+ return [sortBy, "desc"];
237
+ }
238
+ function formatBytes(bytes, decimals = 2) {
239
+ if (!+bytes) return "0 Bytes";
240
+ const k = 1024;
241
+ const dm = decimals < 0 ? 0 : decimals;
242
+ const sizes = [
243
+ "B",
244
+ "KB",
245
+ "MB",
246
+ "GB",
247
+ "TB",
248
+ "PB",
249
+ "EB",
250
+ "ZB",
251
+ "YB"
252
+ ];
253
+ const i = Math.floor(Math.log(bytes) / Math.log(k));
254
+ return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}`;
255
+ }
256
+ function clamp(value, min, max) {
257
+ return value < min ? min : value > max ? max : value;
258
+ }
259
+ const arrayMove = (array, fromIndex, toIndex) => {
260
+ if (toIndex >= array.length) {
261
+ let k = toIndex - array.length + 1;
262
+ while (k--) array.push(void 0);
263
+ }
264
+ array.splice(toIndex, 0, array.splice(fromIndex, 1)[0]);
265
+ return array;
266
+ };
267
+ //#endregion
268
+ exports.animate = animate;
269
+ exports.arrayMove = arrayMove;
270
+ exports.clamp = clamp;
271
+ exports.exitFullScreen = exitFullScreen;
272
+ exports.formatBytes = formatBytes;
273
+ exports.formatNumber = formatNumber;
274
+ exports.formatOption = formatOption;
275
+ exports.formatTime = formatTime;
276
+ exports.fullScreen = fullScreen;
277
+ exports.getFileType = getFileType;
278
+ exports.getNextSorter = getNextSorter;
279
+ exports.getPointPosition = getPointPosition;
280
+ exports.getPosition = getPosition;
281
+ exports.getSuffixByUrl = getSuffixByUrl;
282
+ exports.renderNode = renderNode;
283
+
284
+ //# sourceMappingURL=utils.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.cjs","names":[],"sources":["../../../packages/js/utils.ts"],"sourcesContent":["import type { MouseEvent } from \"react\";\nimport { ReactNode, useEffect, useRef, useState } from \"react\";\nimport { Root, createRoot } from \"react-dom/client\";\nimport type { TOption, TOptions, TRelativeOptions } from \"../type\";\n\ntype TComputePosition = {\n\tcontainerSize: number;\n\ttargetSize: number;\n\ttargetOffset: number;\n\tcontentSize: number;\n\tgap: number;\n\talign?: \"start\" | \"center\" | \"end\";\n};\n\nexport function getPosition(\n\t$source?: HTMLElement | null,\n\t$popup?: HTMLElement | null,\n\toptions: TRelativeOptions = {}\n): [\n\tx: number,\n\ty: number,\n\tz: {\n\t\tarrowX: number;\n\t\tarrowY: number;\n\t\tarrowPos: string;\n\t}\n] {\n\tconst { refWindow, gap = 0, offset = 0, position = \"top\", align } = options;\n\n\tif (!$source || !$popup)\n\t\treturn [\n\t\t\t0,\n\t\t\t0,\n\t\t\t{\n\t\t\t\tarrowX: 0,\n\t\t\t\tarrowY: 0,\n\t\t\t\tarrowPos: \"bottom\",\n\t\t\t},\n\t\t];\n\n\tconst rectT = $source.getBoundingClientRect();\n\tconst rectC = $popup.getBoundingClientRect();\n\n\tlet w = window.innerWidth;\n\tlet h = window.innerHeight;\n\tlet {\n\t\tleft: tl,\n\t\ttop: tt,\n\t\tright: tr,\n\t\tbottom: tb,\n\t\twidth: tw,\n\t\theight: th,\n\t} = rectT;\n\tconst { height: ch, width: cw } = rectC;\n\n\tif (!refWindow) {\n\t\tconst rectPa = $source.offsetParent?.getBoundingClientRect();\n\n\t\tw = rectPa?.width || w;\n\t\th = rectPa?.height || h;\n\t\ttl = $source.offsetLeft;\n\t\ttt = $source.offsetTop;\n\t\ttr = tl + rectT.width;\n\t\ttb = tt + rectT.height;\n\t}\n\n\tlet y = 0;\n\tlet x = 0;\n\tlet arrowX = 0;\n\tlet arrowY = 0;\n\tlet arrowPos = \"bottom\";\n\n\tswitch (position) {\n\t\tcase \"left\":\n\t\tcase \"right\":\n\t\t\ty =\n\t\t\t\tth !== ch\n\t\t\t\t\t? computePosition({\n\t\t\t\t\t\t\tcontainerSize: h,\n\t\t\t\t\t\t\ttargetSize: th,\n\t\t\t\t\t\t\ttargetOffset: tt,\n\t\t\t\t\t\t\tcontentSize: ch,\n\t\t\t\t\t\t\tgap,\n\t\t\t\t\t\t\talign,\n\t\t\t\t\t })\n\t\t\t\t\t: tt;\n\t\t\tarrowY = y < tt ? tt - y + th / 2 : th / 2;\n\n\t\t\tconst xl = tl - offset - cw;\n\t\t\tconst xr = tr + offset + cw;\n\n\t\t\tif (position === \"left\") {\n\t\t\t\tconst R = xl < 0 && xr <= w;\n\t\t\t\tx = R ? tr + offset : xl;\n\t\t\t\tarrowX = R ? 0 : cw;\n\t\t\t\tarrowPos = R ? \"left\" : \"right\";\n\t\t\t} else {\n\t\t\t\tconst R = w > xr || xl < 0;\n\t\t\t\tx = R ? tr + offset : xl;\n\t\t\t\tarrowX = R ? 0 : cw;\n\t\t\t\tarrowPos = R ? \"left\" : \"right\";\n\t\t\t}\n\n\t\t\tbreak;\n\t\tcase \"top\":\n\t\tcase \"bottom\":\n\t\t\tx =\n\t\t\t\ttw !== cw\n\t\t\t\t\t? computePosition({\n\t\t\t\t\t\t\tcontainerSize: w,\n\t\t\t\t\t\t\ttargetOffset: tl,\n\t\t\t\t\t\t\ttargetSize: tw,\n\t\t\t\t\t\t\tcontentSize: cw,\n\t\t\t\t\t\t\tgap,\n\t\t\t\t\t\t\talign,\n\t\t\t\t\t })\n\t\t\t\t\t: tl;\n\t\t\tarrowX = x > tl ? cw / 2 : tl - x + tw / 2;\n\n\t\t\tconst yt = tt - offset - ch;\n\t\t\tconst yb = tb + offset + ch;\n\t\t\tif (position === \"top\") {\n\t\t\t\tconst T = yt < 0 && yb <= h;\n\t\t\t\ty = T ? tb + offset : yt;\n\t\t\t\tarrowY = T ? 0 : ch;\n\t\t\t\tarrowPos = T ? \"top\" : \"bottom\";\n\t\t\t} else {\n\t\t\t\tconst B = h > yb || yt < 0;\n\t\t\t\ty = B ? tb + offset : yt;\n\t\t\t\tarrowY = B ? 0 : ch;\n\t\t\t\tarrowPos = B ? \"top\" : \"bottom\";\n\t\t\t}\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tbreak;\n\t}\n\n\treturn [\n\t\tx,\n\t\ty,\n\t\t{\n\t\t\tarrowX,\n\t\t\tarrowY,\n\t\t\tarrowPos,\n\t\t},\n\t];\n}\n\nexport function getPointPosition(e: MouseEvent, content: HTMLElement) {\n\tconst { width: w, height: h } = content.getBoundingClientRect();\n\tconst parent = content.offsetParent;\n\tlet pw,\n\t\tph,\n\t\tpl = 0,\n\t\tpt = 0;\n\n\tif (parent) {\n\t\tconst {\n\t\t\twidth: ow,\n\t\t\theight: oh,\n\t\t\tleft: ol,\n\t\t\ttop: ot,\n\t\t} = parent.getBoundingClientRect();\n\t\tconst st = parent.scrollTop ?? 0;\n\n\t\tpw = ow;\n\t\tph = oh;\n\t\tpt = ot - st;\n\t\tpl = ol;\n\t} else {\n\t\tpw = window.innerWidth;\n\t\tph = window.innerHeight;\n\t}\n\tconst x = e.pageX - pl;\n\tconst y = e.pageY - pt;\n\n\tconst left = x + w >= pw ? (x - w > 0 ? x - w : x) : x;\n\tconst top = y + h >= ph ? (y - h > 0 ? y - h : y) : y;\n\n\treturn [left, top];\n}\n\nfunction computePosition({\n\tcontainerSize,\n\ttargetSize,\n\ttargetOffset,\n\tcontentSize,\n\tgap,\n\talign = \"center\",\n}: TComputePosition) {\n\tconst centerPoint = targetOffset + targetSize / 2;\n\n\tswitch (align) {\n\t\tcase \"start\":\n\t\t\treturn targetOffset + contentSize > containerSize\n\t\t\t\t? containerSize - contentSize - gap\n\t\t\t\t: targetOffset;\n\t\tcase \"center\":\n\t\t\tif (targetSize >= contentSize) {\n\t\t\t\treturn centerPoint - contentSize / 2;\n\t\t\t}\n\n\t\t\tif (centerPoint + contentSize / 2 + gap > containerSize) {\n\t\t\t\treturn targetOffset + targetSize - contentSize;\n\t\t\t}\n\n\t\t\tif (centerPoint - contentSize / 2 - gap < 0) {\n\t\t\t\treturn gap;\n\t\t\t}\n\n\t\t\treturn centerPoint - contentSize / 2;\n\t\tcase \"end\":\n\t\t\tconst result = targetOffset + targetSize - contentSize;\n\t\t\treturn result > 0 ? result : gap;\n\t\tdefault:\n\t\t\treturn centerPoint - contentSize / 2;\n\t}\n}\n\nexport function formatOption(options: TOptions): TOption[] {\n\treturn options.map((option) =>\n\t\t[\"string\", \"number\"].includes(typeof option)\n\t\t\t? { label: option, value: option }\n\t\t\t: option\n\t) as TOption[];\n}\n\nexport function animate(\n\tfrom: number,\n\tto: number,\n\tduration: number = 1000,\n\tcallback?: (v: number) => void,\n\teasing: (t: number) => number = (t) => 1 - Math.pow(1 - t, 4)\n) {\n\tconst start = performance.now();\n\tconst diff = to - from;\n\tlet raf = requestAnimationFrame(loop);\n\n\tfunction loop() {\n\t\traf = requestAnimationFrame(loop);\n\n\t\tconst past = performance.now() - start;\n\t\tlet percent = past / duration;\n\n\t\tif (percent >= 1) {\n\t\t\tpercent = 1;\n\t\t\tcancelAnimationFrame(raf);\n\t\t}\n\n\t\tconst pass = diff * easing(percent);\n\t\tcallback?.(pass);\n\t}\n}\n\nexport function formatNumber(\n\tvalue: number,\n\toptions: {\n\t\tprecision?: number;\n\t\tthousand?: string;\n\t} = {}\n) {\n\tconst { precision, thousand } = options;\n\n\tconst result = value.toFixed(precision);\n\n\tif (!thousand) return result;\n\n\tconst points = result.split(\".\");\n\tconst integer = points[0].replace(\n\t\t/\\d{1,3}(?=(\\d{3})+(\\.\\d*)?$)/g,\n\t\t`$&${thousand}`\n\t);\n\n\tif (points.length === 1) return integer;\n\n\treturn `${integer}.${points[1]}`;\n}\n\nexport function renderNode(node: ReactNode, container = document.body) {\n\tconst div: HTMLDivElement | null = document.createElement(\"div\");\n\tcontainer.append(div);\n\n\tconst root: Root | null = createRoot(div);\n\tconst sto = setTimeout(() => {\n\t\troot?.render(node);\n\t}, 0);\n\n\treturn () => {\n\t\tdiv?.remove();\n\t\troot?.unmount();\n\t\tsto && clearTimeout(sto);\n\t};\n}\n\nexport function getSuffixByUrl(url: string) {\n\treturn url.match(/\\.([^\\./\\?]+)($|\\?)/)?.[1];\n}\n\nexport function getFileType(suffix: string, type?: string) {\n\tswitch (true) {\n\t\tcase [\n\t\t\t\"jpg\",\n\t\t\t\"jpeg\",\n\t\t\t\"png\",\n\t\t\t\"webp\",\n\t\t\t\"svg\",\n\t\t\t\"avif\",\n\t\t\t\"heif\",\n\t\t\t\"heic\",\n\t\t\t\"apng\",\n\t\t\t\"bmp\",\n\t\t\t\"ico\",\n\t\t].includes(suffix) || type?.startsWith(\"image/\"):\n\t\t\treturn \"IMAGE\";\n\t\tcase [\n\t\t\t\"mp4\",\n\t\t\t\"avi\",\n\t\t\t\"webm\",\n\t\t\t\"ogv\",\n\t\t\t\"mov\",\n\t\t\t\"mkv\",\n\t\t\t\"mpd\",\n\t\t\t\"m3u8\",\n\t\t].includes(suffix) || type?.startsWith(\"video/\"):\n\t\t\treturn \"VIDEO\";\n\t\tdefault:\n\t\t\treturn \"UNKNOWN\";\n\t}\n}\n\nexport function fullScreen(el: HTMLElement) {\n\tel.requestFullscreen?.();\n}\n\nexport function exitFullScreen() {\n\tdocument.exitFullscreen?.();\n}\n\nexport function formatTime(\n\ttime: number,\n\toptions?: {\n\t\tzero?: boolean;\n\t\tunits?: string[];\n\t}\n) {\n\tconst result: string[] = [];\n\tconst { zero = true, units = [\"\", \":\", \":\"] } = options || {};\n\n\tconst l = units.length;\n\tlet i = 0;\n\n\twhile (i < l) {\n\t\tif (time <= 0 && i > 1) break;\n\n\t\tconst n = Math.round(time % 60);\n\n\t\ttime = Math.floor(time / 60);\n\n\t\tresult.unshift((zero && n < 10 ? `0${n}` : n) + units[i++]);\n\t}\n\n\treturn result.join(\"\");\n}\n\nexport function getNextSorter(\n\tprevSortBy: string,\n\tprevSortType: string,\n\tsortBy: string\n): [sortBy: string, sortType: string] {\n\tconst types = [\"desc\", \"asc\"];\n\n\tif (prevSortBy === sortBy) {\n\t\tconst i = types.findIndex((t) => t === prevSortType) + 1;\n\t\tconst type = types[i] || \"\";\n\t\tconst by = type === \"\" ? \"\" : sortBy;\n\n\t\treturn [by, type];\n\t}\n\n\treturn [sortBy, \"desc\"];\n}\n\nexport function formatBytes(bytes: number, decimals = 2) {\n\tif (!+bytes) return \"0 Bytes\";\n\n\tconst k = 1024;\n\tconst dm = decimals < 0 ? 0 : decimals;\n\tconst sizes = [\"B\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"];\n\n\tconst i = Math.floor(Math.log(bytes) / Math.log(k));\n\n\treturn `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}`;\n}\n\nexport function clamp(value: number, min: number, max: number) {\n\treturn value < min ? min : value > max ? max : value;\n}\n\nexport const arrayMove = (array, fromIndex: number, toIndex: number) => {\n\tif (toIndex >= array.length) {\n\t\tlet k = toIndex - array.length + 1;\n\t\twhile (k--) {\n\t\t\tarray.push(undefined);\n\t\t}\n\t}\n\tarray.splice(toIndex, 0, array.splice(fromIndex, 1)[0]);\n\treturn array;\n};\n\ntype ReactiveObject<T> = T & { __isReactive?: boolean };\n\nexport function useReactive<T extends object>(\n\tinitialState: T\n): ReactiveObject<T> {\n\tconst [, setState] = useState<number>(0);\n\tconst reactiveState = useRef<ReactiveObject<T>>(initialState);\n\n\tuseEffect(() => {\n\t\tif (!reactiveState.current.__isReactive) {\n\t\t\treactiveState.current = createReactiveObject(\n\t\t\t\treactiveState.current,\n\t\t\t\tsetState\n\t\t\t);\n\t\t}\n\t}, []);\n\n\treturn reactiveState.current;\n}\n\nfunction createReactiveObject<T extends object>(\n\ttarget: T,\n\tsetState: React.Dispatch<React.SetStateAction<number>>\n): ReactiveObject<T> {\n\treturn new Proxy(target, {\n\t\tget(obj, prop) {\n\t\t\tif (prop === \"__isReactive\") return true;\n\t\t\treturn Reflect.get(obj, prop);\n\t\t},\n\t\tset(obj, prop, value) {\n\t\t\tconst result = Reflect.set(obj, prop, value);\n\t\t\tsetState((prev) => prev + 1); // Trigger re-render\n\t\t\treturn result;\n\t\t},\n\t}) as ReactiveObject<T>;\n}\n\nexport default useReactive;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"affix.js","names":[],"sources":["../../../../packages/components/affix/affix.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { debounce } from \"radash\";\nimport {\n\tChildren,\n\tMouseEvent,\n\tcloneElement,\n\tuseEffect,\n\tuseMemo,\n\tuseState,\n} from \"react\";\nimport \"./index.css\";\nimport ToTop from \"./totop\";\nimport { IAffix } from \"./type\";\n\nconst Affix = (props: IAffix) => {\n\tconst {\n\t\tposition = \"fixed\",\n\t\tleft,\n\t\ttop,\n\t\tright,\n\t\tbottom,\n\t\toffset,\n\t\tstyle,\n\t\tclassName,\n\t\tchildren,\n\t\tgetContainer = () => {\n\t\t\tif (typeof document === \"undefined\") return null;\n\t\t\treturn document.body;\n\t\t},\n\t} = props;\n\n\tconst [hidden, setHidden] = useState<boolean>(false);\n\n\tconst hijackChildren = useMemo(() => {\n\t\treturn Children.map(children, (node: any) => {\n\t\t\tif (node.type === ToTop) {\n\t\t\t\tconst { onClick } = node.props;\n\n\t\t\t\treturn cloneElement(node, {\n\t\t\t\t\tkey: node.key,\n\t\t\t\t\t...node.props,\n\t\t\t\t\tonClick: (e: MouseEvent) => {\n\t\t\t\t\t\tconst container = getContainer();\n\n\t\t\t\t\t\tonClick?.(e);\n\t\t\t\t\t\tcontainer?.scrollTo({\n\t\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\t\tbehavior: \"smooth\",\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn node;\n\t\t});\n\t}, [children, getContainer]);\n\n\tuseEffect(() => {\n\t\tconst container = getContainer();\n\t\tif (!offset || !container) return;\n\n\t\tconst listener = debounce({ delay: 160 }, () => {\n\t\t\tconst top = container.scrollTop;\n\n\t\t\tsetHidden(top < offset);\n\t\t});\n\n\t\tlistener();\n\t\tcontainer.addEventListener(\"scroll\", listener);\n\n\t\treturn () => {\n\t\t\tcontainer.removeEventListener(\"scroll\", listener);\n\t\t};\n\t}, [offset, getContainer]);\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\"i-affix\", className, {\n\t\t\t\t\"i-affix-hidden\": hidden,\n\t\t\t})}\n\t\t\tstyle={{\n\t\t\t\t...style,\n\t\t\t\tposition,\n\t\t\t\tleft,\n\t\t\t\ttop,\n\t\t\t\tright,\n\t\t\t\tbottom,\n\t\t\t}}\n\t\t>\n\t\t\t{hijackChildren}\n\t\t</div>\n\t);\n};\n\nAffix.ToTop = ToTop;\n\nexport default Affix;\n"],"mappings":";;;;;;AAcA,MAAM,SAAS,UAAkB;CAChC,MAAM,EACL,WAAW,SACX,MACA,KACA,OACA,QACA,QACA,OACA,WACA,UACA,qBAAqB;AACpB,MAAI,OAAO,aAAa,YAAa,QAAO;AAC5C,SAAO,SAAS;OAEd;CAEJ,MAAM,CAAC,QAAQ,aAAa,SAAkB,MAAM;CAEpD,MAAM,iBAAiB,cAAc;AACpC,SAAO,SAAS,IAAI,WAAW,SAAc;AAC5C,OAAI,KAAK,SAAS,OAAO;IACxB,MAAM,EAAE,YAAY,KAAK;AAEzB,WAAO,aAAa,MAAM;KACzB,KAAK,KAAK;KACV,GAAG,KAAK;KACR,UAAU,MAAkB;MAC3B,MAAM,YAAY,cAAc;AAEhC,gBAAU,EAAE;AACZ,iBAAW,SAAS;OACnB,KAAK;OACL,MAAM;OACN,UAAU;OACV,CAAC;;KAEH,CAAC;;AAGH,UAAO;IACN;IACA,CAAC,UAAU,aAAa,CAAC;AAE5B,iBAAgB;EACf,MAAM,YAAY,cAAc;AAChC,MAAI,CAAC,UAAU,CAAC,UAAW;EAE3B,MAAM,WAAW,SAAS,EAAE,OAAO,KAAK,QAAQ;GAC/C,MAAM,MAAM,UAAU;AAEtB,aAAU,MAAM,OAAO;IACtB;AAEF,YAAU;AACV,YAAU,iBAAiB,UAAU,SAAS;AAE9C,eAAa;AACZ,aAAU,oBAAoB,UAAU,SAAS;;IAEhD,CAAC,QAAQ,aAAa,CAAC;AAE1B,QACC,oBAAC,OAAD;EACC,WAAW,WAAW,WAAW,WAAW,EAC3C,kBAAkB,QAClB,CAAC;EACF,OAAO;GACN,GAAG;GACH;GACA;GACA;GACA;GACA;GACA;YAEA;EACG,CAAA;;AAIP,MAAM,QAAQ"}
1
+ {"version":3,"file":"affix.js","names":[],"sources":["../../../../packages/components/affix/affix.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { debounce } from \"radash\";\nimport {\n\tChildren,\n\tMouseEvent,\n\tcloneElement,\n\tuseEffect,\n\tuseMemo,\n\tuseState,\n} from \"react\";\nimport \"./index.css\";\nimport ToTop from \"./totop\";\nimport { IAffix } from \"./type\";\n\nconst Affix = (props: IAffix) => {\n\tconst {\n\t\tposition = \"fixed\",\n\t\tleft,\n\t\ttop,\n\t\tright,\n\t\tbottom,\n\t\toffset,\n\t\tstyle,\n\t\tclassName,\n\t\tchildren,\n\t\tgetContainer = () => {\n\t\t\tif (typeof document === \"undefined\") return null;\n\t\t\treturn document.body;\n\t\t},\n\t} = props;\n\n\tconst [hidden, setHidden] = useState<boolean>(false);\n\n\tconst hijackChildren = useMemo(() => {\n\t\treturn Children.map(children, (node: any) => {\n\t\t\tif (node.type === ToTop) {\n\t\t\t\tconst { onClick } = node.props;\n\n\t\t\t\treturn cloneElement(node, {\n\t\t\t\t\tkey: node.key,\n\t\t\t\t\t...node.props,\n\t\t\t\t\tonClick: (e: MouseEvent) => {\n\t\t\t\t\t\tconst container = getContainer();\n\n\t\t\t\t\t\tonClick?.(e);\n\t\t\t\t\t\tcontainer?.scrollTo({\n\t\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\t\tbehavior: \"smooth\",\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn node;\n\t\t});\n\t}, [children, getContainer]);\n\n\tuseEffect(() => {\n\t\tconst container = getContainer();\n\t\tif (!offset || !container) return;\n\n\t\tconst listener = debounce({ delay: 160 }, () => {\n\t\t\tconst top = container.scrollTop;\n\n\t\t\tsetHidden(top < offset);\n\t\t});\n\n\t\tlistener();\n\t\tcontainer.addEventListener(\"scroll\", listener);\n\n\t\treturn () => {\n\t\t\tcontainer.removeEventListener(\"scroll\", listener);\n\t\t};\n\t}, [offset, getContainer]);\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\"i-affix\", className, {\n\t\t\t\t\"i-affix-hidden\": hidden,\n\t\t\t})}\n\t\t\tstyle={{\n\t\t\t\t...style,\n\t\t\t\tposition,\n\t\t\t\tleft,\n\t\t\t\ttop,\n\t\t\t\tright,\n\t\t\t\tbottom,\n\t\t\t}}\n\t\t>\n\t\t\t{hijackChildren}\n\t\t</div>\n\t);\n};\n\nAffix.ToTop = ToTop;\n\nexport default Affix;\n"],"mappings":";;;;;;;CAcA,MAAM,EACL,WAAM,SACL,MACA,KACA,OACA,QACA,QACA,OACA,WACA,UACA,qBAAQ;AACR,MAAA,OAAY,aAAS,YAAA,QAAA;AACpB,SAAI,SAAO;OAEX;;;AAKF,SAAM,SAAA,IAAe,WAAW,SAAK;AACpC,OAAA,KAAO,SAAY,OAAC;IACnB,MAAI,EAAK,YAAS,KAAO;;KAGxB,KAAM,KAAC;KACN,GAAG,KAAE;KACL,UAAQ,MAAK;MACb,MAAO,YAAM,cAAe;;AAG3B,iBAAW,SAAC;OACZ,KAAA;OACC,MAAM;OACN,UAAO;OACP,CAAA;;KAEF,CAAC;;;IAIH;IACC,CAAA,UAAA,aAAA,CAAA;;EAGH,MAAA,YAAgB,cAAA;AACf,MAAA,CAAK,UAAU,CAAC,UAAE;;GAGlB,MAAM,MAAA,UAAW;;IAGhB;;AAGD,YAAU,iBAAA,UAAA,SAAA;;AAGV,aAAW,oBAAE,UAAA,SAAA;;IAEZ,CAAA,QAAA,aAAA,CAAA;QAGF,oBAAA,OAAA;EACE,WAAA,WAAA,WAAA,WAAA,EACA,kBAAW,QACV,CAAC;EACF,OAAE;GACF,GAAA;GACC;GACA;GACA;GACA;GACA;GACA;YAEF;EACE,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import button_default from "../button/index.js";
2
2
  import icon_default from "../icon/index.js";
3
3
  import classNames from "classnames";
4
- import { SkipPreviousRound } from "/Users/iann/codes/ioca-react/node_modules/.pnpm/@ricons+material@0.12.0/node_modules/@ricons/material/es/index.js";
4
+ import { SkipPreviousRound } from "@ricons/material";
5
5
  import { jsx } from "react/jsx-runtime";
6
6
  //#region packages/components/affix/totop.tsx
7
7
  function ToTop(props) {
@@ -1 +1 @@
1
- {"version":3,"file":"badge.js","names":[],"sources":["../../../../packages/components/badge/badge.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport \"./index.css\";\nimport type { IBadge } from \"./type\";\n\nconst Badge = (props: IBadge) => {\n\tconst {\n\t\tcontent,\n\t\tcontentClass,\n\t\tdot,\n\t\tdotSize,\n\t\tround,\n\t\tdisabled,\n\t\tstyle,\n\t\tclassName,\n\t\tchildren,\n\t} = props;\n\n\treturn (\n\t\t<div\n\t\t\tstyle={style}\n\t\t\tclassName={classNames(\"i-badge\", { rounded: round }, className)}\n\t\t>\n\t\t\t{children}\n\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-badge-content\", contentClass, {\n\t\t\t\t\t\"i-badge-dot\": dot,\n\t\t\t\t\t\"i-badge-hidden\": disabled,\n\t\t\t\t})}\n\t\t\t\tstyle={{ fontSize: dotSize }}\n\t\t\t>\n\t\t\t\t{content}\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default Badge;\n"],"mappings":";;;AAIA,MAAM,SAAS,UAAkB;CAChC,MAAM,EACL,SACA,cACA,KACA,SACA,OACA,UACA,OACA,WACA,aACG;AAEJ,QACC,qBAAC,OAAD;EACQ;EACP,WAAW,WAAW,WAAW,EAAE,SAAS,OAAO,EAAE,UAAU;YAFhE,CAIE,UAED,oBAAC,OAAD;GACC,WAAW,WAAW,mBAAmB,cAAc;IACtD,eAAe;IACf,kBAAkB;IAClB,CAAC;GACF,OAAO,EAAE,UAAU,SAAS;aAE3B;GACG,CAAA,CACD"}
1
+ {"version":3,"file":"badge.js","names":[],"sources":["../../../../packages/components/badge/badge.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport \"./index.css\";\nimport type { IBadge } from \"./type\";\n\nconst Badge = (props: IBadge) => {\n\tconst {\n\t\tcontent,\n\t\tcontentClass,\n\t\tdot,\n\t\tdotSize,\n\t\tround,\n\t\tdisabled,\n\t\tstyle,\n\t\tclassName,\n\t\tchildren,\n\t} = props;\n\n\treturn (\n\t\t<div\n\t\t\tstyle={style}\n\t\t\tclassName={classNames(\"i-badge\", { rounded: round }, className)}\n\t\t>\n\t\t\t{children}\n\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-badge-content\", contentClass, {\n\t\t\t\t\t\"i-badge-dot\": dot,\n\t\t\t\t\t\"i-badge-hidden\": disabled,\n\t\t\t\t})}\n\t\t\t\tstyle={{ fontSize: dotSize }}\n\t\t\t>\n\t\t\t\t{content}\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default Badge;\n"],"mappings":";;;;CAIA,MAAM,EACL,SACC,cACA,KACA,SACA,OACA,UACA,OACA,WACA,aACA;QAGD,qBAAA,OAAA;EACE;EACA,WAAO,WAAK,WAAA,EAAA,SAAA,OAAA,EAAA,UAAA;YAFd,CAIC,UAAA,oBAAA,OAAA;GAGE,WAAA,WAAA,mBAAA,cAAA;IACA,eAAW;IACV,kBAAkB;IAClB,CAAC;GACF,OAAE,EAAA,UAAA,SAAA;aAEH;GACE,CAAA,CACG"}
@@ -1 +1 @@
1
- {"version":3,"file":"button.js","names":[],"sources":["../../../../packages/components/button/button.tsx"],"sourcesContent":["import classnames from \"classnames\";\nimport { MouseEvent, createElement, useEffect } from \"react\";\nimport useRipple from \"../../js/useRipple\";\nimport Loading from \"../loading\";\nimport Confirm from \"./confirm\";\nimport Group from \"./group\";\nimport \"./index.css\";\nimport Toggle from \"./toggle\";\nimport { CompositionButton, IButton } from \"./type\";\n\nconst formatClass = ({\n\toutline,\n\tflat,\n\tloading,\n\tdisabled,\n\tsize = \"normal\",\n\tblock,\n\tround,\n\tsquare,\n\tsecondary,\n\tclassName,\n}: IButton) =>\n\tclassnames(\"i-btn\", className, {\n\t\t\"i-btn-outline\": outline,\n\t\t\"i-btn-flat\": flat,\n\t\t\"i-btn-block\": block,\n\t\t\"i-btn-loading\": loading,\n\t\t\"i-btn-square\": square,\n\t\t\"i-btn-secondary\": secondary,\n\t\t[`i-btn-${size}`]: size !== \"normal\",\n\t\tround,\n\t\tdisabled,\n\t});\n\nconst Button = (props: IButton) => {\n\tconst {\n\t\tas: As = \"a\",\n\t\tref,\n\t\tchildren,\n\t\tclassName,\n\t\tloading,\n\t\tflat,\n\t\toutline,\n\t\tsquare,\n\t\tsecondary,\n\t\tsize,\n\t\tround,\n\t\thref,\n\t\tripple = true,\n\t\tonClick,\n\t\t...restProps\n\t} = props;\n\n\tconst handleClick = (e: MouseEvent<HTMLElement>) => {\n\t\tif (loading || restProps.disabled) {\n\t\t\te.stopPropagation();\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tonClick?.(e);\n\t};\n\n\tif (!children) return <></>;\n\n\tconst childNodes = [\n\t\tloading && <Loading key='loading' />,\n\t\tcreateElement(\n\t\t\t\"span\",\n\t\t\t{ key: \"content\", className: \"i-btn-content\" },\n\t\t\tchildren,\n\t\t),\n\t];\n\n\tconst attrs = {\n\t\tclassName: formatClass(props),\n\t\t[\"data-ripple\"]:\n\t\t\tripple && !loading && !restProps.disabled ? \"\" : undefined,\n\t\tonClick: handleClick,\n\t};\n\n\tuseEffect(() => {\n\t\tripple && useRipple();\n\t}, [ripple]);\n\n\tif (typeof As === \"string\") {\n\t\treturn createElement(\n\t\t\tAs,\n\t\t\t{\n\t\t\t\tref,\n\t\t\t\thref,\n\t\t\t\t...attrs,\n\t\t\t\t...restProps,\n\t\t\t},\n\t\t\tchildNodes,\n\t\t);\n\t}\n\n\treturn createElement(\n\t\tAs,\n\t\t{\n\t\t\tto: href || \"\",\n\t\t\t...attrs,\n\t\t\t...restProps,\n\t\t},\n\t\tchildNodes,\n\t);\n};\n\nButton.Toggle = Toggle;\nButton.Confirm = Confirm;\nButton.Group = Group;\n\nexport default Button as CompositionButton;\n"],"mappings":";;;;;;;;;AAUA,MAAM,eAAe,EACpB,SACA,MACA,SACA,UACA,OAAO,UACP,OACA,OACA,QACA,WACA,gBAEA,WAAW,SAAS,WAAW;CAC9B,iBAAiB;CACjB,cAAc;CACd,eAAe;CACf,iBAAiB;CACjB,gBAAgB;CAChB,mBAAmB;EAClB,SAAS,SAAS,SAAS;CAC5B;CACA;CACA,CAAC;AAEH,MAAM,UAAU,UAAmB;CAClC,MAAM,EACL,IAAI,KAAK,KACT,KACA,UACA,WACA,SACA,MACA,SACA,QACA,WACA,MACA,OACA,MACA,SAAS,MACT,SACA,GAAG,cACA;CAEJ,MAAM,eAAe,MAA+B;AACnD,MAAI,WAAW,UAAU,UAAU;AAClC,KAAE,iBAAiB;AACnB,KAAE,gBAAgB;AAClB;;AAGD,YAAU,EAAE;;AAGb,KAAI,CAAC,SAAU,QAAO,oBAAA,YAAA,EAAK,CAAA;CAE3B,MAAM,aAAa,CAClB,WAAW,oBAAC,iBAAD,EAAyB,EAAZ,UAAY,EACpC,cACC,QACA;EAAE,KAAK;EAAW,WAAW;EAAiB,EAC9C,SACA,CACD;CAED,MAAM,QAAQ;EACb,WAAW,YAAY,MAAM;GAC5B,gBACA,UAAU,CAAC,WAAW,CAAC,UAAU,WAAW,KAAK,KAAA;EAClD,SAAS;EACT;AAED,iBAAgB;AACf,YAAU,WAAW;IACnB,CAAC,OAAO,CAAC;AAEZ,KAAI,OAAO,OAAO,SACjB,QAAO,cACN,IACA;EACC;EACA;EACA,GAAG;EACH,GAAG;EACH,EACD,WACA;AAGF,QAAO,cACN,IACA;EACC,IAAI,QAAQ;EACZ,GAAG;EACH,GAAG;EACH,EACD,WACA;;AAGF,OAAO,SAAS;AAChB,OAAO,UAAU;AACjB,OAAO,QAAQ"}
1
+ {"version":3,"file":"button.js","names":[],"sources":["../../../../packages/components/button/button.tsx"],"sourcesContent":["import classnames from \"classnames\";\nimport { MouseEvent, createElement, useEffect } from \"react\";\nimport useRipple from \"../../js/useRipple\";\nimport Loading from \"../loading\";\nimport Confirm from \"./confirm\";\nimport Group from \"./group\";\nimport \"./index.css\";\nimport Toggle from \"./toggle\";\nimport { CompositionButton, IButton } from \"./type\";\n\nconst formatClass = ({\n\toutline,\n\tflat,\n\tloading,\n\tdisabled,\n\tsize = \"normal\",\n\tblock,\n\tround,\n\tsquare,\n\tsecondary,\n\tclassName,\n}: IButton) =>\n\tclassnames(\"i-btn\", className, {\n\t\t\"i-btn-outline\": outline,\n\t\t\"i-btn-flat\": flat,\n\t\t\"i-btn-block\": block,\n\t\t\"i-btn-loading\": loading,\n\t\t\"i-btn-square\": square,\n\t\t\"i-btn-secondary\": secondary,\n\t\t[`i-btn-${size}`]: size !== \"normal\",\n\t\tround,\n\t\tdisabled,\n\t});\n\nconst Button = (props: IButton) => {\n\tconst {\n\t\tas: As = \"a\",\n\t\tref,\n\t\tchildren,\n\t\tclassName,\n\t\tloading,\n\t\tflat,\n\t\toutline,\n\t\tsquare,\n\t\tsecondary,\n\t\tsize,\n\t\tround,\n\t\thref,\n\t\tripple = true,\n\t\tonClick,\n\t\t...restProps\n\t} = props;\n\n\tconst handleClick = (e: MouseEvent<HTMLElement>) => {\n\t\tif (loading || restProps.disabled) {\n\t\t\te.stopPropagation();\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tonClick?.(e);\n\t};\n\n\tif (!children) return <></>;\n\n\tconst childNodes = [\n\t\tloading && <Loading key='loading' />,\n\t\tcreateElement(\n\t\t\t\"span\",\n\t\t\t{ key: \"content\", className: \"i-btn-content\" },\n\t\t\tchildren,\n\t\t),\n\t];\n\n\tconst attrs = {\n\t\tclassName: formatClass(props),\n\t\t[\"data-ripple\"]:\n\t\t\tripple && !loading && !restProps.disabled ? \"\" : undefined,\n\t\tonClick: handleClick,\n\t};\n\n\tuseEffect(() => {\n\t\tripple && useRipple();\n\t}, [ripple]);\n\n\tif (typeof As === \"string\") {\n\t\treturn createElement(\n\t\t\tAs,\n\t\t\t{\n\t\t\t\tref,\n\t\t\t\thref,\n\t\t\t\t...attrs,\n\t\t\t\t...restProps,\n\t\t\t},\n\t\t\tchildNodes,\n\t\t);\n\t}\n\n\treturn createElement(\n\t\tAs,\n\t\t{\n\t\t\tto: href || \"\",\n\t\t\t...attrs,\n\t\t\t...restProps,\n\t\t},\n\t\tchildNodes,\n\t);\n};\n\nButton.Toggle = Toggle;\nButton.Confirm = Confirm;\nButton.Group = Group;\n\nexport default Button as CompositionButton;\n"],"mappings":";;;;;;;;;uBAUA,SACC,MACA,SACA,UACA,OAAA,UACA,OACA,OACA,QACA,WACA,gBAEA,WAAW,SAAC,WAAA;CACZ,iBAAkB;CACjB,cAAc;CACd,eAAc;CACd,iBAAe;CACf,gBAAgB;CAChB,mBAAgB;EACf,SAAM,SAAY,SAAS;CAC5B;CACA;CACA,CAAA;;CAGF,MAAM,EACL,IAAK,KAAC,KACL,KACA,UACA,WACA,SACA,MACA,SACA,QACA,WACA,MACA,OACA,MACA,SAAI,MACJ,SACA,GAAA,cACG;;AAGJ,MAAK,WAAC,UAAkB,UAAW;AAClC,KAAG,iBAAY;AACd,KAAE,gBAAgB;AAClB;;;;;qBASF,WAAM,oBAAA,iBAAA,EAAa,EAAA,UAAA,EAClB,cACA,QACC;EAAC,KAAK;EAAA,WAAA;EAAA,EACN,SACA,CACD;;EAGD,WAAY,YAAE,MAAA;GACb,gBACC,UAAM,CAAA,WAAQ,CAAA,UAAA,WAAA,KAAA,KAAA;EACf,SAAS;EACT;;AAGD,YAAW,WAAK;IACf,CAAA,OAAU,CAAA;4BAGX,QAAI,cACH,IACC;EACA;EACC;EACA,GAAA;EACA,GAAG;EACH,EACD,WACA;sBAIF,IACC;EACA,IAAA,QAAA;EACC,GAAG;EACH,GAAG;EACH,EACD,WACA;;;AAIF,OAAO,UAAS;AAChB,OAAO,QAAQ"}
@@ -1 +1 @@
1
- {"version":3,"file":"card.js","names":[],"sources":["../../../../packages/components/card/card.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport \"./index.css\";\nimport { ICard } from \"./type\";\n\nconst Card = (props: ICard) => {\n\tconst {\n\t\thideShadow,\n\t\tborder,\n\t\tclassName,\n\t\tchildren,\n\t\theader,\n\t\tfooter,\n\t\t...restProps\n\t} = props;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\"i-card\", className, {\n\t\t\t\tshadow: !hideShadow,\n\t\t\t\t\"i-card-bordered\": border,\n\t\t\t})}\n\t\t\t{...restProps}\n\t\t>\n\t\t\t{header && <div className='i-card-header'>{header}</div>}\n\n\t\t\t{children && <div className='i-card-content'>{children}</div>}\n\n\t\t\t{footer && <div className='i-card-footer'>{footer}</div>}\n\t\t</div>\n\t);\n};\n\nexport default Card;\n"],"mappings":";;;AAIA,MAAM,QAAQ,UAAiB;CAC9B,MAAM,EACL,YACA,QACA,WACA,UACA,QACA,QACA,GAAG,cACA;AAEJ,QACC,qBAAC,OAAD;EACC,WAAW,WAAW,UAAU,WAAW;GAC1C,QAAQ,CAAC;GACT,mBAAmB;GACnB,CAAC;EACF,GAAI;YALL;GAOE,UAAU,oBAAC,OAAD;IAAK,WAAU;cAAiB;IAAa,CAAA;GAEvD,YAAY,oBAAC,OAAD;IAAK,WAAU;IAAkB;IAAe,CAAA;GAE5D,UAAU,oBAAC,OAAD;IAAK,WAAU;cAAiB;IAAa,CAAA;GACpD"}
1
+ {"version":3,"file":"card.js","names":[],"sources":["../../../../packages/components/card/card.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport \"./index.css\";\nimport { ICard } from \"./type\";\n\nconst Card = (props: ICard) => {\n\tconst {\n\t\thideShadow,\n\t\tborder,\n\t\tclassName,\n\t\tchildren,\n\t\theader,\n\t\tfooter,\n\t\t...restProps\n\t} = props;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\"i-card\", className, {\n\t\t\t\tshadow: !hideShadow,\n\t\t\t\t\"i-card-bordered\": border,\n\t\t\t})}\n\t\t\t{...restProps}\n\t\t>\n\t\t\t{header && <div className='i-card-header'>{header}</div>}\n\n\t\t\t{children && <div className='i-card-content'>{children}</div>}\n\n\t\t\t{footer && <div className='i-card-footer'>{footer}</div>}\n\t\t</div>\n\t);\n};\n\nexport default Card;\n"],"mappings":";;;;CAIA,MAAM,EACL,YACC,QACA,WACA,UACA,QACA,QACA,GAAA,cACG;QAGJ,qBAAA,OAAA;EACE,WAAA,WAAA,UAAA,WAAA;GACA,QAAS,CAAC;GACT,mBAAmB;GACnB,CAAC;EACF,GAAE;YALJ;GAOC,UAAA,oBAAA,OAAA;IAAA,WAAA;cAAA;IAAA,CAAA;;;;;;;;;GAKE"}
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox.js","names":[],"sources":["../../../../packages/components/checkbox/checkbox.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport \"../../css/input.css\";\nimport { formatOption } from \"../../js/utils\";\nimport \"./index.css\";\nimport CheckboxItem from \"./item\";\nimport type { ICheckbox } from \"./type\";\n\nfunction Checkbox(props: ICheckbox) {\n\tconst {\n\t\tlabel,\n\t\tname,\n\t\toptions = [],\n\t\tvalue = \"\",\n\t\ttype = \"default\",\n\t\toptionInline = true,\n\t\tlabelInline,\n\t\tdisabled,\n\t\tstatus = \"normal\",\n\t\tmessage,\n\t\trequired,\n\t\tclassName,\n\t\trenderItem,\n\t\tonChange,\n\t\t...restProps\n\t} = props;\n\n\tconst [selectedValues, setSelectedValues] = useState<any>(value);\n\n\tconst formattedOptions = useMemo(() => formatOption(options), [options]);\n\n\tconst handleChange = (checked, opt, e) => {\n\t\tconst group = [...selectedValues];\n\t\tconst i = group.findIndex((item) => item === opt.value);\n\n\t\tif (checked && i < 0) {\n\t\t\tgroup.push(opt.value);\n\t\t} else if (!checked && i > -1) {\n\t\t\tgroup.splice(i, 1);\n\t\t}\n\n\t\tsetSelectedValues(group);\n\t\tonChange?.(group, opt, e);\n\t};\n\n\tuseEffect(() => {\n\t\tsetSelectedValues(value);\n\t}, [value]);\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\n\t\t\t\t\"i-checkbox i-input-label\",\n\t\t\t\t{\n\t\t\t\t\t[`i-checkbox-${status}`]: status !== \"normal\",\n\t\t\t\t\t\"i-input-inline\": labelInline,\n\t\t\t\t},\n\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...restProps}\n\t\t>\n\t\t\t{label && (\n\t\t\t\t<span className='i-input-label-text'>\n\t\t\t\t\t{required && <span className='error'>*</span>}\n\t\t\t\t\t{label}\n\n\t\t\t\t\t{message && <p className='i-checkbox-message'>{message}</p>}\n\t\t\t\t</span>\n\t\t\t)}\n\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-checkbox-options\", {\n\t\t\t\t\t\"i-options-block\": !optionInline,\n\t\t\t\t\t\"i-checkbox-options-button\": type === \"button\",\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t{formattedOptions.map((option) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<CheckboxItem\n\t\t\t\t\t\t\tkey={option.value as string}\n\t\t\t\t\t\t\tname={name}\n\t\t\t\t\t\t\tvalue={selectedValues.includes(option.value)}\n\t\t\t\t\t\t\toptionValue={option.value}\n\t\t\t\t\t\t\ttype={type}\n\t\t\t\t\t\t\tdisabled={disabled || option.disabled}\n\t\t\t\t\t\t\tonChange={(checked, e) =>\n\t\t\t\t\t\t\t\thandleChange(checked, option, e)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{renderItem ?? option.label}\n\t\t\t\t\t\t</CheckboxItem>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nCheckbox.Item = CheckboxItem;\n\nexport default Checkbox;\n"],"mappings":";;;;;;AAQA,SAAS,SAAS,OAAkB;CACnC,MAAM,EACL,OACA,MACA,UAAU,EAAE,EACZ,QAAQ,IACR,OAAO,WACP,eAAe,MACf,aACA,UACA,SAAS,UACT,SACA,UACA,WACA,YACA,UACA,GAAG,cACA;CAEJ,MAAM,CAAC,gBAAgB,qBAAqB,SAAc,MAAM;CAEhE,MAAM,mBAAmB,cAAc,aAAa,QAAQ,EAAE,CAAC,QAAQ,CAAC;CAExE,MAAM,gBAAgB,SAAS,KAAK,MAAM;EACzC,MAAM,QAAQ,CAAC,GAAG,eAAe;EACjC,MAAM,IAAI,MAAM,WAAW,SAAS,SAAS,IAAI,MAAM;AAEvD,MAAI,WAAW,IAAI,EAClB,OAAM,KAAK,IAAI,MAAM;WACX,CAAC,WAAW,IAAI,GAC1B,OAAM,OAAO,GAAG,EAAE;AAGnB,oBAAkB,MAAM;AACxB,aAAW,OAAO,KAAK,EAAE;;AAG1B,iBAAgB;AACf,oBAAkB,MAAM;IACtB,CAAC,MAAM,CAAC;AAEX,QACC,qBAAC,OAAD;EACC,WAAW,WACV,4BACA;IACE,cAAc,WAAW,WAAW;GACrC,kBAAkB;GAClB,EAED,UACA;EACD,GAAI;YAVL,CAYE,SACA,qBAAC,QAAD;GAAM,WAAU;aAAhB;IACE,YAAY,oBAAC,QAAD;KAAM,WAAU;eAAQ;KAAQ,CAAA;IAC5C;IAEA,WAAW,oBAAC,KAAD;KAAG,WAAU;eAAsB;KAAY,CAAA;IACtD;MAGP,oBAAC,OAAD;GACC,WAAW,WAAW,sBAAsB;IAC3C,mBAAmB,CAAC;IACpB,6BAA6B,SAAS;IACtC,CAAC;aAED,iBAAiB,KAAK,WAAW;AACjC,WACC,oBAAC,cAAD;KAEO;KACN,OAAO,eAAe,SAAS,OAAO,MAAM;KAC5C,aAAa,OAAO;KACd;KACN,UAAU,YAAY,OAAO;KAC7B,WAAW,SAAS,MACnB,aAAa,SAAS,QAAQ,EAAC;eAG/B,cAAc,OAAO;KACT,EAXR,OAAO,MAWC;KAEd;GACE,CAAA,CACD;;;AAIP,SAAS,OAAO"}
1
+ {"version":3,"file":"checkbox.js","names":[],"sources":["../../../../packages/components/checkbox/checkbox.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport \"../../css/input.css\";\nimport { formatOption } from \"../../js/utils\";\nimport \"./index.css\";\nimport CheckboxItem from \"./item\";\nimport type { ICheckbox } from \"./type\";\n\nfunction Checkbox(props: ICheckbox) {\n\tconst {\n\t\tlabel,\n\t\tname,\n\t\toptions = [],\n\t\tvalue = \"\",\n\t\ttype = \"default\",\n\t\toptionInline = true,\n\t\tlabelInline,\n\t\tdisabled,\n\t\tstatus = \"normal\",\n\t\tmessage,\n\t\trequired,\n\t\tclassName,\n\t\trenderItem,\n\t\tonChange,\n\t\t...restProps\n\t} = props;\n\n\tconst [selectedValues, setSelectedValues] = useState<any>(value);\n\n\tconst formattedOptions = useMemo(() => formatOption(options), [options]);\n\n\tconst handleChange = (checked, opt, e) => {\n\t\tconst group = [...selectedValues];\n\t\tconst i = group.findIndex((item) => item === opt.value);\n\n\t\tif (checked && i < 0) {\n\t\t\tgroup.push(opt.value);\n\t\t} else if (!checked && i > -1) {\n\t\t\tgroup.splice(i, 1);\n\t\t}\n\n\t\tsetSelectedValues(group);\n\t\tonChange?.(group, opt, e);\n\t};\n\n\tuseEffect(() => {\n\t\tsetSelectedValues(value);\n\t}, [value]);\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\n\t\t\t\t\"i-checkbox i-input-label\",\n\t\t\t\t{\n\t\t\t\t\t[`i-checkbox-${status}`]: status !== \"normal\",\n\t\t\t\t\t\"i-input-inline\": labelInline,\n\t\t\t\t},\n\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...restProps}\n\t\t>\n\t\t\t{label && (\n\t\t\t\t<span className='i-input-label-text'>\n\t\t\t\t\t{required && <span className='error'>*</span>}\n\t\t\t\t\t{label}\n\n\t\t\t\t\t{message && <p className='i-checkbox-message'>{message}</p>}\n\t\t\t\t</span>\n\t\t\t)}\n\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-checkbox-options\", {\n\t\t\t\t\t\"i-options-block\": !optionInline,\n\t\t\t\t\t\"i-checkbox-options-button\": type === \"button\",\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t{formattedOptions.map((option) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<CheckboxItem\n\t\t\t\t\t\t\tkey={option.value as string}\n\t\t\t\t\t\t\tname={name}\n\t\t\t\t\t\t\tvalue={selectedValues.includes(option.value)}\n\t\t\t\t\t\t\toptionValue={option.value}\n\t\t\t\t\t\t\ttype={type}\n\t\t\t\t\t\t\tdisabled={disabled || option.disabled}\n\t\t\t\t\t\t\tonChange={(checked, e) =>\n\t\t\t\t\t\t\t\thandleChange(checked, option, e)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{renderItem ?? option.label}\n\t\t\t\t\t\t</CheckboxItem>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nCheckbox.Item = CheckboxItem;\n\nexport default Checkbox;\n"],"mappings":";;;;;;AAMA,SAAO,SAAO,OAAoB;SAElC,OACC,MACC,UAAK,EAAA,EACL,QAAI,IACJ,OAAO,WACP,eAAU,MACV,aACA,UACA,SAAA,UACA,SACA,UACA,WACA,YACA,UACA,GAAA,cACA;CAED,MAAI,CAAA,gBAAK,qBAAA,SAAA,MAAA;CAET,MAAM,mBAAiB,cAAA,aAA6B,QAAM,EAAA,CAAK,QAAC,CAAA;CAEhE,MAAM,gBAAgB,SAAG,KAAW,MAAG;;EAEvC,MAAM,IAAA,MAAA,WAAgB,SAAe,SAAK,IAAA,MAAA;AAEzC,MAAA,WAAe,IAAC,EAAA,OAAA,KAAA,IAAA,MAAA;WAEL,CAAC,WAAU,IAAA,GACrB,OAAM,OAAK,GAAI,EAAA;AAGhB,oBAAA,MAAA;;;AAID,iBAAC;;IAED,CAAA,MAAU,CAAC;AAEX,QAAA,qBAAA,OAAA;EAEA,WAAO,WACL,4BACA;IACG,cAAY,WAAY,WAAA;GAC1B,kBAAA;GACC,EAED,UAAA;EAED,GAAC;aAEA,SACF,qBAAA,QAAA;GAAA,WAAA;aAAA;IACE,YAAS,oBAAA,QAAA;KAAA,WAAA;eAAA;KAAA,CAAA;IACR;IAEC,WAAK,oBAAA,KAAA;KAAA,WAAA;eAAA;KAAA,CAAA;;MAIR,oBAAC,OAAD;;IAEC,mBAAA,CAAA;IACA,6BAAyB,SAAS;IACjC,CAAC;aAED,iBAAC,KAAA,WAAA;AACH,WACE,oBAAA,cAAA;KAEE;KACA,OAAK,eAAgB,SAAM,OAAA,MAAA;KAC3B,aAAU,OAAA;KACJ;KACN,UAAA,YAAoB,OAAK;KACzB,WAAU,SAAA,MACV,aAAU,SAAY,QAAO,EAAA;eAG7B,cAAA,OAAA;KACD,EAXM,OAAA,MAWN;KAEA;GACA,CAAA,CACA;;;AAIN,SAAA,OAAA"}
@@ -2,7 +2,7 @@ import helpericon_default from "../utils/helpericon/index.js";
2
2
  import Item from "./item.js";
3
3
  import classNames from "classnames";
4
4
  import { Children, useMemo, useState } from "react";
5
- import { MinusRound, PlusRound } from "/Users/iann/codes/ioca-react/node_modules/.pnpm/@ricons+material@0.12.0/node_modules/@ricons/material/es/index.js";
5
+ import { MinusRound, PlusRound } from "@ricons/material";
6
6
  import { jsx, jsxs } from "react/jsx-runtime";
7
7
  //#region packages/components/collapse/collapse.tsx
8
8
  const Collapse = (props) => {
@@ -1 +1 @@
1
- {"version":3,"file":"collapse.js","names":[],"sources":["../../../../packages/components/collapse/collapse.tsx"],"sourcesContent":["import { MinusRound, PlusRound } from \"@ricons/material\";\nimport classNames from \"classnames\";\nimport { Children, useMemo, useState } from \"react\";\nimport Helpericon from \"../utils/helpericon\";\nimport \"./index.css\";\nimport Item from \"./item\";\nimport { ICollapse, ICollapseItem, TKey } from \"./type\";\n\nconst Collapse = (props: ICollapse) => {\n\tconst {\n\t\tactive,\n\t\titems,\n\t\tmultiple,\n\t\tborder,\n\t\theaderClickable,\n\t\tclassName,\n\t\tchildren,\n\t\trenderToggle = (active: boolean) =>\n\t\t\tactive ? <MinusRound /> : <PlusRound />,\n\t\tonCollapse,\n\t\t...restProps\n\t} = props;\n\n\tconst [activeKey, setActiveKey] = useState(active);\n\n\tconst collapses = useMemo(() => {\n\t\tif (!items) {\n\t\t\tif (!children) return [];\n\n\t\t\treturn (\n\t\t\t\tChildren.map(children, (node, i) => {\n\t\t\t\t\tconst { key, props: nodeProps } = node as {\n\t\t\t\t\t\tkey?: TKey;\n\t\t\t\t\t\tprops?: any;\n\t\t\t\t\t};\n\t\t\t\t\tconst { title, children, content, disabled, ...restProps } =\n\t\t\t\t\t\tnodeProps;\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...restProps,\n\t\t\t\t\t\tkey: key || i,\n\t\t\t\t\t\ttitle,\n\t\t\t\t\t\tcontent: children || content,\n\t\t\t\t\t\tdisabled,\n\t\t\t\t\t};\n\t\t\t\t}) || []\n\t\t\t);\n\t\t}\n\n\t\treturn items;\n\t}, [children]);\n\n\tconst handleHeaderClick = (item: ICollapseItem) => {\n\t\tif (!headerClickable) return;\n\n\t\thandleToggle(item);\n\t};\n\n\tconst handleToggle = (item: ICollapseItem, e?) => {\n\t\tconst { key, disabled } = item;\n\t\te?.stopPropagation();\n\t\tif (disabled) return;\n\n\t\tif (!multiple) {\n\t\t\tconst nextActive = activeKey === key ? undefined : key;\n\t\t\tsetActiveKey(nextActive);\n\t\t\tonCollapse?.(key as TKey, nextActive !== undefined);\n\t\t\treturn;\n\t\t}\n\n\t\tconst group = Array.isArray(activeKey) ? [...activeKey] : [];\n\n\t\tconst i = group.findIndex((k) => k === key);\n\n\t\tif (i > -1) {\n\t\t\tgroup.splice(i, 1);\n\t\t} else {\n\t\t\tkey !== undefined && group.push(key);\n\t\t}\n\t\tsetActiveKey(group as any);\n\t\tonCollapse?.(key as TKey, i < 0);\n\t};\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\n\t\t\t\t\"i-collapse\",\n\t\t\t\t{\n\t\t\t\t\t\"i-collapse-bordered\": border,\n\t\t\t\t},\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...restProps}\n\t\t>\n\t\t\t{collapses.map((item) => {\n\t\t\t\tconst {\n\t\t\t\t\tkey,\n\t\t\t\t\ttitle,\n\t\t\t\t\tcontent,\n\t\t\t\t\tdisabled,\n\t\t\t\t\tclassName,\n\t\t\t\t\t...restProps\n\t\t\t\t} = item;\n\t\t\t\tconst isActive = multiple\n\t\t\t\t\t? ((activeKey as TKey[]) || []).includes(key)\n\t\t\t\t\t: activeKey === key;\n\n\t\t\t\treturn (\n\t\t\t\t\t<div\n\t\t\t\t\t\tkey={key}\n\t\t\t\t\t\tclassName={classNames(\"i-collapse-item\", className, {\n\t\t\t\t\t\t\t\"i-collapse-active\": isActive,\n\t\t\t\t\t\t\t\"i-collapse-disabled\": disabled,\n\t\t\t\t\t\t})}\n\t\t\t\t\t\t{...restProps}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName='i-collapse-header'\n\t\t\t\t\t\t\tonClick={() => handleHeaderClick(item)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{title}\n\n\t\t\t\t\t\t\t<Helpericon\n\t\t\t\t\t\t\t\tactive\n\t\t\t\t\t\t\t\tclassName='i-collapse-toggle'\n\t\t\t\t\t\t\t\ticon={renderToggle(isActive)}\n\t\t\t\t\t\t\t\tonClick={(e) => handleToggle(item, e)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div className='i-collapse-content'>{content}</div>\n\t\t\t\t\t</div>\n\t\t\t\t);\n\t\t\t})}\n\t\t</div>\n\t);\n};\n\nCollapse.Item = Item;\n\nexport default Collapse;\n"],"mappings":";;;;;;;AAQA,MAAM,YAAY,UAAqB;CACtC,MAAM,EACL,QACA,OACA,UACA,QACA,iBACA,WACA,UACA,gBAAgB,WACf,SAAS,oBAAC,YAAD,EAAc,CAAA,GAAG,oBAAC,WAAD,EAAa,CAAA,EACxC,YACA,GAAG,cACA;CAEJ,MAAM,CAAC,WAAW,gBAAgB,SAAS,OAAO;CAElD,MAAM,YAAY,cAAc;AAC/B,MAAI,CAAC,OAAO;AACX,OAAI,CAAC,SAAU,QAAO,EAAE;AAExB,UACC,SAAS,IAAI,WAAW,MAAM,MAAM;IACnC,MAAM,EAAE,KAAK,OAAO,cAAc;IAIlC,MAAM,EAAE,OAAO,UAAU,SAAS,UAAU,GAAG,cAC9C;AAED,WAAO;KACN,GAAG;KACH,KAAK,OAAO;KACZ;KACA,SAAS,YAAY;KACrB;KACA;KACA,IAAI,EAAC;;AAIT,SAAO;IACL,CAAC,SAAS,CAAC;CAEd,MAAM,qBAAqB,SAAwB;AAClD,MAAI,CAAC,gBAAiB;AAEtB,eAAa,KAAK;;CAGnB,MAAM,gBAAgB,MAAqB,MAAO;EACjD,MAAM,EAAE,KAAK,aAAa;AAC1B,KAAG,iBAAiB;AACpB,MAAI,SAAU;AAEd,MAAI,CAAC,UAAU;GACd,MAAM,aAAa,cAAc,MAAM,KAAA,IAAY;AACnD,gBAAa,WAAW;AACxB,gBAAa,KAAa,eAAe,KAAA,EAAU;AACnD;;EAGD,MAAM,QAAQ,MAAM,QAAQ,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,EAAE;EAE5D,MAAM,IAAI,MAAM,WAAW,MAAM,MAAM,IAAI;AAE3C,MAAI,IAAI,GACP,OAAM,OAAO,GAAG,EAAE;MAElB,SAAQ,KAAA,KAAa,MAAM,KAAK,IAAI;AAErC,eAAa,MAAa;AAC1B,eAAa,KAAa,IAAI,EAAE;;AAGjC,QACC,oBAAC,OAAD;EACC,WAAW,WACV,cACA,EACC,uBAAuB,QACvB,EACD,UACA;EACD,GAAI;YAEH,UAAU,KAAK,SAAS;GACxB,MAAM,EACL,KACA,OACA,SACA,UACA,WACA,GAAG,cACA;GACJ,MAAM,WAAW,YACZ,aAAwB,EAAE,EAAE,SAAS,IAAG,GAC1C,cAAc;AAEjB,UACC,qBAAC,OAAD;IAEC,WAAW,WAAW,mBAAmB,WAAW;KACnD,qBAAqB;KACrB,uBAAuB;KACvB,CAAC;IACF,GAAI;cANL,CAQC,qBAAC,OAAD;KACC,WAAU;KACV,eAAe,kBAAkB,KAAK;eAFvC,CAIE,OAED,oBAAC,oBAAD;MACC,QAAA;MACA,WAAU;MACV,MAAM,aAAa,SAAS;MAC5B,UAAU,MAAM,aAAa,MAAM,EAAE;MACrC,CAAA,CACG;QAEL,oBAAC,OAAD;KAAK,WAAU;eAAsB;KAAa,CAAA,CAC9C;MAtBC,IAsBD;IAEL;EACE,CAAA;;AAIP,SAAS,OAAO"}
1
+ {"version":3,"file":"collapse.js","names":[],"sources":["../../../../packages/components/collapse/collapse.tsx"],"sourcesContent":["import { MinusRound, PlusRound } from \"@ricons/material\";\nimport classNames from \"classnames\";\nimport { Children, useMemo, useState } from \"react\";\nimport Helpericon from \"../utils/helpericon\";\nimport \"./index.css\";\nimport Item from \"./item\";\nimport { ICollapse, ICollapseItem, TKey } from \"./type\";\n\nconst Collapse = (props: ICollapse) => {\n\tconst {\n\t\tactive,\n\t\titems,\n\t\tmultiple,\n\t\tborder,\n\t\theaderClickable,\n\t\tclassName,\n\t\tchildren,\n\t\trenderToggle = (active: boolean) =>\n\t\t\tactive ? <MinusRound /> : <PlusRound />,\n\t\tonCollapse,\n\t\t...restProps\n\t} = props;\n\n\tconst [activeKey, setActiveKey] = useState(active);\n\n\tconst collapses = useMemo(() => {\n\t\tif (!items) {\n\t\t\tif (!children) return [];\n\n\t\t\treturn (\n\t\t\t\tChildren.map(children, (node, i) => {\n\t\t\t\t\tconst { key, props: nodeProps } = node as {\n\t\t\t\t\t\tkey?: TKey;\n\t\t\t\t\t\tprops?: any;\n\t\t\t\t\t};\n\t\t\t\t\tconst { title, children, content, disabled, ...restProps } =\n\t\t\t\t\t\tnodeProps;\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...restProps,\n\t\t\t\t\t\tkey: key || i,\n\t\t\t\t\t\ttitle,\n\t\t\t\t\t\tcontent: children || content,\n\t\t\t\t\t\tdisabled,\n\t\t\t\t\t};\n\t\t\t\t}) || []\n\t\t\t);\n\t\t}\n\n\t\treturn items;\n\t}, [children]);\n\n\tconst handleHeaderClick = (item: ICollapseItem) => {\n\t\tif (!headerClickable) return;\n\n\t\thandleToggle(item);\n\t};\n\n\tconst handleToggle = (item: ICollapseItem, e?) => {\n\t\tconst { key, disabled } = item;\n\t\te?.stopPropagation();\n\t\tif (disabled) return;\n\n\t\tif (!multiple) {\n\t\t\tconst nextActive = activeKey === key ? undefined : key;\n\t\t\tsetActiveKey(nextActive);\n\t\t\tonCollapse?.(key as TKey, nextActive !== undefined);\n\t\t\treturn;\n\t\t}\n\n\t\tconst group = Array.isArray(activeKey) ? [...activeKey] : [];\n\n\t\tconst i = group.findIndex((k) => k === key);\n\n\t\tif (i > -1) {\n\t\t\tgroup.splice(i, 1);\n\t\t} else {\n\t\t\tkey !== undefined && group.push(key);\n\t\t}\n\t\tsetActiveKey(group as any);\n\t\tonCollapse?.(key as TKey, i < 0);\n\t};\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\n\t\t\t\t\"i-collapse\",\n\t\t\t\t{\n\t\t\t\t\t\"i-collapse-bordered\": border,\n\t\t\t\t},\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...restProps}\n\t\t>\n\t\t\t{collapses.map((item) => {\n\t\t\t\tconst {\n\t\t\t\t\tkey,\n\t\t\t\t\ttitle,\n\t\t\t\t\tcontent,\n\t\t\t\t\tdisabled,\n\t\t\t\t\tclassName,\n\t\t\t\t\t...restProps\n\t\t\t\t} = item;\n\t\t\t\tconst isActive = multiple\n\t\t\t\t\t? ((activeKey as TKey[]) || []).includes(key)\n\t\t\t\t\t: activeKey === key;\n\n\t\t\t\treturn (\n\t\t\t\t\t<div\n\t\t\t\t\t\tkey={key}\n\t\t\t\t\t\tclassName={classNames(\"i-collapse-item\", className, {\n\t\t\t\t\t\t\t\"i-collapse-active\": isActive,\n\t\t\t\t\t\t\t\"i-collapse-disabled\": disabled,\n\t\t\t\t\t\t})}\n\t\t\t\t\t\t{...restProps}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName='i-collapse-header'\n\t\t\t\t\t\t\tonClick={() => handleHeaderClick(item)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{title}\n\n\t\t\t\t\t\t\t<Helpericon\n\t\t\t\t\t\t\t\tactive\n\t\t\t\t\t\t\t\tclassName='i-collapse-toggle'\n\t\t\t\t\t\t\t\ticon={renderToggle(isActive)}\n\t\t\t\t\t\t\t\tonClick={(e) => handleToggle(item, e)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div className='i-collapse-content'>{content}</div>\n\t\t\t\t\t</div>\n\t\t\t\t);\n\t\t\t})}\n\t\t</div>\n\t);\n};\n\nCollapse.Item = Item;\n\nexport default Collapse;\n"],"mappings":";;;;;;;;CAQA,MAAM,EACL,QACC,OACA,UACA,QACA,iBACA,WACA,UACA,gBAAQ,WACR,SAAA,oBAAA,YAAA,EAAwB,CAAA,GAAA,oBAAA,WAAA,EAAU,CAAA,EAClC,YACA,GAAA,cACG;;;AAKJ,MAAK,CAAC,OAAA;AACL,OAAK,CAAA,SAAO,QAAA,EAAA;UAGX,SAAO,IAAA,WAAA,MAAA,MAAA;IACN,MAAA,EAAS,KAAI,OAAQ,cAAc;IAIlC,MAAC,EAAA,OAAA,UAAA,SAAA,UAAA,GAAA,cACD;;KAGA,GAAA;KACC,KAAG,OAAS;KACZ;KACA,SAAK,YAAA;KACL;KACA;KACA,IAAA,EAAA;;;IAKJ,CAAA,SAAY,CAAA;;AAGb,MAAK,CAAC,gBAAiB;;;;EAMvB,MAAM,EAAA,KAAA,aAAqB;AAC1B,KAAA,iBAAa;AACb,MAAG,SAAA;;GAGH,MAAK,aAAU,cAAA,MAAA,KAAA,IAAA;AACd,gBAAM,WAAa;AACnB,gBAAa,KAAW,eAAA,KAAA,EAAA;AACxB;;;;aAQD,OAAO,OAAK,GAAA,EAAA;MAEX,SAAM,KAAA,KAAA,MAAA,KAAA,IAAA;AAEP,eAAA,MAAA;AACA,eAAa,KAAa,IAAA,EAAA;;QAI3B,oBAAA,OAAA;EACE,WAAA,WACA,cACC,EACA,uBAAA,QACC,EACD,UACA;EACD,GAAC;YAEF,UAAA,KAAA,SAAA;GACE,MAAA,EACA,KACC,OACA,SACA,UACA,WACA,GAAA,cACG;GACJ,MAAI,WAAI,YACH,aAAY,EAAA,EAAA,SAAA,IAAA,GACd,cAAc;UAGjB,qBAAA,OAAA;IAEE,WAAQ,WAAA,mBAAA,WAAA;KACR,qBAAsB;KACrB,uBAAqB;KACrB,CAAC;IACF,GAAE;cANJ,CAQC,qBAAA,OAAA;KACE,WAAA;KACA,eAAa,kBAAe,KAAA;eAF9B,CAIC,OAAA,oBAAA,oBAAA;MAGE,QAAA;MACA,WAAA;MACA,MAAA,aAAa,SAAe;MAC5B,UAAM,MAAA,aAAsB,MAAA,EAAA;MAC5B,CAAA,CACA;;;;OAGG;MAtBL,IAsBK;IAEN;EACA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"datagrid.js","names":[],"sources":["../../../../packages/components/datagrid/datagrid.tsx"],"sourcesContent":["import { useReactive } from \"../../js/hooks\";\nimport classNames from \"classnames\";\nimport { CSSProperties, MouseEvent, useEffect, useMemo, useRef } from \"react\";\nimport { getNextSorter } from \"../../js/utils\";\nimport Loading from \"../loading\";\nimport Empty from \"../utils/empty\";\nimport \"./index.css\";\nimport Row, { Header } from \"./row\";\nimport type { IColumn, IData, IDatagrid, TDatagridState } from \"./type\";\n\nconst Datagrid = (props: IDatagrid) => {\n\tconst {\n\t\tdata = [],\n\t\tcolumns = [],\n\t\tborder,\n\t\tstriped,\n\t\theader = true,\n\t\tresizable,\n\t\tcellPadding = \".5em\",\n\t\tcellEllipsis,\n\t\tempty = <Empty />,\n\t\tloading,\n\t\theight = \"unset\",\n\t\tstyle,\n\t\tclassName,\n\t\trenderLoading = () => (\n\t\t\t<Loading size='1.5em' className='color-3' absolute />\n\t\t),\n\t\tonCellClick,\n\t\tonRowClick,\n\t\tonCellDoubleClick,\n\t\tonHeaderClick,\n\t\tonSort,\n\t\tonScroll,\n\t\tonResize,\n\t} = props;\n\n\tconst container = useRef<HTMLDivElement>(null);\n\tconst state = useReactive<TDatagridState>({\n\t\trows: data,\n\t\twidths: columns.map((col) => col.width ?? \"min-content\"),\n\t\tsortBy: \"\",\n\t\tsortType: \"\",\n\t});\n\n\tconst styles = useMemo(() => {\n\t\tconst { widths } = state;\n\n\t\tconst o = {\n\t\t\t...style,\n\t\t\t\"--grid-template-columns\": widths\n\t\t\t\t.map((w) => {\n\t\t\t\t\treturn typeof w === \"number\" ? `${w}px` : w;\n\t\t\t\t})\n\t\t\t\t.join(\" \"),\n\t\t};\n\n\t\tif (!resizable) return o;\n\n\t\tconst fws = columns.map((col, i) => {\n\t\t\tconst { fixed } = col;\n\t\t\tif (!fixed) return 0;\n\t\t\treturn widths[i] as number;\n\t\t});\n\n\t\tcolumns.map((col, i) => {\n\t\t\tconst { fixed } = col;\n\t\t\tif (!fixed) return;\n\t\t\tif (i === 0) {\n\t\t\t\to[`--datagrid-cell-inset-0`] = 0;\n\t\t\t} else if (i === fws.length - 1) {\n\t\t\t\to[`--datagrid-cell-inset-${fws.length - 1}`] = \"auto 0\";\n\t\t\t} else {\n\t\t\t\tconst isLeft = fixed === \"left\";\n\t\t\t\tconst before = isLeft ? fws.slice(0, i) : fws.slice(i + 1);\n\t\t\t\tconst sum = before.reduce((pre, cur) => pre + cur) + \"px\";\n\t\t\t\tconst result = isLeft ? `${sum} auto` : `auto ${sum}`;\n\t\t\t\to[`--datagrid-cell-inset-${i}`] = result;\n\t\t\t}\n\t\t});\n\n\t\treturn o;\n\t}, [state.widths, resizable]);\n\n\tconst handleWidthChange = (i: number, w: number) => {\n\t\tif (!resizable) return;\n\n\t\tconst [...ws] = state.widths;\n\t\tws[i] = w;\n\t\tstate.widths = ws;\n\t\tonResize?.(columns[i], w);\n\t};\n\n\tconst handleHeaderClick = (column?: IColumn, e?: MouseEvent) => {\n\t\tif (column?.sorter) {\n\t\t\tconst [sortBy, sortType] = getNextSorter(\n\t\t\t\tstate.sortBy,\n\t\t\t\tstate.sortType,\n\t\t\t\tcolumn.id\n\t\t\t);\n\n\t\t\tObject.assign(state, {\n\t\t\t\tsortBy,\n\t\t\t\tsortType,\n\t\t\t});\n\n\t\t\tonSort?.(sortBy, sortType);\n\t\t}\n\n\t\tonHeaderClick?.(column, e);\n\t};\n\n\tconst rows = useMemo(() => {\n\t\tconst { sortBy, sortType } = state;\n\n\t\tif (sortBy && !onSort) {\n\t\t\tconst sorter = columns.find((col) => col.id === sortBy)?.sorter;\n\t\t\tconst sortFn =\n\t\t\t\ttypeof sorter === \"function\"\n\t\t\t\t\t? sorter\n\t\t\t\t\t: (a: IData, b: IData) => b[sortBy] - a[sortBy];\n\t\t\tconst sorted = [...data].sort(sortFn);\n\n\t\t\treturn sortType === \"desc\" ? sorted : sorted.reverse();\n\t\t}\n\n\t\treturn data;\n\t}, [data, columns, state.sortBy, state.sortType]);\n\n\tuseEffect(() => {\n\t\tif (!container.current) return;\n\t\tconst { current: div } = container;\n\t\tconst tds = div.querySelector(\".i-datagrid-row\")?.children;\n\t\tif (!tds?.length) return;\n\t\tstate.widths = Array.from(tds).map((node: any) => node.offsetWidth);\n\t}, [columns, resizable]);\n\n\tuseEffect(() => {\n\t\tloading && container.current?.scrollTo({ top: 0, left: 0 });\n\t}, [loading]);\n\n\tconst mergedStyle = {\n\t\t\"--cell-padding\": cellPadding,\n\t\t...styles,\n\t} as CSSProperties;\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{ maxHeight: height, ...mergedStyle }}\n\t\t\tclassName={classNames(\"i-datagrid-container\", className, {\n\t\t\t\t\"i-datagrid-bordered\": border,\n\t\t\t\t\"i-datagrid-striped\": striped,\n\t\t\t})}\n\t\t>\n\t\t\t<div\n\t\t\t\tref={container}\n\t\t\t\tclassName={classNames(\"i-datagrid\", {\n\t\t\t\t\t\"i-datagrid-loading\": loading,\n\t\t\t\t})}\n\t\t\t\tonWheel={onScroll}\n\t\t\t>\n\t\t\t\t{header && (\n\t\t\t\t\t<Header\n\t\t\t\t\t\tcolumns={columns}\n\t\t\t\t\t\tresizable={resizable}\n\t\t\t\t\t\tsortType={state.sortType}\n\t\t\t\t\t\tsortBy={state.sortBy}\n\t\t\t\t\t\tcellEllipsis={cellEllipsis}\n\t\t\t\t\t\tonWidthChange={handleWidthChange}\n\t\t\t\t\t\tonHeaderClick={handleHeaderClick}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\n\t\t\t\t{rows.map((row, i) => (\n\t\t\t\t\t<Row\n\t\t\t\t\t\tkey={i}\n\t\t\t\t\t\trow={i + (header ? 1 : 0)}\n\t\t\t\t\t\tdata={row}\n\t\t\t\t\t\tcellEllipsis={cellEllipsis}\n\t\t\t\t\t\tcolumns={columns}\n\t\t\t\t\t\tonCellClick={onCellClick}\n\t\t\t\t\t\tonRowClick={onRowClick}\n\t\t\t\t\t\tonCellDoubleClick={onCellDoubleClick}\n\t\t\t\t\t/>\n\t\t\t\t))}\n\n\t\t\t\t{rows.length < 1 && empty}\n\t\t\t</div>\n\n\t\t\t{loading && renderLoading()}\n\t\t</div>\n\t);\n};\n\nexport default Datagrid;\n"],"mappings":"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"}
1
+ {"version":3,"file":"datagrid.js","names":[],"sources":["../../../../packages/components/datagrid/datagrid.tsx"],"sourcesContent":["import { useReactive } from \"../../js/hooks\";\nimport classNames from \"classnames\";\nimport { CSSProperties, MouseEvent, useEffect, useMemo, useRef } from \"react\";\nimport { getNextSorter } from \"../../js/utils\";\nimport Loading from \"../loading\";\nimport Empty from \"../utils/empty\";\nimport \"./index.css\";\nimport Row, { Header } from \"./row\";\nimport type { IColumn, IData, IDatagrid, TDatagridState } from \"./type\";\n\nconst Datagrid = (props: IDatagrid) => {\n\tconst {\n\t\tdata = [],\n\t\tcolumns = [],\n\t\tborder,\n\t\tstriped,\n\t\theader = true,\n\t\tresizable,\n\t\tcellPadding = \".5em\",\n\t\tcellEllipsis,\n\t\tempty = <Empty />,\n\t\tloading,\n\t\theight = \"unset\",\n\t\tstyle,\n\t\tclassName,\n\t\trenderLoading = () => (\n\t\t\t<Loading size='1.5em' className='color-3' absolute />\n\t\t),\n\t\tonCellClick,\n\t\tonRowClick,\n\t\tonCellDoubleClick,\n\t\tonHeaderClick,\n\t\tonSort,\n\t\tonScroll,\n\t\tonResize,\n\t} = props;\n\n\tconst container = useRef<HTMLDivElement>(null);\n\tconst state = useReactive<TDatagridState>({\n\t\trows: data,\n\t\twidths: columns.map((col) => col.width ?? \"min-content\"),\n\t\tsortBy: \"\",\n\t\tsortType: \"\",\n\t});\n\n\tconst styles = useMemo(() => {\n\t\tconst { widths } = state;\n\n\t\tconst o = {\n\t\t\t...style,\n\t\t\t\"--grid-template-columns\": widths\n\t\t\t\t.map((w) => {\n\t\t\t\t\treturn typeof w === \"number\" ? `${w}px` : w;\n\t\t\t\t})\n\t\t\t\t.join(\" \"),\n\t\t};\n\n\t\tif (!resizable) return o;\n\n\t\tconst fws = columns.map((col, i) => {\n\t\t\tconst { fixed } = col;\n\t\t\tif (!fixed) return 0;\n\t\t\treturn widths[i] as number;\n\t\t});\n\n\t\tcolumns.map((col, i) => {\n\t\t\tconst { fixed } = col;\n\t\t\tif (!fixed) return;\n\t\t\tif (i === 0) {\n\t\t\t\to[`--datagrid-cell-inset-0`] = 0;\n\t\t\t} else if (i === fws.length - 1) {\n\t\t\t\to[`--datagrid-cell-inset-${fws.length - 1}`] = \"auto 0\";\n\t\t\t} else {\n\t\t\t\tconst isLeft = fixed === \"left\";\n\t\t\t\tconst before = isLeft ? fws.slice(0, i) : fws.slice(i + 1);\n\t\t\t\tconst sum = before.reduce((pre, cur) => pre + cur) + \"px\";\n\t\t\t\tconst result = isLeft ? `${sum} auto` : `auto ${sum}`;\n\t\t\t\to[`--datagrid-cell-inset-${i}`] = result;\n\t\t\t}\n\t\t});\n\n\t\treturn o;\n\t}, [state.widths, resizable]);\n\n\tconst handleWidthChange = (i: number, w: number) => {\n\t\tif (!resizable) return;\n\n\t\tconst [...ws] = state.widths;\n\t\tws[i] = w;\n\t\tstate.widths = ws;\n\t\tonResize?.(columns[i], w);\n\t};\n\n\tconst handleHeaderClick = (column?: IColumn, e?: MouseEvent) => {\n\t\tif (column?.sorter) {\n\t\t\tconst [sortBy, sortType] = getNextSorter(\n\t\t\t\tstate.sortBy,\n\t\t\t\tstate.sortType,\n\t\t\t\tcolumn.id\n\t\t\t);\n\n\t\t\tObject.assign(state, {\n\t\t\t\tsortBy,\n\t\t\t\tsortType,\n\t\t\t});\n\n\t\t\tonSort?.(sortBy, sortType);\n\t\t}\n\n\t\tonHeaderClick?.(column, e);\n\t};\n\n\tconst rows = useMemo(() => {\n\t\tconst { sortBy, sortType } = state;\n\n\t\tif (sortBy && !onSort) {\n\t\t\tconst sorter = columns.find((col) => col.id === sortBy)?.sorter;\n\t\t\tconst sortFn =\n\t\t\t\ttypeof sorter === \"function\"\n\t\t\t\t\t? sorter\n\t\t\t\t\t: (a: IData, b: IData) => b[sortBy] - a[sortBy];\n\t\t\tconst sorted = [...data].sort(sortFn);\n\n\t\t\treturn sortType === \"desc\" ? sorted : sorted.reverse();\n\t\t}\n\n\t\treturn data;\n\t}, [data, columns, state.sortBy, state.sortType]);\n\n\tuseEffect(() => {\n\t\tif (!container.current) return;\n\t\tconst { current: div } = container;\n\t\tconst tds = div.querySelector(\".i-datagrid-row\")?.children;\n\t\tif (!tds?.length) return;\n\t\tstate.widths = Array.from(tds).map((node: any) => node.offsetWidth);\n\t}, [columns, resizable]);\n\n\tuseEffect(() => {\n\t\tloading && container.current?.scrollTo({ top: 0, left: 0 });\n\t}, [loading]);\n\n\tconst mergedStyle = {\n\t\t\"--cell-padding\": cellPadding,\n\t\t...styles,\n\t} as CSSProperties;\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{ maxHeight: height, ...mergedStyle }}\n\t\t\tclassName={classNames(\"i-datagrid-container\", className, {\n\t\t\t\t\"i-datagrid-bordered\": border,\n\t\t\t\t\"i-datagrid-striped\": striped,\n\t\t\t})}\n\t\t>\n\t\t\t<div\n\t\t\t\tref={container}\n\t\t\t\tclassName={classNames(\"i-datagrid\", {\n\t\t\t\t\t\"i-datagrid-loading\": loading,\n\t\t\t\t})}\n\t\t\t\tonWheel={onScroll}\n\t\t\t>\n\t\t\t\t{header && (\n\t\t\t\t\t<Header\n\t\t\t\t\t\tcolumns={columns}\n\t\t\t\t\t\tresizable={resizable}\n\t\t\t\t\t\tsortType={state.sortType}\n\t\t\t\t\t\tsortBy={state.sortBy}\n\t\t\t\t\t\tcellEllipsis={cellEllipsis}\n\t\t\t\t\t\tonWidthChange={handleWidthChange}\n\t\t\t\t\t\tonHeaderClick={handleHeaderClick}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\n\t\t\t\t{rows.map((row, i) => (\n\t\t\t\t\t<Row\n\t\t\t\t\t\tkey={i}\n\t\t\t\t\t\trow={i + (header ? 1 : 0)}\n\t\t\t\t\t\tdata={row}\n\t\t\t\t\t\tcellEllipsis={cellEllipsis}\n\t\t\t\t\t\tcolumns={columns}\n\t\t\t\t\t\tonCellClick={onCellClick}\n\t\t\t\t\t\tonRowClick={onRowClick}\n\t\t\t\t\t\tonCellDoubleClick={onCellDoubleClick}\n\t\t\t\t\t/>\n\t\t\t\t))}\n\n\t\t\t\t{rows.length < 1 && empty}\n\t\t\t</div>\n\n\t\t\t{loading && renderLoading()}\n\t\t</div>\n\t);\n};\n\nexport default Datagrid;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"description.js","names":[],"sources":["../../../../packages/components/description/description.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { CSSProperties, Fragment } from \"react\";\nimport \"./index.css\";\nimport { IDescription } from \"./type\";\n\nconst Description = (props: IDescription) => {\n\tconst {\n\t\tdata,\n\t\tcolon,\n\t\tcolumns = 1,\n\t\tgap = \".5em\",\n\t\talign,\n\t\tlabelWidth,\n\t\tlabelAlign,\n\t\tvertical,\n\t\tequally,\n\t\tstyle,\n\t\tclassName,\n\t} = props;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\"i-description\", className)}\n\t\t\tstyle={\n\t\t\t\t{\n\t\t\t\t\t[\"--description-label-width\"]: labelWidth,\n\t\t\t\t\tgridTemplateColumns: `repeat(${columns}, ${\n\t\t\t\t\t\tequally ? \"1fr\" : \"auto\"\n\t\t\t\t\t})`,\n\t\t\t\t\tgap,\n\t\t\t\t\ttextAlign: align,\n\t\t\t\t\t...style,\n\t\t\t\t} as CSSProperties\n\t\t\t}\n\t\t>\n\t\t\t{data.map((item, i) => {\n\t\t\t\tconst {\n\t\t\t\t\tlabel,\n\t\t\t\t\tvalue,\n\t\t\t\t\tstyle,\n\t\t\t\t\thidden,\n\t\t\t\t\trowSpan = 1,\n\t\t\t\t\tcolSpan = 1,\n\t\t\t\t} = item;\n\n\t\t\t\tif (hidden) return <Fragment key={i} />;\n\n\t\t\t\treturn (\n\t\t\t\t\t<div\n\t\t\t\t\t\tkey={i}\n\t\t\t\t\t\tclassName={classNames(\"i-description-item\", {\n\t\t\t\t\t\t\t\"i-description-item-vertical\": vertical,\n\t\t\t\t\t\t})}\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tgridColumn: `span ${colSpan}`,\n\t\t\t\t\t\t\tgridRow: `span ${rowSpan}`,\n\t\t\t\t\t\t\t...style,\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{label && (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclassName='i-description-label'\n\t\t\t\t\t\t\t\tstyle={{ textAlign: labelAlign }}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{label}\n\t\t\t\t\t\t\t\t{colon}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<div className='i-description-value'>{value}</div>\n\t\t\t\t\t</div>\n\t\t\t\t);\n\t\t\t})}\n\t\t</div>\n\t);\n};\n\nexport default Description;\n"],"mappings":";;;;AAKA,MAAM,eAAe,UAAwB;CAC5C,MAAM,EACL,MACA,OACA,UAAU,GACV,MAAM,QACN,OACA,YACA,YACA,UACA,SACA,OACA,cACG;AAEJ,QACC,oBAAC,OAAD;EACC,WAAW,WAAW,iBAAiB,UAAU;EACjD,OACC;IACE,8BAA8B;GAC/B,qBAAqB,UAAU,QAAQ,IACtC,UAAU,QAAQ,OAClB;GACD;GACA,WAAW;GACX,GAAG;GACH;YAGD,KAAK,KAAK,MAAM,MAAM;GACtB,MAAM,EACL,OACA,OACA,OACA,QACA,UAAU,GACV,UAAU,MACP;AAEJ,OAAI,OAAQ,QAAO,oBAAC,UAAD,EAAoB,EAAL,EAAK;AAEvC,UACC,qBAAC,OAAD;IAEC,WAAW,WAAW,sBAAsB,EAC3C,+BAA+B,UAC/B,CAAC;IACF,OAAO;KACN,YAAY,QAAQ;KACpB,SAAS,QAAQ;KACjB,GAAG;KACH;cATF,CAWE,SACA,qBAAC,OAAD;KACC,WAAU;KACV,OAAO,EAAE,WAAW,YAAY;eAFjC,CAIE,OACA,MACG;QAEN,oBAAC,OAAD;KAAK,WAAU;eAAuB;KAAW,CAAA,CAC7C;MApBC,EAoBD;IAEL;EACE,CAAA"}
1
+ {"version":3,"file":"description.js","names":[],"sources":["../../../../packages/components/description/description.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { CSSProperties, Fragment } from \"react\";\nimport \"./index.css\";\nimport { IDescription } from \"./type\";\n\nconst Description = (props: IDescription) => {\n\tconst {\n\t\tdata,\n\t\tcolon,\n\t\tcolumns = 1,\n\t\tgap = \".5em\",\n\t\talign,\n\t\tlabelWidth,\n\t\tlabelAlign,\n\t\tvertical,\n\t\tequally,\n\t\tstyle,\n\t\tclassName,\n\t} = props;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\"i-description\", className)}\n\t\t\tstyle={\n\t\t\t\t{\n\t\t\t\t\t[\"--description-label-width\"]: labelWidth,\n\t\t\t\t\tgridTemplateColumns: `repeat(${columns}, ${\n\t\t\t\t\t\tequally ? \"1fr\" : \"auto\"\n\t\t\t\t\t})`,\n\t\t\t\t\tgap,\n\t\t\t\t\ttextAlign: align,\n\t\t\t\t\t...style,\n\t\t\t\t} as CSSProperties\n\t\t\t}\n\t\t>\n\t\t\t{data.map((item, i) => {\n\t\t\t\tconst {\n\t\t\t\t\tlabel,\n\t\t\t\t\tvalue,\n\t\t\t\t\tstyle,\n\t\t\t\t\thidden,\n\t\t\t\t\trowSpan = 1,\n\t\t\t\t\tcolSpan = 1,\n\t\t\t\t} = item;\n\n\t\t\t\tif (hidden) return <Fragment key={i} />;\n\n\t\t\t\treturn (\n\t\t\t\t\t<div\n\t\t\t\t\t\tkey={i}\n\t\t\t\t\t\tclassName={classNames(\"i-description-item\", {\n\t\t\t\t\t\t\t\"i-description-item-vertical\": vertical,\n\t\t\t\t\t\t})}\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tgridColumn: `span ${colSpan}`,\n\t\t\t\t\t\t\tgridRow: `span ${rowSpan}`,\n\t\t\t\t\t\t\t...style,\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{label && (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclassName='i-description-label'\n\t\t\t\t\t\t\t\tstyle={{ textAlign: labelAlign }}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{label}\n\t\t\t\t\t\t\t\t{colon}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<div className='i-description-value'>{value}</div>\n\t\t\t\t\t</div>\n\t\t\t\t);\n\t\t\t})}\n\t\t</div>\n\t);\n};\n\nexport default Description;\n"],"mappings":";;;;;CAKA,MAAM,EACL,MACC,OACA,UAAK,GACL,MAAA,QACA,OACA,YACA,YACA,UACA,SACA,OACA,cACA;QAGD,oBAAA,OAAA;EACE,WAAA,WAAA,iBAAA,UAAA;EACA,OACA;IACC,8BAAA;GACC,qBAAqB,UAAU,QAAA,IAC/B,UAAA,QAAmB,OAClB;GACD;GACA,WAAG;GACH,GAAA;GACA;YAGH,KAAA,KAAA,MAAA,MAAA;GACE,MAAK,EACL,OACC,OACA,OACA,QACA,UAAM,GACN,UAAU,MACV;;UAKD,qBAAA,OAAA;IAEE,WAAM,WAAA,sBAAA,EACN,+BAAyB,UACxB,CAAC;IACF,OAAE;KACF,YAAO,QAAA;KACN,SAAA,QAAiB;KACjB,GAAA;KACA;cATH,CAWC,SACE,qBAAA,OAAA;KACC,WAAA;KACA,OAAA,EAAS,WAAI,YAAiB;eAF/B,CAIA,OACE,MACA;QAEH,oBAAC,OAAD;KAAC,WAAA;eAAA;KAAA,CAAA,CACI;MApBL,EAoBK;IAEN;EACA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"drawer.js","names":[],"sources":["../../../../packages/components/drawer/drawer.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { useEffect, useRef, useTransition } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { useKeydown, useReactive } from \"../../js/hooks\";\nimport Helpericon from \"../utils/helpericon\";\nimport \"./index.css\";\nimport { IDrawer } from \"./type\";\n\nfunction Drawer(props: IDrawer) {\n\tconst {\n\t\tvisible,\n\t\tposition = \"left\",\n\t\theader,\n\t\tfooter,\n\t\tbackdropClosable = true,\n\t\thideCloseButton,\n\t\tkeepDOM,\n\t\tclassName,\n\t\tdisabledEsc,\n\t\tchildren,\n\t\tonVisibleChange,\n\t\tonClose,\n\t\t...restProps\n\t} = props;\n\n\tconst toggable = useRef(true);\n\tconst state = useReactive({\n\t\tshow: visible,\n\t\tactive: visible,\n\t});\n\tconst [isPending, startTransition] = useTransition();\n\n\tconst handleHide = () => {\n\t\tif (!toggable.current || isPending) return;\n\t\ttoggable.current = false;\n\n\t\tstartTransition(() => {\n\t\t\tstate.active = false;\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (!keepDOM) {\n\t\t\t\t\tstate.show = false;\n\t\t\t\t}\n\t\t\t\tonVisibleChange?.(false);\n\t\t\t\ttoggable.current = true;\n\t\t\t\tonClose?.();\n\t\t\t}, 240);\n\t\t});\n\t};\n\n\tconst handleShow = () => {\n\t\tif (!toggable.current || isPending) return;\n\n\t\tstate.show = true;\n\t\tonVisibleChange?.(true);\n\t\ttoggable.current = false;\n\n\t\tstartTransition(() => {\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\tstate.active = true;\n\t\t\t\ttoggable.current = true;\n\t\t\t});\n\t\t});\n\t};\n\n\tuseEffect(() => {\n\t\tvisible ? handleShow() : handleHide();\n\t}, [visible]);\n\n\tconst handleBackdropClick = () => {\n\t\tbackdropClosable && handleHide();\n\t};\n\n\tuseKeydown(\n\t\t(e) => {\n\t\t\tif (e.code !== \"Escape\" || !visible) return;\n\t\t\thandleHide();\n\t\t},\n\t\t{\n\t\t\tdisabled: disabledEsc,\n\t\t}\n\t);\n\n\tif (!state.show) return null;\n\n\treturn createPortal(\n\t\t<div\n\t\t\tclassName={classNames(\"i-backdrop-drawer\", className, {\n\t\t\t\t\"i-active\": state.active,\n\t\t\t})}\n\t\t\tonClick={handleBackdropClick}\n\t\t\t{...restProps}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-drawer\", `i-drawer-${position}`)}\n\t\t\t\tonClick={(e) => e.stopPropagation()}\n\t\t\t>\n\t\t\t\t{header && (\n\t\t\t\t\t<header className='i-drawer-header'>\n\t\t\t\t\t\t{header}\n\n\t\t\t\t\t\t{!hideCloseButton && (\n\t\t\t\t\t\t\t<Helpericon\n\t\t\t\t\t\t\t\tclassName='i-drawer-close'\n\t\t\t\t\t\t\t\tonClick={handleHide}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</header>\n\t\t\t\t)}\n\n\t\t\t\t<div className='i-drawer-content'>{children}</div>\n\n\t\t\t\t{footer && <div className='i-drawer-footer'>{footer}</div>}\n\t\t\t</div>\n\t\t</div>,\n\t\tdocument.body\n\t);\n}\n\nexport default Drawer;\n"],"mappings":";;;;;;;AAQA,SAAS,OAAO,OAAgB;CAC/B,MAAM,EACL,SACA,WAAW,QACX,QACA,QACA,mBAAmB,MACnB,iBACA,SACA,WACA,aACA,UACA,iBACA,SACA,GAAG,cACA;CAEJ,MAAM,WAAW,OAAO,KAAK;CAC7B,MAAM,QAAQ,YAAY;EACzB,MAAM;EACN,QAAQ;EACR,CAAC;CACF,MAAM,CAAC,WAAW,mBAAmB,eAAe;CAEpD,MAAM,mBAAmB;AACxB,MAAI,CAAC,SAAS,WAAW,UAAW;AACpC,WAAS,UAAU;AAEnB,wBAAsB;AACrB,SAAM,SAAS;AAEf,oBAAiB;AAChB,QAAI,CAAC,QACJ,OAAM,OAAO;AAEd,sBAAkB,MAAM;AACxB,aAAS,UAAU;AACnB,eAAW;MACT,IAAI;IACN;;CAGH,MAAM,mBAAmB;AACxB,MAAI,CAAC,SAAS,WAAW,UAAW;AAEpC,QAAM,OAAO;AACb,oBAAkB,KAAK;AACvB,WAAS,UAAU;AAEnB,wBAAsB;AACrB,+BAA4B;AAC3B,UAAM,SAAS;AACf,aAAS,UAAU;KAClB;IACD;;AAGH,iBAAgB;AACf,YAAU,YAAY,GAAG,YAAY;IACnC,CAAC,QAAQ,CAAC;CAEb,MAAM,4BAA4B;AACjC,sBAAoB,YAAY;;AAGjC,aACE,MAAM;AACN,MAAI,EAAE,SAAS,YAAY,CAAC,QAAS;AACrC,cAAY;IAEb,EACC,UAAU,aACX,CACA;AAED,KAAI,CAAC,MAAM,KAAM,QAAO;AAExB,QAAO,aACN,oBAAC,OAAD;EACC,WAAW,WAAW,qBAAqB,WAAW,EACrD,YAAY,MAAM,QAClB,CAAC;EACF,SAAS;EACT,GAAI;YAEJ,qBAAC,OAAD;GACC,WAAW,WAAW,YAAY,YAAY,WAAW;GACzD,UAAU,MAAM,EAAE,iBAAiB;aAFpC;IAIE,UACA,qBAAC,UAAD;KAAQ,WAAU;eAAlB,CACE,QAEA,CAAC,mBACD,oBAAC,oBAAD;MACC,WAAU;MACV,SAAS;MACT,CAAA,CAEK;;IAGT,oBAAC,OAAD;KAAK,WAAU;KAAoB;KAAc,CAAA;IAEhD,UAAU,oBAAC,OAAD;KAAK,WAAU;eAAmB;KAAa,CAAA;IACtD;;EACA,CAAA,EACN,SAAS,KACT"}
1
+ {"version":3,"file":"drawer.js","names":[],"sources":["../../../../packages/components/drawer/drawer.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { useEffect, useRef, useTransition } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { useKeydown, useReactive } from \"../../js/hooks\";\nimport Helpericon from \"../utils/helpericon\";\nimport \"./index.css\";\nimport { IDrawer } from \"./type\";\n\nfunction Drawer(props: IDrawer) {\n\tconst {\n\t\tvisible,\n\t\tposition = \"left\",\n\t\theader,\n\t\tfooter,\n\t\tbackdropClosable = true,\n\t\thideCloseButton,\n\t\tkeepDOM,\n\t\tclassName,\n\t\tdisabledEsc,\n\t\tchildren,\n\t\tonVisibleChange,\n\t\tonClose,\n\t\t...restProps\n\t} = props;\n\n\tconst toggable = useRef(true);\n\tconst state = useReactive({\n\t\tshow: visible,\n\t\tactive: visible,\n\t});\n\tconst [isPending, startTransition] = useTransition();\n\n\tconst handleHide = () => {\n\t\tif (!toggable.current || isPending) return;\n\t\ttoggable.current = false;\n\n\t\tstartTransition(() => {\n\t\t\tstate.active = false;\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (!keepDOM) {\n\t\t\t\t\tstate.show = false;\n\t\t\t\t}\n\t\t\t\tonVisibleChange?.(false);\n\t\t\t\ttoggable.current = true;\n\t\t\t\tonClose?.();\n\t\t\t}, 240);\n\t\t});\n\t};\n\n\tconst handleShow = () => {\n\t\tif (!toggable.current || isPending) return;\n\n\t\tstate.show = true;\n\t\tonVisibleChange?.(true);\n\t\ttoggable.current = false;\n\n\t\tstartTransition(() => {\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\tstate.active = true;\n\t\t\t\ttoggable.current = true;\n\t\t\t});\n\t\t});\n\t};\n\n\tuseEffect(() => {\n\t\tvisible ? handleShow() : handleHide();\n\t}, [visible]);\n\n\tconst handleBackdropClick = () => {\n\t\tbackdropClosable && handleHide();\n\t};\n\n\tuseKeydown(\n\t\t(e) => {\n\t\t\tif (e.code !== \"Escape\" || !visible) return;\n\t\t\thandleHide();\n\t\t},\n\t\t{\n\t\t\tdisabled: disabledEsc,\n\t\t}\n\t);\n\n\tif (!state.show) return null;\n\n\treturn createPortal(\n\t\t<div\n\t\t\tclassName={classNames(\"i-backdrop-drawer\", className, {\n\t\t\t\t\"i-active\": state.active,\n\t\t\t})}\n\t\t\tonClick={handleBackdropClick}\n\t\t\t{...restProps}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-drawer\", `i-drawer-${position}`)}\n\t\t\t\tonClick={(e) => e.stopPropagation()}\n\t\t\t>\n\t\t\t\t{header && (\n\t\t\t\t\t<header className='i-drawer-header'>\n\t\t\t\t\t\t{header}\n\n\t\t\t\t\t\t{!hideCloseButton && (\n\t\t\t\t\t\t\t<Helpericon\n\t\t\t\t\t\t\t\tclassName='i-drawer-close'\n\t\t\t\t\t\t\t\tonClick={handleHide}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</header>\n\t\t\t\t)}\n\n\t\t\t\t<div className='i-drawer-content'>{children}</div>\n\n\t\t\t\t{footer && <div className='i-drawer-footer'>{footer}</div>}\n\t\t\t</div>\n\t\t</div>,\n\t\tdocument.body\n\t);\n}\n\nexport default Drawer;\n"],"mappings":";;;;;;;;CAQA,MAAA,EACC,SACC,WAAO,QACP,QACA,QACA,mBAAM,MACN,iBACA,SACA,WACA,aACA,UACA,iBACA,SACA,GAAA,cACG;;CAGJ,MAAM,QAAQ,YAAU;EACxB,MAAM;EACL,QAAM;EACN,CAAA;CACD,MAAE,CAAA,WAAA,mBAAA,eAAA;;AAGF,MAAK,CAAC,SAAA,WAAmB,UAAA;AACxB,WAAK,UAAS;;AAGd,SAAA,SAAgB;;AAGf,QAAA,CAAA,QACC,OAAK,OAAS;AAEd,sBAAA,MAAA;AACA,aAAA,UAAkB;AAClB,eAAS;MACT,IAAA;IACA;;;AAIH,MAAK,CAAC,SAAA,WAAmB,UAAA;;AAGxB,oBAAiB,KAAA;AACjB,WAAA,UAAkB;;AAGlB,+BAAsB;AACrB,UAAA,SAAA;AACC,aAAM,UAAa;KACnB;IACA;;;AAIH,YAAW,YAAK,GAAA,YAAA;IACf,CAAA,QAAU,CAAA;;AAGX,sBAAM,YAA2B;;aAIjC,MAAA;AACE,MAAI,EAAE,SAAA,YAAA,CAAA,QAAA;AACN,cAAY;IAEb,EACA,UAAA,aACC,CACD;;qBAKD,oBAAA,OAAA;EACE,WAAA,WAAA,qBAAA,WAAA,EACA,YAAW,MAAA,QACV,CAAC;EACF,SAAE;EACF,GAAA;YAED,qBAAA,OAAA;GACE,WAAA,WAAA,YAAA,YAAA,WAAA;GACA,UAAU,MAAC,EAAA,iBAAwB;aAFrC;IAIC,UACE,qBAAA,UAAA;KAAQ,WAAE;eAAV,CACC,QAAA,CAAA,mBAGC,oBAAC,oBAAD;MACC,WAAA;MACA,SAAS;MACT,CAAA,CAED;;;;;;;;;;IAMF;;EACG,CAAA,EACN,SAAM,KACN"}
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown.js","names":[],"sources":["../../../../packages/components/dropdown/dropdown.tsx"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport List from \"../list\";\nimport Popup from \"../popup\";\nimport \"./index.css\";\nimport Item from \"./item\";\nimport { IDropdown } from \"./type\";\n\nconst Dropdown = (props: IDropdown) => {\n\tconst { visible, width, content, children, ...restProps } = props;\n\tconst [active, setActive] = useState(visible);\n\n\tif (!content) {\n\t\treturn children;\n\t}\n\n\tconst handleVisibleChange = (v: boolean) => {\n\t\tsetActive(v);\n\t\tif (props.onVisibleChange) {\n\t\t\tprops.onVisibleChange(v);\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tsetActive(visible);\n\t}, [visible]);\n\n\treturn (\n\t\t<Popup\n\t\t\ttrigger='click'\n\t\t\tposition='bottom'\n\t\t\tcontent={\n\t\t\t\t<List\n\t\t\t\t\tclassName='i-dropdown-content'\n\t\t\t\t\tstyle={{ minWidth: width }}\n\t\t\t\t>\n\t\t\t\t\t{typeof content === \"function\"\n\t\t\t\t\t\t? content(() => setActive(false))\n\t\t\t\t\t\t: content}\n\t\t\t\t</List>\n\t\t\t}\n\t\t\t{...restProps}\n\t\t\ttouchable\n\t\t\tvisible={active}\n\t\t\tonVisibleChange={handleVisibleChange}\n\t\t>\n\t\t\t{children}\n\t\t</Popup>\n\t);\n};\n\nDropdown.Item = Item;\n\nexport default Dropdown;\n"],"mappings":";;;;;;AAOA,MAAM,YAAY,UAAqB;CACtC,MAAM,EAAE,SAAS,OAAO,SAAS,UAAU,GAAG,cAAc;CAC5D,MAAM,CAAC,QAAQ,aAAa,SAAS,QAAQ;AAE7C,KAAI,CAAC,QACJ,QAAO;CAGR,MAAM,uBAAuB,MAAe;AAC3C,YAAU,EAAE;AACZ,MAAI,MAAM,gBACT,OAAM,gBAAgB,EAAE;;AAI1B,iBAAgB;AACf,YAAU,QAAQ;IAChB,CAAC,QAAQ,CAAC;AAEb,QACC,oBAAC,eAAD;EACC,SAAQ;EACR,UAAS;EACT,SACC,oBAAC,cAAD;GACC,WAAU;GACV,OAAO,EAAE,UAAU,OAAO;aAEzB,OAAO,YAAY,aACjB,cAAc,UAAU,MAAM,CAAA,GAC9B;GACE,CAAA;EAEP,GAAI;EACJ,WAAA;EACA,SAAS;EACT,iBAAiB;EAEhB;EACK,CAAA;;AAIT,SAAS,OAAO"}
1
+ {"version":3,"file":"dropdown.js","names":[],"sources":["../../../../packages/components/dropdown/dropdown.tsx"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport List from \"../list\";\nimport Popup from \"../popup\";\nimport \"./index.css\";\nimport Item from \"./item\";\nimport { IDropdown } from \"./type\";\n\nconst Dropdown = (props: IDropdown) => {\n\tconst { visible, width, content, children, ...restProps } = props;\n\tconst [active, setActive] = useState(visible);\n\n\tif (!content) {\n\t\treturn children;\n\t}\n\n\tconst handleVisibleChange = (v: boolean) => {\n\t\tsetActive(v);\n\t\tif (props.onVisibleChange) {\n\t\t\tprops.onVisibleChange(v);\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tsetActive(visible);\n\t}, [visible]);\n\n\treturn (\n\t\t<Popup\n\t\t\ttrigger='click'\n\t\t\tposition='bottom'\n\t\t\tcontent={\n\t\t\t\t<List\n\t\t\t\t\tclassName='i-dropdown-content'\n\t\t\t\t\tstyle={{ minWidth: width }}\n\t\t\t\t>\n\t\t\t\t\t{typeof content === \"function\"\n\t\t\t\t\t\t? content(() => setActive(false))\n\t\t\t\t\t\t: content}\n\t\t\t\t</List>\n\t\t\t}\n\t\t\t{...restProps}\n\t\t\ttouchable\n\t\t\tvisible={active}\n\t\t\tonVisibleChange={handleVisibleChange}\n\t\t>\n\t\t\t{children}\n\t\t</Popup>\n\t);\n};\n\nDropdown.Item = Item;\n\nexport default Dropdown;\n"],"mappings":";;;;;;;CAOA,MAAM,EAAA,SAAY,OAAO,SAAS,UAAK,GAAA,cAAA;CACtC,MAAM,CAAC,QAAQ,aAAS,SAAS,QAAY;cAG7C,QAAK;;AAIL,YAAM,EAAA;AACL,MAAA,MAAU,gBACV,OAAI,gBAAM,EAAe;;;AAK1B,YAAW,QAAK;IACf,CAAA,QAAU,CAAA;QAGX,oBAAA,eAAA;EACE,SAAA;EACA,UAAS;EACT,SACA,oBAAA,cAAA;GACE,WAAA;GACA,OAAA,EAAS,UAAI,OAAS;aAEvB,OAAA,YAAA,aACE,cAAgB,UAAI,MAAQ,CAAA,GAC1B;GACA,CAAA;EAEL,GAAA;EACA,WAAA;EACA,SAAA;EACA,iBAAe;EAEhB;EACE,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import button_default from "../button/index.js";
2
2
  import icon_default from "../icon/index.js";
3
- import { ClearAllRound, FormatBoldRound, FormatItalicRound, FormatUnderlinedRound, RedoRound, StrikethroughSRound, UndoRound } from "/Users/iann/codes/ioca-react/node_modules/.pnpm/@ricons+material@0.12.0/node_modules/@ricons/material/es/index.js";
3
+ import { ClearAllRound, FormatBoldRound, FormatItalicRound, FormatUnderlinedRound, RedoRound, StrikethroughSRound, UndoRound } from "@ricons/material";
4
4
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
5
5
  import xss from "xss";
6
6
  //#region packages/components/editor/controls.tsx