@jarllyng/nostromo 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (417) hide show
  1. package/dist/base.css +312 -0
  2. package/dist/chunk-2DNQXAMB.cjs +2 -0
  3. package/dist/chunk-2DNQXAMB.cjs.map +1 -0
  4. package/dist/chunk-2JQROMCM.js +2 -0
  5. package/dist/chunk-2JQROMCM.js.map +1 -0
  6. package/dist/chunk-3BNGK67W.js +2 -0
  7. package/dist/chunk-3BNGK67W.js.map +1 -0
  8. package/dist/chunk-3V3OIZWQ.cjs +2 -0
  9. package/dist/chunk-3V3OIZWQ.cjs.map +1 -0
  10. package/dist/chunk-44HISN45.js +2 -0
  11. package/dist/chunk-44HISN45.js.map +1 -0
  12. package/dist/chunk-4FSJEW7W.cjs +2 -0
  13. package/dist/chunk-4FSJEW7W.cjs.map +1 -0
  14. package/dist/chunk-4PN7OGLX.cjs +2 -0
  15. package/dist/chunk-4PN7OGLX.cjs.map +1 -0
  16. package/dist/chunk-4TYVEXRA.cjs +2 -0
  17. package/dist/chunk-4TYVEXRA.cjs.map +1 -0
  18. package/dist/chunk-4WFEVNXW.cjs +2 -0
  19. package/dist/chunk-4WFEVNXW.cjs.map +1 -0
  20. package/dist/chunk-55N2IT62.cjs +2 -0
  21. package/dist/chunk-55N2IT62.cjs.map +1 -0
  22. package/dist/chunk-5PVFLXPO.cjs +3 -0
  23. package/dist/chunk-5PVFLXPO.cjs.map +1 -0
  24. package/dist/chunk-6QAYHUNV.js +3 -0
  25. package/dist/chunk-6QAYHUNV.js.map +1 -0
  26. package/dist/chunk-7PPAI3MM.cjs +2 -0
  27. package/dist/chunk-7PPAI3MM.cjs.map +1 -0
  28. package/dist/chunk-7SPPGTBT.cjs +2 -0
  29. package/dist/chunk-7SPPGTBT.cjs.map +1 -0
  30. package/dist/chunk-7W456HZL.js +2 -0
  31. package/dist/chunk-7W456HZL.js.map +1 -0
  32. package/dist/chunk-7WEIVLG3.cjs +2 -0
  33. package/dist/chunk-7WEIVLG3.cjs.map +1 -0
  34. package/dist/chunk-7YFUAGIW.cjs +2 -0
  35. package/dist/chunk-7YFUAGIW.cjs.map +1 -0
  36. package/dist/chunk-ABA7B5DE.js +2 -0
  37. package/dist/chunk-ABA7B5DE.js.map +1 -0
  38. package/dist/chunk-AC2JBXHQ.js +2 -0
  39. package/dist/chunk-AC2JBXHQ.js.map +1 -0
  40. package/dist/chunk-AHRTNKXE.js +2 -0
  41. package/dist/chunk-AHRTNKXE.js.map +1 -0
  42. package/dist/chunk-AVTJE2O2.js +3 -0
  43. package/dist/chunk-AVTJE2O2.js.map +1 -0
  44. package/dist/chunk-B2BWBKZA.cjs +2 -0
  45. package/dist/chunk-B2BWBKZA.cjs.map +1 -0
  46. package/dist/chunk-BSUHBLZO.cjs +2 -0
  47. package/dist/chunk-BSUHBLZO.cjs.map +1 -0
  48. package/dist/chunk-BYV75TDY.cjs +2 -0
  49. package/dist/chunk-BYV75TDY.cjs.map +1 -0
  50. package/dist/chunk-BZF3ZOAN.js +3 -0
  51. package/dist/chunk-BZF3ZOAN.js.map +1 -0
  52. package/dist/chunk-CEMOHO3Z.js +2 -0
  53. package/dist/chunk-CEMOHO3Z.js.map +1 -0
  54. package/dist/chunk-COXN6XBA.js +2 -0
  55. package/dist/chunk-COXN6XBA.js.map +1 -0
  56. package/dist/chunk-CVOSWGQZ.js +2 -0
  57. package/dist/chunk-CVOSWGQZ.js.map +1 -0
  58. package/dist/chunk-EFCNLYYW.cjs +2 -0
  59. package/dist/chunk-EFCNLYYW.cjs.map +1 -0
  60. package/dist/chunk-EGQ2Q37R.cjs +2 -0
  61. package/dist/chunk-EGQ2Q37R.cjs.map +1 -0
  62. package/dist/chunk-EIXD3Y4R.js +2 -0
  63. package/dist/chunk-EIXD3Y4R.js.map +1 -0
  64. package/dist/chunk-EVRQYWZ3.cjs +2 -0
  65. package/dist/chunk-EVRQYWZ3.cjs.map +1 -0
  66. package/dist/chunk-FUENXWR7.cjs +2 -0
  67. package/dist/chunk-FUENXWR7.cjs.map +1 -0
  68. package/dist/chunk-G35BR7SK.cjs +2 -0
  69. package/dist/chunk-G35BR7SK.cjs.map +1 -0
  70. package/dist/chunk-G5ZSOVJY.cjs +2 -0
  71. package/dist/chunk-G5ZSOVJY.cjs.map +1 -0
  72. package/dist/chunk-G6TR5RGR.js +2 -0
  73. package/dist/chunk-G6TR5RGR.js.map +1 -0
  74. package/dist/chunk-GUJB555L.js +2 -0
  75. package/dist/chunk-GUJB555L.js.map +1 -0
  76. package/dist/chunk-HD3TMQPR.js +2 -0
  77. package/dist/chunk-HD3TMQPR.js.map +1 -0
  78. package/dist/chunk-HWZTMVQV.cjs +2 -0
  79. package/dist/chunk-HWZTMVQV.cjs.map +1 -0
  80. package/dist/chunk-IOX4WPJL.cjs +2 -0
  81. package/dist/chunk-IOX4WPJL.cjs.map +1 -0
  82. package/dist/chunk-ITRGJNWL.cjs +2 -0
  83. package/dist/chunk-ITRGJNWL.cjs.map +1 -0
  84. package/dist/chunk-J4VRJVTO.cjs +2 -0
  85. package/dist/chunk-J4VRJVTO.cjs.map +1 -0
  86. package/dist/chunk-JEHIMQQZ.js +2 -0
  87. package/dist/chunk-JEHIMQQZ.js.map +1 -0
  88. package/dist/chunk-JUOCEYUF.cjs +2 -0
  89. package/dist/chunk-JUOCEYUF.cjs.map +1 -0
  90. package/dist/chunk-JZROH43C.js +2 -0
  91. package/dist/chunk-JZROH43C.js.map +1 -0
  92. package/dist/chunk-K2JCGDU7.cjs +3 -0
  93. package/dist/chunk-K2JCGDU7.cjs.map +1 -0
  94. package/dist/chunk-LR4VUFOQ.js +2 -0
  95. package/dist/chunk-LR4VUFOQ.js.map +1 -0
  96. package/dist/chunk-LXQT7FH6.cjs +2 -0
  97. package/dist/chunk-LXQT7FH6.cjs.map +1 -0
  98. package/dist/chunk-LYVCB45L.js +2 -0
  99. package/dist/chunk-LYVCB45L.js.map +1 -0
  100. package/dist/chunk-M5IBD3KV.js +2 -0
  101. package/dist/chunk-M5IBD3KV.js.map +1 -0
  102. package/dist/chunk-MLJZU63I.cjs +2 -0
  103. package/dist/chunk-MLJZU63I.cjs.map +1 -0
  104. package/dist/chunk-MLSE5XSB.cjs +3 -0
  105. package/dist/chunk-MLSE5XSB.cjs.map +1 -0
  106. package/dist/chunk-MRZOLUSF.js +2 -0
  107. package/dist/chunk-MRZOLUSF.js.map +1 -0
  108. package/dist/chunk-MVCGR7JQ.js +2 -0
  109. package/dist/chunk-MVCGR7JQ.js.map +1 -0
  110. package/dist/chunk-NLD4R74T.js +2 -0
  111. package/dist/chunk-NLD4R74T.js.map +1 -0
  112. package/dist/chunk-OEN63W3G.cjs +2 -0
  113. package/dist/chunk-OEN63W3G.cjs.map +1 -0
  114. package/dist/chunk-OUWOPYAX.js +2 -0
  115. package/dist/chunk-OUWOPYAX.js.map +1 -0
  116. package/dist/chunk-OZ3RIKZO.cjs +2 -0
  117. package/dist/chunk-OZ3RIKZO.cjs.map +1 -0
  118. package/dist/chunk-PEYPRWZP.js +2 -0
  119. package/dist/chunk-PEYPRWZP.js.map +1 -0
  120. package/dist/chunk-PMNNV4ML.cjs +2 -0
  121. package/dist/chunk-PMNNV4ML.cjs.map +1 -0
  122. package/dist/chunk-PVHTEE5T.cjs +2 -0
  123. package/dist/chunk-PVHTEE5T.cjs.map +1 -0
  124. package/dist/chunk-Q6QMSAJR.js +2 -0
  125. package/dist/chunk-Q6QMSAJR.js.map +1 -0
  126. package/dist/chunk-QBAURT3I.js +2 -0
  127. package/dist/chunk-QBAURT3I.js.map +1 -0
  128. package/dist/chunk-QF5CRDZI.js +2 -0
  129. package/dist/chunk-QF5CRDZI.js.map +1 -0
  130. package/dist/chunk-RC2THAIA.js +2 -0
  131. package/dist/chunk-RC2THAIA.js.map +1 -0
  132. package/dist/chunk-RPRISB7O.cjs +2 -0
  133. package/dist/chunk-RPRISB7O.cjs.map +1 -0
  134. package/dist/chunk-SD4IIQ2I.cjs +2 -0
  135. package/dist/chunk-SD4IIQ2I.cjs.map +1 -0
  136. package/dist/chunk-SLGMKBST.js +2 -0
  137. package/dist/chunk-SLGMKBST.js.map +1 -0
  138. package/dist/chunk-TGPWW7FC.js +2 -0
  139. package/dist/chunk-TGPWW7FC.js.map +1 -0
  140. package/dist/chunk-TJFZAMBB.js +2 -0
  141. package/dist/chunk-TJFZAMBB.js.map +1 -0
  142. package/dist/chunk-UL6MF7ES.js +2 -0
  143. package/dist/chunk-UL6MF7ES.js.map +1 -0
  144. package/dist/chunk-V77N662N.cjs +2 -0
  145. package/dist/chunk-V77N662N.cjs.map +1 -0
  146. package/dist/chunk-VD6S2PE4.js +2 -0
  147. package/dist/chunk-VD6S2PE4.js.map +1 -0
  148. package/dist/chunk-VXMDVKAD.js +2 -0
  149. package/dist/chunk-VXMDVKAD.js.map +1 -0
  150. package/dist/chunk-WW2DDHCI.js +2 -0
  151. package/dist/chunk-WW2DDHCI.js.map +1 -0
  152. package/dist/chunk-XPIBRXTW.cjs +2 -0
  153. package/dist/chunk-XPIBRXTW.cjs.map +1 -0
  154. package/dist/chunk-XQUZ7DUN.js +2 -0
  155. package/dist/chunk-XQUZ7DUN.js.map +1 -0
  156. package/dist/chunk-YNSODGYK.js +2 -0
  157. package/dist/chunk-YNSODGYK.js.map +1 -0
  158. package/dist/chunk-ZC4HJSII.cjs +2 -0
  159. package/dist/chunk-ZC4HJSII.cjs.map +1 -0
  160. package/dist/chunk-ZEJAFIOC.js +2 -0
  161. package/dist/chunk-ZEJAFIOC.js.map +1 -0
  162. package/dist/chunk-ZQDFYSZB.cjs +2 -0
  163. package/dist/chunk-ZQDFYSZB.cjs.map +1 -0
  164. package/dist/chunk-ZYP2PDSX.cjs +2 -0
  165. package/dist/chunk-ZYP2PDSX.cjs.map +1 -0
  166. package/dist/components/core/accordion.cjs +2 -0
  167. package/dist/components/core/accordion.cjs.map +1 -0
  168. package/dist/components/core/accordion.d.cts +53 -0
  169. package/dist/components/core/accordion.d.ts +53 -0
  170. package/dist/components/core/accordion.js +2 -0
  171. package/dist/components/core/accordion.js.map +1 -0
  172. package/dist/components/core/alert.cjs +2 -0
  173. package/dist/components/core/alert.cjs.map +1 -0
  174. package/dist/components/core/alert.d.cts +29 -0
  175. package/dist/components/core/alert.d.ts +29 -0
  176. package/dist/components/core/alert.js +2 -0
  177. package/dist/components/core/alert.js.map +1 -0
  178. package/dist/components/core/avatar.cjs +2 -0
  179. package/dist/components/core/avatar.cjs.map +1 -0
  180. package/dist/components/core/avatar.d.cts +22 -0
  181. package/dist/components/core/avatar.d.ts +22 -0
  182. package/dist/components/core/avatar.js +2 -0
  183. package/dist/components/core/avatar.js.map +1 -0
  184. package/dist/components/core/badge.cjs +2 -0
  185. package/dist/components/core/badge.cjs.map +1 -0
  186. package/dist/components/core/badge.d.cts +43 -0
  187. package/dist/components/core/badge.d.ts +43 -0
  188. package/dist/components/core/badge.js +2 -0
  189. package/dist/components/core/badge.js.map +1 -0
  190. package/dist/components/core/breadcrumb.cjs +2 -0
  191. package/dist/components/core/breadcrumb.cjs.map +1 -0
  192. package/dist/components/core/breadcrumb.d.cts +43 -0
  193. package/dist/components/core/breadcrumb.d.ts +43 -0
  194. package/dist/components/core/breadcrumb.js +2 -0
  195. package/dist/components/core/breadcrumb.js.map +1 -0
  196. package/dist/components/core/button.cjs +2 -0
  197. package/dist/components/core/button.cjs.map +1 -0
  198. package/dist/components/core/button.d.cts +39 -0
  199. package/dist/components/core/button.d.ts +39 -0
  200. package/dist/components/core/button.js +2 -0
  201. package/dist/components/core/button.js.map +1 -0
  202. package/dist/components/core/calendar.cjs +2 -0
  203. package/dist/components/core/calendar.cjs.map +1 -0
  204. package/dist/components/core/calendar.d.cts +45 -0
  205. package/dist/components/core/calendar.d.ts +45 -0
  206. package/dist/components/core/calendar.js +2 -0
  207. package/dist/components/core/calendar.js.map +1 -0
  208. package/dist/components/core/card.cjs +2 -0
  209. package/dist/components/core/card.cjs.map +1 -0
  210. package/dist/components/core/card.d.cts +26 -0
  211. package/dist/components/core/card.d.ts +26 -0
  212. package/dist/components/core/card.js +2 -0
  213. package/dist/components/core/card.js.map +1 -0
  214. package/dist/components/core/charts-lazy.cjs +2 -0
  215. package/dist/components/core/charts-lazy.cjs.map +1 -0
  216. package/dist/components/core/charts-lazy.d.cts +31 -0
  217. package/dist/components/core/charts-lazy.d.ts +31 -0
  218. package/dist/components/core/charts-lazy.js +2 -0
  219. package/dist/components/core/charts-lazy.js.map +1 -0
  220. package/dist/components/core/charts.cjs +2 -0
  221. package/dist/components/core/charts.cjs.map +1 -0
  222. package/dist/components/core/charts.d.cts +35 -0
  223. package/dist/components/core/charts.d.ts +35 -0
  224. package/dist/components/core/charts.js +2 -0
  225. package/dist/components/core/charts.js.map +1 -0
  226. package/dist/components/core/checkbox.cjs +2 -0
  227. package/dist/components/core/checkbox.cjs.map +1 -0
  228. package/dist/components/core/checkbox.d.cts +31 -0
  229. package/dist/components/core/checkbox.d.ts +31 -0
  230. package/dist/components/core/checkbox.js +2 -0
  231. package/dist/components/core/checkbox.js.map +1 -0
  232. package/dist/components/core/data-table.cjs +2 -0
  233. package/dist/components/core/data-table.cjs.map +1 -0
  234. package/dist/components/core/data-table.d.cts +54 -0
  235. package/dist/components/core/data-table.d.ts +54 -0
  236. package/dist/components/core/data-table.js +2 -0
  237. package/dist/components/core/data-table.js.map +1 -0
  238. package/dist/components/core/dialog.cjs +2 -0
  239. package/dist/components/core/dialog.cjs.map +1 -0
  240. package/dist/components/core/dialog.d.cts +34 -0
  241. package/dist/components/core/dialog.d.ts +34 -0
  242. package/dist/components/core/dialog.js +2 -0
  243. package/dist/components/core/dialog.js.map +1 -0
  244. package/dist/components/core/error-boundary.cjs +2 -0
  245. package/dist/components/core/error-boundary.cjs.map +1 -0
  246. package/dist/components/core/error-boundary.d.cts +35 -0
  247. package/dist/components/core/error-boundary.d.ts +35 -0
  248. package/dist/components/core/error-boundary.js +2 -0
  249. package/dist/components/core/error-boundary.js.map +1 -0
  250. package/dist/components/core/error-message.cjs +2 -0
  251. package/dist/components/core/error-message.cjs.map +1 -0
  252. package/dist/components/core/error-message.d.cts +13 -0
  253. package/dist/components/core/error-message.d.ts +13 -0
  254. package/dist/components/core/error-message.js +2 -0
  255. package/dist/components/core/error-message.js.map +1 -0
  256. package/dist/components/core/helper-text.cjs +2 -0
  257. package/dist/components/core/helper-text.cjs.map +1 -0
  258. package/dist/components/core/helper-text.d.cts +13 -0
  259. package/dist/components/core/helper-text.d.ts +13 -0
  260. package/dist/components/core/helper-text.js +2 -0
  261. package/dist/components/core/helper-text.js.map +1 -0
  262. package/dist/components/core/icon.cjs +2 -0
  263. package/dist/components/core/icon.cjs.map +1 -0
  264. package/dist/components/core/icon.d.cts +19 -0
  265. package/dist/components/core/icon.d.ts +19 -0
  266. package/dist/components/core/icon.js +2 -0
  267. package/dist/components/core/icon.js.map +1 -0
  268. package/dist/components/core/input.cjs +2 -0
  269. package/dist/components/core/input.cjs.map +1 -0
  270. package/dist/components/core/input.d.cts +18 -0
  271. package/dist/components/core/input.d.ts +18 -0
  272. package/dist/components/core/input.js +2 -0
  273. package/dist/components/core/input.js.map +1 -0
  274. package/dist/components/core/label.cjs +2 -0
  275. package/dist/components/core/label.cjs.map +1 -0
  276. package/dist/components/core/label.d.cts +14 -0
  277. package/dist/components/core/label.d.ts +14 -0
  278. package/dist/components/core/label.js +2 -0
  279. package/dist/components/core/label.js.map +1 -0
  280. package/dist/components/core/pagination.cjs +2 -0
  281. package/dist/components/core/pagination.cjs.map +1 -0
  282. package/dist/components/core/pagination.d.cts +32 -0
  283. package/dist/components/core/pagination.d.ts +32 -0
  284. package/dist/components/core/pagination.js +2 -0
  285. package/dist/components/core/pagination.js.map +1 -0
  286. package/dist/components/core/progress.cjs +2 -0
  287. package/dist/components/core/progress.cjs.map +1 -0
  288. package/dist/components/core/progress.d.cts +44 -0
  289. package/dist/components/core/progress.d.ts +44 -0
  290. package/dist/components/core/progress.js +2 -0
  291. package/dist/components/core/progress.js.map +1 -0
  292. package/dist/components/core/radio-group.cjs +2 -0
  293. package/dist/components/core/radio-group.cjs.map +1 -0
  294. package/dist/components/core/radio-group.d.cts +71 -0
  295. package/dist/components/core/radio-group.d.ts +71 -0
  296. package/dist/components/core/radio-group.js +2 -0
  297. package/dist/components/core/radio-group.js.map +1 -0
  298. package/dist/components/core/select.cjs +2 -0
  299. package/dist/components/core/select.cjs.map +1 -0
  300. package/dist/components/core/select.d.cts +41 -0
  301. package/dist/components/core/select.d.ts +41 -0
  302. package/dist/components/core/select.js +2 -0
  303. package/dist/components/core/select.js.map +1 -0
  304. package/dist/components/core/separator.cjs +2 -0
  305. package/dist/components/core/separator.cjs.map +1 -0
  306. package/dist/components/core/separator.d.cts +16 -0
  307. package/dist/components/core/separator.d.ts +16 -0
  308. package/dist/components/core/separator.js +2 -0
  309. package/dist/components/core/separator.js.map +1 -0
  310. package/dist/components/core/skeleton.cjs +2 -0
  311. package/dist/components/core/skeleton.cjs.map +1 -0
  312. package/dist/components/core/skeleton.d.cts +46 -0
  313. package/dist/components/core/skeleton.d.ts +46 -0
  314. package/dist/components/core/skeleton.js +2 -0
  315. package/dist/components/core/skeleton.js.map +1 -0
  316. package/dist/components/core/switch.cjs +2 -0
  317. package/dist/components/core/switch.cjs.map +1 -0
  318. package/dist/components/core/switch.d.cts +21 -0
  319. package/dist/components/core/switch.d.ts +21 -0
  320. package/dist/components/core/switch.js +2 -0
  321. package/dist/components/core/switch.js.map +1 -0
  322. package/dist/components/core/table.cjs +2 -0
  323. package/dist/components/core/table.cjs.map +1 -0
  324. package/dist/components/core/table.d.cts +84 -0
  325. package/dist/components/core/table.d.ts +84 -0
  326. package/dist/components/core/table.js +2 -0
  327. package/dist/components/core/table.js.map +1 -0
  328. package/dist/components/core/tabs.cjs +2 -0
  329. package/dist/components/core/tabs.cjs.map +1 -0
  330. package/dist/components/core/tabs.d.cts +28 -0
  331. package/dist/components/core/tabs.d.ts +28 -0
  332. package/dist/components/core/tabs.js +2 -0
  333. package/dist/components/core/tabs.js.map +1 -0
  334. package/dist/components/core/textarea.cjs +2 -0
  335. package/dist/components/core/textarea.cjs.map +1 -0
  336. package/dist/components/core/textarea.d.cts +18 -0
  337. package/dist/components/core/textarea.d.ts +18 -0
  338. package/dist/components/core/textarea.js +2 -0
  339. package/dist/components/core/textarea.js.map +1 -0
  340. package/dist/components/core/toast.cjs +2 -0
  341. package/dist/components/core/toast.cjs.map +1 -0
  342. package/dist/components/core/toast.d.cts +50 -0
  343. package/dist/components/core/toast.d.ts +50 -0
  344. package/dist/components/core/toast.js +2 -0
  345. package/dist/components/core/toast.js.map +1 -0
  346. package/dist/components/core/tooltip.cjs +2 -0
  347. package/dist/components/core/tooltip.cjs.map +1 -0
  348. package/dist/components/core/tooltip.d.cts +68 -0
  349. package/dist/components/core/tooltip.d.ts +68 -0
  350. package/dist/components/core/tooltip.js +2 -0
  351. package/dist/components/core/tooltip.js.map +1 -0
  352. package/dist/components/marketing/features.cjs +2 -0
  353. package/dist/components/marketing/features.cjs.map +1 -0
  354. package/dist/components/marketing/features.d.cts +35 -0
  355. package/dist/components/marketing/features.d.ts +35 -0
  356. package/dist/components/marketing/features.js +2 -0
  357. package/dist/components/marketing/features.js.map +1 -0
  358. package/dist/components/marketing/gallery.cjs +2 -0
  359. package/dist/components/marketing/gallery.cjs.map +1 -0
  360. package/dist/components/marketing/gallery.d.cts +38 -0
  361. package/dist/components/marketing/gallery.d.ts +38 -0
  362. package/dist/components/marketing/gallery.js +2 -0
  363. package/dist/components/marketing/gallery.js.map +1 -0
  364. package/dist/components/marketing/hero.cjs +2 -0
  365. package/dist/components/marketing/hero.cjs.map +1 -0
  366. package/dist/components/marketing/hero.d.cts +31 -0
  367. package/dist/components/marketing/hero.d.ts +31 -0
  368. package/dist/components/marketing/hero.js +2 -0
  369. package/dist/components/marketing/hero.js.map +1 -0
  370. package/dist/components/marketing/logo-wall.cjs +2 -0
  371. package/dist/components/marketing/logo-wall.cjs.map +1 -0
  372. package/dist/components/marketing/logo-wall.d.cts +44 -0
  373. package/dist/components/marketing/logo-wall.d.ts +44 -0
  374. package/dist/components/marketing/logo-wall.js +2 -0
  375. package/dist/components/marketing/logo-wall.js.map +1 -0
  376. package/dist/components/marketing/pricing.cjs +2 -0
  377. package/dist/components/marketing/pricing.cjs.map +1 -0
  378. package/dist/components/marketing/pricing.d.cts +52 -0
  379. package/dist/components/marketing/pricing.d.ts +52 -0
  380. package/dist/components/marketing/pricing.js +2 -0
  381. package/dist/components/marketing/pricing.js.map +1 -0
  382. package/dist/components/marketing/testimonials.cjs +2 -0
  383. package/dist/components/marketing/testimonials.cjs.map +1 -0
  384. package/dist/components/marketing/testimonials.d.cts +34 -0
  385. package/dist/components/marketing/testimonials.d.ts +34 -0
  386. package/dist/components/marketing/testimonials.js +2 -0
  387. package/dist/components/marketing/testimonials.js.map +1 -0
  388. package/dist/index.cjs +2 -0
  389. package/dist/index.cjs.map +1 -0
  390. package/dist/index.css +2 -0
  391. package/dist/index.css.map +1 -0
  392. package/dist/index.d.cts +125 -0
  393. package/dist/index.d.ts +125 -0
  394. package/dist/index.js +2 -0
  395. package/dist/index.js.map +1 -0
  396. package/dist/lib/lazy.cjs +2 -0
  397. package/dist/lib/lazy.cjs.map +1 -0
  398. package/dist/lib/lazy.d.cts +43 -0
  399. package/dist/lib/lazy.d.ts +43 -0
  400. package/dist/lib/lazy.js +2 -0
  401. package/dist/lib/lazy.js.map +1 -0
  402. package/dist/lib/performance.cjs +2 -0
  403. package/dist/lib/performance.cjs.map +1 -0
  404. package/dist/lib/performance.d.cts +52 -0
  405. package/dist/lib/performance.d.ts +52 -0
  406. package/dist/lib/performance.js +2 -0
  407. package/dist/lib/performance.js.map +1 -0
  408. package/dist/tailwind.css +29 -0
  409. package/dist/themes/__tests__/themes.test.ts +46 -0
  410. package/dist/themes/index.ts +50 -0
  411. package/dist/themes/lv-426.css +342 -0
  412. package/dist/themes/mother.css +280 -0
  413. package/dist/themes/nostromo.css +315 -0
  414. package/dist/themes/sulaco.css +404 -0
  415. package/dist/themes/utils.ts +105 -0
  416. package/dist/tokens.css +212 -0
  417. package/package.json +321 -0
@@ -0,0 +1,2 @@
1
+ import {a}from'./chunk-AC2JBXHQ.js';import r from'react';import {cva}from'class-variance-authority';import {PawPrint,Bird,Fish,Dog,Cat,Butterfly,Bug,Anchor,Umbrella,Snowflake,Fire,Lightning,Sparkle,Crown,Medal,Trophy,Flag,Compass,Bookmark,Scroll,Ghost,Skull,Pill,Syringe,TestTube,Flask,Atom,Rocket,Alien,MapPin,Key,Gift,PuzzlePiece,GameController,Moon,Star,Planet,Mountains,Leaf,Flower,Tree,PaintBrush,Wrench,ChartPie,ChartBar,ChartLine,Buildings,Briefcase,Lightbulb,GraduationCap,BookOpen,Book,StopCircle,PauseCircle,PlayCircle,MusicNote,TennisBall,SoccerBall,Football,Basketball,Hamburger,Pizza,Coffee,Bicycle,Boat,Airplane,Train,Bus,Car,Activity,Heart,Money,CreditCard,ShoppingBag,ShoppingCart,YoutubeLogo,LinkedinLogo,InstagramLogo,FacebookLogo,TwitterLogo,GithubLogo,CloudLightning,CloudSnow,CloudRain,Cloud,Sun,HardDrive,Cpu,BatteryWarning,WifiX,WifiHigh,ShieldCheck,Shield,EyeSlash,Eye,LockOpen,Lock,Timer,Calendar,Clock,Question,Info,Warning,XCircle,CheckCircle,FileImage,FilePdf,FileText,FolderOpen,Folder,File,VideoCamera,Image,Camera,SpeakerX,SpeakerLow,SpeakerHigh,Stop,Pause,Play,BellSlash,Bell,ChatCircle,Phone,Envelope,Share,Upload,Download,Copy,PencilSimple,Trash,X,Check,Minus,Plus,ArrowDown,ArrowUp,ArrowRight,ArrowLeft,CaretDown,CaretUp,CaretRight,CaretLeft,List,MagnifyingGlass,Gear,User,House}from'phosphor-react';var n={house:House,user:User,settings:Gear,search:MagnifyingGlass,menu:List,x:X,"chevron-left":CaretLeft,"chevron-right":CaretRight,"chevron-up":CaretUp,"chevron-down":CaretDown,"arrow-left":ArrowLeft,"arrow-right":ArrowRight,"arrow-up":ArrowUp,"arrow-down":ArrowDown,plus:Plus,minus:Minus,check:Check,"x-icon":X,trash:Trash,edit:PencilSimple,copy:Copy,download:Download,upload:Upload,share:Share,heart:Heart,star:Star,bookmark:Bookmark,mail:Envelope,phone:Phone,"message-circle":ChatCircle,bell:Bell,"bell-slash":BellSlash,play:Play,pause:Pause,stop:Stop,"volume-high":SpeakerHigh,"volume-low":SpeakerLow,"volume-x":SpeakerX,camera:Camera,image:Image,video:VideoCamera,file:File,folder:Folder,"folder-open":FolderOpen,"file-text":FileText,"file-pdf":FilePdf,"file-image":FileImage,"check-circle":CheckCircle,"x-circle":XCircle,warning:Warning,info:Info,question:Question,clock:Clock,calendar:Calendar,timer:Timer,lock:Lock,"lock-open":LockOpen,eye:Eye,"eye-slash":EyeSlash,shield:Shield,"shield-check":ShieldCheck,wifi:WifiHigh,"wifi-slash":WifiX,"battery-warning":BatteryWarning,cpu:Cpu,"hard-drive":HardDrive,sun:Sun,moon:Moon,cloud:Cloud,"cloud-rain":CloudRain,"cloud-snow":CloudSnow,"cloud-lightning":CloudLightning,github:GithubLogo,twitter:TwitterLogo,facebook:FacebookLogo,instagram:InstagramLogo,linkedin:LinkedinLogo,youtube:YoutubeLogo,"shopping-cart":ShoppingCart,"shopping-bag":ShoppingBag,"credit-card":CreditCard,money:Money,"heart-icon":Heart,activity:Activity,car:Car,bus:Bus,train:Train,plane:Airplane,ship:Boat,bicycle:Bicycle,coffee:Coffee,pizza:Pizza,hamburger:Hamburger,basketball:Basketball,football:Football,soccer:SoccerBall,tennis:TennisBall,"music-note":MusicNote,"play-circle":PlayCircle,"pause-circle":PauseCircle,"stop-circle":StopCircle,book:Book,"book-open":BookOpen,"graduation-cap":GraduationCap,lightbulb:Lightbulb,briefcase:Briefcase,building:Buildings,"chart-line":ChartLine,"chart-bar":ChartBar,"chart-pie":ChartPie,wrench:Wrench,"paint-brush":PaintBrush,tree:Tree,flower:Flower,leaf:Leaf,mountain:Mountains,rocket:Rocket,planet:Planet,"star-icon":Star,"moon-icon":Moon,"game-controller":GameController,puzzle:PuzzlePiece,gift:Gift,key:Key,"map-pin":MapPin,compass:Compass,flag:Flag,trophy:Trophy,medal:Medal,crown:Crown,sparkle:Sparkle,zap:Lightning,fire:Fire,snowflake:Snowflake,umbrella:Umbrella,anchor:Anchor,bug:Bug,butterfly:Butterfly,cat:Cat,dog:Dog,fish:Fish,bird:Bird,"paw-print":PawPrint,alien:Alien,spaceship:Rocket,atom:Atom,flask:Flask,"test-tube":TestTube,syringe:Syringe,pill:Pill,skull:Skull,ghost:Ghost,scroll:Scroll,"bookmark-icon":Bookmark,"compass-icon":Compass,"flag-icon":Flag,"trophy-icon":Trophy,"medal-icon":Medal,"crown-icon":Crown,"sparkle-icon":Sparkle,"zap-icon":Lightning,"fire-icon":Fire,"snowflake-icon":Snowflake,"umbrella-icon":Umbrella,"anchor-icon":Anchor,"bug-icon":Bug,"butterfly-icon":Butterfly,"cat-icon":Cat,"dog-icon":Dog,"fish-icon":Fish,"bird-icon":Bird,"paw-print-icon":PawPrint},Sa=cva("",{variants:{size:{xs:"w-3 h-3",sm:"w-4 h-4",md:"w-5 h-5",lg:"w-6 h-6",xl:"w-8 h-8","2xl":"w-10 h-10","3xl":"w-12 h-12"},weight:{thin:"",light:"",regular:"",bold:"",fill:"",duotone:""},color:{current:"text-current",primary:"text-blue-600",secondary:"text-gray-600",success:"text-green-600",warning:"text-yellow-600",error:"text-red-600",muted:"text-gray-400"}},defaultVariants:{size:"md",weight:"regular",color:"current"}}),Ba=r.forwardRef(({name:i,size:t,weight:e,color:l,className:c,...s},p)=>{let o=n[i];return o?r.createElement(o,{ref:p,weight:e,className:a(Sa({size:t,weight:e,color:l}),c),...s}):null});Ba.displayName="Icon";var Ma=Object.keys(n);export{Ba as a,Ma as b};//# sourceMappingURL=chunk-TJFZAMBB.js.map
2
+ //# sourceMappingURL=chunk-TJFZAMBB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/core/icon.tsx"],"names":["iconMap","House","User","Gear","MagnifyingGlass","List","X","CaretLeft","CaretRight","CaretUp","CaretDown","ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Plus","Minus","Check","XIcon","Trash","PencilSimple","Copy","Download","Upload","Share","Heart","Star","Bookmark","Envelope","Phone","ChatCircle","Bell","BellSlash","Play","Pause","Stop","SpeakerHigh","SpeakerLow","SpeakerX","Camera","Image","VideoCamera","File","Folder","FolderOpen","FileText","FilePdf","FileImage","CheckCircle","XCircle","Warning","Info","Question","Clock","Calendar","Timer","Lock","LockOpen","Eye","EyeSlash","Shield","ShieldCheck","WifiHigh","WifiX","BatteryWarning","Cpu","HardDrive","Sun","Moon","Cloud","CloudRain","CloudSnow","CloudLightning","GithubLogo","TwitterLogo","FacebookLogo","InstagramLogo","LinkedinLogo","YoutubeLogo","ShoppingCart","ShoppingBag","CreditCard","Money","HeartIcon","Activity","Car","Bus","Train","Airplane","Boat","Bicycle","Coffee","Pizza","Hamburger","Basketball","Football","SoccerBall","TennisBall","MusicNote","PlayCircle","PauseCircle","StopCircle","Book","BookOpen","GraduationCap","Lightbulb","Briefcase","Buildings","ChartLine","ChartBar","ChartPie","Wrench","PaintBrush","Tree","Flower","Leaf","Mountains","Rocket","Planet","StarIcon","MoonIcon","GameController","PuzzlePiece","Gift","Key","MapPin","Compass","Flag","Trophy","Medal","Crown","Sparkle","Lightning","Fire","Snowflake","Umbrella","Anchor","Bug","Butterfly","Cat","Dog","Fish","Bird","PawPrint","Alien","Spaceship","Atom","Flask","TestTube","Syringe","Pill","Skull","Ghost","Scroll","BookmarkIcon","CompassIcon","FlagIcon","TrophyIcon","MedalIcon","CrownIcon","SparkleIcon","ZapIcon","FireIcon","SnowflakeIcon","UmbrellaIcon","AnchorIcon","BugIcon","ButterflyIcon","CatIcon","DogIcon","FishIcon","BirdIcon","PawPrintIcon","iconVariants","cva","Icon","React","name","size","weight","color","className","props","ref","IconComponent","cn","iconNames"],"mappings":"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","file":"chunk-TJFZAMBB.js","sourcesContent":["import React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\n\n// Import commonly used Phosphor icons\nimport {\n // Navigation\n House,\n User,\n Gear,\n MagnifyingGlass,\n List,\n X,\n CaretLeft,\n CaretRight,\n CaretUp,\n CaretDown,\n ArrowLeft,\n ArrowRight,\n ArrowUp,\n ArrowDown,\n \n // Actions\n Plus,\n Minus,\n Check,\n X as XIcon,\n Trash,\n PencilSimple,\n Copy,\n Download,\n Upload,\n Share,\n Heart,\n Star,\n Bookmark,\n \n // Communication\n Envelope,\n Phone,\n ChatCircle,\n Bell,\n BellSlash,\n \n // Media\n Play,\n Pause,\n Stop,\n SpeakerHigh,\n SpeakerLow,\n SpeakerX,\n Camera,\n Image,\n VideoCamera,\n \n // Files\n File,\n Folder,\n FolderOpen,\n FileText,\n FilePdf,\n FileImage,\n \n // Status\n CheckCircle,\n XCircle,\n Warning,\n Info,\n Question,\n \n // Time\n Clock,\n Calendar,\n Timer,\n \n // Security\n Lock,\n LockOpen,\n Eye,\n EyeSlash,\n Shield,\n ShieldCheck,\n \n // Technology\n WifiHigh,\n WifiX,\n BatteryWarning,\n Cpu,\n HardDrive,\n \n // Weather\n Sun,\n Moon,\n Cloud,\n CloudRain,\n CloudSnow,\n CloudLightning,\n \n // Social\n GithubLogo,\n TwitterLogo,\n FacebookLogo,\n InstagramLogo,\n LinkedinLogo,\n YoutubeLogo,\n \n // Shopping\n ShoppingCart,\n ShoppingBag,\n CreditCard,\n Money,\n \n // Health\n Heart as HeartIcon,\n Activity,\n \n // Transportation\n Car,\n Bus,\n Train,\n Airplane,\n Boat,\n Bicycle,\n \n // Food\n Coffee,\n Pizza,\n Hamburger,\n \n // Sports\n Basketball,\n Football,\n SoccerBall,\n TennisBall,\n \n // Music\n MusicNote,\n PlayCircle,\n PauseCircle,\n StopCircle,\n \n // Education\n Book,\n BookOpen,\n GraduationCap,\n Lightbulb,\n \n // Business\n Briefcase,\n Buildings,\n ChartLine,\n ChartBar,\n ChartPie,\n \n // Tools\n Wrench,\n PaintBrush,\n \n // Nature\n Tree,\n Flower,\n Leaf,\n Mountains,\n \n // Space\n Rocket,\n Planet,\n Star as StarIcon,\n Moon as MoonIcon,\n \n // Gaming\n GameController,\n PuzzlePiece,\n \n // Miscellaneous\n Gift,\n Key,\n MapPin,\n Compass,\n Flag,\n Trophy,\n Medal,\n Crown,\n Sparkle,\n Lightning,\n Fire,\n Snowflake,\n Umbrella,\n Anchor,\n Bug,\n Butterfly,\n Cat,\n Dog,\n Fish,\n Bird,\n PawPrint,\n \n // Nostromo themed\n Alien,\n Rocket as Spaceship,\n Atom,\n Flask,\n TestTube,\n Syringe,\n Pill,\n Skull,\n Ghost,\n Scroll,\n Bookmark as BookmarkIcon,\n Compass as CompassIcon,\n Flag as FlagIcon,\n Trophy as TrophyIcon,\n Medal as MedalIcon,\n Crown as CrownIcon,\n Sparkle as SparkleIcon,\n Lightning as ZapIcon,\n Fire as FireIcon,\n Snowflake as SnowflakeIcon,\n Umbrella as UmbrellaIcon,\n Anchor as AnchorIcon,\n Bug as BugIcon,\n Butterfly as ButterflyIcon,\n Cat as CatIcon,\n Dog as DogIcon,\n Fish as FishIcon,\n Bird as BirdIcon,\n PawPrint as PawPrintIcon,\n} from 'phosphor-react';\n\n// Create a mapping of icon names to components\nconst iconMap: Record<string, React.ElementType> = {\n // Navigation\n house: House,\n user: User,\n settings: Gear,\n search: MagnifyingGlass,\n menu: List,\n x: X,\n 'chevron-left': CaretLeft,\n 'chevron-right': CaretRight,\n 'chevron-up': CaretUp,\n 'chevron-down': CaretDown,\n 'arrow-left': ArrowLeft,\n 'arrow-right': ArrowRight,\n 'arrow-up': ArrowUp,\n 'arrow-down': ArrowDown,\n \n // Actions\n plus: Plus,\n minus: Minus,\n check: Check,\n 'x-icon': XIcon,\n trash: Trash,\n edit: PencilSimple,\n copy: Copy,\n download: Download,\n upload: Upload,\n share: Share,\n heart: Heart,\n star: Star,\n bookmark: Bookmark,\n \n // Communication\n mail: Envelope,\n phone: Phone,\n 'message-circle': ChatCircle,\n bell: Bell,\n 'bell-slash': BellSlash,\n \n // Media\n play: Play,\n pause: Pause,\n stop: Stop,\n 'volume-high': SpeakerHigh,\n 'volume-low': SpeakerLow,\n 'volume-x': SpeakerX,\n camera: Camera,\n image: Image,\n video: VideoCamera,\n \n // Files\n file: File,\n folder: Folder,\n 'folder-open': FolderOpen,\n 'file-text': FileText,\n 'file-pdf': FilePdf,\n 'file-image': FileImage,\n \n // Status\n 'check-circle': CheckCircle,\n 'x-circle': XCircle,\n warning: Warning,\n info: Info,\n question: Question,\n \n // Time\n clock: Clock,\n calendar: Calendar,\n timer: Timer,\n \n // Security\n lock: Lock,\n 'lock-open': LockOpen,\n eye: Eye,\n 'eye-slash': EyeSlash,\n shield: Shield,\n 'shield-check': ShieldCheck,\n \n // Technology\n wifi: WifiHigh,\n 'wifi-slash': WifiX,\n 'battery-warning': BatteryWarning,\n cpu: Cpu,\n 'hard-drive': HardDrive,\n \n // Weather\n sun: Sun,\n moon: Moon,\n cloud: Cloud,\n 'cloud-rain': CloudRain,\n 'cloud-snow': CloudSnow,\n 'cloud-lightning': CloudLightning,\n \n // Social\n github: GithubLogo,\n twitter: TwitterLogo,\n facebook: FacebookLogo,\n instagram: InstagramLogo,\n linkedin: LinkedinLogo,\n youtube: YoutubeLogo,\n \n // Shopping\n 'shopping-cart': ShoppingCart,\n 'shopping-bag': ShoppingBag,\n 'credit-card': CreditCard,\n money: Money,\n \n // Health\n 'heart-icon': HeartIcon,\n activity: Activity,\n \n // Transportation\n car: Car,\n bus: Bus,\n train: Train,\n plane: Airplane,\n ship: Boat,\n bicycle: Bicycle,\n \n // Food\n coffee: Coffee,\n pizza: Pizza,\n hamburger: Hamburger,\n \n // Sports\n basketball: Basketball,\n football: Football,\n soccer: SoccerBall,\n tennis: TennisBall,\n \n // Music\n 'music-note': MusicNote,\n 'play-circle': PlayCircle,\n 'pause-circle': PauseCircle,\n 'stop-circle': StopCircle,\n \n // Education\n book: Book,\n 'book-open': BookOpen,\n 'graduation-cap': GraduationCap,\n lightbulb: Lightbulb,\n \n // Business\n briefcase: Briefcase,\n building: Buildings,\n 'chart-line': ChartLine,\n 'chart-bar': ChartBar,\n 'chart-pie': ChartPie,\n \n // Tools\n wrench: Wrench,\n 'paint-brush': PaintBrush,\n \n // Nature\n tree: Tree,\n flower: Flower,\n leaf: Leaf,\n mountain: Mountains,\n \n // Space\n rocket: Rocket,\n planet: Planet,\n 'star-icon': StarIcon,\n 'moon-icon': MoonIcon,\n \n // Gaming\n 'game-controller': GameController,\n puzzle: PuzzlePiece,\n \n // Miscellaneous\n gift: Gift,\n key: Key,\n 'map-pin': MapPin,\n compass: Compass,\n flag: Flag,\n trophy: Trophy,\n medal: Medal,\n crown: Crown,\n sparkle: Sparkle,\n zap: Lightning,\n fire: Fire,\n snowflake: Snowflake,\n umbrella: Umbrella,\n anchor: Anchor,\n bug: Bug,\n butterfly: Butterfly,\n cat: Cat,\n dog: Dog,\n fish: Fish,\n bird: Bird,\n 'paw-print': PawPrint,\n \n // Nostromo themed\n alien: Alien,\n spaceship: Spaceship,\n atom: Atom,\n flask: Flask,\n 'test-tube': TestTube,\n syringe: Syringe,\n pill: Pill,\n skull: Skull,\n ghost: Ghost,\n scroll: Scroll,\n 'bookmark-icon': BookmarkIcon,\n 'compass-icon': CompassIcon,\n 'flag-icon': FlagIcon,\n 'trophy-icon': TrophyIcon,\n 'medal-icon': MedalIcon,\n 'crown-icon': CrownIcon,\n 'sparkle-icon': SparkleIcon,\n 'zap-icon': ZapIcon,\n 'fire-icon': FireIcon,\n 'snowflake-icon': SnowflakeIcon,\n 'umbrella-icon': UmbrellaIcon,\n 'anchor-icon': AnchorIcon,\n 'bug-icon': BugIcon,\n 'butterfly-icon': ButterflyIcon,\n 'cat-icon': CatIcon,\n 'dog-icon': DogIcon,\n 'fish-icon': FishIcon,\n 'bird-icon': BirdIcon,\n 'paw-print-icon': PawPrintIcon,\n} as const;\n\nexport type IconName = keyof typeof iconMap;\n\nconst iconVariants = cva('', {\n variants: {\n size: {\n xs: 'w-3 h-3',\n sm: 'w-4 h-4',\n md: 'w-5 h-5',\n lg: 'w-6 h-6',\n xl: 'w-8 h-8',\n '2xl': 'w-10 h-10',\n '3xl': 'w-12 h-12',\n },\n weight: {\n thin: '',\n light: '',\n regular: '',\n bold: '',\n fill: '',\n duotone: '',\n },\n color: {\n current: 'text-current',\n primary: 'text-blue-600',\n secondary: 'text-gray-600',\n success: 'text-green-600',\n warning: 'text-yellow-600',\n error: 'text-red-600',\n muted: 'text-gray-400',\n },\n },\n defaultVariants: {\n size: 'md',\n weight: 'regular',\n color: 'current',\n },\n});\n\nexport interface IconProps\n extends Omit<React.HTMLAttributes<SVGSVGElement>, 'color'>,\n VariantProps<typeof iconVariants> {\n name: IconName;\n className?: string;\n}\n\nexport const Icon = React.forwardRef<SVGSVGElement, IconProps>(\n ({ name, size, weight, color, className, ...props }, ref) => {\n const IconComponent = iconMap[name];\n \n if (!IconComponent) {\n console.warn(`Icon \"${name}\" not found in iconMap`);\n return null;\n }\n\n return (\n <IconComponent\n ref={ref}\n weight={weight as 'thin' | 'light' | 'regular' | 'bold' | 'fill' | 'duotone'}\n className={cn(iconVariants({ size, weight, color }), className)}\n {...props}\n />\n );\n }\n);\n\nIcon.displayName = 'Icon';\n\n// Export icon names for TypeScript autocomplete\nexport const iconNames = Object.keys(iconMap) as IconName[];\n\n// Note: For additional icons, import directly from 'phosphor-react' to avoid bundling unused icons\n// Example: import { CustomIcon } from 'phosphor-react'\n"]}
@@ -0,0 +1,2 @@
1
+ import {a}from'./chunk-COXN6XBA.js';import {a as a$1}from'./chunk-AC2JBXHQ.js';import*as o from'react';import {cva}from'class-variance-authority';var i=cva("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-all duration-200 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 shadow-xs hover:shadow-sm",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground hover:bg-primary/90 shadow-xs hover:shadow-sm",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80 shadow-xs hover:shadow-sm",destructive:"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/90 shadow-xs hover:shadow-sm",outline:"border-2 border-border text-foreground hover:border-primary hover:text-primary hover:shadow-sm",success:"border-transparent bg-success text-success-foreground hover:bg-success-600 shadow-xs hover:shadow-sm",warning:"border-transparent bg-warning text-warning-foreground hover:bg-warning-600 shadow-xs hover:shadow-sm",info:"border-transparent bg-info text-info-foreground hover:bg-info-600 shadow-xs hover:shadow-sm",error:"border-transparent bg-error text-error-foreground hover:bg-error-600 shadow-xs hover:shadow-sm"},size:{sm:"px-2 py-0.5 text-xs",default:"px-2.5 py-0.5 text-xs",lg:"px-3 py-1 text-sm"}},defaultVariants:{variant:"default",size:"default"}});function g({className:s,variant:t,size:a,...n}){return o.createElement("div",{className:a$1(i({variant:t,size:a}),s),...n})}var p=a(g);export{i as a,p as b};//# sourceMappingURL=chunk-UL6MF7ES.js.map
2
+ //# sourceMappingURL=chunk-UL6MF7ES.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/core/badge.tsx"],"names":["badgeVariants","cva","BadgeComponent","className","variant","size","props","cn","Badge","memo"],"mappings":"sJAKMA,CAAAA,CAAgBC,GAAAA,CACpB,4MAAA,CACA,CACE,SAAU,CACR,OAAA,CAAS,CACP,OAAA,CACE,qGAAA,CACF,UACE,2GAAA,CACF,WAAA,CACE,iHAAA,CACF,OAAA,CACE,iGACF,OAAA,CACE,sGAAA,CACF,QACE,sGAAA,CACF,IAAA,CAAM,8FACN,KAAA,CACE,gGACJ,EACA,IAAA,CAAM,CACJ,GAAI,qBAAA,CACJ,OAAA,CAAS,wBACT,EAAA,CAAI,mBACN,CACF,CAAA,CACA,eAAA,CAAiB,CACf,OAAA,CAAS,UACT,IAAA,CAAM,SACR,CACF,CACF,EA4CA,SAASC,CAAAA,CAAe,CAAE,SAAA,CAAAC,CAAAA,CAAW,QAAAC,CAAAA,CAAS,IAAA,CAAAC,EAAM,GAAGC,CAAM,EAAe,CAC1E,OACE,CAAA,CAAA,aAAA,CAAC,KAAA,CAAA,CACC,UAAWC,GAAAA,CAAGP,CAAAA,CAAc,CAAE,OAAA,CAAAI,CAAAA,CAAS,KAAAC,CAAK,CAAC,EAAGF,CAAS,CAAA,CACxD,GAAGG,CAAAA,CACN,CAEJ,CAGA,IAAME,CAAAA,CAAQC,EAAKP,CAAc","file":"chunk-UL6MF7ES.js","sourcesContent":["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../lib/utils\";\nimport { memo } from \"../../lib/memo\";\n\nconst badgeVariants = cva(\n \"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-all duration-200 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 shadow-xs hover:shadow-sm\",\n {\n variants: {\n variant: {\n default:\n \"border-transparent bg-primary text-primary-foreground hover:bg-primary/90 shadow-xs hover:shadow-sm\",\n secondary:\n \"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80 shadow-xs hover:shadow-sm\",\n destructive:\n \"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/90 shadow-xs hover:shadow-sm\",\n outline:\n \"border-2 border-border text-foreground hover:border-primary hover:text-primary hover:shadow-sm\",\n success:\n \"border-transparent bg-success text-success-foreground hover:bg-success-600 shadow-xs hover:shadow-sm\",\n warning:\n \"border-transparent bg-warning text-warning-foreground hover:bg-warning-600 shadow-xs hover:shadow-sm\",\n info: \"border-transparent bg-info text-info-foreground hover:bg-info-600 shadow-xs hover:shadow-sm\",\n error:\n \"border-transparent bg-error text-error-foreground hover:bg-error-600 shadow-xs hover:shadow-sm\",\n },\n size: {\n sm: \"px-2 py-0.5 text-xs\",\n default: \"px-2.5 py-0.5 text-xs\",\n lg: \"px-3 py-1 text-sm\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\n/**\n * Props for the Badge component\n */\nexport interface BadgeProps\n extends\n React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof badgeVariants> {\n /**\n * The visual variant of the badge\n * @default \"default\"\n */\n variant?:\n | \"default\"\n | \"secondary\"\n | \"destructive\"\n | \"outline\"\n | \"success\"\n | \"warning\"\n | \"info\";\n /**\n * The size of the badge\n * @default \"default\"\n */\n size?: \"sm\" | \"default\" | \"lg\";\n}\n\n/**\n * Badge component for displaying small status indicators or labels\n *\n * @example\n * ```tsx\n * <Badge variant=\"default\">New</Badge>\n * <Badge variant=\"secondary\">Beta</Badge>\n * <Badge variant=\"destructive\">Error</Badge>\n * <Badge variant=\"outline\">Draft</Badge>\n * <Badge variant=\"success\">Success</Badge>\n * <Badge variant=\"warning\">Warning</Badge>\n * <Badge variant=\"info\">Info</Badge>\n * <Badge size=\"sm\">Small</Badge>\n * <Badge size=\"lg\">Large</Badge>\n * ```\n */\nfunction BadgeComponent({ className, variant, size, ...props }: BadgeProps) {\n return (\n <div\n className={cn(badgeVariants({ variant, size }), className)}\n {...props}\n />\n );\n}\n\n// Memoize Badge for performance optimization\nconst Badge = memo(BadgeComponent) as typeof BadgeComponent;\n\nexport { Badge, badgeVariants };\n"]}
@@ -0,0 +1,2 @@
1
+ 'use strict';var chunkITRGJNWL_cjs=require('./chunk-ITRGJNWL.cjs'),e=require('react'),classVarianceAuthority=require('class-variance-authority');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var e__namespace=/*#__PURE__*/_interopNamespace(e);var d=classVarianceAuthority.cva("text-sm flex items-center gap-2 transition-all duration-200",{variants:{variant:{default:"text-destructive",inline:"text-destructive text-xs",subtle:"text-destructive/80",strong:"text-destructive font-semibold"},size:{sm:"text-xs",default:"text-sm",lg:"text-base"}},defaultVariants:{variant:"default",size:"default"}}),f=e__namespace.forwardRef(({className:r,variant:a,size:s,children:i,...o},n)=>e__namespace.createElement("div",{ref:n,className:chunkITRGJNWL_cjs.a(d({variant:a,size:s}),r),role:"alert","aria-live":"polite",...o},i));f.displayName="ErrorMessage";exports.a=d;exports.b=f;//# sourceMappingURL=chunk-V77N662N.cjs.map
2
+ //# sourceMappingURL=chunk-V77N662N.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/core/error-message.tsx"],"names":["errorMessageVariants","cva","ErrorMessage","e","className","variant","size","children","props","ref","cn"],"mappings":"2fAIMA,CAAAA,CAAuBC,0BAAAA,CAC3B,6DAAA,CACA,CACE,SAAU,CACR,OAAA,CAAS,CACP,OAAA,CAAS,kBAAA,CACT,OAAQ,0BAAA,CACR,MAAA,CAAQ,qBAAA,CACR,MAAA,CAAQ,gCACV,CAAA,CACA,IAAA,CAAM,CACJ,EAAA,CAAI,SAAA,CACJ,QAAS,SAAA,CACT,EAAA,CAAI,WACN,CACF,EACA,eAAA,CAAiB,CACf,QAAS,SAAA,CACT,IAAA,CAAM,SACR,CACF,CACF,CAAA,CAMMC,CAAAA,CAAqBC,wBACzB,CAAC,CAAE,UAAAC,CAAAA,CAAW,OAAA,CAAAC,EAAS,IAAA,CAAAC,CAAAA,CAAM,QAAA,CAAAC,CAAAA,CAAU,GAAGC,CAAM,CAAA,CAAGC,IACjDN,YAAA,CAAA,aAAA,CAAC,KAAA,CAAA,CACC,IAAKM,CAAAA,CACL,SAAA,CAAWC,mBAAAA,CAAGV,CAAAA,CAAqB,CAAE,OAAA,CAAAK,CAAAA,CAAS,KAAAC,CAAK,CAAC,EAAGF,CAAS,CAAA,CAChE,KAAK,OAAA,CACL,WAAA,CAAU,SACT,GAAGI,CAAAA,CAAAA,CAEHD,CACH,CAEJ,EACAL,EAAa,WAAA,CAAc,cAAA","file":"chunk-V77N662N.cjs","sourcesContent":["import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\n\nconst errorMessageVariants = cva(\n 'text-sm flex items-center gap-2 transition-all duration-200',\n {\n variants: {\n variant: {\n default: 'text-destructive',\n inline: 'text-destructive text-xs',\n subtle: 'text-destructive/80',\n strong: 'text-destructive font-semibold',\n },\n size: {\n sm: 'text-xs',\n default: 'text-sm',\n lg: 'text-base',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n }\n);\n\nexport interface ErrorMessageProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof errorMessageVariants> {}\n\nconst ErrorMessage = React.forwardRef<HTMLDivElement, ErrorMessageProps>(\n ({ className, variant, size, children, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(errorMessageVariants({ variant, size }), className)}\n role=\"alert\"\n aria-live=\"polite\"\n {...props}\n >\n {children}\n </div>\n )\n);\nErrorMessage.displayName = 'ErrorMessage';\n\nexport { ErrorMessage, errorMessageVariants };\n"]}
@@ -0,0 +1,2 @@
1
+ import {a as a$1}from'./chunk-COXN6XBA.js';import {a}from'./chunk-AC2JBXHQ.js';import*as e from'react';import {cva}from'class-variance-authority';var h=cva("rounded-lg border transition-all duration-200",{variants:{variant:{default:["border-border shadow-sm bg-card text-card-foreground","hover:shadow-md hover:border-border"],elevated:["border-border shadow-lg bg-card text-card-foreground","hover:shadow-xl hover:border-border"],outlined:["border-2 border-border shadow-none bg-card text-card-foreground","hover:border-primary hover:shadow-sm","focus-within:border-primary focus-within:shadow-sm"],filled:["border-border bg-muted text-card-foreground","hover:bg-muted/80 hover:shadow-sm"],interactive:["border-border shadow-sm cursor-pointer bg-card text-card-foreground","hover:shadow-md hover:border-primary hover:scale-[1.02]","active:scale-[0.98] active:shadow-sm"],subtle:["border-border bg-muted/50 text-muted-foreground","hover:bg-muted hover:border-border"]},size:{sm:"p-3",default:"p-4 sm:p-6",lg:"p-6 sm:p-8",xl:"p-8 sm:p-10",none:"p-0"}},defaultVariants:{variant:"default",size:"default"}}),i=e.forwardRef(({className:r,variant:t,size:a$1,...f},b)=>e.createElement("div",{ref:b,className:a(h({variant:t,size:a$1,className:r})),...f}));i.displayName="Card";var n=e.forwardRef(({className:r,...t},a$1)=>e.createElement("div",{ref:a$1,className:a("flex flex-col space-y-1.5 p-4 sm:p-6 pb-3",r),...t}));n.displayName="CardHeader";var m=e.forwardRef(({className:r,...t},a$1)=>e.createElement("h3",{ref:a$1,className:a("text-xl sm:text-2xl font-semibold leading-none tracking-tight",r),...t}));m.displayName="CardTitle";var c=e.forwardRef(({className:r,...t},a$1)=>e.createElement("p",{ref:a$1,className:a("text-sm text-muted-foreground",r),...t}));c.displayName="CardDescription";var p=e.forwardRef(({className:r,...t},a$1)=>e.createElement("div",{ref:a$1,className:a("p-4 sm:p-6 pt-0",r),...t}));p.displayName="CardContent";var l=e.forwardRef(({className:r,...t},a$1)=>e.createElement("div",{ref:a$1,className:a("flex items-center p-4 sm:p-6 pt-3",r),...t}));l.displayName="CardFooter";var d=a$1(i);d.Header=n;d.Title=m;d.Description=c;d.Content=p;d.Footer=l;export{h as a,n as b,m as c,c as d,p as e,l as f,d as g};//# sourceMappingURL=chunk-VD6S2PE4.js.map
2
+ //# sourceMappingURL=chunk-VD6S2PE4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/core/card.tsx"],"names":["cardVariants","cva","CardComponent","className","variant","size","props","ref","cn","CardHeader","CardTitle","CardDescription","CardContent","CardFooter","Card","memo"],"mappings":"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","file":"chunk-VD6S2PE4.js","sourcesContent":["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../lib/utils\";\nimport { memo } from \"../../lib/memo\";\n\nconst cardVariants = cva(\n // Base styles with improved spacing and transitions\n \"rounded-lg border transition-all duration-200\",\n {\n variants: {\n variant: {\n // Enhanced default with better depth\n default: [\n \"border-border shadow-sm bg-card text-card-foreground\",\n \"hover:shadow-md hover:border-border\",\n ],\n // Enhanced elevated with better shadow\n elevated: [\n \"border-border shadow-lg bg-card text-card-foreground\",\n \"hover:shadow-xl hover:border-border\",\n ],\n // Enhanced outlined with better focus\n outlined: [\n \"border-2 border-border shadow-none bg-card text-card-foreground\",\n \"hover:border-primary hover:shadow-sm\",\n \"focus-within:border-primary focus-within:shadow-sm\",\n ],\n // Enhanced filled with better contrast\n filled: [\n \"border-border bg-muted text-card-foreground\",\n \"hover:bg-muted/80 hover:shadow-sm\",\n ],\n // Enhanced interactive with better feedback\n interactive: [\n \"border-border shadow-sm cursor-pointer bg-card text-card-foreground\",\n \"hover:shadow-md hover:border-primary hover:scale-[1.02]\",\n \"active:scale-[0.98] active:shadow-sm\",\n ],\n // Subtle variant for less prominent cards\n subtle: [\n \"border-border bg-muted/50 text-muted-foreground\",\n \"hover:bg-muted hover:border-border\",\n ],\n },\n size: {\n // Improved spacing for consistency\n sm: \"p-3\",\n default: \"p-4 sm:p-6\",\n lg: \"p-6 sm:p-8\",\n xl: \"p-8 sm:p-10\",\n none: \"p-0\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\nexport interface CardProps\n extends\n React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof cardVariants> {}\n\nconst CardComponent = React.forwardRef<HTMLDivElement, CardProps>(\n ({ className, variant, size, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(cardVariants({ variant, size, className }))}\n {...props}\n />\n ),\n);\nCardComponent.displayName = \"Card\";\n\n// Enhanced subcomponents with improved spacing\nconst CardHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex flex-col space-y-1.5 p-4 sm:p-6 pb-3\", className)}\n {...props}\n />\n));\nCardHeader.displayName = \"CardHeader\";\n\nconst CardTitle = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h3\n ref={ref}\n className={cn(\n \"text-xl sm:text-2xl font-semibold leading-none tracking-tight\",\n className,\n )}\n {...props}\n />\n));\nCardTitle.displayName = \"CardTitle\";\n\nconst CardDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nCardDescription.displayName = \"CardDescription\";\n\nconst CardContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-4 sm:p-6 pt-0\", className)} {...props} />\n));\nCardContent.displayName = \"CardContent\";\n\nconst CardFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex items-center p-4 sm:p-6 pt-3\", className)}\n {...props}\n />\n));\nCardFooter.displayName = \"CardFooter\";\n\nexport {\n CardHeader,\n CardFooter,\n CardTitle,\n CardDescription,\n CardContent,\n cardVariants,\n};\n\n// Memoize Card for performance optimization (after all subcomponents are defined)\nconst Card = memo(CardComponent) as typeof CardComponent & {\n Header: typeof CardHeader;\n Title: typeof CardTitle;\n Description: typeof CardDescription;\n Content: typeof CardContent;\n Footer: typeof CardFooter;\n};\n\n// Attach subcomponents to Card for compound component pattern\nCard.Header = CardHeader;\nCard.Title = CardTitle;\nCard.Description = CardDescription;\nCard.Content = CardContent;\nCard.Footer = CardFooter;\n\nexport { Card };\n"]}
@@ -0,0 +1,2 @@
1
+ import {a}from'./chunk-AC2JBXHQ.js';import*as e from'react';import {cva}from'class-variance-authority';import {House,CaretRight}from'phosphor-react';var v=cva("flex items-center space-x-1 text-sm text-muted-foreground",{variants:{variant:{default:"text-muted-foreground",compact:"text-xs"},separator:{default:"",slash:"",arrow:"",dot:""}},defaultVariants:{variant:"default",separator:"default"}}),H=cva("flex items-center",{variants:{variant:{default:"",current:"text-foreground font-medium",link:"hover:text-foreground transition-colors"}},defaultVariants:{variant:"default"}}),b=cva("flex-shrink-0 text-muted-foreground",{variants:{variant:{default:"mx-1",compact:"mx-0.5"}},defaultVariants:{variant:"default"}}),y=e.forwardRef(({className:a$1,variant:r,separator:t="default",items:c,showHome:u=false,homeHref:h="/",onItemClick:f,...x},g)=>{let p=()=>{switch(t){case "slash":return "/";case "arrow":return "\u2192";case "dot":return "\u2022";default:return e.createElement(CaretRight,{className:"h-4 w-4"})}},N=(n,o)=>{f&&f(n,o);},L=(n,o,i)=>{let l=n.current||i,m=e.createElement("span",{className:a(H({variant:l?"current":n.href?"link":"default"}))},n.label);return n.href&&!l?e.createElement("a",{href:n.href,className:"hover:text-foreground transition-colors",onClick:()=>N(n,o)},m):n.href&&l?e.createElement("a",{href:n.href,"aria-current":"page","aria-disabled":"true",tabIndex:-1,className:"hover:text-foreground transition-colors pointer-events-none"},m):e.createElement("span",{"aria-current":l?"page":void 0,className:l?"text-foreground font-medium":""},m)};return e.createElement("nav",{ref:g,"aria-label":"Breadcrumb",className:a(v({variant:r,separator:t}),a$1),...x},e.createElement("ol",{className:"flex items-center space-x-1"},u&&e.createElement(e.Fragment,null,e.createElement("li",null,e.createElement("a",{href:h,className:"hover:text-foreground transition-colors","aria-label":"Home"},e.createElement(House,{className:"h-4 w-4"}))),e.createElement("li",null,e.createElement("span",{role:"presentation","aria-hidden":"true",className:a(b({variant:r}))},p()))),c.map((n,o)=>{let i=o===c.length-1;return e.createElement("li",{key:o,className:"flex items-center"},L(n,o,i),!i&&e.createElement("span",{role:"presentation","aria-hidden":"true",className:a(b({variant:r}))},p()))})))});y.displayName="Breadcrumb";var E=e.forwardRef(({className:a$1,...r},t)=>e.createElement("ol",{ref:t,className:a("flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5",a$1),...r}));E.displayName="BreadcrumbList";var M=e.forwardRef(({className:a$1,...r},t)=>e.createElement("li",{ref:t,className:a("inline-flex items-center gap-1.5",a$1),...r}));M.displayName="BreadcrumbItem";var w=e.forwardRef(({asChild:a$1,className:r,...t},c)=>e.createElement(a$1?e.Fragment:"a",{ref:c,className:a("transition-colors hover:text-foreground",r),...t}));w.displayName="BreadcrumbLink";var T=e.forwardRef(({className:a$1,...r},t)=>e.createElement("span",{ref:t,role:"link","aria-disabled":"true","aria-current":"page",className:a("font-normal text-foreground",a$1),...r}));T.displayName="BreadcrumbPage";var k=({children:a$1,className:r,...t})=>e.createElement("li",{role:"presentation","aria-hidden":"true",className:a("[&>svg]:size-3.5",r),...t},a$1);k.displayName="BreadcrumbSeparator";var C=({className:a$1,...r})=>e.createElement("span",{role:"presentation","aria-hidden":"true",className:a("flex h-9 w-9 items-center justify-center",a$1),...r},e.createElement("span",{className:"sr-only"},"More"),e.createElement("span",null,"\u22EF"));C.displayName="BreadcrumbEllipsis";export{v as a,H as b,b as c,y as d,E as e,M as f,w as g,T as h,k as i,C as j};//# sourceMappingURL=chunk-VXMDVKAD.js.map
2
+ //# sourceMappingURL=chunk-VXMDVKAD.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/core/breadcrumb.tsx"],"names":["breadcrumbVariants","cva","breadcrumbItemVariants","breadcrumbSeparatorVariants","Breadcrumb","className","variant","separator","items","showHome","homeHref","onItemClick","props","ref","getSeparator","CaretRight","handleItemClick","item","index","renderItem","isLast","isCurrent","itemContent","cn","House","BreadcrumbList","BreadcrumbItem","BreadcrumbLink","asChild","BreadcrumbPage","BreadcrumbSeparator","children","BreadcrumbEllipsis"],"mappings":"yJAKMA,CAAAA,CAAqBC,GAAAA,CACzB,2DAAA,CACA,CACE,QAAA,CAAU,CACR,OAAA,CAAS,CACP,OAAA,CAAS,uBAAA,CACT,OAAA,CAAS,SACX,CAAA,CACA,SAAA,CAAW,CACT,OAAA,CAAS,GACT,KAAA,CAAO,EAAA,CACP,KAAA,CAAO,EAAA,CACP,GAAA,CAAK,EACP,CACF,CAAA,CACA,eAAA,CAAiB,CACf,OAAA,CAAS,SAAA,CACT,SAAA,CAAW,SACb,CACF,CACF,EAEMC,CAAAA,CAAyBD,GAAAA,CAC7B,mBAAA,CACA,CACE,QAAA,CAAU,CACR,OAAA,CAAS,CACP,OAAA,CAAS,EAAA,CACT,OAAA,CAAS,6BAAA,CACT,IAAA,CAAM,yCACR,CACF,CAAA,CACA,gBAAiB,CACf,OAAA,CAAS,SACX,CACF,CACF,CAAA,CAEME,CAAAA,CAA8BF,GAAAA,CAClC,qCAAA,CACA,CACE,QAAA,CAAU,CACR,OAAA,CAAS,CACP,OAAA,CAAS,MAAA,CACT,QAAS,QACX,CACF,CAAA,CACA,eAAA,CAAiB,CACf,OAAA,CAAS,SACX,CACF,CACF,CAAA,CAkBMG,CAAAA,CAAmB,CAAA,CAAA,UAAA,CACvB,CACE,CACE,SAAA,CAAAC,GAAAA,CACA,QAAAC,CAAAA,CACA,SAAA,CAAAC,CAAAA,CAAY,SAAA,CACZ,KAAA,CAAAC,CAAAA,CACA,QAAA,CAAAC,CAAAA,CAAW,KAAA,CACX,QAAA,CAAAC,CAAAA,CAAW,GAAA,CACX,WAAA,CAAAC,CAAAA,CACA,GAAGC,CACL,EACAC,CAAAA,GACG,CACH,IAAMC,CAAAA,CAAe,IAAM,CACzB,OAAQP,CAAAA,EACN,KAAK,OAAA,CACH,OAAO,GAAA,CACT,KAAK,OAAA,CACH,OAAO,SACT,KAAK,KAAA,CACH,OAAO,QAAA,CACT,QACE,OAAO,CAAA,CAAA,aAAA,CAACQ,UAAAA,CAAA,CAAW,SAAA,CAAU,SAAA,CAAU,CAC3C,CACF,CAAA,CAEMC,CAAAA,CAAkB,CAACC,EAAuBC,CAAAA,GAAkB,CAC5DP,CAAAA,EACFA,CAAAA,CAAYM,CAAAA,CAAMC,CAAK,EAE3B,CAAA,CAEMC,CAAAA,CAAa,CAACF,CAAAA,CAAuBC,CAAAA,CAAeE,CAAAA,GAAoB,CAC5E,IAAMC,CAAAA,CAAYJ,EAAK,OAAA,EAAWG,CAAAA,CAC5BE,CAAAA,CACJ,CAAA,CAAA,aAAA,CAAC,MAAA,CAAA,CACC,SAAA,CAAWC,CAAAA,CACTrB,CAAAA,CAAuB,CACrB,OAAA,CAASmB,CAAAA,CAAY,SAAA,CAAYJ,CAAAA,CAAK,IAAA,CAAO,MAAA,CAAS,SACxD,CAAC,CACH,CAAA,CAAA,CAECA,CAAAA,CAAK,KACR,CAAA,CAGF,OAAIA,CAAAA,CAAK,IAAA,EAAQ,CAACI,CAAAA,CAEd,CAAA,CAAA,aAAA,CAAC,GAAA,CAAA,CACC,IAAA,CAAMJ,CAAAA,CAAK,IAAA,CACX,SAAA,CAAU,0CACV,OAAA,CAAS,IAAMD,CAAAA,CAAgBC,CAAAA,CAAMC,CAAK,CAAA,CAAA,CAEzCI,CACH,CAAA,CAIAL,CAAAA,CAAK,IAAA,EAAQI,CAAAA,CAEb,CAAA,CAAA,aAAA,CAAC,GAAA,CAAA,CACC,IAAA,CAAMJ,CAAAA,CAAK,IAAA,CACX,eAAa,MAAA,CACb,eAAA,CAAc,MAAA,CACd,QAAA,CAAU,EAAA,CACV,SAAA,CAAU,6DAAA,CAAA,CAETK,CACH,CAAA,CAKF,CAAA,CAAA,aAAA,CAAC,MAAA,CAAA,CACC,cAAA,CAAcD,CAAAA,CAAY,MAAA,CAAS,MAAA,CACnC,SAAA,CAAWA,EAAY,6BAAA,CAAgC,EAAA,CAAA,CAEtDC,CACH,CAEJ,CAAA,CAEA,OACE,CAAA,CAAA,aAAA,CAAC,KAAA,CAAA,CACC,GAAA,CAAKT,CAAAA,CACL,YAAA,CAAW,YAAA,CACX,SAAA,CAAWU,CAAAA,CAAGvB,CAAAA,CAAmB,CAAE,QAAAM,CAAAA,CAAS,SAAA,CAAAC,CAAU,CAAC,CAAA,CAAGF,GAAS,CAAA,CAClE,GAAGO,GAEJ,CAAA,CAAA,aAAA,CAAC,IAAA,CAAA,CAAG,SAAA,CAAU,6BAAA,CAAA,CACXH,CAAAA,EACC,CAAA,CAAA,aAAA,CAAA,CAAA,CAAA,QAAA,CAAA,IAAA,CACE,CAAA,CAAA,aAAA,CAAC,IAAA,CAAA,IAAA,CACC,gBAAC,GAAA,CAAA,CACC,IAAA,CAAMC,CAAAA,CACN,SAAA,CAAU,yCAAA,CACV,YAAA,CAAW,MAAA,CAAA,CAEX,CAAA,CAAA,aAAA,CAACc,KAAAA,CAAA,CAAM,SAAA,CAAU,SAAA,CAAU,CAC7B,CACF,CAAA,CACA,CAAA,CAAA,aAAA,CAAC,UACC,CAAA,CAAA,aAAA,CAAC,MAAA,CAAA,CAAK,IAAA,CAAK,cAAA,CAAe,aAAA,CAAY,MAAA,CAAO,SAAA,CAAWD,CAAAA,CAAGpB,CAAAA,CAA4B,CAAE,OAAA,CAAAG,CAAQ,CAAC,CAAC,CAAA,CAAA,CAChGQ,CAAAA,EACH,CACF,CACF,CAAA,CAEDN,CAAAA,CAAM,GAAA,CAAI,CAACS,CAAAA,CAAMC,CAAAA,GAAU,CAC1B,IAAME,CAAAA,CAASF,CAAAA,GAAUV,CAAAA,CAAM,MAAA,CAAS,CAAA,CACxC,OACE,gBAAC,IAAA,CAAA,CAAG,GAAA,CAAKU,CAAAA,CAAO,SAAA,CAAU,mBAAA,CAAA,CACvBC,CAAAA,CAAWF,CAAAA,CAAMC,CAAAA,CAAOE,CAAM,CAAA,CAC9B,CAACA,CAAAA,EACA,CAAA,CAAA,aAAA,CAAC,MAAA,CAAA,CAAK,IAAA,CAAK,cAAA,CAAe,cAAY,MAAA,CAAO,SAAA,CAAWG,CAAAA,CAAGpB,CAAAA,CAA4B,CAAE,OAAA,CAAAG,CAAQ,CAAC,CAAC,CAAA,CAAA,CAChGQ,CAAAA,EACH,CAEJ,CAEJ,CAAC,CACH,CACF,CAEJ,CACF,EACAV,CAAAA,CAAW,WAAA,CAAc,YAAA,CAGzB,IAAMqB,CAAAA,CAAuB,CAAA,CAAA,UAAA,CAG3B,CAAC,CAAE,SAAA,CAAApB,GAAAA,CAAW,GAAGO,CAAM,CAAA,CAAGC,IAC1B,CAAA,CAAA,aAAA,CAAC,IAAA,CAAA,CACC,GAAA,CAAKA,CAAAA,CACL,SAAA,CAAWU,CAAAA,CAAG,0FAAA,CAA4FlB,GAAS,CAAA,CAClH,GAAGO,CAAAA,CACN,CACD,EACDa,CAAAA,CAAe,WAAA,CAAc,gBAAA,KAEvBC,CAAAA,CAAuB,CAAA,CAAA,UAAA,CAG3B,CAAC,CAAE,SAAA,CAAArB,GAAAA,CAAW,GAAGO,CAAM,CAAA,CAAGC,CAAAA,GAC1B,CAAA,CAAA,aAAA,CAAC,IAAA,CAAA,CACC,GAAA,CAAKA,CAAAA,CACL,SAAA,CAAWU,CAAAA,CAAG,mCAAoClB,GAAS,CAAA,CAC1D,GAAGO,CAAAA,CACN,CACD,EACDc,CAAAA,CAAe,WAAA,CAAc,gBAAA,CAE7B,IAAMC,CAAAA,CAAuB,CAAA,CAAA,UAAA,CAK3B,CAAC,CAAE,OAAA,CAAAC,GAAAA,CAAS,UAAAvB,CAAAA,CAAW,GAAGO,CAAM,CAAA,CAAGC,CAAAA,GAGjC,CAAA,CAAA,aAAA,CAFWe,GAAAA,CAAgB,CAAA,CAAA,QAAA,CAAW,GAAA,CAErC,CACC,GAAA,CAAKf,CAAAA,CACL,SAAA,CAAWU,CAAAA,CAAG,yCAAA,CAA2ClB,CAAS,EACjE,GAAGO,CAAAA,CACN,CAEH,EACDe,CAAAA,CAAe,WAAA,CAAc,gBAAA,CAE7B,IAAME,CAAAA,CAAuB,CAAA,CAAA,UAAA,CAG3B,CAAC,CAAE,SAAA,CAAAxB,GAAAA,CAAW,GAAGO,CAAM,EAAGC,CAAAA,GAC1B,CAAA,CAAA,aAAA,CAAC,MAAA,CAAA,CACC,GAAA,CAAKA,CAAAA,CACL,IAAA,CAAK,MAAA,CACL,eAAA,CAAc,MAAA,CACd,cAAA,CAAa,MAAA,CACb,SAAA,CAAWU,CAAAA,CAAG,6BAAA,CAA+BlB,GAAS,CAAA,CACrD,GAAGO,CAAAA,CACN,CACD,EACDiB,CAAAA,CAAe,WAAA,CAAc,gBAAA,CAE7B,IAAMC,CAAAA,CAAsB,CAAC,CAC3B,QAAA,CAAAC,GAAAA,CACA,SAAA,CAAA1B,CAAAA,CACA,GAAGO,CACL,IACE,CAAA,CAAA,aAAA,CAAC,IAAA,CAAA,CACC,IAAA,CAAK,cAAA,CACL,aAAA,CAAY,MAAA,CACZ,SAAA,CAAWW,CAAAA,CAAG,kBAAA,CAAoBlB,CAAS,CAAA,CAC1C,GAAGO,CAAAA,CAAAA,CAEHmB,GACH,EAEFD,CAAAA,CAAoB,YAAc,qBAAA,CAElC,IAAME,CAAAA,CAAqB,CAAC,CAC1B,SAAA,CAAA3B,GAAAA,CACA,GAAGO,CACL,CAAA,GACE,CAAA,CAAA,aAAA,CAAC,MAAA,CAAA,CACC,IAAA,CAAK,cAAA,CACL,aAAA,CAAY,MAAA,CACZ,UAAWW,CAAAA,CAAG,0CAAA,CAA4ClB,GAAS,CAAA,CAClE,GAAGO,CAAAA,CAAAA,CAEJ,CAAA,CAAA,aAAA,CAAC,MAAA,CAAA,CAAK,UAAU,SAAA,CAAA,CAAU,MAAI,CAAA,CAC9B,CAAA,CAAA,aAAA,CAAC,MAAA,CAAA,IAAA,CAAK,QAAC,CACT,EAEFoB,EAAmB,WAAA,CAAc,oBAAA","file":"chunk-VXMDVKAD.js","sourcesContent":["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../lib/utils\";\nimport { CaretRight, House } from \"phosphor-react\";\n\nconst breadcrumbVariants = cva(\n \"flex items-center space-x-1 text-sm text-muted-foreground\",\n {\n variants: {\n variant: {\n default: \"text-muted-foreground\",\n compact: \"text-xs\",\n },\n separator: {\n default: \"\",\n slash: \"\",\n arrow: \"\",\n dot: \"\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n separator: \"default\",\n },\n }\n);\n\nconst breadcrumbItemVariants = cva(\n \"flex items-center\",\n {\n variants: {\n variant: {\n default: \"\",\n current: \"text-foreground font-medium\",\n link: \"hover:text-foreground transition-colors\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nconst breadcrumbSeparatorVariants = cva(\n \"flex-shrink-0 text-muted-foreground\",\n {\n variants: {\n variant: {\n default: \"mx-1\",\n compact: \"mx-0.5\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nexport interface BreadcrumbEntry {\n label: string;\n href?: string;\n current?: boolean;\n}\n\nexport interface BreadcrumbProps\n extends React.HTMLAttributes<HTMLElement>,\n VariantProps<typeof breadcrumbVariants> {\n items: BreadcrumbEntry[];\n separator?: \"default\" | \"slash\" | \"arrow\" | \"dot\";\n showHome?: boolean;\n homeHref?: string;\n onItemClick?: (item: BreadcrumbEntry, index: number) => void;\n}\n\nconst Breadcrumb = React.forwardRef<HTMLElement, BreadcrumbProps>(\n (\n {\n className,\n variant,\n separator = \"default\",\n items,\n showHome = false,\n homeHref = \"/\",\n onItemClick,\n ...props\n },\n ref\n ) => {\n const getSeparator = () => {\n switch (separator) {\n case \"slash\":\n return \"/\";\n case \"arrow\":\n return \"→\";\n case \"dot\":\n return \"•\";\n default:\n return <CaretRight className=\"h-4 w-4\" />;\n }\n };\n\n const handleItemClick = (item: BreadcrumbEntry, index: number) => {\n if (onItemClick) {\n onItemClick(item, index);\n }\n };\n\n const renderItem = (item: BreadcrumbEntry, index: number, isLast: boolean) => {\n const isCurrent = item.current || isLast;\n const itemContent = (\n <span\n className={cn(\n breadcrumbItemVariants({\n variant: isCurrent ? \"current\" : item.href ? \"link\" : \"default\",\n })\n )}\n >\n {item.label}\n </span>\n );\n\n if (item.href && !isCurrent) {\n return (\n <a\n href={item.href}\n className=\"hover:text-foreground transition-colors\"\n onClick={() => handleItemClick(item, index)}\n >\n {itemContent}\n </a>\n );\n }\n\n if (item.href && isCurrent) {\n return (\n <a\n href={item.href}\n aria-current=\"page\"\n aria-disabled=\"true\"\n tabIndex={-1}\n className=\"hover:text-foreground transition-colors pointer-events-none\"\n >\n {itemContent}\n </a>\n );\n }\n\n return (\n <span\n aria-current={isCurrent ? \"page\" : undefined}\n className={isCurrent ? \"text-foreground font-medium\" : \"\"}\n >\n {itemContent}\n </span>\n );\n };\n\n return (\n <nav\n ref={ref}\n aria-label=\"Breadcrumb\"\n className={cn(breadcrumbVariants({ variant, separator }), className)}\n {...props}\n >\n <ol className=\"flex items-center space-x-1\">\n {showHome && (\n <>\n <li>\n <a\n href={homeHref}\n className=\"hover:text-foreground transition-colors\"\n aria-label=\"Home\"\n >\n <House className=\"h-4 w-4\" />\n </a>\n </li>\n <li>\n <span role=\"presentation\" aria-hidden=\"true\" className={cn(breadcrumbSeparatorVariants({ variant }))}>\n {getSeparator()}\n </span>\n </li>\n </>\n )}\n {items.map((item, index) => {\n const isLast = index === items.length - 1;\n return (\n <li key={index} className=\"flex items-center\">\n {renderItem(item, index, isLast)}\n {!isLast && (\n <span role=\"presentation\" aria-hidden=\"true\" className={cn(breadcrumbSeparatorVariants({ variant }))}>\n {getSeparator()}\n </span>\n )}\n </li>\n );\n })}\n </ol>\n </nav>\n );\n }\n);\nBreadcrumb.displayName = \"Breadcrumb\";\n\n// Individual components for more flexibility\nconst BreadcrumbList = React.forwardRef<\n HTMLOListElement,\n React.HTMLAttributes<HTMLOListElement>\n>(({ className, ...props }, ref) => (\n <ol\n ref={ref}\n className={cn(\"flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5\", className)}\n {...props}\n />\n));\nBreadcrumbList.displayName = \"BreadcrumbList\";\n\nconst BreadcrumbItem = React.forwardRef<\n HTMLLIElement,\n React.HTMLAttributes<HTMLLIElement>\n>(({ className, ...props }, ref) => (\n <li\n ref={ref}\n className={cn(\"inline-flex items-center gap-1.5\", className)}\n {...props}\n />\n));\nBreadcrumbItem.displayName = \"BreadcrumbItem\";\n\nconst BreadcrumbLink = React.forwardRef<\n HTMLAnchorElement,\n React.AnchorHTMLAttributes<HTMLAnchorElement> & {\n asChild?: boolean;\n }\n>(({ asChild, className, ...props }, ref) => {\n const Comp = asChild ? React.Fragment : \"a\";\n return (\n <Comp\n ref={ref}\n className={cn(\"transition-colors hover:text-foreground\", className)}\n {...props}\n />\n );\n});\nBreadcrumbLink.displayName = \"BreadcrumbLink\";\n\nconst BreadcrumbPage = React.forwardRef<\n HTMLSpanElement,\n React.HTMLAttributes<HTMLSpanElement>\n>(({ className, ...props }, ref) => (\n <span\n ref={ref}\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn(\"font-normal text-foreground\", className)}\n {...props}\n />\n));\nBreadcrumbPage.displayName = \"BreadcrumbPage\";\n\nconst BreadcrumbSeparator = ({\n children,\n className,\n ...props\n}: React.ComponentProps<\"li\">) => (\n <li\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"[&>svg]:size-3.5\", className)}\n {...props}\n >\n {children}\n </li>\n);\nBreadcrumbSeparator.displayName = \"BreadcrumbSeparator\";\n\nconst BreadcrumbEllipsis = ({\n className,\n ...props\n}: React.ComponentProps<\"span\">) => (\n <span\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"flex h-9 w-9 items-center justify-center\", className)}\n {...props}\n >\n <span className=\"sr-only\">More</span>\n <span>⋯</span>\n </span>\n);\nBreadcrumbEllipsis.displayName = \"BreadcrumbEllipsis\";\n\nexport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n breadcrumbVariants,\n breadcrumbItemVariants,\n breadcrumbSeparatorVariants,\n};\n"]}
@@ -0,0 +1,2 @@
1
+ import {a}from'./chunk-AC2JBXHQ.js';import*as e from'react';import {cva}from'class-variance-authority';var V=cva("grid gap-2",{variants:{orientation:{vertical:"grid-cols-1",horizontal:"grid-cols-2 sm:grid-cols-3 md:grid-cols-4"}},defaultVariants:{orientation:"vertical"}}),w=cva("peer h-4 w-4 shrink-0 rounded-full border border-border shadow-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground data-[state=checked]:border-primary transition-all duration-200",{variants:{variant:{default:"border-border hover:border-border data-[state=checked]:bg-primary data-[state=checked]:border-primary",error:"border-destructive focus-visible:ring-destructive data-[state=checked]:bg-destructive data-[state=checked]:border-destructive",success:"border-success-500 focus-visible:ring-success-500 data-[state=checked]:bg-success-500 data-[state=checked]:border-success-500"},size:{default:"h-4 w-4",sm:"h-3 w-3",lg:"h-5 w-5"}},defaultVariants:{variant:"default",size:"default"}}),E=e.forwardRef(({className:u,error:t,helperText:r,label:s,required:d,orientation:p,name:m,defaultValue:o,value:n,onValueChange:l,disabled:b,children:c,...f},v)=>{let g=e.useId(),h=s?`${g}-label`:void 0,R=r?`${g}-helper`:void 0,y=t?`${g}-error`:void 0,x=a=>{l&&l(a.target.value);};return e.createElement("div",{className:"space-y-2"},s&&e.createElement("label",{id:h,className:"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"},s,d&&e.createElement("span",{className:"text-error-500 ml-1"},"*")),e.createElement("div",{ref:v,className:a(V({orientation:p,className:u})),role:"radiogroup","aria-labelledby":h,"aria-describedby":a(R,y)||void 0,"aria-invalid":t,...f},e.Children.map(c,a=>{if(e.isValidElement(a)){let k=n!==void 0,P={name:m,disabled:!!(b??a.props.disabled),variant:t?"error":a.props.variant,...k?{checked:n===a.props.value}:{defaultChecked:o===a.props.value},onChange:x};return e.cloneElement(a,P)}return a})),r&&e.createElement("p",{id:R,className:a("text-sm text-muted-foreground",t&&"text-destructive")},r))});E.displayName="RadioGroup";var N=e.forwardRef(({className:u,variant:t,size:r,value:s,label:d,disabled:p,id:m,onChange:o,...n},l)=>{let b=e.useId(),c=m||b,f=v=>{o&&o(v);};return e.createElement("div",{className:"flex items-center space-x-2"},e.createElement("input",{type:"radio",className:a(w({variant:t,size:r,className:u})),ref:l,id:c,value:s,disabled:p,onChange:f,...n}),d&&e.createElement("label",{htmlFor:c,className:"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"},d))});N.displayName="RadioItem";export{V as a,w as b,E as c,N as d};//# sourceMappingURL=chunk-WW2DDHCI.js.map
2
+ //# sourceMappingURL=chunk-WW2DDHCI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/core/radio-group.tsx"],"names":["radioGroupVariants","cva","radioItemVariants","RadioGroup","className","error","helperText","label","required","orientation","name","defaultValue","value","onValueChange","disabled","children","props","ref","radioGroupId","labelId","helperTextId","errorId","handleChange","event","cn","child","isControlled","childProps","RadioItem","variant","radioSize","id","onChange","generatedId","radioId"],"mappings":"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","file":"chunk-WW2DDHCI.js","sourcesContent":["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../lib/utils\";\n\nconst radioGroupVariants = cva(\"grid gap-2\", {\n variants: {\n orientation: {\n vertical: \"grid-cols-1\",\n horizontal: \"grid-cols-2 sm:grid-cols-3 md:grid-cols-4\",\n },\n },\n defaultVariants: {\n orientation: \"vertical\",\n },\n});\n\nconst radioItemVariants = cva(\n \"peer h-4 w-4 shrink-0 rounded-full border border-border shadow-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground data-[state=checked]:border-primary transition-all duration-200\",\n {\n variants: {\n variant: {\n default:\n \"border-border hover:border-border data-[state=checked]:bg-primary data-[state=checked]:border-primary\",\n error:\n \"border-destructive focus-visible:ring-destructive data-[state=checked]:bg-destructive data-[state=checked]:border-destructive\",\n success:\n \"border-success-500 focus-visible:ring-success-500 data-[state=checked]:bg-success-500 data-[state=checked]:border-success-500\",\n },\n size: {\n default: \"h-4 w-4\",\n sm: \"h-3 w-3\",\n lg: \"h-5 w-5\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\nexport interface RadioGroupProps\n extends\n React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof radioGroupVariants> {\n /**\n * Whether the radio group is in an error state\n * @default false\n */\n error?: boolean;\n /**\n * Helper text to display below the radio group\n */\n helperText?: string;\n /**\n * Label text for the radio group\n */\n label?: string;\n /**\n * Whether the radio group is required\n * @default false\n */\n required?: boolean;\n /**\n * The name attribute for all radio buttons in the group\n */\n name?: string;\n /**\n * The default value of the radio group\n */\n defaultValue?: string;\n /**\n * The controlled value of the radio group\n */\n value?: string;\n /**\n * Callback fired when the value changes\n */\n onValueChange?: (value: string) => void;\n /**\n * Whether the radio group is disabled\n * @default false\n */\n disabled?: boolean;\n}\n\nexport interface RadioItemProps\n extends\n Omit<React.InputHTMLAttributes<HTMLInputElement>, \"size\">,\n VariantProps<typeof radioItemVariants> {\n /**\n * The value of the radio item\n */\n value: string;\n /**\n * The label for the radio item\n */\n label?: string;\n /**\n * Whether the radio item is disabled\n * @default false\n */\n disabled?: boolean;\n}\n\nconst RadioGroup = React.forwardRef<HTMLDivElement, RadioGroupProps>(\n (\n {\n className,\n error,\n helperText,\n label,\n required,\n orientation,\n name,\n defaultValue,\n value,\n onValueChange,\n disabled,\n children,\n ...props\n },\n ref,\n ) => {\n const radioGroupId = React.useId();\n const labelId = label ? `${radioGroupId}-label` : undefined;\n const helperTextId = helperText ? `${radioGroupId}-helper` : undefined;\n const errorId = error ? `${radioGroupId}-error` : undefined;\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (onValueChange) {\n onValueChange(event.target.value);\n }\n };\n\n return (\n <div className=\"space-y-2\">\n {label && (\n <label\n id={labelId}\n className=\"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\"\n >\n {label}\n {required && <span className=\"text-error-500 ml-1\">*</span>}\n </label>\n )}\n <div\n ref={ref}\n className={cn(radioGroupVariants({ orientation, className }))}\n role=\"radiogroup\"\n aria-labelledby={labelId}\n aria-describedby={cn(helperTextId, errorId) || undefined}\n aria-invalid={error}\n {...props}\n >\n {React.Children.map(children, (child) => {\n if (React.isValidElement<RadioItemProps>(child)) {\n // Use controlled mode if value is provided, otherwise use uncontrolled\n const isControlled = value !== undefined;\n\n const childProps: Partial<RadioItemProps> = {\n name,\n disabled: Boolean(disabled ?? child.props.disabled),\n variant: error ? \"error\" : child.props.variant,\n ...(isControlled\n ? { checked: value === child.props.value }\n : { defaultChecked: defaultValue === child.props.value }),\n onChange: handleChange,\n };\n\n return React.cloneElement(child, childProps);\n }\n return child;\n })}\n </div>\n {helperText && (\n <p\n id={helperTextId}\n className={cn(\n \"text-sm text-muted-foreground\",\n error && \"text-destructive\",\n )}\n >\n {helperText}\n </p>\n )}\n </div>\n );\n },\n);\nRadioGroup.displayName = \"RadioGroup\";\n\nconst RadioItem = React.forwardRef<HTMLInputElement, RadioItemProps>(\n (\n {\n className,\n variant,\n size: radioSize,\n value,\n label,\n disabled,\n id,\n onChange,\n ...props\n },\n ref,\n ) => {\n const generatedId = React.useId();\n const radioId = id || generatedId;\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (onChange) {\n onChange(event);\n }\n };\n\n return (\n <div className=\"flex items-center space-x-2\">\n <input\n type=\"radio\"\n className={cn(\n radioItemVariants({ variant, size: radioSize, className }),\n )}\n ref={ref}\n id={radioId}\n value={value}\n disabled={disabled}\n onChange={handleChange}\n {...props}\n />\n {label && (\n <label\n htmlFor={radioId}\n className=\"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\"\n >\n {label}\n </label>\n )}\n </div>\n );\n },\n);\nRadioItem.displayName = \"RadioItem\";\n\nexport { RadioGroup, RadioItem, radioGroupVariants, radioItemVariants };\n"]}
@@ -0,0 +1,2 @@
1
+ 'use strict';var chunkITRGJNWL_cjs=require('./chunk-ITRGJNWL.cjs'),e=require('react'),classVarianceAuthority=require('class-variance-authority');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var e__namespace=/*#__PURE__*/_interopNamespace(e);var d=classVarianceAuthority.cva("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 transition-all duration-200",{variants:{variant:{default:"text-foreground",muted:"text-muted-foreground",error:"text-destructive",success:"text-success-600",warning:"text-warning-600",info:"text-info-600"},size:{sm:"text-xs",default:"text-sm",lg:"text-base"},weight:{normal:"font-normal",medium:"font-medium",semibold:"font-semibold",bold:"font-bold"}},defaultVariants:{variant:"default",size:"default",weight:"medium"}}),m=e__namespace.forwardRef(({className:a,variant:r,size:o,weight:n,...i},l)=>e__namespace.createElement("label",{ref:l,className:chunkITRGJNWL_cjs.a(d({variant:r,size:o,weight:n}),a),...i}));m.displayName="Label";exports.a=d;exports.b=m;//# sourceMappingURL=chunk-XPIBRXTW.cjs.map
2
+ //# sourceMappingURL=chunk-XPIBRXTW.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/core/label.tsx"],"names":["labelVariants","cva","Label","e","className","variant","size","weight","props","ref","cn"],"mappings":"ufAIA,IAAMA,EAAgBC,0BAAAA,CACpB,wHAAA,CACA,CACE,QAAA,CAAU,CACR,QAAS,CACP,OAAA,CAAS,kBACT,KAAA,CAAO,uBAAA,CACP,KAAA,CAAO,kBAAA,CACP,OAAA,CAAS,kBAAA,CACT,QAAS,kBAAA,CACT,IAAA,CAAM,eACR,CAAA,CACA,IAAA,CAAM,CACJ,EAAA,CAAI,SAAA,CACJ,OAAA,CAAS,SAAA,CACT,EAAA,CAAI,WACN,EACA,MAAA,CAAQ,CACN,OAAQ,aAAA,CACR,MAAA,CAAQ,cACR,QAAA,CAAU,eAAA,CACV,IAAA,CAAM,WACR,CACF,CAAA,CACA,gBAAiB,CACf,OAAA,CAAS,UACT,IAAA,CAAM,SAAA,CACN,OAAQ,QACV,CACF,CACF,CAAA,CAMMC,CAAAA,CAAcC,YAAA,CAAA,UAAA,CAClB,CAAC,CAAE,SAAA,CAAAC,EAAW,OAAA,CAAAC,CAAAA,CAAS,KAAAC,CAAAA,CAAM,MAAA,CAAAC,CAAAA,CAAQ,GAAGC,CAAM,CAAA,CAAGC,IAC/CN,YAAA,CAAA,aAAA,CAAC,OAAA,CAAA,CACC,IAAKM,CAAAA,CACL,SAAA,CAAWC,oBAAGV,CAAAA,CAAc,CAAE,OAAA,CAAAK,CAAAA,CAAS,IAAA,CAAAC,CAAAA,CAAM,OAAAC,CAAO,CAAC,EAAGH,CAAS,CAAA,CAChE,GAAGI,CAAAA,CACN,CAEJ,EACAN,CAAAA,CAAM,WAAA,CAAc,OAAA","file":"chunk-XPIBRXTW.cjs","sourcesContent":["import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\n\nconst labelVariants = cva(\n 'text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 transition-all duration-200',\n {\n variants: {\n variant: {\n default: 'text-foreground',\n muted: 'text-muted-foreground',\n error: 'text-destructive',\n success: 'text-success-600',\n warning: 'text-warning-600',\n info: 'text-info-600',\n },\n size: {\n sm: 'text-xs',\n default: 'text-sm',\n lg: 'text-base',\n },\n weight: {\n normal: 'font-normal',\n medium: 'font-medium',\n semibold: 'font-semibold',\n bold: 'font-bold',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n weight: 'medium',\n },\n }\n);\n\nexport interface LabelProps\n extends React.LabelHTMLAttributes<HTMLLabelElement>,\n VariantProps<typeof labelVariants> {}\n\nconst Label = React.forwardRef<HTMLLabelElement, LabelProps>(\n ({ className, variant, size, weight, ...props }, ref) => (\n <label\n ref={ref}\n className={cn(labelVariants({ variant, size, weight }), className)}\n {...props}\n />\n )\n);\nLabel.displayName = 'Label';\n\nexport { Label, labelVariants };\n"]}
@@ -0,0 +1,2 @@
1
+ import {a}from'./chunk-AC2JBXHQ.js';import*as e from'react';import {cva}from'class-variance-authority';var d=cva("text-sm flex items-center gap-2 transition-all duration-200",{variants:{variant:{default:"text-destructive",inline:"text-destructive text-xs",subtle:"text-destructive/80",strong:"text-destructive font-semibold"},size:{sm:"text-xs",default:"text-sm",lg:"text-base"}},defaultVariants:{variant:"default",size:"default"}}),f=e.forwardRef(({className:r,variant:a$1,size:s,children:i,...o},n)=>e.createElement("div",{ref:n,className:a(d({variant:a$1,size:s}),r),role:"alert","aria-live":"polite",...o},i));f.displayName="ErrorMessage";export{d as a,f as b};//# sourceMappingURL=chunk-XQUZ7DUN.js.map
2
+ //# sourceMappingURL=chunk-XQUZ7DUN.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/core/error-message.tsx"],"names":["errorMessageVariants","cva","ErrorMessage","className","variant","size","children","props","ref","cn"],"mappings":"2GAIMA,CAAAA,CAAuBC,GAAAA,CAC3B,6DAAA,CACA,CACE,SAAU,CACR,OAAA,CAAS,CACP,OAAA,CAAS,kBAAA,CACT,OAAQ,0BAAA,CACR,MAAA,CAAQ,qBAAA,CACR,MAAA,CAAQ,gCACV,CAAA,CACA,IAAA,CAAM,CACJ,EAAA,CAAI,SAAA,CACJ,QAAS,SAAA,CACT,EAAA,CAAI,WACN,CACF,EACA,eAAA,CAAiB,CACf,QAAS,SAAA,CACT,IAAA,CAAM,SACR,CACF,CACF,CAAA,CAMMC,CAAAA,CAAqB,aACzB,CAAC,CAAE,UAAAC,CAAAA,CAAW,OAAA,CAAAC,IAAS,IAAA,CAAAC,CAAAA,CAAM,QAAA,CAAAC,CAAAA,CAAU,GAAGC,CAAM,CAAA,CAAGC,IACjD,CAAA,CAAA,aAAA,CAAC,KAAA,CAAA,CACC,IAAKA,CAAAA,CACL,SAAA,CAAWC,CAAAA,CAAGT,CAAAA,CAAqB,CAAE,OAAA,CAAAI,GAAAA,CAAS,KAAAC,CAAK,CAAC,EAAGF,CAAS,CAAA,CAChE,KAAK,OAAA,CACL,WAAA,CAAU,SACT,GAAGI,CAAAA,CAAAA,CAEHD,CACH,CAEJ,EACAJ,EAAa,WAAA,CAAc,cAAA","file":"chunk-XQUZ7DUN.js","sourcesContent":["import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\n\nconst errorMessageVariants = cva(\n 'text-sm flex items-center gap-2 transition-all duration-200',\n {\n variants: {\n variant: {\n default: 'text-destructive',\n inline: 'text-destructive text-xs',\n subtle: 'text-destructive/80',\n strong: 'text-destructive font-semibold',\n },\n size: {\n sm: 'text-xs',\n default: 'text-sm',\n lg: 'text-base',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n }\n);\n\nexport interface ErrorMessageProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof errorMessageVariants> {}\n\nconst ErrorMessage = React.forwardRef<HTMLDivElement, ErrorMessageProps>(\n ({ className, variant, size, children, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(errorMessageVariants({ variant, size }), className)}\n role=\"alert\"\n aria-live=\"polite\"\n {...props}\n >\n {children}\n </div>\n )\n);\nErrorMessage.displayName = 'ErrorMessage';\n\nexport { ErrorMessage, errorMessageVariants };\n"]}
@@ -0,0 +1,2 @@
1
+ import {a as a$1}from'./chunk-COXN6XBA.js';import {a}from'./chunk-AC2JBXHQ.js';import*as e from'react';import {cva}from'class-variance-authority';var n=cva("relative flex shrink-0 overflow-hidden rounded-full transition-all duration-200 shadow-sm hover:shadow-md",{variants:{size:{sm:"h-8 w-8",default:"h-10 w-10",lg:"h-12 w-12",xl:"h-16 w-16"},variant:{default:"shadow-sm hover:shadow-md",elevated:"shadow-lg hover:shadow-xl",outline:"border-2 border-border shadow-sm hover:border-primary hover:shadow-md",filled:"bg-muted shadow-sm hover:shadow-md",interactive:"shadow-sm hover:shadow-md cursor-pointer hover:scale-105"}},defaultVariants:{size:"default",variant:"default"}}),u=e.forwardRef(({className:a$1,size:t,variant:r,src:s,alt:w,fallback:g,children:l,...m},d)=>{let[p,i]=e.useState(false);return e.useEffect(()=>{i(false);},[s]),l?e.createElement("div",{ref:d,className:a(n({size:t,variant:r}),a$1),...m},l):e.createElement("div",{ref:d,className:a(n({size:t,variant:r}),a$1),...m},s&&!p?e.createElement("img",{src:s,alt:w,className:"aspect-square h-full w-full object-cover",onError:()=>i(true)}):e.createElement("div",{className:"flex h-full w-full items-center justify-center rounded-full bg-muted text-sm font-medium text-muted-foreground"},g))});u.displayName="Avatar";var c=e.forwardRef(({className:a$1,...t},r)=>e.createElement("img",{ref:r,className:a("aspect-square h-full w-full object-cover",a$1),...t}));c.displayName="AvatarImage";var v=e.forwardRef(({className:a$1,...t},r)=>e.createElement("div",{ref:r,className:a("flex h-full w-full items-center justify-center rounded-full bg-muted text-sm font-medium text-muted-foreground",a$1),...t}));v.displayName="AvatarFallback";var h=a$1(u);h.Image=c;h.Fallback=v;export{n as a,c as b,v as c,h as d};//# sourceMappingURL=chunk-YNSODGYK.js.map
2
+ //# sourceMappingURL=chunk-YNSODGYK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/core/avatar.tsx"],"names":["avatarVariants","cva","AvatarComponent","className","size","variant","src","alt","fallback","children","props","ref","imageError","setImageError","cn","AvatarImage","AvatarFallback","Avatar","memo"],"mappings":"kJAKA,IAAMA,CAAAA,CAAiBC,GAAAA,CACrB,2GAAA,CACA,CACE,QAAA,CAAU,CACR,IAAA,CAAM,CACJ,EAAA,CAAI,SAAA,CACJ,OAAA,CAAS,WAAA,CACT,GAAI,WAAA,CACJ,EAAA,CAAI,WACN,CAAA,CACA,OAAA,CAAS,CACP,QAAS,2BAAA,CACT,QAAA,CAAU,2BAAA,CACV,OAAA,CACE,uEAAA,CACF,MAAA,CAAQ,qCACR,WAAA,CAAa,0DACf,CACF,CAAA,CACA,eAAA,CAAiB,CACf,KAAM,SAAA,CACN,OAAA,CAAS,SACX,CACF,CACF,CAAA,CAWMC,EAAwB,CAAA,CAAA,UAAA,CAC5B,CACE,CAAE,SAAA,CAAAC,GAAAA,CAAW,IAAA,CAAAC,EAAM,OAAA,CAAAC,CAAAA,CAAS,GAAA,CAAAC,CAAAA,CAAK,GAAA,CAAAC,CAAAA,CAAK,SAAAC,CAAAA,CAAU,QAAA,CAAAC,CAAAA,CAAU,GAAGC,CAAM,CAAA,CACnEC,IACG,CACH,GAAM,CAACC,CAAAA,CAAYC,CAAa,CAAA,CAAU,WAAS,KAAK,CAAA,CAQxD,OALM,CAAA,CAAA,SAAA,CAAU,IAAM,CACpBA,EAAc,KAAK,EACrB,CAAA,CAAG,CAACP,CAAG,CAAC,EAGJG,CAAAA,CAEA,CAAA,CAAA,aAAA,CAAC,KAAA,CAAA,CACC,GAAA,CAAKE,CAAAA,CACL,SAAA,CAAWG,EAAGd,CAAAA,CAAe,CAAE,IAAA,CAAAI,CAAAA,CAAM,OAAA,CAAAC,CAAQ,CAAC,CAAA,CAAGF,GAAS,CAAA,CACzD,GAAGO,CAAAA,CAAAA,CAEHD,CACH,EAMF,CAAA,CAAA,aAAA,CAAC,KAAA,CAAA,CACC,GAAA,CAAKE,CAAAA,CACL,SAAA,CAAWG,CAAAA,CAAGd,EAAe,CAAE,IAAA,CAAAI,CAAAA,CAAM,OAAA,CAAAC,CAAQ,CAAC,EAAGF,GAAS,CAAA,CACzD,GAAGO,CAAAA,CAAAA,CAEHJ,CAAAA,EAAO,CAACM,EACP,CAAA,CAAA,aAAA,CAAC,KAAA,CAAA,CACC,GAAA,CAAKN,CAAAA,CACL,GAAA,CAAKC,CAAAA,CACL,UAAU,0CAAA,CACV,OAAA,CAAS,IAAMM,CAAAA,CAAc,IAAI,CAAA,CACnC,EAEA,CAAA,CAAA,aAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,gHAAA,CAAA,CACZL,CACH,CAEJ,CAEJ,CACF,EACAN,CAAAA,CAAgB,WAAA,CAAc,QAAA,CAE9B,IAAMa,EAAoB,CAAA,CAAA,UAAA,CAGxB,CAAC,CAAE,SAAA,CAAAZ,GAAAA,CAAW,GAAGO,CAAM,CAAA,CAAGC,CAAAA,GAC1B,CAAA,CAAA,aAAA,CAAC,KAAA,CAAA,CACC,GAAA,CAAKA,CAAAA,CACL,UAAWG,CAAAA,CAAG,0CAAA,CAA4CX,GAAS,CAAA,CAClE,GAAGO,CAAAA,CACN,CACD,EACDK,CAAAA,CAAY,WAAA,CAAc,aAAA,CAE1B,IAAMC,CAAAA,CAAuB,aAG3B,CAAC,CAAE,SAAA,CAAAb,GAAAA,CAAW,GAAGO,CAAM,EAAGC,CAAAA,GAC1B,CAAA,CAAA,aAAA,CAAC,KAAA,CAAA,CACC,GAAA,CAAKA,CAAAA,CACL,SAAA,CAAWG,EACT,gHAAA,CACAX,GACF,CAAA,CACC,GAAGO,CAAAA,CACN,CACD,EACDM,CAAAA,CAAe,WAAA,CAAc,gBAAA,CAG7B,IAAMC,CAAAA,CAASC,GAAAA,CAAKhB,CAAe,EAMnCe,CAAAA,CAAO,KAAA,CAAQF,CAAAA,CACfE,CAAAA,CAAO,QAAA,CAAWD,CAAAA","file":"chunk-YNSODGYK.js","sourcesContent":["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../lib/utils\";\nimport { memo } from \"../../lib/memo\";\n\nconst avatarVariants = cva(\n \"relative flex shrink-0 overflow-hidden rounded-full transition-all duration-200 shadow-sm hover:shadow-md\",\n {\n variants: {\n size: {\n sm: \"h-8 w-8\",\n default: \"h-10 w-10\",\n lg: \"h-12 w-12\",\n xl: \"h-16 w-16\",\n },\n variant: {\n default: \"shadow-sm hover:shadow-md\",\n elevated: \"shadow-lg hover:shadow-xl\",\n outline:\n \"border-2 border-border shadow-sm hover:border-primary hover:shadow-md\",\n filled: \"bg-muted shadow-sm hover:shadow-md\",\n interactive: \"shadow-sm hover:shadow-md cursor-pointer hover:scale-105\",\n },\n },\n defaultVariants: {\n size: \"default\",\n variant: \"default\",\n },\n },\n);\n\nexport interface AvatarProps\n extends\n React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof avatarVariants> {\n src?: string;\n alt?: string;\n fallback?: string;\n}\n\nconst AvatarComponent = React.forwardRef<HTMLDivElement, AvatarProps>(\n (\n { className, size, variant, src, alt, fallback, children, ...props },\n ref,\n ) => {\n const [imageError, setImageError] = React.useState(false);\n\n // Reset image error when src changes\n React.useEffect(() => {\n setImageError(false);\n }, [src]);\n\n // If using compound component API (children), render children\n if (children) {\n return (\n <div\n ref={ref}\n className={cn(avatarVariants({ size, variant }), className)}\n {...props}\n >\n {children}\n </div>\n );\n }\n\n // If using simple prop API\n return (\n <div\n ref={ref}\n className={cn(avatarVariants({ size, variant }), className)}\n {...props}\n >\n {src && !imageError ? (\n <img\n src={src}\n alt={alt}\n className=\"aspect-square h-full w-full object-cover\"\n onError={() => setImageError(true)}\n />\n ) : (\n <div className=\"flex h-full w-full items-center justify-center rounded-full bg-muted text-sm font-medium text-muted-foreground\">\n {fallback}\n </div>\n )}\n </div>\n );\n },\n);\nAvatarComponent.displayName = \"Avatar\";\n\nconst AvatarImage = React.forwardRef<\n HTMLImageElement,\n React.ImgHTMLAttributes<HTMLImageElement>\n>(({ className, ...props }, ref) => (\n <img\n ref={ref}\n className={cn(\"aspect-square h-full w-full object-cover\", className)}\n {...props}\n />\n));\nAvatarImage.displayName = \"AvatarImage\";\n\nconst AvatarFallback = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"flex h-full w-full items-center justify-center rounded-full bg-muted text-sm font-medium text-muted-foreground\",\n className,\n )}\n {...props}\n />\n));\nAvatarFallback.displayName = \"AvatarFallback\";\n\n// Memoize Avatar for performance optimization (after all subcomponents are defined)\nconst Avatar = memo(AvatarComponent) as typeof AvatarComponent & {\n Image: typeof AvatarImage;\n Fallback: typeof AvatarFallback;\n};\n\n// Attach subcomponents to Avatar for compound component pattern\nAvatar.Image = AvatarImage;\nAvatar.Fallback = AvatarFallback;\n\nexport { Avatar, AvatarImage, AvatarFallback, avatarVariants };\n"]}
@@ -0,0 +1,2 @@
1
+ 'use strict';var chunk7SPPGTBT_cjs=require('./chunk-7SPPGTBT.cjs'),chunkITRGJNWL_cjs=require('./chunk-ITRGJNWL.cjs'),t=require('react'),classVarianceAuthority=require('class-variance-authority');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var t__default=/*#__PURE__*/_interopDefault(t);var E=classVarianceAuthority.cva("relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all duration-300",{variants:{variant:{default:"border-border bg-card text-card-foreground shadow-lg hover:shadow-xl",success:"border-success-200 bg-success-50 text-success-900 shadow-lg hover:shadow-xl",error:"border-destructive/20 bg-destructive/10 text-destructive shadow-lg hover:shadow-xl",warning:"border-warning-200 bg-warning-50 text-warning-900 shadow-lg hover:shadow-xl",info:"border-info-200 bg-info-50 text-info-900 shadow-lg hover:shadow-xl"},position:{"top-left":"fixed top-4 left-4 z-50","top-center":"fixed top-4 left-1/2 -translate-x-1/2 z-50","top-right":"fixed top-4 right-4 z-50","bottom-left":"fixed bottom-4 left-4 z-50","bottom-center":"fixed bottom-4 left-1/2 -translate-x-1/2 z-50","bottom-right":"fixed bottom-4 right-4 z-50"},animation:{default:"animate-in slide-in-from-right-full duration-300",slide:"animate-in slide-in-from-bottom-4 duration-300",fade:"animate-in fade-in-0 duration-300",scale:"animate-in zoom-in-95 duration-300",none:""}},defaultVariants:{variant:"default",position:"top-right",animation:"default"}}),m=classVarianceAuthority.cva("flex-shrink-0 w-5 h-5 transition-colors duration-200",{variants:{variant:{default:"text-muted-foreground",success:"text-success-600",error:"text-destructive",warning:"text-warning-600",info:"text-info-600"}},defaultVariants:{variant:"default"}}),M=t__default.default.createContext(void 0),I=()=>{let i=t__default.default.useContext(M);if(!i)throw new Error("useToast must be used within a ToastProvider");return i},X=({children:i})=>{let[d,r]=t.useState([]),o=t.useRef(new Map),e=t.useCallback(s=>{let a=o.current.get(s);a&&(clearTimeout(a),o.current.delete(s)),r(f=>f.filter(l=>l.id!==s));},[]),n=t.useRef(e);t.useEffect(()=>{n.current=e;},[e]);let u=t.useCallback(s=>{let a=Math.random().toString(36).substr(2,9),f={...s,id:a};if(r(l=>[...l,f]),s.duration!==0){let l=setTimeout(()=>{n.current(a),o.current.delete(a);},s.duration||5e3);o.current.set(a,l);}return a},[]),c=t.useCallback(()=>{o.current.forEach(s=>clearTimeout(s)),o.current.clear(),r([]);},[]);return t.useEffect(()=>{let s=o.current;return ()=>{s.forEach(a=>clearTimeout(a)),s.clear();}},[]),t__default.default.createElement(M.Provider,{value:{toasts:d,addToast:u,removeToast:e,clearToasts:c}},i,t__default.default.createElement(H,{toasts:d}))},H=({toasts:i})=>{if(i.length===0)return null;let d=i.reduce((r,o)=>{let e=o.position||"top-right";return r[e]||(r[e]=[]),r[e].push(o),r},{});return t__default.default.createElement("div",{className:"fixed inset-0 z-50 pointer-events-none"},Object.entries(d).map(([r,o])=>t__default.default.createElement("div",{key:r,className:"pointer-events-none"},o.map((e,n)=>{let{style:u,...c}=e;return t__default.default.createElement(S,{key:e.id,...c,style:{...u,transform:`translateY(${n*8}px) ${u?.transform||""}`,marginBottom:n<o.length-1?"8px":"0"}})}))))},V=t__default.default.forwardRef(({id:i,title:d,description:r,variant:o="default",position:e="top-right",animation:n="default",duration:u=5e3,onClose:c,action:s,className:a,children:f,appearDelay:l=10,animationMs:g=150,...x},k)=>{let[C,y]=t.useState(l<=0),[T,O]=t.useState(false);t.useEffect(()=>{if(l<=0)return;let b=window.setTimeout(()=>y(true),l);return ()=>clearTimeout(b)},[l]);let h=t.useCallback(()=>{O(true),window.setTimeout(()=>{c?.(),y(false);},g);},[c,g]);t.useEffect(()=>{if(u>0){let b=window.setTimeout(h,u);return ()=>clearTimeout(b)}},[u,h]);let B=()=>{switch(o){case "success":return t__default.default.createElement("svg",{className:m({variant:o}),fill:"currentColor",viewBox:"0 0 20 20"},t__default.default.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z",clipRule:"evenodd"}));case "error":return t__default.default.createElement("svg",{className:m({variant:o}),fill:"currentColor",viewBox:"0 0 20 20"},t__default.default.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z",clipRule:"evenodd"}));case "warning":return t__default.default.createElement("svg",{className:m({variant:o}),fill:"currentColor",viewBox:"0 0 20 20"},t__default.default.createElement("path",{fillRule:"evenodd",d:"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z",clipRule:"evenodd"}));case "info":return t__default.default.createElement("svg",{className:m({variant:o}),fill:"currentColor",viewBox:"0 0 20 20"},t__default.default.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z",clipRule:"evenodd"}));default:return null}};return C?t__default.default.createElement("div",{ref:k,className:chunkITRGJNWL_cjs.a(E({variant:o,position:e,animation:n}),T?"opacity-0":"opacity-100","pointer-events-auto",a),"data-visible":C?"true":"false","data-leaving":T?"true":"false",style:{transition:`all ${g}ms ease-in-out`,transform:T?"translateX(100%)":x.style?.transform||"translateX(0)",...x.style},...x},t__default.default.createElement("div",{className:"flex items-start space-x-3"},B(),t__default.default.createElement("div",{className:"flex-1 min-w-0"},d&&t__default.default.createElement("div",{className:"text-sm font-medium"},d),r&&t__default.default.createElement("div",{className:"mt-1 text-sm opacity-90"},r),f)),s&&t__default.default.createElement("button",{type:"button",onClick:s.onClick,className:"ml-4 text-sm font-medium underline hover:no-underline focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500"},s.label),t__default.default.createElement("button",{type:"button",onClick:h,className:"absolute top-2 right-2 p-1 rounded-md hover:bg-gray-100 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500","aria-label":"Close notification"},t__default.default.createElement("svg",{className:"w-4 h-4",fill:"currentColor",viewBox:"0 0 20 20"},t__default.default.createElement("path",{fillRule:"evenodd",d:"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z",clipRule:"evenodd"})))):null});V.displayName="Toast";var S=chunk7SPPGTBT_cjs.a(V),A=()=>{let{addToast:i,removeToast:d,clearToasts:r}=I();return {success:(e,n)=>i({variant:"success",title:"Success",description:e,...n}),error:(e,n)=>i({variant:"error",title:"Error",description:e,...n}),warning:(e,n)=>i({variant:"warning",title:"Warning",description:e,...n}),info:(e,n)=>i({variant:"info",title:"Info",description:e,...n}),custom:e=>i(e),dismiss:d,clear:r}};exports.a=E;exports.b=m;exports.c=I;exports.d=X;exports.e=S;exports.f=A;//# sourceMappingURL=chunk-ZC4HJSII.cjs.map
2
+ //# sourceMappingURL=chunk-ZC4HJSII.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/core/toast.tsx"],"names":["toastVariants","cva","toastIconVariants","ToastContext","React","useToast","context","ToastProvider","children","toasts","setToasts","useState","timeoutRefs","useRef","removeToast","useCallback","id","timeoutId","prev","toast","removeToastRef","useEffect","addToast","newToast","clearToasts","refs","ToastContainer","toastsByPosition","acc","position","positionToasts","index","toastStyle","toastProps","Toast","ToastComponent","_id","title","description","variant","animation","duration","onClose","action","className","appearDelay","animationMs","props","ref","isVisible","setIsVisible","isLeaving","setIsLeaving","timer","handleClose","getIcon","cn","memo","useToastNotification","message","options"],"mappings":"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","file":"chunk-ZC4HJSII.cjs","sourcesContent":["import React, { useState, useEffect, useCallback, useRef } from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../lib/utils\";\nimport { memo } from \"../../lib/memo\";\n\n// Toast variants\nconst toastVariants = cva(\n \"relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all duration-300\",\n {\n variants: {\n variant: {\n default:\n \"border-border bg-card text-card-foreground shadow-lg hover:shadow-xl\",\n success:\n \"border-success-200 bg-success-50 text-success-900 shadow-lg hover:shadow-xl\",\n error:\n \"border-destructive/20 bg-destructive/10 text-destructive shadow-lg hover:shadow-xl\",\n warning:\n \"border-warning-200 bg-warning-50 text-warning-900 shadow-lg hover:shadow-xl\",\n info: \"border-info-200 bg-info-50 text-info-900 shadow-lg hover:shadow-xl\",\n },\n position: {\n \"top-left\": \"fixed top-4 left-4 z-50\",\n \"top-center\": \"fixed top-4 left-1/2 -translate-x-1/2 z-50\",\n \"top-right\": \"fixed top-4 right-4 z-50\",\n \"bottom-left\": \"fixed bottom-4 left-4 z-50\",\n \"bottom-center\": \"fixed bottom-4 left-1/2 -translate-x-1/2 z-50\",\n \"bottom-right\": \"fixed bottom-4 right-4 z-50\",\n },\n animation: {\n default: \"animate-in slide-in-from-right-full duration-300\",\n slide: \"animate-in slide-in-from-bottom-4 duration-300\",\n fade: \"animate-in fade-in-0 duration-300\",\n scale: \"animate-in zoom-in-95 duration-300\",\n none: \"\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n position: \"top-right\",\n animation: \"default\",\n },\n },\n);\n\nconst toastIconVariants = cva(\n \"flex-shrink-0 w-5 h-5 transition-colors duration-200\",\n {\n variants: {\n variant: {\n default: \"text-muted-foreground\",\n success: \"text-success-600\",\n error: \"text-destructive\",\n warning: \"text-warning-600\",\n info: \"text-info-600\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\n// Types\nexport interface ToastProps\n extends\n VariantProps<typeof toastVariants>,\n React.HTMLAttributes<HTMLDivElement> {\n id?: string;\n title?: string;\n description?: string;\n duration?: number;\n onClose?: () => void;\n action?: {\n label: string;\n onClick: () => void;\n };\n className?: string;\n children?: React.ReactNode;\n appearDelay?: number; // time in ms before first render becomes visible; default 10\n animationMs?: number; // exit animation duration; default 150\n}\n\nexport interface ToastContextType {\n toasts: ToastProps[];\n addToast: (toast: Omit<ToastProps, \"id\">) => string;\n removeToast: (id: string) => void;\n clearToasts: () => void;\n}\n\n// Toast Context\nconst ToastContext = React.createContext<ToastContextType | undefined>(\n undefined,\n);\n\nexport const useToast = () => {\n const context = React.useContext(ToastContext);\n if (!context) {\n throw new Error(\"useToast must be used within a ToastProvider\");\n }\n return context;\n};\n\n// Toast Provider\nexport const ToastProvider: React.FC<{ children: React.ReactNode }> = ({\n children,\n}) => {\n const [toasts, setToasts] = useState<ToastProps[]>([]);\n const timeoutRefs = useRef<Map<string, ReturnType<typeof setTimeout>>>(\n new Map(),\n );\n\n const removeToast = useCallback((id: string) => {\n // Clear timeout if it exists\n const timeoutId = timeoutRefs.current.get(id);\n if (timeoutId) {\n clearTimeout(timeoutId);\n timeoutRefs.current.delete(id);\n }\n setToasts((prev) => prev.filter((toast) => toast.id !== id));\n }, []);\n\n const removeToastRef = useRef(removeToast);\n useEffect(() => {\n removeToastRef.current = removeToast;\n }, [removeToast]);\n\n const addToast = useCallback((toast: Omit<ToastProps, \"id\">) => {\n const id = Math.random().toString(36).substr(2, 9);\n const newToast = { ...toast, id };\n\n setToasts((prev) => [...prev, newToast]);\n\n // Auto remove toast after duration\n if (toast.duration !== 0) {\n const timeoutId = setTimeout(() => {\n removeToastRef.current(id);\n timeoutRefs.current.delete(id);\n }, toast.duration || 5000);\n timeoutRefs.current.set(id, timeoutId);\n }\n\n return id;\n }, []);\n\n const clearToasts = useCallback(() => {\n // Clear all timeouts\n timeoutRefs.current.forEach((timeoutId) => clearTimeout(timeoutId));\n timeoutRefs.current.clear();\n setToasts([]);\n }, []);\n\n // Cleanup on unmount\n useEffect(() => {\n const refs = timeoutRefs.current;\n return () => {\n refs.forEach((timeoutId) => clearTimeout(timeoutId));\n refs.clear();\n };\n }, []);\n\n return (\n <ToastContext.Provider\n value={{ toasts, addToast, removeToast, clearToasts }}\n >\n {children}\n <ToastContainer toasts={toasts} />\n </ToastContext.Provider>\n );\n};\n\n// Toast Container\nconst ToastContainer: React.FC<{ toasts: ToastProps[] }> = ({ toasts }) => {\n if (toasts.length === 0) return null;\n\n // Group toasts by position for stacking\n const toastsByPosition = toasts.reduce(\n (acc, toast) => {\n const position = toast.position || \"top-right\";\n if (!acc[position]) {\n acc[position] = [];\n }\n acc[position].push(toast);\n return acc;\n },\n {} as Record<string, ToastProps[]>,\n );\n\n return (\n <div className=\"fixed inset-0 z-50 pointer-events-none\">\n {Object.entries(toastsByPosition).map(([position, positionToasts]) => (\n <div key={position} className=\"pointer-events-none\">\n {positionToasts.map((toast, index) => {\n const { style: toastStyle, ...toastProps } = toast;\n return (\n <Toast\n key={toast.id}\n {...toastProps}\n style={{\n ...toastStyle,\n // Stack toasts with offset\n transform: `translateY(${index * 8}px) ${toastStyle?.transform || \"\"}`,\n marginBottom: index < positionToasts.length - 1 ? \"8px\" : \"0\",\n }}\n />\n );\n })}\n </div>\n ))}\n </div>\n );\n};\n\n// Individual Toast Component\nconst ToastComponent = React.forwardRef<HTMLDivElement, ToastProps>(\n (\n {\n id: _id,\n title,\n description,\n variant = \"default\",\n position = \"top-right\",\n animation = \"default\",\n duration = 5000,\n onClose,\n action,\n className,\n children,\n appearDelay = 10,\n animationMs = 150,\n ...props\n },\n ref,\n ) => {\n const [isVisible, setIsVisible] = useState(appearDelay <= 0);\n const [isLeaving, setIsLeaving] = useState(false);\n\n useEffect(() => {\n if (appearDelay <= 0) {\n return;\n }\n const timer = window.setTimeout(() => setIsVisible(true), appearDelay);\n return () => clearTimeout(timer);\n }, [appearDelay]);\n\n const handleClose = useCallback(() => {\n setIsLeaving(true);\n window.setTimeout(() => {\n onClose?.();\n setIsVisible(false);\n }, animationMs);\n }, [onClose, animationMs]);\n\n // Auto close after duration\n useEffect(() => {\n if (duration > 0) {\n const timer = window.setTimeout(handleClose, duration);\n return () => clearTimeout(timer);\n }\n return undefined;\n }, [duration, handleClose]);\n\n const getIcon = () => {\n switch (variant) {\n case \"success\":\n return (\n <svg\n className={toastIconVariants({ variant })}\n fill=\"currentColor\"\n viewBox=\"0 0 20 20\"\n >\n <path\n fillRule=\"evenodd\"\n d=\"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z\"\n clipRule=\"evenodd\"\n />\n </svg>\n );\n case \"error\":\n return (\n <svg\n className={toastIconVariants({ variant })}\n fill=\"currentColor\"\n viewBox=\"0 0 20 20\"\n >\n <path\n fillRule=\"evenodd\"\n d=\"M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z\"\n clipRule=\"evenodd\"\n />\n </svg>\n );\n case \"warning\":\n return (\n <svg\n className={toastIconVariants({ variant })}\n fill=\"currentColor\"\n viewBox=\"0 0 20 20\"\n >\n <path\n fillRule=\"evenodd\"\n d=\"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z\"\n clipRule=\"evenodd\"\n />\n </svg>\n );\n case \"info\":\n return (\n <svg\n className={toastIconVariants({ variant })}\n fill=\"currentColor\"\n viewBox=\"0 0 20 20\"\n >\n <path\n fillRule=\"evenodd\"\n d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z\"\n clipRule=\"evenodd\"\n />\n </svg>\n );\n default:\n return null;\n }\n };\n\n if (!isVisible) return null;\n\n return (\n <div\n ref={ref}\n className={cn(\n toastVariants({ variant, position, animation }),\n isLeaving ? \"opacity-0\" : \"opacity-100\",\n \"pointer-events-auto\",\n className,\n )}\n data-visible={isVisible ? \"true\" : \"false\"}\n data-leaving={isLeaving ? \"true\" : \"false\"}\n style={{\n transition: `all ${animationMs}ms ease-in-out`,\n transform: isLeaving\n ? \"translateX(100%)\"\n : props.style?.transform || \"translateX(0)\",\n ...props.style,\n }}\n {...props}\n >\n <div className=\"flex items-start space-x-3\">\n {getIcon()}\n <div className=\"flex-1 min-w-0\">\n {title && <div className=\"text-sm font-medium\">{title}</div>}\n {description && (\n <div className=\"mt-1 text-sm opacity-90\">{description}</div>\n )}\n {children}\n </div>\n </div>\n\n {action && (\n <button\n type=\"button\"\n onClick={action.onClick}\n className=\"ml-4 text-sm font-medium underline hover:no-underline focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500\"\n >\n {action.label}\n </button>\n )}\n\n <button\n type=\"button\"\n onClick={handleClose}\n className=\"absolute top-2 right-2 p-1 rounded-md hover:bg-gray-100 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500\"\n aria-label=\"Close notification\"\n >\n <svg className=\"w-4 h-4\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\"\n clipRule=\"evenodd\"\n />\n </svg>\n </button>\n </div>\n );\n },\n);\n\nToastComponent.displayName = \"Toast\";\n\n// Memoize Toast for performance optimization\nexport const Toast = memo(ToastComponent) as typeof ToastComponent;\n\n// Toast Hook for easy usage\nexport const useToastNotification = () => {\n const { addToast, removeToast, clearToasts } = useToast();\n\n const toast = {\n success: (\n message: string,\n options?: Omit<ToastProps, \"variant\" | \"title\">,\n ) =>\n addToast({\n variant: \"success\",\n title: \"Success\",\n description: message,\n ...options,\n }),\n\n error: (message: string, options?: Omit<ToastProps, \"variant\" | \"title\">) =>\n addToast({\n variant: \"error\",\n title: \"Error\",\n description: message,\n ...options,\n }),\n\n warning: (\n message: string,\n options?: Omit<ToastProps, \"variant\" | \"title\">,\n ) =>\n addToast({\n variant: \"warning\",\n title: \"Warning\",\n description: message,\n ...options,\n }),\n\n info: (message: string, options?: Omit<ToastProps, \"variant\" | \"title\">) =>\n addToast({\n variant: \"info\",\n title: \"Info\",\n description: message,\n ...options,\n }),\n\n custom: (toast: Omit<ToastProps, \"id\">) => addToast(toast),\n\n dismiss: removeToast,\n clear: clearToasts,\n };\n\n return toast;\n};\n\n// Export variants for external use\nexport { toastVariants, toastIconVariants };\n"]}
@@ -0,0 +1,2 @@
1
+ import {a}from'./chunk-AC2JBXHQ.js';import*as t from'react';import*as e from'@radix-ui/react-tabs';import {cva}from'class-variance-authority';var f=cva("inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground transition-all duration-200 shadow-sm hover:shadow-md",{variants:{variant:{default:"bg-muted shadow-sm hover:shadow-md",outline:"border border-border bg-transparent shadow-sm hover:shadow-md",pills:"bg-transparent p-0 shadow-none",elevated:"bg-muted/50 shadow-md hover:shadow-lg",filled:"bg-muted shadow-sm hover:shadow-md"},size:{default:"h-10",sm:"h-8 text-sm",lg:"h-12 text-lg"}},defaultVariants:{variant:"default",size:"default"}}),m=cva("inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 hover:bg-muted/50",{variants:{variant:{default:"data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm data-[state=active]:border-border",outline:"data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:border-b-2 data-[state=active]:border-primary data-[state=active]:shadow-sm",pills:"data-[state=active]:bg-primary data-[state=active]:text-primary-foreground data-[state=active]:shadow-sm hover:bg-primary/10 hover:text-primary",elevated:"data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-md data-[state=active]:border-border",filled:"data-[state=active]:bg-muted data-[state=active]:text-foreground data-[state=active]:shadow-sm"},size:{default:"px-3 py-1.5 text-sm",sm:"px-2 py-1 text-xs",lg:"px-4 py-2 text-base"}},defaultVariants:{variant:"default",size:"default"}}),b=cva("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-500 focus-visible:ring-offset-2 transition-all duration-200"),c=t.forwardRef(({className:a$1,...s},i)=>t.createElement(e.Root,{ref:i,className:a("w-full",a$1),...s}));c.displayName="Tabs";var p=t.forwardRef(({className:a$1,variant:s,size:i,...o},n)=>t.createElement(e.List,{ref:n,className:a(f({variant:s,size:i}),a$1),...o}));p.displayName="TabsList";var l=t.forwardRef(({className:a$1,variant:s,size:i,...o},n)=>t.createElement(e.Trigger,{ref:n,className:a(m({variant:s,size:i}),a$1),...o}));l.displayName="TabsTrigger";var v=t.forwardRef(({className:a$1,...s},i)=>t.createElement(e.Content,{ref:i,className:a(b(),a$1),...s}));v.displayName="TabsContent";export{f as a,m as b,b as c,c as d,p as e,l as f,v as g};//# sourceMappingURL=chunk-ZEJAFIOC.js.map
2
+ //# sourceMappingURL=chunk-ZEJAFIOC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/core/tabs.tsx"],"names":["tabsListVariants","cva","tabsTriggerVariants","tabsContentVariants","Tabs","className","props","ref","cn","TabsList","variant","size","TabsTrigger","TabsContent"],"mappings":"8IAKA,IAAMA,CAAAA,CAAmBC,GAAAA,CACvB,mJACA,CACE,QAAA,CAAU,CACR,OAAA,CAAS,CACP,OAAA,CAAS,qCACT,OAAA,CAAS,+DAAA,CACT,KAAA,CAAO,gCAAA,CACP,QAAA,CAAU,uCAAA,CACV,OAAQ,oCACV,CAAA,CACA,IAAA,CAAM,CACJ,OAAA,CAAS,MAAA,CACT,GAAI,aAAA,CACJ,EAAA,CAAI,cACN,CACF,CAAA,CACA,eAAA,CAAiB,CACf,OAAA,CAAS,SAAA,CACT,IAAA,CAAM,SACR,CACF,CACF,EAEMC,CAAAA,CAAsBD,GAAAA,CAC1B,gUAAA,CACA,CACE,QAAA,CAAU,CACR,QAAS,CACP,OAAA,CAAS,uIAAA,CACT,OAAA,CAAS,uKAAA,CACT,KAAA,CAAO,kJACP,QAAA,CAAU,uIAAA,CACV,MAAA,CAAQ,gGACV,CAAA,CACA,IAAA,CAAM,CACJ,OAAA,CAAS,qBAAA,CACT,EAAA,CAAI,mBAAA,CACJ,EAAA,CAAI,qBACN,CACF,CAAA,CACA,eAAA,CAAiB,CACf,OAAA,CAAS,SAAA,CACT,IAAA,CAAM,SACR,CACF,CACF,CAAA,CAEME,CAAAA,CAAsBF,GAAAA,CAC1B,kKACF,EAMMG,CAAAA,CAAa,CAAA,CAAA,UAAA,CAGjB,CAAC,CAAE,SAAA,CAAAC,GAAAA,CAAW,GAAGC,CAAM,CAAA,CAAGC,CAAAA,GAC1B,CAAA,CAAA,aAAA,CAAe,CAAA,CAAA,IAAA,CAAd,CACC,GAAA,CAAKA,CAAAA,CACL,SAAA,CAAWC,CAAAA,CAAG,QAAA,CAAUH,GAAS,CAAA,CAChC,GAAGC,EACN,CACD,EACDF,CAAAA,CAAK,WAAA,CAAc,MAAA,CAOnB,IAAMK,EAAiB,CAAA,CAAA,UAAA,CAGrB,CAAC,CAAE,SAAA,CAAAJ,GAAAA,CAAW,OAAA,CAAAK,EAAS,IAAA,CAAAC,CAAAA,CAAM,GAAGL,CAAM,CAAA,CAAGC,CAAAA,GACzC,gBAAe,CAAA,CAAA,IAAA,CAAd,CACC,GAAA,CAAKA,CAAAA,CACL,SAAA,CAAWC,CAAAA,CAAGR,EAAiB,CAAE,OAAA,CAAAU,CAAAA,CAAS,IAAA,CAAAC,CAAK,CAAC,EAAGN,GAAS,CAAA,CAC3D,GAAGC,CAAAA,CACN,CACD,EACDG,EAAS,WAAA,CAAc,UAAA,CAOvB,IAAMG,CAAAA,CAAoB,CAAA,CAAA,UAAA,CAGxB,CAAC,CAAE,SAAA,CAAAP,GAAAA,CAAW,OAAA,CAAAK,CAAAA,CAAS,IAAA,CAAAC,CAAAA,CAAM,GAAGL,CAAM,CAAA,CAAGC,CAAAA,GACzC,CAAA,CAAA,aAAA,CAAe,CAAA,CAAA,OAAA,CAAd,CACC,IAAKA,CAAAA,CACL,SAAA,CAAWC,CAAAA,CAAGN,CAAAA,CAAoB,CAAE,OAAA,CAAAQ,EAAS,IAAA,CAAAC,CAAK,CAAC,CAAA,CAAGN,GAAS,CAAA,CAC9D,GAAGC,CAAAA,CACN,CACD,EACDM,CAAAA,CAAY,WAAA,CAAc,aAAA,KAMpBC,CAAAA,CAAoB,CAAA,CAAA,UAAA,CAGxB,CAAC,CAAE,SAAA,CAAAR,GAAAA,CAAW,GAAGC,CAAM,CAAA,CAAGC,CAAAA,GAC1B,CAAA,CAAA,aAAA,CAAe,CAAA,CAAA,OAAA,CAAd,CACC,IAAKA,CAAAA,CACL,SAAA,CAAWC,CAAAA,CAAGL,CAAAA,EAAoB,CAAGE,GAAS,CAAA,CAC7C,GAAGC,CAAAA,CACN,CACD,EACDO,CAAAA,CAAY,WAAA,CAAc,aAAA","file":"chunk-ZEJAFIOC.js","sourcesContent":["import * as React from 'react';\nimport * as TabsPrimitive from '@radix-ui/react-tabs';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\n\nconst tabsListVariants = cva(\n 'inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground transition-all duration-200 shadow-sm hover:shadow-md',\n {\n variants: {\n variant: {\n default: 'bg-muted shadow-sm hover:shadow-md',\n outline: 'border border-border bg-transparent shadow-sm hover:shadow-md',\n pills: 'bg-transparent p-0 shadow-none',\n elevated: 'bg-muted/50 shadow-md hover:shadow-lg',\n filled: 'bg-muted shadow-sm hover:shadow-md',\n },\n size: {\n default: 'h-10',\n sm: 'h-8 text-sm',\n lg: 'h-12 text-lg',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n }\n);\n\nconst tabsTriggerVariants = cva(\n 'inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 hover:bg-muted/50',\n {\n variants: {\n variant: {\n default: 'data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm data-[state=active]:border-border',\n outline: 'data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:border-b-2 data-[state=active]:border-primary data-[state=active]:shadow-sm',\n pills: 'data-[state=active]:bg-primary data-[state=active]:text-primary-foreground data-[state=active]:shadow-sm hover:bg-primary/10 hover:text-primary',\n elevated: 'data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-md data-[state=active]:border-border',\n filled: 'data-[state=active]:bg-muted data-[state=active]:text-foreground data-[state=active]:shadow-sm',\n },\n size: {\n default: 'px-3 py-1.5 text-sm',\n sm: 'px-2 py-1 text-xs',\n lg: 'px-4 py-2 text-base',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n }\n);\n\nconst tabsContentVariants = cva(\n 'mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-500 focus-visible:ring-offset-2 transition-all duration-200'\n);\n\n// Tabs Root\nexport interface TabsProps\n extends React.ComponentPropsWithoutRef<typeof TabsPrimitive.Root> {}\n\nconst Tabs = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Root>,\n TabsProps\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Root\n ref={ref}\n className={cn('w-full', className)}\n {...props}\n />\n));\nTabs.displayName = 'Tabs';\n\n// Tabs List\nexport interface TabsListProps\n extends React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>,\n VariantProps<typeof tabsListVariants> {}\n\nconst TabsList = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.List>,\n TabsListProps\n>(({ className, variant, size, ...props }, ref) => (\n <TabsPrimitive.List\n ref={ref}\n className={cn(tabsListVariants({ variant, size }), className)}\n {...props}\n />\n));\nTabsList.displayName = 'TabsList';\n\n// Tabs Trigger\nexport interface TabsTriggerProps\n extends React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>,\n VariantProps<typeof tabsTriggerVariants> {}\n\nconst TabsTrigger = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Trigger>,\n TabsTriggerProps\n>(({ className, variant, size, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(tabsTriggerVariants({ variant, size }), className)}\n {...props}\n />\n));\nTabsTrigger.displayName = 'TabsTrigger';\n\n// Tabs Content\nexport interface TabsContentProps\n extends React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content> {}\n\nconst TabsContent = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Content>,\n TabsContentProps\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(tabsContentVariants(), className)}\n {...props}\n />\n));\nTabsContent.displayName = 'TabsContent';\n\nexport {\n Tabs,\n TabsList,\n TabsTrigger,\n TabsContent,\n tabsListVariants,\n tabsTriggerVariants,\n tabsContentVariants,\n};\n"]}
@@ -0,0 +1,2 @@
1
+ 'use strict';var chunkSD4IIQ2I_cjs=require('./chunk-SD4IIQ2I.cjs'),chunkFUENXWR7_cjs=require('./chunk-FUENXWR7.cjs'),chunk7SPPGTBT_cjs=require('./chunk-7SPPGTBT.cjs'),chunkITRGJNWL_cjs=require('./chunk-ITRGJNWL.cjs'),t=require('react'),classVarianceAuthority=require('class-variance-authority');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var t__default=/*#__PURE__*/_interopDefault(t);var Ve=classVarianceAuthority.cva("flex flex-wrap items-center gap-2 p-4 bg-muted border-b border-border",{variants:{variant:{default:"bg-muted",compact:"p-2 bg-card",minimal:"p-2 bg-transparent border-0"}},defaultVariants:{variant:"default"}});function te({data:F,columns:x,searchable:z=true,searchPlaceholder:oe="Search...",searchKeys:j,onSearch:V,searchTerm:E,onSearchTermChange:K,filterable:D=false,filters:b=[],onFilter:B,columnFilters:_,onColumnFiltersChange:q,defaultSortColumn:ae,defaultSortDirection:se="asc",sortColumn:G,sortDirection:ie,onSortChange:y,defaultPageSize:ue=10,showPagination:h=true,currentPage:H,pageSize:J,onPageChange:Q,onPageSizeChange:M,totalItems:s,showSearch:U=true,showFilters:W=true,filterBarClassName:le,searchBarClassName:de,rowKey:ce="id",emptyText:me="No data found",...ge}){let I=E!==void 0,L=_!==void 0,k=G!==void 0,o=H!==void 0,[fe,pe]=t.useState(""),m=I?E:fe,X=t.useMemo(()=>I?e=>K?.(e):pe,[I,K]),[be,ye]=t.useState({}),d=L?_:be,$=t.useMemo(()=>L?e=>q?.(e):ye,[L,q]),[he,ke]=t.useState(ae),[ve,Te]=t.useState(se),g=k?G:he,v=k?ie:ve,Y=t.useMemo(()=>k?e=>{e&&y&&v&&y(e,v);}:ke,[k,y,v]),Z=t.useMemo(()=>k?e=>{g&&y&&y(g,e);}:Te,[k,y,g]),[xe,Ce]=t.useState(1),[Se,we]=t.useState(ue),f=o?H:xe,a=J!==void 0?J:Se,p=t.useMemo(()=>o?e=>Q?.(e):Ce,[o,Q]),R=t.useMemo(()=>M?e=>M(e):we,[M]),C=t.useMemo(()=>{if(!z||!m.trim())return F;let e=m.toLowerCase(),r=j||x.map(n=>n.dataIndex||n.key).filter(Boolean);return F.filter(n=>r.some(i=>{let c=n[i];return c==null?false:String(c).toLowerCase().includes(e)}))},[F,m,z,j,x]),S=t.useMemo(()=>!D||b.length===0||Object.keys(d).length===0?C:C.filter(e=>b.every(r=>{let n=d[r.key];if(n==null||n==="")return true;if(r.filterFn)return r.filterFn(n,e);let i=e[r.key];switch(r.type){case "text":return String(i).toLowerCase().includes(String(n).toLowerCase());case "number":return Number(i)===Number(n);case "boolean":return !!i==!!n;case "select":return String(i)===String(n);default:return String(i).includes(String(n))}})),[C,d,D,b]),l=t.useMemo(()=>{if(!g)return S;let e=[...S],r=x.find(n=>n.key===g);return !r||!r.sortable||e.sort((n,i)=>{let c=r.dataIndex?n[r.dataIndex]:n[r.key],w=r.dataIndex?i[r.dataIndex]:i[r.key];if(c==null)return 1;if(w==null)return -1;let N=0;return typeof c=="number"&&typeof w=="number"?N=c-w:N=String(c).localeCompare(String(w)),v==="asc"?N:-N}),e},[S,g,v,x]),Fe=t.useMemo(()=>{if(!h||o&&s!==void 0)return l;let e=(f-1)*a,r=e+a;return l.slice(e,r)},[l,f,a,h,o,s]);t.useMemo(()=>h?Math.ceil(o&&s!==void 0?s/a:l.length/a):1,[h,o,s,a,l.length]);let De=t.useCallback(e=>{X(e),o||p(1);},[X,p,o]),ee=t.useCallback((e,r)=>{let n={...d,[e]:r};$(n),o||p(1);},[d,$,p,o]),Ne=t.useCallback((e,r)=>{Y(e.key),Z(r);},[Y,Z]),Pe=t.useCallback((e,r)=>{p(e),r!==a&&(R(r),p(1));},[a,p,R]);return t__default.default.useEffect(()=>{V&&V(m,C);},[m,C,V]),t__default.default.useEffect(()=>{B&&B(d,S);},[d,S,B]),t__default.default.createElement("div",{className:"w-full"},(U||W&&D&&b.length>0)&&t__default.default.createElement("div",{className:chunkITRGJNWL_cjs.a(Ve(),le)},U&&z&&t__default.default.createElement("div",{className:chunkITRGJNWL_cjs.a("flex-1 min-w-[200px]",de)},t__default.default.createElement(chunkFUENXWR7_cjs.b,{type:"text",placeholder:oe,value:m,onChange:e=>De(e.target.value),className:"w-full","aria-label":"Search table"})),W&&D&&b.length>0&&t__default.default.createElement("div",{className:"flex flex-wrap items-center gap-2"},b.map(e=>{let r=d[e.key];return e.type==="select"&&e.options?t__default.default.createElement("select",{key:e.key,value:String(r||""),onChange:n=>ee(e.key,n.target.value||void 0),className:"rounded-md border border-input px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-ring focus:border-primary","aria-label":`Filter by ${e.key}`},t__default.default.createElement("option",{value:""},"All ",e.key),e.options.map(n=>t__default.default.createElement("option",{key:n.value,value:String(n.value)},n.label))):t__default.default.createElement(chunkFUENXWR7_cjs.b,{key:e.key,type:e.type==="number"?"number":"text",placeholder:e.placeholder||`Filter ${e.key}...`,value:String(r||""),onChange:n=>ee(e.key,e.type==="number"?Number(n.target.value):n.target.value),className:"min-w-[150px]","aria-label":`Filter by ${e.key}`})}),Object.keys(d).length>0&&t__default.default.createElement("button",{type:"button",onClick:()=>$({}),className:"px-3 py-2 text-sm text-muted-foreground hover:text-foreground underline","aria-label":"Clear all filters"},"Clear filters"))),t__default.default.createElement(chunkSD4IIQ2I_cjs.d,{...ge,data:Fe,columns:x,rowKey:ce,emptyText:me,...g&&{sortColumn:g,sortDirection:v},onSort:Ne,...h&&{pagination:{current:f,pageSize:a,total:o&&s!==void 0?s:l.length,onChange:Pe,showSizeChanger:true}}}),h&&(o&&s!==void 0?s>0:l.length>0)&&t__default.default.createElement("div",{className:"mt-2 px-4 py-2 text-sm text-muted-foreground"},o&&s!==void 0?t__default.default.createElement(t__default.default.Fragment,null,"Showing ",(f-1)*a+1," to"," ",Math.min(f*a,s)," of ",s," ","results",m&&" (filtered)"):t__default.default.createElement(t__default.default.Fragment,null,"Showing ",(f-1)*a+1," to"," ",Math.min(f*a,l.length)," of"," ",l.length," results",m&&` (filtered from ${F.length} total)`)))}te.displayName="DataTable";var Ke=chunk7SPPGTBT_cjs.a(te);exports.a=te;exports.b=Ke;//# sourceMappingURL=chunk-ZQDFYSZB.cjs.map
2
+ //# sourceMappingURL=chunk-ZQDFYSZB.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/core/data-table.tsx"],"names":["filterBarVariants","cva","DataTable","initialData","columns","searchable","searchPlaceholder","searchKeys","onSearch","controlledSearchTerm","onSearchTermChange","filterable","filters","onFilter","controlledColumnFilters","onColumnFiltersChange","defaultSortColumn","defaultSortDirection","controlledSortColumn","controlledSortDirection","onSortChange","defaultPageSize","showPagination","controlledCurrentPage","controlledPageSize","onPageChange","onPageSizeChange","totalItems","showSearch","showFilters","filterBarClassName","searchBarClassName","rowKey","emptyText","tableProps","isControlledSearch","isControlledFilters","isControlledSort","isControlledPagination","internalSearchTerm","setInternalSearchTerm","useState","searchTerm","setSearchTerm","useMemo","value","internalColumnFilters","setInternalColumnFilters","columnFilters","setColumnFilters","internalSortColumn","setInternalSortColumn","internalSortDirection","setInternalSortDirection","sortColumn","sortDirection","setSortColumn","column","setSortDirection","dir","internalCurrentPage","setInternalCurrentPage","internalPageSize","setInternalPageSize","currentPage","pageSize","setCurrentPage","page","setPageSize","size","searchFilteredData","term","keys","col","record","key","filterFilteredData","filter","filterValue","recordValue","sortedData","sorted","a","b","aValue","bValue","comparison","paginatedData","startIndex","endIndex","handleSearch","useCallback","handleFilterChange","newFilters","handleSort","direction","handlePageChange","newPageSize","React","cn","Input","e","option","Table","DataTableMemoized","memo"],"mappings":"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","file":"chunk-ZQDFYSZB.cjs","sourcesContent":["import React, { useState, useMemo, useCallback } from \"react\";\nimport { cva } from \"class-variance-authority\";\nimport { cn } from \"../../lib/utils\";\nimport { memo } from \"../../lib/memo\";\nimport { Table, TableColumn, TableProps } from \"./table\";\nimport { Input } from \"./input\";\n\n// Filter types\nexport type FilterType = \"text\" | \"select\" | \"number\" | \"date\" | \"boolean\";\n\nexport interface ColumnFilter<T = Record<string, unknown>> {\n key: string;\n type: FilterType;\n options?: Array<{ label: string; value: string | number }>;\n placeholder?: string;\n filterFn?: (value: unknown, record: T) => boolean;\n}\n\nexport interface DataTableProps<T = Record<string, unknown>> extends Omit<\n TableProps<T>,\n \"data\" | \"onSort\" | \"sortColumn\" | \"sortDirection\"\n> {\n data: T[];\n columns: TableColumn<T>[];\n\n // Search\n searchable?: boolean;\n searchPlaceholder?: string;\n searchKeys?: Array<keyof T | string>;\n onSearch?: (searchTerm: string, filteredData: T[]) => void;\n\n // Controlled search (for server-side filtering)\n searchTerm?: string;\n onSearchTermChange?: (searchTerm: string) => void;\n\n // Filtering\n filterable?: boolean;\n filters?: ColumnFilter<T>[];\n onFilter?: (filters: Record<string, unknown>, filteredData: T[]) => void;\n\n // Controlled filters (for server-side filtering)\n columnFilters?: Record<string, unknown>;\n onColumnFiltersChange?: (filters: Record<string, unknown>) => void;\n\n // Sorting (enhanced)\n defaultSortColumn?: string;\n defaultSortDirection?: \"asc\" | \"desc\";\n\n // Controlled sorting (for server-side sorting)\n sortColumn?: string;\n sortDirection?: \"asc\" | \"desc\";\n onSortChange?: (column: string, direction: \"asc\" | \"desc\") => void;\n\n // Pagination (enhanced)\n defaultPageSize?: number;\n showPagination?: boolean;\n\n // Controlled pagination (for server-side pagination)\n currentPage?: number;\n pageSize?: number;\n onPageChange?: (page: number) => void;\n onPageSizeChange?: (size: number) => void;\n totalItems?: number; // Required for server-side pagination\n\n // UI\n showSearch?: boolean;\n showFilters?: boolean;\n filterBarClassName?: string;\n searchBarClassName?: string;\n}\n\n// Filter bar component\nconst filterBarVariants = cva(\n \"flex flex-wrap items-center gap-2 p-4 bg-muted border-b border-border\",\n {\n variants: {\n variant: {\n default: \"bg-muted\",\n compact: \"p-2 bg-card\",\n minimal: \"p-2 bg-transparent border-0\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\nexport function DataTable<\n T extends Record<string, unknown> = Record<string, unknown>,\n>({\n data: initialData,\n columns,\n searchable = true,\n searchPlaceholder = \"Search...\",\n searchKeys,\n onSearch,\n searchTerm: controlledSearchTerm,\n onSearchTermChange,\n filterable = false,\n filters = [],\n onFilter,\n columnFilters: controlledColumnFilters,\n onColumnFiltersChange,\n defaultSortColumn,\n defaultSortDirection = \"asc\",\n sortColumn: controlledSortColumn,\n sortDirection: controlledSortDirection,\n onSortChange,\n defaultPageSize = 10,\n showPagination = true,\n currentPage: controlledCurrentPage,\n pageSize: controlledPageSize,\n onPageChange,\n onPageSizeChange,\n totalItems,\n showSearch = true,\n showFilters = true,\n filterBarClassName,\n searchBarClassName,\n rowKey = \"id\",\n emptyText = \"No data found\",\n ...tableProps\n}: DataTableProps<T>) {\n // Determine if component is in controlled mode\n const isControlledSearch = controlledSearchTerm !== undefined;\n const isControlledFilters = controlledColumnFilters !== undefined;\n const isControlledSort = controlledSortColumn !== undefined;\n const isControlledPagination = controlledCurrentPage !== undefined;\n\n // Search state (controlled or uncontrolled)\n const [internalSearchTerm, setInternalSearchTerm] = useState(\"\");\n const searchTerm = isControlledSearch\n ? controlledSearchTerm\n : internalSearchTerm;\n const setSearchTerm = useMemo(\n () =>\n isControlledSearch\n ? (value: string) => onSearchTermChange?.(value)\n : setInternalSearchTerm,\n [isControlledSearch, onSearchTermChange],\n );\n\n // Filter state (controlled or uncontrolled)\n const [internalColumnFilters, setInternalColumnFilters] = useState<\n Record<string, unknown>\n >({});\n const columnFilters = isControlledFilters\n ? controlledColumnFilters\n : internalColumnFilters;\n const setColumnFilters = useMemo(\n () =>\n isControlledFilters\n ? (filters: Record<string, unknown>) => onColumnFiltersChange?.(filters)\n : setInternalColumnFilters,\n [isControlledFilters, onColumnFiltersChange],\n );\n\n // Sort state (controlled or uncontrolled)\n const [internalSortColumn, setInternalSortColumn] = useState<\n string | undefined\n >(defaultSortColumn);\n const [internalSortDirection, setInternalSortDirection] = useState<\n \"asc\" | \"desc\"\n >(defaultSortDirection);\n const sortColumn = isControlledSort\n ? controlledSortColumn\n : internalSortColumn;\n const sortDirection = isControlledSort\n ? controlledSortDirection\n : internalSortDirection;\n const setSortColumn = useMemo(\n () =>\n isControlledSort\n ? (column: string | undefined) => {\n if (column && onSortChange && sortDirection) {\n onSortChange(column, sortDirection);\n }\n }\n : setInternalSortColumn,\n [isControlledSort, onSortChange, sortDirection],\n );\n const setSortDirection = useMemo(\n () =>\n isControlledSort\n ? (dir: \"asc\" | \"desc\") => {\n if (sortColumn && onSortChange) {\n onSortChange(sortColumn, dir);\n }\n }\n : setInternalSortDirection,\n [isControlledSort, onSortChange, sortColumn],\n );\n\n // Pagination state (controlled or uncontrolled)\n const [internalCurrentPage, setInternalCurrentPage] = useState(1);\n const [internalPageSize, setInternalPageSize] = useState(defaultPageSize);\n const currentPage = isControlledPagination\n ? controlledCurrentPage\n : internalCurrentPage;\n const pageSize =\n controlledPageSize !== undefined ? controlledPageSize : internalPageSize;\n const setCurrentPage = useMemo(\n () =>\n isControlledPagination\n ? (page: number) => onPageChange?.(page)\n : setInternalCurrentPage,\n [isControlledPagination, onPageChange],\n );\n const setPageSize = useMemo(\n () =>\n onPageSizeChange\n ? (size: number) => onPageSizeChange(size)\n : setInternalPageSize,\n [onPageSizeChange],\n );\n\n // Apply search\n const searchFilteredData = useMemo(() => {\n if (!searchable || !searchTerm.trim()) {\n return initialData;\n }\n\n const term = searchTerm.toLowerCase();\n const keys =\n searchKeys ||\n columns.map((col) => col.dataIndex || col.key).filter(Boolean);\n\n return initialData.filter((record) => {\n return keys.some((key) => {\n const value =\n typeof key === \"string\"\n ? (record as Record<string, unknown>)[key]\n : record[key as keyof T];\n\n if (value === null || value === undefined) return false;\n\n return String(value).toLowerCase().includes(term);\n });\n });\n }, [initialData, searchTerm, searchable, searchKeys, columns]);\n\n // Apply column filters\n const filterFilteredData = useMemo(() => {\n if (\n !filterable ||\n filters.length === 0 ||\n Object.keys(columnFilters).length === 0\n ) {\n return searchFilteredData;\n }\n\n return searchFilteredData.filter((record) => {\n return filters.every((filter) => {\n const filterValue = columnFilters[filter.key];\n\n // Skip if no filter value\n if (\n filterValue === undefined ||\n filterValue === null ||\n filterValue === \"\"\n ) {\n return true;\n }\n\n // Use custom filter function if provided\n if (filter.filterFn) {\n return filter.filterFn(filterValue, record);\n }\n\n // Default filtering logic\n const recordValue = (record as Record<string, unknown>)[filter.key];\n\n switch (filter.type) {\n case \"text\":\n return String(recordValue)\n .toLowerCase()\n .includes(String(filterValue).toLowerCase());\n case \"number\":\n return Number(recordValue) === Number(filterValue);\n case \"boolean\":\n return Boolean(recordValue) === Boolean(filterValue);\n case \"select\":\n return String(recordValue) === String(filterValue);\n default:\n return String(recordValue).includes(String(filterValue));\n }\n });\n });\n }, [searchFilteredData, columnFilters, filterable, filters]);\n\n // Apply sorting\n const sortedData = useMemo(() => {\n if (!sortColumn) {\n return filterFilteredData;\n }\n\n const sorted = [...filterFilteredData];\n const column = columns.find((col) => col.key === sortColumn);\n\n if (!column || !column.sortable) {\n return sorted;\n }\n\n sorted.sort((a, b) => {\n const aValue = column.dataIndex\n ? a[column.dataIndex]\n : (a as Record<string, unknown>)[column.key];\n const bValue = column.dataIndex\n ? b[column.dataIndex]\n : (b as Record<string, unknown>)[column.key];\n\n // Handle null/undefined\n if (aValue === null || aValue === undefined) return 1;\n if (bValue === null || bValue === undefined) return -1;\n\n // Compare values\n let comparison = 0;\n if (typeof aValue === \"number\" && typeof bValue === \"number\") {\n comparison = aValue - bValue;\n } else {\n comparison = String(aValue).localeCompare(String(bValue));\n }\n\n return sortDirection === \"asc\" ? comparison : -comparison;\n });\n\n return sorted;\n }, [filterFilteredData, sortColumn, sortDirection, columns]);\n\n // Apply pagination\n // In controlled mode with server-side pagination, use provided data directly\n // In uncontrolled mode, slice the data client-side\n const paginatedData = useMemo(() => {\n if (!showPagination) {\n return sortedData;\n }\n\n // If in controlled pagination mode with totalItems, assume data is already paginated\n if (isControlledPagination && totalItems !== undefined) {\n return sortedData; // Data is already paginated server-side\n }\n\n // Client-side pagination\n const startIndex = (currentPage - 1) * pageSize;\n const endIndex = startIndex + pageSize;\n\n return sortedData.slice(startIndex, endIndex);\n }, [\n sortedData,\n currentPage,\n pageSize,\n showPagination,\n isControlledPagination,\n totalItems,\n ]);\n\n // Calculate total pages for pagination display\n // Note: Currently not used but kept for future pagination UI enhancements\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const _totalPages = useMemo(() => {\n if (!showPagination) return 1;\n if (isControlledPagination && totalItems !== undefined) {\n return Math.ceil(totalItems / pageSize);\n }\n return Math.ceil(sortedData.length / pageSize);\n }, [\n showPagination,\n isControlledPagination,\n totalItems,\n pageSize,\n sortedData.length,\n ]);\n\n // Callbacks\n const handleSearch = useCallback(\n (value: string) => {\n setSearchTerm(value);\n if (!isControlledPagination) {\n setCurrentPage(1); // Reset to first page on search (only in uncontrolled mode)\n }\n },\n [setSearchTerm, setCurrentPage, isControlledPagination],\n );\n\n const handleFilterChange = useCallback(\n (key: string, value: unknown) => {\n const newFilters = {\n ...columnFilters,\n [key]: value,\n };\n setColumnFilters(newFilters);\n if (!isControlledPagination) {\n setCurrentPage(1); // Reset to first page on filter (only in uncontrolled mode)\n }\n },\n [columnFilters, setColumnFilters, setCurrentPage, isControlledPagination],\n );\n\n const handleSort = useCallback(\n (column: TableColumn<T>, direction: \"asc\" | \"desc\") => {\n setSortColumn(column.key);\n setSortDirection(direction);\n },\n [setSortColumn, setSortDirection],\n );\n\n const handlePageChange = useCallback(\n (page: number, newPageSize: number) => {\n setCurrentPage(page);\n if (newPageSize !== pageSize) {\n setPageSize(newPageSize);\n setCurrentPage(1); // Reset to first page when page size changes\n }\n },\n [pageSize, setCurrentPage, setPageSize],\n );\n\n // Notify callbacks\n React.useEffect(() => {\n if (onSearch) {\n onSearch(searchTerm, searchFilteredData);\n }\n }, [searchTerm, searchFilteredData, onSearch]);\n\n React.useEffect(() => {\n if (onFilter) {\n onFilter(columnFilters, filterFilteredData);\n }\n }, [columnFilters, filterFilteredData, onFilter]);\n\n return (\n <div className=\"w-full\">\n {/* Search and Filter Bar */}\n {(showSearch || (showFilters && filterable && filters.length > 0)) && (\n <div className={cn(filterBarVariants(), filterBarClassName)}>\n {/* Search */}\n {showSearch && searchable && (\n <div className={cn(\"flex-1 min-w-[200px]\", searchBarClassName)}>\n <Input\n type=\"text\"\n placeholder={searchPlaceholder}\n value={searchTerm}\n onChange={(e) => handleSearch(e.target.value)}\n className=\"w-full\"\n aria-label=\"Search table\"\n />\n </div>\n )}\n\n {/* Column Filters */}\n {showFilters && filterable && filters.length > 0 && (\n <div className=\"flex flex-wrap items-center gap-2\">\n {filters.map((filter) => {\n const filterValue = columnFilters[filter.key];\n\n if (filter.type === \"select\" && filter.options) {\n return (\n <select\n key={filter.key}\n value={String(filterValue || \"\")}\n onChange={(e) =>\n handleFilterChange(\n filter.key,\n e.target.value || undefined,\n )\n }\n className=\"rounded-md border border-input px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-ring focus:border-primary\"\n aria-label={`Filter by ${filter.key}`}\n >\n <option value=\"\">All {filter.key}</option>\n {filter.options.map((option) => (\n <option key={option.value} value={String(option.value)}>\n {option.label}\n </option>\n ))}\n </select>\n );\n }\n\n return (\n <Input\n key={filter.key}\n type={filter.type === \"number\" ? \"number\" : \"text\"}\n placeholder={\n filter.placeholder || `Filter ${filter.key}...`\n }\n value={String(filterValue || \"\")}\n onChange={(e) =>\n handleFilterChange(\n filter.key,\n filter.type === \"number\"\n ? Number(e.target.value)\n : e.target.value,\n )\n }\n className=\"min-w-[150px]\"\n aria-label={`Filter by ${filter.key}`}\n />\n );\n })}\n\n {/* Clear Filters */}\n {Object.keys(columnFilters).length > 0 && (\n <button\n type=\"button\"\n onClick={() => setColumnFilters({})}\n className=\"px-3 py-2 text-sm text-muted-foreground hover:text-foreground underline\"\n aria-label=\"Clear all filters\"\n >\n Clear filters\n </button>\n )}\n </div>\n )}\n </div>\n )}\n\n {/* Table */}\n <Table\n {...tableProps}\n data={paginatedData}\n columns={columns}\n rowKey={rowKey}\n emptyText={emptyText}\n {...(sortColumn && {\n sortColumn,\n sortDirection,\n })}\n onSort={handleSort}\n {...(showPagination && {\n pagination: {\n current: currentPage,\n pageSize: pageSize,\n total:\n isControlledPagination && totalItems !== undefined\n ? totalItems\n : sortedData.length,\n onChange: handlePageChange,\n showSizeChanger: true,\n },\n })}\n />\n\n {/* Results Summary */}\n {showPagination &&\n (isControlledPagination && totalItems !== undefined\n ? totalItems > 0\n : sortedData.length > 0) && (\n <div className=\"mt-2 px-4 py-2 text-sm text-muted-foreground\">\n {isControlledPagination && totalItems !== undefined ? (\n <>\n Showing {(currentPage - 1) * pageSize + 1} to{\" \"}\n {Math.min(currentPage * pageSize, totalItems)} of {totalItems}{\" \"}\n results\n {searchTerm && \" (filtered)\"}\n </>\n ) : (\n <>\n Showing {(currentPage - 1) * pageSize + 1} to{\" \"}\n {Math.min(currentPage * pageSize, sortedData.length)} of{\" \"}\n {sortedData.length} results\n {searchTerm && ` (filtered from ${initialData.length} total)`}\n </>\n )}\n </div>\n )}\n </div>\n );\n}\n\nDataTable.displayName = \"DataTable\";\n\n// Memoize DataTable for performance optimization\n// DataTable is a complex component with filtering, sorting, and pagination\nexport const DataTableMemoized = memo(DataTable) as typeof DataTable;\n"]}
@@ -0,0 +1,2 @@
1
+ 'use strict';var chunk7SPPGTBT_cjs=require('./chunk-7SPPGTBT.cjs'),chunkITRGJNWL_cjs=require('./chunk-ITRGJNWL.cjs'),s=require('react'),classVarianceAuthority=require('class-variance-authority');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var s__default=/*#__PURE__*/_interopDefault(s);var Y=classVarianceAuthority.cva("absolute z-50 px-3 py-2 text-sm font-medium rounded-md shadow-lg transition-opacity duration-200",{variants:{variant:{default:"bg-popover text-popover-foreground border border-border",light:"bg-popover text-popover-foreground border border-border",dark:"bg-popover text-popover-foreground border border-border",success:"bg-success text-success-foreground",warning:"bg-warning text-warning-foreground",error:"bg-destructive text-destructive-foreground",info:"bg-info text-info-foreground"},size:{sm:"text-xs px-2 py-1",md:"text-sm px-3 py-2",lg:"text-base px-4 py-3"},placement:{top:"bottom-full left-1/2 -translate-x-1/2 mb-2","top-start":"bottom-full left-0 mb-2","top-end":"bottom-full right-0 mb-2",bottom:"top-full left-1/2 -translate-x-1/2 mt-2","bottom-start":"top-full left-0 mt-2","bottom-end":"top-full right-0 mt-2",left:"right-full top-1/2 -translate-y-1/2 mr-2","left-start":"right-full top-0 mr-2","left-end":"right-full bottom-0 mr-2",right:"left-full top-1/2 -translate-y-1/2 ml-2","right-start":"left-full top-0 ml-2","right-end":"left-full bottom-0 ml-2"}},defaultVariants:{variant:"default",size:"md",placement:"top"}}),Z=classVarianceAuthority.cva("absolute w-2 h-2 rotate-45",{variants:{variant:{default:"bg-popover border border-border",light:"bg-popover border border-border",dark:"bg-popover border border-border",success:"bg-success-500",warning:"bg-warning-500",error:"bg-destructive",info:"bg-info-500"},placement:{top:"top-full left-1/2 -translate-x-1/2 -translate-y-1/2","top-start":"top-full left-4 -translate-y-1/2","top-end":"top-full right-4 -translate-y-1/2",bottom:"bottom-full left-1/2 -translate-x-1/2 translate-y-1/2","bottom-start":"bottom-full left-4 translate-y-1/2","bottom-end":"bottom-full right-4 translate-y-1/2",left:"left-full top-1/2 -translate-x-1/2 -translate-y-1/2","left-start":"left-full top-4 -translate-x-1/2","left-end":"left-full bottom-4 -translate-x-1/2",right:"right-full top-1/2 translate-x-1/2 -translate-y-1/2","right-start":"right-full top-4 translate-x-1/2","right-end":"right-full bottom-4 translate-x-1/2"}},defaultVariants:{variant:"default",placement:"top"}}),S=s__default.default.createContext(void 0),$=()=>{let c=s__default.default.useContext(S);if(!c)throw new Error("Tooltip components must be used within a Tooltip");return c},q=s__default.default.forwardRef(({children:c,content:h,trigger:T="hover",open:i,onOpenChange:f,delayDuration:e=700,skipDelayDuration:v=300,disabled:d=false,className:x,contentClassName:u,sideOffset:M=4,alignOffset:C=0,avoidCollisions:E=true,collisionBoundary:w,collisionPadding:o=8,hideWhenDetached:R=false,sticky:L="partial",updatePositionDeps:H,closeOnBlur:D=true,...a},N)=>{let[t,l]=s.useState(false),g=s.useRef(null),n=s.useRef(null),r=i!==void 0,y=r?i:t,p=s.useCallback(_=>{d||(r||l(_),f?.(_));},[d,r,f]),m=s.useCallback(()=>{g.current!=null&&(clearTimeout(g.current),g.current=null),n.current!=null&&(clearTimeout(n.current),n.current=null);},[]),W=s.useCallback(()=>{m(),p(true);},[m,p]),B=s.useCallback(()=>{m(),p(false);},[m,p]),V=s.useCallback(()=>{m(),!d&&(e>0?g.current=window.setTimeout(()=>{p(true);},e):p(true));},[m,d,e,p]),z=s.useCallback(()=>{m(),v>0?n.current=window.setTimeout(()=>{p(false);},v):p(false);},[m,v,p]),G=s.useCallback(()=>{y?z():V();},[y,V,z]),J=s.useCallback(()=>{y?B():W();},[y,W,B]);s.useEffect(()=>()=>{m();},[m]);let Q={open:y,setOpen:p,trigger:T,delayDuration:e,skipDelayDuration:v,openNow:W,closeNow:B,openWithDelay:V,closeWithDelay:z,toggleWithDelay:G,toggleNow:J,closeOnBlur:D},U=y===true;return s__default.default.createElement(S.Provider,{value:Q},s__default.default.createElement("div",{ref:N,className:chunkITRGJNWL_cjs.a("relative inline-block",x),"data-open":y,...a},c,U?s__default.default.createElement(O,{className:u||"",sideOffset:M,alignOffset:C,avoidCollisions:E,collisionBoundary:w||null,collisionPadding:o,hideWhenDetached:R,sticky:L,updatePositionDeps:H||[],variant:a.variant,size:a.size,placement:a.placement},h):null))});q.displayName="Tooltip";var A=s__default.default.forwardRef(({children:c,asChild:h=true,className:T,...i},f)=>{let{trigger:e,openNow:v,closeNow:d,openWithDelay:x,closeWithDelay:u,toggleNow:M,closeOnBlur:C}=$(),E=s.useRef(null),w={ref:o=>{E.current=o,typeof f=="function"?f(o):f&&(f.current=o);},className:chunkITRGJNWL_cjs.a(T),"data-tooltip-trigger":true,onMouseEnter:o=>{i.onMouseEnter?.(o),e==="hover"&&x();},onMouseLeave:o=>{i.onMouseLeave?.(o),e==="hover"&&u();},onPointerEnter:o=>{i.onPointerEnter?.(o),e==="hover"&&x();},onPointerLeave:o=>{i.onPointerLeave?.(o),e==="hover"&&u();},onClick:o=>{i.onClick?.(o),e==="click"&&M();},onFocus:o=>{i.onFocus?.(o),e==="focus"&&v();},onBlur:o=>{i.onBlur?.(o),C&&d();},onKeyDown:o=>{i.onKeyDown?.(o),o.key==="Escape"&&d();}};return h&&s__default.default.isValidElement(c)?s__default.default.cloneElement(c,{...c.props||{},...w}):s__default.default.createElement("span",{...w,tabIndex:e==="focus"?0:void 0,role:e==="click"?"button":void 0},c)});A.displayName="TooltipTrigger";var O=s__default.default.forwardRef(({children:c,variant:h="default",size:T="md",placement:i="top",className:f,sideOffset:e=4,alignOffset:v=0,avoidCollisions:d=true,collisionBoundary:x,collisionPadding:u=8,hideWhenDetached:M=false,sticky:C="partial",updatePositionDeps:E,...w},o)=>{let R=s.useRef(null),[L,H]=s.useState({top:0,left:0}),D=s.useCallback(()=>{if(!R.current)return;let a=R.current,N=a.parentElement?.querySelector("[data-tooltip-trigger]");if(!N)return;let t=N.getBoundingClientRect(),l=a.getBoundingClientRect(),g={width:window.innerWidth,height:window.innerHeight},n=0,r=0;switch(i){case "top":n=t.top-l.height-e,r=t.left+t.width/2-l.width/2;break;case "top-start":n=t.top-l.height-e,r=t.left;break;case "top-end":n=t.top-l.height-e,r=t.right-l.width;break;case "bottom":n=t.bottom+e,r=t.left+t.width/2-l.width/2;break;case "bottom-start":n=t.bottom+e,r=t.left;break;case "bottom-end":n=t.bottom+e,r=t.right-l.width;break;case "left":n=t.top+t.height/2-l.height/2,r=t.left-l.width-e;break;case "left-start":n=t.top,r=t.left-l.width-e;break;case "left-end":n=t.bottom-l.height,r=t.left-l.width-e;break;case "right":n=t.top+t.height/2-l.height/2,r=t.right+e;break;case "right-start":n=t.top,r=t.right+e;break;case "right-end":n=t.bottom-l.height,r=t.right+e;break}d&&(r<u?r=u:r+l.width>g.width-u&&(r=g.width-l.width-u),n<u?n=u:n+l.height>g.height-u&&(n=g.height-l.height-u)),H({top:n,left:r});},[i,e,d,u]);return s__default.default.useLayoutEffect(()=>{D();let a=()=>D();return window.addEventListener("resize",a),window.addEventListener("scroll",a),()=>{window.removeEventListener("resize",a),window.removeEventListener("scroll",a);}},[D,E]),s__default.default.createElement("div",{ref:a=>{R.current=a,typeof o=="function"?o(a):o&&(o.current=a);},role:"tooltip","data-tooltip-instance":"nostromo",className:chunkITRGJNWL_cjs.a(Y({variant:h,size:T,placement:i}),f),style:{position:"fixed",top:L.top,left:L.left,zIndex:50},...w},c,s__default.default.createElement("div",{className:chunkITRGJNWL_cjs.a(Z({variant:h,placement:i}))}))});O.displayName="TooltipContent";var tt=({children:c,delayDuration:h=700,skipDelayDuration:T=300,defaultOpen:i=false})=>s__default.default.createElement("div",{"data-tooltip-provider":true},c),F=chunk7SPPGTBT_cjs.a(q);F.Trigger=A;F.Content=O;F.Provider=tt;exports.a=Y;exports.b=Z;exports.c=A;exports.d=O;exports.e=tt;exports.f=F;//# sourceMappingURL=chunk-ZYP2PDSX.cjs.map
2
+ //# sourceMappingURL=chunk-ZYP2PDSX.cjs.map