solid-tom-ui 0.2.4 → 1.0.1

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 (246) hide show
  1. package/README.md +237 -237
  2. package/dist/components/badge/badge.d.ts +0 -1
  3. package/dist/components/badge/badge.d.ts.map +1 -1
  4. package/dist/solid-ui.css +1 -1
  5. package/dist/src/components/avatar/avatar.js.map +1 -0
  6. package/dist/src/components/badge/badge.js +2 -0
  7. package/dist/src/components/badge/badge.js.map +1 -0
  8. package/dist/src/components/breadcrumb/breadcrumb.js.map +1 -0
  9. package/dist/{components → src/components}/button/button.js +1 -1
  10. package/dist/src/components/button/button.js.map +1 -0
  11. package/dist/src/components/carousel/carousel.js +2 -0
  12. package/dist/src/components/carousel/carousel.js.map +1 -0
  13. package/dist/src/components/chat-bubble/chatBubble.js.map +1 -0
  14. package/dist/src/components/checkbox/checkbox.js.map +1 -0
  15. package/dist/src/components/code-preview/code-preview.js +2 -0
  16. package/dist/src/components/code-preview/code-preview.js.map +1 -0
  17. package/dist/src/components/collapse/collapse.js.map +1 -0
  18. package/dist/src/components/context-menu/context-menu.js +2 -0
  19. package/dist/src/components/context-menu/context-menu.js.map +1 -0
  20. package/dist/src/components/context-menu/context-menu.store.js.map +1 -0
  21. package/dist/src/components/diff/diff.js.map +1 -0
  22. package/dist/src/components/divider/divider.js.map +1 -0
  23. package/dist/src/components/drawer/drawer.js +2 -0
  24. package/dist/src/components/drawer/drawer.js.map +1 -0
  25. package/dist/src/components/dropdown/dropdown.js.map +1 -0
  26. package/dist/src/components/dropdown/dropdown.store.js.map +1 -0
  27. package/dist/src/components/float-button/float-button.js.map +1 -0
  28. package/dist/src/components/hover-3d-image/hover-3d-image.js.map +1 -0
  29. package/dist/src/components/image-preview/image-preview.js +2 -0
  30. package/dist/src/components/image-preview/image-preview.js.map +1 -0
  31. package/dist/src/components/indicator/indicator.js.map +1 -0
  32. package/dist/src/components/input/input.js.map +1 -0
  33. package/dist/src/components/input/input.utils.js.map +1 -0
  34. package/dist/src/components/input/variants/input-color.js.map +1 -0
  35. package/dist/src/components/input/variants/input-date.js.map +1 -0
  36. package/dist/src/components/input/variants/input-number.js +2 -0
  37. package/dist/src/components/input/variants/input-number.js.map +1 -0
  38. package/dist/src/components/input/variants/input-otp.js.map +1 -0
  39. package/dist/src/components/input/variants/input-password.js +2 -0
  40. package/dist/src/components/input/variants/input-password.js.map +1 -0
  41. package/dist/src/components/input/variants/input-radio.js.map +1 -0
  42. package/dist/src/components/input/variants/input-range.js.map +1 -0
  43. package/dist/src/components/input/variants/input-text.js +2 -0
  44. package/dist/src/components/input/variants/input-text.js.map +1 -0
  45. package/dist/src/components/input/variants/input-textarea.js +2 -0
  46. package/dist/src/components/input/variants/input-textarea.js.map +1 -0
  47. package/dist/src/components/loading/loading.js +2 -0
  48. package/dist/src/components/loading/loading.js.map +1 -0
  49. package/dist/src/components/mansory/mansory.js.map +1 -0
  50. package/dist/src/components/menu/menu.js +2 -0
  51. package/dist/src/components/menu/menu.js.map +1 -0
  52. package/dist/src/components/modal/modal.js +2 -0
  53. package/dist/src/components/modal/modal.js.map +1 -0
  54. package/dist/src/components/modal/modalContext.js.map +1 -0
  55. package/dist/src/components/pagination/pagination.js +2 -0
  56. package/dist/src/components/pagination/pagination.js.map +1 -0
  57. package/dist/src/components/progress-bar/progress-bar.js.map +1 -0
  58. package/dist/src/components/qr-code/qr-code.js +2 -0
  59. package/dist/src/components/qr-code/qr-code.js.map +1 -0
  60. package/dist/src/components/rating/rating.js.map +1 -0
  61. package/dist/src/components/select/select.js +2 -0
  62. package/dist/src/components/select/select.js.map +1 -0
  63. package/dist/src/components/select-zone/select-zone.js.map +1 -0
  64. package/dist/src/components/skeleton/skeleton.js.map +1 -0
  65. package/dist/src/components/slider/slider.js.map +1 -0
  66. package/dist/src/components/splitter/splitter.js.map +1 -0
  67. package/dist/src/components/steps/steps.js +2 -0
  68. package/dist/src/components/steps/steps.js.map +1 -0
  69. package/dist/src/components/swap/swap.js.map +1 -0
  70. package/dist/src/components/switch/switch.js.map +1 -0
  71. package/dist/src/components/tab/tab.js +2 -0
  72. package/dist/src/components/tab/tab.js.map +1 -0
  73. package/dist/src/components/table/table.js +2 -0
  74. package/dist/src/components/table/table.js.map +1 -0
  75. package/dist/src/components/text-rotate/text-rotate.js.map +1 -0
  76. package/dist/src/components/timeline/timeline.js +2 -0
  77. package/dist/src/components/timeline/timeline.js.map +1 -0
  78. package/dist/src/components/toast/icons/ErrorIcon.js.map +1 -0
  79. package/dist/src/components/toast/icons/IconCircle.js.map +1 -0
  80. package/dist/src/components/toast/icons/InfoIcon.js.map +1 -0
  81. package/dist/src/components/toast/icons/LoaderIcon.js.map +1 -0
  82. package/dist/src/components/toast/icons/SuccessIcon.js.map +1 -0
  83. package/dist/src/components/toast/icons/WarningIcon.js.map +1 -0
  84. package/dist/src/components/toast/toast.js +2 -0
  85. package/dist/src/components/toast/toast.js.map +1 -0
  86. package/dist/src/components/toast/toast.store.js.map +1 -0
  87. package/dist/src/components/tooltip/tooltip.js.map +1 -0
  88. package/dist/{components → src/components}/tour/tour.js +1 -1
  89. package/dist/src/components/tour/tour.js.map +1 -0
  90. package/dist/src/components/upload/upload.js +2 -0
  91. package/dist/src/components/upload/upload.js.map +1 -0
  92. package/dist/src/components/z-index/z-index.context.js.map +1 -0
  93. package/dist/src/components/z-index/z-index.js.map +1 -0
  94. package/dist/src/components/z-index/z-index.store.js.map +1 -0
  95. package/dist/src/components/z-index/z-index.types.js.map +1 -0
  96. package/dist/src/utils/cn.js.map +1 -0
  97. package/dist/src/utils/element-tracker.js.map +1 -0
  98. package/dist/src/utils/helper.js.map +1 -0
  99. package/dist/src/utils/hoc.js.map +1 -0
  100. package/dist/src/utils/shiki-highlight.js +2 -0
  101. package/dist/src/utils/shiki-highlight.js.map +1 -0
  102. package/package.json +120 -120
  103. package/dist/components/avatar/avatar.js.map +0 -1
  104. package/dist/components/badge/badge.js +0 -2
  105. package/dist/components/badge/badge.js.map +0 -1
  106. package/dist/components/breadcrumb/breadcrumb.js.map +0 -1
  107. package/dist/components/button/button.js.map +0 -1
  108. package/dist/components/carousel/carousel.js +0 -2
  109. package/dist/components/carousel/carousel.js.map +0 -1
  110. package/dist/components/chat-bubble/chatBubble.js.map +0 -1
  111. package/dist/components/checkbox/checkbox.js.map +0 -1
  112. package/dist/components/code-preview/code-preview.js +0 -2
  113. package/dist/components/code-preview/code-preview.js.map +0 -1
  114. package/dist/components/collapse/collapse.js.map +0 -1
  115. package/dist/components/context-menu/context-menu.js +0 -2
  116. package/dist/components/context-menu/context-menu.js.map +0 -1
  117. package/dist/components/context-menu/context-menu.store.js.map +0 -1
  118. package/dist/components/diff/diff.js.map +0 -1
  119. package/dist/components/divider/divider.js.map +0 -1
  120. package/dist/components/drawer/drawer.js +0 -2
  121. package/dist/components/drawer/drawer.js.map +0 -1
  122. package/dist/components/dropdown/dropdown.js.map +0 -1
  123. package/dist/components/dropdown/dropdown.store.js.map +0 -1
  124. package/dist/components/float-button/float-button.js.map +0 -1
  125. package/dist/components/hover-3d-image/hover-3d-image.js.map +0 -1
  126. package/dist/components/image-preview/image-preview.js +0 -2
  127. package/dist/components/image-preview/image-preview.js.map +0 -1
  128. package/dist/components/indicator/indicator.js.map +0 -1
  129. package/dist/components/input/input.js.map +0 -1
  130. package/dist/components/input/input.utils.js.map +0 -1
  131. package/dist/components/input/variants/input-color.js.map +0 -1
  132. package/dist/components/input/variants/input-date.js.map +0 -1
  133. package/dist/components/input/variants/input-number.js +0 -2
  134. package/dist/components/input/variants/input-number.js.map +0 -1
  135. package/dist/components/input/variants/input-otp.js.map +0 -1
  136. package/dist/components/input/variants/input-password.js +0 -2
  137. package/dist/components/input/variants/input-password.js.map +0 -1
  138. package/dist/components/input/variants/input-radio.js.map +0 -1
  139. package/dist/components/input/variants/input-range.js.map +0 -1
  140. package/dist/components/input/variants/input-text.js +0 -2
  141. package/dist/components/input/variants/input-text.js.map +0 -1
  142. package/dist/components/input/variants/input-textarea.js +0 -2
  143. package/dist/components/input/variants/input-textarea.js.map +0 -1
  144. package/dist/components/loading/loading.js +0 -2
  145. package/dist/components/loading/loading.js.map +0 -1
  146. package/dist/components/mansory/mansory.js.map +0 -1
  147. package/dist/components/menu/menu.js +0 -2
  148. package/dist/components/menu/menu.js.map +0 -1
  149. package/dist/components/modal/modal.js +0 -2
  150. package/dist/components/modal/modal.js.map +0 -1
  151. package/dist/components/modal/modalContext.js.map +0 -1
  152. package/dist/components/pagination/pagination.js +0 -2
  153. package/dist/components/pagination/pagination.js.map +0 -1
  154. package/dist/components/progress-bar/progress-bar.js.map +0 -1
  155. package/dist/components/qr-code/qr-code.js +0 -2
  156. package/dist/components/qr-code/qr-code.js.map +0 -1
  157. package/dist/components/rating/rating.js.map +0 -1
  158. package/dist/components/select/select.js +0 -2
  159. package/dist/components/select/select.js.map +0 -1
  160. package/dist/components/select-zone/select-zone.js.map +0 -1
  161. package/dist/components/skeleton/skeleton.js.map +0 -1
  162. package/dist/components/slider/slider.js.map +0 -1
  163. package/dist/components/splitter/splitter.js.map +0 -1
  164. package/dist/components/steps/steps.js +0 -2
  165. package/dist/components/steps/steps.js.map +0 -1
  166. package/dist/components/swap/swap.js.map +0 -1
  167. package/dist/components/switch/switch.js.map +0 -1
  168. package/dist/components/tab/tab.js +0 -2
  169. package/dist/components/tab/tab.js.map +0 -1
  170. package/dist/components/table/table.js +0 -2
  171. package/dist/components/table/table.js.map +0 -1
  172. package/dist/components/text-rotate/text-rotate.js.map +0 -1
  173. package/dist/components/timeline/timeline.js +0 -2
  174. package/dist/components/timeline/timeline.js.map +0 -1
  175. package/dist/components/toast/icons/ErrorIcon.js.map +0 -1
  176. package/dist/components/toast/icons/IconCircle.js.map +0 -1
  177. package/dist/components/toast/icons/InfoIcon.js.map +0 -1
  178. package/dist/components/toast/icons/LoaderIcon.js.map +0 -1
  179. package/dist/components/toast/icons/SuccessIcon.js.map +0 -1
  180. package/dist/components/toast/icons/WarningIcon.js.map +0 -1
  181. package/dist/components/toast/toast.js +0 -2
  182. package/dist/components/toast/toast.js.map +0 -1
  183. package/dist/components/toast/toast.store.js.map +0 -1
  184. package/dist/components/tooltip/tooltip.js.map +0 -1
  185. package/dist/components/tour/tour.js.map +0 -1
  186. package/dist/components/upload/upload.js +0 -2
  187. package/dist/components/upload/upload.js.map +0 -1
  188. package/dist/components/z-index/z-index.context.js.map +0 -1
  189. package/dist/components/z-index/z-index.js.map +0 -1
  190. package/dist/components/z-index/z-index.store.js.map +0 -1
  191. package/dist/components/z-index/z-index.types.js.map +0 -1
  192. package/dist/utils/cn.js.map +0 -1
  193. package/dist/utils/element-tracker.js.map +0 -1
  194. package/dist/utils/helper.js.map +0 -1
  195. package/dist/utils/hoc.js.map +0 -1
  196. package/dist/utils/shiki-highlight.js +0 -2
  197. package/dist/utils/shiki-highlight.js.map +0 -1
  198. /package/dist/{components → src/components}/avatar/avatar.js +0 -0
  199. /package/dist/{components → src/components}/breadcrumb/breadcrumb.js +0 -0
  200. /package/dist/{components → src/components}/chat-bubble/chatBubble.js +0 -0
  201. /package/dist/{components → src/components}/checkbox/checkbox.js +0 -0
  202. /package/dist/{components → src/components}/collapse/collapse.js +0 -0
  203. /package/dist/{components → src/components}/context-menu/context-menu.store.js +0 -0
  204. /package/dist/{components → src/components}/diff/diff.js +0 -0
  205. /package/dist/{components → src/components}/divider/divider.js +0 -0
  206. /package/dist/{components → src/components}/dropdown/dropdown.js +0 -0
  207. /package/dist/{components → src/components}/dropdown/dropdown.store.js +0 -0
  208. /package/dist/{components → src/components}/float-button/float-button.js +0 -0
  209. /package/dist/{components → src/components}/hover-3d-image/hover-3d-image.js +0 -0
  210. /package/dist/{components → src/components}/indicator/indicator.js +0 -0
  211. /package/dist/{components → src/components}/input/input.js +0 -0
  212. /package/dist/{components → src/components}/input/input.utils.js +0 -0
  213. /package/dist/{components → src/components}/input/variants/input-color.js +0 -0
  214. /package/dist/{components → src/components}/input/variants/input-date.js +0 -0
  215. /package/dist/{components → src/components}/input/variants/input-otp.js +0 -0
  216. /package/dist/{components → src/components}/input/variants/input-radio.js +0 -0
  217. /package/dist/{components → src/components}/input/variants/input-range.js +0 -0
  218. /package/dist/{components → src/components}/mansory/mansory.js +0 -0
  219. /package/dist/{components → src/components}/modal/modalContext.js +0 -0
  220. /package/dist/{components → src/components}/progress-bar/progress-bar.js +0 -0
  221. /package/dist/{components → src/components}/rating/rating.js +0 -0
  222. /package/dist/{components → src/components}/select-zone/select-zone.js +0 -0
  223. /package/dist/{components → src/components}/skeleton/skeleton.js +0 -0
  224. /package/dist/{components → src/components}/slider/slider.js +0 -0
  225. /package/dist/{components → src/components}/splitter/splitter.js +0 -0
  226. /package/dist/{components → src/components}/swap/swap.js +0 -0
  227. /package/dist/{components → src/components}/switch/switch.js +0 -0
  228. /package/dist/{components → src/components}/table/index.js +0 -0
  229. /package/dist/{components → src/components}/text-rotate/text-rotate.js +0 -0
  230. /package/dist/{components → src/components}/toast/icons/ErrorIcon.js +0 -0
  231. /package/dist/{components → src/components}/toast/icons/IconCircle.js +0 -0
  232. /package/dist/{components → src/components}/toast/icons/InfoIcon.js +0 -0
  233. /package/dist/{components → src/components}/toast/icons/LoaderIcon.js +0 -0
  234. /package/dist/{components → src/components}/toast/icons/SuccessIcon.js +0 -0
  235. /package/dist/{components → src/components}/toast/icons/WarningIcon.js +0 -0
  236. /package/dist/{components → src/components}/toast/toast.store.js +0 -0
  237. /package/dist/{components → src/components}/tooltip/tooltip.js +0 -0
  238. /package/dist/{components → src/components}/z-index/z-index.context.js +0 -0
  239. /package/dist/{components → src/components}/z-index/z-index.js +0 -0
  240. /package/dist/{components → src/components}/z-index/z-index.store.js +0 -0
  241. /package/dist/{components → src/components}/z-index/z-index.types.js +0 -0
  242. /package/dist/{lib.js → src/lib.js} +0 -0
  243. /package/dist/{utils → src/utils}/cn.js +0 -0
  244. /package/dist/{utils → src/utils}/element-tracker.js +0 -0
  245. /package/dist/{utils → src/utils}/helper.js +0 -0
  246. /package/dist/{utils → src/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';\r\nimport { getColor } from '@utils/helper';\r\nimport {\r\n children,\r\n Component,\r\n createContext,\r\n createEffect,\r\n createMemo,\r\n createSignal,\r\n createUniqueId,\r\n For,\r\n JSX,\r\n mergeProps,\r\n on,\r\n onCleanup,\r\n Show,\r\n useContext,\r\n} from 'solid-js';\r\nimport type {\r\n CollapsibleConfig,\r\n PanelProps,\r\n SplitterContextValue,\r\n SplitterOrientation,\r\n SplitterProps,\r\n} from './splitter.types';\r\n\r\nconst SplitterContext = createContext<SplitterContextValue>({ orientation: 'horizontal' });\r\n\r\ntype PanelRegistration = {\r\n id: string;\r\n props: PanelProps;\r\n};\r\n\r\ntype PanelRegistryContextValue = {\r\n register: (reg: PanelRegistration) => void;\r\n unregister: (id: string) => void;\r\n};\r\n\r\nconst PanelRegistryContext = createContext<PanelRegistryContextValue | null>(null);\r\n\r\nfunction renderIcon(icon: JSX.Element | (() => JSX.Element) | undefined): JSX.Element {\r\n if (typeof icon === 'function') return (icon as () => JSX.Element)();\r\n return icon as JSX.Element;\r\n}\r\n\r\nconst CollapseLeft = () => (\r\n <svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"currentColor\">\r\n <path d=\"M6 2L3 5l3 3V2z\" />\r\n </svg>\r\n);\r\n\r\nconst CollapseRight = () => (\r\n <svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"currentColor\">\r\n <path d=\"M4 2l3 3-3 3V2z\" />\r\n </svg>\r\n);\r\n\r\nconst CollapseUp = () => (\r\n <svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"currentColor\">\r\n <path d=\"M2 6l3-3 3 3H2z\" />\r\n </svg>\r\n);\r\n\r\nconst CollapseDown = () => (\r\n <svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"currentColor\">\r\n <path d=\"M2 4l3 3 3-3H2z\" />\r\n </svg>\r\n);\r\n\r\nfunction clamp(v: number, min: number, max: number) {\r\n return Math.min(Math.max(v, min), max);\r\n}\r\n\r\nfunction redistributeSizes(\r\n sizes: number[],\r\n draggerIdx: number,\r\n delta: number,\r\n panelMetas: PanelRegistration[],\r\n collapsed: boolean[],\r\n): number[] {\r\n // Tìm panel visible thực sự ở hai phía của dragger.\r\n // Bỏ qua các panel đang collapsed vì chúng bị CSS force về 0 và không\r\n // đóng góp vào tổng width thực tế — redistribute vào chúng sẽ tạo gap.\r\n let leftIdx = draggerIdx;\r\n while (leftIdx >= 0 && collapsed[leftIdx]) leftIdx--;\r\n\r\n let rightIdx = draggerIdx + 1;\r\n while (rightIdx < sizes.length && collapsed[rightIdx]) rightIdx++;\r\n\r\n if (leftIdx < 0 || rightIdx >= sizes.length) return sizes;\r\n\r\n const next = [...sizes];\r\n\r\n const leftMeta = panelMetas[leftIdx]?.props;\r\n const rightMeta = panelMetas[rightIdx]?.props;\r\n\r\n const leftMin = leftMeta?.min ?? 0;\r\n const leftMax = leftMeta?.max ?? 100;\r\n const rightMin = rightMeta?.min ?? 0;\r\n const rightMax = rightMeta?.max ?? 100;\r\n\r\n const totalAvail = next[leftIdx] + next[rightIdx];\r\n\r\n // Clamp newLeft trong khoảng [leftMin, leftMax] và đảm bảo right có đủ chỗ tối thiểu\r\n let newLeft = clamp(next[leftIdx] + delta, leftMin, Math.min(leftMax, totalAvail - rightMin));\r\n let newRight = totalAvail - newLeft;\r\n\r\n // Nếu right vượt quá rightMax, clamp right lại và tính lại left\r\n if (newRight > rightMax) {\r\n newRight = rightMax;\r\n newLeft = totalAvail - newRight;\r\n if (newLeft < leftMin || newLeft > leftMax) return sizes;\r\n }\r\n\r\n if (newRight < rightMin) return sizes;\r\n\r\n next[leftIdx] = newLeft;\r\n next[rightIdx] = newRight;\r\n return next;\r\n}\r\n\r\nexport const SplitterPanel: Component<PanelProps> = rawProps => {\r\n const registry = useContext(PanelRegistryContext);\r\n const id = createUniqueId();\r\n\r\n if (registry) {\r\n registry.register({ id, props: rawProps });\r\n onCleanup(function unregisterPanel() {\r\n registry.unregister(id);\r\n });\r\n }\r\n return null;\r\n};\r\n\r\ntype DraggerItemProps = {\r\n dIdx: number;\r\n getPanelList: () => PanelRegistration[];\r\n getCollapsed: () => boolean[];\r\n getDraggingIdx: () => number | null;\r\n orientation: () => SplitterOrientation;\r\n draggerIcon?: JSX.Element | (() => JSX.Element);\r\n showCollapsibleIcon: () => CollapsibleConfig;\r\n collapsibleIcon?: {\r\n collapse?: JSX.Element | (() => JSX.Element);\r\n expand?: JSX.Element | (() => JSX.Element);\r\n };\r\n collapsedControlled: () => boolean;\r\n class?: SplitterProps['class'];\r\n onMouseDown: (idx: number, e: MouseEvent) => void;\r\n onDblClick: (idx: number) => void;\r\n onCollapse: (panelIdx: number) => void;\r\n};\r\n\r\nconst DraggerItem: Component<DraggerItemProps> = p => {\r\n const dIdx = p.dIdx;\r\n\r\n const leftResizable = createMemo(() => p.getPanelList()[dIdx]?.props.resizable !== false);\r\n const rightResizable = createMemo(() => p.getPanelList()[dIdx + 1]?.props.resizable !== false);\r\n const canResize = createMemo(() => leftResizable() && rightResizable());\r\n const isDragging = createMemo(() => p.getDraggingIdx() === dIdx);\r\n\r\n const leftCollapsible = createMemo(() => p.getPanelList()[dIdx]?.props.collapsible ?? false);\r\n const rightCollapsible = createMemo(() => p.getPanelList()[dIdx + 1]?.props.collapsible ?? false);\r\n const hasCollapse = createMemo(() => leftCollapsible() || rightCollapsible());\r\n\r\n const isLeftCollapsed = createMemo(() => p.getCollapsed()[dIdx] ?? false);\r\n const isRightCollapsed = createMemo(() => p.getCollapsed()[dIdx + 1] ?? false);\r\n\r\n const iconAlwaysShow = createMemo(() => p.showCollapsibleIcon() === true);\r\n const isH = createMemo(() => p.orientation() === 'horizontal');\r\n\r\n const showBtnNext = createMemo(() => {\r\n if (p.collapsedControlled()) return false;\r\n const cfg = p.showCollapsibleIcon();\r\n if (cfg === false) return false;\r\n if (!hasCollapse()) return false;\r\n\r\n return rightCollapsible() || isLeftCollapsed();\r\n });\r\n\r\n const showBtnPrevFull = createMemo(() => {\r\n if (p.collapsedControlled()) return false;\r\n const cfg = p.showCollapsibleIcon();\r\n if (cfg === false) return false;\r\n if (!hasCollapse()) return false;\r\n return leftCollapsible() || isRightCollapsed();\r\n });\r\n\r\n return (\r\n <div\r\n class={cn('sp06', !canResize() && 'sp07', isDragging() && 'sp08', p.class?.dragger)}\r\n onMouseDown={e => p.onMouseDown(dIdx, e)}\r\n onDblClick={() => p.onDblClick(dIdx)}\r\n >\r\n <div class={cn('sp15', p.class?.draggerBar)}>\r\n {p.draggerIcon ? renderIcon(p.draggerIcon) : null}\r\n </div>\r\n\r\n <Show when={showBtnPrevFull()}>\r\n <button\r\n class={cn(\r\n 'sp10',\r\n 'sp11',\r\n iconAlwaysShow() && 'sp13',\r\n\r\n (isLeftCollapsed() || isRightCollapsed()) && 'sp14',\r\n p.class?.collapseBtn,\r\n )}\r\n title={isLeftCollapsed() || isRightCollapsed() ? 'Expand' : 'Collapse'}\r\n onClick={e => {\r\n e.stopPropagation();\r\n\r\n if (isRightCollapsed()) p.onCollapse(dIdx + 1);\r\n else p.onCollapse(dIdx);\r\n }}\r\n >\r\n {isLeftCollapsed()\r\n ? renderIcon(\r\n p.collapsibleIcon?.expand ?? (isH() ? <CollapseRight /> : <CollapseDown />),\r\n )\r\n : isRightCollapsed()\r\n ? renderIcon(p.collapsibleIcon?.expand ?? (isH() ? <CollapseLeft /> : <CollapseUp />))\r\n : renderIcon(\r\n p.collapsibleIcon?.collapse ?? (isH() ? <CollapseLeft /> : <CollapseUp />),\r\n )}\r\n </button>\r\n </Show>\r\n\r\n <Show when={showBtnNext()}>\r\n <button\r\n class={cn(\r\n 'sp10',\r\n 'sp12',\r\n iconAlwaysShow() && 'sp13',\r\n\r\n (isRightCollapsed() || isLeftCollapsed()) && 'sp14',\r\n p.class?.collapseBtn,\r\n )}\r\n title={isRightCollapsed() ? 'Collapse' : 'Expand'}\r\n onClick={e => {\r\n e.stopPropagation();\r\n\r\n if (isLeftCollapsed()) p.onCollapse(dIdx);\r\n else p.onCollapse(dIdx + 1);\r\n }}\r\n >\r\n {isRightCollapsed()\r\n ? renderIcon(p.collapsibleIcon?.expand ?? (isH() ? <CollapseLeft /> : <CollapseUp />))\r\n : isLeftCollapsed()\r\n ? renderIcon(\r\n p.collapsibleIcon?.expand ?? (isH() ? <CollapseRight /> : <CollapseDown />),\r\n )\r\n : renderIcon(\r\n p.collapsibleIcon?.collapse ?? (isH() ? <CollapseRight /> : <CollapseDown />),\r\n )}\r\n </button>\r\n </Show>\r\n </div>\r\n );\r\n};\r\n\r\nexport const Splitter: Component<SplitterProps> & { Panel: Component<PanelProps> } = rawProps => {\r\n const p = mergeProps(\r\n {\r\n orientation: 'horizontal' as SplitterOrientation,\r\n lazy: false,\r\n color: 'primary' as const,\r\n },\r\n rawProps,\r\n );\r\n\r\n const orientation = createMemo<SplitterOrientation>(() =>\r\n p.vertical ? 'vertical' : (p.orientation ?? 'horizontal'),\r\n );\r\n\r\n const [panelMetas, setPanelMetas] = createSignal<PanelRegistration[]>([]);\r\n\r\n const registry: PanelRegistryContextValue = {\r\n register(reg) {\r\n setPanelMetas(prev => {\r\n const idx = prev.findIndex(r => r.id === reg.id);\r\n if (idx >= 0) {\r\n const next = [...prev];\r\n next[idx] = reg;\r\n return next;\r\n }\r\n return [...prev, reg];\r\n });\r\n },\r\n unregister(id) {\r\n setPanelMetas(prev => prev.filter(r => r.id !== id));\r\n },\r\n };\r\n\r\n const resolvedChildren = children(() => (\r\n <PanelRegistryContext.Provider value={registry}>{p.children}</PanelRegistryContext.Provider>\r\n ));\r\n\r\n function initSizes(metas: PanelRegistration[]): number[] {\r\n const n = metas.length;\r\n if (n === 0) return [];\r\n if (p.size && p.size.length === n) return [...p.size];\r\n\r\n const raw = metas.map(m => m.props.size ?? m.props.defaultSize);\r\n const hasAll = raw.every(v => v !== undefined);\r\n if (hasAll) {\r\n const total = raw.reduce((s, v) => s + v!, 0);\r\n return raw.map(v => (v! / total) * 100);\r\n }\r\n\r\n const definedTotal = (raw.filter(v => v !== undefined) as number[]).reduce((s, v) => s + v, 0);\r\n const undefinedCount = raw.filter(v => v === undefined).length;\r\n const eachUndefined = undefinedCount > 0 ? Math.max(0, 100 - definedTotal) / undefinedCount : 0;\r\n return raw.map(v => (v !== undefined ? v : eachUndefined));\r\n }\r\n\r\n const isCollapsedControlled = createMemo(() => Array.isArray(p.collapsed));\r\n\r\n const [sizes, setSizes] = createSignal<number[]>([]);\r\n const [collapsedInternal, setCollapsedInternal] = createSignal<boolean[]>([]);\r\n const [draggingIdx, setDraggingIdx] = createSignal<number | null>(null);\r\n\r\n const collapsed = createMemo(() =>\r\n isCollapsedControlled() ? (p.collapsed as boolean[]) : collapsedInternal(),\r\n );\r\n const setCollapsed = (next: boolean[]) => {\r\n if (!isCollapsedControlled()) setCollapsedInternal(next);\r\n };\r\n\r\n const [lazyGhostPos, setLazyGhostPos] = createSignal<number | null>(null);\r\n\r\n createEffect(\r\n on(panelMetas, metas => {\r\n if (metas.length === 0) return;\r\n setSizes(initSizes(metas));\r\n setCollapsedInternal(metas.map(() => false));\r\n }),\r\n );\r\n\r\n createEffect(\r\n on(\r\n () => p.size,\r\n controlled => {\r\n if (!controlled) return;\r\n if (controlled.length === panelMetas().length) setSizes([...controlled]);\r\n },\r\n ),\r\n );\r\n\r\n let containerRef: HTMLDivElement | undefined;\r\n let cachedContainerSize = 0;\r\n\r\n createEffect(function observeContainerSize() {\r\n if (!containerRef) return;\r\n const isH = orientation() === 'horizontal';\r\n const observer = new ResizeObserver(entries => {\r\n const entry = entries[0];\r\n if (!entry) return;\r\n cachedContainerSize = isH ? entry.contentRect.width : entry.contentRect.height;\r\n });\r\n observer.observe(containerRef);\r\n onCleanup(function disconnectContainerObserver() {\r\n observer.disconnect();\r\n });\r\n });\r\n\r\n function getContainerSize(): number {\r\n return cachedContainerSize;\r\n }\r\n\r\n // Trả về sizes đã normalize: tổng 100% chỉ tính trên panel visible\r\n function getNormalizedSizes(): number[] {\r\n const col = collapsed();\r\n const raw = sizes();\r\n const visibleTotal = raw.reduce((sum, s, i) => sum + (col[i] ? 0 : s), 0);\r\n if (visibleTotal === 0) return raw.map(() => 0);\r\n return raw.map((s, i) => (col[i] ? s : (s / visibleTotal) * 100));\r\n }\r\n\r\n let dragStartPos = 0;\r\n let dragStartSizes: number[] = [];\r\n let dragStartCollapsed: boolean[] = [];\r\n\r\n function onDraggerMouseDown(idx: number, e: MouseEvent) {\r\n const metas = panelMetas();\r\n if (metas[idx]?.props.resizable === false) return;\r\n if (metas[idx + 1]?.props.resizable === false) return;\r\n\r\n e.preventDefault();\r\n setDraggingIdx(idx);\r\n dragStartPos = orientation() === 'horizontal' ? e.clientX : e.clientY;\r\n dragStartSizes = getNormalizedSizes();\r\n dragStartCollapsed = [...collapsed()];\r\n p.onResizeStart?.({ sizes: dragStartSizes, index: idx });\r\n\r\n document.addEventListener('mousemove', onMouseMove);\r\n document.addEventListener('mouseup', onMouseUp);\r\n }\r\n\r\n function applyNewSizes(newSizes: number[], idx: number) {\r\n const col = [...collapsed()];\r\n let changed = false;\r\n if (col[idx] && newSizes[idx] > 0) {\r\n col[idx] = false;\r\n changed = true;\r\n }\r\n if (col[idx + 1] && newSizes[idx + 1] > 0) {\r\n col[idx + 1] = false;\r\n changed = true;\r\n }\r\n if (changed) setCollapsed(col);\r\n setSizes(newSizes);\r\n }\r\n\r\n function onMouseMove(e: MouseEvent) {\r\n const idx = draggingIdx();\r\n if (idx === null) return;\r\n\r\n const pos = orientation() === 'horizontal' ? e.clientX : e.clientY;\r\n const containerSize = getContainerSize();\r\n if (containerSize === 0) return;\r\n\r\n const deltaPct = ((pos - dragStartPos) / containerSize) * 100;\r\n const newSizes = redistributeSizes(\r\n dragStartSizes,\r\n idx,\r\n deltaPct,\r\n panelMetas(),\r\n dragStartCollapsed,\r\n );\r\n\r\n if (p.lazy) {\r\n const leftSumPct = newSizes.slice(0, idx + 1).reduce((s, v) => s + v, 0);\r\n setLazyGhostPos((leftSumPct / 100) * containerSize);\r\n } else {\r\n applyNewSizes(newSizes, idx);\r\n p.onResize?.({ sizes: newSizes, index: idx });\r\n }\r\n }\r\n\r\n function onMouseUp(e: MouseEvent) {\r\n const idx = draggingIdx();\r\n if (idx === null) return;\r\n\r\n if (p.lazy) {\r\n const pos = orientation() === 'horizontal' ? e.clientX : e.clientY;\r\n const containerSize = getContainerSize();\r\n if (containerSize > 0) {\r\n const deltaPct = ((pos - dragStartPos) / containerSize) * 100;\r\n const newSizes = redistributeSizes(\r\n dragStartSizes,\r\n idx,\r\n deltaPct,\r\n panelMetas(),\r\n dragStartCollapsed,\r\n );\r\n applyNewSizes(newSizes, idx);\r\n p.onResize?.({ sizes: newSizes, index: idx });\r\n p.onResizeEnd?.({ sizes: newSizes, index: idx });\r\n }\r\n setLazyGhostPos(null);\r\n } else {\r\n p.onResizeEnd?.({ sizes: sizes(), index: idx });\r\n }\r\n\r\n setDraggingIdx(null);\r\n document.removeEventListener('mousemove', onMouseMove);\r\n document.removeEventListener('mouseup', onMouseUp);\r\n }\r\n\r\n onCleanup(function removeDragListeners() {\r\n document.removeEventListener('mousemove', onMouseMove);\r\n document.removeEventListener('mouseup', onMouseUp);\r\n });\r\n\r\n function collapsePanel(panelIdx: number) {\r\n const metas = panelMetas();\r\n if (!metas[panelIdx]?.props.collapsible) return;\r\n\r\n const currentCollapsed = collapsed();\r\n const newCollapsed = [...currentCollapsed];\r\n\r\n if (currentCollapsed[panelIdx]) {\r\n // Expand: chỉ bỏ collapsed flag — render tự normalize sizes\r\n newCollapsed[panelIdx] = false;\r\n setCollapsed(newCollapsed);\r\n p.onCollapse?.({ sizes: sizes(), collapsed: newCollapsed, index: panelIdx });\r\n } else {\r\n // Collapse: chỉ đánh dấu collapsed — render tự normalize sizes\r\n newCollapsed[panelIdx] = true;\r\n setCollapsed(newCollapsed);\r\n p.onCollapse?.({ sizes: sizes(), collapsed: newCollapsed, index: panelIdx });\r\n }\r\n }\r\n\r\n const ghostStyle = createMemo<JSX.CSSProperties>(() => {\r\n const pos = lazyGhostPos();\r\n\r\n if (pos === null) return { display: 'none' };\r\n return orientation() === 'horizontal'\r\n ? { display: 'block', left: `${pos}px` }\r\n : { display: 'block', top: `${pos}px` };\r\n });\r\n\r\n return (\r\n <SplitterContext.Provider value={{ orientation: orientation() }}>\r\n <div class=\"hidden\">{resolvedChildren()}</div>\r\n\r\n <div\r\n ref={containerRef}\r\n class={cn(\r\n 'sp01',\r\n orientation() === 'vertical' ? 'sp02' : 'sp03',\r\n getColor(p.color),\r\n p.class?.root,\r\n )}\r\n >\r\n <For each={panelMetas()}>\r\n {(meta, idx) => {\r\n const isCollapsed = createMemo(() => collapsed()[idx()] ?? false);\r\n\r\n // Tính normalized size: chia đều 100% cho các panel visible\r\n const panelStyle = createMemo<JSX.CSSProperties>(() => {\r\n if (isCollapsed()) return { display: 'none' };\r\n\r\n const col = collapsed();\r\n const rawSizes = sizes();\r\n\r\n // Tính tổng size của các panel visible\r\n const visibleTotal = rawSizes.reduce((sum, s, i) => sum + (col[i] ? 0 : s), 0);\r\n\r\n const s = rawSizes[idx()] ?? 0;\r\n const normalized = visibleTotal > 0 ? (s / visibleTotal) * 100 : 0;\r\n\r\n return orientation() === 'horizontal'\r\n ? { 'flex-basis': `${normalized}%`, 'min-width': `${meta.props.min ?? 0}%` }\r\n : { 'flex-basis': `${normalized}%`, 'min-height': `${meta.props.min ?? 0}%` };\r\n });\r\n\r\n // Dragger sau panel idx() — ẩn chỉ khi cả hai phía đều không có panel visible.\r\n // Trong controlled mode: ẩn dragger nếu một trong hai panel kề trực tiếp bị ẩn,\r\n // vì nút collapse/expand đã bị tắt và thanh chỉ còn dùng để resize (vô nghĩa khi\r\n // một bên không hiển thị).\r\n const showDragger = createMemo(() => {\r\n if (idx() >= panelMetas().length - 1) return false;\r\n const col = collapsed();\r\n\r\n if (isCollapsedControlled()) {\r\n return !col[idx()] && !(col[idx() + 1] ?? false);\r\n }\r\n\r\n // Tìm panel visible gần nhất bên trái (bao gồm idx())\r\n let hasVisibleLeft = false;\r\n for (let i = idx(); i >= 0; i--) {\r\n if (!col[i]) {\r\n hasVisibleLeft = true;\r\n break;\r\n }\r\n }\r\n // Tìm panel visible gần nhất bên phải (idx()+1 trở đi)\r\n let hasVisibleRight = false;\r\n for (let i = idx() + 1; i < panelMetas().length; i++) {\r\n if (!col[i]) {\r\n hasVisibleRight = true;\r\n break;\r\n }\r\n }\r\n return hasVisibleLeft || hasVisibleRight;\r\n });\r\n\r\n return (\r\n <>\r\n <div\r\n class={cn('sp04', isCollapsed() && 'sp05', meta.props.class, p.class?.panel)}\r\n style={panelStyle()}\r\n data-panel-id={meta.id}\r\n >\r\n {meta.props.children}\r\n </div>\r\n\r\n <Show when={showDragger()}>\r\n <DraggerItem\r\n dIdx={idx()}\r\n getPanelList={panelMetas}\r\n getCollapsed={collapsed}\r\n getDraggingIdx={draggingIdx}\r\n orientation={orientation}\r\n draggerIcon={p.draggerIcon}\r\n showCollapsibleIcon={() => p.showCollapsibleIcon ?? 'auto'}\r\n collapsibleIcon={p.collapsibleIcon}\r\n collapsedControlled={isCollapsedControlled}\r\n class={p.class}\r\n onMouseDown={onDraggerMouseDown}\r\n onDblClick={dIdx => p.onDraggerDoubleClick?.(dIdx, sizes())}\r\n onCollapse={collapsePanel}\r\n />\r\n </Show>\r\n </>\r\n );\r\n }}\r\n </For>\r\n\r\n <Show when={p.lazy}>\r\n <div class=\"sp09\" style={ghostStyle()} />\r\n </Show>\r\n </div>\r\n </SplitterContext.Provider>\r\n );\r\n};\r\n\r\nSplitter.Panel = SplitterPanel;\r\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{cn as e}from"../../utils/cn.js";import{getColor as t}from"../../utils/helper.js";import{check_default as n}from"../../../node_modules/.pnpm/lucide-solid@1.8.0_solid-js@1.9.11/node_modules/lucide-solid/dist/source/icons/check.js";import{arrow_right_default as r}from"../../../node_modules/.pnpm/lucide-solid@1.8.0_solid-js@1.9.11/node_modules/lucide-solid/dist/source/icons/arrow-right.js";import{className as i,createComponent as a,delegateEvents as o,effect as s,insert as c,memo as l,mergeProps as u,setAttribute as d,template as f}from"solid-js/web";import{For as p,Show as m,createMemo as h,mergeProps as g}from"solid-js";var _=f(`<div>`),v=f(`<span class=ste17>`),y=f(`<div class=ste16>`),b=f(`<div><div class=ste18>`),x=f(`<span class=ste11 aria-hidden=true>`),S=f(`<div><div class=ste10><div class=ste18>`),C=f(`<div class=ste13><div>`),w=(e,t,n,r)=>n.includes(e)?`disabled`:r?.includes(e)||e===t?`active`:e<t?`done`:`upcoming`,T=t=>(()=>{var r=_();return c(r,a(m,{get when(){return l(()=>t.status===`done`)()&&!t.icon},get fallback(){return a(m,{get when(){return t.icon},get fallback(){return(()=>{var e=v();return c(e,()=>t.index+1),e})()},get children(){return t.icon}})},get children(){return a(n,{size:16,"stroke-width":3})}})),s(()=>i(r,e(`ste15`,t.class))),r})(),E=t=>(()=>{var n=_();return c(n,a(p,{get each(){return t.items},children:(n,r)=>{let o=()=>w(r(),t.current,t.disabled,t.activeIndex);return[a(m,{get when(){return l(()=>!t.isVertical)()&&r()>0},get children(){var n=_();return s(()=>i(n,e(`ste21 ste22`,`ste-s-${o()}`,t.class?.connector))),n}}),(()=>{var l=b(),u=l.firstChild;return l.$$click=()=>o()!==`disabled`&&t.onStepClick(r()),c(l,a(m,{get when(){return t.isVertical},get children(){var l=y();return c(l,a(T,{get index(){return r()},get status(){return o()},get icon(){return n.icon},get class(){return t.class?.icon}}),null),c(l,a(m,{get when(){return r()<t.items.length-1},get children(){var n=_();return s(()=>i(n,e(`ste21 ste23`,t.class?.connector))),n}}),null),l}}),u),c(l,a(m,{get when(){return!t.isVertical},get children(){return a(T,{get index(){return r()},get status(){return o()},get icon(){return n.icon},get class(){return t.class?.icon}})}}),u),c(u,a(m,{get when(){return n.title},get children(){var r=_();return c(r,()=>n.title),s(()=>i(r,e(`ste19`,t.class?.title))),r}}),null),c(u,a(m,{get when(){return n.description},get children(){var r=_();return c(r,()=>n.description),s(()=>i(r,e(`ste20`,t.class?.description))),r}}),null),s(n=>{var r=e(`ste07 ste08`,`ste-s-${o()}`,t.class?.step),a=o();return r!==n.e&&i(l,n.e=r),a!==n.t&&d(l,`data-status`,n.t=a),n},{e:void 0,t:void 0}),l})()]}})),s(()=>i(n,e(`ste01 ste02`,t.colorClass,t.isVertical?`ste06`:`ste05`,t.class?.root))),n})(),D=t=>(()=>{var n=_();return c(n,a(p,{get each(){return t.items},children:(n,o)=>{let u=()=>w(o(),t.current,t.disabled,t.activeIndex);return[a(m,{get when(){return l(()=>!t.isVertical)()&&o()>0},get children(){var e=x();return c(e,a(r,{size:14,"stroke-width":3,get color(){return u()===`active`||u()===`done`?`var(--color)`:`currentColor`}})),e}}),(()=>{var r=S(),l=r.firstChild,f=l.firstChild;return r.$$click=()=>u()!==`disabled`&&t.onStepClick(o()),c(l,a(T,{get index(){return o()},get status(){return u()},get icon(){return n.icon},get class(){return t.class?.icon}}),f),c(f,a(m,{get when(){return n.title},get children(){var r=_();return c(r,()=>n.title),s(()=>i(r,e(`ste19`,t.class?.title))),r}}),null),c(f,a(m,{get when(){return n.description},get children(){var r=_();return c(r,()=>n.description),s(()=>i(r,e(`ste20`,t.class?.description))),r}}),null),s(n=>{var a=e(`ste07 ste09`,`ste-s-${u()}`,t.class?.step),o=u();return a!==n.e&&i(r,n.e=a),o!==n.t&&d(r,`data-status`,n.t=o),n},{e:void 0,t:void 0}),r})()]}})),s(()=>i(n,e(`ste01 ste03`,t.colorClass,t.isVertical?`ste06`:`ste05`,t.class?.root))),n})(),O=t=>(()=>{var n=_();return c(n,a(p,{get each(){return t.items},children:(n,r)=>{let o=()=>w(r(),t.current,t.disabled,t.activeIndex);return[a(m,{get when(){return l(()=>!t.isVertical)()&&r()>0},get children(){var n=_();return s(()=>i(n,e(`ste21 ste22 ste24`,`ste-s-${o()}`,t.class?.connector))),n}}),(()=>{var l=b(),u=l.firstChild;return l.$$click=()=>o()!==`disabled`&&t.onStepClick(r()),c(l,a(m,{get when(){return t.isVertical},get children(){var n=C(),o=n.firstChild;return c(n,a(m,{get when(){return r()<t.items.length-1},get children(){var n=_();return s(()=>i(n,e(`ste21 ste23`,t.class?.connector))),n}}),null),s(()=>i(o,e(`ste14`,t.class?.icon))),n}}),u),c(l,a(m,{get when(){return!t.isVertical},get children(){var n=_();return s(()=>i(n,e(`ste14`,t.class?.icon))),n}}),u),c(u,a(m,{get when(){return n.title},get children(){var r=_();return c(r,()=>n.title),s(()=>i(r,e(`ste19`,t.class?.title))),r}}),null),c(u,a(m,{get when(){return n.description},get children(){var r=_();return c(r,()=>n.description),s(()=>i(r,e(`ste20`,t.class?.description))),r}}),null),s(n=>{var r=e(`ste07 ste12`,`ste-s-${o()}`,t.class?.step),a=o();return r!==n.e&&i(l,n.e=r),a!==n.t&&d(l,`data-status`,n.t=a),n},{e:void 0,t:void 0}),l})()]}})),s(()=>i(n,e(`ste01 ste04`,t.colorClass,t.isVertical?`ste06`:`ste05`,t.class?.root))),n})(),k=e=>{e=g({type:`default`,orientation:`horizontal`,color:`primary`,disabled:[],items:[]},e);let n=()=>e.current?.()??0,r=h(()=>e.items&&e.items.length>0?e.items:e.total&&e.total>0?Array.from({length:e.total},(e,t)=>({title:`Step ${t+1}`})):[]),i=t=>{e.setCurrent?.(t),e.onChange?.(t)},o=h(()=>({items:r(),current:n(),disabled:e.disabled??[],activeIndex:e.activeIndex,isVertical:e.orientation===`vertical`,colorClass:t(e.color,`color-primary`),onStepClick:i,class:e.class}));return a(m,{get when(){return e.type===`navigation`},get fallback(){return a(m,{get when(){return e.type===`dot`},get fallback(){return a(E,u(o))},get children(){return a(O,u(o))}})},get children(){return a(D,u(o))}})};o([`click`]);export{k as Steps};
2
+ //# sourceMappingURL=steps.js.map
@@ -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';\r\nimport { cn } from '@/utils/cn';\r\nimport { getColor } from '@/utils/helper';\r\nimport ArrowRight from 'lucide-solid/icons/arrow-right';\r\nimport Check from 'lucide-solid/icons/check';\r\nimport { Accessor, Component, createMemo, For, JSX, mergeProps, Setter, Show } from 'solid-js';\r\n\r\n// ─── Types ────────────────────────────────────────────────────────────────────\r\n\r\nexport type StepItem = {\r\n title?: JSX.Element;\r\n description?: JSX.Element;\r\n icon?: JSX.Element;\r\n};\r\n\r\nexport type StepsProps = {\r\n type?: 'default' | 'navigation' | 'dot';\r\n color?: BaseColorProps;\r\n orientation?: 'horizontal' | 'vertical';\r\n total?: number;\r\n items?: StepItem[];\r\n current?: Accessor<number>;\r\n setCurrent?: Setter<number>;\r\n onChange?: (index: number) => void;\r\n disabled?: number[];\r\n activeIndex?: number[];\r\n class?: {\r\n root?: string;\r\n step?: string;\r\n icon?: string;\r\n title?: string;\r\n description?: string;\r\n connector?: string;\r\n };\r\n};\r\n\r\n// ─── Helpers ──────────────────────────────────────────────────────────────────\r\n\r\ntype StepStatus = 'active' | 'done' | 'upcoming' | 'disabled';\r\n\r\nconst getStepStatus = (\r\n index: number,\r\n current: number,\r\n disabled: number[],\r\n activeIndex?: number[],\r\n): StepStatus => {\r\n if (disabled.includes(index)) return 'disabled';\r\n if (activeIndex?.includes(index)) return 'active';\r\n if (index === current) return 'active';\r\n if (index < current) return 'done';\r\n return 'upcoming';\r\n};\r\n\r\n// ─── StepIcon — reusable icon renderer ───────────────────────────────────────\r\n// Renders: checkmark (done, no custom icon) | custom icon | step number\r\n\r\ntype StepIconProps = {\r\n index: number;\r\n status: StepStatus;\r\n icon?: JSX.Element;\r\n class?: string;\r\n};\r\n\r\nconst StepIconContent: Component<StepIconProps> = p => (\r\n <div class={cn('ste15', p.class)}>\r\n <Show\r\n when={p.status === 'done' && !p.icon}\r\n fallback={\r\n <Show when={p.icon} fallback={<span class=\"ste17\">{p.index + 1}</span>}>\r\n {p.icon}\r\n </Show>\r\n }\r\n >\r\n <Check size={16} stroke-width={3} />\r\n </Show>\r\n </div>\r\n);\r\n\r\n// ─── Internal props shared across sub-components ──────────────────────────────\r\n\r\ntype InternalProps = {\r\n items: StepItem[];\r\n current: number;\r\n disabled: number[];\r\n activeIndex?: number[];\r\n isVertical: boolean;\r\n colorClass: string;\r\n onStepClick: (index: number) => void;\r\n class?: StepsProps['class'];\r\n};\r\n\r\n// ─── Sub-component: Default ───────────────────────────────────────────────────\r\n\r\nconst TypeDefault: Component<InternalProps> = p => (\r\n <div class={cn('ste01 ste02', p.colorClass, p.isVertical ? 'ste06' : 'ste05', p.class?.root)}>\r\n <For each={p.items}>\r\n {(item, i) => {\r\n const status = () => getStepStatus(i(), p.current, p.disabled, p.activeIndex);\r\n\r\n return (\r\n <>\r\n {/* Connector nằm giữa hai step (horizontal), trước mỗi step từ index 1 */}\r\n <Show when={!p.isVertical && i() > 0}>\r\n <div class={cn('ste21 ste22', `ste-s-${status()}`, p.class?.connector)} />\r\n </Show>\r\n\r\n <div\r\n class={cn('ste07 ste08', `ste-s-${status()}`, p.class?.step)}\r\n data-status={status()}\r\n onClick={() => status() !== 'disabled' && p.onStepClick(i())}\r\n >\r\n {/* ── Vertical: icon col + connector ── */}\r\n <Show when={p.isVertical}>\r\n <div class=\"ste16\">\r\n <StepIconContent\r\n index={i()}\r\n status={status()}\r\n icon={item.icon}\r\n class={p.class?.icon}\r\n />\r\n <Show when={i() < p.items.length - 1}>\r\n <div class={cn('ste21 ste23', p.class?.connector)} />\r\n </Show>\r\n </div>\r\n </Show>\r\n\r\n {/* ── Horizontal: chỉ icon (connector đã là sibling bên ngoài) ── */}\r\n <Show when={!p.isVertical}>\r\n <StepIconContent\r\n index={i()}\r\n status={status()}\r\n icon={item.icon}\r\n class={p.class?.icon}\r\n />\r\n </Show>\r\n\r\n {/* ── Content ── */}\r\n <div class=\"ste18\">\r\n <Show when={item.title}>\r\n <div class={cn('ste19', p.class?.title)}>{item.title}</div>\r\n </Show>\r\n <Show when={item.description}>\r\n <div class={cn('ste20', p.class?.description)}>{item.description}</div>\r\n </Show>\r\n </div>\r\n </div>\r\n </>\r\n );\r\n }}\r\n </For>\r\n </div>\r\n);\r\n\r\n// ─── Sub-component: Navigation ────────────────────────────────────────────────\r\n\r\nconst TypeNavigation: Component<InternalProps> = p => (\r\n <div class={cn('ste01 ste03', p.colorClass, p.isVertical ? 'ste06' : 'ste05', p.class?.root)}>\r\n <For each={p.items}>\r\n {(item, i) => {\r\n const status = () => getStepStatus(i(), p.current, p.disabled, p.activeIndex);\r\n\r\n return (\r\n <>\r\n {/* Separator giữa các step — horizontal only */}\r\n <Show when={!p.isVertical && i() > 0}>\r\n <span class=\"ste11\" aria-hidden=\"true\">\r\n <ArrowRight\r\n size={14}\r\n stroke-width={3}\r\n color={\r\n status() === 'active' || status() === 'done' ? 'var(--color)' : 'currentColor'\r\n }\r\n />\r\n </span>\r\n </Show>\r\n\r\n <div\r\n class={cn('ste07 ste09', `ste-s-${status()}`, p.class?.step)}\r\n data-status={status()}\r\n onClick={() => status() !== 'disabled' && p.onStepClick(i())}\r\n >\r\n <div class=\"ste10\">\r\n <StepIconContent\r\n index={i()}\r\n status={status()}\r\n icon={item.icon}\r\n class={p.class?.icon}\r\n />\r\n <div class=\"ste18\">\r\n <Show when={item.title}>\r\n <div class={cn('ste19', p.class?.title)}>{item.title}</div>\r\n </Show>\r\n <Show when={item.description}>\r\n <div class={cn('ste20', p.class?.description)}>{item.description}</div>\r\n </Show>\r\n </div>\r\n </div>\r\n </div>\r\n </>\r\n );\r\n }}\r\n </For>\r\n </div>\r\n);\r\n\r\n// ─── Sub-component: Dot ───────────────────────────────────────────────────────\r\n\r\nconst TypeDot: Component<InternalProps> = p => (\r\n <div class={cn('ste01 ste04', p.colorClass, p.isVertical ? 'ste06' : 'ste05', p.class?.root)}>\r\n <For each={p.items}>\r\n {(item, i) => {\r\n const status = () => getStepStatus(i(), p.current, p.disabled, p.activeIndex);\r\n\r\n return (\r\n <>\r\n {/* Connector sibling — horizontal only, trước mỗi step từ index 1 */}\r\n <Show when={!p.isVertical && i() > 0}>\r\n <div class={cn('ste21 ste22 ste24', `ste-s-${status()}`, p.class?.connector)} />\r\n </Show>\r\n\r\n <div\r\n class={cn('ste07 ste12', `ste-s-${status()}`, p.class?.step)}\r\n data-status={status()}\r\n onClick={() => status() !== 'disabled' && p.onStepClick(i())}\r\n >\r\n {/* ── Vertical: dot col + connector ── */}\r\n <Show when={p.isVertical}>\r\n <div class=\"ste13\">\r\n <div class={cn('ste14', p.class?.icon)} />\r\n <Show when={i() < p.items.length - 1}>\r\n <div class={cn('ste21 ste23', p.class?.connector)} />\r\n </Show>\r\n </div>\r\n </Show>\r\n\r\n {/* ── Horizontal: chỉ dot (connector là sibling bên ngoài) ── */}\r\n <Show when={!p.isVertical}>\r\n <div class={cn('ste14', p.class?.icon)} />\r\n </Show>\r\n\r\n {/* Content */}\r\n <div class=\"ste18\">\r\n <Show when={item.title}>\r\n <div class={cn('ste19', p.class?.title)}>{item.title}</div>\r\n </Show>\r\n <Show when={item.description}>\r\n <div class={cn('ste20', p.class?.description)}>{item.description}</div>\r\n </Show>\r\n </div>\r\n </div>\r\n </>\r\n );\r\n }}\r\n </For>\r\n </div>\r\n);\r\n\r\n// ─── Main Component ───────────────────────────────────────────────────────────\r\n\r\nexport const Steps: Component<StepsProps> = p => {\r\n p = mergeProps(\r\n {\r\n type: 'default',\r\n orientation: 'horizontal',\r\n color: 'primary',\r\n disabled: [],\r\n items: [],\r\n } as StepsProps,\r\n p,\r\n );\r\n\r\n const current = () => p.current?.() ?? 0;\r\n\r\n const resolvedItems = createMemo((): StepItem[] => {\r\n if (p.items && p.items.length > 0) return p.items;\r\n if (p.total && p.total > 0)\r\n return Array.from({ length: p.total }, (_, i) => ({ title: `Step ${i + 1}` }));\r\n return [];\r\n });\r\n\r\n const handleClick = (index: number) => {\r\n p.setCurrent?.(index);\r\n p.onChange?.(index);\r\n };\r\n\r\n const shared = createMemo(\r\n (): InternalProps => ({\r\n items: resolvedItems(),\r\n current: current(),\r\n disabled: p.disabled ?? [],\r\n activeIndex: p.activeIndex,\r\n isVertical: p.orientation === 'vertical',\r\n colorClass: getColor(p.color, 'color-primary'),\r\n onStepClick: handleClick,\r\n class: p.class,\r\n }),\r\n );\r\n\r\n return (\r\n <Show\r\n when={p.type === 'navigation'}\r\n fallback={\r\n <Show when={p.type === 'dot'} fallback={<TypeDefault {...shared()} />}>\r\n <TypeDot {...shared()} />\r\n </Show>\r\n }\r\n >\r\n <TypeNavigation {...shared()} />\r\n </Show>\r\n );\r\n};\r\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';\r\nimport { cn } from '@/utils/cn';\r\nimport { Component } from 'solid-js';\r\n\r\ntype SwapType = {\r\n item1: SolidComponent;\r\n item2: SolidComponent;\r\n effect?: 'rotate' | 'flip' | 'none';\r\n onChange?: (value: boolean) => void;\r\n};\r\nexport const Swap: Component<SwapType> = p => {\r\n return (\r\n <label\r\n class={cn(\r\n 'swap',\r\n p.effect === 'flip' ? 'swap-flip' : p.effect === 'rotate' ? 'swap-rotate' : '',\r\n )}\r\n >\r\n <input\r\n type=\"checkbox\"\r\n onChange={e => {\r\n p?.onChange?.(e.target.checked);\r\n }}\r\n />\r\n <div class=\"swap-on\">{p.item1 as Element}</div>\r\n <div class=\"swap-off\">{p.item2 as Element}</div>\r\n <div class=\"swap-indeterminate\"></div>\r\n </label>\r\n );\r\n};\r\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';\r\nimport { cva, type VariantProps } from 'class-variance-authority';\r\nimport { Component, createEffect, createSignal, mergeProps, Show } from 'solid-js';\r\nimport type { SwitchProps } from './switch.types';\r\n\r\nconst variants = cva('', {\r\n variants: {\r\n size: {\r\n xs: 'h-4 w-7',\r\n sm: 'h-5 w-9',\r\n md: 'h-6 w-11',\r\n lg: 'h-7 w-14',\r\n xl: 'h-8 w-16',\r\n },\r\n color: {\r\n primary: 'bg-primary text-primary',\r\n secondary: 'bg-secondary text-secondary',\r\n accent: 'bg-accent text-accent',\r\n neutral: 'bg-neutral text-neutral',\r\n info: 'bg-info text-info',\r\n success: 'bg-success text-success',\r\n warning: 'bg-warning text-warning',\r\n error: 'bg-error text-error',\r\n },\r\n },\r\n});\r\n\r\nexport type SwitchVariantProps = VariantProps<typeof variants>;\r\n\r\nexport const Switch: Component<SwitchProps> = props => {\r\n const p = mergeProps(\r\n {\r\n className: '',\r\n defaultChecked: false,\r\n disabled: false,\r\n loading: false,\r\n size: 'md' as const,\r\n color: 'primary' as const,\r\n },\r\n props,\r\n );\r\n\r\n const [internalChecked, setInternalChecked] = createSignal(p.defaultChecked);\r\n\r\n const isControlled = () => p.checked !== undefined;\r\n const checked = () => (isControlled() ? p.checked! : internalChecked());\r\n\r\n createEffect(function syncControlledChecked() {\r\n if (isControlled()) {\r\n setInternalChecked(p.checked!);\r\n }\r\n });\r\n\r\n const mergedDisabled = () => p.disabled || p.loading;\r\n\r\n const handleClick = (e: MouseEvent) => {\r\n if (mergedDisabled()) return;\r\n\r\n const newChecked = !checked();\r\n\r\n if (!isControlled()) {\r\n setInternalChecked(newChecked);\r\n }\r\n\r\n p.onClick?.(newChecked);\r\n p.onChange?.(newChecked);\r\n };\r\n\r\n return (\r\n <button\r\n type=\"button\"\r\n role=\"switch\"\r\n aria-checked={checked()}\r\n disabled={mergedDisabled()}\r\n class={cn(\r\n 'sui_switch @container relative flex cursor-pointer items-center rounded-full border-2 border-transparent p-px',\r\n variants({ size: p.size, color: p.color }),\r\n 'transition duration-400',\r\n !checked() && 'bg-gray-300',\r\n mergedDisabled() && 'cursor-not-allowed opacity-50',\r\n p.class?.root,\r\n )}\r\n onClick={handleClick}\r\n >\r\n <div\r\n class={cn(\r\n 'sui_thumb aspect-square h-full rounded-full bg-white transition-transform duration-400 ease-in-out',\r\n\r\n checked() && 'translate-x-[calc(100cqw-100%)]',\r\n )}\r\n >\r\n <Show when={p.loading}>\r\n <span class=\"flex size-full animate-spin\">\r\n <IconLoading />\r\n </span>\r\n </Show>\r\n </div>\r\n </button>\r\n );\r\n};\r\n\r\nconst IconLoading = () => {\r\n return (\r\n <svg class=\"size-full\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\">\r\n <circle class=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"#ccc\" stroke-width=\"4\"></circle>\r\n <path\r\n class=\"opacity-90\"\r\n fill=\"currentColor\"\r\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\"\r\n ></path>\r\n </svg>\r\n );\r\n};\r\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,2 @@
1
+ import{cn as e}from"../../utils/cn.js";import{getColor as t}from"../../utils/helper.js";import{x_default as n}from"../../../node_modules/.pnpm/lucide-solid@1.8.0_solid-js@1.9.11/node_modules/lucide-solid/dist/source/icons/x.js";import{Tooltip as r}from"../tooltip/tooltip.js";import{pin_default as i}from"../../../node_modules/.pnpm/lucide-solid@1.8.0_solid-js@1.9.11/node_modules/lucide-solid/dist/source/icons/pin.js";import{pin_off_default as a}from"../../../node_modules/.pnpm/lucide-solid@1.8.0_solid-js@1.9.11/node_modules/lucide-solid/dist/source/icons/pin-off.js";import{plus_default as o}from"../../../node_modules/.pnpm/lucide-solid@1.8.0_solid-js@1.9.11/node_modules/lucide-solid/dist/source/icons/plus.js";import{className as s,createComponent as c,delegateEvents as l,effect as u,insert as d,memo as f,mergeProps as p,setAttribute as m,template as h,use as g}from"solid-js/web";import{cva as _}from"class-variance-authority";import{For as v,Show as y,createEffect as b,createMemo as x,createSignal as S,createUniqueId as C,mergeProps as w,on as T}from"solid-js";var ee=h(`<div>New Tab Content`),E=h(`<button title="Add new tab">`),D=h(`<button class=tab12>`),O=h(`<div class=tab15><span>No tabs available`),k=h(`<div><div></div><div>`),A=h(`<div class=tab14>`),j=h(`<span class=tab06>`),M=h(`<input type=text class=tab16>`),N=h(`<button class="tab09 tab10">`),te=h(`<button class="tab09 tab11"title="Close tab">`),ne=h(`<div class=tab08>`),P=h(`<div>`),F=h(`<span class=tab07>`),I=_(``,{variants:{variants:{lift:``,box:``,border:`rounded-none p-0`},tabPlacement:{horizontal:``,vertical:``},position:{top:``,bottom:``,left:``,right:``}},compoundVariants:[{variants:`lift`,position:`top`,class:`pb-0`},{variants:`lift`,position:`bottom`,class:`pt-0`},{variants:`lift`,tabPlacement:`vertical`,position:`left`,class:`pr-0 overflow-x-hidden`},{variants:`lift`,tabPlacement:`vertical`,position:`right`,class:`pl-0 overflow-x-hidden`}]}),L={tabPlacement:`horizontal`,position:`top`,align:`left`,variants:`box`,canAdd:!0,canPin:!1,canRename:!0,preRender:!1,color:`primary`},R=19,z=l=>{let h=w(L,l),_=C(),[z,B]=S(h.defaultActiveKey||h.items()[0]?.key||``),[V,H]=S(new Set),[U,W]=S(null),[G,K]=S(``),q=x(()=>h.tabPlacement===`vertical`?h.position===`left`||h.position===`right`?h.position:`left`:h.position===`top`||h.position===`bottom`?h.position:`top`),J=x(()=>{let e=h.items(),t=e.filter(e=>e.pinned),n=e.filter(e=>!e.pinned);return[...t,...n]}),Y=x(()=>{let e=h.items(),t=e.some(e=>e.pinned),n=e.some(e=>!e.pinned);return t&&n}),X=x(()=>J().findIndex(e=>!e.pinned));b(T(()=>h.items(),e=>{e.length>0&&!e.find(e=>e.key===z())&&B(e[0].key)})),b(T(z,e=>{e&&!V().has(e)&&H(t=>new Set([...t,e]))}));let re=e=>{e.disabled||(B(e.key),h.onChange?.(e.key))},ie=(e,t)=>{e.button===1&&t.closable!==!1&&(e.preventDefault(),Q(t))},Z=()=>{if(h.onAdd){let e=h.onAdd();e&&(h.setItems(t=>[...t,e]),B(e.key))}else{let e=C(),t={key:e,label:`Tab ${h.items().length+1}`,children:ee()};h.setItems(e=>[...e,t]),B(e)}},Q=async e=>{if(e.closable===!1)return;let t=e.label||`Tab ${h.items().findIndex(t=>t.key===e.key)+1}`;if(h.onRemove&&await h.onRemove(e.key,t)===!1)return;let n=h.items(),r=n.findIndex(t=>t.key===e.key);if(z()===e.key){let e=n[r+1]||n[r-1];e&&B(e.key)}h.setItems(t=>t.filter(t=>t.key!==e.key)),H(t=>{let n=new Set(t);return n.delete(e.key),n})},ae=(e,t)=>{t.stopPropagation();let n=!e.pinned;h.setItems(t=>t.map(t=>t.key===e.key?{...t,pinned:n}:t)),h.onPin?.(e.key,n)},oe=(e,t)=>{if(!h.canRename||e.disabled)return;t.stopPropagation();let n=e.label||`Tab ${h.items().findIndex(t=>t.key===e.key)+1}`;W(e.key),K(n)},$=e=>{let t=G().trim();t&&t!==e.label&&(h.setItems(n=>n.map(n=>n.key===e.key?{...n,label:t}:n)),h.onRename?.(e.key,t)),W(null),K(``)},se=(e,t)=>{t.key===`Enter`?(t.preventDefault(),$(e)):t.key===`Escape`&&(t.preventDefault(),W(null),K(``))},ce=e=>{let t=z()===e.key;return(e.pinned||h.preRender)&&V().has(e.key)||t};return(()=>{var l=k(),b=l.firstChild,x=b.nextSibling;return m(l,`id`,_),d(b,c(v,{get each(){return J()},children:(t,o)=>[c(y,{get when(){return f(()=>!!Y())()&&o()===X()},get children(){return A()}}),(()=>{var o=P();return o.$$dblclick=e=>oe(t,e),o.$$mousedown=e=>ie(e,t),o.$$click=()=>re(t),d(o,c(y,{get when(){return t.icon},get children(){var e=j();return d(e,()=>t.icon),e}}),null),d(o,c(y,{get when(){return U()===t.key},get fallback(){return c(y,{get when(){return h.useTooltip},get fallback(){return(()=>{var e=F();return d(e,()=>t.label||`Tab ${h.items().findIndex(e=>e.key===t.key)+1}`),e})()},get children(){return(()=>{let e=t.label||`Tab ${h.items().findIndex(e=>e.key===t.key)+1}`;if(!(e.length>R))return(()=>{var t=F();return d(t,e),t})();let n=h.tooltipOptions??{};return c(r,p(`customContent`in n&&n.customContent!=null?{type:`default`,position:`top`,color:h?.color,customContent:n.customContent}:{type:`default`,position:`top`,color:h?.color,content:n.content??e},{get children(){var t=F();return d(t,e),t}}))})()}})},get children(){var e=M();return e.$$click=e=>e.stopPropagation(),e.$$keydown=e=>se(t,e),e.addEventListener(`blur`,()=>$(t)),e.$$input=e=>K(e.currentTarget.value),g(e=>setTimeout(()=>{e?.focus(),e?.select()},0),e),u(()=>e.value=G()),e}}),null),d(o,c(y,{get when(){return h.canPin||t.closable!==!1},get children(){var e=ne();return d(e,c(y,{get when(){return h.canPin},get children(){var e=N();return e.$$click=e=>ae(t,e),d(e,c(y,{get when(){return t.pinned},get fallback(){return c(i,{size:12})},get children(){return c(a,{size:12})}})),u(()=>m(e,`title`,t.pinned?`Unpin tab`:`Pin tab`)),e}}),null),d(e,c(y,{get when(){return t.closable!==!1},get children(){var e=te();return e.$$click=e=>{e.stopPropagation(),Q(t)},d(e,c(n,{size:12})),e}}),null),e}}),null),u(()=>s(o,e(`tab03`,U()===t.key&&`bg-base-100`,z()===t.key&&`tab04`,t.pinned&&`tab05`,t.disabled&&`pointer-events-none opacity-50`,h.class?.item))),o})()]}),null),d(b,c(y,{get when(){return h.canAdd},get children(){var t=E();return t.$$click=Z,d(t,c(o,{size:14})),u(()=>s(t,e(`tab12`,h.class?.addButton))),t}}),null),d(x,c(y,{get when(){return h.items().length===0},get children(){var e=O();return e.firstChild,d(e,c(y,{get when(){return h.canAdd},get children(){var e=D();return e.$$click=Z,d(e,c(i,{size:14})),e}}),null),e}}),null),d(x,c(v,{get each(){return h.items()},children:t=>c(y,{get when(){return ce(t)},get children(){var n=P();return d(n,()=>t.children),u(()=>s(n,e(`tab29 size-full`,z()!==t.key&&`hidden`))),n}})}),null),u(n=>{var r=e(`tab01`,t(h.color),`tab${h.variants===`box`?`23`:h.variants===`lift`?`24`:`25`}`,`tab${h.tabPlacement===`horizontal`?`17`:`18`}`,`tab${q()===`top`?`19`:q()===`bottom`?`20`:q()===`left`?`21`:`22`}`,h.class?.root),i=e(`tab02`,`tab${h.align===`left`?`26`:h.align===`center`?`27`:`28`}`,I({variants:h.variants,tabPlacement:h.tabPlacement,position:h.position}),h.class?.header),a=e(`tab13`,h.class?.content);return r!==n.e&&s(l,n.e=r),i!==n.t&&s(b,n.t=i),a!==n.a&&s(x,n.a=a),n},{e:void 0,t:void 0,a:void 0}),l})()};l([`click`,`mousedown`,`dblclick`,`input`,`keydown`]);export{z as Tab};
2
+ //# sourceMappingURL=tab.js.map
@@ -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';\r\nimport { getColor } from '@/utils/helper';\r\nimport { Tooltip } from '@components/tooltip';\r\nimport type { TooltipDefaultProps } from '@components/tooltip';\r\nimport { cva } from 'class-variance-authority';\r\nimport Pin from 'lucide-solid/icons/pin';\r\nimport PinOff from 'lucide-solid/icons/pin-off';\r\nimport Plus from 'lucide-solid/icons/plus';\r\nimport X from 'lucide-solid/icons/x';\r\nimport {\r\n Component,\r\n createEffect,\r\n createMemo,\r\n createSignal,\r\n createUniqueId,\r\n For,\r\n JSX,\r\n mergeProps,\r\n on,\r\n Show,\r\n} from 'solid-js';\r\nimport { TabItem, TabProps } from './tab.types';\r\nimport { BaseColorProps } from '@/type';\r\n\r\nconst headerVariant = cva('', {\r\n variants: {\r\n variants: {\r\n lift: '',\r\n box: '',\r\n border: 'rounded-none p-0',\r\n },\r\n tabPlacement: { horizontal: '', vertical: '' },\r\n position: { top: '', bottom: '', left: '', right: '' },\r\n },\r\n compoundVariants: [\r\n {\r\n variants: 'lift',\r\n position: 'top',\r\n class: 'pb-0',\r\n },\r\n {\r\n variants: 'lift',\r\n position: 'bottom',\r\n class: 'pt-0',\r\n },\r\n {\r\n variants: 'lift',\r\n tabPlacement: 'vertical',\r\n position: 'left',\r\n class: 'pr-0 overflow-x-hidden',\r\n },\r\n {\r\n variants: 'lift',\r\n tabPlacement: 'vertical',\r\n position: 'right',\r\n class: 'pl-0 overflow-x-hidden',\r\n },\r\n ],\r\n});\r\n\r\nconst DEFAULT_PROPS = {\r\n tabPlacement: 'horizontal' as const,\r\n position: 'top' as const,\r\n align: 'left' as const,\r\n variants: 'box' as const,\r\n canAdd: true,\r\n canPin: false,\r\n canRename: true,\r\n preRender: false,\r\n color: 'primary',\r\n};\r\n\r\nconst TOOLTIP_CHAR_THRESHOLD = 19;\r\n\r\nexport const Tab: Component<TabProps> = props => {\r\n const p = mergeProps(DEFAULT_PROPS, props);\r\n const tabRootId = createUniqueId();\r\n\r\n // Active tab key\r\n const [activeKey, setActiveKey] = createSignal<string>(\r\n p.defaultActiveKey || p.items()[0]?.key || '',\r\n );\r\n\r\n // Rendered tabs tracking (for lazy rendering)\r\n const [renderedTabs, setRenderedTabs] = createSignal<Set<string>>(new Set());\r\n\r\n // Editing state for rename feature\r\n const [editingKey, setEditingKey] = createSignal<string | null>(null);\r\n const [editingValue, setEditingValue] = createSignal<string>('');\r\n\r\n // Compute position based on tabPlacement\r\n const computedPosition = createMemo(() => {\r\n if (p.tabPlacement === 'vertical') {\r\n return p.position === 'left' || p.position === 'right' ? p.position : 'left';\r\n }\r\n return p.position === 'top' || p.position === 'bottom' ? p.position : 'top';\r\n });\r\n\r\n // Sort items: pinned first, then unpinned (maintain order within each group)\r\n const sortedItems = createMemo(() => {\r\n const items = p.items();\r\n const pinned = items.filter(item => item.pinned);\r\n const unpinned = items.filter(item => !item.pinned);\r\n return [...pinned, ...unpinned];\r\n });\r\n\r\n // Check if there are both pinned and unpinned items (for separator)\r\n const hasPinnedAndUnpinned = createMemo(() => {\r\n const items = p.items();\r\n const hasPinned = items.some(item => item.pinned);\r\n const hasUnpinned = items.some(item => !item.pinned);\r\n return hasPinned && hasUnpinned;\r\n });\r\n\r\n // Get first unpinned item index in sorted list\r\n const firstUnpinnedIndex = createMemo(() => {\r\n const items = sortedItems();\r\n return items.findIndex(item => !item.pinned);\r\n });\r\n\r\n // Update active key when items change\r\n createEffect(\r\n on(\r\n () => p.items(),\r\n items => {\r\n if (items.length > 0 && !items.find(item => item.key === activeKey())) {\r\n setActiveKey(items[0].key);\r\n }\r\n },\r\n ),\r\n );\r\n\r\n // Mark tab as rendered when it becomes active\r\n createEffect(\r\n on(activeKey, key => {\r\n if (key && !renderedTabs().has(key)) {\r\n setRenderedTabs(prev => new Set([...prev, key]));\r\n }\r\n }),\r\n );\r\n\r\n // Handle tab click\r\n const handleTabClick = (item: TabItem) => {\r\n if (item.disabled) return;\r\n setActiveKey(item.key);\r\n p.onChange?.(item.key);\r\n };\r\n\r\n // Handle middle mouse click to close tab\r\n const handleMouseDown = (e: MouseEvent, item: TabItem) => {\r\n if (e.button === 1 && item.closable !== false) {\r\n e.preventDefault();\r\n handleRemoveTab(item);\r\n }\r\n };\r\n\r\n // Handle add tab\r\n const handleAddTab = () => {\r\n if (p.onAdd) {\r\n const newItem = p.onAdd();\r\n if (newItem) {\r\n p.setItems(prev => [...prev, newItem]);\r\n setActiveKey(newItem.key);\r\n }\r\n } else {\r\n // Default behavior: create a new tab\r\n const newKey = createUniqueId();\r\n const newItem: TabItem = {\r\n key: newKey,\r\n label: `Tab ${p.items().length + 1}`,\r\n children: <div>New Tab Content</div>,\r\n };\r\n p.setItems(prev => [...prev, newItem]);\r\n setActiveKey(newKey);\r\n }\r\n };\r\n\r\n // Handle remove tab\r\n const handleRemoveTab = async (item: TabItem) => {\r\n if (item.closable === false) return;\r\n\r\n const label = item.label || `Tab ${p.items().findIndex(i => i.key === item.key) + 1}`;\r\n\r\n if (p.onRemove) {\r\n const result = await p.onRemove(item.key, label);\r\n if (result === false) return;\r\n }\r\n\r\n const currentItems = p.items();\r\n const currentIndex = currentItems.findIndex(i => i.key === item.key);\r\n\r\n // If removing active tab, switch to adjacent tab\r\n if (activeKey() === item.key) {\r\n const nextItem = currentItems[currentIndex + 1] || currentItems[currentIndex - 1];\r\n if (nextItem) {\r\n setActiveKey(nextItem.key);\r\n }\r\n }\r\n\r\n p.setItems(prev => prev.filter(i => i.key !== item.key));\r\n\r\n // Clean up rendered tabs\r\n setRenderedTabs(prev => {\r\n const newSet = new Set(prev);\r\n newSet.delete(item.key);\r\n return newSet;\r\n });\r\n };\r\n\r\n // Handle pin/unpin tab\r\n const handlePinTab = (item: TabItem, e: MouseEvent) => {\r\n e.stopPropagation();\r\n const newPinned = !item.pinned;\r\n\r\n p.setItems(prev => prev.map(i => (i.key === item.key ? { ...i, pinned: newPinned } : i)));\r\n\r\n p.onPin?.(item.key, newPinned);\r\n };\r\n\r\n // Handle double-click to start editing\r\n const handleDoubleClick = (item: TabItem, e: MouseEvent) => {\r\n if (!p.canRename || item.disabled) return;\r\n e.stopPropagation();\r\n const label = item.label || `Tab ${p.items().findIndex(i => i.key === item.key) + 1}`;\r\n setEditingKey(item.key);\r\n setEditingValue(label);\r\n };\r\n\r\n // Handle rename input blur/submit\r\n const handleRenameSubmit = (item: TabItem) => {\r\n const newLabel = editingValue().trim();\r\n if (newLabel && newLabel !== item.label) {\r\n p.setItems(prev => prev.map(i => (i.key === item.key ? { ...i, label: newLabel } : i)));\r\n p.onRename?.(item.key, newLabel);\r\n }\r\n setEditingKey(null);\r\n setEditingValue('');\r\n };\r\n\r\n // Handle rename input keydown\r\n const handleRenameKeyDown = (item: TabItem, e: KeyboardEvent) => {\r\n if (e.key === 'Enter') {\r\n e.preventDefault();\r\n handleRenameSubmit(item);\r\n } else if (e.key === 'Escape') {\r\n e.preventDefault();\r\n setEditingKey(null);\r\n setEditingValue('');\r\n }\r\n };\r\n\r\n // Check if tab should be rendered\r\n const shouldRenderContent = (item: TabItem) => {\r\n const isActive = activeKey() === item.key;\r\n const itemPreRender = item.pinned ? true : p.preRender;\r\n\r\n if (itemPreRender) {\r\n return renderedTabs().has(item.key) || isActive;\r\n }\r\n return isActive;\r\n };\r\n\r\n return (\r\n <div\r\n id={tabRootId}\r\n class={cn(\r\n 'tab01',\r\n getColor(p.color!),\r\n `tab${p.variants === 'box' ? '23' : p.variants === 'lift' ? '24' : '25'}`,\r\n `tab${p.tabPlacement === 'horizontal' ? '17' : '18'}`,\r\n `tab${computedPosition() === 'top' ? '19' : computedPosition() === 'bottom' ? '20' : computedPosition() === 'left' ? '21' : '22'}`,\r\n p.class?.root,\r\n )}\r\n >\r\n {/* Tab Header */}\r\n <div\r\n class={cn(\r\n 'tab02',\r\n `tab${p.align === 'left' ? '26' : p.align === 'center' ? '27' : '28'}`,\r\n headerVariant({\r\n variants: p.variants,\r\n tabPlacement: p.tabPlacement,\r\n position: p.position,\r\n }),\r\n p.class?.header,\r\n )}\r\n >\r\n <For each={sortedItems()}>\r\n {(item, index) => (\r\n <>\r\n {/* Separator between pinned and unpinned */}\r\n <Show when={hasPinnedAndUnpinned() && index() === firstUnpinnedIndex()}>\r\n <div class=\"tab14\" />\r\n </Show>\r\n\r\n {/* Tab Item */}\r\n <div\r\n class={cn(\r\n 'tab03',\r\n editingKey() === item.key && 'bg-base-100',\r\n activeKey() === item.key && 'tab04',\r\n item.pinned && 'tab05',\r\n item.disabled && 'pointer-events-none opacity-50',\r\n p.class?.item,\r\n )}\r\n onClick={() => handleTabClick(item)}\r\n onMouseDown={e => handleMouseDown(e, item)}\r\n onDblClick={e => handleDoubleClick(item, e)}\r\n >\r\n {/* Tab Icon */}\r\n <Show when={item.icon}>\r\n <span class=\"tab06\">{item.icon as Element}</span>\r\n </Show>\r\n\r\n {/* Tab Label */}\r\n <Show\r\n when={editingKey() === item.key}\r\n fallback={\r\n <Show\r\n when={p.useTooltip}\r\n fallback={\r\n <span class=\"tab07\">\r\n {item.label || `Tab ${p.items().findIndex(i => i.key === item.key) + 1}`}\r\n </span>\r\n }\r\n >\r\n {(() => {\r\n const label =\r\n item.label || `Tab ${p.items().findIndex(i => i.key === item.key) + 1}`;\r\n const needsTooltip = label.length > TOOLTIP_CHAR_THRESHOLD;\r\n if (!needsTooltip) {\r\n return <span class=\"tab07\">{label}</span>;\r\n }\r\n const opts = p.tooltipOptions ?? {};\r\n const isCustom = 'customContent' in opts && opts.customContent != null;\r\n const tooltipProps: Omit<TooltipDefaultProps, 'children'> = isCustom\r\n ? {\r\n type: 'default',\r\n position: 'top' as const,\r\n color: p?.color as BaseColorProps,\r\n customContent: (opts as { customContent: JSX.Element }).customContent,\r\n }\r\n : {\r\n type: 'default',\r\n position: 'top' as const,\r\n color: p?.color as BaseColorProps,\r\n content: (opts as { content?: string }).content ?? label,\r\n };\r\n return (\r\n <Tooltip {...(tooltipProps as TooltipDefaultProps)}>\r\n <span class=\"tab07\">{label}</span>\r\n </Tooltip>\r\n );\r\n })()}\r\n </Show>\r\n }\r\n >\r\n <input\r\n ref={el =>\r\n setTimeout(() => {\r\n el?.focus();\r\n el?.select();\r\n }, 0)\r\n }\r\n type=\"text\"\r\n class=\"tab16\"\r\n value={editingValue()}\r\n onInput={e => setEditingValue(e.currentTarget.value)}\r\n onBlur={() => handleRenameSubmit(item)}\r\n onKeyDown={e => handleRenameKeyDown(item, e)}\r\n onClick={e => e.stopPropagation()}\r\n />\r\n </Show>\r\n\r\n {/* Action Buttons */}\r\n <Show when={p.canPin || item.closable !== false}>\r\n <div class=\"tab08\">\r\n {/* Pin Button */}\r\n <Show when={p.canPin}>\r\n <button\r\n class=\"tab09 tab10\"\r\n onClick={e => handlePinTab(item, e)}\r\n title={item.pinned ? 'Unpin tab' : 'Pin tab'}\r\n >\r\n <Show when={item.pinned} fallback={<Pin size={12} />}>\r\n <PinOff size={12} />\r\n </Show>\r\n </button>\r\n </Show>\r\n\r\n {/* Close Button */}\r\n <Show when={item.closable !== false}>\r\n <button\r\n class=\"tab09 tab11\"\r\n onClick={e => {\r\n e.stopPropagation();\r\n handleRemoveTab(item);\r\n }}\r\n title=\"Close tab\"\r\n >\r\n <X size={12} />\r\n </button>\r\n </Show>\r\n </div>\r\n </Show>\r\n </div>\r\n </>\r\n )}\r\n </For>\r\n\r\n {/* Add Button */}\r\n <Show when={p.canAdd}>\r\n <button\r\n class={cn('tab12', p.class?.addButton)}\r\n onClick={handleAddTab}\r\n title=\"Add new tab\"\r\n >\r\n <Plus size={14} />\r\n </button>\r\n </Show>\r\n </div>\r\n\r\n {/* Tab Content */}\r\n <div class={cn('tab13', p.class?.content)}>\r\n <Show when={p.items().length === 0}>\r\n <div class=\"tab15\">\r\n <span>No tabs available</span>\r\n <Show when={p.canAdd}>\r\n <button class=\"tab12\" onClick={handleAddTab}>\r\n <Pin size={14} />\r\n </button>\r\n </Show>\r\n </div>\r\n </Show>\r\n\r\n <For each={p.items()}>\r\n {item => (\r\n <Show when={shouldRenderContent(item)}>\r\n <div class={cn('tab29 size-full', activeKey() !== item.key && 'hidden')}>\r\n {item.children as Element}\r\n </div>\r\n </Show>\r\n )}\r\n </For>\r\n </div>\r\n </div>\r\n );\r\n};\r\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{cn as e}from"../../utils/cn.js";import{getColor as t}from"../../utils/helper.js";import{Button as n}from"../button/button.js";import{chevron_right_default as r}from"../../../node_modules/.pnpm/lucide-solid@1.8.0_solid-js@1.9.11/node_modules/lucide-solid/dist/source/icons/chevron-right.js";import{chevron_down_default as i}from"../../../node_modules/.pnpm/lucide-solid@1.8.0_solid-js@1.9.11/node_modules/lucide-solid/dist/source/icons/chevron-down.js";import{Pagination as a}from"../pagination/pagination.js";import{Tooltip as o}from"../tooltip/tooltip.js";import{chevrons_up_down_default as s}from"../../../node_modules/.pnpm/lucide-solid@1.8.0_solid-js@1.9.11/node_modules/lucide-solid/dist/source/icons/chevrons-up-down.js";import{chevron_up_default as c}from"../../../node_modules/.pnpm/lucide-solid@1.8.0_solid-js@1.9.11/node_modules/lucide-solid/dist/source/icons/chevron-up.js";import{addEventListener as l,className as u,createComponent as d,delegateEvents as f,effect as p,insert as m,memo as h,mergeProps as g,setAttribute as _,setStyleProperty as v,style as y,template as b,use as x}from"solid-js/web";import{For as S,Match as C,Show as w,Switch as ee,createEffect as T,createMemo as E,createSignal as D,createUniqueId as te,mergeProps as ne,on as re,onCleanup as O,onMount as ie}from"solid-js";import{createVirtualizer as ae}from"@tanstack/solid-virtual";import{createSolidTable as oe,flexRender as k,getCoreRowModel as se,getFilteredRowModel as ce,getPaginationRowModel as le,getSortedRowModel as ue}from"@tanstack/solid-table";var A=b(`<div>`),de=b(`<colgroup>`),fe=b(`<div><table><thead>`),pe=b(`<thead>`),me=b(`<tr><td class="border-none p-0">`),he=b(`<tr><td class="border-none py-2"><div class="flex justify-center"><span class="loading loading-dots loading-sm opacity-60">`),ge=b(`<tr><td class="border-none py-2"><div class="flex justify-center">`),_e=b(`<tbody>`),ve=b(`<div><div><div><table>`),ye=b(`<col>`),be=b(`<tr>`),xe=b(`<span class=tbe20>`),Se=b(`<span class=tbe19>`),Ce=b(`<th><div><span class=tbe17>`),we=b(`<tr><td>`),Te=b(`<tr class=tbe31><td class=tbe32>`),Ee=b(`<td>`),De=b(`<tbody><tr><td class="border-none p-0"><div class="flex h-full items-center justify-center gap-2 opacity-60"><span class=text-base>Sorting</span><span class="loading loading-dots loading-sm text-base-content">`),Oe=b(`<input type=checkbox class="checkbox checkbox-xs checkbox-primary mx-auto">`),j=b(`<span class=cursor-pointer>`),M=b(`<input type=radio class="radio radio-xs radio-primary">`),ke=b(`<input type=checkbox class="checkbox checkbox-xs checkbox-primary">`),Ae=b(`<span class="tbe24 cursor-pointer">`);function je(e){if(e!==void 0)return e===!0?{outer:!0,horizontal:!0,vertical:!0}:e===!1?{outer:!1,horizontal:!1,vertical:!1}:e}function Me(e){switch(e){case!0:return{cols:!1,rows:!0};case!1:case void 0:return{cols:!1,rows:!1};default:return e}}var Ne={xs:`tbe02`,sm:`tbe03`,md:`tbe04`,lg:`tbe05`,xl:`tbe06`};function Pe(e){let t=[],n=Me(e.zebra);return n.rows&&t.push(`tbe07`),n.cols&&t.push(`tbe08`),e.size&&t.push(Ne[e.size]),t.join(` `)}function Fe(e){let t=new Map,n=0,r=null;for(let i of e){let e=i.fixed;(e===!0||e===`start`)&&(t.set(i.id,{fixed:`start`,offset:n,isLastStart:!1,isFirstEnd:!1}),n+=i.width,r=i.id)}let i=0,a=null;for(let n=e.length-1;n>=0;n--){let r=e[n];r.fixed===`end`&&(t.set(r.id,{fixed:`end`,offset:i,isLastStart:!1,isFirstEnd:!1}),i+=r.width,a||=r.id)}if(r){let e=t.get(r);e.isLastStart=!0}if(a){let e=t.get(a);e.isFirstEnd=!0}return t}function Ie(e){return typeof e==`number`?`${e}px`:e}var N=`__selection__`;function Le(e){let t,n=!1;return{columns:e.filter(e=>{let r=e.meta;return r?._selection?n?!1:(n=!0,t=r._selection,!0):!0}),selectionOptions:t}}var P=`__expanded__`;function Re(e){for(let t of e){let e=t.meta;if(e?._expanded)return e._expanded}}function F(r){let l=ne({zebra:{rows:!0},size:`md`,enableSorting:!1,enableColumnFilters:!1,resizable:!0,showHeader:!0,color:`info`,rounded:`rounded-sm`},r),f=E(()=>Le(l.columns)),b=()=>f().selectionOptions,Oe=()=>f().columns,j=E(()=>Re(l.columns)),M=E(()=>new Set(l.columns.filter(e=>`size`in e).map(e=>`accessorKey`in e?e.accessorKey:`id`in e?e.id:void 0))),ke=()=>l.enableRowSelection===void 0?!!b():l.enableRowSelection,Ae=()=>{let e=b();return e?e.type!==`radio`:!0},Me=()=>!!j(),[Ne,F]=D(l.defaultExpandedRowKeys??[]),ze=!1,Be=()=>{if(!Me())return[];if(l.expandedRowKeys!==void 0)return l.expandedRowKeys;if(l.defaultExpandAllRows&&!ze){ze=!0;let e=I.getRowModel().rows.map(e=>e.id);return F(e),e}return Ne()},Ve=e=>Be().includes(e);function He(e,t){let n=Be(),r=n.includes(e),i=r?n.filter(t=>t!==e):[...n,e];l.expandedRowKeys===void 0&&F(i),l.onExpand?.(!r,t),l.onExpandedRowsChange?.(i)}let[Ue,We]=D(l.data);T(re(()=>l.data,e=>We(e),{defer:!0}));let I=oe({get data(){return l.getVirtualData?Ue():l.data},get columns(){return Oe()},getCoreRowModel:se(),getSortedRowModel:ue(),...l.enableColumnFilters&&{getFilteredRowModel:ce()},...l.paginationProps!==void 0&&{getPaginationRowModel:le()},get enableSorting(){return l.enableSorting},isMultiSortEvent:()=>!0,get enableColumnFilters(){return l.enableColumnFilters},get enableRowSelection(){return ke()},get enableMultiRowSelection(){return Ae()},...l.getRowId&&{getRowId:l.getRowId},meta:{_expandApi:{isRowExpanded:Ve,toggleRowExpanded:He}},state:{get sorting(){return l.sorting},get columnFilters(){return l.columnFilters},get globalFilter(){return l.globalFilter},get rowSelection(){return l.rowSelection},get columnVisibility(){return l.columnVisibility},get pagination(){return l.pagination},...l.options?.state||{}},...l.onSortingChange&&{onSortingChange:l.onSortingChange},...l.onColumnFiltersChange&&{onColumnFiltersChange:l.onColumnFiltersChange},...l.onGlobalFilterChange&&{onGlobalFilterChange:l.onGlobalFilterChange},...l.onRowSelectionChange&&{onRowSelectionChange:l.onRowSelectionChange},...l.onColumnVisibilityChange&&{onColumnVisibilityChange:l.onColumnVisibilityChange},...l.options&&(()=>{let{state:e,...t}=l.options;return t})()}),L=()=>je(l.border),Ge=()=>I.getRowModel().rows.length===0,Ke=()=>l.columns.some(e=>e.meta?.fixed),R=()=>l.scroll?.x,qe=()=>{let e=R();if(e!==void 0&&!(e===!0||e===`max-content`))return Ie(e)},Je=()=>{let e=R();if(e===void 0)return;if(e===`max-content`)return`max-content`;let t=$();return`${I.getAllLeafColumns().reduce((e,n)=>n.id===N||n.id===P?e+n.getSize():t?e+(t[n.id]??100):e+(G()[n.id]??n.getSize()),0)}px`},Ye=()=>{let e=l.scroll?.y;if(e!==void 0)return Ie(e)},Xe=()=>R()!==void 0||l.scroll?.y!==void 0,Ze=()=>R()!==void 0,z=()=>l.scroll?.y!==void 0,Qe=E(()=>{let e=l.virtual;return e?e===!0?{itemSize:40,overscan:5}:{itemSize:e.itemSize??40,overscan:e.overscan??5}:null}),B=()=>!!Qe(),V,$e,H=ae({get count(){return B()?I.getRowModel().rows.length:0},getScrollElement:()=>B()?V:null,estimateSize:()=>Qe()?.itemSize??40,get overscan(){return Qe()?.overscan??5},measureElement:e=>{let t=e.getBoundingClientRect().height,n=e.nextElementSibling;return n?.classList.contains(`tbe31`)&&(t+=n.getBoundingClientRect().height),t}}),et=E(()=>{if(!B())return 0;let e=H.getVirtualItems();return e.length>0?e[0]?.start??0:0}),tt=E(()=>{if(!B())return 0;let e=H.getVirtualItems(),t=H.getTotalSize();return e.length>0?t-(e[e.length-1]?.end??0):0}),[nt,rt]=D(!1),it=null;O(function(){it!==null&&clearTimeout(it)});function at(e,t){if(nt())return;let n=I.getColumn(t);if(!n?.getCanSort())return;rt(!0);let r=Date.now();setTimeout(()=>{n.getToggleSortingHandler()?.(e);let t=Date.now()-r,i=Math.max(0,500-t);it=setTimeout(()=>{it=null,rt(!1),V&&(V.scrollTop=0)},i)},0)}let ot=Promise.resolve(void 0),[U,st]=D(!1);function ct(){!l.getVirtualData||U()||(st(!0),l.getVirtualData().then(e=>{We(t=>[...t,...e])}).finally(()=>{st(!1)}))}T(function(){!B()||l.loadingMore!==`auto`||U()||(ot=ot.then(()=>new Promise(e=>{queueMicrotask(()=>{V&&V.isConnected&&l.getVirtualData&&l.loadingMore===`auto`&&!U()&&V.scrollHeight<=V.clientHeight&&ct(),e()})})))}),T(function(){l.onTableReady?.(I)});function lt(e,t){let n=e.column.columnDef.meta?.onCell;return n?n(e,t):l.onCell?.(e,t)??{}}let W,ut,dt=te(),[G,K]=D({}),[ft,pt]=D(-1),[mt,ht]=D([]),q=E(()=>R()===void 0&&l.resizable!==!1),gt=`thead tr:first-child th:not(.tbe23):not(.tbe22)`;function J(){return I.getAllLeafColumns().filter(e=>e.id!==P&&e.id!==N)}function Y(e){return Math.min(e.getSize(),e.columnDef.meta?.minWidth??100)}function _t(){let e=W.querySelectorAll(gt),t=J(),n={};t.forEach((t,r)=>{e[r]&&(n[t.id]=e[r].getBoundingClientRect().width)});let r=Array.from(W.querySelectorAll(`thead tr:first-child th`)).reduce((e,t)=>e+t.getBoundingClientRect().width,0)-W.getBoundingClientRect().width;if(r>0&&t.length>0){let e=t[t.length-1].id;n[e]!==void 0&&(n[e]=Math.max(Y(t[t.length-1]),n[e]-r))}return n}function X(){if(!W)return;let e=W.querySelectorAll(gt),t=J(),n,r;if(z()){let e=$e?.getBoundingClientRect(),t=V?.getBoundingClientRect();n=e?.top??0,r=(e?.height??0)+(t?.height??0)}else{let e=W.getBoundingClientRect();n=e.top,r=e.height}let i=[];for(let a=0;a<e.length;a++){let o=t[a];if(!o||o.columnDef.enableResizing===!1)continue;let s=e[a].getBoundingClientRect();i.push({left:s.right,top:n,height:r,colIndex:a})}ht(i)}function vt(e,t){t.preventDefault(),t.stopPropagation();let n=J(),r=n.length-1,i=e===r,a=n[e].id,o=n[r].id,s=_t();K(s);let c=t.clientX,l=s[a]||0,u=Y(n[e]);pt(e);let d;if(i){let e=Object.values(s).reduce((e,t)=>e+t,0),t=n.slice(0,r),i=t.reduce((e,t)=>e+Y(t),0);d=n=>{let r=n.clientX-c,a=Math.max(u,Math.min(e-i,l+r)),s=e-a,d=t.length>0?s/t.length:s,f={};t.forEach(e=>{f[e.id]=Math.max(Y(e),d)}),f[o]=a,K(f),queueMicrotask(()=>X())}}else{let t=e+1,r=n[t].id,i=s[r]||0,o=Y(n[t]);d=e=>{let t=e.clientX-c,n=u-l,s=i-o,d=Math.max(n,Math.min(s,t));K(e=>({...e,[a]:l+d,[r]:i-d})),queueMicrotask(()=>X())}}let f=()=>{pt(-1),document.removeEventListener(`mousemove`,d),document.removeEventListener(`mouseup`,f),document.documentElement.classList.remove(`tbe-resizing`)};document.addEventListener(`mousemove`,d),document.addEventListener(`mouseup`,f),document.documentElement.classList.add(`tbe-resizing`)}function yt(e,t){t.preventDefault(),t.stopPropagation();let n=J(),r=Object.keys(G()).length>0?G():_t();if(e===n.length-1){let e=n.reduce((e,t)=>e+(r[t.id]??t.getSize()),0)/n.length,t={};n.forEach(n=>{t[n.id]=Math.max(Y(n),e)}),K(t)}else{let t=n[e].id,i=n[e+1].id,a=r[t]??n[e].getSize(),o=r[i]??n[e+1].getSize(),s=(a+o)/2,c=Math.max(Y(n[e]),s),l=Math.max(Y(n[e+1]),a+o-c);K(e=>({...r,...e,[t]:c,[i]:l}))}queueMicrotask(()=>X())}let Z=()=>Object.keys(G()).length>0,Q=E(()=>{if(!Z())return null;let e=G();return`${I.getAllLeafColumns().reduce((t,n)=>t+(e[n.id]??n.getSize()),0)}px`}),$=E(()=>{if(!Ze())return null;let e=J(),t=R(),n=e.filter(e=>M().has(e.id)),r=e.filter(e=>!M().has(e.id)),i=n.reduce((e,t)=>e+t.getSize(),0),a=r.length,o;if(typeof t==`number`){let e=t-i;o=a>0?Math.max(100,e/a):100}else o=100;let s={};return e.forEach(e=>{s[e.id]=M().has(e.id)?e.getSize():o}),s}),bt=()=>M().size>0||Z()||Ze(),[xt,St]=D({});function Ct(){if(!W)return;let e=W.querySelectorAll(gt),t=J(),n={};t.forEach((t,r)=>{e[r]&&(n[t.id]=e[r].offsetWidth)}),St(n)}let wt=E(()=>{let e=xt();return Object.keys(e).length===0?new Map:Fe(I.getAllLeafColumns().map(t=>({id:t.id,fixed:t.columnDef.meta?.fixed,width:e[t.id]||0})))});function Tt(e){let t=wt().get(e);if(t){if(t.fixed===`start`)return{left:`${t.offset}px`};if(t.fixed===`end`)return{right:`${t.offset}px`}}}function Et(t){let n=wt().get(t);return n?e(`tbe33`,n.isLastStart&&`tbe34`,n.isFirstEnd&&`tbe35`):``}let Dt={start:`justify-start`,center:`justify-center`,end:`justify-end`},Ot={start:`align-start`,center:`align-center`,end:`align-end`},kt={start:`text-left`,center:`text-center`,end:`text-right`};function At(e){return I.getColumn(e)?.columnDef.meta?.align??`start`}function jt(e){return!!I.getColumn(e)?.columnDef.meta?.tooltip}function Mt(e,t,n){let r=I.getColumn(e)?.columnDef.meta?.tooltip;if(!r)return n;let i=r.content,a=typeof i==`function`?i(t):i;return d(o,g({type:`portal`},{...r,...a!==void 0&&{content:a},containerId:dt,position:r.position??`top`,class:{root:`tbe-tt-cell`}},{children:n}))}function Nt(e){let t=e.target,n=e=>{let t=e.closest(`table`);return t===W||t===ut},r=t.closest(`th[data-column-id]`);if(r&&n(r)){let t=r.dataset.columnId;if(t)if(B()&&l.enableSorting)at(e,t);else{let n=I.getColumn(t);n?.getCanSort()&&n.getToggleSortingHandler()?.(e)}return}let i=t.closest(`td.tbe22`);if(i&&n(i)){let e=i.closest(`tr[data-row-id]`);if(e){let t=e.dataset.rowId;if(t!==void 0){let e=I.getRow(t);e?.getCanSelect()&&e.toggleSelected()}}return}let a=t.closest(`td.tbe23`);if(a&&n(a)){let e=a.closest(`tr[data-row-id]`);if(e){let t=e.dataset.rowId;if(t!==void 0){let e=I.getRow(t);if(e){let t=j();(!t?.rowExpandable||t.rowExpandable(e.original,e.index))&&He(e.id,e.original)}}}return}let o=t.closest(`tr[data-row-id]`);if(o&&n(o)&&l.onRowClick){let t=o.dataset.rowId;if(t!==void 0){let n=I.getRow(t);n&&l.onRowClick(n,e)}}}return ie(()=>{if(q()&&(X(),window.addEventListener(`scroll`,X,{passive:!0,capture:!0}),O(function(){window.removeEventListener(`scroll`,X,{capture:!0})})),Ke()&&Ct(),q()||Ke()){let e=new ResizeObserver(()=>{q()&&X(),Ke()&&Ct()});e.observe(W),O(function(){e.disconnect()})}if(B()){let e=()=>{if(!l.getVirtualData||l.loadingMore!==`auto`)return;let e=Qe(),t=(e?.itemSize??40)*(e?.overscan??5);V.scrollTop+V.clientHeight>=V.scrollHeight-t&&ct()};V.addEventListener(`scroll`,e,{passive:!0}),O(function(){V.removeEventListener(`scroll`,e)})}if(z()){let e=()=>{$e&&($e.scrollLeft=V.scrollLeft),q()&&X()};V.addEventListener(`scroll`,e,{passive:!0}),O(()=>V.removeEventListener(`scroll`,e))}}),(()=>{var r=ve(),o=r.firstChild,f=o.firstChild,b=f.firstChild;return m(r,d(w,{get when(){return h(()=>l.paginationProps!==void 0&&!l.virtual)()&&l.paginationProps?.position===`start`},get children(){return d(a,g(()=>l.paginationProps,{onChange:(e,t)=>{I.setPageIndex(e-1),t!==I.getState().pagination.pageSize&&I.setPageSize(t),l.paginationProps?.onChange?.(e,t)}}))}}),o),m(o,d(w,{get when(){return l.headerPanel},get children(){var t=A();return m(t,()=>l.headerPanel?.()),p(()=>u(t,e(`tbe40`,L()?.outer&&`tbe41`,l.class?.headerPanel))),t}}),f),m(o,d(w,{get when(){return h(()=>!!z())()&&l.showHeader},get children(){var t=fe(),n=t.firstChild,r=n.firstChild;x(e=>$e=e,t),n.$$click=Nt;var a=W;return typeof a==`function`?x(a,n):W=n,m(n,d(w,{get when(){return bt()},get children(){var e=de();return m(e,d(S,{get each(){return I.getAllLeafColumns()},children:e=>{let t=()=>e.id===P||e.id===N;return(()=>{var n=ye();return p(r=>y(n,{...t()?{width:`${e.getSize()}px`}:Z()?{width:`${G()[e.id]||e.getSize()}px`}:$()?{width:`${$()[e.id]??100}px`}:M().has(e.id)?{width:`${e.getSize()}px`}:{}},r)),n})()}})),e}}),r),m(r,d(S,{get each(){return I.getHeaderGroups()},children:(t,n)=>{let r=I.getHeaderGroups().length,a=new Set(I.getHeaderGroups().slice(0,n()).flatMap(e=>e.headers.filter(e=>e.isPlaceholder&&e.column.getLeafColumns().length===1).map(e=>e.column.id)));return(()=>{var o=be();return m(o,d(S,{get each(){return t.headers},children:t=>{if(a.has(t.column.id))return null;let o=t.isPlaceholder&&t.column.getLeafColumns().length===1,f=o?r-n():1;if(t.isPlaceholder&&!o)return null;let g=t.column.columnDef.meta?.onHeaderCell?.(t)??{};if(g.colSpan===0)return null;let v=g.colSpan??t.colSpan,b=g.rowSpan??(f>1?f:void 0);return(()=>{var n=Ce(),r=n.firstChild,a=r.firstChild;return _(n,`colspan`,v),_(n,`rowspan`,b),m(a,()=>k(t.column.columnDef.header,t.getContext())),m(r,d(w,{get when(){return t.column.getCanSort()},get children(){var e=Se();return m(e,d(ee,{get fallback(){return d(s,{size:14,"stroke-width":3,color:`var(--color)`})},get children(){return[d(C,{get when(){return t.column.getIsSorted()===`asc`},get children(){return d(c,{size:14,"stroke-width":3,color:`var(--color)`})}}),d(C,{get when(){return t.column.getIsSorted()===`desc`},get children(){return d(i,{size:14,"stroke-width":3,color:`var(--color)`})}})]}}),null),m(e,d(w,{get when(){return h(()=>t.column.getIsSorted()!==!1&&(t.column.getSortIndex()??-1)>=0)()&&I.getState().sorting.length>1},get children(){var e=xe();return m(e,()=>(t.column.getSortIndex()??0)+1),e}}),null),e}}),null),p(i=>{var a=e(l.class?.th,t.column.getCanSort()&&`tbe18`,t.column.id===N&&`tbe22`,t.column.id===P&&`tbe23`,Et(t.column.id)),o=t.column.id,s=Tt(t.column.id),c=e(`tbe15`,(M().has(t.column.id)||Z())&&t.column.id!==N&&t.column.id!==P&&`tbe16`,t.column.id!==N&&t.column.id!==P&&Dt[At(t.column.id)]);return a!==i.e&&u(n,i.e=a),o!==i.t&&_(n,`data-column-id`,i.t=o),i.a=y(n,s,i.a),c!==i.o&&u(r,i.o=c),i},{e:void 0,t:void 0,a:void 0,o:void 0}),n})()}})),p(()=>u(o,e(l.class?.tr,l.class?.headerRow))),o})()}})),p(i=>{var a=e(`tbe12`,`tbe14-hdr`),o=e(`tbe01`,Pe(l),L()?.horizontal&&`tbe43`,L()?.vertical&&`tbe44`,bt()&&`table-fixed`,l.class?.table),s={...Q()?{width:Q(),"min-width":Q()}:Je()?{"min-width":Je()}:{}},c=e(l.class?.thead,nt()?`pointer-events-none cursor-wait`:``);return a!==i.e&&u(t,i.e=a),o!==i.t&&u(n,i.t=o),i.a=y(n,s,i.a),c!==i.o&&u(r,i.o=c),i},{e:void 0,t:void 0,a:void 0,o:void 0}),t}}),f),x(e=>V=e,f),b.$$click=Nt,x(e=>{ut=e,z()||(W=e)},b),m(b,d(w,{get when(){return bt()},get children(){var e=de();return m(e,d(S,{get each(){return I.getAllLeafColumns()},children:e=>{let t=()=>e.id===P||e.id===N;return(()=>{var n=ye();return p(r=>y(n,{...t()?{width:`${e.getSize()}px`}:Z()?{width:`${G()[e.id]||e.getSize()}px`}:$()?{width:`${$()[e.id]??100}px`}:M().has(e.id)?{width:`${e.getSize()}px`}:{}},r)),n})()}})),e}}),null),m(b,d(w,{get when(){return h(()=>!z())()&&l.showHeader},get children(){var t=pe();return m(t,d(S,{get each(){return I.getHeaderGroups()},children:(t,n)=>{let r=I.getHeaderGroups().length,a=new Set(I.getHeaderGroups().slice(0,n()).flatMap(e=>e.headers.filter(e=>e.isPlaceholder&&e.column.getLeafColumns().length===1).map(e=>e.column.id)));return(()=>{var o=be();return m(o,d(S,{get each(){return t.headers},children:t=>{if(a.has(t.column.id))return null;let o=t.isPlaceholder&&t.column.getLeafColumns().length===1,f=o?r-n():1;if(t.isPlaceholder&&!o)return null;let g=t.column.columnDef.meta?.onHeaderCell?.(t)??{};if(g.colSpan===0)return null;let v=g.colSpan??t.colSpan,b=g.rowSpan??(f>1?f:void 0);return(()=>{var n=Ce(),r=n.firstChild,a=r.firstChild;return _(n,`colspan`,v),_(n,`rowspan`,b),m(a,()=>k(t.column.columnDef.header,t.getContext())),m(r,d(w,{get when(){return t.column.getCanSort()},get children(){var e=Se();return m(e,d(ee,{get fallback(){return d(s,{size:14,"stroke-width":3,color:`var(--color)`})},get children(){return[d(C,{get when(){return t.column.getIsSorted()===`asc`},get children(){return d(c,{size:14,"stroke-width":3,color:`var(--color)`})}}),d(C,{get when(){return t.column.getIsSorted()===`desc`},get children(){return d(i,{size:14,"stroke-width":3,color:`var(--color)`})}})]}}),null),m(e,d(w,{get when(){return h(()=>t.column.getIsSorted()!==!1&&(t.column.getSortIndex()??-1)>=0)()&&I.getState().sorting.length>1},get children(){var e=xe();return m(e,()=>(t.column.getSortIndex()??0)+1),e}}),null),e}}),null),p(i=>{var a=e(l.class?.th,t.column.getCanSort()&&`tbe18`,t.column.id===N&&`tbe22`,t.column.id===P&&`tbe23`,Et(t.column.id)),o=t.column.id,s=Tt(t.column.id),c=e(`tbe15`,(M().has(t.column.id)||Z())&&t.column.id!==N&&t.column.id!==P&&`tbe16`,t.column.id!==N&&t.column.id!==P&&Dt[At(t.column.id)]);return a!==i.e&&u(n,i.e=a),o!==i.t&&_(n,`data-column-id`,i.t=o),i.a=y(n,s,i.a),c!==i.o&&u(r,i.o=c),i},{e:void 0,t:void 0,a:void 0,o:void 0}),n})()}})),p(()=>u(o,e(l.class?.tr,l.class?.headerRow))),o})()}})),p(()=>u(t,e(l.class?.thead,nt()?`pointer-events-none cursor-wait`:``))),t}}),null),m(b,d(w,{get when(){return h(()=>!!B())()&&!Ge()},get fallback(){return(()=>{var t=_e();return _(t,`id`,dt),m(t,d(w,{get when(){return!Ge()},get fallback(){return(()=>{var t=we(),n=t.firstChild;return m(n,()=>l.emptyContent??`No data`),p(t=>{var r=I.getAllColumns().length,i=e(`tbe45`,l.class?.empty);return r!==t.e&&_(n,`colspan`,t.e=r),i!==t.t&&u(n,t.t=i),t},{e:void 0,t:void 0}),t})()},get children(){return d(S,{get each(){return I.getRowModel().rows},children:(t,n)=>{let r=()=>Ve(t.id),i=j();return[(()=>{var i=be();return m(i,d(S,{get each(){return t.getVisibleCells()},children:t=>{let r=t.column.id===N||t.column.id===P,i=r?`start`:At(t.column.id),a=!r&&jt(t.column.id),o=lt(t,n());return o.colSpan===0||o.rowSpan===0?null:(()=>{var n=Ee();return m(n,d(w,{get when(){return(M().has(t.column.id)||Z())&&!r},get fallback(){return Mt(t.column.id,t.getValue(),k(t.column.columnDef.cell,t.getContext()))},get children(){var n=A();return m(n,()=>Mt(t.column.id,t.getValue(),k(t.column.columnDef.cell,t.getContext()))),p(()=>u(n,e(`tbe21`,Ot[i]))),n}})),p(s=>{var c=e(l.class?.td,t.column.id===N&&`tbe22`,t.column.id===P&&`tbe23`,Et(t.column.id),a&&`relative`,!r&&kt[i]),d={...Tt(t.column.id)},f=o.colSpan,p=o.rowSpan;return c!==s.e&&u(n,s.e=c),s.t=y(n,d,s.t),f!==s.a&&_(n,`colspan`,s.a=f),p!==s.o&&_(n,`rowspan`,s.o=p),s},{e:void 0,t:void 0,a:void 0,o:void 0}),n})()}})),p(a=>{var o=e(l.class?.tr,l.class?.bodyRow,t.getIsSelected()&&`tbe27`,r()&&`tbe28`,n()%2==0?`tbe29`:`tbe30`),s=t.id;return o!==a.e&&u(i,a.e=o),s!==a.t&&_(i,`data-row-id`,a.t=s),a},{e:void 0,t:void 0}),i})(),d(w,{get when(){return h(()=>!!Me())()&&r()},get children(){var e=Te(),r=e.firstChild;return m(r,()=>i.expandedRowRender(t.original,n(),0,!0)),p(()=>_(r,`colspan`,t.getVisibleCells().length)),e}})]}})}})),p(()=>u(t,e(l.class?.tbody))),t})()},get children(){return d(w,{get when(){return!nt()},get fallback(){return(()=>{var e=De(),t=e.firstChild.firstChild;return p(e=>{var n=I.getAllColumns().length,r=Ye()??`200px`;return n!==e.e&&_(t,`colspan`,e.e=n),r!==e.t&&v(t,`height`,e.t=r),e},{e:void 0,t:void 0}),e})()},get children(){var t=_e();return _(t,`id`,dt),m(t,d(w,{get when(){return et()>0},get children(){var e=me(),t=e.firstChild;return p(e=>{var n=I.getAllColumns().length,r=`${et()}px`;return n!==e.e&&_(t,`colspan`,e.e=n),r!==e.t&&v(t,`height`,e.t=r),e},{e:void 0,t:void 0}),e}}),null),m(t,d(S,{get each(){return H.getVirtualItems()},children:t=>{let n=I.getRowModel().rows[t.index],r=t.index;if(!n)return null;let i=()=>Ve(n.id),a=j(),o;return T(re(i,()=>{queueMicrotask(()=>{o?.isConnected&&o.hasAttribute(`data-index`)&&H.measureElement(o)})},{defer:!0})),[(()=>{var a=be();return x(e=>{o=e,e&&queueMicrotask(()=>{e.isConnected&&H.measureElement(e)})},a),m(a,d(S,{get each(){return n.getVisibleCells()},children:t=>{let n=t.column.id===N||t.column.id===P,r=n?`start`:At(t.column.id),i=!n&&jt(t.column.id);return(()=>{var a=Ee();return m(a,d(w,{get when(){return(M().has(t.column.id)||Z())&&!n},get fallback(){return Mt(t.column.id,t.getValue(),k(t.column.columnDef.cell,t.getContext()))},get children(){var n=A();return m(n,()=>Mt(t.column.id,t.getValue(),k(t.column.columnDef.cell,t.getContext()))),p(()=>u(n,e(`tbe21`,Ot[r]))),n}})),p(o=>{var s=e(l.class?.td,t.column.id===N&&`tbe22`,t.column.id===P&&`tbe23`,Et(t.column.id),i&&`relative p-0`,!n&&kt[r]),c={...Tt(t.column.id)};return s!==o.e&&u(a,o.e=s),o.t=y(a,c,o.t),o},{e:void 0,t:void 0}),a})()}})),p(o=>{var s=t.index,c=e(l.class?.tr,l.class?.bodyRow,n.getIsSelected()&&`tbe27`,i()&&`tbe28`,r%2==0?`tbe29`:`tbe30`),d=n.id;return s!==o.e&&_(a,`data-index`,o.e=s),c!==o.t&&u(a,o.t=c),d!==o.a&&_(a,`data-row-id`,o.a=d),o},{e:void 0,t:void 0,a:void 0}),a})(),d(w,{get when(){return h(()=>!!Me())()&&i()},get children(){var e=Te(),t=e.firstChild;return m(t,()=>a.expandedRowRender(n.original,r,0,!0)),p(()=>_(t,`colspan`,n.getVisibleCells().length)),e}})]}}),null),m(t,d(w,{get when(){return tt()>0},get children(){var e=me(),t=e.firstChild;return p(e=>{var n=I.getAllColumns().length,r=`${tt()}px`;return n!==e.e&&_(t,`colspan`,e.e=n),r!==e.t&&v(t,`height`,e.t=r),e},{e:void 0,t:void 0}),e}}),null),m(t,d(ee,{get children(){return[d(C,{get when(){return h(()=>l.loadingMore===`auto`)()&&U()},get children(){var e=he(),t=e.firstChild;return p(()=>_(t,`colspan`,I.getAllColumns().length)),e}}),d(C,{get when(){return l.loadingMore===`manual`},get children(){var e=ge(),t=e.firstChild,r=t.firstChild;return m(r,d(n,{variant:`default`,get color(){return l.color},get loading(){return U()},onClick:()=>ct(),get size(){return l.size},children:`Load more`})),p(()=>_(t,`colspan`,I.getAllColumns().length)),e}})]}}),null),p(()=>u(t,l.class?.tbody)),t}})}}),null),m(o,d(w,{get when(){return q()},get children(){return d(S,{get each(){return mt()},children:t=>(()=>{var n=A();return n.$$dblclick=e=>yt(t.colIndex,e),n.$$mousedown=e=>vt(t.colIndex,e),p(r=>{var i=e(`tbe37`,ft()===t.colIndex&&`tbe38`),a=`${t.left}px`,o=`${t.top}px`,s=`${t.height}px`;return i!==r.e&&u(n,r.e=i),a!==r.t&&v(n,`left`,r.t=a),o!==r.a&&v(n,`top`,r.a=o),s!==r.o&&v(n,`height`,r.o=s),r},{e:void 0,t:void 0,a:void 0,o:void 0}),n})()})}}),null),m(o,d(w,{get when(){return l.footerPanel},get children(){var t=A();return m(t,()=>l.footerPanel?.()),p(()=>u(t,e(`tbe40`,L()?.outer&&`border-c3/50 border-t`,l.class?.tfoot))),t}}),null),m(r,d(w,{get when(){return h(()=>l.paginationProps!==void 0&&!l.virtual)()&&(l.paginationProps?.position??`end`)===`end`},get children(){return d(a,g(()=>l.paginationProps,{onChange:(e,t)=>{I.setPageIndex(e-1),t!==I.getState().pagination.pageSize&&I.setPageSize(t),l.paginationProps?.onChange?.(e,t)}}))}}),null),p(n=>{var i=e(`tbe09`,l.paginationProps!==void 0&&`tbe10`),a=e(`tbe11`,L()?.outer&&`tbe42`,q()&&`tbe36`,ft()>=0&&`tbe39`,(Ke()||z())&&`tbe13`,t(l.color),l.rounded,l.rounded&&`overflow-hidden`,l.class?.root),s={...qe()?{"max-width":qe()}:{},...Ze()&&l.rounded?{"overflow-x":`clip`}:{}},c=e(`tbe12`,Xe()&&`tbe14`),d={...Ye()?{"max-height":Ye()}:{}},p=e(`tbe01`,Pe(l),L()?.horizontal&&`tbe43`,L()?.vertical&&`tbe44`,bt()&&`table-fixed`,l.class?.table),m={...Q()?{width:Q(),"min-width":Q()}:Je()?{"min-width":Je()}:{}};return i!==n.e&&u(r,n.e=i),a!==n.t&&u(o,n.t=a),n.a=y(o,s,n.a),c!==n.o&&u(f,n.o=c),n.i=y(f,d,n.i),p!==n.n&&u(b,n.n=p),n.s=y(b,m,n.s),n},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0}),r})()}F.Selection=function(e){let t={type:`checkbox`,hideSelectAll:!1,width:32,...e};return{id:N,size:typeof t.width==`number`?t.width:48,enableSorting:!1,enableResizing:!1,meta:{_selection:t},header:({table:e})=>t.title===void 0?t.type===`radio`||t.hideSelectAll?null:(()=>{var t=Oe();return l(t,`change`,e.getToggleAllRowsSelectedHandler()),x(t=>{T(function(){t.indeterminate=e.getIsSomeRowsSelected()})},t),p(()=>t.checked=e.getIsAllRowsSelected()),t})():t.title,cell:({row:e})=>{let n=e.index,r=()=>e.getIsSelected(),i=e.original;return t.renderCell?(()=>{var a=j();return a.$$click=t=>{t.stopPropagation(),e.toggleSelected()},m(a,()=>t.renderCell(r(),i,n)),a})():t.type===`radio`?(()=>{var t=M();return t.$$click=e=>e.stopPropagation(),l(t,`change`,e.getToggleSelectedHandler()),p(()=>t.disabled=!e.getCanSelect()),p(()=>t.checked=r()),t})():(()=>{var t=ke();return t.$$click=e=>e.stopPropagation(),l(t,`change`,e.getToggleSelectedHandler()),p(()=>t.disabled=!e.getCanSelect()),p(()=>t.checked=r()),t})()}}},F.Expanded=function(t){return t=ne({width:48},t),{id:P,size:t.width,enableSorting:!1,enableResizing:!1,meta:{_expanded:t},header:()=>null,cell:({row:n,table:i})=>{let a=n.index,o=n.original,s=i.options.meta?._expandApi;if(!(!t.rowExpandable||t.rowExpandable(o,a))||!s)return null;let c=()=>s.isRowExpanded(n.id);return(()=>{var i=Ae();return i.$$click=e=>{e.stopPropagation(),s.toggleRowExpanded(n.id,o)},m(i,d(w,{get when(){return t.expandIcon},get fallback(){return d(r,{size:16,"stroke-width":2,get class(){return e(`tbe25`,c()&&`tbe26`)}})},get children(){return t.expandIcon(c())}})),i})()}}},f([`click`,`mousedown`,`dblclick`]);export{F as Table};
2
+ //# sourceMappingURL=table.js.map