shad-m 1.0.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 (912) hide show
  1. package/README.md +260 -0
  2. package/dist/assets/Animation/index.d.ts +25655 -0
  3. package/dist/assets/Animation/index.d.ts.map +1 -0
  4. package/dist/assets/Animation/index.js +180 -0
  5. package/dist/assets/Animation/index.js.map +1 -0
  6. package/dist/assets/Animation/index.mjs +79 -0
  7. package/dist/assets/Animation/index.mjs.map +1 -0
  8. package/dist/assets/Icon/index.d.ts +420 -0
  9. package/dist/assets/Icon/index.d.ts.map +1 -0
  10. package/dist/assets/Icon/index.js +2102 -0
  11. package/dist/assets/Icon/index.js.map +1 -0
  12. package/dist/assets/Icon/index.mjs +421 -0
  13. package/dist/assets/Icon/index.mjs.map +1 -0
  14. package/dist/assets/Image/index.d.ts +151 -0
  15. package/dist/assets/Image/index.d.ts.map +1 -0
  16. package/dist/assets/Image/index.js +755 -0
  17. package/dist/assets/Image/index.js.map +1 -0
  18. package/dist/assets/Image/index.mjs +150 -0
  19. package/dist/assets/Image/index.mjs.map +1 -0
  20. package/dist/common/display/countdown.d.ts +26 -0
  21. package/dist/common/display/countdown.d.ts.map +1 -0
  22. package/dist/common/display/countdown.js +68 -0
  23. package/dist/common/display/countdown.js.map +1 -0
  24. package/dist/common/display/countdown.mjs +46 -0
  25. package/dist/common/display/countdown.mjs.map +1 -0
  26. package/dist/common/display/display-field-group.d.ts +59 -0
  27. package/dist/common/display/display-field-group.d.ts.map +1 -0
  28. package/dist/common/display/display-field-group.js +91 -0
  29. package/dist/common/display/display-field-group.js.map +1 -0
  30. package/dist/common/display/display-field-group.mjs +89 -0
  31. package/dist/common/display/display-field-group.mjs.map +1 -0
  32. package/dist/common/display/display-field.d.ts +45 -0
  33. package/dist/common/display/display-field.d.ts.map +1 -0
  34. package/dist/common/display/display-field.js +46 -0
  35. package/dist/common/display/display-field.js.map +1 -0
  36. package/dist/common/display/display-field.mjs +40 -0
  37. package/dist/common/display/display-field.mjs.map +1 -0
  38. package/dist/common/display/display-html-string.d.ts +7 -0
  39. package/dist/common/display/display-html-string.d.ts.map +1 -0
  40. package/dist/common/display/display-html-string.js +52 -0
  41. package/dist/common/display/display-html-string.js.map +1 -0
  42. package/dist/common/display/display-html-string.mjs +30 -0
  43. package/dist/common/display/display-html-string.mjs.map +1 -0
  44. package/dist/common/display/index.d.ts +16 -0
  45. package/dist/common/display/index.d.ts.map +1 -0
  46. package/dist/common/display/index.js +59 -0
  47. package/dist/common/display/index.js.map +1 -0
  48. package/dist/common/display/index.mjs +10 -0
  49. package/dist/common/display/index.mjs.map +1 -0
  50. package/dist/common/display/page-breadcrumb.d.ts +19 -0
  51. package/dist/common/display/page-breadcrumb.d.ts.map +1 -0
  52. package/dist/common/display/page-breadcrumb.js +43 -0
  53. package/dist/common/display/page-breadcrumb.js.map +1 -0
  54. package/dist/common/display/page-breadcrumb.mjs +37 -0
  55. package/dist/common/display/page-breadcrumb.mjs.map +1 -0
  56. package/dist/common/display/page-v2.d.ts +15 -0
  57. package/dist/common/display/page-v2.d.ts.map +1 -0
  58. package/dist/common/display/page-v2.js +58 -0
  59. package/dist/common/display/page-v2.js.map +1 -0
  60. package/dist/common/display/page-v2.mjs +20 -0
  61. package/dist/common/display/page-v2.mjs.map +1 -0
  62. package/dist/common/display/page.d.ts +53 -0
  63. package/dist/common/display/page.d.ts.map +1 -0
  64. package/dist/common/display/page.js +155 -0
  65. package/dist/common/display/page.js.map +1 -0
  66. package/dist/common/display/page.mjs +138 -0
  67. package/dist/common/display/page.mjs.map +1 -0
  68. package/dist/common/display/score-meter.d.ts +22 -0
  69. package/dist/common/display/score-meter.d.ts.map +1 -0
  70. package/dist/common/display/score-meter.js +161 -0
  71. package/dist/common/display/score-meter.js.map +1 -0
  72. package/dist/common/display/score-meter.mjs +140 -0
  73. package/dist/common/display/score-meter.mjs.map +1 -0
  74. package/dist/common/display/sidebar/app-sidebar.d.ts +28 -0
  75. package/dist/common/display/sidebar/app-sidebar.d.ts.map +1 -0
  76. package/dist/common/display/sidebar/app-sidebar.js +114 -0
  77. package/dist/common/display/sidebar/app-sidebar.js.map +1 -0
  78. package/dist/common/display/sidebar/app-sidebar.mjs +92 -0
  79. package/dist/common/display/sidebar/app-sidebar.mjs.map +1 -0
  80. package/dist/common/display/sidebar/index.d.ts +30 -0
  81. package/dist/common/display/sidebar/index.d.ts.map +1 -0
  82. package/dist/common/display/sidebar/index.js +89 -0
  83. package/dist/common/display/sidebar/index.js.map +1 -0
  84. package/dist/common/display/sidebar/index.mjs +81 -0
  85. package/dist/common/display/sidebar/index.mjs.map +1 -0
  86. package/dist/common/display/sidebar/nav-main.d.ts +17 -0
  87. package/dist/common/display/sidebar/nav-main.d.ts.map +1 -0
  88. package/dist/common/display/sidebar/nav-main.js +406 -0
  89. package/dist/common/display/sidebar/nav-main.js.map +1 -0
  90. package/dist/common/display/sidebar/nav-main.mjs +400 -0
  91. package/dist/common/display/sidebar/nav-main.mjs.map +1 -0
  92. package/dist/common/display/sidebar/sidebar-sheet.d.ts +46 -0
  93. package/dist/common/display/sidebar/sidebar-sheet.d.ts.map +1 -0
  94. package/dist/common/display/sidebar/sidebar-sheet.js +140 -0
  95. package/dist/common/display/sidebar/sidebar-sheet.js.map +1 -0
  96. package/dist/common/display/sidebar/sidebar-sheet.mjs +118 -0
  97. package/dist/common/display/sidebar/sidebar-sheet.mjs.map +1 -0
  98. package/dist/common/display/sidebar/types.d.ts +18 -0
  99. package/dist/common/display/sidebar/types.d.ts.map +1 -0
  100. package/dist/common/display/sidebar/types.js +4 -0
  101. package/dist/common/display/sidebar/types.js.map +1 -0
  102. package/dist/common/display/sidebar/types.mjs +3 -0
  103. package/dist/common/display/sidebar/types.mjs.map +1 -0
  104. package/dist/common/display/status-state.d.ts +16 -0
  105. package/dist/common/display/status-state.d.ts.map +1 -0
  106. package/dist/common/display/status-state.js +97 -0
  107. package/dist/common/display/status-state.js.map +1 -0
  108. package/dist/common/display/status-state.mjs +88 -0
  109. package/dist/common/display/status-state.mjs.map +1 -0
  110. package/dist/common/forms/auto-form.d.ts +17 -0
  111. package/dist/common/forms/auto-form.d.ts.map +1 -0
  112. package/dist/common/forms/auto-form.js +101 -0
  113. package/dist/common/forms/auto-form.js.map +1 -0
  114. package/dist/common/forms/auto-form.mjs +78 -0
  115. package/dist/common/forms/auto-form.mjs.map +1 -0
  116. package/dist/common/forms/form-field.d.ts +16 -0
  117. package/dist/common/forms/form-field.d.ts.map +1 -0
  118. package/dist/common/forms/form-field.js +58 -0
  119. package/dist/common/forms/form-field.js.map +1 -0
  120. package/dist/common/forms/form-field.mjs +56 -0
  121. package/dist/common/forms/form-field.mjs.map +1 -0
  122. package/dist/common/forms/form-input-field.d.ts +16 -0
  123. package/dist/common/forms/form-input-field.d.ts.map +1 -0
  124. package/dist/common/forms/form-input-field.js +64 -0
  125. package/dist/common/forms/form-input-field.js.map +1 -0
  126. package/dist/common/forms/form-input-field.mjs +62 -0
  127. package/dist/common/forms/form-input-field.mjs.map +1 -0
  128. package/dist/common/forms/index.d.ts +7 -0
  129. package/dist/common/forms/index.d.ts.map +1 -0
  130. package/dist/common/forms/index.js +22 -0
  131. package/dist/common/forms/index.js.map +1 -0
  132. package/dist/common/forms/index.mjs +5 -0
  133. package/dist/common/forms/index.mjs.map +1 -0
  134. package/dist/common/forms/switch-field.d.ts +19 -0
  135. package/dist/common/forms/switch-field.d.ts.map +1 -0
  136. package/dist/common/forms/switch-field.js +106 -0
  137. package/dist/common/forms/switch-field.js.map +1 -0
  138. package/dist/common/forms/switch-field.mjs +104 -0
  139. package/dist/common/forms/switch-field.mjs.map +1 -0
  140. package/dist/common/interactive/alert-dialog-wrapper.d.ts +41 -0
  141. package/dist/common/interactive/alert-dialog-wrapper.d.ts.map +1 -0
  142. package/dist/common/interactive/alert-dialog-wrapper.js +141 -0
  143. package/dist/common/interactive/alert-dialog-wrapper.js.map +1 -0
  144. package/dist/common/interactive/alert-dialog-wrapper.mjs +119 -0
  145. package/dist/common/interactive/alert-dialog-wrapper.mjs.map +1 -0
  146. package/dist/common/interactive/autocomplete.d.ts +21 -0
  147. package/dist/common/interactive/autocomplete.d.ts.map +1 -0
  148. package/dist/common/interactive/autocomplete.js +178 -0
  149. package/dist/common/interactive/autocomplete.js.map +1 -0
  150. package/dist/common/interactive/autocomplete.mjs +157 -0
  151. package/dist/common/interactive/autocomplete.mjs.map +1 -0
  152. package/dist/common/interactive/copy-tooltip.d.ts +27 -0
  153. package/dist/common/interactive/copy-tooltip.d.ts.map +1 -0
  154. package/dist/common/interactive/copy-tooltip.js +152 -0
  155. package/dist/common/interactive/copy-tooltip.js.map +1 -0
  156. package/dist/common/interactive/copy-tooltip.mjs +143 -0
  157. package/dist/common/interactive/copy-tooltip.mjs.map +1 -0
  158. package/dist/common/interactive/date-field.d.ts +98 -0
  159. package/dist/common/interactive/date-field.d.ts.map +1 -0
  160. package/dist/common/interactive/date-field.js +303 -0
  161. package/dist/common/interactive/date-field.js.map +1 -0
  162. package/dist/common/interactive/date-field.mjs +281 -0
  163. package/dist/common/interactive/date-field.mjs.map +1 -0
  164. package/dist/common/interactive/date-input/date-input.d.ts +12 -0
  165. package/dist/common/interactive/date-input/date-input.d.ts.map +1 -0
  166. package/dist/common/interactive/date-input/date-input.js +68 -0
  167. package/dist/common/interactive/date-input/date-input.js.map +1 -0
  168. package/dist/common/interactive/date-input/date-input.mjs +62 -0
  169. package/dist/common/interactive/date-input/date-input.mjs.map +1 -0
  170. package/dist/common/interactive/date-input/index.d.ts +4 -0
  171. package/dist/common/interactive/date-input/index.d.ts.map +1 -0
  172. package/dist/common/interactive/date-input/index.js +17 -0
  173. package/dist/common/interactive/date-input/index.js.map +1 -0
  174. package/dist/common/interactive/date-input/index.mjs +4 -0
  175. package/dist/common/interactive/date-input/index.mjs.map +1 -0
  176. package/dist/common/interactive/date-input/types.d.ts +17 -0
  177. package/dist/common/interactive/date-input/types.d.ts.map +1 -0
  178. package/dist/common/interactive/date-input/types.js +4 -0
  179. package/dist/common/interactive/date-input/types.js.map +1 -0
  180. package/dist/common/interactive/date-input/types.mjs +3 -0
  181. package/dist/common/interactive/date-input/types.mjs.map +1 -0
  182. package/dist/common/interactive/date-input/use-typed-date.d.ts +17 -0
  183. package/dist/common/interactive/date-input/use-typed-date.d.ts.map +1 -0
  184. package/dist/common/interactive/date-input/use-typed-date.js +478 -0
  185. package/dist/common/interactive/date-input/use-typed-date.js.map +1 -0
  186. package/dist/common/interactive/date-input/use-typed-date.mjs +476 -0
  187. package/dist/common/interactive/date-input/use-typed-date.mjs.map +1 -0
  188. package/dist/common/interactive/date-input/utils.d.ts +5 -0
  189. package/dist/common/interactive/date-input/utils.d.ts.map +1 -0
  190. package/dist/common/interactive/date-input/utils.js +34 -0
  191. package/dist/common/interactive/date-input/utils.js.map +1 -0
  192. package/dist/common/interactive/date-input/utils.mjs +29 -0
  193. package/dist/common/interactive/date-input/utils.mjs.map +1 -0
  194. package/dist/common/interactive/date-picker.d.ts +114 -0
  195. package/dist/common/interactive/date-picker.d.ts.map +1 -0
  196. package/dist/common/interactive/date-picker.js +616 -0
  197. package/dist/common/interactive/date-picker.js.map +1 -0
  198. package/dist/common/interactive/date-picker.mjs +594 -0
  199. package/dist/common/interactive/date-picker.mjs.map +1 -0
  200. package/dist/common/interactive/date-range-input/date-range-input.d.ts +23 -0
  201. package/dist/common/interactive/date-range-input/date-range-input.d.ts.map +1 -0
  202. package/dist/common/interactive/date-range-input/date-range-input.js +82 -0
  203. package/dist/common/interactive/date-range-input/date-range-input.js.map +1 -0
  204. package/dist/common/interactive/date-range-input/date-range-input.mjs +76 -0
  205. package/dist/common/interactive/date-range-input/date-range-input.mjs.map +1 -0
  206. package/dist/common/interactive/date-range-input/index.d.ts +4 -0
  207. package/dist/common/interactive/date-range-input/index.d.ts.map +1 -0
  208. package/dist/common/interactive/date-range-input/index.js +12 -0
  209. package/dist/common/interactive/date-range-input/index.js.map +1 -0
  210. package/dist/common/interactive/date-range-input/index.mjs +3 -0
  211. package/dist/common/interactive/date-range-input/index.mjs.map +1 -0
  212. package/dist/common/interactive/date-range-input/types.d.ts +35 -0
  213. package/dist/common/interactive/date-range-input/types.d.ts.map +1 -0
  214. package/dist/common/interactive/date-range-input/types.js +4 -0
  215. package/dist/common/interactive/date-range-input/types.js.map +1 -0
  216. package/dist/common/interactive/date-range-input/types.mjs +3 -0
  217. package/dist/common/interactive/date-range-input/types.mjs.map +1 -0
  218. package/dist/common/interactive/date-range-input/use-typed-date-range.d.ts +17 -0
  219. package/dist/common/interactive/date-range-input/use-typed-date-range.d.ts.map +1 -0
  220. package/dist/common/interactive/date-range-input/use-typed-date-range.js +602 -0
  221. package/dist/common/interactive/date-range-input/use-typed-date-range.js.map +1 -0
  222. package/dist/common/interactive/date-range-input/use-typed-date-range.mjs +600 -0
  223. package/dist/common/interactive/date-range-input/use-typed-date-range.mjs.map +1 -0
  224. package/dist/common/interactive/date-time-picker.d.ts +86 -0
  225. package/dist/common/interactive/date-time-picker.d.ts.map +1 -0
  226. package/dist/common/interactive/date-time-picker.js +215 -0
  227. package/dist/common/interactive/date-time-picker.js.map +1 -0
  228. package/dist/common/interactive/date-time-picker.mjs +213 -0
  229. package/dist/common/interactive/date-time-picker.mjs.map +1 -0
  230. package/dist/common/interactive/dialog-wrapper.d.ts +34 -0
  231. package/dist/common/interactive/dialog-wrapper.d.ts.map +1 -0
  232. package/dist/common/interactive/dialog-wrapper.js +124 -0
  233. package/dist/common/interactive/dialog-wrapper.js.map +1 -0
  234. package/dist/common/interactive/dialog-wrapper.mjs +102 -0
  235. package/dist/common/interactive/dialog-wrapper.mjs.map +1 -0
  236. package/dist/common/interactive/filter.d.ts +51 -0
  237. package/dist/common/interactive/filter.d.ts.map +1 -0
  238. package/dist/common/interactive/filter.js +287 -0
  239. package/dist/common/interactive/filter.js.map +1 -0
  240. package/dist/common/interactive/filter.mjs +280 -0
  241. package/dist/common/interactive/filter.mjs.map +1 -0
  242. package/dist/common/interactive/index.d.ts +41 -0
  243. package/dist/common/interactive/index.d.ts.map +1 -0
  244. package/dist/common/interactive/index.js +235 -0
  245. package/dist/common/interactive/index.js.map +1 -0
  246. package/dist/common/interactive/index.mjs +24 -0
  247. package/dist/common/interactive/index.mjs.map +1 -0
  248. package/dist/common/interactive/list.d.ts +36 -0
  249. package/dist/common/interactive/list.d.ts.map +1 -0
  250. package/dist/common/interactive/list.js +160 -0
  251. package/dist/common/interactive/list.js.map +1 -0
  252. package/dist/common/interactive/list.mjs +134 -0
  253. package/dist/common/interactive/list.mjs.map +1 -0
  254. package/dist/common/interactive/otp-dialog/index.d.ts +7 -0
  255. package/dist/common/interactive/otp-dialog/index.d.ts.map +1 -0
  256. package/dist/common/interactive/otp-dialog/index.js +35 -0
  257. package/dist/common/interactive/otp-dialog/index.js.map +1 -0
  258. package/dist/common/interactive/otp-dialog/index.mjs +6 -0
  259. package/dist/common/interactive/otp-dialog/index.mjs.map +1 -0
  260. package/dist/common/interactive/otp-dialog/otp-dialog.d.ts +34 -0
  261. package/dist/common/interactive/otp-dialog/otp-dialog.d.ts.map +1 -0
  262. package/dist/common/interactive/otp-dialog/otp-dialog.js +325 -0
  263. package/dist/common/interactive/otp-dialog/otp-dialog.js.map +1 -0
  264. package/dist/common/interactive/otp-dialog/otp-dialog.mjs +303 -0
  265. package/dist/common/interactive/otp-dialog/otp-dialog.mjs.map +1 -0
  266. package/dist/common/interactive/otp-dialog/reducer.d.ts +11 -0
  267. package/dist/common/interactive/otp-dialog/reducer.d.ts.map +1 -0
  268. package/dist/common/interactive/otp-dialog/reducer.js +40 -0
  269. package/dist/common/interactive/otp-dialog/reducer.js.map +1 -0
  270. package/dist/common/interactive/otp-dialog/reducer.mjs +37 -0
  271. package/dist/common/interactive/otp-dialog/reducer.mjs.map +1 -0
  272. package/dist/common/interactive/otp-dialog/types.d.ts +82 -0
  273. package/dist/common/interactive/otp-dialog/types.d.ts.map +1 -0
  274. package/dist/common/interactive/otp-dialog/types.js +15 -0
  275. package/dist/common/interactive/otp-dialog/types.js.map +1 -0
  276. package/dist/common/interactive/otp-dialog/types.mjs +13 -0
  277. package/dist/common/interactive/otp-dialog/types.mjs.map +1 -0
  278. package/dist/common/interactive/otp-dialog/utils.d.ts +17 -0
  279. package/dist/common/interactive/otp-dialog/utils.d.ts.map +1 -0
  280. package/dist/common/interactive/otp-dialog/utils.js +24 -0
  281. package/dist/common/interactive/otp-dialog/utils.js.map +1 -0
  282. package/dist/common/interactive/otp-dialog/utils.mjs +21 -0
  283. package/dist/common/interactive/otp-dialog/utils.mjs.map +1 -0
  284. package/dist/common/interactive/pagination/PaginationSkeleton.d.ts +6 -0
  285. package/dist/common/interactive/pagination/PaginationSkeleton.d.ts.map +1 -0
  286. package/dist/common/interactive/pagination/PaginationSkeleton.js +51 -0
  287. package/dist/common/interactive/pagination/PaginationSkeleton.js.map +1 -0
  288. package/dist/common/interactive/pagination/PaginationSkeleton.mjs +49 -0
  289. package/dist/common/interactive/pagination/PaginationSkeleton.mjs.map +1 -0
  290. package/dist/common/interactive/pagination/index.d.ts +14 -0
  291. package/dist/common/interactive/pagination/index.d.ts.map +1 -0
  292. package/dist/common/interactive/pagination/index.js +235 -0
  293. package/dist/common/interactive/pagination/index.js.map +1 -0
  294. package/dist/common/interactive/pagination/index.mjs +223 -0
  295. package/dist/common/interactive/pagination/index.mjs.map +1 -0
  296. package/dist/common/interactive/pagination/usePagination.d.ts +3 -0
  297. package/dist/common/interactive/pagination/usePagination.d.ts.map +1 -0
  298. package/dist/common/interactive/pagination/usePagination.js +28 -0
  299. package/dist/common/interactive/pagination/usePagination.js.map +1 -0
  300. package/dist/common/interactive/pagination/usePagination.mjs +25 -0
  301. package/dist/common/interactive/pagination/usePagination.mjs.map +1 -0
  302. package/dist/common/interactive/popover-wrapper.d.ts +38 -0
  303. package/dist/common/interactive/popover-wrapper.d.ts.map +1 -0
  304. package/dist/common/interactive/popover-wrapper.js +138 -0
  305. package/dist/common/interactive/popover-wrapper.js.map +1 -0
  306. package/dist/common/interactive/popover-wrapper.mjs +116 -0
  307. package/dist/common/interactive/popover-wrapper.mjs.map +1 -0
  308. package/dist/common/interactive/pressable.d.ts +11 -0
  309. package/dist/common/interactive/pressable.d.ts.map +1 -0
  310. package/dist/common/interactive/pressable.js +84 -0
  311. package/dist/common/interactive/pressable.js.map +1 -0
  312. package/dist/common/interactive/pressable.mjs +62 -0
  313. package/dist/common/interactive/pressable.mjs.map +1 -0
  314. package/dist/common/interactive/select/context.d.ts +6 -0
  315. package/dist/common/interactive/select/context.d.ts.map +1 -0
  316. package/dist/common/interactive/select/context.js +38 -0
  317. package/dist/common/interactive/select/context.js.map +1 -0
  318. package/dist/common/interactive/select/context.mjs +14 -0
  319. package/dist/common/interactive/select/context.mjs.map +1 -0
  320. package/dist/common/interactive/select/index.d.ts +18 -0
  321. package/dist/common/interactive/select/index.d.ts.map +1 -0
  322. package/dist/common/interactive/select/index.js +123 -0
  323. package/dist/common/interactive/select/index.js.map +1 -0
  324. package/dist/common/interactive/select/index.mjs +18 -0
  325. package/dist/common/interactive/select/index.mjs.map +1 -0
  326. package/dist/common/interactive/select/select-body.d.ts +5 -0
  327. package/dist/common/interactive/select/select-body.d.ts.map +1 -0
  328. package/dist/common/interactive/select/select-body.js +89 -0
  329. package/dist/common/interactive/select/select-body.js.map +1 -0
  330. package/dist/common/interactive/select/select-body.mjs +67 -0
  331. package/dist/common/interactive/select/select-body.mjs.map +1 -0
  332. package/dist/common/interactive/select/select-close.d.ts +3 -0
  333. package/dist/common/interactive/select/select-close.d.ts.map +1 -0
  334. package/dist/common/interactive/select/select-close.js +38 -0
  335. package/dist/common/interactive/select/select-close.js.map +1 -0
  336. package/dist/common/interactive/select/select-close.mjs +16 -0
  337. package/dist/common/interactive/select/select-close.mjs.map +1 -0
  338. package/dist/common/interactive/select/select-content-auto-layout.d.ts +5 -0
  339. package/dist/common/interactive/select/select-content-auto-layout.d.ts.map +1 -0
  340. package/dist/common/interactive/select/select-content-auto-layout.js +221 -0
  341. package/dist/common/interactive/select/select-content-auto-layout.js.map +1 -0
  342. package/dist/common/interactive/select/select-content-auto-layout.mjs +199 -0
  343. package/dist/common/interactive/select/select-content-auto-layout.mjs.map +1 -0
  344. package/dist/common/interactive/select/select-content-group-auto-layout.d.ts +5 -0
  345. package/dist/common/interactive/select/select-content-group-auto-layout.d.ts.map +1 -0
  346. package/dist/common/interactive/select/select-content-group-auto-layout.js +411 -0
  347. package/dist/common/interactive/select/select-content-group-auto-layout.js.map +1 -0
  348. package/dist/common/interactive/select/select-content-group-auto-layout.mjs +389 -0
  349. package/dist/common/interactive/select/select-content-group-auto-layout.mjs.map +1 -0
  350. package/dist/common/interactive/select/select-content.d.ts +5 -0
  351. package/dist/common/interactive/select/select-content.d.ts.map +1 -0
  352. package/dist/common/interactive/select/select-content.js +187 -0
  353. package/dist/common/interactive/select/select-content.js.map +1 -0
  354. package/dist/common/interactive/select/select-content.mjs +165 -0
  355. package/dist/common/interactive/select/select-content.mjs.map +1 -0
  356. package/dist/common/interactive/select/select-footer.d.ts +5 -0
  357. package/dist/common/interactive/select/select-footer.d.ts.map +1 -0
  358. package/dist/common/interactive/select/select-footer.js +82 -0
  359. package/dist/common/interactive/select/select-footer.js.map +1 -0
  360. package/dist/common/interactive/select/select-footer.mjs +60 -0
  361. package/dist/common/interactive/select/select-footer.mjs.map +1 -0
  362. package/dist/common/interactive/select/select-item.d.ts +6 -0
  363. package/dist/common/interactive/select/select-item.d.ts.map +1 -0
  364. package/dist/common/interactive/select/select-item.js +214 -0
  365. package/dist/common/interactive/select/select-item.js.map +1 -0
  366. package/dist/common/interactive/select/select-item.mjs +191 -0
  367. package/dist/common/interactive/select/select-item.mjs.map +1 -0
  368. package/dist/common/interactive/select/select-layout.d.ts +8 -0
  369. package/dist/common/interactive/select/select-layout.d.ts.map +1 -0
  370. package/dist/common/interactive/select/select-layout.js +66 -0
  371. package/dist/common/interactive/select/select-layout.js.map +1 -0
  372. package/dist/common/interactive/select/select-layout.mjs +41 -0
  373. package/dist/common/interactive/select/select-layout.mjs.map +1 -0
  374. package/dist/common/interactive/select/select-search.d.ts +8 -0
  375. package/dist/common/interactive/select/select-search.d.ts.map +1 -0
  376. package/dist/common/interactive/select/select-search.js +55 -0
  377. package/dist/common/interactive/select/select-search.js.map +1 -0
  378. package/dist/common/interactive/select/select-search.mjs +33 -0
  379. package/dist/common/interactive/select/select-search.mjs.map +1 -0
  380. package/dist/common/interactive/select/select-states.d.ts +6 -0
  381. package/dist/common/interactive/select/select-states.d.ts.map +1 -0
  382. package/dist/common/interactive/select/select-states.js +57 -0
  383. package/dist/common/interactive/select/select-states.js.map +1 -0
  384. package/dist/common/interactive/select/select-states.mjs +34 -0
  385. package/dist/common/interactive/select/select-states.mjs.map +1 -0
  386. package/dist/common/interactive/select/select-trigger.d.ts +7 -0
  387. package/dist/common/interactive/select/select-trigger.d.ts.map +1 -0
  388. package/dist/common/interactive/select/select-trigger.js +310 -0
  389. package/dist/common/interactive/select/select-trigger.js.map +1 -0
  390. package/dist/common/interactive/select/select-trigger.mjs +286 -0
  391. package/dist/common/interactive/select/select-trigger.mjs.map +1 -0
  392. package/dist/common/interactive/select/select-value.d.ts +5 -0
  393. package/dist/common/interactive/select/select-value.d.ts.map +1 -0
  394. package/dist/common/interactive/select/select-value.js +52 -0
  395. package/dist/common/interactive/select/select-value.js.map +1 -0
  396. package/dist/common/interactive/select/select-value.mjs +30 -0
  397. package/dist/common/interactive/select/select-value.mjs.map +1 -0
  398. package/dist/common/interactive/select/select.css +62 -0
  399. package/dist/common/interactive/select/select.d.ts +4 -0
  400. package/dist/common/interactive/select/select.d.ts.map +1 -0
  401. package/dist/common/interactive/select/select.js +184 -0
  402. package/dist/common/interactive/select/select.js.map +1 -0
  403. package/dist/common/interactive/select/select.mjs +162 -0
  404. package/dist/common/interactive/select/select.mjs.map +1 -0
  405. package/dist/common/interactive/select/types.d.ts +213 -0
  406. package/dist/common/interactive/select/types.d.ts.map +1 -0
  407. package/dist/common/interactive/select/types.js +4 -0
  408. package/dist/common/interactive/select/types.js.map +1 -0
  409. package/dist/common/interactive/select/types.mjs +3 -0
  410. package/dist/common/interactive/select/types.mjs.map +1 -0
  411. package/dist/common/interactive/select/utils.d.ts +8 -0
  412. package/dist/common/interactive/select/utils.d.ts.map +1 -0
  413. package/dist/common/interactive/select/utils.js +31 -0
  414. package/dist/common/interactive/select/utils.js.map +1 -0
  415. package/dist/common/interactive/select/utils.mjs +28 -0
  416. package/dist/common/interactive/select/utils.mjs.map +1 -0
  417. package/dist/common/interactive/select/variants.d.ts +4 -0
  418. package/dist/common/interactive/select/variants.d.ts.map +1 -0
  419. package/dist/common/interactive/select/variants.js +27 -0
  420. package/dist/common/interactive/select/variants.js.map +1 -0
  421. package/dist/common/interactive/select/variants.mjs +25 -0
  422. package/dist/common/interactive/select/variants.mjs.map +1 -0
  423. package/dist/common/interactive/select-chip.d.ts +20 -0
  424. package/dist/common/interactive/select-chip.d.ts.map +1 -0
  425. package/dist/common/interactive/select-chip.js +76 -0
  426. package/dist/common/interactive/select-chip.js.map +1 -0
  427. package/dist/common/interactive/select-chip.mjs +74 -0
  428. package/dist/common/interactive/select-chip.mjs.map +1 -0
  429. package/dist/common/interactive/select-level.d.ts +19 -0
  430. package/dist/common/interactive/select-level.d.ts.map +1 -0
  431. package/dist/common/interactive/select-level.js +236 -0
  432. package/dist/common/interactive/select-level.js.map +1 -0
  433. package/dist/common/interactive/select-level.mjs +230 -0
  434. package/dist/common/interactive/select-level.mjs.map +1 -0
  435. package/dist/common/interactive/select-range.d.ts +30 -0
  436. package/dist/common/interactive/select-range.d.ts.map +1 -0
  437. package/dist/common/interactive/select-range.js +211 -0
  438. package/dist/common/interactive/select-range.js.map +1 -0
  439. package/dist/common/interactive/select-range.mjs +209 -0
  440. package/dist/common/interactive/select-range.mjs.map +1 -0
  441. package/dist/common/interactive/select-with-api.d.ts +97 -0
  442. package/dist/common/interactive/select-with-api.d.ts.map +1 -0
  443. package/dist/common/interactive/select-with-api.js +767 -0
  444. package/dist/common/interactive/select-with-api.js.map +1 -0
  445. package/dist/common/interactive/select-with-api.mjs +758 -0
  446. package/dist/common/interactive/select-with-api.mjs.map +1 -0
  447. package/dist/common/interactive/select.d.ts +3 -0
  448. package/dist/common/interactive/select.d.ts.map +1 -0
  449. package/dist/common/interactive/select.js +15 -0
  450. package/dist/common/interactive/select.js.map +1 -0
  451. package/dist/common/interactive/select.mjs +4 -0
  452. package/dist/common/interactive/select.mjs.map +1 -0
  453. package/dist/common/interactive/sheet-wrapper.d.ts +34 -0
  454. package/dist/common/interactive/sheet-wrapper.d.ts.map +1 -0
  455. package/dist/common/interactive/sheet-wrapper.js +105 -0
  456. package/dist/common/interactive/sheet-wrapper.js.map +1 -0
  457. package/dist/common/interactive/sheet-wrapper.mjs +83 -0
  458. package/dist/common/interactive/sheet-wrapper.mjs.map +1 -0
  459. package/dist/common/interactive/table/enhanced-table.d.ts +5 -0
  460. package/dist/common/interactive/table/enhanced-table.d.ts.map +1 -0
  461. package/dist/common/interactive/table/enhanced-table.js +390 -0
  462. package/dist/common/interactive/table/enhanced-table.js.map +1 -0
  463. package/dist/common/interactive/table/enhanced-table.mjs +388 -0
  464. package/dist/common/interactive/table/enhanced-table.mjs.map +1 -0
  465. package/dist/common/interactive/table/index.d.ts +10 -0
  466. package/dist/common/interactive/table/index.d.ts.map +1 -0
  467. package/dist/common/interactive/table/index.js +83 -0
  468. package/dist/common/interactive/table/index.js.map +1 -0
  469. package/dist/common/interactive/table/index.mjs +68 -0
  470. package/dist/common/interactive/table/index.mjs.map +1 -0
  471. package/dist/common/interactive/table/table-pagination.d.ts +5 -0
  472. package/dist/common/interactive/table/table-pagination.d.ts.map +1 -0
  473. package/dist/common/interactive/table/table-pagination.js +12 -0
  474. package/dist/common/interactive/table/table-pagination.js.map +1 -0
  475. package/dist/common/interactive/table/table-pagination.mjs +10 -0
  476. package/dist/common/interactive/table/table-pagination.mjs.map +1 -0
  477. package/dist/common/interactive/table/types.d.ts +54 -0
  478. package/dist/common/interactive/table/types.d.ts.map +1 -0
  479. package/dist/common/interactive/table/types.js +4 -0
  480. package/dist/common/interactive/table/types.js.map +1 -0
  481. package/dist/common/interactive/table/types.mjs +3 -0
  482. package/dist/common/interactive/table/types.mjs.map +1 -0
  483. package/dist/common/interactive/time-picker.d.ts +74 -0
  484. package/dist/common/interactive/time-picker.d.ts.map +1 -0
  485. package/dist/common/interactive/time-picker.js +313 -0
  486. package/dist/common/interactive/time-picker.js.map +1 -0
  487. package/dist/common/interactive/time-picker.mjs +307 -0
  488. package/dist/common/interactive/time-picker.mjs.map +1 -0
  489. package/dist/common/interactive/types.d.ts +2 -0
  490. package/dist/common/interactive/types.d.ts.map +1 -0
  491. package/dist/common/interactive/types.js +4 -0
  492. package/dist/common/interactive/types.js.map +1 -0
  493. package/dist/common/interactive/types.mjs +3 -0
  494. package/dist/common/interactive/types.mjs.map +1 -0
  495. package/dist/common/pages/page-404.d.ts +3 -0
  496. package/dist/common/pages/page-404.d.ts.map +1 -0
  497. package/dist/common/pages/page-404.js +16 -0
  498. package/dist/common/pages/page-404.js.map +1 -0
  499. package/dist/common/pages/page-404.mjs +11 -0
  500. package/dist/common/pages/page-404.mjs.map +1 -0
  501. package/dist/common/pages/page-500.d.ts +9 -0
  502. package/dist/common/pages/page-500.d.ts.map +1 -0
  503. package/dist/common/pages/page-500.js +30 -0
  504. package/dist/common/pages/page-500.js.map +1 -0
  505. package/dist/common/pages/page-500.mjs +25 -0
  506. package/dist/common/pages/page-500.mjs.map +1 -0
  507. package/dist/components/accordion.d.ts +8 -0
  508. package/dist/components/accordion.d.ts.map +1 -0
  509. package/dist/components/accordion.js +65 -0
  510. package/dist/components/accordion.js.map +1 -0
  511. package/dist/components/accordion.mjs +39 -0
  512. package/dist/components/accordion.mjs.map +1 -0
  513. package/dist/components/alert-dialog.d.ts +33 -0
  514. package/dist/components/alert-dialog.d.ts.map +1 -0
  515. package/dist/components/alert-dialog.js +231 -0
  516. package/dist/components/alert-dialog.js.map +1 -0
  517. package/dist/components/alert-dialog.mjs +197 -0
  518. package/dist/components/alert-dialog.mjs.map +1 -0
  519. package/dist/components/alert.d.ts +13 -0
  520. package/dist/components/alert.d.ts.map +1 -0
  521. package/dist/components/alert.js +97 -0
  522. package/dist/components/alert.js.map +1 -0
  523. package/dist/components/alert.mjs +72 -0
  524. package/dist/components/alert.mjs.map +1 -0
  525. package/dist/components/aspect-ratio.d.ts +4 -0
  526. package/dist/components/aspect-ratio.d.ts.map +1 -0
  527. package/dist/components/aspect-ratio.js +29 -0
  528. package/dist/components/aspect-ratio.js.map +1 -0
  529. package/dist/components/aspect-ratio.mjs +7 -0
  530. package/dist/components/aspect-ratio.mjs.map +1 -0
  531. package/dist/components/avatar.d.ts +7 -0
  532. package/dist/components/avatar.d.ts.map +1 -0
  533. package/dist/components/avatar.js +64 -0
  534. package/dist/components/avatar.js.map +1 -0
  535. package/dist/components/avatar.mjs +39 -0
  536. package/dist/components/avatar.mjs.map +1 -0
  537. package/dist/components/badge.d.ts +12 -0
  538. package/dist/components/badge.d.ts.map +1 -0
  539. package/dist/components/badge.js +72 -0
  540. package/dist/components/badge.js.map +1 -0
  541. package/dist/components/badge.mjs +69 -0
  542. package/dist/components/badge.mjs.map +1 -0
  543. package/dist/components/breadcrumb.d.ts +20 -0
  544. package/dist/components/breadcrumb.d.ts.map +1 -0
  545. package/dist/components/breadcrumb.js +109 -0
  546. package/dist/components/breadcrumb.js.map +1 -0
  547. package/dist/components/breadcrumb.mjs +81 -0
  548. package/dist/components/breadcrumb.mjs.map +1 -0
  549. package/dist/components/button.d.ts +28 -0
  550. package/dist/components/button.d.ts.map +1 -0
  551. package/dist/components/button.js +250 -0
  552. package/dist/components/button.js.map +1 -0
  553. package/dist/components/button.mjs +226 -0
  554. package/dist/components/button.mjs.map +1 -0
  555. package/dist/components/calendar.d.ts +57 -0
  556. package/dist/components/calendar.d.ts.map +1 -0
  557. package/dist/components/calendar.js +681 -0
  558. package/dist/components/calendar.js.map +1 -0
  559. package/dist/components/calendar.mjs +659 -0
  560. package/dist/components/calendar.mjs.map +1 -0
  561. package/dist/components/card.d.ts +12 -0
  562. package/dist/components/card.d.ts.map +1 -0
  563. package/dist/components/card.js +98 -0
  564. package/dist/components/card.js.map +1 -0
  565. package/dist/components/card.mjs +71 -0
  566. package/dist/components/card.mjs.map +1 -0
  567. package/dist/components/carousel.d.ts +23 -0
  568. package/dist/components/carousel.d.ts.map +1 -0
  569. package/dist/components/carousel.js +237 -0
  570. package/dist/components/carousel.js.map +1 -0
  571. package/dist/components/carousel.mjs +208 -0
  572. package/dist/components/carousel.mjs.map +1 -0
  573. package/dist/components/chart.d.ts +63 -0
  574. package/dist/components/chart.d.ts.map +1 -0
  575. package/dist/components/chart.js +252 -0
  576. package/dist/components/chart.js.map +1 -0
  577. package/dist/components/chart.mjs +224 -0
  578. package/dist/components/chart.mjs.map +1 -0
  579. package/dist/components/checkbox.d.ts +18 -0
  580. package/dist/components/checkbox.d.ts.map +1 -0
  581. package/dist/components/checkbox.js +97 -0
  582. package/dist/components/checkbox.js.map +1 -0
  583. package/dist/components/checkbox.mjs +74 -0
  584. package/dist/components/checkbox.mjs.map +1 -0
  585. package/dist/components/chip.d.ts +30 -0
  586. package/dist/components/chip.d.ts.map +1 -0
  587. package/dist/components/chip.js +88 -0
  588. package/dist/components/chip.js.map +1 -0
  589. package/dist/components/chip.mjs +82 -0
  590. package/dist/components/chip.mjs.map +1 -0
  591. package/dist/components/collapsible.d.ts +6 -0
  592. package/dist/components/collapsible.d.ts.map +1 -0
  593. package/dist/components/collapsible.js +33 -0
  594. package/dist/components/collapsible.js.map +1 -0
  595. package/dist/components/collapsible.mjs +9 -0
  596. package/dist/components/collapsible.mjs.map +1 -0
  597. package/dist/components/command.d.ts +81 -0
  598. package/dist/components/command.d.ts.map +1 -0
  599. package/dist/components/command.js +125 -0
  600. package/dist/components/command.js.map +1 -0
  601. package/dist/components/command.mjs +95 -0
  602. package/dist/components/command.mjs.map +1 -0
  603. package/dist/components/context-menu.d.ts +28 -0
  604. package/dist/components/context-menu.d.ts.map +1 -0
  605. package/dist/components/context-menu.js +168 -0
  606. package/dist/components/context-menu.js.map +1 -0
  607. package/dist/components/context-menu.mjs +131 -0
  608. package/dist/components/context-menu.mjs.map +1 -0
  609. package/dist/components/dialog.d.ts +32 -0
  610. package/dist/components/dialog.d.ts.map +1 -0
  611. package/dist/components/dialog.js +192 -0
  612. package/dist/components/dialog.js.map +1 -0
  613. package/dist/components/dialog.mjs +159 -0
  614. package/dist/components/dialog.mjs.map +1 -0
  615. package/dist/components/drawer.d.ts +23 -0
  616. package/dist/components/drawer.d.ts.map +1 -0
  617. package/dist/components/drawer.js +98 -0
  618. package/dist/components/drawer.js.map +1 -0
  619. package/dist/components/drawer.mjs +67 -0
  620. package/dist/components/drawer.mjs.map +1 -0
  621. package/dist/components/dropdown-menu.d.ts +28 -0
  622. package/dist/components/dropdown-menu.d.ts.map +1 -0
  623. package/dist/components/dropdown-menu.js +163 -0
  624. package/dist/components/dropdown-menu.js.map +1 -0
  625. package/dist/components/dropdown-menu.mjs +126 -0
  626. package/dist/components/dropdown-menu.mjs.map +1 -0
  627. package/dist/components/form.d.ts +24 -0
  628. package/dist/components/form.d.ts.map +1 -0
  629. package/dist/components/form.js +123 -0
  630. package/dist/components/form.js.map +1 -0
  631. package/dist/components/form.mjs +94 -0
  632. package/dist/components/form.mjs.map +1 -0
  633. package/dist/components/hover-card.d.ts +7 -0
  634. package/dist/components/hover-card.d.ts.map +1 -0
  635. package/dist/components/hover-card.js +50 -0
  636. package/dist/components/hover-card.js.map +1 -0
  637. package/dist/components/hover-card.mjs +25 -0
  638. package/dist/components/hover-card.mjs.map +1 -0
  639. package/dist/components/input-otp.d.ts +39 -0
  640. package/dist/components/input-otp.d.ts.map +1 -0
  641. package/dist/components/input-otp.js +84 -0
  642. package/dist/components/input-otp.js.map +1 -0
  643. package/dist/components/input-otp.mjs +59 -0
  644. package/dist/components/input-otp.mjs.map +1 -0
  645. package/dist/components/input.d.ts +150 -0
  646. package/dist/components/input.d.ts.map +1 -0
  647. package/dist/components/input.js +858 -0
  648. package/dist/components/input.js.map +1 -0
  649. package/dist/components/input.mjs +831 -0
  650. package/dist/components/input.mjs.map +1 -0
  651. package/dist/components/label.d.ts +6 -0
  652. package/dist/components/label.d.ts.map +1 -0
  653. package/dist/components/label.js +38 -0
  654. package/dist/components/label.js.map +1 -0
  655. package/dist/components/label.mjs +15 -0
  656. package/dist/components/label.mjs.map +1 -0
  657. package/dist/components/lottie.d.ts +63 -0
  658. package/dist/components/lottie.d.ts.map +1 -0
  659. package/dist/components/lottie.js +59 -0
  660. package/dist/components/lottie.js.map +1 -0
  661. package/dist/components/lottie.mjs +49 -0
  662. package/dist/components/lottie.mjs.map +1 -0
  663. package/dist/components/menubar.d.ts +29 -0
  664. package/dist/components/menubar.d.ts.map +1 -0
  665. package/dist/components/menubar.js +195 -0
  666. package/dist/components/menubar.js.map +1 -0
  667. package/dist/components/menubar.mjs +157 -0
  668. package/dist/components/menubar.mjs.map +1 -0
  669. package/dist/components/navigation-menu.d.ts +13 -0
  670. package/dist/components/navigation-menu.d.ts.map +1 -0
  671. package/dist/components/navigation-menu.js +126 -0
  672. package/dist/components/navigation-menu.js.map +1 -0
  673. package/dist/components/navigation-menu.mjs +95 -0
  674. package/dist/components/navigation-menu.mjs.map +1 -0
  675. package/dist/components/pagination.d.ts +29 -0
  676. package/dist/components/pagination.d.ts.map +1 -0
  677. package/dist/components/pagination.js +112 -0
  678. package/dist/components/pagination.js.map +1 -0
  679. package/dist/components/pagination.mjs +84 -0
  680. package/dist/components/pagination.mjs.map +1 -0
  681. package/dist/components/popover.d.ts +7 -0
  682. package/dist/components/popover.d.ts.map +1 -0
  683. package/dist/components/popover.js +63 -0
  684. package/dist/components/popover.js.map +1 -0
  685. package/dist/components/popover.mjs +38 -0
  686. package/dist/components/popover.mjs.map +1 -0
  687. package/dist/components/progress.d.ts +7 -0
  688. package/dist/components/progress.d.ts.map +1 -0
  689. package/dist/components/progress.js +50 -0
  690. package/dist/components/progress.js.map +1 -0
  691. package/dist/components/progress.mjs +27 -0
  692. package/dist/components/progress.mjs.map +1 -0
  693. package/dist/components/radio-group.d.ts +17 -0
  694. package/dist/components/radio-group.d.ts.map +1 -0
  695. package/dist/components/radio-group.js +91 -0
  696. package/dist/components/radio-group.js.map +1 -0
  697. package/dist/components/radio-group.mjs +67 -0
  698. package/dist/components/radio-group.mjs.map +1 -0
  699. package/dist/components/resizable.d.ts +24 -0
  700. package/dist/components/resizable.d.ts.map +1 -0
  701. package/dist/components/resizable.js +59 -0
  702. package/dist/components/resizable.js.map +1 -0
  703. package/dist/components/resizable.mjs +35 -0
  704. package/dist/components/resizable.mjs.map +1 -0
  705. package/dist/components/responsive-popover.d.ts +25 -0
  706. package/dist/components/responsive-popover.d.ts.map +1 -0
  707. package/dist/components/responsive-popover.js +74 -0
  708. package/dist/components/responsive-popover.js.map +1 -0
  709. package/dist/components/responsive-popover.mjs +50 -0
  710. package/dist/components/responsive-popover.mjs.map +1 -0
  711. package/dist/components/scroll-area.d.ts +6 -0
  712. package/dist/components/scroll-area.d.ts.map +1 -0
  713. package/dist/components/scroll-area.js +63 -0
  714. package/dist/components/scroll-area.js.map +1 -0
  715. package/dist/components/scroll-area.mjs +39 -0
  716. package/dist/components/scroll-area.mjs.map +1 -0
  717. package/dist/components/separator.d.ts +5 -0
  718. package/dist/components/separator.d.ts.map +1 -0
  719. package/dist/components/separator.js +47 -0
  720. package/dist/components/separator.js.map +1 -0
  721. package/dist/components/separator.mjs +24 -0
  722. package/dist/components/separator.mjs.map +1 -0
  723. package/dist/components/sheet.d.ts +29 -0
  724. package/dist/components/sheet.d.ts.map +1 -0
  725. package/dist/components/sheet.js +239 -0
  726. package/dist/components/sheet.js.map +1 -0
  727. package/dist/components/sheet.mjs +206 -0
  728. package/dist/components/sheet.mjs.map +1 -0
  729. package/dist/components/sidebar.d.ts +87 -0
  730. package/dist/components/sidebar.d.ts.map +1 -0
  731. package/dist/components/sidebar.js +888 -0
  732. package/dist/components/sidebar.js.map +1 -0
  733. package/dist/components/sidebar.mjs +842 -0
  734. package/dist/components/sidebar.mjs.map +1 -0
  735. package/dist/components/skeleton.d.ts +36 -0
  736. package/dist/components/skeleton.d.ts.map +1 -0
  737. package/dist/components/skeleton.js +153 -0
  738. package/dist/components/skeleton.js.map +1 -0
  739. package/dist/components/skeleton.mjs +127 -0
  740. package/dist/components/skeleton.mjs.map +1 -0
  741. package/dist/components/slider.d.ts +5 -0
  742. package/dist/components/slider.d.ts.map +1 -0
  743. package/dist/components/slider.js +45 -0
  744. package/dist/components/slider.js.map +1 -0
  745. package/dist/components/slider.mjs +22 -0
  746. package/dist/components/slider.mjs.map +1 -0
  747. package/dist/components/sonner.d.ts +4 -0
  748. package/dist/components/sonner.d.ts.map +1 -0
  749. package/dist/components/sonner.js +76 -0
  750. package/dist/components/sonner.js.map +1 -0
  751. package/dist/components/sonner.mjs +71 -0
  752. package/dist/components/sonner.mjs.map +1 -0
  753. package/dist/components/spinner.d.ts +11 -0
  754. package/dist/components/spinner.d.ts.map +1 -0
  755. package/dist/components/spinner.js +59 -0
  756. package/dist/components/spinner.js.map +1 -0
  757. package/dist/components/spinner.mjs +36 -0
  758. package/dist/components/spinner.mjs.map +1 -0
  759. package/dist/components/stepper.d.ts +114 -0
  760. package/dist/components/stepper.d.ts.map +1 -0
  761. package/dist/components/stepper.js +726 -0
  762. package/dist/components/stepper.js.map +1 -0
  763. package/dist/components/stepper.mjs +702 -0
  764. package/dist/components/stepper.mjs.map +1 -0
  765. package/dist/components/switch.d.ts +16 -0
  766. package/dist/components/switch.d.ts.map +1 -0
  767. package/dist/components/switch.js +85 -0
  768. package/dist/components/switch.js.map +1 -0
  769. package/dist/components/switch.mjs +62 -0
  770. package/dist/components/switch.mjs.map +1 -0
  771. package/dist/components/table.d.ts +11 -0
  772. package/dist/components/table.d.ts.map +1 -0
  773. package/dist/components/table.js +91 -0
  774. package/dist/components/table.js.map +1 -0
  775. package/dist/components/table.mjs +62 -0
  776. package/dist/components/table.mjs.map +1 -0
  777. package/dist/components/tabs.d.ts +32 -0
  778. package/dist/components/tabs.d.ts.map +1 -0
  779. package/dist/components/tabs.js +287 -0
  780. package/dist/components/tabs.js.map +1 -0
  781. package/dist/components/tabs.mjs +261 -0
  782. package/dist/components/tabs.mjs.map +1 -0
  783. package/dist/components/textarea.d.ts +21 -0
  784. package/dist/components/textarea.d.ts.map +1 -0
  785. package/dist/components/textarea.js +200 -0
  786. package/dist/components/textarea.js.map +1 -0
  787. package/dist/components/textarea.mjs +174 -0
  788. package/dist/components/textarea.mjs.map +1 -0
  789. package/dist/components/toggle-group.d.ts +13 -0
  790. package/dist/components/toggle-group.d.ts.map +1 -0
  791. package/dist/components/toggle-group.js +67 -0
  792. package/dist/components/toggle-group.js.map +1 -0
  793. package/dist/components/toggle-group.mjs +43 -0
  794. package/dist/components/toggle-group.mjs.map +1 -0
  795. package/dist/components/toggle.d.ts +13 -0
  796. package/dist/components/toggle.d.ts.map +1 -0
  797. package/dist/components/toggle.js +63 -0
  798. package/dist/components/toggle.js.map +1 -0
  799. package/dist/components/toggle.mjs +39 -0
  800. package/dist/components/toggle.mjs.map +1 -0
  801. package/dist/components/tooltip.d.ts +31 -0
  802. package/dist/components/tooltip.d.ts.map +1 -0
  803. package/dist/components/tooltip.js +172 -0
  804. package/dist/components/tooltip.js.map +1 -0
  805. package/dist/components/tooltip.mjs +145 -0
  806. package/dist/components/tooltip.mjs.map +1 -0
  807. package/dist/globals.css +1179 -0
  808. package/dist/hooks/index.d.ts +6 -0
  809. package/dist/hooks/index.d.ts.map +1 -0
  810. package/dist/hooks/index.js +27 -0
  811. package/dist/hooks/index.js.map +1 -0
  812. package/dist/hooks/index.mjs +6 -0
  813. package/dist/hooks/index.mjs.map +1 -0
  814. package/dist/hooks/useCopyToClipboard.d.ts +26 -0
  815. package/dist/hooks/useCopyToClipboard.d.ts.map +1 -0
  816. package/dist/hooks/useCopyToClipboard.js +59 -0
  817. package/dist/hooks/useCopyToClipboard.js.map +1 -0
  818. package/dist/hooks/useCopyToClipboard.mjs +57 -0
  819. package/dist/hooks/useCopyToClipboard.mjs.map +1 -0
  820. package/dist/hooks/useDevice.d.ts +7 -0
  821. package/dist/hooks/useDevice.d.ts.map +1 -0
  822. package/dist/hooks/useDevice.js +20 -0
  823. package/dist/hooks/useDevice.js.map +1 -0
  824. package/dist/hooks/useDevice.mjs +14 -0
  825. package/dist/hooks/useDevice.mjs.map +1 -0
  826. package/dist/hooks/useDialogTracking.d.ts +17 -0
  827. package/dist/hooks/useDialogTracking.d.ts.map +1 -0
  828. package/dist/hooks/useDialogTracking.js +113 -0
  829. package/dist/hooks/useDialogTracking.js.map +1 -0
  830. package/dist/hooks/useDialogTracking.mjs +91 -0
  831. package/dist/hooks/useDialogTracking.mjs.map +1 -0
  832. package/dist/hooks/useIsMounted.d.ts +8 -0
  833. package/dist/hooks/useIsMounted.d.ts.map +1 -0
  834. package/dist/hooks/useIsMounted.js +15 -0
  835. package/dist/hooks/useIsMounted.js.map +1 -0
  836. package/dist/hooks/useIsMounted.mjs +13 -0
  837. package/dist/hooks/useIsMounted.mjs.map +1 -0
  838. package/dist/hooks/usePathname.d.ts +20 -0
  839. package/dist/hooks/usePathname.d.ts.map +1 -0
  840. package/dist/hooks/usePathname.js +85 -0
  841. package/dist/hooks/usePathname.js.map +1 -0
  842. package/dist/hooks/usePathname.mjs +83 -0
  843. package/dist/hooks/usePathname.mjs.map +1 -0
  844. package/dist/icons.d.ts +2 -0
  845. package/dist/icons.d.ts.map +1 -0
  846. package/dist/icons.js +14 -0
  847. package/dist/icons.js.map +1 -0
  848. package/dist/icons.mjs +3 -0
  849. package/dist/icons.mjs.map +1 -0
  850. package/dist/lib/formatCurrency.d.ts +106 -0
  851. package/dist/lib/formatCurrency.d.ts.map +1 -0
  852. package/dist/lib/formatCurrency.js +187 -0
  853. package/dist/lib/formatCurrency.js.map +1 -0
  854. package/dist/lib/formatCurrency.mjs +185 -0
  855. package/dist/lib/formatCurrency.mjs.map +1 -0
  856. package/dist/lib/helpers.d.ts +64 -0
  857. package/dist/lib/helpers.d.ts.map +1 -0
  858. package/dist/lib/helpers.js +171 -0
  859. package/dist/lib/helpers.js.map +1 -0
  860. package/dist/lib/helpers.mjs +157 -0
  861. package/dist/lib/helpers.mjs.map +1 -0
  862. package/dist/lib/index.d.ts +6 -0
  863. package/dist/lib/index.d.ts.map +1 -0
  864. package/dist/lib/index.js +33 -0
  865. package/dist/lib/index.js.map +1 -0
  866. package/dist/lib/index.mjs +6 -0
  867. package/dist/lib/index.mjs.map +1 -0
  868. package/dist/lib/types.d.ts +37 -0
  869. package/dist/lib/types.d.ts.map +1 -0
  870. package/dist/lib/types.js +11 -0
  871. package/dist/lib/types.js.map +1 -0
  872. package/dist/lib/types.mjs +9 -0
  873. package/dist/lib/types.mjs.map +1 -0
  874. package/dist/lib/utils.d.ts +4 -0
  875. package/dist/lib/utils.d.ts.map +1 -0
  876. package/dist/lib/utils.js +24 -0
  877. package/dist/lib/utils.js.map +1 -0
  878. package/dist/lib/utils.mjs +19 -0
  879. package/dist/lib/utils.mjs.map +1 -0
  880. package/dist/providers/DeviceSizeWatcher/index.d.ts +3 -0
  881. package/dist/providers/DeviceSizeWatcher/index.d.ts.map +1 -0
  882. package/dist/providers/DeviceSizeWatcher/index.js +72 -0
  883. package/dist/providers/DeviceSizeWatcher/index.js.map +1 -0
  884. package/dist/providers/DeviceSizeWatcher/index.mjs +47 -0
  885. package/dist/providers/DeviceSizeWatcher/index.mjs.map +1 -0
  886. package/dist/providers/DeviceSizeWatcher/useDeviceSizeStore.d.ts +13 -0
  887. package/dist/providers/DeviceSizeWatcher/useDeviceSizeStore.d.ts.map +1 -0
  888. package/dist/providers/DeviceSizeWatcher/useDeviceSizeStore.js +22 -0
  889. package/dist/providers/DeviceSizeWatcher/useDeviceSizeStore.js.map +1 -0
  890. package/dist/providers/DeviceSizeWatcher/useDeviceSizeStore.mjs +20 -0
  891. package/dist/providers/DeviceSizeWatcher/useDeviceSizeStore.mjs.map +1 -0
  892. package/dist/providers/UISystemProvider.d.ts +68 -0
  893. package/dist/providers/UISystemProvider.d.ts.map +1 -0
  894. package/dist/providers/UISystemProvider.js +197 -0
  895. package/dist/providers/UISystemProvider.js.map +1 -0
  896. package/dist/providers/UISystemProvider.mjs +188 -0
  897. package/dist/providers/UISystemProvider.mjs.map +1 -0
  898. package/dist/providers/index.d.ts +3 -0
  899. package/dist/providers/index.d.ts.map +1 -0
  900. package/dist/providers/index.js +24 -0
  901. package/dist/providers/index.js.map +1 -0
  902. package/dist/providers/index.mjs +3 -0
  903. package/dist/providers/index.mjs.map +1 -0
  904. package/dist/theme.d.ts +10 -0
  905. package/dist/theme.d.ts.map +1 -0
  906. package/dist/theme.js +333 -0
  907. package/dist/theme.js.map +1 -0
  908. package/dist/theme.mjs +327 -0
  909. package/dist/theme.mjs.map +1 -0
  910. package/package.json +252 -0
  911. package/postcss.config.mjs +6 -0
  912. package/tailwind.config.ts +350 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/sidebar.tsx"],"names":["open","e"],"mappings":"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","file":"sidebar.mjs","sourcesContent":["'use client';\n\nimport { Slot } from '@radix-ui/react-slot';\nimport { VariantProps, cva } from 'class-variance-authority';\nimport * as React from 'react';\n\nimport { Button } from '@/components/button';\nimport { Input } from '@/components/input';\nimport { Separator } from '@/components/separator';\nimport { Sheet, SheetContent } from '@/components/sheet';\nimport { Skeleton } from '@/components/skeleton';\nimport { TooltipProvider } from '@/components/tooltip';\nimport { useDevice } from '@/hooks/useDevice';\nimport { ArrowRightIcon } from '@/icons';\nimport { cn } from '@/lib/utils';\n\n// Sidebar configuration\nexport interface SidebarConfig {\n storageKey?: string; // Optional: if not provided, state won't be persisted to localStorage\n width: string;\n widthMobile: string;\n widthIcon: string;\n keyboardShortcut: string;\n paddingX: string; // Horizontal padding for sidebar content\n maxWidth?: string; // Maximum width when resizing (in rem), e.g., '19rem', default is '30rem'\n collapsedSize?: {\n width: string; // Width of menu items when collapsed, default is '2.5rem' (40px = w-10)\n height: string; // Height of menu items when collapsed, default is '2.5rem' (40px = h-10)\n };\n enableHoverExpand?: boolean; // Enable hover to expand collapsed sidebar, default is true\n}\n\n// Default sidebar configuration\nexport const defaultSidebarConfig: SidebarConfig = {\n storageKey: 'sidebar:state',\n width: '18rem',\n widthMobile: '18rem',\n widthIcon: '5rem',\n keyboardShortcut: 'b',\n paddingX: '1rem', // Default 1rem = 16px = px-4\n maxWidth: '30rem', // Default max width 30rem = 480px\n collapsedSize: {\n width: '3rem', // Default 2.5rem = 40px = w-10\n height: '2.5rem', // Default 2.5rem = 40px = h-10\n },\n enableHoverExpand: true, // Default enable hover to expand\n};\n\n// Utility functions for localStorage\nconst getSidebarState = (storageKey?: string): boolean => {\n if (!storageKey || typeof window === 'undefined') return false;\n try {\n const saved = localStorage.getItem(storageKey);\n return saved ? JSON.parse(saved) : false;\n } catch {\n return false;\n }\n};\n\nconst setSidebarState = (storageKey: string | undefined, open: boolean): void => {\n if (!storageKey || typeof window === 'undefined') return;\n try {\n localStorage.setItem(storageKey, JSON.stringify(open));\n } catch {\n // Silently fail if localStorage is not available\n }\n};\n\nconst getSidebarWidth = (storageKey?: string): number | null => {\n if (!storageKey || typeof window === 'undefined') return null;\n try {\n const saved = localStorage.getItem(`${storageKey}:width`);\n return saved ? parseFloat(saved) : null;\n } catch {\n return null;\n }\n};\n\nconst setSidebarWidth = (storageKey: string | undefined, width: number): void => {\n if (!storageKey || typeof window === 'undefined') return;\n try {\n localStorage.setItem(`${storageKey}:width`, width.toString());\n } catch {\n // Silently fail if localStorage is not available\n }\n};\n\ntype SidebarContext = {\n state: 'expanded' | 'collapsed';\n open: boolean;\n setOpen: (_open: boolean) => void;\n openMobile: boolean;\n setOpenMobile: (_open: boolean) => void;\n isMobile: boolean;\n toggleSidebar: () => void;\n config: SidebarConfig;\n customWidth: number | null;\n setCustomWidth: (_width: number | null) => void;\n isHovered: boolean;\n setIsHovered: (_hovered: boolean) => void;\n};\n\nconst SidebarContext = React.createContext<SidebarContext | null>(null);\n\nfunction useSidebar() {\n const context = React.useContext(SidebarContext);\n if (!context) {\n throw new Error('useSidebar must be used within a SidebarProvider.');\n }\n\n return context;\n}\n\nconst SidebarProvider = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (_open: boolean) => void;\n sidebarConfig?: Partial<SidebarConfig>;\n }\n>(\n (\n {\n defaultOpen = false,\n open: openProp,\n onOpenChange: setOpenProp,\n sidebarConfig: customSidebarConfig,\n className,\n style,\n children,\n ...props\n },\n ref,\n ) => {\n const { isDesktop } = useDevice();\n\n // Merge custom sidebar config with default\n const sidebarConfig = React.useMemo(\n () => ({\n ...defaultSidebarConfig,\n ...customSidebarConfig,\n }),\n [customSidebarConfig],\n );\n\n const [openMobile, setOpenMobile] = React.useState(false);\n\n // Track if component has mounted to prevent initial animation\n const [hasInitialized, setHasInitialized] = React.useState(false);\n\n // Track hover state for collapsed sidebar expansion\n const [isHovered, setIsHovered] = React.useState(false);\n\n // This is the internal state of the sidebar.\n // We use openProp and setOpenProp for control from outside the component.\n // Initialize with saved state from localStorage\n const [_open, _setOpen] = React.useState(() => {\n if (openProp !== undefined) return openProp;\n if (defaultOpen !== undefined) return defaultOpen;\n return getSidebarState(sidebarConfig.storageKey);\n });\n\n // Custom width state for resizable sidebar\n const [customWidth, setCustomWidthState] = React.useState<number | null>(() => {\n return getSidebarWidth(sidebarConfig.storageKey);\n });\n\n const setCustomWidth = React.useCallback(\n (width: number | null) => {\n setCustomWidthState(width);\n if (width !== null) {\n setSidebarWidth(sidebarConfig.storageKey, width);\n }\n },\n [sidebarConfig.storageKey],\n );\n\n // Use a ref to track if we've already synced with localStorage on mount\n const hasSyncedRef = React.useRef(false);\n\n const open = openProp ?? _open;\n const setOpen = React.useCallback(\n (_value: boolean | ((_value: boolean) => boolean)) => {\n const openState = typeof _value === 'function' ? _value(open) : _value;\n if (setOpenProp) {\n setOpenProp(openState);\n } else {\n _setOpen(openState);\n }\n\n // Save to localStorage instead of cookie\n setSidebarState(sidebarConfig.storageKey, openState);\n },\n [setOpenProp, open, sidebarConfig.storageKey],\n );\n\n // Helper to toggle the sidebar.\n const toggleSidebar = React.useCallback(() => {\n return !isDesktop ? setOpenMobile((open) => !open) : setOpen((open) => !open);\n }, [isDesktop, setOpen, setOpenMobile]);\n\n // Sync with localStorage only on mount and when localStorage changes from other tabs\n React.useEffect(() => {\n if (openProp !== undefined) return; // Don't sync if controlled from outside\n if (!sidebarConfig.storageKey) return; // Don't sync if no storageKey\n\n // Only sync once on mount\n if (!hasSyncedRef.current) {\n hasSyncedRef.current = true;\n const savedState = getSidebarState(sidebarConfig.storageKey);\n if (savedState !== _open) {\n _setOpen(savedState);\n }\n }\n\n // Listen for localStorage changes from other tabs\n const handleStorageChange = (e: StorageEvent) => {\n if (e.key === sidebarConfig.storageKey && e.newValue !== null) {\n try {\n const newState = JSON.parse(e.newValue);\n _setOpen(newState);\n } catch {\n // Ignore invalid JSON\n }\n }\n };\n\n window.addEventListener('storage', handleStorageChange);\n return () => window.removeEventListener('storage', handleStorageChange);\n }, [openProp, sidebarConfig.storageKey]); // Remove _open from dependencies to prevent unnecessary re-runs\n\n // Enable transitions after initial mount to prevent animation on load\n React.useEffect(() => {\n // Small delay to ensure initial render is complete\n const timer = setTimeout(() => {\n setHasInitialized(true);\n }, 100);\n\n return () => clearTimeout(timer);\n }, []);\n\n // Adds a keyboard shortcut to toggle the sidebar.\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === sidebarConfig.keyboardShortcut && (event.metaKey || event.ctrlKey)) {\n event.preventDefault();\n toggleSidebar();\n }\n };\n\n window.addEventListener('keydown', handleKeyDown);\n return () => window.removeEventListener('keydown', handleKeyDown);\n }, [toggleSidebar, sidebarConfig.keyboardShortcut]);\n\n // We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n // This makes it easier to style the sidebar with Tailwind classes.\n const state = open ? 'expanded' : 'collapsed';\n\n const contextValue = React.useMemo<SidebarContext>(\n () => ({\n state,\n open,\n setOpen,\n isMobile: !isDesktop,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n config: sidebarConfig,\n customWidth,\n setCustomWidth,\n isHovered,\n setIsHovered,\n }),\n [\n state,\n open,\n setOpen,\n isDesktop,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n sidebarConfig,\n customWidth,\n setCustomWidth,\n isHovered,\n ],\n );\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\n style={\n {\n '--sidebar-width': customWidth ? `${customWidth}px` : sidebarConfig.width,\n '--sidebar-width-icon': sidebarConfig.widthIcon,\n '--sidebar-padding-x': sidebarConfig.paddingX,\n '--sidebar-collapsed-width': sidebarConfig.collapsedSize?.width,\n '--sidebar-collapsed-height': sidebarConfig.collapsedSize?.height,\n ...style,\n } as React.CSSProperties\n }\n className={cn(\n 'group/sidebar-wrapper has-[[data-variant=inset]]:bg-sidebar flex min-h-svh w-full',\n !hasInitialized && 'sidebar-no-transition',\n className,\n )}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n );\n },\n);\nSidebarProvider.displayName = 'SidebarProvider';\n\nconst Sidebar = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n side?: 'left' | 'right';\n variant?: 'sidebar' | 'floating' | 'inset';\n collapsible?: 'offcanvas' | 'icon' | 'none';\n mobileSheetClassName?: string;\n }\n>(\n (\n {\n side = 'left',\n variant = 'sidebar',\n collapsible = 'offcanvas',\n className,\n mobileSheetClassName,\n children,\n ...props\n },\n ref,\n ) => {\n const {\n isMobile,\n state,\n openMobile,\n setOpenMobile,\n config: sidebarConfig,\n isHovered,\n } = useSidebar();\n\n if (collapsible === 'none') {\n return (\n <div\n className={cn(\n 'bg-sidebar text-ink-500s flex h-full w-[--sidebar-width] flex-col',\n className,\n )}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n );\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} modal={false} {...props}>\n <SheetContent\n data-sidebar=\"sidebar\"\n data-mobile=\"true\"\n className={cn(\n 'text-ink-500s p-0',\n // Override sheet default width constraints\n '!w-full !max-w-none',\n mobileSheetClassName,\n )}\n style={\n {\n '--sidebar-width': sidebarConfig.widthMobile,\n '--sidebar-width-icon': sidebarConfig.widthIcon,\n '--sidebar-padding-x': sidebarConfig.paddingX,\n '--sidebar-collapsed-width': sidebarConfig.collapsedSize?.width,\n '--sidebar-collapsed-height': sidebarConfig.collapsedSize?.height,\n } as React.CSSProperties\n }\n side={side}\n showCloseButton={false}\n showOverlay={false}\n disableOutsideClick={true}\n >\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n );\n }\n\n return (\n <div\n ref={ref}\n className=\"text-ink-500s group peer hidden md:block\"\n data-state={state}\n data-collapsible={state === 'collapsed' ? collapsible : ''}\n data-variant={variant}\n data-side={side}\n data-hovered={isHovered}\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n className={cn(\n 'relative h-svh w-[--sidebar-width] bg-transparent transition-[width] duration-500 ease-out',\n 'group-data-[collapsible=offcanvas]:w-0',\n 'group-data-[side=right]:rotate-180',\n variant === 'floating' || variant === 'inset'\n ? 'group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]'\n : 'group-data-[collapsible=icon]:w-[--sidebar-width-icon]',\n )}\n />\n <div\n className={cn(\n 'fixed inset-y-0 z-10 hidden h-svh w-[--sidebar-width] transition-all duration-500 ease-out md:flex',\n side === 'left'\n ? 'left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]'\n : 'right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]',\n // Adjust the padding for floating and inset variants.\n variant === 'floating' || variant === 'inset'\n ? 'p-4 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4)_+2px)]'\n : 'group-data-[side=left]:border-ink-200s group-data-[collapsible=icon]:w-[--sidebar-width-icon] group-data-[side=left]:border-r group-data-[side=right]:border-l',\n // Add shadow when hovered and collapsed\n 'group-data-[collapsible=icon]:group-data-[hovered=true]:w-[--sidebar-width] group-data-[collapsible=icon]:group-data-[hovered=true]:shadow-lg',\n // Make it overlay on top when hovered\n 'group-data-[collapsible=icon]:group-data-[hovered=true]:z-50',\n className,\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n className=\"bg-sidebar group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow\"\n >\n {children}\n </div>\n </div>\n </div>\n );\n },\n);\nSidebar.displayName = 'Sidebar';\n\nconst SidebarTrigger = React.forwardRef<\n React.ElementRef<typeof Button>,\n React.ComponentProps<typeof Button>\n>(({ className, onClick, ...props }, ref) => {\n const { toggleSidebar, open, state, isHovered } = useSidebar();\n\n // Show as \"expanded\" icon when open OR when collapsed but hovered\n const showExpandedIcon = open || (state === 'collapsed' && isHovered);\n\n return (\n <Button\n ref={ref}\n data-sidebar=\"trigger\"\n variant=\"icon\"\n size=\"icon\"\n className={cn('h-8 w-8', className)}\n onClick={(event) => {\n onClick?.(event);\n toggleSidebar();\n }}\n {...props}\n >\n <ArrowRightIcon\n className={cn('h-6 w-6 transition-transform duration-200', {\n 'rotate-180': showExpandedIcon,\n })}\n />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n );\n});\nSidebarTrigger.displayName = 'SidebarTrigger';\n\nconst SidebarRail = React.forwardRef<HTMLButtonElement, React.ComponentProps<'button'>>(\n ({ className, ...props }, ref) => {\n const { toggleSidebar, state, config, customWidth, setCustomWidth } = useSidebar();\n const [isResizing, setIsResizing] = React.useState(false);\n\n const handleMouseDown = React.useCallback(\n (e: React.MouseEvent) => {\n // Only allow resize when sidebar is expanded\n if (state === 'collapsed') {\n toggleSidebar();\n return;\n }\n\n e.preventDefault();\n e.stopPropagation();\n setIsResizing(true);\n\n const startX = e.clientX;\n const startWidth = customWidth || parseFloat(config.width) * 16; // Convert rem to px (assuming 1rem = 16px)\n\n // Parse min width from config.width (default sidebar width, not icon width)\n const minWidth = parseFloat(config.width) * 16;\n // Max width based on config (default 30rem if not specified)\n const maxWidthValue = config.maxWidth ?? '30rem';\n const maxWidth = maxWidthValue.endsWith('rem')\n ? parseFloat(maxWidthValue) * 16\n : parseFloat(maxWidthValue);\n\n const handleMouseMove = (e: MouseEvent) => {\n const delta = e.clientX - startX;\n const newWidth = Math.max(minWidth, Math.min(maxWidth, startWidth + delta));\n setCustomWidth(newWidth);\n };\n\n const handleMouseUp = () => {\n setIsResizing(false);\n document.removeEventListener('mousemove', handleMouseMove);\n document.removeEventListener('mouseup', handleMouseUp);\n };\n\n document.addEventListener('mousemove', handleMouseMove);\n document.addEventListener('mouseup', handleMouseUp);\n },\n [state, toggleSidebar, customWidth, config, setCustomWidth],\n );\n\n return (\n <button\n ref={ref}\n data-sidebar=\"rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onMouseDown={handleMouseDown}\n title={state === 'collapsed' ? 'Expand Sidebar' : 'Drag to resize'}\n className={cn(\n 'absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex',\n 'after:absolute after:inset-y-0 after:left-1/2 after:w-[1px] after:bg-gray-300 after:transition-all after:duration-200',\n 'hover:after:w-[3px] hover:after:bg-blue-500',\n '[[data-side=left]_&]:cursor-col-resize [[data-side=right]_&]:cursor-col-resize',\n '[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize',\n 'group-data-[collapsible=offcanvas]:hover:bg-sidebar group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full',\n '[[data-side=left][data-collapsible=offcanvas]_&]:-right-2',\n '[[data-side=right][data-collapsible=offcanvas]_&]:-left-2',\n isResizing && 'after:!w-[3px] after:!bg-blue-500 ',\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarRail.displayName = 'SidebarRail';\n\nconst SidebarInset = React.forwardRef<HTMLDivElement, React.ComponentProps<'main'>>(\n ({ className, ...props }, ref) => {\n return (\n <main\n ref={ref}\n className={cn(\n 'bg-background relative flex min-h-svh w-full flex-1 flex-col',\n 'peer-data-[variant=inset]:min-h-[calc(100svh-theme(spacing.4))] md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow',\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarInset.displayName = 'SidebarInset';\n\nconst SidebarInput = React.forwardRef<\n React.ElementRef<typeof Input>,\n React.ComponentProps<typeof Input>\n>(({ className, ...props }, ref) => {\n return (\n <Input\n ref={ref}\n data-sidebar=\"input\"\n className={cn('bg-background w-full shadow-none focus-visible:h-8 ', className)}\n {...props}\n />\n );\n});\nSidebarInput.displayName = 'SidebarInput';\n\nconst SidebarHeader = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"header\"\n className={cn(\n 'flex flex-col gap-2 pt-3',\n '[padding-left:var(--sidebar-padding-x)] [padding-right:var(--sidebar-padding-x)]',\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarHeader.displayName = 'SidebarHeader';\n\nconst SidebarFooter = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => {\n const { state, setIsHovered, config } = useSidebar();\n const hoverTimeoutRef = React.useRef<NodeJS.Timeout>();\n const leaveTimeoutRef = React.useRef<NodeJS.Timeout>();\n\n const handleMouseEnter = React.useCallback(() => {\n if (state !== 'collapsed' || !config.enableHoverExpand) return;\n\n // Clear any pending leave timeout\n if (leaveTimeoutRef.current) {\n clearTimeout(leaveTimeoutRef.current);\n }\n\n // Add delay before expanding (300ms)\n hoverTimeoutRef.current = setTimeout(() => {\n setIsHovered(true);\n }, 300);\n }, [state, setIsHovered, config.enableHoverExpand]);\n\n const handleMouseLeave = React.useCallback(() => {\n if (!config.enableHoverExpand) return;\n\n // Clear timeout if mouse leaves before delay completes\n if (hoverTimeoutRef.current) {\n clearTimeout(hoverTimeoutRef.current);\n }\n\n // Add delay before collapsing (200ms)\n leaveTimeoutRef.current = setTimeout(() => {\n setIsHovered(false);\n }, 200);\n }, [setIsHovered, config.enableHoverExpand]);\n\n // Cleanup timeout on unmount\n React.useEffect(() => {\n return () => {\n if (hoverTimeoutRef.current) {\n clearTimeout(hoverTimeoutRef.current);\n }\n if (leaveTimeoutRef.current) {\n clearTimeout(leaveTimeoutRef.current);\n }\n };\n }, []);\n\n return (\n <div\n ref={ref}\n data-sidebar=\"footer\"\n className={cn('flex flex-col gap-2', '[padding:var(--sidebar-padding-x)]', className)}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n {...props}\n />\n );\n },\n);\nSidebarFooter.displayName = 'SidebarFooter';\n\nconst SidebarSeparator = React.forwardRef<\n React.ElementRef<typeof Separator>,\n React.ComponentProps<typeof Separator>\n>(({ className, ...props }, ref) => {\n return (\n <Separator\n ref={ref}\n data-sidebar=\"separator\"\n className={cn('bg-sidebar-border mx-2 w-auto', className)}\n {...props}\n />\n );\n});\nSidebarSeparator.displayName = 'SidebarSeparator';\n\nconst SidebarContent = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => {\n const { state, setIsHovered, config } = useSidebar();\n const hoverTimeoutRef = React.useRef<NodeJS.Timeout>();\n const leaveTimeoutRef = React.useRef<NodeJS.Timeout>();\n\n const handleMouseEnter = React.useCallback(() => {\n if (state !== 'collapsed' || !config.enableHoverExpand) return;\n\n // Clear any pending leave timeout\n if (leaveTimeoutRef.current) {\n clearTimeout(leaveTimeoutRef.current);\n }\n\n // Add delay before expanding (300ms)\n hoverTimeoutRef.current = setTimeout(() => {\n setIsHovered(true);\n }, 300);\n }, [state, setIsHovered, config.enableHoverExpand]);\n\n const handleMouseLeave = React.useCallback(() => {\n if (!config.enableHoverExpand) return;\n\n // Clear timeout if mouse leaves before delay completes\n if (hoverTimeoutRef.current) {\n clearTimeout(hoverTimeoutRef.current);\n }\n\n // Add delay before collapsing (200ms)\n leaveTimeoutRef.current = setTimeout(() => {\n setIsHovered(false);\n }, 200);\n }, [setIsHovered, config.enableHoverExpand]);\n\n // Cleanup timeout on unmount\n React.useEffect(() => {\n return () => {\n if (hoverTimeoutRef.current) {\n clearTimeout(hoverTimeoutRef.current);\n }\n if (leaveTimeoutRef.current) {\n clearTimeout(leaveTimeoutRef.current);\n }\n };\n }, []);\n\n return (\n <div\n ref={ref}\n data-sidebar=\"content\"\n className={cn(\n 'flex min-h-0 flex-1 flex-col gap-4 overflow-auto',\n // Hide scrollbar when collapsed but keep scrolling functionality\n 'group-data-[collapsible=icon]:scrollbar-hide',\n className,\n )}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n {...props}\n />\n );\n },\n);\nSidebarContent.displayName = 'SidebarContent';\n\nconst SidebarGroup = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"group\"\n className={cn(\n 'relative flex w-full min-w-0 flex-col',\n '[padding-left:var(--sidebar-padding-x)] [padding-right:var(--sidebar-padding-x)]',\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarGroup.displayName = 'SidebarGroup';\n\nconst SidebarGroupLabel = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & { asChild?: boolean }\n>(({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'div';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-label\"\n className={cn(\n 'text-ink-500s flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-none transition-[margin,opacity] duration-300 [&>svg]:size-6 [&>svg]:shrink-0 [&>svg]:transition-all [&>svg]:duration-300',\n 'group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0',\n 'group-data-[collapsible=icon]:group-data-[hovered=true]:mt-0 group-data-[collapsible=icon]:group-data-[hovered=true]:opacity-100',\n className,\n )}\n {...props}\n />\n );\n});\nSidebarGroupLabel.displayName = 'SidebarGroupLabel';\n\nconst SidebarGroupAction = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<'button'> & { asChild?: boolean }\n>(({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-action\"\n className={cn(\n 'text-ink-500s hover:bg-sidebar-accent hover:text-sidebar-accent-foreground absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-none transition-transform [&>svg]:size-6 [&>svg]:shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:absolute after:-inset-2 after:md:hidden',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n );\n});\nSidebarGroupAction.displayName = 'SidebarGroupAction';\n\nconst SidebarGroupContent = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"group-content\"\n className={cn('w-full text-base', className)}\n {...props}\n />\n ),\n);\nSidebarGroupContent.displayName = 'SidebarGroupContent';\n\nconst SidebarMenu = React.forwardRef<HTMLUListElement, React.ComponentProps<'ul'>>(\n ({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu\"\n className={cn('flex w-full min-w-0 flex-col gap-2', className)}\n {...props}\n />\n ),\n);\nSidebarMenu.displayName = 'SidebarMenu';\n\nconst SidebarMenuItem = React.forwardRef<HTMLLIElement, React.ComponentProps<'li'>>(\n ({ className, ...props }, ref) => (\n <li\n ref={ref}\n data-sidebar=\"menu-item\"\n className={cn('group/menu-item relative', className)}\n {...props}\n />\n ),\n);\nSidebarMenuItem.displayName = 'SidebarMenuItem';\n\nconst sidebarMenuButtonVariants = cva(\n 'peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md px-3 py-2 text-left text-base outline-none transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!h-[--sidebar-collapsed-height] group-data-[collapsible=icon]:!w-[--sidebar-collapsed-width] group-data-[collapsible=icon]:!justify-start group-data-[collapsible=icon]:!items-center group-data-[collapsible=icon]:group-data-[hovered=true]:!w-full group-data-[collapsible=icon]:group-data-[hovered=true]:!h-10 group-data-[collapsible=icon]:group-data-[hovered=true]:!pl-3 group-data-[collapsible=icon]:group-data-[hovered=true]:!pr-2 group-data-[collapsible=icon]:group-data-[hovered=true]:!py-2 group-data-[collapsible=icon]:group-data-[hovered=true]:!justify-start [&>span]:whitespace-nowrap [&>span]:transition-[opacity,transform] [&>span]:duration-500 [&>span]:ease-out [&>span]:group-data-[collapsible=icon]:opacity-0 [&>span]:group-data-[collapsible=icon]:hidden [&>span]:group-data-[collapsible=icon]:group-data-[hovered=true]:opacity-100 [&>span]:group-data-[collapsible=icon]:group-data-[hovered=true]:inline [&>svg]:size-6 [&>svg]:shrink-0 [&>svg]:transition-all [&>svg]:duration-500',\n {\n variants: {\n variant: {\n default: 'hover:bg-sidebar-accent hover:text-sidebar-accent-foreground',\n outline:\n 'bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]',\n },\n size: {\n default: 'h-10 text-base',\n sm: 'h-7 text-xs',\n lg: 'h-12 text-base group-data-[collapsible=icon]:!p-0 group-data-[collapsible=icon]:group-data-[hovered=true]:!pl-3 group-data-[collapsible=icon]:group-data-[hovered=true]:!pr-2 group-data-[collapsible=icon]:group-data-[hovered=true]:!py-2',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\nconst SidebarMenuButton = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<'button'> & {\n asChild?: boolean;\n isActive?: boolean;\n } & VariantProps<typeof sidebarMenuButtonVariants>\n>(\n (\n {\n asChild = false,\n isActive = false,\n variant = 'default',\n size = 'default',\n className,\n ...props\n },\n ref,\n ) => {\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n );\n },\n);\nSidebarMenuButton.displayName = 'SidebarMenuButton';\n\nconst SidebarMenuAction = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<'button'> & {\n asChild?: boolean;\n showOnHover?: boolean;\n }\n>(({ className, asChild = false, showOnHover = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-action\"\n className={cn(\n 'text-ink-500s hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-none transition-all duration-300 [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:transition-all [&>svg]:duration-300',\n // Increases the hit area of the button on mobile.\n 'after:absolute after:-inset-2 after:md:hidden',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n 'group-data-[collapsible=icon]:group-data-[hovered=true]:flex',\n showOnHover &&\n 'peer-data-[active=true]/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 md:opacity-0',\n className,\n )}\n {...props}\n />\n );\n});\nSidebarMenuAction.displayName = 'SidebarMenuAction';\n\nconst SidebarMenuBadge = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"menu-badge\"\n className={cn(\n 'pointer-events-none flex h-5 min-w-5 select-none items-center justify-center rounded-full bg-red-500 px-1 text-xs font-medium tabular-nums text-white transition-all duration-300',\n 'absolute right-1',\n 'peer-hover/menu-button:bg-red-500 peer-data-[active=true]/menu-button:bg-red-500',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n 'group-data-[collapsible=icon]:group-data-[hovered=true]:!flex',\n 'group-data-[collapsible=icon]:group-data-[hovered=true]:!relative',\n 'group-data-[collapsible=icon]:group-data-[hovered=true]:!right-auto',\n 'group-data-[collapsible=icon]:group-data-[hovered=true]:!top-auto',\n 'group-data-[collapsible=icon]:group-data-[hovered=true]:ml-auto',\n className,\n )}\n {...props}\n />\n ),\n);\nSidebarMenuBadge.displayName = 'SidebarMenuBadge';\n\nconst SidebarMenuSkeleton = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n showIcon?: boolean;\n }\n>(({ className, showIcon = false, ...props }, ref) => {\n // Random width between 50 to 90%.\n const width = React.useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`;\n }, []);\n\n return (\n <div\n ref={ref}\n data-sidebar=\"menu-skeleton\"\n className={cn('flex h-8 items-center gap-2 rounded-md px-2', className)}\n {...props}\n >\n {showIcon && <Skeleton className=\"size-4 rounded-md\" data-sidebar=\"menu-skeleton-icon\" />}\n <Skeleton\n className=\"h-4 max-w-[--skeleton-width] flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n '--skeleton-width': width,\n } as React.CSSProperties\n }\n />\n </div>\n );\n});\nSidebarMenuSkeleton.displayName = 'SidebarMenuSkeleton';\n\nconst SidebarMenuSub = React.forwardRef<HTMLUListElement, React.ComponentProps<'ul'>>(\n ({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu-sub\"\n className={cn(\n 'border-sidebar-border ml-5 flex min-w-0 translate-x-px flex-col gap-1 pl-3 pt-2 transition-all duration-300',\n 'group-data-[collapsible=icon]:hidden',\n 'group-data-[collapsible=icon]:group-data-[hovered=true]:flex',\n className,\n )}\n {...props}\n />\n ),\n);\nSidebarMenuSub.displayName = 'SidebarMenuSub';\n\nconst SidebarMenuSubItem = React.forwardRef<HTMLLIElement, React.ComponentProps<'li'>>(\n ({ ...props }, ref) => <li ref={ref} {...props} />,\n);\nSidebarMenuSubItem.displayName = 'SidebarMenuSubItem';\n\nconst SidebarMenuSubButton = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentProps<'a'> & {\n asChild?: boolean;\n size?: 'sm' | 'md';\n isActive?: boolean;\n }\n>(({ asChild = false, size = 'sm', isActive, className, ...props }, ref) => {\n const Comp = asChild ? Slot : 'a';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n 'text-ink-500s hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground flex h-10 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-3 py-2 outline-none transition-all duration-300 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>span:last-child]:transition-opacity [&>span:last-child]:duration-300 [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:transition-all [&>svg]:duration-300',\n 'data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground',\n size === 'sm' && 'text-sm',\n size === 'md' && 'text-base',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n );\n});\nSidebarMenuSubButton.displayName = 'SidebarMenuSubButton';\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar,\n};\n"]}
@@ -0,0 +1,36 @@
1
+ import * as React from 'react';
2
+ interface SkeletonProps extends React.HTMLAttributes<HTMLDivElement> {
3
+ /**
4
+ * When true, shows skeleton. When false, shows children.
5
+ */
6
+ loading?: boolean;
7
+ /**
8
+ * Content to show when loading is false
9
+ */
10
+ children?: React.ReactNode;
11
+ /**
12
+ * Custom skeleton component to use instead of default
13
+ */
14
+ skeleton?: React.ReactNode;
15
+ /**
16
+ * Animation variant
17
+ */
18
+ variant?: 'pulse' | 'wave' | 'none';
19
+ /**
20
+ * Skeleton shape
21
+ */
22
+ shape?: 'rectangle' | 'circle' | 'text';
23
+ /**
24
+ * Size preset for common use cases
25
+ */
26
+ size?: 'sm' | 'md' | 'lg' | 'xl';
27
+ }
28
+ declare const Skeleton: React.ForwardRefExoticComponent<SkeletonProps & React.RefAttributes<HTMLDivElement>>;
29
+ declare const SkeletonText: React.ForwardRefExoticComponent<Omit<SkeletonProps, "shape"> & React.RefAttributes<HTMLDivElement>>;
30
+ declare const SkeletonAvatar: React.ForwardRefExoticComponent<Omit<SkeletonProps, "shape"> & React.RefAttributes<HTMLDivElement>>;
31
+ declare const SkeletonCard: React.ForwardRefExoticComponent<SkeletonProps & React.RefAttributes<HTMLDivElement>>;
32
+ declare const SkeletonList: React.ForwardRefExoticComponent<SkeletonProps & {
33
+ items?: number;
34
+ } & React.RefAttributes<HTMLDivElement>>;
35
+ export { Skeleton, SkeletonText, SkeletonAvatar, SkeletonCard, SkeletonList };
36
+ //# sourceMappingURL=skeleton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skeleton.d.ts","sourceRoot":"","sources":["../../src/components/skeleton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,UAAU,aAAc,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAClE;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IACpC;;OAEG;IACH,KAAK,CAAC,EAAE,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC;IACxC;;OAEG;IACH,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;CAClC;AAqBD,QAAA,MAAM,QAAQ,sFAsGb,CAAC;AAKF,QAAA,MAAM,YAAY,qGAIjB,CAAC;AAGF,QAAA,MAAM,cAAc,qGAanB,CAAC;AAGF,QAAA,MAAM,YAAY,sFAgBjB,CAAC;AAGF,QAAA,MAAM,YAAY;YAA8D,MAAM;wCAoBrF,CAAC;AAGF,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC"}
@@ -0,0 +1,153 @@
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 skeletonVariants = {
28
+ pulse: "animate-pulse",
29
+ wave: "animate-wave",
30
+ none: ""
31
+ };
32
+ const shapeVariants = {
33
+ rectangle: "rounded-md",
34
+ circle: "rounded-full",
35
+ text: "rounded-sm"
36
+ };
37
+ const sizeVariants = {
38
+ sm: "h-4",
39
+ md: "h-6",
40
+ lg: "h-8",
41
+ xl: "h-12"
42
+ };
43
+ const Skeleton = React__namespace.forwardRef(
44
+ ({
45
+ className,
46
+ loading = true,
47
+ children,
48
+ skeleton,
49
+ variant = "pulse",
50
+ shape = "rectangle",
51
+ size,
52
+ ...props
53
+ }, ref) => {
54
+ if (loading === false && children !== void 0 && children !== null) {
55
+ return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children });
56
+ }
57
+ if (skeleton) {
58
+ return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: skeleton });
59
+ }
60
+ if (loading && children) {
61
+ const childElement = React__namespace.isValidElement(children) ? children : null;
62
+ const childClasses = childElement?.props?.className || "";
63
+ const marginClasses = childClasses.split(" ").filter(
64
+ (cls) => cls.startsWith("m-") || cls.startsWith("mt-") || cls.startsWith("mb-") || cls.startsWith("ml-") || cls.startsWith("mr-") || cls.startsWith("mx-") || cls.startsWith("my-") || cls.startsWith("margin-")
65
+ ).join(" ");
66
+ const childrenWithoutMargin = React__namespace.isValidElement(children) ? React__namespace.cloneElement(children, {
67
+ ...children.props,
68
+ className: childClasses.split(" ").filter(
69
+ (cls) => !(cls.startsWith("m-") || cls.startsWith("mt-") || cls.startsWith("mb-") || cls.startsWith("ml-") || cls.startsWith("mr-") || cls.startsWith("mx-") || cls.startsWith("my-") || cls.startsWith("margin-"))
70
+ ).join(" ")
71
+ }) : children;
72
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: utils.cn("relative", marginClasses), ...props, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
73
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "pointer-events-none opacity-0", children: childrenWithoutMargin }),
74
+ /* @__PURE__ */ jsxRuntime.jsx(
75
+ "div",
76
+ {
77
+ className: utils.cn(
78
+ "bg-muted absolute inset-0",
79
+ skeletonVariants[variant],
80
+ shapeVariants[shape],
81
+ className
82
+ )
83
+ }
84
+ )
85
+ ] }) });
86
+ }
87
+ const skeletonClasses = utils.cn(
88
+ "bg-muted",
89
+ skeletonVariants[variant],
90
+ shapeVariants[shape],
91
+ size && sizeVariants[size],
92
+ // Default dimensions if no size prop and no explicit dimensions
93
+ !size && !className?.includes("h-") && !className?.includes("w-") && "h-4 w-full",
94
+ className
95
+ );
96
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: skeletonClasses, ...props });
97
+ }
98
+ );
99
+ Skeleton.displayName = "Skeleton";
100
+ const SkeletonText = React__namespace.forwardRef(
101
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(Skeleton, { ref, shape: "text", className: utils.cn("h-4 w-full", className), ...props })
102
+ );
103
+ SkeletonText.displayName = "SkeletonText";
104
+ const SkeletonAvatar = React__namespace.forwardRef(
105
+ ({ className, size = "md", ...props }, ref) => {
106
+ const avatarSizes = {
107
+ sm: "h-8 w-8",
108
+ md: "h-10 w-10",
109
+ lg: "h-12 w-12",
110
+ xl: "h-16 w-16"
111
+ };
112
+ return /* @__PURE__ */ jsxRuntime.jsx(Skeleton, { ref, shape: "circle", className: utils.cn(avatarSizes[size], className), ...props });
113
+ }
114
+ );
115
+ SkeletonAvatar.displayName = "SkeletonAvatar";
116
+ const SkeletonCard = React__namespace.forwardRef(
117
+ ({ className, children, loading = true, ...props }, ref) => {
118
+ if (!loading && children) {
119
+ return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children });
120
+ }
121
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref, className: utils.cn("space-y-3", className), ...props, children: [
122
+ /* @__PURE__ */ jsxRuntime.jsx(Skeleton, { className: "h-[125px] w-full rounded-xl" }),
123
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
124
+ /* @__PURE__ */ jsxRuntime.jsx(Skeleton, { className: "h-4 w-full" }),
125
+ /* @__PURE__ */ jsxRuntime.jsx(Skeleton, { className: "h-4 w-4/5" })
126
+ ] })
127
+ ] });
128
+ }
129
+ );
130
+ SkeletonCard.displayName = "SkeletonCard";
131
+ const SkeletonList = React__namespace.forwardRef(
132
+ ({ className, children, loading = true, items = 3, ...props }, ref) => {
133
+ if (!loading && children) {
134
+ return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children });
135
+ }
136
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: utils.cn("space-y-3", className), ...props, children: Array.from({ length: items }).map((_, i) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center space-x-4", children: [
137
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonAvatar, {}),
138
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 space-y-2", children: [
139
+ /* @__PURE__ */ jsxRuntime.jsx(Skeleton, { className: "h-4 w-full" }),
140
+ /* @__PURE__ */ jsxRuntime.jsx(Skeleton, { className: "h-4 w-4/5" })
141
+ ] })
142
+ ] }, i)) });
143
+ }
144
+ );
145
+ SkeletonList.displayName = "SkeletonList";
146
+
147
+ exports.Skeleton = Skeleton;
148
+ exports.SkeletonAvatar = SkeletonAvatar;
149
+ exports.SkeletonCard = SkeletonCard;
150
+ exports.SkeletonList = SkeletonList;
151
+ exports.SkeletonText = SkeletonText;
152
+ //# sourceMappingURL=skeleton.js.map
153
+ //# sourceMappingURL=skeleton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/skeleton.tsx"],"names":["React","jsx","cn","jsxs"],"mappings":"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","file":"skeleton.js","sourcesContent":["import * as React from 'react';\nimport { cn } from '@/lib/utils';\n\ninterface SkeletonProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * When true, shows skeleton. When false, shows children.\n */\n loading?: boolean;\n /**\n * Content to show when loading is false\n */\n children?: React.ReactNode;\n /**\n * Custom skeleton component to use instead of default\n */\n skeleton?: React.ReactNode;\n /**\n * Animation variant\n */\n variant?: 'pulse' | 'wave' | 'none';\n /**\n * Skeleton shape\n */\n shape?: 'rectangle' | 'circle' | 'text';\n /**\n * Size preset for common use cases\n */\n size?: 'sm' | 'md' | 'lg' | 'xl';\n}\n\nconst skeletonVariants = {\n pulse: 'animate-pulse',\n wave: 'animate-wave',\n none: '',\n};\n\nconst shapeVariants = {\n rectangle: 'rounded-md',\n circle: 'rounded-full',\n text: 'rounded-sm',\n};\n\nconst sizeVariants = {\n sm: 'h-4',\n md: 'h-6',\n lg: 'h-8',\n xl: 'h-12',\n};\n\nconst Skeleton = React.forwardRef<HTMLDivElement, SkeletonProps>(\n (\n {\n className,\n loading = true,\n children,\n skeleton,\n variant = 'pulse',\n shape = 'rectangle',\n size,\n ...props\n },\n ref,\n ) => {\n // If loading is false, render children normally\n if (loading === false && children !== undefined && children !== null) {\n return <>{children}</>;\n }\n\n // If custom skeleton is provided, use it\n if (skeleton) {\n return <>{skeleton}</>;\n }\n\n // If we have children, render invisible children with skeleton overlay\n if (loading && children) {\n // Extract the children element to copy its classes\n const childElement = React.isValidElement(children) ? children : null;\n const childClasses = childElement?.props?.className || '';\n\n // Extract margin classes from children\n const marginClasses = childClasses\n .split(' ')\n .filter(\n (cls: string) =>\n cls.startsWith('m-') ||\n cls.startsWith('mt-') ||\n cls.startsWith('mb-') ||\n cls.startsWith('ml-') ||\n cls.startsWith('mr-') ||\n cls.startsWith('mx-') ||\n cls.startsWith('my-') ||\n cls.startsWith('margin-'),\n )\n .join(' ');\n\n // Create children without margin classes for accurate content area measurement\n const childrenWithoutMargin = React.isValidElement(children)\n ? React.cloneElement(children, {\n ...children.props,\n className: childClasses\n .split(' ')\n .filter(\n (cls: string) =>\n !(\n cls.startsWith('m-') ||\n cls.startsWith('mt-') ||\n cls.startsWith('mb-') ||\n cls.startsWith('ml-') ||\n cls.startsWith('mr-') ||\n cls.startsWith('mx-') ||\n cls.startsWith('my-') ||\n cls.startsWith('margin-')\n ),\n )\n .join(' '),\n })\n : children;\n\n return (\n <div ref={ref} className={cn('relative', marginClasses)} {...props}>\n {/* Container for content area only - maintains exact content dimensions */}\n <div className=\"relative\">\n {/* Invisible children to maintain exact layout and dimensions */}\n <div className=\"pointer-events-none opacity-0\">{childrenWithoutMargin}</div>\n {/* Skeleton overlay - only covers content area, not margins */}\n <div\n className={cn(\n 'bg-muted absolute inset-0',\n skeletonVariants[variant],\n shapeVariants[shape],\n className,\n )}\n />\n </div>\n </div>\n );\n }\n\n // Default skeleton classes for when no children are provided\n const skeletonClasses = cn(\n 'bg-muted',\n skeletonVariants[variant],\n shapeVariants[shape],\n size && sizeVariants[size],\n // Default dimensions if no size prop and no explicit dimensions\n !size && !className?.includes('h-') && !className?.includes('w-') && 'h-4 w-full',\n className,\n );\n\n return <div ref={ref} className={skeletonClasses} {...props} />;\n },\n);\n\nSkeleton.displayName = 'Skeleton';\n\n// Skeleton presets for common use cases\nconst SkeletonText = React.forwardRef<HTMLDivElement, Omit<SkeletonProps, 'shape'>>(\n ({ className, ...props }, ref) => (\n <Skeleton ref={ref} shape=\"text\" className={cn('h-4 w-full', className)} {...props} />\n ),\n);\nSkeletonText.displayName = 'SkeletonText';\n\nconst SkeletonAvatar = React.forwardRef<HTMLDivElement, Omit<SkeletonProps, 'shape'>>(\n ({ className, size = 'md', ...props }, ref) => {\n const avatarSizes = {\n sm: 'h-8 w-8',\n md: 'h-10 w-10',\n lg: 'h-12 w-12',\n xl: 'h-16 w-16',\n };\n\n return (\n <Skeleton ref={ref} shape=\"circle\" className={cn(avatarSizes[size], className)} {...props} />\n );\n },\n);\nSkeletonAvatar.displayName = 'SkeletonAvatar';\n\nconst SkeletonCard = React.forwardRef<HTMLDivElement, SkeletonProps>(\n ({ className, children, loading = true, ...props }, ref) => {\n if (!loading && children) {\n return <>{children}</>;\n }\n\n return (\n <div ref={ref} className={cn('space-y-3', className)} {...props}>\n <Skeleton className=\"h-[125px] w-full rounded-xl\" />\n <div className=\"space-y-2\">\n <Skeleton className=\"h-4 w-full\" />\n <Skeleton className=\"h-4 w-4/5\" />\n </div>\n </div>\n );\n },\n);\nSkeletonCard.displayName = 'SkeletonCard';\n\nconst SkeletonList = React.forwardRef<HTMLDivElement, SkeletonProps & { items?: number }>(\n ({ className, children, loading = true, items = 3, ...props }, ref) => {\n if (!loading && children) {\n return <>{children}</>;\n }\n\n return (\n <div ref={ref} className={cn('space-y-3', className)} {...props}>\n {Array.from({ length: items }).map((_, i) => (\n <div key={i} className=\"flex items-center space-x-4\">\n <SkeletonAvatar />\n <div className=\"flex-1 space-y-2\">\n <Skeleton className=\"h-4 w-full\" />\n <Skeleton className=\"h-4 w-4/5\" />\n </div>\n </div>\n ))}\n </div>\n );\n },\n);\nSkeletonList.displayName = 'SkeletonList';\n\nexport { Skeleton, SkeletonText, SkeletonAvatar, SkeletonCard, SkeletonList };\n"]}
@@ -0,0 +1,127 @@
1
+ import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { cn } from '@/lib/utils';
4
+
5
+ const skeletonVariants = {
6
+ pulse: "animate-pulse",
7
+ wave: "animate-wave",
8
+ none: ""
9
+ };
10
+ const shapeVariants = {
11
+ rectangle: "rounded-md",
12
+ circle: "rounded-full",
13
+ text: "rounded-sm"
14
+ };
15
+ const sizeVariants = {
16
+ sm: "h-4",
17
+ md: "h-6",
18
+ lg: "h-8",
19
+ xl: "h-12"
20
+ };
21
+ const Skeleton = React.forwardRef(
22
+ ({
23
+ className,
24
+ loading = true,
25
+ children,
26
+ skeleton,
27
+ variant = "pulse",
28
+ shape = "rectangle",
29
+ size,
30
+ ...props
31
+ }, ref) => {
32
+ if (loading === false && children !== void 0 && children !== null) {
33
+ return /* @__PURE__ */ jsx(Fragment, { children });
34
+ }
35
+ if (skeleton) {
36
+ return /* @__PURE__ */ jsx(Fragment, { children: skeleton });
37
+ }
38
+ if (loading && children) {
39
+ const childElement = React.isValidElement(children) ? children : null;
40
+ const childClasses = childElement?.props?.className || "";
41
+ const marginClasses = childClasses.split(" ").filter(
42
+ (cls) => cls.startsWith("m-") || cls.startsWith("mt-") || cls.startsWith("mb-") || cls.startsWith("ml-") || cls.startsWith("mr-") || cls.startsWith("mx-") || cls.startsWith("my-") || cls.startsWith("margin-")
43
+ ).join(" ");
44
+ const childrenWithoutMargin = React.isValidElement(children) ? React.cloneElement(children, {
45
+ ...children.props,
46
+ className: childClasses.split(" ").filter(
47
+ (cls) => !(cls.startsWith("m-") || cls.startsWith("mt-") || cls.startsWith("mb-") || cls.startsWith("ml-") || cls.startsWith("mr-") || cls.startsWith("mx-") || cls.startsWith("my-") || cls.startsWith("margin-"))
48
+ ).join(" ")
49
+ }) : children;
50
+ return /* @__PURE__ */ jsx("div", { ref, className: cn("relative", marginClasses), ...props, children: /* @__PURE__ */ jsxs("div", { className: "relative", children: [
51
+ /* @__PURE__ */ jsx("div", { className: "pointer-events-none opacity-0", children: childrenWithoutMargin }),
52
+ /* @__PURE__ */ jsx(
53
+ "div",
54
+ {
55
+ className: cn(
56
+ "bg-muted absolute inset-0",
57
+ skeletonVariants[variant],
58
+ shapeVariants[shape],
59
+ className
60
+ )
61
+ }
62
+ )
63
+ ] }) });
64
+ }
65
+ const skeletonClasses = cn(
66
+ "bg-muted",
67
+ skeletonVariants[variant],
68
+ shapeVariants[shape],
69
+ size && sizeVariants[size],
70
+ // Default dimensions if no size prop and no explicit dimensions
71
+ !size && !className?.includes("h-") && !className?.includes("w-") && "h-4 w-full",
72
+ className
73
+ );
74
+ return /* @__PURE__ */ jsx("div", { ref, className: skeletonClasses, ...props });
75
+ }
76
+ );
77
+ Skeleton.displayName = "Skeleton";
78
+ const SkeletonText = React.forwardRef(
79
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx(Skeleton, { ref, shape: "text", className: cn("h-4 w-full", className), ...props })
80
+ );
81
+ SkeletonText.displayName = "SkeletonText";
82
+ const SkeletonAvatar = React.forwardRef(
83
+ ({ className, size = "md", ...props }, ref) => {
84
+ const avatarSizes = {
85
+ sm: "h-8 w-8",
86
+ md: "h-10 w-10",
87
+ lg: "h-12 w-12",
88
+ xl: "h-16 w-16"
89
+ };
90
+ return /* @__PURE__ */ jsx(Skeleton, { ref, shape: "circle", className: cn(avatarSizes[size], className), ...props });
91
+ }
92
+ );
93
+ SkeletonAvatar.displayName = "SkeletonAvatar";
94
+ const SkeletonCard = React.forwardRef(
95
+ ({ className, children, loading = true, ...props }, ref) => {
96
+ if (!loading && children) {
97
+ return /* @__PURE__ */ jsx(Fragment, { children });
98
+ }
99
+ return /* @__PURE__ */ jsxs("div", { ref, className: cn("space-y-3", className), ...props, children: [
100
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-[125px] w-full rounded-xl" }),
101
+ /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
102
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-full" }),
103
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-4/5" })
104
+ ] })
105
+ ] });
106
+ }
107
+ );
108
+ SkeletonCard.displayName = "SkeletonCard";
109
+ const SkeletonList = React.forwardRef(
110
+ ({ className, children, loading = true, items = 3, ...props }, ref) => {
111
+ if (!loading && children) {
112
+ return /* @__PURE__ */ jsx(Fragment, { children });
113
+ }
114
+ return /* @__PURE__ */ jsx("div", { ref, className: cn("space-y-3", className), ...props, children: Array.from({ length: items }).map((_, i) => /* @__PURE__ */ jsxs("div", { className: "flex items-center space-x-4", children: [
115
+ /* @__PURE__ */ jsx(SkeletonAvatar, {}),
116
+ /* @__PURE__ */ jsxs("div", { className: "flex-1 space-y-2", children: [
117
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-full" }),
118
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-4/5" })
119
+ ] })
120
+ ] }, i)) });
121
+ }
122
+ );
123
+ SkeletonList.displayName = "SkeletonList";
124
+
125
+ export { Skeleton, SkeletonAvatar, SkeletonCard, SkeletonList, SkeletonText };
126
+ //# sourceMappingURL=skeleton.mjs.map
127
+ //# sourceMappingURL=skeleton.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/skeleton.tsx"],"names":[],"mappings":"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","file":"skeleton.mjs","sourcesContent":["import * as React from 'react';\nimport { cn } from '@/lib/utils';\n\ninterface SkeletonProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * When true, shows skeleton. When false, shows children.\n */\n loading?: boolean;\n /**\n * Content to show when loading is false\n */\n children?: React.ReactNode;\n /**\n * Custom skeleton component to use instead of default\n */\n skeleton?: React.ReactNode;\n /**\n * Animation variant\n */\n variant?: 'pulse' | 'wave' | 'none';\n /**\n * Skeleton shape\n */\n shape?: 'rectangle' | 'circle' | 'text';\n /**\n * Size preset for common use cases\n */\n size?: 'sm' | 'md' | 'lg' | 'xl';\n}\n\nconst skeletonVariants = {\n pulse: 'animate-pulse',\n wave: 'animate-wave',\n none: '',\n};\n\nconst shapeVariants = {\n rectangle: 'rounded-md',\n circle: 'rounded-full',\n text: 'rounded-sm',\n};\n\nconst sizeVariants = {\n sm: 'h-4',\n md: 'h-6',\n lg: 'h-8',\n xl: 'h-12',\n};\n\nconst Skeleton = React.forwardRef<HTMLDivElement, SkeletonProps>(\n (\n {\n className,\n loading = true,\n children,\n skeleton,\n variant = 'pulse',\n shape = 'rectangle',\n size,\n ...props\n },\n ref,\n ) => {\n // If loading is false, render children normally\n if (loading === false && children !== undefined && children !== null) {\n return <>{children}</>;\n }\n\n // If custom skeleton is provided, use it\n if (skeleton) {\n return <>{skeleton}</>;\n }\n\n // If we have children, render invisible children with skeleton overlay\n if (loading && children) {\n // Extract the children element to copy its classes\n const childElement = React.isValidElement(children) ? children : null;\n const childClasses = childElement?.props?.className || '';\n\n // Extract margin classes from children\n const marginClasses = childClasses\n .split(' ')\n .filter(\n (cls: string) =>\n cls.startsWith('m-') ||\n cls.startsWith('mt-') ||\n cls.startsWith('mb-') ||\n cls.startsWith('ml-') ||\n cls.startsWith('mr-') ||\n cls.startsWith('mx-') ||\n cls.startsWith('my-') ||\n cls.startsWith('margin-'),\n )\n .join(' ');\n\n // Create children without margin classes for accurate content area measurement\n const childrenWithoutMargin = React.isValidElement(children)\n ? React.cloneElement(children, {\n ...children.props,\n className: childClasses\n .split(' ')\n .filter(\n (cls: string) =>\n !(\n cls.startsWith('m-') ||\n cls.startsWith('mt-') ||\n cls.startsWith('mb-') ||\n cls.startsWith('ml-') ||\n cls.startsWith('mr-') ||\n cls.startsWith('mx-') ||\n cls.startsWith('my-') ||\n cls.startsWith('margin-')\n ),\n )\n .join(' '),\n })\n : children;\n\n return (\n <div ref={ref} className={cn('relative', marginClasses)} {...props}>\n {/* Container for content area only - maintains exact content dimensions */}\n <div className=\"relative\">\n {/* Invisible children to maintain exact layout and dimensions */}\n <div className=\"pointer-events-none opacity-0\">{childrenWithoutMargin}</div>\n {/* Skeleton overlay - only covers content area, not margins */}\n <div\n className={cn(\n 'bg-muted absolute inset-0',\n skeletonVariants[variant],\n shapeVariants[shape],\n className,\n )}\n />\n </div>\n </div>\n );\n }\n\n // Default skeleton classes for when no children are provided\n const skeletonClasses = cn(\n 'bg-muted',\n skeletonVariants[variant],\n shapeVariants[shape],\n size && sizeVariants[size],\n // Default dimensions if no size prop and no explicit dimensions\n !size && !className?.includes('h-') && !className?.includes('w-') && 'h-4 w-full',\n className,\n );\n\n return <div ref={ref} className={skeletonClasses} {...props} />;\n },\n);\n\nSkeleton.displayName = 'Skeleton';\n\n// Skeleton presets for common use cases\nconst SkeletonText = React.forwardRef<HTMLDivElement, Omit<SkeletonProps, 'shape'>>(\n ({ className, ...props }, ref) => (\n <Skeleton ref={ref} shape=\"text\" className={cn('h-4 w-full', className)} {...props} />\n ),\n);\nSkeletonText.displayName = 'SkeletonText';\n\nconst SkeletonAvatar = React.forwardRef<HTMLDivElement, Omit<SkeletonProps, 'shape'>>(\n ({ className, size = 'md', ...props }, ref) => {\n const avatarSizes = {\n sm: 'h-8 w-8',\n md: 'h-10 w-10',\n lg: 'h-12 w-12',\n xl: 'h-16 w-16',\n };\n\n return (\n <Skeleton ref={ref} shape=\"circle\" className={cn(avatarSizes[size], className)} {...props} />\n );\n },\n);\nSkeletonAvatar.displayName = 'SkeletonAvatar';\n\nconst SkeletonCard = React.forwardRef<HTMLDivElement, SkeletonProps>(\n ({ className, children, loading = true, ...props }, ref) => {\n if (!loading && children) {\n return <>{children}</>;\n }\n\n return (\n <div ref={ref} className={cn('space-y-3', className)} {...props}>\n <Skeleton className=\"h-[125px] w-full rounded-xl\" />\n <div className=\"space-y-2\">\n <Skeleton className=\"h-4 w-full\" />\n <Skeleton className=\"h-4 w-4/5\" />\n </div>\n </div>\n );\n },\n);\nSkeletonCard.displayName = 'SkeletonCard';\n\nconst SkeletonList = React.forwardRef<HTMLDivElement, SkeletonProps & { items?: number }>(\n ({ className, children, loading = true, items = 3, ...props }, ref) => {\n if (!loading && children) {\n return <>{children}</>;\n }\n\n return (\n <div ref={ref} className={cn('space-y-3', className)} {...props}>\n {Array.from({ length: items }).map((_, i) => (\n <div key={i} className=\"flex items-center space-x-4\">\n <SkeletonAvatar />\n <div className=\"flex-1 space-y-2\">\n <Skeleton className=\"h-4 w-full\" />\n <Skeleton className=\"h-4 w-4/5\" />\n </div>\n </div>\n ))}\n </div>\n );\n },\n);\nSkeletonList.displayName = 'SkeletonList';\n\nexport { Skeleton, SkeletonText, SkeletonAvatar, SkeletonCard, SkeletonList };\n"]}
@@ -0,0 +1,5 @@
1
+ import * as React from 'react';
2
+ import * as SliderPrimitive from '@radix-ui/react-slider';
3
+ declare const Slider: React.ForwardRefExoticComponent<Omit<SliderPrimitive.SliderProps & React.RefAttributes<HTMLSpanElement>, "ref"> & React.RefAttributes<HTMLSpanElement>>;
4
+ export { Slider };
5
+ //# sourceMappingURL=slider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slider.d.ts","sourceRoot":"","sources":["../../src/components/slider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAI1D,QAAA,MAAM,MAAM,yJAcV,CAAC;AAGH,OAAO,EAAE,MAAM,EAAE,CAAC"}
@@ -0,0 +1,45 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var React = require('react');
5
+ var SliderPrimitive = require('@radix-ui/react-slider');
6
+ var utils = require('@/lib/utils');
7
+
8
+ function _interopNamespace(e) {
9
+ if (e && e.__esModule) return e;
10
+ var n = Object.create(null);
11
+ if (e) {
12
+ Object.keys(e).forEach(function (k) {
13
+ if (k !== 'default') {
14
+ var d = Object.getOwnPropertyDescriptor(e, k);
15
+ Object.defineProperty(n, k, d.get ? d : {
16
+ enumerable: true,
17
+ get: function () { return e[k]; }
18
+ });
19
+ }
20
+ });
21
+ }
22
+ n.default = e;
23
+ return Object.freeze(n);
24
+ }
25
+
26
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
27
+ var SliderPrimitive__namespace = /*#__PURE__*/_interopNamespace(SliderPrimitive);
28
+
29
+ const Slider = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
30
+ SliderPrimitive__namespace.Root,
31
+ {
32
+ ref,
33
+ className: utils.cn("relative flex w-full touch-none select-none items-center", className),
34
+ ...props,
35
+ children: [
36
+ /* @__PURE__ */ jsxRuntime.jsx(SliderPrimitive__namespace.Track, { className: "bg-muted relative h-2 w-full grow overflow-hidden rounded-full", children: /* @__PURE__ */ jsxRuntime.jsx(SliderPrimitive__namespace.Range, { className: "bg-primary absolute h-full" }) }),
37
+ /* @__PURE__ */ jsxRuntime.jsx(SliderPrimitive__namespace.Thumb, { className: "border-primary bg-background block h-5 w-5 rounded-full border-2 transition-colors focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50" })
38
+ ]
39
+ }
40
+ ));
41
+ Slider.displayName = SliderPrimitive__namespace.Root.displayName;
42
+
43
+ exports.Slider = Slider;
44
+ //# sourceMappingURL=slider.js.map
45
+ //# sourceMappingURL=slider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/slider.tsx"],"names":["React","jsxs","SliderPrimitive","cn","jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,MAAM,MAAA,GAASA,iBAAM,UAAA,CAGnB,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BC,eAAA;AAAA,EAACC,0BAAA,CAAgB,IAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAWC,QAAA,CAAG,0DAAA,EAA4D,SAAS,CAAA;AAAA,IAClF,GAAG,KAAA;AAAA,IAEJ,QAAA,EAAA;AAAA,sBAAAC,cAAA,CAACF,0BAAA,CAAgB,KAAA,EAAhB,EAAsB,SAAA,EAAU,gEAAA,EAC/B,QAAA,kBAAAE,cAAA,CAACF,0BAAA,CAAgB,KAAA,EAAhB,EAAsB,SAAA,EAAU,4BAAA,EAA6B,CAAA,EAChE,CAAA;AAAA,sBACAE,cAAA,CAACF,0BAAA,CAAgB,KAAA,EAAhB,EAAsB,WAAU,gKAAA,EAAiK;AAAA;AAAA;AACpM,CACD;AACD,MAAA,CAAO,WAAA,GAAcA,2BAAgB,IAAA,CAAK,WAAA","file":"slider.js","sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport * as SliderPrimitive from '@radix-ui/react-slider';\n\nimport { cn } from '@/lib/utils';\n\nconst Slider = React.forwardRef<\n React.ElementRef<typeof SliderPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <SliderPrimitive.Root\n ref={ref}\n className={cn('relative flex w-full touch-none select-none items-center', className)}\n {...props}\n >\n <SliderPrimitive.Track className=\"bg-muted relative h-2 w-full grow overflow-hidden rounded-full\">\n <SliderPrimitive.Range className=\"bg-primary absolute h-full\" />\n </SliderPrimitive.Track>\n <SliderPrimitive.Thumb className=\"border-primary bg-background block h-5 w-5 rounded-full border-2 transition-colors focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50\" />\n </SliderPrimitive.Root>\n));\nSlider.displayName = SliderPrimitive.Root.displayName;\n\nexport { Slider };\n"]}
@@ -0,0 +1,22 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import * as SliderPrimitive from '@radix-ui/react-slider';
4
+ import { cn } from '@/lib/utils';
5
+
6
+ const Slider = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs(
7
+ SliderPrimitive.Root,
8
+ {
9
+ ref,
10
+ className: cn("relative flex w-full touch-none select-none items-center", className),
11
+ ...props,
12
+ children: [
13
+ /* @__PURE__ */ jsx(SliderPrimitive.Track, { className: "bg-muted relative h-2 w-full grow overflow-hidden rounded-full", children: /* @__PURE__ */ jsx(SliderPrimitive.Range, { className: "bg-primary absolute h-full" }) }),
14
+ /* @__PURE__ */ jsx(SliderPrimitive.Thumb, { className: "border-primary bg-background block h-5 w-5 rounded-full border-2 transition-colors focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50" })
15
+ ]
16
+ }
17
+ ));
18
+ Slider.displayName = SliderPrimitive.Root.displayName;
19
+
20
+ export { Slider };
21
+ //# sourceMappingURL=slider.mjs.map
22
+ //# sourceMappingURL=slider.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/slider.tsx"],"names":[],"mappings":";;;;;AAOA,MAAM,MAAA,GAAS,MAAM,UAAA,CAGnB,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1B,IAAA;AAAA,EAAC,eAAA,CAAgB,IAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,0DAAA,EAA4D,SAAS,CAAA;AAAA,IAClF,GAAG,KAAA;AAAA,IAEJ,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,eAAA,CAAgB,KAAA,EAAhB,EAAsB,SAAA,EAAU,gEAAA,EAC/B,QAAA,kBAAA,GAAA,CAAC,eAAA,CAAgB,KAAA,EAAhB,EAAsB,SAAA,EAAU,4BAAA,EAA6B,CAAA,EAChE,CAAA;AAAA,sBACA,GAAA,CAAC,eAAA,CAAgB,KAAA,EAAhB,EAAsB,WAAU,gKAAA,EAAiK;AAAA;AAAA;AACpM,CACD;AACD,MAAA,CAAO,WAAA,GAAc,gBAAgB,IAAA,CAAK,WAAA","file":"slider.mjs","sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport * as SliderPrimitive from '@radix-ui/react-slider';\n\nimport { cn } from '@/lib/utils';\n\nconst Slider = React.forwardRef<\n React.ElementRef<typeof SliderPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <SliderPrimitive.Root\n ref={ref}\n className={cn('relative flex w-full touch-none select-none items-center', className)}\n {...props}\n >\n <SliderPrimitive.Track className=\"bg-muted relative h-2 w-full grow overflow-hidden rounded-full\">\n <SliderPrimitive.Range className=\"bg-primary absolute h-full\" />\n </SliderPrimitive.Track>\n <SliderPrimitive.Thumb className=\"border-primary bg-background block h-5 w-5 rounded-full border-2 transition-colors focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50\" />\n </SliderPrimitive.Root>\n));\nSlider.displayName = SliderPrimitive.Root.displayName;\n\nexport { Slider };\n"]}
@@ -0,0 +1,4 @@
1
+ import { ToasterProps, toast } from 'sonner';
2
+ declare const Toaster: ({ ...props }: ToasterProps) => import("react/jsx-runtime").JSX.Element;
3
+ export { Toaster, toast };
4
+ //# sourceMappingURL=sonner.d.ts.map