solid-tom-ui 1.0.5 → 1.0.7

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 (509) hide show
  1. package/README.md +246 -237
  2. package/components/avatar/avatar.js.map +1 -0
  3. package/components/badge/badge.js.map +1 -0
  4. package/components/breadcrumb/breadcrumb.js.map +1 -0
  5. package/components/button/button.js.map +1 -0
  6. package/components/carousel/carousel.js.map +1 -0
  7. package/components/chat-bubble/chatBubble.js.map +1 -0
  8. package/components/checkbox/checkbox.js.map +1 -0
  9. package/components/collapse/collapse.js.map +1 -0
  10. package/components/context-menu/context-menu.js.map +1 -0
  11. package/components/context-menu/context-menu.store.js.map +1 -0
  12. package/components/divider/divider.js.map +1 -0
  13. package/components/dropdown/dropdown.js.map +1 -0
  14. package/components/dropdown/dropdown.store.js.map +1 -0
  15. package/components/float-button/float-button.js.map +1 -0
  16. package/components/hover-3d-image/hover-3d-image.js.map +1 -0
  17. package/components/image-preview/image-preview.js.map +1 -0
  18. package/components/input/input.js.map +1 -0
  19. package/components/input/input.utils.js.map +1 -0
  20. package/components/input/variants/input-color.js.map +1 -0
  21. package/components/input/variants/input-date.js.map +1 -0
  22. package/components/input/variants/input-number.js.map +1 -0
  23. package/components/input/variants/input-otp.js.map +1 -0
  24. package/components/input/variants/input-password.js.map +1 -0
  25. package/components/input/variants/input-radio.js.map +1 -0
  26. package/components/input/variants/input-range.js.map +1 -0
  27. package/components/input/variants/input-text.js.map +1 -0
  28. package/components/input/variants/input-textarea.js.map +1 -0
  29. package/components/loading/loading.js.map +1 -0
  30. package/components/mansory/mansory.js.map +1 -0
  31. package/components/menu/menu.js.map +1 -0
  32. package/components/modal/modal.js.map +1 -0
  33. package/components/modal/modalContext.js.map +1 -0
  34. package/components/pagination/pagination.js.map +1 -0
  35. package/components/progress-bar/progress-bar.js.map +1 -0
  36. package/components/qr-code/qr-code.js.map +1 -0
  37. package/components/select/select.js.map +1 -0
  38. package/components/select-zone/select-zone.js.map +1 -0
  39. package/components/skeleton/skeleton.js.map +1 -0
  40. package/components/slider/slider.js.map +1 -0
  41. package/components/splitter/splitter.js.map +1 -0
  42. package/components/steps/steps.js.map +1 -0
  43. package/components/swap/swap.js.map +1 -0
  44. package/components/switch/switch.js.map +1 -0
  45. package/components/tab/tab.js.map +1 -0
  46. package/components/table/table.js.map +1 -0
  47. package/components/timeline/timeline.js.map +1 -0
  48. package/components/toast/icons/ErrorIcon.js.map +1 -0
  49. package/components/toast/icons/IconCircle.js.map +1 -0
  50. package/components/toast/icons/InfoIcon.js.map +1 -0
  51. package/components/toast/icons/LoaderIcon.js.map +1 -0
  52. package/components/toast/icons/SuccessIcon.js.map +1 -0
  53. package/components/toast/icons/WarningIcon.js.map +1 -0
  54. package/components/toast/toast.js.map +1 -0
  55. package/components/toast/toast.store.js.map +1 -0
  56. package/components/tooltip/tooltip.js.map +1 -0
  57. package/components/tour/tour.js.map +1 -0
  58. package/components/upload/upload.js.map +1 -0
  59. package/components/z-index/z-index.context.js.map +1 -0
  60. package/components/z-index/z-index.js.map +1 -0
  61. package/components/z-index/z-index.store.js.map +1 -0
  62. package/components/z-index/z-index.types.js.map +1 -0
  63. package/package.json +14 -96
  64. package/utils/cn.js.map +1 -0
  65. package/utils/element-tracker.js.map +1 -0
  66. package/utils/helper.js.map +1 -0
  67. package/utils/hoc.js.map +1 -0
  68. package/workspace.code-workspace +8 -0
  69. package/dist/components/avatar/avatar.js.map +0 -1
  70. package/dist/components/badge/badge.js.map +0 -1
  71. package/dist/components/breadcrumb/breadcrumb.js.map +0 -1
  72. package/dist/components/button/button.js.map +0 -1
  73. package/dist/components/carousel/carousel.js.map +0 -1
  74. package/dist/components/chat-bubble/chatBubble.js.map +0 -1
  75. package/dist/components/checkbox/checkbox.js.map +0 -1
  76. package/dist/components/collapse/collapse.js.map +0 -1
  77. package/dist/components/context-menu/context-menu.js.map +0 -1
  78. package/dist/components/context-menu/context-menu.store.js.map +0 -1
  79. package/dist/components/divider/divider.js.map +0 -1
  80. package/dist/components/dropdown/dropdown.js.map +0 -1
  81. package/dist/components/dropdown/dropdown.store.js.map +0 -1
  82. package/dist/components/float-button/float-button.js.map +0 -1
  83. package/dist/components/hover-3d-image/hover-3d-image.js.map +0 -1
  84. package/dist/components/image-preview/image-preview.js.map +0 -1
  85. package/dist/components/input/input.js.map +0 -1
  86. package/dist/components/input/input.utils.js.map +0 -1
  87. package/dist/components/input/variants/input-color.js.map +0 -1
  88. package/dist/components/input/variants/input-date.js.map +0 -1
  89. package/dist/components/input/variants/input-number.js.map +0 -1
  90. package/dist/components/input/variants/input-otp.js.map +0 -1
  91. package/dist/components/input/variants/input-password.js.map +0 -1
  92. package/dist/components/input/variants/input-radio.js.map +0 -1
  93. package/dist/components/input/variants/input-range.js.map +0 -1
  94. package/dist/components/input/variants/input-text.js.map +0 -1
  95. package/dist/components/input/variants/input-textarea.js.map +0 -1
  96. package/dist/components/loading/loading.js.map +0 -1
  97. package/dist/components/mansory/mansory.js.map +0 -1
  98. package/dist/components/menu/menu.js.map +0 -1
  99. package/dist/components/modal/modal.js.map +0 -1
  100. package/dist/components/modal/modalContext.js.map +0 -1
  101. package/dist/components/pagination/pagination.js.map +0 -1
  102. package/dist/components/progress-bar/progress-bar.js.map +0 -1
  103. package/dist/components/qr-code/qr-code.js.map +0 -1
  104. package/dist/components/select/select.js.map +0 -1
  105. package/dist/components/select-zone/select-zone.js.map +0 -1
  106. package/dist/components/skeleton/skeleton.js.map +0 -1
  107. package/dist/components/slider/slider.js.map +0 -1
  108. package/dist/components/splitter/splitter.js.map +0 -1
  109. package/dist/components/steps/steps.js.map +0 -1
  110. package/dist/components/swap/swap.js.map +0 -1
  111. package/dist/components/switch/switch.js.map +0 -1
  112. package/dist/components/tab/tab.js.map +0 -1
  113. package/dist/components/table/table.js.map +0 -1
  114. package/dist/components/timeline/timeline.js.map +0 -1
  115. package/dist/components/toast/icons/ErrorIcon.js.map +0 -1
  116. package/dist/components/toast/icons/IconCircle.js.map +0 -1
  117. package/dist/components/toast/icons/InfoIcon.js.map +0 -1
  118. package/dist/components/toast/icons/LoaderIcon.js.map +0 -1
  119. package/dist/components/toast/icons/SuccessIcon.js.map +0 -1
  120. package/dist/components/toast/icons/WarningIcon.js.map +0 -1
  121. package/dist/components/toast/toast.js.map +0 -1
  122. package/dist/components/toast/toast.store.js.map +0 -1
  123. package/dist/components/tooltip/tooltip.js.map +0 -1
  124. package/dist/components/tour/tour.js.map +0 -1
  125. package/dist/components/upload/upload.js.map +0 -1
  126. package/dist/components/z-index/z-index.context.js.map +0 -1
  127. package/dist/components/z-index/z-index.js.map +0 -1
  128. package/dist/components/z-index/z-index.store.js.map +0 -1
  129. package/dist/components/z-index/z-index.types.js.map +0 -1
  130. package/dist/utils/cn.js.map +0 -1
  131. package/dist/utils/element-tracker.js.map +0 -1
  132. package/dist/utils/helper.js.map +0 -1
  133. package/dist/utils/hoc.js.map +0 -1
  134. /package/{dist/components → components}/avatar/avatar.d.ts +0 -0
  135. /package/{dist/components → components}/avatar/avatar.d.ts.map +0 -0
  136. /package/{dist/components → components}/avatar/avatar.js +0 -0
  137. /package/{dist/components → components}/avatar/avatar.types.d.ts +0 -0
  138. /package/{dist/components → components}/avatar/avatar.types.d.ts.map +0 -0
  139. /package/{dist/components → components}/avatar/index.d.ts +0 -0
  140. /package/{dist/components → components}/avatar/index.d.ts.map +0 -0
  141. /package/{dist/components → components}/badge/badge.d.ts +0 -0
  142. /package/{dist/components → components}/badge/badge.d.ts.map +0 -0
  143. /package/{dist/components → components}/badge/badge.js +0 -0
  144. /package/{dist/components → components}/badge/badge.types.d.ts +0 -0
  145. /package/{dist/components → components}/badge/badge.types.d.ts.map +0 -0
  146. /package/{dist/components → components}/badge/index.d.ts +0 -0
  147. /package/{dist/components → components}/badge/index.d.ts.map +0 -0
  148. /package/{dist/components → components}/blank/blank.d.ts +0 -0
  149. /package/{dist/components → components}/blank/blank.d.ts.map +0 -0
  150. /package/{dist/components → components}/blank/index.d.ts +0 -0
  151. /package/{dist/components → components}/blank/index.d.ts.map +0 -0
  152. /package/{dist/components → components}/breadcrumb/breadcrumb.d.ts +0 -0
  153. /package/{dist/components → components}/breadcrumb/breadcrumb.d.ts.map +0 -0
  154. /package/{dist/components → components}/breadcrumb/breadcrumb.js +0 -0
  155. /package/{dist/components → components}/breadcrumb/index.d.ts +0 -0
  156. /package/{dist/components → components}/breadcrumb/index.d.ts.map +0 -0
  157. /package/{dist/components → components}/button/button.d.ts +0 -0
  158. /package/{dist/components → components}/button/button.d.ts.map +0 -0
  159. /package/{dist/components → components}/button/button.js +0 -0
  160. /package/{dist/components → components}/button/button.types.d.ts +0 -0
  161. /package/{dist/components → components}/button/button.types.d.ts.map +0 -0
  162. /package/{dist/components → components}/button/index.d.ts +0 -0
  163. /package/{dist/components → components}/button/index.d.ts.map +0 -0
  164. /package/{dist/components → components}/carousel/carousel.d.ts +0 -0
  165. /package/{dist/components → components}/carousel/carousel.d.ts.map +0 -0
  166. /package/{dist/components → components}/carousel/carousel.js +0 -0
  167. /package/{dist/components → components}/carousel/carousel.types.d.ts +0 -0
  168. /package/{dist/components → components}/carousel/carousel.types.d.ts.map +0 -0
  169. /package/{dist/components → components}/carousel/index.d.ts +0 -0
  170. /package/{dist/components → components}/carousel/index.d.ts.map +0 -0
  171. /package/{dist/components → components}/chat-bubble/chatBubble.d.ts +0 -0
  172. /package/{dist/components → components}/chat-bubble/chatBubble.d.ts.map +0 -0
  173. /package/{dist/components → components}/chat-bubble/chatBubble.js +0 -0
  174. /package/{dist/components → components}/chat-bubble/chatBubble.type.d.ts +0 -0
  175. /package/{dist/components → components}/chat-bubble/chatBubble.type.d.ts.map +0 -0
  176. /package/{dist/components → components}/chat-bubble/index.d.ts +0 -0
  177. /package/{dist/components → components}/chat-bubble/index.d.ts.map +0 -0
  178. /package/{dist/components → components}/checkbox/checkbox.d.ts +0 -0
  179. /package/{dist/components → components}/checkbox/checkbox.d.ts.map +0 -0
  180. /package/{dist/components → components}/checkbox/checkbox.js +0 -0
  181. /package/{dist/components → components}/checkbox/index.d.ts +0 -0
  182. /package/{dist/components → components}/checkbox/index.d.ts.map +0 -0
  183. /package/{dist/components → components}/collapse/collapse.d.ts +0 -0
  184. /package/{dist/components → components}/collapse/collapse.d.ts.map +0 -0
  185. /package/{dist/components → components}/collapse/collapse.js +0 -0
  186. /package/{dist/components → components}/collapse/collapse.types.d.ts +0 -0
  187. /package/{dist/components → components}/collapse/collapse.types.d.ts.map +0 -0
  188. /package/{dist/components → components}/collapse/index.d.ts +0 -0
  189. /package/{dist/components → components}/collapse/index.d.ts.map +0 -0
  190. /package/{dist/components → components}/context-menu/context-menu.d.ts +0 -0
  191. /package/{dist/components → components}/context-menu/context-menu.d.ts.map +0 -0
  192. /package/{dist/components → components}/context-menu/context-menu.js +0 -0
  193. /package/{dist/components → components}/context-menu/context-menu.store.d.ts +0 -0
  194. /package/{dist/components → components}/context-menu/context-menu.store.d.ts.map +0 -0
  195. /package/{dist/components → components}/context-menu/context-menu.store.js +0 -0
  196. /package/{dist/components → components}/context-menu/context-menu.types.d.ts +0 -0
  197. /package/{dist/components → components}/context-menu/context-menu.types.d.ts.map +0 -0
  198. /package/{dist/components → components}/context-menu/index.d.ts +0 -0
  199. /package/{dist/components → components}/context-menu/index.d.ts.map +0 -0
  200. /package/{dist/components → components}/diff/diff.d.ts +0 -0
  201. /package/{dist/components → components}/diff/diff.d.ts.map +0 -0
  202. /package/{dist/components → components}/diff/diff.js +0 -0
  203. /package/{dist/components → components}/diff/diff.js.map +0 -0
  204. /package/{dist/components → components}/diff/index.d.ts +0 -0
  205. /package/{dist/components → components}/diff/index.d.ts.map +0 -0
  206. /package/{dist/components → components}/divider/divider.d.ts +0 -0
  207. /package/{dist/components → components}/divider/divider.d.ts.map +0 -0
  208. /package/{dist/components → components}/divider/divider.js +0 -0
  209. /package/{dist/components → components}/divider/divider.types.d.ts +0 -0
  210. /package/{dist/components → components}/divider/divider.types.d.ts.map +0 -0
  211. /package/{dist/components → components}/divider/index.d.ts +0 -0
  212. /package/{dist/components → components}/divider/index.d.ts.map +0 -0
  213. /package/{dist/components → components}/drawer/drawer.d.ts +0 -0
  214. /package/{dist/components → components}/drawer/drawer.d.ts.map +0 -0
  215. /package/{dist/components → components}/drawer/drawer.js +0 -0
  216. /package/{dist/components → components}/drawer/drawer.js.map +0 -0
  217. /package/{dist/components → components}/drawer/drawer.types.d.ts +0 -0
  218. /package/{dist/components → components}/drawer/drawer.types.d.ts.map +0 -0
  219. /package/{dist/components → components}/drawer/index.d.ts +0 -0
  220. /package/{dist/components → components}/drawer/index.d.ts.map +0 -0
  221. /package/{dist/components → components}/dropdown/dropdown.d.ts +0 -0
  222. /package/{dist/components → components}/dropdown/dropdown.d.ts.map +0 -0
  223. /package/{dist/components → components}/dropdown/dropdown.js +0 -0
  224. /package/{dist/components → components}/dropdown/dropdown.store.d.ts +0 -0
  225. /package/{dist/components → components}/dropdown/dropdown.store.d.ts.map +0 -0
  226. /package/{dist/components → components}/dropdown/dropdown.store.js +0 -0
  227. /package/{dist/components → components}/dropdown/dropdown.types.d.ts +0 -0
  228. /package/{dist/components → components}/dropdown/dropdown.types.d.ts.map +0 -0
  229. /package/{dist/components → components}/dropdown/index.d.ts +0 -0
  230. /package/{dist/components → components}/dropdown/index.d.ts.map +0 -0
  231. /package/{dist/components → components}/float-button/float-button.d.ts +0 -0
  232. /package/{dist/components → components}/float-button/float-button.d.ts.map +0 -0
  233. /package/{dist/components → components}/float-button/float-button.js +0 -0
  234. /package/{dist/components → components}/float-button/float-button.types.d.ts +0 -0
  235. /package/{dist/components → components}/float-button/float-button.types.d.ts.map +0 -0
  236. /package/{dist/components → components}/float-button/index.d.ts +0 -0
  237. /package/{dist/components → components}/float-button/index.d.ts.map +0 -0
  238. /package/{dist/components → components}/hover-3d-image/hover-3d-example.d.ts +0 -0
  239. /package/{dist/components → components}/hover-3d-image/hover-3d-example.d.ts.map +0 -0
  240. /package/{dist/components → components}/hover-3d-image/hover-3d-image.d.ts +0 -0
  241. /package/{dist/components → components}/hover-3d-image/hover-3d-image.d.ts.map +0 -0
  242. /package/{dist/components → components}/hover-3d-image/hover-3d-image.js +0 -0
  243. /package/{dist/components → components}/hover-3d-image/index.d.ts +0 -0
  244. /package/{dist/components → components}/hover-3d-image/index.d.ts.map +0 -0
  245. /package/{dist/components → components}/image-preview/image-preview.d.ts +0 -0
  246. /package/{dist/components → components}/image-preview/image-preview.d.ts.map +0 -0
  247. /package/{dist/components → components}/image-preview/image-preview.js +0 -0
  248. /package/{dist/components → components}/image-preview/index.d.ts +0 -0
  249. /package/{dist/components → components}/image-preview/index.d.ts.map +0 -0
  250. /package/{dist/components → components}/indicator/index.d.ts +0 -0
  251. /package/{dist/components → components}/indicator/index.d.ts.map +0 -0
  252. /package/{dist/components → components}/indicator/indicator.d.ts +0 -0
  253. /package/{dist/components → components}/indicator/indicator.d.ts.map +0 -0
  254. /package/{dist/components → components}/indicator/indicator.js +0 -0
  255. /package/{dist/components → components}/indicator/indicator.js.map +0 -0
  256. /package/{dist/components → components}/indicator/indicator.types.d.ts +0 -0
  257. /package/{dist/components → components}/indicator/indicator.types.d.ts.map +0 -0
  258. /package/{dist/components → components}/input/index.d.ts +0 -0
  259. /package/{dist/components → components}/input/index.d.ts.map +0 -0
  260. /package/{dist/components → components}/input/input.d.ts +0 -0
  261. /package/{dist/components → components}/input/input.d.ts.map +0 -0
  262. /package/{dist/components → components}/input/input.js +0 -0
  263. /package/{dist/components → components}/input/input.types.d.ts +0 -0
  264. /package/{dist/components → components}/input/input.types.d.ts.map +0 -0
  265. /package/{dist/components → components}/input/input.utils.d.ts +0 -0
  266. /package/{dist/components → components}/input/input.utils.d.ts.map +0 -0
  267. /package/{dist/components → components}/input/input.utils.js +0 -0
  268. /package/{dist/components → components}/input/variants/input-color.d.ts +0 -0
  269. /package/{dist/components → components}/input/variants/input-color.d.ts.map +0 -0
  270. /package/{dist/components → components}/input/variants/input-color.js +0 -0
  271. /package/{dist/components → components}/input/variants/input-date.d.ts +0 -0
  272. /package/{dist/components → components}/input/variants/input-date.d.ts.map +0 -0
  273. /package/{dist/components → components}/input/variants/input-date.js +0 -0
  274. /package/{dist/components → components}/input/variants/input-number.d.ts +0 -0
  275. /package/{dist/components → components}/input/variants/input-number.d.ts.map +0 -0
  276. /package/{dist/components → components}/input/variants/input-number.js +0 -0
  277. /package/{dist/components → components}/input/variants/input-otp.d.ts +0 -0
  278. /package/{dist/components → components}/input/variants/input-otp.d.ts.map +0 -0
  279. /package/{dist/components → components}/input/variants/input-otp.js +0 -0
  280. /package/{dist/components → components}/input/variants/input-password.d.ts +0 -0
  281. /package/{dist/components → components}/input/variants/input-password.d.ts.map +0 -0
  282. /package/{dist/components → components}/input/variants/input-password.js +0 -0
  283. /package/{dist/components → components}/input/variants/input-radio.d.ts +0 -0
  284. /package/{dist/components → components}/input/variants/input-radio.d.ts.map +0 -0
  285. /package/{dist/components → components}/input/variants/input-radio.js +0 -0
  286. /package/{dist/components → components}/input/variants/input-range.d.ts +0 -0
  287. /package/{dist/components → components}/input/variants/input-range.d.ts.map +0 -0
  288. /package/{dist/components → components}/input/variants/input-range.js +0 -0
  289. /package/{dist/components → components}/input/variants/input-text.d.ts +0 -0
  290. /package/{dist/components → components}/input/variants/input-text.d.ts.map +0 -0
  291. /package/{dist/components → components}/input/variants/input-text.js +0 -0
  292. /package/{dist/components → components}/input/variants/input-textarea.d.ts +0 -0
  293. /package/{dist/components → components}/input/variants/input-textarea.d.ts.map +0 -0
  294. /package/{dist/components → components}/input/variants/input-textarea.js +0 -0
  295. /package/{dist/components → components}/loading/index.d.ts +0 -0
  296. /package/{dist/components → components}/loading/index.d.ts.map +0 -0
  297. /package/{dist/components → components}/loading/loading.d.ts +0 -0
  298. /package/{dist/components → components}/loading/loading.d.ts.map +0 -0
  299. /package/{dist/components → components}/loading/loading.js +0 -0
  300. /package/{dist/components → components}/mansory/index.d.ts +0 -0
  301. /package/{dist/components → components}/mansory/index.d.ts.map +0 -0
  302. /package/{dist/components → components}/mansory/mansory.d.ts +0 -0
  303. /package/{dist/components → components}/mansory/mansory.d.ts.map +0 -0
  304. /package/{dist/components → components}/mansory/mansory.js +0 -0
  305. /package/{dist/components → components}/mansory/mansory.types.d.ts +0 -0
  306. /package/{dist/components → components}/mansory/mansory.types.d.ts.map +0 -0
  307. /package/{dist/components → components}/menu/index.d.ts +0 -0
  308. /package/{dist/components → components}/menu/index.d.ts.map +0 -0
  309. /package/{dist/components → components}/menu/menu.d.ts +0 -0
  310. /package/{dist/components → components}/menu/menu.d.ts.map +0 -0
  311. /package/{dist/components → components}/menu/menu.data-example.d.ts +0 -0
  312. /package/{dist/components → components}/menu/menu.data-example.d.ts.map +0 -0
  313. /package/{dist/components → components}/menu/menu.js +0 -0
  314. /package/{dist/components → components}/menu/menu.types.d.ts +0 -0
  315. /package/{dist/components → components}/menu/menu.types.d.ts.map +0 -0
  316. /package/{dist/components → components}/modal/index.d.ts +0 -0
  317. /package/{dist/components → components}/modal/index.d.ts.map +0 -0
  318. /package/{dist/components → components}/modal/modal.d.ts +0 -0
  319. /package/{dist/components → components}/modal/modal.d.ts.map +0 -0
  320. /package/{dist/components → components}/modal/modal.js +0 -0
  321. /package/{dist/components → components}/modal/modalContext.d.ts +0 -0
  322. /package/{dist/components → components}/modal/modalContext.d.ts.map +0 -0
  323. /package/{dist/components → components}/modal/modalContext.js +0 -0
  324. /package/{dist/components → components}/pagination/index.d.ts +0 -0
  325. /package/{dist/components → components}/pagination/index.d.ts.map +0 -0
  326. /package/{dist/components → components}/pagination/pagination.d.ts +0 -0
  327. /package/{dist/components → components}/pagination/pagination.d.ts.map +0 -0
  328. /package/{dist/components → components}/pagination/pagination.js +0 -0
  329. /package/{dist/components → components}/pagination/pagination.types.d.ts +0 -0
  330. /package/{dist/components → components}/pagination/pagination.types.d.ts.map +0 -0
  331. /package/{dist/components → components}/progress-bar/index.d.ts +0 -0
  332. /package/{dist/components → components}/progress-bar/index.d.ts.map +0 -0
  333. /package/{dist/components → components}/progress-bar/progress-bar.d.ts +0 -0
  334. /package/{dist/components → components}/progress-bar/progress-bar.d.ts.map +0 -0
  335. /package/{dist/components → components}/progress-bar/progress-bar.js +0 -0
  336. /package/{dist/components → components}/progress-bar/progress-bar.types.d.ts +0 -0
  337. /package/{dist/components → components}/progress-bar/progress-bar.types.d.ts.map +0 -0
  338. /package/{dist/components → components}/qr-code/index.d.ts +0 -0
  339. /package/{dist/components → components}/qr-code/index.d.ts.map +0 -0
  340. /package/{dist/components → components}/qr-code/qr-code.d.ts +0 -0
  341. /package/{dist/components → components}/qr-code/qr-code.d.ts.map +0 -0
  342. /package/{dist/components → components}/qr-code/qr-code.js +0 -0
  343. /package/{dist/components → components}/qr-code/qr-code.types.d.ts +0 -0
  344. /package/{dist/components → components}/qr-code/qr-code.types.d.ts.map +0 -0
  345. /package/{dist/components → components}/rating/index.d.ts +0 -0
  346. /package/{dist/components → components}/rating/index.d.ts.map +0 -0
  347. /package/{dist/components → components}/rating/rating.d.ts +0 -0
  348. /package/{dist/components → components}/rating/rating.d.ts.map +0 -0
  349. /package/{dist/components → components}/rating/rating.js +0 -0
  350. /package/{dist/components → components}/rating/rating.js.map +0 -0
  351. /package/{dist/components → components}/rating/rating.types.d.ts +0 -0
  352. /package/{dist/components → components}/rating/rating.types.d.ts.map +0 -0
  353. /package/{dist/components → components}/select/index.d.ts +0 -0
  354. /package/{dist/components → components}/select/index.d.ts.map +0 -0
  355. /package/{dist/components → components}/select/select.d.ts +0 -0
  356. /package/{dist/components → components}/select/select.d.ts.map +0 -0
  357. /package/{dist/components → components}/select/select.js +0 -0
  358. /package/{dist/components → components}/select/select.types.d.ts +0 -0
  359. /package/{dist/components → components}/select/select.types.d.ts.map +0 -0
  360. /package/{dist/components → components}/select-zone/index.d.ts +0 -0
  361. /package/{dist/components → components}/select-zone/index.d.ts.map +0 -0
  362. /package/{dist/components → components}/select-zone/select-zone.d.ts +0 -0
  363. /package/{dist/components → components}/select-zone/select-zone.d.ts.map +0 -0
  364. /package/{dist/components → components}/select-zone/select-zone.js +0 -0
  365. /package/{dist/components → components}/select-zone/select-zone.types.d.ts +0 -0
  366. /package/{dist/components → components}/select-zone/select-zone.types.d.ts.map +0 -0
  367. /package/{dist/components → components}/skeleton/index.d.ts +0 -0
  368. /package/{dist/components → components}/skeleton/index.d.ts.map +0 -0
  369. /package/{dist/components → components}/skeleton/skeleton.d.ts +0 -0
  370. /package/{dist/components → components}/skeleton/skeleton.d.ts.map +0 -0
  371. /package/{dist/components → components}/skeleton/skeleton.js +0 -0
  372. /package/{dist/components → components}/slider/index.d.ts +0 -0
  373. /package/{dist/components → components}/slider/index.d.ts.map +0 -0
  374. /package/{dist/components → components}/slider/slider.d.ts +0 -0
  375. /package/{dist/components → components}/slider/slider.d.ts.map +0 -0
  376. /package/{dist/components → components}/slider/slider.js +0 -0
  377. /package/{dist/components → components}/slider/slider.types.d.ts +0 -0
  378. /package/{dist/components → components}/slider/slider.types.d.ts.map +0 -0
  379. /package/{dist/components → components}/splitter/index.d.ts +0 -0
  380. /package/{dist/components → components}/splitter/index.d.ts.map +0 -0
  381. /package/{dist/components → components}/splitter/splitter.d.ts +0 -0
  382. /package/{dist/components → components}/splitter/splitter.d.ts.map +0 -0
  383. /package/{dist/components → components}/splitter/splitter.js +0 -0
  384. /package/{dist/components → components}/splitter/splitter.types.d.ts +0 -0
  385. /package/{dist/components → components}/splitter/splitter.types.d.ts.map +0 -0
  386. /package/{dist/components → components}/steps/index.d.ts +0 -0
  387. /package/{dist/components → components}/steps/index.d.ts.map +0 -0
  388. /package/{dist/components → components}/steps/steps.d.ts +0 -0
  389. /package/{dist/components → components}/steps/steps.d.ts.map +0 -0
  390. /package/{dist/components → components}/steps/steps.js +0 -0
  391. /package/{dist/components → components}/swap/index.d.ts +0 -0
  392. /package/{dist/components → components}/swap/index.d.ts.map +0 -0
  393. /package/{dist/components → components}/swap/swap.d.ts +0 -0
  394. /package/{dist/components → components}/swap/swap.d.ts.map +0 -0
  395. /package/{dist/components → components}/swap/swap.js +0 -0
  396. /package/{dist/components → components}/switch/index.d.ts +0 -0
  397. /package/{dist/components → components}/switch/index.d.ts.map +0 -0
  398. /package/{dist/components → components}/switch/switch.d.ts +0 -0
  399. /package/{dist/components → components}/switch/switch.d.ts.map +0 -0
  400. /package/{dist/components → components}/switch/switch.js +0 -0
  401. /package/{dist/components → components}/switch/switch.types.d.ts +0 -0
  402. /package/{dist/components → components}/switch/switch.types.d.ts.map +0 -0
  403. /package/{dist/components → components}/tab/index.d.ts +0 -0
  404. /package/{dist/components → components}/tab/index.d.ts.map +0 -0
  405. /package/{dist/components → components}/tab/tab.d.ts +0 -0
  406. /package/{dist/components → components}/tab/tab.d.ts.map +0 -0
  407. /package/{dist/components → components}/tab/tab.js +0 -0
  408. /package/{dist/components → components}/tab/tab.types.d.ts +0 -0
  409. /package/{dist/components → components}/tab/tab.types.d.ts.map +0 -0
  410. /package/{dist/components → components}/table/index.d.ts +0 -0
  411. /package/{dist/components → components}/table/index.d.ts.map +0 -0
  412. /package/{dist/components → components}/table/index.js +0 -0
  413. /package/{dist/components → components}/table/table.d.ts +0 -0
  414. /package/{dist/components → components}/table/table.d.ts.map +0 -0
  415. /package/{dist/components → components}/table/table.js +0 -0
  416. /package/{dist/components → components}/table/table.types.d.ts +0 -0
  417. /package/{dist/components → components}/table/table.types.d.ts.map +0 -0
  418. /package/{dist/components → components}/text-rotate/index.d.ts +0 -0
  419. /package/{dist/components → components}/text-rotate/index.d.ts.map +0 -0
  420. /package/{dist/components → components}/text-rotate/text-rotate.d.ts +0 -0
  421. /package/{dist/components → components}/text-rotate/text-rotate.d.ts.map +0 -0
  422. /package/{dist/components → components}/text-rotate/text-rotate.js +0 -0
  423. /package/{dist/components → components}/text-rotate/text-rotate.js.map +0 -0
  424. /package/{dist/components → components}/timeline/index.d.ts +0 -0
  425. /package/{dist/components → components}/timeline/index.d.ts.map +0 -0
  426. /package/{dist/components → components}/timeline/timeline.d.ts +0 -0
  427. /package/{dist/components → components}/timeline/timeline.d.ts.map +0 -0
  428. /package/{dist/components → components}/timeline/timeline.js +0 -0
  429. /package/{dist/components → components}/timeline/timeline.types.d.ts +0 -0
  430. /package/{dist/components → components}/timeline/timeline.types.d.ts.map +0 -0
  431. /package/{dist/components → components}/toast/icons/ErrorIcon.d.ts +0 -0
  432. /package/{dist/components → components}/toast/icons/ErrorIcon.d.ts.map +0 -0
  433. /package/{dist/components → components}/toast/icons/ErrorIcon.js +0 -0
  434. /package/{dist/components → components}/toast/icons/IconCircle.d.ts +0 -0
  435. /package/{dist/components → components}/toast/icons/IconCircle.d.ts.map +0 -0
  436. /package/{dist/components → components}/toast/icons/IconCircle.js +0 -0
  437. /package/{dist/components → components}/toast/icons/InfoIcon.d.ts +0 -0
  438. /package/{dist/components → components}/toast/icons/InfoIcon.d.ts.map +0 -0
  439. /package/{dist/components → components}/toast/icons/InfoIcon.js +0 -0
  440. /package/{dist/components → components}/toast/icons/LoaderIcon.d.ts +0 -0
  441. /package/{dist/components → components}/toast/icons/LoaderIcon.d.ts.map +0 -0
  442. /package/{dist/components → components}/toast/icons/LoaderIcon.js +0 -0
  443. /package/{dist/components → components}/toast/icons/SuccessIcon.d.ts +0 -0
  444. /package/{dist/components → components}/toast/icons/SuccessIcon.d.ts.map +0 -0
  445. /package/{dist/components → components}/toast/icons/SuccessIcon.js +0 -0
  446. /package/{dist/components → components}/toast/icons/WarningIcon.d.ts +0 -0
  447. /package/{dist/components → components}/toast/icons/WarningIcon.d.ts.map +0 -0
  448. /package/{dist/components → components}/toast/icons/WarningIcon.js +0 -0
  449. /package/{dist/components → components}/toast/icons/index.d.ts +0 -0
  450. /package/{dist/components → components}/toast/icons/index.d.ts.map +0 -0
  451. /package/{dist/components → components}/toast/index.d.ts +0 -0
  452. /package/{dist/components → components}/toast/index.d.ts.map +0 -0
  453. /package/{dist/components → components}/toast/toast.d.ts +0 -0
  454. /package/{dist/components → components}/toast/toast.d.ts.map +0 -0
  455. /package/{dist/components → components}/toast/toast.js +0 -0
  456. /package/{dist/components → components}/toast/toast.store.d.ts +0 -0
  457. /package/{dist/components → components}/toast/toast.store.d.ts.map +0 -0
  458. /package/{dist/components → components}/toast/toast.store.js +0 -0
  459. /package/{dist/components → components}/toast/toast.type.d.ts +0 -0
  460. /package/{dist/components → components}/toast/toast.type.d.ts.map +0 -0
  461. /package/{dist/components → components}/tooltip/index.d.ts +0 -0
  462. /package/{dist/components → components}/tooltip/index.d.ts.map +0 -0
  463. /package/{dist/components → components}/tooltip/tooltip.d.ts +0 -0
  464. /package/{dist/components → components}/tooltip/tooltip.d.ts.map +0 -0
  465. /package/{dist/components → components}/tooltip/tooltip.js +0 -0
  466. /package/{dist/components → components}/tooltip/tooltip.types.d.ts +0 -0
  467. /package/{dist/components → components}/tooltip/tooltip.types.d.ts.map +0 -0
  468. /package/{dist/components → components}/tour/index.d.ts +0 -0
  469. /package/{dist/components → components}/tour/index.d.ts.map +0 -0
  470. /package/{dist/components → components}/tour/tour.d.ts +0 -0
  471. /package/{dist/components → components}/tour/tour.d.ts.map +0 -0
  472. /package/{dist/components → components}/tour/tour.js +0 -0
  473. /package/{dist/components → components}/tour/tour.types.d.ts +0 -0
  474. /package/{dist/components → components}/tour/tour.types.d.ts.map +0 -0
  475. /package/{dist/components → components}/upload/index.d.ts +0 -0
  476. /package/{dist/components → components}/upload/index.d.ts.map +0 -0
  477. /package/{dist/components → components}/upload/upload.d.ts +0 -0
  478. /package/{dist/components → components}/upload/upload.d.ts.map +0 -0
  479. /package/{dist/components → components}/upload/upload.js +0 -0
  480. /package/{dist/components → components}/upload/upload.types.d.ts +0 -0
  481. /package/{dist/components → components}/upload/upload.types.d.ts.map +0 -0
  482. /package/{dist/components → components}/z-index/index.d.ts +0 -0
  483. /package/{dist/components → components}/z-index/index.d.ts.map +0 -0
  484. /package/{dist/components → components}/z-index/z-index.context.d.ts +0 -0
  485. /package/{dist/components → components}/z-index/z-index.context.d.ts.map +0 -0
  486. /package/{dist/components → components}/z-index/z-index.context.js +0 -0
  487. /package/{dist/components → components}/z-index/z-index.d.ts +0 -0
  488. /package/{dist/components → components}/z-index/z-index.d.ts.map +0 -0
  489. /package/{dist/components → components}/z-index/z-index.js +0 -0
  490. /package/{dist/components → components}/z-index/z-index.store.d.ts +0 -0
  491. /package/{dist/components → components}/z-index/z-index.store.d.ts.map +0 -0
  492. /package/{dist/components → components}/z-index/z-index.store.js +0 -0
  493. /package/{dist/components → components}/z-index/z-index.types.d.ts +0 -0
  494. /package/{dist/components → components}/z-index/z-index.types.d.ts.map +0 -0
  495. /package/{dist/components → components}/z-index/z-index.types.js +0 -0
  496. /package/{dist/lib.d.ts → lib.d.ts} +0 -0
  497. /package/{dist/lib.d.ts.map → lib.d.ts.map} +0 -0
  498. /package/{dist/lib.js → lib.js} +0 -0
  499. /package/{dist/solid-ui.css → solid-ui.css} +0 -0
  500. /package/{dist/type.d.ts → type.d.ts} +0 -0
  501. /package/{dist/type.d.ts.map → type.d.ts.map} +0 -0
  502. /package/{dist/utils → utils}/cn.d.ts +0 -0
  503. /package/{dist/utils → utils}/cn.d.ts.map +0 -0
  504. /package/{dist/utils → utils}/cn.js +0 -0
  505. /package/{dist/utils → utils}/element-tracker.js +0 -0
  506. /package/{dist/utils → utils}/helper.d.ts +0 -0
  507. /package/{dist/utils → utils}/helper.d.ts.map +0 -0
  508. /package/{dist/utils → utils}/helper.js +0 -0
  509. /package/{dist/utils → utils}/hoc.js +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"tour.js","names":["ZIndex","ZIndexType","cn","createThrottle","X","createEffect","createSignal","For","mergeProps","onCleanup","onMount","Show","TourAPI","TourPlacement","TourProps","TourStep","SpotlightRect","top","left","width","height","getElementRect","targetId","padding","el","document","getElementById","rect","getBoundingClientRect","buildClipPath","right","bottom","PopupPosition","arrowOffset","POPUP_MARGIN","POPUP_WIDTH","computePopupPosition","spotRect","placement","popupHeight","vw","window","innerWidth","vh","innerHeight","pTop","pLeft","centerX","centerY","Math","max","min","InternalTourProps","activeStep","visible","onClose","onNext","onPrev","TourComponent","rawProps","props","showClose","showProgress","maskClosable","prevLabel","nextLabel","doneLabel","setSpotRect","popupPos","setPopupPos","setPopupHeight","popupRef","HTMLDivElement","currentStep","steps","isLastStep","length","recalculate","step","spotlightPadding","ph","offsetHeight","target","throttledRecalc","trackStepChange","_step","scrollIntoView","block","behavior","timer","ReturnType","setTimeout","undefined","cancelStepTimer","clearTimeout","registerResizeListener","addEventListener","removeResizeListener","removeEventListener","cancel","maskStyle","popupStyle","handleMaskClick","_$createComponent","type","OVERLAY","open","blockScroll","children","_el$","_tmpl$","$$click","_$effect","_$className","class","mask","_el$2","_p$","_v$","spotlight","_v$2","e","t","_$style","_el$3","_tmpl$5","_el$4","firstChild","_el$5","_ref$","_$use","_$insert","title","when","_el$6","_tmpl$2","_$addEventListener","size","content","_el$7","body","footer","fallback","_el$11","_el$8","_tmpl$4","_el$0","_el$10","_el$9","each","_","i","_el$12","_tmpl$6","progress","_el$1","_tmpl$3","_c$","_$memo","_v$3","popup","_v$4","_v$5","_v$6","header","a","_$setAttribute","o","createTour","tourProps","JSX","Element","setActiveStep","setVisible","start","stepIndex","onEnter","onStepChange","stop","onLeave","next","cur","nextStep","onFinish","prev","prevStep","goTo","api","isActive","TourRenderer","_$mergeProps","_$delegateEvents"],"sources":["../../../src/components/tour/tour.tsx"],"sourcesContent":["import { ZIndex, ZIndexType } from '@components/z-index';\nimport { cn } from '@utils/cn';\nimport { createThrottle } from '@utils/helper';\nimport X from 'lucide-solid/icons/x';\nimport { createEffect, createSignal, For, mergeProps, onCleanup, onMount, Show } from 'solid-js';\nimport { TourAPI, TourPlacement, TourProps, TourStep } from './tour.types';\n\ninterface SpotlightRect {\n top: number;\n left: number;\n width: number;\n height: number;\n}\n\nfunction getElementRect(targetId: string, padding: number): SpotlightRect | null {\n const el = document.getElementById(targetId);\n if (!el) return null;\n const rect = el.getBoundingClientRect();\n return {\n top: rect.top - padding,\n left: rect.left - padding,\n width: rect.width + padding * 2,\n height: rect.height + padding * 2,\n };\n}\n\nfunction buildClipPath(rect: SpotlightRect): string {\n const { top, left, width, height } = rect;\n const right = left + width;\n const bottom = top + height;\n\n return `polygon(\n 0% 0%, 100% 0%, 100% 100%, 0% 100%, 0% 0%,\n ${left}px ${top}px,\n ${left}px ${bottom}px,\n ${right}px ${bottom}px,\n ${right}px ${top}px,\n ${left}px ${top}px\n )`;\n}\n\ninterface PopupPosition {\n top: number;\n left: number;\n arrowOffset: string;\n}\n\nconst POPUP_MARGIN = 12;\nconst POPUP_WIDTH = 340;\n\nfunction computePopupPosition(\n spotRect: SpotlightRect,\n placement: TourPlacement,\n popupHeight: number,\n): PopupPosition {\n const vw = window.innerWidth;\n const vh = window.innerHeight;\n\n const { top, left, width, height } = spotRect;\n let pTop = 0;\n let pLeft = 0;\n let arrowOffset = '50%';\n\n const centerX = left + width / 2;\n const centerY = top + height / 2;\n\n switch (placement) {\n case 'bottom':\n case 'bottom-start':\n case 'bottom-end':\n pTop = top + height + POPUP_MARGIN;\n pLeft =\n placement === 'bottom-start'\n ? left\n : placement === 'bottom-end'\n ? left + width - POPUP_WIDTH\n : centerX - POPUP_WIDTH / 2;\n arrowOffset = `${centerX - Math.max(16, Math.min(pLeft, pLeft))}px`;\n break;\n\n case 'top':\n case 'top-start':\n case 'top-end':\n pTop = top - popupHeight - POPUP_MARGIN;\n pLeft =\n placement === 'top-start'\n ? left\n : placement === 'top-end'\n ? left + width - POPUP_WIDTH\n : centerX - POPUP_WIDTH / 2;\n arrowOffset = `${centerX - Math.max(16, Math.min(pLeft, pLeft))}px`;\n break;\n\n case 'left':\n case 'left-start':\n case 'left-end':\n pTop =\n placement === 'left-start'\n ? top\n : placement === 'left-end'\n ? top + height - popupHeight\n : centerY - popupHeight / 2;\n pLeft = left - POPUP_WIDTH - POPUP_MARGIN;\n arrowOffset = `${centerY - pTop}px`;\n break;\n\n case 'right':\n case 'right-start':\n case 'right-end':\n pTop =\n placement === 'right-start'\n ? top\n : placement === 'right-end'\n ? top + height - popupHeight\n : centerY - popupHeight / 2;\n pLeft = left + width + POPUP_MARGIN;\n arrowOffset = `${centerY - pTop}px`;\n break;\n }\n\n pLeft = Math.max(16, Math.min(pLeft, vw - POPUP_WIDTH - 16));\n pTop = Math.max(16, Math.min(pTop, vh - popupHeight - 16));\n\n return { top: pTop, left: pLeft, arrowOffset };\n}\n\ninterface InternalTourProps extends TourProps {\n activeStep: () => number;\n visible: () => boolean;\n onClose: () => void;\n onNext: () => void;\n onPrev: () => void;\n}\n\nconst TourComponent = (rawProps: InternalTourProps) => {\n const props = mergeProps(\n {\n showClose: true,\n showProgress: true,\n maskClosable: false,\n prevLabel: 'Prev',\n nextLabel: 'Next',\n doneLabel: 'Done',\n },\n rawProps,\n );\n\n const [spotRect, setSpotRect] = createSignal<SpotlightRect>({\n top: 0,\n left: 0,\n width: 0,\n height: 0,\n });\n const [popupPos, setPopupPos] = createSignal<PopupPosition>({\n top: 0,\n left: 0,\n arrowOffset: '50%',\n });\n const [popupHeight, setPopupHeight] = createSignal(200);\n\n let popupRef: HTMLDivElement | undefined;\n\n const currentStep = (): TourStep | undefined => props.steps[props.activeStep()];\n const isLastStep = () => props.activeStep() === props.steps.length - 1;\n\n function recalculate() {\n const step = currentStep();\n if (!step) return;\n\n const padding = step.spotlightPadding ?? 8;\n const placement = step.placement ?? 'bottom';\n const ph = popupRef?.offsetHeight ?? popupHeight();\n\n const rect = getElementRect(step.target, padding);\n if (!rect) return;\n setSpotRect(rect);\n setPopupPos(computePopupPosition(rect, placement, ph));\n }\n\n const throttledRecalc = createThrottle(recalculate, 60);\n\n createEffect(function trackStepChange() {\n if (!props.visible()) return;\n\n const _step = props.activeStep();\n void _step;\n\n const step = currentStep();\n if (step?.target) {\n const el = document.getElementById(step.target);\n el?.scrollIntoView({ block: 'nearest', behavior: 'smooth' });\n }\n\n let timer: ReturnType<typeof setTimeout> | undefined = setTimeout(() => {\n timer = undefined;\n if (popupRef) setPopupHeight(popupRef.offsetHeight);\n recalculate();\n }, 80);\n onCleanup(function cancelStepTimer() {\n if (timer !== undefined) {\n clearTimeout(timer);\n timer = undefined;\n }\n });\n });\n\n onMount(function registerResizeListener() {\n window.addEventListener('resize', throttledRecalc);\n window.addEventListener('scroll', throttledRecalc, true);\n onCleanup(function removeResizeListener() {\n window.removeEventListener('resize', throttledRecalc);\n window.removeEventListener('scroll', throttledRecalc, true);\n throttledRecalc.cancel();\n });\n });\n\n const maskStyle = () => ({ 'clip-path': buildClipPath(spotRect()) });\n\n const popupStyle = () => {\n const { top, left, arrowOffset } = popupPos();\n return {\n top: `${top}px`,\n left: `${left}px`,\n width: `${POPUP_WIDTH}px`,\n '--arrow-offset': arrowOffset,\n };\n };\n\n const handleMaskClick = () => {\n if (props.maskClosable) props.onClose();\n };\n\n return (\n <ZIndex type={ZIndexType.OVERLAY} open={props.visible()} blockScroll>\n <div class={cn('tr01', props.class?.mask)} onClick={handleMaskClick} />\n\n <div class={cn('tr02', props.class?.spotlight)} style={maskStyle()} />\n\n <div\n ref={popupRef}\n class={cn('tr03', props.class?.popup)}\n style={popupStyle()}\n data-placement={currentStep()?.placement ?? 'bottom'}\n >\n <div class={cn('tr04', props.class?.header)}>\n <span class=\"tr04-title\">{currentStep()?.title}</span>\n <Show when={props.showClose}>\n <button class=\"tr04-close\" onClick={props.onClose} aria-label=\"Close tour\">\n <X size={14} />\n </button>\n </Show>\n </div>\n\n <Show when={currentStep()?.content}>\n <div class={cn('tr05', props.class?.body)}>{currentStep()?.content}</div>\n </Show>\n\n <Show\n when={!currentStep()?.footer}\n fallback={<div class={cn('tr06', props.class?.footer)}>{currentStep()?.footer}</div>}\n >\n <div class={cn('tr06', props.class?.footer)}>\n <Show when={props.showProgress}>\n <div class={cn('tr07', props.class?.progress)}>\n <For each={props.steps}>\n {(_, i) => (\n <span class={cn('tr07-dot', i() === props.activeStep() && 'active')} />\n )}\n </For>\n </div>\n </Show>\n\n <div class=\"ml-auto flex gap-2\">\n <Show when={props.activeStep() > 0}>\n <button class=\"btn btn-sm btn-ghost\" onClick={props.onPrev}>\n {props.prevLabel}\n </button>\n </Show>\n <button\n class=\"btn btn-sm btn-primary\"\n onClick={isLastStep() ? props.onClose : props.onNext}\n >\n {isLastStep() ? props.doneLabel : props.nextLabel}\n </button>\n </div>\n </div>\n </Show>\n </div>\n </ZIndex>\n );\n};\n\nexport function createTour(tourProps: TourProps): [TourAPI, () => import('solid-js').JSX.Element] {\n const [activeStep, setActiveStep] = createSignal(0);\n const [visible, setVisible] = createSignal(false);\n\n function start(stepIndex = 0) {\n setActiveStep(stepIndex);\n setVisible(true);\n tourProps.steps[stepIndex]?.onEnter?.(stepIndex);\n tourProps.onStepChange?.(stepIndex);\n }\n\n function stop() {\n const step = activeStep();\n tourProps.steps[step]?.onLeave?.(step);\n setVisible(false);\n tourProps.onClose?.(step);\n }\n\n function next() {\n const cur = activeStep();\n tourProps.steps[cur]?.onLeave?.(cur);\n const nextStep = cur + 1;\n if (nextStep >= tourProps.steps.length) {\n setVisible(false);\n tourProps.onFinish?.();\n return;\n }\n setActiveStep(nextStep);\n tourProps.steps[nextStep]?.onEnter?.(nextStep);\n tourProps.onStepChange?.(nextStep);\n }\n\n function prev() {\n const cur = activeStep();\n if (cur <= 0) return;\n tourProps.steps[cur]?.onLeave?.(cur);\n const prevStep = cur - 1;\n setActiveStep(prevStep);\n tourProps.steps[prevStep]?.onEnter?.(prevStep);\n tourProps.onStepChange?.(prevStep);\n }\n\n function goTo(stepIndex: number) {\n if (stepIndex < 0 || stepIndex >= tourProps.steps.length) return;\n const cur = activeStep();\n tourProps.steps[cur]?.onLeave?.(cur);\n setActiveStep(stepIndex);\n tourProps.steps[stepIndex]?.onEnter?.(stepIndex);\n tourProps.onStepChange?.(stepIndex);\n }\n\n const api: TourAPI = {\n start,\n stop,\n next,\n prev,\n goTo,\n isActive: visible,\n currentStep: activeStep,\n };\n\n const TourRenderer = () => (\n <TourComponent\n {...tourProps}\n activeStep={activeStep}\n visible={visible}\n onClose={stop}\n onNext={next}\n onPrev={prev}\n />\n );\n\n return [api, TourRenderer];\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
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';\nimport { ImagePreview } from '@components/image-preview';\nimport { Spinner } from '@components/loading/loading';\nimport CircleCheck from 'lucide-solid/icons/circle-check';\nimport CircleX from 'lucide-solid/icons/circle-x';\nimport CloudUpload from 'lucide-solid/icons/cloud-upload';\nimport Eye from 'lucide-solid/icons/eye';\nimport File from 'lucide-solid/icons/file';\nimport FileImage from 'lucide-solid/icons/file-image';\nimport FileText from 'lucide-solid/icons/file-text';\nimport Film from 'lucide-solid/icons/film';\nimport Music from 'lucide-solid/icons/music';\nimport Trash2 from 'lucide-solid/icons/trash-2';\nimport X from 'lucide-solid/icons/x';\nimport ZoomIn from 'lucide-solid/icons/zoom-in';\nimport {\n Accessor,\n createSignal,\n createUniqueId,\n For,\n Match,\n mergeProps,\n Show,\n Switch,\n} from 'solid-js';\nimport { Tooltip } from '../tooltip';\nimport {\n UploadBaseProps,\n UploadClassConfig,\n UploadComponent,\n UploadDraggerProps,\n UploadFile,\n UploadProps,\n UploadRequestOption,\n} from './upload.types';\n\nfunction cls(\n config: string | UploadClassConfig | undefined,\n key: keyof UploadClassConfig,\n extra?: string,\n): string {\n if (!config) return extra ?? '';\n if (typeof config === 'string') return extra ?? '';\n return cn(config[key], extra);\n}\n\nfunction wrapperCls(config: string | UploadClassConfig | undefined, base: string): string {\n if (!config) return base;\n if (typeof config === 'string') return cn(base, config);\n return cn(base, config.wrapper);\n}\n\nfunction getFileIconColor(type: string): string {\n if (type.startsWith('image/')) return 'text-violet-500';\n if (type.startsWith('video/')) return 'text-rose-500';\n if (type.startsWith('audio/')) return 'text-amber-500';\n if (type === 'application/pdf') return 'text-red-500';\n if (type.includes('text') || type.includes('document')) return 'text-blue-500';\n if (type.includes('spreadsheet') || type.includes('excel')) return 'text-emerald-500';\n return 'text-base-content/40';\n}\n\nfunction getFileIconBg(type: string): string {\n if (type.startsWith('image/')) return 'bg-violet-500/10';\n if (type.startsWith('video/')) return 'bg-rose-500/10';\n if (type.startsWith('audio/')) return 'bg-amber-500/10';\n if (type === 'application/pdf') return 'bg-red-500/10';\n if (type.includes('text') || type.includes('document')) return 'bg-blue-500/10';\n if (type.includes('spreadsheet') || type.includes('excel')) return 'bg-emerald-500/10';\n return 'bg-base-content/5';\n}\n\nfunction getFileIconNode(type: string, size = 16) {\n if (type.startsWith('image/')) return <FileImage size={size} />;\n if (type.startsWith('video/')) return <Film size={size} />;\n if (type.startsWith('audio/')) return <Music size={size} />;\n if (type === 'application/pdf' || type.includes('text')) return <FileText size={size} />;\n return <File size={size} />;\n}\n\nfunction getFileBadge(type: string, name: string): { label: string; colorClass: string } {\n if (type === 'application/pdf') return { label: 'PDF', colorClass: 'bg-red-500' };\n if (type.startsWith('image/')) {\n const ext = name.split('.').pop()?.toUpperCase().slice(0, 3) ?? 'IMG';\n return { label: ext, colorClass: 'bg-violet-500' };\n }\n if (type.startsWith('video/')) return { label: 'VID', colorClass: 'bg-rose-500' };\n if (type.startsWith('audio/')) return { label: 'AUD', colorClass: 'bg-amber-500' };\n if (type.includes('spreadsheet') || type.includes('excel'))\n return { label: 'XLS', colorClass: 'bg-emerald-500' };\n if (type.includes('document') || type.includes('word'))\n return { label: 'DOC', colorClass: 'bg-blue-500' };\n if (type.includes('text')) return { label: 'TXT', colorClass: 'bg-blue-500' };\n\n const ext = name.split('.').pop()?.toUpperCase().slice(0, 4) ?? 'FILE';\n return { label: ext, colorClass: 'bg-slate-400' };\n}\n\nfunction formatFileSize(bytes: number): string {\n if (bytes === 0) return '0 B';\n if (bytes < 1024) return `${bytes} B`;\n if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`;\n return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;\n}\n\nfunction isImageFile(type: string): boolean {\n return type.startsWith('image/');\n}\n\nfunction defaultRequest(options: UploadRequestOption): () => void {\n let cancelled = false;\n let current = 0;\n\n const tick = () => {\n if (cancelled) return;\n\n const increment = Math.random() * 10 + 8;\n current = Math.min(current + increment, 95);\n options.onProgress(Math.round(current));\n\n if (current < 95) {\n setTimeout(tick, 100 + Math.random() * 80);\n } else {\n setTimeout(\n () => {\n if (cancelled) return;\n options.onProgress(100);\n options.onSuccess();\n },\n 400 + Math.random() * 300,\n );\n }\n };\n\n setTimeout(tick, 50);\n\n return () => {\n cancelled = true;\n };\n}\n\ntype ProgressEntry = [Accessor<number>, (v: number) => void];\n\nfunction useUpload(props: UploadBaseProps) {\n const [fileList, setFileList] = createSignal<UploadFile[]>([]);\n const progressMap = new Map<string, ProgressEntry>();\n\n const cancelMap = new Map<string, () => void>();\n\n const imgMap = new Map<string, HTMLImageElement>();\n\n const getProgress = (uid: string): Accessor<number> => {\n return progressMap.get(uid)?.[0] ?? (() => 0);\n };\n\n const cancelAndClean = (uid: string, thumbUrl?: string) => {\n cancelMap.get(uid)?.();\n cancelMap.delete(uid);\n progressMap.delete(uid);\n\n const img = imgMap.get(uid);\n if (img) {\n img.onload = null;\n img.src = '';\n imgMap.delete(uid);\n }\n if (thumbUrl) URL.revokeObjectURL(thumbUrl);\n };\n\n const processFiles = (rawFiles: FileList | File[]) => {\n const files = Array.from(rawFiles);\n const maxCount = props.maxCount;\n const maxFileSize = props.maxFileSize;\n const maxTotalSize = props.maxTotalSize;\n\n const currentList = fileList();\n\n for (const file of files) {\n if (maxFileSize && file.size > maxFileSize) {\n props.onError?.({\n type: 'maxFileSize',\n file,\n message: `\"${file.name}\" vượt quá dung lượng cho phép (${formatFileSize(maxFileSize)})`,\n });\n return;\n }\n }\n\n if (maxCount) {\n const newTotal = currentList.length + files.length;\n if (newTotal > maxCount) {\n props.onError?.({\n type: 'maxCount',\n file: files[0],\n message: `Đã đạt số lượng file tối đa (${maxCount})`,\n });\n return;\n }\n }\n\n if (maxTotalSize) {\n const currentTotal = currentList.reduce((sum, f) => sum + f.size, 0);\n const batchTotal = files.reduce((sum, f) => sum + f.size, 0);\n if (currentTotal + batchTotal > maxTotalSize) {\n props.onError?.({\n type: 'maxTotalSize',\n file: files[0],\n message: `Tổng dung lượng vượt quá giới hạn (${formatFileSize(maxTotalSize)})`,\n });\n return;\n }\n }\n\n files.forEach(file => {\n const uid = createUniqueId();\n const thumbUrl = isImageFile(file.type) ? URL.createObjectURL(file) : undefined;\n\n const [percent, setPercent] = createSignal(0);\n progressMap.set(uid, [percent, setPercent]);\n\n const newFile: UploadFile = {\n uid,\n name: file.name,\n size: file.size,\n type: file.type,\n status: 'uploading',\n originFile: file,\n thumbUrl,\n };\n\n if (thumbUrl) {\n const img = new Image();\n imgMap.set(uid, img);\n img.onload = () => {\n imgMap.delete(uid);\n setFileList(list =>\n list.map(f =>\n f.uid === uid\n ? { ...f, dimensions: { width: img.naturalWidth, height: img.naturalHeight } }\n : f,\n ),\n );\n };\n img.src = thumbUrl;\n }\n\n setFileList(prev => {\n const nextList = props.multiple === false ? [newFile] : [...prev, newFile];\n props.onChange?.({ file: newFile, fileList: nextList });\n return nextList;\n });\n\n const requestFn = props.customRequest ?? defaultRequest;\n const cancel = requestFn({\n file,\n onSuccess: () => {\n setPercent(100);\n setFileList(list => {\n const next = list.map(f => (f.uid === uid ? { ...f, status: 'done' as const } : f));\n const done = next.find(f => f.uid === uid);\n if (done) props.onChange?.({ file: done, fileList: next });\n return next;\n });\n cancelMap.delete(uid);\n progressMap.delete(uid);\n },\n onError: (error: Error) => {\n setFileList(list => {\n const next = list.map(f => (f.uid === uid ? { ...f, status: 'error' as const } : f));\n const failed = next.find(f => f.uid === uid);\n if (failed) props.onChange?.({ file: { ...failed, error }, fileList: next });\n return next;\n });\n cancelMap.delete(uid);\n progressMap.delete(uid);\n },\n onProgress: value => {\n setPercent(value);\n\n const snapshot = fileList();\n const idx = snapshot.findIndex(f => f.uid === uid);\n if (idx !== -1)\n props.onChange?.({\n file: { ...snapshot[idx], percent: value },\n fileList: snapshot,\n });\n },\n });\n\n if (typeof cancel === 'function') cancelMap.set(uid, cancel);\n });\n };\n\n const removeFile = (uid: string) => {\n setFileList(prev => {\n const removed = prev.find(f => f.uid === uid);\n\n cancelAndClean(uid, removed?.thumbUrl);\n const next = prev.filter(f => f.uid !== uid);\n if (removed) props.onChange?.({ file: { ...removed, status: 'removed' }, fileList: next });\n return next;\n });\n };\n\n const clearAll = () => {\n setFileList(prev => {\n prev.forEach(f => cancelAndClean(f.uid, f.thumbUrl));\n return [];\n });\n };\n\n return { fileList, processFiles, removeFile, clearAll, getProgress };\n}\n\nfunction ProgressBar(props: {\n percent: Accessor<number>;\n trackClass?: string;\n fillClass?: string;\n}) {\n return (\n <div class={cn('up26', props.trackClass)}>\n <div class={cn('up27', props.fillClass)} style={{ width: `${props.percent()}%` }} />\n </div>\n );\n}\n\nfunction CardProgressOverlay(props: { percent: Accessor<number> }) {\n return (\n <div class=\"up62\">\n <div class=\"up63\">\n <span class=\"loading loading-spinner loading-sm text-white\" />\n <span class=\"up64\">{props.percent()}%</span>\n </div>\n </div>\n );\n}\n\nfunction PictureThumbLoading() {\n return (\n <div class=\"up51\">\n <span class=\"loading loading-spinner loading-xs text-white\" />\n </div>\n );\n}\n\nfunction TextFileList(props: {\n files: UploadFile[];\n onRemove: (uid: string) => void;\n onClearAll: () => void;\n showClearAll: boolean;\n classConfig?: string | UploadClassConfig;\n showTooltip?: boolean;\n}) {\n const listId = createUniqueId();\n return (\n <div id={listId} class={cn('up06', cls(props.classConfig, 'textList'))}>\n <Show when={props.showClearAll && props.files.length > 1}>\n <div class={cn('up44', cls(props.classConfig, 'listHeader'))}>\n <span class={cn('up45', cls(props.classConfig, 'listCount'))}>\n {props.files.length} files\n </span>\n <button\n class={cn('up46', cls(props.classConfig, 'clearBtn'))}\n onClick={props.onClearAll}\n title=\"Remove all\"\n >\n <Trash2 size={12} />\n Clear all\n </button>\n </div>\n </Show>\n <ul class=\"flex flex-col gap-2\">\n <For each={props.files}>\n {file => {\n const badge = getFileBadge(file.type, file.name);\n return (\n <li>\n <FileUploadItem\n file={file}\n badge={badge}\n onRemove={props.onRemove}\n classConfig={props.classConfig}\n showTooltip={props.showTooltip}\n />\n </li>\n );\n }}\n </For>\n </ul>\n </div>\n );\n}\n\nfunction FileUploadItem(props: {\n file: UploadFile;\n badge: { label: string; colorClass: string };\n onRemove: (uid: string) => void;\n classConfig?: string | UploadClassConfig;\n showTooltip?: boolean;\n}) {\n const isUploading = () => props.file.status === 'uploading';\n\n return (\n <div class={cn('up07', cls(props.classConfig, 'textItem'))}>\n <div class=\"flex min-w-0 flex-1 items-center gap-2\">\n <div class={cn('up08', props.badge.colorClass, cls(props.classConfig, 'textBadge'))}>\n {props.badge.label}\n </div>\n <Tooltip\n content={props.file.name}\n hidden={!props.showTooltip}\n class={{ root: 'up09' }}\n type=\"default\"\n >\n <span class={cn('up09', cls(props.classConfig, 'textName'))}>{props.file.name}</span>\n </Tooltip>\n <div class={cn('up10', cls(props.classConfig, 'textSize'))}>\n {formatFileSize(props.file.size)}\n </div>\n\n <Switch>\n <Match when={isUploading()}>\n <Spinner class=\"size-5\" />\n </Match>\n <Match when={props.file.status === 'done'}>\n <CircleCheck size={16} class=\"text-success\" />\n </Match>\n <Match when={props.file.status === 'error'}>\n <CircleX size={16} class=\"text-error\" />\n </Match>\n </Switch>\n\n <button\n class={cn('up57', cls(props.classConfig, 'removeBtn'))}\n onClick={() => props.onRemove(props.file.uid)}\n title=\"Remove\"\n >\n <X size={16} />\n </button>\n </div>\n </div>\n );\n}\n\nfunction PictureFileList(props: {\n files: UploadFile[];\n onRemove: (uid: string) => void;\n onClearAll: () => void;\n showClearAll: boolean;\n getProgress: (uid: string) => Accessor<number>;\n classConfig?: string | UploadClassConfig;\n}) {\n const [preview, setPreview] = createSignal<UploadFile | null>(null);\n\n return (\n <>\n <div class={cn('up47', cls(props.classConfig, 'pictureList'))}>\n <Show when={props.showClearAll && props.files.length > 1}>\n <div class={cn('up44', cls(props.classConfig, 'listHeader'))}>\n <span class={cn('up45', cls(props.classConfig, 'listCount'))}>\n {props.files.length} files\n </span>\n <button\n class={cn('up46', cls(props.classConfig, 'clearBtn'))}\n onClick={props.onClearAll}\n title=\"Remove all\"\n >\n <Trash2 size={12} />\n Clear all\n </button>\n </div>\n </Show>\n <ul class=\"up48\">\n <For each={props.files}>\n {file => (\n <li\n class={cn(\n 'up49',\n file.status === 'uploading' && 'up49a',\n file.status === 'error' && 'up49b',\n cls(props.classConfig, 'pictureItem'),\n )}\n >\n <div class={cn('up50', cls(props.classConfig, 'pictureThumb'))}>\n <Show\n when={file.thumbUrl}\n fallback={\n <div\n class={cn(\n 'up53',\n getFileIconBg(file.type),\n cls(props.classConfig, 'pictureIcon'),\n )}\n >\n <span class={getFileIconColor(file.type)}>\n {getFileIconNode(file.type, 20)}\n </span>\n </div>\n }\n >\n <img src={file.thumbUrl} alt={file.name} />\n\n <Show when={file.status === 'uploading'}>\n <PictureThumbLoading />\n </Show>\n\n <Show when={file.status === 'done'}>\n <button class=\"up52\" onClick={() => setPreview(file)} title=\"Preview\">\n <ZoomIn size={14} />\n </button>\n </Show>\n </Show>\n </div>\n\n <div class={cn('up54', cls(props.classConfig, 'pictureInfo'))}>\n <div class=\"up36\">\n <span class=\"up21\" title={file.name}>\n {file.name}\n </span>\n <Show when={file.dimensions}>\n <span class=\"up37\">\n {file.dimensions!.width} × {file.dimensions!.height} px\n </span>\n </Show>\n <span class=\"up39\">{formatFileSize(file.size)}</span>\n </div>\n\n <Show when={file.status === 'uploading'}>\n <ProgressBar\n percent={props.getProgress(file.uid)}\n trackClass={cls(props.classConfig, 'progressTrack')}\n fillClass={cls(props.classConfig, 'progressFill')}\n />\n </Show>\n\n <Show when={file.status === 'done'}>\n <span class=\"up24\">\n <CircleCheck size={11} />\n Uploaded\n </span>\n </Show>\n\n <Show when={file.status === 'error'}>\n <span class=\"up23\">Upload failed</span>\n </Show>\n </div>\n\n <div class={cn('up55', cls(props.classConfig, 'pictureActions'))}>\n <Show when={file.status === 'done' && file.thumbUrl}>\n <button\n class={cn('up56', cls(props.classConfig, 'actionBtn'))}\n onClick={() => setPreview(file)}\n title=\"Preview\"\n >\n <Eye size={14} />\n </button>\n </Show>\n <button\n class={cn('up57', cls(props.classConfig, 'removeBtn'))}\n onClick={() => props.onRemove(file.uid)}\n title=\"Remove\"\n >\n <X size={14} class=\"shrink-0\" />\n </button>\n </div>\n </li>\n )}\n </For>\n </ul>\n </div>\n\n <Show when={preview()}>\n <ImagePreview\n src={preview()!.thumbUrl!}\n imageName={preview()!.name}\n size={formatFileSize(preview()!.size)}\n onClose={() => setPreview(null)}\n />\n </Show>\n </>\n );\n}\n\nfunction PictureCardFileList(props: {\n files: UploadFile[];\n onRemove: (uid: string) => void;\n onAdd: () => void;\n onClearAll: () => void;\n showAddButton: boolean;\n showClearAll: boolean;\n getProgress: (uid: string) => Accessor<number>;\n classConfig?: string | UploadClassConfig;\n}) {\n const [preview, setPreview] = createSignal<UploadFile | null>(null);\n\n return (\n <>\n <Show when={props.showClearAll && props.files.length > 1}>\n <div class={cn('up44', cls(props.classConfig, 'listHeader'))}>\n <span class={cn('up45', cls(props.classConfig, 'listCount'))}>\n {props.files.length} files\n </span>\n <button\n class={cn('up46', cls(props.classConfig, 'clearBtn'))}\n onClick={props.onClearAll}\n title=\"Remove all\"\n >\n <Trash2 size={12} />\n Clear all\n </button>\n </div>\n </Show>\n <div class={cn('up58', cls(props.classConfig, 'cardGrid'))}>\n <For each={props.files}>\n {file => (\n <div\n class={cn('up59', file.status === 'error' && 'up59a', cls(props.classConfig, 'card'))}\n >\n <Show\n when={file.thumbUrl}\n fallback={\n <div class={cn('up61', cls(props.classConfig, 'cardIcon'))}>\n {getFileIconNode(file.type, 24)}\n </div>\n }\n >\n <img\n src={file.thumbUrl}\n alt={file.name}\n class={cn('up60', cls(props.classConfig, 'cardImg'))}\n />\n </Show>\n\n <Show when={file.status === 'uploading'}>\n <CardProgressOverlay percent={props.getProgress(file.uid)} />\n </Show>\n\n <Show when={file.status !== 'uploading'}>\n <div class=\"up65\">\n <Show when={file.thumbUrl}>\n <button\n class={cn('up66', cls(props.classConfig, 'actionBtn'))}\n onClick={() => setPreview(file)}\n title=\"Preview\"\n >\n <Eye size={13} />\n </button>\n </Show>\n <button\n class={cn('up67', cls(props.classConfig, 'removeBtn'))}\n onClick={() => props.onRemove(file.uid)}\n title=\"Remove\"\n >\n <Trash2 size={13} />\n </button>\n </div>\n </Show>\n </div>\n )}\n </For>\n <Show when={props.showAddButton}>\n <button\n class={cn('up68', cls(props.classConfig, 'cardAdd'))}\n onClick={props.onAdd}\n title=\"Upload file\"\n >\n <CloudUpload size={20} class=\"opacity-40\" />\n <span class=\"up69\">Upload</span>\n </button>\n </Show>\n </div>\n\n <Show when={preview()}>\n <ImagePreview\n src={preview()!.thumbUrl!}\n imageName={preview()!.name}\n size={formatFileSize(preview()!.size)}\n onClose={() => setPreview(null)}\n />\n </Show>\n </>\n );\n}\n\nfunction UploadBase(p: UploadProps) {\n p = mergeProps(\n {\n multiple: true,\n listType: 'text' as const,\n showUploadList: true,\n showTooltip: false,\n },\n p,\n );\n\n let inputRef!: HTMLInputElement;\n const { fileList, processFiles, removeFile, clearAll, getProgress } = useUpload(p);\n\n const triggerInput = () => inputRef.click();\n\n const handleInputChange = (e: Event) => {\n const input = e.currentTarget as HTMLInputElement;\n if (input.files?.length) processFiles(input.files);\n input.value = '';\n };\n\n const showAddButton = () => {\n if (!p.multiple && fileList().length >= 1) return false;\n if (p.maxCount && fileList().length >= p.maxCount) return false;\n return true;\n };\n\n const effectiveShowClearAll = () => p.showClearAll ?? p.multiple !== false;\n\n return (\n <div class={wrapperCls(p.class, 'up01')}>\n <input\n ref={inputRef}\n type=\"file\"\n class=\"hidden\"\n multiple={p.multiple}\n accept={p.accept}\n {...(p.directory ? { webkitdirectory: '' } : {})}\n onChange={handleInputChange}\n />\n\n <Switch>\n <Match when={p.listType === 'picture-card'}>\n <Show when={p.showUploadList}>\n <PictureCardFileList\n files={fileList()}\n onRemove={removeFile}\n onAdd={triggerInput}\n onClearAll={clearAll}\n showAddButton={showAddButton()}\n showClearAll={effectiveShowClearAll()}\n getProgress={getProgress}\n classConfig={p.class}\n />\n </Show>\n <Show when={!p.showUploadList}>\n <div onClick={triggerInput} class=\"w-fit cursor-pointer\">\n {p.children}\n </div>\n </Show>\n </Match>\n <Match when={p.listType !== 'picture-card'}>\n <div\n onClick={showAddButton() ? triggerInput : undefined}\n class={showAddButton() ? 'w-fit cursor-pointer' : ''}\n >\n {p.children}\n </div>\n <Show when={p.showUploadList && fileList().length > 0}>\n <Switch>\n <Match when={p.listType === 'picture'}>\n <PictureFileList\n files={fileList()}\n onRemove={removeFile}\n onClearAll={clearAll}\n showClearAll={effectiveShowClearAll()}\n getProgress={getProgress}\n classConfig={p.class}\n />\n </Match>\n <Match when={p.listType === 'text'}>\n <TextFileList\n files={fileList()}\n onRemove={removeFile}\n onClearAll={clearAll}\n showClearAll={effectiveShowClearAll()}\n classConfig={p.class}\n showTooltip={p.showTooltip}\n />\n </Match>\n </Switch>\n </Show>\n </Match>\n </Switch>\n\n <Show when={p.errorMessage}>\n <div class={cn('up76', cls(p.class, 'errorMessage'))}>{p.errorMessage}</div>\n </Show>\n </div>\n );\n}\n\nfunction UploadDragger(p: UploadDraggerProps) {\n p = mergeProps(\n {\n multiple: true,\n listType: 'text' as const,\n showUploadList: true,\n hint: 'Support for a single or bulk upload',\n showTooltip: false,\n },\n p,\n );\n\n let inputRef!: HTMLInputElement;\n const [isDragging, setIsDragging] = createSignal(false);\n const { fileList, processFiles, removeFile, clearAll, getProgress } = useUpload(p);\n const effectiveShowClearAll = () => p.showClearAll ?? p.multiple !== false;\n\n const triggerInput = () => inputRef.click();\n\n const handleInputChange = (e: Event) => {\n const input = e.currentTarget as HTMLInputElement;\n if (input.files?.length) processFiles(input.files);\n input.value = '';\n };\n\n const handleDragOver = (e: DragEvent) => {\n e.preventDefault();\n setIsDragging(true);\n };\n\n const handleDragLeave = (e: DragEvent) => {\n e.preventDefault();\n setIsDragging(false);\n };\n\n const handleDrop = (e: DragEvent) => {\n e.preventDefault();\n setIsDragging(false);\n const files = e.dataTransfer?.files;\n if (files?.length) processFiles(files);\n };\n\n const showAddButton = () => {\n if (!p.multiple && fileList().length >= 1) return false;\n if (p.maxCount && fileList().length >= p.maxCount) return false;\n return true;\n };\n\n return (\n <div class={wrapperCls(p.class, 'up01')}>\n <input\n ref={inputRef}\n type=\"file\"\n class=\"hidden\"\n multiple={p.multiple}\n accept={p.accept}\n {...(p.directory ? { webkitdirectory: '' } : {})}\n onChange={handleInputChange}\n />\n\n <Show when={p.listType === 'picture-card'}>\n <Show when={p.showUploadList}>\n <PictureCardFileList\n files={fileList()}\n onRemove={removeFile}\n onAdd={triggerInput}\n onClearAll={clearAll}\n showAddButton={showAddButton()}\n showClearAll={effectiveShowClearAll()}\n getProgress={getProgress}\n classConfig={p.class}\n />\n </Show>\n </Show>\n\n <Show when={p.listType !== 'picture-card'}>\n <Show when={showAddButton()}>\n <div\n class={cn('up02', isDragging() && 'up02a', cls(p.class, 'dragger'))}\n onClick={triggerInput}\n onDragOver={handleDragOver}\n onDragLeave={handleDragLeave}\n onDrop={handleDrop}\n >\n <div class={cn('up03', cls(p.class, 'draggerIcon'))}>\n <Show when={p.icon} fallback={<CloudUpload size={48} strokeWidth={1.5} />}>\n {p.icon}\n </Show>\n </div>\n <Show\n when={p.children}\n fallback={\n <>\n <p class={cn('up04', cls(p.class, 'draggerTitle'))}>\n Click or drag file to this area to upload\n </p>\n <p class={cn('up05', cls(p.class, 'draggerHint'))}>{p.hint}</p>\n </>\n }\n >\n {p.children}\n </Show>\n </div>\n </Show>\n\n <Show when={p.showUploadList && fileList().length > 0}>\n <Switch>\n <Match when={p.listType === 'picture'}>\n <PictureFileList\n files={fileList()}\n onRemove={removeFile}\n onClearAll={clearAll}\n showClearAll={effectiveShowClearAll()}\n getProgress={getProgress}\n classConfig={p.class}\n />\n </Match>\n <Match when={p.listType === 'text'}>\n <TextFileList\n files={fileList()}\n onRemove={removeFile}\n onClearAll={clearAll}\n showClearAll={effectiveShowClearAll()}\n classConfig={p.class}\n showTooltip={p.showTooltip}\n />\n </Match>\n </Switch>\n </Show>\n </Show>\n\n <Show when={p.errorMessage}>\n <div class={cn('up76', cls(p.class, 'errorMessage'))}>{p.errorMessage}</div>\n </Show>\n </div>\n );\n}\n\nexport const Upload = UploadBase as UploadComponent;\nUpload.Dragger = UploadDragger;\n"],"mappings":"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"}
@@ -1 +0,0 @@
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';\n\n/**\n * Holds the z-index of the nearest ZIndex ancestor that is a container type\n * (MODAL, OVERLAY). Child ZIndex components use this to compute their own\n * z-index relative to the parent container, ensuring correct stacking in\n * nested scenarios (e.g., dropdown inside modal).\n *\n * undefined = no ZIndex container ancestor (top-level context).\n */\nexport const ZIndexContext = createContext<number | undefined>(undefined);\n\n/** Returns the z-index of the nearest ZIndex container ancestor, if any. */\nexport function useParentZIndex(): number | undefined {\n return useContext(ZIndexContext);\n}\n\n/**\n * Returns the z-index of the nearest ZIndex container ancestor.\n * Useful for reading the current overlay z-index level in child components.\n */\nexport function useZIndex(): number | undefined {\n return useContext(ZIndexContext);\n}\n"],"mappings":"yDAUA,IAAa,EAAgB,EAAkC,IAAA,GAAU,CAGzE,SAAgB,GAAsC,CACpD,OAAO,EAAW,EAAc"}
@@ -1 +0,0 @@
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';\nimport { Portal } from 'solid-js/web';\nimport { cn } from '@/utils/cn';\nimport { acquire, acquireScrollLock, release, releaseScrollLock } from './z-index.store';\nimport { useParentZIndex, ZIndexContext } from './z-index.context';\nimport { ZIndexType, type ZIndexProps } from './z-index.types';\n\nexport { ZIndexType } from './z-index.types';\nexport type { ZIndexProps } from './z-index.types';\nexport { acquire, release } from './z-index.store';\n\n/** Base z-index for each type group when no parent context exists. */\nexport const OFFSET: Record<ZIndexType, number> = {\n [ZIndexType.DROPDOWN]: 200,\n [ZIndexType.POPOVER]: 200,\n [ZIndexType.OVERLAY]: 500,\n [ZIndexType.MODAL]: 1000,\n [ZIndexType.TOOLTIP]: 1500,\n [ZIndexType.TOAST]: 3000,\n};\n\n/**\n * Relative offset added to the parent container's z-index when a child popup\n * renders inside a container (MODAL or OVERLAY). This ensures correct stacking:\n * e.g., a dropdown inside a modal gets parentZIndex + 50, always above the modal.\n */\nconst RELATIVE_OFFSET: Partial<Record<ZIndexType, number>> = {\n [ZIndexType.DROPDOWN]: 10,\n [ZIndexType.POPOVER]: 20,\n [ZIndexType.TOOLTIP]: 30,\n};\n\n/**\n * Container types that publish their z-index via ZIndexContext so that\n * child popup components can calculate their z-index relative to this parent.\n */\nconst CONTAINER_TYPES = new Set<ZIndexType>([ZIndexType.MODAL, ZIndexType.OVERLAY]);\n\n/**\n * Compute the effective base index for slot allocation.\n *\n * - If a parent container z-index exists AND this type has a relative offset:\n * use `parentZIndex + relativeOffset` (context-aware mode).\n * - Otherwise: use the global `baseIndex` from OFFSET (top-level mode).\n */\nfunction computeEffectiveBase(\n type: string,\n globalBase: number,\n parentZIndex: number | undefined,\n): number {\n if (parentZIndex === undefined) return globalBase;\n const relativeOffset = RELATIVE_OFFSET[type as ZIndexType];\n if (relativeOffset === undefined) return globalBase;\n return parentZIndex + relativeOffset;\n}\n\n/**\n * ZIndex — wrapper component that renders children via Portal with an\n * auto-managed z-index from a centralized global registry.\n *\n * When `open` becomes true, it acquires the next available z-index slot\n * for the given type group. When `open` becomes false (or the component\n * unmounts), the slot is released back to the pool.\n *\n * Container types (MODAL, OVERLAY) additionally publish their z-index via\n * ZIndexContext, allowing nested popup children to auto-offset correctly.\n */\nexport const ZIndex: ParentComponent<ZIndexProps> = props => {\n const p = mergeProps({ positioning: 'fixed' as const }, props);\n\n const baseIndex = (): number => {\n if (p.startIndex !== undefined) return p.startIndex;\n return OFFSET[p.type as ZIndexType] ?? 0;\n };\n\n /**\n * Inner component — only rendered when `open` is true (or always when preRender).\n * This ties acquire/release to the actual Portal mount/unmount lifecycle.\n */\n const Inner: ParentComponent = innerProps => {\n let zIndex: number;\n\n if (p.customValue !== undefined) {\n zIndex = p.customValue;\n p.onZIndex?.(zIndex);\n if (p.blockScroll) acquireScrollLock();\n onCleanup(function releaseScrollLockOnUnmount() {\n if (p.blockScroll) releaseScrollLock();\n });\n } else {\n const parentZIndex = useParentZIndex();\n const effectiveBase = computeEffectiveBase(p.type, baseIndex(), parentZIndex);\n const acquired = acquire(p.type, effectiveBase);\n zIndex = acquired.zIndex;\n p.onZIndex?.(zIndex);\n if (p.blockScroll) acquireScrollLock();\n onCleanup(function releaseZIndexAndScrollLock() {\n release(acquired.registryKey, acquired.offset);\n if (p.blockScroll) releaseScrollLock();\n });\n }\n\n const isContainer = CONTAINER_TYPES.has(p.type as ZIndexType);\n\n // Container types (MODAL, OVERLAY) publish their z-index via ZIndexContext\n // so that nested popups (Dropdown, Tooltip…) can auto-offset correctly.\n // The Provider MUST live INSIDE the Portal so SolidJS's reactive ownership\n // tree propagates the context into the Portal's scope. Wrapping the Portal\n // element from the outside does NOT work because Portal creates its own\n // reactive scope when mounting into document.body.\n return (\n <Portal>\n <div\n class={cn(p.positioning === 'fixed' ? 'fixed' : 'absolute', p.class)}\n style={{ 'z-index': zIndex, ...p.position }}\n >\n {isContainer ? (\n <ZIndexContext.Provider value={zIndex}>{innerProps.children}</ZIndexContext.Provider>\n ) : (\n innerProps.children\n )}\n </div>\n </Portal>\n );\n };\n\n /**\n * PreRenderInner — always mounted in the DOM, but manages z-index/scroll\n * reactively based on `open`. Portal is always rendered; visibility is\n * controlled via CSS display:none when closed.\n */\n const PreRenderInner: ParentComponent = innerProps => {\n let zIndex: number;\n const parentZIndex = useParentZIndex();\n\n if (p.customValue !== undefined) {\n zIndex = p.customValue;\n } else {\n const effectiveBase = computeEffectiveBase(p.type, baseIndex(), parentZIndex);\n const acquired = acquire(p.type, effectiveBase);\n zIndex = acquired.zIndex;\n onCleanup(function releaseZIndex() {\n release(acquired.registryKey, acquired.offset);\n });\n }\n\n // Reactively manage scroll lock based on open state.\n // Track whether we've acquired the lock to avoid double-release.\n let scrollLockHeld = false;\n createEffect(\n on(\n () => p.open,\n open => {\n if (open) {\n if (p.blockScroll && !scrollLockHeld) {\n acquireScrollLock();\n scrollLockHeld = true;\n }\n p.onZIndex?.(zIndex);\n } else {\n if (p.blockScroll && scrollLockHeld) {\n releaseScrollLock();\n scrollLockHeld = false;\n }\n }\n },\n { defer: false },\n ),\n );\n onCleanup(function releaseScrollLockIfHeld() {\n if (p.blockScroll && scrollLockHeld) {\n releaseScrollLock();\n scrollLockHeld = false;\n }\n });\n\n const isContainer = CONTAINER_TYPES.has(p.type as ZIndexType);\n\n return (\n <Portal>\n <div\n class={cn(p.positioning === 'fixed' ? 'fixed' : 'absolute', p.class)}\n style={{ 'z-index': zIndex, display: p.open ? undefined : 'none', ...p.position }}\n >\n {isContainer ? (\n <ZIndexContext.Provider value={zIndex}>{innerProps.children}</ZIndexContext.Provider>\n ) : (\n innerProps.children\n )}\n </div>\n </Portal>\n );\n };\n\n return p.preRender ? (\n <PreRenderInner>{p.children}</PreRenderInner>\n ) : (\n <Show when={p.open}>\n <Inner>{p.children}</Inner>\n </Show>\n );\n};\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"z-index.store.js","names":[],"sources":["../../../src/components/z-index/z-index.store.ts"],"sourcesContent":["/**\n * Global z-index registry.\n *\n * Tracks occupied z-index slots using a composite key `type@baseIndex`.\n * This allows the same ZIndexType to have multiple independent slot pools\n * when different base indexes are used (e.g., DROPDOWN inside modal A vs modal B).\n * When a slot is released (component unmounts), it becomes available for reuse,\n * keeping z-index values compact instead of endlessly incrementing.\n */\nconst registry = new Map<string, Set<number>>();\n\nexport type AcquireResult = { zIndex: number; registryKey: string; offset: number };\n\n/** Acquire the lowest available z-index slot for the given type + base combination. */\nexport function acquire(type: string, baseIndex: number): AcquireResult {\n const registryKey = `${type}@${baseIndex}`;\n let slots = registry.get(registryKey);\n if (!slots) {\n slots = new Set();\n registry.set(registryKey, slots);\n }\n let offset = 0;\n while (slots.has(offset)) offset++;\n slots.add(offset);\n return { zIndex: baseIndex + offset, registryKey, offset };\n}\n\n/** Release a previously acquired slot back to the pool. */\nexport function release(registryKey: string, offset: number): void {\n const slots = registry.get(registryKey);\n if (!slots) return;\n slots.delete(offset);\n if (slots.size === 0) registry.delete(registryKey);\n}\n\n// ---------------------------------------------------------------------------\n// Scroll lock\n// ---------------------------------------------------------------------------\n\nlet scrollLockCount = 0;\nlet savedOverflow = '';\n\n/** Increment scroll lock counter. Locks body scroll on first call. */\nexport function acquireScrollLock(): void {\n if (scrollLockCount === 0) {\n savedOverflow = document.body.style.overflow;\n document.body.style.overflow = 'hidden';\n }\n scrollLockCount++;\n}\n\n/** Decrement scroll lock counter. Restores body scroll when counter reaches 0. */\nexport function releaseScrollLock(): void {\n if (scrollLockCount <= 0) return;\n scrollLockCount--;\n if (scrollLockCount === 0) {\n document.body.style.overflow = savedOverflow;\n savedOverflow = '';\n }\n}\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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"z-index.types.js","names":[],"sources":["../../../src/components/z-index/z-index.types.ts"],"sourcesContent":["import { JSX } from 'solid-js';\n\nexport enum ZIndexType {\n DROPDOWN = 'dropdown',\n MODAL = 'modal',\n TOOLTIP = 'tooltip',\n TOAST = 'toast',\n POPOVER = 'popover',\n OVERLAY = 'overlay',\n}\n\ntype TypeDefault = {\n type: ZIndexType;\n startIndex?: never;\n};\n\ntype CustomType = {\n type: string;\n startIndex: number;\n};\n\nexport type ZIndexProps = {\n /** Controls Portal mounting. When false, no DOM is rendered and no z-index slot is occupied. */\n open: boolean;\n /** CSS position type for the wrapper div. Defaults to 'fixed'. */\n positioning?: 'fixed' | 'absolute';\n /** Inline position styles (top, left, right, bottom, width, height, etc.). */\n position?: JSX.CSSProperties;\n /** Additional class for the wrapper div. */\n class?: string;\n /** Callback that receives the computed z-index when the Portal mounts. */\n onZIndex?: (zIndex: number) => void;\n /**\n * When true, blocks scroll on document.body while this layer is open.\n * Scroll inside children remains functional.\n * Multiple concurrent layers with blockScroll share a reference counter,\n * so body scroll is only restored when all of them are closed.\n * Defaults to false.\n */\n blockScroll?: boolean;\n /**\n * When provided, this value is used directly as the z-index without going\n * through the auto-allocation registry. No slot is acquired or released.\n * Takes precedence over the type-based computation and startIndex.\n */\n customValue?: number;\n /**\n * When true, the Portal is always mounted in the DOM regardless of `open`.\n * Visibility is controlled via CSS (display:none when closed).\n * Z-index slot and scroll lock are still only active when `open` is true.\n */\n preRender?: boolean;\n} & (TypeDefault | CustomType);\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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"cn.js","names":[],"sources":["../../src/utils/cn.ts"],"sourcesContent":["import { ClassValue, clsx } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n"],"mappings":"qEAGA,SAAgB,EAAG,GAAG,EAAsB,CAC1C,OAAO,EAAQ,EAAK,EAAO,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"element-tracker.js","names":[],"sources":["../../src/utils/element-tracker.ts"],"sourcesContent":["/**\n * element-tracker.ts\n *\n * Singleton global tracker để theo dõi vị trí và kích thước của một element.\n * Dùng chung cho các component như NewDropdown (blockScroll=false), Tooltip, Popover...\n *\n * Cơ chế:\n * - ResizeObserver: phát hiện element thay đổi kích thước.\n * - scroll event (capture, passive): phát hiện scroll ở bất kỳ container nào.\n * Chỉ đăng ký 1 listener duy nhất trên window; tự tháo khi không còn element nào.\n * - IntersectionObserver: phát hiện trigger đi vào/ra viewport để cập nhật rect.\n *\n * Mỗi element chỉ được track bởi 1 callback tại một thời điểm.\n * Gọi `untrackElement(el)` để dừng theo dõi và giải phóng bộ nhớ.\n */\n\nexport type TrackedRect = {\n top: number;\n left: number;\n width: number;\n height: number;\n};\n\ntype TrackCallback = (rect: TrackedRect) => void;\n\n// ── Singleton state ──────────────────────────────────────────────────────────\n\nconst callbacks = new Map<Element, TrackCallback>();\n\n// ResizeObserver: fires khi target thay đổi kích thước\nconst resizeObserver = new ResizeObserver(entries => {\n for (const entry of entries) {\n const cb = callbacks.get(entry.target);\n if (cb) cb(getRect(entry.target));\n }\n});\n\n// IntersectionObserver: bắt khi trigger đi vào/ra viewport (bị scroll ra khỏi tầm nhìn)\nconst intersectionObserver = new IntersectionObserver(\n entries => {\n for (const entry of entries) {\n const cb = callbacks.get(entry.target);\n if (cb) cb(getRect(entry.target));\n }\n },\n { threshold: [0, 1] },\n);\n\n// scroll listener dùng chung — capture phase để bắt scroll ở mọi container\n// rAF dedup: gộp tất cả scroll events trong cùng 1 frame thành 1 lần getBoundingClientRect\nlet rafId = 0;\n\nconst onScroll = () => {\n if (rafId) return; // frame đã pending → bỏ qua, tránh gọi getBoundingClientRect nhiều lần/frame\n rafId = requestAnimationFrame(() => {\n rafId = 0;\n callbacks.forEach((cb, el) => cb(getRect(el)));\n });\n};\nlet scrollListenerAttached = false;\n\nfunction attachScrollListener() {\n if (!scrollListenerAttached) {\n window.addEventListener('scroll', onScroll, { passive: true, capture: true });\n scrollListenerAttached = true;\n }\n}\n\nfunction detachScrollListener() {\n if (scrollListenerAttached && callbacks.size === 0) {\n window.removeEventListener('scroll', onScroll, { capture: true });\n scrollListenerAttached = false;\n if (rafId) {\n cancelAnimationFrame(rafId);\n rafId = 0;\n }\n }\n}\n\nfunction getRect(el: Element): TrackedRect {\n const r = el.getBoundingClientRect();\n return { top: r.top, left: r.left, width: r.width, height: r.height };\n}\n\n// ── Public API ───────────────────────────────────────────────────────────────\n\n/**\n * Bắt đầu theo dõi vị trí của `el`.\n * `callback` sẽ được gọi ngay lập tức với rect hiện tại,\n * và mỗi khi el thay đổi kích thước hoặc scroll.\n */\nexport function trackElement(el: Element, callback: TrackCallback): void {\n callbacks.set(el, callback);\n resizeObserver.observe(el);\n intersectionObserver.observe(el);\n attachScrollListener();\n // Gọi ngay để caller có rect ban đầu\n callback(getRect(el));\n}\n\n/**\n * Dừng theo dõi `el` và giải phóng bộ nhớ.\n */\nexport function untrackElement(el: Element): void {\n callbacks.delete(el);\n resizeObserver.unobserve(el);\n intersectionObserver.unobserve(el);\n detachScrollListener();\n}\n"],"mappings":"AA2BA,IAAM,EAAY,IAAI,IAGhB,EAAiB,IAAI,eAAe,GAAW,CACnD,IAAK,IAAM,KAAS,EAAS,CAC3B,IAAM,EAAK,EAAU,IAAI,EAAM,OAAO,CAClC,GAAI,EAAG,EAAQ,EAAM,OAAO,CAAC,GAEnC,CAGI,EAAuB,IAAI,qBAC/B,GAAW,CACT,IAAK,IAAM,KAAS,EAAS,CAC3B,IAAM,EAAK,EAAU,IAAI,EAAM,OAAO,CAClC,GAAI,EAAG,EAAQ,EAAM,OAAO,CAAC,GAGrC,CAAE,UAAW,CAAC,EAAG,EAAE,CAAE,CACtB,CAIG,EAAQ,EAEN,MAAiB,CACjB,AACJ,IAAQ,0BAA4B,CAClC,EAAQ,EACR,EAAU,SAAS,EAAI,IAAO,EAAG,EAAQ,EAAG,CAAC,CAAC,EAC9C,EAEA,EAAyB,GAE7B,SAAS,GAAuB,CAC9B,AAEE,KADA,OAAO,iBAAiB,SAAU,EAAU,CAAE,QAAS,GAAM,QAAS,GAAM,CAAC,CACpD,IAI7B,SAAS,GAAuB,CAC1B,GAA0B,EAAU,OAAS,IAC/C,OAAO,oBAAoB,SAAU,EAAU,CAAE,QAAS,GAAM,CAAC,CACjE,EAAyB,GACzB,AAEE,KADA,qBAAqB,EAAM,CACnB,IAKd,SAAS,EAAQ,EAA0B,CACzC,IAAM,EAAI,EAAG,uBAAuB,CACpC,MAAO,CAAE,IAAK,EAAE,IAAK,KAAM,EAAE,KAAM,MAAO,EAAE,MAAO,OAAQ,EAAE,OAAQ,CAUvE,SAAgB,EAAa,EAAa,EAA+B,CACvE,EAAU,IAAI,EAAI,EAAS,CAC3B,EAAe,QAAQ,EAAG,CAC1B,EAAqB,QAAQ,EAAG,CAChC,GAAsB,CAEtB,EAAS,EAAQ,EAAG,CAAC,CAMvB,SAAgB,EAAe,EAAmB,CAChD,EAAU,OAAO,EAAG,CACpB,EAAe,UAAU,EAAG,CAC5B,EAAqB,UAAU,EAAG,CAClC,GAAsB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"helper.js","names":[],"sources":["../../src/utils/helper.ts"],"sourcesContent":["import { BaseColorProps } from '@/type';\nimport { JSX } from 'solid-js';\n\ntype TimingFunction =\n | 'ease'\n | 'ease-in'\n | 'ease-out'\n | 'ease-in-out'\n | 'linear'\n | 'step-start'\n | 'step-end'\n | `steps(${number}, ${'start' | 'end'})`\n | `cubic-bezier(${number}, ${number}, ${number}, ${number})`;\n\ntype AnimationDirection = 'normal' | 'reverse' | 'alternate' | 'alternate-reverse';\ntype FillMode = 'none' | 'forwards' | 'backwards' | 'both';\ntype PlayState = 'running' | 'paused';\ntype TimeUnit = `${number}s` | `${number}ms`;\ntype IterationCount = number | 'infinite';\n\nexport interface AnimationConfig {\n name: string;\n duration?: TimeUnit;\n timingFunction?: TimingFunction;\n delay?: TimeUnit;\n iterationCount?: IterationCount;\n direction?: AnimationDirection;\n fillMode?: FillMode;\n playState?: PlayState;\n}\nconst DEFAULT_VALUES = {\n duration: '1s',\n timingFunction: 'ease',\n delay: '0s',\n iterationCount: 1,\n direction: 'normal',\n fillMode: 'none',\n playState: 'running',\n} as const;\nexport function renderCSSAnimation(config: AnimationConfig): string {\n const {\n name,\n duration = DEFAULT_VALUES.duration,\n timingFunction = DEFAULT_VALUES.timingFunction,\n delay = DEFAULT_VALUES.delay,\n iterationCount = DEFAULT_VALUES.iterationCount,\n direction = DEFAULT_VALUES.direction,\n fillMode = DEFAULT_VALUES.fillMode,\n playState = DEFAULT_VALUES.playState,\n } = config;\n\n return `${name} ${duration} ${timingFunction} ${delay} ${iterationCount} ${direction} ${fillMode} ${playState}`;\n}\nexport function createThrottle<T extends (...args: any[]) => void>(\n fn: T,\n delay: number,\n): T & { cancel: () => void } {\n let lastCall = 0;\n let timer: ReturnType<typeof setTimeout> | null = null;\n const throttled = (...args: Parameters<T>) => {\n const now = Date.now();\n const remaining = delay - (now - lastCall);\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n if (remaining <= 0) {\n lastCall = now;\n fn(...args);\n } else {\n timer = setTimeout(() => {\n lastCall = Date.now();\n timer = null;\n fn(...args);\n }, remaining);\n }\n };\n throttled.cancel = () => {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n };\n return throttled as T & { cancel: () => void };\n}\nconst generateRandomHexColor = (): string => {\n const randomColor = Math.floor(Math.random() * 16777215).toString(16);\n return `#${randomColor.padStart(6, '0')}`;\n};\n\nexport function normalizeHexColor(value: string | undefined): string {\n if (!value) return generateRandomHexColor();\n let hex = value.trim().replace(/^#/, '');\n if (hex.length === 3) {\n hex = hex\n .split('')\n .map(char => char + char)\n .join('');\n }\n\n return `#${hex.toLowerCase()}`;\n}\nexport function getColor(color?: BaseColorProps | string, defaultColor?: string) {\n switch (color) {\n case 'primary':\n return 'color-primary';\n case 'neutral':\n return 'color-neutral';\n case 'secondary':\n return 'color-secondary';\n case 'accent':\n return 'color-accent';\n case 'info':\n return 'color-info';\n case 'success':\n return 'color-success';\n case 'warning':\n return 'color-warning';\n case 'error':\n return 'color-error';\n default:\n return defaultColor ?? '';\n }\n}\n\nconst lastValuesByKey = new Map<string, any>();\n\nexport function getRandomElement<T>(arr: T[], uniqueId: string): T {\n if (arr.length === 1) return arr[0];\n const lastValue = lastValuesByKey.get(uniqueId);\n let newValue: T;\n do {\n newValue = arr[Math.floor(Math.random() * arr.length)];\n } while (newValue === lastValue && arr.length > 1);\n\n lastValuesByKey.set(uniqueId, newValue);\n return newValue;\n}\nexport const genSVGCubicBezier: (\n keySplines: string,\n) => Pick<\n JSX.AnimateSVGAttributes<SVGAnimateElement>,\n 'calcMode' | 'keyTimes' | 'keySplines'\n> = keySplines => ({\n calcMode: 'spline',\n keyTimes: '0; 1',\n keySplines: keySplines,\n});\n\nexport type Image = Omit<JSX.ImgHTMLAttributes<HTMLImageElement>, 'src'> & { src: string };\n\nexport function toMarkdownCode(code: string, lang = 'tsx'): string {\n return `\\`\\`\\`${lang}\\n${code}\\n\\`\\`\\``;\n}\n"],"mappings":"AA8BA,IAAM,EAAiB,CACrB,SAAU,KACV,eAAgB,OAChB,MAAO,KACP,eAAgB,EAChB,UAAW,SACX,SAAU,OACV,UAAW,UACZ,CACD,SAAgB,EAAmB,EAAiC,CAClE,GAAM,CACJ,OACA,WAAW,EAAe,SAC1B,iBAAiB,EAAe,eAChC,QAAQ,EAAe,MACvB,iBAAiB,EAAe,eAChC,YAAY,EAAe,UAC3B,WAAW,EAAe,SAC1B,YAAY,EAAe,WACzB,EAEJ,MAAO,GAAG,EAAK,GAAG,EAAS,GAAG,EAAe,GAAG,EAAM,GAAG,EAAe,GAAG,EAAU,GAAG,EAAS,GAAG,IAEtG,SAAgB,EACd,EACA,EAC4B,CAC5B,IAAI,EAAW,EACX,EAA8C,KAC5C,GAAa,GAAG,IAAwB,CAC5C,IAAM,EAAM,KAAK,KAAK,CAChB,EAAY,GAAS,EAAM,GACjC,AAEE,KADA,aAAa,EAAM,CACX,MAEN,GAAa,GACf,EAAW,EACX,EAAG,GAAG,EAAK,EAEX,EAAQ,eAAiB,CACvB,EAAW,KAAK,KAAK,CACrB,EAAQ,KACR,EAAG,GAAG,EAAK,EACV,EAAU,EASjB,MANA,GAAU,WAAe,CACvB,AAEE,KADA,aAAa,EAAM,CACX,OAGL,EAET,IAAM,MAEG,IADa,KAAK,MAAM,KAAK,QAAQ,CAAG,SAAS,CAAC,SAAS,GAAG,CAC9C,SAAS,EAAG,IAAI,GAGzC,SAAgB,EAAkB,EAAmC,CACnE,GAAI,CAAC,EAAO,OAAO,GAAwB,CAC3C,IAAI,EAAM,EAAM,MAAM,CAAC,QAAQ,KAAM,GAAG,CAQxC,OAPI,EAAI,SAAW,IACjB,EAAM,EACH,MAAM,GAAG,CACT,IAAI,GAAQ,EAAO,EAAK,CACxB,KAAK,GAAG,EAGN,IAAI,EAAI,aAAa,GAE9B,SAAgB,EAAS,EAAiC,EAAuB,CAC/E,OAAQ,EAAR,CACE,IAAK,UACH,MAAO,gBACT,IAAK,UACH,MAAO,gBACT,IAAK,YACH,MAAO,kBACT,IAAK,SACH,MAAO,eACT,IAAK,OACH,MAAO,aACT,IAAK,UACH,MAAO,gBACT,IAAK,UACH,MAAO,gBACT,IAAK,QACH,MAAO,cACT,QACE,OAAO,GAAgB,IAiB7B,IAAa,EAKT,IAAe,CACjB,SAAU,SACV,SAAU,OACE,aACb"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"hoc.js","names":["Component","Show","ConditionalRenderConfig","preRender","P","when","conditionalRender","Record","Comp","configKey","p","whenValue","_$createComponent","keyed","children"],"sources":["../../src/utils/hoc.tsx"],"sourcesContent":["import { Component, Show } from 'solid-js';\n\ntype ConditionalRenderConfig<P> = {\n preRender: keyof P;\n when?: keyof P;\n};\n/*\npreRender sẽ tạo ra DOM ngay lập tức bất kể when có true hay false\n Mặc định false\n*/\nexport function conditionalRender<P extends Record<string, any>>(\n Comp: Component<P>,\n configKey: ConditionalRenderConfig<P>,\n) {\n return (p: P) => {\n const preRender = () => p[configKey.preRender] ?? false;\n const whenValue = () => (configKey?.when ? (p[configKey.when] ?? true) : true);\n\n return preRender() ? (\n <Comp {...p} />\n ) : (\n <Show when={whenValue()} keyed>\n <Comp {...p} />\n </Show>\n );\n };\n}\n"],"mappings":"+EAUA,SAAgBM,EACdE,EACAC,EACA,CACA,MAAQC,IAAS,CACf,IAAMP,MAAkBO,EAAED,EAAUN,YAAc,GAC5CQ,MAAmBF,GAAWJ,KAAQK,EAAED,EAAUJ,OAAS,GAAQ,GAEzE,OAAOF,GAAW,CAAAS,EACfJ,EAASE,EAAC,CAAAE,EAEVX,EAAI,CAAA,IAACI,MAAI,CAAA,OAAEM,GAAW,EAAEE,MAAK,GAAA,IAAAC,UAAA,CAAA,OAAAF,EAC3BJ,EAASE,EAAC,EAAA,CAEd"}
File without changes
File without changes
File without changes
File without changes