shad-m 1.0.2 → 1.0.3

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 (613) hide show
  1. package/dist/assets/Animation/index.js +180 -0
  2. package/dist/assets/Animation/index.js.map +1 -0
  3. package/dist/assets/Animation/index.mjs +79 -0
  4. package/dist/assets/Animation/index.mjs.map +1 -0
  5. package/dist/assets/Icon/index.js +2102 -0
  6. package/dist/assets/Icon/index.js.map +1 -0
  7. package/dist/assets/Icon/index.mjs +421 -0
  8. package/dist/assets/Icon/index.mjs.map +1 -0
  9. package/dist/assets/Image/index.js +755 -0
  10. package/dist/assets/Image/index.js.map +1 -0
  11. package/dist/assets/Image/index.mjs +150 -0
  12. package/dist/assets/Image/index.mjs.map +1 -0
  13. package/dist/common/display/countdown.js +68 -0
  14. package/dist/common/display/countdown.js.map +1 -0
  15. package/dist/common/display/countdown.mjs +46 -0
  16. package/dist/common/display/countdown.mjs.map +1 -0
  17. package/dist/common/display/display-field-group.js +91 -0
  18. package/dist/common/display/display-field-group.js.map +1 -0
  19. package/dist/common/display/display-field-group.mjs +89 -0
  20. package/dist/common/display/display-field-group.mjs.map +1 -0
  21. package/dist/common/display/display-field.js +46 -0
  22. package/dist/common/display/display-field.js.map +1 -0
  23. package/dist/common/display/display-field.mjs +40 -0
  24. package/dist/common/display/display-field.mjs.map +1 -0
  25. package/dist/common/display/display-html-string.js +52 -0
  26. package/dist/common/display/display-html-string.js.map +1 -0
  27. package/dist/common/display/display-html-string.mjs +30 -0
  28. package/dist/common/display/display-html-string.mjs.map +1 -0
  29. package/dist/common/display/index.js +59 -0
  30. package/dist/common/display/index.js.map +1 -0
  31. package/dist/common/display/index.mjs +10 -0
  32. package/dist/common/display/index.mjs.map +1 -0
  33. package/dist/common/display/page-breadcrumb.js +43 -0
  34. package/dist/common/display/page-breadcrumb.js.map +1 -0
  35. package/dist/common/display/page-breadcrumb.mjs +37 -0
  36. package/dist/common/display/page-breadcrumb.mjs.map +1 -0
  37. package/dist/common/display/page-v2.js +58 -0
  38. package/dist/common/display/page-v2.js.map +1 -0
  39. package/dist/common/display/page-v2.mjs +20 -0
  40. package/dist/common/display/page-v2.mjs.map +1 -0
  41. package/dist/common/display/page.js +155 -0
  42. package/dist/common/display/page.js.map +1 -0
  43. package/dist/common/display/page.mjs +138 -0
  44. package/dist/common/display/page.mjs.map +1 -0
  45. package/dist/common/display/score-meter.js +161 -0
  46. package/dist/common/display/score-meter.js.map +1 -0
  47. package/dist/common/display/score-meter.mjs +140 -0
  48. package/dist/common/display/score-meter.mjs.map +1 -0
  49. package/dist/common/display/sidebar/app-sidebar.js +114 -0
  50. package/dist/common/display/sidebar/app-sidebar.js.map +1 -0
  51. package/dist/common/display/sidebar/app-sidebar.mjs +92 -0
  52. package/dist/common/display/sidebar/app-sidebar.mjs.map +1 -0
  53. package/dist/common/display/sidebar/index.js +89 -0
  54. package/dist/common/display/sidebar/index.js.map +1 -0
  55. package/dist/common/display/sidebar/index.mjs +81 -0
  56. package/dist/common/display/sidebar/index.mjs.map +1 -0
  57. package/dist/common/display/sidebar/nav-main.js +406 -0
  58. package/dist/common/display/sidebar/nav-main.js.map +1 -0
  59. package/dist/common/display/sidebar/nav-main.mjs +400 -0
  60. package/dist/common/display/sidebar/nav-main.mjs.map +1 -0
  61. package/dist/common/display/sidebar/sidebar-sheet.js +140 -0
  62. package/dist/common/display/sidebar/sidebar-sheet.js.map +1 -0
  63. package/dist/common/display/sidebar/sidebar-sheet.mjs +118 -0
  64. package/dist/common/display/sidebar/sidebar-sheet.mjs.map +1 -0
  65. package/dist/common/display/sidebar/types.js +4 -0
  66. package/dist/common/display/sidebar/types.js.map +1 -0
  67. package/dist/common/display/sidebar/types.mjs +3 -0
  68. package/dist/common/display/sidebar/types.mjs.map +1 -0
  69. package/dist/common/display/status-state.js +97 -0
  70. package/dist/common/display/status-state.js.map +1 -0
  71. package/dist/common/display/status-state.mjs +88 -0
  72. package/dist/common/display/status-state.mjs.map +1 -0
  73. package/dist/common/forms/auto-form.js +101 -0
  74. package/dist/common/forms/auto-form.js.map +1 -0
  75. package/dist/common/forms/auto-form.mjs +78 -0
  76. package/dist/common/forms/auto-form.mjs.map +1 -0
  77. package/dist/common/forms/form-field.js +58 -0
  78. package/dist/common/forms/form-field.js.map +1 -0
  79. package/dist/common/forms/form-field.mjs +56 -0
  80. package/dist/common/forms/form-field.mjs.map +1 -0
  81. package/dist/common/forms/form-input-field.js +64 -0
  82. package/dist/common/forms/form-input-field.js.map +1 -0
  83. package/dist/common/forms/form-input-field.mjs +62 -0
  84. package/dist/common/forms/form-input-field.mjs.map +1 -0
  85. package/dist/common/forms/index.js +22 -0
  86. package/dist/common/forms/index.js.map +1 -0
  87. package/dist/common/forms/index.mjs +5 -0
  88. package/dist/common/forms/index.mjs.map +1 -0
  89. package/dist/common/forms/switch-field.js +106 -0
  90. package/dist/common/forms/switch-field.js.map +1 -0
  91. package/dist/common/forms/switch-field.mjs +104 -0
  92. package/dist/common/forms/switch-field.mjs.map +1 -0
  93. package/dist/common/interactive/alert-dialog-wrapper.js +141 -0
  94. package/dist/common/interactive/alert-dialog-wrapper.js.map +1 -0
  95. package/dist/common/interactive/alert-dialog-wrapper.mjs +119 -0
  96. package/dist/common/interactive/alert-dialog-wrapper.mjs.map +1 -0
  97. package/dist/common/interactive/autocomplete.js +178 -0
  98. package/dist/common/interactive/autocomplete.js.map +1 -0
  99. package/dist/common/interactive/autocomplete.mjs +157 -0
  100. package/dist/common/interactive/autocomplete.mjs.map +1 -0
  101. package/dist/common/interactive/copy-tooltip.js +152 -0
  102. package/dist/common/interactive/copy-tooltip.js.map +1 -0
  103. package/dist/common/interactive/copy-tooltip.mjs +143 -0
  104. package/dist/common/interactive/copy-tooltip.mjs.map +1 -0
  105. package/dist/common/interactive/date-field.js +303 -0
  106. package/dist/common/interactive/date-field.js.map +1 -0
  107. package/dist/common/interactive/date-field.mjs +281 -0
  108. package/dist/common/interactive/date-field.mjs.map +1 -0
  109. package/dist/common/interactive/date-input/date-input.js +68 -0
  110. package/dist/common/interactive/date-input/date-input.js.map +1 -0
  111. package/dist/common/interactive/date-input/date-input.mjs +62 -0
  112. package/dist/common/interactive/date-input/date-input.mjs.map +1 -0
  113. package/dist/common/interactive/date-input/index.js +17 -0
  114. package/dist/common/interactive/date-input/index.js.map +1 -0
  115. package/dist/common/interactive/date-input/index.mjs +4 -0
  116. package/dist/common/interactive/date-input/index.mjs.map +1 -0
  117. package/dist/common/interactive/date-input/types.js +4 -0
  118. package/dist/common/interactive/date-input/types.js.map +1 -0
  119. package/dist/common/interactive/date-input/types.mjs +3 -0
  120. package/dist/common/interactive/date-input/types.mjs.map +1 -0
  121. package/dist/common/interactive/date-input/use-typed-date.js +478 -0
  122. package/dist/common/interactive/date-input/use-typed-date.js.map +1 -0
  123. package/dist/common/interactive/date-input/use-typed-date.mjs +476 -0
  124. package/dist/common/interactive/date-input/use-typed-date.mjs.map +1 -0
  125. package/dist/common/interactive/date-input/utils.js +34 -0
  126. package/dist/common/interactive/date-input/utils.js.map +1 -0
  127. package/dist/common/interactive/date-input/utils.mjs +29 -0
  128. package/dist/common/interactive/date-input/utils.mjs.map +1 -0
  129. package/dist/common/interactive/date-picker.js +616 -0
  130. package/dist/common/interactive/date-picker.js.map +1 -0
  131. package/dist/common/interactive/date-picker.mjs +594 -0
  132. package/dist/common/interactive/date-picker.mjs.map +1 -0
  133. package/dist/common/interactive/date-range-input/date-range-input.js +82 -0
  134. package/dist/common/interactive/date-range-input/date-range-input.js.map +1 -0
  135. package/dist/common/interactive/date-range-input/date-range-input.mjs +76 -0
  136. package/dist/common/interactive/date-range-input/date-range-input.mjs.map +1 -0
  137. package/dist/common/interactive/date-range-input/index.js +12 -0
  138. package/dist/common/interactive/date-range-input/index.js.map +1 -0
  139. package/dist/common/interactive/date-range-input/index.mjs +3 -0
  140. package/dist/common/interactive/date-range-input/index.mjs.map +1 -0
  141. package/dist/common/interactive/date-range-input/types.js +4 -0
  142. package/dist/common/interactive/date-range-input/types.js.map +1 -0
  143. package/dist/common/interactive/date-range-input/types.mjs +3 -0
  144. package/dist/common/interactive/date-range-input/types.mjs.map +1 -0
  145. package/dist/common/interactive/date-range-input/use-typed-date-range.js +602 -0
  146. package/dist/common/interactive/date-range-input/use-typed-date-range.js.map +1 -0
  147. package/dist/common/interactive/date-range-input/use-typed-date-range.mjs +600 -0
  148. package/dist/common/interactive/date-range-input/use-typed-date-range.mjs.map +1 -0
  149. package/dist/common/interactive/date-time-picker.js +215 -0
  150. package/dist/common/interactive/date-time-picker.js.map +1 -0
  151. package/dist/common/interactive/date-time-picker.mjs +213 -0
  152. package/dist/common/interactive/date-time-picker.mjs.map +1 -0
  153. package/dist/common/interactive/dialog-wrapper.js +124 -0
  154. package/dist/common/interactive/dialog-wrapper.js.map +1 -0
  155. package/dist/common/interactive/dialog-wrapper.mjs +102 -0
  156. package/dist/common/interactive/dialog-wrapper.mjs.map +1 -0
  157. package/dist/common/interactive/filter.js +287 -0
  158. package/dist/common/interactive/filter.js.map +1 -0
  159. package/dist/common/interactive/filter.mjs +280 -0
  160. package/dist/common/interactive/filter.mjs.map +1 -0
  161. package/dist/common/interactive/index.js +235 -0
  162. package/dist/common/interactive/index.js.map +1 -0
  163. package/dist/common/interactive/index.mjs +24 -0
  164. package/dist/common/interactive/index.mjs.map +1 -0
  165. package/dist/common/interactive/list.js +160 -0
  166. package/dist/common/interactive/list.js.map +1 -0
  167. package/dist/common/interactive/list.mjs +134 -0
  168. package/dist/common/interactive/list.mjs.map +1 -0
  169. package/dist/common/interactive/otp-dialog/index.js +35 -0
  170. package/dist/common/interactive/otp-dialog/index.js.map +1 -0
  171. package/dist/common/interactive/otp-dialog/index.mjs +6 -0
  172. package/dist/common/interactive/otp-dialog/index.mjs.map +1 -0
  173. package/dist/common/interactive/otp-dialog/otp-dialog.js +325 -0
  174. package/dist/common/interactive/otp-dialog/otp-dialog.js.map +1 -0
  175. package/dist/common/interactive/otp-dialog/otp-dialog.mjs +303 -0
  176. package/dist/common/interactive/otp-dialog/otp-dialog.mjs.map +1 -0
  177. package/dist/common/interactive/otp-dialog/reducer.js +40 -0
  178. package/dist/common/interactive/otp-dialog/reducer.js.map +1 -0
  179. package/dist/common/interactive/otp-dialog/reducer.mjs +37 -0
  180. package/dist/common/interactive/otp-dialog/reducer.mjs.map +1 -0
  181. package/dist/common/interactive/otp-dialog/types.js +15 -0
  182. package/dist/common/interactive/otp-dialog/types.js.map +1 -0
  183. package/dist/common/interactive/otp-dialog/types.mjs +13 -0
  184. package/dist/common/interactive/otp-dialog/types.mjs.map +1 -0
  185. package/dist/common/interactive/otp-dialog/utils.js +24 -0
  186. package/dist/common/interactive/otp-dialog/utils.js.map +1 -0
  187. package/dist/common/interactive/otp-dialog/utils.mjs +21 -0
  188. package/dist/common/interactive/otp-dialog/utils.mjs.map +1 -0
  189. package/dist/common/interactive/pagination/PaginationSkeleton.js +51 -0
  190. package/dist/common/interactive/pagination/PaginationSkeleton.js.map +1 -0
  191. package/dist/common/interactive/pagination/PaginationSkeleton.mjs +49 -0
  192. package/dist/common/interactive/pagination/PaginationSkeleton.mjs.map +1 -0
  193. package/dist/common/interactive/pagination/index.js +235 -0
  194. package/dist/common/interactive/pagination/index.js.map +1 -0
  195. package/dist/common/interactive/pagination/index.mjs +223 -0
  196. package/dist/common/interactive/pagination/index.mjs.map +1 -0
  197. package/dist/common/interactive/pagination/usePagination.js +28 -0
  198. package/dist/common/interactive/pagination/usePagination.js.map +1 -0
  199. package/dist/common/interactive/pagination/usePagination.mjs +25 -0
  200. package/dist/common/interactive/pagination/usePagination.mjs.map +1 -0
  201. package/dist/common/interactive/popover-wrapper.js +138 -0
  202. package/dist/common/interactive/popover-wrapper.js.map +1 -0
  203. package/dist/common/interactive/popover-wrapper.mjs +116 -0
  204. package/dist/common/interactive/popover-wrapper.mjs.map +1 -0
  205. package/dist/common/interactive/pressable.js +84 -0
  206. package/dist/common/interactive/pressable.js.map +1 -0
  207. package/dist/common/interactive/pressable.mjs +62 -0
  208. package/dist/common/interactive/pressable.mjs.map +1 -0
  209. package/dist/common/interactive/select/context.js +38 -0
  210. package/dist/common/interactive/select/context.js.map +1 -0
  211. package/dist/common/interactive/select/context.mjs +14 -0
  212. package/dist/common/interactive/select/context.mjs.map +1 -0
  213. package/dist/common/interactive/select/index.js +123 -0
  214. package/dist/common/interactive/select/index.js.map +1 -0
  215. package/dist/common/interactive/select/index.mjs +18 -0
  216. package/dist/common/interactive/select/index.mjs.map +1 -0
  217. package/dist/common/interactive/select/select-body.js +89 -0
  218. package/dist/common/interactive/select/select-body.js.map +1 -0
  219. package/dist/common/interactive/select/select-body.mjs +67 -0
  220. package/dist/common/interactive/select/select-body.mjs.map +1 -0
  221. package/dist/common/interactive/select/select-close.js +38 -0
  222. package/dist/common/interactive/select/select-close.js.map +1 -0
  223. package/dist/common/interactive/select/select-close.mjs +16 -0
  224. package/dist/common/interactive/select/select-close.mjs.map +1 -0
  225. package/dist/common/interactive/select/select-content-auto-layout.js +221 -0
  226. package/dist/common/interactive/select/select-content-auto-layout.js.map +1 -0
  227. package/dist/common/interactive/select/select-content-auto-layout.mjs +199 -0
  228. package/dist/common/interactive/select/select-content-auto-layout.mjs.map +1 -0
  229. package/dist/common/interactive/select/select-content-group-auto-layout.js +411 -0
  230. package/dist/common/interactive/select/select-content-group-auto-layout.js.map +1 -0
  231. package/dist/common/interactive/select/select-content-group-auto-layout.mjs +389 -0
  232. package/dist/common/interactive/select/select-content-group-auto-layout.mjs.map +1 -0
  233. package/dist/common/interactive/select/select-content.js +187 -0
  234. package/dist/common/interactive/select/select-content.js.map +1 -0
  235. package/dist/common/interactive/select/select-content.mjs +165 -0
  236. package/dist/common/interactive/select/select-content.mjs.map +1 -0
  237. package/dist/common/interactive/select/select-footer.js +82 -0
  238. package/dist/common/interactive/select/select-footer.js.map +1 -0
  239. package/dist/common/interactive/select/select-footer.mjs +60 -0
  240. package/dist/common/interactive/select/select-footer.mjs.map +1 -0
  241. package/dist/common/interactive/select/select-item.js +214 -0
  242. package/dist/common/interactive/select/select-item.js.map +1 -0
  243. package/dist/common/interactive/select/select-item.mjs +191 -0
  244. package/dist/common/interactive/select/select-item.mjs.map +1 -0
  245. package/dist/common/interactive/select/select-layout.js +66 -0
  246. package/dist/common/interactive/select/select-layout.js.map +1 -0
  247. package/dist/common/interactive/select/select-layout.mjs +41 -0
  248. package/dist/common/interactive/select/select-layout.mjs.map +1 -0
  249. package/dist/common/interactive/select/select-search.js +55 -0
  250. package/dist/common/interactive/select/select-search.js.map +1 -0
  251. package/dist/common/interactive/select/select-search.mjs +33 -0
  252. package/dist/common/interactive/select/select-search.mjs.map +1 -0
  253. package/dist/common/interactive/select/select-states.js +57 -0
  254. package/dist/common/interactive/select/select-states.js.map +1 -0
  255. package/dist/common/interactive/select/select-states.mjs +34 -0
  256. package/dist/common/interactive/select/select-states.mjs.map +1 -0
  257. package/dist/common/interactive/select/select-trigger.js +310 -0
  258. package/dist/common/interactive/select/select-trigger.js.map +1 -0
  259. package/dist/common/interactive/select/select-trigger.mjs +286 -0
  260. package/dist/common/interactive/select/select-trigger.mjs.map +1 -0
  261. package/dist/common/interactive/select/select-value.js +52 -0
  262. package/dist/common/interactive/select/select-value.js.map +1 -0
  263. package/dist/common/interactive/select/select-value.mjs +30 -0
  264. package/dist/common/interactive/select/select-value.mjs.map +1 -0
  265. package/dist/common/interactive/select/select.js +184 -0
  266. package/dist/common/interactive/select/select.js.map +1 -0
  267. package/dist/common/interactive/select/select.mjs +162 -0
  268. package/dist/common/interactive/select/select.mjs.map +1 -0
  269. package/dist/common/interactive/select/types.js +4 -0
  270. package/dist/common/interactive/select/types.js.map +1 -0
  271. package/dist/common/interactive/select/types.mjs +3 -0
  272. package/dist/common/interactive/select/types.mjs.map +1 -0
  273. package/dist/common/interactive/select/utils.js +31 -0
  274. package/dist/common/interactive/select/utils.js.map +1 -0
  275. package/dist/common/interactive/select/utils.mjs +28 -0
  276. package/dist/common/interactive/select/utils.mjs.map +1 -0
  277. package/dist/common/interactive/select/variants.js +27 -0
  278. package/dist/common/interactive/select/variants.js.map +1 -0
  279. package/dist/common/interactive/select/variants.mjs +25 -0
  280. package/dist/common/interactive/select/variants.mjs.map +1 -0
  281. package/dist/common/interactive/select-chip.js +76 -0
  282. package/dist/common/interactive/select-chip.js.map +1 -0
  283. package/dist/common/interactive/select-chip.mjs +74 -0
  284. package/dist/common/interactive/select-chip.mjs.map +1 -0
  285. package/dist/common/interactive/select-level.js +236 -0
  286. package/dist/common/interactive/select-level.js.map +1 -0
  287. package/dist/common/interactive/select-level.mjs +230 -0
  288. package/dist/common/interactive/select-level.mjs.map +1 -0
  289. package/dist/common/interactive/select-range.js +211 -0
  290. package/dist/common/interactive/select-range.js.map +1 -0
  291. package/dist/common/interactive/select-range.mjs +209 -0
  292. package/dist/common/interactive/select-range.mjs.map +1 -0
  293. package/dist/common/interactive/select-with-api.js +767 -0
  294. package/dist/common/interactive/select-with-api.js.map +1 -0
  295. package/dist/common/interactive/select-with-api.mjs +758 -0
  296. package/dist/common/interactive/select-with-api.mjs.map +1 -0
  297. package/dist/common/interactive/select.js +15 -0
  298. package/dist/common/interactive/select.js.map +1 -0
  299. package/dist/common/interactive/select.mjs +4 -0
  300. package/dist/common/interactive/select.mjs.map +1 -0
  301. package/dist/common/interactive/sheet-wrapper.js +105 -0
  302. package/dist/common/interactive/sheet-wrapper.js.map +1 -0
  303. package/dist/common/interactive/sheet-wrapper.mjs +83 -0
  304. package/dist/common/interactive/sheet-wrapper.mjs.map +1 -0
  305. package/dist/common/interactive/table/enhanced-table.js +390 -0
  306. package/dist/common/interactive/table/enhanced-table.js.map +1 -0
  307. package/dist/common/interactive/table/enhanced-table.mjs +388 -0
  308. package/dist/common/interactive/table/enhanced-table.mjs.map +1 -0
  309. package/dist/common/interactive/table/index.js +83 -0
  310. package/dist/common/interactive/table/index.js.map +1 -0
  311. package/dist/common/interactive/table/index.mjs +68 -0
  312. package/dist/common/interactive/table/index.mjs.map +1 -0
  313. package/dist/common/interactive/table/table-pagination.js +12 -0
  314. package/dist/common/interactive/table/table-pagination.js.map +1 -0
  315. package/dist/common/interactive/table/table-pagination.mjs +10 -0
  316. package/dist/common/interactive/table/table-pagination.mjs.map +1 -0
  317. package/dist/common/interactive/table/types.js +4 -0
  318. package/dist/common/interactive/table/types.js.map +1 -0
  319. package/dist/common/interactive/table/types.mjs +3 -0
  320. package/dist/common/interactive/table/types.mjs.map +1 -0
  321. package/dist/common/interactive/time-picker.js +313 -0
  322. package/dist/common/interactive/time-picker.js.map +1 -0
  323. package/dist/common/interactive/time-picker.mjs +307 -0
  324. package/dist/common/interactive/time-picker.mjs.map +1 -0
  325. package/dist/common/interactive/types.js +4 -0
  326. package/dist/common/interactive/types.js.map +1 -0
  327. package/dist/common/interactive/types.mjs +3 -0
  328. package/dist/common/interactive/types.mjs.map +1 -0
  329. package/dist/common/pages/page-404.js +16 -0
  330. package/dist/common/pages/page-404.js.map +1 -0
  331. package/dist/common/pages/page-404.mjs +11 -0
  332. package/dist/common/pages/page-404.mjs.map +1 -0
  333. package/dist/common/pages/page-500.js +30 -0
  334. package/dist/common/pages/page-500.js.map +1 -0
  335. package/dist/common/pages/page-500.mjs +25 -0
  336. package/dist/common/pages/page-500.mjs.map +1 -0
  337. package/dist/components/accordion.js +65 -0
  338. package/dist/components/accordion.js.map +1 -0
  339. package/dist/components/accordion.mjs +39 -0
  340. package/dist/components/accordion.mjs.map +1 -0
  341. package/dist/components/alert-dialog.js +231 -0
  342. package/dist/components/alert-dialog.js.map +1 -0
  343. package/dist/components/alert-dialog.mjs +197 -0
  344. package/dist/components/alert-dialog.mjs.map +1 -0
  345. package/dist/components/alert.js +97 -0
  346. package/dist/components/alert.js.map +1 -0
  347. package/dist/components/alert.mjs +72 -0
  348. package/dist/components/alert.mjs.map +1 -0
  349. package/dist/components/aspect-ratio.js +29 -0
  350. package/dist/components/aspect-ratio.js.map +1 -0
  351. package/dist/components/aspect-ratio.mjs +7 -0
  352. package/dist/components/aspect-ratio.mjs.map +1 -0
  353. package/dist/components/avatar.js +64 -0
  354. package/dist/components/avatar.js.map +1 -0
  355. package/dist/components/avatar.mjs +39 -0
  356. package/dist/components/avatar.mjs.map +1 -0
  357. package/dist/components/badge.js +72 -0
  358. package/dist/components/badge.js.map +1 -0
  359. package/dist/components/badge.mjs +69 -0
  360. package/dist/components/badge.mjs.map +1 -0
  361. package/dist/components/breadcrumb.js +109 -0
  362. package/dist/components/breadcrumb.js.map +1 -0
  363. package/dist/components/breadcrumb.mjs +81 -0
  364. package/dist/components/breadcrumb.mjs.map +1 -0
  365. package/dist/components/button.js +250 -0
  366. package/dist/components/button.js.map +1 -0
  367. package/dist/components/button.mjs +226 -0
  368. package/dist/components/button.mjs.map +1 -0
  369. package/dist/components/calendar.js +681 -0
  370. package/dist/components/calendar.js.map +1 -0
  371. package/dist/components/calendar.mjs +659 -0
  372. package/dist/components/calendar.mjs.map +1 -0
  373. package/dist/components/card.js +98 -0
  374. package/dist/components/card.js.map +1 -0
  375. package/dist/components/card.mjs +71 -0
  376. package/dist/components/card.mjs.map +1 -0
  377. package/dist/components/carousel.js +237 -0
  378. package/dist/components/carousel.js.map +1 -0
  379. package/dist/components/carousel.mjs +208 -0
  380. package/dist/components/carousel.mjs.map +1 -0
  381. package/dist/components/chart.js +252 -0
  382. package/dist/components/chart.js.map +1 -0
  383. package/dist/components/chart.mjs +224 -0
  384. package/dist/components/chart.mjs.map +1 -0
  385. package/dist/components/checkbox.js +97 -0
  386. package/dist/components/checkbox.js.map +1 -0
  387. package/dist/components/checkbox.mjs +74 -0
  388. package/dist/components/checkbox.mjs.map +1 -0
  389. package/dist/components/chip.js +88 -0
  390. package/dist/components/chip.js.map +1 -0
  391. package/dist/components/chip.mjs +82 -0
  392. package/dist/components/chip.mjs.map +1 -0
  393. package/dist/components/collapsible.js +33 -0
  394. package/dist/components/collapsible.js.map +1 -0
  395. package/dist/components/collapsible.mjs +9 -0
  396. package/dist/components/collapsible.mjs.map +1 -0
  397. package/dist/components/command.js +125 -0
  398. package/dist/components/command.js.map +1 -0
  399. package/dist/components/command.mjs +95 -0
  400. package/dist/components/command.mjs.map +1 -0
  401. package/dist/components/context-menu.js +168 -0
  402. package/dist/components/context-menu.js.map +1 -0
  403. package/dist/components/context-menu.mjs +131 -0
  404. package/dist/components/context-menu.mjs.map +1 -0
  405. package/dist/components/dialog.js +192 -0
  406. package/dist/components/dialog.js.map +1 -0
  407. package/dist/components/dialog.mjs +159 -0
  408. package/dist/components/dialog.mjs.map +1 -0
  409. package/dist/components/drawer.js +98 -0
  410. package/dist/components/drawer.js.map +1 -0
  411. package/dist/components/drawer.mjs +67 -0
  412. package/dist/components/drawer.mjs.map +1 -0
  413. package/dist/components/dropdown-menu.js +163 -0
  414. package/dist/components/dropdown-menu.js.map +1 -0
  415. package/dist/components/dropdown-menu.mjs +126 -0
  416. package/dist/components/dropdown-menu.mjs.map +1 -0
  417. package/dist/components/form.js +123 -0
  418. package/dist/components/form.js.map +1 -0
  419. package/dist/components/form.mjs +94 -0
  420. package/dist/components/form.mjs.map +1 -0
  421. package/dist/components/hover-card.js +50 -0
  422. package/dist/components/hover-card.js.map +1 -0
  423. package/dist/components/hover-card.mjs +25 -0
  424. package/dist/components/hover-card.mjs.map +1 -0
  425. package/dist/components/input-otp.js +84 -0
  426. package/dist/components/input-otp.js.map +1 -0
  427. package/dist/components/input-otp.mjs +59 -0
  428. package/dist/components/input-otp.mjs.map +1 -0
  429. package/dist/components/input.js +858 -0
  430. package/dist/components/input.js.map +1 -0
  431. package/dist/components/input.mjs +831 -0
  432. package/dist/components/input.mjs.map +1 -0
  433. package/dist/components/label.js +38 -0
  434. package/dist/components/label.js.map +1 -0
  435. package/dist/components/label.mjs +15 -0
  436. package/dist/components/label.mjs.map +1 -0
  437. package/dist/components/lottie.js +59 -0
  438. package/dist/components/lottie.js.map +1 -0
  439. package/dist/components/lottie.mjs +49 -0
  440. package/dist/components/lottie.mjs.map +1 -0
  441. package/dist/components/menubar.js +195 -0
  442. package/dist/components/menubar.js.map +1 -0
  443. package/dist/components/menubar.mjs +157 -0
  444. package/dist/components/menubar.mjs.map +1 -0
  445. package/dist/components/navigation-menu.js +126 -0
  446. package/dist/components/navigation-menu.js.map +1 -0
  447. package/dist/components/navigation-menu.mjs +95 -0
  448. package/dist/components/navigation-menu.mjs.map +1 -0
  449. package/dist/components/pagination.js +112 -0
  450. package/dist/components/pagination.js.map +1 -0
  451. package/dist/components/pagination.mjs +84 -0
  452. package/dist/components/pagination.mjs.map +1 -0
  453. package/dist/components/popover.js +63 -0
  454. package/dist/components/popover.js.map +1 -0
  455. package/dist/components/popover.mjs +38 -0
  456. package/dist/components/popover.mjs.map +1 -0
  457. package/dist/components/progress.js +50 -0
  458. package/dist/components/progress.js.map +1 -0
  459. package/dist/components/progress.mjs +27 -0
  460. package/dist/components/progress.mjs.map +1 -0
  461. package/dist/components/radio-group.js +91 -0
  462. package/dist/components/radio-group.js.map +1 -0
  463. package/dist/components/radio-group.mjs +67 -0
  464. package/dist/components/radio-group.mjs.map +1 -0
  465. package/dist/components/resizable.js +59 -0
  466. package/dist/components/resizable.js.map +1 -0
  467. package/dist/components/resizable.mjs +35 -0
  468. package/dist/components/resizable.mjs.map +1 -0
  469. package/dist/components/responsive-popover.js +74 -0
  470. package/dist/components/responsive-popover.js.map +1 -0
  471. package/dist/components/responsive-popover.mjs +50 -0
  472. package/dist/components/responsive-popover.mjs.map +1 -0
  473. package/dist/components/scroll-area.js +63 -0
  474. package/dist/components/scroll-area.js.map +1 -0
  475. package/dist/components/scroll-area.mjs +39 -0
  476. package/dist/components/scroll-area.mjs.map +1 -0
  477. package/dist/components/separator.js +47 -0
  478. package/dist/components/separator.js.map +1 -0
  479. package/dist/components/separator.mjs +24 -0
  480. package/dist/components/separator.mjs.map +1 -0
  481. package/dist/components/sheet.js +239 -0
  482. package/dist/components/sheet.js.map +1 -0
  483. package/dist/components/sheet.mjs +206 -0
  484. package/dist/components/sheet.mjs.map +1 -0
  485. package/dist/components/sidebar.js +888 -0
  486. package/dist/components/sidebar.js.map +1 -0
  487. package/dist/components/sidebar.mjs +842 -0
  488. package/dist/components/sidebar.mjs.map +1 -0
  489. package/dist/components/skeleton.js +153 -0
  490. package/dist/components/skeleton.js.map +1 -0
  491. package/dist/components/skeleton.mjs +127 -0
  492. package/dist/components/skeleton.mjs.map +1 -0
  493. package/dist/components/slider.js +45 -0
  494. package/dist/components/slider.js.map +1 -0
  495. package/dist/components/slider.mjs +22 -0
  496. package/dist/components/slider.mjs.map +1 -0
  497. package/dist/components/sonner.js +76 -0
  498. package/dist/components/sonner.js.map +1 -0
  499. package/dist/components/sonner.mjs +71 -0
  500. package/dist/components/sonner.mjs.map +1 -0
  501. package/dist/components/spinner.js +59 -0
  502. package/dist/components/spinner.js.map +1 -0
  503. package/dist/components/spinner.mjs +36 -0
  504. package/dist/components/spinner.mjs.map +1 -0
  505. package/dist/components/stepper.js +726 -0
  506. package/dist/components/stepper.js.map +1 -0
  507. package/dist/components/stepper.mjs +702 -0
  508. package/dist/components/stepper.mjs.map +1 -0
  509. package/dist/components/switch.js +85 -0
  510. package/dist/components/switch.js.map +1 -0
  511. package/dist/components/switch.mjs +62 -0
  512. package/dist/components/switch.mjs.map +1 -0
  513. package/dist/components/table.js +91 -0
  514. package/dist/components/table.js.map +1 -0
  515. package/dist/components/table.mjs +62 -0
  516. package/dist/components/table.mjs.map +1 -0
  517. package/dist/components/tabs.js +287 -0
  518. package/dist/components/tabs.js.map +1 -0
  519. package/dist/components/tabs.mjs +261 -0
  520. package/dist/components/tabs.mjs.map +1 -0
  521. package/dist/components/textarea.js +200 -0
  522. package/dist/components/textarea.js.map +1 -0
  523. package/dist/components/textarea.mjs +174 -0
  524. package/dist/components/textarea.mjs.map +1 -0
  525. package/dist/components/toggle-group.js +67 -0
  526. package/dist/components/toggle-group.js.map +1 -0
  527. package/dist/components/toggle-group.mjs +43 -0
  528. package/dist/components/toggle-group.mjs.map +1 -0
  529. package/dist/components/toggle.js +63 -0
  530. package/dist/components/toggle.js.map +1 -0
  531. package/dist/components/toggle.mjs +39 -0
  532. package/dist/components/toggle.mjs.map +1 -0
  533. package/dist/components/tooltip.js +172 -0
  534. package/dist/components/tooltip.js.map +1 -0
  535. package/dist/components/tooltip.mjs +145 -0
  536. package/dist/components/tooltip.mjs.map +1 -0
  537. package/dist/hooks/index.js +27 -0
  538. package/dist/hooks/index.js.map +1 -0
  539. package/dist/hooks/index.mjs +6 -0
  540. package/dist/hooks/index.mjs.map +1 -0
  541. package/dist/hooks/useCopyToClipboard.js +59 -0
  542. package/dist/hooks/useCopyToClipboard.js.map +1 -0
  543. package/dist/hooks/useCopyToClipboard.mjs +57 -0
  544. package/dist/hooks/useCopyToClipboard.mjs.map +1 -0
  545. package/dist/hooks/useDevice.js +20 -0
  546. package/dist/hooks/useDevice.js.map +1 -0
  547. package/dist/hooks/useDevice.mjs +14 -0
  548. package/dist/hooks/useDevice.mjs.map +1 -0
  549. package/dist/hooks/useDialogTracking.js +113 -0
  550. package/dist/hooks/useDialogTracking.js.map +1 -0
  551. package/dist/hooks/useDialogTracking.mjs +91 -0
  552. package/dist/hooks/useDialogTracking.mjs.map +1 -0
  553. package/dist/hooks/useIsMounted.js +15 -0
  554. package/dist/hooks/useIsMounted.js.map +1 -0
  555. package/dist/hooks/useIsMounted.mjs +13 -0
  556. package/dist/hooks/useIsMounted.mjs.map +1 -0
  557. package/dist/hooks/usePathname.js +85 -0
  558. package/dist/hooks/usePathname.js.map +1 -0
  559. package/dist/hooks/usePathname.mjs +83 -0
  560. package/dist/hooks/usePathname.mjs.map +1 -0
  561. package/dist/icons.js +14 -0
  562. package/dist/icons.js.map +1 -0
  563. package/dist/icons.mjs +3 -0
  564. package/dist/icons.mjs.map +1 -0
  565. package/dist/index.d.ts +4 -0
  566. package/dist/index.d.ts.map +1 -1
  567. package/dist/index.js +403 -8151
  568. package/dist/index.js.map +1 -1
  569. package/dist/index.mjs +62 -7844
  570. package/dist/index.mjs.map +1 -1
  571. package/dist/lib/formatCurrency.js +187 -0
  572. package/dist/lib/formatCurrency.js.map +1 -0
  573. package/dist/lib/formatCurrency.mjs +185 -0
  574. package/dist/lib/formatCurrency.mjs.map +1 -0
  575. package/dist/lib/helpers.js +171 -0
  576. package/dist/lib/helpers.js.map +1 -0
  577. package/dist/lib/helpers.mjs +157 -0
  578. package/dist/lib/helpers.mjs.map +1 -0
  579. package/dist/lib/index.js +33 -0
  580. package/dist/lib/index.js.map +1 -0
  581. package/dist/lib/index.mjs +6 -0
  582. package/dist/lib/index.mjs.map +1 -0
  583. package/dist/lib/types.js +11 -0
  584. package/dist/lib/types.js.map +1 -0
  585. package/dist/lib/types.mjs +9 -0
  586. package/dist/lib/types.mjs.map +1 -0
  587. package/dist/lib/utils.js +24 -0
  588. package/dist/lib/utils.js.map +1 -0
  589. package/dist/lib/utils.mjs +19 -0
  590. package/dist/lib/utils.mjs.map +1 -0
  591. package/dist/providers/DeviceSizeWatcher/index.js +72 -0
  592. package/dist/providers/DeviceSizeWatcher/index.js.map +1 -0
  593. package/dist/providers/DeviceSizeWatcher/index.mjs +47 -0
  594. package/dist/providers/DeviceSizeWatcher/index.mjs.map +1 -0
  595. package/dist/providers/DeviceSizeWatcher/useDeviceSizeStore.js +22 -0
  596. package/dist/providers/DeviceSizeWatcher/useDeviceSizeStore.js.map +1 -0
  597. package/dist/providers/DeviceSizeWatcher/useDeviceSizeStore.mjs +20 -0
  598. package/dist/providers/DeviceSizeWatcher/useDeviceSizeStore.mjs.map +1 -0
  599. package/dist/providers/UISystemProvider.js +197 -0
  600. package/dist/providers/UISystemProvider.js.map +1 -0
  601. package/dist/providers/UISystemProvider.mjs +188 -0
  602. package/dist/providers/UISystemProvider.mjs.map +1 -0
  603. package/dist/providers/index.js +24 -0
  604. package/dist/providers/index.js.map +1 -0
  605. package/dist/providers/index.mjs +3 -0
  606. package/dist/providers/index.mjs.map +1 -0
  607. package/dist/theme.js +333 -0
  608. package/dist/theme.js.map +1 -0
  609. package/dist/theme.mjs +327 -0
  610. package/dist/theme.mjs.map +1 -0
  611. package/package.json +1 -1
  612. package/dist/index.css +0 -43
  613. package/dist/index.css.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/calendar.tsx"],"names":["currentYear","className","props"],"mappings":"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","file":"calendar.mjs","sourcesContent":["'use client';\n\nimport { Button, buttonVariants } from '@/components/button';\nimport { cn } from '@/lib/utils';\nimport { differenceInCalendarDays, format } from 'date-fns';\nimport { vi, type Locale } from 'date-fns/locale';\nimport { ChevronLeft, ChevronRight, ChevronsLeft, ChevronsRight } from 'lucide-react';\nimport * as React from 'react';\nimport {\n DayPicker,\n labelNext,\n labelPrevious,\n useDayPicker,\n type DayPickerProps,\n} from 'react-day-picker';\n\nexport type CalendarProps = DayPickerProps & {\n /**\n * In the year view, the number of years to display at once.\n * @default 12\n */\n yearRange?: number;\n\n /**\n * Wether to show the year switcher in the caption.\n * @default true\n */\n showYearSwitcher?: boolean;\n\n /**\n * Locale for date formatting and labels.\n * @default vi (Vietnamese)\n */\n locale?: Locale;\n\n /**\n * Callback when the nav view changes (days, months, years)\n */\n onNavViewChange?: (navView: 'days' | 'months' | 'years') => void;\n\n monthsClassName?: string;\n monthCaptionClassName?: string;\n weekdaysClassName?: string;\n weekdayClassName?: string;\n monthClassName?: string;\n captionClassName?: string;\n captionLabelClassName?: string;\n buttonNextClassName?: string;\n buttonPreviousClassName?: string;\n navClassName?: string;\n monthGridClassName?: string;\n weekClassName?: string;\n dayClassName?: string;\n dayButtonClassName?: string;\n rangeStartClassName?: string;\n rangeEndClassName?: string;\n selectedClassName?: string;\n todayClassName?: string;\n outsideClassName?: string;\n disabledClassName?: string;\n rangeMiddleClassName?: string;\n hiddenClassName?: string;\n};\n\ntype NavView = 'days' | 'months' | 'years';\n\n/**\n * A custom calendar component built on top of react-day-picker.\n * @param props The props for the calendar.\n * @default yearRange 12\n * @returns\n */\nfunction Calendar({\n className,\n showOutsideDays = true,\n showYearSwitcher = true,\n yearRange = 12,\n numberOfMonths,\n components,\n locale = vi,\n onNavViewChange,\n ...props\n}: CalendarProps) {\n const { onNextClick, onPrevClick, startMonth, endMonth } = props;\n\n const [navView, setNavView] = React.useState<NavView>('days');\n const [currentCalendarMonth, setCurrentCalendarMonth] = React.useState<Date>(() => {\n // Initialize to current month or defaultMonth if provided\n return props.defaultMonth || new Date();\n });\n\n // Notify parent when navView changes\n React.useEffect(() => {\n onNavViewChange?.(navView);\n }, [navView, onNavViewChange]);\n const [displayYears, setDisplayYears] = React.useState<{\n from: number;\n to: number;\n }>(\n React.useMemo(() => {\n // Use startMonth and endMonth to constrain year range if available\n if (startMonth && endMonth) {\n const minYear = startMonth.getFullYear();\n const maxYear = endMonth.getFullYear();\n\n // Center the display around current year, but constrain to valid range\n const currentYear = new Date().getFullYear();\n const targetCenterYear = Math.max(minYear, Math.min(maxYear, currentYear));\n\n let from = targetCenterYear - Math.floor(yearRange / 2 - 1);\n let to = targetCenterYear + Math.ceil(yearRange / 2);\n\n // Ensure we don't go beyond the allowed range\n from = Math.max(from, minYear);\n to = Math.min(to, maxYear);\n\n // If the range is smaller than yearRange, adjust to show exactly the valid range\n if (to - from + 1 < yearRange) {\n from = minYear;\n to = maxYear;\n }\n\n return { from, to };\n }\n\n // Fallback to original behavior if no constraints\n const currentYear = new Date().getFullYear();\n return {\n from: currentYear - Math.floor(yearRange / 2 - 1),\n to: currentYear + Math.ceil(yearRange / 2),\n };\n }, [yearRange, startMonth, endMonth]),\n );\n\n const columnsDisplayed = navView === 'days' ? numberOfMonths : 1;\n const isSingleMode = !numberOfMonths || numberOfMonths === 1;\n\n const _monthsClassName = cn(\n 'relative flex',\n isSingleMode ? 'w-full' : 'ml-[-4px] w-max',\n props.monthsClassName,\n );\n const _monthCaptionClassName = cn(\n 'relative mx-16 flex h-7 items-center justify-center', // mx-16 for 4 buttons (<<, <, >, >>)\n props.monthCaptionClassName,\n );\n const _weekdaysClassName = cn(\n 'flex flex-row gap-[2px]',\n isSingleMode ? 'w-full' : '',\n props.weekdaysClassName,\n );\n const _weekdayClassName = cn(\n isSingleMode ? 'w-11 text-center' : 'w-8',\n 'text-sm font-medium text-muted-foreground',\n props.weekdayClassName,\n );\n const _monthClassName = cn('w-full', props.monthClassName);\n const _captionClassName = cn(\n 'relative flex items-center justify-center pt-1',\n props.captionClassName,\n );\n const _captionLabelClassName = cn('truncate text-sm font-medium', props.captionLabelClassName);\n const buttonNavClassName = buttonVariants({\n variant: 'outline',\n className: 'absolute h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100',\n });\n const _buttonNextClassName = cn(buttonNavClassName, 'right-0', props.buttonNextClassName);\n const _buttonPreviousClassName = cn(buttonNavClassName, 'left-0', props.buttonPreviousClassName);\n const _navClassName = cn('flex items-start', props.navClassName);\n const _monthGridClassName = cn(\n 'mt-4',\n isSingleMode ? 'w-full' : 'mx-auto',\n props.monthGridClassName,\n );\n const _weekClassName = cn(\n 'mt-1 flex items-start gap-[2px]',\n isSingleMode ? 'w-full' : 'w-max',\n props.weekClassName,\n );\n const _dayClassName = cn(\n 'flex items-center justify-center p-0 text-sm',\n isSingleMode ? 'w-11 h-11' : 'size-8 flex-1',\n props.dayClassName,\n );\n const _dayButtonClassName = cn(\n buttonVariants({ variant: 'ghost' }),\n 'rounded-full p-0 font-medium transition-none aria-selected:opacity-100',\n isSingleMode ? 'w-11 h-11' : 'size-8',\n props.dayButtonClassName,\n );\n const buttonRangeClassName =\n 'bg-primary/10 [&>button]:bg-primary [&>button]:text-primary-foreground [&>button]:hover:bg-primary [&>button]:hover:text-primary-foreground';\n const _rangeStartClassName = cn(\n buttonRangeClassName,\n 'day-range-start rounded-s-full',\n props.rangeStartClassName,\n );\n const _rangeEndClassName = cn(\n buttonRangeClassName,\n 'day-range-end rounded-e-full',\n props.rangeEndClassName,\n );\n const _rangeMiddleClassName = cn(\n 'bg-primary/10 !text-primary !font-medium [&>button]:bg-transparent [&>button]:!text-primary [&>button]:!font-medium [&>button]:hover:bg-transparent [&>button]:hover:!text-foreground',\n props.rangeMiddleClassName,\n );\n const _selectedClassName = cn(\n '[&>button]:bg-primary [&>button]:text-primary-foreground [&>button]:hover:!bg-primary [&>button]:hover:!text-primary-foreground',\n props.selectedClassName,\n );\n const _todayClassName = cn(\n '[&>button]:bg-primary/10 [&>button]:text-accent-foreground [&>button]:hover:bg-accent [&>button]:hover:text-accent-foreground',\n props.todayClassName,\n );\n const _outsideClassName = cn(\n 'day-outside text-muted-foreground opacity-50 aria-selected:bg-primary/10/50 aria-selected:text-muted-foreground aria-selected:opacity-30',\n props.outsideClassName,\n );\n const _disabledClassName = cn('text-muted-foreground opacity-50', props.disabledClassName);\n const _hiddenClassName = cn('invisible flex-1', props.hiddenClassName);\n\n // Custom formatters để hiển thị tháng và thứ dưới dạng ngắn gọn\n const formatters = {\n formatCaption: (date: Date) => {\n return `Tháng ${format(date, 'MM yyyy')}`;\n },\n formatWeekdayName: (date: Date) => {\n const dayNames = ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'];\n return dayNames[date.getDay()] || 'CN';\n },\n };\n\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n locale={locale}\n formatters={formatters}\n className={cn('p-0', className)}\n style={\n navView === 'years'\n ? { width: '274px' }\n : navView === 'months'\n ? { width: '312px' }\n : isSingleMode\n ? { width: '340px' }\n : {\n width: 252 * (columnsDisplayed ?? 1) + 'px',\n }\n }\n classNames={{\n months: _monthsClassName,\n month_caption: _monthCaptionClassName,\n weekdays: _weekdaysClassName,\n weekday: _weekdayClassName,\n month: _monthClassName,\n caption: _captionClassName,\n caption_label: _captionLabelClassName,\n button_next: _buttonNextClassName,\n button_previous: _buttonPreviousClassName,\n nav: _navClassName,\n month_grid: _monthGridClassName,\n week: _weekClassName,\n day: _dayClassName,\n day_button: _dayButtonClassName,\n range_start: _rangeStartClassName,\n range_middle: _rangeMiddleClassName,\n range_end: _rangeEndClassName,\n selected: _selectedClassName,\n today: _todayClassName,\n outside: _outsideClassName,\n disabled: _disabledClassName,\n hidden: _hiddenClassName,\n }}\n components={{\n Chevron: ({ orientation }) => {\n const Icon = orientation === 'left' ? ChevronLeft : ChevronRight;\n return <Icon className=\"h-4 w-4\" />;\n },\n Nav: ({ className }) => (\n <Nav\n className={className}\n displayYears={displayYears}\n navView={navView}\n setDisplayYears={setDisplayYears}\n startMonth={startMonth}\n endMonth={endMonth}\n onPrevClick={onPrevClick}\n onNextClick={onNextClick}\n currentCalendarMonth={currentCalendarMonth}\n setCurrentCalendarMonth={setCurrentCalendarMonth}\n />\n ),\n CaptionLabel: (props) => (\n <CaptionLabel\n showYearSwitcher={showYearSwitcher}\n navView={navView}\n setNavView={setNavView}\n displayYears={displayYears}\n currentCalendarMonth={currentCalendarMonth}\n {...props}\n />\n ),\n MonthGrid: ({ className, children, ...props }) => (\n <MonthGrid\n children={children}\n className={className}\n displayYears={displayYears}\n startMonth={startMonth}\n endMonth={endMonth}\n navView={navView}\n setNavView={setNavView}\n currentCalendarMonth={currentCalendarMonth}\n setCurrentCalendarMonth={setCurrentCalendarMonth}\n {...props}\n />\n ),\n ...components,\n }}\n numberOfMonths={columnsDisplayed}\n {...props}\n />\n );\n}\nCalendar.displayName = 'Calendar';\n\nfunction Nav({\n className,\n navView,\n startMonth,\n endMonth,\n displayYears,\n setDisplayYears,\n onPrevClick,\n onNextClick,\n currentCalendarMonth,\n setCurrentCalendarMonth,\n}: {\n className?: string;\n navView: NavView;\n startMonth?: Date;\n endMonth?: Date;\n displayYears: { from: number; to: number };\n setDisplayYears: React.Dispatch<React.SetStateAction<{ from: number; to: number }>>;\n onPrevClick?: (date: Date) => void;\n onNextClick?: (date: Date) => void;\n currentCalendarMonth: Date;\n setCurrentCalendarMonth: React.Dispatch<React.SetStateAction<Date>>;\n}) {\n const { nextMonth, previousMonth, goToMonth } = useDayPicker();\n const currentDate = new Date();\n\n const isPreviousDisabled = (() => {\n if (navView === 'months') {\n return true; // Disable previous navigation in months view\n }\n if (navView === 'years') {\n return (\n (startMonth &&\n differenceInCalendarDays(new Date(displayYears.from - 1, 0, 1), startMonth) < 0) ||\n (endMonth && differenceInCalendarDays(new Date(displayYears.from - 1, 0, 1), endMonth) > 0)\n );\n }\n return !previousMonth;\n })();\n\n const isNextDisabled = (() => {\n if (navView === 'months') {\n return true; // Disable next navigation in months view\n }\n if (navView === 'years') {\n return (\n (startMonth &&\n differenceInCalendarDays(new Date(displayYears.to + 1, 0, 1), startMonth) < 0) ||\n (endMonth && differenceInCalendarDays(new Date(displayYears.to + 1, 0, 1), endMonth) > 0)\n );\n }\n return !nextMonth;\n })();\n\n const handlePreviousClick = React.useCallback(() => {\n if (navView === 'months') {\n return; // Do nothing when in months view\n }\n if (navView === 'years') {\n const yearRange = displayYears.to - displayYears.from + 1;\n const newFrom = displayYears.from - yearRange;\n const newTo = displayYears.to - yearRange;\n\n // Constrain to valid range if startMonth is provided\n const minYear = startMonth?.getFullYear();\n const constrainedFrom = minYear !== undefined ? Math.max(newFrom, minYear) : newFrom;\n const constrainedTo =\n minYear !== undefined ? Math.max(newTo, minYear + yearRange - 1) : newTo;\n\n setDisplayYears({\n from: constrainedFrom,\n to: constrainedTo,\n });\n\n onPrevClick?.(new Date(constrainedFrom, 0, 1));\n return;\n }\n if (!previousMonth) return;\n setCurrentCalendarMonth(previousMonth);\n goToMonth(previousMonth);\n onPrevClick?.(previousMonth);\n }, [\n previousMonth,\n goToMonth,\n navView,\n currentDate,\n displayYears,\n setDisplayYears,\n onPrevClick,\n startMonth,\n setCurrentCalendarMonth,\n ]);\n\n const handleNextClick = React.useCallback(() => {\n if (navView === 'months') {\n return; // Do nothing when in months view\n }\n if (navView === 'years') {\n const yearRange = displayYears.to - displayYears.from + 1;\n const newFrom = displayYears.from + yearRange;\n const newTo = displayYears.to + yearRange;\n\n // Constrain to valid range if endMonth is provided\n const maxYear = endMonth?.getFullYear();\n const constrainedFrom =\n maxYear !== undefined ? Math.min(newFrom, maxYear - yearRange + 1) : newFrom;\n const constrainedTo = maxYear !== undefined ? Math.min(newTo, maxYear) : newTo;\n\n setDisplayYears({\n from: constrainedFrom,\n to: constrainedTo,\n });\n\n onNextClick?.(new Date(constrainedTo, 0, 1));\n return;\n }\n if (!nextMonth) return;\n setCurrentCalendarMonth(nextMonth);\n goToMonth(nextMonth);\n onNextClick?.(nextMonth);\n }, [\n goToMonth,\n nextMonth,\n navView,\n currentDate,\n displayYears,\n setDisplayYears,\n onNextClick,\n endMonth,\n setCurrentCalendarMonth,\n ]);\n\n // Fast navigation: Jump 2 years\n const handleFastPreviousClick = React.useCallback(() => {\n if (navView !== 'years') return;\n const yearRange = displayYears.to - displayYears.from + 1;\n const newFrom = displayYears.from - yearRange * 2;\n const newTo = displayYears.to - yearRange * 2;\n\n const minYear = startMonth?.getFullYear();\n const constrainedFrom = minYear !== undefined ? Math.max(newFrom, minYear) : newFrom;\n const constrainedTo = minYear !== undefined ? Math.max(newTo, minYear + yearRange - 1) : newTo;\n\n setDisplayYears({ from: constrainedFrom, to: constrainedTo });\n onPrevClick?.(new Date(constrainedFrom, 0, 1));\n }, [navView, displayYears, startMonth, setDisplayYears, onPrevClick]);\n\n const handleFastNextClick = React.useCallback(() => {\n if (navView !== 'years') return;\n const yearRange = displayYears.to - displayYears.from + 1;\n const newFrom = displayYears.from + yearRange * 2;\n const newTo = displayYears.to + yearRange * 2;\n\n const maxYear = endMonth?.getFullYear();\n const constrainedFrom =\n maxYear !== undefined ? Math.min(newFrom, maxYear - yearRange + 1) : newFrom;\n const constrainedTo = maxYear !== undefined ? Math.min(newTo, maxYear) : newTo;\n\n setDisplayYears({ from: constrainedFrom, to: constrainedTo });\n onNextClick?.(new Date(constrainedTo, 0, 1));\n }, [navView, displayYears, endMonth, setDisplayYears, onNextClick]);\n\n const isFastPreviousDisabled = navView !== 'years' || isPreviousDisabled;\n const isFastNextDisabled = navView !== 'years' || isNextDisabled;\n\n return (\n <nav className={cn('flex items-center justify-between', className)}>\n {/* Fast Previous (<<) - Only in years view */}\n {navView === 'years' && (\n <Button\n variant=\"outline\"\n className=\"absolute left-0 h-7 w-7 bg-transparent p-0 opacity-80 hover:opacity-100\"\n type=\"button\"\n tabIndex={isFastPreviousDisabled ? undefined : -1}\n disabled={isFastPreviousDisabled}\n aria-label=\"Go back 2 year ranges\"\n onClick={handleFastPreviousClick}\n >\n <ChevronsLeft className=\"h-4 w-4\" />\n </Button>\n )}\n\n {/* Previous (<) */}\n <Button\n variant=\"outline\"\n className={cn(\n 'absolute h-7 w-7 bg-transparent p-0 opacity-80 hover:opacity-100',\n navView === 'years' ? 'left-8' : 'left-0',\n )}\n type=\"button\"\n tabIndex={isPreviousDisabled ? undefined : -1}\n disabled={isPreviousDisabled}\n aria-label={\n navView === 'years'\n ? `Go to the previous ${displayYears.to - displayYears.from + 1} years`\n : navView === 'months'\n ? 'Go to the previous year'\n : labelPrevious(previousMonth)\n }\n onClick={handlePreviousClick}\n >\n <ChevronLeft className=\"h-4 w-4\" />\n </Button>\n\n {/* Next (>) */}\n <Button\n variant=\"outline\"\n className={cn(\n 'absolute h-7 w-7 bg-transparent p-0 opacity-80 hover:opacity-100',\n navView === 'years' ? 'right-8' : 'right-0',\n )}\n type=\"button\"\n tabIndex={isNextDisabled ? undefined : -1}\n disabled={isNextDisabled}\n aria-label={\n navView === 'years'\n ? `Go to the next ${displayYears.to - displayYears.from + 1} years`\n : navView === 'months'\n ? 'Go to the next year'\n : labelNext(nextMonth)\n }\n onClick={handleNextClick}\n >\n <ChevronRight className=\"h-4 w-4\" />\n </Button>\n\n {/* Fast Next (>>) - Only in years view */}\n {navView === 'years' && (\n <Button\n variant=\"outline\"\n className=\"absolute right-0 h-7 w-7 bg-transparent p-0 opacity-80 hover:opacity-100\"\n type=\"button\"\n tabIndex={isFastNextDisabled ? undefined : -1}\n disabled={isFastNextDisabled}\n aria-label=\"Go forward 2 year ranges\"\n onClick={handleFastNextClick}\n >\n <ChevronsRight className=\"h-4 w-4\" />\n </Button>\n )}\n </nav>\n );\n}\n\nfunction CaptionLabel({\n children,\n showYearSwitcher,\n navView,\n setNavView,\n displayYears,\n currentCalendarMonth,\n ...props\n}: {\n showYearSwitcher?: boolean;\n navView: NavView;\n setNavView: React.Dispatch<React.SetStateAction<NavView>>;\n displayYears: { from: number; to: number };\n currentCalendarMonth?: Date;\n} & React.HTMLAttributes<HTMLSpanElement>) {\n const currentDate = new Date();\n\n if (!showYearSwitcher) return <span {...props}>{children}</span>;\n\n const handleMonthsClick = () => {\n setNavView(navView === 'months' ? 'days' : 'months');\n };\n\n const handleYearsClick = () => {\n setNavView(navView === 'years' ? 'days' : 'years');\n };\n\n const getDisplayText = () => {\n switch (navView) {\n case 'days':\n return children;\n case 'months':\n return currentCalendarMonth?.getFullYear() || currentDate.getFullYear();\n case 'years':\n return displayYears.from + ' - ' + displayYears.to;\n default:\n return children;\n }\n };\n\n // If we're in months or years view, show back to days button\n if (navView === 'months' || navView === 'years') {\n return (\n <Button\n className=\"h-7 w-full truncate text-sm font-medium\"\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => setNavView('days')}\n >\n {getDisplayText()}\n </Button>\n );\n }\n\n // If we're in days view, show both months and years buttons\n const childrenStr = children?.toString() || '';\n const parts = childrenStr.split(' ');\n\n // Extract month and year from format \"Tháng 06 2025\"\n const monthPart = parts.length >= 2 ? `${parts[0]} ${parts[1]}` : parts[0] || 'Tháng';\n const yearPart =\n parts.length >= 3 ? parts[2] : parts[parts.length - 1] || currentDate.getFullYear().toString();\n\n return (\n <div className=\"flex w-full gap-1\">\n <Button\n className=\"h-7 flex-1 truncate text-sm font-medium\"\n variant=\"ghost\"\n size=\"sm\"\n onClick={handleMonthsClick}\n title=\"Chọn tháng\"\n >\n {monthPart}\n </Button>\n <Button\n className=\"h-7 flex-1 truncate text-sm font-medium\"\n variant=\"ghost\"\n size=\"sm\"\n onClick={handleYearsClick}\n title=\"Chọn năm\"\n >\n {yearPart}\n </Button>\n </div>\n );\n}\n\nfunction MonthGrid({\n className,\n children,\n displayYears,\n startMonth,\n endMonth,\n navView,\n setNavView,\n currentCalendarMonth,\n setCurrentCalendarMonth,\n ...props\n}: {\n className?: string;\n children: React.ReactNode;\n displayYears: { from: number; to: number };\n startMonth?: Date;\n endMonth?: Date;\n navView: NavView;\n setNavView: React.Dispatch<React.SetStateAction<NavView>>;\n currentCalendarMonth: Date;\n setCurrentCalendarMonth: React.Dispatch<React.SetStateAction<Date>>;\n} & React.TableHTMLAttributes<HTMLTableElement>) {\n if (navView === 'years') {\n return (\n <YearGrid\n displayYears={displayYears}\n startMonth={startMonth}\n endMonth={endMonth}\n setNavView={setNavView}\n navView={navView}\n className={className}\n currentCalendarMonth={currentCalendarMonth}\n setCurrentCalendarMonth={setCurrentCalendarMonth}\n {...props}\n />\n );\n }\n\n if (navView === 'months') {\n return (\n <MonthsGrid\n startMonth={startMonth}\n endMonth={endMonth}\n setNavView={setNavView}\n navView={navView}\n className={className}\n currentCalendarMonth={currentCalendarMonth}\n setCurrentCalendarMonth={setCurrentCalendarMonth}\n {...props}\n />\n );\n }\n\n return (\n <table className={className} {...props}>\n {children}\n </table>\n );\n}\n\nfunction YearGrid({\n className,\n displayYears,\n startMonth,\n endMonth,\n setNavView,\n navView,\n currentCalendarMonth,\n setCurrentCalendarMonth,\n ...props\n}: {\n className?: string;\n displayYears: { from: number; to: number };\n startMonth?: Date;\n endMonth?: Date;\n setNavView: React.Dispatch<React.SetStateAction<NavView>>;\n navView: NavView;\n currentCalendarMonth: Date;\n setCurrentCalendarMonth: React.Dispatch<React.SetStateAction<Date>>;\n} & React.HTMLAttributes<HTMLDivElement>) {\n const { goToMonth, selected } = useDayPicker();\n\n return (\n <div className={cn('mx-auto grid w-full grid-cols-4 gap-1 px-3', className)} {...props}>\n {Array.from({ length: displayYears.to - displayYears.from + 1 }, (_, i) => {\n const isBefore =\n differenceInCalendarDays(new Date(displayYears.from + i, 11, 31), startMonth!) < 0;\n\n const isAfter =\n differenceInCalendarDays(new Date(displayYears.from + i, 0, 0), endMonth!) > 0;\n\n const isDisabled = isBefore || isAfter;\n\n // Check if this year matches the selected date's year\n const selectedYear = (() => {\n try {\n const selectedValue = selected as any;\n if (selectedValue && typeof selectedValue.getFullYear === 'function') {\n return selectedValue.getFullYear();\n }\n if (\n selectedValue &&\n selectedValue.from &&\n typeof selectedValue.from.getFullYear === 'function'\n ) {\n return selectedValue.from.getFullYear();\n }\n } catch (error) {\n // Continue with fallback\n }\n return null;\n })();\n\n const isSelectedYear = selectedYear === displayYears.from + i;\n\n return (\n <Button\n key={i}\n className={cn(\n 'text-foreground h-7 w-full text-sm font-medium',\n isSelectedYear && 'text-accent-foreground bg-primary/10 font-medium',\n displayYears.from + i === new Date().getFullYear() &&\n !isSelectedYear &&\n 'text-accent-foreground bg-accent/80 font-medium',\n )}\n variant=\"ghost\"\n onClick={() => {\n setNavView('days');\n\n // Preserve the current month from the calendar context\n const preservedMonth = currentCalendarMonth.getMonth();\n const newDate = new Date(displayYears.from + i, preservedMonth);\n\n setCurrentCalendarMonth(newDate);\n goToMonth(newDate);\n }}\n disabled={isDisabled}\n >\n {displayYears.from + i}\n </Button>\n );\n })}\n </div>\n );\n}\n\nfunction MonthsGrid({\n className,\n startMonth,\n endMonth,\n setNavView,\n navView,\n numberOfMonths,\n currentCalendarMonth,\n setCurrentCalendarMonth,\n ...props\n}: {\n className?: string;\n startMonth?: Date;\n endMonth?: Date;\n setNavView: React.Dispatch<React.SetStateAction<NavView>>;\n navView: NavView;\n numberOfMonths?: number;\n currentCalendarMonth: Date;\n setCurrentCalendarMonth: React.Dispatch<React.SetStateAction<Date>>;\n} & React.HTMLAttributes<HTMLDivElement>) {\n const { goToMonth, selected } = useDayPicker();\n const currentDate = new Date();\n\n // Preserve the current year from the calendar context\n const preservedYear = currentCalendarMonth.getFullYear();\n\n const currentMonth = currentDate.getMonth();\n\n // Check which month is selected\n const selectedMonth = (() => {\n try {\n const selectedValue = selected as any;\n if (selectedValue && typeof selectedValue.getMonth === 'function') {\n return selectedValue.getMonth();\n }\n if (\n selectedValue &&\n selectedValue.from &&\n typeof selectedValue.from.getMonth === 'function'\n ) {\n return selectedValue.from.getMonth();\n }\n } catch (error) {\n // Continue with fallback\n }\n return null;\n })();\n\n // Vietnamese month names\n const monthNames = [\n 'Tháng 01',\n 'Tháng 02',\n 'Tháng 03',\n 'Tháng 04',\n 'Tháng 05',\n 'Tháng 06',\n 'Tháng 07',\n 'Tháng 08',\n 'Tháng 09',\n 'Tháng 10',\n 'Tháng 11',\n 'Tháng 12',\n ];\n\n return (\n <div className={cn('mx-auto grid w-full grid-cols-3 gap-2 px-3', className)} {...props}>\n {monthNames.map((monthName, i) => {\n const monthDate = new Date(preservedYear, i, 1);\n const isBefore =\n startMonth && differenceInCalendarDays(new Date(preservedYear, i, 31), startMonth) < 0;\n const isAfter =\n endMonth && differenceInCalendarDays(new Date(preservedYear, i, 0), endMonth) > 0;\n const isDisabled = isBefore || isAfter;\n\n // Check if this is the selected month\n const isSelectedMonth = selectedMonth === i;\n\n // Check if this is the current month and year\n const isCurrentMonth = i === currentMonth && preservedYear === currentDate.getFullYear();\n\n return (\n <Button\n key={i}\n className={cn(\n 'text-foreground h-9 w-full text-sm font-medium',\n isSelectedMonth && 'text-accent-foreground bg-primary/10 font-medium',\n isCurrentMonth &&\n !isSelectedMonth &&\n 'text-accent-foreground bg-accent/80 font-medium',\n )}\n variant=\"ghost\"\n onClick={() => {\n setNavView('days');\n const newDate = new Date(preservedYear, i);\n setCurrentCalendarMonth(newDate);\n goToMonth(newDate);\n }}\n disabled={isDisabled}\n >\n {monthName}\n </Button>\n );\n })}\n </div>\n );\n}\n\nexport { Calendar };\n"]}
@@ -0,0 +1,98 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var React = require('react');
5
+ var utils = require('@/lib/utils');
6
+
7
+ function _interopNamespace(e) {
8
+ if (e && e.__esModule) return e;
9
+ var n = Object.create(null);
10
+ if (e) {
11
+ Object.keys(e).forEach(function (k) {
12
+ if (k !== 'default') {
13
+ var d = Object.getOwnPropertyDescriptor(e, k);
14
+ Object.defineProperty(n, k, d.get ? d : {
15
+ enumerable: true,
16
+ get: function () { return e[k]; }
17
+ });
18
+ }
19
+ });
20
+ }
21
+ n.default = e;
22
+ return Object.freeze(n);
23
+ }
24
+
25
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
26
+
27
+ const Card = React__namespace.forwardRef(
28
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
29
+ "div",
30
+ {
31
+ ref,
32
+ className: utils.cn("bg-card text-card-foreground border-ink-100s rounded-lg border", className),
33
+ ...props
34
+ }
35
+ )
36
+ );
37
+ Card.displayName = "Card";
38
+ const CardHeader = React__namespace.forwardRef(
39
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
40
+ "div",
41
+ {
42
+ ref,
43
+ className: utils.cn("flex flex-col space-y-1.5 p-4 pb-0 md:p-6 md:py-5 md:pb-0", className),
44
+ ...props
45
+ }
46
+ )
47
+ );
48
+ CardHeader.displayName = "CardHeader";
49
+ const CardTitle = React__namespace.forwardRef(
50
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
51
+ "div",
52
+ {
53
+ ref,
54
+ className: utils.cn("text-xl font-medium leading-none tracking-tight", className),
55
+ ...props
56
+ }
57
+ )
58
+ );
59
+ CardTitle.displayName = "CardTitle";
60
+ const CardDescription = React__namespace.forwardRef(
61
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: utils.cn("text-muted-foreground text-sm", className), ...props })
62
+ );
63
+ CardDescription.displayName = "CardDescription";
64
+ const CardContent = React__namespace.forwardRef(
65
+ ({ className, hover = false, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
66
+ "div",
67
+ {
68
+ ref,
69
+ className: utils.cn(
70
+ "p-4 md:p-6 md:py-5",
71
+ hover && "hover:shadow-24 cursor-pointer transition-all duration-200",
72
+ className
73
+ ),
74
+ ...props
75
+ }
76
+ )
77
+ );
78
+ CardContent.displayName = "CardContent";
79
+ const CardFooter = React__namespace.forwardRef(
80
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
81
+ "div",
82
+ {
83
+ ref,
84
+ className: utils.cn("flex items-center gap-4 p-4 pt-0 md:p-6 md:py-5", className),
85
+ ...props
86
+ }
87
+ )
88
+ );
89
+ CardFooter.displayName = "CardFooter";
90
+
91
+ exports.Card = Card;
92
+ exports.CardContent = CardContent;
93
+ exports.CardDescription = CardDescription;
94
+ exports.CardFooter = CardFooter;
95
+ exports.CardHeader = CardHeader;
96
+ exports.CardTitle = CardTitle;
97
+ //# sourceMappingURL=card.js.map
98
+ //# sourceMappingURL=card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/card.tsx"],"names":["React","jsx","cn"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,MAAM,OAAOA,gBAAA,CAAM,UAAA;AAAA,EACjB,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,IAAS,GAAA,qBACxBC,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAWC,QAAA,CAAG,gEAAA,EAAkE,SAAS,CAAA;AAAA,MACxF,GAAG;AAAA;AAAA;AAGV;AACA,IAAA,CAAK,WAAA,GAAc,MAAA;AAEnB,MAAM,aAAaF,gBAAA,CAAM,UAAA;AAAA,EACvB,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,IAAS,GAAA,qBACxBC,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAWC,QAAA,CAAG,2DAAA,EAA6D,SAAS,CAAA;AAAA,MACnF,GAAG;AAAA;AAAA;AAGV;AACA,UAAA,CAAW,WAAA,GAAc,YAAA;AAEzB,MAAM,YAAYF,gBAAA,CAAM,UAAA;AAAA,EACtB,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,IAAS,GAAA,qBACxBC,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAWC,QAAA,CAAG,iDAAA,EAAmD,SAAS,CAAA;AAAA,MACzE,GAAG;AAAA;AAAA;AAGV;AACA,SAAA,CAAU,WAAA,GAAc,WAAA;AAExB,MAAM,kBAAkBF,gBAAA,CAAM,UAAA;AAAA,EAC5B,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,IAAS,GAAA,qBACxBC,cAAA,CAAC,KAAA,EAAA,EAAI,GAAA,EAAU,WAAWC,QAAA,CAAG,+BAAA,EAAiC,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO;AAEzF;AACA,eAAA,CAAgB,WAAA,GAAc,iBAAA;AAM9B,MAAM,cAAcF,gBAAA,CAAM,UAAA;AAAA,EACxB,CAAC,EAAE,SAAA,EAAW,KAAA,GAAQ,OAAO,GAAG,KAAA,IAAS,GAAA,qBACvCC,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAWC,QAAA;AAAA,QACT,oBAAA;AAAA,QACA,KAAA,IAAS,4DAAA;AAAA,QACT;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA;AAGV;AACA,WAAA,CAAY,WAAA,GAAc,aAAA;AAE1B,MAAM,aAAaF,gBAAA,CAAM,UAAA;AAAA,EACvB,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,IAAS,GAAA,qBACxBC,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAWC,QAAA,CAAG,iDAAA,EAAmD,SAAS,CAAA;AAAA,MACzE,GAAG;AAAA;AAAA;AAGV;AACA,UAAA,CAAW,WAAA,GAAc,YAAA","file":"card.js","sourcesContent":["import * as React from 'react';\n\nimport { cn } from '@/lib/utils';\n\nconst Card = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('bg-card text-card-foreground border-ink-100s rounded-lg border', className)} //shadow-8\n {...props}\n />\n ),\n);\nCard.displayName = 'Card';\n\nconst CardHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex flex-col space-y-1.5 p-4 pb-0 md:p-6 md:py-5 md:pb-0', className)}\n {...props}\n />\n ),\n);\nCardHeader.displayName = 'CardHeader';\n\nconst CardTitle = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('text-xl font-medium leading-none tracking-tight', className)}\n {...props}\n />\n ),\n);\nCardTitle.displayName = 'CardTitle';\n\nconst CardDescription = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('text-muted-foreground text-sm', className)} {...props} />\n ),\n);\nCardDescription.displayName = 'CardDescription';\n\nexport interface CardContentProps extends React.HTMLAttributes<HTMLDivElement> {\n hover?: boolean;\n}\n\nconst CardContent = React.forwardRef<HTMLDivElement, CardContentProps>(\n ({ className, hover = false, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n 'p-4 md:p-6 md:py-5',\n hover && 'hover:shadow-24 cursor-pointer transition-all duration-200',\n className,\n )}\n {...props}\n />\n ),\n);\nCardContent.displayName = 'CardContent';\n\nconst CardFooter = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex items-center gap-4 p-4 pt-0 md:p-6 md:py-5', className)}\n {...props}\n />\n ),\n);\nCardFooter.displayName = 'CardFooter';\n\nexport { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle };\n"]}
@@ -0,0 +1,71 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { cn } from '@/lib/utils';
4
+
5
+ const Card = React.forwardRef(
6
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx(
7
+ "div",
8
+ {
9
+ ref,
10
+ className: cn("bg-card text-card-foreground border-ink-100s rounded-lg border", className),
11
+ ...props
12
+ }
13
+ )
14
+ );
15
+ Card.displayName = "Card";
16
+ const CardHeader = React.forwardRef(
17
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx(
18
+ "div",
19
+ {
20
+ ref,
21
+ className: cn("flex flex-col space-y-1.5 p-4 pb-0 md:p-6 md:py-5 md:pb-0", className),
22
+ ...props
23
+ }
24
+ )
25
+ );
26
+ CardHeader.displayName = "CardHeader";
27
+ const CardTitle = React.forwardRef(
28
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx(
29
+ "div",
30
+ {
31
+ ref,
32
+ className: cn("text-xl font-medium leading-none tracking-tight", className),
33
+ ...props
34
+ }
35
+ )
36
+ );
37
+ CardTitle.displayName = "CardTitle";
38
+ const CardDescription = React.forwardRef(
39
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("text-muted-foreground text-sm", className), ...props })
40
+ );
41
+ CardDescription.displayName = "CardDescription";
42
+ const CardContent = React.forwardRef(
43
+ ({ className, hover = false, ...props }, ref) => /* @__PURE__ */ jsx(
44
+ "div",
45
+ {
46
+ ref,
47
+ className: cn(
48
+ "p-4 md:p-6 md:py-5",
49
+ hover && "hover:shadow-24 cursor-pointer transition-all duration-200",
50
+ className
51
+ ),
52
+ ...props
53
+ }
54
+ )
55
+ );
56
+ CardContent.displayName = "CardContent";
57
+ const CardFooter = React.forwardRef(
58
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx(
59
+ "div",
60
+ {
61
+ ref,
62
+ className: cn("flex items-center gap-4 p-4 pt-0 md:p-6 md:py-5", className),
63
+ ...props
64
+ }
65
+ )
66
+ );
67
+ CardFooter.displayName = "CardFooter";
68
+
69
+ export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle };
70
+ //# sourceMappingURL=card.mjs.map
71
+ //# sourceMappingURL=card.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/card.tsx"],"names":[],"mappings":";;;;AAIA,MAAM,OAAO,KAAA,CAAM,UAAA;AAAA,EACjB,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,IAAS,GAAA,qBACxB,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA,CAAG,gEAAA,EAAkE,SAAS,CAAA;AAAA,MACxF,GAAG;AAAA;AAAA;AAGV;AACA,IAAA,CAAK,WAAA,GAAc,MAAA;AAEnB,MAAM,aAAa,KAAA,CAAM,UAAA;AAAA,EACvB,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,IAAS,GAAA,qBACxB,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA,CAAG,2DAAA,EAA6D,SAAS,CAAA;AAAA,MACnF,GAAG;AAAA;AAAA;AAGV;AACA,UAAA,CAAW,WAAA,GAAc,YAAA;AAEzB,MAAM,YAAY,KAAA,CAAM,UAAA;AAAA,EACtB,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,IAAS,GAAA,qBACxB,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA,CAAG,iDAAA,EAAmD,SAAS,CAAA;AAAA,MACzE,GAAG;AAAA;AAAA;AAGV;AACA,SAAA,CAAU,WAAA,GAAc,WAAA;AAExB,MAAM,kBAAkB,KAAA,CAAM,UAAA;AAAA,EAC5B,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,IAAS,GAAA,qBACxB,GAAA,CAAC,KAAA,EAAA,EAAI,GAAA,EAAU,WAAW,EAAA,CAAG,+BAAA,EAAiC,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO;AAEzF;AACA,eAAA,CAAgB,WAAA,GAAc,iBAAA;AAM9B,MAAM,cAAc,KAAA,CAAM,UAAA;AAAA,EACxB,CAAC,EAAE,SAAA,EAAW,KAAA,GAAQ,OAAO,GAAG,KAAA,IAAS,GAAA,qBACvC,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,oBAAA;AAAA,QACA,KAAA,IAAS,4DAAA;AAAA,QACT;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA;AAGV;AACA,WAAA,CAAY,WAAA,GAAc,aAAA;AAE1B,MAAM,aAAa,KAAA,CAAM,UAAA;AAAA,EACvB,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,IAAS,GAAA,qBACxB,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA,CAAG,iDAAA,EAAmD,SAAS,CAAA;AAAA,MACzE,GAAG;AAAA;AAAA;AAGV;AACA,UAAA,CAAW,WAAA,GAAc,YAAA","file":"card.mjs","sourcesContent":["import * as React from 'react';\n\nimport { cn } from '@/lib/utils';\n\nconst Card = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('bg-card text-card-foreground border-ink-100s rounded-lg border', className)} //shadow-8\n {...props}\n />\n ),\n);\nCard.displayName = 'Card';\n\nconst CardHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex flex-col space-y-1.5 p-4 pb-0 md:p-6 md:py-5 md:pb-0', className)}\n {...props}\n />\n ),\n);\nCardHeader.displayName = 'CardHeader';\n\nconst CardTitle = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('text-xl font-medium leading-none tracking-tight', className)}\n {...props}\n />\n ),\n);\nCardTitle.displayName = 'CardTitle';\n\nconst CardDescription = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('text-muted-foreground text-sm', className)} {...props} />\n ),\n);\nCardDescription.displayName = 'CardDescription';\n\nexport interface CardContentProps extends React.HTMLAttributes<HTMLDivElement> {\n hover?: boolean;\n}\n\nconst CardContent = React.forwardRef<HTMLDivElement, CardContentProps>(\n ({ className, hover = false, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n 'p-4 md:p-6 md:py-5',\n hover && 'hover:shadow-24 cursor-pointer transition-all duration-200',\n className,\n )}\n {...props}\n />\n ),\n);\nCardContent.displayName = 'CardContent';\n\nconst CardFooter = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex items-center gap-4 p-4 pt-0 md:p-6 md:py-5', className)}\n {...props}\n />\n ),\n);\nCardFooter.displayName = 'CardFooter';\n\nexport { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle };\n"]}
@@ -0,0 +1,237 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var useEmblaCarousel = require('embla-carousel-react');
5
+ var lucideReact = require('lucide-react');
6
+ var React = require('react');
7
+ var utils = require('@/lib/utils');
8
+ var emblaCarouselWheelGestures = require('embla-carousel-wheel-gestures');
9
+ var button = require('./button');
10
+
11
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
12
+
13
+ function _interopNamespace(e) {
14
+ if (e && e.__esModule) return e;
15
+ var n = Object.create(null);
16
+ if (e) {
17
+ Object.keys(e).forEach(function (k) {
18
+ if (k !== 'default') {
19
+ var d = Object.getOwnPropertyDescriptor(e, k);
20
+ Object.defineProperty(n, k, d.get ? d : {
21
+ enumerable: true,
22
+ get: function () { return e[k]; }
23
+ });
24
+ }
25
+ });
26
+ }
27
+ n.default = e;
28
+ return Object.freeze(n);
29
+ }
30
+
31
+ var useEmblaCarousel__default = /*#__PURE__*/_interopDefault(useEmblaCarousel);
32
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
33
+
34
+ const CarouselContext = React__namespace.createContext(null);
35
+ function useCarousel() {
36
+ const context = React__namespace.useContext(CarouselContext);
37
+ if (!context) {
38
+ throw new Error("useCarousel must be used within a <Carousel />");
39
+ }
40
+ return context;
41
+ }
42
+ function Carousel({
43
+ orientation = "horizontal",
44
+ opts,
45
+ setApi,
46
+ plugins,
47
+ className,
48
+ children,
49
+ ...props
50
+ }) {
51
+ const [carouselRef, api] = useEmblaCarousel__default.default(
52
+ {
53
+ axis: orientation === "horizontal" ? "x" : "y",
54
+ containScroll: "trimSnaps",
55
+ dragFree: false,
56
+ watchDrag: true,
57
+ dragThreshold: 15,
58
+ ...opts
59
+ // Move opts to end so it can override defaults
60
+ },
61
+ [...plugins || [], emblaCarouselWheelGestures.WheelGesturesPlugin({ forceWheelAxis: "x" })]
62
+ );
63
+ const [canScrollPrev, setCanScrollPrev] = React__namespace.useState(false);
64
+ const [canScrollNext, setCanScrollNext] = React__namespace.useState(false);
65
+ const onSelect = React__namespace.useCallback((api2) => {
66
+ if (!api2) return;
67
+ setCanScrollPrev(api2.canScrollPrev());
68
+ setCanScrollNext(api2.canScrollNext());
69
+ }, []);
70
+ const scrollPrev = React__namespace.useCallback(() => {
71
+ api?.scrollPrev();
72
+ }, [api]);
73
+ const scrollNext = React__namespace.useCallback(() => {
74
+ api?.scrollNext();
75
+ }, [api]);
76
+ const handleKeyDown = React__namespace.useCallback(
77
+ (event) => {
78
+ if (event.key === "ArrowLeft") {
79
+ event.preventDefault();
80
+ scrollPrev();
81
+ } else if (event.key === "ArrowRight") {
82
+ event.preventDefault();
83
+ scrollNext();
84
+ }
85
+ },
86
+ [scrollPrev, scrollNext]
87
+ );
88
+ React__namespace.useEffect(() => {
89
+ if (!api || !setApi) return;
90
+ setApi(api);
91
+ }, [api, setApi]);
92
+ React__namespace.useEffect(() => {
93
+ if (!api) return;
94
+ onSelect(api);
95
+ api.on("reInit", onSelect);
96
+ api.on("select", onSelect);
97
+ return () => {
98
+ api?.off("select", onSelect);
99
+ };
100
+ }, [api, onSelect]);
101
+ return /* @__PURE__ */ jsxRuntime.jsx(
102
+ CarouselContext.Provider,
103
+ {
104
+ value: {
105
+ carouselRef,
106
+ api,
107
+ opts,
108
+ orientation: orientation || (opts?.axis === "y" ? "vertical" : "horizontal"),
109
+ scrollPrev,
110
+ scrollNext,
111
+ canScrollPrev,
112
+ canScrollNext
113
+ },
114
+ children: /* @__PURE__ */ jsxRuntime.jsx(
115
+ "div",
116
+ {
117
+ onKeyDownCapture: handleKeyDown,
118
+ className: utils.cn("relative", className),
119
+ role: "region",
120
+ "aria-roledescription": "carousel",
121
+ "data-slot": "carousel",
122
+ ...props,
123
+ children
124
+ }
125
+ )
126
+ }
127
+ );
128
+ }
129
+ function CarouselContent({ className, wrapperClassName, ...props }) {
130
+ const { carouselRef, orientation } = useCarousel();
131
+ return /* @__PURE__ */ jsxRuntime.jsx(
132
+ "div",
133
+ {
134
+ ref: carouselRef,
135
+ className: utils.cn("overflow-hidden", wrapperClassName),
136
+ "data-slot": "carousel-content",
137
+ children: /* @__PURE__ */ jsxRuntime.jsx(
138
+ "div",
139
+ {
140
+ className: utils.cn("flex", orientation === "horizontal" ? "-ml-4" : "-mt-4 flex-col", className),
141
+ ...props
142
+ }
143
+ )
144
+ }
145
+ );
146
+ }
147
+ function CarouselItem({ className, ...props }) {
148
+ const { orientation } = useCarousel();
149
+ return /* @__PURE__ */ jsxRuntime.jsx(
150
+ "div",
151
+ {
152
+ role: "group",
153
+ "aria-roledescription": "slide",
154
+ "data-slot": "carousel-item",
155
+ className: utils.cn(
156
+ "min-w-0 shrink-0 grow-0 basis-full",
157
+ orientation === "horizontal" ? "pl-4" : "pt-4",
158
+ className
159
+ ),
160
+ ...props
161
+ }
162
+ );
163
+ }
164
+ function CarouselPrevious({
165
+ className,
166
+ variant = "outline",
167
+ size = "icon",
168
+ ...props
169
+ }) {
170
+ const { orientation, scrollPrev, canScrollPrev } = useCarousel();
171
+ return /* @__PURE__ */ jsxRuntime.jsxs(
172
+ button.Button,
173
+ {
174
+ "data-slot": "carousel-previous",
175
+ variant,
176
+ size,
177
+ className: utils.cn(
178
+ "absolute size-8 rounded-full",
179
+ orientation === "horizontal" ? "-left-12 top-1/2 -translate-y-1/2" : "-top-12 left-1/2 -translate-x-1/2 rotate-90",
180
+ !canScrollPrev && "hidden",
181
+ className
182
+ ),
183
+ disabled: !canScrollPrev,
184
+ onClick: (e) => {
185
+ e.preventDefault();
186
+ e.stopPropagation();
187
+ scrollPrev();
188
+ },
189
+ ...props,
190
+ children: [
191
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronLeft, {}),
192
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Previous slide" })
193
+ ]
194
+ }
195
+ );
196
+ }
197
+ function CarouselNext({
198
+ className,
199
+ variant = "outline",
200
+ size = "icon",
201
+ ...props
202
+ }) {
203
+ const { orientation, scrollNext, canScrollNext } = useCarousel();
204
+ return /* @__PURE__ */ jsxRuntime.jsxs(
205
+ button.Button,
206
+ {
207
+ "data-slot": "carousel-next",
208
+ variant,
209
+ size,
210
+ className: utils.cn(
211
+ "absolute size-8 rounded-full",
212
+ orientation === "horizontal" ? "-right-12 top-1/2 -translate-y-1/2" : "-bottom-12 left-1/2 -translate-x-1/2 rotate-90",
213
+ !canScrollNext && "hidden",
214
+ className
215
+ ),
216
+ disabled: !canScrollNext,
217
+ onClick: (e) => {
218
+ e.preventDefault();
219
+ e.stopPropagation();
220
+ scrollNext();
221
+ },
222
+ ...props,
223
+ children: [
224
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRight, {}),
225
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Next slide" })
226
+ ]
227
+ }
228
+ );
229
+ }
230
+
231
+ exports.Carousel = Carousel;
232
+ exports.CarouselContent = CarouselContent;
233
+ exports.CarouselItem = CarouselItem;
234
+ exports.CarouselNext = CarouselNext;
235
+ exports.CarouselPrevious = CarouselPrevious;
236
+ //# sourceMappingURL=carousel.js.map
237
+ //# sourceMappingURL=carousel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/carousel.tsx"],"names":["React","useEmblaCarousel","WheelGesturesPlugin","api","jsx","cn","jsxs","Button","ChevronLeft","ChevronRight"],"mappings":"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","file":"carousel.js","sourcesContent":["'use client';\n\nimport useEmblaCarousel, { type UseEmblaCarouselType } from 'embla-carousel-react';\nimport { ChevronLeft, ChevronRight } from 'lucide-react';\nimport * as React from 'react';\n\nimport { cn } from '@/lib/utils';\nimport { WheelGesturesPlugin } from 'embla-carousel-wheel-gestures';\nimport { Button } from './button';\n\ntype CarouselApi = UseEmblaCarouselType[1];\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>;\ntype CarouselOptions = UseCarouselParameters[0];\ntype CarouselPlugin = UseCarouselParameters[1];\n\ntype CarouselProps = {\n opts?: CarouselOptions;\n plugins?: CarouselPlugin;\n orientation?: 'horizontal' | 'vertical';\n setApi?: (api: CarouselApi) => void;\n};\n\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0];\n api: ReturnType<typeof useEmblaCarousel>[1];\n scrollPrev: () => void;\n scrollNext: () => void;\n canScrollPrev: boolean;\n canScrollNext: boolean;\n} & CarouselProps;\n\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null);\n\nfunction useCarousel() {\n const context = React.useContext(CarouselContext);\n\n if (!context) {\n throw new Error('useCarousel must be used within a <Carousel />');\n }\n\n return context;\n}\n\nfunction Carousel({\n orientation = 'horizontal',\n opts,\n setApi,\n plugins,\n className,\n children,\n ...props\n}: React.ComponentProps<'div'> & CarouselProps) {\n const [carouselRef, api] = useEmblaCarousel(\n {\n axis: orientation === 'horizontal' ? 'x' : 'y',\n containScroll: 'trimSnaps',\n dragFree: false,\n watchDrag: true,\n dragThreshold: 15,\n ...opts, // Move opts to end so it can override defaults\n },\n [...(plugins || []), WheelGesturesPlugin({ forceWheelAxis: 'x' })],\n );\n\n const [canScrollPrev, setCanScrollPrev] = React.useState(false);\n const [canScrollNext, setCanScrollNext] = React.useState(false);\n\n const onSelect = React.useCallback((api: CarouselApi) => {\n if (!api) return;\n setCanScrollPrev(api.canScrollPrev());\n setCanScrollNext(api.canScrollNext());\n }, []);\n\n const scrollPrev = React.useCallback(() => {\n api?.scrollPrev();\n }, [api]);\n\n const scrollNext = React.useCallback(() => {\n api?.scrollNext();\n }, [api]);\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n event.preventDefault();\n scrollPrev();\n } else if (event.key === 'ArrowRight') {\n event.preventDefault();\n scrollNext();\n }\n },\n [scrollPrev, scrollNext],\n );\n\n React.useEffect(() => {\n if (!api || !setApi) return;\n setApi(api);\n }, [api, setApi]);\n\n React.useEffect(() => {\n if (!api) return;\n\n onSelect(api);\n api.on('reInit', onSelect);\n api.on('select', onSelect);\n\n return () => {\n api?.off('select', onSelect);\n };\n }, [api, onSelect]);\n\n return (\n <CarouselContext.Provider\n value={{\n carouselRef,\n api: api,\n opts,\n orientation: orientation || (opts?.axis === 'y' ? 'vertical' : 'horizontal'),\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n }}\n >\n <div\n onKeyDownCapture={handleKeyDown}\n className={cn('relative', className)}\n role=\"region\"\n aria-roledescription=\"carousel\"\n data-slot=\"carousel\"\n {...props}\n >\n {children}\n </div>\n </CarouselContext.Provider>\n );\n}\n\ninterface CarouselContentProps extends React.ComponentProps<'div'> {\n wrapperClassName?: string;\n}\n\nfunction CarouselContent({ className, wrapperClassName, ...props }: CarouselContentProps) {\n const { carouselRef, orientation } = useCarousel();\n\n return (\n <div\n ref={carouselRef}\n className={cn('overflow-hidden', wrapperClassName)}\n data-slot=\"carousel-content\"\n >\n <div\n className={cn('flex', orientation === 'horizontal' ? '-ml-4' : '-mt-4 flex-col', className)}\n {...props}\n />\n </div>\n );\n}\n\nfunction CarouselItem({ className, ...props }: React.ComponentProps<'div'>) {\n const { orientation } = useCarousel();\n\n return (\n <div\n role=\"group\"\n aria-roledescription=\"slide\"\n data-slot=\"carousel-item\"\n className={cn(\n 'min-w-0 shrink-0 grow-0 basis-full',\n orientation === 'horizontal' ? 'pl-4' : 'pt-4',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction CarouselPrevious({\n className,\n variant = 'outline',\n size = 'icon',\n ...props\n}: React.ComponentProps<typeof Button>) {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel();\n\n return (\n <Button\n data-slot=\"carousel-previous\"\n variant={variant}\n size={size}\n className={cn(\n 'absolute size-8 rounded-full',\n orientation === 'horizontal'\n ? '-left-12 top-1/2 -translate-y-1/2'\n : '-top-12 left-1/2 -translate-x-1/2 rotate-90',\n !canScrollPrev && 'hidden',\n className,\n )}\n disabled={!canScrollPrev}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n scrollPrev();\n }}\n {...props}\n >\n <ChevronLeft />\n <span className=\"sr-only\">Previous slide</span>\n </Button>\n );\n}\n\nfunction CarouselNext({\n className,\n variant = 'outline',\n size = 'icon',\n ...props\n}: React.ComponentProps<typeof Button>) {\n const { orientation, scrollNext, canScrollNext } = useCarousel();\n\n return (\n <Button\n data-slot=\"carousel-next\"\n variant={variant}\n size={size}\n className={cn(\n 'absolute size-8 rounded-full',\n orientation === 'horizontal'\n ? '-right-12 top-1/2 -translate-y-1/2'\n : '-bottom-12 left-1/2 -translate-x-1/2 rotate-90',\n !canScrollNext && 'hidden',\n className,\n )}\n disabled={!canScrollNext}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n scrollNext();\n }}\n {...props}\n >\n <ChevronRight />\n <span className=\"sr-only\">Next slide</span>\n </Button>\n );\n}\n\nexport {\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselNext,\n CarouselPrevious,\n type CarouselApi,\n};\n"]}