solid-tom-ui 1.0.7 → 1.0.10

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 (568) hide show
  1. package/README.md +246 -246
  2. package/dist/README.md +246 -0
  3. package/dist/components/avatar/avatar.js.map +1 -0
  4. package/dist/components/avatar/index.d.ts +3 -0
  5. package/{components → dist/components}/avatar/index.d.ts.map +1 -1
  6. package/dist/components/badge/badge.js.map +1 -0
  7. package/dist/components/breadcrumb/breadcrumb.js.map +1 -0
  8. package/dist/components/button/button.js.map +1 -0
  9. package/dist/components/button/index.d.ts +3 -0
  10. package/{components → dist/components}/button/index.d.ts.map +1 -1
  11. package/dist/components/carousel/carousel.js.map +1 -0
  12. package/dist/components/chat-bubble/chatBubble.js.map +1 -0
  13. package/dist/components/checkbox/checkbox.js.map +1 -0
  14. package/dist/components/collapse/collapse.js.map +1 -0
  15. package/dist/components/collapse/index.d.ts +3 -0
  16. package/{components → dist/components}/collapse/index.d.ts.map +1 -1
  17. package/dist/components/context-menu/context-menu.js.map +1 -0
  18. package/dist/components/context-menu/context-menu.store.js.map +1 -0
  19. package/dist/components/divider/divider.js.map +1 -0
  20. package/dist/components/dropdown/dropdown.js.map +1 -0
  21. package/dist/components/dropdown/dropdown.store.js.map +1 -0
  22. package/dist/components/float-button/float-button.js.map +1 -0
  23. package/dist/components/float-button/index.d.ts +3 -0
  24. package/{components → dist/components}/float-button/index.d.ts.map +1 -1
  25. package/dist/components/hover-3d-image/hover-3d-image.js.map +1 -0
  26. package/dist/components/image-preview/image-preview.js.map +1 -0
  27. package/dist/components/input/index.d.ts +3 -0
  28. package/dist/components/input/index.d.ts.map +1 -0
  29. package/dist/components/input/input.js.map +1 -0
  30. package/dist/components/input/input.utils.js.map +1 -0
  31. package/dist/components/input/variants/input-color.js.map +1 -0
  32. package/dist/components/input/variants/input-date.js.map +1 -0
  33. package/dist/components/input/variants/input-number.js.map +1 -0
  34. package/dist/components/input/variants/input-otp.js.map +1 -0
  35. package/dist/components/input/variants/input-password.js.map +1 -0
  36. package/dist/components/input/variants/input-radio.js.map +1 -0
  37. package/dist/components/input/variants/input-range.js.map +1 -0
  38. package/dist/components/input/variants/input-text.js.map +1 -0
  39. package/dist/components/input/variants/input-textarea.js.map +1 -0
  40. package/dist/components/loading/loading.js.map +1 -0
  41. package/dist/components/mansory/mansory.js.map +1 -0
  42. package/dist/components/menu/index.d.ts +4 -0
  43. package/{components → dist/components}/menu/index.d.ts.map +1 -1
  44. package/dist/components/menu/menu.js.map +1 -0
  45. package/{components → dist/components}/menu/menu.types.d.ts +7 -7
  46. package/{components → dist/components}/menu/menu.types.d.ts.map +1 -1
  47. package/dist/components/modal/modal.js.map +1 -0
  48. package/dist/components/modal/modalContext.js.map +1 -0
  49. package/dist/components/pagination/pagination.js.map +1 -0
  50. package/dist/components/progress-bar/progress-bar.js.map +1 -0
  51. package/dist/components/qr-code/qr-code.js.map +1 -0
  52. package/dist/components/rating/index.d.ts +3 -0
  53. package/{components → dist/components}/rating/index.d.ts.map +1 -1
  54. package/dist/components/select/select.js.map +1 -0
  55. package/dist/components/select-zone/select-zone.js.map +1 -0
  56. package/dist/components/skeleton/skeleton.js.map +1 -0
  57. package/dist/components/slider/index.d.ts +3 -0
  58. package/{components → dist/components}/slider/index.d.ts.map +1 -1
  59. package/dist/components/slider/slider.js.map +1 -0
  60. package/dist/components/splitter/splitter.js.map +1 -0
  61. package/dist/components/steps/steps.js.map +1 -0
  62. package/dist/components/swap/swap.js.map +1 -0
  63. package/dist/components/switch/switch.js.map +1 -0
  64. package/dist/components/tab/tab.js.map +1 -0
  65. package/dist/components/table/table.js.map +1 -0
  66. package/dist/components/timeline/timeline.js.map +1 -0
  67. package/dist/components/toast/icons/ErrorIcon.js.map +1 -0
  68. package/dist/components/toast/icons/IconCircle.js.map +1 -0
  69. package/dist/components/toast/icons/InfoIcon.js.map +1 -0
  70. package/dist/components/toast/icons/LoaderIcon.js.map +1 -0
  71. package/dist/components/toast/icons/SuccessIcon.js.map +1 -0
  72. package/dist/components/toast/icons/WarningIcon.js.map +1 -0
  73. package/dist/components/toast/toast.js.map +1 -0
  74. package/dist/components/toast/toast.store.js.map +1 -0
  75. package/dist/components/tooltip/tooltip.js.map +1 -0
  76. package/{components → dist/components}/tour/tour.d.ts.map +1 -1
  77. package/{components → dist/components}/tour/tour.js +1 -1
  78. package/dist/components/tour/tour.js.map +1 -0
  79. package/dist/components/upload/upload.js.map +1 -0
  80. package/dist/components/z-index/z-index.context.js.map +1 -0
  81. package/dist/components/z-index/z-index.js.map +1 -0
  82. package/dist/components/z-index/z-index.store.js.map +1 -0
  83. package/dist/components/z-index/z-index.types.js.map +1 -0
  84. package/dist/package.json +45 -0
  85. package/dist/skill/avatar.skill.md.txt +255 -0
  86. package/dist/skill/badge.skill.md.txt +223 -0
  87. package/dist/skill/blank.skill.md.txt +0 -0
  88. package/dist/skill/breadcrumb.skill.md.txt +177 -0
  89. package/dist/skill/button.skill.md.txt +198 -0
  90. package/dist/skill/carousel.skill.md.txt +406 -0
  91. package/dist/skill/chat-bubble.skill.md.txt +342 -0
  92. package/dist/skill/checkbox.skill.md.txt +326 -0
  93. package/dist/skill/code-preview.skill.md.txt +240 -0
  94. package/dist/skill/collapse.skill.md.txt +329 -0
  95. package/dist/skill/context-menu.skill.md.txt +233 -0
  96. package/dist/skill/diff.skill.md.txt +244 -0
  97. package/dist/skill/divider.skill.md.txt +151 -0
  98. package/dist/skill/doc.skill.md.txt +191 -0
  99. package/dist/skill/drawer.skill.md.txt +157 -0
  100. package/dist/skill/dropdown.skill.md.txt +198 -0
  101. package/dist/skill/float-button.skill.md.txt +315 -0
  102. package/dist/skill/hover-3d-image.skill.md.txt +120 -0
  103. package/dist/skill/iframe.skill.md.txt +114 -0
  104. package/dist/skill/image-preview.skill.md.txt +162 -0
  105. package/dist/skill/indicator.skill.md.txt +60 -0
  106. package/dist/skill/input.skill.md.txt +489 -0
  107. package/dist/skill/loading.skill.md.txt +127 -0
  108. package/dist/skill/mansory.skill.md.txt +0 -0
  109. package/dist/skill/menu.skill.md.txt +476 -0
  110. package/dist/skill/modal.skill.md.txt +359 -0
  111. package/dist/skill/pagination.skill.md.txt +405 -0
  112. package/dist/skill/progress-bar.skill.md.txt +207 -0
  113. package/dist/skill/qr-code.skill.md.txt +136 -0
  114. package/dist/skill/rating.skill.md.txt +167 -0
  115. package/dist/skill/select-zone.skill.md.txt +93 -0
  116. package/dist/skill/select.skill.md.txt +663 -0
  117. package/dist/skill/skeleton.skill.md.txt +192 -0
  118. package/dist/skill/slider.skill.md.txt +404 -0
  119. package/dist/skill/splitter.skill.md.txt +411 -0
  120. package/dist/skill/steps.skill.md.txt +264 -0
  121. package/dist/skill/swap.skill.md.txt +139 -0
  122. package/dist/skill/switch.skill.md.txt +191 -0
  123. package/dist/skill/tab.skill.md.txt +484 -0
  124. package/dist/skill/table.example.header.md.txt +667 -0
  125. package/dist/skill/table.skill.md.txt +1407 -0
  126. package/dist/skill/text-rotate.skill.md.txt +186 -0
  127. package/dist/skill/timeline.skill.md.txt +247 -0
  128. package/dist/skill/toast.skill.md.txt +531 -0
  129. package/dist/skill/tooltip.skill.md.txt +222 -0
  130. package/dist/skill/tour.skill.md.txt +156 -0
  131. package/dist/skill/upload.skill.md.txt +358 -0
  132. package/dist/skill/z-index.skill.md.txt +0 -0
  133. package/{solid-ui.css → dist/solid-ui.css} +2 -2
  134. package/dist/utils/cn.js.map +1 -0
  135. package/dist/utils/element-tracker.js.map +1 -0
  136. package/dist/utils/helper.js.map +1 -0
  137. package/dist/utils/hoc.js.map +1 -0
  138. package/package.json +101 -7
  139. package/components/avatar/avatar.js.map +0 -1
  140. package/components/avatar/index.d.ts +0 -2
  141. package/components/badge/badge.js.map +0 -1
  142. package/components/breadcrumb/breadcrumb.js.map +0 -1
  143. package/components/button/button.js.map +0 -1
  144. package/components/button/index.d.ts +0 -2
  145. package/components/carousel/carousel.js.map +0 -1
  146. package/components/chat-bubble/chatBubble.js.map +0 -1
  147. package/components/checkbox/checkbox.js.map +0 -1
  148. package/components/collapse/collapse.js.map +0 -1
  149. package/components/collapse/index.d.ts +0 -2
  150. package/components/context-menu/context-menu.js.map +0 -1
  151. package/components/context-menu/context-menu.store.js.map +0 -1
  152. package/components/divider/divider.js.map +0 -1
  153. package/components/dropdown/dropdown.js.map +0 -1
  154. package/components/dropdown/dropdown.store.js.map +0 -1
  155. package/components/float-button/float-button.js.map +0 -1
  156. package/components/float-button/index.d.ts +0 -2
  157. package/components/hover-3d-image/hover-3d-image.js.map +0 -1
  158. package/components/image-preview/image-preview.js.map +0 -1
  159. package/components/input/index.d.ts +0 -2
  160. package/components/input/index.d.ts.map +0 -1
  161. package/components/input/input.js.map +0 -1
  162. package/components/input/input.utils.js.map +0 -1
  163. package/components/input/variants/input-color.js.map +0 -1
  164. package/components/input/variants/input-date.js.map +0 -1
  165. package/components/input/variants/input-number.js.map +0 -1
  166. package/components/input/variants/input-otp.js.map +0 -1
  167. package/components/input/variants/input-password.js.map +0 -1
  168. package/components/input/variants/input-radio.js.map +0 -1
  169. package/components/input/variants/input-range.js.map +0 -1
  170. package/components/input/variants/input-text.js.map +0 -1
  171. package/components/input/variants/input-textarea.js.map +0 -1
  172. package/components/loading/loading.js.map +0 -1
  173. package/components/mansory/mansory.js.map +0 -1
  174. package/components/menu/index.d.ts +0 -4
  175. package/components/menu/menu.js.map +0 -1
  176. package/components/modal/modal.js.map +0 -1
  177. package/components/modal/modalContext.js.map +0 -1
  178. package/components/pagination/pagination.js.map +0 -1
  179. package/components/progress-bar/progress-bar.js.map +0 -1
  180. package/components/qr-code/qr-code.js.map +0 -1
  181. package/components/rating/index.d.ts +0 -2
  182. package/components/select/select.js.map +0 -1
  183. package/components/select-zone/select-zone.js.map +0 -1
  184. package/components/skeleton/skeleton.js.map +0 -1
  185. package/components/slider/index.d.ts +0 -2
  186. package/components/slider/slider.js.map +0 -1
  187. package/components/splitter/splitter.js.map +0 -1
  188. package/components/steps/steps.js.map +0 -1
  189. package/components/swap/swap.js.map +0 -1
  190. package/components/switch/switch.js.map +0 -1
  191. package/components/tab/tab.js.map +0 -1
  192. package/components/table/table.js.map +0 -1
  193. package/components/timeline/timeline.js.map +0 -1
  194. package/components/toast/icons/ErrorIcon.js.map +0 -1
  195. package/components/toast/icons/IconCircle.js.map +0 -1
  196. package/components/toast/icons/InfoIcon.js.map +0 -1
  197. package/components/toast/icons/LoaderIcon.js.map +0 -1
  198. package/components/toast/icons/SuccessIcon.js.map +0 -1
  199. package/components/toast/icons/WarningIcon.js.map +0 -1
  200. package/components/toast/toast.js.map +0 -1
  201. package/components/toast/toast.store.js.map +0 -1
  202. package/components/tooltip/tooltip.js.map +0 -1
  203. package/components/tour/tour.js.map +0 -1
  204. package/components/upload/upload.js.map +0 -1
  205. package/components/z-index/z-index.context.js.map +0 -1
  206. package/components/z-index/z-index.js.map +0 -1
  207. package/components/z-index/z-index.store.js.map +0 -1
  208. package/components/z-index/z-index.types.js.map +0 -1
  209. package/utils/cn.js.map +0 -1
  210. package/utils/element-tracker.js.map +0 -1
  211. package/utils/helper.js.map +0 -1
  212. package/utils/hoc.js.map +0 -1
  213. package/workspace.code-workspace +0 -8
  214. /package/{components → dist/components}/avatar/avatar.d.ts +0 -0
  215. /package/{components → dist/components}/avatar/avatar.d.ts.map +0 -0
  216. /package/{components → dist/components}/avatar/avatar.js +0 -0
  217. /package/{components → dist/components}/avatar/avatar.types.d.ts +0 -0
  218. /package/{components → dist/components}/avatar/avatar.types.d.ts.map +0 -0
  219. /package/{components → dist/components}/badge/badge.d.ts +0 -0
  220. /package/{components → dist/components}/badge/badge.d.ts.map +0 -0
  221. /package/{components → dist/components}/badge/badge.js +0 -0
  222. /package/{components → dist/components}/badge/badge.types.d.ts +0 -0
  223. /package/{components → dist/components}/badge/badge.types.d.ts.map +0 -0
  224. /package/{components → dist/components}/badge/index.d.ts +0 -0
  225. /package/{components → dist/components}/badge/index.d.ts.map +0 -0
  226. /package/{components → dist/components}/blank/blank.d.ts +0 -0
  227. /package/{components → dist/components}/blank/blank.d.ts.map +0 -0
  228. /package/{components → dist/components}/blank/index.d.ts +0 -0
  229. /package/{components → dist/components}/blank/index.d.ts.map +0 -0
  230. /package/{components → dist/components}/breadcrumb/breadcrumb.d.ts +0 -0
  231. /package/{components → dist/components}/breadcrumb/breadcrumb.d.ts.map +0 -0
  232. /package/{components → dist/components}/breadcrumb/breadcrumb.js +0 -0
  233. /package/{components → dist/components}/breadcrumb/index.d.ts +0 -0
  234. /package/{components → dist/components}/breadcrumb/index.d.ts.map +0 -0
  235. /package/{components → dist/components}/button/button.d.ts +0 -0
  236. /package/{components → dist/components}/button/button.d.ts.map +0 -0
  237. /package/{components → dist/components}/button/button.js +0 -0
  238. /package/{components → dist/components}/button/button.types.d.ts +0 -0
  239. /package/{components → dist/components}/button/button.types.d.ts.map +0 -0
  240. /package/{components → dist/components}/carousel/carousel.d.ts +0 -0
  241. /package/{components → dist/components}/carousel/carousel.d.ts.map +0 -0
  242. /package/{components → dist/components}/carousel/carousel.js +0 -0
  243. /package/{components → dist/components}/carousel/carousel.types.d.ts +0 -0
  244. /package/{components → dist/components}/carousel/carousel.types.d.ts.map +0 -0
  245. /package/{components → dist/components}/carousel/index.d.ts +0 -0
  246. /package/{components → dist/components}/carousel/index.d.ts.map +0 -0
  247. /package/{components → dist/components}/chat-bubble/chatBubble.d.ts +0 -0
  248. /package/{components → dist/components}/chat-bubble/chatBubble.d.ts.map +0 -0
  249. /package/{components → dist/components}/chat-bubble/chatBubble.js +0 -0
  250. /package/{components → dist/components}/chat-bubble/chatBubble.type.d.ts +0 -0
  251. /package/{components → dist/components}/chat-bubble/chatBubble.type.d.ts.map +0 -0
  252. /package/{components → dist/components}/chat-bubble/index.d.ts +0 -0
  253. /package/{components → dist/components}/chat-bubble/index.d.ts.map +0 -0
  254. /package/{components → dist/components}/checkbox/checkbox.d.ts +0 -0
  255. /package/{components → dist/components}/checkbox/checkbox.d.ts.map +0 -0
  256. /package/{components → dist/components}/checkbox/checkbox.js +0 -0
  257. /package/{components → dist/components}/checkbox/index.d.ts +0 -0
  258. /package/{components → dist/components}/checkbox/index.d.ts.map +0 -0
  259. /package/{components → dist/components}/collapse/collapse.d.ts +0 -0
  260. /package/{components → dist/components}/collapse/collapse.d.ts.map +0 -0
  261. /package/{components → dist/components}/collapse/collapse.js +0 -0
  262. /package/{components → dist/components}/collapse/collapse.types.d.ts +0 -0
  263. /package/{components → dist/components}/collapse/collapse.types.d.ts.map +0 -0
  264. /package/{components → dist/components}/context-menu/context-menu.d.ts +0 -0
  265. /package/{components → dist/components}/context-menu/context-menu.d.ts.map +0 -0
  266. /package/{components → dist/components}/context-menu/context-menu.js +0 -0
  267. /package/{components → dist/components}/context-menu/context-menu.store.d.ts +0 -0
  268. /package/{components → dist/components}/context-menu/context-menu.store.d.ts.map +0 -0
  269. /package/{components → dist/components}/context-menu/context-menu.store.js +0 -0
  270. /package/{components → dist/components}/context-menu/context-menu.types.d.ts +0 -0
  271. /package/{components → dist/components}/context-menu/context-menu.types.d.ts.map +0 -0
  272. /package/{components → dist/components}/context-menu/index.d.ts +0 -0
  273. /package/{components → dist/components}/context-menu/index.d.ts.map +0 -0
  274. /package/{components → dist/components}/diff/diff.d.ts +0 -0
  275. /package/{components → dist/components}/diff/diff.d.ts.map +0 -0
  276. /package/{components → dist/components}/diff/diff.js +0 -0
  277. /package/{components → dist/components}/diff/diff.js.map +0 -0
  278. /package/{components → dist/components}/diff/index.d.ts +0 -0
  279. /package/{components → dist/components}/diff/index.d.ts.map +0 -0
  280. /package/{components → dist/components}/divider/divider.d.ts +0 -0
  281. /package/{components → dist/components}/divider/divider.d.ts.map +0 -0
  282. /package/{components → dist/components}/divider/divider.js +0 -0
  283. /package/{components → dist/components}/divider/divider.types.d.ts +0 -0
  284. /package/{components → dist/components}/divider/divider.types.d.ts.map +0 -0
  285. /package/{components → dist/components}/divider/index.d.ts +0 -0
  286. /package/{components → dist/components}/divider/index.d.ts.map +0 -0
  287. /package/{components → dist/components}/drawer/drawer.d.ts +0 -0
  288. /package/{components → dist/components}/drawer/drawer.d.ts.map +0 -0
  289. /package/{components → dist/components}/drawer/drawer.js +0 -0
  290. /package/{components → dist/components}/drawer/drawer.js.map +0 -0
  291. /package/{components → dist/components}/drawer/drawer.types.d.ts +0 -0
  292. /package/{components → dist/components}/drawer/drawer.types.d.ts.map +0 -0
  293. /package/{components → dist/components}/drawer/index.d.ts +0 -0
  294. /package/{components → dist/components}/drawer/index.d.ts.map +0 -0
  295. /package/{components → dist/components}/dropdown/dropdown.d.ts +0 -0
  296. /package/{components → dist/components}/dropdown/dropdown.d.ts.map +0 -0
  297. /package/{components → dist/components}/dropdown/dropdown.js +0 -0
  298. /package/{components → dist/components}/dropdown/dropdown.store.d.ts +0 -0
  299. /package/{components → dist/components}/dropdown/dropdown.store.d.ts.map +0 -0
  300. /package/{components → dist/components}/dropdown/dropdown.store.js +0 -0
  301. /package/{components → dist/components}/dropdown/dropdown.types.d.ts +0 -0
  302. /package/{components → dist/components}/dropdown/dropdown.types.d.ts.map +0 -0
  303. /package/{components → dist/components}/dropdown/index.d.ts +0 -0
  304. /package/{components → dist/components}/dropdown/index.d.ts.map +0 -0
  305. /package/{components → dist/components}/float-button/float-button.d.ts +0 -0
  306. /package/{components → dist/components}/float-button/float-button.d.ts.map +0 -0
  307. /package/{components → dist/components}/float-button/float-button.js +0 -0
  308. /package/{components → dist/components}/float-button/float-button.types.d.ts +0 -0
  309. /package/{components → dist/components}/float-button/float-button.types.d.ts.map +0 -0
  310. /package/{components → dist/components}/hover-3d-image/hover-3d-example.d.ts +0 -0
  311. /package/{components → dist/components}/hover-3d-image/hover-3d-example.d.ts.map +0 -0
  312. /package/{components → dist/components}/hover-3d-image/hover-3d-image.d.ts +0 -0
  313. /package/{components → dist/components}/hover-3d-image/hover-3d-image.d.ts.map +0 -0
  314. /package/{components → dist/components}/hover-3d-image/hover-3d-image.js +0 -0
  315. /package/{components → dist/components}/hover-3d-image/index.d.ts +0 -0
  316. /package/{components → dist/components}/hover-3d-image/index.d.ts.map +0 -0
  317. /package/{components → dist/components}/image-preview/image-preview.d.ts +0 -0
  318. /package/{components → dist/components}/image-preview/image-preview.d.ts.map +0 -0
  319. /package/{components → dist/components}/image-preview/image-preview.js +0 -0
  320. /package/{components → dist/components}/image-preview/index.d.ts +0 -0
  321. /package/{components → dist/components}/image-preview/index.d.ts.map +0 -0
  322. /package/{components → dist/components}/indicator/index.d.ts +0 -0
  323. /package/{components → dist/components}/indicator/index.d.ts.map +0 -0
  324. /package/{components → dist/components}/indicator/indicator.d.ts +0 -0
  325. /package/{components → dist/components}/indicator/indicator.d.ts.map +0 -0
  326. /package/{components → dist/components}/indicator/indicator.js +0 -0
  327. /package/{components → dist/components}/indicator/indicator.js.map +0 -0
  328. /package/{components → dist/components}/indicator/indicator.types.d.ts +0 -0
  329. /package/{components → dist/components}/indicator/indicator.types.d.ts.map +0 -0
  330. /package/{components → dist/components}/input/input.d.ts +0 -0
  331. /package/{components → dist/components}/input/input.d.ts.map +0 -0
  332. /package/{components → dist/components}/input/input.js +0 -0
  333. /package/{components → dist/components}/input/input.types.d.ts +0 -0
  334. /package/{components → dist/components}/input/input.types.d.ts.map +0 -0
  335. /package/{components → dist/components}/input/input.utils.d.ts +0 -0
  336. /package/{components → dist/components}/input/input.utils.d.ts.map +0 -0
  337. /package/{components → dist/components}/input/input.utils.js +0 -0
  338. /package/{components → dist/components}/input/variants/input-color.d.ts +0 -0
  339. /package/{components → dist/components}/input/variants/input-color.d.ts.map +0 -0
  340. /package/{components → dist/components}/input/variants/input-color.js +0 -0
  341. /package/{components → dist/components}/input/variants/input-date.d.ts +0 -0
  342. /package/{components → dist/components}/input/variants/input-date.d.ts.map +0 -0
  343. /package/{components → dist/components}/input/variants/input-date.js +0 -0
  344. /package/{components → dist/components}/input/variants/input-number.d.ts +0 -0
  345. /package/{components → dist/components}/input/variants/input-number.d.ts.map +0 -0
  346. /package/{components → dist/components}/input/variants/input-number.js +0 -0
  347. /package/{components → dist/components}/input/variants/input-otp.d.ts +0 -0
  348. /package/{components → dist/components}/input/variants/input-otp.d.ts.map +0 -0
  349. /package/{components → dist/components}/input/variants/input-otp.js +0 -0
  350. /package/{components → dist/components}/input/variants/input-password.d.ts +0 -0
  351. /package/{components → dist/components}/input/variants/input-password.d.ts.map +0 -0
  352. /package/{components → dist/components}/input/variants/input-password.js +0 -0
  353. /package/{components → dist/components}/input/variants/input-radio.d.ts +0 -0
  354. /package/{components → dist/components}/input/variants/input-radio.d.ts.map +0 -0
  355. /package/{components → dist/components}/input/variants/input-radio.js +0 -0
  356. /package/{components → dist/components}/input/variants/input-range.d.ts +0 -0
  357. /package/{components → dist/components}/input/variants/input-range.d.ts.map +0 -0
  358. /package/{components → dist/components}/input/variants/input-range.js +0 -0
  359. /package/{components → dist/components}/input/variants/input-text.d.ts +0 -0
  360. /package/{components → dist/components}/input/variants/input-text.d.ts.map +0 -0
  361. /package/{components → dist/components}/input/variants/input-text.js +0 -0
  362. /package/{components → dist/components}/input/variants/input-textarea.d.ts +0 -0
  363. /package/{components → dist/components}/input/variants/input-textarea.d.ts.map +0 -0
  364. /package/{components → dist/components}/input/variants/input-textarea.js +0 -0
  365. /package/{components → dist/components}/loading/index.d.ts +0 -0
  366. /package/{components → dist/components}/loading/index.d.ts.map +0 -0
  367. /package/{components → dist/components}/loading/loading.d.ts +0 -0
  368. /package/{components → dist/components}/loading/loading.d.ts.map +0 -0
  369. /package/{components → dist/components}/loading/loading.js +0 -0
  370. /package/{components → dist/components}/mansory/index.d.ts +0 -0
  371. /package/{components → dist/components}/mansory/index.d.ts.map +0 -0
  372. /package/{components → dist/components}/mansory/mansory.d.ts +0 -0
  373. /package/{components → dist/components}/mansory/mansory.d.ts.map +0 -0
  374. /package/{components → dist/components}/mansory/mansory.js +0 -0
  375. /package/{components → dist/components}/mansory/mansory.types.d.ts +0 -0
  376. /package/{components → dist/components}/mansory/mansory.types.d.ts.map +0 -0
  377. /package/{components → dist/components}/menu/menu.d.ts +0 -0
  378. /package/{components → dist/components}/menu/menu.d.ts.map +0 -0
  379. /package/{components → dist/components}/menu/menu.data-example.d.ts +0 -0
  380. /package/{components → dist/components}/menu/menu.data-example.d.ts.map +0 -0
  381. /package/{components → dist/components}/menu/menu.js +0 -0
  382. /package/{components → dist/components}/modal/index.d.ts +0 -0
  383. /package/{components → dist/components}/modal/index.d.ts.map +0 -0
  384. /package/{components → dist/components}/modal/modal.d.ts +0 -0
  385. /package/{components → dist/components}/modal/modal.d.ts.map +0 -0
  386. /package/{components → dist/components}/modal/modal.js +0 -0
  387. /package/{components → dist/components}/modal/modalContext.d.ts +0 -0
  388. /package/{components → dist/components}/modal/modalContext.d.ts.map +0 -0
  389. /package/{components → dist/components}/modal/modalContext.js +0 -0
  390. /package/{components → dist/components}/pagination/index.d.ts +0 -0
  391. /package/{components → dist/components}/pagination/index.d.ts.map +0 -0
  392. /package/{components → dist/components}/pagination/pagination.d.ts +0 -0
  393. /package/{components → dist/components}/pagination/pagination.d.ts.map +0 -0
  394. /package/{components → dist/components}/pagination/pagination.js +0 -0
  395. /package/{components → dist/components}/pagination/pagination.types.d.ts +0 -0
  396. /package/{components → dist/components}/pagination/pagination.types.d.ts.map +0 -0
  397. /package/{components → dist/components}/progress-bar/index.d.ts +0 -0
  398. /package/{components → dist/components}/progress-bar/index.d.ts.map +0 -0
  399. /package/{components → dist/components}/progress-bar/progress-bar.d.ts +0 -0
  400. /package/{components → dist/components}/progress-bar/progress-bar.d.ts.map +0 -0
  401. /package/{components → dist/components}/progress-bar/progress-bar.js +0 -0
  402. /package/{components → dist/components}/progress-bar/progress-bar.types.d.ts +0 -0
  403. /package/{components → dist/components}/progress-bar/progress-bar.types.d.ts.map +0 -0
  404. /package/{components → dist/components}/qr-code/index.d.ts +0 -0
  405. /package/{components → dist/components}/qr-code/index.d.ts.map +0 -0
  406. /package/{components → dist/components}/qr-code/qr-code.d.ts +0 -0
  407. /package/{components → dist/components}/qr-code/qr-code.d.ts.map +0 -0
  408. /package/{components → dist/components}/qr-code/qr-code.js +0 -0
  409. /package/{components → dist/components}/qr-code/qr-code.types.d.ts +0 -0
  410. /package/{components → dist/components}/qr-code/qr-code.types.d.ts.map +0 -0
  411. /package/{components → dist/components}/rating/rating.d.ts +0 -0
  412. /package/{components → dist/components}/rating/rating.d.ts.map +0 -0
  413. /package/{components → dist/components}/rating/rating.js +0 -0
  414. /package/{components → dist/components}/rating/rating.js.map +0 -0
  415. /package/{components → dist/components}/rating/rating.types.d.ts +0 -0
  416. /package/{components → dist/components}/rating/rating.types.d.ts.map +0 -0
  417. /package/{components → dist/components}/select/index.d.ts +0 -0
  418. /package/{components → dist/components}/select/index.d.ts.map +0 -0
  419. /package/{components → dist/components}/select/select.d.ts +0 -0
  420. /package/{components → dist/components}/select/select.d.ts.map +0 -0
  421. /package/{components → dist/components}/select/select.js +0 -0
  422. /package/{components → dist/components}/select/select.types.d.ts +0 -0
  423. /package/{components → dist/components}/select/select.types.d.ts.map +0 -0
  424. /package/{components → dist/components}/select-zone/index.d.ts +0 -0
  425. /package/{components → dist/components}/select-zone/index.d.ts.map +0 -0
  426. /package/{components → dist/components}/select-zone/select-zone.d.ts +0 -0
  427. /package/{components → dist/components}/select-zone/select-zone.d.ts.map +0 -0
  428. /package/{components → dist/components}/select-zone/select-zone.js +0 -0
  429. /package/{components → dist/components}/select-zone/select-zone.types.d.ts +0 -0
  430. /package/{components → dist/components}/select-zone/select-zone.types.d.ts.map +0 -0
  431. /package/{components → dist/components}/skeleton/index.d.ts +0 -0
  432. /package/{components → dist/components}/skeleton/index.d.ts.map +0 -0
  433. /package/{components → dist/components}/skeleton/skeleton.d.ts +0 -0
  434. /package/{components → dist/components}/skeleton/skeleton.d.ts.map +0 -0
  435. /package/{components → dist/components}/skeleton/skeleton.js +0 -0
  436. /package/{components → dist/components}/slider/slider.d.ts +0 -0
  437. /package/{components → dist/components}/slider/slider.d.ts.map +0 -0
  438. /package/{components → dist/components}/slider/slider.js +0 -0
  439. /package/{components → dist/components}/slider/slider.types.d.ts +0 -0
  440. /package/{components → dist/components}/slider/slider.types.d.ts.map +0 -0
  441. /package/{components → dist/components}/splitter/index.d.ts +0 -0
  442. /package/{components → dist/components}/splitter/index.d.ts.map +0 -0
  443. /package/{components → dist/components}/splitter/splitter.d.ts +0 -0
  444. /package/{components → dist/components}/splitter/splitter.d.ts.map +0 -0
  445. /package/{components → dist/components}/splitter/splitter.js +0 -0
  446. /package/{components → dist/components}/splitter/splitter.types.d.ts +0 -0
  447. /package/{components → dist/components}/splitter/splitter.types.d.ts.map +0 -0
  448. /package/{components → dist/components}/steps/index.d.ts +0 -0
  449. /package/{components → dist/components}/steps/index.d.ts.map +0 -0
  450. /package/{components → dist/components}/steps/steps.d.ts +0 -0
  451. /package/{components → dist/components}/steps/steps.d.ts.map +0 -0
  452. /package/{components → dist/components}/steps/steps.js +0 -0
  453. /package/{components → dist/components}/swap/index.d.ts +0 -0
  454. /package/{components → dist/components}/swap/index.d.ts.map +0 -0
  455. /package/{components → dist/components}/swap/swap.d.ts +0 -0
  456. /package/{components → dist/components}/swap/swap.d.ts.map +0 -0
  457. /package/{components → dist/components}/swap/swap.js +0 -0
  458. /package/{components → dist/components}/switch/index.d.ts +0 -0
  459. /package/{components → dist/components}/switch/index.d.ts.map +0 -0
  460. /package/{components → dist/components}/switch/switch.d.ts +0 -0
  461. /package/{components → dist/components}/switch/switch.d.ts.map +0 -0
  462. /package/{components → dist/components}/switch/switch.js +0 -0
  463. /package/{components → dist/components}/switch/switch.types.d.ts +0 -0
  464. /package/{components → dist/components}/switch/switch.types.d.ts.map +0 -0
  465. /package/{components → dist/components}/tab/index.d.ts +0 -0
  466. /package/{components → dist/components}/tab/index.d.ts.map +0 -0
  467. /package/{components → dist/components}/tab/tab.d.ts +0 -0
  468. /package/{components → dist/components}/tab/tab.d.ts.map +0 -0
  469. /package/{components → dist/components}/tab/tab.js +0 -0
  470. /package/{components → dist/components}/tab/tab.types.d.ts +0 -0
  471. /package/{components → dist/components}/tab/tab.types.d.ts.map +0 -0
  472. /package/{components → dist/components}/table/index.d.ts +0 -0
  473. /package/{components → dist/components}/table/index.d.ts.map +0 -0
  474. /package/{components → dist/components}/table/index.js +0 -0
  475. /package/{components → dist/components}/table/table.d.ts +0 -0
  476. /package/{components → dist/components}/table/table.d.ts.map +0 -0
  477. /package/{components → dist/components}/table/table.js +0 -0
  478. /package/{components → dist/components}/table/table.types.d.ts +0 -0
  479. /package/{components → dist/components}/table/table.types.d.ts.map +0 -0
  480. /package/{components → dist/components}/text-rotate/index.d.ts +0 -0
  481. /package/{components → dist/components}/text-rotate/index.d.ts.map +0 -0
  482. /package/{components → dist/components}/text-rotate/text-rotate.d.ts +0 -0
  483. /package/{components → dist/components}/text-rotate/text-rotate.d.ts.map +0 -0
  484. /package/{components → dist/components}/text-rotate/text-rotate.js +0 -0
  485. /package/{components → dist/components}/text-rotate/text-rotate.js.map +0 -0
  486. /package/{components → dist/components}/timeline/index.d.ts +0 -0
  487. /package/{components → dist/components}/timeline/index.d.ts.map +0 -0
  488. /package/{components → dist/components}/timeline/timeline.d.ts +0 -0
  489. /package/{components → dist/components}/timeline/timeline.d.ts.map +0 -0
  490. /package/{components → dist/components}/timeline/timeline.js +0 -0
  491. /package/{components → dist/components}/timeline/timeline.types.d.ts +0 -0
  492. /package/{components → dist/components}/timeline/timeline.types.d.ts.map +0 -0
  493. /package/{components → dist/components}/toast/icons/ErrorIcon.d.ts +0 -0
  494. /package/{components → dist/components}/toast/icons/ErrorIcon.d.ts.map +0 -0
  495. /package/{components → dist/components}/toast/icons/ErrorIcon.js +0 -0
  496. /package/{components → dist/components}/toast/icons/IconCircle.d.ts +0 -0
  497. /package/{components → dist/components}/toast/icons/IconCircle.d.ts.map +0 -0
  498. /package/{components → dist/components}/toast/icons/IconCircle.js +0 -0
  499. /package/{components → dist/components}/toast/icons/InfoIcon.d.ts +0 -0
  500. /package/{components → dist/components}/toast/icons/InfoIcon.d.ts.map +0 -0
  501. /package/{components → dist/components}/toast/icons/InfoIcon.js +0 -0
  502. /package/{components → dist/components}/toast/icons/LoaderIcon.d.ts +0 -0
  503. /package/{components → dist/components}/toast/icons/LoaderIcon.d.ts.map +0 -0
  504. /package/{components → dist/components}/toast/icons/LoaderIcon.js +0 -0
  505. /package/{components → dist/components}/toast/icons/SuccessIcon.d.ts +0 -0
  506. /package/{components → dist/components}/toast/icons/SuccessIcon.d.ts.map +0 -0
  507. /package/{components → dist/components}/toast/icons/SuccessIcon.js +0 -0
  508. /package/{components → dist/components}/toast/icons/WarningIcon.d.ts +0 -0
  509. /package/{components → dist/components}/toast/icons/WarningIcon.d.ts.map +0 -0
  510. /package/{components → dist/components}/toast/icons/WarningIcon.js +0 -0
  511. /package/{components → dist/components}/toast/icons/index.d.ts +0 -0
  512. /package/{components → dist/components}/toast/icons/index.d.ts.map +0 -0
  513. /package/{components → dist/components}/toast/index.d.ts +0 -0
  514. /package/{components → dist/components}/toast/index.d.ts.map +0 -0
  515. /package/{components → dist/components}/toast/toast.d.ts +0 -0
  516. /package/{components → dist/components}/toast/toast.d.ts.map +0 -0
  517. /package/{components → dist/components}/toast/toast.js +0 -0
  518. /package/{components → dist/components}/toast/toast.store.d.ts +0 -0
  519. /package/{components → dist/components}/toast/toast.store.d.ts.map +0 -0
  520. /package/{components → dist/components}/toast/toast.store.js +0 -0
  521. /package/{components → dist/components}/toast/toast.type.d.ts +0 -0
  522. /package/{components → dist/components}/toast/toast.type.d.ts.map +0 -0
  523. /package/{components → dist/components}/tooltip/index.d.ts +0 -0
  524. /package/{components → dist/components}/tooltip/index.d.ts.map +0 -0
  525. /package/{components → dist/components}/tooltip/tooltip.d.ts +0 -0
  526. /package/{components → dist/components}/tooltip/tooltip.d.ts.map +0 -0
  527. /package/{components → dist/components}/tooltip/tooltip.js +0 -0
  528. /package/{components → dist/components}/tooltip/tooltip.types.d.ts +0 -0
  529. /package/{components → dist/components}/tooltip/tooltip.types.d.ts.map +0 -0
  530. /package/{components → dist/components}/tour/index.d.ts +0 -0
  531. /package/{components → dist/components}/tour/index.d.ts.map +0 -0
  532. /package/{components → dist/components}/tour/tour.d.ts +0 -0
  533. /package/{components → dist/components}/tour/tour.types.d.ts +0 -0
  534. /package/{components → dist/components}/tour/tour.types.d.ts.map +0 -0
  535. /package/{components → dist/components}/upload/index.d.ts +0 -0
  536. /package/{components → dist/components}/upload/index.d.ts.map +0 -0
  537. /package/{components → dist/components}/upload/upload.d.ts +0 -0
  538. /package/{components → dist/components}/upload/upload.d.ts.map +0 -0
  539. /package/{components → dist/components}/upload/upload.js +0 -0
  540. /package/{components → dist/components}/upload/upload.types.d.ts +0 -0
  541. /package/{components → dist/components}/upload/upload.types.d.ts.map +0 -0
  542. /package/{components → dist/components}/z-index/index.d.ts +0 -0
  543. /package/{components → dist/components}/z-index/index.d.ts.map +0 -0
  544. /package/{components → dist/components}/z-index/z-index.context.d.ts +0 -0
  545. /package/{components → dist/components}/z-index/z-index.context.d.ts.map +0 -0
  546. /package/{components → dist/components}/z-index/z-index.context.js +0 -0
  547. /package/{components → dist/components}/z-index/z-index.d.ts +0 -0
  548. /package/{components → dist/components}/z-index/z-index.d.ts.map +0 -0
  549. /package/{components → dist/components}/z-index/z-index.js +0 -0
  550. /package/{components → dist/components}/z-index/z-index.store.d.ts +0 -0
  551. /package/{components → dist/components}/z-index/z-index.store.d.ts.map +0 -0
  552. /package/{components → dist/components}/z-index/z-index.store.js +0 -0
  553. /package/{components → dist/components}/z-index/z-index.types.d.ts +0 -0
  554. /package/{components → dist/components}/z-index/z-index.types.d.ts.map +0 -0
  555. /package/{components → dist/components}/z-index/z-index.types.js +0 -0
  556. /package/{lib.d.ts → dist/lib.d.ts} +0 -0
  557. /package/{lib.d.ts.map → dist/lib.d.ts.map} +0 -0
  558. /package/{lib.js → dist/lib.js} +0 -0
  559. /package/{type.d.ts → dist/type.d.ts} +0 -0
  560. /package/{type.d.ts.map → dist/type.d.ts.map} +0 -0
  561. /package/{utils → dist/utils}/cn.d.ts +0 -0
  562. /package/{utils → dist/utils}/cn.d.ts.map +0 -0
  563. /package/{utils → dist/utils}/cn.js +0 -0
  564. /package/{utils → dist/utils}/element-tracker.js +0 -0
  565. /package/{utils → dist/utils}/helper.d.ts +0 -0
  566. /package/{utils → dist/utils}/helper.d.ts.map +0 -0
  567. /package/{utils → dist/utils}/helper.js +0 -0
  568. /package/{utils → dist/utils}/hoc.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"splitter.js","names":["cn","getColor","children","Component","createContext","createEffect","createMemo","createSignal","createUniqueId","For","JSX","mergeProps","on","onCleanup","Show","useContext","CollapsibleConfig","PanelProps","SplitterContextValue","SplitterOrientation","SplitterProps","SplitterContext","orientation","PanelRegistration","id","props","PanelRegistryContextValue","register","reg","unregister","PanelRegistryContext","renderIcon","icon","Element","CollapseLeft","_tmpl$","CollapseRight","_tmpl$2","CollapseUp","_tmpl$3","CollapseDown","_tmpl$4","clamp","v","min","max","Math","redistributeSizes","sizes","draggerIdx","delta","panelMetas","collapsed","leftIdx","rightIdx","length","next","leftMeta","rightMeta","leftMin","leftMax","rightMin","rightMax","totalAvail","newLeft","newRight","SplitterPanel","rawProps","registry","unregisterPanel","DraggerItemProps","dIdx","getPanelList","getCollapsed","getDraggingIdx","draggerIcon","showCollapsibleIcon","collapsibleIcon","collapse","expand","collapsedControlled","class","onMouseDown","idx","e","MouseEvent","onDblClick","onCollapse","panelIdx","DraggerItem","p","leftResizable","resizable","rightResizable","canResize","isDragging","leftCollapsible","collapsible","rightCollapsible","hasCollapse","isLeftCollapsed","isRightCollapsed","iconAlwaysShow","isH","showBtnNext","cfg","showBtnPrevFull","_el$5","_tmpl$6","_el$6","firstChild","$$dblclick","$$mousedown","_$insert","_c$","_$memo","_$createComponent","when","_el$7","_tmpl$5","$$click","stopPropagation","_c$2","_$effect","_p$","_v$","collapseBtn","_v$2","_$className","t","_$setAttribute","undefined","_el$8","_c$3","_v$3","_v$4","_v$5","dragger","_v$6","draggerBar","Splitter","Panel","lazy","color","const","vertical","setPanelMetas","prev","findIndex","r","filter","resolvedChildren","Provider","value","initSizes","metas","n","size","raw","map","m","defaultSize","hasAll","every","total","reduce","s","definedTotal","undefinedCount","eachUndefined","isCollapsedControlled","Array","isArray","setSizes","collapsedInternal","setCollapsedInternal","draggingIdx","setDraggingIdx","setCollapsed","lazyGhostPos","setLazyGhostPos","controlled","containerRef","HTMLDivElement","cachedContainerSize","observeContainerSize","observer","ResizeObserver","entries","entry","contentRect","width","height","observe","disconnectContainerObserver","disconnect","getContainerSize","getNormalizedSizes","col","visibleTotal","sum","i","dragStartPos","dragStartSizes","dragStartCollapsed","onDraggerMouseDown","preventDefault","clientX","clientY","onResizeStart","index","document","addEventListener","onMouseMove","onMouseUp","applyNewSizes","newSizes","changed","pos","containerSize","deltaPct","leftSumPct","slice","onResize","onResizeEnd","removeEventListener","removeDragListeners","collapsePanel","currentCollapsed","newCollapsed","ghostStyle","CSSProperties","display","left","top","_el$9","_tmpl$7","_el$0","_tmpl$9","_ref$","_$use","each","meta","isCollapsed","panelStyle","rawSizes","normalized","showDragger","hasVisibleLeft","hasVisibleRight","_el$10","_v$7","panel","_v$8","_v$9","_$style","a","onDraggerDoubleClick","_el$1","_tmpl$8","_$p","root","_$delegateEvents"],"sources":["../../../src/components/splitter/splitter.tsx"],"sourcesContent":["import { cn } from '@/utils/cn';\nimport { getColor } from '@utils/helper';\nimport {\n children,\n Component,\n createContext,\n createEffect,\n createMemo,\n createSignal,\n createUniqueId,\n For,\n JSX,\n mergeProps,\n on,\n onCleanup,\n Show,\n useContext,\n} from 'solid-js';\nimport type {\n CollapsibleConfig,\n PanelProps,\n SplitterContextValue,\n SplitterOrientation,\n SplitterProps,\n} from './splitter.types';\n\nconst SplitterContext = createContext<SplitterContextValue>({ orientation: 'horizontal' });\n\ntype PanelRegistration = {\n id: string;\n props: PanelProps;\n};\n\ntype PanelRegistryContextValue = {\n register: (reg: PanelRegistration) => void;\n unregister: (id: string) => void;\n};\n\nconst PanelRegistryContext = createContext<PanelRegistryContextValue | null>(null);\n\nfunction renderIcon(icon: JSX.Element | (() => JSX.Element) | undefined): JSX.Element {\n if (typeof icon === 'function') return (icon as () => JSX.Element)();\n return icon as JSX.Element;\n}\n\nconst CollapseLeft = () => (\n <svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"currentColor\">\n <path d=\"M6 2L3 5l3 3V2z\" />\n </svg>\n);\n\nconst CollapseRight = () => (\n <svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"currentColor\">\n <path d=\"M4 2l3 3-3 3V2z\" />\n </svg>\n);\n\nconst CollapseUp = () => (\n <svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"currentColor\">\n <path d=\"M2 6l3-3 3 3H2z\" />\n </svg>\n);\n\nconst CollapseDown = () => (\n <svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"currentColor\">\n <path d=\"M2 4l3 3 3-3H2z\" />\n </svg>\n);\n\nfunction clamp(v: number, min: number, max: number) {\n return Math.min(Math.max(v, min), max);\n}\n\nfunction redistributeSizes(\n sizes: number[],\n draggerIdx: number,\n delta: number,\n panelMetas: PanelRegistration[],\n collapsed: boolean[],\n): number[] {\n // Tìm panel visible thực sự ở hai phía của dragger.\n // Bỏ qua các panel đang collapsed vì chúng bị CSS force về 0 và không\n // đóng góp vào tổng width thực tế — redistribute vào chúng sẽ tạo gap.\n let leftIdx = draggerIdx;\n while (leftIdx >= 0 && collapsed[leftIdx]) leftIdx--;\n\n let rightIdx = draggerIdx + 1;\n while (rightIdx < sizes.length && collapsed[rightIdx]) rightIdx++;\n\n if (leftIdx < 0 || rightIdx >= sizes.length) return sizes;\n\n const next = [...sizes];\n\n const leftMeta = panelMetas[leftIdx]?.props;\n const rightMeta = panelMetas[rightIdx]?.props;\n\n const leftMin = leftMeta?.min ?? 0;\n const leftMax = leftMeta?.max ?? 100;\n const rightMin = rightMeta?.min ?? 0;\n const rightMax = rightMeta?.max ?? 100;\n\n const totalAvail = next[leftIdx] + next[rightIdx];\n\n // Clamp newLeft trong khoảng [leftMin, leftMax] và đảm bảo right có đủ chỗ tối thiểu\n let newLeft = clamp(next[leftIdx] + delta, leftMin, Math.min(leftMax, totalAvail - rightMin));\n let newRight = totalAvail - newLeft;\n\n // Nếu right vượt quá rightMax, clamp right lại và tính lại left\n if (newRight > rightMax) {\n newRight = rightMax;\n newLeft = totalAvail - newRight;\n if (newLeft < leftMin || newLeft > leftMax) return sizes;\n }\n\n if (newRight < rightMin) return sizes;\n\n next[leftIdx] = newLeft;\n next[rightIdx] = newRight;\n return next;\n}\n\nexport const SplitterPanel: Component<PanelProps> = rawProps => {\n const registry = useContext(PanelRegistryContext);\n const id = createUniqueId();\n\n if (registry) {\n registry.register({ id, props: rawProps });\n onCleanup(function unregisterPanel() {\n registry.unregister(id);\n });\n }\n return null;\n};\n\ntype DraggerItemProps = {\n dIdx: number;\n getPanelList: () => PanelRegistration[];\n getCollapsed: () => boolean[];\n getDraggingIdx: () => number | null;\n orientation: () => SplitterOrientation;\n draggerIcon?: JSX.Element | (() => JSX.Element);\n showCollapsibleIcon: () => CollapsibleConfig;\n collapsibleIcon?: {\n collapse?: JSX.Element | (() => JSX.Element);\n expand?: JSX.Element | (() => JSX.Element);\n };\n collapsedControlled: () => boolean;\n class?: SplitterProps['class'];\n onMouseDown: (idx: number, e: MouseEvent) => void;\n onDblClick: (idx: number) => void;\n onCollapse: (panelIdx: number) => void;\n};\n\nconst DraggerItem: Component<DraggerItemProps> = p => {\n const dIdx = p.dIdx;\n\n const leftResizable = createMemo(() => p.getPanelList()[dIdx]?.props.resizable !== false);\n const rightResizable = createMemo(() => p.getPanelList()[dIdx + 1]?.props.resizable !== false);\n const canResize = createMemo(() => leftResizable() && rightResizable());\n const isDragging = createMemo(() => p.getDraggingIdx() === dIdx);\n\n const leftCollapsible = createMemo(() => p.getPanelList()[dIdx]?.props.collapsible ?? false);\n const rightCollapsible = createMemo(() => p.getPanelList()[dIdx + 1]?.props.collapsible ?? false);\n const hasCollapse = createMemo(() => leftCollapsible() || rightCollapsible());\n\n const isLeftCollapsed = createMemo(() => p.getCollapsed()[dIdx] ?? false);\n const isRightCollapsed = createMemo(() => p.getCollapsed()[dIdx + 1] ?? false);\n\n const iconAlwaysShow = createMemo(() => p.showCollapsibleIcon() === true);\n const isH = createMemo(() => p.orientation() === 'horizontal');\n\n const showBtnNext = createMemo(() => {\n if (p.collapsedControlled()) return false;\n const cfg = p.showCollapsibleIcon();\n if (cfg === false) return false;\n if (!hasCollapse()) return false;\n\n return rightCollapsible() || isLeftCollapsed();\n });\n\n const showBtnPrevFull = createMemo(() => {\n if (p.collapsedControlled()) return false;\n const cfg = p.showCollapsibleIcon();\n if (cfg === false) return false;\n if (!hasCollapse()) return false;\n return leftCollapsible() || isRightCollapsed();\n });\n\n return (\n <div\n class={cn('sp06', !canResize() && 'sp07', isDragging() && 'sp08', p.class?.dragger)}\n onMouseDown={e => p.onMouseDown(dIdx, e)}\n onDblClick={() => p.onDblClick(dIdx)}\n >\n <div class={cn('sp15', p.class?.draggerBar)}>\n {p.draggerIcon ? renderIcon(p.draggerIcon) : null}\n </div>\n\n <Show when={showBtnPrevFull()}>\n <button\n class={cn(\n 'sp10',\n 'sp11',\n iconAlwaysShow() && 'sp13',\n\n (isLeftCollapsed() || isRightCollapsed()) && 'sp14',\n p.class?.collapseBtn,\n )}\n title={isLeftCollapsed() || isRightCollapsed() ? 'Expand' : 'Collapse'}\n onClick={e => {\n e.stopPropagation();\n\n if (isRightCollapsed()) p.onCollapse(dIdx + 1);\n else p.onCollapse(dIdx);\n }}\n >\n {isLeftCollapsed()\n ? renderIcon(\n p.collapsibleIcon?.expand ?? (isH() ? <CollapseRight /> : <CollapseDown />),\n )\n : isRightCollapsed()\n ? renderIcon(p.collapsibleIcon?.expand ?? (isH() ? <CollapseLeft /> : <CollapseUp />))\n : renderIcon(\n p.collapsibleIcon?.collapse ?? (isH() ? <CollapseLeft /> : <CollapseUp />),\n )}\n </button>\n </Show>\n\n <Show when={showBtnNext()}>\n <button\n class={cn(\n 'sp10',\n 'sp12',\n iconAlwaysShow() && 'sp13',\n\n (isRightCollapsed() || isLeftCollapsed()) && 'sp14',\n p.class?.collapseBtn,\n )}\n title={isRightCollapsed() ? 'Collapse' : 'Expand'}\n onClick={e => {\n e.stopPropagation();\n\n if (isLeftCollapsed()) p.onCollapse(dIdx);\n else p.onCollapse(dIdx + 1);\n }}\n >\n {isRightCollapsed()\n ? renderIcon(p.collapsibleIcon?.expand ?? (isH() ? <CollapseLeft /> : <CollapseUp />))\n : isLeftCollapsed()\n ? renderIcon(\n p.collapsibleIcon?.expand ?? (isH() ? <CollapseRight /> : <CollapseDown />),\n )\n : renderIcon(\n p.collapsibleIcon?.collapse ?? (isH() ? <CollapseRight /> : <CollapseDown />),\n )}\n </button>\n </Show>\n </div>\n );\n};\n\nexport const Splitter: Component<SplitterProps> & { Panel: Component<PanelProps> } = rawProps => {\n const p = mergeProps(\n {\n orientation: 'horizontal' as SplitterOrientation,\n lazy: false,\n color: 'primary' as const,\n },\n rawProps,\n );\n\n const orientation = createMemo<SplitterOrientation>(() =>\n p.vertical ? 'vertical' : (p.orientation ?? 'horizontal'),\n );\n\n const [panelMetas, setPanelMetas] = createSignal<PanelRegistration[]>([]);\n\n const registry: PanelRegistryContextValue = {\n register(reg) {\n setPanelMetas(prev => {\n const idx = prev.findIndex(r => r.id === reg.id);\n if (idx >= 0) {\n const next = [...prev];\n next[idx] = reg;\n return next;\n }\n return [...prev, reg];\n });\n },\n unregister(id) {\n setPanelMetas(prev => prev.filter(r => r.id !== id));\n },\n };\n\n const resolvedChildren = children(() => (\n <PanelRegistryContext.Provider value={registry}>{p.children}</PanelRegistryContext.Provider>\n ));\n\n function initSizes(metas: PanelRegistration[]): number[] {\n const n = metas.length;\n if (n === 0) return [];\n if (p.size && p.size.length === n) return [...p.size];\n\n const raw = metas.map(m => m.props.size ?? m.props.defaultSize);\n const hasAll = raw.every(v => v !== undefined);\n if (hasAll) {\n const total = raw.reduce((s, v) => s + v!, 0);\n return raw.map(v => (v! / total) * 100);\n }\n\n const definedTotal = (raw.filter(v => v !== undefined) as number[]).reduce((s, v) => s + v, 0);\n const undefinedCount = raw.filter(v => v === undefined).length;\n const eachUndefined = undefinedCount > 0 ? Math.max(0, 100 - definedTotal) / undefinedCount : 0;\n return raw.map(v => (v !== undefined ? v : eachUndefined));\n }\n\n const isCollapsedControlled = createMemo(() => Array.isArray(p.collapsed));\n\n const [sizes, setSizes] = createSignal<number[]>([]);\n const [collapsedInternal, setCollapsedInternal] = createSignal<boolean[]>([]);\n const [draggingIdx, setDraggingIdx] = createSignal<number | null>(null);\n\n const collapsed = createMemo(() =>\n isCollapsedControlled() ? (p.collapsed as boolean[]) : collapsedInternal(),\n );\n const setCollapsed = (next: boolean[]) => {\n if (!isCollapsedControlled()) setCollapsedInternal(next);\n };\n\n const [lazyGhostPos, setLazyGhostPos] = createSignal<number | null>(null);\n\n createEffect(\n on(panelMetas, metas => {\n if (metas.length === 0) return;\n setSizes(initSizes(metas));\n setCollapsedInternal(metas.map(() => false));\n }),\n );\n\n createEffect(\n on(\n () => p.size,\n controlled => {\n if (!controlled) return;\n if (controlled.length === panelMetas().length) setSizes([...controlled]);\n },\n ),\n );\n\n let containerRef: HTMLDivElement | undefined;\n let cachedContainerSize = 0;\n\n createEffect(function observeContainerSize() {\n if (!containerRef) return;\n const isH = orientation() === 'horizontal';\n const observer = new ResizeObserver(entries => {\n const entry = entries[0];\n if (!entry) return;\n cachedContainerSize = isH ? entry.contentRect.width : entry.contentRect.height;\n });\n observer.observe(containerRef);\n onCleanup(function disconnectContainerObserver() {\n observer.disconnect();\n });\n });\n\n function getContainerSize(): number {\n return cachedContainerSize;\n }\n\n // Trả về sizes đã normalize: tổng 100% chỉ tính trên panel visible\n function getNormalizedSizes(): number[] {\n const col = collapsed();\n const raw = sizes();\n const visibleTotal = raw.reduce((sum, s, i) => sum + (col[i] ? 0 : s), 0);\n if (visibleTotal === 0) return raw.map(() => 0);\n return raw.map((s, i) => (col[i] ? s : (s / visibleTotal) * 100));\n }\n\n let dragStartPos = 0;\n let dragStartSizes: number[] = [];\n let dragStartCollapsed: boolean[] = [];\n\n function onDraggerMouseDown(idx: number, e: MouseEvent) {\n const metas = panelMetas();\n if (metas[idx]?.props.resizable === false) return;\n if (metas[idx + 1]?.props.resizable === false) return;\n\n e.preventDefault();\n setDraggingIdx(idx);\n dragStartPos = orientation() === 'horizontal' ? e.clientX : e.clientY;\n dragStartSizes = getNormalizedSizes();\n dragStartCollapsed = [...collapsed()];\n p.onResizeStart?.({ sizes: dragStartSizes, index: idx });\n\n document.addEventListener('mousemove', onMouseMove);\n document.addEventListener('mouseup', onMouseUp);\n }\n\n function applyNewSizes(newSizes: number[], idx: number) {\n const col = [...collapsed()];\n let changed = false;\n if (col[idx] && newSizes[idx] > 0) {\n col[idx] = false;\n changed = true;\n }\n if (col[idx + 1] && newSizes[idx + 1] > 0) {\n col[idx + 1] = false;\n changed = true;\n }\n if (changed) setCollapsed(col);\n setSizes(newSizes);\n }\n\n function onMouseMove(e: MouseEvent) {\n const idx = draggingIdx();\n if (idx === null) return;\n\n const pos = orientation() === 'horizontal' ? e.clientX : e.clientY;\n const containerSize = getContainerSize();\n if (containerSize === 0) return;\n\n const deltaPct = ((pos - dragStartPos) / containerSize) * 100;\n const newSizes = redistributeSizes(\n dragStartSizes,\n idx,\n deltaPct,\n panelMetas(),\n dragStartCollapsed,\n );\n\n if (p.lazy) {\n const leftSumPct = newSizes.slice(0, idx + 1).reduce((s, v) => s + v, 0);\n setLazyGhostPos((leftSumPct / 100) * containerSize);\n } else {\n applyNewSizes(newSizes, idx);\n p.onResize?.({ sizes: newSizes, index: idx });\n }\n }\n\n function onMouseUp(e: MouseEvent) {\n const idx = draggingIdx();\n if (idx === null) return;\n\n if (p.lazy) {\n const pos = orientation() === 'horizontal' ? e.clientX : e.clientY;\n const containerSize = getContainerSize();\n if (containerSize > 0) {\n const deltaPct = ((pos - dragStartPos) / containerSize) * 100;\n const newSizes = redistributeSizes(\n dragStartSizes,\n idx,\n deltaPct,\n panelMetas(),\n dragStartCollapsed,\n );\n applyNewSizes(newSizes, idx);\n p.onResize?.({ sizes: newSizes, index: idx });\n p.onResizeEnd?.({ sizes: newSizes, index: idx });\n }\n setLazyGhostPos(null);\n } else {\n p.onResizeEnd?.({ sizes: sizes(), index: idx });\n }\n\n setDraggingIdx(null);\n document.removeEventListener('mousemove', onMouseMove);\n document.removeEventListener('mouseup', onMouseUp);\n }\n\n onCleanup(function removeDragListeners() {\n document.removeEventListener('mousemove', onMouseMove);\n document.removeEventListener('mouseup', onMouseUp);\n });\n\n function collapsePanel(panelIdx: number) {\n const metas = panelMetas();\n if (!metas[panelIdx]?.props.collapsible) return;\n\n const currentCollapsed = collapsed();\n const newCollapsed = [...currentCollapsed];\n\n if (currentCollapsed[panelIdx]) {\n // Expand: chỉ bỏ collapsed flag — render tự normalize sizes\n newCollapsed[panelIdx] = false;\n setCollapsed(newCollapsed);\n p.onCollapse?.({ sizes: sizes(), collapsed: newCollapsed, index: panelIdx });\n } else {\n // Collapse: chỉ đánh dấu collapsed — render tự normalize sizes\n newCollapsed[panelIdx] = true;\n setCollapsed(newCollapsed);\n p.onCollapse?.({ sizes: sizes(), collapsed: newCollapsed, index: panelIdx });\n }\n }\n\n const ghostStyle = createMemo<JSX.CSSProperties>(() => {\n const pos = lazyGhostPos();\n\n if (pos === null) return { display: 'none' };\n return orientation() === 'horizontal'\n ? { display: 'block', left: `${pos}px` }\n : { display: 'block', top: `${pos}px` };\n });\n\n return (\n <SplitterContext.Provider value={{ orientation: orientation() }}>\n <div class=\"hidden\">{resolvedChildren()}</div>\n\n <div\n ref={containerRef}\n class={cn(\n 'sp01',\n orientation() === 'vertical' ? 'sp02' : 'sp03',\n getColor(p.color),\n p.class?.root,\n )}\n >\n <For each={panelMetas()}>\n {(meta, idx) => {\n const isCollapsed = createMemo(() => collapsed()[idx()] ?? false);\n\n // Tính normalized size: chia đều 100% cho các panel visible\n const panelStyle = createMemo<JSX.CSSProperties>(() => {\n if (isCollapsed()) return { display: 'none' };\n\n const col = collapsed();\n const rawSizes = sizes();\n\n // Tính tổng size của các panel visible\n const visibleTotal = rawSizes.reduce((sum, s, i) => sum + (col[i] ? 0 : s), 0);\n\n const s = rawSizes[idx()] ?? 0;\n const normalized = visibleTotal > 0 ? (s / visibleTotal) * 100 : 0;\n\n return orientation() === 'horizontal'\n ? { 'flex-basis': `${normalized}%`, 'min-width': `${meta.props.min ?? 0}%` }\n : { 'flex-basis': `${normalized}%`, 'min-height': `${meta.props.min ?? 0}%` };\n });\n\n // Dragger sau panel idx() — ẩn chỉ khi cả hai phía đều không có panel visible.\n // Trong controlled mode: ẩn dragger nếu một trong hai panel kề trực tiếp bị ẩn,\n // vì nút collapse/expand đã bị tắt và thanh chỉ còn dùng để resize (vô nghĩa khi\n // một bên không hiển thị).\n const showDragger = createMemo(() => {\n if (idx() >= panelMetas().length - 1) return false;\n const col = collapsed();\n\n if (isCollapsedControlled()) {\n return !col[idx()] && !(col[idx() + 1] ?? false);\n }\n\n // Tìm panel visible gần nhất bên trái (bao gồm idx())\n let hasVisibleLeft = false;\n for (let i = idx(); i >= 0; i--) {\n if (!col[i]) {\n hasVisibleLeft = true;\n break;\n }\n }\n // Tìm panel visible gần nhất bên phải (idx()+1 trở đi)\n let hasVisibleRight = false;\n for (let i = idx() + 1; i < panelMetas().length; i++) {\n if (!col[i]) {\n hasVisibleRight = true;\n break;\n }\n }\n return hasVisibleLeft || hasVisibleRight;\n });\n\n return (\n <>\n <div\n class={cn('sp04', isCollapsed() && 'sp05', meta.props.class, p.class?.panel)}\n style={panelStyle()}\n data-panel-id={meta.id}\n >\n {meta.props.children}\n </div>\n\n <Show when={showDragger()}>\n <DraggerItem\n dIdx={idx()}\n getPanelList={panelMetas}\n getCollapsed={collapsed}\n getDraggingIdx={draggingIdx}\n orientation={orientation}\n draggerIcon={p.draggerIcon}\n showCollapsibleIcon={() => p.showCollapsibleIcon ?? 'auto'}\n collapsibleIcon={p.collapsibleIcon}\n collapsedControlled={isCollapsedControlled}\n class={p.class}\n onMouseDown={onDraggerMouseDown}\n onDblClick={dIdx => p.onDraggerDoubleClick?.(dIdx, sizes())}\n onCollapse={collapsePanel}\n />\n </Show>\n </>\n );\n }}\n </For>\n\n <Show when={p.lazy}>\n <div class=\"sp09\" style={ghostStyle()} />\n </Show>\n </div>\n </SplitterContext.Provider>\n );\n};\n\nSplitter.Panel = SplitterPanel;\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"steps.js","names":["BaseColorProps","cn","getColor","ArrowRight","Check","Accessor","Component","createMemo","For","JSX","mergeProps","Setter","Show","StepItem","title","Element","description","icon","StepsProps","type","color","orientation","total","items","current","setCurrent","onChange","index","disabled","activeIndex","class","root","step","connector","StepStatus","getStepStatus","includes","StepIconProps","status","StepIconContent","p","_el$","_tmpl$","_$insert","_$createComponent","when","_$memo","fallback","_el$2","_tmpl$2","children","size","_$effect","_$className","InternalProps","isVertical","colorClass","onStepClick","TypeDefault","_el$3","each","item","i","_el$4","_el$5","_tmpl$4","_el$8","firstChild","$$click","_el$6","_tmpl$3","length","_el$7","_el$9","_el$0","_p$","_v$","_v$2","e","t","_$setAttribute","undefined","TypeNavigation","_el$1","_el$10","_tmpl$5","_el$11","_tmpl$6","_el$12","_el$13","_el$14","_el$15","_v$3","_v$4","TypeDot","_el$16","_el$17","_el$18","_el$23","_el$19","_tmpl$7","_el$20","_el$21","_el$22","_el$24","_el$25","_v$5","_v$6","Steps","resolvedItems","Array","from","_","handleClick","shared","_$mergeProps","_$delegateEvents"],"sources":["../../../src/components/steps/steps.tsx"],"sourcesContent":["import { BaseColorProps } from '@/type';\nimport { cn } from '@/utils/cn';\nimport { getColor } from '@/utils/helper';\nimport ArrowRight from 'lucide-solid/icons/arrow-right';\nimport Check from 'lucide-solid/icons/check';\nimport { Accessor, Component, createMemo, For, JSX, mergeProps, Setter, Show } from 'solid-js';\n\n// ─── Types ────────────────────────────────────────────────────────────────────\n\nexport type StepItem = {\n title?: JSX.Element;\n description?: JSX.Element;\n icon?: JSX.Element;\n};\n\nexport type StepsProps = {\n type?: 'default' | 'navigation' | 'dot';\n color?: BaseColorProps;\n orientation?: 'horizontal' | 'vertical';\n total?: number;\n items?: StepItem[];\n current?: Accessor<number>;\n setCurrent?: Setter<number>;\n onChange?: (index: number) => void;\n disabled?: number[];\n activeIndex?: number[];\n class?: {\n root?: string;\n step?: string;\n icon?: string;\n title?: string;\n description?: string;\n connector?: string;\n };\n};\n\n// ─── Helpers ──────────────────────────────────────────────────────────────────\n\ntype StepStatus = 'active' | 'done' | 'upcoming' | 'disabled';\n\nconst getStepStatus = (\n index: number,\n current: number,\n disabled: number[],\n activeIndex?: number[],\n): StepStatus => {\n if (disabled.includes(index)) return 'disabled';\n if (activeIndex?.includes(index)) return 'active';\n if (index === current) return 'active';\n if (index < current) return 'done';\n return 'upcoming';\n};\n\n// ─── StepIcon — reusable icon renderer ───────────────────────────────────────\n// Renders: checkmark (done, no custom icon) | custom icon | step number\n\ntype StepIconProps = {\n index: number;\n status: StepStatus;\n icon?: JSX.Element;\n class?: string;\n};\n\nconst StepIconContent: Component<StepIconProps> = p => (\n <div class={cn('ste15', p.class)}>\n <Show\n when={p.status === 'done' && !p.icon}\n fallback={\n <Show when={p.icon} fallback={<span class=\"ste17\">{p.index + 1}</span>}>\n {p.icon}\n </Show>\n }\n >\n <Check size={16} stroke-width={3} />\n </Show>\n </div>\n);\n\n// ─── Internal props shared across sub-components ──────────────────────────────\n\ntype InternalProps = {\n items: StepItem[];\n current: number;\n disabled: number[];\n activeIndex?: number[];\n isVertical: boolean;\n colorClass: string;\n onStepClick: (index: number) => void;\n class?: StepsProps['class'];\n};\n\n// ─── Sub-component: Default ───────────────────────────────────────────────────\n\nconst TypeDefault: Component<InternalProps> = p => (\n <div class={cn('ste01 ste02', p.colorClass, p.isVertical ? 'ste06' : 'ste05', p.class?.root)}>\n <For each={p.items}>\n {(item, i) => {\n const status = () => getStepStatus(i(), p.current, p.disabled, p.activeIndex);\n\n return (\n <>\n {/* Connector nằm giữa hai step (horizontal), trước mỗi step từ index 1 */}\n <Show when={!p.isVertical && i() > 0}>\n <div class={cn('ste21 ste22', `ste-s-${status()}`, p.class?.connector)} />\n </Show>\n\n <div\n class={cn('ste07 ste08', `ste-s-${status()}`, p.class?.step)}\n data-status={status()}\n onClick={() => status() !== 'disabled' && p.onStepClick(i())}\n >\n {/* ── Vertical: icon col + connector ── */}\n <Show when={p.isVertical}>\n <div class=\"ste16\">\n <StepIconContent\n index={i()}\n status={status()}\n icon={item.icon}\n class={p.class?.icon}\n />\n <Show when={i() < p.items.length - 1}>\n <div class={cn('ste21 ste23', p.class?.connector)} />\n </Show>\n </div>\n </Show>\n\n {/* ── Horizontal: chỉ icon (connector đã là sibling bên ngoài) ── */}\n <Show when={!p.isVertical}>\n <StepIconContent\n index={i()}\n status={status()}\n icon={item.icon}\n class={p.class?.icon}\n />\n </Show>\n\n {/* ── Content ── */}\n <div class=\"ste18\">\n <Show when={item.title}>\n <div class={cn('ste19', p.class?.title)}>{item.title}</div>\n </Show>\n <Show when={item.description}>\n <div class={cn('ste20', p.class?.description)}>{item.description}</div>\n </Show>\n </div>\n </div>\n </>\n );\n }}\n </For>\n </div>\n);\n\n// ─── Sub-component: Navigation ────────────────────────────────────────────────\n\nconst TypeNavigation: Component<InternalProps> = p => (\n <div class={cn('ste01 ste03', p.colorClass, p.isVertical ? 'ste06' : 'ste05', p.class?.root)}>\n <For each={p.items}>\n {(item, i) => {\n const status = () => getStepStatus(i(), p.current, p.disabled, p.activeIndex);\n\n return (\n <>\n {/* Separator giữa các step — horizontal only */}\n <Show when={!p.isVertical && i() > 0}>\n <span class=\"ste11\" aria-hidden=\"true\">\n <ArrowRight\n size={14}\n stroke-width={3}\n color={\n status() === 'active' || status() === 'done' ? 'var(--color)' : 'currentColor'\n }\n />\n </span>\n </Show>\n\n <div\n class={cn('ste07 ste09', `ste-s-${status()}`, p.class?.step)}\n data-status={status()}\n onClick={() => status() !== 'disabled' && p.onStepClick(i())}\n >\n <div class=\"ste10\">\n <StepIconContent\n index={i()}\n status={status()}\n icon={item.icon}\n class={p.class?.icon}\n />\n <div class=\"ste18\">\n <Show when={item.title}>\n <div class={cn('ste19', p.class?.title)}>{item.title}</div>\n </Show>\n <Show when={item.description}>\n <div class={cn('ste20', p.class?.description)}>{item.description}</div>\n </Show>\n </div>\n </div>\n </div>\n </>\n );\n }}\n </For>\n </div>\n);\n\n// ─── Sub-component: Dot ───────────────────────────────────────────────────────\n\nconst TypeDot: Component<InternalProps> = p => (\n <div class={cn('ste01 ste04', p.colorClass, p.isVertical ? 'ste06' : 'ste05', p.class?.root)}>\n <For each={p.items}>\n {(item, i) => {\n const status = () => getStepStatus(i(), p.current, p.disabled, p.activeIndex);\n\n return (\n <>\n {/* Connector sibling — horizontal only, trước mỗi step từ index 1 */}\n <Show when={!p.isVertical && i() > 0}>\n <div class={cn('ste21 ste22 ste24', `ste-s-${status()}`, p.class?.connector)} />\n </Show>\n\n <div\n class={cn('ste07 ste12', `ste-s-${status()}`, p.class?.step)}\n data-status={status()}\n onClick={() => status() !== 'disabled' && p.onStepClick(i())}\n >\n {/* ── Vertical: dot col + connector ── */}\n <Show when={p.isVertical}>\n <div class=\"ste13\">\n <div class={cn('ste14', p.class?.icon)} />\n <Show when={i() < p.items.length - 1}>\n <div class={cn('ste21 ste23', p.class?.connector)} />\n </Show>\n </div>\n </Show>\n\n {/* ── Horizontal: chỉ dot (connector là sibling bên ngoài) ── */}\n <Show when={!p.isVertical}>\n <div class={cn('ste14', p.class?.icon)} />\n </Show>\n\n {/* Content */}\n <div class=\"ste18\">\n <Show when={item.title}>\n <div class={cn('ste19', p.class?.title)}>{item.title}</div>\n </Show>\n <Show when={item.description}>\n <div class={cn('ste20', p.class?.description)}>{item.description}</div>\n </Show>\n </div>\n </div>\n </>\n );\n }}\n </For>\n </div>\n);\n\n// ─── Main Component ───────────────────────────────────────────────────────────\n\nexport const Steps: Component<StepsProps> = p => {\n p = mergeProps(\n {\n type: 'default',\n orientation: 'horizontal',\n color: 'primary',\n disabled: [],\n items: [],\n } as StepsProps,\n p,\n );\n\n const current = () => p.current?.() ?? 0;\n\n const resolvedItems = createMemo((): StepItem[] => {\n if (p.items && p.items.length > 0) return p.items;\n if (p.total && p.total > 0)\n return Array.from({ length: p.total }, (_, i) => ({ title: `Step ${i + 1}` }));\n return [];\n });\n\n const handleClick = (index: number) => {\n p.setCurrent?.(index);\n p.onChange?.(index);\n };\n\n const shared = createMemo(\n (): InternalProps => ({\n items: resolvedItems(),\n current: current(),\n disabled: p.disabled ?? [],\n activeIndex: p.activeIndex,\n isVertical: p.orientation === 'vertical',\n colorClass: getColor(p.color, 'color-primary'),\n onStepClick: handleClick,\n class: p.class,\n }),\n );\n\n return (\n <Show\n when={p.type === 'navigation'}\n fallback={\n <Show when={p.type === 'dot'} fallback={<TypeDefault {...shared()} />}>\n <TypeDot {...shared()} />\n </Show>\n }\n >\n <TypeNavigation {...shared()} />\n </Show>\n );\n};\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swap.js","names":["SolidComponent","cn","Component","SwapType","item1","item2","effect","onChange","value","Swap","p","_el$","_tmpl$","_el$2","firstChild","_el$3","nextSibling","_el$4","addEventListener","e","target","checked","_$insert","Element","_$effect","_$className"],"sources":["../../../src/components/swap/swap.tsx"],"sourcesContent":["import { SolidComponent } from '@/type';\nimport { cn } from '@/utils/cn';\nimport { Component } from 'solid-js';\n\ntype SwapType = {\n item1: SolidComponent;\n item2: SolidComponent;\n effect?: 'rotate' | 'flip' | 'none';\n onChange?: (value: boolean) => void;\n};\nexport const Swap: Component<SwapType> = p => {\n return (\n <label\n class={cn(\n 'swap',\n p.effect === 'flip' ? 'swap-flip' : p.effect === 'rotate' ? 'swap-rotate' : '',\n )}\n >\n <input\n type=\"checkbox\"\n onChange={e => {\n p?.onChange?.(e.target.checked);\n }}\n />\n <div class=\"swap-on\">{p.item1 as Element}</div>\n <div class=\"swap-off\">{p.item2 as Element}</div>\n <div class=\"swap-indeterminate\"></div>\n </label>\n );\n};\n"],"mappings":"+OAUaS,EAA4BC,QACvC,CAAA,IAAAC,EAAAC,GAAA,CAAAC,EAAAF,EAAAG,WAAAC,EAAAF,EAAAG,YAAAC,EAAAF,EAAAC,YAKK,OALLH,EAAAK,iBAAA,SASgBC,GAAK,CACbT,GAAGH,WAAWY,EAAEC,OAAOC,QAAQ,EAChC,CAAAC,EAAAP,MAEmBL,EAAEN,MAAgB,CAAAkB,EAAAL,MACjBP,EAAEL,MAAgB,CAAAmB,MAAAC,EAAAd,EAZlCV,EACL,OACAS,EAAEJ,SAAW,OAAS,YAAcI,EAAEJ,SAAW,SAAW,cAAgB,GAC7E,CAAA,CAAA,CAAAK,KAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"switch.js","names":["cn","cva","VariantProps","Component","createEffect","createSignal","mergeProps","Show","SwitchProps","variants","size","xs","sm","md","lg","xl","color","primary","secondary","accent","neutral","info","success","warning","error","SwitchVariantProps","Switch","props","p","className","defaultChecked","disabled","loading","const","internalChecked","setInternalChecked","isControlled","checked","undefined","syncControlledChecked","mergedDisabled","handleClick","e","MouseEvent","newChecked","onClick","onChange","_el$","_tmpl$2","_el$2","firstChild","$$click","_$insert","_$createComponent","when","children","_el$3","_tmpl$","IconLoading","_$effect","_p$","_v$","_v$2","_v$3","class","root","_v$4","_$setAttribute","t","a","_$className","o","_tmpl$3","_$delegateEvents"],"sources":["../../../src/components/switch/switch.tsx"],"sourcesContent":["import { cn } from '@/utils/cn';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { Component, createEffect, createSignal, mergeProps, Show } from 'solid-js';\nimport type { SwitchProps } from './switch.types';\n\nconst variants = cva('', {\n variants: {\n size: {\n xs: 'h-4 w-7',\n sm: 'h-5 w-9',\n md: 'h-6 w-11',\n lg: 'h-7 w-14',\n xl: 'h-8 w-16',\n },\n color: {\n primary: 'bg-primary text-primary',\n secondary: 'bg-secondary text-secondary',\n accent: 'bg-accent text-accent',\n neutral: 'bg-neutral text-neutral',\n info: 'bg-info text-info',\n success: 'bg-success text-success',\n warning: 'bg-warning text-warning',\n error: 'bg-error text-error',\n },\n },\n});\n\nexport type SwitchVariantProps = VariantProps<typeof variants>;\n\nexport const Switch: Component<SwitchProps> = props => {\n const p = mergeProps(\n {\n className: '',\n defaultChecked: false,\n disabled: false,\n loading: false,\n size: 'md' as const,\n color: 'primary' as const,\n },\n props,\n );\n\n const [internalChecked, setInternalChecked] = createSignal(p.defaultChecked);\n\n const isControlled = () => p.checked !== undefined;\n const checked = () => (isControlled() ? p.checked! : internalChecked());\n\n createEffect(function syncControlledChecked() {\n if (isControlled()) {\n setInternalChecked(p.checked!);\n }\n });\n\n const mergedDisabled = () => p.disabled || p.loading;\n\n const handleClick = (e: MouseEvent) => {\n if (mergedDisabled()) return;\n\n const newChecked = !checked();\n\n if (!isControlled()) {\n setInternalChecked(newChecked);\n }\n\n p.onClick?.(newChecked);\n p.onChange?.(newChecked);\n };\n\n return (\n <button\n type=\"button\"\n role=\"switch\"\n aria-checked={checked()}\n disabled={mergedDisabled()}\n class={cn(\n 'sui_switch @container relative flex cursor-pointer items-center rounded-full border-2 border-transparent p-px',\n variants({ size: p.size, color: p.color }),\n 'transition duration-400',\n !checked() && 'bg-gray-300',\n mergedDisabled() && 'cursor-not-allowed opacity-50',\n p.class?.root,\n )}\n onClick={handleClick}\n >\n <div\n class={cn(\n 'sui_thumb aspect-square h-full rounded-full bg-white transition-transform duration-400 ease-in-out',\n\n checked() && 'translate-x-[calc(100cqw-100%)]',\n )}\n >\n <Show when={p.loading}>\n <span class=\"flex size-full animate-spin\">\n <IconLoading />\n </span>\n </Show>\n </div>\n </button>\n );\n};\n\nconst IconLoading = () => {\n return (\n <svg class=\"size-full\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\">\n <circle class=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"#ccc\" stroke-width=\"4\"></circle>\n <path\n class=\"opacity-90\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n ></path>\n </svg>\n );\n};\n"],"mappings":"8tBAKMS,EAAWR,EAAI,GAAI,CACvBQ,SAAU,CACRC,KAAM,CACJC,GAAI,UACJC,GAAI,UACJC,GAAI,WACJC,GAAI,WACJC,GAAI,WACL,CACDC,MAAO,CACLC,QAAS,0BACTC,UAAW,8BACXC,OAAQ,wBACRC,QAAS,0BACTC,KAAM,oBACNC,QAAS,0BACTC,QAAS,0BACTC,MAAO,sBACT,CACF,CACD,CAAC,CAIWE,EAAiCC,GAAS,CACrD,IAAMC,EAAItB,EACR,CACEuB,UAAW,GACXC,eAAgB,GAChBC,SAAU,GACVC,QAAS,GACTtB,KAAM,KACNM,MAAO,UACR,CACDW,EACD,CAEK,CAACO,EAAiBC,GAAsB9B,EAAauB,EAAEE,eAAe,CAEtEM,MAAqBR,EAAES,UAAYC,IAAAA,GACnCD,MAAiBD,GAAc,CAAGR,EAAES,QAAWH,GAAkB,CAEvE9B,EAAa,UAAiC,CACxCgC,GAAc,EAChBD,EAAmBP,EAAES,QAAS,EAEhC,CAEF,IAAMG,MAAuBZ,EAAEG,UAAYH,EAAEI,QAEvCS,EAAeC,GAAkB,CACrC,GAAIF,GAAgB,CAAE,OAEtB,IAAMI,EAAa,CAACP,GAAS,CAExBD,GAAc,EACjBD,EAAmBS,EAAW,CAGhChB,EAAEiB,UAAUD,EAAW,CACvBhB,EAAEkB,WAAWF,EAAW,EAG1B,WAAA,CAAA,IAAAG,EAAAC,GAAA,CAAAC,EAAAF,EAAAG,WAqBO,MArBPH,GAAAI,QAcaV,EAAWW,EAAAH,EAAAI,EASjB9C,EAAI,CAAA,IAAC+C,MAAI,CAAA,OAAE1B,EAAEI,SAAO,IAAAuB,UAAA,CAAA,IAAAC,EAAAC,GAAA,CAEL,OAFKL,EAAAI,EAAAH,EAEhBK,EAAW,EAAA,CAAA,CAAA,CAAAF,GAAA,CAAA,CAAA,CAAAG,EAAAC,GAAA,CAAA,IAAAC,EArBJxB,GAAS,CAAAyB,EACbtB,GAAgB,CAAAuB,EACnB/D,EACL,gHACAS,EAAS,CAAEC,KAAMkB,EAAElB,KAAMM,MAAOY,EAAEZ,MAAO,CAAC,CAC1C,0BACA,CAACqB,GAAS,EAAI,cACdG,GAAgB,EAAI,gCACpBZ,EAAEoC,OAAOC,KACV,CAAAC,EAIQlE,EACL,qGAEAqC,GAAS,EAAI,kCACd,CAAA,OAAAwB,IAAAD,EAAAlB,GAAAyB,EAAApB,EAAA,eAAAa,EAAAlB,EAAAmB,EAAA,CAAAC,IAAAF,EAAAQ,IAAArB,EAAAhB,SAAA6B,EAAAQ,EAAAN,GAAAC,IAAAH,EAAAS,GAAAC,EAAAvB,EAAAa,EAAAS,EAAAN,EAAA,CAAAG,IAAAN,EAAAW,GAAAD,EAAArB,EAAAW,EAAAW,EAAAL,EAAA,CAAAN,GAAA,CAAAlB,EAAAJ,IAAAA,GAAA8B,EAAA9B,IAAAA,GAAA+B,EAAA/B,IAAAA,GAAAiC,EAAAjC,IAAAA,GAAA,CAAA,CAAAS,KAAA,EAYHW,MACJc,GAAA,CAUAC,EAAA,CAAA,QAAA,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tab.js","names":["cn","getColor","Tooltip","TooltipDefaultProps","cva","Pin","PinOff","Plus","X","Component","createEffect","createMemo","createSignal","createUniqueId","For","JSX","mergeProps","on","Show","TabItem","TabProps","BaseColorProps","headerVariant","variants","lift","box","border","tabPlacement","horizontal","vertical","position","top","bottom","left","right","compoundVariants","class","DEFAULT_PROPS","const","align","canAdd","canPin","canRename","preRender","color","TOOLTIP_CHAR_THRESHOLD","Tab","props","p","tabRootId","activeKey","setActiveKey","defaultActiveKey","items","key","renderedTabs","setRenderedTabs","Set","editingKey","setEditingKey","editingValue","setEditingValue","computedPosition","sortedItems","pinned","filter","item","unpinned","hasPinnedAndUnpinned","hasPinned","some","hasUnpinned","firstUnpinnedIndex","findIndex","length","find","has","prev","handleTabClick","disabled","onChange","handleMouseDown","e","MouseEvent","button","closable","preventDefault","handleRemoveTab","handleAddTab","onAdd","newItem","setItems","newKey","label","children","_tmpl$","i","onRemove","result","currentItems","currentIndex","nextItem","newSet","delete","handlePinTab","stopPropagation","newPinned","map","onPin","handleDoubleClick","handleRenameSubmit","newLabel","trim","onRename","handleRenameKeyDown","KeyboardEvent","shouldRenderContent","isActive","itemPreRender","_el$2","_tmpl$5","_el$3","firstChild","_el$5","nextSibling","_$setAttribute","_$insert","_$createComponent","each","index","when","_$memo","_tmpl$6","_el$0","_tmpl$10","$$dblclick","$$mousedown","$$click","icon","_el$1","_tmpl$7","Element","fallback","useTooltip","_el$14","_tmpl$11","needsTooltip","_el$15","opts","tooltipOptions","isCustom","customContent","tooltipProps","Omit","type","content","_$mergeProps","_el$16","_el$10","_tmpl$8","$$keydown","addEventListener","$$input","currentTarget","value","_$use","el","setTimeout","focus","select","_$effect","_el$11","_tmpl$1","_el$12","_tmpl$9","size","_el$13","_tmpl$0","_$className","_el$4","_tmpl$2","addButton","_el$6","_tmpl$4","_el$7","_el$8","_tmpl$3","_el$17","_p$","_v$","root","_v$2","header","_v$3","t","a","undefined","_$delegateEvents"],"sources":["../../../src/components/tab/tab.tsx"],"sourcesContent":["import { cn } from '@/utils/cn';\nimport { getColor } from '@/utils/helper';\nimport { Tooltip } from '@components/tooltip';\nimport type { TooltipDefaultProps } from '@components/tooltip';\nimport { cva } from 'class-variance-authority';\nimport Pin from 'lucide-solid/icons/pin';\nimport PinOff from 'lucide-solid/icons/pin-off';\nimport Plus from 'lucide-solid/icons/plus';\nimport X from 'lucide-solid/icons/x';\nimport {\n Component,\n createEffect,\n createMemo,\n createSignal,\n createUniqueId,\n For,\n JSX,\n mergeProps,\n on,\n Show,\n} from 'solid-js';\nimport { TabItem, TabProps } from './tab.types';\nimport { BaseColorProps } from '@/type';\n\nconst headerVariant = cva('', {\n variants: {\n variants: {\n lift: '',\n box: '',\n border: 'rounded-none p-0',\n },\n tabPlacement: { horizontal: '', vertical: '' },\n position: { top: '', bottom: '', left: '', right: '' },\n },\n compoundVariants: [\n {\n variants: 'lift',\n position: 'top',\n class: 'pb-0',\n },\n {\n variants: 'lift',\n position: 'bottom',\n class: 'pt-0',\n },\n {\n variants: 'lift',\n tabPlacement: 'vertical',\n position: 'left',\n class: 'pr-0 overflow-x-hidden',\n },\n {\n variants: 'lift',\n tabPlacement: 'vertical',\n position: 'right',\n class: 'pl-0 overflow-x-hidden',\n },\n ],\n});\n\nconst DEFAULT_PROPS = {\n tabPlacement: 'horizontal' as const,\n position: 'top' as const,\n align: 'left' as const,\n variants: 'box' as const,\n canAdd: true,\n canPin: false,\n canRename: true,\n preRender: false,\n color: 'primary',\n};\n\nconst TOOLTIP_CHAR_THRESHOLD = 19;\n\nexport const Tab: Component<TabProps> = props => {\n const p = mergeProps(DEFAULT_PROPS, props);\n const tabRootId = createUniqueId();\n\n // Active tab key\n const [activeKey, setActiveKey] = createSignal<string>(\n p.defaultActiveKey || p.items()[0]?.key || '',\n );\n\n // Rendered tabs tracking (for lazy rendering)\n const [renderedTabs, setRenderedTabs] = createSignal<Set<string>>(new Set());\n\n // Editing state for rename feature\n const [editingKey, setEditingKey] = createSignal<string | null>(null);\n const [editingValue, setEditingValue] = createSignal<string>('');\n\n // Compute position based on tabPlacement\n const computedPosition = createMemo(() => {\n if (p.tabPlacement === 'vertical') {\n return p.position === 'left' || p.position === 'right' ? p.position : 'left';\n }\n return p.position === 'top' || p.position === 'bottom' ? p.position : 'top';\n });\n\n // Sort items: pinned first, then unpinned (maintain order within each group)\n const sortedItems = createMemo(() => {\n const items = p.items();\n const pinned = items.filter(item => item.pinned);\n const unpinned = items.filter(item => !item.pinned);\n return [...pinned, ...unpinned];\n });\n\n // Check if there are both pinned and unpinned items (for separator)\n const hasPinnedAndUnpinned = createMemo(() => {\n const items = p.items();\n const hasPinned = items.some(item => item.pinned);\n const hasUnpinned = items.some(item => !item.pinned);\n return hasPinned && hasUnpinned;\n });\n\n // Get first unpinned item index in sorted list\n const firstUnpinnedIndex = createMemo(() => {\n const items = sortedItems();\n return items.findIndex(item => !item.pinned);\n });\n\n // Update active key when items change\n createEffect(\n on(\n () => p.items(),\n items => {\n if (items.length > 0 && !items.find(item => item.key === activeKey())) {\n setActiveKey(items[0].key);\n }\n },\n ),\n );\n\n // Mark tab as rendered when it becomes active\n createEffect(\n on(activeKey, key => {\n if (key && !renderedTabs().has(key)) {\n setRenderedTabs(prev => new Set([...prev, key]));\n }\n }),\n );\n\n // Handle tab click\n const handleTabClick = (item: TabItem) => {\n if (item.disabled) return;\n setActiveKey(item.key);\n p.onChange?.(item.key);\n };\n\n // Handle middle mouse click to close tab\n const handleMouseDown = (e: MouseEvent, item: TabItem) => {\n if (e.button === 1 && item.closable !== false) {\n e.preventDefault();\n handleRemoveTab(item);\n }\n };\n\n // Handle add tab\n const handleAddTab = () => {\n if (p.onAdd) {\n const newItem = p.onAdd();\n if (newItem) {\n p.setItems(prev => [...prev, newItem]);\n setActiveKey(newItem.key);\n }\n } else {\n // Default behavior: create a new tab\n const newKey = createUniqueId();\n const newItem: TabItem = {\n key: newKey,\n label: `Tab ${p.items().length + 1}`,\n children: <div>New Tab Content</div>,\n };\n p.setItems(prev => [...prev, newItem]);\n setActiveKey(newKey);\n }\n };\n\n // Handle remove tab\n const handleRemoveTab = async (item: TabItem) => {\n if (item.closable === false) return;\n\n const label = item.label || `Tab ${p.items().findIndex(i => i.key === item.key) + 1}`;\n\n if (p.onRemove) {\n const result = await p.onRemove(item.key, label);\n if (result === false) return;\n }\n\n const currentItems = p.items();\n const currentIndex = currentItems.findIndex(i => i.key === item.key);\n\n // If removing active tab, switch to adjacent tab\n if (activeKey() === item.key) {\n const nextItem = currentItems[currentIndex + 1] || currentItems[currentIndex - 1];\n if (nextItem) {\n setActiveKey(nextItem.key);\n }\n }\n\n p.setItems(prev => prev.filter(i => i.key !== item.key));\n\n // Clean up rendered tabs\n setRenderedTabs(prev => {\n const newSet = new Set(prev);\n newSet.delete(item.key);\n return newSet;\n });\n };\n\n // Handle pin/unpin tab\n const handlePinTab = (item: TabItem, e: MouseEvent) => {\n e.stopPropagation();\n const newPinned = !item.pinned;\n\n p.setItems(prev => prev.map(i => (i.key === item.key ? { ...i, pinned: newPinned } : i)));\n\n p.onPin?.(item.key, newPinned);\n };\n\n // Handle double-click to start editing\n const handleDoubleClick = (item: TabItem, e: MouseEvent) => {\n if (!p.canRename || item.disabled) return;\n e.stopPropagation();\n const label = item.label || `Tab ${p.items().findIndex(i => i.key === item.key) + 1}`;\n setEditingKey(item.key);\n setEditingValue(label);\n };\n\n // Handle rename input blur/submit\n const handleRenameSubmit = (item: TabItem) => {\n const newLabel = editingValue().trim();\n if (newLabel && newLabel !== item.label) {\n p.setItems(prev => prev.map(i => (i.key === item.key ? { ...i, label: newLabel } : i)));\n p.onRename?.(item.key, newLabel);\n }\n setEditingKey(null);\n setEditingValue('');\n };\n\n // Handle rename input keydown\n const handleRenameKeyDown = (item: TabItem, e: KeyboardEvent) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n handleRenameSubmit(item);\n } else if (e.key === 'Escape') {\n e.preventDefault();\n setEditingKey(null);\n setEditingValue('');\n }\n };\n\n // Check if tab should be rendered\n const shouldRenderContent = (item: TabItem) => {\n const isActive = activeKey() === item.key;\n const itemPreRender = item.pinned ? true : p.preRender;\n\n if (itemPreRender) {\n return renderedTabs().has(item.key) || isActive;\n }\n return isActive;\n };\n\n return (\n <div\n id={tabRootId}\n class={cn(\n 'tab01',\n getColor(p.color!),\n `tab${p.variants === 'box' ? '23' : p.variants === 'lift' ? '24' : '25'}`,\n `tab${p.tabPlacement === 'horizontal' ? '17' : '18'}`,\n `tab${computedPosition() === 'top' ? '19' : computedPosition() === 'bottom' ? '20' : computedPosition() === 'left' ? '21' : '22'}`,\n p.class?.root,\n )}\n >\n {/* Tab Header */}\n <div\n class={cn(\n 'tab02',\n `tab${p.align === 'left' ? '26' : p.align === 'center' ? '27' : '28'}`,\n headerVariant({\n variants: p.variants,\n tabPlacement: p.tabPlacement,\n position: p.position,\n }),\n p.class?.header,\n )}\n >\n <For each={sortedItems()}>\n {(item, index) => (\n <>\n {/* Separator between pinned and unpinned */}\n <Show when={hasPinnedAndUnpinned() && index() === firstUnpinnedIndex()}>\n <div class=\"tab14\" />\n </Show>\n\n {/* Tab Item */}\n <div\n class={cn(\n 'tab03',\n editingKey() === item.key && 'bg-base-100',\n activeKey() === item.key && 'tab04',\n item.pinned && 'tab05',\n item.disabled && 'pointer-events-none opacity-50',\n p.class?.item,\n )}\n onClick={() => handleTabClick(item)}\n onMouseDown={e => handleMouseDown(e, item)}\n onDblClick={e => handleDoubleClick(item, e)}\n >\n {/* Tab Icon */}\n <Show when={item.icon}>\n <span class=\"tab06\">{item.icon as Element}</span>\n </Show>\n\n {/* Tab Label */}\n <Show\n when={editingKey() === item.key}\n fallback={\n <Show\n when={p.useTooltip}\n fallback={\n <span class=\"tab07\">\n {item.label || `Tab ${p.items().findIndex(i => i.key === item.key) + 1}`}\n </span>\n }\n >\n {(() => {\n const label =\n item.label || `Tab ${p.items().findIndex(i => i.key === item.key) + 1}`;\n const needsTooltip = label.length > TOOLTIP_CHAR_THRESHOLD;\n if (!needsTooltip) {\n return <span class=\"tab07\">{label}</span>;\n }\n const opts = p.tooltipOptions ?? {};\n const isCustom = 'customContent' in opts && opts.customContent != null;\n const tooltipProps: Omit<TooltipDefaultProps, 'children'> = isCustom\n ? {\n type: 'default',\n position: 'top' as const,\n color: p?.color as BaseColorProps,\n customContent: (opts as { customContent: JSX.Element }).customContent,\n }\n : {\n type: 'default',\n position: 'top' as const,\n color: p?.color as BaseColorProps,\n content: (opts as { content?: string }).content ?? label,\n };\n return (\n <Tooltip {...(tooltipProps as TooltipDefaultProps)}>\n <span class=\"tab07\">{label}</span>\n </Tooltip>\n );\n })()}\n </Show>\n }\n >\n <input\n ref={el =>\n setTimeout(() => {\n el?.focus();\n el?.select();\n }, 0)\n }\n type=\"text\"\n class=\"tab16\"\n value={editingValue()}\n onInput={e => setEditingValue(e.currentTarget.value)}\n onBlur={() => handleRenameSubmit(item)}\n onKeyDown={e => handleRenameKeyDown(item, e)}\n onClick={e => e.stopPropagation()}\n />\n </Show>\n\n {/* Action Buttons */}\n <Show when={p.canPin || item.closable !== false}>\n <div class=\"tab08\">\n {/* Pin Button */}\n <Show when={p.canPin}>\n <button\n class=\"tab09 tab10\"\n onClick={e => handlePinTab(item, e)}\n title={item.pinned ? 'Unpin tab' : 'Pin tab'}\n >\n <Show when={item.pinned} fallback={<Pin size={12} />}>\n <PinOff size={12} />\n </Show>\n </button>\n </Show>\n\n {/* Close Button */}\n <Show when={item.closable !== false}>\n <button\n class=\"tab09 tab11\"\n onClick={e => {\n e.stopPropagation();\n handleRemoveTab(item);\n }}\n title=\"Close tab\"\n >\n <X size={12} />\n </button>\n </Show>\n </div>\n </Show>\n </div>\n </>\n )}\n </For>\n\n {/* Add Button */}\n <Show when={p.canAdd}>\n <button\n class={cn('tab12', p.class?.addButton)}\n onClick={handleAddTab}\n title=\"Add new tab\"\n >\n <Plus size={14} />\n </button>\n </Show>\n </div>\n\n {/* Tab Content */}\n <div class={cn('tab13', p.class?.content)}>\n <Show when={p.items().length === 0}>\n <div class=\"tab15\">\n <span>No tabs available</span>\n <Show when={p.canAdd}>\n <button class=\"tab12\" onClick={handleAddTab}>\n <Pin size={14} />\n </button>\n </Show>\n </div>\n </Show>\n\n <For each={p.items()}>\n {item => (\n <Show when={shouldRenderContent(item)}>\n <div class={cn('tab29 size-full', activeKey() !== item.key && 'hidden')}>\n {item.children as Element}\n </div>\n </Show>\n )}\n </For>\n </div>\n </div>\n );\n};\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.js","names":["cn","getColor","ColumnDef","createSolidTable","flexRender","getCoreRowModel","getFilteredRowModel","getPaginationRowModel","getSortedRowModel","createVirtualizer","ChevronDown","ChevronRight","ChevronsUpDown","ChevronUp","createEffect","createMemo","createSignal","createUniqueId","For","Match","mergeProps","on","onCleanup","onMount","Show","Switch","JSX","Button","Pagination","Tooltip","TableBorder","TableCellSpanResult","TableColumnFixed","TableExpandedOptions","TableProps","TableScroll","TableSelectionOptions","TableStyleProps","TableVirtualOptions","TableZebra","normalizeBorder","border","undefined","outer","horizontal","vertical","normalizeZebra","zebra","cols","rows","TableSizeClass","xs","sm","md","lg","xl","const","getTableClass","opts","classes","push","size","join","FixedInfo","fixed","offset","isLastStart","isFirstEnd","computeFixedColumnInfo","columns","id","width","Map","result","leftOffset","lastStartId","col","set","rightOffset","firstEndId","i","length","info","get","toCssValue","val","SELECTION_COLUMN_ID","processSelectionColumns","TData","selectionOptions","foundFirst","processed","filter","meta","_selection","EXPANDED_COLUMN_ID","extractExpandedOptions","_expanded","Table","rawProps","p","enableSorting","enableColumnFilters","resizable","showHeader","color","rounded","processedColumns","finalColumns","expandedOptions","colsWithExplicitSize","Set","map","accessorKey","resolvedEnableRowSelection","enableRowSelection","enableMultiRowSelection","type","hasExpandableRows","internalExpandedKeys","setInternalExpandedKeys","defaultExpandedRowKeys","expandAllApplied","expandedKeys","expandedRowKeys","defaultExpandAllRows","allKeys","table","getRowModel","row","isRowExpanded","rowId","includes","toggleRowExpanded","record","currentKeys","isExpanded","newKeys","k","onExpand","onExpandedRowsChange","internalData","setInternalData","data","defer","getVirtualData","paginationProps","isMultiSortEvent","getRowId","_expandApi","state","sorting","columnFilters","globalFilter","rowSelection","columnVisibility","pagination","options","onSortingChange","onColumnFiltersChange","onGlobalFilterChange","onRowSelectionChange","onColumnVisibilityChange","_","rest","isEmpty","hasFixedColumns","some","scrollX","scroll","x","scrollXWrapper","scrollXTable","sxWidths","scrollXColumnWidths","getAllLeafColumns","total","reduce","sum","getSize","columnWidths","scrollY","y","hasScroll","hasScrollX","hasScrollY","normalizedVirtual","v","virtual","itemSize","overscan","isVirtual","wrapperEl","HTMLDivElement","headerWrapperEl","rowVirtualizer","HTMLTableRowElement","count","getScrollElement","estimateSize","measureElement","el","height","getBoundingClientRect","next","nextElementSibling","classList","contains","virtualTopPadding","items","getVirtualItems","start","virtualBottomPadding","totalSize","getTotalSize","end","isSortingLoading","setIsSortingLoading","_sortTimer","ReturnType","setTimeout","clearSortTimer","clearTimeout","triggerVirtualSort","e","MouseEvent","columnId","column","getColumn","getCanSort","t0","Date","now","getToggleSortingHandler","elapsed","delay","Math","max","scrollTop","_autoLoadChain","Promise","resolve","isFetchingMore","setIsFetchingMore","callGetVirtualData","then","newRows","prev","finally","autoFillViewport","loadingMore","queueMicrotask","isConnected","scrollHeight","clientHeight","notifyTableReady","onTableReady","resolveBodySpan","cell","Cell","rowIndex","perCol","columnDef","onCell","tableEl","HTMLTableElement","bodyTableEl","tbodyId","setColumnWidths","Record","resizingIndex","setResizingIndex","handlePositions","setHandlePositions","left","top","colIndex","dataColumnSelector","getDataColumns","colMinWidth","minWidth","min","snapshotColumnWidths","ths","querySelectorAll","HTMLTableCellElement","widths","forEach","allThsTotal","Array","from","th","excess","lastColId","updateHandlePositions","handleTop","handleHeight","hdrRect","bodyRect","tableRect","positions","enableResizing","thRect","right","handleResizeStart","preventDefault","stopPropagation","lastColIndex","isLastCol","colId","startWidths","startX","clientX","startWidth","onMouseMove","ev","totalWidth","Object","values","a","b","otherCols","slice","otherMinTotal","rawDelta","newLastWidth","remainingWidth","perColWidth","newWidths","nextColIndex","nextColId","nextColStartWidth","nextColMinWidth","minDelta","maxDelta","clampedDelta","onMouseUp","document","removeEventListener","documentElement","remove","addEventListener","add","handleResizeDblClick","currentWidths","keys","equalWidth","w1","w2","half","newW1","newW2","hasResizeWidths","resizeTableWidth","declaredCols","has","undeclaredCols","declaredTotal","numUndeclared","undeclaredWidth","remaining","useFixedLayout","measuredWidths","setMeasuredWidths","measureColumnWidths","offsetWidth","fixedColumnInfo","colData","getFixedCellStyle","getFixedCellClass","AlignHeaderClass","center","AlignCellClass","AlignTdStyle","getColAlign","align","hasCellTooltip","tooltip","wrapCellContent","cellValue","content","Element","tooltipOpts","rawContent","resolvedContent","tooltipProps","containerId","position","class","root","_$createComponent","_$mergeProps","children","handleTableClick","target","HTMLElement","isOwnElement","t","closest","dataset","selectionTd","tr","getRow","getCanSelect","toggleSelected","expandTd","expandable","rowExpandable","original","index","onRowClick","window","passive","capture","removeWindowScrollListener","observer","ResizeObserver","observe","disconnectResizeObserver","disconnect","handleScroll","threshold","removeScrollListener","syncHeaderScroll","scrollLeft","_el$","_tmpl$9","_el$2","firstChild","_el$8","_el$9","_$insert","when","_$memo","onChange","page","setPageIndex","getState","pageSize","setPageSize","headerPanel","_el$3","_tmpl$","_$effect","_$className","_el$4","_tmpl$3","_el$5","_el$7","_$use","$$click","_ref$","_el$6","_tmpl$2","each","isNonResizable","_el$21","_tmpl$0","_$p","_$style","getHeaderGroups","headerGroup","groupIndex","totalRows","earlyRenderedCols","flatMap","g","headers","h","isPlaceholder","getLeafColumns","_el$22","_tmpl$1","header","isEarlyLeaf","rowSpanVal","headerSpan","onHeaderCell","colSpan","finalColSpan","finalRowSpan","rowSpan","_el$23","_tmpl$12","_el$24","_el$25","_$setAttribute","getContext","_el$26","_tmpl$11","fallback","getIsSorted","getSortIndex","_el$27","_tmpl$10","_p$","_v$14","_v$15","_v$16","_v$17","o","headerRow","_v$","_v$2","_v$3","_v$4","thead","_el$0","_el$28","_el$1","_tmpl$4","_el$29","_el$30","_el$31","_el$32","_el$33","_el$34","_v$18","_v$19","_v$20","_v$21","_el$35","_tmpl$8","_el$36","_tmpl$13","_el$37","emptyContent","_v$22","getAllColumns","_v$23","empty","expanded","_el$38","getVisibleCells","isSpecial","hasTooltip","span","_el$41","_tmpl$15","getValue","_el$42","_v$26","td","_v$27","_v$28","_v$29","_v$24","bodyRow","getIsSelected","_v$25","_el$39","_tmpl$14","_el$40","expandedRowRender","tbody","_el$43","_tmpl$16","_el$44","_el$45","_v$30","_v$31","_$setStyleProperty","_el$10","_el$11","_tmpl$5","_el$12","_v$5","_v$6","virtualRow","trEl","hasAttribute","_el$46","_el$49","_el$50","_v$35","_v$36","_v$32","_v$33","_v$34","_el$47","_el$48","_el$13","_el$14","_v$7","_v$8","_el$15","_tmpl$6","_el$16","_el$17","_tmpl$7","_el$18","_el$19","variant","loading","onClick","pos","_el$51","$$dblclick","$$mousedown","_v$37","_v$38","_v$39","_v$40","footerPanel","_el$20","tfoot","_v$9","_v$0","_v$1","_v$10","_v$11","_v$12","_v$13","n","s","Selection","hideSelectAll","title","_el$52","_tmpl$17","_$addEventListener","getToggleAllRowsSelectedHandler","syncIndeterminate","indeterminate","getIsSomeRowsSelected","checked","getIsAllRowsSelected","renderCell","_el$53","_tmpl$18","_el$54","_tmpl$19","getToggleSelectedHandler","disabled","_el$55","_tmpl$20","Expanded","api","_el$56","_tmpl$21","expandIcon","_$delegateEvents"],"sources":["../../../src/components/table/table.tsx"],"sourcesContent":["import { cn } from '@/utils/cn';\nimport { getColor } from '@/utils/helper';\nimport type { ColumnDef } from '@tanstack/solid-table';\nimport {\n createSolidTable,\n flexRender,\n getCoreRowModel,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n} from '@tanstack/solid-table';\nimport { createVirtualizer } from '@tanstack/solid-virtual';\nimport ChevronDown from 'lucide-solid/icons/chevron-down';\nimport ChevronRight from 'lucide-solid/icons/chevron-right';\nimport ChevronsUpDown from 'lucide-solid/icons/chevrons-up-down';\nimport ChevronUp from 'lucide-solid/icons/chevron-up';\nimport {\n createEffect,\n createMemo,\n createSignal,\n createUniqueId,\n For,\n Match,\n mergeProps,\n on,\n onCleanup,\n onMount,\n Show,\n Switch,\n type JSX,\n} from 'solid-js';\nimport { Button } from '../button';\nimport { Pagination } from '../pagination';\nimport { Tooltip } from '../tooltip';\nimport type {\n TableBorder,\n TableCellSpanResult,\n TableColumnFixed,\n TableExpandedOptions,\n TableProps,\n TableScroll,\n TableSelectionOptions,\n TableStyleProps,\n TableVirtualOptions,\n TableZebra,\n} from './table.types';\n\nfunction normalizeBorder(border: TableBorder | boolean | undefined): TableBorder | undefined {\n if (border === undefined) return undefined;\n if (border === true) return { outer: true, horizontal: true, vertical: true };\n if (border === false) return { outer: false, horizontal: false, vertical: false };\n return border;\n}\n\nfunction normalizeZebra(zebra: TableZebra | boolean | undefined): TableZebra {\n switch (zebra) {\n case true:\n return { cols: false, rows: true };\n case false:\n case undefined:\n return { cols: false, rows: false };\n default:\n return zebra;\n }\n}\n\nconst TableSizeClass = {\n xs: 'tbe02',\n sm: 'tbe03',\n md: 'tbe04',\n lg: 'tbe05',\n xl: 'tbe06',\n} as const;\n\nfunction getTableClass(opts: TableStyleProps): string {\n const classes: string[] = [];\n const zebra = normalizeZebra(opts.zebra);\n if (zebra.rows) classes.push('tbe07');\n if (zebra.cols) classes.push('tbe08');\n if (opts.size) classes.push(TableSizeClass[opts.size]);\n return classes.join(' ');\n}\n\ntype FixedInfo = {\n fixed: TableColumnFixed;\n offset: number;\n isLastStart: boolean;\n isFirstEnd: boolean;\n};\n\nfunction computeFixedColumnInfo(\n columns: { id: string; fixed?: TableColumnFixed; width: number }[],\n): Map<string, FixedInfo> {\n const result = new Map<string, FixedInfo>();\n\n let leftOffset = 0;\n let lastStartId: string | null = null;\n for (const col of columns) {\n const fixed = col.fixed;\n if (fixed === true || fixed === 'start') {\n result.set(col.id, {\n fixed: 'start',\n offset: leftOffset,\n isLastStart: false,\n isFirstEnd: false,\n });\n leftOffset += col.width;\n lastStartId = col.id;\n }\n }\n\n let rightOffset = 0;\n let firstEndId: string | null = null;\n for (let i = columns.length - 1; i >= 0; i--) {\n const col = columns[i];\n const fixed = col.fixed;\n if (fixed === 'end') {\n result.set(col.id, {\n fixed: 'end',\n offset: rightOffset,\n isLastStart: false,\n isFirstEnd: false,\n });\n rightOffset += col.width;\n if (!firstEndId) firstEndId = col.id;\n }\n }\n\n if (lastStartId) {\n const info = result.get(lastStartId)!;\n info.isLastStart = true;\n }\n if (firstEndId) {\n const info = result.get(firstEndId)!;\n info.isFirstEnd = true;\n }\n\n return result;\n}\n\nfunction toCssValue(val: string | number): string {\n return typeof val === 'number' ? `${val}px` : val;\n}\n\nconst SELECTION_COLUMN_ID = '__selection__';\n\nfunction processSelectionColumns<TData>(columns: ColumnDef<TData, any>[]): {\n columns: ColumnDef<TData, any>[];\n selectionOptions: TableSelectionOptions<TData> | undefined;\n} {\n let selectionOptions: TableSelectionOptions<TData> | undefined;\n let foundFirst = false;\n\n const processed = columns.filter(col => {\n const meta = col.meta as any;\n if (meta?._selection) {\n if (foundFirst) return false;\n foundFirst = true;\n selectionOptions = meta._selection;\n return true;\n }\n return true;\n });\n\n return { columns: processed, selectionOptions };\n}\n\nconst EXPANDED_COLUMN_ID = '__expanded__';\n\nfunction extractExpandedOptions<TData>(\n columns: ColumnDef<TData, any>[],\n): TableExpandedOptions<TData> | undefined {\n for (const col of columns) {\n const meta = col.meta as any;\n if (meta?._expanded) return meta._expanded;\n }\n return undefined;\n}\n\nfunction Table<TData>(rawProps: TableProps<TData>) {\n const p = mergeProps(\n {\n zebra: { rows: true } as TableZebra | boolean,\n size: 'md' as const,\n enableSorting: false,\n enableColumnFilters: false,\n resizable: true,\n showHeader: true,\n color: 'info' as const,\n rounded: 'rounded-sm',\n } as TableProps<TData>,\n rawProps,\n );\n\n const processedColumns = createMemo(() => processSelectionColumns<TData>(p.columns));\n const selectionOptions = () => processedColumns().selectionOptions;\n const finalColumns = () => processedColumns().columns;\n\n const expandedOptions = createMemo(() => extractExpandedOptions<TData>(p.columns));\n\n const colsWithExplicitSize = createMemo(\n () =>\n new Set(\n p.columns\n .filter(col => 'size' in col)\n .map(col => ('accessorKey' in col ? col.accessorKey : 'id' in col ? col.id : undefined)),\n ),\n );\n\n const resolvedEnableRowSelection = () => {\n if (p.enableRowSelection !== undefined) return p.enableRowSelection;\n return !!selectionOptions();\n };\n\n const enableMultiRowSelection = () => {\n const opts = selectionOptions();\n if (!opts) return true;\n return opts.type !== 'radio';\n };\n\n const hasExpandableRows = () => !!expandedOptions();\n\n const [internalExpandedKeys, setInternalExpandedKeys] = createSignal<string[]>(\n p.defaultExpandedRowKeys ?? [],\n );\n\n let expandAllApplied = false;\n\n const expandedKeys = (): string[] => {\n if (!hasExpandableRows()) return [];\n\n if (p.expandedRowKeys !== undefined) return p.expandedRowKeys;\n\n if (p.defaultExpandAllRows && !expandAllApplied) {\n expandAllApplied = true;\n const allKeys = table.getRowModel().rows.map(row => row.id);\n setInternalExpandedKeys(allKeys);\n return allKeys;\n }\n\n return internalExpandedKeys();\n };\n\n const isRowExpanded = (rowId: string) => expandedKeys().includes(rowId);\n\n function toggleRowExpanded(rowId: string, record: TData) {\n const currentKeys = expandedKeys();\n const isExpanded = currentKeys.includes(rowId);\n const newKeys = isExpanded ? currentKeys.filter(k => k !== rowId) : [...currentKeys, rowId];\n\n if (p.expandedRowKeys === undefined) {\n setInternalExpandedKeys(newKeys);\n }\n\n p.onExpand?.(!isExpanded, record);\n p.onExpandedRowsChange?.(newKeys);\n }\n\n const [internalData, setInternalData] = createSignal<TData[]>(p.data as TData[]);\n\n createEffect(\n on(\n () => p.data,\n data => setInternalData(data as TData[]),\n { defer: true },\n ),\n );\n\n const table = createSolidTable<TData>({\n get data() {\n return p.getVirtualData ? internalData() : p.data;\n },\n get columns() {\n return finalColumns();\n },\n getCoreRowModel: getCoreRowModel(),\n getSortedRowModel: getSortedRowModel(),\n ...(p.enableColumnFilters && { getFilteredRowModel: getFilteredRowModel() }),\n\n ...(p.paginationProps !== undefined && {\n getPaginationRowModel: getPaginationRowModel(),\n }),\n get enableSorting() {\n return p.enableSorting;\n },\n\n isMultiSortEvent: () => true,\n get enableColumnFilters() {\n return p.enableColumnFilters;\n },\n get enableRowSelection() {\n return resolvedEnableRowSelection();\n },\n get enableMultiRowSelection() {\n return enableMultiRowSelection();\n },\n ...(p.getRowId && { getRowId: p.getRowId }),\n meta: {\n _expandApi: {\n isRowExpanded,\n toggleRowExpanded,\n },\n },\n state: {\n get sorting() {\n return p.sorting;\n },\n get columnFilters() {\n return p.columnFilters;\n },\n get globalFilter() {\n return p.globalFilter;\n },\n get rowSelection() {\n return p.rowSelection;\n },\n get columnVisibility() {\n return p.columnVisibility;\n },\n get pagination() {\n return p.pagination;\n },\n ...(p.options?.state || {}),\n },\n ...(p.onSortingChange && { onSortingChange: p.onSortingChange }),\n ...(p.onColumnFiltersChange && { onColumnFiltersChange: p.onColumnFiltersChange }),\n ...(p.onGlobalFilterChange && { onGlobalFilterChange: p.onGlobalFilterChange }),\n ...(p.onRowSelectionChange && { onRowSelectionChange: p.onRowSelectionChange }),\n ...(p.onColumnVisibilityChange && { onColumnVisibilityChange: p.onColumnVisibilityChange }),\n ...(p.options &&\n (() => {\n const { state: _, ...rest } = p.options!;\n return rest;\n })()),\n });\n const border = () => normalizeBorder(p.border);\n\n const isEmpty = () => table.getRowModel().rows.length === 0;\n\n const hasFixedColumns = () => p.columns.some(col => col.meta?.fixed);\n\n const scrollX = () => (p.scroll as TableScroll | undefined)?.x;\n\n const scrollXWrapper = () => {\n const x = scrollX();\n if (x === undefined) return undefined;\n if (x === true || x === 'max-content') return undefined;\n return toCssValue(x);\n };\n\n const scrollXTable = () => {\n const x = scrollX();\n if (x === undefined) return undefined;\n if (x === 'max-content') return 'max-content';\n\n const sxWidths = scrollXColumnWidths();\n const cols = table.getAllLeafColumns();\n const total = cols.reduce((sum, col) => {\n if (col.id === SELECTION_COLUMN_ID || col.id === EXPANDED_COLUMN_ID) {\n return sum + col.getSize();\n }\n if (sxWidths) return sum + (sxWidths[col.id] ?? 100);\n return sum + (columnWidths()[col.id] ?? col.getSize());\n }, 0);\n return `${total}px`;\n };\n\n const scrollY = () => {\n const y = p.scroll?.y;\n if (y === undefined) return undefined;\n return toCssValue(y);\n };\n\n const hasScroll = () => scrollX() !== undefined || p.scroll?.y !== undefined;\n const hasScrollX = () => scrollX() !== undefined;\n const hasScrollY = () => p.scroll?.y !== undefined;\n\n const normalizedVirtual = createMemo((): TableVirtualOptions | null => {\n const v = p.virtual;\n if (!v) return null;\n if (v === true) return { itemSize: 40, overscan: 5 };\n return { itemSize: v.itemSize ?? 40, overscan: v.overscan ?? 5 };\n });\n\n const isVirtual = () => !!normalizedVirtual();\n\n let wrapperEl!: HTMLDivElement;\n let headerWrapperEl!: HTMLDivElement;\n\n const rowVirtualizer = createVirtualizer<HTMLDivElement, HTMLTableRowElement>({\n get count() {\n return isVirtual() ? table.getRowModel().rows.length : 0;\n },\n getScrollElement: () => (isVirtual() ? wrapperEl : null),\n estimateSize: () => normalizedVirtual()?.itemSize ?? 40,\n get overscan() {\n return normalizedVirtual()?.overscan ?? 5;\n },\n\n measureElement: el => {\n let height = el.getBoundingClientRect().height;\n const next = el.nextElementSibling;\n if (next?.classList.contains('tbe31')) {\n height += next.getBoundingClientRect().height;\n }\n return height;\n },\n });\n\n const virtualTopPadding = createMemo(() => {\n if (!isVirtual()) return 0;\n const items = rowVirtualizer.getVirtualItems();\n return items.length > 0 ? (items[0]?.start ?? 0) : 0;\n });\n\n const virtualBottomPadding = createMemo(() => {\n if (!isVirtual()) return 0;\n const items = rowVirtualizer.getVirtualItems();\n const totalSize = rowVirtualizer.getTotalSize();\n return items.length > 0 ? totalSize - (items[items.length - 1]?.end ?? 0) : 0;\n });\n\n const [isSortingLoading, setIsSortingLoading] = createSignal(false);\n let _sortTimer: ReturnType<typeof setTimeout> | null = null;\n\n onCleanup(function clearSortTimer() {\n if (_sortTimer !== null) clearTimeout(_sortTimer);\n });\n\n function triggerVirtualSort(e: MouseEvent, columnId: string) {\n if (isSortingLoading()) return;\n const column = table.getColumn(columnId);\n if (!column?.getCanSort()) return;\n\n setIsSortingLoading(true);\n const t0 = Date.now();\n\n setTimeout(() => {\n column.getToggleSortingHandler()?.(e);\n\n const elapsed = Date.now() - t0;\n const delay = Math.max(0, 500 - elapsed);\n\n _sortTimer = setTimeout(() => {\n _sortTimer = null;\n setIsSortingLoading(false);\n\n if (wrapperEl) wrapperEl.scrollTop = 0;\n }, delay);\n }, 0);\n }\n\n let _autoLoadChain = Promise.resolve<void>(undefined);\n\n const [isFetchingMore, setIsFetchingMore] = createSignal(false);\n\n function callGetVirtualData() {\n if (!p.getVirtualData || isFetchingMore()) return;\n setIsFetchingMore(true);\n p.getVirtualData()\n .then(newRows => {\n setInternalData(prev => [...prev, ...newRows]);\n })\n .finally(() => {\n setIsFetchingMore(false);\n });\n }\n\n createEffect(function autoFillViewport() {\n if (!isVirtual() || p.loadingMore !== 'auto' || isFetchingMore()) return;\n\n _autoLoadChain = _autoLoadChain.then(\n () =>\n new Promise<void>(resolve => {\n queueMicrotask(() => {\n if (\n wrapperEl &&\n wrapperEl.isConnected &&\n p.getVirtualData &&\n p.loadingMore === 'auto' &&\n !isFetchingMore() &&\n wrapperEl.scrollHeight <= wrapperEl.clientHeight\n ) {\n callGetVirtualData();\n }\n resolve();\n });\n }),\n );\n });\n\n createEffect(function notifyTableReady() {\n p.onTableReady?.(table);\n });\n\n function resolveBodySpan(\n cell: import('@tanstack/solid-table').Cell<TData, unknown>,\n rowIndex: number,\n ): TableCellSpanResult {\n const perCol = cell.column.columnDef.meta?.onCell;\n if (perCol) return perCol(cell, rowIndex);\n return p.onCell?.(cell, rowIndex) ?? {};\n }\n\n let tableEl!: HTMLTableElement;\n let bodyTableEl!: HTMLTableElement;\n const tbodyId = createUniqueId();\n\n const [columnWidths, setColumnWidths] = createSignal<Record<string, number>>({});\n\n const [resizingIndex, setResizingIndex] = createSignal(-1);\n\n const [handlePositions, setHandlePositions] = createSignal<\n { left: number; top: number; height: number; colIndex: number }[]\n >([]);\n\n // When scroll.x is set, resizable is always disabled (types enforce this, but guard at runtime too)\n const resizable = createMemo(() => scrollX() === undefined && p.resizable !== false);\n\n const dataColumnSelector = 'thead tr:first-child th:not(.tbe23):not(.tbe22)';\n\n function getDataColumns() {\n return table\n .getAllLeafColumns()\n .filter(col => col.id !== EXPANDED_COLUMN_ID && col.id !== SELECTION_COLUMN_ID);\n }\n\n /** Effective minimum width: the smaller of the column's declared size and the meta minWidth (default 100). */\n function colMinWidth(col: {\n getSize(): number;\n columnDef: { meta?: { minWidth?: number } };\n }): number {\n return Math.min(col.getSize(), col.columnDef.meta?.minWidth ?? 100);\n }\n\n function snapshotColumnWidths(): Record<string, number> {\n const ths = tableEl.querySelectorAll<HTMLTableCellElement>(dataColumnSelector);\n const cols = getDataColumns();\n const widths: Record<string, number> = {};\n cols.forEach((col, i) => {\n if (ths[i]) {\n // Use getBoundingClientRect for sub-pixel precision — offsetWidth is an integer\n // and accumulated rounding can make the sum exceed the table width by 1-2px,\n // which triggers a spurious horizontal scrollbar when col widths are made explicit.\n widths[col.id] = ths[i].getBoundingClientRect().width;\n }\n });\n // Safety: trim any remaining excess (e.g. from non-data columns or float imprecision)\n // so the colgroup widths never exceed the table's own rendered width.\n const allThsTotal = Array.from(\n tableEl.querySelectorAll<HTMLTableCellElement>('thead tr:first-child th'),\n ).reduce((sum, th) => sum + th.getBoundingClientRect().width, 0);\n const excess = allThsTotal - tableEl.getBoundingClientRect().width;\n if (excess > 0 && cols.length > 0) {\n const lastColId = cols[cols.length - 1].id;\n if (widths[lastColId] !== undefined) {\n widths[lastColId] = Math.max(\n colMinWidth(cols[cols.length - 1]),\n widths[lastColId] - excess,\n );\n }\n }\n return widths;\n }\n\n function updateHandlePositions() {\n if (!tableEl) return;\n const ths = tableEl.querySelectorAll<HTMLTableCellElement>(dataColumnSelector);\n const cols = getDataColumns();\n\n let handleTop: number;\n let handleHeight: number;\n if (hasScrollY()) {\n const hdrRect = headerWrapperEl?.getBoundingClientRect();\n const bodyRect = wrapperEl?.getBoundingClientRect();\n handleTop = hdrRect?.top ?? 0;\n handleHeight = (hdrRect?.height ?? 0) + (bodyRect?.height ?? 0);\n } else {\n const tableRect = tableEl.getBoundingClientRect();\n handleTop = tableRect.top;\n handleHeight = tableRect.height;\n }\n\n const positions: { left: number; top: number; height: number; colIndex: number }[] = [];\n\n for (let i = 0; i < ths.length; i++) {\n const col = cols[i];\n if (!col || col.columnDef.enableResizing === false) continue;\n const thRect = ths[i].getBoundingClientRect();\n positions.push({\n left: thRect.right,\n top: handleTop,\n height: handleHeight,\n colIndex: i,\n });\n }\n\n setHandlePositions(positions);\n }\n\n function handleResizeStart(colIndex: number, e: MouseEvent) {\n e.preventDefault();\n e.stopPropagation();\n\n const cols = getDataColumns();\n const lastColIndex = cols.length - 1;\n const isLastCol = colIndex === lastColIndex;\n const colId = cols[colIndex].id;\n const lastColId = cols[lastColIndex].id;\n\n const startWidths = snapshotColumnWidths();\n setColumnWidths(startWidths);\n\n const startX = e.clientX;\n const startWidth = startWidths[colId] || 0;\n const minWidth = colMinWidth(cols[colIndex]);\n\n setResizingIndex(colIndex);\n\n let onMouseMove: (ev: MouseEvent) => void;\n\n if (isLastCol) {\n // Resizing the last column: distribute remaining width equally among all other columns.\n const totalWidth = Object.values(startWidths).reduce((a, b) => a + b, 0);\n const otherCols = cols.slice(0, lastColIndex);\n const otherMinTotal = otherCols.reduce((sum, col) => sum + colMinWidth(col), 0);\n\n onMouseMove = (ev: MouseEvent) => {\n const rawDelta = ev.clientX - startX;\n // Last col can't go below its minWidth; others can't go below their minWidths combined\n const newLastWidth = Math.max(\n minWidth,\n Math.min(totalWidth - otherMinTotal, startWidth + rawDelta),\n );\n const remainingWidth = totalWidth - newLastWidth;\n const perColWidth =\n otherCols.length > 0 ? remainingWidth / otherCols.length : remainingWidth;\n\n const newWidths: Record<string, number> = {};\n otherCols.forEach(col => {\n newWidths[col.id] = Math.max(colMinWidth(col), perColWidth);\n });\n newWidths[lastColId] = newLastWidth;\n setColumnWidths(newWidths);\n queueMicrotask(() => updateHandlePositions());\n };\n } else {\n // Resizing a non-last column: column N grows/shrinks and the ADJACENT right\n // column (N+1) absorbs the opposite delta. Total table width stays constant.\n const nextColIndex = colIndex + 1;\n const nextColId = cols[nextColIndex].id;\n const nextColStartWidth = startWidths[nextColId] || 0;\n const nextColMinWidth = colMinWidth(cols[nextColIndex]);\n\n onMouseMove = (ev: MouseEvent) => {\n const rawDelta = ev.clientX - startX;\n // Floor: dragged column can't go below its minWidth\n const minDelta = minWidth - startWidth;\n // Ceiling: next column can't go below its minWidth\n const maxDelta = nextColStartWidth - nextColMinWidth;\n const clampedDelta = Math.max(minDelta, Math.min(maxDelta, rawDelta));\n\n setColumnWidths(prev => ({\n ...prev,\n [colId]: startWidth + clampedDelta,\n [nextColId]: nextColStartWidth - clampedDelta,\n }));\n queueMicrotask(() => updateHandlePositions());\n };\n }\n\n const onMouseUp = () => {\n setResizingIndex(-1);\n document.removeEventListener('mousemove', onMouseMove);\n document.removeEventListener('mouseup', onMouseUp);\n document.documentElement.classList.remove('tbe-resizing');\n };\n\n document.addEventListener('mousemove', onMouseMove);\n document.addEventListener('mouseup', onMouseUp);\n document.documentElement.classList.add('tbe-resizing');\n }\n\n function handleResizeDblClick(colIndex: number, e: MouseEvent) {\n e.preventDefault();\n e.stopPropagation();\n\n const cols = getDataColumns();\n const currentWidths =\n Object.keys(columnWidths()).length > 0 ? columnWidths() : snapshotColumnWidths();\n const lastColIndex = cols.length - 1;\n\n if (colIndex === lastColIndex) {\n // Divider sau last col: chia đều tất cả các cột\n const total = cols.reduce((sum, col) => sum + (currentWidths[col.id] ?? col.getSize()), 0);\n const equalWidth = total / cols.length;\n const newWidths: Record<string, number> = {};\n cols.forEach(col => {\n newWidths[col.id] = Math.max(colMinWidth(col), equalWidth);\n });\n setColumnWidths(newWidths);\n } else {\n // Divider giữa cột colIndex và colIndex+1: chia đều tổng width 2 cột\n const colId = cols[colIndex].id;\n const nextColId = cols[colIndex + 1].id;\n const w1 = currentWidths[colId] ?? cols[colIndex].getSize();\n const w2 = currentWidths[nextColId] ?? cols[colIndex + 1].getSize();\n const half = (w1 + w2) / 2;\n const newW1 = Math.max(colMinWidth(cols[colIndex]), half);\n const newW2 = Math.max(colMinWidth(cols[colIndex + 1]), w1 + w2 - newW1);\n setColumnWidths(prev => ({\n ...currentWidths,\n ...prev,\n [colId]: newW1,\n [nextColId]: newW2,\n }));\n }\n\n queueMicrotask(() => updateHandlePositions());\n }\n\n const hasResizeWidths = () => Object.keys(columnWidths()).length > 0;\n\n /**\n * When resizing is active, override the table's `w-full` with an exact pixel width\n * equal to the sum of all column widths. This prevents the browser from proportionally\n * scaling columns to fill the container when the total is less than the container width,\n * and allows the table to grow beyond the container (triggering scroll) when columns expand.\n */\n const resizeTableWidth = createMemo<string | null>(() => {\n if (!hasResizeWidths()) return null;\n const widths = columnWidths();\n const total = table\n .getAllLeafColumns()\n .reduce((sum, col) => sum + (widths[col.id] ?? col.getSize()), 0);\n return `${total}px`;\n });\n\n /**\n * When scroll-x is active (resizable is off), compute explicit widths for every data column:\n * - Columns with a declared `size` keep that size.\n * - Remaining columns share the leftover space equally (min 100px each).\n * Returns null when scroll-x is not active.\n */\n const scrollXColumnWidths = createMemo<Record<string, number> | null>(() => {\n if (!hasScrollX()) return null;\n const cols = getDataColumns();\n const x = scrollX()!;\n const declaredCols = cols.filter(col => colsWithExplicitSize().has(col.id));\n const undeclaredCols = cols.filter(col => !colsWithExplicitSize().has(col.id));\n const declaredTotal = declaredCols.reduce((sum, col) => sum + col.getSize(), 0);\n const numUndeclared = undeclaredCols.length;\n let undeclaredWidth: number;\n if (typeof x === 'number') {\n const remaining = x - declaredTotal;\n undeclaredWidth = numUndeclared > 0 ? Math.max(100, remaining / numUndeclared) : 100;\n } else {\n undeclaredWidth = 100;\n }\n const widths: Record<string, number> = {};\n cols.forEach(col => {\n widths[col.id] = colsWithExplicitSize().has(col.id) ? col.getSize() : undeclaredWidth;\n });\n return widths;\n });\n\n const useFixedLayout = () => colsWithExplicitSize().size > 0 || hasResizeWidths() || hasScrollX();\n\n const [measuredWidths, setMeasuredWidths] = createSignal<Record<string, number>>({});\n\n function measureColumnWidths() {\n if (!tableEl) return;\n const ths = tableEl.querySelectorAll<HTMLTableCellElement>(dataColumnSelector);\n const cols = getDataColumns();\n const widths: Record<string, number> = {};\n cols.forEach((col, i) => {\n if (ths[i]) {\n widths[col.id] = ths[i].offsetWidth;\n }\n });\n setMeasuredWidths(widths);\n }\n\n const fixedColumnInfo = createMemo(() => {\n const widths = measuredWidths();\n if (Object.keys(widths).length === 0) return new Map<string, FixedInfo>();\n\n const cols = table.getAllLeafColumns();\n const colData = cols.map(col => ({\n id: col.id,\n fixed: col.columnDef.meta?.fixed,\n width: widths[col.id] || 0,\n }));\n\n return computeFixedColumnInfo(colData);\n });\n\n function getFixedCellStyle(colId: string): Record<string, string> | undefined {\n const info = fixedColumnInfo().get(colId);\n if (!info) return undefined;\n\n if (info.fixed === 'start') {\n return { left: `${info.offset}px` };\n }\n if (info.fixed === 'end') {\n return { right: `${info.offset}px` };\n }\n return undefined;\n }\n\n function getFixedCellClass(colId: string): string {\n const info = fixedColumnInfo().get(colId);\n if (!info) return '';\n\n return cn('tbe33', info.isLastStart && 'tbe34', info.isFirstEnd && 'tbe35');\n }\n\n const AlignHeaderClass = {\n start: 'justify-start',\n center: 'justify-center',\n end: 'justify-end',\n } as const;\n\n const AlignCellClass = {\n start: 'align-start',\n center: 'align-center',\n end: 'align-end',\n } as const;\n\n const AlignTdStyle = {\n start: 'text-left',\n center: 'text-center',\n end: 'text-right',\n } as const;\n\n function getColAlign(colId: string) {\n const col = table.getColumn(colId);\n return (col?.columnDef.meta?.align ?? 'start') as 'start' | 'center' | 'end';\n }\n\n function hasCellTooltip(colId: string): boolean {\n return !!table.getColumn(colId)?.columnDef.meta?.tooltip;\n }\n\n function wrapCellContent(colId: string, cellValue: unknown, content: JSX.Element): JSX.Element {\n const col = table.getColumn(colId);\n const tooltipOpts = col?.columnDef.meta?.tooltip;\n if (!tooltipOpts) return content;\n const rawContent = tooltipOpts.content;\n const resolvedContent = typeof rawContent === 'function' ? rawContent(cellValue) : rawContent;\n const tooltipProps = {\n ...tooltipOpts,\n ...(resolvedContent !== undefined && { content: resolvedContent }),\n containerId: tbodyId,\n position: tooltipOpts.position ?? ('top' as const),\n class: { root: 'tbe-tt-cell' },\n };\n return (\n <Tooltip type=\"portal\" {...(tooltipProps as any)}>\n {content}\n </Tooltip>\n );\n }\n\n function handleTableClick(e: MouseEvent) {\n const target = e.target as HTMLElement;\n\n const isOwnElement = (el: HTMLElement) => {\n const t = el.closest('table');\n return t === tableEl || t === bodyTableEl;\n };\n\n const th = target.closest('th[data-column-id]') as HTMLElement | null;\n if (th && isOwnElement(th)) {\n const columnId = th.dataset.columnId;\n if (columnId) {\n if (isVirtual() && p.enableSorting) {\n triggerVirtualSort(e, columnId);\n } else {\n const column = table.getColumn(columnId);\n if (column?.getCanSort()) {\n column.getToggleSortingHandler()?.(e);\n }\n }\n }\n return;\n }\n\n const selectionTd = target.closest('td.tbe22') as HTMLElement | null;\n if (selectionTd && isOwnElement(selectionTd)) {\n const tr = selectionTd.closest('tr[data-row-id]') as HTMLElement | null;\n if (tr) {\n const rowId = tr.dataset.rowId;\n if (rowId !== undefined) {\n const row = table.getRow(rowId);\n if (row?.getCanSelect()) {\n row.toggleSelected();\n }\n }\n }\n return;\n }\n\n const expandTd = target.closest('td.tbe23') as HTMLElement | null;\n if (expandTd && isOwnElement(expandTd)) {\n const tr = expandTd.closest('tr[data-row-id]') as HTMLElement | null;\n if (tr) {\n const rowId = tr.dataset.rowId;\n if (rowId !== undefined) {\n const row = table.getRow(rowId);\n if (row) {\n const opts = expandedOptions();\n const expandable = opts?.rowExpandable\n ? opts.rowExpandable(row.original, row.index)\n : true;\n if (expandable) {\n toggleRowExpanded(row.id, row.original);\n }\n }\n }\n }\n return;\n }\n\n const tr = target.closest('tr[data-row-id]') as HTMLElement | null;\n if (tr && isOwnElement(tr) && p.onRowClick) {\n const rowId = tr.dataset.rowId;\n if (rowId !== undefined) {\n const row = table.getRow(rowId);\n if (row) {\n p.onRowClick(row, e);\n }\n }\n }\n }\n\n onMount(() => {\n if (resizable()) {\n updateHandlePositions();\n\n window.addEventListener('scroll', updateHandlePositions, { passive: true, capture: true });\n onCleanup(function removeWindowScrollListener() {\n window.removeEventListener('scroll', updateHandlePositions, { capture: true });\n });\n }\n if (hasFixedColumns()) {\n measureColumnWidths();\n }\n\n if (resizable() || hasFixedColumns()) {\n const observer = new ResizeObserver(() => {\n if (resizable()) updateHandlePositions();\n if (hasFixedColumns()) measureColumnWidths();\n });\n observer.observe(tableEl);\n onCleanup(function disconnectResizeObserver() {\n observer.disconnect();\n });\n }\n\n if (isVirtual()) {\n const handleScroll = () => {\n if (!p.getVirtualData || p.loadingMore !== 'auto') return;\n const opts = normalizedVirtual();\n const threshold = (opts?.itemSize ?? 40) * (opts?.overscan ?? 5);\n if (wrapperEl.scrollTop + wrapperEl.clientHeight >= wrapperEl.scrollHeight - threshold) {\n callGetVirtualData();\n }\n };\n wrapperEl.addEventListener('scroll', handleScroll, { passive: true });\n onCleanup(function removeScrollListener() {\n wrapperEl.removeEventListener('scroll', handleScroll);\n });\n }\n\n if (hasScrollY()) {\n const syncHeaderScroll = () => {\n if (headerWrapperEl) headerWrapperEl.scrollLeft = wrapperEl.scrollLeft;\n if (resizable()) updateHandlePositions();\n };\n wrapperEl.addEventListener('scroll', syncHeaderScroll, { passive: true });\n onCleanup(() => wrapperEl.removeEventListener('scroll', syncHeaderScroll));\n }\n });\n\n return (\n <div class={cn('tbe09', p.paginationProps !== undefined && 'tbe10')}>\n <Show\n when={\n p.paginationProps !== undefined && !p.virtual && p.paginationProps?.position === 'start'\n }\n >\n <Pagination\n {...p.paginationProps}\n onChange={(page, size) => {\n table.setPageIndex(page - 1);\n if (size !== table.getState().pagination.pageSize) {\n table.setPageSize(size);\n }\n p.paginationProps?.onChange?.(page, size);\n }}\n />\n </Show>\n <div\n class={cn(\n 'tbe11',\n border()?.outer && 'tbe42',\n resizable() && 'tbe36',\n resizingIndex() >= 0 && 'tbe39',\n (hasFixedColumns() || hasScrollY()) && 'tbe13',\n getColor(p.color),\n p.rounded,\n p.rounded && 'overflow-hidden',\n p.class?.root,\n )}\n style={{\n ...(scrollXWrapper() ? { 'max-width': scrollXWrapper() } : {}),\n ...(hasScrollX() && p.rounded ? { 'overflow-x': 'clip' } : {}),\n }}\n >\n <Show when={p.headerPanel}>\n <div class={cn('tbe40', border()?.outer && 'tbe41', p.class?.headerPanel)}>\n {p.headerPanel?.()}\n </div>\n </Show>\n <Show when={hasScrollY() && p.showHeader}>\n <div ref={el => (headerWrapperEl = el)} class={cn('tbe12', 'tbe14-hdr')}>\n <table\n ref={tableEl}\n class={cn(\n 'tbe01',\n getTableClass(p),\n border()?.horizontal && 'tbe43',\n border()?.vertical && 'tbe44',\n useFixedLayout() && 'table-fixed',\n p.class?.table,\n )}\n style={{\n ...(resizeTableWidth()\n ? { width: resizeTableWidth()!, 'min-width': resizeTableWidth()! }\n : scrollXTable()\n ? { 'min-width': scrollXTable()! }\n : {}),\n }}\n onClick={handleTableClick}\n >\n <Show when={useFixedLayout()}>\n <colgroup>\n <For each={table.getAllLeafColumns()}>\n {col => {\n const isNonResizable = () =>\n col.id === EXPANDED_COLUMN_ID || col.id === SELECTION_COLUMN_ID;\n return (\n <col\n style={{\n ...(isNonResizable()\n ? { width: `${col.getSize()}px` }\n : hasResizeWidths()\n ? { width: `${columnWidths()[col.id] || col.getSize()}px` }\n : scrollXColumnWidths()\n ? { width: `${scrollXColumnWidths()![col.id] ?? 100}px` }\n : colsWithExplicitSize().has(col.id)\n ? { width: `${col.getSize()}px` }\n : {}),\n }}\n />\n );\n }}\n </For>\n </colgroup>\n </Show>\n <thead\n class={cn(\n p.class?.thead,\n isSortingLoading() ? 'pointer-events-none cursor-wait' : '',\n )}\n >\n <For each={table.getHeaderGroups()}>\n {(headerGroup, groupIndex) => {\n const totalRows = table.getHeaderGroups().length;\n\n const earlyRenderedCols = new Set(\n table\n .getHeaderGroups()\n .slice(0, groupIndex())\n .flatMap(g =>\n g.headers\n .filter(h => h.isPlaceholder && h.column.getLeafColumns().length === 1)\n .map(h => h.column.id),\n ),\n );\n return (\n <tr class={cn(p.class?.tr, p.class?.headerRow)}>\n <For each={headerGroup.headers}>\n {header => {\n if (earlyRenderedCols.has(header.column.id)) return null;\n\n const isEarlyLeaf =\n header.isPlaceholder && header.column.getLeafColumns().length === 1;\n const rowSpanVal = isEarlyLeaf ? totalRows - groupIndex() : 1;\n\n if (header.isPlaceholder && !isEarlyLeaf) return null;\n const headerSpan =\n header.column.columnDef.meta?.onHeaderCell?.(header) ?? {};\n if (headerSpan.colSpan === 0) return null;\n const finalColSpan = headerSpan.colSpan ?? header.colSpan;\n const finalRowSpan =\n headerSpan.rowSpan ?? (rowSpanVal > 1 ? rowSpanVal : undefined);\n return (\n <th\n class={cn(\n p.class?.th,\n header.column.getCanSort() && 'tbe18',\n header.column.id === SELECTION_COLUMN_ID && 'tbe22',\n header.column.id === EXPANDED_COLUMN_ID && 'tbe23',\n getFixedCellClass(header.column.id),\n )}\n colSpan={finalColSpan}\n rowSpan={finalRowSpan}\n data-column-id={header.column.id}\n style={getFixedCellStyle(header.column.id)}\n >\n <div\n class={cn(\n 'tbe15',\n (colsWithExplicitSize().has(header.column.id) ||\n hasResizeWidths()) &&\n header.column.id !== SELECTION_COLUMN_ID &&\n header.column.id !== EXPANDED_COLUMN_ID &&\n 'tbe16',\n header.column.id !== SELECTION_COLUMN_ID &&\n header.column.id !== EXPANDED_COLUMN_ID &&\n AlignHeaderClass[getColAlign(header.column.id)],\n )}\n >\n <span class=\"tbe17\">\n {flexRender(\n header.column.columnDef.header,\n header.getContext(),\n )}\n </span>\n <Show when={header.column.getCanSort()}>\n <span class=\"tbe19\">\n <Switch\n fallback={\n <ChevronsUpDown\n size={14}\n stroke-width={3}\n color=\"var(--color)\"\n />\n }\n >\n <Match when={header.column.getIsSorted() === 'asc'}>\n <ChevronUp\n size={14}\n stroke-width={3}\n color=\"var(--color)\"\n />\n </Match>\n <Match when={header.column.getIsSorted() === 'desc'}>\n <ChevronDown\n size={14}\n stroke-width={3}\n color=\"var(--color)\"\n />\n </Match>\n </Switch>\n <Show\n when={\n header.column.getIsSorted() !== false &&\n (header.column.getSortIndex() ?? -1) >= 0 &&\n table.getState().sorting.length > 1\n }\n >\n <span class=\"tbe20\">\n {(header.column.getSortIndex() ?? 0) + 1}\n </span>\n </Show>\n </span>\n </Show>\n </div>\n </th>\n );\n }}\n </For>\n </tr>\n );\n }}\n </For>\n </thead>\n </table>\n </div>\n </Show>\n <div\n ref={el => (wrapperEl = el)}\n class={cn('tbe12', hasScroll() && 'tbe14')}\n style={{\n ...(scrollY() ? { 'max-height': scrollY() } : {}),\n }}\n >\n <table\n ref={el => {\n bodyTableEl = el;\n if (!hasScrollY()) tableEl = el;\n }}\n class={cn(\n 'tbe01',\n getTableClass(p),\n border()?.horizontal && 'tbe43',\n border()?.vertical && 'tbe44',\n useFixedLayout() && 'table-fixed',\n p.class?.table,\n )}\n style={{\n ...(resizeTableWidth()\n ? { width: resizeTableWidth()!, 'min-width': resizeTableWidth()! }\n : scrollXTable()\n ? { 'min-width': scrollXTable()! }\n : {}),\n }}\n onClick={handleTableClick}\n >\n <Show when={useFixedLayout()}>\n <colgroup>\n <For each={table.getAllLeafColumns()}>\n {col => {\n const isNonResizable = () =>\n col.id === EXPANDED_COLUMN_ID || col.id === SELECTION_COLUMN_ID;\n return (\n <col\n style={{\n ...(isNonResizable()\n ? { width: `${col.getSize()}px` }\n : hasResizeWidths()\n ? { width: `${columnWidths()[col.id] || col.getSize()}px` }\n : scrollXColumnWidths()\n ? { width: `${scrollXColumnWidths()![col.id] ?? 100}px` }\n : colsWithExplicitSize().has(col.id)\n ? { width: `${col.getSize()}px` }\n : {}),\n }}\n />\n );\n }}\n </For>\n </colgroup>\n </Show>\n\n <Show when={!hasScrollY() && p.showHeader}>\n <thead\n class={cn(\n p.class?.thead,\n isSortingLoading() ? 'pointer-events-none cursor-wait' : '',\n )}\n >\n <For each={table.getHeaderGroups()}>\n {(headerGroup, groupIndex) => {\n const totalRows = table.getHeaderGroups().length;\n const earlyRenderedCols = new Set(\n table\n .getHeaderGroups()\n .slice(0, groupIndex())\n .flatMap(g =>\n g.headers\n .filter(h => h.isPlaceholder && h.column.getLeafColumns().length === 1)\n .map(h => h.column.id),\n ),\n );\n return (\n <tr class={cn(p.class?.tr, p.class?.headerRow)}>\n <For each={headerGroup.headers}>\n {header => {\n if (earlyRenderedCols.has(header.column.id)) return null;\n const isEarlyLeaf =\n header.isPlaceholder && header.column.getLeafColumns().length === 1;\n const rowSpanVal = isEarlyLeaf ? totalRows - groupIndex() : 1;\n if (header.isPlaceholder && !isEarlyLeaf) return null;\n const headerSpan =\n header.column.columnDef.meta?.onHeaderCell?.(header) ?? {};\n if (headerSpan.colSpan === 0) return null;\n const finalColSpan = headerSpan.colSpan ?? header.colSpan;\n const finalRowSpan =\n headerSpan.rowSpan ?? (rowSpanVal > 1 ? rowSpanVal : undefined);\n return (\n <th\n class={cn(\n p.class?.th,\n header.column.getCanSort() && 'tbe18',\n header.column.id === SELECTION_COLUMN_ID && 'tbe22',\n header.column.id === EXPANDED_COLUMN_ID && 'tbe23',\n getFixedCellClass(header.column.id),\n )}\n colSpan={finalColSpan}\n rowSpan={finalRowSpan}\n data-column-id={header.column.id}\n style={getFixedCellStyle(header.column.id)}\n >\n <div\n class={cn(\n 'tbe15',\n (colsWithExplicitSize().has(header.column.id) ||\n hasResizeWidths()) &&\n header.column.id !== SELECTION_COLUMN_ID &&\n header.column.id !== EXPANDED_COLUMN_ID &&\n 'tbe16',\n header.column.id !== SELECTION_COLUMN_ID &&\n header.column.id !== EXPANDED_COLUMN_ID &&\n AlignHeaderClass[getColAlign(header.column.id)],\n )}\n >\n <span class=\"tbe17\">\n {flexRender(\n header.column.columnDef.header,\n header.getContext(),\n )}\n </span>\n <Show when={header.column.getCanSort()}>\n <span class=\"tbe19\">\n <Switch\n fallback={\n <ChevronsUpDown\n size={14}\n stroke-width={3}\n color=\"var(--color)\"\n />\n }\n >\n <Match when={header.column.getIsSorted() === 'asc'}>\n <ChevronUp\n size={14}\n stroke-width={3}\n color=\"var(--color)\"\n />\n </Match>\n <Match when={header.column.getIsSorted() === 'desc'}>\n <ChevronDown\n size={14}\n stroke-width={3}\n color=\"var(--color)\"\n />\n </Match>\n </Switch>\n\n <Show\n when={\n header.column.getIsSorted() !== false &&\n (header.column.getSortIndex() ?? -1) >= 0 &&\n table.getState().sorting.length > 1\n }\n >\n <span class=\"tbe20\">\n {(header.column.getSortIndex() ?? 0) + 1}\n </span>\n </Show>\n </span>\n </Show>\n </div>\n </th>\n );\n }}\n </For>\n </tr>\n );\n }}\n </For>\n </thead>\n </Show>\n\n <Show\n when={isVirtual() && !isEmpty()}\n fallback={\n <tbody id={tbodyId} class={cn(p.class?.tbody)}>\n <Show\n when={!isEmpty()}\n fallback={\n <tr>\n <td\n colSpan={table.getAllColumns().length}\n class={cn('tbe45', p.class?.empty)}\n >\n {p.emptyContent ?? 'No data'}\n </td>\n </tr>\n }\n >\n <For each={table.getRowModel().rows}>\n {(row, rowIndex) => {\n const expanded = () => isRowExpanded(row.id);\n const opts = expandedOptions();\n\n return (\n <>\n <tr\n class={cn(\n p.class?.tr,\n p.class?.bodyRow,\n row.getIsSelected() && 'tbe27',\n expanded() && 'tbe28',\n rowIndex() % 2 === 0 ? 'tbe29' : 'tbe30',\n )}\n data-row-id={row.id}\n >\n <For each={row.getVisibleCells()}>\n {cell => {\n const isSpecial =\n cell.column.id === SELECTION_COLUMN_ID ||\n cell.column.id === EXPANDED_COLUMN_ID;\n const align = isSpecial ? 'start' : getColAlign(cell.column.id);\n const hasTooltip = !isSpecial && hasCellTooltip(cell.column.id);\n const span: TableCellSpanResult = resolveBodySpan(\n cell,\n rowIndex(),\n );\n if (span.colSpan === 0 || span.rowSpan === 0) return null;\n return (\n <td\n class={cn(\n p.class?.td,\n cell.column.id === SELECTION_COLUMN_ID && 'tbe22',\n cell.column.id === EXPANDED_COLUMN_ID && 'tbe23',\n getFixedCellClass(cell.column.id),\n hasTooltip && 'relative',\n !isSpecial && AlignTdStyle[align],\n )}\n style={{\n ...getFixedCellStyle(cell.column.id),\n }}\n colSpan={span.colSpan}\n rowSpan={span.rowSpan}\n >\n <Show\n when={\n (colsWithExplicitSize().has(cell.column.id) ||\n hasResizeWidths()) &&\n !isSpecial\n }\n fallback={wrapCellContent(\n cell.column.id,\n cell.getValue(),\n flexRender(cell.column.columnDef.cell, cell.getContext()),\n )}\n >\n <div class={cn('tbe21', AlignCellClass[align])}>\n {wrapCellContent(\n cell.column.id,\n cell.getValue(),\n flexRender(\n cell.column.columnDef.cell,\n cell.getContext(),\n ),\n )}\n </div>\n </Show>\n </td>\n );\n }}\n </For>\n </tr>\n <Show when={hasExpandableRows() && expanded()}>\n <tr class=\"tbe31\">\n <td colSpan={row.getVisibleCells().length} class=\"tbe32\">\n {opts!.expandedRowRender(row.original, rowIndex(), 0, true)}\n </td>\n </tr>\n </Show>\n </>\n );\n }}\n </For>\n </Show>\n </tbody>\n }\n >\n <Show\n when={!isSortingLoading()}\n fallback={\n <tbody>\n <tr>\n <td\n colSpan={table.getAllColumns().length}\n class=\"border-none p-0\"\n style={{\n height: scrollY() ?? '200px',\n }}\n >\n <div class=\"flex h-full items-center justify-center gap-2 opacity-60\">\n <span class=\"text-base\">Sorting</span>\n <span class=\"loading loading-dots loading-sm text-base-content\" />\n </div>\n </td>\n </tr>\n </tbody>\n }\n >\n <tbody id={tbodyId} class={p.class?.tbody}>\n <Show when={virtualTopPadding() > 0}>\n <tr>\n <td\n colSpan={table.getAllColumns().length}\n class=\"border-none p-0\"\n style={{ height: `${virtualTopPadding()}px` }}\n />\n </tr>\n </Show>\n\n <For each={rowVirtualizer.getVirtualItems()}>\n {virtualRow => {\n const rows = table.getRowModel().rows;\n const row = rows[virtualRow.index];\n const rowIndex = virtualRow.index;\n if (!row) return null;\n\n const expanded = () => isRowExpanded(row.id);\n const opts = expandedOptions();\n\n let trEl: HTMLTableRowElement | undefined;\n\n createEffect(\n on(\n expanded,\n () => {\n queueMicrotask(() => {\n if (trEl?.isConnected && trEl.hasAttribute('data-index'))\n rowVirtualizer.measureElement(trEl);\n });\n },\n { defer: true },\n ),\n );\n\n return (\n <>\n <tr\n ref={el => {\n trEl = el;\n if (el)\n queueMicrotask(() => {\n if (el.isConnected) rowVirtualizer.measureElement(el);\n });\n }}\n data-index={virtualRow.index}\n class={cn(\n p.class?.tr,\n p.class?.bodyRow,\n row.getIsSelected() && 'tbe27',\n expanded() && 'tbe28',\n rowIndex % 2 === 0 ? 'tbe29' : 'tbe30',\n )}\n data-row-id={row.id}\n >\n <For each={row.getVisibleCells()}>\n {cell => {\n const isSpecial =\n cell.column.id === SELECTION_COLUMN_ID ||\n cell.column.id === EXPANDED_COLUMN_ID;\n const align = isSpecial ? 'start' : getColAlign(cell.column.id);\n const hasTooltip = !isSpecial && hasCellTooltip(cell.column.id);\n return (\n <td\n class={cn(\n p.class?.td,\n cell.column.id === SELECTION_COLUMN_ID && 'tbe22',\n cell.column.id === EXPANDED_COLUMN_ID && 'tbe23',\n getFixedCellClass(cell.column.id),\n hasTooltip && 'relative p-0',\n !isSpecial && AlignTdStyle[align],\n )}\n style={{\n ...getFixedCellStyle(cell.column.id),\n }}\n >\n <Show\n when={\n (colsWithExplicitSize().has(cell.column.id) ||\n hasResizeWidths()) &&\n !isSpecial\n }\n fallback={wrapCellContent(\n cell.column.id,\n cell.getValue(),\n flexRender(cell.column.columnDef.cell, cell.getContext()),\n )}\n >\n <div class={cn('tbe21', AlignCellClass[align])}>\n {wrapCellContent(\n cell.column.id,\n cell.getValue(),\n flexRender(cell.column.columnDef.cell, cell.getContext()),\n )}\n </div>\n </Show>\n </td>\n );\n }}\n </For>\n </tr>\n <Show when={hasExpandableRows() && expanded()}>\n <tr class=\"tbe31\">\n <td colSpan={row.getVisibleCells().length} class=\"tbe32\">\n {opts!.expandedRowRender(row.original, rowIndex, 0, true)}\n </td>\n </tr>\n </Show>\n </>\n );\n }}\n </For>\n\n <Show when={virtualBottomPadding() > 0}>\n <tr>\n <td\n colSpan={table.getAllColumns().length}\n class=\"border-none p-0\"\n style={{ height: `${virtualBottomPadding()}px` }}\n />\n </tr>\n </Show>\n\n <Switch>\n <Match when={p.loadingMore === 'auto' && isFetchingMore()}>\n <tr>\n <td colSpan={table.getAllColumns().length} class=\"border-none py-2\">\n <div class=\"flex justify-center\">\n <span class=\"loading loading-dots loading-sm opacity-60\" />\n </div>\n </td>\n </tr>\n </Match>\n <Match when={p.loadingMore === 'manual'}>\n <tr>\n <td colSpan={table.getAllColumns().length} class=\"border-none py-2\">\n <div class=\"flex justify-center\">\n <Button\n variant={'default'}\n color={p.color}\n loading={isFetchingMore()}\n onClick={() => callGetVirtualData()}\n size={p.size}\n >\n Load more\n </Button>\n </div>\n </td>\n </tr>\n </Match>\n </Switch>\n </tbody>\n </Show>\n </Show>\n </table>\n </div>\n <Show when={resizable()}>\n <For each={handlePositions()}>\n {pos => (\n <div\n class={cn('tbe37', resizingIndex() === pos.colIndex && 'tbe38')}\n style={{\n left: `${pos.left}px`,\n top: `${pos.top}px`,\n height: `${pos.height}px`,\n }}\n onMouseDown={e => handleResizeStart(pos.colIndex, e)}\n onDblClick={e => handleResizeDblClick(pos.colIndex, e)}\n />\n )}\n </For>\n </Show>\n <Show when={p.footerPanel}>\n <div class={cn('tbe40', border()?.outer && 'border-c3/50 border-t', p.class?.tfoot)}>\n {p.footerPanel?.()}\n </div>\n </Show>\n </div>\n <Show\n when={\n p.paginationProps !== undefined &&\n !p.virtual &&\n (p.paginationProps?.position ?? 'end') === 'end'\n }\n >\n <Pagination\n {...p.paginationProps}\n onChange={(page, size) => {\n table.setPageIndex(page - 1);\n if (size !== table.getState().pagination.pageSize) {\n table.setPageSize(size);\n }\n p.paginationProps?.onChange?.(page, size);\n }}\n />\n </Show>\n </div>\n );\n}\n\nTable.Selection = function <TData = any>(\n options?: TableSelectionOptions<TData>,\n): ColumnDef<TData, any> {\n const opts: TableSelectionOptions<TData> = {\n type: 'checkbox',\n hideSelectAll: false,\n width: 32,\n ...options,\n };\n\n return {\n id: SELECTION_COLUMN_ID,\n size: typeof opts.width === 'number' ? opts.width : 48,\n enableSorting: false,\n enableResizing: false,\n meta: {\n _selection: opts,\n },\n header: ({ table }) => {\n if (opts.title !== undefined) return opts.title;\n if (opts.type === 'radio' || opts.hideSelectAll) return null;\n\n return (\n <input\n type=\"checkbox\"\n class=\"checkbox checkbox-xs checkbox-primary mx-auto\"\n checked={table.getIsAllRowsSelected()}\n ref={el => {\n createEffect(function syncIndeterminate() {\n el.indeterminate = table.getIsSomeRowsSelected();\n });\n }}\n onChange={table.getToggleAllRowsSelectedHandler()}\n />\n );\n },\n cell: ({ row }) => {\n const index = row.index;\n const checked = () => row.getIsSelected();\n const record = row.original;\n\n if (opts.renderCell) {\n return (\n <span\n onClick={e => {\n e.stopPropagation();\n row.toggleSelected();\n }}\n class=\"cursor-pointer\"\n >\n {opts.renderCell(checked(), record, index)}\n </span>\n );\n }\n\n if (opts.type === 'radio') {\n return (\n <input\n type=\"radio\"\n class=\"radio radio-xs radio-primary\"\n checked={checked()}\n disabled={!row.getCanSelect()}\n onChange={row.getToggleSelectedHandler()}\n onClick={e => e.stopPropagation()}\n />\n );\n }\n\n return (\n <input\n type=\"checkbox\"\n class=\"checkbox checkbox-xs checkbox-primary\"\n checked={checked()}\n disabled={!row.getCanSelect()}\n onChange={row.getToggleSelectedHandler()}\n onClick={e => e.stopPropagation()}\n />\n );\n },\n };\n};\n\nTable.Expanded = function <TData = any>(\n options: TableExpandedOptions<TData>,\n): ColumnDef<TData, any> {\n options = mergeProps(\n {\n width: 48,\n },\n options,\n );\n\n return {\n id: EXPANDED_COLUMN_ID,\n size: options.width,\n enableSorting: false,\n enableResizing: false,\n meta: {\n _expanded: options,\n },\n header: () => null,\n cell: ({ row, table }) => {\n const index = row.index;\n const record = row.original;\n const api = table.options.meta?._expandApi;\n const expandable = options.rowExpandable ? options.rowExpandable(record, index) : true;\n\n if (!expandable || !api) return null;\n\n const expanded = () => api.isRowExpanded(row.id);\n\n return (\n <span\n class=\"tbe24 cursor-pointer\"\n onClick={e => {\n e.stopPropagation();\n api.toggleRowExpanded(row.id, record);\n }}\n >\n <Show\n when={options.expandIcon}\n fallback={\n <ChevronRight size={16} stroke-width={2} class={cn('tbe25', expanded() && 'tbe26')} />\n }\n >\n {options.expandIcon!(expanded())}\n </Show>\n </span>\n );\n },\n };\n};\n\nexport { Table };\n"],"mappings":"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"}