@sth87/shadcn-design-system 0.0.36 → 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 (420) hide show
  1. package/dist/AI_CONTEXT.md +212 -214
  2. package/dist/cjs/components/Accordion/Accordion.cjs +1 -1
  3. package/dist/cjs/components/Accordion/Accordion.cjs.map +1 -1
  4. package/dist/cjs/components/Avatar/Avatar.cjs +1 -1
  5. package/dist/cjs/components/Avatar/Avatar.cjs.map +1 -1
  6. package/dist/cjs/components/Badge/Badge.cjs +1 -1
  7. package/dist/cjs/components/Badge/Badge.cjs.map +1 -1
  8. package/dist/cjs/components/Breadcrumb/Breadcrumb.cjs +1 -1
  9. package/dist/cjs/components/Breadcrumb/Breadcrumb.cjs.map +1 -1
  10. package/dist/cjs/components/Button/Button.cjs +1 -1
  11. package/dist/cjs/components/Button/Button.cjs.map +1 -1
  12. package/dist/cjs/components/Calendar/Calendar.cjs +1 -1
  13. package/dist/cjs/components/Calendar/Calendar.cjs.map +1 -1
  14. package/dist/cjs/components/Carousel/Carousel.cjs +1 -1
  15. package/dist/cjs/components/Carousel/Carousel.cjs.map +1 -1
  16. package/dist/cjs/components/Checkbox/Checkbox.cjs +1 -1
  17. package/dist/cjs/components/Checkbox/Checkbox.cjs.map +1 -1
  18. package/dist/cjs/components/Collapsible/Collapsible.cjs +1 -1
  19. package/dist/cjs/components/Collapsible/Collapsible.cjs.map +1 -1
  20. package/dist/cjs/components/Command/Command.cjs +1 -1
  21. package/dist/cjs/components/Command/Command.cjs.map +1 -1
  22. package/dist/cjs/components/ContextMenu/ContextMenu.cjs +1 -1
  23. package/dist/cjs/components/ContextMenu/ContextMenu.cjs.map +1 -1
  24. package/dist/cjs/components/Cropper/Cropper.cjs +1 -1
  25. package/dist/cjs/components/Cropper/Cropper.cjs.map +1 -1
  26. package/dist/cjs/components/DatePicker/DatePicker.cjs +1 -1
  27. package/dist/cjs/components/DatePicker/DatePicker.cjs.map +1 -1
  28. package/dist/cjs/components/DatePicker/RangePicker.cjs +1 -1
  29. package/dist/cjs/components/DatePicker/RangePicker.cjs.map +1 -1
  30. package/dist/cjs/components/DatePicker/TimePicker.cjs +1 -1
  31. package/dist/cjs/components/DatePicker/TimePicker.cjs.map +1 -1
  32. package/dist/cjs/components/Dialog/Dialog.cjs +1 -1
  33. package/dist/cjs/components/Dialog/Dialog.cjs.map +1 -1
  34. package/dist/cjs/components/DropdownMenu/DropdownMenu.cjs +1 -1
  35. package/dist/cjs/components/DropdownMenu/DropdownMenu.cjs.map +1 -1
  36. package/dist/cjs/components/FloatLabel.cjs +1 -1
  37. package/dist/cjs/components/FloatLabel.cjs.map +1 -1
  38. package/dist/cjs/components/Glass/Glass.cjs +1 -1
  39. package/dist/cjs/components/Glass/Glass.cjs.map +1 -1
  40. package/dist/cjs/components/ImageViewer/ImageViewer.cjs +1 -1
  41. package/dist/cjs/components/ImageViewer/ImageViewer.cjs.map +1 -1
  42. package/dist/cjs/components/Input/Input.cjs +1 -1
  43. package/dist/cjs/components/Input/Input.cjs.map +1 -1
  44. package/dist/cjs/components/InputOTP/InputOTP.cjs +1 -1
  45. package/dist/cjs/components/InputOTP/InputOTP.cjs.map +1 -1
  46. package/dist/cjs/components/Interactive/CursorFollow.cjs +1 -1
  47. package/dist/cjs/components/Interactive/CursorFollow.cjs.map +1 -1
  48. package/dist/cjs/components/Marquee/Marquee.cjs +1 -1
  49. package/dist/cjs/components/Marquee/Marquee.cjs.map +1 -1
  50. package/dist/cjs/components/Pagination/Pagination.cjs +1 -1
  51. package/dist/cjs/components/Pagination/Pagination.cjs.map +1 -1
  52. package/dist/cjs/components/QrCode/QrCode.cjs +1 -1
  53. package/dist/cjs/components/QrCode/QrCode.cjs.map +1 -1
  54. package/dist/cjs/components/Radio/Radio.cjs +1 -1
  55. package/dist/cjs/components/Radio/Radio.cjs.map +1 -1
  56. package/dist/cjs/components/Rate/Rate.cjs +1 -1
  57. package/dist/cjs/components/Rate/Rate.cjs.map +1 -1
  58. package/dist/cjs/components/Resizable/Resizable.cjs +1 -1
  59. package/dist/cjs/components/Resizable/Resizable.cjs.map +1 -1
  60. package/dist/cjs/components/ScrollArea/ScrollArea.cjs +1 -1
  61. package/dist/cjs/components/ScrollArea/ScrollArea.cjs.map +1 -1
  62. package/dist/cjs/components/Select/Select.cjs +1 -1
  63. package/dist/cjs/components/Select/Select.cjs.map +1 -1
  64. package/dist/cjs/components/Sheet/Sheet.cjs +2 -2
  65. package/dist/cjs/components/Sheet/Sheet.cjs.map +1 -1
  66. package/dist/cjs/components/Slider/Slider.cjs +1 -1
  67. package/dist/cjs/components/Slider/Slider.cjs.map +1 -1
  68. package/dist/cjs/components/Stepper/Stepper.cjs +1 -1
  69. package/dist/cjs/components/Stepper/Stepper.cjs.map +1 -1
  70. package/dist/cjs/components/Stepper/StepperWrapper.cjs +1 -1
  71. package/dist/cjs/components/Stepper/StepperWrapper.cjs.map +1 -1
  72. package/dist/cjs/components/Switch/Switch.cjs +1 -1
  73. package/dist/cjs/components/Switch/Switch.cjs.map +1 -1
  74. package/dist/cjs/components/Table/TableFilter/data-table-date-filter.cjs +1 -1
  75. package/dist/cjs/components/Table/TableFilter/data-table-date-filter.cjs.map +1 -1
  76. package/dist/cjs/components/Table/TableFilter/data-table-filter-popover.cjs +1 -1
  77. package/dist/cjs/components/Table/TableFilter/data-table-filter-popover.cjs.map +1 -1
  78. package/dist/cjs/components/Table/TableFilter/data-table-slider-filter.cjs +1 -1
  79. package/dist/cjs/components/Table/TableFilter/data-table-slider-filter.cjs.map +1 -1
  80. package/dist/cjs/components/Table/data-table-column-header.cjs +1 -1
  81. package/dist/cjs/components/Table/data-table-column-header.cjs.map +1 -1
  82. package/dist/cjs/components/Table/data-table-pagination.cjs +1 -1
  83. package/dist/cjs/components/Table/data-table-pagination.cjs.map +1 -1
  84. package/dist/cjs/components/Table/data-table.cjs +1 -1
  85. package/dist/cjs/components/Table/data-table.cjs.map +1 -1
  86. package/dist/cjs/components/Tabs/Tabs.cjs +1 -1
  87. package/dist/cjs/components/Tabs/Tabs.cjs.map +1 -1
  88. package/dist/cjs/components/Tabs/classes.cjs +1 -1
  89. package/dist/cjs/components/Tabs/classes.cjs.map +1 -1
  90. package/dist/cjs/components/Textarea/Textarea.cjs +1 -1
  91. package/dist/cjs/components/Textarea/Textarea.cjs.map +1 -1
  92. package/dist/cjs/components/TimeGridView.cjs +1 -1
  93. package/dist/cjs/components/TimeGridView.cjs.map +1 -1
  94. package/dist/cjs/components/Toast/Toast.cjs +1 -1
  95. package/dist/cjs/components/Toast/Toast.cjs.map +1 -1
  96. package/dist/cjs/components/Tooltip/Tooltip.cjs +1 -1
  97. package/dist/cjs/components/Tooltip/Tooltip.cjs.map +1 -1
  98. package/dist/cjs/components/Tour/Tour.cjs +1 -1
  99. package/dist/cjs/components/Tour/Tour.cjs.map +1 -1
  100. package/dist/cjs/components/Tour/TourWrapper.cjs +1 -1
  101. package/dist/cjs/components/Tour/TourWrapper.cjs.map +1 -1
  102. package/dist/cjs/components/Upload/Upload.cjs +3 -3
  103. package/dist/cjs/components/Upload/Upload.cjs.map +1 -1
  104. package/dist/cjs/components/WheelColumn.cjs +1 -1
  105. package/dist/cjs/components/WheelColumn.cjs.map +1 -1
  106. package/dist/cjs/lib/TextAnimation/BlurText.cjs +1 -1
  107. package/dist/cjs/lib/TextAnimation/BlurText.cjs.map +1 -1
  108. package/dist/cjs/lib/TextAnimation/CircularText.cjs +1 -1
  109. package/dist/cjs/lib/TextAnimation/CircularText.cjs.map +1 -1
  110. package/dist/cjs/lib/TextAnimation/FlipWords.cjs +1 -1
  111. package/dist/cjs/lib/TextAnimation/FlipWords.cjs.map +1 -1
  112. package/dist/cjs/lib/TextAnimation/GradientText.cjs +1 -1
  113. package/dist/cjs/lib/TextAnimation/GradientText.cjs.map +1 -1
  114. package/dist/cjs/lib/TextAnimation/RollingText.cjs +1 -1
  115. package/dist/cjs/lib/TextAnimation/RollingText.cjs.map +1 -1
  116. package/dist/cjs/lib/TextAnimation/RotatingText.cjs +1 -1
  117. package/dist/cjs/lib/TextAnimation/RotatingText.cjs.map +1 -1
  118. package/dist/cjs/lib/TextAnimation/ShimmeringText.cjs +1 -1
  119. package/dist/cjs/lib/TextAnimation/ShimmeringText.cjs.map +1 -1
  120. package/dist/cjs/lib/TextAnimation/TextGenerateEffect.cjs +1 -1
  121. package/dist/cjs/lib/TextAnimation/TextGenerateEffect.cjs.map +1 -1
  122. package/dist/cjs/lib/TextAnimation/TextHoverEffect.cjs +1 -1
  123. package/dist/cjs/lib/TextAnimation/TextHoverEffect.cjs.map +1 -1
  124. package/dist/cjs/lib/TextAnimation/TextPressureEffect.cjs +2 -2
  125. package/dist/cjs/lib/TextAnimation/TextPressureEffect.cjs.map +1 -1
  126. package/dist/cjs/lib/TextAnimation/TypingText.cjs +1 -1
  127. package/dist/cjs/lib/TextAnimation/TypingText.cjs.map +1 -1
  128. package/dist/cjs/lib/TextAnimation/WritingText.cjs +1 -1
  129. package/dist/cjs/lib/TextAnimation/WritingText.cjs.map +1 -1
  130. 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
  131. package/dist/cjs/packages/ui/src/components/accordion.cjs +1 -1
  132. package/dist/cjs/packages/ui/src/components/accordion.cjs.map +1 -1
  133. package/dist/cjs/packages/ui/src/components/alert-dialog.cjs +1 -1
  134. package/dist/cjs/packages/ui/src/components/alert-dialog.cjs.map +1 -1
  135. package/dist/cjs/packages/ui/src/components/avatar.cjs +1 -1
  136. package/dist/cjs/packages/ui/src/components/avatar.cjs.map +1 -1
  137. package/dist/cjs/packages/ui/src/components/badge.cjs +1 -1
  138. package/dist/cjs/packages/ui/src/components/badge.cjs.map +1 -1
  139. package/dist/cjs/packages/ui/src/components/breadcrumb.cjs +1 -1
  140. package/dist/cjs/packages/ui/src/components/breadcrumb.cjs.map +1 -1
  141. package/dist/cjs/packages/ui/src/components/button-group.cjs +1 -1
  142. package/dist/cjs/packages/ui/src/components/button-group.cjs.map +1 -1
  143. package/dist/cjs/packages/ui/src/components/button.cjs +1 -1
  144. package/dist/cjs/packages/ui/src/components/button.cjs.map +1 -1
  145. package/dist/cjs/packages/ui/src/components/calendar.cjs +1 -1
  146. package/dist/cjs/packages/ui/src/components/calendar.cjs.map +1 -1
  147. package/dist/cjs/packages/ui/src/components/checkbox.cjs +1 -1
  148. package/dist/cjs/packages/ui/src/components/checkbox.cjs.map +1 -1
  149. package/dist/cjs/packages/ui/src/components/combobox.cjs +1 -1
  150. package/dist/cjs/packages/ui/src/components/combobox.cjs.map +1 -1
  151. package/dist/cjs/packages/ui/src/components/command.cjs +1 -1
  152. package/dist/cjs/packages/ui/src/components/command.cjs.map +1 -1
  153. package/dist/cjs/packages/ui/src/components/context-menu.cjs +1 -1
  154. package/dist/cjs/packages/ui/src/components/context-menu.cjs.map +1 -1
  155. package/dist/cjs/packages/ui/src/components/dialog.cjs +1 -1
  156. package/dist/cjs/packages/ui/src/components/dialog.cjs.map +1 -1
  157. package/dist/cjs/packages/ui/src/components/drawer.cjs +1 -1
  158. package/dist/cjs/packages/ui/src/components/drawer.cjs.map +1 -1
  159. package/dist/cjs/packages/ui/src/components/dropdown-menu.cjs +1 -1
  160. package/dist/cjs/packages/ui/src/components/dropdown-menu.cjs.map +1 -1
  161. package/dist/cjs/packages/ui/src/components/input-otp.cjs +1 -1
  162. package/dist/cjs/packages/ui/src/components/input-otp.cjs.map +1 -1
  163. package/dist/cjs/packages/ui/src/components/input.cjs +1 -1
  164. package/dist/cjs/packages/ui/src/components/input.cjs.map +1 -1
  165. package/dist/cjs/packages/ui/src/components/label.cjs +1 -1
  166. package/dist/cjs/packages/ui/src/components/label.cjs.map +1 -1
  167. package/dist/cjs/packages/ui/src/components/pagination.cjs +1 -1
  168. package/dist/cjs/packages/ui/src/components/pagination.cjs.map +1 -1
  169. package/dist/cjs/packages/ui/src/components/popover.cjs +1 -1
  170. package/dist/cjs/packages/ui/src/components/popover.cjs.map +1 -1
  171. package/dist/cjs/packages/ui/src/components/radio-group.cjs +1 -1
  172. package/dist/cjs/packages/ui/src/components/radio-group.cjs.map +1 -1
  173. package/dist/cjs/packages/ui/src/components/resizable.cjs +1 -1
  174. package/dist/cjs/packages/ui/src/components/resizable.cjs.map +1 -1
  175. package/dist/cjs/packages/ui/src/components/scroll-area.cjs +1 -1
  176. package/dist/cjs/packages/ui/src/components/scroll-area.cjs.map +1 -1
  177. package/dist/cjs/packages/ui/src/components/select.cjs +1 -1
  178. package/dist/cjs/packages/ui/src/components/select.cjs.map +1 -1
  179. package/dist/cjs/packages/ui/src/components/separator.cjs +1 -1
  180. package/dist/cjs/packages/ui/src/components/separator.cjs.map +1 -1
  181. package/dist/cjs/packages/ui/src/components/sheet.cjs +1 -1
  182. package/dist/cjs/packages/ui/src/components/sheet.cjs.map +1 -1
  183. package/dist/cjs/packages/ui/src/components/sidebar.cjs +1 -1
  184. package/dist/cjs/packages/ui/src/components/sidebar.cjs.map +1 -1
  185. package/dist/cjs/packages/ui/src/components/skeleton.cjs +1 -1
  186. package/dist/cjs/packages/ui/src/components/skeleton.cjs.map +1 -1
  187. package/dist/cjs/packages/ui/src/components/switch.cjs +1 -1
  188. package/dist/cjs/packages/ui/src/components/switch.cjs.map +1 -1
  189. package/dist/cjs/packages/ui/src/components/table.cjs +1 -1
  190. package/dist/cjs/packages/ui/src/components/table.cjs.map +1 -1
  191. package/dist/cjs/packages/ui/src/components/tabs.cjs +1 -1
  192. package/dist/cjs/packages/ui/src/components/tabs.cjs.map +1 -1
  193. package/dist/cjs/packages/ui/src/components/textarea.cjs +1 -1
  194. package/dist/cjs/packages/ui/src/components/textarea.cjs.map +1 -1
  195. package/dist/cjs/packages/ui/src/components/toggle.cjs +1 -1
  196. package/dist/cjs/packages/ui/src/components/toggle.cjs.map +1 -1
  197. package/dist/cjs/packages/ui/src/components/tooltip.cjs +1 -1
  198. package/dist/cjs/packages/ui/src/components/tooltip.cjs.map +1 -1
  199. package/dist/cjs/packages/ui/src/components/tree-view.cjs +1 -1
  200. package/dist/cjs/packages/ui/src/components/tree-view.cjs.map +1 -1
  201. package/dist/cjs/styles/index.css +1 -1
  202. package/dist/cjs/utils/animations.cjs +1 -1
  203. package/dist/cjs/utils/animations.cjs.map +1 -1
  204. package/dist/cjs/utils/css.cjs +1 -1
  205. package/dist/cjs/utils/css.cjs.map +1 -1
  206. package/dist/cjs/utils/parsers.cjs +1 -1
  207. package/dist/cjs/utils/parsers.cjs.map +1 -1
  208. package/dist/esm/components/Accordion/Accordion.js +60 -60
  209. package/dist/esm/components/Accordion/Accordion.js.map +1 -1
  210. package/dist/esm/components/Avatar/Avatar.js +40 -40
  211. package/dist/esm/components/Avatar/Avatar.js.map +1 -1
  212. package/dist/esm/components/Badge/Badge.js +1 -1
  213. package/dist/esm/components/Badge/Badge.js.map +1 -1
  214. package/dist/esm/components/Breadcrumb/Breadcrumb.js +36 -36
  215. package/dist/esm/components/Breadcrumb/Breadcrumb.js.map +1 -1
  216. package/dist/esm/components/Button/Button.js +9 -9
  217. package/dist/esm/components/Button/Button.js.map +1 -1
  218. package/dist/esm/components/Calendar/Calendar.js +4 -4
  219. package/dist/esm/components/Calendar/Calendar.js.map +1 -1
  220. package/dist/esm/components/Carousel/Carousel.js +165 -165
  221. package/dist/esm/components/Carousel/Carousel.js.map +1 -1
  222. package/dist/esm/components/Checkbox/Checkbox.js +26 -26
  223. package/dist/esm/components/Checkbox/Checkbox.js.map +1 -1
  224. package/dist/esm/components/Collapsible/Collapsible.js +43 -43
  225. package/dist/esm/components/Collapsible/Collapsible.js.map +1 -1
  226. package/dist/esm/components/Command/Command.js +28 -28
  227. package/dist/esm/components/Command/Command.js.map +1 -1
  228. package/dist/esm/components/ContextMenu/ContextMenu.js +11 -11
  229. package/dist/esm/components/ContextMenu/ContextMenu.js.map +1 -1
  230. package/dist/esm/components/Cropper/Cropper.js +132 -132
  231. package/dist/esm/components/Cropper/Cropper.js.map +1 -1
  232. package/dist/esm/components/DatePicker/DatePicker.js +75 -75
  233. package/dist/esm/components/DatePicker/DatePicker.js.map +1 -1
  234. package/dist/esm/components/DatePicker/RangePicker.js +136 -136
  235. package/dist/esm/components/DatePicker/RangePicker.js.map +1 -1
  236. package/dist/esm/components/DatePicker/TimePicker.js +150 -150
  237. package/dist/esm/components/DatePicker/TimePicker.js.map +1 -1
  238. package/dist/esm/components/Dialog/Dialog.js +114 -114
  239. package/dist/esm/components/Dialog/Dialog.js.map +1 -1
  240. package/dist/esm/components/DropdownMenu/DropdownMenu.js +13 -13
  241. package/dist/esm/components/DropdownMenu/DropdownMenu.js.map +1 -1
  242. package/dist/esm/components/FloatLabel.js +44 -44
  243. package/dist/esm/components/FloatLabel.js.map +1 -1
  244. package/dist/esm/components/Glass/Glass.js +15 -15
  245. package/dist/esm/components/Glass/Glass.js.map +1 -1
  246. package/dist/esm/components/ImageViewer/ImageViewer.js +53 -53
  247. package/dist/esm/components/ImageViewer/ImageViewer.js.map +1 -1
  248. package/dist/esm/components/Input/Input.js +104 -104
  249. package/dist/esm/components/Input/Input.js.map +1 -1
  250. package/dist/esm/components/InputOTP/InputOTP.js +16 -16
  251. package/dist/esm/components/InputOTP/InputOTP.js.map +1 -1
  252. package/dist/esm/components/Interactive/CursorFollow.js +49 -49
  253. package/dist/esm/components/Interactive/CursorFollow.js.map +1 -1
  254. package/dist/esm/components/Marquee/Marquee.js +130 -130
  255. package/dist/esm/components/Marquee/Marquee.js.map +1 -1
  256. package/dist/esm/components/Pagination/Pagination.js +68 -68
  257. package/dist/esm/components/Pagination/Pagination.js.map +1 -1
  258. package/dist/esm/components/QrCode/QrCode.js +37 -37
  259. package/dist/esm/components/QrCode/QrCode.js.map +1 -1
  260. package/dist/esm/components/Radio/Radio.js +16 -16
  261. package/dist/esm/components/Radio/Radio.js.map +1 -1
  262. package/dist/esm/components/Rate/Rate.js +62 -62
  263. package/dist/esm/components/Rate/Rate.js.map +1 -1
  264. package/dist/esm/components/Resizable/Resizable.js +6 -6
  265. package/dist/esm/components/Resizable/Resizable.js.map +1 -1
  266. package/dist/esm/components/ScrollArea/ScrollArea.js +10 -10
  267. package/dist/esm/components/ScrollArea/ScrollArea.js.map +1 -1
  268. package/dist/esm/components/Select/Select.js +64 -64
  269. package/dist/esm/components/Select/Select.js.map +1 -1
  270. package/dist/esm/components/Sheet/Sheet.js +21 -21
  271. package/dist/esm/components/Sheet/Sheet.js.map +1 -1
  272. package/dist/esm/components/Slider/Slider.js +54 -54
  273. package/dist/esm/components/Slider/Slider.js.map +1 -1
  274. package/dist/esm/components/Stepper/Stepper.js +198 -198
  275. package/dist/esm/components/Stepper/Stepper.js.map +1 -1
  276. package/dist/esm/components/Stepper/StepperWrapper.js +15 -15
  277. package/dist/esm/components/Stepper/StepperWrapper.js.map +1 -1
  278. package/dist/esm/components/Switch/Switch.js +38 -38
  279. package/dist/esm/components/Switch/Switch.js.map +1 -1
  280. package/dist/esm/components/Table/TableFilter/data-table-date-filter.js +37 -37
  281. package/dist/esm/components/Table/TableFilter/data-table-date-filter.js.map +1 -1
  282. package/dist/esm/components/Table/TableFilter/data-table-filter-popover.js +25 -25
  283. package/dist/esm/components/Table/TableFilter/data-table-filter-popover.js.map +1 -1
  284. package/dist/esm/components/Table/TableFilter/data-table-slider-filter.js +64 -64
  285. package/dist/esm/components/Table/TableFilter/data-table-slider-filter.js.map +1 -1
  286. package/dist/esm/components/Table/data-table-column-header.js +18 -18
  287. package/dist/esm/components/Table/data-table-column-header.js.map +1 -1
  288. package/dist/esm/components/Table/data-table-pagination.js +21 -21
  289. package/dist/esm/components/Table/data-table-pagination.js.map +1 -1
  290. package/dist/esm/components/Table/data-table.js +18 -18
  291. package/dist/esm/components/Table/data-table.js.map +1 -1
  292. package/dist/esm/components/Tabs/Tabs.js +242 -242
  293. package/dist/esm/components/Tabs/Tabs.js.map +1 -1
  294. package/dist/esm/components/Tabs/classes.js +51 -51
  295. package/dist/esm/components/Tabs/classes.js.map +1 -1
  296. package/dist/esm/components/Textarea/Textarea.js +49 -49
  297. package/dist/esm/components/Textarea/Textarea.js.map +1 -1
  298. package/dist/esm/components/TimeGridView.js +12 -12
  299. package/dist/esm/components/TimeGridView.js.map +1 -1
  300. package/dist/esm/components/Toast/Toast.js +45 -45
  301. package/dist/esm/components/Toast/Toast.js.map +1 -1
  302. package/dist/esm/components/Tooltip/Tooltip.js +19 -19
  303. package/dist/esm/components/Tooltip/Tooltip.js.map +1 -1
  304. package/dist/esm/components/Tour/Tour.js +11 -11
  305. package/dist/esm/components/Tour/Tour.js.map +1 -1
  306. package/dist/esm/components/Tour/TourWrapper.js +15 -15
  307. package/dist/esm/components/Tour/TourWrapper.js.map +1 -1
  308. package/dist/esm/components/Upload/Upload.js +405 -405
  309. package/dist/esm/components/Upload/Upload.js.map +1 -1
  310. package/dist/esm/components/WheelColumn.js +47 -47
  311. package/dist/esm/components/WheelColumn.js.map +1 -1
  312. package/dist/esm/lib/TextAnimation/BlurText.js +18 -18
  313. package/dist/esm/lib/TextAnimation/BlurText.js.map +1 -1
  314. package/dist/esm/lib/TextAnimation/CircularText.js +7 -7
  315. package/dist/esm/lib/TextAnimation/CircularText.js.map +1 -1
  316. package/dist/esm/lib/TextAnimation/FlipWords.js +21 -21
  317. package/dist/esm/lib/TextAnimation/FlipWords.js.map +1 -1
  318. package/dist/esm/lib/TextAnimation/GradientText.js +4 -4
  319. package/dist/esm/lib/TextAnimation/GradientText.js.map +1 -1
  320. package/dist/esm/lib/TextAnimation/RollingText.js +24 -24
  321. package/dist/esm/lib/TextAnimation/RollingText.js.map +1 -1
  322. package/dist/esm/lib/TextAnimation/RotatingText.js +6 -6
  323. package/dist/esm/lib/TextAnimation/RotatingText.js.map +1 -1
  324. package/dist/esm/lib/TextAnimation/ShimmeringText.js +9 -9
  325. package/dist/esm/lib/TextAnimation/ShimmeringText.js.map +1 -1
  326. package/dist/esm/lib/TextAnimation/TextGenerateEffect.js +14 -14
  327. package/dist/esm/lib/TextAnimation/TextGenerateEffect.js.map +1 -1
  328. package/dist/esm/lib/TextAnimation/TextHoverEffect.js +9 -9
  329. package/dist/esm/lib/TextAnimation/TextHoverEffect.js.map +1 -1
  330. package/dist/esm/lib/TextAnimation/TextPressureEffect.js +3 -3
  331. package/dist/esm/lib/TextAnimation/TextPressureEffect.js.map +1 -1
  332. package/dist/esm/lib/TextAnimation/TypingText.js +17 -17
  333. package/dist/esm/lib/TextAnimation/TypingText.js.map +1 -1
  334. package/dist/esm/lib/TextAnimation/WritingText.js +10 -10
  335. package/dist/esm/lib/TextAnimation/WritingText.js.map +1 -1
  336. 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
  337. package/dist/esm/packages/ui/src/components/accordion.js +31 -31
  338. package/dist/esm/packages/ui/src/components/accordion.js.map +1 -1
  339. package/dist/esm/packages/ui/src/components/alert-dialog.js +33 -33
  340. package/dist/esm/packages/ui/src/components/alert-dialog.js.map +1 -1
  341. package/dist/esm/packages/ui/src/components/avatar.js +20 -20
  342. package/dist/esm/packages/ui/src/components/avatar.js.map +1 -1
  343. package/dist/esm/packages/ui/src/components/badge.js +53 -53
  344. package/dist/esm/packages/ui/src/components/badge.js.map +1 -1
  345. package/dist/esm/packages/ui/src/components/breadcrumb.js +20 -20
  346. package/dist/esm/packages/ui/src/components/breadcrumb.js.map +1 -1
  347. package/dist/esm/packages/ui/src/components/button-group.js +31 -31
  348. package/dist/esm/packages/ui/src/components/button-group.js.map +1 -1
  349. package/dist/esm/packages/ui/src/components/button.js +90 -90
  350. package/dist/esm/packages/ui/src/components/button.js.map +1 -1
  351. package/dist/esm/packages/ui/src/components/calendar.js +94 -94
  352. package/dist/esm/packages/ui/src/components/calendar.js.map +1 -1
  353. package/dist/esm/packages/ui/src/components/checkbox.js +47 -47
  354. package/dist/esm/packages/ui/src/components/checkbox.js.map +1 -1
  355. package/dist/esm/packages/ui/src/components/combobox.js +64 -64
  356. package/dist/esm/packages/ui/src/components/combobox.js.map +1 -1
  357. package/dist/esm/packages/ui/src/components/command.js +77 -77
  358. package/dist/esm/packages/ui/src/components/command.js.map +1 -1
  359. package/dist/esm/packages/ui/src/components/context-menu.js +76 -76
  360. package/dist/esm/packages/ui/src/components/context-menu.js.map +1 -1
  361. package/dist/esm/packages/ui/src/components/dialog.js +54 -54
  362. package/dist/esm/packages/ui/src/components/dialog.js.map +1 -1
  363. package/dist/esm/packages/ui/src/components/drawer.js +39 -39
  364. package/dist/esm/packages/ui/src/components/drawer.js.map +1 -1
  365. package/dist/esm/packages/ui/src/components/dropdown-menu.js +109 -109
  366. package/dist/esm/packages/ui/src/components/dropdown-menu.js.map +1 -1
  367. package/dist/esm/packages/ui/src/components/input-otp.js +30 -30
  368. package/dist/esm/packages/ui/src/components/input-otp.js.map +1 -1
  369. package/dist/esm/packages/ui/src/components/input.js +19 -19
  370. package/dist/esm/packages/ui/src/components/input.js.map +1 -1
  371. package/dist/esm/packages/ui/src/components/label.js +9 -9
  372. package/dist/esm/packages/ui/src/components/label.js.map +1 -1
  373. package/dist/esm/packages/ui/src/components/pagination.js +26 -26
  374. package/dist/esm/packages/ui/src/components/pagination.js.map +1 -1
  375. package/dist/esm/packages/ui/src/components/popover.js +13 -13
  376. package/dist/esm/packages/ui/src/components/popover.js.map +1 -1
  377. package/dist/esm/packages/ui/src/components/radio-group.js +45 -45
  378. package/dist/esm/packages/ui/src/components/radio-group.js.map +1 -1
  379. package/dist/esm/packages/ui/src/components/resizable.js +18 -18
  380. package/dist/esm/packages/ui/src/components/resizable.js.map +1 -1
  381. package/dist/esm/packages/ui/src/components/scroll-area.js +31 -31
  382. package/dist/esm/packages/ui/src/components/scroll-area.js.map +1 -1
  383. package/dist/esm/packages/ui/src/components/select.js +119 -119
  384. package/dist/esm/packages/ui/src/components/select.js.map +1 -1
  385. package/dist/esm/packages/ui/src/components/separator.js +86 -86
  386. package/dist/esm/packages/ui/src/components/separator.js.map +1 -1
  387. package/dist/esm/packages/ui/src/components/sheet.js +50 -50
  388. package/dist/esm/packages/ui/src/components/sheet.js.map +1 -1
  389. package/dist/esm/packages/ui/src/components/sidebar.js +198 -198
  390. package/dist/esm/packages/ui/src/components/sidebar.js.map +1 -1
  391. package/dist/esm/packages/ui/src/components/skeleton.js +3 -3
  392. package/dist/esm/packages/ui/src/components/skeleton.js.map +1 -1
  393. package/dist/esm/packages/ui/src/components/switch.js +57 -57
  394. package/dist/esm/packages/ui/src/components/switch.js.map +1 -1
  395. package/dist/esm/packages/ui/src/components/table.js +17 -17
  396. package/dist/esm/packages/ui/src/components/table.js.map +1 -1
  397. package/dist/esm/packages/ui/src/components/tabs.js +33 -33
  398. package/dist/esm/packages/ui/src/components/tabs.js.map +1 -1
  399. package/dist/esm/packages/ui/src/components/textarea.js +17 -17
  400. package/dist/esm/packages/ui/src/components/textarea.js.map +1 -1
  401. package/dist/esm/packages/ui/src/components/toggle.js +36 -36
  402. package/dist/esm/packages/ui/src/components/toggle.js.map +1 -1
  403. package/dist/esm/packages/ui/src/components/tooltip.js +20 -20
  404. package/dist/esm/packages/ui/src/components/tooltip.js.map +1 -1
  405. package/dist/esm/packages/ui/src/components/tree-view.js +218 -218
  406. package/dist/esm/packages/ui/src/components/tree-view.js.map +1 -1
  407. package/dist/esm/styles/index.css +1 -1
  408. package/dist/esm/utils/animations.js +55 -55
  409. package/dist/esm/utils/animations.js.map +1 -1
  410. package/dist/esm/utils/css.js +7 -7
  411. package/dist/esm/utils/css.js.map +1 -1
  412. package/dist/esm/utils/parsers.js +1 -1
  413. package/dist/types/components/DatePicker/RangePicker.d.ts.map +1 -1
  414. package/dist/types/lib/TextAnimation/TextPressureEffect.d.ts.map +1 -1
  415. package/dist/types/lib/TextAnimation/TypingText.d.ts.map +1 -1
  416. package/package.json +1 -1
  417. 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
  418. 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
  419. /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
  420. /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":"TimePicker.js","sources":["../../../../src/components/DatePicker/TimePicker.tsx"],"sourcesContent":["import * as React from \"react\";\nimport {\n memo,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n type RefObject,\n} from \"react\";\nimport { cn } from \"@dsui/ui/index\";\nimport { Button } from \"../Button\";\nimport { Select } from \"../Select\";\nimport { Input, type InputProps } from \"../Input\";\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@dsui/ui/components/popover\";\nimport {\n Drawer,\n DrawerContent,\n DrawerDescription,\n DrawerHeader,\n DrawerTitle,\n DrawerTrigger,\n} from \"@dsui/ui/components/drawer\";\nimport { isMobile } from \"react-device-detect\";\nimport { Clock } from \"lucide-react\";\nimport { TimeColumnwheel } from \"../../components/WheelColumn\";\nimport { TimeGridView } from \"../../components/TimeGridView\";\nimport { format as dfFormat, parse, isValid } from \"date-fns\";\nimport type { CalendarColor } from \"../Calendar/Calendar\";\n\nexport type TimePickerMode = \"wheel\" | \"select\" | \"compact\";\n\nexport type DisabledTimeRange = {\n from: string; // Format: \"HH:mm\" or \"HH:mm:ss\"\n to: string; // Format: \"HH:mm\" or \"HH:mm:ss\"\n};\n\nexport type FormatType = string | { input: string; output: string };\n\nexport type TimePickerProps = Omit<\n InputProps,\n \"value\" | \"onChange\" | \"onSelect\" | \"mask\" | \"children\"\n> & {\n value?: string; // Time string in specified format\n onChange?: (\n event?: React.ChangeEvent<HTMLInputElement>,\n value?: string,\n date?: Date\n ) => void;\n onSelect?: (date?: Date, value?: string) => void;\n showHours?: boolean;\n showMinutes?: boolean;\n showSeconds?: boolean;\n disabled?: boolean;\n className?: string;\n timeLabel?:\n | boolean\n | string\n | { hours?: string; minutes?: string; seconds?: string };\n mask?: boolean | string; // Enable mask for time input: true (auto-generate), string (custom mask), false/undefined (no mask)\n format?: FormatType; // Time format using date-fns format tokens (default: auto from showSeconds)\n\n // New configuration options\n mode?: TimePickerMode; // Display mode: 'wheel' (default), 'select', 'compact'\n hourInterval?: number; // Hour interval (e.g., 1, 2, 3) - defaults to 1\n minuteInterval?: number; // Minute interval (e.g., 5, 10, 15, 30) - defaults to 1\n secondInterval?: number; // Second interval (e.g., 5, 10, 15, 30) - defaults to 1\n disabledTimes?: string[]; // Array of disabled times in \"HH:mm\" or \"HH:mm:ss\" format\n disabledTimeRanges?: DisabledTimeRange[]; // Array of disabled time ranges\n showNowButton?: boolean; // Show \"Now\" button to select current time\n nowButtonLabel?: string; // Label for \"Now\" button (defaults to \"Now\")\n\n // Standalone mode configuration\n standalone?: boolean; // When true (default), TimePicker shows as a drawer/popover with trigger. When false, it's used as an integrated component (e.g., inside DatePicker)\n desktopMode?: \"popover\" | \"drawer\"; // Desktop display mode for standalone: 'popover' or 'drawer'\n mobileMode?: \"popover\" | \"drawer\"; // Mobile display mode for standalone: 'popover' or 'drawer'\n color?: CalendarColor; // Color variant for selected time (defaults to \"primary\")\n isOpen?: boolean; // External control for when picker is visible (used in non-standalone mode)\n};\n\nconst generateIntervalArray = (max: number, interval: number = 1): number[] => {\n const result: number[] = [];\n for (let i = 0; i < max; i += interval) {\n result.push(i);\n }\n return result;\n};\n\nconst pad = (num: number): string => String(num).padStart(2, \"0\");\n\n// Format time Date to string using date-fns\nconst formatTime = (\n date: Date | undefined,\n format: string = \"HH:mm\"\n): string => {\n if (!date || !isValid(date)) return \"\";\n return dfFormat(date, format);\n};\n\n// Parse time string to Date using date-fns\nconst parseTimeString = (\n timeStr: string,\n format: string = \"HH:mm\"\n): Date | undefined => {\n if (!timeStr) return undefined;\n\n const referenceDate = new Date();\n const parsedDate = parse(timeStr, format, referenceDate);\n\n if (!isValid(parsedDate)) return undefined;\n\n return parsedDate;\n};\n\nfunction generateMaskFromTimeFormat(format: string): string {\n return format\n .replace(/HH|mm|ss/g, (match) => {\n switch (match) {\n case \"HH\":\n case \"mm\":\n case \"ss\":\n return \"99\";\n default:\n return match;\n }\n })\n .replace(/H|m|s/g, () => \"9\");\n}\n\nexport function TimePicker({\n value,\n onChange,\n onSelect,\n showHours = true,\n showMinutes = true,\n showSeconds = false,\n disabled = false,\n className,\n timeLabel,\n mask,\n format,\n mode = \"wheel\",\n hourInterval = 1,\n minuteInterval = 1,\n secondInterval = 1,\n disabledTimes = [],\n disabledTimeRanges = [],\n showNowButton = false,\n nowButtonLabel = \"Now\",\n standalone = true,\n desktopMode = \"popover\",\n mobileMode = \"drawer\",\n color = \"primary\",\n isOpen,\n ...props\n}: TimePickerProps) {\n // Determine input and output formats (like DatePicker)\n let inputFormat: string;\n let outputFormat: string;\n if (typeof format === \"string\") {\n inputFormat = format;\n outputFormat = format;\n } else if (format) {\n inputFormat = format.input;\n outputFormat = format.output;\n } else {\n // Auto-determine from showSeconds if not provided\n inputFormat = showSeconds ? \"HH:mm:ss\" : \"HH:mm\";\n outputFormat = showSeconds ? \"HH:mm:ss\" : \"HH:mm\";\n }\n\n const [hours, setHours] = useState<number | undefined>(undefined);\n const [minutes, setMinutes] = useState<number | undefined>(undefined);\n const [seconds, setSeconds] = useState<number | undefined>(undefined);\n const [standaloneOpen, setStandaloneOpen] = useState(false);\n\n useEffect(() => {\n if (value) {\n const parsed = parseTimeString(value, inputFormat);\n if (parsed) {\n setHours(parsed.getHours());\n setMinutes(parsed.getMinutes());\n setSeconds(parsed.getSeconds());\n }\n } else {\n setHours(undefined);\n setMinutes(undefined);\n setSeconds(undefined);\n }\n }, [value, inputFormat]);\n\n const hoursRef = useRef<HTMLDivElement>(null);\n const minutesRef = useRef<HTMLDivElement>(null);\n const secondsRef = useRef<HTMLDivElement>(null);\n const gridRef = useRef<HTMLDivElement>(null);\n\n // Generate time arrays based on intervals\n const HOURS = useMemo(\n () => generateIntervalArray(24, hourInterval),\n [hourInterval]\n );\n const MINUTES = useMemo(\n () => generateIntervalArray(60, minuteInterval),\n [minuteInterval]\n );\n const SECONDS = useMemo(\n () => generateIntervalArray(60, secondInterval),\n [secondInterval]\n );\n\n // Helper function to check if a time is disabled\n const isTimeDisabled = useCallback(\n (\n h: number | undefined,\n m: number | undefined,\n s: number | undefined = 0\n ): boolean => {\n const timeStr = `${pad(h ?? 0)}:${pad(m ?? 0)}${showSeconds ? `:${pad(s ?? 0)}` : \"\"}`;\n\n // Check if specific time is disabled\n if (disabledTimes.includes(timeStr)) {\n return true;\n }\n\n // Check if time is in a disabled range\n for (const range of disabledTimeRanges) {\n const [fromH, fromM, fromS = 0] = range.from.split(\":\").map(Number);\n const [toH, toM, toS = 0] = range.to.split(\":\").map(Number);\n\n const currentTime = (h ?? 0) * 3600 + (m ?? 0) * 60 + (s ?? 0);\n const fromTime = fromH * 3600 + fromM * 60 + fromS;\n const toTime = toH * 3600 + toM * 60 + toS;\n\n if (currentTime >= fromTime && currentTime <= toTime) {\n return true;\n }\n }\n\n return false;\n },\n [disabledTimes, disabledTimeRanges, showSeconds]\n );\n\n // Helper function to get time label based on type and timeLabel prop\n const getTimeLabel = useCallback(\n (type: \"hours\" | \"minutes\" | \"seconds\"): string | undefined => {\n if (!timeLabel) return undefined;\n\n if (typeof timeLabel === \"boolean\") {\n return timeLabel\n ? type === \"hours\"\n ? \"Hour\"\n : type === \"minutes\"\n ? \"Minute\"\n : \"Second\"\n : undefined;\n }\n\n if (typeof timeLabel === \"string\") {\n return timeLabel;\n }\n\n // Object case\n if (type === \"hours\") return timeLabel.hours || \"Hour\";\n if (type === \"minutes\") return timeLabel.minutes || \"Minute\";\n return timeLabel.seconds || \"Second\";\n },\n [timeLabel]\n );\n\n // If timeLabel is a string, show it as a common label above all columns\n const shareLabel = typeof timeLabel === \"string\" && (\n <div\n key=\"common-label\"\n className=\"text-xs font-semibold text-muted-foreground uppercase p-2 border-b w-full text-center\"\n >\n {timeLabel}\n </div>\n );\n\n // Find nearest valid time\n const findNearestValidTime = useCallback(\n (\n targetH: number,\n targetM: number,\n targetS: number = 0\n ): { h: number; m: number; s: number } => {\n // Find nearest hour\n const nearestH = HOURS.reduce((prev, curr) =>\n Math.abs(curr - targetH) < Math.abs(prev - targetH) ? curr : prev\n );\n\n // Find nearest minute\n const nearestM = MINUTES.reduce((prev, curr) =>\n Math.abs(curr - targetM) < Math.abs(prev - targetM) ? curr : prev\n );\n\n // Find nearest second\n const nearestS = SECONDS.reduce((prev, curr) =>\n Math.abs(curr - targetS) < Math.abs(prev - targetS) ? curr : prev\n );\n\n // If the nearest time is disabled, find the next available time\n if (isTimeDisabled(nearestH, nearestM, nearestS)) {\n // Try to find next available time\n for (const h of HOURS) {\n for (const m of MINUTES) {\n for (const s of SECONDS) {\n if (!isTimeDisabled(h, m, s)) {\n return { h, m, s };\n }\n }\n }\n }\n }\n\n return { h: nearestH, m: nearestM, s: nearestS };\n },\n [HOURS, MINUTES, SECONDS, isTimeDisabled]\n );\n\n const updateDateTime = useCallback(\n (h: number, m: number, s: number) => {\n const newDate = new Date();\n newDate.setHours(h, m, s, 0);\n const formattedValue = formatTime(newDate, outputFormat);\n onChange?.(undefined, formattedValue, newDate);\n onSelect?.(newDate, formattedValue);\n },\n [outputFormat, onChange, onSelect]\n );\n\n const handleHourChange = (h: number) => {\n if (!isTimeDisabled(h, minutes, seconds)) {\n setHours(h);\n updateDateTime(h, minutes ?? 0, seconds ?? 0);\n }\n };\n\n const handleMinuteChange = (m: number) => {\n if (!isTimeDisabled(hours, m, seconds)) {\n setMinutes(m);\n updateDateTime(hours ?? 0, m, seconds ?? 0);\n }\n };\n\n const handleSecondChange = (s: number) => {\n if (!isTimeDisabled(hours, minutes, s)) {\n setSeconds(s);\n updateDateTime(hours ?? 0, minutes ?? 0, s);\n }\n };\n\n // Scroll to center item when selected\n const scrollToSelected = useCallback(\n (ref: RefObject<HTMLDivElement | null>) => {\n if (ref.current) {\n const selected = ref.current.querySelector(\n \"[data-selected]\"\n ) as HTMLElement;\n if (selected) {\n const container = ref.current;\n const containerHeight = container.clientHeight;\n const selectedTop = selected.offsetTop;\n const selectedHeight = selected.clientHeight;\n\n const scrollPosition =\n selectedTop - containerHeight / 2 + selectedHeight / 2;\n\n container.scrollTo({\n top: scrollPosition,\n behavior: \"smooth\",\n });\n }\n }\n },\n []\n );\n\n const scrollHandler = useCallback(() => {\n if (mode === \"wheel\") {\n // Scroll to selected item when picker opens (only for initial load)\n scrollToSelected(hoursRef);\n scrollToSelected(minutesRef);\n scrollToSelected(secondsRef);\n } else if (mode === \"compact\") {\n // Scroll to selected item in grid mode\n scrollToSelected(gridRef);\n }\n }, [hoursRef, minutesRef, secondsRef, gridRef, mode, scrollToSelected]);\n\n const handleNowClick = () => {\n const now = new Date();\n const { h, m, s } = findNearestValidTime(\n now.getHours(),\n now.getMinutes(),\n now.getSeconds()\n );\n setHours(h);\n setMinutes(m);\n setSeconds(s);\n updateDateTime(h, m, s);\n setTimeout(() => scrollHandler(), 100);\n };\n\n useEffect(() => {\n // Trigger scroll when picker opens (standalone or integrated) or when values change\n const shouldScroll = standalone ? standaloneOpen : isOpen;\n\n // Also trigger scroll if we have values (for initial load and value changes)\n const hasValues =\n hours !== undefined || minutes !== undefined || seconds !== undefined;\n\n if (shouldScroll || hasValues) {\n const timer = setTimeout(() => scrollHandler(), 100);\n return () => clearTimeout(timer);\n }\n }, [\n standaloneOpen,\n isOpen,\n standalone,\n mode,\n scrollHandler,\n hours,\n minutes,\n seconds,\n ]);\n\n // Normal Mode - Dropdown/Input style\n const TimeColumnNormal = memo(\n ({\n items,\n value: selectedValue,\n onChange: onChangeCol,\n timeLabel,\n type,\n }: {\n items: number[];\n value: number | undefined;\n onChange: (val: number) => void;\n timeLabel?: string;\n type: \"hours\" | \"minutes\" | \"seconds\";\n }) => (\n <div className=\"flex flex-col gap-2\">\n {timeLabel && (\n <div className=\"text-xs font-semibold text-muted-foreground uppercase p-2 border-b w-full text-center\">\n {timeLabel}\n </div>\n )}\n <div className=\"p-2\">\n <Select\n value={selectedValue?.toString() || \"\"}\n onValueChange={(value) => onChangeCol(Number(value))}\n disabled={disabled}\n clearable={false}\n search={false}\n options={items.map((item) => {\n const itemDisabled =\n (type === \"hours\" && isTimeDisabled(item, minutes, seconds)) ||\n (type === \"minutes\" && isTimeDisabled(hours, item, seconds)) ||\n (type === \"seconds\" && isTimeDisabled(hours, minutes, item));\n\n return {\n label: pad(item),\n value: item.toString(),\n disabled: itemDisabled,\n };\n })}\n />\n </div>\n </div>\n )\n );\n\n // Grid Mode - Combined time selection (HH:mm format only, vertical layout)\n const handleTimeSelect = (h: number, m: number) => {\n // Always set seconds to 0 in grid mode\n if (!isTimeDisabled(h, m, 0)) {\n setHours(h);\n setMinutes(m);\n setSeconds(0);\n updateDateTime(h, m, 0);\n }\n };\n\n const renderColumns = () => {\n const columns = [];\n\n // Grid mode shows combined time options\n if (mode === \"compact\") {\n return (\n <TimeGridView\n HOURS={HOURS}\n MINUTES={MINUTES}\n hours={hours}\n minutes={minutes}\n disabled={disabled}\n isTimeDisabled={isTimeDisabled}\n onTimeSelect={handleTimeSelect}\n ref={gridRef}\n color={color}\n />\n );\n }\n\n if (showHours) {\n const hourLabel =\n typeof timeLabel === \"string\" ? undefined : getTimeLabel(\"hours\");\n\n if (mode === \"wheel\") {\n columns.push(\n <TimeColumnwheel\n key=\"hours\"\n ref={hoursRef}\n items={HOURS}\n value={hours}\n onChange={handleHourChange}\n timeLabel={hourLabel}\n isItemDisabled={(item) => isTimeDisabled(item, minutes, seconds)}\n disabled={disabled}\n color={color}\n />\n );\n } else if (mode === \"select\") {\n columns.push(\n <TimeColumnNormal\n key=\"hours\"\n items={HOURS}\n value={hours}\n onChange={handleHourChange}\n timeLabel={hourLabel}\n type=\"hours\"\n />\n );\n }\n }\n\n if (showMinutes) {\n const minuteLabel =\n typeof timeLabel === \"string\" ? undefined : getTimeLabel(\"minutes\");\n\n if (mode === \"wheel\") {\n columns.push(\n <TimeColumnwheel\n key=\"minutes\"\n ref={minutesRef}\n items={MINUTES}\n value={minutes}\n onChange={handleMinuteChange}\n timeLabel={minuteLabel}\n itemClassName={showHours ? \"border-l\" : undefined}\n isItemDisabled={(item) => isTimeDisabled(hours, item, seconds)}\n disabled={disabled}\n color={color}\n />\n );\n } else if (mode === \"select\") {\n columns.push(\n <TimeColumnNormal\n key=\"minutes\"\n items={MINUTES}\n value={minutes}\n onChange={handleMinuteChange}\n timeLabel={minuteLabel}\n type=\"minutes\"\n />\n );\n }\n }\n\n if (showSeconds) {\n const secondLabel =\n typeof timeLabel === \"string\" ? undefined : getTimeLabel(\"seconds\");\n\n if (mode === \"wheel\") {\n columns.push(\n <TimeColumnwheel\n key=\"seconds\"\n ref={secondsRef}\n items={SECONDS}\n value={seconds}\n onChange={handleSecondChange}\n timeLabel={secondLabel}\n itemClassName={showMinutes || showHours ? \"border-l\" : undefined}\n isItemDisabled={(item) => isTimeDisabled(hours, minutes, item)}\n disabled={disabled}\n color={color}\n />\n );\n } else if (mode === \"select\") {\n columns.push(\n <TimeColumnNormal\n key=\"seconds\"\n items={SECONDS}\n value={seconds}\n onChange={handleSecondChange}\n timeLabel={secondLabel}\n type=\"seconds\"\n />\n );\n }\n }\n\n return columns;\n };\n\n // If standalone mode is disabled, return the content directly (for integration with DatePicker)\n if (!standalone) {\n return (\n <div\n className={cn(\"flex flex-col gap-2 h-full justify-between\", className)}\n >\n {shareLabel}\n\n <div\n className={cn(\n \"flex rounded overflow-clip mb-auto\",\n mode === \"wheel\"\n ? \"items-end justify-center p-0 h-72\"\n : \"items-start justify-center\"\n )}\n >\n {renderColumns()}\n </div>\n\n {showNowButton && (\n <Button\n type=\"button\"\n variant=\"solid\"\n size=\"xs\"\n onClick={handleNowClick}\n disabled={disabled}\n className={cn(\"rounded-none\")}\n >\n {nowButtonLabel}\n </Button>\n )}\n </div>\n );\n }\n\n // Render the time picker content\n const timePickerContent = (\n <div className={cn(\"flex flex-col gap-4 h-full\", className)}>\n {shareLabel}\n\n <div\n className={cn(\n \"flex rounded overflow-clip my-auto mx-auto max-w-sm md:max-w-md lg:max-w-lg relative\",\n mode === \"wheel\"\n ? \"items-end justify-center p-0\"\n : \"items-start justify-center\",\n {\n \"h-72\": mode === \"wheel\",\n \"w-xs\": standalone && (isMobile || desktopMode === \"drawer\"),\n }\n )}\n >\n {renderColumns()}\n </div>\n\n {showNowButton && (\n <Button\n type=\"button\"\n variant=\"solid\"\n size=\"xs\"\n onClick={handleNowClick}\n disabled={disabled}\n className={cn(\"rounded-none\")}\n >\n {nowButtonLabel}\n </Button>\n )}\n </div>\n );\n\n // Standalone mode: show as drawer or popover with Input\n const iconTrigger = (\n <Button\n variant=\"ghost\"\n className=\"!p-1 !leading-0 h-auto rounded hover:bg-accent transition-colors\"\n disabled={disabled}\n >\n <Clock className=\"size-4\" />\n <span className=\"sr-only\">Select time</span>\n </Button>\n );\n\n const popPicker = (\n <Popover open={standaloneOpen} onOpenChange={setStandaloneOpen}>\n <PopoverTrigger asChild disabled={disabled}>\n {iconTrigger}\n </PopoverTrigger>\n <PopoverContent\n className={cn(\n \"w-auto overflow-hidden p-0\",\n \"backdrop-blur bg-background/50\"\n )}\n >\n {timePickerContent}\n </PopoverContent>\n </Popover>\n );\n\n const drawPicker = (\n <Drawer open={standaloneOpen} onOpenChange={setStandaloneOpen}>\n <DrawerTrigger asChild>{iconTrigger}</DrawerTrigger>\n <DrawerContent\n className={cn(\n \"w-auto overflow-hidden p-0\",\n \"backdrop-blur bg-background\"\n )}\n >\n <DrawerHeader className=\"sr-only\">\n <DrawerTitle>Select time</DrawerTitle>\n <DrawerDescription>Choose a time</DrawerDescription>\n </DrawerHeader>\n {timePickerContent}\n </DrawerContent>\n </Drawer>\n );\n\n // Determine the mask to use\n const timeFormat = outputFormat; // Use outputFormat for placeholder\n let maskToUse: string | undefined;\n if (mask === true) {\n maskToUse = generateMaskFromTimeFormat(inputFormat);\n } else if (typeof mask === \"string\") {\n maskToUse = mask;\n }\n // If mask is false or undefined, maskToUse remains undefined\n\n // Handle Input change (when user types)\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const inputValue = e.target.value;\n const parsedDate = parseTimeString(inputValue, inputFormat);\n\n if (parsedDate) {\n setHours(parsedDate.getHours());\n setMinutes(parsedDate.getMinutes());\n setSeconds(parsedDate.getSeconds());\n const formattedValue = formatTime(parsedDate, outputFormat);\n onChange?.(e, formattedValue, parsedDate);\n onSelect?.(parsedDate, formattedValue);\n } else {\n // Reset state when input is cleared\n setHours(0);\n setMinutes(0);\n setSeconds(0);\n onChange?.(e, inputValue, undefined);\n onSelect?.(undefined, inputValue);\n }\n };\n\n // Return Input with picker as suffix icon (standalone mode)\n return (\n <Input\n {...props}\n clearable\n value={value || \"\"}\n placeholder={timeFormat}\n mask={maskToUse}\n disabled={disabled}\n className=\"cursor-pointer\"\n onChange={handleInputChange}\n suffixIcon={\n isMobile\n ? mobileMode === \"drawer\"\n ? drawPicker\n : popPicker\n : desktopMode === \"drawer\"\n ? drawPicker\n : popPicker\n }\n />\n );\n}\n"],"names":["generateIntervalArray","max","interval","result","i","pad","num","formatTime","date","format","isValid","dfFormat","parseTimeString","timeStr","parsedDate","parse","generateMaskFromTimeFormat","match","TimePicker","value","onChange","onSelect","showHours","showMinutes","showSeconds","disabled","className","timeLabel","mask","mode","hourInterval","minuteInterval","secondInterval","disabledTimes","disabledTimeRanges","showNowButton","nowButtonLabel","standalone","desktopMode","mobileMode","color","isOpen","props","inputFormat","outputFormat","hours","setHours","useState","minutes","setMinutes","seconds","setSeconds","standaloneOpen","setStandaloneOpen","useEffect","parsed","hoursRef","useRef","minutesRef","secondsRef","gridRef","HOURS","useMemo","MINUTES","SECONDS","isTimeDisabled","useCallback","h","m","s","range","fromH","fromM","fromS","toH","toM","toS","currentTime","fromTime","toTime","getTimeLabel","type","shareLabel","jsx","findNearestValidTime","targetH","targetM","targetS","nearestH","prev","curr","nearestM","nearestS","updateDateTime","newDate","formattedValue","handleHourChange","handleMinuteChange","handleSecondChange","scrollToSelected","ref","selected","container","containerHeight","selectedTop","selectedHeight","scrollPosition","scrollHandler","handleNowClick","now","timer","TimeColumnNormal","memo","items","selectedValue","onChangeCol","jsxs","Select","item","itemDisabled","handleTimeSelect","renderColumns","columns","TimeGridView","hourLabel","TimeColumnwheel","minuteLabel","secondLabel","cn","Button","timePickerContent","isMobile","iconTrigger","Clock","popPicker","Popover","PopoverTrigger","PopoverContent","drawPicker","Drawer","DrawerTrigger","DrawerContent","DrawerHeader","DrawerTitle","DrawerDescription","timeFormat","maskToUse","Input","inputValue"],"mappings":"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"}
1
+ {"version":3,"file":"TimePicker.js","sources":["../../../../src/components/DatePicker/TimePicker.tsx"],"sourcesContent":["import * as React from \"react\";\nimport {\n memo,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n type RefObject,\n} from \"react\";\nimport { cn } from \"@dsui/ui/index\";\nimport { Button } from \"../Button\";\nimport { Select } from \"../Select\";\nimport { Input, type InputProps } from \"../Input\";\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@dsui/ui/components/popover\";\nimport {\n Drawer,\n DrawerContent,\n DrawerDescription,\n DrawerHeader,\n DrawerTitle,\n DrawerTrigger,\n} from \"@dsui/ui/components/drawer\";\nimport { isMobile } from \"react-device-detect\";\nimport { Clock } from \"lucide-react\";\nimport { TimeColumnwheel } from \"../../components/WheelColumn\";\nimport { TimeGridView } from \"../../components/TimeGridView\";\nimport { format as dfFormat, parse, isValid } from \"date-fns\";\nimport type { CalendarColor } from \"../Calendar/Calendar\";\n\nexport type TimePickerMode = \"wheel\" | \"select\" | \"compact\";\n\nexport type DisabledTimeRange = {\n from: string; // Format: \"HH:mm\" or \"HH:mm:ss\"\n to: string; // Format: \"HH:mm\" or \"HH:mm:ss\"\n};\n\nexport type FormatType = string | { input: string; output: string };\n\nexport type TimePickerProps = Omit<\n InputProps,\n \"value\" | \"onChange\" | \"onSelect\" | \"mask\" | \"children\"\n> & {\n value?: string; // Time string in specified format\n onChange?: (\n event?: React.ChangeEvent<HTMLInputElement>,\n value?: string,\n date?: Date\n ) => void;\n onSelect?: (date?: Date, value?: string) => void;\n showHours?: boolean;\n showMinutes?: boolean;\n showSeconds?: boolean;\n disabled?: boolean;\n className?: string;\n timeLabel?:\n | boolean\n | string\n | { hours?: string; minutes?: string; seconds?: string };\n mask?: boolean | string; // Enable mask for time input: true (auto-generate), string (custom mask), false/undefined (no mask)\n format?: FormatType; // Time format using date-fns format tokens (default: auto from showSeconds)\n\n // New configuration options\n mode?: TimePickerMode; // Display mode: 'wheel' (default), 'select', 'compact'\n hourInterval?: number; // Hour interval (e.g., 1, 2, 3) - defaults to 1\n minuteInterval?: number; // Minute interval (e.g., 5, 10, 15, 30) - defaults to 1\n secondInterval?: number; // Second interval (e.g., 5, 10, 15, 30) - defaults to 1\n disabledTimes?: string[]; // Array of disabled times in \"HH:mm\" or \"HH:mm:ss\" format\n disabledTimeRanges?: DisabledTimeRange[]; // Array of disabled time ranges\n showNowButton?: boolean; // Show \"Now\" button to select current time\n nowButtonLabel?: string; // Label for \"Now\" button (defaults to \"Now\")\n\n // Standalone mode configuration\n standalone?: boolean; // When true (default), TimePicker shows as a drawer/popover with trigger. When false, it's used as an integrated component (e.g., inside DatePicker)\n desktopMode?: \"popover\" | \"drawer\"; // Desktop display mode for standalone: 'popover' or 'drawer'\n mobileMode?: \"popover\" | \"drawer\"; // Mobile display mode for standalone: 'popover' or 'drawer'\n color?: CalendarColor; // Color variant for selected time (defaults to \"primary\")\n isOpen?: boolean; // External control for when picker is visible (used in non-standalone mode)\n};\n\nconst generateIntervalArray = (max: number, interval: number = 1): number[] => {\n const result: number[] = [];\n for (let i = 0; i < max; i += interval) {\n result.push(i);\n }\n return result;\n};\n\nconst pad = (num: number): string => String(num).padStart(2, \"0\");\n\n// Format time Date to string using date-fns\nconst formatTime = (\n date: Date | undefined,\n format: string = \"HH:mm\"\n): string => {\n if (!date || !isValid(date)) return \"\";\n return dfFormat(date, format);\n};\n\n// Parse time string to Date using date-fns\nconst parseTimeString = (\n timeStr: string,\n format: string = \"HH:mm\"\n): Date | undefined => {\n if (!timeStr) return undefined;\n\n const referenceDate = new Date();\n const parsedDate = parse(timeStr, format, referenceDate);\n\n if (!isValid(parsedDate)) return undefined;\n\n return parsedDate;\n};\n\nfunction generateMaskFromTimeFormat(format: string): string {\n return format\n .replace(/HH|mm|ss/g, (match) => {\n switch (match) {\n case \"HH\":\n case \"mm\":\n case \"ss\":\n return \"99\";\n default:\n return match;\n }\n })\n .replace(/H|m|s/g, () => \"9\");\n}\n\nexport function TimePicker({\n value,\n onChange,\n onSelect,\n showHours = true,\n showMinutes = true,\n showSeconds = false,\n disabled = false,\n className,\n timeLabel,\n mask,\n format,\n mode = \"wheel\",\n hourInterval = 1,\n minuteInterval = 1,\n secondInterval = 1,\n disabledTimes = [],\n disabledTimeRanges = [],\n showNowButton = false,\n nowButtonLabel = \"Now\",\n standalone = true,\n desktopMode = \"popover\",\n mobileMode = \"drawer\",\n color = \"primary\",\n isOpen,\n ...props\n}: TimePickerProps) {\n // Determine input and output formats (like DatePicker)\n let inputFormat: string;\n let outputFormat: string;\n if (typeof format === \"string\") {\n inputFormat = format;\n outputFormat = format;\n } else if (format) {\n inputFormat = format.input;\n outputFormat = format.output;\n } else {\n // Auto-determine from showSeconds if not provided\n inputFormat = showSeconds ? \"HH:mm:ss\" : \"HH:mm\";\n outputFormat = showSeconds ? \"HH:mm:ss\" : \"HH:mm\";\n }\n\n const [hours, setHours] = useState<number | undefined>(undefined);\n const [minutes, setMinutes] = useState<number | undefined>(undefined);\n const [seconds, setSeconds] = useState<number | undefined>(undefined);\n const [standaloneOpen, setStandaloneOpen] = useState(false);\n\n useEffect(() => {\n if (value) {\n const parsed = parseTimeString(value, inputFormat);\n if (parsed) {\n setHours(parsed.getHours());\n setMinutes(parsed.getMinutes());\n setSeconds(parsed.getSeconds());\n }\n } else {\n setHours(undefined);\n setMinutes(undefined);\n setSeconds(undefined);\n }\n }, [value, inputFormat]);\n\n const hoursRef = useRef<HTMLDivElement>(null);\n const minutesRef = useRef<HTMLDivElement>(null);\n const secondsRef = useRef<HTMLDivElement>(null);\n const gridRef = useRef<HTMLDivElement>(null);\n\n // Generate time arrays based on intervals\n const HOURS = useMemo(\n () => generateIntervalArray(24, hourInterval),\n [hourInterval]\n );\n const MINUTES = useMemo(\n () => generateIntervalArray(60, minuteInterval),\n [minuteInterval]\n );\n const SECONDS = useMemo(\n () => generateIntervalArray(60, secondInterval),\n [secondInterval]\n );\n\n // Helper function to check if a time is disabled\n const isTimeDisabled = useCallback(\n (\n h: number | undefined,\n m: number | undefined,\n s: number | undefined = 0\n ): boolean => {\n const timeStr = `${pad(h ?? 0)}:${pad(m ?? 0)}${showSeconds ? `:${pad(s ?? 0)}` : \"\"}`;\n\n // Check if specific time is disabled\n if (disabledTimes.includes(timeStr)) {\n return true;\n }\n\n // Check if time is in a disabled range\n for (const range of disabledTimeRanges) {\n const [fromH, fromM, fromS = 0] = range.from.split(\":\").map(Number);\n const [toH, toM, toS = 0] = range.to.split(\":\").map(Number);\n\n const currentTime = (h ?? 0) * 3600 + (m ?? 0) * 60 + (s ?? 0);\n const fromTime = fromH * 3600 + fromM * 60 + fromS;\n const toTime = toH * 3600 + toM * 60 + toS;\n\n if (currentTime >= fromTime && currentTime <= toTime) {\n return true;\n }\n }\n\n return false;\n },\n [disabledTimes, disabledTimeRanges, showSeconds]\n );\n\n // Helper function to get time label based on type and timeLabel prop\n const getTimeLabel = useCallback(\n (type: \"hours\" | \"minutes\" | \"seconds\"): string | undefined => {\n if (!timeLabel) return undefined;\n\n if (typeof timeLabel === \"boolean\") {\n return timeLabel\n ? type === \"hours\"\n ? \"Hour\"\n : type === \"minutes\"\n ? \"Minute\"\n : \"Second\"\n : undefined;\n }\n\n if (typeof timeLabel === \"string\") {\n return timeLabel;\n }\n\n // Object case\n if (type === \"hours\") return timeLabel.hours || \"Hour\";\n if (type === \"minutes\") return timeLabel.minutes || \"Minute\";\n return timeLabel.seconds || \"Second\";\n },\n [timeLabel]\n );\n\n // If timeLabel is a string, show it as a common label above all columns\n const shareLabel = typeof timeLabel === \"string\" && (\n <div\n key=\"common-label\"\n className=\"ds:text-xs ds:font-semibold ds:text-muted-foreground ds:uppercase ds:p-2 ds:border-b ds:w-full ds:text-center\"\n >\n {timeLabel}\n </div>\n );\n\n // Find nearest valid time\n const findNearestValidTime = useCallback(\n (\n targetH: number,\n targetM: number,\n targetS: number = 0\n ): { h: number; m: number; s: number } => {\n // Find nearest hour\n const nearestH = HOURS.reduce((prev, curr) =>\n Math.abs(curr - targetH) < Math.abs(prev - targetH) ? curr : prev\n );\n\n // Find nearest minute\n const nearestM = MINUTES.reduce((prev, curr) =>\n Math.abs(curr - targetM) < Math.abs(prev - targetM) ? curr : prev\n );\n\n // Find nearest second\n const nearestS = SECONDS.reduce((prev, curr) =>\n Math.abs(curr - targetS) < Math.abs(prev - targetS) ? curr : prev\n );\n\n // If the nearest time is disabled, find the next available time\n if (isTimeDisabled(nearestH, nearestM, nearestS)) {\n // Try to find next available time\n for (const h of HOURS) {\n for (const m of MINUTES) {\n for (const s of SECONDS) {\n if (!isTimeDisabled(h, m, s)) {\n return { h, m, s };\n }\n }\n }\n }\n }\n\n return { h: nearestH, m: nearestM, s: nearestS };\n },\n [HOURS, MINUTES, SECONDS, isTimeDisabled]\n );\n\n const updateDateTime = useCallback(\n (h: number, m: number, s: number) => {\n const newDate = new Date();\n newDate.setHours(h, m, s, 0);\n const formattedValue = formatTime(newDate, outputFormat);\n onChange?.(undefined, formattedValue, newDate);\n onSelect?.(newDate, formattedValue);\n },\n [outputFormat, onChange, onSelect]\n );\n\n const handleHourChange = (h: number) => {\n if (!isTimeDisabled(h, minutes, seconds)) {\n setHours(h);\n updateDateTime(h, minutes ?? 0, seconds ?? 0);\n }\n };\n\n const handleMinuteChange = (m: number) => {\n if (!isTimeDisabled(hours, m, seconds)) {\n setMinutes(m);\n updateDateTime(hours ?? 0, m, seconds ?? 0);\n }\n };\n\n const handleSecondChange = (s: number) => {\n if (!isTimeDisabled(hours, minutes, s)) {\n setSeconds(s);\n updateDateTime(hours ?? 0, minutes ?? 0, s);\n }\n };\n\n // Scroll to center item when selected\n const scrollToSelected = useCallback(\n (ref: RefObject<HTMLDivElement | null>) => {\n if (ref.current) {\n const selected = ref.current.querySelector(\n \"[data-selected]\"\n ) as HTMLElement;\n if (selected) {\n const container = ref.current;\n const containerHeight = container.clientHeight;\n const selectedTop = selected.offsetTop;\n const selectedHeight = selected.clientHeight;\n\n const scrollPosition =\n selectedTop - containerHeight / 2 + selectedHeight / 2;\n\n container.scrollTo({\n top: scrollPosition,\n behavior: \"smooth\",\n });\n }\n }\n },\n []\n );\n\n const scrollHandler = useCallback(() => {\n if (mode === \"wheel\") {\n // Scroll to selected item when picker opens (only for initial load)\n scrollToSelected(hoursRef);\n scrollToSelected(minutesRef);\n scrollToSelected(secondsRef);\n } else if (mode === \"compact\") {\n // Scroll to selected item in grid mode\n scrollToSelected(gridRef);\n }\n }, [hoursRef, minutesRef, secondsRef, gridRef, mode, scrollToSelected]);\n\n const handleNowClick = () => {\n const now = new Date();\n const { h, m, s } = findNearestValidTime(\n now.getHours(),\n now.getMinutes(),\n now.getSeconds()\n );\n setHours(h);\n setMinutes(m);\n setSeconds(s);\n updateDateTime(h, m, s);\n setTimeout(() => scrollHandler(), 100);\n };\n\n useEffect(() => {\n // Trigger scroll when picker opens (standalone or integrated) or when values change\n const shouldScroll = standalone ? standaloneOpen : isOpen;\n\n // Also trigger scroll if we have values (for initial load and value changes)\n const hasValues =\n hours !== undefined || minutes !== undefined || seconds !== undefined;\n\n if (shouldScroll || hasValues) {\n const timer = setTimeout(() => scrollHandler(), 100);\n return () => clearTimeout(timer);\n }\n }, [\n standaloneOpen,\n isOpen,\n standalone,\n mode,\n scrollHandler,\n hours,\n minutes,\n seconds,\n ]);\n\n // Normal Mode - Dropdown/Input style\n const TimeColumnNormal = memo(\n ({\n items,\n value: selectedValue,\n onChange: onChangeCol,\n timeLabel,\n type,\n }: {\n items: number[];\n value: number | undefined;\n onChange: (val: number) => void;\n timeLabel?: string;\n type: \"hours\" | \"minutes\" | \"seconds\";\n }) => (\n <div className=\"ds:flex ds:flex-col ds:gap-2\">\n {timeLabel && (\n <div className=\"ds:text-xs ds:font-semibold ds:text-muted-foreground ds:uppercase ds:p-2 ds:border-b ds:w-full ds:text-center\">\n {timeLabel}\n </div>\n )}\n <div className=\"ds:p-2\">\n <Select\n value={selectedValue?.toString() || \"\"}\n onValueChange={(value) => onChangeCol(Number(value))}\n disabled={disabled}\n clearable={false}\n search={false}\n options={items.map((item) => {\n const itemDisabled =\n (type === \"hours\" && isTimeDisabled(item, minutes, seconds)) ||\n (type === \"minutes\" && isTimeDisabled(hours, item, seconds)) ||\n (type === \"seconds\" && isTimeDisabled(hours, minutes, item));\n\n return {\n label: pad(item),\n value: item.toString(),\n disabled: itemDisabled,\n };\n })}\n />\n </div>\n </div>\n )\n );\n\n // Grid Mode - Combined time selection (HH:mm format only, vertical layout)\n const handleTimeSelect = (h: number, m: number) => {\n // Always set seconds to 0 in grid mode\n if (!isTimeDisabled(h, m, 0)) {\n setHours(h);\n setMinutes(m);\n setSeconds(0);\n updateDateTime(h, m, 0);\n }\n };\n\n const renderColumns = () => {\n const columns = [];\n\n // Grid mode shows combined time options\n if (mode === \"compact\") {\n return (\n <TimeGridView\n HOURS={HOURS}\n MINUTES={MINUTES}\n hours={hours}\n minutes={minutes}\n disabled={disabled}\n isTimeDisabled={isTimeDisabled}\n onTimeSelect={handleTimeSelect}\n ref={gridRef}\n color={color}\n />\n );\n }\n\n if (showHours) {\n const hourLabel =\n typeof timeLabel === \"string\" ? undefined : getTimeLabel(\"hours\");\n\n if (mode === \"wheel\") {\n columns.push(\n <TimeColumnwheel\n key=\"hours\"\n ref={hoursRef}\n items={HOURS}\n value={hours}\n onChange={handleHourChange}\n timeLabel={hourLabel}\n isItemDisabled={(item) => isTimeDisabled(item, minutes, seconds)}\n disabled={disabled}\n color={color}\n />\n );\n } else if (mode === \"select\") {\n columns.push(\n <TimeColumnNormal\n key=\"hours\"\n items={HOURS}\n value={hours}\n onChange={handleHourChange}\n timeLabel={hourLabel}\n type=\"hours\"\n />\n );\n }\n }\n\n if (showMinutes) {\n const minuteLabel =\n typeof timeLabel === \"string\" ? undefined : getTimeLabel(\"minutes\");\n\n if (mode === \"wheel\") {\n columns.push(\n <TimeColumnwheel\n key=\"minutes\"\n ref={minutesRef}\n items={MINUTES}\n value={minutes}\n onChange={handleMinuteChange}\n timeLabel={minuteLabel}\n itemClassName={showHours ? \"ds:border-l\" : undefined}\n isItemDisabled={(item) => isTimeDisabled(hours, item, seconds)}\n disabled={disabled}\n color={color}\n />\n );\n } else if (mode === \"select\") {\n columns.push(\n <TimeColumnNormal\n key=\"minutes\"\n items={MINUTES}\n value={minutes}\n onChange={handleMinuteChange}\n timeLabel={minuteLabel}\n type=\"minutes\"\n />\n );\n }\n }\n\n if (showSeconds) {\n const secondLabel =\n typeof timeLabel === \"string\" ? undefined : getTimeLabel(\"seconds\");\n\n if (mode === \"wheel\") {\n columns.push(\n <TimeColumnwheel\n key=\"seconds\"\n ref={secondsRef}\n items={SECONDS}\n value={seconds}\n onChange={handleSecondChange}\n timeLabel={secondLabel}\n itemClassName={showMinutes || showHours ? \"ds:border-l\" : undefined}\n isItemDisabled={(item) => isTimeDisabled(hours, minutes, item)}\n disabled={disabled}\n color={color}\n />\n );\n } else if (mode === \"select\") {\n columns.push(\n <TimeColumnNormal\n key=\"seconds\"\n items={SECONDS}\n value={seconds}\n onChange={handleSecondChange}\n timeLabel={secondLabel}\n type=\"seconds\"\n />\n );\n }\n }\n\n return columns;\n };\n\n // If standalone mode is disabled, return the content directly (for integration with DatePicker)\n if (!standalone) {\n return (\n <div\n className={cn(\"ds:flex ds:flex-col ds:gap-2 ds:h-full ds:justify-between\", className)}\n >\n {shareLabel}\n\n <div\n className={cn(\n \"ds:flex ds:rounded ds:overflow-clip ds:mb-auto\",\n mode === \"wheel\"\n ? \"ds:items-end ds:justify-center ds:p-0 ds:h-72\"\n : \"ds:items-start ds:justify-center\"\n )}\n >\n {renderColumns()}\n </div>\n\n {showNowButton && (\n <Button\n type=\"button\"\n variant=\"solid\"\n size=\"xs\"\n onClick={handleNowClick}\n disabled={disabled}\n className={cn(\"ds:rounded-none\")}\n >\n {nowButtonLabel}\n </Button>\n )}\n </div>\n );\n }\n\n // Render the time picker content\n const timePickerContent = (\n <div className={cn(\"ds:flex ds:flex-col ds:gap-4 ds:h-full\", className)}>\n {shareLabel}\n\n <div\n className={cn(\n \"ds:flex ds:rounded ds:overflow-clip ds:my-auto ds:mx-auto ds:max-w-sm ds:md:max-w-md ds:lg:max-w-lg ds:relative\",\n mode === \"wheel\"\n ? \"ds:items-end ds:justify-center ds:p-0\"\n : \"ds:items-start ds:justify-center\",\n {\n \"ds:h-72\": mode === \"wheel\",\n \"ds:w-xs\": standalone && (isMobile || desktopMode === \"drawer\"),\n }\n )}\n >\n {renderColumns()}\n </div>\n\n {showNowButton && (\n <Button\n type=\"button\"\n variant=\"solid\"\n size=\"xs\"\n onClick={handleNowClick}\n disabled={disabled}\n className={cn(\"ds:rounded-none\")}\n >\n {nowButtonLabel}\n </Button>\n )}\n </div>\n );\n\n // Standalone mode: show as drawer or popover with Input\n const iconTrigger = (\n <Button\n variant=\"ghost\"\n className=\"ds:!p-1 ds:!leading-0 ds:h-auto ds:rounded ds:hover:bg-accent ds:transition-colors\"\n disabled={disabled}\n >\n <Clock className=\"ds:size-4\" />\n <span className=\"ds:sr-only\">Select time</span>\n </Button>\n );\n\n const popPicker = (\n <Popover open={standaloneOpen} onOpenChange={setStandaloneOpen}>\n <PopoverTrigger asChild disabled={disabled}>\n {iconTrigger}\n </PopoverTrigger>\n <PopoverContent\n className={cn(\n \"ds:w-auto ds:overflow-hidden ds:p-0\",\n \"ds:backdrop-blur ds:bg-background/50\"\n )}\n >\n {timePickerContent}\n </PopoverContent>\n </Popover>\n );\n\n const drawPicker = (\n <Drawer open={standaloneOpen} onOpenChange={setStandaloneOpen}>\n <DrawerTrigger asChild>{iconTrigger}</DrawerTrigger>\n <DrawerContent\n className={cn(\n \"ds:w-auto ds:overflow-hidden ds:p-0\",\n \"ds:backdrop-blur ds:bg-background\"\n )}\n >\n <DrawerHeader className=\"ds:sr-only\">\n <DrawerTitle>Select time</DrawerTitle>\n <DrawerDescription>Choose a time</DrawerDescription>\n </DrawerHeader>\n {timePickerContent}\n </DrawerContent>\n </Drawer>\n );\n\n // Determine the mask to use\n const timeFormat = outputFormat; // Use outputFormat for placeholder\n let maskToUse: string | undefined;\n if (mask === true) {\n maskToUse = generateMaskFromTimeFormat(inputFormat);\n } else if (typeof mask === \"string\") {\n maskToUse = mask;\n }\n // If mask is false or undefined, maskToUse remains undefined\n\n // Handle Input change (when user types)\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const inputValue = e.target.value;\n const parsedDate = parseTimeString(inputValue, inputFormat);\n\n if (parsedDate) {\n setHours(parsedDate.getHours());\n setMinutes(parsedDate.getMinutes());\n setSeconds(parsedDate.getSeconds());\n const formattedValue = formatTime(parsedDate, outputFormat);\n onChange?.(e, formattedValue, parsedDate);\n onSelect?.(parsedDate, formattedValue);\n } else {\n // Reset state when input is cleared\n setHours(0);\n setMinutes(0);\n setSeconds(0);\n onChange?.(e, inputValue, undefined);\n onSelect?.(undefined, inputValue);\n }\n };\n\n // Return Input with picker as suffix icon (standalone mode)\n return (\n <Input\n {...props}\n clearable\n value={value || \"\"}\n placeholder={timeFormat}\n mask={maskToUse}\n disabled={disabled}\n className=\"ds:cursor-pointer\"\n onChange={handleInputChange}\n suffixIcon={\n isMobile\n ? mobileMode === \"drawer\"\n ? drawPicker\n : popPicker\n : desktopMode === \"drawer\"\n ? drawPicker\n : popPicker\n }\n />\n );\n}\n"],"names":["generateIntervalArray","max","interval","result","i","pad","num","formatTime","date","format","isValid","dfFormat","parseTimeString","timeStr","parsedDate","parse","generateMaskFromTimeFormat","match","TimePicker","value","onChange","onSelect","showHours","showMinutes","showSeconds","disabled","className","timeLabel","mask","mode","hourInterval","minuteInterval","secondInterval","disabledTimes","disabledTimeRanges","showNowButton","nowButtonLabel","standalone","desktopMode","mobileMode","color","isOpen","props","inputFormat","outputFormat","hours","setHours","useState","minutes","setMinutes","seconds","setSeconds","standaloneOpen","setStandaloneOpen","useEffect","parsed","hoursRef","useRef","minutesRef","secondsRef","gridRef","HOURS","useMemo","MINUTES","SECONDS","isTimeDisabled","useCallback","h","m","s","range","fromH","fromM","fromS","toH","toM","toS","currentTime","fromTime","toTime","getTimeLabel","type","shareLabel","jsx","findNearestValidTime","targetH","targetM","targetS","nearestH","prev","curr","nearestM","nearestS","updateDateTime","newDate","formattedValue","handleHourChange","handleMinuteChange","handleSecondChange","scrollToSelected","ref","selected","container","containerHeight","selectedTop","selectedHeight","scrollPosition","scrollHandler","handleNowClick","now","timer","TimeColumnNormal","memo","items","selectedValue","onChangeCol","jsxs","Select","item","itemDisabled","handleTimeSelect","renderColumns","columns","TimeGridView","hourLabel","TimeColumnwheel","minuteLabel","secondLabel","cn","Button","timePickerContent","isMobile","iconTrigger","Clock","popPicker","Popover","PopoverTrigger","PopoverContent","drawPicker","Drawer","DrawerTrigger","DrawerContent","DrawerHeader","DrawerTitle","DrawerDescription","timeFormat","maskToUse","Input","inputValue"],"mappings":"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"}
@@ -1,53 +1,53 @@
1
- import { jsxs as l, jsx as e, Fragment as W } from "react/jsx-runtime";
1
+ import { jsxs as t, jsx as s, Fragment as W } from "react/jsx-runtime";
2
2
  import X, { useMemo as C } from "react";
3
- import { Dialog as Y, DialogTrigger as Z, DialogContent as ee, DialogHeader as H, DialogTitle as R, DialogDescription as K, DialogFooter as _ } from "../../packages/ui/src/components/dialog.js";
4
- import { AlertDialogHeader as te, AlertDialogTitle as le, AlertDialogDescription as ae, AlertDialogFooter as re, AlertDialog as oe, AlertDialogTrigger as se, AlertDialogContent as ne } from "../../packages/ui/src/components/alert-dialog.js";
3
+ import { Dialog as Y, DialogTrigger as Z, DialogContent as ss, DialogHeader as H, DialogTitle as R, DialogDescription as K, DialogFooter as _ } from "../../packages/ui/src/components/dialog.js";
4
+ import { AlertDialogHeader as es, AlertDialogTitle as ts, AlertDialogDescription as ls, AlertDialogFooter as as, AlertDialog as ds, AlertDialogTrigger as rs, AlertDialogContent as os } from "../../packages/ui/src/components/alert-dialog.js";
5
5
  import { ScrollArea as M } from "../../packages/ui/src/components/scroll-area.js";
6
- import { cn as t } from "../../packages/ui/src/lib/utils.js";
7
- import { animationClass as ie } from "../../utils/animations.js";
8
- import { AlertTriangle as ce, Info as me, AlertCircle as de, CheckCircle2 as fe } from "lucide-react";
6
+ import { cn as e } from "../../packages/ui/src/lib/utils.js";
7
+ import { animationClass as ns } from "../../utils/animations.js";
8
+ import { AlertTriangle as is, Info as cs, AlertCircle as ms, CheckCircle2 as fs } from "lucide-react";
9
9
  import S from "../Button/Button.js";
10
- const ue = {
10
+ const us = {
11
11
  dialog: null,
12
- confirm: /* @__PURE__ */ e("div", { className: "size-12 flex items-center justify-center rounded-full bg-success/10 mx-auto mb-4", children: /* @__PURE__ */ e(fe, { className: "size-6 text-success" }) }),
13
- alert: /* @__PURE__ */ e("div", { className: "size-12 flex items-center justify-center rounded-full bg-error/10 mx-auto mb-4", children: /* @__PURE__ */ e(de, { className: "size-5 text-error" }) }),
14
- info: /* @__PURE__ */ e("div", { className: "size-12 flex items-center justify-center rounded-full bg-blue-500/10 mx-auto mb-4", children: /* @__PURE__ */ e(me, { className: "size-5 text-blue-500" }) }),
15
- warning: /* @__PURE__ */ e("div", { className: "size-12 flex items-center justify-center rounded-full bg-warning/10 mx-auto mb-4", children: /* @__PURE__ */ e(ce, { className: "size-5 text-warning" }) })
16
- }, xe = {
12
+ confirm: /* @__PURE__ */ s("div", { className: "ds:size-12 ds:flex ds:items-center ds:justify-center ds:rounded-full ds:bg-success/10 ds:mx-auto ds:mb-4", children: /* @__PURE__ */ s(fs, { className: "ds:size-6 ds:text-success" }) }),
13
+ alert: /* @__PURE__ */ s("div", { className: "ds:size-12 ds:flex ds:items-center ds:justify-center ds:rounded-full ds:bg-error/10 ds:mx-auto ds:mb-4", children: /* @__PURE__ */ s(ms, { className: "ds:size-5 ds:text-error" }) }),
14
+ info: /* @__PURE__ */ s("div", { className: "ds:size-12 ds:flex ds:items-center ds:justify-center ds:rounded-full ds:bg-blue-500/10 ds:mx-auto ds:mb-4", children: /* @__PURE__ */ s(cs, { className: "ds:size-5 ds:text-blue-500" }) }),
15
+ warning: /* @__PURE__ */ s("div", { className: "ds:size-12 ds:flex ds:items-center ds:justify-center ds:rounded-full ds:bg-warning/10 ds:mx-auto ds:mb-4", children: /* @__PURE__ */ s(is, { className: "ds:size-5 ds:text-warning" }) })
16
+ }, xs = {
17
17
  dialog: "",
18
18
  confirm: "border-blue-500/20",
19
19
  alert: "border-red-500/20",
20
20
  info: "border-blue-500/20",
21
21
  warning: "border-yellow-500/20"
22
- }, he = {
23
- sm: "sm:max-w-sm",
24
- md: "sm:max-w-md",
25
- lg: "sm:max-w-lg",
26
- xl: "sm:max-w-xl",
27
- "2xl": "sm:max-w-2xl max-h-[90vh]",
28
- "3xl": "sm:max-w-3xl max-h-[90vh]",
29
- "4xl": "sm:max-w-4xl max-h-[90vh]",
30
- full: "sm:max-w-[95vw] h-[98vh]"
31
- }, pe = {
32
- center: "!top-[50%] !left-[50%] !translate-x-[-50%] !translate-y-[-50%]",
33
- top: "!top-4 !left-[50%] !translate-x-[-50%] !translate-y-0",
34
- bottom: "!top-auto !bottom-4 !left-[50%] !translate-x-[-50%] !translate-y-0",
35
- left: "!left-4 !top-[50%] !translate-x-0 !translate-y-[-50%]",
36
- right: "!left-auto !right-4 !top-[50%] !translate-x-0 !translate-y-[-50%]",
37
- "top-left": "!top-4 !left-4 !translate-x-0 !translate-y-0",
38
- "top-right": "!top-4 !left-auto !right-4 !translate-x-0 !translate-y-0",
39
- "bottom-left": "!top-auto !bottom-4 !left-4 !translate-x-0 !translate-y-0",
40
- "bottom-right": "!top-auto !bottom-4 !left-auto !right-4 !translate-x-0 !translate-y-0"
41
- }, ge = X.forwardRef(($, D) => {
22
+ }, hs = {
23
+ sm: "ds:sm:max-w-sm",
24
+ md: "ds:sm:max-w-md",
25
+ lg: "ds:sm:max-w-lg",
26
+ xl: "ds:sm:max-w-xl",
27
+ "2xl": "ds:sm:max-w-2xl ds:max-h-[90vh]",
28
+ "3xl": "ds:sm:max-w-3xl ds:max-h-[90vh]",
29
+ "4xl": "ds:sm:max-w-4xl ds:max-h-[90vh]",
30
+ full: "ds:sm:max-w-[95vw] ds:h-[98vh]"
31
+ }, ps = {
32
+ center: "ds:!top-[50%] ds:!left-[50%] ds:!translate-x-[-50%] ds:!translate-y-[-50%]",
33
+ top: "ds:!top-4 ds:!left-[50%] ds:!translate-x-[-50%] ds:!translate-y-0",
34
+ bottom: "ds:!top-auto ds:!bottom-4 ds:!left-[50%] ds:!translate-x-[-50%] ds:!translate-y-0",
35
+ left: "ds:!left-4 ds:!top-[50%] ds:!translate-x-0 ds:!translate-y-[-50%]",
36
+ right: "ds:!left-auto ds:!right-4 ds:!top-[50%] ds:!translate-x-0 ds:!translate-y-[-50%]",
37
+ "top-left": "ds:!top-4 ds:!left-4 ds:!translate-x-0 ds:!translate-y-0",
38
+ "top-right": "ds:!top-4 ds:!left-auto ds:!right-4 ds:!translate-x-0 ds:!translate-y-0",
39
+ "bottom-left": "ds:!top-auto ds:!bottom-4 ds:!left-4 ds:!translate-x-0 ds:!translate-y-0",
40
+ "bottom-right": "ds:!top-auto ds:!bottom-4 ds:!left-auto ds:!right-4 ds:!translate-x-0 ds:!translate-y-0"
41
+ }, gs = X.forwardRef(($, D) => {
42
42
  const {
43
43
  variant: b = "dialog",
44
44
  open: v,
45
45
  onOpenChange: w,
46
- title: a,
47
- description: r,
46
+ title: l,
47
+ description: a,
48
48
  children: f,
49
49
  trigger: u,
50
- footer: s,
50
+ footer: r,
51
51
  closeOnEsc: A = !0,
52
52
  closeOnOutside: q = !0,
53
53
  showCloseButton: G = !0,
@@ -55,9 +55,9 @@ const ue = {
55
55
  size: L = "md",
56
56
  fullscreen: z = !1,
57
57
  scrollable: k = !0,
58
- stickyHeader: n = !1,
59
- stickyFooter: i = !1,
60
- animation: c,
58
+ stickyHeader: o = !1,
59
+ stickyFooter: n = !1,
60
+ animation: i,
61
61
  className: j,
62
62
  contentClassName: B,
63
63
  headerClassName: P,
@@ -65,68 +65,68 @@ const ue = {
65
65
  descriptionClassName: h,
66
66
  footerClassName: Q,
67
67
  // overlayClassName, // Not used in current implementation
68
- confirmButton: m,
69
- cancelButton: d,
68
+ confirmButton: c,
69
+ cancelButton: m,
70
70
  showIcon: U = !0,
71
71
  backdropFilter: F = 2,
72
72
  overlay: O = "dark"
73
- } = $, V = C(() => c ? ie(c) : { className: "" }, [c]), T = t(
73
+ } = $, V = C(() => i ? ns(i) : { className: "" }, [i]), T = e(
74
74
  // Remove default padding and gap to allow custom header/footer
75
- "!p-0 !gap-0 flex flex-col",
76
- he[z ? "full" : L],
77
- pe[J],
78
- xe[b],
75
+ "ds:!p-0 ds:!gap-0 ds:flex ds:flex-col",
76
+ hs[z ? "full" : L],
77
+ ps[J],
78
+ xs[b],
79
79
  V.className,
80
- z ? "h-[98vh]" : "max-h-[90vh]"
81
- ), p = t(
82
- "px-6 pt-6 text-left",
83
- !k && "contents space-y-0",
80
+ z ? "ds:h-[98vh]" : "ds:max-h-[90vh]"
81
+ ), p = e(
82
+ "ds:px-6 ds:pt-6 ds:text-left",
83
+ !k && "ds:contents ds:space-y-0",
84
84
  P
85
- ), g = t(
86
- "px-6 pb-6 sm:justify-end",
87
- !k && "border-t py-4",
85
+ ), g = e(
86
+ "ds:px-6 ds:pb-6 ds:sm:justify-end",
87
+ !k && "ds:border-t ds:py-4",
88
88
  Q
89
- ), N = U ? ue[b] : null, I = C(() => a || N || r ? /* @__PURE__ */ l(
90
- te,
89
+ ), N = U ? us[b] : null, I = C(() => l || N || a ? /* @__PURE__ */ t(
90
+ es,
91
91
  {
92
- className: t(
93
- "flex items-center gap-2 py-4",
94
- { "border-b": n },
92
+ className: e(
93
+ "ds:flex ds:items-center ds:gap-2 ds:py-4",
94
+ { "ds:border-b": o },
95
95
  p
96
96
  ),
97
97
  children: [
98
- (a || N) && /* @__PURE__ */ l(le, { className: t(x), children: [
98
+ (l || N) && /* @__PURE__ */ t(ts, { className: e(x), children: [
99
99
  N,
100
- a
100
+ l
101
101
  ] }),
102
- r && /* @__PURE__ */ e(ae, { className: h, children: r })
102
+ a && /* @__PURE__ */ s(ls, { className: h, children: a })
103
103
  ]
104
104
  }
105
105
  ) : null, [
106
- a,
106
+ l,
107
107
  N,
108
- r,
108
+ a,
109
109
  p,
110
110
  x,
111
111
  h,
112
- n
112
+ o
113
113
  ]), E = C(() => {
114
- const o = {
114
+ const d = {
115
115
  variant: "solid",
116
116
  color: "primary",
117
- ...m,
118
- text: m?.text ?? "Confirm"
117
+ ...c,
118
+ text: c?.text ?? "Confirm"
119
119
  }, y = {
120
120
  variant: "outline",
121
- ...d,
122
- text: d?.text ?? "Cancel"
121
+ ...m,
122
+ text: m?.text ?? "Cancel"
123
123
  };
124
- return s || m || d ? /* @__PURE__ */ e(
125
- re,
124
+ return r || c || m ? /* @__PURE__ */ s(
125
+ as,
126
126
  {
127
- className: t("py-4", { "border-t": i }, g),
128
- children: s || /* @__PURE__ */ l(W, { children: [
129
- d && /* @__PURE__ */ e(
127
+ className: e("ds:py-4", { "ds:border-t": n }, g),
128
+ children: r || /* @__PURE__ */ t(W, { children: [
129
+ m && /* @__PURE__ */ s(
130
130
  S,
131
131
  {
132
132
  ...y,
@@ -136,79 +136,79 @@ const ue = {
136
136
  children: y.text
137
137
  }
138
138
  ),
139
- m && /* @__PURE__ */ e(
139
+ c && /* @__PURE__ */ s(
140
140
  S,
141
141
  {
142
- ...o,
142
+ ...d,
143
143
  onClick: () => {
144
- o.onClick?.();
144
+ d.onClick?.();
145
145
  },
146
- children: o.text
146
+ children: d.text
147
147
  }
148
148
  )
149
149
  ] })
150
150
  }
151
151
  ) : null;
152
- }, [s, g, m, d, i]);
153
- return b !== "dialog" ? /* @__PURE__ */ l(oe, { open: v, onOpenChange: w, children: [
154
- u && /* @__PURE__ */ e(se, { asChild: !0, children: u }),
155
- /* @__PURE__ */ l(
156
- ne,
152
+ }, [r, g, c, m, n]);
153
+ return b !== "dialog" ? /* @__PURE__ */ t(ds, { open: v, onOpenChange: w, children: [
154
+ u && /* @__PURE__ */ s(rs, { asChild: !0, children: u }),
155
+ /* @__PURE__ */ t(
156
+ os,
157
157
  {
158
158
  ref: D,
159
- className: t(j, T),
160
- onEscapeKeyDown: (o) => !A && o.preventDefault(),
161
- noDefaultAnimation: !!c,
159
+ className: e(j, T),
160
+ onEscapeKeyDown: (d) => !A && d.preventDefault(),
161
+ noDefaultAnimation: !!i,
162
162
  backdropFilter: F,
163
163
  overlay: O,
164
164
  children: [
165
- n && I,
166
- /* @__PURE__ */ l(M, { className: "flex max-h-full flex-col overflow-hidden", children: [
167
- !n && I,
168
- f && /* @__PURE__ */ e("div", { className: t("px-6 py-4", B), children: f }),
169
- !i && E
165
+ o && I,
166
+ /* @__PURE__ */ t(M, { className: "ds:flex ds:max-h-full ds:flex-col ds:overflow-hidden", children: [
167
+ !o && I,
168
+ f && /* @__PURE__ */ s("div", { className: e("ds:px-6 ds:py-4", B), children: f }),
169
+ !n && E
170
170
  ] }),
171
- i && E
171
+ n && E
172
172
  ]
173
173
  }
174
174
  )
175
- ] }) : /* @__PURE__ */ l(Y, { open: v, onOpenChange: w, children: [
176
- u && /* @__PURE__ */ e(Z, { asChild: !0, children: u }),
177
- /* @__PURE__ */ l(
178
- ee,
175
+ ] }) : /* @__PURE__ */ t(Y, { open: v, onOpenChange: w, children: [
176
+ u && /* @__PURE__ */ s(Z, { asChild: !0, children: u }),
177
+ /* @__PURE__ */ t(
178
+ ss,
179
179
  {
180
180
  ref: D,
181
- className: t(j, T),
181
+ className: e(j, T),
182
182
  showCloseButton: G,
183
- onEscapeKeyDown: (o) => !A && o.preventDefault(),
184
- onInteractOutside: (o) => !q && o.preventDefault(),
185
- noDefaultAnimation: !!c,
183
+ onEscapeKeyDown: (d) => !A && d.preventDefault(),
184
+ onInteractOutside: (d) => !q && d.preventDefault(),
185
+ noDefaultAnimation: !!i,
186
186
  backdropFilter: F,
187
187
  overlay: O,
188
188
  children: [
189
- n && (a || r) && /* @__PURE__ */ l(
189
+ o && (l || a) && /* @__PURE__ */ t(
190
190
  H,
191
191
  {
192
- className: t({ "py-4 border-b": n }, p),
192
+ className: e({ "ds:py-4 ds:border-b": o }, p),
193
193
  children: [
194
- a && /* @__PURE__ */ e(R, { className: x, children: a }),
195
- r && /* @__PURE__ */ e(K, { className: h, children: r })
194
+ l && /* @__PURE__ */ s(R, { className: x, children: l }),
195
+ a && /* @__PURE__ */ s(K, { className: h, children: a })
196
196
  ]
197
197
  }
198
198
  ),
199
- /* @__PURE__ */ l(M, { className: "flex max-h-full flex-col overflow-hidden", children: [
200
- !n && (a || r) && /* @__PURE__ */ l(H, { className: t("py-4", p), children: [
201
- a && /* @__PURE__ */ e(R, { className: x, children: a }),
202
- r && /* @__PURE__ */ e(K, { className: h, children: r })
199
+ /* @__PURE__ */ t(M, { className: "ds:flex ds:max-h-full ds:flex-col ds:overflow-hidden", children: [
200
+ !o && (l || a) && /* @__PURE__ */ t(H, { className: e("ds:py-4", p), children: [
201
+ l && /* @__PURE__ */ s(R, { className: x, children: l }),
202
+ a && /* @__PURE__ */ s(K, { className: h, children: a })
203
203
  ] }),
204
- f && /* @__PURE__ */ e("div", { className: t("px-6 py-4", B), children: f }),
205
- !i && s && /* @__PURE__ */ e(_, { className: t("py-4", g), children: s })
204
+ f && /* @__PURE__ */ s("div", { className: e("ds:px-6 ds:py-4", B), children: f }),
205
+ !n && r && /* @__PURE__ */ s(_, { className: e("ds:py-4", g), children: r })
206
206
  ] }),
207
- i && s && /* @__PURE__ */ e(
207
+ n && r && /* @__PURE__ */ s(
208
208
  _,
209
209
  {
210
- className: t({ "py-4 border-t": i }, g),
211
- children: s
210
+ className: e({ "ds:py-4 ds:border-t": n }, g),
211
+ children: r
212
212
  }
213
213
  )
214
214
  ]
@@ -216,8 +216,8 @@ const ue = {
216
216
  )
217
217
  ] });
218
218
  });
219
- ge.displayName = "Dialog";
219
+ gs.displayName = "Dialog";
220
220
  export {
221
- ge as default
221
+ gs as default
222
222
  };
223
223
  //# sourceMappingURL=Dialog.js.map