solid-tom-ui 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (451) hide show
  1. package/README.md +247 -0
  2. package/dist/components/avatar/avatar.d.ts +14 -0
  3. package/dist/components/avatar/avatar.d.ts.map +1 -0
  4. package/dist/components/avatar/avatar.js +2 -0
  5. package/dist/components/avatar/avatar.js.map +1 -0
  6. package/dist/components/avatar/avatar.types.d.ts +18 -0
  7. package/dist/components/avatar/avatar.types.d.ts.map +1 -0
  8. package/dist/components/avatar/index.d.ts +2 -0
  9. package/dist/components/avatar/index.d.ts.map +1 -0
  10. package/dist/components/badge/badge.d.ts +12 -0
  11. package/dist/components/badge/badge.d.ts.map +1 -0
  12. package/dist/components/badge/badge.js +2 -0
  13. package/dist/components/badge/badge.js.map +1 -0
  14. package/dist/components/badge/badge.types.d.ts +10 -0
  15. package/dist/components/badge/badge.types.d.ts.map +1 -0
  16. package/dist/components/badge/index.d.ts +3 -0
  17. package/dist/components/badge/index.d.ts.map +1 -0
  18. package/dist/components/blank/blank.d.ts +5 -0
  19. package/dist/components/blank/blank.d.ts.map +1 -0
  20. package/dist/components/blank/blank.js +2 -0
  21. package/dist/components/blank/blank.js.map +1 -0
  22. package/dist/components/blank/index.d.ts +2 -0
  23. package/dist/components/blank/index.d.ts.map +1 -0
  24. package/dist/components/breadcrumb/breadcrumb.d.ts +11 -0
  25. package/dist/components/breadcrumb/breadcrumb.d.ts.map +1 -0
  26. package/dist/components/breadcrumb/breadcrumb.js +2 -0
  27. package/dist/components/breadcrumb/breadcrumb.js.map +1 -0
  28. package/dist/components/breadcrumb/index.d.ts +2 -0
  29. package/dist/components/breadcrumb/index.d.ts.map +1 -0
  30. package/dist/components/button/button.d.ts +19 -0
  31. package/dist/components/button/button.d.ts.map +1 -0
  32. package/dist/components/button/button.js +2 -0
  33. package/dist/components/button/button.js.map +1 -0
  34. package/dist/components/button/button.types.d.ts +30 -0
  35. package/dist/components/button/button.types.d.ts.map +1 -0
  36. package/dist/components/button/index.d.ts +2 -0
  37. package/dist/components/button/index.d.ts.map +1 -0
  38. package/dist/components/carousel/carousel.d.ts +4 -0
  39. package/dist/components/carousel/carousel.d.ts.map +1 -0
  40. package/dist/components/carousel/carousel.js +2 -0
  41. package/dist/components/carousel/carousel.js.map +1 -0
  42. package/dist/components/carousel/carousel.types.d.ts +36 -0
  43. package/dist/components/carousel/carousel.types.d.ts.map +1 -0
  44. package/dist/components/carousel/index.d.ts +3 -0
  45. package/dist/components/carousel/index.d.ts.map +1 -0
  46. package/dist/components/chat-bubble/chatBubble.d.ts +11 -0
  47. package/dist/components/chat-bubble/chatBubble.d.ts.map +1 -0
  48. package/dist/components/chat-bubble/chatBubble.js +2 -0
  49. package/dist/components/chat-bubble/chatBubble.js.map +1 -0
  50. package/dist/components/chat-bubble/chatBubble.type.d.ts +12 -0
  51. package/dist/components/chat-bubble/chatBubble.type.d.ts.map +1 -0
  52. package/dist/components/chat-bubble/index.d.ts +2 -0
  53. package/dist/components/chat-bubble/index.d.ts.map +1 -0
  54. package/dist/components/checkbox/checkbox.d.ts +22 -0
  55. package/dist/components/checkbox/checkbox.d.ts.map +1 -0
  56. package/dist/components/checkbox/checkbox.js +2 -0
  57. package/dist/components/checkbox/checkbox.js.map +1 -0
  58. package/dist/components/checkbox/index.d.ts +3 -0
  59. package/dist/components/checkbox/index.d.ts.map +1 -0
  60. package/dist/components/collapse/collapse.d.ts +12 -0
  61. package/dist/components/collapse/collapse.d.ts.map +1 -0
  62. package/dist/components/collapse/collapse.js +2 -0
  63. package/dist/components/collapse/collapse.js.map +1 -0
  64. package/dist/components/collapse/collapse.types.d.ts +17 -0
  65. package/dist/components/collapse/collapse.types.d.ts.map +1 -0
  66. package/dist/components/collapse/index.d.ts +2 -0
  67. package/dist/components/collapse/index.d.ts.map +1 -0
  68. package/dist/components/context-menu/context-menu.d.ts +4 -0
  69. package/dist/components/context-menu/context-menu.d.ts.map +1 -0
  70. package/dist/components/context-menu/context-menu.js +2 -0
  71. package/dist/components/context-menu/context-menu.js.map +1 -0
  72. package/dist/components/context-menu/context-menu.store.d.ts +14 -0
  73. package/dist/components/context-menu/context-menu.store.d.ts.map +1 -0
  74. package/dist/components/context-menu/context-menu.store.js +2 -0
  75. package/dist/components/context-menu/context-menu.store.js.map +1 -0
  76. package/dist/components/context-menu/context-menu.types.d.ts +51 -0
  77. package/dist/components/context-menu/context-menu.types.d.ts.map +1 -0
  78. package/dist/components/context-menu/index.d.ts +4 -0
  79. package/dist/components/context-menu/index.d.ts.map +1 -0
  80. package/dist/components/diff/diff.d.ts +9 -0
  81. package/dist/components/diff/diff.d.ts.map +1 -0
  82. package/dist/components/diff/diff.js +2 -0
  83. package/dist/components/diff/diff.js.map +1 -0
  84. package/dist/components/diff/index.d.ts +2 -0
  85. package/dist/components/diff/index.d.ts.map +1 -0
  86. package/dist/components/divider/divider.d.ts +5 -0
  87. package/dist/components/divider/divider.d.ts.map +1 -0
  88. package/dist/components/divider/divider.js +2 -0
  89. package/dist/components/divider/divider.js.map +1 -0
  90. package/dist/components/divider/divider.types.d.ts +16 -0
  91. package/dist/components/divider/divider.types.d.ts.map +1 -0
  92. package/dist/components/divider/index.d.ts +3 -0
  93. package/dist/components/divider/index.d.ts.map +1 -0
  94. package/dist/components/drawer/drawer.d.ts +6 -0
  95. package/dist/components/drawer/drawer.d.ts.map +1 -0
  96. package/dist/components/drawer/drawer.js +2 -0
  97. package/dist/components/drawer/drawer.js.map +1 -0
  98. package/dist/components/drawer/drawer.types.d.ts +19 -0
  99. package/dist/components/drawer/drawer.types.d.ts.map +1 -0
  100. package/dist/components/drawer/index.d.ts +3 -0
  101. package/dist/components/drawer/index.d.ts.map +1 -0
  102. package/dist/components/dropdown/dropdown.d.ts +11 -0
  103. package/dist/components/dropdown/dropdown.d.ts.map +1 -0
  104. package/dist/components/dropdown/dropdown.js +2 -0
  105. package/dist/components/dropdown/dropdown.js.map +1 -0
  106. package/dist/components/dropdown/dropdown.store.d.ts +8 -0
  107. package/dist/components/dropdown/dropdown.store.d.ts.map +1 -0
  108. package/dist/components/dropdown/dropdown.store.js +2 -0
  109. package/dist/components/dropdown/dropdown.store.js.map +1 -0
  110. package/dist/components/dropdown/dropdown.types.d.ts +15 -0
  111. package/dist/components/dropdown/dropdown.types.d.ts.map +1 -0
  112. package/dist/components/dropdown/index.d.ts +3 -0
  113. package/dist/components/dropdown/index.d.ts.map +1 -0
  114. package/dist/components/dynamic-icon/DynamicIcon.d.ts +8 -0
  115. package/dist/components/dynamic-icon/DynamicIcon.d.ts.map +1 -0
  116. package/dist/components/dynamic-icon/index.d.ts +2 -0
  117. package/dist/components/dynamic-icon/index.d.ts.map +1 -0
  118. package/dist/components/float-button/float-button.d.ts +5 -0
  119. package/dist/components/float-button/float-button.d.ts.map +1 -0
  120. package/dist/components/float-button/float-button.js +2 -0
  121. package/dist/components/float-button/float-button.js.map +1 -0
  122. package/dist/components/float-button/float-button.types.d.ts +42 -0
  123. package/dist/components/float-button/float-button.types.d.ts.map +1 -0
  124. package/dist/components/float-button/index.d.ts +2 -0
  125. package/dist/components/float-button/index.d.ts.map +1 -0
  126. package/dist/components/hover-3d-image/hover-3d-example.d.ts +3 -0
  127. package/dist/components/hover-3d-image/hover-3d-example.d.ts.map +1 -0
  128. package/dist/components/hover-3d-image/hover-3d-image.d.ts +13 -0
  129. package/dist/components/hover-3d-image/hover-3d-image.d.ts.map +1 -0
  130. package/dist/components/hover-3d-image/hover-3d-image.js +2 -0
  131. package/dist/components/hover-3d-image/hover-3d-image.js.map +1 -0
  132. package/dist/components/hover-3d-image/index.d.ts +2 -0
  133. package/dist/components/hover-3d-image/index.d.ts.map +1 -0
  134. package/dist/components/iframe/index.d.ts +7 -0
  135. package/dist/components/iframe/index.d.ts.map +1 -0
  136. package/dist/components/image-preview/image-preview.d.ts +25 -0
  137. package/dist/components/image-preview/image-preview.d.ts.map +1 -0
  138. package/dist/components/image-preview/image-preview.js +2 -0
  139. package/dist/components/image-preview/image-preview.js.map +1 -0
  140. package/dist/components/image-preview/index.d.ts +3 -0
  141. package/dist/components/image-preview/index.d.ts.map +1 -0
  142. package/dist/components/indicator/index.d.ts +3 -0
  143. package/dist/components/indicator/index.d.ts.map +1 -0
  144. package/dist/components/indicator/indicator.d.ts +4 -0
  145. package/dist/components/indicator/indicator.d.ts.map +1 -0
  146. package/dist/components/indicator/indicator.js +2 -0
  147. package/dist/components/indicator/indicator.js.map +1 -0
  148. package/dist/components/indicator/indicator.types.d.ts +18 -0
  149. package/dist/components/indicator/indicator.types.d.ts.map +1 -0
  150. package/dist/components/input/index.d.ts +2 -0
  151. package/dist/components/input/index.d.ts.map +1 -0
  152. package/dist/components/input/input.d.ts +17 -0
  153. package/dist/components/input/input.d.ts.map +1 -0
  154. package/dist/components/input/input.js +2 -0
  155. package/dist/components/input/input.js.map +1 -0
  156. package/dist/components/input/input.types.d.ts +76 -0
  157. package/dist/components/input/input.types.d.ts.map +1 -0
  158. package/dist/components/input/input.utils.d.ts +16 -0
  159. package/dist/components/input/input.utils.d.ts.map +1 -0
  160. package/dist/components/input/input.utils.js +2 -0
  161. package/dist/components/input/input.utils.js.map +1 -0
  162. package/dist/components/input/variants/input-color.d.ts +4 -0
  163. package/dist/components/input/variants/input-color.d.ts.map +1 -0
  164. package/dist/components/input/variants/input-color.js +2 -0
  165. package/dist/components/input/variants/input-color.js.map +1 -0
  166. package/dist/components/input/variants/input-date.d.ts +4 -0
  167. package/dist/components/input/variants/input-date.d.ts.map +1 -0
  168. package/dist/components/input/variants/input-date.js +2 -0
  169. package/dist/components/input/variants/input-date.js.map +1 -0
  170. package/dist/components/input/variants/input-number.d.ts +4 -0
  171. package/dist/components/input/variants/input-number.d.ts.map +1 -0
  172. package/dist/components/input/variants/input-number.js +2 -0
  173. package/dist/components/input/variants/input-number.js.map +1 -0
  174. package/dist/components/input/variants/input-otp.d.ts +5 -0
  175. package/dist/components/input/variants/input-otp.d.ts.map +1 -0
  176. package/dist/components/input/variants/input-otp.js +2 -0
  177. package/dist/components/input/variants/input-otp.js.map +1 -0
  178. package/dist/components/input/variants/input-password.d.ts +4 -0
  179. package/dist/components/input/variants/input-password.d.ts.map +1 -0
  180. package/dist/components/input/variants/input-password.js +2 -0
  181. package/dist/components/input/variants/input-password.js.map +1 -0
  182. package/dist/components/input/variants/input-radio.d.ts +22 -0
  183. package/dist/components/input/variants/input-radio.d.ts.map +1 -0
  184. package/dist/components/input/variants/input-radio.js +2 -0
  185. package/dist/components/input/variants/input-radio.js.map +1 -0
  186. package/dist/components/input/variants/input-range.d.ts +4 -0
  187. package/dist/components/input/variants/input-range.d.ts.map +1 -0
  188. package/dist/components/input/variants/input-range.js +2 -0
  189. package/dist/components/input/variants/input-range.js.map +1 -0
  190. package/dist/components/input/variants/input-text.d.ts +4 -0
  191. package/dist/components/input/variants/input-text.d.ts.map +1 -0
  192. package/dist/components/input/variants/input-text.js +2 -0
  193. package/dist/components/input/variants/input-text.js.map +1 -0
  194. package/dist/components/input/variants/input-textarea.d.ts +4 -0
  195. package/dist/components/input/variants/input-textarea.d.ts.map +1 -0
  196. package/dist/components/input/variants/input-textarea.js +2 -0
  197. package/dist/components/input/variants/input-textarea.js.map +1 -0
  198. package/dist/components/loading/index.d.ts +3 -0
  199. package/dist/components/loading/index.d.ts.map +1 -0
  200. package/dist/components/loading/loading.d.ts +32 -0
  201. package/dist/components/loading/loading.d.ts.map +1 -0
  202. package/dist/components/loading/loading.js +2 -0
  203. package/dist/components/loading/loading.js.map +1 -0
  204. package/dist/components/mansory/index.d.ts +3 -0
  205. package/dist/components/mansory/index.d.ts.map +1 -0
  206. package/dist/components/mansory/mansory.d.ts +4 -0
  207. package/dist/components/mansory/mansory.d.ts.map +1 -0
  208. package/dist/components/mansory/mansory.js +2 -0
  209. package/dist/components/mansory/mansory.js.map +1 -0
  210. package/dist/components/mansory/mansory.types.d.ts +27 -0
  211. package/dist/components/mansory/mansory.types.d.ts.map +1 -0
  212. package/dist/components/menu/index.d.ts +4 -0
  213. package/dist/components/menu/index.d.ts.map +1 -0
  214. package/dist/components/menu/menu.d.ts +11 -0
  215. package/dist/components/menu/menu.d.ts.map +1 -0
  216. package/dist/components/menu/menu.data-example.d.ts +7 -0
  217. package/dist/components/menu/menu.data-example.d.ts.map +1 -0
  218. package/dist/components/menu/menu.js +2 -0
  219. package/dist/components/menu/menu.js.map +1 -0
  220. package/dist/components/menu/menu.types.d.ts +74 -0
  221. package/dist/components/menu/menu.types.d.ts.map +1 -0
  222. package/dist/components/modal/index.d.ts +3 -0
  223. package/dist/components/modal/index.d.ts.map +1 -0
  224. package/dist/components/modal/modal.d.ts +28 -0
  225. package/dist/components/modal/modal.d.ts.map +1 -0
  226. package/dist/components/modal/modal.js +2 -0
  227. package/dist/components/modal/modal.js.map +1 -0
  228. package/dist/components/modal/modalContext.d.ts +8 -0
  229. package/dist/components/modal/modalContext.d.ts.map +1 -0
  230. package/dist/components/modal/modalContext.js +2 -0
  231. package/dist/components/modal/modalContext.js.map +1 -0
  232. package/dist/components/pagination/index.d.ts +3 -0
  233. package/dist/components/pagination/index.d.ts.map +1 -0
  234. package/dist/components/pagination/pagination.d.ts +4 -0
  235. package/dist/components/pagination/pagination.d.ts.map +1 -0
  236. package/dist/components/pagination/pagination.js +2 -0
  237. package/dist/components/pagination/pagination.js.map +1 -0
  238. package/dist/components/pagination/pagination.types.d.ts +88 -0
  239. package/dist/components/pagination/pagination.types.d.ts.map +1 -0
  240. package/dist/components/progress-bar/index.d.ts +4 -0
  241. package/dist/components/progress-bar/index.d.ts.map +1 -0
  242. package/dist/components/progress-bar/progress-bar.d.ts +8 -0
  243. package/dist/components/progress-bar/progress-bar.d.ts.map +1 -0
  244. package/dist/components/progress-bar/progress-bar.js +2 -0
  245. package/dist/components/progress-bar/progress-bar.js.map +1 -0
  246. package/dist/components/progress-bar/progress-bar.types.d.ts +20 -0
  247. package/dist/components/progress-bar/progress-bar.types.d.ts.map +1 -0
  248. package/dist/components/qr-code/index.d.ts +3 -0
  249. package/dist/components/qr-code/index.d.ts.map +1 -0
  250. package/dist/components/qr-code/qr-code.d.ts +4 -0
  251. package/dist/components/qr-code/qr-code.d.ts.map +1 -0
  252. package/dist/components/qr-code/qr-code.js +2 -0
  253. package/dist/components/qr-code/qr-code.js.map +1 -0
  254. package/dist/components/qr-code/qr-code.types.d.ts +42 -0
  255. package/dist/components/qr-code/qr-code.types.d.ts.map +1 -0
  256. package/dist/components/rating/index.d.ts +2 -0
  257. package/dist/components/rating/index.d.ts.map +1 -0
  258. package/dist/components/rating/rating.d.ts +4 -0
  259. package/dist/components/rating/rating.d.ts.map +1 -0
  260. package/dist/components/rating/rating.js +2 -0
  261. package/dist/components/rating/rating.js.map +1 -0
  262. package/dist/components/rating/rating.types.d.ts +33 -0
  263. package/dist/components/rating/rating.types.d.ts.map +1 -0
  264. package/dist/components/select/index.d.ts +3 -0
  265. package/dist/components/select/index.d.ts.map +1 -0
  266. package/dist/components/select/select.d.ts +12 -0
  267. package/dist/components/select/select.d.ts.map +1 -0
  268. package/dist/components/select/select.js +2 -0
  269. package/dist/components/select/select.js.map +1 -0
  270. package/dist/components/select/select.types.d.ts +134 -0
  271. package/dist/components/select/select.types.d.ts.map +1 -0
  272. package/dist/components/select-zone/index.d.ts +3 -0
  273. package/dist/components/select-zone/index.d.ts.map +1 -0
  274. package/dist/components/select-zone/select-zone.d.ts +5 -0
  275. package/dist/components/select-zone/select-zone.d.ts.map +1 -0
  276. package/dist/components/select-zone/select-zone.js +2 -0
  277. package/dist/components/select-zone/select-zone.js.map +1 -0
  278. package/dist/components/select-zone/select-zone.types.d.ts +58 -0
  279. package/dist/components/select-zone/select-zone.types.d.ts.map +1 -0
  280. package/dist/components/skeleton/index.d.ts +3 -0
  281. package/dist/components/skeleton/index.d.ts.map +1 -0
  282. package/dist/components/skeleton/skeleton.d.ts +25 -0
  283. package/dist/components/skeleton/skeleton.d.ts.map +1 -0
  284. package/dist/components/skeleton/skeleton.js +2 -0
  285. package/dist/components/skeleton/skeleton.js.map +1 -0
  286. package/dist/components/slider/index.d.ts +2 -0
  287. package/dist/components/slider/index.d.ts.map +1 -0
  288. package/dist/components/slider/slider.d.ts +4 -0
  289. package/dist/components/slider/slider.d.ts.map +1 -0
  290. package/dist/components/slider/slider.js +2 -0
  291. package/dist/components/slider/slider.js.map +1 -0
  292. package/dist/components/slider/slider.types.d.ts +32 -0
  293. package/dist/components/slider/slider.types.d.ts.map +1 -0
  294. package/dist/components/splitter/index.d.ts +3 -0
  295. package/dist/components/splitter/index.d.ts.map +1 -0
  296. package/dist/components/splitter/splitter.d.ts +7 -0
  297. package/dist/components/splitter/splitter.d.ts.map +1 -0
  298. package/dist/components/splitter/splitter.js +2 -0
  299. package/dist/components/splitter/splitter.js.map +1 -0
  300. package/dist/components/splitter/splitter.types.d.ts +64 -0
  301. package/dist/components/splitter/splitter.types.d.ts.map +1 -0
  302. package/dist/components/steps/index.d.ts +3 -0
  303. package/dist/components/steps/index.d.ts.map +1 -0
  304. package/dist/components/steps/steps.d.ts +29 -0
  305. package/dist/components/steps/steps.d.ts.map +1 -0
  306. package/dist/components/steps/steps.js +2 -0
  307. package/dist/components/steps/steps.js.map +1 -0
  308. package/dist/components/swap/index.d.ts +2 -0
  309. package/dist/components/swap/index.d.ts.map +1 -0
  310. package/dist/components/swap/swap.d.ts +11 -0
  311. package/dist/components/swap/swap.d.ts.map +1 -0
  312. package/dist/components/swap/swap.js +2 -0
  313. package/dist/components/swap/swap.js.map +1 -0
  314. package/dist/components/switch/index.d.ts +3 -0
  315. package/dist/components/switch/index.d.ts.map +1 -0
  316. package/dist/components/switch/switch.d.ts +11 -0
  317. package/dist/components/switch/switch.d.ts.map +1 -0
  318. package/dist/components/switch/switch.js +2 -0
  319. package/dist/components/switch/switch.js.map +1 -0
  320. package/dist/components/switch/switch.types.d.ts +23 -0
  321. package/dist/components/switch/switch.types.d.ts.map +1 -0
  322. package/dist/components/tab/index.d.ts +3 -0
  323. package/dist/components/tab/index.d.ts.map +1 -0
  324. package/dist/components/tab/tab.d.ts +4 -0
  325. package/dist/components/tab/tab.d.ts.map +1 -0
  326. package/dist/components/tab/tab.js +2 -0
  327. package/dist/components/tab/tab.js.map +1 -0
  328. package/dist/components/tab/tab.types.d.ts +51 -0
  329. package/dist/components/tab/tab.types.d.ts.map +1 -0
  330. package/dist/components/table/index.d.ts +4 -0
  331. package/dist/components/table/index.d.ts.map +1 -0
  332. package/dist/components/table/index.js +1 -0
  333. package/dist/components/table/table.d.ts +10 -0
  334. package/dist/components/table/table.d.ts.map +1 -0
  335. package/dist/components/table/table.js +2 -0
  336. package/dist/components/table/table.js.map +1 -0
  337. package/dist/components/table/table.types.d.ts +155 -0
  338. package/dist/components/table/table.types.d.ts.map +1 -0
  339. package/dist/components/text-rotate/index.d.ts +3 -0
  340. package/dist/components/text-rotate/index.d.ts.map +1 -0
  341. package/dist/components/text-rotate/text-rotate.d.ts +12 -0
  342. package/dist/components/text-rotate/text-rotate.d.ts.map +1 -0
  343. package/dist/components/text-rotate/text-rotate.js +2 -0
  344. package/dist/components/text-rotate/text-rotate.js.map +1 -0
  345. package/dist/components/timeline/index.d.ts +3 -0
  346. package/dist/components/timeline/index.d.ts.map +1 -0
  347. package/dist/components/timeline/timeline.d.ts +4 -0
  348. package/dist/components/timeline/timeline.d.ts.map +1 -0
  349. package/dist/components/timeline/timeline.js +2 -0
  350. package/dist/components/timeline/timeline.js.map +1 -0
  351. package/dist/components/timeline/timeline.types.d.ts +55 -0
  352. package/dist/components/timeline/timeline.types.d.ts.map +1 -0
  353. package/dist/components/toast/icons/ErrorIcon.d.ts +4 -0
  354. package/dist/components/toast/icons/ErrorIcon.d.ts.map +1 -0
  355. package/dist/components/toast/icons/ErrorIcon.js +2 -0
  356. package/dist/components/toast/icons/ErrorIcon.js.map +1 -0
  357. package/dist/components/toast/icons/IconCircle.d.ts +9 -0
  358. package/dist/components/toast/icons/IconCircle.d.ts.map +1 -0
  359. package/dist/components/toast/icons/IconCircle.js +2 -0
  360. package/dist/components/toast/icons/IconCircle.js.map +1 -0
  361. package/dist/components/toast/icons/InfoIcon.d.ts +4 -0
  362. package/dist/components/toast/icons/InfoIcon.d.ts.map +1 -0
  363. package/dist/components/toast/icons/InfoIcon.js +2 -0
  364. package/dist/components/toast/icons/InfoIcon.js.map +1 -0
  365. package/dist/components/toast/icons/LoaderIcon.d.ts +4 -0
  366. package/dist/components/toast/icons/LoaderIcon.d.ts.map +1 -0
  367. package/dist/components/toast/icons/LoaderIcon.js +2 -0
  368. package/dist/components/toast/icons/LoaderIcon.js.map +1 -0
  369. package/dist/components/toast/icons/SuccessIcon.d.ts +4 -0
  370. package/dist/components/toast/icons/SuccessIcon.d.ts.map +1 -0
  371. package/dist/components/toast/icons/SuccessIcon.js +2 -0
  372. package/dist/components/toast/icons/SuccessIcon.js.map +1 -0
  373. package/dist/components/toast/icons/WarningIcon.d.ts +4 -0
  374. package/dist/components/toast/icons/WarningIcon.d.ts.map +1 -0
  375. package/dist/components/toast/icons/WarningIcon.js +2 -0
  376. package/dist/components/toast/icons/WarningIcon.js.map +1 -0
  377. package/dist/components/toast/icons/index.d.ts +4 -0
  378. package/dist/components/toast/icons/index.d.ts.map +1 -0
  379. package/dist/components/toast/index.d.ts +3 -0
  380. package/dist/components/toast/index.d.ts.map +1 -0
  381. package/dist/components/toast/toast.d.ts +7 -0
  382. package/dist/components/toast/toast.d.ts.map +1 -0
  383. package/dist/components/toast/toast.js +2 -0
  384. package/dist/components/toast/toast.js.map +1 -0
  385. package/dist/components/toast/toast.store.d.ts +17 -0
  386. package/dist/components/toast/toast.store.d.ts.map +1 -0
  387. package/dist/components/toast/toast.store.js +2 -0
  388. package/dist/components/toast/toast.store.js.map +1 -0
  389. package/dist/components/toast/toast.type.d.ts +72 -0
  390. package/dist/components/toast/toast.type.d.ts.map +1 -0
  391. package/dist/components/tooltip/index.d.ts +4 -0
  392. package/dist/components/tooltip/index.d.ts.map +1 -0
  393. package/dist/components/tooltip/tooltip.d.ts +11 -0
  394. package/dist/components/tooltip/tooltip.d.ts.map +1 -0
  395. package/dist/components/tooltip/tooltip.js +2 -0
  396. package/dist/components/tooltip/tooltip.js.map +1 -0
  397. package/dist/components/tooltip/tooltip.types.d.ts +39 -0
  398. package/dist/components/tooltip/tooltip.types.d.ts.map +1 -0
  399. package/dist/components/tour/index.d.ts +3 -0
  400. package/dist/components/tour/index.d.ts.map +1 -0
  401. package/dist/components/tour/tour.d.ts +3 -0
  402. package/dist/components/tour/tour.d.ts.map +1 -0
  403. package/dist/components/tour/tour.js +9 -0
  404. package/dist/components/tour/tour.js.map +1 -0
  405. package/dist/components/tour/tour.types.d.ts +35 -0
  406. package/dist/components/tour/tour.types.d.ts.map +1 -0
  407. package/dist/components/upload/index.d.ts +3 -0
  408. package/dist/components/upload/index.d.ts.map +1 -0
  409. package/dist/components/upload/upload.d.ts +3 -0
  410. package/dist/components/upload/upload.d.ts.map +1 -0
  411. package/dist/components/upload/upload.js +2 -0
  412. package/dist/components/upload/upload.js.map +1 -0
  413. package/dist/components/upload/upload.types.d.ts +95 -0
  414. package/dist/components/upload/upload.types.d.ts.map +1 -0
  415. package/dist/components/z-index/index.d.ts +4 -0
  416. package/dist/components/z-index/index.d.ts.map +1 -0
  417. package/dist/components/z-index/z-index.context.d.ts +17 -0
  418. package/dist/components/z-index/z-index.context.d.ts.map +1 -0
  419. package/dist/components/z-index/z-index.context.js +2 -0
  420. package/dist/components/z-index/z-index.context.js.map +1 -0
  421. package/dist/components/z-index/z-index.d.ts +20 -0
  422. package/dist/components/z-index/z-index.d.ts.map +1 -0
  423. package/dist/components/z-index/z-index.js +2 -0
  424. package/dist/components/z-index/z-index.js.map +1 -0
  425. package/dist/components/z-index/z-index.store.d.ts +14 -0
  426. package/dist/components/z-index/z-index.store.d.ts.map +1 -0
  427. package/dist/components/z-index/z-index.store.js +2 -0
  428. package/dist/components/z-index/z-index.store.js.map +1 -0
  429. package/dist/components/z-index/z-index.types.d.ts +51 -0
  430. package/dist/components/z-index/z-index.types.d.ts.map +1 -0
  431. package/dist/components/z-index/z-index.types.js +2 -0
  432. package/dist/components/z-index/z-index.types.js.map +1 -0
  433. package/dist/lib.d.ts +48 -0
  434. package/dist/lib.d.ts.map +1 -0
  435. package/dist/lib.js +1 -0
  436. package/dist/solid-ui.css +94 -0
  437. package/dist/type.d.ts +4 -0
  438. package/dist/type.d.ts.map +1 -0
  439. package/dist/utils/cn.d.ts +3 -0
  440. package/dist/utils/cn.d.ts.map +1 -0
  441. package/dist/utils/cn.js +2 -0
  442. package/dist/utils/cn.js.map +1 -0
  443. package/dist/utils/element-tracker.js +2 -0
  444. package/dist/utils/element-tracker.js.map +1 -0
  445. package/dist/utils/helper.d.ts +32 -0
  446. package/dist/utils/helper.d.ts.map +1 -0
  447. package/dist/utils/helper.js +2 -0
  448. package/dist/utils/helper.js.map +1 -0
  449. package/dist/utils/hoc.js +2 -0
  450. package/dist/utils/hoc.js.map +1 -0
  451. package/package.json +131 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upload.js","names":["cn","ImagePreview","Spinner","CircleCheck","CircleX","CloudUpload","Eye","File","FileImage","FileText","Film","Music","Trash2","X","ZoomIn","Accessor","createSignal","createUniqueId","For","Match","mergeProps","Show","Switch","Tooltip","UploadBaseProps","UploadClassConfig","UploadComponent","UploadDraggerProps","UploadFile","UploadProps","UploadRequestOption","cls","config","key","extra","wrapperCls","base","wrapper","getFileIconColor","type","startsWith","includes","getFileIconBg","getFileIconNode","size","_$createComponent","getFileBadge","name","label","colorClass","ext","split","pop","toUpperCase","slice","formatFileSize","bytes","toFixed","isImageFile","defaultRequest","options","cancelled","current","tick","increment","Math","random","min","onProgress","round","setTimeout","onSuccess","ProgressEntry","v","useUpload","props","fileList","setFileList","progressMap","Map","cancelMap","imgMap","HTMLImageElement","getProgress","uid","get","cancelAndClean","thumbUrl","delete","img","onload","src","URL","revokeObjectURL","processFiles","rawFiles","FileList","files","Array","from","maxCount","maxFileSize","maxTotalSize","currentList","file","onError","message","newTotal","length","currentTotal","reduce","sum","f","batchTotal","forEach","createObjectURL","undefined","percent","setPercent","set","newFile","status","originFile","Image","list","map","dimensions","width","naturalWidth","height","naturalHeight","prev","nextList","multiple","onChange","requestFn","customRequest","cancel","next","const","done","find","error","Error","failed","value","snapshot","idx","findIndex","removeFile","removed","filter","clearAll","ProgressBar","trackClass","fillClass","_el$","_tmpl$","_el$2","firstChild","_$effect","_p$","_v$","_v$2","_v$3","e","_$className","t","a","_$setStyleProperty","CardProgressOverlay","_el$3","_tmpl$2","_el$4","_el$5","_el$6","nextSibling","_el$7","_$insert","PictureThumbLoading","_tmpl$3","TextFileList","onRemove","onClearAll","showClearAll","classConfig","showTooltip","listId","_el$9","_tmpl$5","_el$13","_$setAttribute","when","_$memo","children","_el$0","_tmpl$4","_el$1","_el$10","_el$11","_el$12","_$addEventListener","_v$4","_v$5","_v$6","each","badge","_el$14","_tmpl$6","FileUploadItem","isUploading","_el$15","_tmpl$8","_el$16","_el$17","_el$19","_el$20","content","hidden","root","_el$18","_tmpl$7","$$click","_v$7","_v$8","_v$9","_v$0","o","PictureFileList","preview","setPreview","_el$21","_tmpl$9","_el$27","_el$22","_el$23","_el$24","_el$25","_el$26","_v$1","_v$10","_v$11","_el$28","_tmpl$14","_el$29","_el$32","_el$33","_el$34","_el$39","_el$43","_el$45","fallback","_el$46","_tmpl$15","_el$47","_v$20","_v$21","_el$30","_tmpl$0","_v$12","_v$13","_el$31","_tmpl$1","_el$35","_tmpl$10","_el$36","_el$38","_el$37","_el$40","_tmpl$11","_el$41","_tmpl$12","_el$44","_tmpl$13","_v$14","_v$15","_v$16","_v$17","_v$18","_v$19","i","n","imageName","onClose","PictureCardFileList","onAdd","showAddButton","_el$48","_el$49","_el$50","_el$51","_el$52","_v$22","_v$23","_v$24","_el$53","_tmpl$17","_el$56","_el$61","_el$57","_v$25","_v$26","_v$27","_el$58","_tmpl$18","_el$60","_el$59","_el$54","_tmpl$16","_el$55","UploadBase","p","listType","showUploadList","inputRef","HTMLInputElement","triggerInput","click","handleInputChange","Event","input","currentTarget","effectiveShowClearAll","_el$62","_tmpl$20","_el$63","_ref$","_$use","_$spread","_$mergeProps","accept","directory","webkitdirectory","class","_el$64","_tmpl$19","_el$65","errorMessage","_el$66","UploadDragger","hint","isDragging","setIsDragging","handleDragOver","DragEvent","preventDefault","handleDragLeave","handleDrop","dataTransfer","_el$67","_el$68","_ref$2","_el$69","_el$70","addEventListener","icon","strokeWidth","_el$72","_tmpl$21","_el$73","_tmpl$22","_v$28","_v$29","_el$71","Upload","Dragger","_$delegateEvents"],"sources":["../../../src/components/upload/upload.tsx"],"sourcesContent":["import { cn } from '@/utils/cn';\r\nimport { ImagePreview } from '@components/image-preview';\r\nimport { Spinner } from '@components/loading/loading';\r\nimport CircleCheck from 'lucide-solid/icons/circle-check';\r\nimport CircleX from 'lucide-solid/icons/circle-x';\r\nimport CloudUpload from 'lucide-solid/icons/cloud-upload';\r\nimport Eye from 'lucide-solid/icons/eye';\r\nimport File from 'lucide-solid/icons/file';\r\nimport FileImage from 'lucide-solid/icons/file-image';\r\nimport FileText from 'lucide-solid/icons/file-text';\r\nimport Film from 'lucide-solid/icons/film';\r\nimport Music from 'lucide-solid/icons/music';\r\nimport Trash2 from 'lucide-solid/icons/trash-2';\r\nimport X from 'lucide-solid/icons/x';\r\nimport ZoomIn from 'lucide-solid/icons/zoom-in';\r\nimport {\r\n Accessor,\r\n createSignal,\r\n createUniqueId,\r\n For,\r\n Match,\r\n mergeProps,\r\n Show,\r\n Switch,\r\n} from 'solid-js';\r\nimport { Tooltip } from '../tooltip';\r\nimport {\r\n UploadBaseProps,\r\n UploadClassConfig,\r\n UploadComponent,\r\n UploadDraggerProps,\r\n UploadFile,\r\n UploadProps,\r\n UploadRequestOption,\r\n} from './upload.types';\r\n\r\nfunction cls(\r\n config: string | UploadClassConfig | undefined,\r\n key: keyof UploadClassConfig,\r\n extra?: string,\r\n): string {\r\n if (!config) return extra ?? '';\r\n if (typeof config === 'string') return extra ?? '';\r\n return cn(config[key], extra);\r\n}\r\n\r\nfunction wrapperCls(config: string | UploadClassConfig | undefined, base: string): string {\r\n if (!config) return base;\r\n if (typeof config === 'string') return cn(base, config);\r\n return cn(base, config.wrapper);\r\n}\r\n\r\nfunction getFileIconColor(type: string): string {\r\n if (type.startsWith('image/')) return 'text-violet-500';\r\n if (type.startsWith('video/')) return 'text-rose-500';\r\n if (type.startsWith('audio/')) return 'text-amber-500';\r\n if (type === 'application/pdf') return 'text-red-500';\r\n if (type.includes('text') || type.includes('document')) return 'text-blue-500';\r\n if (type.includes('spreadsheet') || type.includes('excel')) return 'text-emerald-500';\r\n return 'text-base-content/40';\r\n}\r\n\r\nfunction getFileIconBg(type: string): string {\r\n if (type.startsWith('image/')) return 'bg-violet-500/10';\r\n if (type.startsWith('video/')) return 'bg-rose-500/10';\r\n if (type.startsWith('audio/')) return 'bg-amber-500/10';\r\n if (type === 'application/pdf') return 'bg-red-500/10';\r\n if (type.includes('text') || type.includes('document')) return 'bg-blue-500/10';\r\n if (type.includes('spreadsheet') || type.includes('excel')) return 'bg-emerald-500/10';\r\n return 'bg-base-content/5';\r\n}\r\n\r\nfunction getFileIconNode(type: string, size = 16) {\r\n if (type.startsWith('image/')) return <FileImage size={size} />;\r\n if (type.startsWith('video/')) return <Film size={size} />;\r\n if (type.startsWith('audio/')) return <Music size={size} />;\r\n if (type === 'application/pdf' || type.includes('text')) return <FileText size={size} />;\r\n return <File size={size} />;\r\n}\r\n\r\nfunction getFileBadge(type: string, name: string): { label: string; colorClass: string } {\r\n if (type === 'application/pdf') return { label: 'PDF', colorClass: 'bg-red-500' };\r\n if (type.startsWith('image/')) {\r\n const ext = name.split('.').pop()?.toUpperCase().slice(0, 3) ?? 'IMG';\r\n return { label: ext, colorClass: 'bg-violet-500' };\r\n }\r\n if (type.startsWith('video/')) return { label: 'VID', colorClass: 'bg-rose-500' };\r\n if (type.startsWith('audio/')) return { label: 'AUD', colorClass: 'bg-amber-500' };\r\n if (type.includes('spreadsheet') || type.includes('excel'))\r\n return { label: 'XLS', colorClass: 'bg-emerald-500' };\r\n if (type.includes('document') || type.includes('word'))\r\n return { label: 'DOC', colorClass: 'bg-blue-500' };\r\n if (type.includes('text')) return { label: 'TXT', colorClass: 'bg-blue-500' };\r\n\r\n const ext = name.split('.').pop()?.toUpperCase().slice(0, 4) ?? 'FILE';\r\n return { label: ext, colorClass: 'bg-slate-400' };\r\n}\r\n\r\nfunction formatFileSize(bytes: number): string {\r\n if (bytes === 0) return '0 B';\r\n if (bytes < 1024) return `${bytes} B`;\r\n if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`;\r\n return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;\r\n}\r\n\r\nfunction isImageFile(type: string): boolean {\r\n return type.startsWith('image/');\r\n}\r\n\r\nfunction defaultRequest(options: UploadRequestOption): () => void {\r\n let cancelled = false;\r\n let current = 0;\r\n\r\n const tick = () => {\r\n if (cancelled) return;\r\n\r\n const increment = Math.random() * 10 + 8;\r\n current = Math.min(current + increment, 95);\r\n options.onProgress(Math.round(current));\r\n\r\n if (current < 95) {\r\n setTimeout(tick, 100 + Math.random() * 80);\r\n } else {\r\n\r\n setTimeout(\r\n () => {\r\n if (cancelled) return;\r\n options.onProgress(100);\r\n options.onSuccess();\r\n },\r\n 400 + Math.random() * 300,\r\n );\r\n }\r\n };\r\n\r\n setTimeout(tick, 50);\r\n\r\n return () => {\r\n cancelled = true;\r\n };\r\n}\r\n\r\ntype ProgressEntry = [Accessor<number>, (v: number) => void];\r\n\r\nfunction useUpload(props: UploadBaseProps) {\r\n const [fileList, setFileList] = createSignal<UploadFile[]>([]);\r\n const progressMap = new Map<string, ProgressEntry>();\r\n\r\n const cancelMap = new Map<string, () => void>();\r\n\r\n const imgMap = new Map<string, HTMLImageElement>();\r\n\r\n const getProgress = (uid: string): Accessor<number> => {\r\n return progressMap.get(uid)?.[0] ?? (() => 0);\r\n };\r\n\r\n const cancelAndClean = (uid: string, thumbUrl?: string) => {\r\n cancelMap.get(uid)?.();\r\n cancelMap.delete(uid);\r\n progressMap.delete(uid);\r\n\r\n const img = imgMap.get(uid);\r\n if (img) {\r\n img.onload = null;\r\n img.src = '';\r\n imgMap.delete(uid);\r\n }\r\n if (thumbUrl) URL.revokeObjectURL(thumbUrl);\r\n };\r\n\r\n const processFiles = (rawFiles: FileList | File[]) => {\r\n const files = Array.from(rawFiles);\r\n const maxCount = props.maxCount;\r\n const maxFileSize = props.maxFileSize;\r\n const maxTotalSize = props.maxTotalSize;\r\n\r\n const currentList = fileList();\r\n\r\n for (const file of files) {\r\n\r\n if (maxFileSize && file.size > maxFileSize) {\r\n props.onError?.({\r\n type: 'maxFileSize',\r\n file,\r\n message: `\"${file.name}\" vượt quá dung lượng cho phép (${formatFileSize(maxFileSize)})`,\r\n });\r\n return;\r\n }\r\n }\r\n\r\n if (maxCount) {\r\n const newTotal = currentList.length + files.length;\r\n if (newTotal > maxCount) {\r\n props.onError?.({\r\n type: 'maxCount',\r\n file: files[0],\r\n message: `Đã đạt số lượng file tối đa (${maxCount})`,\r\n });\r\n return;\r\n }\r\n }\r\n\r\n if (maxTotalSize) {\r\n const currentTotal = currentList.reduce((sum, f) => sum + f.size, 0);\r\n const batchTotal = files.reduce((sum, f) => sum + f.size, 0);\r\n if (currentTotal + batchTotal > maxTotalSize) {\r\n props.onError?.({\r\n type: 'maxTotalSize',\r\n file: files[0],\r\n message: `Tổng dung lượng vượt quá giới hạn (${formatFileSize(maxTotalSize)})`,\r\n });\r\n return;\r\n }\r\n }\r\n\r\n files.forEach(file => {\r\n const uid = createUniqueId();\r\n const thumbUrl = isImageFile(file.type) ? URL.createObjectURL(file) : undefined;\r\n\r\n const [percent, setPercent] = createSignal(0);\r\n progressMap.set(uid, [percent, setPercent]);\r\n\r\n const newFile: UploadFile = {\r\n uid,\r\n name: file.name,\r\n size: file.size,\r\n type: file.type,\r\n status: 'uploading',\r\n originFile: file,\r\n thumbUrl,\r\n };\r\n\r\n if (thumbUrl) {\r\n const img = new Image();\r\n imgMap.set(uid, img);\r\n img.onload = () => {\r\n imgMap.delete(uid);\r\n setFileList(list =>\r\n list.map(f =>\r\n f.uid === uid\r\n ? { ...f, dimensions: { width: img.naturalWidth, height: img.naturalHeight } }\r\n : f,\r\n ),\r\n );\r\n };\r\n img.src = thumbUrl;\r\n }\r\n\r\n setFileList(prev => {\r\n const nextList = props.multiple === false ? [newFile] : [...prev, newFile];\r\n props.onChange?.({ file: newFile, fileList: nextList });\r\n return nextList;\r\n });\r\n\r\n const requestFn = props.customRequest ?? defaultRequest;\r\n const cancel = requestFn({\r\n file,\r\n onSuccess: () => {\r\n setPercent(100);\r\n setFileList(list => {\r\n const next = list.map(f => (f.uid === uid ? { ...f, status: 'done' as const } : f));\r\n const done = next.find(f => f.uid === uid);\r\n if (done) props.onChange?.({ file: done, fileList: next });\r\n return next;\r\n });\r\n cancelMap.delete(uid);\r\n progressMap.delete(uid);\r\n },\r\n onError: (error: Error) => {\r\n setFileList(list => {\r\n const next = list.map(f => (f.uid === uid ? { ...f, status: 'error' as const } : f));\r\n const failed = next.find(f => f.uid === uid);\r\n if (failed) props.onChange?.({ file: { ...failed, error }, fileList: next });\r\n return next;\r\n });\r\n cancelMap.delete(uid);\r\n progressMap.delete(uid);\r\n },\r\n onProgress: value => {\r\n\r\n setPercent(value);\r\n\r\n const snapshot = fileList();\r\n const idx = snapshot.findIndex(f => f.uid === uid);\r\n if (idx !== -1)\r\n props.onChange?.({\r\n file: { ...snapshot[idx], percent: value },\r\n fileList: snapshot,\r\n });\r\n },\r\n });\r\n\r\n if (typeof cancel === 'function') cancelMap.set(uid, cancel);\r\n });\r\n };\r\n\r\n const removeFile = (uid: string) => {\r\n setFileList(prev => {\r\n const removed = prev.find(f => f.uid === uid);\r\n\r\n cancelAndClean(uid, removed?.thumbUrl);\r\n const next = prev.filter(f => f.uid !== uid);\r\n if (removed) props.onChange?.({ file: { ...removed, status: 'removed' }, fileList: next });\r\n return next;\r\n });\r\n };\r\n\r\n const clearAll = () => {\r\n setFileList(prev => {\r\n prev.forEach(f => cancelAndClean(f.uid, f.thumbUrl));\r\n return [];\r\n });\r\n };\r\n\r\n return { fileList, processFiles, removeFile, clearAll, getProgress };\r\n}\r\n\r\nfunction ProgressBar(props: {\r\n percent: Accessor<number>;\r\n trackClass?: string;\r\n fillClass?: string;\r\n}) {\r\n return (\r\n <div class={cn('up26', props.trackClass)}>\r\n <div class={cn('up27', props.fillClass)} style={{ width: `${props.percent()}%` }} />\r\n </div>\r\n );\r\n}\r\n\r\nfunction CardProgressOverlay(props: { percent: Accessor<number> }) {\r\n return (\r\n <div class=\"up62\">\r\n <div class=\"up63\">\r\n <span class=\"loading loading-spinner loading-sm text-white\" />\r\n <span class=\"up64\">{props.percent()}%</span>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nfunction PictureThumbLoading() {\r\n return (\r\n <div class=\"up51\">\r\n <span class=\"loading loading-spinner loading-xs text-white\" />\r\n </div>\r\n );\r\n}\r\n\r\nfunction TextFileList(props: {\r\n files: UploadFile[];\r\n onRemove: (uid: string) => void;\r\n onClearAll: () => void;\r\n showClearAll: boolean;\r\n classConfig?: string | UploadClassConfig;\r\n showTooltip?: boolean;\r\n}) {\r\n const listId = createUniqueId();\r\n return (\r\n <div id={listId} class={cn('up06', cls(props.classConfig, 'textList'))}>\r\n <Show when={props.showClearAll && props.files.length > 1}>\r\n <div class={cn('up44', cls(props.classConfig, 'listHeader'))}>\r\n <span class={cn('up45', cls(props.classConfig, 'listCount'))}>\r\n {props.files.length} files\r\n </span>\r\n <button\r\n class={cn('up46', cls(props.classConfig, 'clearBtn'))}\r\n onClick={props.onClearAll}\r\n title=\"Remove all\"\r\n >\r\n <Trash2 size={12} />\r\n Clear all\r\n </button>\r\n </div>\r\n </Show>\r\n <ul class=\"flex flex-col gap-2\">\r\n <For each={props.files}>\r\n {file => {\r\n const badge = getFileBadge(file.type, file.name);\r\n return (\r\n <li>\r\n <FileUploadItem\r\n file={file}\r\n badge={badge}\r\n onRemove={props.onRemove}\r\n classConfig={props.classConfig}\r\n showTooltip={props.showTooltip}\r\n />\r\n </li>\r\n );\r\n }}\r\n </For>\r\n </ul>\r\n </div>\r\n );\r\n}\r\n\r\nfunction FileUploadItem(props: {\r\n file: UploadFile;\r\n badge: { label: string; colorClass: string };\r\n onRemove: (uid: string) => void;\r\n classConfig?: string | UploadClassConfig;\r\n showTooltip?: boolean;\r\n}) {\r\n const isUploading = () => props.file.status === 'uploading';\r\n\r\n return (\r\n <div class={cn('up07', cls(props.classConfig, 'textItem'))}>\r\n <div class=\"flex min-w-0 flex-1 items-center gap-2\">\r\n <div class={cn('up08', props.badge.colorClass, cls(props.classConfig, 'textBadge'))}>\r\n {props.badge.label}\r\n </div>\r\n <Tooltip\r\n content={props.file.name}\r\n hidden={!props.showTooltip}\r\n class={{ root: 'up09' }}\r\n type=\"default\"\r\n >\r\n <span class={cn('up09', cls(props.classConfig, 'textName'))}>{props.file.name}</span>\r\n </Tooltip>\r\n <div class={cn('up10', cls(props.classConfig, 'textSize'))}>\r\n {formatFileSize(props.file.size)}\r\n </div>\r\n\r\n <Switch>\r\n <Match when={isUploading()}>\r\n <Spinner class=\"size-5\" />\r\n </Match>\r\n <Match when={props.file.status === 'done'}>\r\n <CircleCheck size={16} class=\"text-success\" />\r\n </Match>\r\n <Match when={props.file.status === 'error'}>\r\n <CircleX size={16} class=\"text-error\" />\r\n </Match>\r\n </Switch>\r\n\r\n <button\r\n class={cn('up57', cls(props.classConfig, 'removeBtn'))}\r\n onClick={() => props.onRemove(props.file.uid)}\r\n title=\"Remove\"\r\n >\r\n <X size={16} />\r\n </button>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nfunction PictureFileList(props: {\r\n files: UploadFile[];\r\n onRemove: (uid: string) => void;\r\n onClearAll: () => void;\r\n showClearAll: boolean;\r\n getProgress: (uid: string) => Accessor<number>;\r\n classConfig?: string | UploadClassConfig;\r\n}) {\r\n const [preview, setPreview] = createSignal<UploadFile | null>(null);\r\n\r\n return (\r\n <>\r\n <div class={cn('up47', cls(props.classConfig, 'pictureList'))}>\r\n <Show when={props.showClearAll && props.files.length > 1}>\r\n <div class={cn('up44', cls(props.classConfig, 'listHeader'))}>\r\n <span class={cn('up45', cls(props.classConfig, 'listCount'))}>\r\n {props.files.length} files\r\n </span>\r\n <button\r\n class={cn('up46', cls(props.classConfig, 'clearBtn'))}\r\n onClick={props.onClearAll}\r\n title=\"Remove all\"\r\n >\r\n <Trash2 size={12} />\r\n Clear all\r\n </button>\r\n </div>\r\n </Show>\r\n <ul class=\"up48\">\r\n <For each={props.files}>\r\n {file => (\r\n <li\r\n class={cn(\r\n 'up49',\r\n file.status === 'uploading' && 'up49a',\r\n file.status === 'error' && 'up49b',\r\n cls(props.classConfig, 'pictureItem'),\r\n )}\r\n >\r\n\r\n <div class={cn('up50', cls(props.classConfig, 'pictureThumb'))}>\r\n <Show\r\n when={file.thumbUrl}\r\n fallback={\r\n <div\r\n class={cn(\r\n 'up53',\r\n getFileIconBg(file.type),\r\n cls(props.classConfig, 'pictureIcon'),\r\n )}\r\n >\r\n <span class={getFileIconColor(file.type)}>\r\n {getFileIconNode(file.type, 20)}\r\n </span>\r\n </div>\r\n }\r\n >\r\n <img src={file.thumbUrl} alt={file.name} />\r\n\r\n <Show when={file.status === 'uploading'}>\r\n <PictureThumbLoading />\r\n </Show>\r\n\r\n <Show when={file.status === 'done'}>\r\n <button class=\"up52\" onClick={() => setPreview(file)} title=\"Preview\">\r\n <ZoomIn size={14} />\r\n </button>\r\n </Show>\r\n </Show>\r\n </div>\r\n\r\n <div class={cn('up54', cls(props.classConfig, 'pictureInfo'))}>\r\n <div class=\"up36\">\r\n <span class=\"up21\" title={file.name}>\r\n {file.name}\r\n </span>\r\n <Show when={file.dimensions}>\r\n <span class=\"up37\">\r\n {file.dimensions!.width} × {file.dimensions!.height} px\r\n </span>\r\n </Show>\r\n <span class=\"up39\">{formatFileSize(file.size)}</span>\r\n </div>\r\n\r\n <Show when={file.status === 'uploading'}>\r\n <ProgressBar\r\n percent={props.getProgress(file.uid)}\r\n trackClass={cls(props.classConfig, 'progressTrack')}\r\n fillClass={cls(props.classConfig, 'progressFill')}\r\n />\r\n </Show>\r\n\r\n <Show when={file.status === 'done'}>\r\n <span class=\"up24\">\r\n <CircleCheck size={11} />\r\n Uploaded\r\n </span>\r\n </Show>\r\n\r\n <Show when={file.status === 'error'}>\r\n <span class=\"up23\">Upload failed</span>\r\n </Show>\r\n </div>\r\n\r\n <div class={cn('up55', cls(props.classConfig, 'pictureActions'))}>\r\n <Show when={file.status === 'done' && file.thumbUrl}>\r\n <button\r\n class={cn('up56', cls(props.classConfig, 'actionBtn'))}\r\n onClick={() => setPreview(file)}\r\n title=\"Preview\"\r\n >\r\n <Eye size={14} />\r\n </button>\r\n </Show>\r\n <button\r\n class={cn('up57', cls(props.classConfig, 'removeBtn'))}\r\n onClick={() => props.onRemove(file.uid)}\r\n title=\"Remove\"\r\n >\r\n <X size={14} class=\"shrink-0\" />\r\n </button>\r\n </div>\r\n </li>\r\n )}\r\n </For>\r\n </ul>\r\n </div>\r\n\r\n <Show when={preview()}>\r\n <ImagePreview\r\n src={preview()!.thumbUrl!}\r\n imageName={preview()!.name}\r\n size={formatFileSize(preview()!.size)}\r\n onClose={() => setPreview(null)}\r\n />\r\n </Show>\r\n </>\r\n );\r\n}\r\n\r\nfunction PictureCardFileList(props: {\r\n files: UploadFile[];\r\n onRemove: (uid: string) => void;\r\n onAdd: () => void;\r\n onClearAll: () => void;\r\n showAddButton: boolean;\r\n showClearAll: boolean;\r\n getProgress: (uid: string) => Accessor<number>;\r\n classConfig?: string | UploadClassConfig;\r\n}) {\r\n const [preview, setPreview] = createSignal<UploadFile | null>(null);\r\n\r\n return (\r\n <>\r\n <Show when={props.showClearAll && props.files.length > 1}>\r\n <div class={cn('up44', cls(props.classConfig, 'listHeader'))}>\r\n <span class={cn('up45', cls(props.classConfig, 'listCount'))}>\r\n {props.files.length} files\r\n </span>\r\n <button\r\n class={cn('up46', cls(props.classConfig, 'clearBtn'))}\r\n onClick={props.onClearAll}\r\n title=\"Remove all\"\r\n >\r\n <Trash2 size={12} />\r\n Clear all\r\n </button>\r\n </div>\r\n </Show>\r\n <div class={cn('up58', cls(props.classConfig, 'cardGrid'))}>\r\n <For each={props.files}>\r\n {file => (\r\n <div\r\n class={cn('up59', file.status === 'error' && 'up59a', cls(props.classConfig, 'card'))}\r\n >\r\n <Show\r\n when={file.thumbUrl}\r\n fallback={\r\n <div class={cn('up61', cls(props.classConfig, 'cardIcon'))}>\r\n {getFileIconNode(file.type, 24)}\r\n </div>\r\n }\r\n >\r\n <img\r\n src={file.thumbUrl}\r\n alt={file.name}\r\n class={cn('up60', cls(props.classConfig, 'cardImg'))}\r\n />\r\n </Show>\r\n\r\n <Show when={file.status === 'uploading'}>\r\n <CardProgressOverlay percent={props.getProgress(file.uid)} />\r\n </Show>\r\n\r\n <Show when={file.status !== 'uploading'}>\r\n <div class=\"up65\">\r\n <Show when={file.thumbUrl}>\r\n <button\r\n class={cn('up66', cls(props.classConfig, 'actionBtn'))}\r\n onClick={() => setPreview(file)}\r\n title=\"Preview\"\r\n >\r\n <Eye size={13} />\r\n </button>\r\n </Show>\r\n <button\r\n class={cn('up67', cls(props.classConfig, 'removeBtn'))}\r\n onClick={() => props.onRemove(file.uid)}\r\n title=\"Remove\"\r\n >\r\n <Trash2 size={13} />\r\n </button>\r\n </div>\r\n </Show>\r\n </div>\r\n )}\r\n </For>\r\n <Show when={props.showAddButton}>\r\n <button\r\n class={cn('up68', cls(props.classConfig, 'cardAdd'))}\r\n onClick={props.onAdd}\r\n title=\"Upload file\"\r\n >\r\n <CloudUpload size={20} class=\"opacity-40\" />\r\n <span class=\"up69\">Upload</span>\r\n </button>\r\n </Show>\r\n </div>\r\n\r\n <Show when={preview()}>\r\n <ImagePreview\r\n src={preview()!.thumbUrl!}\r\n imageName={preview()!.name}\r\n size={formatFileSize(preview()!.size)}\r\n onClose={() => setPreview(null)}\r\n />\r\n </Show>\r\n </>\r\n );\r\n}\r\n\r\nfunction UploadBase(p: UploadProps) {\r\n p = mergeProps(\r\n {\r\n multiple: true,\r\n listType: 'text' as const,\r\n showUploadList: true,\r\n showTooltip: false,\r\n },\r\n p,\r\n );\r\n\r\n let inputRef!: HTMLInputElement;\r\n const { fileList, processFiles, removeFile, clearAll, getProgress } = useUpload(p);\r\n\r\n const triggerInput = () => inputRef.click();\r\n\r\n const handleInputChange = (e: Event) => {\r\n const input = e.currentTarget as HTMLInputElement;\r\n if (input.files?.length) processFiles(input.files);\r\n input.value = '';\r\n };\r\n\r\n const showAddButton = () => {\r\n if (!p.multiple && fileList().length >= 1) return false;\r\n if (p.maxCount && fileList().length >= p.maxCount) return false;\r\n return true;\r\n };\r\n\r\n const effectiveShowClearAll = () => p.showClearAll ?? p.multiple !== false;\r\n\r\n return (\r\n <div class={wrapperCls(p.class, 'up01')}>\r\n <input\r\n ref={inputRef}\r\n type=\"file\"\r\n class=\"hidden\"\r\n multiple={p.multiple}\r\n accept={p.accept}\r\n {...(p.directory ? { webkitdirectory: '' } : {})}\r\n onChange={handleInputChange}\r\n />\r\n\r\n <Switch>\r\n <Match when={p.listType === 'picture-card'}>\r\n <Show when={p.showUploadList}>\r\n <PictureCardFileList\r\n files={fileList()}\r\n onRemove={removeFile}\r\n onAdd={triggerInput}\r\n onClearAll={clearAll}\r\n showAddButton={showAddButton()}\r\n showClearAll={effectiveShowClearAll()}\r\n getProgress={getProgress}\r\n classConfig={p.class}\r\n />\r\n </Show>\r\n <Show when={!p.showUploadList}>\r\n <div onClick={triggerInput} class=\"w-fit cursor-pointer\">\r\n {p.children}\r\n </div>\r\n </Show>\r\n </Match>\r\n <Match when={p.listType !== 'picture-card'}>\r\n <div\r\n onClick={showAddButton() ? triggerInput : undefined}\r\n class={showAddButton() ? 'w-fit cursor-pointer' : ''}\r\n >\r\n {p.children}\r\n </div>\r\n <Show when={p.showUploadList && fileList().length > 0}>\r\n <Switch>\r\n <Match when={p.listType === 'picture'}>\r\n <PictureFileList\r\n files={fileList()}\r\n onRemove={removeFile}\r\n onClearAll={clearAll}\r\n showClearAll={effectiveShowClearAll()}\r\n getProgress={getProgress}\r\n classConfig={p.class}\r\n />\r\n </Match>\r\n <Match when={p.listType === 'text'}>\r\n <TextFileList\r\n files={fileList()}\r\n onRemove={removeFile}\r\n onClearAll={clearAll}\r\n showClearAll={effectiveShowClearAll()}\r\n classConfig={p.class}\r\n showTooltip={p.showTooltip}\r\n />\r\n </Match>\r\n </Switch>\r\n </Show>\r\n </Match>\r\n </Switch>\r\n\r\n <Show when={p.errorMessage}>\r\n <div class={cn('up76', cls(p.class, 'errorMessage'))}>{p.errorMessage}</div>\r\n </Show>\r\n </div>\r\n );\r\n}\r\n\r\nfunction UploadDragger(p: UploadDraggerProps) {\r\n p = mergeProps(\r\n {\r\n multiple: true,\r\n listType: 'text' as const,\r\n showUploadList: true,\r\n hint: 'Support for a single or bulk upload',\r\n showTooltip: false,\r\n },\r\n p,\r\n );\r\n\r\n let inputRef!: HTMLInputElement;\r\n const [isDragging, setIsDragging] = createSignal(false);\r\n const { fileList, processFiles, removeFile, clearAll, getProgress } = useUpload(p);\r\n const effectiveShowClearAll = () => p.showClearAll ?? p.multiple !== false;\r\n\r\n const triggerInput = () => inputRef.click();\r\n\r\n const handleInputChange = (e: Event) => {\r\n const input = e.currentTarget as HTMLInputElement;\r\n if (input.files?.length) processFiles(input.files);\r\n input.value = '';\r\n };\r\n\r\n const handleDragOver = (e: DragEvent) => {\r\n e.preventDefault();\r\n setIsDragging(true);\r\n };\r\n\r\n const handleDragLeave = (e: DragEvent) => {\r\n e.preventDefault();\r\n setIsDragging(false);\r\n };\r\n\r\n const handleDrop = (e: DragEvent) => {\r\n e.preventDefault();\r\n setIsDragging(false);\r\n const files = e.dataTransfer?.files;\r\n if (files?.length) processFiles(files);\r\n };\r\n\r\n const showAddButton = () => {\r\n if (!p.multiple && fileList().length >= 1) return false;\r\n if (p.maxCount && fileList().length >= p.maxCount) return false;\r\n return true;\r\n };\r\n\r\n return (\r\n <div class={wrapperCls(p.class, 'up01')}>\r\n <input\r\n ref={inputRef}\r\n type=\"file\"\r\n class=\"hidden\"\r\n multiple={p.multiple}\r\n accept={p.accept}\r\n {...(p.directory ? { webkitdirectory: '' } : {})}\r\n onChange={handleInputChange}\r\n />\r\n\r\n <Show when={p.listType === 'picture-card'}>\r\n <Show when={p.showUploadList}>\r\n <PictureCardFileList\r\n files={fileList()}\r\n onRemove={removeFile}\r\n onAdd={triggerInput}\r\n onClearAll={clearAll}\r\n showAddButton={showAddButton()}\r\n showClearAll={effectiveShowClearAll()}\r\n getProgress={getProgress}\r\n classConfig={p.class}\r\n />\r\n </Show>\r\n </Show>\r\n\r\n <Show when={p.listType !== 'picture-card'}>\r\n <Show when={showAddButton()}>\r\n <div\r\n class={cn('up02', isDragging() && 'up02a', cls(p.class, 'dragger'))}\r\n onClick={triggerInput}\r\n onDragOver={handleDragOver}\r\n onDragLeave={handleDragLeave}\r\n onDrop={handleDrop}\r\n >\r\n <div class={cn('up03', cls(p.class, 'draggerIcon'))}>\r\n <Show when={p.icon} fallback={<CloudUpload size={48} strokeWidth={1.5} />}>\r\n {p.icon}\r\n </Show>\r\n </div>\r\n <Show\r\n when={p.children}\r\n fallback={\r\n <>\r\n <p class={cn('up04', cls(p.class, 'draggerTitle'))}>\r\n Click or drag file to this area to upload\r\n </p>\r\n <p class={cn('up05', cls(p.class, 'draggerHint'))}>{p.hint}</p>\r\n </>\r\n }\r\n >\r\n {p.children}\r\n </Show>\r\n </div>\r\n </Show>\r\n\r\n <Show when={p.showUploadList && fileList().length > 0}>\r\n <Switch>\r\n <Match when={p.listType === 'picture'}>\r\n <PictureFileList\r\n files={fileList()}\r\n onRemove={removeFile}\r\n onClearAll={clearAll}\r\n showClearAll={effectiveShowClearAll()}\r\n getProgress={getProgress}\r\n classConfig={p.class}\r\n />\r\n </Match>\r\n <Match when={p.listType === 'text'}>\r\n <TextFileList\r\n files={fileList()}\r\n onRemove={removeFile}\r\n onClearAll={clearAll}\r\n showClearAll={effectiveShowClearAll()}\r\n classConfig={p.class}\r\n showTooltip={p.showTooltip}\r\n />\r\n </Match>\r\n </Switch>\r\n </Show>\r\n </Show>\r\n\r\n <Show when={p.errorMessage}>\r\n <div class={cn('up76', cls(p.class, 'errorMessage'))}>{p.errorMessage}</div>\r\n </Show>\r\n </div>\r\n );\r\n}\r\n\r\nexport const Upload = UploadBase as UploadComponent;\r\nUpload.Dragger = UploadDragger;"],"mappings":"8nEAoCA,SAAS+B,EACPC,EACAC,EACAC,EACQ,CAGR,MAFI,CAACF,GACD,OAAOA,GAAW,SAAiBE,GAAS,GACzClC,EAAGgC,EAAOC,GAAMC,EAAM,CAG/B,SAASC,EAAWH,EAAgDI,EAAsB,CAGxF,OAFKJ,EACD,OAAOA,GAAW,SAAiBhC,EAAGoC,EAAMJ,EAAO,CAChDhC,EAAGoC,EAAMJ,EAAOK,QAAQ,CAFXD,EAKtB,SAASE,GAAiBC,EAAsB,CAO9C,OANIA,EAAKC,WAAW,SAAS,CAAS,kBAClCD,EAAKC,WAAW,SAAS,CAAS,gBAClCD,EAAKC,WAAW,SAAS,CAAS,iBAClCD,IAAS,kBAA0B,eACnCA,EAAKE,SAAS,OAAO,EAAIF,EAAKE,SAAS,WAAW,CAAS,gBAC3DF,EAAKE,SAAS,cAAc,EAAIF,EAAKE,SAAS,QAAQ,CAAS,mBAC5D,uBAGT,SAASC,GAAcH,EAAsB,CAO3C,OANIA,EAAKC,WAAW,SAAS,CAAS,mBAClCD,EAAKC,WAAW,SAAS,CAAS,iBAClCD,EAAKC,WAAW,SAAS,CAAS,kBAClCD,IAAS,kBAA0B,gBACnCA,EAAKE,SAAS,OAAO,EAAIF,EAAKE,SAAS,WAAW,CAAS,iBAC3DF,EAAKE,SAAS,cAAc,EAAIF,EAAKE,SAAS,QAAQ,CAAS,oBAC5D,oBAGT,SAASE,EAAgBJ,EAAcK,EAAO,GAAI,CAKhD,OAJIL,EAAKC,WAAW,SAAS,CAAEK,EAAQrC,EAAS,CAAOoC,OAAI,CAAA,CACvDL,EAAKC,WAAW,SAAS,CAAEK,EAAQnC,GAAI,CAAOkC,OAAI,CAAA,CAClDL,EAAKC,WAAW,SAAS,CAAEK,EAAQlC,GAAK,CAAOiC,OAAI,CAAA,CACnDL,IAAS,mBAAqBA,EAAKE,SAAS,OAAO,CAAEI,EAAQpC,GAAQ,CAAOmC,OAAI,CAAA,CACpFC,EAAQtC,EAAI,CAAOqC,OAAI,CAAA,CAGzB,SAASE,GAAaP,EAAcQ,EAAqD,CAevF,OAdIR,IAAS,kBAA0B,CAAES,MAAO,MAAOC,WAAY,aAAc,CAC7EV,EAAKC,WAAW,SAAS,CAEpB,CAAEQ,MADGD,EAAKI,MAAM,IAAI,CAACC,KAAK,EAAEC,aAAa,CAACC,MAAM,EAAG,EAAE,EAAI,MAC3CL,WAAY,gBAAiB,CAEhDV,EAAKC,WAAW,SAAS,CAAS,CAAEQ,MAAO,MAAOC,WAAY,cAAe,CAC7EV,EAAKC,WAAW,SAAS,CAAS,CAAEQ,MAAO,MAAOC,WAAY,eAAgB,CAC9EV,EAAKE,SAAS,cAAc,EAAIF,EAAKE,SAAS,QAAQ,CACjD,CAAEO,MAAO,MAAOC,WAAY,iBAAkB,CACnDV,EAAKE,SAAS,WAAW,EAAIF,EAAKE,SAAS,OAAO,CAC7C,CAAEO,MAAO,MAAOC,WAAY,cAAe,CAChDV,EAAKE,SAAS,OAAO,CAAS,CAAEO,MAAO,MAAOC,WAAY,cAAe,CAGtE,CAAED,MADGD,EAAKI,MAAM,IAAI,CAACC,KAAK,EAAEC,aAAa,CAACC,MAAM,EAAG,EAAE,EAAI,OAC3CL,WAAY,eAAgB,CAGnD,SAASM,EAAeC,EAAuB,CAI7C,OAHIA,IAAU,EAAU,MACpBA,EAAQ,KAAa,GAAGA,EAAK,IAC7BA,EAAQ,KAAO,KAAa,IAAIA,EAAQ,MAAMC,QAAQ,EAAE,CAAA,KACrD,IAAID,GAAS,KAAO,OAAOC,QAAQ,EAAE,CAAA,KAG9C,SAASC,GAAYnB,EAAuB,CAC1C,OAAOA,EAAKC,WAAW,SAAS,CAGlC,SAASmB,GAAeC,EAA0C,CAChE,IAAIC,EAAY,GACZC,EAAU,EAERC,MAAa,CACjB,GAAIF,EAAW,OAEf,IAAMG,EAAYC,KAAKC,QAAQ,CAAG,GAAK,EACvCJ,EAAUG,KAAKE,IAAIL,EAAUE,EAAW,GAAG,CAC3CJ,EAAQQ,WAAWH,KAAKI,MAAMP,EAAQ,CAAC,CAEnCA,EAAU,GACZQ,WAAWP,EAAM,IAAME,KAAKC,QAAQ,CAAG,GAAG,CAG1CI,eACQ,CACAT,IACJD,EAAQQ,WAAW,IAAI,CACvBR,EAAQW,WAAW,GAErB,IAAMN,KAAKC,QAAQ,CAAG,IACvB,EAML,OAFAI,WAAWP,EAAM,GAAG,KAEP,CACXF,EAAY,IAMhB,SAASa,EAAUC,EAAwB,CACzC,GAAM,CAACC,EAAUC,GAAe7D,EAA2B,EAAE,CAAC,CACxD8D,EAAc,IAAIC,IAElBC,EAAY,IAAID,IAEhBE,EAAS,IAAIF,IAEbI,EAAeC,GACZN,EAAYO,IAAID,EAAI,GAAG,SAAa,GAGvCE,GAAkBF,EAAaG,IAAsB,CACzDP,EAAUK,IAAID,EAAI,IAAI,CACtBJ,EAAUQ,OAAOJ,EAAI,CACrBN,EAAYU,OAAOJ,EAAI,CAEvB,IAAMK,EAAMR,EAAOI,IAAID,EAAI,CACvBK,IACFA,EAAIC,OAAS,KACbD,EAAIE,IAAM,GACVV,EAAOO,OAAOJ,EAAI,EAEhBG,GAAUK,IAAIC,gBAAgBN,EAAS,EAmJ7C,MAAO,CAAEX,WAAUkB,aAhJGC,GAAgC,CACpD,IAAME,EAAQC,MAAMC,KAAKJ,EAAS,CAC5BK,EAAWzB,EAAMyB,SACjBC,EAAc1B,EAAM0B,YACpBC,EAAe3B,EAAM2B,aAErBC,EAAc3B,GAAU,CAE9B,IAAK,IAAM4B,KAAQP,EAEjB,GAAII,GAAeG,EAAK5D,KAAOyD,EAAa,CAC1C1B,EAAM8B,UAAU,CACdlE,KAAM,cACNiE,OACAE,QAAS,IAAIF,EAAKzD,KAAI,kCAAmCQ,EAAe8C,EAAY,CAAA,GACrF,CAAC,CACF,OAIJ,GAAID,GACeG,EAAYK,OAASX,EAAMW,OAC7BR,EAAU,CACvBzB,EAAM8B,UAAU,CACdlE,KAAM,WACNiE,KAAMP,EAAM,GACZS,QAAS,gCAAgCN,EAAQ,GAClD,CAAC,CACF,OAIJ,GAAIE,GACmBC,EAAYO,QAAQC,EAAKC,IAAMD,EAAMC,EAAEpE,KAAM,EAAE,CACjDqD,EAAMa,QAAQC,EAAKC,IAAMD,EAAMC,EAAEpE,KAAM,EAAE,CAC5B0D,EAAc,CAC5C3B,EAAM8B,UAAU,CACdlE,KAAM,eACNiE,KAAMP,EAAM,GACZS,QAAS,sCAAsCnD,EAAe+C,EAAa,CAAA,GAC5E,CAAC,CACF,OAIJL,EAAMiB,QAAQV,GAAQ,CACpB,IAAMpB,EAAMnE,GAAgB,CACtBsE,EAAW7B,GAAY8C,EAAKjE,KAAK,CAAGqD,IAAIuB,gBAAgBX,EAAK,CAAGY,IAAAA,GAEhE,CAACC,EAASC,GAActG,EAAa,EAAE,CAC7C8D,EAAYyC,IAAInC,EAAK,CAACiC,EAASC,EAAW,CAAC,CAE3C,IAAME,EAAsB,CAC1BpC,MACArC,KAAMyD,EAAKzD,KACXH,KAAM4D,EAAK5D,KACXL,KAAMiE,EAAKjE,KACXkF,OAAQ,YACRC,WAAYlB,EACZjB,WACD,CAED,GAAIA,EAAU,CACZ,IAAME,EAAM,IAAIkC,MAChB1C,EAAOsC,IAAInC,EAAKK,EAAI,CACpBA,EAAIC,WAAe,CACjBT,EAAOO,OAAOJ,EAAI,CAClBP,EAAY+C,GACVA,EAAKC,IAAIb,GACPA,EAAE5B,MAAQA,EACN,CAAE,GAAG4B,EAAGc,WAAY,CAAEC,MAAOtC,EAAIuC,aAAcC,OAAQxC,EAAIyC,cAAc,CAAG,CAC5ElB,EAER,CAAC,EAEHvB,EAAIE,IAAMJ,EAGZV,EAAYsD,GAAQ,CAClB,IAAMC,EAAWzD,EAAM0D,WAAa,GAAQ,CAACb,EAAQ,CAAG,CAAC,GAAGW,EAAMX,EAAQ,CAE1E,OADA7C,EAAM2D,WAAW,CAAE9B,KAAMgB,EAAS5C,SAAUwD,EAAU,CAAC,CAChDA,GACP,CAGF,IAAMK,GADY9D,EAAM6D,eAAiB7E,IAChB,CACvB6C,OACAjC,cAAiB,CACf+C,EAAW,IAAI,CACfzC,EAAY+C,GAAQ,CAClB,IAAMc,EAAOd,EAAKC,IAAIb,GAAMA,EAAE5B,MAAQA,EAAM,CAAE,GAAG4B,EAAGS,OAAQ,OAAiB,CAAGT,EAAG,CAC7E4B,EAAOF,EAAKG,KAAK7B,GAAKA,EAAE5B,MAAQA,EAAI,CAE1C,OADIwD,GAAMjE,EAAM2D,WAAW,CAAE9B,KAAMoC,EAAMhE,SAAU8D,EAAM,CAAC,CACnDA,GACP,CACF1D,EAAUQ,OAAOJ,EAAI,CACrBN,EAAYU,OAAOJ,EAAI,EAEzBqB,QAAUqC,GAAiB,CACzBjE,EAAY+C,GAAQ,CAClB,IAAMc,EAAOd,EAAKC,IAAIb,GAAMA,EAAE5B,MAAQA,EAAM,CAAE,GAAG4B,EAAGS,OAAQ,QAAkB,CAAGT,EAAG,CAC9EgC,EAASN,EAAKG,KAAK7B,GAAKA,EAAE5B,MAAQA,EAAI,CAE5C,OADI4D,GAAQrE,EAAM2D,WAAW,CAAE9B,KAAM,CAAE,GAAGwC,EAAQF,QAAO,CAAElE,SAAU8D,EAAM,CAAC,CACrEA,GACP,CACF1D,EAAUQ,OAAOJ,EAAI,CACrBN,EAAYU,OAAOJ,EAAI,EAEzBhB,WAAY6E,GAAS,CAEnB3B,EAAW2B,EAAM,CAEjB,IAAMC,EAAWtE,GAAU,CACrBuE,EAAMD,EAASE,UAAUpC,GAAKA,EAAE5B,MAAQA,EAAI,CAC9C+D,IAAQ,IACVxE,EAAM2D,WAAW,CACf9B,KAAM,CAAE,GAAG0C,EAASC,GAAM9B,QAAS4B,EAAO,CAC1CrE,SAAUsE,EACX,CAAC,EAEP,CAAC,CAEE,OAAOT,GAAW,YAAYzD,EAAUuC,IAAInC,EAAKqD,EAAO,EAC5D,EAqB6BY,WAlBbjE,GAAgB,CAClCP,EAAYsD,GAAQ,CAClB,IAAMmB,EAAUnB,EAAKU,KAAK7B,GAAKA,EAAE5B,MAAQA,EAAI,CAE7CE,EAAeF,EAAKkE,GAAS/D,SAAS,CACtC,IAAMmD,EAAOP,EAAKoB,OAAOvC,GAAKA,EAAE5B,MAAQA,EAAI,CAE5C,OADIkE,GAAS3E,EAAM2D,WAAW,CAAE9B,KAAM,CAAE,GAAG8C,EAAS7B,OAAQ,UAAW,CAAE7C,SAAU8D,EAAM,CAAC,CACnFA,GACP,EAUyCc,aAPtB,CACrB3E,EAAYsD,IACVA,EAAKjB,QAAQF,GAAK1B,EAAe0B,EAAE5B,IAAK4B,EAAEzB,SAAS,CAAC,CAC7C,EAAE,EACT,EAGmDJ,cAAa,CAGtE,SAASsE,GAAY9E,EAIlB,CACD,WAAA,CAAA,IAAAiF,EAAAC,GAAA,CAAAC,EAAAF,EAAAG,WAEkF,OAFlFC,EAAAC,GAAA,CAAA,IAAAC,EACclK,EAAG,OAAQ2E,EAAM+E,WAAW,CAAAS,EAC1BnK,EAAG,OAAQ2E,EAAMgF,UAAU,CAAAS,EAAkB,GAAGzF,EAAM0C,SAAS,CAAA,GAAG,OAAA6C,IAAAD,EAAAI,GAAAC,EAAAV,EAAAK,EAAAI,EAAAH,EAAA,CAAAC,IAAAF,EAAAM,GAAAD,EAAAR,EAAAG,EAAAM,EAAAJ,EAAA,CAAAC,IAAAH,EAAAO,GAAAC,EAAAX,EAAA,QAAAG,EAAAO,EAAAJ,EAAA,CAAAH,GAAA,CAAAI,EAAAjD,IAAAA,GAAAmD,EAAAnD,IAAAA,GAAAoD,EAAApD,IAAAA,GAAA,CAAA,CAAAwC,KAAA,CAKpF,SAASc,GAAoB/F,EAAsC,CACjE,WAAA,CAAA,IAAAgG,EAAAC,IAAA,CAAAG,EAAAJ,EAAAZ,WAAAA,WAAAiB,YAAAC,EAAAF,EAAAhB,WAIyC,OAJzCmB,EAAAH,MAI0BpG,EAAM0C,SAAS,CAAA4D,EAAA,CAAAN,KAAA,CAM3C,SAASQ,IAAsB,CAC7B,OAAAC,IAAA,CAOF,SAASC,EAAa1G,EAOnB,CACD,IAAMgH,EAAS1K,GAAgB,CAC/B,WAAA,CAAA,IAAA2K,EAAAC,IAAA,CAAAC,EAAAF,EAAA7B,WACwE,OADxEgC,EAAAH,EAAA,KACWD,EAAM,CAAAT,EAAAU,EAAA/I,EACZxB,EAAI,CAAA,IAAC2K,MAAI,CAAA,OAAEC,MAAA,CAAA,CAAAtH,EAAM6G,aAAY,EAAA,EAAI7G,EAAMsB,MAAMW,OAAS,GAAC,IAAAsF,UAAA,CAAA,IAAAC,EAAAC,GAAA,CAAAC,EAAAF,EAAApC,WAAAuC,EAAAD,EAAAtC,WAAAwC,EAAAF,EAAArB,YAAAwB,EAAAD,EAAAxC,WAMG,OANHmB,EAAAmB,MAGjD1H,EAAMsB,MAAMW,OAAM0F,EAAA,CAAAG,EAAAF,EAAA,QAIV5H,EAAM4G,WAAU,GAAA,CAAAL,EAAAqB,EAAA1J,EAGxBjC,EAAM,CAACgC,KAAM,GAAE,CAAA,CAAA4J,EAAA,CAAAxC,EAAAC,GAAA,CAAA,IAAAyC,EATR1M,EAAG,OAAQ+B,EAAI4C,EAAM8G,YAAa,aAAa,CAAC,CAAAkB,EAC7C3M,EAAG,OAAQ+B,EAAI4C,EAAM8G,YAAa,YAAY,CAAC,CAAAmB,EAInD5M,EAAG,OAAQ+B,EAAI4C,EAAM8G,YAAa,WAAW,CAAC,CAAA,OAAAiB,IAAAzC,EAAAI,GAAAC,EAAA6B,EAAAlC,EAAAI,EAAAqC,EAAA,CAAAC,IAAA1C,EAAAM,GAAAD,EAAA+B,EAAApC,EAAAM,EAAAoC,EAAA,CAAAC,IAAA3C,EAAAO,GAAAF,EAAAiC,EAAAtC,EAAAO,EAAAoC,EAAA,CAAA3C,GAAA,CAAAI,EAAAjD,IAAAA,GAAAmD,EAAAnD,IAAAA,GAAAoD,EAAApD,IAAAA,GAAA,CAAA,CAAA+E,GAAA,CAAA,CAAAL,EAAA,CAAAZ,EAAAY,EAAAjJ,EAUxD3B,EAAG,CAAA,IAAC2L,MAAI,CAAA,OAAElI,EAAMsB,OAAKiG,SACnB1F,GAAQ,CACP,IAAMsG,EAAQhK,GAAa0D,EAAKjE,KAAMiE,EAAKzD,KAAK,CAChD,WAAA,CAAA,IAAAgK,EAAAC,IAAA,CAOoC,OAPpC9B,EAAA6B,EAAAlK,EAEKoK,EAAc,CACPzG,OACCsG,QAAK,IACZxB,UAAQ,CAAA,OAAE3G,EAAM2G,UAAQ,IACxBG,aAAW,CAAA,OAAE9G,EAAM8G,aAAW,IAC9BC,aAAW,CAAA,OAAE/G,EAAM+G,aAAW,CAAA,CAAA,CAAAqB,KAAA,EAIrC,CAAA,CAAA,CAAA/C,MAAAM,EAAAsB,EA/BiB5L,EAAG,OAAQ+B,EAAI4C,EAAM8G,YAAa,WAAW,CAAC,CAAA,CAAA,CAAAG,KAAA,CAsC1E,SAASqB,EAAetI,EAMrB,CACD,IAAMuI,MAAoBvI,EAAM6B,KAAKiB,SAAW,YAEhD,WAAA,CAAA,IAAA0F,EAAAC,IAAA,CAAAC,EAAAF,EAAApD,WAAAuD,EAAAD,EAAAtD,WAAAwD,EAAAD,EAAAtC,YAAAwC,EAAAD,EAAAvC,YA+B8D,OA/B9DE,EAAAoC,MAIS3I,EAAMmI,MAAM9J,MAAK,CAAAkI,EAAAmC,EAAAxK,EAEnBtB,EAAO,CAAA,IACNkM,SAAO,CAAA,OAAE9I,EAAM6B,KAAKzD,MAAI,IACxB2K,QAAM,CAAA,MAAE,CAAC/I,EAAM+G,aAAW,MACnB,CAAEiC,KAAM,OAAQ,CACvBpL,KAAI,UAAA,IAAA2J,UAAA,CAAA,IAAA0B,EAAAC,IAAA,CAEuD,OAFvD3C,EAAA0C,MAE0DjJ,EAAM6B,KAAKzD,KAAI,CAAAiH,MAAAM,EAAAsD,EAAhE5N,EAAG,OAAQ+B,EAAI4C,EAAM8G,YAAa,WAAW,CAAC,CAAA,CAAA,CAAAmC,GAAA,CAAA,CAAAL,EAAA,CAAArC,EAAAqC,MAG1DhK,EAAeoB,EAAM6B,KAAK5D,KAAK,CAAA,CAAAsI,EAAAmC,EAAAxK,EAGjCvB,EAAM,CAAA,IAAA4K,UAAA,CAAA,MAAA,CAAArJ,EACJ1B,EAAK,CAAA,IAAC6K,MAAI,CAAA,OAAEkB,GAAa,EAAA,IAAAhB,UAAA,CAAA,OAAArJ,EACvB3C,EAAO,CAAA,MAAA,SAAA,CAAA,EAAA,CAAA,CAAA2C,EAET1B,EAAK,CAAA,IAAC6K,MAAI,CAAA,OAAErH,EAAM6B,KAAKiB,SAAW,QAAM,IAAAyE,UAAA,CAAA,OAAArJ,EACtC1C,EAAW,CAACyC,KAAM,GAAE,MAAA,eAAA,CAAA,EAAA,CAAA,CAAAC,EAEtB1B,EAAK,CAAA,IAAC6K,MAAI,CAAA,OAAErH,EAAM6B,KAAKiB,SAAW,SAAO,IAAAyE,UAAA,CAAA,OAAArJ,EACvCzC,EAAO,CAACwC,KAAM,GAAE,MAAA,aAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA4K,EAAA,CAAAA,EAAAM,YAMJnJ,EAAM2G,SAAS3G,EAAM6B,KAAKpB,IAAI,CAAA8F,EAAAsC,EAAA3K,EAG5ChC,EAAC,CAAC+B,KAAM,GAAE,CAAA,CAAA,CAAAoH,EAAAC,GAAA,CAAA,IAAA8D,EAlCL/N,EAAG,OAAQ+B,EAAI4C,EAAM8G,YAAa,WAAW,CAAC,CAAAuC,EAE1ChO,EAAG,OAAQ2E,EAAMmI,MAAM7J,WAAYlB,EAAI4C,EAAM8G,YAAa,YAAY,CAAC,CAAAwC,EAWvEjO,EAAG,OAAQ+B,EAAI4C,EAAM8G,YAAa,WAAW,CAAC,CAAAyC,EAiBjDlO,EAAG,OAAQ+B,EAAI4C,EAAM8G,YAAa,YAAY,CAAC,CAAA,OAAAsC,IAAA9D,EAAAI,GAAAC,EAAA6C,EAAAlD,EAAAI,EAAA0D,EAAA,CAAAC,IAAA/D,EAAAM,GAAAD,EAAAgD,EAAArD,EAAAM,EAAAyD,EAAA,CAAAC,IAAAhE,EAAAO,GAAAF,EAAAiD,EAAAtD,EAAAO,EAAAyD,EAAA,CAAAC,IAAAjE,EAAAkE,GAAA7D,EAAAkD,EAAAvD,EAAAkE,EAAAD,EAAA,CAAAjE,GAAA,CAAAI,EAAAjD,IAAAA,GAAAmD,EAAAnD,IAAAA,GAAAoD,EAAApD,IAAAA,GAAA+G,EAAA/G,IAAAA,GAAA,CAAA,CAAA+F,KAAA,CAWhE,SAASiB,EAAgBzJ,EAOtB,CACD,GAAM,CAAC0J,EAASC,GAActN,EAAgC,KAAK,CAEnE,MAAA,MAAA,CAAA,IAAAuN,EAAAC,IAAA,CAAAC,EAAAF,EAAAxE,WAEiE,OAFjEmB,EAAAqD,EAAA1L,EAGOxB,EAAI,CAAA,IAAC2K,MAAI,CAAA,OAAEC,MAAA,CAAA,CAAAtH,EAAM6G,aAAY,EAAA,EAAI7G,EAAMsB,MAAMW,OAAS,GAAC,IAAAsF,UAAA,CAAA,IAAAwC,EAAAtC,GAAA,CAAAuC,EAAAD,EAAA3E,WAAA6E,EAAAD,EAAA5E,WAAA8E,EAAAF,EAAA3D,YAAA8D,EAAAD,EAAA9E,WAMG,OANHmB,EAAAyD,MAGjDhK,EAAMsB,MAAMW,OAAMgI,EAAA,CAAAnC,EAAAoC,EAAA,QAIVlK,EAAM4G,WAAU,GAAA,CAAAL,EAAA2D,EAAAhM,EAGxBjC,EAAM,CAACgC,KAAM,GAAE,CAAA,CAAAkM,EAAA,CAAA9E,EAAAC,GAAA,CAAA,IAAA8E,EATR/O,EAAG,OAAQ+B,EAAI4C,EAAM8G,YAAa,aAAa,CAAC,CAAAuD,EAC7ChP,EAAG,OAAQ+B,EAAI4C,EAAM8G,YAAa,YAAY,CAAC,CAAAwD,EAInDjP,EAAG,OAAQ+B,EAAI4C,EAAM8G,YAAa,WAAW,CAAC,CAAA,OAAAsD,IAAA9E,EAAAI,GAAAC,EAAAoE,EAAAzE,EAAAI,EAAA0E,EAAA,CAAAC,IAAA/E,EAAAM,GAAAD,EAAAqE,EAAA1E,EAAAM,EAAAyE,EAAA,CAAAC,IAAAhF,EAAAO,GAAAF,EAAAuE,EAAA5E,EAAAO,EAAAyE,EAAA,CAAAhF,GAAA,CAAAI,EAAAjD,IAAAA,GAAAmD,EAAAnD,IAAAA,GAAAoD,EAAApD,IAAAA,GAAA,CAAA,CAAAsH,GAAA,CAAA,CAAAD,EAAA,CAAAvD,EAAAuD,EAAA5L,EAUxD3B,EAAG,CAAA,IAAC2L,MAAI,CAAA,OAAElI,EAAMsB,OAAKiG,SACnB1F,QAAI,CAAA,IAAA0I,EAAAC,GAAA,CAAAC,EAAAF,EAAAnF,WAAAsF,EAAAD,EAAApE,YAAAsE,EAAAD,EAAAtF,WAAAwF,EAAAD,EAAAvF,WAAAyF,EAAAD,EAAAvE,YAAAyE,EAAAJ,EAAArE,YAAA0E,EAAAD,EAAA1F,WAqFyD,OArFzDmB,EAAAkE,EAAAvM,EAWExB,EAAI,CAAA,IACH2K,MAAI,CAAA,OAAExF,EAAKjB,UAAQ,IACnBoK,UAAQ,CAAA,WAAA,CAAA,IAAAC,EAAAC,GAAA,CAAAC,EAAAF,EAAA7F,WAQoC,OARpCmB,EAAA4E,MASDnN,EAAgB6D,EAAKjE,KAAM,GAAG,CAAA,CAAAyH,EAAAC,GAAA,CAAA,IAAA8F,EAP1B/P,EACL,OACA0C,GAAc8D,EAAKjE,KAAK,CACxBR,EAAI4C,EAAM8G,YAAa,cACzB,CAAC,CAAAuE,EAEY1N,GAAiBkE,EAAKjE,KAAK,CAAA,OAAAwN,IAAA9F,EAAAI,GAAAC,EAAAsF,EAAA3F,EAAAI,EAAA0F,EAAA,CAAAC,IAAA/F,EAAAM,GAAAD,EAAAwF,EAAA7F,EAAAM,EAAAyF,EAAA,CAAA/F,GAAA,CAAAI,EAAAjD,IAAAA,GAAAmD,EAAAnD,IAAAA,GAAA,CAAA,CAAAwI,KAAA,EAAA,IAAA1D,UAAA,CAAA,MAAA,MAAA,CAAA,IAAA+D,EAAAC,GAAA,CAML,OANKlG,EAAAC,GAAA,CAAA,IAAAkG,EAMlC3J,EAAKjB,SAAQ6K,EAAO5J,EAAKzD,KAAI,OAAAoN,IAAAlG,EAAAI,GAAA0B,EAAAkE,EAAA,MAAAhG,EAAAI,EAAA8F,EAAA,CAAAC,IAAAnG,EAAAM,GAAAwB,EAAAkE,EAAA,MAAAhG,EAAAM,EAAA6F,EAAA,CAAAnG,GAAA,CAAAI,EAAAjD,IAAAA,GAAAmD,EAAAnD,IAAAA,GAAA,CAAA,CAAA6I,KAAA,CAAApN,EAEtCxB,EAAI,CAAA,IAAC2K,MAAI,CAAA,OAAExF,EAAKiB,SAAW,aAAW,IAAAyE,UAAA,CAAA,OAAArJ,EACpCsI,GAAmB,EAAA,CAAA,EAAA,CAAA,CAAAtI,EAGrBxB,EAAI,CAAA,IAAC2K,MAAI,CAAA,OAAExF,EAAKiB,SAAW,QAAM,IAAAyE,UAAA,CAAA,IAAAmE,EAAAC,IAAA,CAEd,MAFcD,GAAAvC,YACIQ,EAAW9H,EAAK,CAAA0E,EAAAmF,EAAAxN,EACjD/B,EAAM,CAAC8B,KAAM,GAAE,CAAA,CAAA,CAAAyN,GAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAAnF,EAAAqE,MASjB/I,EAAKzD,KAAI,CAAAmI,EAAAoE,EAAAzM,EAEXxB,EAAI,CAAA,IAAC2K,MAAI,CAAA,OAAExF,EAAKsB,YAAU,IAAAoE,UAAA,CAAA,IAAAqE,EAAAC,IAAA,CAAAC,EAAAF,EAAAxG,WAAA2G,EAAAD,EAAAzF,YAE4B,OAF5B0F,EAAA1F,YAAAE,EAAAqF,MAEtB/J,EAAKsB,WAAYC,MAAK0I,EAAA,CAAAvF,EAAAqF,MAAK/J,EAAKsB,WAAYG,OAAMyI,EAAA,CAAAH,GAAA,CAAA,CAAAf,EAAA,CAAAtE,EAAAsE,MAGnCjM,EAAeiD,EAAK5D,KAAK,CAAA,CAAAsI,EAAAmE,EAAAxM,EAG9CxB,EAAI,CAAA,IAAC2K,MAAI,CAAA,OAAExF,EAAKiB,SAAW,aAAW,IAAAyE,UAAA,CAAA,OAAArJ,EACpC4G,GAAW,CAAA,IACVpC,SAAO,CAAA,OAAE1C,EAAMQ,YAAYqB,EAAKpB,IAAI,EAAA,IACpCsE,YAAU,CAAA,OAAE3H,EAAI4C,EAAM8G,YAAa,gBAAgB,EAAA,IACnD9B,WAAS,CAAA,OAAE5H,EAAI4C,EAAM8G,YAAa,eAAe,EAAA,CAAA,EAAA,CAAA,CAAA,KAAA,CAAAP,EAAAmE,EAAAxM,EAIpDxB,EAAI,CAAA,IAAC2K,MAAI,CAAA,OAAExF,EAAKiB,SAAW,QAAM,IAAAyE,UAAA,CAAA,IAAA0E,EAAAC,GAAA,CAAAC,EAAAF,EAAA7G,WAET,OAFSmB,EAAA0F,EAAA/N,EAE7B1C,EAAW,CAACyC,KAAM,GAAE,CAAA,CAAAkO,EAAA,CAAAF,GAAA,CAAA,CAAA,KAAA,CAAA1F,EAAAmE,EAAAxM,EAKxBxB,EAAI,CAAA,IAAC2K,MAAI,CAAA,OAAExF,EAAKiB,SAAW,SAAO,IAAAyE,UAAA,CAAA,OAAA6E,GAAA,EAAA,CAAA,CAAA,KAAA,CAAA7F,EAAAuE,EAAA5M,EAMlCxB,EAAI,CAAA,IAAC2K,MAAI,CAAA,OAAEC,MAAAzF,EAAKiB,SAAW,OAAM,EAAA,EAAIjB,EAAKjB,UAAQ,IAAA2G,UAAA,CAAA,IAAA8E,EAAAC,GAAA,CAEO,MAFPD,GAAAlD,YAGhCQ,EAAW9H,EAAK,CAAA0E,EAAA8F,EAAAnO,EAG9BvC,EAAG,CAACsC,KAAM,GAAE,CAAA,CAAA,CAAAoH,MAAAM,EAAA0G,EAJNhR,EAAG,OAAQ+B,EAAI4C,EAAM8G,YAAa,YAAY,CAAC,CAAA,CAAA,CAAAuF,GAAA,CAAA,CAAAtB,EAAA,CAAAA,EAAA5B,YASzCnJ,EAAM2G,SAAS9E,EAAKpB,IAAI,CAAA8F,EAAAwE,EAAA7M,EAGtChC,EAAC,CAAC+B,KAAM,GAAE,MAAA,WAAA,CAAA,CAAA,CAAAoH,EAAAC,GAAA,CAAA,IAAAiH,EAvFRlR,EACL,OACAwG,EAAKiB,SAAW,aAAe,QAC/BjB,EAAKiB,SAAW,SAAW,QAC3B1F,EAAI4C,EAAM8G,YAAa,cACzB,CAAC,CAAA0F,EAGWnR,EAAG,OAAQ+B,EAAI4C,EAAM8G,YAAa,eAAe,CAAC,CAAA2F,EA+BlDpR,EAAG,OAAQ+B,EAAI4C,EAAM8G,YAAa,cAAc,CAAC,CAAA4F,EAE/B7K,EAAKzD,KAAIuO,EA+B3BtR,EAAG,OAAQ+B,EAAI4C,EAAM8G,YAAa,iBAAiB,CAAC,CAAA8F,EAWrDvR,EAAG,OAAQ+B,EAAI4C,EAAM8G,YAAa,YAAY,CAAC,CAAA,OAAAyF,IAAAjH,EAAAI,GAAAC,EAAA4E,EAAAjF,EAAAI,EAAA6G,EAAA,CAAAC,IAAAlH,EAAAM,GAAAD,EAAA8E,EAAAnF,EAAAM,EAAA4G,EAAA,CAAAC,IAAAnH,EAAAO,GAAAF,EAAA+E,EAAApF,EAAAO,EAAA4G,EAAA,CAAAC,IAAApH,EAAAkE,GAAApC,EAAAwD,EAAA,QAAAtF,EAAAkE,EAAAkD,EAAA,CAAAC,IAAArH,EAAAuH,GAAAlH,EAAAmF,EAAAxF,EAAAuH,EAAAF,EAAA,CAAAC,IAAAtH,EAAAwH,GAAAnH,EAAAoF,EAAAzF,EAAAwH,EAAAF,EAAA,CAAAtH,GAAA,CAAAI,EAAAjD,IAAAA,GAAAmD,EAAAnD,IAAAA,GAAAoD,EAAApD,IAAAA,GAAA+G,EAAA/G,IAAAA,GAAAoK,EAAApK,IAAAA,GAAAqK,EAAArK,IAAAA,GAAA,CAAA,CAAA8H,KAAA,CAQ7D,CAAA,CAAA,CAAAlF,MAAAM,EAAAiE,EA/GKvO,EAAG,OAAQ+B,EAAI4C,EAAM8G,YAAa,cAAc,CAAC,CAAA,CAAA,CAAA8C,KAAA,CAAA1L,EAoH5DxB,EAAI,CAAA,IAAC2K,MAAI,CAAA,OAAEqC,GAAS,EAAA,IAAAnC,UAAA,CAAA,OAAArJ,EAClB5C,EAAY,CAAA,IACX0F,KAAG,CAAA,OAAE0I,GAAS,CAAE9I,UAAS,IACzBmM,WAAS,CAAA,OAAErD,GAAS,CAAEtL,MAAI,IAC1BH,MAAI,CAAA,OAAEW,EAAe8K,GAAS,CAAEzL,KAAK,EACrC+O,YAAerD,EAAW,KAAI,CAAC,CAAA,EAAA,CAAA,CAAA,CAOzC,SAASsD,EAAoBjN,EAS1B,CACD,GAAM,CAAC0J,EAASC,GAActN,EAAgC,KAAK,CAEnE,MAAA,CAAA6B,EAEKxB,EAAI,CAAA,IAAC2K,MAAI,CAAA,OAAEC,MAAA,CAAA,CAAAtH,EAAM6G,aAAY,EAAA,EAAI7G,EAAMsB,MAAMW,OAAS,GAAC,IAAAsF,UAAA,CAAA,IAAA6F,EAAA3F,GAAA,CAAA4F,EAAAD,EAAAhI,WAAAkI,EAAAD,EAAAjI,WAAAmI,EAAAF,EAAAhH,YAAAmH,EAAAD,EAAAnI,WAMG,OANHmB,EAAA8G,MAGjDrN,EAAMsB,MAAMW,OAAMqL,EAAA,CAAAxF,EAAAyF,EAAA,QAIVvN,EAAM4G,WAAU,GAAA,CAAAL,EAAAgH,EAAArP,EAGxBjC,EAAM,CAACgC,KAAM,GAAE,CAAA,CAAAuP,EAAA,CAAAnI,EAAAC,GAAA,CAAA,IAAAmI,EATRpS,EAAG,OAAQ+B,EAAI4C,EAAM8G,YAAa,aAAa,CAAC,CAAA4G,EAC7CrS,EAAG,OAAQ+B,EAAI4C,EAAM8G,YAAa,YAAY,CAAC,CAAA6G,EAInDtS,EAAG,OAAQ+B,EAAI4C,EAAM8G,YAAa,WAAW,CAAC,CAAA,OAAA2G,IAAAnI,EAAAI,GAAAC,EAAAyH,EAAA9H,EAAAI,EAAA+H,EAAA,CAAAC,IAAApI,EAAAM,GAAAD,EAAA0H,EAAA/H,EAAAM,EAAA8H,EAAA,CAAAC,IAAArI,EAAAO,GAAAF,EAAA4H,EAAAjI,EAAAO,EAAA8H,EAAA,CAAArI,GAAA,CAAAI,EAAAjD,IAAAA,GAAAmD,EAAAnD,IAAAA,GAAAoD,EAAApD,IAAAA,GAAA,CAAA,CAAA2K,GAAA,CAAA,MAAA,CAAA,IAAAQ,EAAAC,GAAA,CASD,OATCtH,EAAAqH,EAAA1P,EAUxD3B,EAAG,CAAA,IAAC2L,MAAI,CAAA,OAAElI,EAAMsB,OAAKiG,SACnB1F,QAAI,CAAA,IAAAiM,EAAAD,GAAA,CAEoF,OAFpFtH,EAAAuH,EAAA5P,EAIAxB,EAAI,CAAA,IACH2K,MAAI,CAAA,OAAExF,EAAKjB,UAAQ,IACnBoK,UAAQ,CAAA,WAAA,CAAA,IAAA+C,EAAAF,GAAA,CACoD,OADpDtH,EAAAwH,MAEH/P,EAAgB6D,EAAKjE,KAAM,GAAG,CAAA,CAAAyH,MAAAM,EAAAoI,EADrB1S,EAAG,OAAQ+B,EAAI4C,EAAM8G,YAAa,WAAW,CAAC,CAAA,CAAA,CAAAiH,KAAA,EAAA,IAAAxG,UAAA,CAAA,IAAAyG,EAAAzC,GAAA,CAQN,OARMlG,EAAAC,GAAA,CAAA,IAAA2I,EAMrDpM,EAAKjB,SAAQsN,EACbrM,EAAKzD,KAAI+P,EACP9S,EAAG,OAAQ+B,EAAI4C,EAAM8G,YAAa,UAAU,CAAC,CAAA,OAAAmH,IAAA3I,EAAAI,GAAA0B,EAAA4G,EAAA,MAAA1I,EAAAI,EAAAuI,EAAA,CAAAC,IAAA5I,EAAAM,GAAAwB,EAAA4G,EAAA,MAAA1I,EAAAM,EAAAsI,EAAA,CAAAC,IAAA7I,EAAAO,GAAAF,EAAAqI,EAAA1I,EAAAO,EAAAsI,EAAA,CAAA7I,GAAA,CAAAI,EAAAjD,IAAAA,GAAAmD,EAAAnD,IAAAA,GAAAoD,EAAApD,IAAAA,GAAA,CAAA,CAAAuL,GAAA,CAAA,CAAA,KAAA,CAAAzH,EAAAuH,EAAA5P,EAIvDxB,EAAI,CAAA,IAAC2K,MAAI,CAAA,OAAExF,EAAKiB,SAAW,aAAW,IAAAyE,UAAA,CAAA,OAAArJ,EACpC6H,GAAmB,CAAA,IAACrD,SAAO,CAAA,OAAE1C,EAAMQ,YAAYqB,EAAKpB,IAAI,EAAA,CAAA,EAAA,CAAA,CAAA,KAAA,CAAA8F,EAAAuH,EAAA5P,EAG1DxB,EAAI,CAAA,IAAC2K,MAAI,CAAA,OAAExF,EAAKiB,SAAW,aAAW,IAAAyE,UAAA,CAAA,IAAA6G,EAAAC,IAAA,CAAAC,EAAAF,EAAAhJ,WAYqB,OAZrBmB,EAAA6H,EAAAlQ,EAElCxB,EAAI,CAAA,IAAC2K,MAAI,CAAA,OAAExF,EAAKjB,UAAQ,IAAA2G,UAAA,CAAA,IAAAgH,EAAAjC,GAAA,CAEiC,MAFjCiC,GAAApF,YAGNQ,EAAW9H,EAAK,CAAA0E,EAAAgI,EAAArQ,EAG9BvC,EAAG,CAACsC,KAAM,GAAE,CAAA,CAAA,CAAAoH,MAAAM,EAAA4I,EAJNlT,EAAG,OAAQ+B,EAAI4C,EAAM8G,YAAa,YAAY,CAAC,CAAA,CAAA,CAAAyH,GAAA,CAAA,CAAAD,EAAA,CAAAA,EAAAnF,YASzCnJ,EAAM2G,SAAS9E,EAAKpB,IAAI,CAAA8F,EAAA+H,EAAApQ,EAGtCjC,EAAM,CAACgC,KAAM,GAAE,CAAA,CAAA,CAAAoH,MAAAM,EAAA2I,EAJTjT,EAAG,OAAQ+B,EAAI4C,EAAM8G,YAAa,YAAY,CAAC,CAAA,CAAA,CAAAsH,GAAA,CAAA,CAAA,KAAA,CAAA/I,MAAAM,EAAAmI,EAjCrDzS,EAAG,OAAQwG,EAAKiB,SAAW,SAAW,QAAS1F,EAAI4C,EAAM8G,YAAa,OAAO,CAAC,CAAA,CAAA,CAAAgH,KAAA,CA0CxF,CAAA,CAAA,KAAA,CAAAvH,EAAAqH,EAAA1P,EAEFxB,EAAI,CAAA,IAAC2K,MAAI,CAAA,OAAErH,EAAMmN,eAAa,IAAA5F,UAAA,CAAA,IAAAiH,EAAAC,GAAA,CAAAC,EAAAF,EAAApJ,WAEyB,OAFzB0C,EAAA0G,EAAA,QAGlBxO,EAAMkN,MAAK,GAAA,CAAA3G,EAAAiI,EAAAtQ,EAGnBxC,EAAW,CAACuC,KAAM,GAAE,MAAA,aAAA,CAAA,CAAAyQ,EAAA,CAAArJ,MAAAM,EAAA6I,EAJdnT,EAAG,OAAQ+B,EAAI4C,EAAM8G,YAAa,UAAU,CAAC,CAAA,CAAA,CAAA0H,GAAA,CAAA,CAAA,KAAA,CAAAnJ,MAAAM,EAAAiI,EAlD9CvS,EAAG,OAAQ+B,EAAI4C,EAAM8G,YAAa,WAAW,CAAC,CAAA,CAAA,CAAA8G,KAAA,CAAA1P,EA4DzDxB,EAAI,CAAA,IAAC2K,MAAI,CAAA,OAAEqC,GAAS,EAAA,IAAAnC,UAAA,CAAA,OAAArJ,EAClB5C,EAAY,CAAA,IACX0F,KAAG,CAAA,OAAE0I,GAAS,CAAE9I,UAAS,IACzBmM,WAAS,CAAA,OAAErD,GAAS,CAAEtL,MAAI,IAC1BH,MAAI,CAAA,OAAEW,EAAe8K,GAAS,CAAEzL,KAAK,EACrC+O,YAAerD,EAAW,KAAI,CAAC,CAAA,EAAA,CAAA,CAAA,CAOzC,SAASgF,GAAWC,EAAgB,CAClCA,EAAInS,EACF,CACEiH,SAAU,GACVmL,SAAU,OACVC,eAAgB,GAChB/H,YAAa,GACd,CACD6H,EACD,CAED,IAAIG,EACE,CAAE9O,WAAUkB,eAAcuD,aAAYG,WAAUrE,eAAgBT,EAAU6O,EAAE,CAE5EK,MAAqBF,EAASG,OAAO,CAErCC,EAAqBzJ,GAAa,CACtC,IAAM2J,EAAQ3J,EAAE4J,cACZD,EAAM/N,OAAOW,QAAQd,EAAakO,EAAM/N,MAAM,CAClD+N,EAAM/K,MAAQ,IAGV6I,MAEJ,EADI,CAACyB,EAAElL,UAAYzD,GAAU,CAACgC,QAAU,GACpC2M,EAAEnN,UAAYxB,GAAU,CAACgC,QAAU2M,EAAEnN,UAIrC8N,MAA8BX,EAAE/H,cAAgB+H,EAAElL,WAAa,GAErE,WAAA,CAAA,IAAA8L,EAAAC,GAAA,CAAAC,EAAAF,EAAApK,WAAAuK,EAGWZ,EAF8B,OAEtB,OAAAY,GAAA,WAAAC,EAAAD,EAAAD,EAAA,CAARX,EAAQW,EAAAG,EAAAH,EAAAI,EAAA,CAAA,IAGbpM,UAAQ,CAAA,OAAEkL,EAAElL,UAAQ,IACpBqM,QAAM,CAAA,OAAEnB,EAAEmB,QAAM,KACXnB,EAAEoB,UAAY,CAAEC,gBAAiB,GAAI,CAAG,EAAE,CAAA,CAAA,SACrCd,EAAiB,CAAA,CAAA,GAAA,GAAA,CAAA5I,EAAAiJ,EAAAtR,EAG5BvB,EAAM,CAAA,IAAA4K,UAAA,CAAA,MAAA,CAAArJ,EACJ1B,EAAK,CAAA,IAAC6K,MAAI,CAAA,OAAEuH,EAAEC,WAAa,gBAAc,IAAAtH,UAAA,CAAA,MAAA,CAAArJ,EACvCxB,EAAI,CAAA,IAAC2K,MAAI,CAAA,OAAEuH,EAAEE,gBAAc,IAAAvH,UAAA,CAAA,OAAArJ,EACzB+O,EAAmB,CAAA,IAClB3L,OAAK,CAAA,OAAErB,GAAU,EACjB0G,SAAUjC,EACVwI,MAAO+B,EACPrI,WAAY/B,EAAQ,IACpBsI,eAAa,CAAA,OAAEA,GAAe,EAAA,IAC9BtG,cAAY,CAAA,OAAE0I,GAAuB,EACxB/O,cAAW,IACxBsG,aAAW,CAAA,OAAE8H,EAAEsB,OAAK,CAAA,EAAA,CAAA,CAAAhS,EAGvBxB,EAAI,CAAA,IAAC2K,MAAI,CAAA,MAAE,CAACuH,EAAEE,gBAAc,IAAAvH,UAAA,CAAA,IAAA4I,EAAAC,IAAA,CAEd,MAFcD,GAAAhH,QACb8F,EAAY1I,EAAA4J,MACvBvB,EAAErH,SAAQ,CAAA4I,GAAA,CAAA,CAAA,EAAA,CAAA,CAAAjS,EAIhB1B,EAAK,CAAA,IAAC6K,MAAI,CAAA,OAAEuH,EAAEC,WAAa,gBAAc,IAAAtH,UAAA,CAAA,MAAA,MAAA,CAAA,IAAA8I,EAAAxC,GAAA,CAGc,OAHd/F,EAAAuI,EAAA,QAE7BlD,GAAe,CAAG8B,EAAexM,IAAAA,GAAS,GAAA,CAAA8D,EAAA8J,MAGlDzB,EAAErH,SAAQ,CAAAlC,MAAAM,EAAA0K,EAFJlD,GAAe,CAAG,uBAAyB,GAAE,CAAA,CAAAkD,KAAA,CAAAnS,EAIrDxB,EAAI,CAAA,IAAC2K,MAAI,CAAA,OAAEC,MAAA,CAAA,CAAAsH,EAAEE,eAAc,EAAA,EAAI7O,GAAU,CAACgC,OAAS,GAAC,IAAAsF,UAAA,CAAA,OAAArJ,EAClDvB,EAAM,CAAA,IAAA4K,UAAA,CAAA,MAAA,CAAArJ,EACJ1B,EAAK,CAAA,IAAC6K,MAAI,CAAA,OAAEuH,EAAEC,WAAa,WAAS,IAAAtH,UAAA,CAAA,OAAArJ,EAClCuL,EAAe,CAAA,IACdnI,OAAK,CAAA,OAAErB,GAAU,EACjB0G,SAAUjC,EACVkC,WAAY/B,EAAQ,IACpBgC,cAAY,CAAA,OAAE0I,GAAuB,EACxB/O,cAAW,IACxBsG,aAAW,CAAA,OAAE8H,EAAEsB,OAAK,CAAA,EAAA,CAAA,CAAAhS,EAGvB1B,EAAK,CAAA,IAAC6K,MAAI,CAAA,OAAEuH,EAAEC,WAAa,QAAM,IAAAtH,UAAA,CAAA,OAAArJ,EAC/BwI,EAAY,CAAA,IACXpF,OAAK,CAAA,OAAErB,GAAU,EACjB0G,SAAUjC,EACVkC,WAAY/B,EAAQ,IACpBgC,cAAY,CAAA,OAAE0I,GAAuB,EAAA,IACrCzI,aAAW,CAAA,OAAE8H,EAAEsB,OAAK,IACpBnJ,aAAW,CAAA,OAAE6H,EAAE7H,aAAW,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,KAAA,CAAAR,EAAAiJ,EAAAtR,EAQrCxB,EAAI,CAAA,IAAC2K,MAAI,CAAA,OAAEuH,EAAE0B,cAAY,IAAA/I,UAAA,CAAA,IAAAgJ,EAAA1C,GAAA,CAC4B,OAD5BtH,EAAAgK,MAC+B3B,EAAE0B,aAAY,CAAAjL,MAAAM,EAAA4K,EAAzDlV,EAAG,OAAQ+B,EAAIwR,EAAEsB,MAAO,eAAe,CAAC,CAAA,CAAA,CAAAK,GAAA,CAAA,CAAA,KAAA,CAAAlL,MAAAM,EAAA6J,EAlE5ChS,EAAWoR,EAAEsB,MAAO,OAAO,CAAA,CAAA,CAAAV,KAAA,CAwE3C,SAASgB,GAAc5B,EAAuB,CAC5CA,EAAInS,EACF,CACEiH,SAAU,GACVmL,SAAU,OACVC,eAAgB,GAChB2B,KAAM,sCACN1J,YAAa,GACd,CACD6H,EACD,CAED,IAAIG,EACE,CAAC2B,EAAYC,GAAiBtU,EAAa,GAAM,CACjD,CAAE4D,WAAUkB,eAAcuD,aAAYG,WAAUrE,eAAgBT,EAAU6O,EAAE,CAC5EW,MAA8BX,EAAE/H,cAAgB+H,EAAElL,WAAa,GAE/DuL,MAAqBF,EAASG,OAAO,CAErCC,EAAqBzJ,GAAa,CACtC,IAAM2J,EAAQ3J,EAAE4J,cACZD,EAAM/N,OAAOW,QAAQd,EAAakO,EAAM/N,MAAM,CAClD+N,EAAM/K,MAAQ,IAGVsM,EAAkBlL,GAAiB,CACvCA,EAAEoL,gBAAgB,CAClBH,EAAc,GAAK,EAGfI,EAAmBrL,GAAiB,CACxCA,EAAEoL,gBAAgB,CAClBH,EAAc,GAAM,EAGhBK,EAActL,GAAiB,CACnCA,EAAEoL,gBAAgB,CAClBH,EAAc,GAAM,CACpB,IAAMrP,EAAQoE,EAAEuL,cAAc3P,MAC1BA,GAAOW,QAAQd,EAAaG,EAAM,EAGlC6L,MAEJ,EADI,CAACyB,EAAElL,UAAYzD,GAAU,CAACgC,QAAU,GACpC2M,EAAEnN,UAAYxB,GAAU,CAACgC,QAAU2M,EAAEnN,UAI3C,WAAA,CAAA,IAAAyP,EAAAzB,GAAA,CAAA0B,EAAAD,EAAA9L,WAAAgM,EAGWrC,EAF8B,OAEtB,OAAAqC,GAAA,WAAAxB,EAAAwB,EAAAD,EAAA,CAARpC,EAAQoC,EAAAtB,EAAAsB,EAAArB,EAAA,CAAA,IAGbpM,UAAQ,CAAA,OAAEkL,EAAElL,UAAQ,IACpBqM,QAAM,CAAA,OAAEnB,EAAEmB,QAAM,KACXnB,EAAEoB,UAAY,CAAEC,gBAAiB,GAAI,CAAG,EAAE,CAAA,CAAA,SACrCd,EAAiB,CAAA,CAAA,GAAA,GAAA,CAAA5I,EAAA2K,EAAAhT,EAG5BxB,EAAI,CAAA,IAAC2K,MAAI,CAAA,OAAEuH,EAAEC,WAAa,gBAAc,IAAAtH,UAAA,CAAA,OAAArJ,EACtCxB,EAAI,CAAA,IAAC2K,MAAI,CAAA,OAAEuH,EAAEE,gBAAc,IAAAvH,UAAA,CAAA,OAAArJ,EACzB+O,EAAmB,CAAA,IAClB3L,OAAK,CAAA,OAAErB,GAAU,EACjB0G,SAAUjC,EACVwI,MAAO+B,EACPrI,WAAY/B,EAAQ,IACpBsI,eAAa,CAAA,OAAEA,GAAe,EAAA,IAC9BtG,cAAY,CAAA,OAAE0I,GAAuB,EACxB/O,cAAW,IACxBsG,aAAW,CAAA,OAAE8H,EAAEsB,OAAK,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,KAAA,CAAA3J,EAAA2K,EAAAhT,EAKzBxB,EAAI,CAAA,IAAC2K,MAAI,CAAA,OAAEuH,EAAEC,WAAa,gBAAc,IAAAtH,UAAA,CAAA,MAAA,CAAArJ,EACtCxB,EAAI,CAAA,IAAC2K,MAAI,CAAA,OAAE8F,GAAe,EAAA,IAAA5F,UAAA,CAAA,IAAA8J,EAAAnM,GAAA,CAAAoM,EAAAD,EAAAjM,WAQ4B,OAR5BiM,EAAAE,iBAAA,OAMfP,EAAU,CAAAK,EAAAE,iBAAA,YADLR,EAAe,CAAAM,EAAAE,iBAAA,WADhBX,EAAc,CAAAS,EAAAlI,QADjB8F,EAAY1I,EAAA+K,EAAApT,EAMlBxB,EAAI,CAAA,IAAC2K,MAAI,CAAA,OAAEuH,EAAE4C,MAAI,IAAExG,UAAQ,CAAA,OAAA9M,EAAGxC,EAAW,CAACuC,KAAM,GAAIwT,YAAa,IAAG,CAAA,EAAA,IAAAlK,UAAA,CAAA,OAClEqH,EAAE4C,MAAI,CAAA,CAAA,CAAAjL,EAAA8K,EAAAnT,EAGVxB,EAAI,CAAA,IACH2K,MAAI,CAAA,OAAEuH,EAAErH,UAAQ,IAChByD,UAAQ,CAAA,MAAA,MAAA,CAAA,IAAA0G,EAAAC,IAAA,CAE8C,OAF9CtM,MAAAM,EAAA+L,EAEMrW,EAAG,OAAQ+B,EAAIwR,EAAEsB,MAAO,eAAe,CAAC,CAAA,CAAA,CAAAwB,KAAA,MAAA,CAAA,IAAAE,EAAAC,IAAA,CAGD,OAHCtL,EAAAqL,MAGEhD,EAAE6B,KAAI,CAAApL,MAAAM,EAAAiM,EAAhDvW,EAAG,OAAQ+B,EAAIwR,EAAEsB,MAAO,cAAc,CAAC,CAAA,CAAA,CAAA0B,KAAA,CAAA,EAAA,IAAArK,UAAA,CAAA,OAIpDqH,EAAErH,UAAQ,CAAA,CAAA,KAAA,CAAAlC,EAAAC,GAAA,CAAA,IAAAwM,EAtBNzW,EAAG,OAAQqV,GAAY,EAAI,QAAStT,EAAIwR,EAAEsB,MAAO,UAAU,CAAC,CAAA6B,EAMvD1W,EAAG,OAAQ+B,EAAIwR,EAAEsB,MAAO,cAAc,CAAC,CAAA,OAAA4B,IAAAxM,EAAAI,GAAAC,EAAA0L,EAAA/L,EAAAI,EAAAoM,EAAA,CAAAC,IAAAzM,EAAAM,GAAAD,EAAA2L,EAAAhM,EAAAM,EAAAmM,EAAA,CAAAzM,GAAA,CAAAI,EAAAjD,IAAAA,GAAAmD,EAAAnD,IAAAA,GAAA,CAAA,CAAA4O,GAAA,CAAA,CAAAnT,EAqBtDxB,EAAI,CAAA,IAAC2K,MAAI,CAAA,OAAEC,MAAA,CAAA,CAAAsH,EAAEE,eAAc,EAAA,EAAI7O,GAAU,CAACgC,OAAS,GAAC,IAAAsF,UAAA,CAAA,OAAArJ,EAClDvB,EAAM,CAAA,IAAA4K,UAAA,CAAA,MAAA,CAAArJ,EACJ1B,EAAK,CAAA,IAAC6K,MAAI,CAAA,OAAEuH,EAAEC,WAAa,WAAS,IAAAtH,UAAA,CAAA,OAAArJ,EAClCuL,EAAe,CAAA,IACdnI,OAAK,CAAA,OAAErB,GAAU,EACjB0G,SAAUjC,EACVkC,WAAY/B,EAAQ,IACpBgC,cAAY,CAAA,OAAE0I,GAAuB,EACxB/O,cAAW,IACxBsG,aAAW,CAAA,OAAE8H,EAAEsB,OAAK,CAAA,EAAA,CAAA,CAAAhS,EAGvB1B,EAAK,CAAA,IAAC6K,MAAI,CAAA,OAAEuH,EAAEC,WAAa,QAAM,IAAAtH,UAAA,CAAA,OAAArJ,EAC/BwI,EAAY,CAAA,IACXpF,OAAK,CAAA,OAAErB,GAAU,EACjB0G,SAAUjC,EACVkC,WAAY/B,EAAQ,IACpBgC,cAAY,CAAA,OAAE0I,GAAuB,EAAA,IACrCzI,aAAW,CAAA,OAAE8H,EAAEsB,OAAK,IACpBnJ,aAAW,CAAA,OAAE6H,EAAE7H,aAAW,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,KAAA,CAAAR,EAAA2K,EAAAhT,EAOnCxB,EAAI,CAAA,IAAC2K,MAAI,CAAA,OAAEuH,EAAE0B,cAAY,IAAA/I,UAAA,CAAA,IAAAyK,EAAAnE,GAAA,CAC4B,OAD5BtH,EAAAyL,MAC+BpD,EAAE0B,aAAY,CAAAjL,MAAAM,EAAAqM,EAAzD3W,EAAG,OAAQ+B,EAAIwR,EAAEsB,MAAO,eAAe,CAAC,CAAA,CAAA,CAAA8B,GAAA,CAAA,CAAA,KAAA,CAAA3M,MAAAM,EAAAuL,EAnF5C1T,EAAWoR,EAAEsB,MAAO,OAAO,CAAA,CAAA,CAAAgB,KAAA,CAyF3C,IAAae,EAAStD,GACtBsD,EAAOC,QAAU1B,GAAc2B,EAAA,CAAA,QAAA,CAAA"}
@@ -0,0 +1,95 @@
1
+ import { JSX, JSXElement } from 'solid-js';
2
+ export type UploadListType = 'text' | 'picture' | 'picture-card';
3
+ export type UploadFileStatus = 'uploading' | 'done' | 'error' | 'removed';
4
+ export type UploadErrorType = 'maxCount' | 'maxFileSize' | 'maxTotalSize' | 'accept';
5
+ export interface UploadFile {
6
+ uid: string;
7
+ name: string;
8
+ size: number;
9
+ type: string;
10
+ status: UploadFileStatus;
11
+ thumbUrl?: string;
12
+ originFile: File;
13
+ percent?: number;
14
+ error?: Error;
15
+ dimensions?: {
16
+ width: number;
17
+ height: number;
18
+ };
19
+ }
20
+ export interface UploadChangeInfo {
21
+ file: UploadFile;
22
+ fileList: UploadFile[];
23
+ }
24
+ export interface UploadValidationError {
25
+ type: UploadErrorType;
26
+ file?: File;
27
+ message: string;
28
+ }
29
+ export interface UploadClassConfig {
30
+ wrapper?: string;
31
+ dragger?: string;
32
+ draggerIcon?: string;
33
+ draggerTitle?: string;
34
+ draggerHint?: string;
35
+ listHeader?: string;
36
+ listCount?: string;
37
+ clearBtn?: string;
38
+ textList?: string;
39
+ textItem?: string;
40
+ textBadge?: string;
41
+ textName?: string;
42
+ textSize?: string;
43
+ pictureList?: string;
44
+ pictureItem?: string;
45
+ pictureThumb?: string;
46
+ pictureIcon?: string;
47
+ pictureInfo?: string;
48
+ pictureActions?: string;
49
+ progressTrack?: string;
50
+ progressFill?: string;
51
+ cardGrid?: string;
52
+ card?: string;
53
+ cardImg?: string;
54
+ cardIcon?: string;
55
+ cardAdd?: string;
56
+ removeBtn?: string;
57
+ actionBtn?: string;
58
+ errorMessage?: string;
59
+ }
60
+ export interface UploadBaseProps {
61
+ multiple?: boolean;
62
+ directory?: boolean;
63
+ accept?: string;
64
+ listType?: UploadListType;
65
+ showUploadList?: boolean;
66
+ maxCount?: number;
67
+ maxFileSize?: number;
68
+ maxTotalSize?: number;
69
+ showClearAll?: boolean;
70
+ onChange?: (info: UploadChangeInfo) => void;
71
+ onError?: (error: UploadValidationError) => void;
72
+ customRequest?: UploadCustomRequest;
73
+ class?: string | UploadClassConfig;
74
+ errorMessage?: JSXElement;
75
+ showTooltip?: boolean;
76
+ children?: JSXElement;
77
+ }
78
+ export interface UploadProps extends UploadBaseProps {
79
+ _type?: 'button';
80
+ }
81
+ export interface UploadDraggerProps extends UploadBaseProps {
82
+ hint?: string;
83
+ icon?: JSXElement;
84
+ }
85
+ export interface UploadRequestOption {
86
+ file: File;
87
+ onSuccess: (response?: unknown) => void;
88
+ onError: (error: Error) => void;
89
+ onProgress: (percent: number) => void;
90
+ }
91
+ export type UploadCustomRequest = (options: UploadRequestOption) => (() => void) | void;
92
+ export type UploadComponent = ((props: UploadProps) => JSX.Element) & {
93
+ Dragger: (props: UploadDraggerProps) => JSX.Element;
94
+ };
95
+ //# sourceMappingURL=upload.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upload.types.d.ts","sourceRoot":"","sources":["../../../src/components/upload/upload.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export { ZIndex, ZIndexType, OFFSET, acquire, release } from './z-index';
2
+ export type { ZIndexProps } from './z-index.types';
3
+ export { ZIndexContext, useZIndex } from './z-index.context';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/z-index/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzE,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Holds the z-index of the nearest ZIndex ancestor that is a container type
3
+ * (MODAL, OVERLAY). Child ZIndex components use this to compute their own
4
+ * z-index relative to the parent container, ensuring correct stacking in
5
+ * nested scenarios (e.g., dropdown inside modal).
6
+ *
7
+ * undefined = no ZIndex container ancestor (top-level context).
8
+ */
9
+ export declare const ZIndexContext: import('solid-js').Context<number | undefined>;
10
+ /** Returns the z-index of the nearest ZIndex container ancestor, if any. */
11
+ export declare function useParentZIndex(): number | undefined;
12
+ /**
13
+ * Returns the z-index of the nearest ZIndex container ancestor.
14
+ * Useful for reading the current overlay z-index level in child components.
15
+ */
16
+ export declare function useZIndex(): number | undefined;
17
+ //# sourceMappingURL=z-index.context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"z-index.context.d.ts","sourceRoot":"","sources":["../../../src/components/z-index/z-index.context.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,gDAA+C,CAAC;AAE1E,4EAA4E;AAC5E,wBAAgB,eAAe,IAAI,MAAM,GAAG,SAAS,CAEpD;AAED;;;GAGG;AACH,wBAAgB,SAAS,IAAI,MAAM,GAAG,SAAS,CAE9C"}
@@ -0,0 +1,2 @@
1
+ import{createContext as e,useContext as t}from"solid-js";var n=e(void 0);function r(){return t(n)}export{n as ZIndexContext,r as useParentZIndex};
2
+ //# sourceMappingURL=z-index.context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"z-index.context.js","names":[],"sources":["../../../src/components/z-index/z-index.context.ts"],"sourcesContent":["import { createContext, useContext } from 'solid-js';\r\n\r\n/**\r\n * Holds the z-index of the nearest ZIndex ancestor that is a container type\r\n * (MODAL, OVERLAY). Child ZIndex components use this to compute their own\r\n * z-index relative to the parent container, ensuring correct stacking in\r\n * nested scenarios (e.g., dropdown inside modal).\r\n *\r\n * undefined = no ZIndex container ancestor (top-level context).\r\n */\r\nexport const ZIndexContext = createContext<number | undefined>(undefined);\r\n\r\n/** Returns the z-index of the nearest ZIndex container ancestor, if any. */\r\nexport function useParentZIndex(): number | undefined {\r\n return useContext(ZIndexContext);\r\n}\r\n\r\n/**\r\n * Returns the z-index of the nearest ZIndex container ancestor.\r\n * Useful for reading the current overlay z-index level in child components.\r\n */\r\nexport function useZIndex(): number | undefined {\r\n return useContext(ZIndexContext);\r\n}\r\n"],"mappings":"yDAUA,IAAa,EAAgB,EAAkC,IAAA,GAAU,CAGzE,SAAgB,GAAsC,CACpD,OAAO,EAAW,EAAc"}
@@ -0,0 +1,20 @@
1
+ import { ParentComponent } from 'solid-js';
2
+ import { ZIndexType, ZIndexProps } from './z-index.types';
3
+ export { ZIndexType } from './z-index.types';
4
+ export type { ZIndexProps } from './z-index.types';
5
+ export { acquire, release } from './z-index.store';
6
+ /** Base z-index for each type group when no parent context exists. */
7
+ export declare const OFFSET: Record<ZIndexType, number>;
8
+ /**
9
+ * ZIndex — wrapper component that renders children via Portal with an
10
+ * auto-managed z-index from a centralized global registry.
11
+ *
12
+ * When `open` becomes true, it acquires the next available z-index slot
13
+ * for the given type group. When `open` becomes false (or the component
14
+ * unmounts), the slot is released back to the pool.
15
+ *
16
+ * Container types (MODAL, OVERLAY) additionally publish their z-index via
17
+ * ZIndexContext, allowing nested popup children to auto-offset correctly.
18
+ */
19
+ export declare const ZIndex: ParentComponent<ZIndexProps>;
20
+ //# sourceMappingURL=z-index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"z-index.d.ts","sourceRoot":"","sources":["../../../src/components/z-index/z-index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA2C,eAAe,EAAQ,MAAM,UAAU,CAAC;AAK1F,OAAO,EAAE,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE/D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAEnD,sEAAsE;AACtE,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAO7C,CAAC;AAqCF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,MAAM,EAAE,eAAe,CAAC,WAAW,CAoI/C,CAAC"}
@@ -0,0 +1,2 @@
1
+ import{cn as e}from"../../utils/cn.js";import{acquire as t,acquireScrollLock as n,release as r,releaseScrollLock as i}from"./z-index.store.js";import{ZIndexContext as a,useParentZIndex as o}from"./z-index.context.js";import{ZIndexType as s}from"./z-index.types.js";import{Portal as c,className as l,createComponent as u,effect as d,insert as f,style as p,template as m}from"solid-js/web";import{Show as h,createEffect as g,mergeProps as _,on as v,onCleanup as y}from"solid-js";var b=m(`<div>`),x={[s.DROPDOWN]:200,[s.POPOVER]:200,[s.OVERLAY]:500,[s.MODAL]:1e3,[s.TOOLTIP]:1500,[s.TOAST]:3e3},S={[s.DROPDOWN]:10,[s.POPOVER]:20,[s.TOOLTIP]:30},C=new Set([s.MODAL,s.OVERLAY]);function w(e,t,n){if(n===void 0)return t;let r=S[e];return r===void 0?t:n+r}var T=s=>{let m=_({positioning:`fixed`},s),S=()=>m.startIndex===void 0?x[m.type]??0:m.startIndex,T=s=>{let h;if(m.customValue!==void 0)h=m.customValue,m.onZIndex?.(h),m.blockScroll&&n(),y(function(){m.blockScroll&&i()});else{let e=o(),a=w(m.type,S(),e),s=t(m.type,a);h=s.zIndex,m.onZIndex?.(h),m.blockScroll&&n(),y(function(){r(s.registryKey,s.offset),m.blockScroll&&i()})}let g=C.has(m.type);return u(c,{get children(){var t=b();return f(t,()=>g?u(a.Provider,{value:h,get children(){return s.children}}):s.children),d(n=>{var r=e(m.positioning===`fixed`?`fixed`:`absolute`,m.class),i={"z-index":h,...m.position};return r!==n.e&&l(t,n.e=r),n.t=p(t,i,n.t),n},{e:void 0,t:void 0}),t}})};return m.preRender?u(s=>{let h,_=o();if(m.customValue!==void 0)h=m.customValue;else{let e=w(m.type,S(),_),n=t(m.type,e);h=n.zIndex,y(function(){r(n.registryKey,n.offset)})}let x=!1;g(v(()=>m.open,e=>{e?(m.blockScroll&&!x&&(n(),x=!0),m.onZIndex?.(h)):m.blockScroll&&x&&(i(),x=!1)},{defer:!1})),y(function(){m.blockScroll&&x&&(i(),x=!1)});let T=C.has(m.type);return u(c,{get children(){var t=b();return f(t,()=>T?u(a.Provider,{value:h,get children(){return s.children}}):s.children),d(n=>{var r=e(m.positioning===`fixed`?`fixed`:`absolute`,m.class),i={"z-index":h,display:m.open?void 0:`none`,...m.position};return r!==n.e&&l(t,n.e=r),n.t=p(t,i,n.t),n},{e:void 0,t:void 0}),t}})},{get children(){return m.children}}):u(h,{get when(){return m.open},get children(){return u(T,{get children(){return m.children}})}})};export{x as OFFSET,T as ZIndex};
2
+ //# sourceMappingURL=z-index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"z-index.js","names":["createEffect","mergeProps","on","onCleanup","ParentComponent","Show","Portal","cn","acquire","acquireScrollLock","release","releaseScrollLock","useParentZIndex","ZIndexContext","ZIndexType","ZIndexProps","OFFSET","Record","DROPDOWN","POPOVER","OVERLAY","MODAL","TOOLTIP","TOAST","RELATIVE_OFFSET","Partial","CONTAINER_TYPES","Set","computeEffectiveBase","type","globalBase","parentZIndex","undefined","relativeOffset","ZIndex","props","p","positioning","const","baseIndex","startIndex","Inner","innerProps","zIndex","customValue","onZIndex","blockScroll","releaseScrollLockOnUnmount","effectiveBase","acquired","releaseZIndexAndScrollLock","registryKey","offset","isContainer","has","_$createComponent","children","_el$","_tmpl$","_$insert","Provider","value","_$effect","_p$","_v$","class","_v$2","position","e","_$className","t","_$style","PreRenderInner","releaseZIndex","scrollLockHeld","open","defer","releaseScrollLockIfHeld","_el$2","_v$3","_v$4","display","preRender","when"],"sources":["../../../src/components/z-index/z-index.tsx"],"sourcesContent":["import { createEffect, mergeProps, on, onCleanup, ParentComponent, Show } from 'solid-js';\r\nimport { Portal } from 'solid-js/web';\r\nimport { cn } from '@/utils/cn';\r\nimport { acquire, acquireScrollLock, release, releaseScrollLock } from './z-index.store';\r\nimport { useParentZIndex, ZIndexContext } from './z-index.context';\r\nimport { ZIndexType, type ZIndexProps } from './z-index.types';\r\n\r\nexport { ZIndexType } from './z-index.types';\r\nexport type { ZIndexProps } from './z-index.types';\r\nexport { acquire, release } from './z-index.store';\r\n\r\n/** Base z-index for each type group when no parent context exists. */\r\nexport const OFFSET: Record<ZIndexType, number> = {\r\n [ZIndexType.DROPDOWN]: 200,\r\n [ZIndexType.POPOVER]: 200,\r\n [ZIndexType.OVERLAY]: 500,\r\n [ZIndexType.MODAL]: 1000,\r\n [ZIndexType.TOOLTIP]: 1500,\r\n [ZIndexType.TOAST]: 3000,\r\n};\r\n\r\n/**\r\n * Relative offset added to the parent container's z-index when a child popup\r\n * renders inside a container (MODAL or OVERLAY). This ensures correct stacking:\r\n * e.g., a dropdown inside a modal gets parentZIndex + 50, always above the modal.\r\n */\r\nconst RELATIVE_OFFSET: Partial<Record<ZIndexType, number>> = {\r\n [ZIndexType.DROPDOWN]: 10,\r\n [ZIndexType.POPOVER]: 20,\r\n [ZIndexType.TOOLTIP]: 30,\r\n};\r\n\r\n/**\r\n * Container types that publish their z-index via ZIndexContext so that\r\n * child popup components can calculate their z-index relative to this parent.\r\n */\r\nconst CONTAINER_TYPES = new Set<ZIndexType>([ZIndexType.MODAL, ZIndexType.OVERLAY]);\r\n\r\n/**\r\n * Compute the effective base index for slot allocation.\r\n *\r\n * - If a parent container z-index exists AND this type has a relative offset:\r\n * use `parentZIndex + relativeOffset` (context-aware mode).\r\n * - Otherwise: use the global `baseIndex` from OFFSET (top-level mode).\r\n */\r\nfunction computeEffectiveBase(\r\n type: string,\r\n globalBase: number,\r\n parentZIndex: number | undefined,\r\n): number {\r\n if (parentZIndex === undefined) return globalBase;\r\n const relativeOffset = RELATIVE_OFFSET[type as ZIndexType];\r\n if (relativeOffset === undefined) return globalBase;\r\n return parentZIndex + relativeOffset;\r\n}\r\n\r\n/**\r\n * ZIndex — wrapper component that renders children via Portal with an\r\n * auto-managed z-index from a centralized global registry.\r\n *\r\n * When `open` becomes true, it acquires the next available z-index slot\r\n * for the given type group. When `open` becomes false (or the component\r\n * unmounts), the slot is released back to the pool.\r\n *\r\n * Container types (MODAL, OVERLAY) additionally publish their z-index via\r\n * ZIndexContext, allowing nested popup children to auto-offset correctly.\r\n */\r\nexport const ZIndex: ParentComponent<ZIndexProps> = props => {\r\n const p = mergeProps({ positioning: 'fixed' as const }, props);\r\n\r\n const baseIndex = (): number => {\r\n if (p.startIndex !== undefined) return p.startIndex;\r\n return OFFSET[p.type as ZIndexType] ?? 0;\r\n };\r\n\r\n /**\r\n * Inner component — only rendered when `open` is true (or always when preRender).\r\n * This ties acquire/release to the actual Portal mount/unmount lifecycle.\r\n */\r\n const Inner: ParentComponent = innerProps => {\r\n let zIndex: number;\r\n\r\n if (p.customValue !== undefined) {\r\n zIndex = p.customValue;\r\n p.onZIndex?.(zIndex);\r\n if (p.blockScroll) acquireScrollLock();\r\n onCleanup(function releaseScrollLockOnUnmount() {\r\n if (p.blockScroll) releaseScrollLock();\r\n });\r\n } else {\r\n const parentZIndex = useParentZIndex();\r\n const effectiveBase = computeEffectiveBase(p.type, baseIndex(), parentZIndex);\r\n const acquired = acquire(p.type, effectiveBase);\r\n zIndex = acquired.zIndex;\r\n p.onZIndex?.(zIndex);\r\n if (p.blockScroll) acquireScrollLock();\r\n onCleanup(function releaseZIndexAndScrollLock() {\r\n release(acquired.registryKey, acquired.offset);\r\n if (p.blockScroll) releaseScrollLock();\r\n });\r\n }\r\n\r\n const isContainer = CONTAINER_TYPES.has(p.type as ZIndexType);\r\n\r\n // Container types (MODAL, OVERLAY) publish their z-index via ZIndexContext\r\n // so that nested popups (Dropdown, Tooltip…) can auto-offset correctly.\r\n // The Provider MUST live INSIDE the Portal so SolidJS's reactive ownership\r\n // tree propagates the context into the Portal's scope. Wrapping the Portal\r\n // element from the outside does NOT work because Portal creates its own\r\n // reactive scope when mounting into document.body.\r\n return (\r\n <Portal>\r\n <div\r\n class={cn(p.positioning === 'fixed' ? 'fixed' : 'absolute', p.class)}\r\n style={{ 'z-index': zIndex, ...p.position }}\r\n >\r\n {isContainer ? (\r\n <ZIndexContext.Provider value={zIndex}>{innerProps.children}</ZIndexContext.Provider>\r\n ) : (\r\n innerProps.children\r\n )}\r\n </div>\r\n </Portal>\r\n );\r\n };\r\n\r\n /**\r\n * PreRenderInner — always mounted in the DOM, but manages z-index/scroll\r\n * reactively based on `open`. Portal is always rendered; visibility is\r\n * controlled via CSS display:none when closed.\r\n */\r\n const PreRenderInner: ParentComponent = innerProps => {\r\n let zIndex: number;\r\n const parentZIndex = useParentZIndex();\r\n\r\n if (p.customValue !== undefined) {\r\n zIndex = p.customValue;\r\n } else {\r\n const effectiveBase = computeEffectiveBase(p.type, baseIndex(), parentZIndex);\r\n const acquired = acquire(p.type, effectiveBase);\r\n zIndex = acquired.zIndex;\r\n onCleanup(function releaseZIndex() { release(acquired.registryKey, acquired.offset); });\r\n }\r\n\r\n // Reactively manage scroll lock based on open state.\r\n // Track whether we've acquired the lock to avoid double-release.\r\n let scrollLockHeld = false;\r\n createEffect(\r\n on(\r\n () => p.open,\r\n open => {\r\n if (open) {\r\n if (p.blockScroll && !scrollLockHeld) {\r\n acquireScrollLock();\r\n scrollLockHeld = true;\r\n }\r\n p.onZIndex?.(zIndex);\r\n } else {\r\n if (p.blockScroll && scrollLockHeld) {\r\n releaseScrollLock();\r\n scrollLockHeld = false;\r\n }\r\n }\r\n },\r\n { defer: false },\r\n ),\r\n );\r\n onCleanup(function releaseScrollLockIfHeld() {\r\n if (p.blockScroll && scrollLockHeld) {\r\n releaseScrollLock();\r\n scrollLockHeld = false;\r\n }\r\n });\r\n\r\n const isContainer = CONTAINER_TYPES.has(p.type as ZIndexType);\r\n\r\n return (\r\n <Portal>\r\n <div\r\n class={cn(p.positioning === 'fixed' ? 'fixed' : 'absolute', p.class)}\r\n style={{ 'z-index': zIndex, display: p.open ? undefined : 'none', ...p.position }}\r\n >\r\n {isContainer ? (\r\n <ZIndexContext.Provider value={zIndex}>{innerProps.children}</ZIndexContext.Provider>\r\n ) : (\r\n innerProps.children\r\n )}\r\n </div>\r\n </Portal>\r\n );\r\n };\r\n\r\n return p.preRender ? (\r\n <PreRenderInner>{p.children}</PreRenderInner>\r\n ) : (\r\n <Show when={p.open}>\r\n <Inner>{p.children}</Inner>\r\n </Show>\r\n );\r\n};\r\n"],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export type AcquireResult = {
2
+ zIndex: number;
3
+ registryKey: string;
4
+ offset: number;
5
+ };
6
+ /** Acquire the lowest available z-index slot for the given type + base combination. */
7
+ export declare function acquire(type: string, baseIndex: number): AcquireResult;
8
+ /** Release a previously acquired slot back to the pool. */
9
+ export declare function release(registryKey: string, offset: number): void;
10
+ /** Increment scroll lock counter. Locks body scroll on first call. */
11
+ export declare function acquireScrollLock(): void;
12
+ /** Decrement scroll lock counter. Restores body scroll when counter reaches 0. */
13
+ export declare function releaseScrollLock(): void;
14
+ //# sourceMappingURL=z-index.store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"z-index.store.d.ts","sourceRoot":"","sources":["../../../src/components/z-index/z-index.store.ts"],"names":[],"mappings":"AAWA,MAAM,MAAM,aAAa,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpF,uFAAuF;AACvF,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,aAAa,CAWtE;AAED,2DAA2D;AAC3D,wBAAgB,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAKjE;AASD,sEAAsE;AACtE,wBAAgB,iBAAiB,IAAI,IAAI,CAMxC;AAED,kFAAkF;AAClF,wBAAgB,iBAAiB,IAAI,IAAI,CAOxC"}
@@ -0,0 +1,2 @@
1
+ var e=new Map;function t(t,n){let r=`${t}@${n}`,i=e.get(r);i||(i=new Set,e.set(r,i));let a=0;for(;i.has(a);)a++;return i.add(a),{zIndex:n+a,registryKey:r,offset:a}}function n(t,n){let r=e.get(t);r&&(r.delete(n),r.size===0&&e.delete(t))}var r=0,i=``;function a(){r===0&&(i=document.body.style.overflow,document.body.style.overflow=`hidden`),r++}function o(){r<=0||(r--,r===0&&(document.body.style.overflow=i,i=``))}export{t as acquire,a as acquireScrollLock,n as release,o as releaseScrollLock};
2
+ //# sourceMappingURL=z-index.store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"z-index.store.js","names":[],"sources":["../../../src/components/z-index/z-index.store.ts"],"sourcesContent":["/**\r\n * Global z-index registry.\r\n *\r\n * Tracks occupied z-index slots using a composite key `type@baseIndex`.\r\n * This allows the same ZIndexType to have multiple independent slot pools\r\n * when different base indexes are used (e.g., DROPDOWN inside modal A vs modal B).\r\n * When a slot is released (component unmounts), it becomes available for reuse,\r\n * keeping z-index values compact instead of endlessly incrementing.\r\n */\r\nconst registry = new Map<string, Set<number>>();\r\n\r\nexport type AcquireResult = { zIndex: number; registryKey: string; offset: number };\r\n\r\n/** Acquire the lowest available z-index slot for the given type + base combination. */\r\nexport function acquire(type: string, baseIndex: number): AcquireResult {\r\n const registryKey = `${type}@${baseIndex}`;\r\n let slots = registry.get(registryKey);\r\n if (!slots) {\r\n slots = new Set();\r\n registry.set(registryKey, slots);\r\n }\r\n let offset = 0;\r\n while (slots.has(offset)) offset++;\r\n slots.add(offset);\r\n return { zIndex: baseIndex + offset, registryKey, offset };\r\n}\r\n\r\n/** Release a previously acquired slot back to the pool. */\r\nexport function release(registryKey: string, offset: number): void {\r\n const slots = registry.get(registryKey);\r\n if (!slots) return;\r\n slots.delete(offset);\r\n if (slots.size === 0) registry.delete(registryKey);\r\n}\r\n\r\n// ---------------------------------------------------------------------------\r\n// Scroll lock\r\n// ---------------------------------------------------------------------------\r\n\r\nlet scrollLockCount = 0;\r\nlet savedOverflow = '';\r\n\r\n/** Increment scroll lock counter. Locks body scroll on first call. */\r\nexport function acquireScrollLock(): void {\r\n if (scrollLockCount === 0) {\r\n savedOverflow = document.body.style.overflow;\r\n document.body.style.overflow = 'hidden';\r\n }\r\n scrollLockCount++;\r\n}\r\n\r\n/** Decrement scroll lock counter. Restores body scroll when counter reaches 0. */\r\nexport function releaseScrollLock(): void {\r\n if (scrollLockCount <= 0) return;\r\n scrollLockCount--;\r\n if (scrollLockCount === 0) {\r\n document.body.style.overflow = savedOverflow;\r\n savedOverflow = '';\r\n }\r\n}\r\n"],"mappings":"AASA,IAAM,EAAW,IAAI,IAKrB,SAAgB,EAAQ,EAAc,EAAkC,CACtE,IAAM,EAAc,GAAG,EAAK,GAAG,IAC3B,EAAQ,EAAS,IAAI,EAAY,CAChC,IACH,EAAQ,IAAI,IACZ,EAAS,IAAI,EAAa,EAAM,EAElC,IAAI,EAAS,EACb,KAAO,EAAM,IAAI,EAAO,EAAE,IAE1B,OADA,EAAM,IAAI,EAAO,CACV,CAAE,OAAQ,EAAY,EAAQ,cAAa,SAAQ,CAI5D,SAAgB,EAAQ,EAAqB,EAAsB,CACjE,IAAM,EAAQ,EAAS,IAAI,EAAY,CAClC,IACL,EAAM,OAAO,EAAO,CAChB,EAAM,OAAS,GAAG,EAAS,OAAO,EAAY,EAOpD,IAAI,EAAkB,EAClB,EAAgB,GAGpB,SAAgB,GAA0B,CACpC,IAAoB,IACtB,EAAgB,SAAS,KAAK,MAAM,SACpC,SAAS,KAAK,MAAM,SAAW,UAEjC,IAIF,SAAgB,GAA0B,CACpC,GAAmB,IACvB,IACI,IAAoB,IACtB,SAAS,KAAK,MAAM,SAAW,EAC/B,EAAgB"}
@@ -0,0 +1,51 @@
1
+ import { JSX } from 'solid-js';
2
+ export declare enum ZIndexType {
3
+ DROPDOWN = "dropdown",
4
+ MODAL = "modal",
5
+ TOOLTIP = "tooltip",
6
+ TOAST = "toast",
7
+ POPOVER = "popover",
8
+ OVERLAY = "overlay"
9
+ }
10
+ type TypeDefault = {
11
+ type: ZIndexType;
12
+ startIndex?: never;
13
+ };
14
+ type CustomType = {
15
+ type: string;
16
+ startIndex: number;
17
+ };
18
+ export type ZIndexProps = {
19
+ /** Controls Portal mounting. When false, no DOM is rendered and no z-index slot is occupied. */
20
+ open: boolean;
21
+ /** CSS position type for the wrapper div. Defaults to 'fixed'. */
22
+ positioning?: 'fixed' | 'absolute';
23
+ /** Inline position styles (top, left, right, bottom, width, height, etc.). */
24
+ position?: JSX.CSSProperties;
25
+ /** Additional class for the wrapper div. */
26
+ class?: string;
27
+ /** Callback that receives the computed z-index when the Portal mounts. */
28
+ onZIndex?: (zIndex: number) => void;
29
+ /**
30
+ * When true, blocks scroll on document.body while this layer is open.
31
+ * Scroll inside children remains functional.
32
+ * Multiple concurrent layers with blockScroll share a reference counter,
33
+ * so body scroll is only restored when all of them are closed.
34
+ * Defaults to false.
35
+ */
36
+ blockScroll?: boolean;
37
+ /**
38
+ * When provided, this value is used directly as the z-index without going
39
+ * through the auto-allocation registry. No slot is acquired or released.
40
+ * Takes precedence over the type-based computation and startIndex.
41
+ */
42
+ customValue?: number;
43
+ /**
44
+ * When true, the Portal is always mounted in the DOM regardless of `open`.
45
+ * Visibility is controlled via CSS (display:none when closed).
46
+ * Z-index slot and scroll lock are still only active when `open` is true.
47
+ */
48
+ preRender?: boolean;
49
+ } & (TypeDefault | CustomType);
50
+ export {};
51
+ //# sourceMappingURL=z-index.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"z-index.types.d.ts","sourceRoot":"","sources":["../../../src/components/z-index/z-index.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,oBAAY,UAAU;IACpB,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,OAAO,YAAY;CACpB;AAED,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,UAAU,CAAC;IACjB,UAAU,CAAC,EAAE,KAAK,CAAC;CACpB,CAAC;AAEF,KAAK,UAAU,GAAG;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,gGAAgG;IAChG,IAAI,EAAE,OAAO,CAAC;IACd,kEAAkE;IAClE,WAAW,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IACnC,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC;IAC7B,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,GAAG,CAAC,WAAW,GAAG,UAAU,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ var e=function(e){return e.DROPDOWN=`dropdown`,e.MODAL=`modal`,e.TOOLTIP=`tooltip`,e.TOAST=`toast`,e.POPOVER=`popover`,e.OVERLAY=`overlay`,e}({});export{e as ZIndexType};
2
+ //# sourceMappingURL=z-index.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"z-index.types.js","names":[],"sources":["../../../src/components/z-index/z-index.types.ts"],"sourcesContent":["import { JSX } from 'solid-js';\r\n\r\nexport enum ZIndexType {\r\n DROPDOWN = 'dropdown',\r\n MODAL = 'modal',\r\n TOOLTIP = 'tooltip',\r\n TOAST = 'toast',\r\n POPOVER = 'popover',\r\n OVERLAY = 'overlay',\r\n}\r\n\r\ntype TypeDefault = {\r\n type: ZIndexType;\r\n startIndex?: never;\r\n};\r\n\r\ntype CustomType = {\r\n type: string;\r\n startIndex: number;\r\n};\r\n\r\nexport type ZIndexProps = {\r\n /** Controls Portal mounting. When false, no DOM is rendered and no z-index slot is occupied. */\r\n open: boolean;\r\n /** CSS position type for the wrapper div. Defaults to 'fixed'. */\r\n positioning?: 'fixed' | 'absolute';\r\n /** Inline position styles (top, left, right, bottom, width, height, etc.). */\r\n position?: JSX.CSSProperties;\r\n /** Additional class for the wrapper div. */\r\n class?: string;\r\n /** Callback that receives the computed z-index when the Portal mounts. */\r\n onZIndex?: (zIndex: number) => void;\r\n /**\r\n * When true, blocks scroll on document.body while this layer is open.\r\n * Scroll inside children remains functional.\r\n * Multiple concurrent layers with blockScroll share a reference counter,\r\n * so body scroll is only restored when all of them are closed.\r\n * Defaults to false.\r\n */\r\n blockScroll?: boolean;\r\n /**\r\n * When provided, this value is used directly as the z-index without going\r\n * through the auto-allocation registry. No slot is acquired or released.\r\n * Takes precedence over the type-based computation and startIndex.\r\n */\r\n customValue?: number;\r\n /**\r\n * When true, the Portal is always mounted in the DOM regardless of `open`.\r\n * Visibility is controlled via CSS (display:none when closed).\r\n * Z-index slot and scroll lock are still only active when `open` is true.\r\n */\r\n preRender?: boolean;\r\n} & (TypeDefault | CustomType);\r\n"],"mappings":"AAEA,IAAY,EAAL,SAAA,EAAA,OACL,GAAA,SAAA,WACA,EAAA,MAAA,QACA,EAAA,QAAA,UACA,EAAA,MAAA,QACA,EAAA,QAAA,UACA,EAAA,QAAA,gBACD"}
package/dist/lib.d.ts ADDED
@@ -0,0 +1,48 @@
1
+ export { cn } from './utils/cn';
2
+ export { renderCSSAnimation, createThrottle, normalizeHexColor, getColor, getRandomElement, genSVGCubicBezier, } from './utils/helper';
3
+ export type { AnimationConfig } from './utils/helper';
4
+ export type { BaseColorProps, SolidComponent } from './type';
5
+ export * from './components/avatar';
6
+ export * from './components/badge';
7
+ export * from './components/blank';
8
+ export * from './components/breadcrumb';
9
+ export * from './components/button';
10
+ export * from './components/carousel';
11
+ export * from './components/chat-bubble';
12
+ export * from './components/checkbox';
13
+ export * from './components/collapse';
14
+ export * from './components/context-menu';
15
+ export * from './components/diff';
16
+ export * from './components/divider';
17
+ export * from './components/drawer';
18
+ export * from './components/dropdown';
19
+ export * from './components/float-button';
20
+ export * from './components/hover-3d-image';
21
+ export * from './components/image-preview';
22
+ export * from './components/indicator';
23
+ export * from './components/input';
24
+ export * from './components/loading';
25
+ export * from './components/mansory';
26
+ export * from './components/menu';
27
+ export * from './components/modal';
28
+ export * from './components/pagination';
29
+ export * from './components/progress-bar';
30
+ export * from './components/qr-code';
31
+ export * from './components/rating';
32
+ export * from './components/select';
33
+ export * from './components/select-zone';
34
+ export * from './components/skeleton';
35
+ export * from './components/slider';
36
+ export * from './components/splitter';
37
+ export * from './components/steps';
38
+ export * from './components/swap';
39
+ export * from './components/switch';
40
+ export * from './components/tab';
41
+ export * from './components/table';
42
+ export * from './components/text-rotate';
43
+ export * from './components/timeline';
44
+ export * from './components/toast';
45
+ export * from './components/tooltip';
46
+ export * from './components/tour';
47
+ export * from './components/upload';
48
+ //# sourceMappingURL=lib.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAChC,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,QAAQ,EACR,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAG7D,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC"}
package/dist/lib.js ADDED
@@ -0,0 +1 @@
1
+ import{cn as e}from"./utils/cn.js";import{createThrottle as t,genSVGCubicBezier as n,getColor as r,getRandomElement as i,normalizeHexColor as a,renderCSSAnimation as o}from"./utils/helper.js";import{Avatar as s}from"./components/avatar/avatar.js";import{Badge as c}from"./components/badge/badge.js";import{Blank as l}from"./components/blank/blank.js";import{Breadcrumb as u}from"./components/breadcrumb/breadcrumb.js";import{Button as d}from"./components/button/button.js";import{Carousel as f}from"./components/carousel/carousel.js";import{ChatBubble as p}from"./components/chat-bubble/chatBubble.js";import{Checkbox as m}from"./components/checkbox/checkbox.js";import{Collapse as h}from"./components/collapse/collapse.js";import{createContextMenuHandle as g}from"./components/context-menu/context-menu.store.js";import{ContextMenu as _}from"./components/context-menu/context-menu.js";import{Diff as v}from"./components/diff/diff.js";import{Divider as y}from"./components/divider/divider.js";import{ComponentDrawer as b,Drawer as x}from"./components/drawer/drawer.js";import{Dropdown as S}from"./components/dropdown/dropdown.js";import{FloatButton as C}from"./components/float-button/float-button.js";import{ImagePreview as w}from"./components/image-preview/image-preview.js";import{Hover3DImage as T}from"./components/hover-3d-image/hover-3d-image.js";import{Indicator as E}from"./components/indicator/indicator.js";import{Input as D}from"./components/input/input.js";import{Loading as O,Spinner as k}from"./components/loading/loading.js";import{Mansory as A}from"./components/mansory/mansory.js";import{Menu as j}from"./components/menu/menu.js";import{Modal as M}from"./components/modal/modal.js";import{closeAllModals as N,createModal as P}from"./components/modal/modalContext.js";import{Select as F}from"./components/select/select.js";import{Pagination as I}from"./components/pagination/pagination.js";import{progressBar as L}from"./components/progress-bar/progress-bar.js";import{QrCode as R}from"./components/qr-code/qr-code.js";import{Rating as z}from"./components/rating/rating.js";import{SelectZone as B,SelectZoneItem as V}from"./components/select-zone/select-zone.js";import{Skeleton as H}from"./components/skeleton/skeleton.js";import{Slider as U}from"./components/slider/slider.js";import{Splitter as W,SplitterPanel as G}from"./components/splitter/splitter.js";import{Steps as K}from"./components/steps/steps.js";import{Swap as q}from"./components/swap/swap.js";import{Switch as J}from"./components/switch/switch.js";import{Tooltip as Y}from"./components/tooltip/tooltip.js";import{Tab as X}from"./components/tab/tab.js";import{Table as Z}from"./components/table/table.js";import{createColumnHelper as Q}from"./components/table/index.js";import{TextRotate as $}from"./components/text-rotate/text-rotate.js";import{Timeline as ee}from"./components/timeline/timeline.js";import{Toaster as te,toast as ne}from"./components/toast/toast.js";import{createTour as re}from"./components/tour/tour.js";import{Upload as ie}from"./components/upload/upload.js";export{s as Avatar,c as Badge,l as Blank,u as Breadcrumb,d as Button,f as Carousel,p as ChatBubble,m as Checkbox,h as Collapse,b as ComponentDrawer,_ as ContextMenu,v as Diff,y as Divider,x as Drawer,S as Dropdown,C as FloatButton,T as Hover3DImage,w as ImagePreview,E as Indicator,D as Input,O as Loading,A as Mansory,j as Menu,M as Modal,I as Pagination,R as QrCode,z as Rating,F as Select,B as SelectZone,V as SelectZoneItem,H as Skeleton,U as Slider,k as Spinner,W as Splitter,G as SplitterPanel,K as Steps,q as Swap,J as Switch,X as Tab,Z as Table,$ as TextRotate,ee as Timeline,te as Toaster,Y as Tooltip,ie as Upload,N as closeAllModals,e as cn,Q as createColumnHelper,g as createContextMenuHandle,P as createModal,t as createThrottle,re as createTour,n as genSVGCubicBezier,r as getColor,i as getRandomElement,a as normalizeHexColor,L as progressBar,o as renderCSSAnimation,ne as toast};