@sth87/shadcn-design-system 0.0.35 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (421) hide show
  1. package/README.md +20 -2
  2. package/dist/AI_CONTEXT.md +212 -214
  3. package/dist/cjs/components/Accordion/Accordion.cjs +1 -1
  4. package/dist/cjs/components/Accordion/Accordion.cjs.map +1 -1
  5. package/dist/cjs/components/Avatar/Avatar.cjs +1 -1
  6. package/dist/cjs/components/Avatar/Avatar.cjs.map +1 -1
  7. package/dist/cjs/components/Badge/Badge.cjs +1 -1
  8. package/dist/cjs/components/Badge/Badge.cjs.map +1 -1
  9. package/dist/cjs/components/Breadcrumb/Breadcrumb.cjs +1 -1
  10. package/dist/cjs/components/Breadcrumb/Breadcrumb.cjs.map +1 -1
  11. package/dist/cjs/components/Button/Button.cjs +1 -1
  12. package/dist/cjs/components/Button/Button.cjs.map +1 -1
  13. package/dist/cjs/components/Calendar/Calendar.cjs +1 -1
  14. package/dist/cjs/components/Calendar/Calendar.cjs.map +1 -1
  15. package/dist/cjs/components/Carousel/Carousel.cjs +1 -1
  16. package/dist/cjs/components/Carousel/Carousel.cjs.map +1 -1
  17. package/dist/cjs/components/Checkbox/Checkbox.cjs +1 -1
  18. package/dist/cjs/components/Checkbox/Checkbox.cjs.map +1 -1
  19. package/dist/cjs/components/Collapsible/Collapsible.cjs +1 -1
  20. package/dist/cjs/components/Collapsible/Collapsible.cjs.map +1 -1
  21. package/dist/cjs/components/Command/Command.cjs +1 -1
  22. package/dist/cjs/components/Command/Command.cjs.map +1 -1
  23. package/dist/cjs/components/ContextMenu/ContextMenu.cjs +1 -1
  24. package/dist/cjs/components/ContextMenu/ContextMenu.cjs.map +1 -1
  25. package/dist/cjs/components/Cropper/Cropper.cjs +1 -1
  26. package/dist/cjs/components/Cropper/Cropper.cjs.map +1 -1
  27. package/dist/cjs/components/DatePicker/DatePicker.cjs +1 -1
  28. package/dist/cjs/components/DatePicker/DatePicker.cjs.map +1 -1
  29. package/dist/cjs/components/DatePicker/RangePicker.cjs +1 -1
  30. package/dist/cjs/components/DatePicker/RangePicker.cjs.map +1 -1
  31. package/dist/cjs/components/DatePicker/TimePicker.cjs +1 -1
  32. package/dist/cjs/components/DatePicker/TimePicker.cjs.map +1 -1
  33. package/dist/cjs/components/Dialog/Dialog.cjs +1 -1
  34. package/dist/cjs/components/Dialog/Dialog.cjs.map +1 -1
  35. package/dist/cjs/components/DropdownMenu/DropdownMenu.cjs +1 -1
  36. package/dist/cjs/components/DropdownMenu/DropdownMenu.cjs.map +1 -1
  37. package/dist/cjs/components/FloatLabel.cjs +1 -1
  38. package/dist/cjs/components/FloatLabel.cjs.map +1 -1
  39. package/dist/cjs/components/Glass/Glass.cjs +1 -1
  40. package/dist/cjs/components/Glass/Glass.cjs.map +1 -1
  41. package/dist/cjs/components/ImageViewer/ImageViewer.cjs +1 -1
  42. package/dist/cjs/components/ImageViewer/ImageViewer.cjs.map +1 -1
  43. package/dist/cjs/components/Input/Input.cjs +1 -1
  44. package/dist/cjs/components/Input/Input.cjs.map +1 -1
  45. package/dist/cjs/components/InputOTP/InputOTP.cjs +1 -1
  46. package/dist/cjs/components/InputOTP/InputOTP.cjs.map +1 -1
  47. package/dist/cjs/components/Interactive/CursorFollow.cjs +1 -1
  48. package/dist/cjs/components/Interactive/CursorFollow.cjs.map +1 -1
  49. package/dist/cjs/components/Marquee/Marquee.cjs +1 -1
  50. package/dist/cjs/components/Marquee/Marquee.cjs.map +1 -1
  51. package/dist/cjs/components/Pagination/Pagination.cjs +1 -1
  52. package/dist/cjs/components/Pagination/Pagination.cjs.map +1 -1
  53. package/dist/cjs/components/QrCode/QrCode.cjs +1 -1
  54. package/dist/cjs/components/QrCode/QrCode.cjs.map +1 -1
  55. package/dist/cjs/components/Radio/Radio.cjs +1 -1
  56. package/dist/cjs/components/Radio/Radio.cjs.map +1 -1
  57. package/dist/cjs/components/Rate/Rate.cjs +1 -1
  58. package/dist/cjs/components/Rate/Rate.cjs.map +1 -1
  59. package/dist/cjs/components/Resizable/Resizable.cjs +1 -1
  60. package/dist/cjs/components/Resizable/Resizable.cjs.map +1 -1
  61. package/dist/cjs/components/ScrollArea/ScrollArea.cjs +1 -1
  62. package/dist/cjs/components/ScrollArea/ScrollArea.cjs.map +1 -1
  63. package/dist/cjs/components/Select/Select.cjs +1 -1
  64. package/dist/cjs/components/Select/Select.cjs.map +1 -1
  65. package/dist/cjs/components/Sheet/Sheet.cjs +2 -2
  66. package/dist/cjs/components/Sheet/Sheet.cjs.map +1 -1
  67. package/dist/cjs/components/Slider/Slider.cjs +1 -1
  68. package/dist/cjs/components/Slider/Slider.cjs.map +1 -1
  69. package/dist/cjs/components/Stepper/Stepper.cjs +1 -1
  70. package/dist/cjs/components/Stepper/Stepper.cjs.map +1 -1
  71. package/dist/cjs/components/Stepper/StepperWrapper.cjs +1 -1
  72. package/dist/cjs/components/Stepper/StepperWrapper.cjs.map +1 -1
  73. package/dist/cjs/components/Switch/Switch.cjs +1 -1
  74. package/dist/cjs/components/Switch/Switch.cjs.map +1 -1
  75. package/dist/cjs/components/Table/TableFilter/data-table-date-filter.cjs +1 -1
  76. package/dist/cjs/components/Table/TableFilter/data-table-date-filter.cjs.map +1 -1
  77. package/dist/cjs/components/Table/TableFilter/data-table-filter-popover.cjs +1 -1
  78. package/dist/cjs/components/Table/TableFilter/data-table-filter-popover.cjs.map +1 -1
  79. package/dist/cjs/components/Table/TableFilter/data-table-slider-filter.cjs +1 -1
  80. package/dist/cjs/components/Table/TableFilter/data-table-slider-filter.cjs.map +1 -1
  81. package/dist/cjs/components/Table/data-table-column-header.cjs +1 -1
  82. package/dist/cjs/components/Table/data-table-column-header.cjs.map +1 -1
  83. package/dist/cjs/components/Table/data-table-pagination.cjs +1 -1
  84. package/dist/cjs/components/Table/data-table-pagination.cjs.map +1 -1
  85. package/dist/cjs/components/Table/data-table.cjs +1 -1
  86. package/dist/cjs/components/Table/data-table.cjs.map +1 -1
  87. package/dist/cjs/components/Tabs/Tabs.cjs +1 -1
  88. package/dist/cjs/components/Tabs/Tabs.cjs.map +1 -1
  89. package/dist/cjs/components/Tabs/classes.cjs +1 -1
  90. package/dist/cjs/components/Tabs/classes.cjs.map +1 -1
  91. package/dist/cjs/components/Textarea/Textarea.cjs +1 -1
  92. package/dist/cjs/components/Textarea/Textarea.cjs.map +1 -1
  93. package/dist/cjs/components/TimeGridView.cjs +1 -1
  94. package/dist/cjs/components/TimeGridView.cjs.map +1 -1
  95. package/dist/cjs/components/Toast/Toast.cjs +1 -1
  96. package/dist/cjs/components/Toast/Toast.cjs.map +1 -1
  97. package/dist/cjs/components/Tooltip/Tooltip.cjs +1 -1
  98. package/dist/cjs/components/Tooltip/Tooltip.cjs.map +1 -1
  99. package/dist/cjs/components/Tour/Tour.cjs +1 -1
  100. package/dist/cjs/components/Tour/Tour.cjs.map +1 -1
  101. package/dist/cjs/components/Tour/TourWrapper.cjs +1 -1
  102. package/dist/cjs/components/Tour/TourWrapper.cjs.map +1 -1
  103. package/dist/cjs/components/Upload/Upload.cjs +3 -3
  104. package/dist/cjs/components/Upload/Upload.cjs.map +1 -1
  105. package/dist/cjs/components/WheelColumn.cjs +1 -1
  106. package/dist/cjs/components/WheelColumn.cjs.map +1 -1
  107. package/dist/cjs/lib/TextAnimation/BlurText.cjs +1 -1
  108. package/dist/cjs/lib/TextAnimation/BlurText.cjs.map +1 -1
  109. package/dist/cjs/lib/TextAnimation/CircularText.cjs +1 -1
  110. package/dist/cjs/lib/TextAnimation/CircularText.cjs.map +1 -1
  111. package/dist/cjs/lib/TextAnimation/FlipWords.cjs +1 -1
  112. package/dist/cjs/lib/TextAnimation/FlipWords.cjs.map +1 -1
  113. package/dist/cjs/lib/TextAnimation/GradientText.cjs +1 -1
  114. package/dist/cjs/lib/TextAnimation/GradientText.cjs.map +1 -1
  115. package/dist/cjs/lib/TextAnimation/RollingText.cjs +1 -1
  116. package/dist/cjs/lib/TextAnimation/RollingText.cjs.map +1 -1
  117. package/dist/cjs/lib/TextAnimation/RotatingText.cjs +1 -1
  118. package/dist/cjs/lib/TextAnimation/RotatingText.cjs.map +1 -1
  119. package/dist/cjs/lib/TextAnimation/ShimmeringText.cjs +1 -1
  120. package/dist/cjs/lib/TextAnimation/ShimmeringText.cjs.map +1 -1
  121. package/dist/cjs/lib/TextAnimation/TextGenerateEffect.cjs +1 -1
  122. package/dist/cjs/lib/TextAnimation/TextGenerateEffect.cjs.map +1 -1
  123. package/dist/cjs/lib/TextAnimation/TextHoverEffect.cjs +1 -1
  124. package/dist/cjs/lib/TextAnimation/TextHoverEffect.cjs.map +1 -1
  125. package/dist/cjs/lib/TextAnimation/TextPressureEffect.cjs +2 -2
  126. package/dist/cjs/lib/TextAnimation/TextPressureEffect.cjs.map +1 -1
  127. package/dist/cjs/lib/TextAnimation/TypingText.cjs +1 -1
  128. package/dist/cjs/lib/TextAnimation/TypingText.cjs.map +1 -1
  129. package/dist/cjs/lib/TextAnimation/WritingText.cjs +1 -1
  130. package/dist/cjs/lib/TextAnimation/WritingText.cjs.map +1 -1
  131. package/dist/cjs/node_modules/.pnpm/nuqs@2.8.0_next@15.5.9_@babel_core@7.28.5_react-dom@19.1.1_react@19.1.1__react@19.1.1__react@19.1.1/node_modules/nuqs/dist/server.cjs.map +1 -0
  132. package/dist/cjs/packages/ui/src/components/accordion.cjs +1 -1
  133. package/dist/cjs/packages/ui/src/components/accordion.cjs.map +1 -1
  134. package/dist/cjs/packages/ui/src/components/alert-dialog.cjs +1 -1
  135. package/dist/cjs/packages/ui/src/components/alert-dialog.cjs.map +1 -1
  136. package/dist/cjs/packages/ui/src/components/avatar.cjs +1 -1
  137. package/dist/cjs/packages/ui/src/components/avatar.cjs.map +1 -1
  138. package/dist/cjs/packages/ui/src/components/badge.cjs +1 -1
  139. package/dist/cjs/packages/ui/src/components/badge.cjs.map +1 -1
  140. package/dist/cjs/packages/ui/src/components/breadcrumb.cjs +1 -1
  141. package/dist/cjs/packages/ui/src/components/breadcrumb.cjs.map +1 -1
  142. package/dist/cjs/packages/ui/src/components/button-group.cjs +1 -1
  143. package/dist/cjs/packages/ui/src/components/button-group.cjs.map +1 -1
  144. package/dist/cjs/packages/ui/src/components/button.cjs +1 -1
  145. package/dist/cjs/packages/ui/src/components/button.cjs.map +1 -1
  146. package/dist/cjs/packages/ui/src/components/calendar.cjs +1 -1
  147. package/dist/cjs/packages/ui/src/components/calendar.cjs.map +1 -1
  148. package/dist/cjs/packages/ui/src/components/checkbox.cjs +1 -1
  149. package/dist/cjs/packages/ui/src/components/checkbox.cjs.map +1 -1
  150. package/dist/cjs/packages/ui/src/components/combobox.cjs +1 -1
  151. package/dist/cjs/packages/ui/src/components/combobox.cjs.map +1 -1
  152. package/dist/cjs/packages/ui/src/components/command.cjs +1 -1
  153. package/dist/cjs/packages/ui/src/components/command.cjs.map +1 -1
  154. package/dist/cjs/packages/ui/src/components/context-menu.cjs +1 -1
  155. package/dist/cjs/packages/ui/src/components/context-menu.cjs.map +1 -1
  156. package/dist/cjs/packages/ui/src/components/dialog.cjs +1 -1
  157. package/dist/cjs/packages/ui/src/components/dialog.cjs.map +1 -1
  158. package/dist/cjs/packages/ui/src/components/drawer.cjs +1 -1
  159. package/dist/cjs/packages/ui/src/components/drawer.cjs.map +1 -1
  160. package/dist/cjs/packages/ui/src/components/dropdown-menu.cjs +1 -1
  161. package/dist/cjs/packages/ui/src/components/dropdown-menu.cjs.map +1 -1
  162. package/dist/cjs/packages/ui/src/components/input-otp.cjs +1 -1
  163. package/dist/cjs/packages/ui/src/components/input-otp.cjs.map +1 -1
  164. package/dist/cjs/packages/ui/src/components/input.cjs +1 -1
  165. package/dist/cjs/packages/ui/src/components/input.cjs.map +1 -1
  166. package/dist/cjs/packages/ui/src/components/label.cjs +1 -1
  167. package/dist/cjs/packages/ui/src/components/label.cjs.map +1 -1
  168. package/dist/cjs/packages/ui/src/components/pagination.cjs +1 -1
  169. package/dist/cjs/packages/ui/src/components/pagination.cjs.map +1 -1
  170. package/dist/cjs/packages/ui/src/components/popover.cjs +1 -1
  171. package/dist/cjs/packages/ui/src/components/popover.cjs.map +1 -1
  172. package/dist/cjs/packages/ui/src/components/radio-group.cjs +1 -1
  173. package/dist/cjs/packages/ui/src/components/radio-group.cjs.map +1 -1
  174. package/dist/cjs/packages/ui/src/components/resizable.cjs +1 -1
  175. package/dist/cjs/packages/ui/src/components/resizable.cjs.map +1 -1
  176. package/dist/cjs/packages/ui/src/components/scroll-area.cjs +1 -1
  177. package/dist/cjs/packages/ui/src/components/scroll-area.cjs.map +1 -1
  178. package/dist/cjs/packages/ui/src/components/select.cjs +1 -1
  179. package/dist/cjs/packages/ui/src/components/select.cjs.map +1 -1
  180. package/dist/cjs/packages/ui/src/components/separator.cjs +1 -1
  181. package/dist/cjs/packages/ui/src/components/separator.cjs.map +1 -1
  182. package/dist/cjs/packages/ui/src/components/sheet.cjs +1 -1
  183. package/dist/cjs/packages/ui/src/components/sheet.cjs.map +1 -1
  184. package/dist/cjs/packages/ui/src/components/sidebar.cjs +1 -1
  185. package/dist/cjs/packages/ui/src/components/sidebar.cjs.map +1 -1
  186. package/dist/cjs/packages/ui/src/components/skeleton.cjs +1 -1
  187. package/dist/cjs/packages/ui/src/components/skeleton.cjs.map +1 -1
  188. package/dist/cjs/packages/ui/src/components/switch.cjs +1 -1
  189. package/dist/cjs/packages/ui/src/components/switch.cjs.map +1 -1
  190. package/dist/cjs/packages/ui/src/components/table.cjs +1 -1
  191. package/dist/cjs/packages/ui/src/components/table.cjs.map +1 -1
  192. package/dist/cjs/packages/ui/src/components/tabs.cjs +1 -1
  193. package/dist/cjs/packages/ui/src/components/tabs.cjs.map +1 -1
  194. package/dist/cjs/packages/ui/src/components/textarea.cjs +1 -1
  195. package/dist/cjs/packages/ui/src/components/textarea.cjs.map +1 -1
  196. package/dist/cjs/packages/ui/src/components/toggle.cjs +1 -1
  197. package/dist/cjs/packages/ui/src/components/toggle.cjs.map +1 -1
  198. package/dist/cjs/packages/ui/src/components/tooltip.cjs +1 -1
  199. package/dist/cjs/packages/ui/src/components/tooltip.cjs.map +1 -1
  200. package/dist/cjs/packages/ui/src/components/tree-view.cjs +1 -1
  201. package/dist/cjs/packages/ui/src/components/tree-view.cjs.map +1 -1
  202. package/dist/cjs/styles/index.css +1 -1
  203. package/dist/cjs/utils/animations.cjs +1 -1
  204. package/dist/cjs/utils/animations.cjs.map +1 -1
  205. package/dist/cjs/utils/css.cjs +1 -1
  206. package/dist/cjs/utils/css.cjs.map +1 -1
  207. package/dist/cjs/utils/parsers.cjs +1 -1
  208. package/dist/cjs/utils/parsers.cjs.map +1 -1
  209. package/dist/esm/components/Accordion/Accordion.js +60 -60
  210. package/dist/esm/components/Accordion/Accordion.js.map +1 -1
  211. package/dist/esm/components/Avatar/Avatar.js +40 -40
  212. package/dist/esm/components/Avatar/Avatar.js.map +1 -1
  213. package/dist/esm/components/Badge/Badge.js +1 -1
  214. package/dist/esm/components/Badge/Badge.js.map +1 -1
  215. package/dist/esm/components/Breadcrumb/Breadcrumb.js +36 -36
  216. package/dist/esm/components/Breadcrumb/Breadcrumb.js.map +1 -1
  217. package/dist/esm/components/Button/Button.js +9 -9
  218. package/dist/esm/components/Button/Button.js.map +1 -1
  219. package/dist/esm/components/Calendar/Calendar.js +4 -4
  220. package/dist/esm/components/Calendar/Calendar.js.map +1 -1
  221. package/dist/esm/components/Carousel/Carousel.js +165 -165
  222. package/dist/esm/components/Carousel/Carousel.js.map +1 -1
  223. package/dist/esm/components/Checkbox/Checkbox.js +26 -26
  224. package/dist/esm/components/Checkbox/Checkbox.js.map +1 -1
  225. package/dist/esm/components/Collapsible/Collapsible.js +43 -43
  226. package/dist/esm/components/Collapsible/Collapsible.js.map +1 -1
  227. package/dist/esm/components/Command/Command.js +28 -28
  228. package/dist/esm/components/Command/Command.js.map +1 -1
  229. package/dist/esm/components/ContextMenu/ContextMenu.js +11 -11
  230. package/dist/esm/components/ContextMenu/ContextMenu.js.map +1 -1
  231. package/dist/esm/components/Cropper/Cropper.js +132 -132
  232. package/dist/esm/components/Cropper/Cropper.js.map +1 -1
  233. package/dist/esm/components/DatePicker/DatePicker.js +75 -75
  234. package/dist/esm/components/DatePicker/DatePicker.js.map +1 -1
  235. package/dist/esm/components/DatePicker/RangePicker.js +136 -136
  236. package/dist/esm/components/DatePicker/RangePicker.js.map +1 -1
  237. package/dist/esm/components/DatePicker/TimePicker.js +150 -150
  238. package/dist/esm/components/DatePicker/TimePicker.js.map +1 -1
  239. package/dist/esm/components/Dialog/Dialog.js +114 -114
  240. package/dist/esm/components/Dialog/Dialog.js.map +1 -1
  241. package/dist/esm/components/DropdownMenu/DropdownMenu.js +13 -13
  242. package/dist/esm/components/DropdownMenu/DropdownMenu.js.map +1 -1
  243. package/dist/esm/components/FloatLabel.js +44 -44
  244. package/dist/esm/components/FloatLabel.js.map +1 -1
  245. package/dist/esm/components/Glass/Glass.js +15 -15
  246. package/dist/esm/components/Glass/Glass.js.map +1 -1
  247. package/dist/esm/components/ImageViewer/ImageViewer.js +53 -53
  248. package/dist/esm/components/ImageViewer/ImageViewer.js.map +1 -1
  249. package/dist/esm/components/Input/Input.js +104 -104
  250. package/dist/esm/components/Input/Input.js.map +1 -1
  251. package/dist/esm/components/InputOTP/InputOTP.js +16 -16
  252. package/dist/esm/components/InputOTP/InputOTP.js.map +1 -1
  253. package/dist/esm/components/Interactive/CursorFollow.js +49 -49
  254. package/dist/esm/components/Interactive/CursorFollow.js.map +1 -1
  255. package/dist/esm/components/Marquee/Marquee.js +130 -130
  256. package/dist/esm/components/Marquee/Marquee.js.map +1 -1
  257. package/dist/esm/components/Pagination/Pagination.js +68 -68
  258. package/dist/esm/components/Pagination/Pagination.js.map +1 -1
  259. package/dist/esm/components/QrCode/QrCode.js +37 -37
  260. package/dist/esm/components/QrCode/QrCode.js.map +1 -1
  261. package/dist/esm/components/Radio/Radio.js +16 -16
  262. package/dist/esm/components/Radio/Radio.js.map +1 -1
  263. package/dist/esm/components/Rate/Rate.js +62 -62
  264. package/dist/esm/components/Rate/Rate.js.map +1 -1
  265. package/dist/esm/components/Resizable/Resizable.js +6 -6
  266. package/dist/esm/components/Resizable/Resizable.js.map +1 -1
  267. package/dist/esm/components/ScrollArea/ScrollArea.js +10 -10
  268. package/dist/esm/components/ScrollArea/ScrollArea.js.map +1 -1
  269. package/dist/esm/components/Select/Select.js +64 -64
  270. package/dist/esm/components/Select/Select.js.map +1 -1
  271. package/dist/esm/components/Sheet/Sheet.js +21 -21
  272. package/dist/esm/components/Sheet/Sheet.js.map +1 -1
  273. package/dist/esm/components/Slider/Slider.js +54 -54
  274. package/dist/esm/components/Slider/Slider.js.map +1 -1
  275. package/dist/esm/components/Stepper/Stepper.js +198 -198
  276. package/dist/esm/components/Stepper/Stepper.js.map +1 -1
  277. package/dist/esm/components/Stepper/StepperWrapper.js +15 -15
  278. package/dist/esm/components/Stepper/StepperWrapper.js.map +1 -1
  279. package/dist/esm/components/Switch/Switch.js +38 -38
  280. package/dist/esm/components/Switch/Switch.js.map +1 -1
  281. package/dist/esm/components/Table/TableFilter/data-table-date-filter.js +37 -37
  282. package/dist/esm/components/Table/TableFilter/data-table-date-filter.js.map +1 -1
  283. package/dist/esm/components/Table/TableFilter/data-table-filter-popover.js +25 -25
  284. package/dist/esm/components/Table/TableFilter/data-table-filter-popover.js.map +1 -1
  285. package/dist/esm/components/Table/TableFilter/data-table-slider-filter.js +64 -64
  286. package/dist/esm/components/Table/TableFilter/data-table-slider-filter.js.map +1 -1
  287. package/dist/esm/components/Table/data-table-column-header.js +18 -18
  288. package/dist/esm/components/Table/data-table-column-header.js.map +1 -1
  289. package/dist/esm/components/Table/data-table-pagination.js +21 -21
  290. package/dist/esm/components/Table/data-table-pagination.js.map +1 -1
  291. package/dist/esm/components/Table/data-table.js +18 -18
  292. package/dist/esm/components/Table/data-table.js.map +1 -1
  293. package/dist/esm/components/Tabs/Tabs.js +242 -242
  294. package/dist/esm/components/Tabs/Tabs.js.map +1 -1
  295. package/dist/esm/components/Tabs/classes.js +51 -51
  296. package/dist/esm/components/Tabs/classes.js.map +1 -1
  297. package/dist/esm/components/Textarea/Textarea.js +49 -49
  298. package/dist/esm/components/Textarea/Textarea.js.map +1 -1
  299. package/dist/esm/components/TimeGridView.js +12 -12
  300. package/dist/esm/components/TimeGridView.js.map +1 -1
  301. package/dist/esm/components/Toast/Toast.js +45 -45
  302. package/dist/esm/components/Toast/Toast.js.map +1 -1
  303. package/dist/esm/components/Tooltip/Tooltip.js +19 -19
  304. package/dist/esm/components/Tooltip/Tooltip.js.map +1 -1
  305. package/dist/esm/components/Tour/Tour.js +11 -11
  306. package/dist/esm/components/Tour/Tour.js.map +1 -1
  307. package/dist/esm/components/Tour/TourWrapper.js +15 -15
  308. package/dist/esm/components/Tour/TourWrapper.js.map +1 -1
  309. package/dist/esm/components/Upload/Upload.js +405 -405
  310. package/dist/esm/components/Upload/Upload.js.map +1 -1
  311. package/dist/esm/components/WheelColumn.js +47 -47
  312. package/dist/esm/components/WheelColumn.js.map +1 -1
  313. package/dist/esm/lib/TextAnimation/BlurText.js +18 -18
  314. package/dist/esm/lib/TextAnimation/BlurText.js.map +1 -1
  315. package/dist/esm/lib/TextAnimation/CircularText.js +7 -7
  316. package/dist/esm/lib/TextAnimation/CircularText.js.map +1 -1
  317. package/dist/esm/lib/TextAnimation/FlipWords.js +21 -21
  318. package/dist/esm/lib/TextAnimation/FlipWords.js.map +1 -1
  319. package/dist/esm/lib/TextAnimation/GradientText.js +4 -4
  320. package/dist/esm/lib/TextAnimation/GradientText.js.map +1 -1
  321. package/dist/esm/lib/TextAnimation/RollingText.js +24 -24
  322. package/dist/esm/lib/TextAnimation/RollingText.js.map +1 -1
  323. package/dist/esm/lib/TextAnimation/RotatingText.js +6 -6
  324. package/dist/esm/lib/TextAnimation/RotatingText.js.map +1 -1
  325. package/dist/esm/lib/TextAnimation/ShimmeringText.js +9 -9
  326. package/dist/esm/lib/TextAnimation/ShimmeringText.js.map +1 -1
  327. package/dist/esm/lib/TextAnimation/TextGenerateEffect.js +14 -14
  328. package/dist/esm/lib/TextAnimation/TextGenerateEffect.js.map +1 -1
  329. package/dist/esm/lib/TextAnimation/TextHoverEffect.js +9 -9
  330. package/dist/esm/lib/TextAnimation/TextHoverEffect.js.map +1 -1
  331. package/dist/esm/lib/TextAnimation/TextPressureEffect.js +3 -3
  332. package/dist/esm/lib/TextAnimation/TextPressureEffect.js.map +1 -1
  333. package/dist/esm/lib/TextAnimation/TypingText.js +17 -17
  334. package/dist/esm/lib/TextAnimation/TypingText.js.map +1 -1
  335. package/dist/esm/lib/TextAnimation/WritingText.js +10 -10
  336. package/dist/esm/lib/TextAnimation/WritingText.js.map +1 -1
  337. package/dist/esm/node_modules/.pnpm/nuqs@2.8.0_next@15.5.9_@babel_core@7.28.5_react-dom@19.1.1_react@19.1.1__react@19.1.1__react@19.1.1/node_modules/nuqs/dist/server.js.map +1 -0
  338. package/dist/esm/packages/ui/src/components/accordion.js +31 -31
  339. package/dist/esm/packages/ui/src/components/accordion.js.map +1 -1
  340. package/dist/esm/packages/ui/src/components/alert-dialog.js +33 -33
  341. package/dist/esm/packages/ui/src/components/alert-dialog.js.map +1 -1
  342. package/dist/esm/packages/ui/src/components/avatar.js +20 -20
  343. package/dist/esm/packages/ui/src/components/avatar.js.map +1 -1
  344. package/dist/esm/packages/ui/src/components/badge.js +53 -53
  345. package/dist/esm/packages/ui/src/components/badge.js.map +1 -1
  346. package/dist/esm/packages/ui/src/components/breadcrumb.js +20 -20
  347. package/dist/esm/packages/ui/src/components/breadcrumb.js.map +1 -1
  348. package/dist/esm/packages/ui/src/components/button-group.js +31 -31
  349. package/dist/esm/packages/ui/src/components/button-group.js.map +1 -1
  350. package/dist/esm/packages/ui/src/components/button.js +90 -90
  351. package/dist/esm/packages/ui/src/components/button.js.map +1 -1
  352. package/dist/esm/packages/ui/src/components/calendar.js +94 -94
  353. package/dist/esm/packages/ui/src/components/calendar.js.map +1 -1
  354. package/dist/esm/packages/ui/src/components/checkbox.js +47 -47
  355. package/dist/esm/packages/ui/src/components/checkbox.js.map +1 -1
  356. package/dist/esm/packages/ui/src/components/combobox.js +64 -64
  357. package/dist/esm/packages/ui/src/components/combobox.js.map +1 -1
  358. package/dist/esm/packages/ui/src/components/command.js +77 -77
  359. package/dist/esm/packages/ui/src/components/command.js.map +1 -1
  360. package/dist/esm/packages/ui/src/components/context-menu.js +76 -76
  361. package/dist/esm/packages/ui/src/components/context-menu.js.map +1 -1
  362. package/dist/esm/packages/ui/src/components/dialog.js +54 -54
  363. package/dist/esm/packages/ui/src/components/dialog.js.map +1 -1
  364. package/dist/esm/packages/ui/src/components/drawer.js +39 -39
  365. package/dist/esm/packages/ui/src/components/drawer.js.map +1 -1
  366. package/dist/esm/packages/ui/src/components/dropdown-menu.js +109 -109
  367. package/dist/esm/packages/ui/src/components/dropdown-menu.js.map +1 -1
  368. package/dist/esm/packages/ui/src/components/input-otp.js +30 -30
  369. package/dist/esm/packages/ui/src/components/input-otp.js.map +1 -1
  370. package/dist/esm/packages/ui/src/components/input.js +19 -19
  371. package/dist/esm/packages/ui/src/components/input.js.map +1 -1
  372. package/dist/esm/packages/ui/src/components/label.js +9 -9
  373. package/dist/esm/packages/ui/src/components/label.js.map +1 -1
  374. package/dist/esm/packages/ui/src/components/pagination.js +26 -26
  375. package/dist/esm/packages/ui/src/components/pagination.js.map +1 -1
  376. package/dist/esm/packages/ui/src/components/popover.js +13 -13
  377. package/dist/esm/packages/ui/src/components/popover.js.map +1 -1
  378. package/dist/esm/packages/ui/src/components/radio-group.js +45 -45
  379. package/dist/esm/packages/ui/src/components/radio-group.js.map +1 -1
  380. package/dist/esm/packages/ui/src/components/resizable.js +18 -18
  381. package/dist/esm/packages/ui/src/components/resizable.js.map +1 -1
  382. package/dist/esm/packages/ui/src/components/scroll-area.js +31 -31
  383. package/dist/esm/packages/ui/src/components/scroll-area.js.map +1 -1
  384. package/dist/esm/packages/ui/src/components/select.js +119 -119
  385. package/dist/esm/packages/ui/src/components/select.js.map +1 -1
  386. package/dist/esm/packages/ui/src/components/separator.js +86 -86
  387. package/dist/esm/packages/ui/src/components/separator.js.map +1 -1
  388. package/dist/esm/packages/ui/src/components/sheet.js +50 -50
  389. package/dist/esm/packages/ui/src/components/sheet.js.map +1 -1
  390. package/dist/esm/packages/ui/src/components/sidebar.js +198 -198
  391. package/dist/esm/packages/ui/src/components/sidebar.js.map +1 -1
  392. package/dist/esm/packages/ui/src/components/skeleton.js +3 -3
  393. package/dist/esm/packages/ui/src/components/skeleton.js.map +1 -1
  394. package/dist/esm/packages/ui/src/components/switch.js +57 -57
  395. package/dist/esm/packages/ui/src/components/switch.js.map +1 -1
  396. package/dist/esm/packages/ui/src/components/table.js +17 -17
  397. package/dist/esm/packages/ui/src/components/table.js.map +1 -1
  398. package/dist/esm/packages/ui/src/components/tabs.js +33 -33
  399. package/dist/esm/packages/ui/src/components/tabs.js.map +1 -1
  400. package/dist/esm/packages/ui/src/components/textarea.js +17 -17
  401. package/dist/esm/packages/ui/src/components/textarea.js.map +1 -1
  402. package/dist/esm/packages/ui/src/components/toggle.js +36 -36
  403. package/dist/esm/packages/ui/src/components/toggle.js.map +1 -1
  404. package/dist/esm/packages/ui/src/components/tooltip.js +20 -20
  405. package/dist/esm/packages/ui/src/components/tooltip.js.map +1 -1
  406. package/dist/esm/packages/ui/src/components/tree-view.js +218 -218
  407. package/dist/esm/packages/ui/src/components/tree-view.js.map +1 -1
  408. package/dist/esm/styles/index.css +1 -1
  409. package/dist/esm/utils/animations.js +55 -55
  410. package/dist/esm/utils/animations.js.map +1 -1
  411. package/dist/esm/utils/css.js +7 -7
  412. package/dist/esm/utils/css.js.map +1 -1
  413. package/dist/esm/utils/parsers.js +1 -1
  414. package/dist/types/components/DatePicker/RangePicker.d.ts.map +1 -1
  415. package/dist/types/lib/TextAnimation/TextPressureEffect.d.ts.map +1 -1
  416. package/dist/types/lib/TextAnimation/TypingText.d.ts.map +1 -1
  417. package/package.json +1 -1
  418. package/dist/cjs/node_modules/.pnpm/nuqs@2.8.0_next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1__react@19.1.1/node_modules/nuqs/dist/server.cjs.map +0 -1
  419. package/dist/esm/node_modules/.pnpm/nuqs@2.8.0_next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1__react@19.1.1/node_modules/nuqs/dist/server.js.map +0 -1
  420. /package/dist/cjs/node_modules/.pnpm/{nuqs@2.8.0_next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1__react@19.1.1 → nuqs@2.8.0_next@15.5.9_@babel_core@7.28.5_react-dom@19.1.1_react@19.1.1__react@19.1.1__react@19.1.1}/node_modules/nuqs/dist/server.cjs +0 -0
  421. /package/dist/esm/node_modules/.pnpm/{nuqs@2.8.0_next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1__react@19.1.1 → nuqs@2.8.0_next@15.5.9_@babel_core@7.28.5_react-dom@19.1.1_react@19.1.1__react@19.1.1__react@19.1.1}/node_modules/nuqs/dist/server.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"tree-view.js","sources":["../../../../../../../../packages/ui/src/components/tree-view.tsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\nimport * as AccordionPrimitive from \"@radix-ui/react-accordion\";\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\";\nimport {\n ChevronRight,\n Check,\n Minus,\n SquarePlus,\n SquareMinus,\n} from \"lucide-react\";\nimport { cva } from \"class-variance-authority\";\nimport { cn } from \"../lib/utils\";\n\nconst treeVariants = cva(\n \"group hover:before:opacity-100 before:absolute before:rounded-lg before:left-0 pr-2 before:w-full before:opacity-0 before:bg-accent/70 before:h-[2rem] before:-z-10\"\n);\n\nconst selectedTreeVariants = cva(\n \"before:opacity-100 before:bg-accent/70 text-accent-foreground\"\n);\n\nconst DEFAULT_SELECTED_IDS: string[] = [];\n\ninterface TreeDataItem {\n id: string;\n name: string;\n icon?: any;\n selectedIcon?: any;\n openIcon?: any;\n children?: TreeDataItem[];\n actions?: React.ReactNode;\n onClick?: () => void;\n disabled?: boolean;\n checked?: boolean;\n indeterminate?: boolean;\n}\n\ninterface TreeViewProps extends React.HTMLAttributes<HTMLDivElement> {\n data: TreeDataItem[] | TreeDataItem;\n initialSelectedItemId?: string;\n onSelectChange?: (item: TreeDataItem | undefined) => void;\n expandAll?: boolean;\n defaultNodeIcon?: any;\n defaultLeafIcon?: any;\n multiSelect?: boolean;\n selectedIds?: string[];\n onMultiSelectChange?: (selectedIds: string[]) => void;\n showIcon?: boolean;\n showLeafIcon?: boolean;\n treeLine?: boolean | \"full\";\n expandOnArrowClick?: boolean;\n indicatorVariant?: \"arrow\" | \"plus-minus\";\n customExpandIcon?: React.ElementType;\n customCollapseIcon?: React.ElementType;\n}\n\nconst TreeView = React.forwardRef<HTMLDivElement, TreeViewProps>(\n (\n {\n data,\n initialSelectedItemId,\n onSelectChange,\n expandAll,\n defaultLeafIcon,\n defaultNodeIcon,\n className,\n multiSelect = false,\n selectedIds = DEFAULT_SELECTED_IDS,\n onMultiSelectChange,\n showIcon = true,\n showLeafIcon = true,\n treeLine = false,\n expandOnArrowClick = false,\n indicatorVariant = \"arrow\",\n customExpandIcon,\n customCollapseIcon,\n ...props\n },\n ref\n ) => {\n const [selectedItemId, setSelectedItemId] = React.useState<\n string | undefined\n >(initialSelectedItemId);\n\n const [checkedIds, setCheckedIds] = React.useState<string[]>(selectedIds);\n\n React.useEffect(() => {\n setCheckedIds(selectedIds);\n }, [selectedIds]);\n\n const handleSelectChange = React.useCallback(\n (item: TreeDataItem | undefined) => {\n setSelectedItemId(item?.id);\n if (onSelectChange) {\n onSelectChange(item);\n }\n },\n [onSelectChange]\n );\n\n const handleCheckChange = React.useCallback(\n (item: TreeDataItem, checked: boolean) => {\n const getAllChildIds = (node: TreeDataItem): string[] => {\n const ids = [node.id];\n if (node.children) {\n node.children.forEach((child) => {\n ids.push(...getAllChildIds(child));\n });\n }\n return ids;\n };\n\n const newCheckedIds = checked\n ? [...checkedIds, ...getAllChildIds(item)]\n : checkedIds.filter((id) => !getAllChildIds(item).includes(id));\n\n const uniqueIds = Array.from(new Set(newCheckedIds));\n setCheckedIds(uniqueIds);\n if (onMultiSelectChange) {\n onMultiSelectChange(uniqueIds);\n }\n },\n [checkedIds, onMultiSelectChange]\n );\n\n const expandedItemIds = React.useMemo(() => {\n const ids: string[] = [];\n\n if (expandAll) {\n const collectAllIds = (nodes: TreeDataItem[] | TreeDataItem) => {\n const items = Array.isArray(nodes) ? nodes : [nodes];\n items.forEach((node) => {\n if (node.children && node.children.length > 0) {\n ids.push(node.id);\n collectAllIds(node.children);\n }\n });\n };\n collectAllIds(data);\n } else if (initialSelectedItemId) {\n const findPath = (\n nodes: TreeDataItem[] | TreeDataItem,\n targetId: string\n ): boolean => {\n const items = Array.isArray(nodes) ? nodes : [nodes];\n for (const node of items) {\n if (node.id === targetId) return true;\n if (node.children) {\n if (findPath(node.children, targetId)) {\n ids.push(node.id);\n return true;\n }\n }\n }\n return false;\n };\n findPath(data, initialSelectedItemId);\n }\n\n return ids;\n }, [data, expandAll, initialSelectedItemId]);\n\n return (\n <div className={cn(\"overflow-hidden relative p-2\", className)}>\n <TreeItem\n data={data}\n ref={ref}\n selectedItemId={selectedItemId}\n handleSelectChange={handleSelectChange}\n expandedItemIds={expandedItemIds}\n defaultLeafIcon={defaultLeafIcon}\n defaultNodeIcon={defaultNodeIcon}\n multiSelect={multiSelect}\n checkedIds={checkedIds}\n handleCheckChange={handleCheckChange}\n showIcon={showIcon}\n showLeafIcon={showLeafIcon}\n treeLine={treeLine}\n expandOnArrowClick={expandOnArrowClick}\n indicatorVariant={indicatorVariant}\n customExpandIcon={customExpandIcon}\n customCollapseIcon={customCollapseIcon}\n isRoot\n {...props}\n />\n </div>\n );\n }\n);\nTreeView.displayName = \"TreeView\";\n\ntype TreeItemProps = TreeViewProps & {\n selectedItemId?: string;\n handleSelectChange: (item: TreeDataItem | undefined) => void;\n expandedItemIds: string[];\n defaultNodeIcon?: any;\n defaultLeafIcon?: any;\n checkedIds?: string[];\n handleCheckChange?: (item: TreeDataItem, checked: boolean) => void;\n showIcon?: boolean;\n showLeafIcon?: boolean;\n treeLine?: boolean | \"full\";\n expandOnArrowClick?: boolean;\n indicatorVariant?: \"arrow\" | \"plus-minus\";\n customExpandIcon?: React.ElementType;\n customCollapseIcon?: React.ElementType;\n isRoot?: boolean;\n};\n\nconst TreeItem = React.forwardRef<HTMLDivElement, TreeItemProps>(\n (\n {\n className,\n data,\n selectedItemId,\n handleSelectChange,\n expandedItemIds,\n defaultNodeIcon,\n defaultLeafIcon,\n multiSelect,\n checkedIds,\n handleCheckChange,\n showIcon,\n showLeafIcon,\n treeLine,\n expandOnArrowClick,\n indicatorVariant,\n customExpandIcon,\n customCollapseIcon,\n isRoot,\n ...props\n },\n ref\n ) => {\n if (!(data instanceof Array)) {\n data = [data];\n }\n return (\n <div ref={ref} role=\"tree\" className={className} {...props}>\n <ul>\n {data.map((item, index) => (\n <li key={item.id} className=\"relative\">\n {item.children ? (\n <TreeNode\n item={item}\n selectedItemId={selectedItemId}\n expandedItemIds={expandedItemIds}\n handleSelectChange={handleSelectChange}\n defaultNodeIcon={defaultNodeIcon}\n defaultLeafIcon={defaultLeafIcon}\n multiSelect={multiSelect}\n checkedIds={checkedIds}\n handleCheckChange={handleCheckChange}\n showIcon={showIcon}\n treeLine={treeLine}\n expandOnArrowClick={expandOnArrowClick}\n indicatorVariant={indicatorVariant}\n customExpandIcon={customExpandIcon}\n customCollapseIcon={customCollapseIcon}\n isLastChild={index === (data as TreeDataItem[]).length - 1}\n isRoot={isRoot}\n />\n ) : (\n <TreeLeaf\n item={item}\n selectedItemId={selectedItemId}\n handleSelectChange={handleSelectChange}\n defaultLeafIcon={defaultLeafIcon}\n multiSelect={multiSelect}\n checkedIds={checkedIds}\n handleCheckChange={handleCheckChange}\n showLeafIcon={showLeafIcon}\n treeLine={treeLine}\n isLastChild={index === (data as TreeDataItem[]).length - 1}\n isRoot={isRoot}\n />\n )}\n </li>\n ))}\n </ul>\n </div>\n );\n }\n);\nTreeItem.displayName = \"TreeItem\";\n\nconst TreeNode = ({\n item,\n handleSelectChange,\n expandedItemIds,\n selectedItemId,\n defaultNodeIcon,\n defaultLeafIcon,\n multiSelect,\n checkedIds = [],\n handleCheckChange,\n showIcon = true,\n treeLine = false,\n expandOnArrowClick = false,\n indicatorVariant = \"arrow\",\n customExpandIcon,\n customCollapseIcon,\n isLastChild,\n isRoot,\n}: {\n item: TreeDataItem;\n handleSelectChange: (item: TreeDataItem | undefined) => void;\n expandedItemIds: string[];\n selectedItemId?: string;\n defaultNodeIcon?: any;\n defaultLeafIcon?: any;\n multiSelect?: boolean;\n checkedIds?: string[];\n handleCheckChange?: (item: TreeDataItem, checked: boolean) => void;\n showIcon?: boolean;\n treeLine?: boolean | \"full\";\n expandOnArrowClick?: boolean;\n indicatorVariant?: \"arrow\" | \"plus-minus\";\n customExpandIcon?: React.ElementType;\n customCollapseIcon?: React.ElementType;\n isLastChild?: boolean;\n isRoot?: boolean;\n}) => {\n const [value, setValue] = React.useState<string[]>(\n expandedItemIds.includes(item.id) ? [item.id] : []\n );\n\n React.useEffect(() => {\n if (expandedItemIds.includes(item.id)) {\n setValue((prev) => (prev.includes(item.id) ? prev : [...prev, item.id]));\n } else {\n setValue((prev) => prev.filter((id) => id !== item.id));\n }\n }, [expandedItemIds, item.id]);\n\n // Get all descendant IDs - memoized separately to avoid recalculation\n const allDescendantIds = React.useMemo(() => {\n const getAllDescendantIds = (node: TreeDataItem): string[] => {\n const ids: string[] = [];\n if (node.children) {\n node.children.forEach((child) => {\n ids.push(child.id);\n ids.push(...getAllDescendantIds(child));\n });\n }\n return ids;\n };\n return item.children ? getAllDescendantIds(item) : [];\n // We only want to recalculate when item structure changes, not on every render\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [item.id]);\n\n // Check if this node is checked\n const isChecked = React.useMemo(() => {\n if (!checkedIds) return false;\n\n // If the node itself is in checkedIds\n if (checkedIds.includes(item.id)) return true;\n\n // If all descendants are checked, consider this node as checked\n if (!item.children || item.children.length === 0) return false;\n if (allDescendantIds.length === 0) return false;\n\n // All descendants must be checked\n return allDescendantIds.every((id) => checkedIds.includes(id));\n // item.children check is done inside allDescendantIds calculation\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [checkedIds, item.id, allDescendantIds]);\n\n const isIndeterminate = React.useMemo(() => {\n if (!multiSelect || !item.children || !checkedIds) return false;\n if (isChecked) return false; // If node is fully checked, not indeterminate\n\n const checkedDescendants = allDescendantIds.filter((id) =>\n checkedIds.includes(id)\n );\n\n // Indeterminate if some (but not all) descendants are checked\n return (\n checkedDescendants.length > 0 &&\n checkedDescendants.length < allDescendantIds.length\n );\n // item.children check is done inside allDescendantIds calculation\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [multiSelect, checkedIds, isChecked, allDescendantIds]);\n\n return (\n <AccordionPrimitive.Root\n type=\"multiple\"\n value={value}\n onValueChange={(s: string[]) => setValue(s)}\n >\n <AccordionPrimitive.Item value={item.id} className=\"relative\">\n {treeLine === \"full\" && (\n <div\n className={cn(\n \"absolute left-[-1.05rem] w-px bg-border\",\n isLastChild ? \"h-5\" : \"h-full\",\n isRoot && \"hidden\"\n )}\n >\n <div className=\"absolute left-0 top-5 w-4 h-px bg-border\" />\n </div>\n )}\n <div\n className={cn(\n \"flex items-center relative\",\n !expandOnArrowClick && treeVariants(),\n !expandOnArrowClick &&\n selectedItemId === item.id &&\n selectedTreeVariants()\n )}\n >\n <AccordionPrimitive.Header className=\"flex items-center w-full\">\n <AccordionPrimitive.Trigger\n asChild\n onClick={(e) => {\n if (expandOnArrowClick) {\n e.stopPropagation();\n }\n }}\n >\n <div\n className={cn(\n \"flex items-center p-2 transition-all gap-1\",\n indicatorVariant === \"arrow\" &&\n !customExpandIcon &&\n !customCollapseIcon &&\n \"[&[data-state=open]>svg:first-of-type]:rotate-90\",\n expandOnArrowClick\n ? \"hover:bg-accent/50 rounded-sm cursor-pointer\"\n : \"flex-1 cursor-pointer\"\n )}\n >\n <IndicatorIcon\n variant={indicatorVariant}\n isOpen={value.includes(item.id)}\n customExpand={customExpandIcon}\n customCollapse={customCollapseIcon}\n />\n {!expandOnArrowClick && (\n <>\n {multiSelect && (\n <CheckboxPrimitive.Root\n checked={\n isChecked\n ? true\n : isIndeterminate\n ? \"indeterminate\"\n : false\n }\n onCheckedChange={(checked) => {\n handleCheckChange?.(item, checked === true);\n }}\n onClick={(e) => e.stopPropagation()}\n className=\"mr-2 h-4 w-4 shrink-0 rounded-sm border border-primary data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground data-[state=indeterminate]:bg-primary data-[state=indeterminate]:text-primary-foreground\"\n >\n <CheckboxPrimitive.Indicator className=\"flex items-center justify-center text-current\">\n {isIndeterminate ? (\n <Minus className=\"h-3 w-3\" />\n ) : (\n <Check className=\"h-3 w-3\" />\n )}\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n )}\n {showIcon && (\n <TreeIcon\n item={item}\n isSelected={selectedItemId === item.id}\n isOpen={value.includes(item.id)}\n default={defaultNodeIcon}\n />\n )}\n <span className=\"text-sm truncate\">{item.name}</span>\n </>\n )}\n </div>\n </AccordionPrimitive.Trigger>\n {expandOnArrowClick && (\n <div\n className={cn(\n \"flex items-center flex-1 py-2 cursor-pointer\",\n treeVariants(),\n selectedItemId === item.id && selectedTreeVariants()\n )}\n onClick={() => {\n if (!multiSelect) {\n handleSelectChange(item);\n item.onClick?.();\n }\n }}\n >\n {multiSelect && (\n <CheckboxPrimitive.Root\n checked={\n isChecked\n ? true\n : isIndeterminate\n ? \"indeterminate\"\n : false\n }\n onCheckedChange={(checked) => {\n handleCheckChange?.(item, checked === true);\n }}\n onClick={(e) => e.stopPropagation()}\n className=\"mr-2 h-4 w-4 shrink-0 rounded-sm border border-primary data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground data-[state=indeterminate]:bg-primary data-[state=indeterminate]:text-primary-foreground\"\n >\n <CheckboxPrimitive.Indicator className=\"flex items-center justify-center text-current\">\n {isIndeterminate ? (\n <Minus className=\"h-3 w-3\" />\n ) : (\n <Check className=\"h-3 w-3\" />\n )}\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n )}\n {showIcon && (\n <TreeIcon\n item={item}\n isSelected={selectedItemId === item.id}\n isOpen={value.includes(item.id)}\n default={defaultNodeIcon}\n />\n )}\n <span className=\"text-sm truncate\">{item.name}</span>\n </div>\n )}\n <TreeActions\n isSelected={selectedItemId === item.id}\n className={cn(expandOnArrowClick && \"right-1\")}\n >\n {item.actions}\n </TreeActions>\n </AccordionPrimitive.Header>\n </div>\n <AccordionContent\n className={cn(\n \"ml-4 pl-1\",\n treeLine === true && \"border-l\",\n treeLine === \"full\" && \"pl-2 border-l ml-4\"\n )}\n >\n <TreeItem\n data={item.children ? item.children : item}\n selectedItemId={selectedItemId}\n handleSelectChange={handleSelectChange}\n expandedItemIds={expandedItemIds}\n defaultLeafIcon={defaultLeafIcon}\n defaultNodeIcon={defaultNodeIcon}\n multiSelect={multiSelect}\n checkedIds={checkedIds}\n handleCheckChange={handleCheckChange}\n showIcon={showIcon}\n showLeafIcon={showIcon}\n treeLine={treeLine}\n expandOnArrowClick={expandOnArrowClick}\n indicatorVariant={indicatorVariant}\n customExpandIcon={customExpandIcon}\n customCollapseIcon={customCollapseIcon}\n />\n </AccordionContent>\n </AccordionPrimitive.Item>\n </AccordionPrimitive.Root>\n );\n};\n\nconst TreeLeaf = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & {\n item: TreeDataItem;\n selectedItemId?: string;\n handleSelectChange: (item: TreeDataItem | undefined) => void;\n defaultLeafIcon?: any;\n multiSelect?: boolean;\n checkedIds?: string[];\n handleCheckChange?: (item: TreeDataItem, checked: boolean) => void;\n showLeafIcon?: boolean;\n treeLine?: boolean | \"full\";\n isLastChild?: boolean;\n isRoot?: boolean;\n }\n>(\n (\n {\n className,\n item,\n selectedItemId,\n handleSelectChange,\n defaultLeafIcon,\n multiSelect,\n checkedIds,\n handleCheckChange,\n showLeafIcon = true,\n treeLine = false,\n isLastChild,\n isRoot,\n ...props\n },\n ref\n ) => {\n const isChecked = checkedIds?.includes(item.id);\n\n return (\n <div\n ref={ref}\n className={cn(\n \"ml-5 flex text-left items-center py-2 cursor-pointer before:right-1\",\n treeLine === \"full\" && \"ml-[1.25rem]\",\n treeVariants(),\n className,\n selectedItemId === item.id && selectedTreeVariants(),\n item.disabled && \"opacity-50 cursor-not-allowed pointer-events-none\"\n )}\n onClick={() => {\n if (item.disabled) return;\n if (!multiSelect) {\n handleSelectChange(item);\n item.onClick?.();\n }\n }}\n {...props}\n >\n {treeLine === \"full\" && (\n <div\n className={cn(\n \"absolute left-[-1.05rem] w-px bg-border\",\n isLastChild ? \"h-1/2\" : \"h-full\",\n isRoot && \"hidden\"\n )}\n >\n <div className=\"absolute left-0 top-1/2 w-4 h-px bg-border\" />\n </div>\n )}\n {multiSelect && (\n <CheckboxPrimitive.Root\n checked={isChecked}\n onCheckedChange={(checked) => {\n handleCheckChange?.(item, checked === true);\n }}\n disabled={item.disabled}\n onClick={(e) => e.stopPropagation()}\n className=\"mr-2 h-4 w-4 shrink-0 rounded-sm border border-primary data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground\"\n >\n <CheckboxPrimitive.Indicator className=\"flex items-center justify-center text-current\">\n <Check className=\"h-3 w-3\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n )}\n {showLeafIcon && (\n <TreeIcon\n item={item}\n isSelected={selectedItemId === item.id}\n default={defaultLeafIcon}\n />\n )}\n <span className=\"grow text-sm truncate\">{item.name}</span>\n <TreeActions isSelected={selectedItemId === item.id && !item.disabled}>\n {item.actions}\n </TreeActions>\n </div>\n );\n }\n);\nTreeLeaf.displayName = \"TreeLeaf\";\n\nconst AccordionTrigger = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Header>\n <AccordionPrimitive.Trigger asChild {...props}>\n <div\n ref={ref}\n className={cn(\n \"flex flex-1 w-full items-center py-2 transition-all first:[&[data-state=open]>svg]:first-of-type:rotate-90\",\n className\n )}\n >\n <ChevronRight className=\"h-4 w-4 shrink-0 transition-transform duration-200 text-accent-foreground/50\" />\n {children}\n </div>\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n));\nAccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;\n\nconst AccordionContent = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Content\n ref={ref}\n className={cn(\n \"overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down\",\n className\n )}\n {...props}\n >\n <div className=\"pb-1 pt-0\">{children}</div>\n </AccordionPrimitive.Content>\n));\nAccordionContent.displayName = AccordionPrimitive.Content.displayName;\n\nconst TreeIcon = ({\n item,\n isOpen,\n isSelected,\n default: defaultIcon,\n}: {\n item: TreeDataItem;\n isOpen?: boolean;\n isSelected?: boolean;\n default?: any;\n}) => {\n let Icon = defaultIcon;\n if (isSelected && item.selectedIcon) {\n Icon = item.selectedIcon;\n } else if (isOpen && item.openIcon) {\n Icon = item.openIcon;\n } else if (item.icon) {\n Icon = item.icon;\n }\n return Icon ? <Icon className=\"h-4 w-4 shrink-0 mr-2\" /> : <></>;\n};\n\nconst TreeActions = ({\n children,\n isSelected,\n className,\n}: {\n children: React.ReactNode;\n isSelected: boolean;\n className?: string;\n}) => {\n return (\n <div\n className={cn(\n isSelected ? \"block\" : \"hidden\",\n \"absolute right-3 group-hover:block\",\n className\n )}\n >\n {children}\n </div>\n );\n};\n\nconst IndicatorIcon = ({\n variant,\n isOpen,\n customExpand: CustomExpand,\n customCollapse: CustomCollapse,\n}: {\n variant: \"arrow\" | \"plus-minus\";\n isOpen: boolean;\n customExpand?: React.ElementType;\n customCollapse?: React.ElementType;\n}) => {\n if (CustomExpand && !isOpen) {\n return (\n <CustomExpand className=\"h-4 w-4 shrink-0 transition-transform duration-200 text-accent-foreground/50\" />\n );\n }\n if (CustomCollapse && isOpen) {\n return (\n <CustomCollapse className=\"h-4 w-4 shrink-0 transition-transform duration-200 text-accent-foreground/50\" />\n );\n }\n\n if (variant === \"plus-minus\") {\n return isOpen ? (\n <SquareMinus className=\"h-4 w-4 shrink-0 transition-transform duration-200 text-accent-foreground/50\" />\n ) : (\n <SquarePlus className=\"h-4 w-4 shrink-0 transition-transform duration-200 text-accent-foreground/50\" />\n );\n }\n\n return (\n <ChevronRight className=\"h-4 w-4 shrink-0 transition-transform duration-200 text-accent-foreground/50\" />\n );\n};\n\nexport { TreeView, type TreeDataItem, type TreeViewProps };\n"],"names":["treeVariants","cva","selectedTreeVariants","DEFAULT_SELECTED_IDS","TreeView","React","data","initialSelectedItemId","onSelectChange","expandAll","defaultLeafIcon","defaultNodeIcon","className","multiSelect","selectedIds","onMultiSelectChange","showIcon","showLeafIcon","treeLine","expandOnArrowClick","indicatorVariant","customExpandIcon","customCollapseIcon","props","ref","selectedItemId","setSelectedItemId","checkedIds","setCheckedIds","handleSelectChange","item","handleCheckChange","checked","getAllChildIds","node","ids","child","newCheckedIds","id","uniqueIds","expandedItemIds","collectAllIds","nodes","findPath","targetId","items","cn","jsx","TreeItem","isRoot","index","TreeNode","TreeLeaf","isLastChild","value","setValue","prev","allDescendantIds","getAllDescendantIds","isChecked","isIndeterminate","checkedDescendants","AccordionPrimitive","s","jsxs","e","IndicatorIcon","Fragment","CheckboxPrimitive","Minus","Check","TreeIcon","TreeActions","AccordionContent","AccordionTrigger","children","ChevronRight","isOpen","isSelected","defaultIcon","Icon","variant","CustomExpand","CustomCollapse","SquareMinus","SquarePlus"],"mappings":"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"}
1
+ {"version":3,"file":"tree-view.js","sources":["../../../../../../../../packages/ui/src/components/tree-view.tsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\nimport * as AccordionPrimitive from \"@radix-ui/react-accordion\";\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\";\nimport {\n ChevronRight,\n Check,\n Minus,\n SquarePlus,\n SquareMinus,\n} from \"lucide-react\";\nimport { cva } from \"class-variance-authority\";\nimport { cn } from \"../lib/utils\";\n\nconst treeVariants = cva(\n \"ds:group ds:hover:before:opacity-100 ds:before:absolute ds:before:rounded-lg ds:before:left-0 ds:pr-2 ds:before:w-full ds:before:opacity-0 ds:before:bg-accent/70 ds:before:h-[2rem] ds:before:-z-10\"\n);\n\nconst selectedTreeVariants = cva(\n \"ds:before:opacity-100 ds:before:bg-accent/70 ds:text-accent-foreground\"\n);\n\nconst DEFAULT_SELECTED_IDS: string[] = [];\n\ninterface TreeDataItem {\n id: string;\n name: string;\n icon?: any;\n selectedIcon?: any;\n openIcon?: any;\n children?: TreeDataItem[];\n actions?: React.ReactNode;\n onClick?: () => void;\n disabled?: boolean;\n checked?: boolean;\n indeterminate?: boolean;\n}\n\ninterface TreeViewProps extends React.HTMLAttributes<HTMLDivElement> {\n data: TreeDataItem[] | TreeDataItem;\n initialSelectedItemId?: string;\n onSelectChange?: (item: TreeDataItem | undefined) => void;\n expandAll?: boolean;\n defaultNodeIcon?: any;\n defaultLeafIcon?: any;\n multiSelect?: boolean;\n selectedIds?: string[];\n onMultiSelectChange?: (selectedIds: string[]) => void;\n showIcon?: boolean;\n showLeafIcon?: boolean;\n treeLine?: boolean | \"full\";\n expandOnArrowClick?: boolean;\n indicatorVariant?: \"arrow\" | \"plus-minus\";\n customExpandIcon?: React.ElementType;\n customCollapseIcon?: React.ElementType;\n}\n\nconst TreeView = React.forwardRef<HTMLDivElement, TreeViewProps>(\n (\n {\n data,\n initialSelectedItemId,\n onSelectChange,\n expandAll,\n defaultLeafIcon,\n defaultNodeIcon,\n className,\n multiSelect = false,\n selectedIds = DEFAULT_SELECTED_IDS,\n onMultiSelectChange,\n showIcon = true,\n showLeafIcon = true,\n treeLine = false,\n expandOnArrowClick = false,\n indicatorVariant = \"arrow\",\n customExpandIcon,\n customCollapseIcon,\n ...props\n },\n ref\n ) => {\n const [selectedItemId, setSelectedItemId] = React.useState<\n string | undefined\n >(initialSelectedItemId);\n\n const [checkedIds, setCheckedIds] = React.useState<string[]>(selectedIds);\n\n React.useEffect(() => {\n setCheckedIds(selectedIds);\n }, [selectedIds]);\n\n const handleSelectChange = React.useCallback(\n (item: TreeDataItem | undefined) => {\n setSelectedItemId(item?.id);\n if (onSelectChange) {\n onSelectChange(item);\n }\n },\n [onSelectChange]\n );\n\n const handleCheckChange = React.useCallback(\n (item: TreeDataItem, checked: boolean) => {\n const getAllChildIds = (node: TreeDataItem): string[] => {\n const ids = [node.id];\n if (node.children) {\n node.children.forEach((child) => {\n ids.push(...getAllChildIds(child));\n });\n }\n return ids;\n };\n\n const newCheckedIds = checked\n ? [...checkedIds, ...getAllChildIds(item)]\n : checkedIds.filter((id) => !getAllChildIds(item).includes(id));\n\n const uniqueIds = Array.from(new Set(newCheckedIds));\n setCheckedIds(uniqueIds);\n if (onMultiSelectChange) {\n onMultiSelectChange(uniqueIds);\n }\n },\n [checkedIds, onMultiSelectChange]\n );\n\n const expandedItemIds = React.useMemo(() => {\n const ids: string[] = [];\n\n if (expandAll) {\n const collectAllIds = (nodes: TreeDataItem[] | TreeDataItem) => {\n const items = Array.isArray(nodes) ? nodes : [nodes];\n items.forEach((node) => {\n if (node.children && node.children.length > 0) {\n ids.push(node.id);\n collectAllIds(node.children);\n }\n });\n };\n collectAllIds(data);\n } else if (initialSelectedItemId) {\n const findPath = (\n nodes: TreeDataItem[] | TreeDataItem,\n targetId: string\n ): boolean => {\n const items = Array.isArray(nodes) ? nodes : [nodes];\n for (const node of items) {\n if (node.id === targetId) return true;\n if (node.children) {\n if (findPath(node.children, targetId)) {\n ids.push(node.id);\n return true;\n }\n }\n }\n return false;\n };\n findPath(data, initialSelectedItemId);\n }\n\n return ids;\n }, [data, expandAll, initialSelectedItemId]);\n\n return (\n <div className={cn(\"ds:overflow-hidden ds:relative ds:p-2\", className)}>\n <TreeItem\n data={data}\n ref={ref}\n selectedItemId={selectedItemId}\n handleSelectChange={handleSelectChange}\n expandedItemIds={expandedItemIds}\n defaultLeafIcon={defaultLeafIcon}\n defaultNodeIcon={defaultNodeIcon}\n multiSelect={multiSelect}\n checkedIds={checkedIds}\n handleCheckChange={handleCheckChange}\n showIcon={showIcon}\n showLeafIcon={showLeafIcon}\n treeLine={treeLine}\n expandOnArrowClick={expandOnArrowClick}\n indicatorVariant={indicatorVariant}\n customExpandIcon={customExpandIcon}\n customCollapseIcon={customCollapseIcon}\n isRoot\n {...props}\n />\n </div>\n );\n }\n);\nTreeView.displayName = \"TreeView\";\n\ntype TreeItemProps = TreeViewProps & {\n selectedItemId?: string;\n handleSelectChange: (item: TreeDataItem | undefined) => void;\n expandedItemIds: string[];\n defaultNodeIcon?: any;\n defaultLeafIcon?: any;\n checkedIds?: string[];\n handleCheckChange?: (item: TreeDataItem, checked: boolean) => void;\n showIcon?: boolean;\n showLeafIcon?: boolean;\n treeLine?: boolean | \"full\";\n expandOnArrowClick?: boolean;\n indicatorVariant?: \"arrow\" | \"plus-minus\";\n customExpandIcon?: React.ElementType;\n customCollapseIcon?: React.ElementType;\n isRoot?: boolean;\n};\n\nconst TreeItem = React.forwardRef<HTMLDivElement, TreeItemProps>(\n (\n {\n className,\n data,\n selectedItemId,\n handleSelectChange,\n expandedItemIds,\n defaultNodeIcon,\n defaultLeafIcon,\n multiSelect,\n checkedIds,\n handleCheckChange,\n showIcon,\n showLeafIcon,\n treeLine,\n expandOnArrowClick,\n indicatorVariant,\n customExpandIcon,\n customCollapseIcon,\n isRoot,\n ...props\n },\n ref\n ) => {\n if (!(data instanceof Array)) {\n data = [data];\n }\n return (\n <div ref={ref} role=\"tree\" className={className} {...props}>\n <ul>\n {data.map((item, index) => (\n <li key={item.id} className=\"ds:relative\">\n {item.children ? (\n <TreeNode\n item={item}\n selectedItemId={selectedItemId}\n expandedItemIds={expandedItemIds}\n handleSelectChange={handleSelectChange}\n defaultNodeIcon={defaultNodeIcon}\n defaultLeafIcon={defaultLeafIcon}\n multiSelect={multiSelect}\n checkedIds={checkedIds}\n handleCheckChange={handleCheckChange}\n showIcon={showIcon}\n treeLine={treeLine}\n expandOnArrowClick={expandOnArrowClick}\n indicatorVariant={indicatorVariant}\n customExpandIcon={customExpandIcon}\n customCollapseIcon={customCollapseIcon}\n isLastChild={index === (data as TreeDataItem[]).length - 1}\n isRoot={isRoot}\n />\n ) : (\n <TreeLeaf\n item={item}\n selectedItemId={selectedItemId}\n handleSelectChange={handleSelectChange}\n defaultLeafIcon={defaultLeafIcon}\n multiSelect={multiSelect}\n checkedIds={checkedIds}\n handleCheckChange={handleCheckChange}\n showLeafIcon={showLeafIcon}\n treeLine={treeLine}\n isLastChild={index === (data as TreeDataItem[]).length - 1}\n isRoot={isRoot}\n />\n )}\n </li>\n ))}\n </ul>\n </div>\n );\n }\n);\nTreeItem.displayName = \"TreeItem\";\n\nconst TreeNode = ({\n item,\n handleSelectChange,\n expandedItemIds,\n selectedItemId,\n defaultNodeIcon,\n defaultLeafIcon,\n multiSelect,\n checkedIds = [],\n handleCheckChange,\n showIcon = true,\n treeLine = false,\n expandOnArrowClick = false,\n indicatorVariant = \"arrow\",\n customExpandIcon,\n customCollapseIcon,\n isLastChild,\n isRoot,\n}: {\n item: TreeDataItem;\n handleSelectChange: (item: TreeDataItem | undefined) => void;\n expandedItemIds: string[];\n selectedItemId?: string;\n defaultNodeIcon?: any;\n defaultLeafIcon?: any;\n multiSelect?: boolean;\n checkedIds?: string[];\n handleCheckChange?: (item: TreeDataItem, checked: boolean) => void;\n showIcon?: boolean;\n treeLine?: boolean | \"full\";\n expandOnArrowClick?: boolean;\n indicatorVariant?: \"arrow\" | \"plus-minus\";\n customExpandIcon?: React.ElementType;\n customCollapseIcon?: React.ElementType;\n isLastChild?: boolean;\n isRoot?: boolean;\n}) => {\n const [value, setValue] = React.useState<string[]>(\n expandedItemIds.includes(item.id) ? [item.id] : []\n );\n\n React.useEffect(() => {\n if (expandedItemIds.includes(item.id)) {\n setValue((prev) => (prev.includes(item.id) ? prev : [...prev, item.id]));\n } else {\n setValue((prev) => prev.filter((id) => id !== item.id));\n }\n }, [expandedItemIds, item.id]);\n\n // Get all descendant IDs - memoized separately to avoid recalculation\n const allDescendantIds = React.useMemo(() => {\n const getAllDescendantIds = (node: TreeDataItem): string[] => {\n const ids: string[] = [];\n if (node.children) {\n node.children.forEach((child) => {\n ids.push(child.id);\n ids.push(...getAllDescendantIds(child));\n });\n }\n return ids;\n };\n return item.children ? getAllDescendantIds(item) : [];\n // We only want to recalculate when item structure changes, not on every render\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [item.id]);\n\n // Check if this node is checked\n const isChecked = React.useMemo(() => {\n if (!checkedIds) return false;\n\n // If the node itself is in checkedIds\n if (checkedIds.includes(item.id)) return true;\n\n // If all descendants are checked, consider this node as checked\n if (!item.children || item.children.length === 0) return false;\n if (allDescendantIds.length === 0) return false;\n\n // All descendants must be checked\n return allDescendantIds.every((id) => checkedIds.includes(id));\n // item.children check is done inside allDescendantIds calculation\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [checkedIds, item.id, allDescendantIds]);\n\n const isIndeterminate = React.useMemo(() => {\n if (!multiSelect || !item.children || !checkedIds) return false;\n if (isChecked) return false; // If node is fully checked, not indeterminate\n\n const checkedDescendants = allDescendantIds.filter((id) =>\n checkedIds.includes(id)\n );\n\n // Indeterminate if some (but not all) descendants are checked\n return (\n checkedDescendants.length > 0 &&\n checkedDescendants.length < allDescendantIds.length\n );\n // item.children check is done inside allDescendantIds calculation\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [multiSelect, checkedIds, isChecked, allDescendantIds]);\n\n return (\n <AccordionPrimitive.Root\n type=\"multiple\"\n value={value}\n onValueChange={(s: string[]) => setValue(s)}\n >\n <AccordionPrimitive.Item value={item.id} className=\"ds:relative\">\n {treeLine === \"full\" && (\n <div\n className={cn(\n \"ds:absolute ds:left-[-1.05rem] ds:w-px ds:bg-border\",\n isLastChild ? \"ds:h-5\" : \"ds:h-full\",\n isRoot && \"ds:hidden\"\n )}\n >\n <div className=\"ds:absolute ds:left-0 ds:top-5 ds:w-4 ds:h-px ds:bg-border\" />\n </div>\n )}\n <div\n className={cn(\n \"ds:flex ds:items-center ds:relative\",\n !expandOnArrowClick && treeVariants(),\n !expandOnArrowClick &&\n selectedItemId === item.id &&\n selectedTreeVariants()\n )}\n >\n <AccordionPrimitive.Header className=\"ds:flex ds:items-center ds:w-full\">\n <AccordionPrimitive.Trigger\n asChild\n onClick={(e) => {\n if (expandOnArrowClick) {\n e.stopPropagation();\n }\n }}\n >\n <div\n className={cn(\n \"ds:flex ds:items-center ds:p-2 ds:transition-all ds:gap-1\",\n indicatorVariant === \"arrow\" &&\n !customExpandIcon &&\n !customCollapseIcon &&\n \"ds:[&[data-state=open]>svg:first-of-type]:rotate-90\",\n expandOnArrowClick\n ? \"ds:hover:bg-accent/50 ds:rounded-sm ds:cursor-pointer\"\n : \"ds:flex-1 ds:cursor-pointer\"\n )}\n >\n <IndicatorIcon\n variant={indicatorVariant}\n isOpen={value.includes(item.id)}\n customExpand={customExpandIcon}\n customCollapse={customCollapseIcon}\n />\n {!expandOnArrowClick && (\n <>\n {multiSelect && (\n <CheckboxPrimitive.Root\n checked={\n isChecked\n ? true\n : isIndeterminate\n ? \"indeterminate\"\n : false\n }\n onCheckedChange={(checked) => {\n handleCheckChange?.(item, checked === true);\n }}\n onClick={(e) => e.stopPropagation()}\n className=\"ds:mr-2 ds:h-4 ds:w-4 ds:shrink-0 ds:rounded-sm ds:border ds:border-primary ds:data-[state=checked]:bg-primary ds:data-[state=checked]:text-primary-foreground ds:data-[state=indeterminate]:bg-primary ds:data-[state=indeterminate]:text-primary-foreground\"\n >\n <CheckboxPrimitive.Indicator className=\"ds:flex ds:items-center ds:justify-center ds:text-current\">\n {isIndeterminate ? (\n <Minus className=\"ds:h-3 ds:w-3\" />\n ) : (\n <Check className=\"ds:h-3 ds:w-3\" />\n )}\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n )}\n {showIcon && (\n <TreeIcon\n item={item}\n isSelected={selectedItemId === item.id}\n isOpen={value.includes(item.id)}\n default={defaultNodeIcon}\n />\n )}\n <span className=\"ds:text-sm ds:truncate\">{item.name}</span>\n </>\n )}\n </div>\n </AccordionPrimitive.Trigger>\n {expandOnArrowClick && (\n <div\n className={cn(\n \"ds:flex ds:items-center ds:flex-1 ds:py-2 ds:cursor-pointer\",\n treeVariants(),\n selectedItemId === item.id && selectedTreeVariants()\n )}\n onClick={() => {\n if (!multiSelect) {\n handleSelectChange(item);\n item.onClick?.();\n }\n }}\n >\n {multiSelect && (\n <CheckboxPrimitive.Root\n checked={\n isChecked\n ? true\n : isIndeterminate\n ? \"indeterminate\"\n : false\n }\n onCheckedChange={(checked) => {\n handleCheckChange?.(item, checked === true);\n }}\n onClick={(e) => e.stopPropagation()}\n className=\"ds:mr-2 ds:h-4 ds:w-4 ds:shrink-0 ds:rounded-sm ds:border ds:border-primary ds:data-[state=checked]:bg-primary ds:data-[state=checked]:text-primary-foreground ds:data-[state=indeterminate]:bg-primary ds:data-[state=indeterminate]:text-primary-foreground\"\n >\n <CheckboxPrimitive.Indicator className=\"ds:flex ds:items-center ds:justify-center ds:text-current\">\n {isIndeterminate ? (\n <Minus className=\"ds:h-3 ds:w-3\" />\n ) : (\n <Check className=\"ds:h-3 ds:w-3\" />\n )}\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n )}\n {showIcon && (\n <TreeIcon\n item={item}\n isSelected={selectedItemId === item.id}\n isOpen={value.includes(item.id)}\n default={defaultNodeIcon}\n />\n )}\n <span className=\"ds:text-sm ds:truncate\">{item.name}</span>\n </div>\n )}\n <TreeActions\n isSelected={selectedItemId === item.id}\n className={cn(expandOnArrowClick && \"ds:right-1\")}\n >\n {item.actions}\n </TreeActions>\n </AccordionPrimitive.Header>\n </div>\n <AccordionContent\n className={cn(\n \"ds:ml-4 ds:pl-1\",\n treeLine === true && \"ds:border-l\",\n treeLine === \"full\" && \"ds:pl-2 ds:border-l ds:ml-4\"\n )}\n >\n <TreeItem\n data={item.children ? item.children : item}\n selectedItemId={selectedItemId}\n handleSelectChange={handleSelectChange}\n expandedItemIds={expandedItemIds}\n defaultLeafIcon={defaultLeafIcon}\n defaultNodeIcon={defaultNodeIcon}\n multiSelect={multiSelect}\n checkedIds={checkedIds}\n handleCheckChange={handleCheckChange}\n showIcon={showIcon}\n showLeafIcon={showIcon}\n treeLine={treeLine}\n expandOnArrowClick={expandOnArrowClick}\n indicatorVariant={indicatorVariant}\n customExpandIcon={customExpandIcon}\n customCollapseIcon={customCollapseIcon}\n />\n </AccordionContent>\n </AccordionPrimitive.Item>\n </AccordionPrimitive.Root>\n );\n};\n\nconst TreeLeaf = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & {\n item: TreeDataItem;\n selectedItemId?: string;\n handleSelectChange: (item: TreeDataItem | undefined) => void;\n defaultLeafIcon?: any;\n multiSelect?: boolean;\n checkedIds?: string[];\n handleCheckChange?: (item: TreeDataItem, checked: boolean) => void;\n showLeafIcon?: boolean;\n treeLine?: boolean | \"full\";\n isLastChild?: boolean;\n isRoot?: boolean;\n }\n>(\n (\n {\n className,\n item,\n selectedItemId,\n handleSelectChange,\n defaultLeafIcon,\n multiSelect,\n checkedIds,\n handleCheckChange,\n showLeafIcon = true,\n treeLine = false,\n isLastChild,\n isRoot,\n ...props\n },\n ref\n ) => {\n const isChecked = checkedIds?.includes(item.id);\n\n return (\n <div\n ref={ref}\n className={cn(\n \"ds:ml-5 ds:flex ds:text-left ds:items-center ds:py-2 ds:cursor-pointer ds:before:right-1\",\n treeLine === \"full\" && \"ds:ml-[1.25rem]\",\n treeVariants(),\n className,\n selectedItemId === item.id && selectedTreeVariants(),\n item.disabled && \"ds:opacity-50 ds:cursor-not-allowed ds:pointer-events-none\"\n )}\n onClick={() => {\n if (item.disabled) return;\n if (!multiSelect) {\n handleSelectChange(item);\n item.onClick?.();\n }\n }}\n {...props}\n >\n {treeLine === \"full\" && (\n <div\n className={cn(\n \"ds:absolute ds:left-[-1.05rem] ds:w-px ds:bg-border\",\n isLastChild ? \"ds:h-1/2\" : \"ds:h-full\",\n isRoot && \"ds:hidden\"\n )}\n >\n <div className=\"ds:absolute ds:left-0 ds:top-1/2 ds:w-4 ds:h-px ds:bg-border\" />\n </div>\n )}\n {multiSelect && (\n <CheckboxPrimitive.Root\n checked={isChecked}\n onCheckedChange={(checked) => {\n handleCheckChange?.(item, checked === true);\n }}\n disabled={item.disabled}\n onClick={(e) => e.stopPropagation()}\n className=\"ds:mr-2 ds:h-4 ds:w-4 ds:shrink-0 ds:rounded-sm ds:border ds:border-primary ds:data-[state=checked]:bg-primary ds:data-[state=checked]:text-primary-foreground\"\n >\n <CheckboxPrimitive.Indicator className=\"ds:flex ds:items-center ds:justify-center ds:text-current\">\n <Check className=\"ds:h-3 ds:w-3\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n )}\n {showLeafIcon && (\n <TreeIcon\n item={item}\n isSelected={selectedItemId === item.id}\n default={defaultLeafIcon}\n />\n )}\n <span className=\"ds:grow ds:text-sm ds:truncate\">{item.name}</span>\n <TreeActions isSelected={selectedItemId === item.id && !item.disabled}>\n {item.actions}\n </TreeActions>\n </div>\n );\n }\n);\nTreeLeaf.displayName = \"TreeLeaf\";\n\nconst AccordionTrigger = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Header>\n <AccordionPrimitive.Trigger asChild {...props}>\n <div\n ref={ref}\n className={cn(\n \"ds:flex ds:flex-1 ds:w-full ds:items-center ds:py-2 ds:transition-all ds:first:[&[data-state=open]>svg]:first-of-type:rotate-90\",\n className\n )}\n >\n <ChevronRight className=\"ds:h-4 ds:w-4 ds:shrink-0 ds:transition-transform ds:duration-200 ds:text-accent-foreground/50\" />\n {children}\n </div>\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n));\nAccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;\n\nconst AccordionContent = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Content\n ref={ref}\n className={cn(\n \"ds:overflow-hidden ds:text-sm ds:transition-all ds:data-[state=closed]:animate-accordion-up ds:data-[state=open]:animate-accordion-down\",\n className\n )}\n {...props}\n >\n <div className=\"ds:pb-1 ds:pt-0\">{children}</div>\n </AccordionPrimitive.Content>\n));\nAccordionContent.displayName = AccordionPrimitive.Content.displayName;\n\nconst TreeIcon = ({\n item,\n isOpen,\n isSelected,\n default: defaultIcon,\n}: {\n item: TreeDataItem;\n isOpen?: boolean;\n isSelected?: boolean;\n default?: any;\n}) => {\n let Icon = defaultIcon;\n if (isSelected && item.selectedIcon) {\n Icon = item.selectedIcon;\n } else if (isOpen && item.openIcon) {\n Icon = item.openIcon;\n } else if (item.icon) {\n Icon = item.icon;\n }\n return Icon ? <Icon className=\"ds:h-4 ds:w-4 ds:shrink-0 ds:mr-2\" /> : <></>;\n};\n\nconst TreeActions = ({\n children,\n isSelected,\n className,\n}: {\n children: React.ReactNode;\n isSelected: boolean;\n className?: string;\n}) => {\n return (\n <div\n className={cn(\n isSelected ? \"ds:block\" : \"ds:hidden\",\n \"ds:absolute ds:right-3 ds:group-hover:block\",\n className\n )}\n >\n {children}\n </div>\n );\n};\n\nconst IndicatorIcon = ({\n variant,\n isOpen,\n customExpand: CustomExpand,\n customCollapse: CustomCollapse,\n}: {\n variant: \"arrow\" | \"plus-minus\";\n isOpen: boolean;\n customExpand?: React.ElementType;\n customCollapse?: React.ElementType;\n}) => {\n if (CustomExpand && !isOpen) {\n return (\n <CustomExpand className=\"ds:h-4 ds:w-4 ds:shrink-0 ds:transition-transform ds:duration-200 ds:text-accent-foreground/50\" />\n );\n }\n if (CustomCollapse && isOpen) {\n return (\n <CustomCollapse className=\"ds:h-4 ds:w-4 ds:shrink-0 ds:transition-transform ds:duration-200 ds:text-accent-foreground/50\" />\n );\n }\n\n if (variant === \"plus-minus\") {\n return isOpen ? (\n <SquareMinus className=\"ds:h-4 ds:w-4 ds:shrink-0 ds:transition-transform ds:duration-200 ds:text-accent-foreground/50\" />\n ) : (\n <SquarePlus className=\"ds:h-4 ds:w-4 ds:shrink-0 ds:transition-transform ds:duration-200 ds:text-accent-foreground/50\" />\n );\n }\n\n return (\n <ChevronRight className=\"ds:h-4 ds:w-4 ds:shrink-0 ds:transition-transform ds:duration-200 ds:text-accent-foreground/50\" />\n );\n};\n\nexport { TreeView, type TreeDataItem, type TreeViewProps };\n"],"names":["treeVariants","cva","selectedTreeVariants","DEFAULT_SELECTED_IDS","TreeView","React","data","initialSelectedItemId","onSelectChange","expandAll","defaultLeafIcon","defaultNodeIcon","className","multiSelect","selectedIds","onMultiSelectChange","showIcon","showLeafIcon","treeLine","expandOnArrowClick","indicatorVariant","customExpandIcon","customCollapseIcon","props","ref","selectedItemId","setSelectedItemId","checkedIds","setCheckedIds","handleSelectChange","item","handleCheckChange","checked","getAllChildIds","node","ids","child","newCheckedIds","id","uniqueIds","expandedItemIds","collectAllIds","nodes","findPath","targetId","items","cn","jsx","TreeItem","isRoot","index","TreeNode","TreeLeaf","isLastChild","value","setValue","prev","allDescendantIds","getAllDescendantIds","isChecked","isIndeterminate","checkedDescendants","AccordionPrimitive","s","jsxs","e","IndicatorIcon","Fragment","CheckboxPrimitive","Minus","Check","TreeIcon","TreeActions","AccordionContent","AccordionTrigger","children","ChevronRight","isOpen","isSelected","defaultIcon","Icon","variant","CustomExpand","CustomCollapse","SquareMinus","SquarePlus"],"mappings":"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"}