@customafk/lunas-ui 0.2.4 → 0.2.6

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 (753) hide show
  1. package/README.md +39 -9
  2. package/ai-docs.md +419 -0
  3. package/dist/alert-5MxGtf3j.d.mts +88 -0
  4. package/dist/alert-DIC1_ymv.cjs +2 -0
  5. package/dist/alert-DIC1_ymv.cjs.map +1 -0
  6. package/dist/alert-DwdUOFaC.d.cts +88 -0
  7. package/dist/alert-VP3giy31.mjs +2 -0
  8. package/dist/alert-VP3giy31.mjs.map +1 -0
  9. package/dist/avatar-CTS9-raY.cjs +2 -0
  10. package/dist/avatar-CTS9-raY.cjs.map +1 -0
  11. package/dist/avatar-DbxqvCjT.mjs +2 -0
  12. package/dist/avatar-DbxqvCjT.mjs.map +1 -0
  13. package/dist/badge-B8bw2UEY.mjs +2 -0
  14. package/dist/badge-B8bw2UEY.mjs.map +1 -0
  15. package/dist/badge-BFTGDsBm.d.cts +42 -0
  16. package/dist/badge-sL8O2yfv.d.mts +42 -0
  17. package/dist/badge-uQ0pIZbQ.cjs +2 -0
  18. package/dist/badge-uQ0pIZbQ.cjs.map +1 -0
  19. package/dist/button-BlQb81It.d.mts +174 -0
  20. package/dist/button-C6ybzxxj.mjs +2 -0
  21. package/dist/button-C6ybzxxj.mjs.map +1 -0
  22. package/dist/button-CEOQ3-82.d.cts +174 -0
  23. package/dist/button-CwDT3m4m.cjs +2 -0
  24. package/dist/button-CwDT3m4m.cjs.map +1 -0
  25. package/dist/button.variants-DeCyas1F.mjs +2 -0
  26. package/dist/button.variants-DeCyas1F.mjs.map +1 -0
  27. package/dist/button.variants-tnhb123u.cjs +2 -0
  28. package/dist/button.variants-tnhb123u.cjs.map +1 -0
  29. package/dist/{calendar-CG-WMM8e.cjs → calendar-CyAPpT2m.cjs} +2 -2
  30. package/dist/calendar-CyAPpT2m.cjs.map +1 -0
  31. package/dist/calendar-JKxWM6AF.mjs +2 -0
  32. package/dist/calendar-JKxWM6AF.mjs.map +1 -0
  33. package/dist/cards/grid-product-card.cjs +1 -1
  34. package/dist/cards/grid-product-card.cjs.map +1 -1
  35. package/dist/cards/grid-product-card.d.cts +23 -0
  36. package/dist/cards/grid-product-card.d.mts +23 -0
  37. package/dist/cards/grid-product-card.mjs +1 -1
  38. package/dist/cards/grid-product-card.mjs.map +1 -1
  39. package/dist/cards/product-card.cjs +1 -1
  40. package/dist/cards/product-card.cjs.map +1 -1
  41. package/dist/cards/product-card.d.cts +23 -0
  42. package/dist/cards/product-card.d.mts +23 -0
  43. package/dist/cards/product-card.mjs +1 -1
  44. package/dist/cards/product-card.mjs.map +1 -1
  45. package/dist/cards/simple-card.cjs +1 -1
  46. package/dist/cards/simple-card.cjs.map +1 -1
  47. package/dist/cards/simple-card.d.cts +16 -0
  48. package/dist/cards/simple-card.d.mts +16 -0
  49. package/dist/cards/simple-card.mjs +1 -1
  50. package/dist/cards/simple-card.mjs.map +1 -1
  51. package/dist/{checkbox-Bg2FiuQw.mjs → checkbox-DJEdYOjA.mjs} +2 -2
  52. package/dist/checkbox-DJEdYOjA.mjs.map +1 -0
  53. package/dist/{checkbox-C0fSWwmD.cjs → checkbox-RZrRNYP2.cjs} +2 -2
  54. package/dist/checkbox-RZrRNYP2.cjs.map +1 -0
  55. package/dist/close-BU0kWRVo.mjs +2 -0
  56. package/dist/{close-DfuHB7kq.mjs.map → close-BU0kWRVo.mjs.map} +1 -1
  57. package/dist/close-DXk_H3Gt.cjs +2 -0
  58. package/dist/{close-D_Ge7gnP.cjs.map → close-DXk_H3Gt.cjs.map} +1 -1
  59. package/dist/cms-layout-Dc4moos1.cjs +2 -0
  60. package/dist/cms-layout-Dc4moos1.cjs.map +1 -0
  61. package/dist/cms-layout-HfnOQS16.mjs +2 -0
  62. package/dist/cms-layout-HfnOQS16.mjs.map +1 -0
  63. package/dist/{command-_zpTaaIk.cjs → command-SHd-d_o0.cjs} +2 -2
  64. package/dist/command-SHd-d_o0.cjs.map +1 -0
  65. package/dist/{command-DhBTNTqz.mjs → command-bpcnKEbR.mjs} +2 -2
  66. package/dist/command-bpcnKEbR.mjs.map +1 -0
  67. package/dist/data-display/country.cjs +1 -1
  68. package/dist/data-display/country.cjs.map +1 -1
  69. package/dist/data-display/country.d.cts +15 -3
  70. package/dist/data-display/country.d.mts +15 -3
  71. package/dist/data-display/country.mjs +1 -1
  72. package/dist/data-display/country.mjs.map +1 -1
  73. package/dist/data-display/data-list.cjs +1 -1
  74. package/dist/data-display/data-list.cjs.map +1 -1
  75. package/dist/data-display/data-list.d.cts +31 -2
  76. package/dist/data-display/data-list.d.mts +31 -2
  77. package/dist/data-display/data-list.mjs +1 -1
  78. package/dist/data-display/data-list.mjs.map +1 -1
  79. package/dist/data-display/date-tooltip.cjs +1 -1
  80. package/dist/data-display/date-tooltip.cjs.map +1 -1
  81. package/dist/data-display/date-tooltip.d.cts +13 -2
  82. package/dist/data-display/date-tooltip.d.mts +13 -2
  83. package/dist/data-display/date-tooltip.mjs +1 -1
  84. package/dist/data-display/date-tooltip.mjs.map +1 -1
  85. package/dist/data-display/date.cjs +1 -1
  86. package/dist/data-display/date.d.cts +28 -2
  87. package/dist/data-display/date.d.mts +28 -2
  88. package/dist/data-display/date.mjs +1 -1
  89. package/dist/data-display/empty.cjs +1 -1
  90. package/dist/data-display/empty.cjs.map +1 -1
  91. package/dist/data-display/empty.d.cts +17 -3
  92. package/dist/data-display/empty.d.mts +17 -3
  93. package/dist/data-display/empty.mjs +1 -1
  94. package/dist/data-display/empty.mjs.map +1 -1
  95. package/dist/data-display/name.cjs +1 -1
  96. package/dist/data-display/name.cjs.map +1 -1
  97. package/dist/data-display/name.d.cts +12 -1
  98. package/dist/data-display/name.d.mts +12 -1
  99. package/dist/data-display/name.mjs +1 -1
  100. package/dist/data-display/name.mjs.map +1 -1
  101. package/dist/data-display/phone-number.cjs +1 -1
  102. package/dist/data-display/phone-number.cjs.map +1 -1
  103. package/dist/data-display/phone-number.d.cts +14 -2
  104. package/dist/data-display/phone-number.d.mts +14 -2
  105. package/dist/data-display/phone-number.mjs +1 -1
  106. package/dist/data-display/phone-number.mjs.map +1 -1
  107. package/dist/data-display/role-badge.cjs +1 -1
  108. package/dist/data-display/role-badge.cjs.map +1 -1
  109. package/dist/data-display/role-badge.d.cts +15 -3
  110. package/dist/data-display/role-badge.d.mts +15 -3
  111. package/dist/data-display/role-badge.mjs +1 -1
  112. package/dist/data-display/role-badge.mjs.map +1 -1
  113. package/dist/data-display/statistic.cjs +1 -1
  114. package/dist/data-display/statistic.cjs.map +1 -1
  115. package/dist/data-display/statistic.d.cts +35 -6
  116. package/dist/data-display/statistic.d.mts +35 -6
  117. package/dist/data-display/statistic.mjs +1 -1
  118. package/dist/data-display/statistic.mjs.map +1 -1
  119. package/dist/data-display/user.cjs +1 -2
  120. package/dist/data-display/user.d.cts +14 -1
  121. package/dist/data-display/user.d.mts +14 -1
  122. package/dist/data-display/user.mjs +1 -2
  123. package/dist/date-CVz9xdCg.mjs +2 -0
  124. package/dist/date-CVz9xdCg.mjs.map +1 -0
  125. package/dist/date-a3RI5Pwo.cjs +2 -0
  126. package/dist/date-a3RI5Pwo.cjs.map +1 -0
  127. package/dist/dialog-Bah7jLoO.d.cts +90 -0
  128. package/dist/dialog-BchwY6-N.mjs +2 -0
  129. package/dist/dialog-BchwY6-N.mjs.map +1 -0
  130. package/dist/dialog-DSg5IKmb.d.mts +90 -0
  131. package/dist/dialog-o_68LQXd.cjs +2 -0
  132. package/dist/dialog-o_68LQXd.cjs.map +1 -0
  133. package/dist/dialogs/confirm-dialog.cjs +1 -1
  134. package/dist/dialogs/confirm-dialog.cjs.map +1 -1
  135. package/dist/dialogs/confirm-dialog.d.cts +129 -3
  136. package/dist/dialogs/confirm-dialog.d.mts +129 -3
  137. package/dist/dialogs/confirm-dialog.mjs +1 -1
  138. package/dist/dialogs/confirm-dialog.mjs.map +1 -1
  139. package/dist/dialogs/detail-dialog/components/sidebar.cjs +1 -2
  140. package/dist/dialogs/detail-dialog/components/sidebar.d.cts +71 -24
  141. package/dist/dialogs/detail-dialog/components/sidebar.d.mts +71 -24
  142. package/dist/dialogs/detail-dialog/components/sidebar.mjs +1 -2
  143. package/dist/dialogs/detail-dialog/index.cjs +1 -1
  144. package/dist/dialogs/detail-dialog/index.cjs.map +1 -1
  145. package/dist/dialogs/detail-dialog/index.d.cts +37 -8
  146. package/dist/dialogs/detail-dialog/index.d.mts +37 -8
  147. package/dist/dialogs/detail-dialog/index.mjs +1 -1
  148. package/dist/dialogs/detail-dialog/index.mjs.map +1 -1
  149. package/dist/dialogs/error-dialog.cjs +1 -1
  150. package/dist/dialogs/error-dialog.cjs.map +1 -1
  151. package/dist/dialogs/error-dialog.d.cts +18 -4
  152. package/dist/dialogs/error-dialog.d.mts +18 -4
  153. package/dist/dialogs/error-dialog.mjs +1 -1
  154. package/dist/dialogs/error-dialog.mjs.map +1 -1
  155. package/dist/dialogs/loading-dialog.cjs +1 -1
  156. package/dist/dialogs/loading-dialog.cjs.map +1 -1
  157. package/dist/dialogs/loading-dialog.d.cts +15 -3
  158. package/dist/dialogs/loading-dialog.d.mts +15 -3
  159. package/dist/dialogs/loading-dialog.mjs +1 -1
  160. package/dist/dialogs/loading-dialog.mjs.map +1 -1
  161. package/dist/{dist-CvmzZ_6C.mjs → dist-CIN9T2FB.mjs} +1 -1
  162. package/dist/{dist-CvmzZ_6C.mjs.map → dist-CIN9T2FB.mjs.map} +1 -1
  163. package/dist/{dist-BudM04oj.cjs → dist-Dh8WwRa8.cjs} +1 -1
  164. package/dist/{dist-BudM04oj.cjs.map → dist-Dh8WwRa8.cjs.map} +1 -1
  165. package/dist/dropdown-menu-Ct9BLGfa.cjs +2 -0
  166. package/dist/dropdown-menu-Ct9BLGfa.cjs.map +1 -0
  167. package/dist/dropdown-menu-DWSfXhHo.mjs +2 -0
  168. package/dist/dropdown-menu-DWSfXhHo.mjs.map +1 -0
  169. package/dist/features/descriptions/index.cjs +1 -1
  170. package/dist/features/descriptions/index.cjs.map +1 -1
  171. package/dist/features/descriptions/index.d.cts +158 -19
  172. package/dist/features/descriptions/index.d.mts +158 -19
  173. package/dist/features/descriptions/index.mjs +1 -1
  174. package/dist/features/descriptions/index.mjs.map +1 -1
  175. package/dist/features/search-modal/index.cjs +1 -2
  176. package/dist/features/search-modal/index.d.cts +12 -2
  177. package/dist/features/search-modal/index.d.mts +12 -2
  178. package/dist/features/search-modal/index.mjs +1 -2
  179. package/dist/features/tables/index.cjs +1 -2
  180. package/dist/features/tables/index.d.cts +746 -24
  181. package/dist/features/tables/index.d.mts +742 -20
  182. package/dist/features/tables/index.mjs +1 -2
  183. package/dist/features/tanstack-form/index.cjs +1 -2
  184. package/dist/features/tanstack-form/index.d.cts +2 -1786
  185. package/dist/features/tanstack-form/index.d.mts +2 -1786
  186. package/dist/features/tanstack-form/index.mjs +1 -2
  187. package/dist/field-CXVnw75a.mjs +2 -0
  188. package/dist/field-CXVnw75a.mjs.map +1 -0
  189. package/dist/field-CppNvoxV.cjs +2 -0
  190. package/dist/field-CppNvoxV.cjs.map +1 -0
  191. package/dist/{flex-BP8sTi70.mjs → flex-BLMTj7Ev.mjs} +2 -2
  192. package/dist/flex-BLMTj7Ev.mjs.map +1 -0
  193. package/dist/{flex-twCgWyx1.cjs → flex-BbbogTsZ.cjs} +2 -2
  194. package/dist/flex-BbbogTsZ.cjs.map +1 -0
  195. package/dist/heading-AKz5ewy-.cjs +2 -0
  196. package/dist/heading-AKz5ewy-.cjs.map +1 -0
  197. package/dist/heading-DN67djxs.mjs +2 -0
  198. package/dist/heading-DN67djxs.mjs.map +1 -0
  199. package/dist/{image-DuFv8sPr.cjs → image-B1Dm5LWk.cjs} +2 -2
  200. package/dist/image-B1Dm5LWk.cjs.map +1 -0
  201. package/dist/{image-CS_Q0WA7.mjs → image-BlzrSaoE.mjs} +2 -2
  202. package/dist/image-BlzrSaoE.mjs.map +1 -0
  203. package/dist/index-D4shnfqM.d.cts +2030 -0
  204. package/dist/index-Dktb6D35.d.mts +2030 -0
  205. package/dist/index.cjs +1 -0
  206. package/dist/index.d.cts +90 -0
  207. package/dist/index.d.mts +90 -0
  208. package/dist/index.mjs +1 -0
  209. package/dist/{input-DBtIgQB6.mjs → input-Cd0G5y-9.mjs} +2 -2
  210. package/dist/input-Cd0G5y-9.mjs.map +1 -0
  211. package/dist/{input-BFWWaN-v.cjs → input-Cl5VkKQh.cjs} +2 -2
  212. package/dist/input-Cl5VkKQh.cjs.map +1 -0
  213. package/dist/input-DAGzv97v.d.mts +44 -0
  214. package/dist/input-DPLvx5x8.d.cts +44 -0
  215. package/dist/{label-BzfsTrVt.cjs → label-DkMTQ3Ch.cjs} +2 -2
  216. package/dist/label-DkMTQ3Ch.cjs.map +1 -0
  217. package/dist/label-OmlGaZ5h.mjs +2 -0
  218. package/dist/label-OmlGaZ5h.mjs.map +1 -0
  219. package/dist/layouts/cms-layout/index.cjs +1 -2
  220. package/dist/layouts/cms-layout/index.d.cts +66 -13
  221. package/dist/layouts/cms-layout/index.d.mts +66 -13
  222. package/dist/layouts/cms-layout/index.mjs +1 -2
  223. package/dist/layouts/flex.cjs +1 -1
  224. package/dist/layouts/flex.d.cts +90 -6
  225. package/dist/layouts/flex.d.mts +93 -9
  226. package/dist/layouts/flex.mjs +1 -1
  227. package/dist/layouts/grid.cjs +1 -1
  228. package/dist/layouts/grid.cjs.map +1 -1
  229. package/dist/layouts/grid.d.cts +14 -0
  230. package/dist/layouts/grid.d.mts +14 -0
  231. package/dist/layouts/grid.mjs +1 -1
  232. package/dist/layouts/grid.mjs.map +1 -1
  233. package/dist/layouts/payment-layout/index.cjs +1 -2
  234. package/dist/layouts/payment-layout/index.d.cts +35 -0
  235. package/dist/layouts/payment-layout/index.d.mts +35 -0
  236. package/dist/layouts/payment-layout/index.mjs +1 -2
  237. package/dist/pages/FeatureDeveloping.cjs +1 -1
  238. package/dist/pages/FeatureDeveloping.cjs.map +1 -1
  239. package/dist/pages/FeatureDeveloping.d.cts +21 -3
  240. package/dist/pages/FeatureDeveloping.d.mts +21 -3
  241. package/dist/pages/FeatureDeveloping.mjs +1 -1
  242. package/dist/pages/FeatureDeveloping.mjs.map +1 -1
  243. package/dist/pages/FeatureFixing.cjs +1 -1
  244. package/dist/pages/FeatureFixing.cjs.map +1 -1
  245. package/dist/pages/FeatureFixing.d.cts +21 -3
  246. package/dist/pages/FeatureFixing.d.mts +21 -3
  247. package/dist/pages/FeatureFixing.mjs +1 -1
  248. package/dist/pages/FeatureFixing.mjs.map +1 -1
  249. package/dist/pages/NotAuthorized.cjs +1 -1
  250. package/dist/pages/NotAuthorized.cjs.map +1 -1
  251. package/dist/pages/NotAuthorized.d.cts +21 -3
  252. package/dist/pages/NotAuthorized.d.mts +21 -3
  253. package/dist/pages/NotAuthorized.mjs +1 -1
  254. package/dist/pages/NotAuthorized.mjs.map +1 -1
  255. package/dist/pages/NotFound.cjs +1 -1
  256. package/dist/pages/NotFound.cjs.map +1 -1
  257. package/dist/pages/NotFound.d.cts +21 -3
  258. package/dist/pages/NotFound.d.mts +21 -3
  259. package/dist/pages/NotFound.mjs +1 -1
  260. package/dist/pages/NotFound.mjs.map +1 -1
  261. package/dist/paragraph-Ch5TvEqL.mjs +2 -0
  262. package/dist/paragraph-Ch5TvEqL.mjs.map +1 -0
  263. package/dist/paragraph-DN85Huc4.cjs +2 -0
  264. package/dist/paragraph-DN85Huc4.cjs.map +1 -0
  265. package/dist/payment-layout-Da29dHJe.cjs +2 -0
  266. package/dist/payment-layout-Da29dHJe.cjs.map +1 -0
  267. package/dist/payment-layout-wN5c7MCM.mjs +2 -0
  268. package/dist/payment-layout-wN5c7MCM.mjs.map +1 -0
  269. package/dist/{popover-DzDrgttC.cjs → popover-AEt-aSy3.cjs} +2 -2
  270. package/dist/popover-AEt-aSy3.cjs.map +1 -0
  271. package/dist/popover-OJXFbqJi.mjs +2 -0
  272. package/dist/popover-OJXFbqJi.mjs.map +1 -0
  273. package/dist/{radio-group-CBhRsUjN.cjs → radio-group-BWLdQw7M.cjs} +2 -2
  274. package/dist/radio-group-BWLdQw7M.cjs.map +1 -0
  275. package/dist/{radio-group-Cem8O6BK.mjs → radio-group-CAgfOr7-.mjs} +2 -2
  276. package/dist/radio-group-CAgfOr7-.mjs.map +1 -0
  277. package/dist/{resizable-mlGS6Zto.cjs → resizable-D6UKwvFa.cjs} +2 -2
  278. package/dist/resizable-D6UKwvFa.cjs.map +1 -0
  279. package/dist/{resizable-DXHfkbaz.mjs → resizable-DWh_mp5P.mjs} +2 -2
  280. package/dist/resizable-DWh_mp5P.mjs.map +1 -0
  281. package/dist/search-modal-BxjKY8I7.mjs +2 -0
  282. package/dist/search-modal-BxjKY8I7.mjs.map +1 -0
  283. package/dist/search-modal-C-jNqQI1.cjs +2 -0
  284. package/dist/search-modal-C-jNqQI1.cjs.map +1 -0
  285. package/dist/{select-2CgwiefV.cjs → select-Py_t2nX1.cjs} +2 -2
  286. package/dist/select-Py_t2nX1.cjs.map +1 -0
  287. package/dist/{select-CivtMKTM.mjs → select-Ze8Fq88G.mjs} +2 -2
  288. package/dist/select-Ze8Fq88G.mjs.map +1 -0
  289. package/dist/separator-BMsbHAVt.mjs +2 -0
  290. package/dist/separator-BMsbHAVt.mjs.map +1 -0
  291. package/dist/{separator-C3ip6sbh.cjs → separator-BwZb12bh.cjs} +2 -2
  292. package/dist/separator-BwZb12bh.cjs.map +1 -0
  293. package/dist/{sheet-5MJRtrfG.cjs → sheet-CaDXTx7n.cjs} +2 -2
  294. package/dist/sheet-CaDXTx7n.cjs.map +1 -0
  295. package/dist/{sheet-oadGRiie.mjs → sheet-DMIqn1iv.mjs} +2 -2
  296. package/dist/sheet-DMIqn1iv.mjs.map +1 -0
  297. package/dist/sidebar-C27_pwLR.cjs +2 -0
  298. package/dist/sidebar-C27_pwLR.cjs.map +1 -0
  299. package/dist/sidebar-meLttL0V.mjs +2 -0
  300. package/dist/sidebar-meLttL0V.mjs.map +1 -0
  301. package/dist/skeleton-BPxcW2yu.mjs +2 -0
  302. package/dist/skeleton-BPxcW2yu.mjs.map +1 -0
  303. package/dist/skeleton-BfMCjXYM.cjs +2 -0
  304. package/dist/skeleton-BfMCjXYM.cjs.map +1 -0
  305. package/dist/spinner-EgMJOaQi.mjs +2 -0
  306. package/dist/spinner-EgMJOaQi.mjs.map +1 -0
  307. package/dist/spinner-MKXqwF9G.cjs +2 -0
  308. package/dist/spinner-MKXqwF9G.cjs.map +1 -0
  309. package/dist/systems/google.cjs.map +1 -1
  310. package/dist/systems/google.d.cts +36 -0
  311. package/dist/systems/google.d.mts +36 -0
  312. package/dist/systems/google.mjs.map +1 -1
  313. package/dist/tables-CmOVrvXM.cjs +2 -0
  314. package/dist/tables-CmOVrvXM.cjs.map +1 -0
  315. package/dist/tables-cBo0_szt.mjs +2 -0
  316. package/dist/tables-cBo0_szt.mjs.map +1 -0
  317. package/dist/tanstack-form-BmV2BXDz.cjs +2 -0
  318. package/dist/tanstack-form-BmV2BXDz.cjs.map +1 -0
  319. package/dist/tanstack-form-CJ43hVb_.mjs +2 -0
  320. package/dist/tanstack-form-CJ43hVb_.mjs.map +1 -0
  321. package/dist/{textarea-COQoSVSc.cjs → textarea-BsgmN4jy.cjs} +2 -2
  322. package/dist/textarea-BsgmN4jy.cjs.map +1 -0
  323. package/dist/{textarea-bLtmb71c.mjs → textarea-CdGSEkZB.mjs} +2 -2
  324. package/dist/textarea-CdGSEkZB.mjs.map +1 -0
  325. package/dist/tooltip-Bj0iOG4s.mjs +2 -0
  326. package/dist/tooltip-Bj0iOG4s.mjs.map +1 -0
  327. package/dist/{tooltip-DC6i1A25.cjs → tooltip-itUmYz9k.cjs} +2 -2
  328. package/dist/tooltip-itUmYz9k.cjs.map +1 -0
  329. package/dist/{types-Bd0JePtp.d.cts → types-B_32Ieia.d.mts} +1 -1
  330. package/dist/{types-BpHcqlOI.d.mts → types-CDYHkcOk.d.cts} +1 -1
  331. package/dist/{types-DBD4LOem.mjs → types-DNphnTW-.mjs} +1 -1
  332. package/dist/{types-DBD4LOem.mjs.map → types-DNphnTW-.mjs.map} +1 -1
  333. package/dist/typography/paragraph.cjs +1 -1
  334. package/dist/typography/paragraph.d.cts +40 -20
  335. package/dist/typography/paragraph.d.mts +40 -20
  336. package/dist/typography/paragraph.mjs +1 -1
  337. package/dist/typography/title.cjs +1 -1
  338. package/dist/typography/title.cjs.map +1 -1
  339. package/dist/typography/title.d.cts +33 -5
  340. package/dist/typography/title.d.mts +33 -5
  341. package/dist/typography/title.mjs +1 -1
  342. package/dist/typography/title.mjs.map +1 -1
  343. package/dist/ui/alert-dialog.cjs +1 -1
  344. package/dist/ui/alert-dialog.cjs.map +1 -1
  345. package/dist/ui/alert-dialog.d.cts +54 -12
  346. package/dist/ui/alert-dialog.d.mts +54 -12
  347. package/dist/ui/alert-dialog.mjs +1 -1
  348. package/dist/ui/alert-dialog.mjs.map +1 -1
  349. package/dist/ui/alert.cjs +1 -2
  350. package/dist/ui/alert.d.cts +2 -69
  351. package/dist/ui/alert.d.mts +2 -69
  352. package/dist/ui/alert.mjs +1 -2
  353. package/dist/ui/aspect-ratio.cjs +1 -1
  354. package/dist/ui/aspect-ratio.cjs.map +1 -1
  355. package/dist/ui/aspect-ratio.d.cts +15 -2
  356. package/dist/ui/aspect-ratio.d.mts +15 -2
  357. package/dist/ui/aspect-ratio.mjs +1 -1
  358. package/dist/ui/aspect-ratio.mjs.map +1 -1
  359. package/dist/ui/avatar.cjs +1 -1
  360. package/dist/ui/avatar.d.cts +20 -4
  361. package/dist/ui/avatar.d.mts +20 -4
  362. package/dist/ui/avatar.mjs +1 -1
  363. package/dist/ui/badge.cjs +1 -1
  364. package/dist/ui/badge.d.cts +2 -21
  365. package/dist/ui/badge.d.mts +2 -21
  366. package/dist/ui/badge.mjs +1 -1
  367. package/dist/ui/breadcrumb.cjs +1 -1
  368. package/dist/ui/breadcrumb.cjs.map +1 -1
  369. package/dist/ui/breadcrumb.d.cts +38 -25
  370. package/dist/ui/breadcrumb.d.mts +38 -25
  371. package/dist/ui/breadcrumb.mjs +1 -1
  372. package/dist/ui/breadcrumb.mjs.map +1 -1
  373. package/dist/ui/button-group.cjs +1 -1
  374. package/dist/ui/button-group.cjs.map +1 -1
  375. package/dist/ui/button-group.d.cts +27 -6
  376. package/dist/ui/button-group.d.mts +27 -6
  377. package/dist/ui/button-group.mjs +1 -1
  378. package/dist/ui/button-group.mjs.map +1 -1
  379. package/dist/ui/button.cjs +1 -1
  380. package/dist/ui/button.d.cts +1 -1
  381. package/dist/ui/button.d.mts +1 -1
  382. package/dist/ui/button.mjs +1 -1
  383. package/dist/ui/buttons/add-new.cjs +1 -1
  384. package/dist/ui/buttons/add-new.cjs.map +1 -1
  385. package/dist/ui/buttons/add-new.d.cts +9 -0
  386. package/dist/ui/buttons/add-new.d.mts +9 -0
  387. package/dist/ui/buttons/add-new.mjs +1 -1
  388. package/dist/ui/buttons/add-new.mjs.map +1 -1
  389. package/dist/ui/buttons/edit.cjs +1 -1
  390. package/dist/ui/buttons/edit.cjs.map +1 -1
  391. package/dist/ui/buttons/edit.d.cts +9 -0
  392. package/dist/ui/buttons/edit.d.mts +9 -0
  393. package/dist/ui/buttons/edit.mjs +1 -1
  394. package/dist/ui/buttons/edit.mjs.map +1 -1
  395. package/dist/ui/buttons/refresh.cjs +1 -1
  396. package/dist/ui/buttons/refresh.cjs.map +1 -1
  397. package/dist/ui/buttons/refresh.d.cts +9 -0
  398. package/dist/ui/buttons/refresh.d.mts +9 -0
  399. package/dist/ui/buttons/refresh.mjs +1 -1
  400. package/dist/ui/buttons/refresh.mjs.map +1 -1
  401. package/dist/ui/buttons/trash.cjs +1 -1
  402. package/dist/ui/buttons/trash.cjs.map +1 -1
  403. package/dist/ui/buttons/trash.d.cts +9 -0
  404. package/dist/ui/buttons/trash.d.mts +9 -0
  405. package/dist/ui/buttons/trash.mjs +1 -1
  406. package/dist/ui/buttons/trash.mjs.map +1 -1
  407. package/dist/ui/buttons/upload-image.cjs +1 -1
  408. package/dist/ui/buttons/upload-image.cjs.map +1 -1
  409. package/dist/ui/buttons/upload-image.d.cts +13 -0
  410. package/dist/ui/buttons/upload-image.d.mts +13 -0
  411. package/dist/ui/buttons/upload-image.mjs +1 -1
  412. package/dist/ui/buttons/upload-image.mjs.map +1 -1
  413. package/dist/ui/calendar.cjs +1 -1
  414. package/dist/ui/calendar.d.cts +22 -4
  415. package/dist/ui/calendar.d.mts +22 -4
  416. package/dist/ui/calendar.mjs +1 -1
  417. package/dist/ui/card.cjs +1 -1
  418. package/dist/ui/card.cjs.map +1 -1
  419. package/dist/ui/card.d.cts +37 -8
  420. package/dist/ui/card.d.mts +37 -8
  421. package/dist/ui/card.mjs +1 -1
  422. package/dist/ui/card.mjs.map +1 -1
  423. package/dist/ui/carousel.cjs +1 -1
  424. package/dist/ui/carousel.cjs.map +1 -1
  425. package/dist/ui/carousel.d.cts +31 -7
  426. package/dist/ui/carousel.d.mts +31 -7
  427. package/dist/ui/carousel.mjs +1 -1
  428. package/dist/ui/carousel.mjs.map +1 -1
  429. package/dist/ui/checkbox.cjs +1 -1
  430. package/dist/ui/checkbox.d.cts +17 -2
  431. package/dist/ui/checkbox.d.mts +17 -2
  432. package/dist/ui/checkbox.mjs +1 -1
  433. package/dist/ui/collapsible.cjs.map +1 -1
  434. package/dist/ui/collapsible.d.cts +22 -4
  435. package/dist/ui/collapsible.d.mts +22 -4
  436. package/dist/ui/collapsible.mjs.map +1 -1
  437. package/dist/ui/command.cjs +1 -1
  438. package/dist/ui/command.d.cts +48 -11
  439. package/dist/ui/command.d.mts +48 -11
  440. package/dist/ui/command.mjs +1 -1
  441. package/dist/ui/context-menu.cjs +1 -1
  442. package/dist/ui/context-menu.cjs.map +1 -1
  443. package/dist/ui/context-menu.d.cts +65 -16
  444. package/dist/ui/context-menu.d.mts +65 -16
  445. package/dist/ui/context-menu.mjs +1 -1
  446. package/dist/ui/context-menu.mjs.map +1 -1
  447. package/dist/ui/dialog.cjs +1 -1
  448. package/dist/ui/dialog.d.cts +1 -1
  449. package/dist/ui/dialog.d.mts +1 -1
  450. package/dist/ui/dialog.mjs +1 -1
  451. package/dist/ui/drawer.cjs +1 -1
  452. package/dist/ui/drawer.cjs.map +1 -1
  453. package/dist/ui/drawer.d.cts +39 -11
  454. package/dist/ui/drawer.d.mts +39 -11
  455. package/dist/ui/drawer.mjs +1 -1
  456. package/dist/ui/drawer.mjs.map +1 -1
  457. package/dist/ui/dropdown-menu.cjs +1 -1
  458. package/dist/ui/dropdown-menu.d.cts +65 -16
  459. package/dist/ui/dropdown-menu.d.mts +65 -16
  460. package/dist/ui/dropdown-menu.mjs +1 -1
  461. package/dist/ui/empty.cjs +1 -1
  462. package/dist/ui/empty.cjs.map +1 -1
  463. package/dist/ui/empty.d.cts +41 -9
  464. package/dist/ui/empty.d.mts +41 -9
  465. package/dist/ui/empty.mjs +1 -1
  466. package/dist/ui/empty.mjs.map +1 -1
  467. package/dist/ui/field.cjs +1 -2
  468. package/dist/ui/field.d.cts +13 -13
  469. package/dist/ui/field.d.mts +24 -24
  470. package/dist/ui/field.mjs +1 -2
  471. package/dist/ui/file-uploader.cjs +2 -2
  472. package/dist/ui/file-uploader.cjs.map +1 -1
  473. package/dist/ui/file-uploader.d.cts +27 -2
  474. package/dist/ui/file-uploader.d.mts +27 -2
  475. package/dist/ui/file-uploader.mjs +2 -2
  476. package/dist/ui/file-uploader.mjs.map +1 -1
  477. package/dist/ui/form.cjs +1 -1
  478. package/dist/ui/form.cjs.map +1 -1
  479. package/dist/ui/form.d.cts +51 -7
  480. package/dist/ui/form.d.mts +55 -11
  481. package/dist/ui/form.mjs +1 -1
  482. package/dist/ui/form.mjs.map +1 -1
  483. package/dist/ui/hover-card.cjs +1 -1
  484. package/dist/ui/hover-card.cjs.map +1 -1
  485. package/dist/ui/hover-card.d.cts +22 -4
  486. package/dist/ui/hover-card.d.mts +22 -4
  487. package/dist/ui/hover-card.mjs +1 -1
  488. package/dist/ui/hover-card.mjs.map +1 -1
  489. package/dist/ui/image.cjs +1 -1
  490. package/dist/ui/image.d.cts +20 -0
  491. package/dist/ui/image.d.mts +20 -0
  492. package/dist/ui/image.mjs +1 -1
  493. package/dist/ui/input-otp.cjs +1 -1
  494. package/dist/ui/input-otp.cjs.map +1 -1
  495. package/dist/ui/input-otp.d.cts +36 -5
  496. package/dist/ui/input-otp.d.mts +36 -5
  497. package/dist/ui/input-otp.mjs +1 -1
  498. package/dist/ui/input-otp.mjs.map +1 -1
  499. package/dist/ui/input.cjs +1 -1
  500. package/dist/ui/input.d.cts +1 -1
  501. package/dist/ui/input.d.mts +1 -1
  502. package/dist/ui/input.mjs +1 -1
  503. package/dist/ui/inputs/search-input.cjs +1 -1
  504. package/dist/ui/inputs/search-input.cjs.map +1 -1
  505. package/dist/ui/inputs/search-input.d.cts +20 -3
  506. package/dist/ui/inputs/search-input.d.mts +20 -3
  507. package/dist/ui/inputs/search-input.mjs +1 -1
  508. package/dist/ui/inputs/search-input.mjs.map +1 -1
  509. package/dist/ui/item.cjs +1 -1
  510. package/dist/ui/item.cjs.map +1 -1
  511. package/dist/ui/item.d.cts +56 -16
  512. package/dist/ui/item.d.mts +56 -16
  513. package/dist/ui/item.mjs +1 -1
  514. package/dist/ui/item.mjs.map +1 -1
  515. package/dist/ui/label.cjs +1 -1
  516. package/dist/ui/label.d.cts +15 -2
  517. package/dist/ui/label.d.mts +15 -2
  518. package/dist/ui/label.mjs +1 -1
  519. package/dist/ui/menubar.cjs +1 -1
  520. package/dist/ui/menubar.cjs.map +1 -1
  521. package/dist/ui/menubar.d.cts +68 -17
  522. package/dist/ui/menubar.d.mts +68 -17
  523. package/dist/ui/menubar.mjs +1 -1
  524. package/dist/ui/menubar.mjs.map +1 -1
  525. package/dist/ui/multi-select.cjs +1 -1
  526. package/dist/ui/multi-select.cjs.map +1 -1
  527. package/dist/ui/multi-select.d.cts +39 -2
  528. package/dist/ui/multi-select.d.mts +40 -3
  529. package/dist/ui/multi-select.mjs +1 -1
  530. package/dist/ui/multi-select.mjs.map +1 -1
  531. package/dist/ui/navigation-menu.cjs +1 -1
  532. package/dist/ui/navigation-menu.cjs.map +1 -1
  533. package/dist/ui/navigation-menu.d.cts +42 -11
  534. package/dist/ui/navigation-menu.d.mts +42 -11
  535. package/dist/ui/navigation-menu.mjs +1 -1
  536. package/dist/ui/navigation-menu.mjs.map +1 -1
  537. package/dist/ui/pagination.cjs +1 -1
  538. package/dist/ui/pagination.cjs.map +1 -1
  539. package/dist/ui/pagination.d.cts +37 -9
  540. package/dist/ui/pagination.d.mts +37 -9
  541. package/dist/ui/pagination.mjs +1 -1
  542. package/dist/ui/pagination.mjs.map +1 -1
  543. package/dist/ui/popover.cjs +1 -1
  544. package/dist/ui/popover.d.cts +32 -6
  545. package/dist/ui/popover.d.mts +32 -6
  546. package/dist/ui/popover.mjs +1 -1
  547. package/dist/ui/progress.cjs +1 -1
  548. package/dist/ui/progress.cjs.map +1 -1
  549. package/dist/ui/progress.d.cts +13 -2
  550. package/dist/ui/progress.d.mts +13 -2
  551. package/dist/ui/progress.mjs +1 -1
  552. package/dist/ui/progress.mjs.map +1 -1
  553. package/dist/ui/radio-group.cjs +1 -1
  554. package/dist/ui/radio-group.d.cts +25 -3
  555. package/dist/ui/radio-group.d.mts +25 -3
  556. package/dist/ui/radio-group.mjs +1 -1
  557. package/dist/ui/resizable.cjs +1 -1
  558. package/dist/ui/resizable.d.cts +29 -9
  559. package/dist/ui/resizable.d.mts +29 -9
  560. package/dist/ui/resizable.mjs +1 -1
  561. package/dist/ui/scroll-area.cjs +1 -1
  562. package/dist/ui/scroll-area.cjs.map +1 -1
  563. package/dist/ui/scroll-area.d.cts +24 -6
  564. package/dist/ui/scroll-area.d.mts +24 -6
  565. package/dist/ui/scroll-area.mjs +1 -1
  566. package/dist/ui/scroll-area.mjs.map +1 -1
  567. package/dist/ui/select.cjs +1 -1
  568. package/dist/ui/select.d.cts +43 -9
  569. package/dist/ui/select.d.mts +43 -9
  570. package/dist/ui/select.mjs +1 -1
  571. package/dist/ui/separator.cjs +1 -1
  572. package/dist/ui/separator.d.cts +23 -2
  573. package/dist/ui/separator.d.mts +23 -2
  574. package/dist/ui/separator.mjs +1 -1
  575. package/dist/ui/sheet.cjs +1 -1
  576. package/dist/ui/sheet.d.cts +38 -9
  577. package/dist/ui/sheet.d.mts +38 -9
  578. package/dist/ui/sheet.mjs +1 -1
  579. package/dist/ui/sidebar.cjs +1 -1
  580. package/dist/ui/sidebar.cjs.map +1 -1
  581. package/dist/ui/sidebar.d.cts +125 -28
  582. package/dist/ui/sidebar.d.mts +123 -26
  583. package/dist/ui/sidebar.mjs +1 -1
  584. package/dist/ui/sidebar.mjs.map +1 -1
  585. package/dist/ui/skeleton.cjs +1 -1
  586. package/dist/ui/skeleton.d.cts +19 -2
  587. package/dist/ui/skeleton.d.mts +19 -2
  588. package/dist/ui/skeleton.mjs +1 -1
  589. package/dist/ui/slider.cjs +1 -1
  590. package/dist/ui/slider.cjs.map +1 -1
  591. package/dist/ui/slider.d.cts +13 -2
  592. package/dist/ui/slider.d.mts +13 -2
  593. package/dist/ui/slider.mjs +1 -1
  594. package/dist/ui/slider.mjs.map +1 -1
  595. package/dist/ui/sonner.cjs +1 -1
  596. package/dist/ui/sonner.cjs.map +1 -1
  597. package/dist/ui/sonner.d.cts +18 -2
  598. package/dist/ui/sonner.d.mts +18 -2
  599. package/dist/ui/sonner.mjs +1 -1
  600. package/dist/ui/sonner.mjs.map +1 -1
  601. package/dist/ui/spinner.cjs +1 -1
  602. package/dist/ui/spinner.d.cts +17 -2
  603. package/dist/ui/spinner.d.mts +17 -2
  604. package/dist/ui/spinner.mjs +1 -1
  605. package/dist/ui/switch.cjs +1 -1
  606. package/dist/ui/switch.cjs.map +1 -1
  607. package/dist/ui/switch.d.cts +17 -2
  608. package/dist/ui/switch.d.mts +17 -2
  609. package/dist/ui/switch.mjs +1 -1
  610. package/dist/ui/switch.mjs.map +1 -1
  611. package/dist/ui/table.cjs +1 -1
  612. package/dist/ui/table.cjs.map +1 -1
  613. package/dist/ui/table.d.cts +44 -9
  614. package/dist/ui/table.d.mts +53 -18
  615. package/dist/ui/table.mjs +1 -1
  616. package/dist/ui/table.mjs.map +1 -1
  617. package/dist/ui/tabs.cjs +1 -1
  618. package/dist/ui/tabs.cjs.map +1 -1
  619. package/dist/ui/tabs.d.cts +26 -5
  620. package/dist/ui/tabs.d.mts +26 -5
  621. package/dist/ui/tabs.mjs +1 -1
  622. package/dist/ui/tabs.mjs.map +1 -1
  623. package/dist/ui/textarea.cjs +1 -1
  624. package/dist/ui/textarea.d.cts +18 -2
  625. package/dist/ui/textarea.d.mts +18 -2
  626. package/dist/ui/textarea.mjs +1 -1
  627. package/dist/ui/toggle-group.cjs +1 -1
  628. package/dist/ui/toggle-group.cjs.map +1 -1
  629. package/dist/ui/toggle-group.d.cts +19 -3
  630. package/dist/ui/toggle-group.d.mts +19 -3
  631. package/dist/ui/toggle-group.mjs +1 -1
  632. package/dist/ui/toggle-group.mjs.map +1 -1
  633. package/dist/ui/toggle.cjs +1 -1
  634. package/dist/ui/toggle.cjs.map +1 -1
  635. package/dist/ui/toggle.d.cts +15 -2
  636. package/dist/ui/toggle.d.mts +17 -4
  637. package/dist/ui/toggle.mjs +1 -1
  638. package/dist/ui/toggle.mjs.map +1 -1
  639. package/dist/ui/tooltip.cjs +1 -1
  640. package/dist/ui/tooltip.d.cts +37 -5
  641. package/dist/ui/tooltip.d.mts +37 -5
  642. package/dist/ui/tooltip.mjs +1 -1
  643. package/dist/user-BEyYLDNK.cjs +2 -0
  644. package/dist/user-BEyYLDNK.cjs.map +1 -0
  645. package/dist/user-DONsffqr.mjs +2 -0
  646. package/dist/user-DONsffqr.mjs.map +1 -0
  647. package/package.json +14 -5
  648. package/styles/theme.css +44 -23
  649. package/dist/avatar-DReNH6rV.mjs +0 -2
  650. package/dist/avatar-DReNH6rV.mjs.map +0 -1
  651. package/dist/avatar-aVxo69zP.cjs +0 -2
  652. package/dist/avatar-aVxo69zP.cjs.map +0 -1
  653. package/dist/badge-B4Fa7-J3.mjs +0 -2
  654. package/dist/badge-B4Fa7-J3.mjs.map +0 -1
  655. package/dist/badge-cvLJyaCA.cjs +0 -2
  656. package/dist/badge-cvLJyaCA.cjs.map +0 -1
  657. package/dist/button-BFcXpjqF.cjs +0 -2
  658. package/dist/button-BFcXpjqF.cjs.map +0 -1
  659. package/dist/button-BQTNG97Y.mjs +0 -2
  660. package/dist/button-BQTNG97Y.mjs.map +0 -1
  661. package/dist/button-BX8Kz9y6.d.cts +0 -59
  662. package/dist/button-Bo4oQsyD.d.mts +0 -59
  663. package/dist/button.variants-CS-Cmarr.cjs +0 -2
  664. package/dist/button.variants-CS-Cmarr.cjs.map +0 -1
  665. package/dist/button.variants-DRWf66hR.mjs +0 -2
  666. package/dist/button.variants-DRWf66hR.mjs.map +0 -1
  667. package/dist/calendar-CG-WMM8e.cjs.map +0 -1
  668. package/dist/calendar-CfOkrubO.mjs +0 -2
  669. package/dist/calendar-CfOkrubO.mjs.map +0 -1
  670. package/dist/checkbox-Bg2FiuQw.mjs.map +0 -1
  671. package/dist/checkbox-C0fSWwmD.cjs.map +0 -1
  672. package/dist/close-D_Ge7gnP.cjs +0 -2
  673. package/dist/close-DfuHB7kq.mjs +0 -2
  674. package/dist/command-DhBTNTqz.mjs.map +0 -1
  675. package/dist/command-_zpTaaIk.cjs.map +0 -1
  676. package/dist/data-display/user.cjs.map +0 -1
  677. package/dist/data-display/user.mjs.map +0 -1
  678. package/dist/date-By93kONr.mjs +0 -2
  679. package/dist/date-By93kONr.mjs.map +0 -1
  680. package/dist/date-em5f7hCx.cjs +0 -2
  681. package/dist/date-em5f7hCx.cjs.map +0 -1
  682. package/dist/dialog-CxELDK98.mjs +0 -2
  683. package/dist/dialog-CxELDK98.mjs.map +0 -1
  684. package/dist/dialog-DjRiV5vR.cjs +0 -2
  685. package/dist/dialog-DjRiV5vR.cjs.map +0 -1
  686. package/dist/dialog-PWeGBpsm.d.mts +0 -47
  687. package/dist/dialog-aSu9xFOW.d.cts +0 -47
  688. package/dist/dialogs/detail-dialog/components/sidebar.cjs.map +0 -1
  689. package/dist/dialogs/detail-dialog/components/sidebar.mjs.map +0 -1
  690. package/dist/dropdown-menu-B8GUTfTp.mjs +0 -2
  691. package/dist/dropdown-menu-B8GUTfTp.mjs.map +0 -1
  692. package/dist/dropdown-menu-BuyuU6uF.cjs +0 -2
  693. package/dist/dropdown-menu-BuyuU6uF.cjs.map +0 -1
  694. package/dist/features/search-modal/index.cjs.map +0 -1
  695. package/dist/features/search-modal/index.mjs.map +0 -1
  696. package/dist/features/tables/index.cjs.map +0 -1
  697. package/dist/features/tables/index.mjs.map +0 -1
  698. package/dist/features/tanstack-form/index.cjs.map +0 -1
  699. package/dist/features/tanstack-form/index.mjs.map +0 -1
  700. package/dist/flex-BP8sTi70.mjs.map +0 -1
  701. package/dist/flex-twCgWyx1.cjs.map +0 -1
  702. package/dist/heading--VmdIi7C.mjs +0 -2
  703. package/dist/heading--VmdIi7C.mjs.map +0 -1
  704. package/dist/heading-BEm5CCSE.cjs +0 -2
  705. package/dist/heading-BEm5CCSE.cjs.map +0 -1
  706. package/dist/image-CS_Q0WA7.mjs.map +0 -1
  707. package/dist/image-DuFv8sPr.cjs.map +0 -1
  708. package/dist/input-BFWWaN-v.cjs.map +0 -1
  709. package/dist/input-BgHvD7zf.d.mts +0 -25
  710. package/dist/input-DBtIgQB6.mjs.map +0 -1
  711. package/dist/input-DhQmoNrK.d.cts +0 -25
  712. package/dist/label-BzfsTrVt.cjs.map +0 -1
  713. package/dist/label-Dqr8nxWi.mjs +0 -2
  714. package/dist/label-Dqr8nxWi.mjs.map +0 -1
  715. package/dist/layouts/cms-layout/index.cjs.map +0 -1
  716. package/dist/layouts/cms-layout/index.mjs.map +0 -1
  717. package/dist/layouts/payment-layout/index.cjs.map +0 -1
  718. package/dist/layouts/payment-layout/index.mjs.map +0 -1
  719. package/dist/paragraph-B72bHMf7.cjs +0 -2
  720. package/dist/paragraph-B72bHMf7.cjs.map +0 -1
  721. package/dist/paragraph-moBSTPmT.mjs +0 -2
  722. package/dist/paragraph-moBSTPmT.mjs.map +0 -1
  723. package/dist/popover-BckwBuuD.mjs +0 -2
  724. package/dist/popover-BckwBuuD.mjs.map +0 -1
  725. package/dist/popover-DzDrgttC.cjs.map +0 -1
  726. package/dist/radio-group-CBhRsUjN.cjs.map +0 -1
  727. package/dist/radio-group-Cem8O6BK.mjs.map +0 -1
  728. package/dist/resizable-DXHfkbaz.mjs.map +0 -1
  729. package/dist/resizable-mlGS6Zto.cjs.map +0 -1
  730. package/dist/select-2CgwiefV.cjs.map +0 -1
  731. package/dist/select-CivtMKTM.mjs.map +0 -1
  732. package/dist/separator-Bf0gymN4.mjs +0 -2
  733. package/dist/separator-Bf0gymN4.mjs.map +0 -1
  734. package/dist/separator-C3ip6sbh.cjs.map +0 -1
  735. package/dist/sheet-5MJRtrfG.cjs.map +0 -1
  736. package/dist/sheet-oadGRiie.mjs.map +0 -1
  737. package/dist/skeleton-Ba6koCVf.mjs +0 -2
  738. package/dist/skeleton-Ba6koCVf.mjs.map +0 -1
  739. package/dist/skeleton-CHympz8k.cjs +0 -2
  740. package/dist/skeleton-CHympz8k.cjs.map +0 -1
  741. package/dist/spinner-Chm_2fLr.cjs +0 -2
  742. package/dist/spinner-Chm_2fLr.cjs.map +0 -1
  743. package/dist/spinner-D1v3Bard.mjs +0 -2
  744. package/dist/spinner-D1v3Bard.mjs.map +0 -1
  745. package/dist/textarea-COQoSVSc.cjs.map +0 -1
  746. package/dist/textarea-bLtmb71c.mjs.map +0 -1
  747. package/dist/tooltip-B3dTcgcc.mjs +0 -2
  748. package/dist/tooltip-B3dTcgcc.mjs.map +0 -1
  749. package/dist/tooltip-DC6i1A25.cjs.map +0 -1
  750. package/dist/ui/alert.cjs.map +0 -1
  751. package/dist/ui/alert.mjs.map +0 -1
  752. package/dist/ui/field.cjs.map +0 -1
  753. package/dist/ui/field.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"sidebar.mjs","names":["open","Separator","SlotPrimitive","Tooltip"],"sources":["../../packages/components/ui/sidebar.tsx"],"sourcesContent":["'use client';\nimport { createContext, use, useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { MenuIcon } from 'lucide-react';\n\nimport { useIsMobile } from '@customafk/react-toolkit/hooks/useMobile';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { Slot as SlotPrimitive } from 'radix-ui';\nimport { Button } from '@/components/ui/button';\nimport { Input } from '@/components/ui/input';\nimport { Separator } from '@/components/ui/separator';\nimport { Skeleton } from '@/components/ui/skeleton';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip';\nimport { Drawer, DrawerContent, DrawerDescription, DrawerHeader } from './drawer';\n\nconst SIDEBAR_COOKIE_NAME = 'sidebar_state';\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\nconst SIDEBAR_WIDTH = '16rem';\nconst SIDEBAR_WIDTH_MOBILE = '18rem';\nconst SIDEBAR_WIDTH_ICON = '3rem';\nconst SIDEBAR_KEYBOARD_SHORTCUT = 'b';\n\ntype SidebarContextProps = {\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};\n\nconst SidebarContext = createContext<SidebarContextProps | null>(null);\n\nfunction useSidebar() {\n const context = use(SidebarContext);\n if (!context) {\n throw new Error('useSidebar must be used within a SidebarProvider.');\n }\n\n return context;\n}\n\nfunction SidebarProvider({\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n}: React.ComponentProps<'div'> & {\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n}) {\n const isMobile = useIsMobile();\n const [openMobile, setOpenMobile] = 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 const [_open, _setOpen] = useState(defaultOpen);\n const open = openProp ?? _open;\n const setOpen = 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 // This sets the cookie to keep the sidebar state.\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\n },\n [setOpenProp, open]\n );\n\n // Helper to toggle the sidebar.\n const toggleSidebar = useCallback(() => {\n return isMobile ? setOpenMobile(open => !open) : setOpen(open => !open);\n }, [isMobile, setOpen, setOpenMobile]);\n\n // Adds a keyboard shortcut to toggle the sidebar.\n useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (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]);\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 = useMemo<SidebarContextProps>(\n () => ({\n state,\n isMobile,\n\n toggleSidebar,\n\n open,\n setOpen,\n\n openMobile,\n setOpenMobile,\n }),\n [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]\n );\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\n data-slot=\"sidebar-wrapper\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH,\n '--sidebar-width-icon': SIDEBAR_WIDTH_ICON,\n ...style,\n } as React.CSSProperties\n }\n className={cn('group/sidebar-wrapper', 'has-data-[variant=inset]:bg-sidebar', 'flex h-dvh w-full', className)}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n );\n}\n\nfunction Sidebar({\n side = 'left',\n variant = 'sidebar',\n collapsible = 'offcanvas',\n className,\n children,\n ...props\n}: React.ComponentProps<'div'> & {\n side?: 'left' | 'right';\n variant?: 'sidebar' | 'floating' | 'inset';\n collapsible?: 'offcanvas' | 'icon' | 'none';\n}) {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n\n if (collapsible === 'none') {\n return (\n <aside\n data-slot=\"sidebar\"\n className={cn('bg-sidebar', 'text-sidebar-foreground', 'flex h-full w-(--sidebar-width) flex-col', 'border-r', className)}\n {...props}\n >\n {children}\n </aside>\n );\n }\n\n if (isMobile) {\n return (\n <Drawer open={openMobile} onOpenChange={setOpenMobile} direction=\"left\">\n <DrawerContent\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar\"\n data-mobile=\"true\"\n className=\"bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n // side={side}\n >\n <DrawerHeader className=\"sr-only\">\n <DrawerContent>Sidebar</DrawerContent>\n <DrawerDescription>Displays the mobile sidebar.</DrawerDescription>\n </DrawerHeader>\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </DrawerContent>\n </Drawer>\n );\n }\n\n return (\n <aside\n className=\"group peer text-sidebar-foreground bg-card hidden md:block\"\n data-state={state}\n data-collapsible={state === 'collapsed' ? collapsible : ''}\n data-variant={variant}\n data-side={side}\n data-slot=\"sidebar\"\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n data-slot=\"sidebar-gap\"\n className={cn(\n 'relative',\n 'bg-transparent',\n 'transition-[width] duration-200 ease-linear',\n 'h-14 w-(--sidebar-width)',\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)+(--spacing(4)))]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon)'\n )}\n />\n <div\n data-slot=\"sidebar-container\"\n className={cn(\n 'hidden md:flex',\n 'fixed inset-y-0 top-14 z-10',\n 'h-[calc(100dvh-3.5rem)] w-(--sidebar-width)',\n 'border-r',\n 'transition-[left,right,width] duration-200 ease-linear',\n side === 'left' && 'left-0',\n side === 'left' && 'group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]',\n side === 'right' && 'right-0',\n side === 'right' && '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-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l',\n className\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar-inner\"\n className={cn(\n 'flex size-full flex-col',\n 'group-data-[variant=floating]:rounded-lg',\n 'group-data-[variant=floating]:border',\n 'group-data-[variant=floating]:border-sidebar-border',\n 'group-data-[variant=floating]:shadow-sm'\n )}\n >\n {children}\n </div>\n </div>\n </aside>\n );\n}\n\nfunction SidebarTrigger({ className, onClick, ...props }: React.ComponentProps<typeof Button>) {\n const { toggleSidebar } = useSidebar();\n\n return (\n <Button\n data-sidebar=\"trigger\"\n data-slot=\"sidebar-trigger\"\n variant=\"ghost\"\n size=\"icon\"\n className={cn('size-10 rounded-full', className)}\n onClick={event => {\n onClick?.(event);\n toggleSidebar();\n }}\n {...props}\n >\n <MenuIcon className=\"!size-6\" />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n );\n}\n\nfunction SidebarRail({ className, ...props }: React.ComponentProps<'button'>) {\n const { toggleSidebar } = useSidebar();\n\n return (\n <button\n data-sidebar=\"rail\"\n data-slot=\"sidebar-rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n 'absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear sm:flex',\n 'after:absolute',\n 'after:inset-y-0',\n 'after:left-1/2',\n 'after:w-0.5',\n 'group-data-[side=left]:-right-4',\n 'group-data-[side=right]:left-0',\n 'in-data-[side=left]:cursor-w-resize',\n 'in-data-[side=right]:cursor-e-resize',\n '[[data-side=left][data-state=collapsed]_&]:cursor-e-resize',\n '[[data-side=right][data-state=collapsed]_&]:cursor-w-resize',\n 'hover:after:bg-sidebar-border',\n 'hover:group-data-[collapsible=offcanvas]:bg-sidebar',\n 'group-data-[collapsible=offcanvas]:translate-x-0',\n '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 className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarInset({ className, children, ...props }: React.ComponentProps<'main'>) {\n return (\n <main data-slot=\"sidebar-inset\" className={cn('w-full', 'relative', 'flex flex-1 flex-col', className)} {...props}>\n <div className=\"h-14 w-full\" />\n <div className={cn('flex-1 inset-shadow-sm')}>{children}</div>\n </main>\n );\n}\n\nfunction SidebarInput({ className, ...props }: React.ComponentProps<typeof Input>) {\n return <Input data-slot=\"sidebar-input\" data-sidebar=\"input\" className={cn('bg-background h-8 w-full shadow-none', className)} {...props} />;\n}\n\nfunction SidebarHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"sidebar-header\" data-sidebar=\"header\" className={cn('flex flex-col gap-2 p-2', className)} {...props} />;\n}\n\nfunction SidebarFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"sidebar-footer\" data-sidebar=\"footer\" className={cn('flex flex-col gap-2 p-2', className)} {...props} />;\n}\n\nfunction SidebarSeparator({ className, ...props }: React.ComponentProps<typeof Separator>) {\n return <Separator data-slot=\"sidebar-separator\" data-sidebar=\"separator\" className={cn('bg-sidebar-border mx-2 w-auto', className)} {...props} />;\n}\n\nfunction SidebarContent({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-content\"\n data-sidebar=\"content\"\n className={cn('flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarGroup({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"sidebar-group\" data-sidebar=\"group\" className={cn('relative flex w-full min-w-0 flex-col p-2', className)} {...props} />;\n}\n\nfunction SidebarGroupLabel({ className, asChild = false, ...props }: React.ComponentProps<'div'> & { asChild?: boolean }) {\n const Comp = asChild ? SlotPrimitive.Slot : 'div';\n\n return (\n <Comp\n data-slot=\"sidebar-group-label\"\n data-sidebar=\"group-label\"\n className={cn(\n 'text-sidebar-foreground/70',\n 'ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear',\n 'focus-visible:ring-2',\n '[&>svg]:size-4',\n '[&>svg]:shrink-0',\n 'group-data-[collapsible=icon]:-mt-8',\n 'group-data-[collapsible=icon]:opacity-0',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarGroupAction({ className, asChild = false, ...props }: React.ComponentProps<'button'> & { asChild?: boolean }) {\n const Comp = asChild ? SlotPrimitive.Slot : 'button';\n\n return (\n <Comp\n data-slot=\"sidebar-group-action\"\n data-sidebar=\"group-action\"\n className={cn(\n 'text-sidebar-foreground ring-sidebar-ring',\n 'absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform',\n 'focus-visible:ring-2',\n 'hover:bg-sidebar-accent',\n 'hover:text-sidebar-accent-foreground',\n '[&>svg]:size-4',\n '[&>svg]:shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:absolute after:-inset-2 md:after:hidden',\n 'group-data-[collapsible=icon]:hidden',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarGroupContent({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"sidebar-group-content\" data-sidebar=\"group-content\" className={cn('w-full text-sm', className)} {...props} />;\n}\n\nfunction SidebarMenu({ className, ...props }: React.ComponentProps<'ul'>) {\n return <ul data-slot=\"sidebar-menu\" data-sidebar=\"menu\" className={cn('flex w-full min-w-0 flex-col gap-1', className)} {...props} />;\n}\n\nfunction SidebarMenuItem({ className, ...props }: React.ComponentProps<'li'>) {\n return <li data-slot=\"sidebar-menu-item\" data-sidebar=\"menu-item\" className={cn('group/menu-item relative', className)} {...props} />;\n}\n\nconst sidebarMenuButtonVariants = cva(\n [\n 'peer/menu-button cursor-pointer flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding]',\n 'hover:bg-sidebar-accent',\n 'hover:text-sidebar-accent-foreground',\n 'focus-visible:ring-2',\n 'active:bg-sidebar-accent',\n 'active:text-sidebar-accent-foreground',\n 'disabled:pointer-events-none',\n 'disabled:opacity-50',\n 'group-has-data-[sidebar=menu-action]/menu-item:pr-8',\n 'aria-disabled:pointer-events-none',\n 'aria-disabled:opacity-50',\n 'data-[active=true]:bg-sidebar-accent',\n 'data-[active=true]:font-medium',\n 'data-[active=true]:text-sidebar-accent-foreground',\n 'data-[state=open]:hover:bg-sidebar-accent',\n 'data-[state=open]:hover:text-sidebar-accent-foreground',\n 'group-data-[collapsible=icon]:size-8!',\n 'group-data-[collapsible=icon]:p-2!',\n '[&>span:last-child]:truncate',\n '[&>svg]:size-4',\n '[&>svg]:shrink-0',\n ],\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-8 text-sm',\n sm: 'h-7 text-xs',\n lg: 'h-12 text-sm group-data-[collapsible=icon]:p-0!',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n }\n);\n\nfunction SidebarMenuButton({\n asChild = false,\n isActive = false,\n variant = 'default',\n size = 'default',\n tooltip,\n className,\n ...props\n}: React.ComponentProps<'button'> & {\n asChild?: boolean;\n isActive?: boolean;\n tooltip?: string | React.ComponentProps<typeof TooltipContent>;\n} & VariantProps<typeof sidebarMenuButtonVariants>) {\n const Comp = asChild ? SlotPrimitive.Slot : 'button';\n const { isMobile, state } = useSidebar();\n\n const button = (\n <Comp\n data-slot=\"sidebar-menu-button\"\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 if (!tooltip) {\n return button;\n }\n\n if (typeof tooltip === 'string') {\n tooltip = {\n children: tooltip,\n };\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent side=\"right\" align=\"center\" hidden={state !== 'collapsed' || isMobile} {...tooltip} />\n </Tooltip>\n );\n}\n\nfunction SidebarMenuAction({\n className,\n asChild = false,\n showOnHover = false,\n ...props\n}: React.ComponentProps<'button'> & {\n asChild?: boolean;\n showOnHover?: boolean;\n}) {\n const Comp = asChild ? SlotPrimitive.Slot : 'button';\n\n return (\n <Comp\n data-slot=\"sidebar-menu-action\"\n data-sidebar=\"menu-action\"\n className={cn(\n 'text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform',\n 'focus-visible:ring-2',\n '[&>svg]:size-4',\n '[&>svg]:shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:absolute after:-inset-2 md:after: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 showOnHover && 'peer-data-[active=true]/menu-button:text-sidebar-accent-foreground',\n showOnHover && 'group-focus-within/menu-item:opacity-100',\n showOnHover && 'group-hover/menu-item:opacity-100',\n showOnHover && 'data-[state=open]:opacity-100 md:opacity-0',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuBadge({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-menu-badge\"\n data-sidebar=\"menu-badge\"\n className={cn(\n 'text-sidebar-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums select-none',\n 'peer-hover/menu-button:text-sidebar-accent-foreground',\n 'peer-data-[active=true]/menu-button:text-sidebar-accent-foreground',\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 className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuSkeleton({\n className,\n showIcon = false,\n ...props\n}: React.ComponentProps<'div'> & {\n showIcon?: boolean;\n}) {\n // Random width between 50 to 90%.\n const width = useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`;\n }, []);\n\n return (\n <div data-slot=\"sidebar-menu-skeleton\" data-sidebar=\"menu-skeleton\" className={cn('flex h-8 items-center gap-2 rounded-md px-2', className)} {...props}>\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}\n\nfunction SidebarMenuSub({ className, ...props }: React.ComponentProps<'ul'>) {\n return (\n <ul\n data-slot=\"sidebar-menu-sub\"\n data-sidebar=\"menu-sub\"\n className={cn(\n 'border-sidebar-border mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l px-2.5 py-0.5',\n 'group-data-[collapsible=icon]:hidden',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuSubItem({ className, ...props }: React.ComponentProps<'li'>) {\n return <li data-slot=\"sidebar-menu-sub-item\" data-sidebar=\"menu-sub-item\" className={cn('group/menu-sub-item relative', className)} {...props} />;\n}\n\nfunction SidebarMenuSubButton({\n asChild = false,\n size = 'md',\n isActive = false,\n className,\n ...props\n}: React.ComponentProps<'a'> & {\n asChild?: boolean;\n size?: 'sm' | 'md';\n isActive?: boolean;\n}) {\n const Comp = asChild ? SlotPrimitive.Slot : 'a';\n\n return (\n <Comp\n data-slot=\"sidebar-menu-sub-button\"\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n 'text-sidebar-foreground ring-sidebar-ring',\n 'flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 outline-hidden',\n 'hover:bg-sidebar-accent',\n 'hover:text-sidebar-accent-foreground',\n 'active:bg-sidebar-accent',\n 'active:text-sidebar-accent-foreground',\n 'focus-visible:ring-2',\n 'disabled:pointer-events-none',\n 'disabled:opacity-50',\n 'aria-disabled:pointer-events-none',\n 'aria-disabled:opacity-50',\n '[&>span:last-child]:truncate',\n '[&>svg]:size-4',\n '[&>svg]:shrink-0',\n '[&>svg]:text-sidebar-accent-foreground',\n 'data-[active=true]:bg-sidebar-accent',\n 'data-[active=true]:text-sidebar-accent-foreground',\n size === 'sm' && 'text-xs',\n size === 'md' && 'text-sm',\n 'group-data-[collapsible=icon]:hidden',\n className\n )}\n {...props}\n />\n );\n}\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 // eslint-disable-next-line react-refresh/only-export-components\n useSidebar,\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"sidebar.mjs","names":["open","Separator","SlotPrimitive","Tooltip"],"sources":["../../packages/components/ui/sidebar.tsx"],"sourcesContent":["'use client';\nimport { createContext, use, useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { MenuIcon } from 'lucide-react';\n\nimport { useIsMobile } from '@customafk/react-toolkit/hooks/useMobile';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { Slot as SlotPrimitive } from 'radix-ui';\nimport { Button } from '@/components/ui/button';\nimport { Input } from '@/components/ui/input';\nimport { Separator } from '@/components/ui/separator';\nimport { Skeleton } from '@/components/ui/skeleton';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip';\nimport { Drawer, DrawerContent, DrawerDescription, DrawerHeader } from './drawer';\n\nconst SIDEBAR_COOKIE_NAME = 'sidebar_state';\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\nconst SIDEBAR_WIDTH = '16rem';\nconst SIDEBAR_WIDTH_MOBILE = '18rem';\nconst SIDEBAR_WIDTH_ICON = '3rem';\nconst SIDEBAR_KEYBOARD_SHORTCUT = 'b';\n\ntype SidebarContextProps = {\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};\n\nconst SidebarContext = createContext<SidebarContextProps | null>(null);\n\n/**\n * Hook that returns the current sidebar state and control methods from the nearest SidebarProvider.\n * Must be used within a `<SidebarProvider>`.\n */\nfunction useSidebar() {\n const context = use(SidebarContext);\n if (!context) {\n throw new Error('useSidebar must be used within a SidebarProvider.');\n }\n\n return context;\n}\n\n/**\n * Context provider that manages sidebar open/collapsed state, mobile drawer, keyboard shortcut (Ctrl+B), and CSS variables for all child Sidebar components.\n *\n * @example\n * ```tsx\n * import {\n * SidebarProvider, Sidebar, SidebarHeader, SidebarContent,\n * SidebarMenu, SidebarMenuItem, SidebarMenuButton,\n * SidebarInset, SidebarTrigger,\n * } from '@customafk/lunas-ui/ui/sidebar';\n *\n * <SidebarProvider>\n * <Sidebar>\n * <SidebarHeader>Logo</SidebarHeader>\n * <SidebarContent>\n * <SidebarMenu>\n * <SidebarMenuItem>\n * <SidebarMenuButton asChild isActive>\n * <a href=\"/dashboard\">Dashboard</a>\n * </SidebarMenuButton>\n * </SidebarMenuItem>\n * </SidebarMenu>\n * </SidebarContent>\n * </Sidebar>\n * <SidebarInset>\n * <SidebarTrigger />\n * <main>Page content</main>\n * </SidebarInset>\n * </SidebarProvider>\n * ```\n */\nfunction SidebarProvider({\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n}: React.ComponentProps<'div'> & {\n /** Whether the sidebar starts expanded. @default true */\n defaultOpen?: boolean;\n /** Controlled open state. */\n open?: boolean;\n /** Callback fired when the open state changes. */\n onOpenChange?: (open: boolean) => void;\n}) {\n const isMobile = useIsMobile();\n const [openMobile, setOpenMobile] = 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 const [_open, _setOpen] = useState(defaultOpen);\n const open = openProp ?? _open;\n const setOpen = 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 // This sets the cookie to keep the sidebar state.\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\n },\n [setOpenProp, open]\n );\n\n // Helper to toggle the sidebar.\n const toggleSidebar = useCallback(() => {\n return isMobile ? setOpenMobile(open => !open) : setOpen(open => !open);\n }, [isMobile, setOpen, setOpenMobile]);\n\n // Adds a keyboard shortcut to toggle the sidebar.\n useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (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]);\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 = useMemo<SidebarContextProps>(\n () => ({\n state,\n isMobile,\n\n toggleSidebar,\n\n open,\n setOpen,\n\n openMobile,\n setOpenMobile,\n }),\n [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]\n );\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\n data-slot=\"sidebar-wrapper\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH,\n '--sidebar-width-icon': SIDEBAR_WIDTH_ICON,\n ...style,\n } as React.CSSProperties\n }\n className={cn('group/sidebar-wrapper', 'has-data-[variant=inset]:bg-sidebar', 'flex h-dvh w-full', className)}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n );\n}\n\n/**\n * The main sidebar panel; renders as a Drawer on mobile and a fixed `<aside>` on desktop with optional collapse behavior.\n *\n * @param side - Which edge of the viewport the sidebar attaches to. @default `'left'`\n * @param variant - Visual style: `'sidebar'` (default), `'floating'`, or `'inset'`.\n * @param collapsible - Collapse mode: `'offcanvas'` (slides out), `'icon'` (icon-only), or `'none'` (always visible).\n */\nfunction Sidebar({\n side = 'left',\n variant = 'sidebar',\n collapsible = 'offcanvas',\n className,\n children,\n ...props\n}: React.ComponentProps<'div'> & {\n side?: 'left' | 'right';\n variant?: 'sidebar' | 'floating' | 'inset';\n collapsible?: 'offcanvas' | 'icon' | 'none';\n}) {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n\n if (collapsible === 'none') {\n return (\n <aside\n data-slot=\"sidebar\"\n className={cn('bg-sidebar', 'text-sidebar-foreground', 'flex h-full w-(--sidebar-width) flex-col', 'border-r', className)}\n {...props}\n >\n {children}\n </aside>\n );\n }\n\n if (isMobile) {\n return (\n <Drawer open={openMobile} onOpenChange={setOpenMobile} direction=\"left\">\n <DrawerContent\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar\"\n data-mobile=\"true\"\n className=\"bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n // side={side}\n >\n <DrawerHeader className=\"sr-only\">\n <DrawerContent>Sidebar</DrawerContent>\n <DrawerDescription>Displays the mobile sidebar.</DrawerDescription>\n </DrawerHeader>\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </DrawerContent>\n </Drawer>\n );\n }\n\n return (\n <aside\n className=\"group peer text-sidebar-foreground bg-card hidden md:block\"\n data-state={state}\n data-collapsible={state === 'collapsed' ? collapsible : ''}\n data-variant={variant}\n data-side={side}\n data-slot=\"sidebar\"\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n data-slot=\"sidebar-gap\"\n className={cn(\n 'relative',\n 'bg-transparent',\n 'transition-[width] duration-200 ease-linear',\n 'h-14 w-(--sidebar-width)',\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)+(--spacing(4)))]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon)'\n )}\n />\n <div\n data-slot=\"sidebar-container\"\n className={cn(\n 'hidden md:flex',\n 'fixed inset-y-0 top-14 z-10',\n 'h-[calc(100dvh-3.5rem)] w-(--sidebar-width)',\n 'border-r',\n 'transition-[left,right,width] duration-200 ease-linear',\n side === 'left' && 'left-0',\n side === 'left' && 'group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]',\n side === 'right' && 'right-0',\n side === 'right' && '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-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l',\n className\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar-inner\"\n className={cn(\n 'flex size-full flex-col',\n 'group-data-[variant=floating]:rounded-lg',\n 'group-data-[variant=floating]:border',\n 'group-data-[variant=floating]:border-sidebar-border',\n 'group-data-[variant=floating]:shadow-sm'\n )}\n >\n {children}\n </div>\n </div>\n </aside>\n );\n}\n\n/** Icon button that toggles the sidebar open/collapsed state. */\nfunction SidebarTrigger({ className, onClick, ...props }: React.ComponentProps<typeof Button>) {\n const { toggleSidebar } = useSidebar();\n\n return (\n <Button\n data-sidebar=\"trigger\"\n data-slot=\"sidebar-trigger\"\n variant=\"ghost\"\n size=\"icon\"\n className={cn('size-10 rounded-full', className)}\n onClick={event => {\n onClick?.(event);\n toggleSidebar();\n }}\n {...props}\n >\n <MenuIcon className=\"!size-6\" />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n );\n}\n\n/** Invisible drag-rail along the sidebar edge that toggles collapse on click. */\nfunction SidebarRail({ className, ...props }: React.ComponentProps<'button'>) {\n const { toggleSidebar } = useSidebar();\n\n return (\n <button\n data-sidebar=\"rail\"\n data-slot=\"sidebar-rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n 'absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear sm:flex',\n 'after:absolute',\n 'after:inset-y-0',\n 'after:left-1/2',\n 'after:w-0.5',\n 'group-data-[side=left]:-right-4',\n 'group-data-[side=right]:left-0',\n 'in-data-[side=left]:cursor-w-resize',\n 'in-data-[side=right]:cursor-e-resize',\n '[[data-side=left][data-state=collapsed]_&]:cursor-e-resize',\n '[[data-side=right][data-state=collapsed]_&]:cursor-w-resize',\n 'hover:after:bg-sidebar-border',\n 'hover:group-data-[collapsible=offcanvas]:bg-sidebar',\n 'group-data-[collapsible=offcanvas]:translate-x-0',\n '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 className\n )}\n {...props}\n />\n );\n}\n\n/** The main content area that sits beside the Sidebar; expands to fill the remaining viewport width. */\nfunction SidebarInset({ className, children, ...props }: React.ComponentProps<'main'>) {\n return (\n <main data-slot=\"sidebar-inset\" className={cn('w-full', 'relative', 'flex flex-1 flex-col', className)} {...props}>\n <div className=\"h-14 w-full\" />\n <div className={cn('flex-1 inset-shadow-sm')}>{children}</div>\n </main>\n );\n}\n\n/** A compact search input styled for use inside a sidebar header. */\nfunction SidebarInput({ className, ...props }: React.ComponentProps<typeof Input>) {\n return <Input data-slot=\"sidebar-input\" data-sidebar=\"input\" className={cn('bg-background h-8 w-full shadow-none', className)} {...props} />;\n}\n\n/** Sticky top section of the Sidebar, typically holding a logo or workspace switcher. */\nfunction SidebarHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"sidebar-header\" data-sidebar=\"header\" className={cn('flex flex-col gap-2 p-2', className)} {...props} />;\n}\n\n/** Sticky bottom section of the Sidebar, typically holding user account info or settings. */\nfunction SidebarFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"sidebar-footer\" data-sidebar=\"footer\" className={cn('flex flex-col gap-2 p-2', className)} {...props} />;\n}\n\n/** A horizontal Separator styled for use between sections inside a Sidebar. */\nfunction SidebarSeparator({ className, ...props }: React.ComponentProps<typeof Separator>) {\n return <Separator data-slot=\"sidebar-separator\" data-sidebar=\"separator\" className={cn('bg-sidebar-border mx-2 w-auto', className)} {...props} />;\n}\n\n/** Scrollable middle section of the Sidebar that grows to fill available space. */\nfunction SidebarContent({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-content\"\n data-sidebar=\"content\"\n className={cn('flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden', className)}\n {...props}\n />\n );\n}\n\n/** A logical section within SidebarContent, grouping related SidebarMenu items. */\nfunction SidebarGroup({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"sidebar-group\" data-sidebar=\"group\" className={cn('relative flex w-full min-w-0 flex-col p-2', className)} {...props} />;\n}\n\n/**\n * Small all-caps heading label at the top of a SidebarGroup; hidden automatically in icon-only collapse mode.\n *\n * @param asChild - When true, renders as the child element via Radix Slot.\n */\nfunction SidebarGroupLabel({ className, asChild = false, ...props }: React.ComponentProps<'div'> & { asChild?: boolean }) {\n const Comp = asChild ? SlotPrimitive.Slot : 'div';\n\n return (\n <Comp\n data-slot=\"sidebar-group-label\"\n data-sidebar=\"group-label\"\n className={cn(\n 'text-sidebar-foreground/70',\n 'ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear',\n 'focus-visible:ring-2',\n '[&>svg]:size-4',\n '[&>svg]:shrink-0',\n 'group-data-[collapsible=icon]:-mt-8',\n 'group-data-[collapsible=icon]:opacity-0',\n className\n )}\n {...props}\n />\n );\n}\n\n/**\n * Action button (e.g. \"Add\") positioned absolutely at the top-right of a SidebarGroup label.\n *\n * @param asChild - When true, renders as the child element via Radix Slot.\n */\nfunction SidebarGroupAction({ className, asChild = false, ...props }: React.ComponentProps<'button'> & { asChild?: boolean }) {\n const Comp = asChild ? SlotPrimitive.Slot : 'button';\n\n return (\n <Comp\n data-slot=\"sidebar-group-action\"\n data-sidebar=\"group-action\"\n className={cn(\n 'text-sidebar-foreground ring-sidebar-ring',\n 'absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform',\n 'focus-visible:ring-2',\n 'hover:bg-sidebar-accent',\n 'hover:text-sidebar-accent-foreground',\n '[&>svg]:size-4',\n '[&>svg]:shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:absolute after:-inset-2 md:after:hidden',\n 'group-data-[collapsible=icon]:hidden',\n className\n )}\n {...props}\n />\n );\n}\n\n/** The content area of a SidebarGroup, typically wrapping a SidebarMenu. */\nfunction SidebarGroupContent({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"sidebar-group-content\" data-sidebar=\"group-content\" className={cn('w-full text-sm', className)} {...props} />;\n}\n\n/** Vertical list `<ul>` that holds SidebarMenuItems. */\nfunction SidebarMenu({ className, ...props }: React.ComponentProps<'ul'>) {\n return <ul data-slot=\"sidebar-menu\" data-sidebar=\"menu\" className={cn('flex w-full min-w-0 flex-col gap-1', className)} {...props} />;\n}\n\n/** A single `<li>` entry in a SidebarMenu that may include a button, action, and badge. */\nfunction SidebarMenuItem({ className, ...props }: React.ComponentProps<'li'>) {\n return <li data-slot=\"sidebar-menu-item\" data-sidebar=\"menu-item\" className={cn('group/menu-item relative', className)} {...props} />;\n}\n\nconst sidebarMenuButtonVariants = cva(\n [\n 'peer/menu-button cursor-pointer flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding]',\n 'hover:bg-sidebar-accent',\n 'hover:text-sidebar-accent-foreground',\n 'focus-visible:ring-2',\n 'active:bg-sidebar-accent',\n 'active:text-sidebar-accent-foreground',\n 'disabled:pointer-events-none',\n 'disabled:opacity-50',\n 'group-has-data-[sidebar=menu-action]/menu-item:pr-8',\n 'aria-disabled:pointer-events-none',\n 'aria-disabled:opacity-50',\n 'data-[active=true]:bg-sidebar-accent',\n 'data-[active=true]:font-medium',\n 'data-[active=true]:text-sidebar-accent-foreground',\n 'data-[state=open]:hover:bg-sidebar-accent',\n 'data-[state=open]:hover:text-sidebar-accent-foreground',\n 'group-data-[collapsible=icon]:size-8!',\n 'group-data-[collapsible=icon]:p-2!',\n '[&>span:last-child]:truncate',\n '[&>svg]:size-4',\n '[&>svg]:shrink-0',\n ],\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-8 text-sm',\n sm: 'h-7 text-xs',\n lg: 'h-12 text-sm group-data-[collapsible=icon]:p-0!',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n }\n);\n\n/**\n * The primary clickable button within a SidebarMenuItem; collapses to an icon-only view when the sidebar is in icon-collapse mode and optionally shows a tooltip.\n *\n * @param asChild - When true, renders as the child element via Radix Slot (useful for router links).\n * @param isActive - Marks the button as the currently active route.\n * @param tooltip - A string or TooltipContent props shown when the sidebar is collapsed to icon-only mode.\n * @param variant - `'default'` or `'outline'`.\n * @param size - `'default'`, `'sm'`, or `'lg'`.\n */\nfunction SidebarMenuButton({\n asChild = false,\n isActive = false,\n variant = 'default',\n size = 'default',\n tooltip,\n className,\n ...props\n}: React.ComponentProps<'button'> & {\n asChild?: boolean;\n isActive?: boolean;\n tooltip?: string | React.ComponentProps<typeof TooltipContent>;\n} & VariantProps<typeof sidebarMenuButtonVariants>) {\n const Comp = asChild ? SlotPrimitive.Slot : 'button';\n const { isMobile, state } = useSidebar();\n\n const button = (\n <Comp\n data-slot=\"sidebar-menu-button\"\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 if (!tooltip) {\n return button;\n }\n\n if (typeof tooltip === 'string') {\n tooltip = {\n children: tooltip,\n };\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent side=\"right\" align=\"center\" hidden={state !== 'collapsed' || isMobile} {...tooltip} />\n </Tooltip>\n );\n}\n\n/**\n * An icon action button (e.g. more-options) positioned at the right of a SidebarMenuButton.\n *\n * @param asChild - When true, renders as the child element via Radix Slot.\n * @param showOnHover - When true, the action is only visible on hover or when the menu item is focused.\n */\nfunction SidebarMenuAction({\n className,\n asChild = false,\n showOnHover = false,\n ...props\n}: React.ComponentProps<'button'> & {\n asChild?: boolean;\n showOnHover?: boolean;\n}) {\n const Comp = asChild ? SlotPrimitive.Slot : 'button';\n\n return (\n <Comp\n data-slot=\"sidebar-menu-action\"\n data-sidebar=\"menu-action\"\n className={cn(\n 'text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform',\n 'focus-visible:ring-2',\n '[&>svg]:size-4',\n '[&>svg]:shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:absolute after:-inset-2 md:after: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 showOnHover && 'peer-data-[active=true]/menu-button:text-sidebar-accent-foreground',\n showOnHover && 'group-focus-within/menu-item:opacity-100',\n showOnHover && 'group-hover/menu-item:opacity-100',\n showOnHover && 'data-[state=open]:opacity-100 md:opacity-0',\n className\n )}\n {...props}\n />\n );\n}\n\n/** Small numeric or text badge rendered at the right of a SidebarMenuButton (e.g. unread count). */\nfunction SidebarMenuBadge({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-menu-badge\"\n data-sidebar=\"menu-badge\"\n className={cn(\n 'text-sidebar-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums select-none',\n 'peer-hover/menu-button:text-sidebar-accent-foreground',\n 'peer-data-[active=true]/menu-button:text-sidebar-accent-foreground',\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 className\n )}\n {...props}\n />\n );\n}\n\n/**\n * Placeholder skeleton row rendered in place of a SidebarMenuButton while menu items are loading.\n *\n * @param showIcon - When true, also renders a small square skeleton for the icon slot.\n */\nfunction SidebarMenuSkeleton({\n className,\n showIcon = false,\n ...props\n}: React.ComponentProps<'div'> & {\n showIcon?: boolean;\n}) {\n // Random width between 50 to 90%.\n const width = useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`;\n }, []);\n\n return (\n <div data-slot=\"sidebar-menu-skeleton\" data-sidebar=\"menu-skeleton\" className={cn('flex h-8 items-center gap-2 rounded-md px-2', className)} {...props}>\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}\n\n/** Indented nested list of SidebarMenuSubItems rendered below a parent SidebarMenuItem. */\nfunction SidebarMenuSub({ className, ...props }: React.ComponentProps<'ul'>) {\n return (\n <ul\n data-slot=\"sidebar-menu-sub\"\n data-sidebar=\"menu-sub\"\n className={cn(\n 'border-sidebar-border mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l px-2.5 py-0.5',\n 'group-data-[collapsible=icon]:hidden',\n className\n )}\n {...props}\n />\n );\n}\n\n/** A single `<li>` entry inside a SidebarMenuSub. */\nfunction SidebarMenuSubItem({ className, ...props }: React.ComponentProps<'li'>) {\n return <li data-slot=\"sidebar-menu-sub-item\" data-sidebar=\"menu-sub-item\" className={cn('group/menu-sub-item relative', className)} {...props} />;\n}\n\n/**\n * The clickable link/button for a nested sub-menu entry inside a SidebarMenuSub.\n *\n * @param asChild - When true, renders as the child element via Radix Slot.\n * @param size - `'sm'` for smaller text, `'md'` for normal text.\n * @param isActive - Highlights the button as the currently active sub-route.\n */\nfunction SidebarMenuSubButton({\n asChild = false,\n size = 'md',\n isActive = false,\n className,\n ...props\n}: React.ComponentProps<'a'> & {\n asChild?: boolean;\n size?: 'sm' | 'md';\n isActive?: boolean;\n}) {\n const Comp = asChild ? SlotPrimitive.Slot : 'a';\n\n return (\n <Comp\n data-slot=\"sidebar-menu-sub-button\"\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n 'text-sidebar-foreground ring-sidebar-ring',\n 'flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 outline-hidden',\n 'hover:bg-sidebar-accent',\n 'hover:text-sidebar-accent-foreground',\n 'active:bg-sidebar-accent',\n 'active:text-sidebar-accent-foreground',\n 'focus-visible:ring-2',\n 'disabled:pointer-events-none',\n 'disabled:opacity-50',\n 'aria-disabled:pointer-events-none',\n 'aria-disabled:opacity-50',\n '[&>span:last-child]:truncate',\n '[&>svg]:size-4',\n '[&>svg]:shrink-0',\n '[&>svg]:text-sidebar-accent-foreground',\n 'data-[active=true]:bg-sidebar-accent',\n 'data-[active=true]:text-sidebar-accent-foreground',\n size === 'sm' && 'text-xs',\n size === 'md' && 'text-sm',\n 'group-data-[collapsible=icon]:hidden',\n className\n )}\n {...props}\n />\n );\n}\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 // eslint-disable-next-line react-refresh/only-export-components\n useSidebar,\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- "use client";const e=require(`../skeleton-CHympz8k.cjs`);exports.Skeleton=e.t;
1
+ "use client";const e=require(`../skeleton-BfMCjXYM.cjs`);exports.Skeleton=e.t;
@@ -1,10 +1,27 @@
1
- import * as react_jsx_runtime233 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime230 from "react/jsx-runtime";
2
2
 
3
3
  //#region packages/components/ui/skeleton.d.ts
4
+
5
+ /**
6
+ * Animated pulse placeholder used to indicate loading state for text, images, or other UI elements.
7
+ *
8
+ * @example
9
+ * ```tsx
10
+ * import { Skeleton } from '@customafk/lunas-ui/ui/skeleton';
11
+ *
12
+ * <div className="flex items-center gap-4">
13
+ * <Skeleton className="size-10 rounded-full" />
14
+ * <div className="space-y-2">
15
+ * <Skeleton className="h-4 w-40" />
16
+ * <Skeleton className="h-4 w-24" />
17
+ * </div>
18
+ * </div>
19
+ * ```
20
+ */
4
21
  declare function Skeleton({
5
22
  className,
6
23
  ...props
7
- }: React.ComponentProps<'div'>): react_jsx_runtime233.JSX.Element;
24
+ }: React.ComponentProps<'div'>): react_jsx_runtime230.JSX.Element;
8
25
  //#endregion
9
26
  export { Skeleton };
10
27
  //# sourceMappingURL=skeleton.d.cts.map
@@ -1,10 +1,27 @@
1
- import * as react_jsx_runtime243 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime169 from "react/jsx-runtime";
2
2
 
3
3
  //#region packages/components/ui/skeleton.d.ts
4
+
5
+ /**
6
+ * Animated pulse placeholder used to indicate loading state for text, images, or other UI elements.
7
+ *
8
+ * @example
9
+ * ```tsx
10
+ * import { Skeleton } from '@customafk/lunas-ui/ui/skeleton';
11
+ *
12
+ * <div className="flex items-center gap-4">
13
+ * <Skeleton className="size-10 rounded-full" />
14
+ * <div className="space-y-2">
15
+ * <Skeleton className="h-4 w-40" />
16
+ * <Skeleton className="h-4 w-24" />
17
+ * </div>
18
+ * </div>
19
+ * ```
20
+ */
4
21
  declare function Skeleton({
5
22
  className,
6
23
  ...props
7
- }: React.ComponentProps<'div'>): react_jsx_runtime243.JSX.Element;
24
+ }: React.ComponentProps<'div'>): react_jsx_runtime169.JSX.Element;
8
25
  //#endregion
9
26
  export { Skeleton };
10
27
  //# sourceMappingURL=skeleton.d.mts.map
@@ -1 +1 @@
1
- "use client";import{t as e}from"../skeleton-Ba6koCVf.mjs";export{e as Skeleton};
1
+ "use client";import{t as e}from"../skeleton-BPxcW2yu.mjs";export{e as Skeleton};
@@ -1,2 +1,2 @@
1
- "use client";const e=require(`../chunk-Bmb41Sf3.cjs`);let t=require(`@customafk/react-toolkit/utils`),n=require(`react`),r=require(`react/jsx-runtime`),i=require(`radix-ui`);function a({className:e,defaultValue:a,value:o,min:s=0,max:c=100,...l}){let u=(0,n.useMemo)(()=>Array.isArray(o)?o:Array.isArray(a)?a:[s,c],[o,a,s,c]);return(0,r.jsxs)(i.Slider.Root,{"data-slot":`slider`,defaultValue:a,value:o,min:s,max:c,className:(0,t.cn)(`relative flex w-full touch-none items-center select-none`,`data-[disabled]:opacity-50`,`data-[orientation=vertical]:h-full`,`data-[orientation=vertical]:min-h-44`,`data-[orientation=vertical]:w-auto`,`data-[orientation=vertical]:flex-col`,e),...l,children:[(0,r.jsx)(i.Slider.Track,{"data-slot":`slider-track`,className:(0,t.cn)(`bg-muted relative grow overflow-hidden rounded-full data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5`),children:(0,r.jsx)(i.Slider.Range,{"data-slot":`slider-range`,className:(0,t.cn)(`bg-primary absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full`)})}),Array.from({length:u.length},(e,t)=>(0,r.jsx)(i.Slider.Thumb,{"data-slot":`slider-thumb`,className:`border-primary bg-background ring-ring/50 block size-4 shrink-0 rounded-full border shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50`},t))]})}exports.Slider=a;
1
+ "use client";const e=require(`../chunk-Bmb41Sf3.cjs`);let t=require(`react`),n=require(`react/jsx-runtime`),r=require(`@customafk/react-toolkit/utils`),i=require(`radix-ui`);function a({className:e,defaultValue:a,value:o,min:s=0,max:c=100,...l}){let u=(0,t.useMemo)(()=>Array.isArray(o)?o:Array.isArray(a)?a:[s,c],[o,a,s,c]);return(0,n.jsxs)(i.Slider.Root,{"data-slot":`slider`,defaultValue:a,value:o,min:s,max:c,className:(0,r.cn)(`relative flex w-full touch-none items-center select-none`,`data-[disabled]:opacity-50`,`data-[orientation=vertical]:h-full`,`data-[orientation=vertical]:min-h-44`,`data-[orientation=vertical]:w-auto`,`data-[orientation=vertical]:flex-col`,e),...l,children:[(0,n.jsx)(i.Slider.Track,{"data-slot":`slider-track`,className:(0,r.cn)(`bg-muted relative grow overflow-hidden rounded-full data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5`),children:(0,n.jsx)(i.Slider.Range,{"data-slot":`slider-range`,className:(0,r.cn)(`bg-primary absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full`)})}),Array.from({length:u.length},(e,t)=>(0,n.jsx)(i.Slider.Thumb,{"data-slot":`slider-thumb`,className:`border-primary bg-background ring-ring/50 block size-4 shrink-0 rounded-full border shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50`},t))]})}exports.Slider=a;
2
2
  //# sourceMappingURL=slider.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"slider.cjs","names":["SliderPrimitive"],"sources":["../../packages/components/ui/slider.tsx"],"sourcesContent":["'use client';\nimport { useMemo } from 'react';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Slider as SliderPrimitive } from 'radix-ui';\n\nfunction Slider({ className, defaultValue, value, min = 0, max = 100, ...props }: React.ComponentProps<typeof SliderPrimitive.Root>) {\n const _values = useMemo(() => (Array.isArray(value) ? value : Array.isArray(defaultValue) ? defaultValue : [min, max]), [value, defaultValue, min, max]);\n\n return (\n <SliderPrimitive.Root\n data-slot=\"slider\"\n defaultValue={defaultValue}\n value={value}\n min={min}\n max={max}\n className={cn(\n 'relative flex w-full touch-none items-center select-none',\n 'data-[disabled]:opacity-50',\n 'data-[orientation=vertical]:h-full',\n 'data-[orientation=vertical]:min-h-44',\n 'data-[orientation=vertical]:w-auto',\n 'data-[orientation=vertical]:flex-col',\n className\n )}\n {...props}\n >\n <SliderPrimitive.Track\n data-slot=\"slider-track\"\n className={cn(\n 'bg-muted relative grow overflow-hidden rounded-full data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5'\n )}\n >\n <SliderPrimitive.Range\n data-slot=\"slider-range\"\n className={cn('bg-primary absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full')}\n />\n </SliderPrimitive.Track>\n {Array.from({ length: _values.length }, (_, index) => (\n <SliderPrimitive.Thumb\n data-slot=\"slider-thumb\"\n key={index}\n className=\"border-primary bg-background ring-ring/50 block size-4 shrink-0 rounded-full border shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50\"\n />\n ))}\n </SliderPrimitive.Root>\n );\n}\n\nexport { Slider };\n"],"mappings":"8KAMA,SAAS,EAAO,CAAE,YAAW,eAAc,QAAO,MAAM,EAAG,MAAM,IAAK,GAAG,GAA4D,CACnI,IAAM,GAAA,EAAA,EAAA,aAAyB,MAAM,QAAQ,EAAM,CAAG,EAAQ,MAAM,QAAQ,EAAa,CAAG,EAAe,CAAC,EAAK,EAAI,CAAG,CAAC,EAAO,EAAc,EAAK,EAAI,CAAC,CAExJ,OACE,EAAA,EAAA,MAACA,EAAAA,OAAgB,KAAA,CACf,YAAU,SACI,eACP,QACF,MACA,MACL,WAAA,EAAA,EAAA,IACE,2DACA,6BACA,qCACA,uCACA,qCACA,uCACA,EACD,CACD,GAAI,aAEJ,EAAA,EAAA,KAACA,EAAAA,OAAgB,MAAA,CACf,YAAU,eACV,WAAA,EAAA,EAAA,IACE,oMACD,WAED,EAAA,EAAA,KAACA,EAAAA,OAAgB,MAAA,CACf,YAAU,eACV,WAAA,EAAA,EAAA,IAAc,8FAA8F,EAC5G,EACoB,CACvB,MAAM,KAAK,CAAE,OAAQ,EAAQ,OAAQ,EAAG,EAAG,KAC1C,EAAA,EAAA,KAACA,EAAAA,OAAgB,MAAA,CACf,YAAU,eAEV,UAAU,+OADL,EAEL,CACF,CAAA,EACmB"}
1
+ {"version":3,"file":"slider.cjs","names":["SliderPrimitive"],"sources":["../../packages/components/ui/slider.tsx"],"sourcesContent":["'use client';\nimport { useMemo } from 'react';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Slider as SliderPrimitive } from 'radix-ui';\n\n/**\n * An accessible range slider supporting single-thumb, multi-thumb, and vertical orientations.\n *\n * @example\n * ```tsx\n * import { Slider } from '@customafk/lunas-ui/ui/slider';\n *\n * <Slider defaultValue={[40]} min={0} max={100} step={5} />\n * ```\n */\nfunction Slider({ className, defaultValue, value, min = 0, max = 100, ...props }: React.ComponentProps<typeof SliderPrimitive.Root>) {\n const _values = useMemo(() => (Array.isArray(value) ? value : Array.isArray(defaultValue) ? defaultValue : [min, max]), [value, defaultValue, min, max]);\n\n return (\n <SliderPrimitive.Root\n data-slot=\"slider\"\n defaultValue={defaultValue}\n value={value}\n min={min}\n max={max}\n className={cn(\n 'relative flex w-full touch-none items-center select-none',\n 'data-[disabled]:opacity-50',\n 'data-[orientation=vertical]:h-full',\n 'data-[orientation=vertical]:min-h-44',\n 'data-[orientation=vertical]:w-auto',\n 'data-[orientation=vertical]:flex-col',\n className\n )}\n {...props}\n >\n <SliderPrimitive.Track\n data-slot=\"slider-track\"\n className={cn(\n 'bg-muted relative grow overflow-hidden rounded-full data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5'\n )}\n >\n <SliderPrimitive.Range\n data-slot=\"slider-range\"\n className={cn('bg-primary absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full')}\n />\n </SliderPrimitive.Track>\n {Array.from({ length: _values.length }, (_, index) => (\n <SliderPrimitive.Thumb\n data-slot=\"slider-thumb\"\n key={index}\n className=\"border-primary bg-background ring-ring/50 block size-4 shrink-0 rounded-full border shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50\"\n />\n ))}\n </SliderPrimitive.Root>\n );\n}\n\nexport { Slider };\n"],"mappings":"8KAgBA,SAAS,EAAO,CAAE,YAAW,eAAc,QAAO,MAAM,EAAG,MAAM,IAAK,GAAG,GAA4D,CACnI,IAAM,GAAA,EAAA,EAAA,aAAyB,MAAM,QAAQ,EAAM,CAAG,EAAQ,MAAM,QAAQ,EAAa,CAAG,EAAe,CAAC,EAAK,EAAI,CAAG,CAAC,EAAO,EAAc,EAAK,EAAI,CAAC,CAExJ,OACE,EAAA,EAAA,MAACA,EAAAA,OAAgB,KAAA,CACf,YAAU,SACI,eACP,QACF,MACA,MACL,WAAA,EAAA,EAAA,IACE,2DACA,6BACA,qCACA,uCACA,qCACA,uCACA,EACD,CACD,GAAI,aAEJ,EAAA,EAAA,KAACA,EAAAA,OAAgB,MAAA,CACf,YAAU,eACV,WAAA,EAAA,EAAA,IACE,oMACD,WAED,EAAA,EAAA,KAACA,EAAAA,OAAgB,MAAA,CACf,YAAU,eACV,WAAA,EAAA,EAAA,IAAc,8FAA8F,EAC5G,EACoB,CACvB,MAAM,KAAK,CAAE,OAAQ,EAAQ,OAAQ,EAAG,EAAG,KAC1C,EAAA,EAAA,KAACA,EAAAA,OAAgB,MAAA,CACf,YAAU,eAEV,UAAU,+OADL,EAEL,CACF,CAAA,EACmB"}
@@ -1,7 +1,18 @@
1
- import * as react_jsx_runtime232 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime243 from "react/jsx-runtime";
2
2
  import { Slider as Slider$1 } from "radix-ui";
3
3
 
4
4
  //#region packages/components/ui/slider.d.ts
5
+
6
+ /**
7
+ * An accessible range slider supporting single-thumb, multi-thumb, and vertical orientations.
8
+ *
9
+ * @example
10
+ * ```tsx
11
+ * import { Slider } from '@customafk/lunas-ui/ui/slider';
12
+ *
13
+ * <Slider defaultValue={[40]} min={0} max={100} step={5} />
14
+ * ```
15
+ */
5
16
  declare function Slider({
6
17
  className,
7
18
  defaultValue,
@@ -9,7 +20,7 @@ declare function Slider({
9
20
  min,
10
21
  max,
11
22
  ...props
12
- }: React.ComponentProps<typeof Slider$1.Root>): react_jsx_runtime232.JSX.Element;
23
+ }: React.ComponentProps<typeof Slider$1.Root>): react_jsx_runtime243.JSX.Element;
13
24
  //#endregion
14
25
  export { Slider };
15
26
  //# sourceMappingURL=slider.d.cts.map
@@ -1,7 +1,18 @@
1
- import * as react_jsx_runtime198 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime197 from "react/jsx-runtime";
2
2
  import { Slider as Slider$1 } from "radix-ui";
3
3
 
4
4
  //#region packages/components/ui/slider.d.ts
5
+
6
+ /**
7
+ * An accessible range slider supporting single-thumb, multi-thumb, and vertical orientations.
8
+ *
9
+ * @example
10
+ * ```tsx
11
+ * import { Slider } from '@customafk/lunas-ui/ui/slider';
12
+ *
13
+ * <Slider defaultValue={[40]} min={0} max={100} step={5} />
14
+ * ```
15
+ */
5
16
  declare function Slider({
6
17
  className,
7
18
  defaultValue,
@@ -9,7 +20,7 @@ declare function Slider({
9
20
  min,
10
21
  max,
11
22
  ...props
12
- }: React.ComponentProps<typeof Slider$1.Root>): react_jsx_runtime198.JSX.Element;
23
+ }: React.ComponentProps<typeof Slider$1.Root>): react_jsx_runtime197.JSX.Element;
13
24
  //#endregion
14
25
  export { Slider };
15
26
  //# sourceMappingURL=slider.d.mts.map
@@ -1,2 +1,2 @@
1
- "use client";import{cn as e}from"@customafk/react-toolkit/utils";import{useMemo as t}from"react";import{jsx as n,jsxs as r}from"react/jsx-runtime";import{Slider as i}from"radix-ui";function a({className:a,defaultValue:o,value:s,min:c=0,max:l=100,...u}){let d=t(()=>Array.isArray(s)?s:Array.isArray(o)?o:[c,l],[s,o,c,l]);return r(i.Root,{"data-slot":`slider`,defaultValue:o,value:s,min:c,max:l,className:e(`relative flex w-full touch-none items-center select-none`,`data-[disabled]:opacity-50`,`data-[orientation=vertical]:h-full`,`data-[orientation=vertical]:min-h-44`,`data-[orientation=vertical]:w-auto`,`data-[orientation=vertical]:flex-col`,a),...u,children:[n(i.Track,{"data-slot":`slider-track`,className:e(`bg-muted relative grow overflow-hidden rounded-full data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5`),children:n(i.Range,{"data-slot":`slider-range`,className:e(`bg-primary absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full`)})}),Array.from({length:d.length},(e,t)=>n(i.Thumb,{"data-slot":`slider-thumb`,className:`border-primary bg-background ring-ring/50 block size-4 shrink-0 rounded-full border shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50`},t))]})}export{a as Slider};
1
+ "use client";import{useMemo as e}from"react";import{jsx as t,jsxs as n}from"react/jsx-runtime";import{cn as r}from"@customafk/react-toolkit/utils";import{Slider as i}from"radix-ui";function a({className:a,defaultValue:o,value:s,min:c=0,max:l=100,...u}){let d=e(()=>Array.isArray(s)?s:Array.isArray(o)?o:[c,l],[s,o,c,l]);return n(i.Root,{"data-slot":`slider`,defaultValue:o,value:s,min:c,max:l,className:r(`relative flex w-full touch-none items-center select-none`,`data-[disabled]:opacity-50`,`data-[orientation=vertical]:h-full`,`data-[orientation=vertical]:min-h-44`,`data-[orientation=vertical]:w-auto`,`data-[orientation=vertical]:flex-col`,a),...u,children:[t(i.Track,{"data-slot":`slider-track`,className:r(`bg-muted relative grow overflow-hidden rounded-full data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5`),children:t(i.Range,{"data-slot":`slider-range`,className:r(`bg-primary absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full`)})}),Array.from({length:d.length},(e,n)=>t(i.Thumb,{"data-slot":`slider-thumb`,className:`border-primary bg-background ring-ring/50 block size-4 shrink-0 rounded-full border shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50`},n))]})}export{a as Slider};
2
2
  //# sourceMappingURL=slider.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"slider.mjs","names":["SliderPrimitive"],"sources":["../../packages/components/ui/slider.tsx"],"sourcesContent":["'use client';\nimport { useMemo } from 'react';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Slider as SliderPrimitive } from 'radix-ui';\n\nfunction Slider({ className, defaultValue, value, min = 0, max = 100, ...props }: React.ComponentProps<typeof SliderPrimitive.Root>) {\n const _values = useMemo(() => (Array.isArray(value) ? value : Array.isArray(defaultValue) ? defaultValue : [min, max]), [value, defaultValue, min, max]);\n\n return (\n <SliderPrimitive.Root\n data-slot=\"slider\"\n defaultValue={defaultValue}\n value={value}\n min={min}\n max={max}\n className={cn(\n 'relative flex w-full touch-none items-center select-none',\n 'data-[disabled]:opacity-50',\n 'data-[orientation=vertical]:h-full',\n 'data-[orientation=vertical]:min-h-44',\n 'data-[orientation=vertical]:w-auto',\n 'data-[orientation=vertical]:flex-col',\n className\n )}\n {...props}\n >\n <SliderPrimitive.Track\n data-slot=\"slider-track\"\n className={cn(\n 'bg-muted relative grow overflow-hidden rounded-full data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5'\n )}\n >\n <SliderPrimitive.Range\n data-slot=\"slider-range\"\n className={cn('bg-primary absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full')}\n />\n </SliderPrimitive.Track>\n {Array.from({ length: _values.length }, (_, index) => (\n <SliderPrimitive.Thumb\n data-slot=\"slider-thumb\"\n key={index}\n className=\"border-primary bg-background ring-ring/50 block size-4 shrink-0 rounded-full border shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50\"\n />\n ))}\n </SliderPrimitive.Root>\n );\n}\n\nexport { Slider };\n"],"mappings":"qLAMA,SAAS,EAAO,CAAE,YAAW,eAAc,QAAO,MAAM,EAAG,MAAM,IAAK,GAAG,GAA4D,CACnI,IAAM,EAAU,MAAe,MAAM,QAAQ,EAAM,CAAG,EAAQ,MAAM,QAAQ,EAAa,CAAG,EAAe,CAAC,EAAK,EAAI,CAAG,CAAC,EAAO,EAAc,EAAK,EAAI,CAAC,CAExJ,OACE,EAACA,EAAgB,KAAA,CACf,YAAU,SACI,eACP,QACF,MACA,MACL,UAAW,EACT,2DACA,6BACA,qCACA,uCACA,qCACA,uCACA,EACD,CACD,GAAI,YAEJ,EAACA,EAAgB,MAAA,CACf,YAAU,eACV,UAAW,EACT,oMACD,UAED,EAACA,EAAgB,MAAA,CACf,YAAU,eACV,UAAW,EAAG,8FAA8F,EAC5G,EACoB,CACvB,MAAM,KAAK,CAAE,OAAQ,EAAQ,OAAQ,EAAG,EAAG,IAC1C,EAACA,EAAgB,MAAA,CACf,YAAU,eAEV,UAAU,+OADL,EAEL,CACF,CAAA,EACmB"}
1
+ {"version":3,"file":"slider.mjs","names":["SliderPrimitive"],"sources":["../../packages/components/ui/slider.tsx"],"sourcesContent":["'use client';\nimport { useMemo } from 'react';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Slider as SliderPrimitive } from 'radix-ui';\n\n/**\n * An accessible range slider supporting single-thumb, multi-thumb, and vertical orientations.\n *\n * @example\n * ```tsx\n * import { Slider } from '@customafk/lunas-ui/ui/slider';\n *\n * <Slider defaultValue={[40]} min={0} max={100} step={5} />\n * ```\n */\nfunction Slider({ className, defaultValue, value, min = 0, max = 100, ...props }: React.ComponentProps<typeof SliderPrimitive.Root>) {\n const _values = useMemo(() => (Array.isArray(value) ? value : Array.isArray(defaultValue) ? defaultValue : [min, max]), [value, defaultValue, min, max]);\n\n return (\n <SliderPrimitive.Root\n data-slot=\"slider\"\n defaultValue={defaultValue}\n value={value}\n min={min}\n max={max}\n className={cn(\n 'relative flex w-full touch-none items-center select-none',\n 'data-[disabled]:opacity-50',\n 'data-[orientation=vertical]:h-full',\n 'data-[orientation=vertical]:min-h-44',\n 'data-[orientation=vertical]:w-auto',\n 'data-[orientation=vertical]:flex-col',\n className\n )}\n {...props}\n >\n <SliderPrimitive.Track\n data-slot=\"slider-track\"\n className={cn(\n 'bg-muted relative grow overflow-hidden rounded-full data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5'\n )}\n >\n <SliderPrimitive.Range\n data-slot=\"slider-range\"\n className={cn('bg-primary absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full')}\n />\n </SliderPrimitive.Track>\n {Array.from({ length: _values.length }, (_, index) => (\n <SliderPrimitive.Thumb\n data-slot=\"slider-thumb\"\n key={index}\n className=\"border-primary bg-background ring-ring/50 block size-4 shrink-0 rounded-full border shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50\"\n />\n ))}\n </SliderPrimitive.Root>\n );\n}\n\nexport { Slider };\n"],"mappings":"qLAgBA,SAAS,EAAO,CAAE,YAAW,eAAc,QAAO,MAAM,EAAG,MAAM,IAAK,GAAG,GAA4D,CACnI,IAAM,EAAU,MAAe,MAAM,QAAQ,EAAM,CAAG,EAAQ,MAAM,QAAQ,EAAa,CAAG,EAAe,CAAC,EAAK,EAAI,CAAG,CAAC,EAAO,EAAc,EAAK,EAAI,CAAC,CAExJ,OACE,EAACA,EAAgB,KAAA,CACf,YAAU,SACI,eACP,QACF,MACA,MACL,UAAW,EACT,2DACA,6BACA,qCACA,uCACA,qCACA,uCACA,EACD,CACD,GAAI,YAEJ,EAACA,EAAgB,MAAA,CACf,YAAU,eACV,UAAW,EACT,oMACD,UAED,EAACA,EAAgB,MAAA,CACf,YAAU,eACV,UAAW,EAAG,8FAA8F,EAC5G,EACoB,CACvB,MAAM,KAAK,CAAE,OAAQ,EAAQ,OAAQ,EAAG,EAAG,IAC1C,EAACA,EAAgB,MAAA,CACf,YAAU,eAEV,UAAU,+OADL,EAEL,CACF,CAAA,EACmB"}
@@ -1,2 +1,2 @@
1
- "use client";Object.defineProperty(exports,`__esModule`,{value:!0});const e=require(`../chunk-Bmb41Sf3.cjs`);let t=require(`react/jsx-runtime`),n=require(`lucide-react`),r=require(`sonner`),i=require(`next-themes`);const a=()=>{let{theme:e=`system`}=(0,i.useTheme)();return(0,t.jsx)(r.Toaster,{richColors:!0,theme:e,expand:!1,visibleToasts:5,closeButton:!0,position:`bottom-right`,swipeDirections:[`left`,`right`],icons:{loading:(0,t.jsx)(n.LoaderIcon,{size:16,className:`animate-spin`})},toastOptions:{classNames:{toast:`!text-white !border-none rounded-lg cursor-grab active:cursor-grabbing select-none z-99999`,icon:`!size-6`,title:`!text-sm !font-bold`,description:`!text-xs !font-semibold !text-white/80`,success:`!bg-success`,info:`!bg-blue-700`,loading:`!bg-slate-500`,warning:`!bg-warning`,error:`!bg-danger`,closeButton:`!text-gray-400 hover:!text-gray-500 !bg-neutral-50 hover:!bg-gray-100 !border-none !shadow`}},className:`toaster group pointer-events-auto !z-999999`})};var o=a;exports.Toaster=a,exports.default=o,exports.toast=r.toast;
1
+ "use client";Object.defineProperty(exports,`__esModule`,{value:!0});const e=require(`../chunk-Bmb41Sf3.cjs`);let t=require(`lucide-react`),n=require(`react/jsx-runtime`),r=require(`sonner`),i=require(`next-themes`);const a=()=>{let{theme:e=`system`}=(0,i.useTheme)();return(0,n.jsx)(r.Toaster,{richColors:!0,theme:e,expand:!1,visibleToasts:5,closeButton:!0,position:`bottom-right`,swipeDirections:[`left`,`right`],icons:{loading:(0,n.jsx)(t.LoaderIcon,{size:16,className:`animate-spin`})},toastOptions:{classNames:{toast:`!text-white !border-none rounded-lg cursor-grab active:cursor-grabbing select-none z-99999`,icon:`!size-6`,title:`!text-sm !font-bold`,description:`!text-xs !font-semibold !text-white/80`,success:`!bg-success`,info:`!bg-blue-700`,loading:`!bg-slate-500`,warning:`!bg-warning`,error:`!bg-danger`,closeButton:`!text-gray-400 hover:!text-gray-500 !bg-neutral-50 hover:!bg-gray-100 !border-none !shadow`}},className:`toaster group pointer-events-auto !z-999999`})};var o=a;exports.Toaster=a,exports.default=o,exports.toast=r.toast;
2
2
  //# sourceMappingURL=sonner.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"sonner.cjs","names":["Sonner","LoaderIcon"],"sources":["../../packages/components/ui/sonner.tsx"],"sourcesContent":["'use client';\nimport { LoaderIcon } from 'lucide-react';\nimport { useTheme } from 'next-themes';\nimport { Toaster as Sonner, toast, type ToasterProps } from 'sonner';\n\nconst Toaster = () => {\n const { theme = 'system' } = useTheme();\n\n return (\n <Sonner\n richColors\n theme={theme as ToasterProps['theme']}\n expand={false}\n visibleToasts={5}\n closeButton={true}\n position=\"bottom-right\"\n swipeDirections={['left', 'right']}\n icons={{\n loading: <LoaderIcon size={16} className=\"animate-spin\" />,\n }}\n toastOptions={{\n classNames: {\n toast: '!text-white !border-none rounded-lg cursor-grab active:cursor-grabbing select-none z-99999',\n icon: '!size-6',\n title: '!text-sm !font-bold',\n description: '!text-xs !font-semibold !text-white/80',\n success: '!bg-success',\n info: '!bg-blue-700',\n loading: '!bg-slate-500',\n warning: '!bg-warning',\n error: '!bg-danger',\n closeButton: '!text-gray-400 hover:!text-gray-500 !bg-neutral-50 hover:!bg-gray-100 !border-none !shadow',\n },\n }}\n className=\"toaster group pointer-events-auto !z-999999\"\n />\n );\n};\n\nexport { Toaster, toast };\nexport default Toaster;\n"],"mappings":"uNAKA,MAAM,MAAgB,CACpB,GAAM,CAAE,QAAQ,WAAA,EAAA,EAAA,WAAuB,CAEvC,OACE,EAAA,EAAA,KAACA,EAAAA,QAAAA,CACC,WAAA,GACO,QACP,OAAQ,GACR,cAAe,EACf,YAAa,GACb,SAAS,eACT,gBAAiB,CAAC,OAAQ,QAAQ,CAClC,MAAO,CACL,SAAS,EAAA,EAAA,KAACC,EAAAA,WAAAA,CAAW,KAAM,GAAI,UAAU,gBAAiB,CAC3D,CACD,aAAc,CACZ,WAAY,CACV,MAAO,6FACP,KAAM,UACN,MAAO,sBACP,YAAa,yCACb,QAAS,cACT,KAAM,eACN,QAAS,gBACT,QAAS,cACT,MAAO,aACP,YAAa,6FACd,CACF,CACD,UAAU,+CACV,EAKN,IAAA,EAAe"}
1
+ {"version":3,"file":"sonner.cjs","names":["Sonner","LoaderIcon"],"sources":["../../packages/components/ui/sonner.tsx"],"sourcesContent":["'use client';\nimport { LoaderIcon } from 'lucide-react';\nimport { useTheme } from 'next-themes';\nimport { Toaster as Sonner, toast, type ToasterProps } from 'sonner';\n\n/**\n * Global toast notification container — mount once near the root of your app; use the exported `toast` helper to trigger toasts from anywhere.\n *\n * @example\n * ```tsx\n * import { Toaster, toast } from '@customafk/lunas-ui/ui/sonner';\n *\n * // In your app root:\n * <Toaster />\n *\n * // Anywhere in your code:\n * toast.success('Saved!');\n * toast.error('Something went wrong.');\n * ```\n */\nconst Toaster = () => {\n const { theme = 'system' } = useTheme();\n\n return (\n <Sonner\n richColors\n theme={theme as ToasterProps['theme']}\n expand={false}\n visibleToasts={5}\n closeButton={true}\n position=\"bottom-right\"\n swipeDirections={['left', 'right']}\n icons={{\n loading: <LoaderIcon size={16} className=\"animate-spin\" />,\n }}\n toastOptions={{\n classNames: {\n toast: '!text-white !border-none rounded-lg cursor-grab active:cursor-grabbing select-none z-99999',\n icon: '!size-6',\n title: '!text-sm !font-bold',\n description: '!text-xs !font-semibold !text-white/80',\n success: '!bg-success',\n info: '!bg-blue-700',\n loading: '!bg-slate-500',\n warning: '!bg-warning',\n error: '!bg-danger',\n closeButton: '!text-gray-400 hover:!text-gray-500 !bg-neutral-50 hover:!bg-gray-100 !border-none !shadow',\n },\n }}\n className=\"toaster group pointer-events-auto !z-999999\"\n />\n );\n};\n\nexport { Toaster, toast };\nexport default Toaster;\n"],"mappings":"uNAoBA,MAAM,MAAgB,CACpB,GAAM,CAAE,QAAQ,WAAA,EAAA,EAAA,WAAuB,CAEvC,OACE,EAAA,EAAA,KAACA,EAAAA,QAAAA,CACC,WAAA,GACO,QACP,OAAQ,GACR,cAAe,EACf,YAAa,GACb,SAAS,eACT,gBAAiB,CAAC,OAAQ,QAAQ,CAClC,MAAO,CACL,SAAS,EAAA,EAAA,KAACC,EAAAA,WAAAA,CAAW,KAAM,GAAI,UAAU,gBAAiB,CAC3D,CACD,aAAc,CACZ,WAAY,CACV,MAAO,6FACP,KAAM,UACN,MAAO,sBACP,YAAa,yCACb,QAAS,cACT,KAAM,eACN,QAAS,gBACT,QAAS,cACT,MAAO,aACP,YAAa,6FACd,CACF,CACD,UAAU,+CACV,EAKN,IAAA,EAAe"}
@@ -1,8 +1,24 @@
1
- import * as react_jsx_runtime234 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime240 from "react/jsx-runtime";
2
2
  import { toast } from "sonner";
3
3
 
4
4
  //#region packages/components/ui/sonner.d.ts
5
- declare const Toaster: () => react_jsx_runtime234.JSX.Element;
5
+
6
+ /**
7
+ * Global toast notification container — mount once near the root of your app; use the exported `toast` helper to trigger toasts from anywhere.
8
+ *
9
+ * @example
10
+ * ```tsx
11
+ * import { Toaster, toast } from '@customafk/lunas-ui/ui/sonner';
12
+ *
13
+ * // In your app root:
14
+ * <Toaster />
15
+ *
16
+ * // Anywhere in your code:
17
+ * toast.success('Saved!');
18
+ * toast.error('Something went wrong.');
19
+ * ```
20
+ */
21
+ declare const Toaster: () => react_jsx_runtime240.JSX.Element;
6
22
  //#endregion
7
23
  export { Toaster, Toaster as default, toast };
8
24
  //# sourceMappingURL=sonner.d.cts.map
@@ -1,8 +1,24 @@
1
- import * as react_jsx_runtime242 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime60 from "react/jsx-runtime";
2
2
  import { toast } from "sonner";
3
3
 
4
4
  //#region packages/components/ui/sonner.d.ts
5
- declare const Toaster: () => react_jsx_runtime242.JSX.Element;
5
+
6
+ /**
7
+ * Global toast notification container — mount once near the root of your app; use the exported `toast` helper to trigger toasts from anywhere.
8
+ *
9
+ * @example
10
+ * ```tsx
11
+ * import { Toaster, toast } from '@customafk/lunas-ui/ui/sonner';
12
+ *
13
+ * // In your app root:
14
+ * <Toaster />
15
+ *
16
+ * // Anywhere in your code:
17
+ * toast.success('Saved!');
18
+ * toast.error('Something went wrong.');
19
+ * ```
20
+ */
21
+ declare const Toaster: () => react_jsx_runtime60.JSX.Element;
6
22
  //#endregion
7
23
  export { Toaster, Toaster as default, toast };
8
24
  //# sourceMappingURL=sonner.d.mts.map
@@ -1,2 +1,2 @@
1
- "use client";import{jsx as e}from"react/jsx-runtime";import{LoaderIcon as t}from"lucide-react";import{Toaster as n,toast as r}from"sonner";import{useTheme as i}from"next-themes";const a=()=>{let{theme:r=`system`}=i();return e(n,{richColors:!0,theme:r,expand:!1,visibleToasts:5,closeButton:!0,position:`bottom-right`,swipeDirections:[`left`,`right`],icons:{loading:e(t,{size:16,className:`animate-spin`})},toastOptions:{classNames:{toast:`!text-white !border-none rounded-lg cursor-grab active:cursor-grabbing select-none z-99999`,icon:`!size-6`,title:`!text-sm !font-bold`,description:`!text-xs !font-semibold !text-white/80`,success:`!bg-success`,info:`!bg-blue-700`,loading:`!bg-slate-500`,warning:`!bg-warning`,error:`!bg-danger`,closeButton:`!text-gray-400 hover:!text-gray-500 !bg-neutral-50 hover:!bg-gray-100 !border-none !shadow`}},className:`toaster group pointer-events-auto !z-999999`})};var o=a;export{a as Toaster,o as default,r as toast};
1
+ "use client";import{LoaderIcon as e}from"lucide-react";import{jsx as t}from"react/jsx-runtime";import{Toaster as n,toast as r}from"sonner";import{useTheme as i}from"next-themes";const a=()=>{let{theme:r=`system`}=i();return t(n,{richColors:!0,theme:r,expand:!1,visibleToasts:5,closeButton:!0,position:`bottom-right`,swipeDirections:[`left`,`right`],icons:{loading:t(e,{size:16,className:`animate-spin`})},toastOptions:{classNames:{toast:`!text-white !border-none rounded-lg cursor-grab active:cursor-grabbing select-none z-99999`,icon:`!size-6`,title:`!text-sm !font-bold`,description:`!text-xs !font-semibold !text-white/80`,success:`!bg-success`,info:`!bg-blue-700`,loading:`!bg-slate-500`,warning:`!bg-warning`,error:`!bg-danger`,closeButton:`!text-gray-400 hover:!text-gray-500 !bg-neutral-50 hover:!bg-gray-100 !border-none !shadow`}},className:`toaster group pointer-events-auto !z-999999`})};var o=a;export{a as Toaster,o as default,r as toast};
2
2
  //# sourceMappingURL=sonner.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"sonner.mjs","names":["Sonner"],"sources":["../../packages/components/ui/sonner.tsx"],"sourcesContent":["'use client';\nimport { LoaderIcon } from 'lucide-react';\nimport { useTheme } from 'next-themes';\nimport { Toaster as Sonner, toast, type ToasterProps } from 'sonner';\n\nconst Toaster = () => {\n const { theme = 'system' } = useTheme();\n\n return (\n <Sonner\n richColors\n theme={theme as ToasterProps['theme']}\n expand={false}\n visibleToasts={5}\n closeButton={true}\n position=\"bottom-right\"\n swipeDirections={['left', 'right']}\n icons={{\n loading: <LoaderIcon size={16} className=\"animate-spin\" />,\n }}\n toastOptions={{\n classNames: {\n toast: '!text-white !border-none rounded-lg cursor-grab active:cursor-grabbing select-none z-99999',\n icon: '!size-6',\n title: '!text-sm !font-bold',\n description: '!text-xs !font-semibold !text-white/80',\n success: '!bg-success',\n info: '!bg-blue-700',\n loading: '!bg-slate-500',\n warning: '!bg-warning',\n error: '!bg-danger',\n closeButton: '!text-gray-400 hover:!text-gray-500 !bg-neutral-50 hover:!bg-gray-100 !border-none !shadow',\n },\n }}\n className=\"toaster group pointer-events-auto !z-999999\"\n />\n );\n};\n\nexport { Toaster, toast };\nexport default Toaster;\n"],"mappings":"kLAKA,MAAM,MAAgB,CACpB,GAAM,CAAE,QAAQ,UAAa,GAAU,CAEvC,OACE,EAACA,EAAAA,CACC,WAAA,GACO,QACP,OAAQ,GACR,cAAe,EACf,YAAa,GACb,SAAS,eACT,gBAAiB,CAAC,OAAQ,QAAQ,CAClC,MAAO,CACL,QAAS,EAAC,EAAA,CAAW,KAAM,GAAI,UAAU,gBAAiB,CAC3D,CACD,aAAc,CACZ,WAAY,CACV,MAAO,6FACP,KAAM,UACN,MAAO,sBACP,YAAa,yCACb,QAAS,cACT,KAAM,eACN,QAAS,gBACT,QAAS,cACT,MAAO,aACP,YAAa,6FACd,CACF,CACD,UAAU,+CACV,EAKN,IAAA,EAAe"}
1
+ {"version":3,"file":"sonner.mjs","names":["Sonner"],"sources":["../../packages/components/ui/sonner.tsx"],"sourcesContent":["'use client';\nimport { LoaderIcon } from 'lucide-react';\nimport { useTheme } from 'next-themes';\nimport { Toaster as Sonner, toast, type ToasterProps } from 'sonner';\n\n/**\n * Global toast notification container — mount once near the root of your app; use the exported `toast` helper to trigger toasts from anywhere.\n *\n * @example\n * ```tsx\n * import { Toaster, toast } from '@customafk/lunas-ui/ui/sonner';\n *\n * // In your app root:\n * <Toaster />\n *\n * // Anywhere in your code:\n * toast.success('Saved!');\n * toast.error('Something went wrong.');\n * ```\n */\nconst Toaster = () => {\n const { theme = 'system' } = useTheme();\n\n return (\n <Sonner\n richColors\n theme={theme as ToasterProps['theme']}\n expand={false}\n visibleToasts={5}\n closeButton={true}\n position=\"bottom-right\"\n swipeDirections={['left', 'right']}\n icons={{\n loading: <LoaderIcon size={16} className=\"animate-spin\" />,\n }}\n toastOptions={{\n classNames: {\n toast: '!text-white !border-none rounded-lg cursor-grab active:cursor-grabbing select-none z-99999',\n icon: '!size-6',\n title: '!text-sm !font-bold',\n description: '!text-xs !font-semibold !text-white/80',\n success: '!bg-success',\n info: '!bg-blue-700',\n loading: '!bg-slate-500',\n warning: '!bg-warning',\n error: '!bg-danger',\n closeButton: '!text-gray-400 hover:!text-gray-500 !bg-neutral-50 hover:!bg-gray-100 !border-none !shadow',\n },\n }}\n className=\"toaster group pointer-events-auto !z-999999\"\n />\n );\n};\n\nexport { Toaster, toast };\nexport default Toaster;\n"],"mappings":"kLAoBA,MAAM,MAAgB,CACpB,GAAM,CAAE,QAAQ,UAAa,GAAU,CAEvC,OACE,EAACA,EAAAA,CACC,WAAA,GACO,QACP,OAAQ,GACR,cAAe,EACf,YAAa,GACb,SAAS,eACT,gBAAiB,CAAC,OAAQ,QAAQ,CAClC,MAAO,CACL,QAAS,EAAC,EAAA,CAAW,KAAM,GAAI,UAAU,gBAAiB,CAC3D,CACD,aAAc,CACZ,WAAY,CACV,MAAO,6FACP,KAAM,UACN,MAAO,sBACP,YAAa,yCACb,QAAS,cACT,KAAM,eACN,QAAS,gBACT,QAAS,cACT,MAAO,aACP,YAAa,6FACd,CACF,CACD,UAAU,+CACV,EAKN,IAAA,EAAe"}
@@ -1 +1 @@
1
- const e=require(`../spinner-Chm_2fLr.cjs`);exports.Spinner=e.t;
1
+ const e=require(`../spinner-MKXqwF9G.cjs`);exports.Spinner=e.t;
@@ -1,10 +1,25 @@
1
- import * as react_jsx_runtime261 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime242 from "react/jsx-runtime";
2
2
 
3
3
  //#region packages/components/ui/spinner.d.ts
4
+
5
+ /**
6
+ * Spinning loading indicator rendered as an animated `Loader2Icon` SVG with an accessible `role="status"` and `aria-label`.
7
+ *
8
+ * @example
9
+ * ```tsx
10
+ * import { Spinner } from '@customafk/lunas-ui/ui/spinner';
11
+ *
12
+ * <Spinner className="size-6 text-primary" />
13
+ *
14
+ * <Button disabled>
15
+ * <Spinner /> Saving…
16
+ * </Button>
17
+ * ```
18
+ */
4
19
  declare function Spinner({
5
20
  className,
6
21
  ...props
7
- }: React.ComponentProps<'svg'>): react_jsx_runtime261.JSX.Element;
22
+ }: React.ComponentProps<'svg'>): react_jsx_runtime242.JSX.Element;
8
23
  //#endregion
9
24
  export { Spinner };
10
25
  //# sourceMappingURL=spinner.d.cts.map
@@ -1,10 +1,25 @@
1
- import * as react_jsx_runtime199 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime92 from "react/jsx-runtime";
2
2
 
3
3
  //#region packages/components/ui/spinner.d.ts
4
+
5
+ /**
6
+ * Spinning loading indicator rendered as an animated `Loader2Icon` SVG with an accessible `role="status"` and `aria-label`.
7
+ *
8
+ * @example
9
+ * ```tsx
10
+ * import { Spinner } from '@customafk/lunas-ui/ui/spinner';
11
+ *
12
+ * <Spinner className="size-6 text-primary" />
13
+ *
14
+ * <Button disabled>
15
+ * <Spinner /> Saving…
16
+ * </Button>
17
+ * ```
18
+ */
4
19
  declare function Spinner({
5
20
  className,
6
21
  ...props
7
- }: React.ComponentProps<'svg'>): react_jsx_runtime199.JSX.Element;
22
+ }: React.ComponentProps<'svg'>): react_jsx_runtime92.JSX.Element;
8
23
  //#endregion
9
24
  export { Spinner };
10
25
  //# sourceMappingURL=spinner.d.mts.map
@@ -1 +1 @@
1
- import{t as e}from"../spinner-D1v3Bard.mjs";export{e as Spinner};
1
+ import{t as e}from"../spinner-EgMJOaQi.mjs";export{e as Spinner};
@@ -1,2 +1,2 @@
1
- "use client";const e=require(`../chunk-Bmb41Sf3.cjs`);let t=require(`@customafk/react-toolkit/utils`),n=require(`react/jsx-runtime`),r=require(`radix-ui`);function i({className:e,...i}){return(0,n.jsx)(r.Switch.Root,{"data-slot":`switch`,className:(0,t.cn)(`peer`,`w-8 shrink-0 cursor-pointer items-center rounded-full border border-transparent shadow-xs outline-none transition-all`,`inline-flex h-5`,`data-[state=checked]:bg-primary`,`data-[state=unchecked]:bg-border-muted`,`focus-visible:border-primary-strong`,`focus-visible:ring-primary-weak`,`focus-visible:ring-4`,`disabled:cursor-not-allowed`,`disabled:opacity-50`,`data-[state=unchecked]:border-border-weak`,`data-[state=unchecked]:[&_span]:bg-accent-weak`,`data-[state=unchecked]:bg-transparent`,`data-[state=unchecked]:[&_span]:size-4`,`data-[state=unchecked]:[&_span]:translate-x-0.5`,`data-[state=unchecked]:[&_span]:shadow-none`,`data-[state=unchecked]:[&_span]:rtl:-translate-x-0.5`,e),...i,children:(0,n.jsx)(r.Switch.Thumb,{"data-slot":`switch-thumb`,className:(0,t.cn)(`bg-background`,`pointer-events-none block size-4 rounded-full ring-0 transition-transform`,`data-[state=checked]:translate-x-[calc(100%-3px)]`,`data-[state=unchecked]:translate-x-0`)})})}exports.Switch=i;
1
+ "use client";const e=require(`../chunk-Bmb41Sf3.cjs`);let t=require(`react/jsx-runtime`),n=require(`@customafk/react-toolkit/utils`),r=require(`radix-ui`);function i({className:e,...i}){return(0,t.jsx)(r.Switch.Root,{"data-slot":`switch`,className:(0,n.cn)(`peer`,`w-8 shrink-0 cursor-pointer items-center rounded-full border border-transparent shadow-xs outline-none transition-all`,`inline-flex h-5`,`data-[state=checked]:bg-primary`,`data-[state=unchecked]:bg-border-muted`,`focus-visible:border-primary-strong`,`focus-visible:ring-primary-weak`,`focus-visible:ring-4`,`disabled:cursor-not-allowed`,`disabled:opacity-50`,`data-[state=unchecked]:border-border-weak`,`data-[state=unchecked]:[&_span]:bg-accent-weak`,`data-[state=unchecked]:bg-transparent`,`data-[state=unchecked]:[&_span]:size-4`,`data-[state=unchecked]:[&_span]:translate-x-0.5`,`data-[state=unchecked]:[&_span]:shadow-none`,`data-[state=unchecked]:[&_span]:rtl:-translate-x-0.5`,e),...i,children:(0,t.jsx)(r.Switch.Thumb,{"data-slot":`switch-thumb`,className:(0,n.cn)(`bg-background`,`pointer-events-none block size-4 rounded-full ring-0 transition-transform`,`data-[state=checked]:translate-x-[calc(100%-3px)]`,`data-[state=unchecked]:translate-x-0`)})})}exports.Switch=i;
2
2
  //# sourceMappingURL=switch.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"switch.cjs","names":["SwitchPrimitive"],"sources":["../../packages/components/ui/switch.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Switch as SwitchPrimitive } from 'radix-ui';\n\nfunction Switch({ className, ...props }: React.ComponentProps<typeof SwitchPrimitive.Root>) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n className={cn(\n 'peer',\n 'w-8 shrink-0 cursor-pointer items-center rounded-full border border-transparent shadow-xs outline-none transition-all',\n 'inline-flex h-5',\n 'data-[state=checked]:bg-primary',\n 'data-[state=unchecked]:bg-border-muted',\n 'focus-visible:border-primary-strong',\n 'focus-visible:ring-primary-weak',\n 'focus-visible:ring-4',\n 'disabled:cursor-not-allowed',\n 'disabled:opacity-50',\n 'data-[state=unchecked]:border-border-weak',\n 'data-[state=unchecked]:[&_span]:bg-accent-weak',\n 'data-[state=unchecked]:bg-transparent',\n 'data-[state=unchecked]:[&_span]:size-4',\n 'data-[state=unchecked]:[&_span]:translate-x-0.5',\n 'data-[state=unchecked]:[&_span]:shadow-none',\n 'data-[state=unchecked]:[&_span]:rtl:-translate-x-0.5',\n className\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className={cn(\n 'bg-background',\n 'pointer-events-none block size-4 rounded-full ring-0 transition-transform',\n 'data-[state=checked]:translate-x-[calc(100%-3px)]',\n 'data-[state=unchecked]:translate-x-0'\n )}\n />\n </SwitchPrimitive.Root>\n );\n}\n\nexport { Switch };\n"],"mappings":"2JAMA,SAAS,EAAO,CAAE,YAAW,GAAG,GAA4D,CAC1F,OACE,EAAA,EAAA,KAACA,EAAAA,OAAgB,KAAA,CACf,YAAU,SACV,WAAA,EAAA,EAAA,IACE,OACA,wHACA,kBACA,kCACA,yCACA,sCACA,kCACA,uBACA,8BACA,sBACA,4CACA,iDACA,wCACA,yCACA,kDACA,8CACA,uDACA,EACD,CACD,GAAI,YAEJ,EAAA,EAAA,KAACA,EAAAA,OAAgB,MAAA,CACf,YAAU,eACV,WAAA,EAAA,EAAA,IACE,gBACA,4EACA,oDACA,uCACD,EACD,EACmB"}
1
+ {"version":3,"file":"switch.cjs","names":["SwitchPrimitive"],"sources":["../../packages/components/ui/switch.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Switch as SwitchPrimitive } from 'radix-ui';\n\n/**\n * Accessible toggle switch built on Radix UI's Switch primitive, with animated thumb and primary/muted color states.\n *\n * @example\n * ```tsx\n * import { Switch } from '@customafk/lunas-ui/ui/switch';\n * import { Label } from '@customafk/lunas-ui/ui/label';\n *\n * <div className=\"flex items-center gap-2\">\n * <Switch id=\"notifications\" />\n * <Label htmlFor=\"notifications\">Enable notifications</Label>\n * </div>\n * ```\n */\nfunction Switch({ className, ...props }: React.ComponentProps<typeof SwitchPrimitive.Root>) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n className={cn(\n 'peer',\n 'w-8 shrink-0 cursor-pointer items-center rounded-full border border-transparent shadow-xs outline-none transition-all',\n 'inline-flex h-5',\n 'data-[state=checked]:bg-primary',\n 'data-[state=unchecked]:bg-border-muted',\n 'focus-visible:border-primary-strong',\n 'focus-visible:ring-primary-weak',\n 'focus-visible:ring-4',\n 'disabled:cursor-not-allowed',\n 'disabled:opacity-50',\n 'data-[state=unchecked]:border-border-weak',\n 'data-[state=unchecked]:[&_span]:bg-accent-weak',\n 'data-[state=unchecked]:bg-transparent',\n 'data-[state=unchecked]:[&_span]:size-4',\n 'data-[state=unchecked]:[&_span]:translate-x-0.5',\n 'data-[state=unchecked]:[&_span]:shadow-none',\n 'data-[state=unchecked]:[&_span]:rtl:-translate-x-0.5',\n className\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className={cn(\n 'bg-background',\n 'pointer-events-none block size-4 rounded-full ring-0 transition-transform',\n 'data-[state=checked]:translate-x-[calc(100%-3px)]',\n 'data-[state=unchecked]:translate-x-0'\n )}\n />\n </SwitchPrimitive.Root>\n );\n}\n\nexport { Switch };\n"],"mappings":"2JAoBA,SAAS,EAAO,CAAE,YAAW,GAAG,GAA4D,CAC1F,OACE,EAAA,EAAA,KAACA,EAAAA,OAAgB,KAAA,CACf,YAAU,SACV,WAAA,EAAA,EAAA,IACE,OACA,wHACA,kBACA,kCACA,yCACA,sCACA,kCACA,uBACA,8BACA,sBACA,4CACA,iDACA,wCACA,yCACA,kDACA,8CACA,uDACA,EACD,CACD,GAAI,YAEJ,EAAA,EAAA,KAACA,EAAAA,OAAgB,MAAA,CACf,YAAU,eACV,WAAA,EAAA,EAAA,IACE,gBACA,4EACA,oDACA,uCACD,EACD,EACmB"}
@@ -1,11 +1,26 @@
1
- import * as react_jsx_runtime252 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime241 from "react/jsx-runtime";
2
2
  import { Switch as Switch$1 } from "radix-ui";
3
3
 
4
4
  //#region packages/components/ui/switch.d.ts
5
+
6
+ /**
7
+ * Accessible toggle switch built on Radix UI's Switch primitive, with animated thumb and primary/muted color states.
8
+ *
9
+ * @example
10
+ * ```tsx
11
+ * import { Switch } from '@customafk/lunas-ui/ui/switch';
12
+ * import { Label } from '@customafk/lunas-ui/ui/label';
13
+ *
14
+ * <div className="flex items-center gap-2">
15
+ * <Switch id="notifications" />
16
+ * <Label htmlFor="notifications">Enable notifications</Label>
17
+ * </div>
18
+ * ```
19
+ */
5
20
  declare function Switch({
6
21
  className,
7
22
  ...props
8
- }: React.ComponentProps<typeof Switch$1.Root>): react_jsx_runtime252.JSX.Element;
23
+ }: React.ComponentProps<typeof Switch$1.Root>): react_jsx_runtime241.JSX.Element;
9
24
  //#endregion
10
25
  export { Switch };
11
26
  //# sourceMappingURL=switch.d.cts.map
@@ -1,11 +1,26 @@
1
- import * as react_jsx_runtime277 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime195 from "react/jsx-runtime";
2
2
  import { Switch as Switch$1 } from "radix-ui";
3
3
 
4
4
  //#region packages/components/ui/switch.d.ts
5
+
6
+ /**
7
+ * Accessible toggle switch built on Radix UI's Switch primitive, with animated thumb and primary/muted color states.
8
+ *
9
+ * @example
10
+ * ```tsx
11
+ * import { Switch } from '@customafk/lunas-ui/ui/switch';
12
+ * import { Label } from '@customafk/lunas-ui/ui/label';
13
+ *
14
+ * <div className="flex items-center gap-2">
15
+ * <Switch id="notifications" />
16
+ * <Label htmlFor="notifications">Enable notifications</Label>
17
+ * </div>
18
+ * ```
19
+ */
5
20
  declare function Switch({
6
21
  className,
7
22
  ...props
8
- }: React.ComponentProps<typeof Switch$1.Root>): react_jsx_runtime277.JSX.Element;
23
+ }: React.ComponentProps<typeof Switch$1.Root>): react_jsx_runtime195.JSX.Element;
9
24
  //#endregion
10
25
  export { Switch };
11
26
  //# sourceMappingURL=switch.d.mts.map