shad-m 1.0.2 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (613) hide show
  1. package/dist/assets/Animation/index.js +180 -0
  2. package/dist/assets/Animation/index.js.map +1 -0
  3. package/dist/assets/Animation/index.mjs +79 -0
  4. package/dist/assets/Animation/index.mjs.map +1 -0
  5. package/dist/assets/Icon/index.js +2102 -0
  6. package/dist/assets/Icon/index.js.map +1 -0
  7. package/dist/assets/Icon/index.mjs +421 -0
  8. package/dist/assets/Icon/index.mjs.map +1 -0
  9. package/dist/assets/Image/index.js +755 -0
  10. package/dist/assets/Image/index.js.map +1 -0
  11. package/dist/assets/Image/index.mjs +150 -0
  12. package/dist/assets/Image/index.mjs.map +1 -0
  13. package/dist/common/display/countdown.js +68 -0
  14. package/dist/common/display/countdown.js.map +1 -0
  15. package/dist/common/display/countdown.mjs +46 -0
  16. package/dist/common/display/countdown.mjs.map +1 -0
  17. package/dist/common/display/display-field-group.js +91 -0
  18. package/dist/common/display/display-field-group.js.map +1 -0
  19. package/dist/common/display/display-field-group.mjs +89 -0
  20. package/dist/common/display/display-field-group.mjs.map +1 -0
  21. package/dist/common/display/display-field.js +46 -0
  22. package/dist/common/display/display-field.js.map +1 -0
  23. package/dist/common/display/display-field.mjs +40 -0
  24. package/dist/common/display/display-field.mjs.map +1 -0
  25. package/dist/common/display/display-html-string.js +52 -0
  26. package/dist/common/display/display-html-string.js.map +1 -0
  27. package/dist/common/display/display-html-string.mjs +30 -0
  28. package/dist/common/display/display-html-string.mjs.map +1 -0
  29. package/dist/common/display/index.js +59 -0
  30. package/dist/common/display/index.js.map +1 -0
  31. package/dist/common/display/index.mjs +10 -0
  32. package/dist/common/display/index.mjs.map +1 -0
  33. package/dist/common/display/page-breadcrumb.js +43 -0
  34. package/dist/common/display/page-breadcrumb.js.map +1 -0
  35. package/dist/common/display/page-breadcrumb.mjs +37 -0
  36. package/dist/common/display/page-breadcrumb.mjs.map +1 -0
  37. package/dist/common/display/page-v2.js +58 -0
  38. package/dist/common/display/page-v2.js.map +1 -0
  39. package/dist/common/display/page-v2.mjs +20 -0
  40. package/dist/common/display/page-v2.mjs.map +1 -0
  41. package/dist/common/display/page.js +155 -0
  42. package/dist/common/display/page.js.map +1 -0
  43. package/dist/common/display/page.mjs +138 -0
  44. package/dist/common/display/page.mjs.map +1 -0
  45. package/dist/common/display/score-meter.js +161 -0
  46. package/dist/common/display/score-meter.js.map +1 -0
  47. package/dist/common/display/score-meter.mjs +140 -0
  48. package/dist/common/display/score-meter.mjs.map +1 -0
  49. package/dist/common/display/sidebar/app-sidebar.js +114 -0
  50. package/dist/common/display/sidebar/app-sidebar.js.map +1 -0
  51. package/dist/common/display/sidebar/app-sidebar.mjs +92 -0
  52. package/dist/common/display/sidebar/app-sidebar.mjs.map +1 -0
  53. package/dist/common/display/sidebar/index.js +89 -0
  54. package/dist/common/display/sidebar/index.js.map +1 -0
  55. package/dist/common/display/sidebar/index.mjs +81 -0
  56. package/dist/common/display/sidebar/index.mjs.map +1 -0
  57. package/dist/common/display/sidebar/nav-main.js +406 -0
  58. package/dist/common/display/sidebar/nav-main.js.map +1 -0
  59. package/dist/common/display/sidebar/nav-main.mjs +400 -0
  60. package/dist/common/display/sidebar/nav-main.mjs.map +1 -0
  61. package/dist/common/display/sidebar/sidebar-sheet.js +140 -0
  62. package/dist/common/display/sidebar/sidebar-sheet.js.map +1 -0
  63. package/dist/common/display/sidebar/sidebar-sheet.mjs +118 -0
  64. package/dist/common/display/sidebar/sidebar-sheet.mjs.map +1 -0
  65. package/dist/common/display/sidebar/types.js +4 -0
  66. package/dist/common/display/sidebar/types.js.map +1 -0
  67. package/dist/common/display/sidebar/types.mjs +3 -0
  68. package/dist/common/display/sidebar/types.mjs.map +1 -0
  69. package/dist/common/display/status-state.js +97 -0
  70. package/dist/common/display/status-state.js.map +1 -0
  71. package/dist/common/display/status-state.mjs +88 -0
  72. package/dist/common/display/status-state.mjs.map +1 -0
  73. package/dist/common/forms/auto-form.js +101 -0
  74. package/dist/common/forms/auto-form.js.map +1 -0
  75. package/dist/common/forms/auto-form.mjs +78 -0
  76. package/dist/common/forms/auto-form.mjs.map +1 -0
  77. package/dist/common/forms/form-field.js +58 -0
  78. package/dist/common/forms/form-field.js.map +1 -0
  79. package/dist/common/forms/form-field.mjs +56 -0
  80. package/dist/common/forms/form-field.mjs.map +1 -0
  81. package/dist/common/forms/form-input-field.js +64 -0
  82. package/dist/common/forms/form-input-field.js.map +1 -0
  83. package/dist/common/forms/form-input-field.mjs +62 -0
  84. package/dist/common/forms/form-input-field.mjs.map +1 -0
  85. package/dist/common/forms/index.js +22 -0
  86. package/dist/common/forms/index.js.map +1 -0
  87. package/dist/common/forms/index.mjs +5 -0
  88. package/dist/common/forms/index.mjs.map +1 -0
  89. package/dist/common/forms/switch-field.js +106 -0
  90. package/dist/common/forms/switch-field.js.map +1 -0
  91. package/dist/common/forms/switch-field.mjs +104 -0
  92. package/dist/common/forms/switch-field.mjs.map +1 -0
  93. package/dist/common/interactive/alert-dialog-wrapper.js +141 -0
  94. package/dist/common/interactive/alert-dialog-wrapper.js.map +1 -0
  95. package/dist/common/interactive/alert-dialog-wrapper.mjs +119 -0
  96. package/dist/common/interactive/alert-dialog-wrapper.mjs.map +1 -0
  97. package/dist/common/interactive/autocomplete.js +178 -0
  98. package/dist/common/interactive/autocomplete.js.map +1 -0
  99. package/dist/common/interactive/autocomplete.mjs +157 -0
  100. package/dist/common/interactive/autocomplete.mjs.map +1 -0
  101. package/dist/common/interactive/copy-tooltip.js +152 -0
  102. package/dist/common/interactive/copy-tooltip.js.map +1 -0
  103. package/dist/common/interactive/copy-tooltip.mjs +143 -0
  104. package/dist/common/interactive/copy-tooltip.mjs.map +1 -0
  105. package/dist/common/interactive/date-field.js +303 -0
  106. package/dist/common/interactive/date-field.js.map +1 -0
  107. package/dist/common/interactive/date-field.mjs +281 -0
  108. package/dist/common/interactive/date-field.mjs.map +1 -0
  109. package/dist/common/interactive/date-input/date-input.js +68 -0
  110. package/dist/common/interactive/date-input/date-input.js.map +1 -0
  111. package/dist/common/interactive/date-input/date-input.mjs +62 -0
  112. package/dist/common/interactive/date-input/date-input.mjs.map +1 -0
  113. package/dist/common/interactive/date-input/index.js +17 -0
  114. package/dist/common/interactive/date-input/index.js.map +1 -0
  115. package/dist/common/interactive/date-input/index.mjs +4 -0
  116. package/dist/common/interactive/date-input/index.mjs.map +1 -0
  117. package/dist/common/interactive/date-input/types.js +4 -0
  118. package/dist/common/interactive/date-input/types.js.map +1 -0
  119. package/dist/common/interactive/date-input/types.mjs +3 -0
  120. package/dist/common/interactive/date-input/types.mjs.map +1 -0
  121. package/dist/common/interactive/date-input/use-typed-date.js +478 -0
  122. package/dist/common/interactive/date-input/use-typed-date.js.map +1 -0
  123. package/dist/common/interactive/date-input/use-typed-date.mjs +476 -0
  124. package/dist/common/interactive/date-input/use-typed-date.mjs.map +1 -0
  125. package/dist/common/interactive/date-input/utils.js +34 -0
  126. package/dist/common/interactive/date-input/utils.js.map +1 -0
  127. package/dist/common/interactive/date-input/utils.mjs +29 -0
  128. package/dist/common/interactive/date-input/utils.mjs.map +1 -0
  129. package/dist/common/interactive/date-picker.js +616 -0
  130. package/dist/common/interactive/date-picker.js.map +1 -0
  131. package/dist/common/interactive/date-picker.mjs +594 -0
  132. package/dist/common/interactive/date-picker.mjs.map +1 -0
  133. package/dist/common/interactive/date-range-input/date-range-input.js +82 -0
  134. package/dist/common/interactive/date-range-input/date-range-input.js.map +1 -0
  135. package/dist/common/interactive/date-range-input/date-range-input.mjs +76 -0
  136. package/dist/common/interactive/date-range-input/date-range-input.mjs.map +1 -0
  137. package/dist/common/interactive/date-range-input/index.js +12 -0
  138. package/dist/common/interactive/date-range-input/index.js.map +1 -0
  139. package/dist/common/interactive/date-range-input/index.mjs +3 -0
  140. package/dist/common/interactive/date-range-input/index.mjs.map +1 -0
  141. package/dist/common/interactive/date-range-input/types.js +4 -0
  142. package/dist/common/interactive/date-range-input/types.js.map +1 -0
  143. package/dist/common/interactive/date-range-input/types.mjs +3 -0
  144. package/dist/common/interactive/date-range-input/types.mjs.map +1 -0
  145. package/dist/common/interactive/date-range-input/use-typed-date-range.js +602 -0
  146. package/dist/common/interactive/date-range-input/use-typed-date-range.js.map +1 -0
  147. package/dist/common/interactive/date-range-input/use-typed-date-range.mjs +600 -0
  148. package/dist/common/interactive/date-range-input/use-typed-date-range.mjs.map +1 -0
  149. package/dist/common/interactive/date-time-picker.js +215 -0
  150. package/dist/common/interactive/date-time-picker.js.map +1 -0
  151. package/dist/common/interactive/date-time-picker.mjs +213 -0
  152. package/dist/common/interactive/date-time-picker.mjs.map +1 -0
  153. package/dist/common/interactive/dialog-wrapper.js +124 -0
  154. package/dist/common/interactive/dialog-wrapper.js.map +1 -0
  155. package/dist/common/interactive/dialog-wrapper.mjs +102 -0
  156. package/dist/common/interactive/dialog-wrapper.mjs.map +1 -0
  157. package/dist/common/interactive/filter.js +287 -0
  158. package/dist/common/interactive/filter.js.map +1 -0
  159. package/dist/common/interactive/filter.mjs +280 -0
  160. package/dist/common/interactive/filter.mjs.map +1 -0
  161. package/dist/common/interactive/index.js +235 -0
  162. package/dist/common/interactive/index.js.map +1 -0
  163. package/dist/common/interactive/index.mjs +24 -0
  164. package/dist/common/interactive/index.mjs.map +1 -0
  165. package/dist/common/interactive/list.js +160 -0
  166. package/dist/common/interactive/list.js.map +1 -0
  167. package/dist/common/interactive/list.mjs +134 -0
  168. package/dist/common/interactive/list.mjs.map +1 -0
  169. package/dist/common/interactive/otp-dialog/index.js +35 -0
  170. package/dist/common/interactive/otp-dialog/index.js.map +1 -0
  171. package/dist/common/interactive/otp-dialog/index.mjs +6 -0
  172. package/dist/common/interactive/otp-dialog/index.mjs.map +1 -0
  173. package/dist/common/interactive/otp-dialog/otp-dialog.js +325 -0
  174. package/dist/common/interactive/otp-dialog/otp-dialog.js.map +1 -0
  175. package/dist/common/interactive/otp-dialog/otp-dialog.mjs +303 -0
  176. package/dist/common/interactive/otp-dialog/otp-dialog.mjs.map +1 -0
  177. package/dist/common/interactive/otp-dialog/reducer.js +40 -0
  178. package/dist/common/interactive/otp-dialog/reducer.js.map +1 -0
  179. package/dist/common/interactive/otp-dialog/reducer.mjs +37 -0
  180. package/dist/common/interactive/otp-dialog/reducer.mjs.map +1 -0
  181. package/dist/common/interactive/otp-dialog/types.js +15 -0
  182. package/dist/common/interactive/otp-dialog/types.js.map +1 -0
  183. package/dist/common/interactive/otp-dialog/types.mjs +13 -0
  184. package/dist/common/interactive/otp-dialog/types.mjs.map +1 -0
  185. package/dist/common/interactive/otp-dialog/utils.js +24 -0
  186. package/dist/common/interactive/otp-dialog/utils.js.map +1 -0
  187. package/dist/common/interactive/otp-dialog/utils.mjs +21 -0
  188. package/dist/common/interactive/otp-dialog/utils.mjs.map +1 -0
  189. package/dist/common/interactive/pagination/PaginationSkeleton.js +51 -0
  190. package/dist/common/interactive/pagination/PaginationSkeleton.js.map +1 -0
  191. package/dist/common/interactive/pagination/PaginationSkeleton.mjs +49 -0
  192. package/dist/common/interactive/pagination/PaginationSkeleton.mjs.map +1 -0
  193. package/dist/common/interactive/pagination/index.js +235 -0
  194. package/dist/common/interactive/pagination/index.js.map +1 -0
  195. package/dist/common/interactive/pagination/index.mjs +223 -0
  196. package/dist/common/interactive/pagination/index.mjs.map +1 -0
  197. package/dist/common/interactive/pagination/usePagination.js +28 -0
  198. package/dist/common/interactive/pagination/usePagination.js.map +1 -0
  199. package/dist/common/interactive/pagination/usePagination.mjs +25 -0
  200. package/dist/common/interactive/pagination/usePagination.mjs.map +1 -0
  201. package/dist/common/interactive/popover-wrapper.js +138 -0
  202. package/dist/common/interactive/popover-wrapper.js.map +1 -0
  203. package/dist/common/interactive/popover-wrapper.mjs +116 -0
  204. package/dist/common/interactive/popover-wrapper.mjs.map +1 -0
  205. package/dist/common/interactive/pressable.js +84 -0
  206. package/dist/common/interactive/pressable.js.map +1 -0
  207. package/dist/common/interactive/pressable.mjs +62 -0
  208. package/dist/common/interactive/pressable.mjs.map +1 -0
  209. package/dist/common/interactive/select/context.js +38 -0
  210. package/dist/common/interactive/select/context.js.map +1 -0
  211. package/dist/common/interactive/select/context.mjs +14 -0
  212. package/dist/common/interactive/select/context.mjs.map +1 -0
  213. package/dist/common/interactive/select/index.js +123 -0
  214. package/dist/common/interactive/select/index.js.map +1 -0
  215. package/dist/common/interactive/select/index.mjs +18 -0
  216. package/dist/common/interactive/select/index.mjs.map +1 -0
  217. package/dist/common/interactive/select/select-body.js +89 -0
  218. package/dist/common/interactive/select/select-body.js.map +1 -0
  219. package/dist/common/interactive/select/select-body.mjs +67 -0
  220. package/dist/common/interactive/select/select-body.mjs.map +1 -0
  221. package/dist/common/interactive/select/select-close.js +38 -0
  222. package/dist/common/interactive/select/select-close.js.map +1 -0
  223. package/dist/common/interactive/select/select-close.mjs +16 -0
  224. package/dist/common/interactive/select/select-close.mjs.map +1 -0
  225. package/dist/common/interactive/select/select-content-auto-layout.js +221 -0
  226. package/dist/common/interactive/select/select-content-auto-layout.js.map +1 -0
  227. package/dist/common/interactive/select/select-content-auto-layout.mjs +199 -0
  228. package/dist/common/interactive/select/select-content-auto-layout.mjs.map +1 -0
  229. package/dist/common/interactive/select/select-content-group-auto-layout.js +411 -0
  230. package/dist/common/interactive/select/select-content-group-auto-layout.js.map +1 -0
  231. package/dist/common/interactive/select/select-content-group-auto-layout.mjs +389 -0
  232. package/dist/common/interactive/select/select-content-group-auto-layout.mjs.map +1 -0
  233. package/dist/common/interactive/select/select-content.js +187 -0
  234. package/dist/common/interactive/select/select-content.js.map +1 -0
  235. package/dist/common/interactive/select/select-content.mjs +165 -0
  236. package/dist/common/interactive/select/select-content.mjs.map +1 -0
  237. package/dist/common/interactive/select/select-footer.js +82 -0
  238. package/dist/common/interactive/select/select-footer.js.map +1 -0
  239. package/dist/common/interactive/select/select-footer.mjs +60 -0
  240. package/dist/common/interactive/select/select-footer.mjs.map +1 -0
  241. package/dist/common/interactive/select/select-item.js +214 -0
  242. package/dist/common/interactive/select/select-item.js.map +1 -0
  243. package/dist/common/interactive/select/select-item.mjs +191 -0
  244. package/dist/common/interactive/select/select-item.mjs.map +1 -0
  245. package/dist/common/interactive/select/select-layout.js +66 -0
  246. package/dist/common/interactive/select/select-layout.js.map +1 -0
  247. package/dist/common/interactive/select/select-layout.mjs +41 -0
  248. package/dist/common/interactive/select/select-layout.mjs.map +1 -0
  249. package/dist/common/interactive/select/select-search.js +55 -0
  250. package/dist/common/interactive/select/select-search.js.map +1 -0
  251. package/dist/common/interactive/select/select-search.mjs +33 -0
  252. package/dist/common/interactive/select/select-search.mjs.map +1 -0
  253. package/dist/common/interactive/select/select-states.js +57 -0
  254. package/dist/common/interactive/select/select-states.js.map +1 -0
  255. package/dist/common/interactive/select/select-states.mjs +34 -0
  256. package/dist/common/interactive/select/select-states.mjs.map +1 -0
  257. package/dist/common/interactive/select/select-trigger.js +310 -0
  258. package/dist/common/interactive/select/select-trigger.js.map +1 -0
  259. package/dist/common/interactive/select/select-trigger.mjs +286 -0
  260. package/dist/common/interactive/select/select-trigger.mjs.map +1 -0
  261. package/dist/common/interactive/select/select-value.js +52 -0
  262. package/dist/common/interactive/select/select-value.js.map +1 -0
  263. package/dist/common/interactive/select/select-value.mjs +30 -0
  264. package/dist/common/interactive/select/select-value.mjs.map +1 -0
  265. package/dist/common/interactive/select/select.js +184 -0
  266. package/dist/common/interactive/select/select.js.map +1 -0
  267. package/dist/common/interactive/select/select.mjs +162 -0
  268. package/dist/common/interactive/select/select.mjs.map +1 -0
  269. package/dist/common/interactive/select/types.js +4 -0
  270. package/dist/common/interactive/select/types.js.map +1 -0
  271. package/dist/common/interactive/select/types.mjs +3 -0
  272. package/dist/common/interactive/select/types.mjs.map +1 -0
  273. package/dist/common/interactive/select/utils.js +31 -0
  274. package/dist/common/interactive/select/utils.js.map +1 -0
  275. package/dist/common/interactive/select/utils.mjs +28 -0
  276. package/dist/common/interactive/select/utils.mjs.map +1 -0
  277. package/dist/common/interactive/select/variants.js +27 -0
  278. package/dist/common/interactive/select/variants.js.map +1 -0
  279. package/dist/common/interactive/select/variants.mjs +25 -0
  280. package/dist/common/interactive/select/variants.mjs.map +1 -0
  281. package/dist/common/interactive/select-chip.js +76 -0
  282. package/dist/common/interactive/select-chip.js.map +1 -0
  283. package/dist/common/interactive/select-chip.mjs +74 -0
  284. package/dist/common/interactive/select-chip.mjs.map +1 -0
  285. package/dist/common/interactive/select-level.js +236 -0
  286. package/dist/common/interactive/select-level.js.map +1 -0
  287. package/dist/common/interactive/select-level.mjs +230 -0
  288. package/dist/common/interactive/select-level.mjs.map +1 -0
  289. package/dist/common/interactive/select-range.js +211 -0
  290. package/dist/common/interactive/select-range.js.map +1 -0
  291. package/dist/common/interactive/select-range.mjs +209 -0
  292. package/dist/common/interactive/select-range.mjs.map +1 -0
  293. package/dist/common/interactive/select-with-api.js +767 -0
  294. package/dist/common/interactive/select-with-api.js.map +1 -0
  295. package/dist/common/interactive/select-with-api.mjs +758 -0
  296. package/dist/common/interactive/select-with-api.mjs.map +1 -0
  297. package/dist/common/interactive/select.js +15 -0
  298. package/dist/common/interactive/select.js.map +1 -0
  299. package/dist/common/interactive/select.mjs +4 -0
  300. package/dist/common/interactive/select.mjs.map +1 -0
  301. package/dist/common/interactive/sheet-wrapper.js +105 -0
  302. package/dist/common/interactive/sheet-wrapper.js.map +1 -0
  303. package/dist/common/interactive/sheet-wrapper.mjs +83 -0
  304. package/dist/common/interactive/sheet-wrapper.mjs.map +1 -0
  305. package/dist/common/interactive/table/enhanced-table.js +390 -0
  306. package/dist/common/interactive/table/enhanced-table.js.map +1 -0
  307. package/dist/common/interactive/table/enhanced-table.mjs +388 -0
  308. package/dist/common/interactive/table/enhanced-table.mjs.map +1 -0
  309. package/dist/common/interactive/table/index.js +83 -0
  310. package/dist/common/interactive/table/index.js.map +1 -0
  311. package/dist/common/interactive/table/index.mjs +68 -0
  312. package/dist/common/interactive/table/index.mjs.map +1 -0
  313. package/dist/common/interactive/table/table-pagination.js +12 -0
  314. package/dist/common/interactive/table/table-pagination.js.map +1 -0
  315. package/dist/common/interactive/table/table-pagination.mjs +10 -0
  316. package/dist/common/interactive/table/table-pagination.mjs.map +1 -0
  317. package/dist/common/interactive/table/types.js +4 -0
  318. package/dist/common/interactive/table/types.js.map +1 -0
  319. package/dist/common/interactive/table/types.mjs +3 -0
  320. package/dist/common/interactive/table/types.mjs.map +1 -0
  321. package/dist/common/interactive/time-picker.js +313 -0
  322. package/dist/common/interactive/time-picker.js.map +1 -0
  323. package/dist/common/interactive/time-picker.mjs +307 -0
  324. package/dist/common/interactive/time-picker.mjs.map +1 -0
  325. package/dist/common/interactive/types.js +4 -0
  326. package/dist/common/interactive/types.js.map +1 -0
  327. package/dist/common/interactive/types.mjs +3 -0
  328. package/dist/common/interactive/types.mjs.map +1 -0
  329. package/dist/common/pages/page-404.js +16 -0
  330. package/dist/common/pages/page-404.js.map +1 -0
  331. package/dist/common/pages/page-404.mjs +11 -0
  332. package/dist/common/pages/page-404.mjs.map +1 -0
  333. package/dist/common/pages/page-500.js +30 -0
  334. package/dist/common/pages/page-500.js.map +1 -0
  335. package/dist/common/pages/page-500.mjs +25 -0
  336. package/dist/common/pages/page-500.mjs.map +1 -0
  337. package/dist/components/accordion.js +65 -0
  338. package/dist/components/accordion.js.map +1 -0
  339. package/dist/components/accordion.mjs +39 -0
  340. package/dist/components/accordion.mjs.map +1 -0
  341. package/dist/components/alert-dialog.js +231 -0
  342. package/dist/components/alert-dialog.js.map +1 -0
  343. package/dist/components/alert-dialog.mjs +197 -0
  344. package/dist/components/alert-dialog.mjs.map +1 -0
  345. package/dist/components/alert.js +97 -0
  346. package/dist/components/alert.js.map +1 -0
  347. package/dist/components/alert.mjs +72 -0
  348. package/dist/components/alert.mjs.map +1 -0
  349. package/dist/components/aspect-ratio.js +29 -0
  350. package/dist/components/aspect-ratio.js.map +1 -0
  351. package/dist/components/aspect-ratio.mjs +7 -0
  352. package/dist/components/aspect-ratio.mjs.map +1 -0
  353. package/dist/components/avatar.js +64 -0
  354. package/dist/components/avatar.js.map +1 -0
  355. package/dist/components/avatar.mjs +39 -0
  356. package/dist/components/avatar.mjs.map +1 -0
  357. package/dist/components/badge.js +72 -0
  358. package/dist/components/badge.js.map +1 -0
  359. package/dist/components/badge.mjs +69 -0
  360. package/dist/components/badge.mjs.map +1 -0
  361. package/dist/components/breadcrumb.js +109 -0
  362. package/dist/components/breadcrumb.js.map +1 -0
  363. package/dist/components/breadcrumb.mjs +81 -0
  364. package/dist/components/breadcrumb.mjs.map +1 -0
  365. package/dist/components/button.js +250 -0
  366. package/dist/components/button.js.map +1 -0
  367. package/dist/components/button.mjs +226 -0
  368. package/dist/components/button.mjs.map +1 -0
  369. package/dist/components/calendar.js +681 -0
  370. package/dist/components/calendar.js.map +1 -0
  371. package/dist/components/calendar.mjs +659 -0
  372. package/dist/components/calendar.mjs.map +1 -0
  373. package/dist/components/card.js +98 -0
  374. package/dist/components/card.js.map +1 -0
  375. package/dist/components/card.mjs +71 -0
  376. package/dist/components/card.mjs.map +1 -0
  377. package/dist/components/carousel.js +237 -0
  378. package/dist/components/carousel.js.map +1 -0
  379. package/dist/components/carousel.mjs +208 -0
  380. package/dist/components/carousel.mjs.map +1 -0
  381. package/dist/components/chart.js +252 -0
  382. package/dist/components/chart.js.map +1 -0
  383. package/dist/components/chart.mjs +224 -0
  384. package/dist/components/chart.mjs.map +1 -0
  385. package/dist/components/checkbox.js +97 -0
  386. package/dist/components/checkbox.js.map +1 -0
  387. package/dist/components/checkbox.mjs +74 -0
  388. package/dist/components/checkbox.mjs.map +1 -0
  389. package/dist/components/chip.js +88 -0
  390. package/dist/components/chip.js.map +1 -0
  391. package/dist/components/chip.mjs +82 -0
  392. package/dist/components/chip.mjs.map +1 -0
  393. package/dist/components/collapsible.js +33 -0
  394. package/dist/components/collapsible.js.map +1 -0
  395. package/dist/components/collapsible.mjs +9 -0
  396. package/dist/components/collapsible.mjs.map +1 -0
  397. package/dist/components/command.js +125 -0
  398. package/dist/components/command.js.map +1 -0
  399. package/dist/components/command.mjs +95 -0
  400. package/dist/components/command.mjs.map +1 -0
  401. package/dist/components/context-menu.js +168 -0
  402. package/dist/components/context-menu.js.map +1 -0
  403. package/dist/components/context-menu.mjs +131 -0
  404. package/dist/components/context-menu.mjs.map +1 -0
  405. package/dist/components/dialog.js +192 -0
  406. package/dist/components/dialog.js.map +1 -0
  407. package/dist/components/dialog.mjs +159 -0
  408. package/dist/components/dialog.mjs.map +1 -0
  409. package/dist/components/drawer.js +98 -0
  410. package/dist/components/drawer.js.map +1 -0
  411. package/dist/components/drawer.mjs +67 -0
  412. package/dist/components/drawer.mjs.map +1 -0
  413. package/dist/components/dropdown-menu.js +163 -0
  414. package/dist/components/dropdown-menu.js.map +1 -0
  415. package/dist/components/dropdown-menu.mjs +126 -0
  416. package/dist/components/dropdown-menu.mjs.map +1 -0
  417. package/dist/components/form.js +123 -0
  418. package/dist/components/form.js.map +1 -0
  419. package/dist/components/form.mjs +94 -0
  420. package/dist/components/form.mjs.map +1 -0
  421. package/dist/components/hover-card.js +50 -0
  422. package/dist/components/hover-card.js.map +1 -0
  423. package/dist/components/hover-card.mjs +25 -0
  424. package/dist/components/hover-card.mjs.map +1 -0
  425. package/dist/components/input-otp.js +84 -0
  426. package/dist/components/input-otp.js.map +1 -0
  427. package/dist/components/input-otp.mjs +59 -0
  428. package/dist/components/input-otp.mjs.map +1 -0
  429. package/dist/components/input.js +858 -0
  430. package/dist/components/input.js.map +1 -0
  431. package/dist/components/input.mjs +831 -0
  432. package/dist/components/input.mjs.map +1 -0
  433. package/dist/components/label.js +38 -0
  434. package/dist/components/label.js.map +1 -0
  435. package/dist/components/label.mjs +15 -0
  436. package/dist/components/label.mjs.map +1 -0
  437. package/dist/components/lottie.js +59 -0
  438. package/dist/components/lottie.js.map +1 -0
  439. package/dist/components/lottie.mjs +49 -0
  440. package/dist/components/lottie.mjs.map +1 -0
  441. package/dist/components/menubar.js +195 -0
  442. package/dist/components/menubar.js.map +1 -0
  443. package/dist/components/menubar.mjs +157 -0
  444. package/dist/components/menubar.mjs.map +1 -0
  445. package/dist/components/navigation-menu.js +126 -0
  446. package/dist/components/navigation-menu.js.map +1 -0
  447. package/dist/components/navigation-menu.mjs +95 -0
  448. package/dist/components/navigation-menu.mjs.map +1 -0
  449. package/dist/components/pagination.js +112 -0
  450. package/dist/components/pagination.js.map +1 -0
  451. package/dist/components/pagination.mjs +84 -0
  452. package/dist/components/pagination.mjs.map +1 -0
  453. package/dist/components/popover.js +63 -0
  454. package/dist/components/popover.js.map +1 -0
  455. package/dist/components/popover.mjs +38 -0
  456. package/dist/components/popover.mjs.map +1 -0
  457. package/dist/components/progress.js +50 -0
  458. package/dist/components/progress.js.map +1 -0
  459. package/dist/components/progress.mjs +27 -0
  460. package/dist/components/progress.mjs.map +1 -0
  461. package/dist/components/radio-group.js +91 -0
  462. package/dist/components/radio-group.js.map +1 -0
  463. package/dist/components/radio-group.mjs +67 -0
  464. package/dist/components/radio-group.mjs.map +1 -0
  465. package/dist/components/resizable.js +59 -0
  466. package/dist/components/resizable.js.map +1 -0
  467. package/dist/components/resizable.mjs +35 -0
  468. package/dist/components/resizable.mjs.map +1 -0
  469. package/dist/components/responsive-popover.js +74 -0
  470. package/dist/components/responsive-popover.js.map +1 -0
  471. package/dist/components/responsive-popover.mjs +50 -0
  472. package/dist/components/responsive-popover.mjs.map +1 -0
  473. package/dist/components/scroll-area.js +63 -0
  474. package/dist/components/scroll-area.js.map +1 -0
  475. package/dist/components/scroll-area.mjs +39 -0
  476. package/dist/components/scroll-area.mjs.map +1 -0
  477. package/dist/components/separator.js +47 -0
  478. package/dist/components/separator.js.map +1 -0
  479. package/dist/components/separator.mjs +24 -0
  480. package/dist/components/separator.mjs.map +1 -0
  481. package/dist/components/sheet.js +239 -0
  482. package/dist/components/sheet.js.map +1 -0
  483. package/dist/components/sheet.mjs +206 -0
  484. package/dist/components/sheet.mjs.map +1 -0
  485. package/dist/components/sidebar.js +888 -0
  486. package/dist/components/sidebar.js.map +1 -0
  487. package/dist/components/sidebar.mjs +842 -0
  488. package/dist/components/sidebar.mjs.map +1 -0
  489. package/dist/components/skeleton.js +153 -0
  490. package/dist/components/skeleton.js.map +1 -0
  491. package/dist/components/skeleton.mjs +127 -0
  492. package/dist/components/skeleton.mjs.map +1 -0
  493. package/dist/components/slider.js +45 -0
  494. package/dist/components/slider.js.map +1 -0
  495. package/dist/components/slider.mjs +22 -0
  496. package/dist/components/slider.mjs.map +1 -0
  497. package/dist/components/sonner.js +76 -0
  498. package/dist/components/sonner.js.map +1 -0
  499. package/dist/components/sonner.mjs +71 -0
  500. package/dist/components/sonner.mjs.map +1 -0
  501. package/dist/components/spinner.js +59 -0
  502. package/dist/components/spinner.js.map +1 -0
  503. package/dist/components/spinner.mjs +36 -0
  504. package/dist/components/spinner.mjs.map +1 -0
  505. package/dist/components/stepper.js +726 -0
  506. package/dist/components/stepper.js.map +1 -0
  507. package/dist/components/stepper.mjs +702 -0
  508. package/dist/components/stepper.mjs.map +1 -0
  509. package/dist/components/switch.js +85 -0
  510. package/dist/components/switch.js.map +1 -0
  511. package/dist/components/switch.mjs +62 -0
  512. package/dist/components/switch.mjs.map +1 -0
  513. package/dist/components/table.js +91 -0
  514. package/dist/components/table.js.map +1 -0
  515. package/dist/components/table.mjs +62 -0
  516. package/dist/components/table.mjs.map +1 -0
  517. package/dist/components/tabs.js +287 -0
  518. package/dist/components/tabs.js.map +1 -0
  519. package/dist/components/tabs.mjs +261 -0
  520. package/dist/components/tabs.mjs.map +1 -0
  521. package/dist/components/textarea.js +200 -0
  522. package/dist/components/textarea.js.map +1 -0
  523. package/dist/components/textarea.mjs +174 -0
  524. package/dist/components/textarea.mjs.map +1 -0
  525. package/dist/components/toggle-group.js +67 -0
  526. package/dist/components/toggle-group.js.map +1 -0
  527. package/dist/components/toggle-group.mjs +43 -0
  528. package/dist/components/toggle-group.mjs.map +1 -0
  529. package/dist/components/toggle.js +63 -0
  530. package/dist/components/toggle.js.map +1 -0
  531. package/dist/components/toggle.mjs +39 -0
  532. package/dist/components/toggle.mjs.map +1 -0
  533. package/dist/components/tooltip.js +172 -0
  534. package/dist/components/tooltip.js.map +1 -0
  535. package/dist/components/tooltip.mjs +145 -0
  536. package/dist/components/tooltip.mjs.map +1 -0
  537. package/dist/hooks/index.js +27 -0
  538. package/dist/hooks/index.js.map +1 -0
  539. package/dist/hooks/index.mjs +6 -0
  540. package/dist/hooks/index.mjs.map +1 -0
  541. package/dist/hooks/useCopyToClipboard.js +59 -0
  542. package/dist/hooks/useCopyToClipboard.js.map +1 -0
  543. package/dist/hooks/useCopyToClipboard.mjs +57 -0
  544. package/dist/hooks/useCopyToClipboard.mjs.map +1 -0
  545. package/dist/hooks/useDevice.js +20 -0
  546. package/dist/hooks/useDevice.js.map +1 -0
  547. package/dist/hooks/useDevice.mjs +14 -0
  548. package/dist/hooks/useDevice.mjs.map +1 -0
  549. package/dist/hooks/useDialogTracking.js +113 -0
  550. package/dist/hooks/useDialogTracking.js.map +1 -0
  551. package/dist/hooks/useDialogTracking.mjs +91 -0
  552. package/dist/hooks/useDialogTracking.mjs.map +1 -0
  553. package/dist/hooks/useIsMounted.js +15 -0
  554. package/dist/hooks/useIsMounted.js.map +1 -0
  555. package/dist/hooks/useIsMounted.mjs +13 -0
  556. package/dist/hooks/useIsMounted.mjs.map +1 -0
  557. package/dist/hooks/usePathname.js +85 -0
  558. package/dist/hooks/usePathname.js.map +1 -0
  559. package/dist/hooks/usePathname.mjs +83 -0
  560. package/dist/hooks/usePathname.mjs.map +1 -0
  561. package/dist/icons.js +14 -0
  562. package/dist/icons.js.map +1 -0
  563. package/dist/icons.mjs +3 -0
  564. package/dist/icons.mjs.map +1 -0
  565. package/dist/index.d.ts +4 -0
  566. package/dist/index.d.ts.map +1 -1
  567. package/dist/index.js +403 -8151
  568. package/dist/index.js.map +1 -1
  569. package/dist/index.mjs +62 -7844
  570. package/dist/index.mjs.map +1 -1
  571. package/dist/lib/formatCurrency.js +187 -0
  572. package/dist/lib/formatCurrency.js.map +1 -0
  573. package/dist/lib/formatCurrency.mjs +185 -0
  574. package/dist/lib/formatCurrency.mjs.map +1 -0
  575. package/dist/lib/helpers.js +171 -0
  576. package/dist/lib/helpers.js.map +1 -0
  577. package/dist/lib/helpers.mjs +157 -0
  578. package/dist/lib/helpers.mjs.map +1 -0
  579. package/dist/lib/index.js +33 -0
  580. package/dist/lib/index.js.map +1 -0
  581. package/dist/lib/index.mjs +6 -0
  582. package/dist/lib/index.mjs.map +1 -0
  583. package/dist/lib/types.js +11 -0
  584. package/dist/lib/types.js.map +1 -0
  585. package/dist/lib/types.mjs +9 -0
  586. package/dist/lib/types.mjs.map +1 -0
  587. package/dist/lib/utils.js +24 -0
  588. package/dist/lib/utils.js.map +1 -0
  589. package/dist/lib/utils.mjs +19 -0
  590. package/dist/lib/utils.mjs.map +1 -0
  591. package/dist/providers/DeviceSizeWatcher/index.js +72 -0
  592. package/dist/providers/DeviceSizeWatcher/index.js.map +1 -0
  593. package/dist/providers/DeviceSizeWatcher/index.mjs +47 -0
  594. package/dist/providers/DeviceSizeWatcher/index.mjs.map +1 -0
  595. package/dist/providers/DeviceSizeWatcher/useDeviceSizeStore.js +22 -0
  596. package/dist/providers/DeviceSizeWatcher/useDeviceSizeStore.js.map +1 -0
  597. package/dist/providers/DeviceSizeWatcher/useDeviceSizeStore.mjs +20 -0
  598. package/dist/providers/DeviceSizeWatcher/useDeviceSizeStore.mjs.map +1 -0
  599. package/dist/providers/UISystemProvider.js +197 -0
  600. package/dist/providers/UISystemProvider.js.map +1 -0
  601. package/dist/providers/UISystemProvider.mjs +188 -0
  602. package/dist/providers/UISystemProvider.mjs.map +1 -0
  603. package/dist/providers/index.js +24 -0
  604. package/dist/providers/index.js.map +1 -0
  605. package/dist/providers/index.mjs +3 -0
  606. package/dist/providers/index.mjs.map +1 -0
  607. package/dist/theme.js +333 -0
  608. package/dist/theme.js.map +1 -0
  609. package/dist/theme.mjs +327 -0
  610. package/dist/theme.mjs.map +1 -0
  611. package/package.json +1 -1
  612. package/dist/index.css +0 -43
  613. package/dist/index.css.map +0 -1
@@ -0,0 +1,842 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import { Slot } from '@radix-ui/react-slot';
3
+ import { cva } from 'class-variance-authority';
4
+ import * as React from 'react';
5
+ import { Button } from '@/components/button';
6
+ import { Input } from '@/components/input';
7
+ import { Separator } from '@/components/separator';
8
+ import { Sheet, SheetContent } from '@/components/sheet';
9
+ import { Skeleton } from '@/components/skeleton';
10
+ import { TooltipProvider } from '@/components/tooltip';
11
+ import { useDevice } from '@/hooks/useDevice';
12
+ import { ArrowRightIcon } from '@/icons';
13
+ import { cn } from '@/lib/utils';
14
+
15
+ const defaultSidebarConfig = {
16
+ storageKey: "sidebar:state",
17
+ width: "18rem",
18
+ widthMobile: "18rem",
19
+ widthIcon: "5rem",
20
+ keyboardShortcut: "b",
21
+ paddingX: "1rem",
22
+ // Default 1rem = 16px = px-4
23
+ maxWidth: "30rem",
24
+ // Default max width 30rem = 480px
25
+ collapsedSize: {
26
+ width: "3rem",
27
+ // Default 2.5rem = 40px = w-10
28
+ height: "2.5rem"
29
+ // Default 2.5rem = 40px = h-10
30
+ },
31
+ enableHoverExpand: true
32
+ // Default enable hover to expand
33
+ };
34
+ const getSidebarState = (storageKey) => {
35
+ if (!storageKey || typeof window === "undefined") return false;
36
+ try {
37
+ const saved = localStorage.getItem(storageKey);
38
+ return saved ? JSON.parse(saved) : false;
39
+ } catch {
40
+ return false;
41
+ }
42
+ };
43
+ const setSidebarState = (storageKey, open) => {
44
+ if (!storageKey || typeof window === "undefined") return;
45
+ try {
46
+ localStorage.setItem(storageKey, JSON.stringify(open));
47
+ } catch {
48
+ }
49
+ };
50
+ const getSidebarWidth = (storageKey) => {
51
+ if (!storageKey || typeof window === "undefined") return null;
52
+ try {
53
+ const saved = localStorage.getItem(`${storageKey}:width`);
54
+ return saved ? parseFloat(saved) : null;
55
+ } catch {
56
+ return null;
57
+ }
58
+ };
59
+ const setSidebarWidth = (storageKey, width) => {
60
+ if (!storageKey || typeof window === "undefined") return;
61
+ try {
62
+ localStorage.setItem(`${storageKey}:width`, width.toString());
63
+ } catch {
64
+ }
65
+ };
66
+ const SidebarContext = React.createContext(null);
67
+ function useSidebar() {
68
+ const context = React.useContext(SidebarContext);
69
+ if (!context) {
70
+ throw new Error("useSidebar must be used within a SidebarProvider.");
71
+ }
72
+ return context;
73
+ }
74
+ const SidebarProvider = React.forwardRef(
75
+ ({
76
+ defaultOpen = false,
77
+ open: openProp,
78
+ onOpenChange: setOpenProp,
79
+ sidebarConfig: customSidebarConfig,
80
+ className,
81
+ style,
82
+ children,
83
+ ...props
84
+ }, ref) => {
85
+ const { isDesktop } = useDevice();
86
+ const sidebarConfig = React.useMemo(
87
+ () => ({
88
+ ...defaultSidebarConfig,
89
+ ...customSidebarConfig
90
+ }),
91
+ [customSidebarConfig]
92
+ );
93
+ const [openMobile, setOpenMobile] = React.useState(false);
94
+ const [hasInitialized, setHasInitialized] = React.useState(false);
95
+ const [isHovered, setIsHovered] = React.useState(false);
96
+ const [_open, _setOpen] = React.useState(() => {
97
+ if (openProp !== void 0) return openProp;
98
+ if (defaultOpen !== void 0) return defaultOpen;
99
+ return getSidebarState(sidebarConfig.storageKey);
100
+ });
101
+ const [customWidth, setCustomWidthState] = React.useState(() => {
102
+ return getSidebarWidth(sidebarConfig.storageKey);
103
+ });
104
+ const setCustomWidth = React.useCallback(
105
+ (width) => {
106
+ setCustomWidthState(width);
107
+ if (width !== null) {
108
+ setSidebarWidth(sidebarConfig.storageKey, width);
109
+ }
110
+ },
111
+ [sidebarConfig.storageKey]
112
+ );
113
+ const hasSyncedRef = React.useRef(false);
114
+ const open = openProp ?? _open;
115
+ const setOpen = React.useCallback(
116
+ (_value) => {
117
+ const openState = typeof _value === "function" ? _value(open) : _value;
118
+ if (setOpenProp) {
119
+ setOpenProp(openState);
120
+ } else {
121
+ _setOpen(openState);
122
+ }
123
+ setSidebarState(sidebarConfig.storageKey, openState);
124
+ },
125
+ [setOpenProp, open, sidebarConfig.storageKey]
126
+ );
127
+ const toggleSidebar = React.useCallback(() => {
128
+ return !isDesktop ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
129
+ }, [isDesktop, setOpen, setOpenMobile]);
130
+ React.useEffect(() => {
131
+ if (openProp !== void 0) return;
132
+ if (!sidebarConfig.storageKey) return;
133
+ if (!hasSyncedRef.current) {
134
+ hasSyncedRef.current = true;
135
+ const savedState = getSidebarState(sidebarConfig.storageKey);
136
+ if (savedState !== _open) {
137
+ _setOpen(savedState);
138
+ }
139
+ }
140
+ const handleStorageChange = (e) => {
141
+ if (e.key === sidebarConfig.storageKey && e.newValue !== null) {
142
+ try {
143
+ const newState = JSON.parse(e.newValue);
144
+ _setOpen(newState);
145
+ } catch {
146
+ }
147
+ }
148
+ };
149
+ window.addEventListener("storage", handleStorageChange);
150
+ return () => window.removeEventListener("storage", handleStorageChange);
151
+ }, [openProp, sidebarConfig.storageKey]);
152
+ React.useEffect(() => {
153
+ const timer = setTimeout(() => {
154
+ setHasInitialized(true);
155
+ }, 100);
156
+ return () => clearTimeout(timer);
157
+ }, []);
158
+ React.useEffect(() => {
159
+ const handleKeyDown = (event) => {
160
+ if (event.key === sidebarConfig.keyboardShortcut && (event.metaKey || event.ctrlKey)) {
161
+ event.preventDefault();
162
+ toggleSidebar();
163
+ }
164
+ };
165
+ window.addEventListener("keydown", handleKeyDown);
166
+ return () => window.removeEventListener("keydown", handleKeyDown);
167
+ }, [toggleSidebar, sidebarConfig.keyboardShortcut]);
168
+ const state = open ? "expanded" : "collapsed";
169
+ const contextValue = React.useMemo(
170
+ () => ({
171
+ state,
172
+ open,
173
+ setOpen,
174
+ isMobile: !isDesktop,
175
+ openMobile,
176
+ setOpenMobile,
177
+ toggleSidebar,
178
+ config: sidebarConfig,
179
+ customWidth,
180
+ setCustomWidth,
181
+ isHovered,
182
+ setIsHovered
183
+ }),
184
+ [
185
+ state,
186
+ open,
187
+ setOpen,
188
+ isDesktop,
189
+ openMobile,
190
+ setOpenMobile,
191
+ toggleSidebar,
192
+ sidebarConfig,
193
+ customWidth,
194
+ setCustomWidth,
195
+ isHovered
196
+ ]
197
+ );
198
+ return /* @__PURE__ */ jsx(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx(TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ jsx(
199
+ "div",
200
+ {
201
+ style: {
202
+ "--sidebar-width": customWidth ? `${customWidth}px` : sidebarConfig.width,
203
+ "--sidebar-width-icon": sidebarConfig.widthIcon,
204
+ "--sidebar-padding-x": sidebarConfig.paddingX,
205
+ "--sidebar-collapsed-width": sidebarConfig.collapsedSize?.width,
206
+ "--sidebar-collapsed-height": sidebarConfig.collapsedSize?.height,
207
+ ...style
208
+ },
209
+ className: cn(
210
+ "group/sidebar-wrapper has-[[data-variant=inset]]:bg-sidebar flex min-h-svh w-full",
211
+ !hasInitialized && "sidebar-no-transition",
212
+ className
213
+ ),
214
+ ref,
215
+ ...props,
216
+ children
217
+ }
218
+ ) }) });
219
+ }
220
+ );
221
+ SidebarProvider.displayName = "SidebarProvider";
222
+ const Sidebar = React.forwardRef(
223
+ ({
224
+ side = "left",
225
+ variant = "sidebar",
226
+ collapsible = "offcanvas",
227
+ className,
228
+ mobileSheetClassName,
229
+ children,
230
+ ...props
231
+ }, ref) => {
232
+ const {
233
+ isMobile,
234
+ state,
235
+ openMobile,
236
+ setOpenMobile,
237
+ config: sidebarConfig,
238
+ isHovered
239
+ } = useSidebar();
240
+ if (collapsible === "none") {
241
+ return /* @__PURE__ */ jsx(
242
+ "div",
243
+ {
244
+ className: cn(
245
+ "bg-sidebar text-ink-500s flex h-full w-[--sidebar-width] flex-col",
246
+ className
247
+ ),
248
+ ref,
249
+ ...props,
250
+ children
251
+ }
252
+ );
253
+ }
254
+ if (isMobile) {
255
+ return /* @__PURE__ */ jsx(Sheet, { open: openMobile, onOpenChange: setOpenMobile, modal: false, ...props, children: /* @__PURE__ */ jsx(
256
+ SheetContent,
257
+ {
258
+ "data-sidebar": "sidebar",
259
+ "data-mobile": "true",
260
+ className: cn(
261
+ "text-ink-500s p-0",
262
+ // Override sheet default width constraints
263
+ "!w-full !max-w-none",
264
+ mobileSheetClassName
265
+ ),
266
+ style: {
267
+ "--sidebar-width": sidebarConfig.widthMobile,
268
+ "--sidebar-width-icon": sidebarConfig.widthIcon,
269
+ "--sidebar-padding-x": sidebarConfig.paddingX,
270
+ "--sidebar-collapsed-width": sidebarConfig.collapsedSize?.width,
271
+ "--sidebar-collapsed-height": sidebarConfig.collapsedSize?.height
272
+ },
273
+ side,
274
+ showCloseButton: false,
275
+ showOverlay: false,
276
+ disableOutsideClick: true,
277
+ children: /* @__PURE__ */ jsx("div", { className: "flex h-full w-full flex-col", children })
278
+ }
279
+ ) });
280
+ }
281
+ return /* @__PURE__ */ jsxs(
282
+ "div",
283
+ {
284
+ ref,
285
+ className: "text-ink-500s group peer hidden md:block",
286
+ "data-state": state,
287
+ "data-collapsible": state === "collapsed" ? collapsible : "",
288
+ "data-variant": variant,
289
+ "data-side": side,
290
+ "data-hovered": isHovered,
291
+ children: [
292
+ /* @__PURE__ */ jsx(
293
+ "div",
294
+ {
295
+ className: cn(
296
+ "relative h-svh w-[--sidebar-width] bg-transparent transition-[width] duration-500 ease-out",
297
+ "group-data-[collapsible=offcanvas]:w-0",
298
+ "group-data-[side=right]:rotate-180",
299
+ variant === "floating" || variant === "inset" ? "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]" : "group-data-[collapsible=icon]:w-[--sidebar-width-icon]"
300
+ )
301
+ }
302
+ ),
303
+ /* @__PURE__ */ jsx(
304
+ "div",
305
+ {
306
+ className: cn(
307
+ "fixed inset-y-0 z-10 hidden h-svh w-[--sidebar-width] transition-all duration-500 ease-out md:flex",
308
+ side === "left" ? "left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]" : "right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]",
309
+ // Adjust the padding for floating and inset variants.
310
+ variant === "floating" || variant === "inset" ? "p-4 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4)_+2px)]" : "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",
311
+ // Add shadow when hovered and collapsed
312
+ "group-data-[collapsible=icon]:group-data-[hovered=true]:w-[--sidebar-width] group-data-[collapsible=icon]:group-data-[hovered=true]:shadow-lg",
313
+ // Make it overlay on top when hovered
314
+ "group-data-[collapsible=icon]:group-data-[hovered=true]:z-50",
315
+ className
316
+ ),
317
+ ...props,
318
+ children: /* @__PURE__ */ jsx(
319
+ "div",
320
+ {
321
+ "data-sidebar": "sidebar",
322
+ 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",
323
+ children
324
+ }
325
+ )
326
+ }
327
+ )
328
+ ]
329
+ }
330
+ );
331
+ }
332
+ );
333
+ Sidebar.displayName = "Sidebar";
334
+ const SidebarTrigger = React.forwardRef(({ className, onClick, ...props }, ref) => {
335
+ const { toggleSidebar, open, state, isHovered } = useSidebar();
336
+ const showExpandedIcon = open || state === "collapsed" && isHovered;
337
+ return /* @__PURE__ */ jsxs(
338
+ Button,
339
+ {
340
+ ref,
341
+ "data-sidebar": "trigger",
342
+ variant: "icon",
343
+ size: "icon",
344
+ className: cn("h-8 w-8", className),
345
+ onClick: (event) => {
346
+ onClick?.(event);
347
+ toggleSidebar();
348
+ },
349
+ ...props,
350
+ children: [
351
+ /* @__PURE__ */ jsx(
352
+ ArrowRightIcon,
353
+ {
354
+ className: cn("h-6 w-6 transition-transform duration-200", {
355
+ "rotate-180": showExpandedIcon
356
+ })
357
+ }
358
+ ),
359
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Toggle Sidebar" })
360
+ ]
361
+ }
362
+ );
363
+ });
364
+ SidebarTrigger.displayName = "SidebarTrigger";
365
+ const SidebarRail = React.forwardRef(
366
+ ({ className, ...props }, ref) => {
367
+ const { toggleSidebar, state, config, customWidth, setCustomWidth } = useSidebar();
368
+ const [isResizing, setIsResizing] = React.useState(false);
369
+ const handleMouseDown = React.useCallback(
370
+ (e) => {
371
+ if (state === "collapsed") {
372
+ toggleSidebar();
373
+ return;
374
+ }
375
+ e.preventDefault();
376
+ e.stopPropagation();
377
+ setIsResizing(true);
378
+ const startX = e.clientX;
379
+ const startWidth = customWidth || parseFloat(config.width) * 16;
380
+ const minWidth = parseFloat(config.width) * 16;
381
+ const maxWidthValue = config.maxWidth ?? "30rem";
382
+ const maxWidth = maxWidthValue.endsWith("rem") ? parseFloat(maxWidthValue) * 16 : parseFloat(maxWidthValue);
383
+ const handleMouseMove = (e2) => {
384
+ const delta = e2.clientX - startX;
385
+ const newWidth = Math.max(minWidth, Math.min(maxWidth, startWidth + delta));
386
+ setCustomWidth(newWidth);
387
+ };
388
+ const handleMouseUp = () => {
389
+ setIsResizing(false);
390
+ document.removeEventListener("mousemove", handleMouseMove);
391
+ document.removeEventListener("mouseup", handleMouseUp);
392
+ };
393
+ document.addEventListener("mousemove", handleMouseMove);
394
+ document.addEventListener("mouseup", handleMouseUp);
395
+ },
396
+ [state, toggleSidebar, customWidth, config, setCustomWidth]
397
+ );
398
+ return /* @__PURE__ */ jsx(
399
+ "button",
400
+ {
401
+ ref,
402
+ "data-sidebar": "rail",
403
+ "aria-label": "Toggle Sidebar",
404
+ tabIndex: -1,
405
+ onMouseDown: handleMouseDown,
406
+ title: state === "collapsed" ? "Expand Sidebar" : "Drag to resize",
407
+ className: cn(
408
+ "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",
409
+ "after:absolute after:inset-y-0 after:left-1/2 after:w-[1px] after:bg-gray-300 after:transition-all after:duration-200",
410
+ "hover:after:w-[3px] hover:after:bg-blue-500",
411
+ "[[data-side=left]_&]:cursor-col-resize [[data-side=right]_&]:cursor-col-resize",
412
+ "[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize",
413
+ "group-data-[collapsible=offcanvas]:hover:bg-sidebar group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full",
414
+ "[[data-side=left][data-collapsible=offcanvas]_&]:-right-2",
415
+ "[[data-side=right][data-collapsible=offcanvas]_&]:-left-2",
416
+ isResizing && "after:!w-[3px] after:!bg-blue-500 ",
417
+ className
418
+ ),
419
+ ...props
420
+ }
421
+ );
422
+ }
423
+ );
424
+ SidebarRail.displayName = "SidebarRail";
425
+ const SidebarInset = React.forwardRef(
426
+ ({ className, ...props }, ref) => {
427
+ return /* @__PURE__ */ jsx(
428
+ "main",
429
+ {
430
+ ref,
431
+ className: cn(
432
+ "bg-background relative flex min-h-svh w-full flex-1 flex-col",
433
+ "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",
434
+ className
435
+ ),
436
+ ...props
437
+ }
438
+ );
439
+ }
440
+ );
441
+ SidebarInset.displayName = "SidebarInset";
442
+ const SidebarInput = React.forwardRef(({ className, ...props }, ref) => {
443
+ return /* @__PURE__ */ jsx(
444
+ Input,
445
+ {
446
+ ref,
447
+ "data-sidebar": "input",
448
+ className: cn("bg-background w-full shadow-none focus-visible:h-8 ", className),
449
+ ...props
450
+ }
451
+ );
452
+ });
453
+ SidebarInput.displayName = "SidebarInput";
454
+ const SidebarHeader = React.forwardRef(
455
+ ({ className, ...props }, ref) => {
456
+ return /* @__PURE__ */ jsx(
457
+ "div",
458
+ {
459
+ ref,
460
+ "data-sidebar": "header",
461
+ className: cn(
462
+ "flex flex-col gap-2 pt-3",
463
+ "[padding-left:var(--sidebar-padding-x)] [padding-right:var(--sidebar-padding-x)]",
464
+ className
465
+ ),
466
+ ...props
467
+ }
468
+ );
469
+ }
470
+ );
471
+ SidebarHeader.displayName = "SidebarHeader";
472
+ const SidebarFooter = React.forwardRef(
473
+ ({ className, ...props }, ref) => {
474
+ const { state, setIsHovered, config } = useSidebar();
475
+ const hoverTimeoutRef = React.useRef();
476
+ const leaveTimeoutRef = React.useRef();
477
+ const handleMouseEnter = React.useCallback(() => {
478
+ if (state !== "collapsed" || !config.enableHoverExpand) return;
479
+ if (leaveTimeoutRef.current) {
480
+ clearTimeout(leaveTimeoutRef.current);
481
+ }
482
+ hoverTimeoutRef.current = setTimeout(() => {
483
+ setIsHovered(true);
484
+ }, 300);
485
+ }, [state, setIsHovered, config.enableHoverExpand]);
486
+ const handleMouseLeave = React.useCallback(() => {
487
+ if (!config.enableHoverExpand) return;
488
+ if (hoverTimeoutRef.current) {
489
+ clearTimeout(hoverTimeoutRef.current);
490
+ }
491
+ leaveTimeoutRef.current = setTimeout(() => {
492
+ setIsHovered(false);
493
+ }, 200);
494
+ }, [setIsHovered, config.enableHoverExpand]);
495
+ React.useEffect(() => {
496
+ return () => {
497
+ if (hoverTimeoutRef.current) {
498
+ clearTimeout(hoverTimeoutRef.current);
499
+ }
500
+ if (leaveTimeoutRef.current) {
501
+ clearTimeout(leaveTimeoutRef.current);
502
+ }
503
+ };
504
+ }, []);
505
+ return /* @__PURE__ */ jsx(
506
+ "div",
507
+ {
508
+ ref,
509
+ "data-sidebar": "footer",
510
+ className: cn("flex flex-col gap-2", "[padding:var(--sidebar-padding-x)]", className),
511
+ onMouseEnter: handleMouseEnter,
512
+ onMouseLeave: handleMouseLeave,
513
+ ...props
514
+ }
515
+ );
516
+ }
517
+ );
518
+ SidebarFooter.displayName = "SidebarFooter";
519
+ const SidebarSeparator = React.forwardRef(({ className, ...props }, ref) => {
520
+ return /* @__PURE__ */ jsx(
521
+ Separator,
522
+ {
523
+ ref,
524
+ "data-sidebar": "separator",
525
+ className: cn("bg-sidebar-border mx-2 w-auto", className),
526
+ ...props
527
+ }
528
+ );
529
+ });
530
+ SidebarSeparator.displayName = "SidebarSeparator";
531
+ const SidebarContent = React.forwardRef(
532
+ ({ className, ...props }, ref) => {
533
+ const { state, setIsHovered, config } = useSidebar();
534
+ const hoverTimeoutRef = React.useRef();
535
+ const leaveTimeoutRef = React.useRef();
536
+ const handleMouseEnter = React.useCallback(() => {
537
+ if (state !== "collapsed" || !config.enableHoverExpand) return;
538
+ if (leaveTimeoutRef.current) {
539
+ clearTimeout(leaveTimeoutRef.current);
540
+ }
541
+ hoverTimeoutRef.current = setTimeout(() => {
542
+ setIsHovered(true);
543
+ }, 300);
544
+ }, [state, setIsHovered, config.enableHoverExpand]);
545
+ const handleMouseLeave = React.useCallback(() => {
546
+ if (!config.enableHoverExpand) return;
547
+ if (hoverTimeoutRef.current) {
548
+ clearTimeout(hoverTimeoutRef.current);
549
+ }
550
+ leaveTimeoutRef.current = setTimeout(() => {
551
+ setIsHovered(false);
552
+ }, 200);
553
+ }, [setIsHovered, config.enableHoverExpand]);
554
+ React.useEffect(() => {
555
+ return () => {
556
+ if (hoverTimeoutRef.current) {
557
+ clearTimeout(hoverTimeoutRef.current);
558
+ }
559
+ if (leaveTimeoutRef.current) {
560
+ clearTimeout(leaveTimeoutRef.current);
561
+ }
562
+ };
563
+ }, []);
564
+ return /* @__PURE__ */ jsx(
565
+ "div",
566
+ {
567
+ ref,
568
+ "data-sidebar": "content",
569
+ className: cn(
570
+ "flex min-h-0 flex-1 flex-col gap-4 overflow-auto",
571
+ // Hide scrollbar when collapsed but keep scrolling functionality
572
+ "group-data-[collapsible=icon]:scrollbar-hide",
573
+ className
574
+ ),
575
+ onMouseEnter: handleMouseEnter,
576
+ onMouseLeave: handleMouseLeave,
577
+ ...props
578
+ }
579
+ );
580
+ }
581
+ );
582
+ SidebarContent.displayName = "SidebarContent";
583
+ const SidebarGroup = React.forwardRef(
584
+ ({ className, ...props }, ref) => {
585
+ return /* @__PURE__ */ jsx(
586
+ "div",
587
+ {
588
+ ref,
589
+ "data-sidebar": "group",
590
+ className: cn(
591
+ "relative flex w-full min-w-0 flex-col",
592
+ "[padding-left:var(--sidebar-padding-x)] [padding-right:var(--sidebar-padding-x)]",
593
+ className
594
+ ),
595
+ ...props
596
+ }
597
+ );
598
+ }
599
+ );
600
+ SidebarGroup.displayName = "SidebarGroup";
601
+ const SidebarGroupLabel = React.forwardRef(({ className, asChild = false, ...props }, ref) => {
602
+ const Comp = asChild ? Slot : "div";
603
+ return /* @__PURE__ */ jsx(
604
+ Comp,
605
+ {
606
+ ref,
607
+ "data-sidebar": "group-label",
608
+ className: cn(
609
+ "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",
610
+ "group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0",
611
+ "group-data-[collapsible=icon]:group-data-[hovered=true]:mt-0 group-data-[collapsible=icon]:group-data-[hovered=true]:opacity-100",
612
+ className
613
+ ),
614
+ ...props
615
+ }
616
+ );
617
+ });
618
+ SidebarGroupLabel.displayName = "SidebarGroupLabel";
619
+ const SidebarGroupAction = React.forwardRef(({ className, asChild = false, ...props }, ref) => {
620
+ const Comp = asChild ? Slot : "button";
621
+ return /* @__PURE__ */ jsx(
622
+ Comp,
623
+ {
624
+ ref,
625
+ "data-sidebar": "group-action",
626
+ className: cn(
627
+ "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",
628
+ // Increases the hit area of the button on mobile.
629
+ "after:absolute after:-inset-2 after:md:hidden",
630
+ "group-data-[collapsible=icon]:hidden",
631
+ className
632
+ ),
633
+ ...props
634
+ }
635
+ );
636
+ });
637
+ SidebarGroupAction.displayName = "SidebarGroupAction";
638
+ const SidebarGroupContent = React.forwardRef(
639
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx(
640
+ "div",
641
+ {
642
+ ref,
643
+ "data-sidebar": "group-content",
644
+ className: cn("w-full text-base", className),
645
+ ...props
646
+ }
647
+ )
648
+ );
649
+ SidebarGroupContent.displayName = "SidebarGroupContent";
650
+ const SidebarMenu = React.forwardRef(
651
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx(
652
+ "ul",
653
+ {
654
+ ref,
655
+ "data-sidebar": "menu",
656
+ className: cn("flex w-full min-w-0 flex-col gap-2", className),
657
+ ...props
658
+ }
659
+ )
660
+ );
661
+ SidebarMenu.displayName = "SidebarMenu";
662
+ const SidebarMenuItem = React.forwardRef(
663
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx(
664
+ "li",
665
+ {
666
+ ref,
667
+ "data-sidebar": "menu-item",
668
+ className: cn("group/menu-item relative", className),
669
+ ...props
670
+ }
671
+ )
672
+ );
673
+ SidebarMenuItem.displayName = "SidebarMenuItem";
674
+ const sidebarMenuButtonVariants = cva(
675
+ "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",
676
+ {
677
+ variants: {
678
+ variant: {
679
+ default: "hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
680
+ outline: "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))]"
681
+ },
682
+ size: {
683
+ default: "h-10 text-base",
684
+ sm: "h-7 text-xs",
685
+ 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"
686
+ }
687
+ },
688
+ defaultVariants: {
689
+ variant: "default",
690
+ size: "default"
691
+ }
692
+ }
693
+ );
694
+ const SidebarMenuButton = React.forwardRef(
695
+ ({
696
+ asChild = false,
697
+ isActive = false,
698
+ variant = "default",
699
+ size = "default",
700
+ className,
701
+ ...props
702
+ }, ref) => {
703
+ const Comp = asChild ? Slot : "button";
704
+ return /* @__PURE__ */ jsx(
705
+ Comp,
706
+ {
707
+ ref,
708
+ "data-sidebar": "menu-button",
709
+ "data-size": size,
710
+ "data-active": isActive,
711
+ className: cn(sidebarMenuButtonVariants({ variant, size }), className),
712
+ ...props
713
+ }
714
+ );
715
+ }
716
+ );
717
+ SidebarMenuButton.displayName = "SidebarMenuButton";
718
+ const SidebarMenuAction = React.forwardRef(({ className, asChild = false, showOnHover = false, ...props }, ref) => {
719
+ const Comp = asChild ? Slot : "button";
720
+ return /* @__PURE__ */ jsx(
721
+ Comp,
722
+ {
723
+ ref,
724
+ "data-sidebar": "menu-action",
725
+ className: cn(
726
+ "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",
727
+ // Increases the hit area of the button on mobile.
728
+ "after:absolute after:-inset-2 after:md:hidden",
729
+ "peer-data-[size=sm]/menu-button:top-1",
730
+ "peer-data-[size=default]/menu-button:top-1.5",
731
+ "peer-data-[size=lg]/menu-button:top-2.5",
732
+ "group-data-[collapsible=icon]:hidden",
733
+ "group-data-[collapsible=icon]:group-data-[hovered=true]:flex",
734
+ showOnHover && "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",
735
+ className
736
+ ),
737
+ ...props
738
+ }
739
+ );
740
+ });
741
+ SidebarMenuAction.displayName = "SidebarMenuAction";
742
+ const SidebarMenuBadge = React.forwardRef(
743
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx(
744
+ "div",
745
+ {
746
+ ref,
747
+ "data-sidebar": "menu-badge",
748
+ className: cn(
749
+ "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",
750
+ "absolute right-1",
751
+ "peer-hover/menu-button:bg-red-500 peer-data-[active=true]/menu-button:bg-red-500",
752
+ "peer-data-[size=sm]/menu-button:top-1",
753
+ "peer-data-[size=default]/menu-button:top-1.5",
754
+ "peer-data-[size=lg]/menu-button:top-2.5",
755
+ "group-data-[collapsible=icon]:hidden",
756
+ "group-data-[collapsible=icon]:group-data-[hovered=true]:!flex",
757
+ "group-data-[collapsible=icon]:group-data-[hovered=true]:!relative",
758
+ "group-data-[collapsible=icon]:group-data-[hovered=true]:!right-auto",
759
+ "group-data-[collapsible=icon]:group-data-[hovered=true]:!top-auto",
760
+ "group-data-[collapsible=icon]:group-data-[hovered=true]:ml-auto",
761
+ className
762
+ ),
763
+ ...props
764
+ }
765
+ )
766
+ );
767
+ SidebarMenuBadge.displayName = "SidebarMenuBadge";
768
+ const SidebarMenuSkeleton = React.forwardRef(({ className, showIcon = false, ...props }, ref) => {
769
+ const width = React.useMemo(() => {
770
+ return `${Math.floor(Math.random() * 40) + 50}%`;
771
+ }, []);
772
+ return /* @__PURE__ */ jsxs(
773
+ "div",
774
+ {
775
+ ref,
776
+ "data-sidebar": "menu-skeleton",
777
+ className: cn("flex h-8 items-center gap-2 rounded-md px-2", className),
778
+ ...props,
779
+ children: [
780
+ showIcon && /* @__PURE__ */ jsx(Skeleton, { className: "size-4 rounded-md", "data-sidebar": "menu-skeleton-icon" }),
781
+ /* @__PURE__ */ jsx(
782
+ Skeleton,
783
+ {
784
+ className: "h-4 max-w-[--skeleton-width] flex-1",
785
+ "data-sidebar": "menu-skeleton-text",
786
+ style: {
787
+ "--skeleton-width": width
788
+ }
789
+ }
790
+ )
791
+ ]
792
+ }
793
+ );
794
+ });
795
+ SidebarMenuSkeleton.displayName = "SidebarMenuSkeleton";
796
+ const SidebarMenuSub = React.forwardRef(
797
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx(
798
+ "ul",
799
+ {
800
+ ref,
801
+ "data-sidebar": "menu-sub",
802
+ className: cn(
803
+ "border-sidebar-border ml-5 flex min-w-0 translate-x-px flex-col gap-1 pl-3 pt-2 transition-all duration-300",
804
+ "group-data-[collapsible=icon]:hidden",
805
+ "group-data-[collapsible=icon]:group-data-[hovered=true]:flex",
806
+ className
807
+ ),
808
+ ...props
809
+ }
810
+ )
811
+ );
812
+ SidebarMenuSub.displayName = "SidebarMenuSub";
813
+ const SidebarMenuSubItem = React.forwardRef(
814
+ ({ ...props }, ref) => /* @__PURE__ */ jsx("li", { ref, ...props })
815
+ );
816
+ SidebarMenuSubItem.displayName = "SidebarMenuSubItem";
817
+ const SidebarMenuSubButton = React.forwardRef(({ asChild = false, size = "sm", isActive, className, ...props }, ref) => {
818
+ const Comp = asChild ? Slot : "a";
819
+ return /* @__PURE__ */ jsx(
820
+ Comp,
821
+ {
822
+ ref,
823
+ "data-sidebar": "menu-sub-button",
824
+ "data-size": size,
825
+ "data-active": isActive,
826
+ className: cn(
827
+ "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",
828
+ "data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground",
829
+ size === "sm" && "text-sm",
830
+ size === "md" && "text-base",
831
+ "group-data-[collapsible=icon]:hidden",
832
+ className
833
+ ),
834
+ ...props
835
+ }
836
+ );
837
+ });
838
+ SidebarMenuSubButton.displayName = "SidebarMenuSubButton";
839
+
840
+ export { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, defaultSidebarConfig, useSidebar };
841
+ //# sourceMappingURL=sidebar.mjs.map
842
+ //# sourceMappingURL=sidebar.mjs.map